标注 | 说明 | 数据类型 |
输入数据集或要素类 | 要定义投影的数据集或要素类。 | Feature Layer;Geodataset |
坐标系 | 要应用于输入的坐标系。默认值将基于“输出坐标系”环境设置进行设定。 | Coordinate System |
派生输出
标注 | 说明 | 数据类型 |
更新输入数据集或要素类 | 已更新的输入地理数据集。 | 地理数据集 |
覆盖与数据集一同存储的坐标系信息(地图投影和基准面)。此工具用于坐标系未知或定义错误的数据集。
所有地理数据集均具有一个用于显示、测量和转换地理数据的坐标系,此坐标系在 ArcGIS 中使用。如果某一数据集的坐标系未知或不正确,您可以使用此工具来指定正确的坐标系。使用此工具前,您必须已获知该数据集的正确坐标系。
此工具仅更新现有的坐标系信息,而并不修改任何几何。如果您要将几何转换到其他坐标系,请使用投影工具。
此工具最常见的用途是为具有未知坐标系(即,在数据集属性中坐标系为“未知”)的数据集指定一个已知坐标系。另一个用途是为没有正确定义坐标系(例如,坐标以 UTM 米为单位,而坐标系则定义为地理坐标系)的数据集指定正确的坐标系。
将具有已知坐标系的数据集输入此工具时,此工具将显示警告信息,但仍将成功执行。
地理数据库要素数据集中的所有要素类将使用同一个坐标系。对于地理数据库数据集而言,应在其创建时确定坐标系。数据集包含要素类之后,其坐标系将无法更改。
标注 | 说明 | 数据类型 |
输入数据集或要素类 | 要定义投影的数据集或要素类。 | Feature Layer;Geodataset |
坐标系 | 要应用于输入的坐标系。默认值将基于“输出坐标系”环境设置进行设定。 | Coordinate System |
标注 | 说明 | 数据类型 |
更新输入数据集或要素类 | 已更新的输入地理数据集。 | 地理数据集 |
arcpy.management.DefineProjection(in_dataset, coor_system)
名称 | 说明 | 数据类型 |
in_dataset | 要定义投影的数据集或要素类。 | Feature Layer;Geodataset |
coor_system | 要应用于输入的坐标系。默认值将基于“输出坐标系”环境设置进行设定。 有效值可以是 SpatialReference 对象、扩展名为 .prj 的文件或坐标系的字符串表达形式。 | Coordinate System |
名称 | 说明 | 数据类型 |
out_dataset | 已更新的输入地理数据集。 | 地理数据集 |
以下 Python 窗口脚本演示了如何在即时模式下使用 DefineProjection 函数。
import arcpy
infc = r"C:\data\citylim_unk.shp"
sr = arcpy.SpatialReference("NAD 1983 UTM Zone 11N")
arcpy.DefineProjection_management(infc, sr)
以下独立脚本使用 DefineProjection 函数来记录输入数据集的坐标系信息。
# Name: DefineProjection.py
# Description: Records the coordinate system information for the specified input dataset or feature class
# import system modules
import arcpy
# set workspace environment
arcpy.env.workspace = "C:/data"
try:
# set local variables
in_dataset = "citylim_unk.shp" #"forest.shp"
# get the coordinate system by describing a feature class
dsc = arcpy.Describe("citylim_utm11.shp")
coord_sys = dsc.spatialReference
# run the tool
arcpy.DefineProjection_management(in_dataset, coord_sys)
# print messages when the tool runs successfully
print(arcpy.GetMessages(0))
except arcpy.ExecuteError:
print(arcpy.GetMessages(2))
except Exception as ex:
print(ex.args[0])