Статьи

Зачем ГИС-специалисту Python (+ подборка полезных библиотек)

Программирование
Время прочтения: 3 минуты
Программы ГИС обладают многими преимуществами для анализа и визуализации пространственных данных. Однако часто возникает потребность в работе с большими данными, или нужно создать собственный алгоритм обработки геоданных. В этом случае становится проблематично использовать готовые инструменты ГИС, которые имеют ограниченный набор функций и довольно затруднительно работают с большим объемом данных. Например, если в наборе данных более 500 тысяч точек, QGIS начинает заметно тормозить или вообще перестает работать, не говоря уже о работе с большими графами дорожной сети.
Учитывая рост востребованности геоданных, задачи обработки пространственных данных становятся все более популярными в ГИС-среде, и навыки программирования сейчас входят в базовый набор знаний ГИС-специалиста.
Наиболее популярным языком программирования для работы с пространственными данными является Python: с помощью него можно легко обработать большие наборы пространственных данных и разработать скрипты для индивидуальных задач.

Что есть в этой статье

  • Советы для начала работы с Python
  • Что такое Anaconda и Google Colab
  • Список полезных Python-библиотек и их назначение
  • Примеры задач, решаемых с помощью Python

Python в сфере пространственных данных

В Python легко работать с пространственными данными – есть много различных библиотек и обширная документация. Все библиотеки удобно устанавливать через Anaconda. А для начала рекомендую работать в Google Colab.
Google Colab – сервис, созданный Google, который предоставляет возможность работать с кодом на языке Python через Jupyter Notebook, не устанавливая на свой компьютер дополнительных программ. Чуть подробнее мы писали о нем в тексте о интерактивных блокнотах для работы с данными.
Пример использования Google Colab – операции с файлом GeoJSON с GeoPandas

Список библиотек Python для работы с ГИС

Библиотеки в Python – это код, написанный разработчиками, чтобы остальным пользователям было удобно работать. Вот некоторые основные библиотеки для работы с пространственными данными в Python:
  • Pandas: представляет данные в табличной форме (без этой библиотеки никуда). Как Excel, только круче!
  • GeoPandas: основная библиотека для работы с пространственными данными. Как pandas, но умеет хранить геометрию в отдельном столбце. С помощью geopandas можно совершить почти все операции работы с геометрией объектов, доступные в QGIS.
  • Numpy: библиотека для тех, кто знает, что такое матрица. На основе Numpy написаны многие другие библиотеки, например, Pandas, поэтому часть операций Numpy можно совершать с помощью Pandas.
  • SciPy: с помощью этой библиотеки можно вычислить кучу всего, главное — внимательно читать документацию. Многие данные для нее надо представлять в виде матриц Numpy.
  • GDAL: библиотека-переводчик для растровых и векторных геопространственных форматов данных.
  • Fiona: читает и записывает файлы пространственных данных.
  • Shapely: геометрические объекты, предикаты и операции.
  • PySAL: библиотека функций пространственного анализа, написанная на Python, предназначенная для поддержки разработки высокоуровневых приложений.
  • ArcPy: ArcPy это библиотека с помощью которой можно реализовывать дополнительный функционал в arcgis. Создать инструменты геообработки, автоматически генерировать карты и многое другое.
В 99% случаев в начале работы необходимо уметь работать с табличками в Pandas и GeoPandas.

Не только анализ данных

С помощью Python можно визуализировать пространственные данные, делать красивые и понятные карты.
Благодаря библиотекам, таким как Cartopy, Folium, Basemap и Plotly, можно создавать интерактивные или статистические карты. Иногда для этого надо написать всего одну строчку кода :)

Примеры ГИС задач, решаемых с помощью Python

  1. Построение оптимального маршрута доставки товаров. Для этого пригодятся библиотеки для маршрутизации (например, NetworkX)
  2. Анализ данных для разработки маркетинговой стратегии. Python может использоваться для анализа данных о местоположении клиентов и конкурентов, и для этого идеально подойдет библиотека GeoPandas.
  3. Разработка климатических моделей и прочий сложный растровый анализ.
  4. Обработка космоснимков: с помощью анализа растров в библиотеке Rasterio можно работать с космическими снимками.
  5. Визуализация данных с помощью интерактивных кластерных карт для определения паттернов в данных.
Если вы новичок в Python, но тоже хотите начать автоматизировать задачи в своих проектах, загляните на курс "Введение в Python", где мы начинаем разбирать работу с библиотеками для решения ГИС задач. Присоединяйтесь!
Материал подготовила Анна Пикулева