定义投影 (数据管理)

摘要

覆盖与数据集一同存储的坐标系信息(地图投影和基准面)。 此工具用于坐标系未知或定义错误的数据集。

使用情况

  • 所有地理数据集均具有一个用于显示、测量和转换地理数据的坐标系,此坐标系在 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

代码示例

DefineProjection 示例(Python 窗口)

以下 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 示例(独立脚本)

以下独立脚本使用 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])