Страница 1 из 1

Получение текущей СК проекта

Добавлено: 13 окт 2022, 23:16
zubenko1592
Подскажите, пожалуйста, какой командой Python можно получить в переменную текущую систему координат проекта аркгис про чтобы ее дальше использовать в качестве параметра инструментов.

Почему не могу вручную задать? - по тому что планирую скрипт использовать в разных проектах и хочу автоматизировать выбор СК. если оставлять параметр пустым - автоматически устанавливается ВГС84.

Re: Получение текущей СК проекта

Добавлено: 02 ноя 2022, 09:45
gork
>>> mxd = arcpy.mapping.MapDocument('CURRENT')
>>> mxd
<MapDocument object at 0x184bae90[0x1ec0afa0]>
>>> df = mxd.activeDataFrame
>>> df
<DataFrame object at 0x1ec0a770[0x1ea34a48]>
>>> df.spatialReference
<SpatialReference object at 0x1ec0a4f0[0x1b1171e8]>
>>> df.spatialReference.PCSName
u'Pulkovo_1942_GK_Zone_10'

Re: Получение текущей СК проекта

Добавлено: 12 ноя 2022, 00:26
zubenko1592
Спасибо!
для ArcGis Pro это выглядит во так:
arcpy.mp.ArcGISProject('CURRENT').activeMap.spatialReference.PCSName

только теперь еще один вопрос:

в midelbuilder`е через утилиту "вычислить значение" с помощью этого кода я получаю текущую СК проккта в еременную типа "любое значение" (допустим ее имя "СК")

Далее в поле "Система координат" инструмена "XY таблица в точки" вписываю %СК% (чтобы установить этот параметр как текущей ск). Но это поле просто сбрасывается. и устанавливается автоматически WGS84...

Как в этот параметр автоматически вставлять такущую СК проекта?

Re: Получение текущей СК проекта

Добавлено: 14 ноя 2022, 10:34
gork
Annotation 2022-11-14 123258.png
Annotation 2022-11-14 123258.png (29.82 КБ) 3160 просмотров
Может проще выбрать систему координат карты?

Re: Получение текущей СК проекта

Добавлено: 14 ноя 2022, 11:20
gork
Если хочется взять систему координат из активной карты, то нужно в поле Expression инструмента CalculateValue писать arcpy.mp.ArcGISProject('CURRENT').activeMap.spatialReference, без .GCSName и PCSName. И поставить Data type CoordinateSystem.
Потом соединить результат с инструментом XY TableToPoint и выбрать результатом соединения параметр Coordinate System.
У меня английская версия, не знаю как по-русски всё это будет называться.

Re: Получение текущей СК проекта

Добавлено: 14 ноя 2022, 16:42
zubenko1592
gork писал(а):
14 ноя 2022, 11:20
Если хочется взять систему координат из активной карты, то нужно в поле Expression инструмента CalculateValue писать arcpy.mp.ArcGISProject('CURRENT').activeMap.spatialReference, без .GCSName и PCSName. И поставить Data type CoordinateSystem.
Потом соединить результат с инструментом XY TableToPoint и выбрать результатом соединения параметр Coordinate System.
Спасибо

Изображение

Re: Получение текущей СК проекта

Добавлено: 14 ноя 2022, 22:10
zubenko1592
gork писал(а):
14 ноя 2022, 10:34
Может проще выбрать систему координат карты?
Наверное проще. только если использовать эту модель только в 1м проекте.
а если постоянно в разных с разными ск и модель должна выдавать файл в СК проекта - удобнее это автоматизировать.

Re: Получение текущей СК проекта

Добавлено: 15 ноя 2022, 09:25
gork
zubenko1592, она и будет сама меняться, какая текущая СК будет у карты - такая и подставится

Re: Получение текущей СК проекта

Добавлено: 15 ноя 2022, 21:40
zubenko1592
gork писал(а):
15 ноя 2022, 09:25
она и будет сама меняться, какая текущая СК будет у карты - такая и подставится
Если руками в модели выбрать "текущая СК" это выражение автоматически заменится текущей ск и в модели сохраниться конкретная без автоматической подстановки.

А тот код, который мы обсуждаем даст именно нужный результат.