SpatialReference

描述

空间参考的每一部分都具有多个属性,特别是坐标系,它定义了哪些地图投影选项用于定义水平坐标。

讨论

也可使用 Describe spatialReference 属性从现有数据集访问 SpatialReference 对象。

dataset = "c:/data/landbase.gdb/Wetlands"
spatial_ref = arcpy.Describe(dataset).spatialReference

XY、Z 和 M 范围与空间参考域有所不同。空间参考中的 XY、Z 和 M 域用于定义可存储在要素类中的坐标值的有效范围。要素类范围反映了存在于要素类中的坐标值的实际范围。这些范围不能大于域。

注:

空间参考属性的可用性取决于所使用的坐标系。在下面的属性列表中,只可用于投影坐标系的属性以 1 表示;只可用于地理坐标系的属性以 2 表示。

语法

 SpatialReference ({item}, {vcs})
参数说明数据类型
item

用于创建 SpatialReference 的坐标系。可使用投影文件、名称、工厂代码或熟知文本 (WKT) 格式进行设置。请参见以下示例。

  • 使用投影文件 (.prj)
    sr = arcpy.SpatialReference("c:/coordsystems/NAD 1983.prj")
  • 使用坐标系的名称
    sr = arcpy.SpatialReference("Hawaii Albers Equal Area Conic")
  • 使用坐标系工厂代码(或权限代码)
    # 32145 is the code for: 
    #  NAD 1983 StatePlane Vermont FIPS 4400 (Meters)
    sr = arcpy.SpatialReference(32145)
  • 使用熟知文本字符串表示
    # String below is representation for the 
    # Geographic Coordinate system "WGS 1984" (factory code=4326)
    wkt = "GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],\
                   PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]];\
                   -400 -400 1000000000;-100000 10000;-100000 10000;8.98315284119522E-09;\
                   0.001;0.001;IsHighPrecision"
    sr = arcpy.SpatialReference()
    sr.loadFromString(wkt)

有关坐标系名称和工厂代码的详细信息,请参阅 geographic_coordinate_systems.pdfprojected_coordinate_systems.pdf 文件。

有关详细信息,请参阅使用空间参考类

Variant
vcs

垂直坐标系 (VCS)。VCS 用于定义有关 Z 坐标的信息。可使用名称、工厂代码或熟知文本 (WKT) 格式进行设置。请参见以下示例。

  • 使用名称
    sr = arcpy.SpatialReference("Hawaii Albers Equal Area Conic", "MSL (Height)")
  • 使用工厂代码
    # Spatial Reference factory code of 32145 is : NAD 1983 StatePlane Vermont FIPS 4400 (Meters)
    # Spatial Reference factory code of 5714 is : Mean Sea Level (Height)
    sr = arcpy.SpatialReference(32145, 5714)
  • 使用熟知文本字符串表示。请注意,并未使用 vcs 参数,且 VCS 在 WKT 的 VERTCS 部分中定义。
    # String below is representation for the 
    # Geographic Coordinate system "WGS 1984" (factory code=4326), 
    #   with a vertical coordinate system "WGS 1984" (factory code=115700)
    wkt = "GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],\
                   PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],\
                   VERTCS['WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],\
                   PARAMETER['Vertical_Shift',0.0],PARAMETER['Direction',1.0],UNIT['Meter',1.0]];\
                   -400 -400 1000000000;-100000 10000;-100000 10000;8.98315284119522E-09;\
                   0.001;0.001;IsHighPrecision"
    sr = arcpy.SpatialReference()
    sr.loadFromString(wkt)
Variant

属性

属性说明数据类型
GCS
(只读)

投影坐标系将针对其基于的地理坐标系返回 SpatialReference 对象。地理坐标系将返回相同的 SpatialReference

SpatialReference
MDomain
(只读)

测量域的范围。

String
MFalseOriginAndUnits
(只读)

测量假定原点和单位。

String
MResolution
(可读写)

测量分辨率。

Double
MTolerance
(可读写)

测量容差。

Double
VCS
(只读)

如果坐标系具有垂直坐标系,将针对其基于的垂直坐标系返回 VCS 对象。

Object
XYResolution
(可读写)

xy 分辨率。

Double
XYTolerance
(可读写)

xy 容差。

Double
ZDomain
(只读)

Z 值域的范围。

String
ZFalseOriginAndUnits
(只读)

Z 假定原点和单位。

String
ZResolution
(可读写)

Z 分辨率属性。

Double
ZTolerance
(可读写)

Z 容差属性。

Double
abbreviation
(可读写)

空间参考的缩写名称。

String
alias
(可读写)

空间参考的别名。

String
domain
(只读)

xy 属性域的范围。

String
factoryCode
(可读写)

空间参考的工厂代码或熟知 ID (WKID)。

Integer
falseOriginAndUnits
(只读)

假定原点和单位。

String
hasMPrecision
(只读)

指示是否已定义 m 值精度信息。

Boolean
hasXYPrecision
(只读)

指示是否已定义 xy 精度信息。

Boolean
hasZPrecision
(只读)

指示是否已定义 z 值精度信息。

Boolean
isHighPrecision
(可读写)

指示空间参考是否已设置高精度。

Boolean
name
(可读写)

空间参考的名称。

String
remarks
(可读写)

空间参考的注释字符串。

String
type
(可读写)

空间参考的类型。

  • Geographic - 地理坐标系。
  • Projected - 投影坐标系。
String
usage
(只读)

用法说明。

String
PCSCode
(可读写)

投影坐标系代码。1

