描述
空间参考的每一部分都具有多个属性,特别是坐标系,它定义了哪些地图投影选项用于定义水平坐标。
讨论
也可使用 Describe spatialReference 属性从现有数据集访问 SpatialReference 对象。
dataset = "c:/data/landbase.gdb/Wetlands"
spatial_ref = arcpy.Describe(dataset).spatialReferenceXY、Z 和 M 范围与空间参考域有所不同。空间参考中的 XY、Z 和 M 域用于定义可存储在要素类中的坐标值的有效范围。要素类范围反映了存在于要素类中的坐标值的实际范围。这些范围不能大于域。
注:
空间参考属性的可用性取决于所使用的坐标系。在下面的属性列表中,只可用于投影坐标系的属性以 1 表示;只可用于地理坐标系的属性以 2 表示。
语法
SpatialReference ({item}, {vcs})| 参数 | 说明 | 数据类型 |
item | 用于创建 SpatialReference 的坐标系。可使用投影文件、名称、工厂代码或熟知文本 (WKT) 格式进行设置。请参见以下示例。
有关坐标系名称和工厂代码的详细信息,请参阅 geographic_coordinate_systems.pdf 且 projected_coordinate_systems.pdf 文件。 有关详细信息,请参阅使用空间参考类。 | Variant |
vcs | 垂直坐标系 (VCS)。VCS 用于定义有关 Z 坐标的信息。可使用名称、工厂代码或熟知文本 (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 (可读写) | 空间参考的类型。
| 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 |
代码示例
对工作空间中的每个要素类,输出其空间参考的名称。
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))