标注 | 说明 | 数据类型 |
输入数据集或要素类 | 将定义其投影的数据集或要素类。 | Feature Layer;Geodataset |
坐标系 | 将要应用于输入的坐标系。 | Coordinate System |
派生输出
标注 | 说明 | 数据类型 |
更新输入数据集或要素类 | 已更新的输入地理数据集。 | Geodataset |
覆盖与数据集一同存储的坐标系信息(地图投影和基准面)。 此工具用于坐标系未知或定义错误的数据集。
所有地理数据集均具有一个用于显示、测量和转换地理数据的坐标系,此坐标系在 ArcGIS 中使用。 如果某一数据集的坐标系未知或不正确,您可以使用此工具来指定正确的坐标系。
此工具仅会更新现有的坐标系信息;它并不修改任何几何。 要将几何转换到其他坐标系,请使用投影工具。
当具有已知坐标系的数据集为此工具的输入时,该工具将发出警告消息,但会成功运行。
地理数据库要素数据集中的所有要素类将使用同一个坐标系。 对于要素数据集而言,应在其创建时确定坐标系。 一旦要素数据集包含要素类,其坐标系将无法更改。
该工具将更新 CAD 或 BIM 文件的关联 .wld 文件,以保留数据的地理调整位置。
标注 | 说明 | 数据类型 |
输入数据集或要素类 | 将定义其投影的数据集或要素类。 | Feature Layer;Geodataset |
坐标系 | 将要应用于输入的坐标系。 | Coordinate System |
标注 | 说明 | 数据类型 |
更新输入数据集或要素类 | 已更新的输入地理数据集。 | Geodataset |
arcpy.management.DefineProjection(in_dataset, coor_system)
名称 | 说明 | 数据类型 |
in_dataset | 将定义其投影的数据集或要素类。 | Feature Layer;Geodataset |
coor_system | 将要应用于输入的坐标系。 有效值可以是 SpatialReference 对象、扩展名为 .prj 的文件或坐标系的字符串表达形式。 | Coordinate System |
名称 | 说明 | 数据类型 |
out_dataset | 已更新的输入地理数据集。 | Geodataset |
以下 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])