Я новичок в скриптах Python в ArcGIS, но не новичок в ModelBuilder.
Я хотел бы знать преимущества Python по сравнению с ModelBuilder.
Когда нам следует писать сценарий Python для автоматизации ГИС, а не использовать ModelBuilder?
Какие возможности автоматизации Python мы не можем найти в ModelBuilder?
источник
Если вы работаете исключительно в рамках ArcGIS, есть несколько соображений, которые я бы учел при попытке определить подход.
Учитывая эти соображения:
Вероятно, нет ответа на вопрос «что лучше» для личного использования, но если вы ищете возможности трудоустройства в долгосрочной перспективе, изучая Python, вы выделите себя из числа тех, кто знает, как использовать только предварительно запрограммированные инструменты, или просто знаю, как использовать ModelBuilder. Вы также даете себе возможность выйти за пределы Python for ArcGIS (ArcPy) и начать автоматизировать гораздо больше задач и проектов с помощью других проприетарных и ГИС-библиотек с открытым исходным кодом, а также многих не-ГИС-библиотек (т. Е. Базы данных). , манипуляции с изображениями, статистика и т. д.).
источник
Model Builder - отличный и простой в освоении язык визуального программирования и хороший вход в ГИС-программирование в целом. Но в некоторых случаях Python может сделать больше.
Одним из примеров является интеграция ГИС-библиотек не-ESRI. Почти все ГИС с открытым исходным кодом могут быть адресованы через Python (например, GRASS , Sextante , QGIS , SAGA ). Это мне очень помогло, потому что у меня есть только лицензия ArcView. Поэтому каждый раз, когда я не могу использовать определенный инструмент геообработки в ArcGIS, я смотрю, какие другие опции доступны в Open Source GIS. Затем я беру эти инструменты OpenSource и объединяю их с инструментами ArcGIS либо в более крупном скрипте Python, либо интегрирую их в ModelBuilder через меньший скрипт Python.
Я уверен, что другие участники могут назвать больше преимуществ.
источник
При использовании Python и ArcGIS вы получаете всю функциональность Python в дополнение к тому, что вы уже имели в ArcGIS. Если вам нужна такая сила и гибкость, зависит от ваших пожеланий. Кроме того, знакомство с языком программирования, таким как Python, и его использование на самом деле требует времени. Если эти инвестиции того стоят, решать только вам. Тем не менее, для серьезной обработки данных реальный язык сценариев является очень хорошим дополнением в вашем арсенале.
Помимо любой функциональности, которую может пропустить ModelBuilder, существует также более фундаментальное обсуждение. В общем, сценарии гораздо более подходят для создания сложных рабочих процессов. Код обрабатывается сверху вниз, и сложные задачи можно подразделить на более мелкие подзадачи, используя, например, функции. или объекты. Графический инструмент, такой как конструктор моделей, имеет тенденцию превращаться в большие спагетти.
источник
Я неравнодушен к созданию скриптов Python. Писать код веселее, чем возиться с подключением линий к блокам и тому подобным, по крайней мере для меня.
Что действительно хорошо в скриптах Python, так это то, что вы можете запланировать выполнение ваших скриптов в удобное для вас время. Если у вас есть сценарий, выполнение которого занимает некоторое время или его необходимо запускать в нерабочее время, это действительно удобно. Вы можете увидеть пример того, как запланировать сценарий здесь .
И, как упоминает @Aaron, вы можете легко настроить цикл в скрипте Python.
Если вы только начинаете использовать сценарии Python, вы можете создать модель с помощью Model Builder и экспортировать ее как сценарий Python. Я делаю это иногда, если мне трудно понять, как использовать несколько инструментов в скрипте. Это может помочь вам понять, как составлять сценарии.
источник
Я обнаружил, что, похоже, застрял без решения в большей степени со сборщиком моделей, чем со сценариями Python. Для меня характер «черного ящика» создателя модели затрудняет поиск проблемы.
Я также обнаружил, что могу найти гораздо больше помощи по Python. Я склонен находить множество тупиковых тем и тем о сборщике моделей. Также есть меньше примеров, где, как и в случае с python, вы можете найти небольшие фрагменты большинства частей любого сценария, который вы пишете.
источник