投影 (Data Management)

许可等级:BasicStandardAdvanced

摘要

将空间数据从一种坐标系投影到另一种坐标系。

用法

语法

Project_management (in_dataset, out_dataset, out_coor_system, {transform_method}, {in_coor_system})
参数说明数据类型
in_dataset

要投影的要素类、要素图层或要素数据集。

Feature Layer; Feature Dataset
out_dataset

将要写入结果的输出数据集。

Geodataset
out_coor_system

有效值是空间参考对象、扩展名为 .prj 的文件或坐标系的字符串表达形式。

Coordinate System
transform_method
(可选)

此方法可用于在两个地理坐标系或基准面之间对数据进行转换。如果输入和输出坐标系具有不同的基准面,则可能需要此可选参数。

提示提示:

变换是双向的。例如,如果将数据从 WGS 1984 转换为 NAD 1927,可以选取一个名为 NAD_1927_到_WGS_1984_3 的变换,然后此工具即可正确应用它。

String
in_coor_system
(可选)

输入要素类或数据集的坐标系。当输入具有“未知的”或未指定的坐标系时,将启用该参数。这样,无需修改输入数据就可以指定数据的坐标系(当输入数据为只读格式时,可能无法修改)。

Coordinate System

代码实例

投影示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用“投影”函数。

import arcpy

input_features = "C:/data/input/projections.gdb/wells"
output_features_class = "C:/data/output/wells_UTM11N.shp"

install_dir = arcpy.GetInstallInfo()['InstallDir']
out_coordinate_system = os.path.join(install_dir, r"Coordinate Systems/Projected Coordinate Systems/UTM/NAD 1983/NAD 1983 UTM Zone 11N.prj")

arcpy.Project_management(input_features, output_features_class, out_coordinate_system)
投影示例 2(独立脚本)

以下独立脚本演示了如何在独立脚本中使用“投影”。

# Name: Project_Example2.py

# Description: Project all feature classes in a geodatabase
# Requirements: os module

# Import system modules
import arcpy
import os

# Set environment settings
arcpy.env.workspace = "C:/data/Redlands.gdb"
arcpy.env.overwriteOutput = True

# Set local variables
outWorkspace = "C:/data/Redlands_utm11.gdb"

try:
    # Use ListFeatureClasses to generate a list of inputs 
    for infc in arcpy.ListFeatureClasses():
    
        # Determine if the input has a defined coordinate system, can't project it if it does not
        dsc = arcpy.Describe(infc)
    
        if dsc.spatialReference.Name == "Unknown":
            print ('skipped this fc due to undefined coordinate system: ' + infc)
        else:
            # Determine the new output feature class path and name
            outfc = os.path.join(outWorkspace, infc)
            
            # Set output coordinate system
            outCS = arcpy.SpatialReference('NAD 1983 UTM Zone 11N')
            
            # run project tool
            arcpy.Project_management(infc, outfc, outCS)
            
            # check messages
            print(arcpy.GetMessages())
            
except arcpy.ExecuteError:
    print(arcpy.GetMessages(2))
    
except Exception as ex:
    print(ex.args[0])

环境

相关主题

许可信息

ArcGIS for Desktop Basic:是
ArcGIS for Desktop Standard:是
ArcGIS for Desktop Advanced:是
9/15/2013