主要内容

本页采用了机器翻译。点击此处可查看英文原文。

projcrs

投影坐标参考系对象

说明

投影坐标参考系 (CRS) 提供将笛卡尔坐标系中的 xy 地图坐标分配给物理位置的信息。投影坐标参考系由地理坐标参考系和若干参数组成,这些参数用于将坐标在地理坐标参考系之间进行转换。有关地理坐标参考系的更多信息,请参阅 geocrs

创建对象

您可以通过多种方式创建一个投影 CRS 对象:

  • 使用 readgeoraster 导入栅格数据,然后查询返回的栅格参考对象的 ProjectedCRS 属性。

  • 使用 readgeotable 函数导入矢量数据,然后查询返回的地理空间表中形状对象的 ProjectedCRS 属性。

  • 使用 shapeinfo 函数获取 shapefile 的相关信息,然后查询返回结构中的 CoordinateReferenceSystem 字段。

  • 使用 projcrs 函数(详见此处说明)。

描述

p = projcrs(code) 使用由 code 指定的 EPSG 代码创建一个投影 CRS 对象。

示例

p = projcrs(code,"Authority",authority) 使用指定的 codeauthority 创建一个投影 CRS 对象。

示例

p = projcrs(wkt) 使用由 wkt 指定的标准文本 (WKT) 字符串表示法创建一个投影 CRS 对象。

示例

输入参量

全部展开

投影 CRS 代码,指定为正整数、字符串标量或字符向量。默认情况下,projcrs 函数假定 code 参数是 EPSG 代码。要指定其他类型的代码,请使用 Authority 名称-值参数。

要参考 EPSG 或 ESRI 代码,请将此参数指定为正整数。要参考一个 IGNF 代码,请将此参数指定为字符串标量或字符向量。

有关有效的 EPSG、ESRI 和 IGNF 代码的信息,请参阅空间参考主页

管理 CRS 定义的组织,指定为 "EPSG""ESRI""IGNF"。每个组织都维护着一份与特定 CRS 相关的代码列表。

若未指定权限,则 projcrs 函数将使用 "EPSG"

知名文本 (WKT),指定为字符串标量或字符向量。您可以使用 WKT 1 或 WKT 2 标准来指定 WKT。

ProjectionParameters 属性中列出的参数采用 WKT 2 标准,即使您指定的文本使用 WKT 1 标准也是如此。

属性

全部展开

CRS 名称,指定为字符串标量。

修改存储在 ProjectionParameters 属性中的投影参数值,可自动将该属性的值更改为 ""。若手动修改 Name 属性的值,则投影参数的变更不会自动改变该属性。

数据类型: string

此 属性 为只读。

地理坐标参考系 (CRS),以 geocrs 对象形式返回。地理坐标参考系由基准面(包括其椭球体)、本初子午线和角度测量单位构成。

此 属性 为只读。

长度单位,以字符串标量形式返回。可能的值包括 "meter""U.S. survey foot"

数据类型: string

此 属性 为只读。

投影方法,以字符串标量形式返回。可能的值包括 "Lambert Conic Conformal (2SP)""Transverse Mercator"

数据类型: string

投影参数,指定为一个 ProjectionParameters 对象。ProjectionParameters 对象中的参数采用 WKT 2 标准,即使提供的 wkt 参数使用 WKT 1 标准也是如此。

您可以使用点表示法访问和更改各个投影参数。例如,创建一个 projcrs 对象并访问其 LatitudeOfFalseOrigin 参数。

p = projcrs(26986);
p.ProjectionParameters.LatitudeOfFalseOrigin

本表描述了常见的投影参数,包括兰伯特等角圆锥投影法和横轴墨卡托投影法所使用的参数。其他投影方法可能使用与所列参数不同的参数。其他投影方法的有效值范围可能比所列范围更窄。

参数描述
EastingAtFalseOrigin

在假原点处的东向坐标,指定为数字,单位由 LengthUnit 定义。投影 CRS 通常采用假原点,使得该坐标系内的所有坐标值均为正值。在虚假原点处的东向坐标是以网格原点 (0, 0) 为基准的。

FalseEasting

虚假东向偏移量,指定为数字,单位遵循 LengthUnit 的定义。投影 CRS 通常采用假东向坐标来偏移地图网格的 y 轴,使 x 坐标具有正值。

FalseNorthing

虚假北向偏移量,指定为数字,单位由 LengthUnit 定义。投影的 CRS 通常采用假北向坐标来偏移地图网格的 x 轴,使 y 坐标具有正值。

LatitudeOf1stStandardParallel

第一标准纬线的纬度,以度为单位,指定为 [–90, 90] 范围内的数值。标准平行线是指在圆锥投影或圆柱投影中,所用的圆锥或圆柱与参考椭球体相交的平行线。

LatitudeOf2ndStandardParallel

第二标准纬线的纬度,以度为单位,指定为 [–90, 90] 范围内的数值。标准平行线是指在圆锥投影或圆柱投影中,所用的圆锥或圆柱与参考椭球体相交的平行线。

LatitudeOfFalseOrigin

假原点的纬度,单位为度,指定为 [–90, 90] 范围内的数值。投影 CRS 通常采用假原点,使得该坐标系内的所有坐标值均为正值。

LatitudeOfNaturalOrigin

自然原点的纬度,以度为单位,数值范围为 [–90, 90]。自然原点是指未因虚假北向或东向偏移而位移的网格原点。

LongitudeOfFalseOrigin

