转换坐标记法 (Data Management)
用法
输入表可以是一个文本文件或 ArcGIS 所支持的任一表格式。
输出结果是一个点要素类,每个具有有效记法的输入位置在其中都表示为一个点。具有无效记法的记录将不具有任何几何,新添加的输出字段将为空。
具有无法转换的无效记法的记录的 ID 将列在名称为 ConvertCoordinateNotation<x>.log 的文本文件中(其中,<x> 为任意数字)。此文件存储在用户的 Temp 文件夹中。例如,在 Windows 7 中,目录为 Users\<user>\AppData\Local\Temp。在 UNIX 系统中,该文件位于用户主目录下的 $TMP 中。
所支持的格式如下:
- 十进制度 (DD)
- 十进制度分 (DDM)
- 度-分-秒 (DMS)
- 全球区域参考系统 (GARS)
- GEOREF(世界地理参考系)
- 通用横轴墨卡托投影 (UTM)
- 美国国家格网 (USNG)
- 军事格网参考系 (MGRS)
任何一种格式都可用作输入或输出格式。例如,DMS 可用作转换值和获取位置点要素类的输入输出格式。
DD_1、DDM_1 和 DMS_1 需要两个值才能表示一个位置:一个是纬度值,另一个是经度值。 可以将这两个值合并成单个字符串并存储在单个字段中。
对于 DD_2、DDM_2 和 DMS_2 格式,纬度值和经度值将由两个单独的字段表示。
GARS、GEOREF、UTM、USNG 和 MGRS 为单字符串坐标格式,这表示只有一个字段包含坐标。
有关详细信息,请参阅下面的输入坐标格式参数说明。
会将输入表中的所有非系统字段(包括输入格式字段)传递到输出点要素类中。
输出字段名与输出坐标记法的名称一致。例如,如果输出格式为 MGRS,那么新的输出字段名将为 MGRS。
如果在输出中已存在与输入字段同名的字段,则复制字段的名称将附加一个唯一编号。
可利用添加 XY 坐标工具将 POINT_X 和 POINT_Y 两个字段添加到输出点要素类中。这两个字段中所包含的是点要素的坐标,其坐标单位采用的是要素类坐标系的单位。
语法
参数 | 说明 | 数据类型 |
in_table |
包含具有要转换坐标记法的字段的表。 | Table View |
out_featureclass |
点的输出要素类。 属性表将包括输入表的所有字段以及以输出格式表示的转换值的字段。 | Feature Class |
x_field |
输入表中包含经度值的字段。对于 DD_2、DDM_2 和 DMS_2 格式,此字段即为经度字段。 对于 DD_1、DDM_1、DMS_1、GARS、GEOREF、UTM、USNG 和 MGRS 格式,此字段同时包含了纬度和经度。 | Field |
y_field |
输入表中包含纬度值的字段。对于 DD_2、DDM_2 和 DMS_2 格式,此字段即为纬度字段。对于 DD_1、DDM_1、DMS_1、GARS、GEOREF、UTM、USNG 和 MGRS 格式,将忽略此参数。 | Field |
input_coordinate_format |
输入字段的坐标格式。默认格式为 DD_2。
DD、DDM 和 DMS 也是有效关键字;可通过(在对话框中)直接输入或在脚本中传递值的方式来使用这些关键字。不过,带下划线和数字的关键字可以指明此数值来自于一个字段还是两个字段。 | String |
output_coordinate_format |
输入记法转换后的坐标格式。默认格式为 DD_2。
DD、DDM 和 DMS 也是有效关键字;可通过(在对话框中)直接输入或在脚本中传递值的方式来使用这些关键字。不过,带下划线和数字的关键字可以指明此数值来自于一个字段还是两个字段。 | String |
id_field (可选) |
输入表中的任何字段。选定字段将复制到输出表中。如果此字段的值唯一,则可利用此字段将输出记录往回连接到输入表。 | Field |
spatial_reference (可选) |
输出点要素类的空间参考。默认值为 GCS_WGS_1984。 如果输出坐标系与输入坐标系不同,工具将对数据进行投影处理。如果输入和输出具有不同的基准面,将根据输入坐标系和输出坐标系以及数据范围计算默认转换。 | Spatial Reference |
代码实例
使用一个输入格式字段的 ConvertCoordinateNotation 用法。
#Imports
import arcpy
#Locals
in_tab = r"c:\workspace\inmed.gdb\loc_mgrs"
out_pts = r"c:\workspace\inmed.gdb\loc_final"
#Convert Coordinate Notation with MGRS as input field.
arcpy.ConvertCoordinateNotation_management(in_tab,out_pts,"m10d","#","MGRS","DD_1")
使用两个输入格式字段的 ConvertCoordinateNotation 用法。
# imports
import arcpy
arcpy.env.workspace = r"c:\data\mtf.gdb"
# set parameter values
input_table = 'rit_up_DD'
output_points = 'ritLOC'
x_field = 'LON'
y_field = 'LAT'
input_format = 'DD_2'
output_format = 'GARS'
id_field = 'CITY_NAME'
spatial_ref = arcpy.SpatialReference('WGS 1984')
try:
arcpy.ConvertCoordinateNotation_management(input_table, output_points, x_field, y_field,
input_format, output_format, id_field, spatial_ref)
print(arcpy.GetMessages(0))
except arcpy.ExecuteError:
print(arcpy.GetMessages(2))
except Exception as ex:
print(ex.args[0])