Для меня, как подсказывает ваш вопрос, я много использую Python, в частности, для автоматизации пакетной обработки, а также для создания любых повторяющихся специализированных вычислений. В настоящее время я не использую ArcPy, потому что не могу позволить себе лицензии ESRI в качестве внештатного ГИС-консультанта. Я часто использую GDAL / OGR, Shapely, PostGIS, Numpy и SciPy, хотя все в моем списке можно было сделать с помощью ArcPy (и некоторые из них были). Примеры включают в себя:
- Получение зональной статистики для всей Великобритании, для которой сначала требуется наложение мозаичных 20-километровых растровых листов двух разных типов данных, выполнение некоторой «математики» для этих растров, объединение эквивалентной площади 10-километровых векторных многоугольных плиток, вычисление зональной статистики результата растровая математика и соединение таблицы статистики с исходными векторными данными перед выводом в шейп-файлы в логической структуре каталогов и записью на CD для клиента.
- Выполнение последовательных вычислений видимости каждые 100 м вдоль дороги или пути, а затем присвоение результатов расчета в виде значений M обратно в данных маршрута.
- Автоматизированный процесс создания трехмерных моделей ландшафта путем наложения мозаики / объединения листов растровых и векторных данных, обрезки до требуемой области и последующего преобразования в собственный (не ГИС) 3D-формат. Я использую маленькую библиотеку Python, которую я разработал для этой цели, в моей работе с фрилансерами.
- Один огромный проект, над которым я работал в команде, использовал ArcPy для создания пакетных процессов для преобразования или получения новых данных из данных ГИС в формат с функциями, которые могут быть использованы процедурным генератором компьютерных игр. Сценарии геообработки были вызваны «ведомым драйвером» пакетной обработки, также написанным на Python и работающим через Django.
- Python очень полезен даже для небольших задач, особенно там, где есть какое-либо повторение (например, функция обработки объекта). В ArcGIS Model Builder значительно улучшены средства управления потоком, появившиеся в версии 10, но, несмотря на это, он все еще часто не может обеспечить необходимый контроль и / или быстрее и проще просто написать процесс в ArcPy, чем пытаться Принудительный Модельер.
- Я создал инструмент в Python для выполнения анализа развернутого пути (чтобы вычислить, может ли очень длинное транспортное средство следовать заданному маршруту и где трейлер, вероятно, будет вклиниваться в крутые повороты между зданиями. Это еще один специалист, работающий на фрилансе). арсенал.
- Генерация вывода из Mapnik
- До того, как ArcGIS стал многопоточным, я использовал Python, чтобы позволить мне порождать подпроцессы, которые иногда могли ускорить долгие, медленные вычисления без лишних затрат ArcMap, которые загромождали память.
Python в коммерческой геообработке великолепен, потому что у вас есть вся скорость и краткость сценариев, которые предоставляет Python, и скорость обработки скомпилированного кода в стиле C, потому что, хотя Python интерпретируется, он в основном вызывает компилируемый код в стиле C под капотом. Python предоставляет клей, который может удерживать вместе множество последовательных задач геообработки, и приведенный выше список - лишь небольшой снимок некоторых вещей, для которых я лично его использую. В «Старые добрые времена» мы настраивали файл Watch и позволяли ArcInfo записывать ввод командной строки, а затем очищать AML (который помнит Arc Macro Language!), Чтобы сделать повторно используемый процесс геообработки вызовов, склеенных вместе с AML. В наши дни все не так уж и отличается, за исключением того, что мы используем Python или C # в качестве клея.