虚假原点的经度,单位为度,指定为 [–180, 180] 范围内的数值。投影 CRS 通常采用假原点,使得该坐标系内的所有坐标值均为正值。

LongitudeOfNaturalOrigin

自然原点的经度,以度为单位,数值范围为 [–180, 180]。自然原点是指未因虚假北向或东向偏移而位移的网格原点。

NorthingAtFalseOrigin

在假原点处的北向坐标,指定为数字,单位由 LengthUnit 定义。投影 CRS 通常采用假原点,使得该坐标系内的所有坐标值均为正值。在虚假原点处的北向坐标是以网格原点 (0, 0) 为基准的。

ScaleFactorAtNaturalOrigin

自然原点的缩放因子,指定为无单位的数值,取值范围为 [0.9, 1.1]。自然原点是指未因虚假北向或东向偏移而位移的网格原点。投影 CRS 通常采用比例因子(接近 1 的数值)来平衡坐标系覆盖区域内的比例失真。

当您更改投影参数的值时,projcrs 对象会从与该对象关联的 WKT 中移除名称、使用区域和权限。因此,改变投影参数的值会自动将 Name 属性的值更改为 ""

对象函数

projfwd将经纬度坐标投影至 x-y 地图坐标系
projinvx-y 地图坐标转换为纬度-经度坐标
wktstringWell-known text string
isequalCompare two projcrs or geocrs objects for equivalence

示例

全部折叠

通过指定 EPSG 代码创建一个投影 CRS 对象。

p = projcrs(5325)
p = 
  projcrs with properties:

                    Name: "ISN2004 / Lambert 2004"
           GeographicCRS: [1×1 geocrs]
        ProjectionMethod: "Lambert Conic Conformal (2SP)"
              LengthUnit: "meter"
    ProjectionParameters: [1×1 map.crs.ProjectionParameters]

使用 Authority 名称-值参数,根据 ESRI 代码创建一个投影 CRS 对象。

p = projcrs(53026,"Authority","ESRI")
p = 
  projcrs with properties:

                    Name: "Sphere_Stereographic"
           GeographicCRS: [1×1 geocrs]
        ProjectionMethod: "Stereographic"
              LengthUnit: "meter"
    ProjectionParameters: [1×1 map.crs.ProjectionParameters]

使用 Authority 名称-值参数,根据 IGNF 代码创建一个投影 CRS 对象。使用字符串标量或字符向量指定代码。

p = projcrs("UTM39SW84","Authority","IGNF")
p = 
  projcrs with properties:

                    Name: "WGS84 UTM SUD FUSEAU 39"
           GeographicCRS: [1×1 geocrs]
        ProjectionMethod: "Transverse Mercator"
              LengthUnit: "meter"
    ProjectionParameters: [1×1 map.crs.ProjectionParameters]

使用 fileread 函数将 WKT 投影文件导入为字符向量。然后通过指定向量创建一个投影 CRS 对象。

wkt = fileread('MtWashington-ft.prj');
p = projcrs(wkt)
p = 
  projcrs with properties:

                    Name: "UTM Zone 19, Northern Hemisphere"
           GeographicCRS: [1×1 geocrs]
        ProjectionMethod: "Transverse Mercator"
              LengthUnit: "meter"
    ProjectionParameters: [1×1 map.crs.ProjectionParameters]

使用 readgeoraster 函数将栅格数据导入为数组和地图参考对象。然后,通过查询参考对象的 ProjectedCRS 属性获取投影后的 CRS。

[Z,R] = readgeoraster("boston.tif");
R.ProjectedCRS
ans = 
  projcrs with properties:

                    Name: "NAD83 / Massachusetts Mainland"
           GeographicCRS: [1×1 geocrs]
        ProjectionMethod: "Lambert Conic Conformal (2SP)"
              LengthUnit: "U.S. survey foot"
    ProjectionParameters: [1×1 map.crs.ProjectionParameters]

或者,使用 georasterinfo 函数将同一文件的信息作为 RasterInfo 对象返回。然后,通过查询对象的 CoordinateReferenceSystem 属性获取投影后的 CRS。

info = georasterinfo("boston.tif");
info.CoordinateReferenceSystem
ans = 
  projcrs with properties:

                    Name: "NAD83 / Massachusetts Mainland"
           GeographicCRS: [1×1 geocrs]
        ProjectionMethod: "Lambert Conic Conformal (2SP)"
              LengthUnit: "U.S. survey foot"
    ProjectionParameters: [1×1 map.crs.ProjectionParameters]

通过创建一个 projcrs 对象并查询其 ProjectionParameters 属性,获取投影 CRS 的投影参数。

p = projcrs(32644);
parameters = p.ProjectionParameters
parameters = 
  ProjectionParameters object with parameters:

       LatitudeOfNaturalOrigin: 0
      LongitudeOfNaturalOrigin: 81
    ScaleFactorAtNaturalOrigin: 0.9996
                  FalseEasting: 500000
                 FalseNorthing: 0

使用点表示法查询单个投影参数。

p.ProjectionParameters.ScaleFactorAtNaturalOrigin
ans = 
0.9996

使用点表示法更改投影参数的值 (自 R2023a 起)

p.ProjectionParameters.LongitudeOfNaturalOrigin = 87;

提示

当使用 isequal 函数比较两个 ProjectionParameters 对象时,即使参数值相同,该函数仍可能返回 0(false)。相反,通过比较 projcrs 对象或直接比较参数值来比较 ProjectionParameters 对象。

版本历史记录

在 R2020b 中推出

全部展开