Сводка
Преобразует обозначения координат, содержащиеся в одном или двух полях, из одного формата в другой.
Использование
Система координат значений в полях X (Долгота) и Y (Широта) указана с параметром Входная система координат. По умолчанию это система координат GCS_WGS_1984, если только входная таблица не является классом пространственных объектов, для которого по умолчанию используется координатная система входных объектов.
Поддерживаются следующие форматы:
- Десятичные градусы (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 являются форматами координат отдельной строки, что означает, что координату содержит только одно поле.
Дополнительные сведения см. в описании параметра Формат входных координат.
Все поля из входной таблицы, включая поле OID и поля входного формата, переносятся в выходной класс точечных объектов. Значения поля OID могут использоваться для различения корректных конвертированных обозначений, если включена опция Исключить записи с недопустимым представлением.
Имена выходных полей соответствуют именам обозначений выходных координат; например, если выходной формат – MGRS, новое выходное поле будет названо MGRS.
Если в выходных данных уже существует поле с тем же именем, что и входное поле, имя скопированного поля добавляется с уникальным номером.
Отключите параметр Исключить записи с недопустимым представлением, чтобы сохранить информацию, относящуюся ко всем входным записям. Для идентификации записей с недопустимым представлением можно использовать инструмент Проверить геометрию.
При наличии записей с недопустимыми обозначениями в сообщения инструмента будет включен путь к файлу журнала, содержащего ID всех некорректных записей.
Инструмент Добавить поля X, Y можно использовать для добавления двух полей —POINT_X и POINT_Y– в выходной класс точечных объектов. Эти поля содержат координаты точки в единицах системы координат класса пространственных объектов.
Синтаксис
ConvertCoordinateNotation(in_table, out_featureclass, x_field, y_field, input_coordinate_format, output_coordinate_format, {id_field}, {spatial_reference}, {in_coor_system}, {exclude_invalid_records})
Parameter | Объяснение | Тип данных |
in_table | Это может быть текстовой файл или таблица. Точечные объекты также допустимы. | Table View |
out_featureclass | Выходной класс точечных объектов. Таблица атрибутов будет содержать все поля входной таблицы вместе с полями, содержащими конвертированные значения в выходном формате. | Feature Class |
x_field | Поле из входной таблицы, содержащей значение долготы. Для DD_2, DD_NUMERIC, DDM_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 |
spatial_reference (Дополнительный) | Пространственная привязка выходного набора классов объектов. По умолчанию используется GCS_WGS_1984. Инструмент проецирует, используя указанную пространственную привязку. Если входная и выходная координатные системы используют разные датумы, применяется трансформация по умолчанию – на основе входной и выходной координатных систем и экстента данных. | Spatial Reference |
in_coor_system (Дополнительный) | Пространственная привязка входных данных. Если входная пространственная привязка не может быть получена из входной таблицы, по умолчанию используется система GCS_WGS_1984. | Coordinate System |
exclude_invalid_records (Дополнительный) | Если exclude_invalid_records задано как True, в выходные точки будут конвертированы только корректные обозначения. В противном случае некорректные записи будут включены как пустая геометрия.
| Boolean |
Пример кода
Использование инструмента ConvertCoordinateNotation с одним входным полем.
# 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")
Использование инструмента 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])
Пример использования 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"""
# DDLon field contains longitudes in a string field
arcpy.CalculateField_management(in_table,"DDLonDbl","convertToDouble(!DDLon!)","PYTHON_9.3",expr)
# 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"""
# DDLat field contains latitudes in a string field
arcpy.CalculateField_management(in_table,"DDLatDbl","convertToDouble(!DDLat!)","PYTHON_9.3",expr)
Environments
Информация о лицензиях
- Basic: Да
- Standard: Да
- Advanced: Да