Кажется, все работает правильно, таблица данных и атрибуты верны, новые добавленные точки кажутся правильными относительно друг друга. Проблема в том, что я пытаюсь обновить существующий файл. Недавно добавленные точки находятся далеко в другом месте. В приведенном здесь примере я попытался добавить те же координаты GPS (в десятичных градусах), что и существующая точка. Вы можете видеть первую запись: Y_Coord и X_Coord для Well_1 такие же, как 1.
Однако новая точка находится намного ниже других точек.
Я сразу думаю это своего рода проблема с координатами, и поиск по этой проблеме также указывает на проблему с координатами, но я миллион раз проверял, чтобы убедиться, что шейп-файл, пограничный слой (только визуальная проверка) и кадр данных находятся в правильном состоянии. географический и проекционные системы координат. Используемая GCS — GCS_WGS_1984 (WKID: 4326), а PCS — WGS_1984_UTM_Zone_16N (WKID: 32616).
Я проверил дважды, трижды, миллион раз, чтобы убедиться, что системы координат совпадают. правильный. Я попытался специально назначить его в Python (хотя я не уверен, что называю его правильно.
Вопросы:
Правильно ли я определяю пространственную привязку в Python? Я чувствую как будто я просто вызываю объект, но на самом деле не инициирую его.
Если нет, есть ли способ конкретно указать Python, чтобы он применял это в правильном GCS/PCS?
Код: Выделить всё
import arcpy
#one coordinate only for testing
coords = [(1, (43.20779, -89.78513))]
# link to shapefile
shapefile = r'M:\ARC\gis_users\health\Missing_Wells\Missing_Wells.shp'
# Define the spatial reference (GCS_WGS_1984 = 4326, PCS_WGS_1984_UTM16N = 32616)
arcpy.SpatialReference(32616)
#use SHAPE@XY syntax to add point features to a point feature class
with arcpy.da.InsertCursor(shapefile, ['Well_ID', 'Y_Coord', 'X_Coord', 'SHAPE@XY']) as cursor:
#Insert new rows that include the well ID and a x,y coordinate pair
for Well_ID, (lat, lon) in coords:
cursor.insertRow((Well_ID, lat, lon, (lat, lon)))
print('added')
...
sys.exit()
Подробнее здесь: https://stackoverflow.com/questions/793 ... -correctly
Мобильная версия