Integer
PCSName
(可读写)

投影坐标系名称。1

String
azimuth
(可读写)

投影坐标系的方位角。1

Double
centralMeridian
(可读写)

投影坐标系的中央经线。1

Double
centralMeridianInDegrees
(可读写)

投影坐标系的中央经线 (Lambda0)(以度为单位)。1

Double
centralParallel
(可读写)

投影坐标系的中央纬线。1

Double
classification
(只读)

地图投影的分类。1

String
falseEasting
(可读写)

投影坐标系的东偏移量。1

Double
falseNorthing
(可读写)

投影坐标系的北偏移量。1

Double
latitudeOf1st
(可读写)

投影坐标系第一个点的纬度。1

Double
latitudeOf2nd
(可读写)

投影坐标系第二个点的纬度。1

Double
latitudeOfOrigin
(可读写)

投影坐标系原点的纬度。1

Double
linearUnitCode
(可读写)

线性单位代码。1

Integer
linearUnitName
(可读写)

线性单位名称。1

String
longitude
(可读写)

此本初子午线的经度值。1

Double
longitudeOf1st
(可读写)

投影坐标系第一个点的经度。1

Double
longitudeOf2nd
(可读写)

投影坐标系第二个点的经度。1

Double
longitudeOfOrigin
(可读写)

投影坐标系原点的经度。1

Double
metersPerUnit
(只读)

米/线性单位。1

Double
projectionCode
(可读写)

投影代码。1

Integer
projectionName
(可读写)

投影名称。1

String
scaleFactor
(可读写)

投影坐标系的比例因子。1

Double
standardParallel1
(可读写)

投影坐标系的第一条纬线。1

Double
standardParallel2
(可读写)

投影坐标系的第二条纬线。1

Double
GCSCode
(可读写)

地理坐标系代码。2

Integer
GCSName
(可读写)

地理坐标系名称。2

String
angularUnitCode
(可读写)

角度单位代码。2

Integer
angularUnitName
(可读写)

角度单位名称。2

String
datumCode
(可读写)

基准代码。2

Integer
datumName
(可读写)

基准名称。2

String
flattening
(可读写)

此椭球体的扁率。2

Double
longitude
(可读写)

此本初子午线的经度值。2

Double
primeMeridianCode
(可读写)

本初子午线代码。2

Integer
primeMeridianName
(可读写)

本初子午线名称。2

String
radiansPerUnit
(只读)

每角度单位的弧度。2

Double
semiMajorAxis
(可读写)

此椭球体的半长轴长度。2

Double
semiMinorAxis
(可读写)

此椭球体的半短轴长度。2

Double
spheroidCode
(可读写)

椭球体代码。2

Integer
spheroidName
(可读写)

椭球体名称。2

String

方法概述

方法说明
create ()

使用属性创建空间参考对象。

createFromFile (prj_file)

从投影文件创建一个空间参考对象。

exportToString ()

将对象导出至其字符串表示。

loadFromString (string)

使用对象的字符串表示来恢复对象。可以使用 exportToString 方法创建字符串表示。

setDomain (x_min, x_max, y_min, y_max)

设置 XY 属性域。

setFalseOriginAndUnits (false_x, false_y, xy_units)

设置 XY 的假定原点和单位。

setMDomain (m_min, m_max)

设置 M 属性域。

setMFalseOriginAndUnits (false_m, m_units)

设置 M 的假定原点和单位。

setZDomain (z_min, z_max)

设置 Z 属性域。

setZFalseOriginAndUnits (false_z, z_units)

设置 Z 的假定原点和单位。

方法

create ()
createFromFile (prj_file)
参数说明数据类型
prj_file

该投影文件用于填充此空间参考对象。

String
exportToString ()
返回值
数据类型说明
String

对象的字符串表示。

loadFromString (string)
参数说明数据类型
string

对象的字符串表示。

String
setDomain (x_min, x_max, y_min, y_max)
参数说明数据类型
x_min

The minimum x-value.

Double
x_max

The maximum x-value.

Double
y_min

The minimum y-value.

Double
y_max

The maximum y-value.

Double
setFalseOriginAndUnits (false_x, false_y, xy_units)
参数说明数据类型
false_x

假定的 x 值。

Double
false_y

假定的 y 值。

Double
xy_units

xy 的单位。

String
setMDomain (m_min, m_max)
参数说明数据类型
m_min

最小 m 值。

Double
m_max

最大 m 值。

Double
setMFalseOriginAndUnits (false_m, m_units)
参数说明数据类型
false_m

The false m-value.

Double
m_units

The m units.

Double
setZDomain (z_min, z_max)
参数说明数据类型
z_min

最小 z 值。

Double
z_max

最大 z 值。

Double
setZFalseOriginAndUnits (false_z, z_units)
参数说明数据类型
false_z

The false z-value.

Double
z_units

The false z units.

Double

代码示例

SpatialReference 示例

对工作空间中的每个要素类,输出其空间参考的名称。

import arcpy
# Set the workspace environment
arcpy.env.workspace = "c:/base/base.gdb"
# Get a list of the feature classes in the input folder
feature_classes = arcpy.ListFeatureClasses()
# Loop through the list
for fc in feature_classes:
    # Create the spatial reference object
    spatial_ref = arcpy.Describe(fc).spatialReference
    # If the spatial reference is unknown
    if spatial_ref.name == "Unknown":
        print("{} has an unknown spatial reference".format(fc))
    # Otherwise, print out the feature class name and spatial reference
    else:
        print("{} : {}".format(fc, spatial_ref.name))

相关主题