Есть ли разница в производительности между окном Python и инструментом сценариев Python?

9

Есть ли разница в производительности между запуском скрипта Python в окне Python и запуском его как инструмента скрипта Python из набора инструментов в ArcGIS Desktop 10.0?

Иногда мне нужно использовать ArcPy и запустить ArcGIS. По моему недавнему опыту я могу запустить тот же сценарий через панель инструментов и в окне python, и панель инструментов кажется немного быстрее.

Острый перец
источник
При использовании автономных скриптов: вам не нужно открывать Arcmap, что экономит ваше время и ресурсы (процессор и память). Я не могу позволить себе достойный компьютер в данный момент.
gm70560
Панель инструментов также не может коснуться документа карты CURRENT. Вы должны указать mxd, чтобы сделать что-нибудь с определенной картой в инструменте, тогда как вы можете использовать arcpy.mapping.MapDocument ("CURRENT") в окне Python.
Eseglem
3
@eseglem, вы определенно должны иметь возможность использовать CURRENTключевое слово для доступа к текущему документу карты в инструменте-скрипте, если он выполняется внутри процесса.
blah238
1
@ gm70560 Когда вы запускаете автономный скрипт, вам нужно создать некий экземпляр Arcmap, который требует времени. В окне Python, которое уже запущено.
Мэтью Снейп
2
import arcpyзаймет много времени как отдельный скрипт (или часть набора инструментов), тогда как в ArcMap он уже является частью пространства имен окна python.
Майкл Маркиета

Ответы:

5

И Майкл Маркиета, и gm70560 верны. Если вы выполняете большие задачи геообработки, я бы определенно сделал это с помощью автономного скрипта Python, предпочтительно запускаемого из командной строки, а не из IDE. Для такого рода задач затраты на импорт ArcPy того стоят.

Однако небольшая задача, особенно та, которая требует пользовательского ввода, обычно быстрее и удобнее в ArcMap - если только вам не нужно открывать ArcMap специально для этой цели, в этом случае у вас есть накладные расходы на запуск самой ArcMap плюс некоторое время простоя для подключения к все ваши базы данных, на которые есть ссылки в MXD (что, если они подключены через медленное сетевое соединение, может быть утомительным).

Аналогично, пакетную обработку даже небольших задач, на мой взгляд, лучше выполнять в автономном скрипте Python, чем с помощью набора инструментов в ArcMap, потому что вы принимаете этот импорт только один раз и не перегружаете ArcMap.

Сделав много автоматизированной геообработки с помощью скриптов Python, я бы по умолчанию запустил их как отдельные процессы, потому что мне нравится дополнительная скорость и гибкость. Большинство задач, которые выполняются быстрее в наборе инструментов, обычно достаточно малы, чтобы я мог их запустить в ModelBuilder, не беспокоясь о написании какого-либо кода.

MappaGnosis
источник