投影 (数据管理)

摘要

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

用法

语法

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 扩展名(ArcGIS 中附带的 .prj 文件位于 ArcGIS 安装目录的“坐标系”文件夹中)的文件,或者是坐标系的字符串表达形式。要生成此类字符串表达形式,可向模型构建器添加一个坐标系变量,根据需要设置该变量的值,然后将模型导出到 Python 脚本。然后,可从 Python 脚本中复制此字符串。

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"

# Set local variables
outWorkspace = "c:/data/Redlands_utm_11.gdb"

# 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')
        arcpy.Project_management(infc, outfc, outCS)

环境

相关主题

许可信息

ArcView: 是
ArcEditor: 是
ArcInfo: 是

7/10/2012