Конвертировать обозначения координат (Convert Coordinate Notation) (Управление данными (Data Management))
Краткая информация
Преобразует обозначения координат, содержащиеся в одном или двух полях, из одного формата в другой.
Использование
Входная таблица может быть текстовым файлом или любой таблицей, которая поддерживается ArcGIS. Точечные объекты также допустимы.
Система координат значений в полях X (Долгота) и Y (Широта) указана с параметром Входная система координат (Input Coordinate System). По умолчанию это система координат GCS_WGS_1984, если только входная таблица не является классом пространственных объектов, для которого по умолчанию используется координатная система входных объектов.
Выходной класс объектов представляют собой класс точечных объектов, где каждое входное положение с допустимым обозначением представлено в виде точки. Записи с неправильными обозначениями не будут иметь никакой геометрии, а значения во вновь добавленных выходных полях будут пустыми.
- Точечная геометрия не создается для входных записей с некорректными обозначениями. Запустите инструмент Проверить геометрию (Check Geometry), чтобы найти записи, которые не были конвертированы.
Поддерживаются следующие форматы:
- Десятичные градусы (DD)
- Градусы с десятичными минутами (DDM)
- Градусы-минуты-секунды (DMS)
- Global Area Reference System (GARS)
- GEOREF – Мировая географическая система привязки (World Geographic Reference System)
- Универсальная поперечная Меркатора (UTM)
- United States National Grid (USNG)
- Военная система прямоугольных координат (MGRS)
Для DD_1,DDM_1 и DMS_1 значения широты и долготы, необходимые для представления положения, сокращены до одной строки и хранятся в одном поле.
Для DD_2, DDM_2 и DMS_2 значения широты и долготы представлены в виде двух отдельных полей.
Для DD_NUMERIC значения широты и долготы хранятся в двух отдельных полях типа Double.
GARS, GEOREF, UTM_ZONES, UTM_BANDS, USNG и MGRS являются однострочными форматами координат, что означает, что координату содержит только одно поле.
Дополнительные сведения см. в описании параметра Формат входных координат (Input Coordinate Format).
Все несистемные поля из входной таблицы, в том числе входные поля, перемещаются в выходной класс точечных объектов.
Имена выходных полей соответствуют обозначению выходных координат; например, если выходной формат – MGRS, имя нового выходного поля будет MGRS.
Если в выходных данных уже существует поле с тем же именем, что и входное поле, имя скопированного поля добавляется с уникальным номером.
Инструмент Добавить координаты XY (Add XY Coordinates) можно использовать для добавления двух полей – POINT_X и POINT_Y – в выходной класс точечных объектов. Эти поля содержат координаты точки в единице системы координат класса пространственных объектов.
Синтаксис
Параметр | Объяснение | Тип данных |
in_table |
Таблица, содержащая поля с обозначениями координат, подлежащими конвертации. | Table View |
out_featureclass |
Выходной класс пространственных объектов точек. Таблица атрибутов будет содержать все поля входной таблицы вместе с полями, содержащими конвертированные значения в выходном формате. | Feature Class |
x_field |
Поле из входной таблицы, содержащей значение долготы. Для DD_2, DD_NUMERIC, DDM_2 и DMS_2 это поле долготы. Для DD_1, DDM_1 и DMS_1 в этом поле содержатся значения широты и долготы в одной строке. Для GARS, GEOREF, UTM_ZONES, UTM_BANDS, USNG и MGRS в этом поле содержится буквенно-числовая система обозначения в одном текстовом поле. При выборе одного из этих одностроковых форматов параметр y_field игнорируется. | Field |
y_field |
Поле из входной таблицы, содержащей значение долготы. Для DD_2, DD_NUMERIC, DDM_2 и DMS_2 это поле долготы. Для DD_1, DDM_1 и DMS_1 в этом поле содержатся значения широты и долготы в одной строке. Для GARS, GEOREF, UTM_ZONES, UTM_BANDS, USNG и MGRS в этом поле содержится буквенно-числовая система обозначения в одном текстовом поле. При выборе одного из этих одностроковых форматов этот параметр игнорируется. | Field |
input_coordinate_format |
Формат координат входных полей. По умолчанию используется DD_2.
DD, DDM, DMS и UTM также являются допустимыми ключевыми словами, которые можно использовать путем простого ввода (в диалоговом окне) или передачи значения в скрипте. Тем не менее, ключевые слова, содержащие нижнее подчеркивание и уточнение, больше сообщают о значениях поля. | String |
output_coordinate_format |
Формат координат, в который будут конвертироваться входные обозначения. По умолчанию используется DD_2.
DD, DDM, DMS и UTM также являются допустимыми ключевыми словами, которые можно использовать путем простого ввода (в диалоговом окне) или передачи значения в скрипте. Тем не менее, ключевые слова, содержащие нижнее подчеркивание и уточнение, больше сообщают о значениях поля. | String |
id_field (дополнительно) |
Прежние версии: Этот параметр игнорируется, поскольку все несистемные поля переносятся в выходную таблицу. | Field |
output_coordinate_system (дополнительно) |
Пространственная привязка выходного набора классов объектов. По умолчанию используется GCS_WGS_1984. Инструмент проецирует, используя указанную пространственную привязку. Если входная и выходная координатные системы используют разные датумы, применяется трансформация по умолчанию – на основе входной и выходной координатных систем и экстента данных. | Spatial Reference |
in_coordinate_system (дополнительно) |
Пространственная привязка входных данных. Если входная пространственная привязка не может быть получена из входной таблицы, по умолчанию используется система GCS_WGS_1984. | Spatial Reference |
Пример кода
Основное использование инструмента "Конвертировать обозначения координат" (Convert Coordinate Notation) с одним входным полем.
# import arcpy module
import arcpy
# set locals variables
in_tab = r"c:\data\notation.gdb\loc_mgrs"
out_pts = r"c:\data\notation.gdb\loc_final"
# call Convert Coordinate Notation with MGRS as input field.
# leaving out spatial reference parameter will default to WGS 1984
arcpy.ConvertCoordinateNotation_management(in_tab, out_pts, "m10d", "#", "MGRS", "DD_1")
Основное использование инструмента "Конвертировать обозначения координат" (Convert Coordinate Notation) с двумя входными полями.
# 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])
Пример использования ConvertCoordinateNotation форматами UTM_ZONES и UTM_BANDS .
# imports
import arcpy
arcpy.env.workspace = r"c:\data\ccn.gdb"
# export_utm58 table contains coordinates in UTM_BANDS format
# where N and S indicate latitude bands,
# for example, 58S4144921393176 - here 58S is latitude band
input_table = 'export_utm58'
# the coordinate values in output point table will be in UTM_ZONES format
# for example, 58N4144921393176 - note that it is now 58N because
# the point is in UTM 58 North zone
output_points = 'utm_zone18'
spatial_ref = arcpy.SpatialReference('WGS 1984')
try:
arcpy.ConvertCoordinateNotation_management(input_table, output_points, "LOCS", "",
"UTM_BANDS", "UTM_ZONES", "", spatial_ref)
print(arcpy.GetMessages(0))
except Exception as ex:
print(ex.args[0])
Пример ConvertCoordinateNotation, конвертирующий выходные текстовые значения координат в десятичных градусах в числовые значения с плавающей точкой. Помните, что вместо S и W будет использоваться знак "минус".
# imports
import arcpy
# output from Convert Coordinate Notation tool
# for DD_2 (and also for DD_1) format, the output values are in string format
# for example, for DD_1, the output values may be '43.63872N 116.24135W'
in_table = r"c:\data\ccn.gdb\ccn_dd1"
# add a field of type DOUBLE to store the numeric longitude value
arcpy.AddField_management(in_table, "DDLonDbl", "DOUBLE")
# now call CalculateField tool to convert the values, 'W' is negative
expr = """def convertToDouble(fldval):
val = float(fldval[:-1])
if fldval[-1:] == 'W':
return val * -1.0
else:
return val"""
try:
# DDLon field contains longitudes in a string field
arcpy.CalculateField_management(in_table,"DDLonDbl","convertToDouble(!DDLon!)","PYTHON_9.3",expr)
except:
print arcpy.GetMessages()
# add another field to store the numeric longitude value
arcpy.AddField_management(in_table, "DDLatDbl", "DOUBLE")
# call CalculateField again to convert the values, 'S' is negative
expr = """def convertToDouble(fldval):
val = float(fldval[:-1])
if fldval[-1:] == 'S':
return val * -1.0
else:
return val"""
try:
# DDLat field contains latitudes in a string field
arcpy.CalculateField_management(in_table,"DDLatDbl","convertToDouble(!DDLat!)","PYTHON_9.3",expr)
except:
print arcpy.GetMessages()