Использование Python или построителя моделей для создания слоев XY

У меня есть несколько столбцов данных XY, которые я хочу импортировать в ArcMap. Чтобы сделать это вручную, я запускаю скрипт Excel To Table в разделе «Инструменты преобразования», затем щелкаю правой кнопкой мыши по таблице и выбираю «Показать данные XY», повторяющиеся для каждой пары значений XY. Я построил модель, которая передает выходные данные сценария «Excel to Table» на вход инструмента «Make XY Event Layer». Проблема в том, что я не могу выбрать поля X или Y в начале без импортированной электронной таблицы, но когда я запускаю ее, я получаю ошибки «Нет значения поля X» и «Нет значения поля Y». Затем я построил модель, передающую выходные данные сценария «Excel to Table» сценарию, который я написал для отображения данных XY. Когда я запускаю эту модель, я получаю: «ExecuteError: Не удалось выполнить. Параметры недействительны. ОШИБКА 000728: Поле Latitude_decimal_degrees_ не существует в таблице». Можно ли выполнить этот процесс с помощью Python или Построителя моделей, и если да, то как?


person user3429841    schedule 12.09.2014    source источник
comment
Как выглядит ваш сценарий и что вы имеете в виду под «не работает так, как я хочу»?   -  person GISGe    schedule 12.09.2014
comment
Убедитесь, что ваши имена полей действительно существуют, что они действительны (без цифр и пробелов) и что формат поля Excel читается ArcGIS как число. Иногда помогает добавление поля с уникальным идентификатором.   -  person GISGe    schedule 12.09.2014
comment
В какой версии Excel представлены исходные данные? Также какую версию ArcMap вы используете. В зависимости от версии вашего файла Excel ArcMap может поддерживать или не поддерживать его. Я знаю, что в ArcMap 10.1 и новее файлы Excel для 2007 и новее не поддерживаются.   -  person Ashatz11    schedule 18.09.2014


Ответы (1)


Насколько я понимаю, у вас есть одна таблица базы геоданных или DBF с несколькими полями координат в ней, и вы хотите создать несколько слоев объектов для каждой пары координат XY. Если это так, запустите это в окне Python в ArcMap, и он должен помочь:

import arcpy
Table= r"C:\SomeDataPath\MyTable"
# Replace 'X' and 'Y' in each sublist with the name of the respective X and Y 
# field for each coordinate pair in the table and replace 'lyrName' with the
# name you want to  give to the FeatureLayer to be created. 
# Expand with more sublists as needed
CoordinateFields = [
                    ["X", "Y", "lyrName"], 
                    ["X", "Y", "lyrName"], 
                    ["X", "Y", "lyrName"]
                   ]
SR = arcpy.SpatialReference("Name of the Projection used by coordinates")
for CoordinatePair in CoordinateFields:
    arcpy.MakeXYEventLayer_management(Table, 
                                      CoordinatePair[0], 
                                      CoordinatePair[1], 
                                      CoordinatePair[2],
                                      SR)

Наслаждаться!

person MrBubbles    schedule 26.09.2014