地理数据集(如要素类、coverage 和栅格)具有一个空间参考,用于定义数据集的坐标系、x,y 属性域、m 属性域和 z 属性域。空间参考的每一部分都具有多个属性,特别是坐标系,它定义了哪些地图投影选项用于定义水平坐标。所有这些信息都可以通过描述数据集并访问其空间参考属性获取,该属性实际上是另一个包含多个属性的对象。
import arcpy
# Describe a feature class
#
fc = "D:/St_Johns/data.gdb/roads"
desc = arcpy.Describe(fc)
# Get the spatial reference
#
sr = desc.spatialReference
# Check if the feature class is in projected space
#
if sr.type == "Projected":
arcpy.Copy_management(fc,"D:/St_Johns/data.gdb/roads_UTM")
创建空间参考
将一个空间参考的所有详细信息都保存在一个 Python 脚本中通常不太现实。通过将投影文件、工厂代码或空间参考名称用作 SpatialReference 类的参数,您可以快速完成空间参考属性的设置并将对象作为地理处理工具的输入。在下面的示例中,将使用提供的工厂代码(也称之为权限代码)作为输入参数来构造空间参考。
import arcpy
inputWorkspace = "c:/temp"
outputName = "rivers.shp"
# Get the input workspace, the output name for the new feature class
# and path to an input projection file
#
inputWorkspace = arcpy.GetParameterAsText(0)
outputName = arcpy.GetParameterAsText(1)
factoryCode = arcpy.GetParameterAsText(2)
# Use a code as input to the SpatialReference class
#
sr = arcpy.SpatialReference(factoryCode)
# Use the SpatialReference object to create a new feature class with a
# specific coordinate system
#
arcpy.CreateFeatureclass_management(inputWorkspace, outputName,
"POLYLINE", spatial_reference=sr)