Введение в геоинформационные системы
Современные ГИС объединяют специалистов разных направлений. Для тех, кто только начинает путь в геоинформационные системы, особенно в современных подходах к пространственному анализу с применением Data Science, первые шаги могут показаться сложными, а количество терминов и технологий — пугающим.
В этой статье мы рассмотрим 5 основных инструментов, которые Вы можете начать осваивать прямо сегодня. Мы надеемся, что Вам понравится.
Что такое геоинформационная система?
Геоинформационная система (ГИС) – это совокупная структура аппаратного и программного обеспечения, пространственных данных, процессов и алгоритмов для их обработки и анализа.
С функциональной точки зрения ГИС может собирать, хранить, обрабатывать, анализировать и визуализировать пространственные данные и создавать интерактивные карты. С точки зрения программного обеспечения — это частично система автоматизированного проектирования для производства данных, СУБД для управления данными и выполнения запросов, инструмент анализа пространственных данных и их визуализации для картографического и картографического представления.
Первые шаги в геопространственных технологиях
ГИС-специалисты работают на пересечении Data Science и геоинформационных технологий, поэтому в статье описаны методы и инструменты, которые можно быстро освоить и применить в работе в обеих областях.
Статья включает в себя примеры, а также ссылки на полезные ресурсы.
Только инструменты, без теории (почти)
В этой публикации я не погружаюсь в основы пространственного анализа и математики в ГИС (об этом можно почитать в нашем блоге здесь и здесь), а сделала акцент на подходе «больше в ширину, чем в глубину», чтобы описать ключевые инструменты, которые позволят быстро начать применять современные геопространственные технологии.
Статья содержит описание как привычных инструментов визуализации и геостатистического анализа, так и возможностей пространственного моделирования и предиктивной геоаналитики.
Чтобы описание было последовательным, применение инструментов представлено в контексте широко используемой методологии CRISP-DM.
Я надеюсь, что публикация поможет систематизировать как новые знания, так и всё то, что Вы уже знаете, и даст понимание, как устроена отрасль геоинформационных технологий и систем.
Данные — это золото. Эта песня звучит с разными вариациями уже не первый десяток лет. Но лозунг снова становится актуальным, так как применение инструментов, основанных на анализе больших геоданных и методах искусственного интеллекта, всё-таки постепенно начинает замещать работу опытных экспертов в решении многих отраслевых задач геопространственного анализа.
Заменят ли новые технологии потребность в работе геоаналитиков и аналитиков данных?
Этот вопрос заводит многих (особенно тех, кто работает или только учится работать в этой области). Концепция пугающая, но опасения пока остаются преувеличенными, по мнению большинства участников подобных дискуссий. Как мантру коллеги по цеху повторяют друг другу, что компаниям всегда будут нужны хорошие аналитики, особенно те, мыслит стратегически (или хотя бы видит целиком и знает, как устроен процесс, в котором работает) и умеет общаться с заказчиками, разработчиками и специалистами по Data Science.
Получается, что искусственный интеллект, скорее всего, не займет наши места. Но вот другие специалисты, использующие современные эффективные технологии для геопространственного анализа, вполне могут это сделать.
Представим ситуацию: Вы хотите стать аналитиком, но так и не научились пользоваться excel и интернет. В этом контексте ваша кандидатура будет выглядеть бледно по сравнению с конкурентами. Очень скоро то же самое можно будет сказать о Python и инструментах искусственного интеллекта, которые сегодня уже изучают в школах.
Чтобы Вас по-прежнему считали сильным экспертом, нужно создать техническую базу и научиться использовать технологии анализа данных и искусственного интеллекта в пространственном анализе.
Задачи пространственного анализа
Пространственный анализ включает в себя целый ряд направлений, от базовой обработки геоространственных данных до интеллектуальной геоаналитики с применением машинного обучения.
Какие задачи решаются наиболее часто с помощью геопространственного анализа? Их не так много и они могут быть сгруппированы по-разному, например так:
Картографирование и геовизуализация — пространственный анализ «на глаз»
Демонстрация закономерностей. Отображение значимых паттернов и корреляций в пространственных данных.
С помощью визуализации можно объединить различные наборы данных, показать их в понятной форме, подходящей для изучения и анализа. Визуализация данных позволяет вырабатывать и проверять гипотезы и оценивать качество моделей, построенных ранее.
- Визуализация существующих данных для анализа. Задача визуализации существующих данных для того, чтобы что-то проанализировать и найти закономерности путем изучения визуализации. Например, динамическая карта миграций антилоп по Африке не просто демонстрирует их путь, но и помогает визуально, без дополнительных аналитических инструментов, выявлять закономерности, связанные с изменением климата, доступностью пищи или воды, и разрабатывать стратегии сохранения видов.
- Визуализация результатов анализа и моделирования. Также важно представлять результаты анализа данных и моделирования, чтобы сделать их доступными и понятными для различных аудиторий. Возвращаясь к примеру с миграциями антилоп: когда мы анализируем данные и выявляем ключевые факторы, влияющие на миграционные пути, геовизуализация позволяет наглядно демонстрировать эти результаты. Интерактивные карты могут показать, как изменения в распределении источников воды или пастбищ влияют на маршруты миграций.
Исследовательский Анализ Пространственных Данных (Exploratory Spatial Data Analysis — ESDA)
Выявление закономерностей, аномалий или интересных фактов. Применяется для изучения возможных взаимосвязей и корреляций в данных, использования статистических методов и тестирования гипотез.
Поиск частых шаблонов и ассоциативных правил
Анализ пространственных данных с целью выявления пространственных закономерностей и аномалий, которые могут не быть сразу очевидны, поиск ассоциативных правил.
Классификация
У нас есть объекты, мы хотим отнести их к одному из известных классов. Например, определить принадлежность изображения к какому-то классу.
Классификация включает в себя процесс отнесения объектов или явлений к одной из заранее определенных категорий или классов на основе их характеристик. В задачах классификации имеется набор заранее определенных классов, и целью является определение, к какому классу принадлежит каждый объект.
Например, в землепользовании и городском планировании востребована классификация участков земли по типу использования (жилой, коммерческий, промышленный и т. д.) для разделения городских территорий на зоны землепользования при определении стратегий развития территории. В сельском хозяйстве — классификация полей по типам культур или состоянию растительности, определение зон с различной урожайностью или состоянием почв для применения соответствующих удобрений.
Пространственная кластеризация
Кластеризация связана с группировкой объектов или явлений на основе сходства их характеристик, без использования предварительно определенных классов. Цель кластеризации состоит в выделении групп объектов, которые схожи между собой, но отличаются от объектов в других группах.
Пространственная кластеризация — это метод анализа данных, при котором множество пространственных объектов группируется в кластеры, основываясь на их схожести и пространственной близости. Кластеры формируются таким образом, чтобы минимизировать внутреннее расстояние между объектами внутри кластера и максимизировать расстояние между различными кластерами.
Например, в розничной торговле кластеризация помогает определить оптимальные места для открытия новых магазинов или служб доставки на основе распределения целевых клиентов или существующих точек продаж (кластеризация районов по покупательской активности и демографическим характеристикам).
Прогнозирование
Прогнозирование будущих пространственных явлений и трендов на основе существующих данных и моделей. Использование статистических моделей и моделей машинного обучения для прогнозирования будущих пространственных паттернов и сценариев.
Прогнозирование (или предиктивный анализ) исторически не считается частью ESDA (Exploratory Spatial Data Analysis, исследовательского пространственного анализа данных). После того как выявлены основные закономерности и паттерны с помощью ESDA, их можно использовать для разработки моделей, которые будут способны предсказывать будущие явления или изменения в пространственных данных.
Пространственное моделирование
Объяснение закономерностей и интересных паттернов. Разработка теорий или гипотез, объясняющих обнаруженные паттерны и тенденции и применение методов анализа для интерпретации выявленных паттернов и их возможных причин.
Каждая из этих составляющих пространственного анализа взаимосвязана и часто применяется итеративно, обеспечивая цикл обратной связи, который позволяет уточнять и оптимизировать процессы анализа и принятия решений.
Что делают специалисты по Data Science?
«Анализируют большие объёмы данных, разрабатывают модели и применяют машинное обучение, чтобы делать прогнозы и выявлять закономерности (сформулировала не я, Яндекс)».
«Data Science — это междисциплинарная область на стыке статистики, математики, системного анализа и машинного обучения, которая охватывает все этапы работы с данными. Она предполагает исследование и анализ сверхбольших массивов информации и ориентирована в первую очередь на получение практических результатов.» (это определение РБК).
Пространственную науку о данных (Spatial Data Science) можно определить как подмножество Data Science с поправкой на особенности пространственных данных (а методы анализа пространственных данных действительно заметно отличаются от обычных, — подробно о пространственных зависимости и неоднородности, а также о других особенностях можно почитать здесь).
Spatial Data Science сочетает в себе математику, статистику, машинное обучение, а также экспертизу в геоинформационных системах.
Например, чтобы найти оптимальные места для установки новых зарядных станций для электромобилей с применением геоданных и пространственного моделирования, придётся выполнить несколько задач, которые требуют знаний из разных областей.
- Собрать пространственные данные из разнообразных источников, включая информацию о существующих зарядных станциях, автомобильном трафике, демографии районов города и так далее.
- Обработать, очистить и объединить разные наборы данных.
- Проанализировать их для выявления текущего состояния и загрузки сети зарядных станций, понимания, сколько электромобилей ездят в разных районах и связи между использованием электромобилей и демографическими показателями районов.
- Сделать прогноз роста количества электромобилей и рассчитать, сколько и где понадобится новых зарядных станций, а также определить оптимальные локации для размещения новых зарядных станций.
- Создать интерактивные карты для визуализации AS IS и TO BE размещения зарядных станций, обеспечивая понимание текущей загрузки и потребностей в новых зарядных станциях.
Без применения специализированных методов обработать такой объём данных и учесть несколько переменных для анализа и прогнозирования было бы очень сложно.
Эклектика Spatial Data Science
Многообразие данных
- Векторные данные: точки, линии, полигоны, которые описывают объекты и явления.
- Растровые данные: пиксельные данные, обычно получаемые из изображений. Растр в ГИС аналогичен изображению формата JPG, но с внедренной географической информацией, обеспечивающей его геопозиционирование в программное обеспечении ГИС, а также с информацией, заключенной в пикселях, организованных в полосы.
С чем приходится работать:
Цифровая модель рельефа (ЦМР / DEM — Digital Elevation Model): 3D-модель поверхности Земли, исключая все объекты на ней, акцентируя внимание на самом рельефе.
Цифровая модель местности (ЦММ / DSM — Digital Surface Model): 3D-данные поверхности Земли и все объекты на ней (например, деревья и здания).
Космическая съемка: Включает оптико-электронные данные (снимки в различных спектральных диапазонах) и радарные данные, полученные с использованием космических технологий.
Аэрофотосъемка и съёмка с БПЛА: Использует аэрофотоснимки и данные, полученные с использованием беспилотных летательных аппаратов.
LiDAR — Light Detection and Ranging (растровые). Технология дистанционного зондирования Земли, которая применяет лазер для измерения расстояния между сенсором и объектом, создавая высокоточные 3D-карты поверхности Земли.
Топографические карты и планы: линии высот, гидрографию, дорожную сеть и т.д.
Тематические карты: Специализированные карты (почва, растительность, климат и т.д.)..
Геотегированные данные: Включают координаты, высоту и другие пространственные данные.
Данные с GPS-приёмников: Информация, полученная от глобальных систем позиционирования.
Данные с сенсоров и датчиков IoT: данные, полученные из различных устройств, подключенных к Интернету вещей, например, погодные станции или датчики качества воздуха.
Финансовые данные: Данные о транзакциях банковских карт и от фискальных операторов.
Множество форматов данных, в которые могут быть представлены геоданные, тоже впечатляет. Например, для растровых изображений доступны GeoTIFF, JPEG, PNG; векторные данные могут представляться через Shapefile, GeoJSON, KML; данные лидарных измерений обычно хранятся в форматах LAS, LAZ; данные с GPS-приемников часто используют форматы NMEA 0183, GPX; а также применяются облачные форматы, например, GeoParquet и Cloud Optimized GeoTIFFs, среди прочих. Более 200 типов файлов для работы с растровыми и векторными данными можно найти на сайте GDAL.
Каждый тип данных требует применения своих методов подготовки, обработки и анализа.
Многообразие задач. Наука о пространственных данных включает в себя несколько направлений, от обработки и анализа данных до моделирования и прогнозирования.
Быстро развивающиеся технологии. Технологии в области пространственных данных развивается с высокой скоростью. Новые технологии и методологии, такие как искусственный интеллект и машинное обучение, активно интегрируются в существующие практики пространственного анализа.
Широкий арсенал инструментов Spatial Data Science. Разнообразие доступных средств анализа, от облачных платформ до специализированного программного обеспечения, позволяет реализовывать самые сложные проекты геопространственного анализа.
Приоритет и выбор инструментов зависят от специфики проекта, доступных ресурсов и экспертизы команды. Разные этапы и задачи требуют использования разных инструментов в разной степени и их комбинации. Чтобы не запутаться, будем опираться на стандарт анализа данных, например на CRISP-DM.
Процесс на примере CRISP-DM
CRISP-DM (Cross-Industry Standard Process for Data Mining), представляет собой стандартизированный подход к анализу данных. Методология предлагает структурированный способ превращения «сырых» данных в готовые решения и прогнозы.
В контексте геопространственного анализа, CRISP-DM может быть адаптирован для организации анализа геопространственных данных.
CRISP-DM включает в себя следующие этапы:
- Понимание проблемы (Business Understanding): Определение целей и требований к проекту из перспективы бизнеса.
- Понимание данных (Data Understanding): Исследование и понимание свойств данных, с которыми предстоит работать.
- Подготовка данных (Data Preparation): Преобразование и очистка данных для последующего анализа.
- Моделирование (Modeling): Выбор и применение подходящих моделей и алгоритмов для анализа данных.
- Оценка (Evaluation): Оценка модели с точки зрения её точности и эффективности и соответствия бизнес-целям.
- Развертывание (Deployment): Внедрение модели в бизнес-процессы и измерение её вклада в достижение поставленных целей.
GDAL (Geospatial Data Abstraction Library) — фундамент, на котором построена современная инфраструктура геоинформационных технологий
Если вы работали с QGIS, GeoPandas или Fiona, то могли и не подозревать, что используете GDAL (Geospatial Data Abstraction Library).
Эта библиотека лежит в основе многих популярных инструментов и геосервисов. На неё опирается практически всё открытое и свободно распространяемое программное обеспечение ГИС и многие коммерческие решения.
GDAL — библиотека с открытым исходным кодом, написанная на C++. Она предназначена для чтения, записи, преобразования и анализа геопространственных данных. GDAL работает как с растровыми (чуть больше), так и с векторными (чуть меньше) данными.
GDAL работать начиная с любого уровня — от стандартной командной строки до сложных Python-скриптов.
В GDAL есть всё, что нужно для подготовки данных
С появлением дистанционного зондирования Земли, возможности сбора данных с мобильных устройств и других источников появилось много геоданных. Можно сказать, что сегодня для каждой точки на Земле есть десятки, а то и сотни наборов данных.
Эти данные могут быть полезными для решения конкретных задач, и еще более полезными, если есть возможность их собрать из разных источников и объединить, чтобы затем проанализировать комплексно, учитывая влияние друг на друга.
Но тут возникает проблема: все данные представлены в разных форматах, масштабах, проекциях. Например, у каждого поставщика спутниковых снимков свои требования к точности данных и свои стандарты. Качество и применимость для решения конкретных задач зависят от конкретных спутников, орбит, платформ.
До того, как начать анализировать данные, нужно их подготовить и обработать, создать подходящее изображение, выполнить целый набор процедур от получения данных из источников до предоставления качественных данных для анализа и машинного обучения.
Например, самый простой процесс подготовки подходящего для анализа изображения на основе необработанных спутниковых данных может выглядеть так:
- Инициализация данных: загрузка начальных сырых спутниковых данных в рабочую среду.
- Компоновка растра: сборка отдельных спектральных полос в многоканальное изображение, обеспечивая корректный порядок каналов (например, RGB или NIR-R-G).
- Оптимизация разрешения: адаптация пространственного разрешения данных (панорамирование с использованием более высокого разрешения).
- Коррекция контрастности и цвета: регулировка контраста и цветового баланса через алгоритмическое или ручное растягивание гистограммы и цветовую коррекцию.
- Восстановление или уточнение географической привязки изображения, ассоциируя пиксели с конкретными географическими координатами.
- Кадрирование и масштабирование изображения, а также конвертация географической проекции для совместимости и интеграции с другими пространственными данными.
GDAL был разработан специально для решения подобных задач.
GDAL в процессе CRISP-DM
В процессе CRISP-DM GDAL более всего востребован на двух этапах: 2. Data Understanding и 3. Data Preparation
GDAL на этапе Понимание данных (Data Understanding): исследование и понимание свойств данных, с которыми предстоит работать
Сбор первичных данных. На этапе сбора данных в первую очередь важен процесс извлечения данных, их конвертации и возможно, предварительной обработки. Для этого могут быть полезны следующие функции GDAL:
- gdal_translate: Конвертировать растровые данные в разные форматы.
- ogr2ogr: Конвертировать векторные данные между разными форматами.
Описание данных. Для описания данных, когда требуется узнать основные характеристики наборов данных и их метаданные, следующие инструменты могут быть полезными:
- gdalinfo: Получить общее описание растровых данных, включая размеры, тип данных, проекцию, статистику по бандам и т.д.
- ogrinfo: Аналогично gdalinfo, но для векторных данных.
Исследование данных. Для исследования данных, особенно для визуализации и первичного анализа, можно использовать:
- gdal_dem (модуль gdaldem): Визуализировать цифровые модели высот.
- gdaladdo: Создать или перестроить пирамиды уровней для ускорения визуализации.
- gdal_contour: Генерация контурных линий или полигонов из растровых данных высоты для визуализации.
- gdal_translate и gdalwarp: Для создания подмножеств данных и изменения разрешения (например, для быстрого просмотра).
- gdal_calc.py: Если требуется выполнить какие-то простые растровые операции для исследования данных (например, вычесть один слой из другого и т.д.).
Проверка качества данных может включать в себя проверку на наличие отсутствующих или аномальных значений, а также общую проверку целостности данных:
- gdalinfo: полезен для получения статистик по полосам растра и выявления возможных аномалий или отсутствующих данных.
- gdal_check: инструмент проверки качества растровых данных.
- gdal_edit.py: может использоваться для корректировки метаданных, если были обнаружены какие-то несоответствия в процессе проверки.
- nearblack: используется для обнаружения и изменения пикселей, которые почти черные/белые на границах изображений.
- gdal_fillnodata.py: заполнение отсутствующих значений с использованием интерполяции с соседних пикселей.
GDAL предоставляет базовые инструменты геообработки. В зависимости от конкретного проекта, могут потребоваться дополнительные специализированные инструменты или библиотеки.
GDAL на этапе Подготовка данных (Data Preparation): преобразование и очистка данных для последующего анализа
Выбор данных (Select Data) определение тех данных, которые необходимы для выполнения анализа. Здесь основной акцент делается на корректность и релевантность выбранных данных для обеспечения качества последующего анализа
- gdalinfo: для проверки метаданных растра, чтобы убедиться, что выбраны правильные данные.
- ogrinfo: аналогично для векторных данных.
- gdal_translate и ogr2ogr: для выделения подмножества данных или изменения проекций.
Очистка данных (Clean Data)
- gdal_fillnodata.py: Заполнение отсутствующих или «no-data» значений в растровых данных интерполяцией от соседних пикселей.
- gdal_sieve.py: Удаление маленьких изолированных пикселей («соль и перец») в классифицированных данных.
- gdal_edit.py: Используется для изменения метаданных растра.
- Скрипты на Python, используя GDAL API, для более сложной очистки данных, например, замена определенных значений пикселей.
Конструирование данных (Construct Data)
- gdal_calc.py: Вычисление новых значений пикселей на основе арифметических и логических операций или условий.
- gdalwarp: Применяется для перепроецирования и/или изменения разрешения изображения.
- gdal_grid: Создание растра из разрозненных данных посредством различных методов интерполяции.
- gdal_rasterize: Создание растра на основе векторных данных, например, создание маски зоны интереса.
Интеграция данных (Integrate Data)
- gdalwarp, gdal_merge.py: Используются для объединения нескольких растров в один.
- gdalbuildvrt: Создание виртуального растра (VRT), который является объединением нескольких растров.
- ogr2ogr: Используется для объединения и переформатирования векторных данных.
- Скрипты на Python с использованием GDAL/OGR API: для сложной интеграции, например, взвешивание и суммирование разных растров.
Форматирование данных (Format Data)
- gdal_translate: Конвертация растровых данных в разные форматы, настройка опций выходных файлов.
- ogr2ogr: Конвертация векторных данных в разные форматы и геометрические преобразования.
На этапе подготовки данных GDAL часто комбинируют с другими инструментами и библиотеками для пространственного анализа и обработки данных, такими как NumPy, Pandas, Geopandas, Shapely, Rasterio и многими другими.
GDAL предоставляет базовые инструменты и может потребовать написания пользовательских скриптов (например, используя Python и GDAL API) для выполнения более сложных задач, особенно для анализа взаимодействия между векторными и растровыми данными или выполнения статистического анализа.
Пример применения GDAL. Преобразование данных рельефа в карту рек
Задача — применить инструменты GDAL для выделения рек, основываясь на определенных пороговых значениях, чтобы выявить и визуализировать речные пути.
Процесс
Бинарный растр. Используя растровые изображения рельефа (DEM — Digital Elevation Model), мы имеем подробное представление о ландшафте.. Изображение (river_network.tif), на котором потенциальные реки и водотоки выделены белым (значение 1), а остальная местность чёрным (значение 0) на основе установленного порогового значения.
Преобразование двоичного растрового изображения в полигональное. gdal_polygonize.py преобразует бинарный растр в векторный формат: gdal_polygonize.py river_network.tif -f «GeoJSON» river_network.geojson
Векторизация речной сети. Геофайл (river_network.geojson) содержит векторные данные, представляющие потенциальные реки и водотоки, полученные путем преобразования растрового изображения в полигональное. Каждая область или линия, обозначающая речной поток, будет представлена отдельным объектом вектора.
Анализ данных. Векторные данные могут быть проанализированы с использованием различных инструментов для дополнительного изучения характеристик и атрибутов речной сети.
Визуализация рек. Используем gdal_calc.py для создания бинарного растра, выделяющего потенциальные речные зоны. Картографическое изображение, на котором реки отображаются с использованием синих линий или полигонов на контрастном фоне, предоставляя чёткую карту потока воды на исследуемой территории: gdal_calc.py -A input_dem.tif —outfile=river_network.tif —calc=»A>threshold» —NoDataValue=0
Точечная проверка. На некоторых участках реки, возможно, потребуется провести дополнительные проверки с использованием других источников данных или полевых исследований для подтверждения результатов.
Результат: С использованием только GDAL, мы выделили и визуализировали речную сеть, и подготовили геоданные, которые могут быть использованы для дальнейшего анализа.
QGIS: самая длинная дорога в современных ГИС начинается с первого шага
QGIS — открытая платформа для работы с геоданными, является частью проекта Open Source Geospatial Foundation (OSGeo).
С удобным интерфейсом и широким набором инструментов для пространственного анализа, QGIS обеспечивает поддержку подключения к различным пространственным базам данных и визуализацию данных на основе SQL-запросов.
QGIS — это простой и бесплатный способ освоиться в геоинформационных технологиях.
Для меня важно, что при установке QGIS автоматически устанавливается и библиотека GDAL, обсуждавшаяся в предыдущем разделе. Возможности GDAL интегрируются в практически каждый процесс обработки и анализа данных QGIS.
Основные характеристики и инструменты QGIS:
- Поддержка растровых и векторных слоев данных.
- Обработка данных из множества источников, включая различные форматы файлов (такие как shape-файлы, GeoJSON, ESRI, DXF и т.п.), веб-сервисы (WMS, WFS), а также базы данных (PostGIS и другие).
- Широкий спектр алгоритмов от простых вычислений площадей до сложных аналитических процедур, таких как анализ доступности.
- QGIS подключается к пространственным базам данных, например, PostGIS и другим.
- В QGIS обеспечивается наглядная визуализация результатов выполнения запросов сразу на карте, это очень удобно.
Пример анализа влияния на окружающую среду автомагистрали в QGIS
1. Загружаем данные в QGIS, конвертируем информацию в векторные слои для дальнейшего анализа и визуализации.
2. Визуализация предполагаемой территории автомагистрали с учетом её физических параметров, например, обозначив её ширину в 20 метров.
3. Определение и визуализация области, попадающей под влияние от предложенного проекта, расширяя зоны влияния до 100 метров и 300 метров от основной территории.
4. Агрегация трёх выделенных зон влияния в одну область, сохраняя при этом разделение между тремя первоначальными зонами.
5. Визуализация и изучение участков, которые фактически попадают под воздействие предложенного проекта.
6. Определение и визуализация участков среды обитания, которые находятся под угрозой и/или подпадают под действие законов по охране природы.
7. Визуализация результатов анализа таким образом, чтобы обеспечить их читаемость и удобство интерпретации.
Python в современных ГИС
Третий шаг в освоении геоинформационных систем — Python. Переходим от базовой работы с геоданными к более сложному анализу и обработке данных с использованием кода и автоматизированных процессов.
Python прочно вошел в набор инструментов пространственного анализа. Этот язык программирования быстро развивается и востребован не только (и не столько) в геоинформационных системах, как в анализе и моделировании данных в целом, включая Data Science.
В этом разделе рассмотрим известные библиотеки и инструменты в Python, которые поддерживают работу с геоданными и применяются в пространственном анализе.
У всех библиотек есть отличная документация, поэтому их можно быстро освоить и начать использовать в реальных проектах даже новичкам
Основные библиотеки Python для пространственного анализа
GeoPandas
GeoPandas расширяет возможности библиотеки Pandas для обеспечения поддержки геометрических форм и пространственных операций.
Обладает широким функционалом для работы с геопространственными данными, таким как пространственные соединения, измерения площадей и расстояний, пересечения и многие другие.
Использует формат данных GeoDataFrame, аналогичный DataFrame в Pandas. Это делает навыки, полученные при работе с Pandas, применимыми и в геопространственном анализе.
Пример применения GeoPandas
Допустим, нам известно местоположение офиса и нужно определить местоположение всего здания (или, говоря терминами векторных данных, полигона).
- Импортируем данные зданий, используя osmnx (Python API для доступа к данным OpenStreetMap)
- Строим график с помощью .plot() метода GeoDataFrame
- Используем библиотеку геометрии Python — shapely, на которой построена geopandas, чтобы создать объект Point, представляющий точку, в которой расположен наш офис или использовать geopandas функцию gpd.points_from_xy()
- Вызываем метод .contains() , чтобы выяснить, в каком полигоне находится точка
- Находим нужный полигон
- Строим карту, где выделен найденный полигон
- Мы можем добавить больше деталей к этой карте, включив фоновую карту. Для этого нам нужно установить пакет contextily. Обратите внимание, что большинство веб-провайдеров используют проекцию Web Mercator “EPSG: 3857” (интересная статья о проекциях — здесь), поэтому я перейду к ней перед построением графика
Leafmap
Представляя собой открытый и бесплатно доступный пакет Python, LeafMap обеспечивает возможность анализа и визуализации геопространственных данных, требуя минимального программирования и интегрируясь с такими средами Jupyter, как Google Colab, Jupyter Notebook и JupyterLab.
Основанный на принципах Open Source, LeafMap использует ряд открытых пакетов, включая folium и ipyleaflet для создания интерактивных карт, WhiteboxTools и WhiteBoxGUI для анализа пространственных данных, а также ipywidgets для разработки интерактивных графических пользовательских интерфейсов.
LeafMap предлагает ряд интерактивных инструментов, позволяющих интегрировать векторные и растровые данные.
LeafMap обеспечивает выполнение геопространственного анализа прямо в пользовательском интерфейсе без необходимости написания кода.
WhiteboxTools предоставляет доступ к более чем 500 инструментам для продвинутого геопространственного анализа.
PySAL
PySAL — это основная библиотека для пространственного анализа в Python.
Предоставляет инструменты для исследовательского анализа пространственных данных. Является ключевым инструментом для Spatial Data Science, предоставляя функциональность для статистического моделирования и анализа причинно-следственных связей в пространственных данных.
Основные функции PySAL могут быть разделены на две категории:
Аналитика данных (чтение и запись распространенных форматов пространственных данных, картографическая алгебра, вычислительная геометрия, матрицы пространственных весов, сглаживание скорости)
Функции ESDA — Exploratory Spatial Data Analysis (Исследовательский пространственный анализ данных) и функции моделирования данных (пространственная автокорелляция, пространственно-временная корреляция, модели марковской динамики, регионализация и кластеризация с пространственными ограничениями, пространственная регрессия)
PySAL интегрируется с многими другими инструментами, такими как Tobler, инструмент для интерполяции и картографирования. В частности, с помощью инструментов Tobler можно агрегировать данные по пространственным параметрам в гексагональной сетке.
В Python также есть несколько библиотек для геовизуализации и картографирования. Они позволяют создавать статические, интерактивные и анимированные карты, предоставляют возможности для стилизации и настройки отображения геоданных и интеграции карт в web-приложения. Folium и Bokeh предоставляют интерактивные решения для геовизуализации, позволяя масштабировать, передвигать и просматривать подробную информацию прямо на карте.
Contextily добавляет возможность наносить дополнительные слои на фоновые карты для иллюстрации контекста и может быть может быть интегрирована с другими библиотеками (geopandas и rasterio).
Библиотеки Python для пространственных данных используют GDAL.
Python в CRISP-DM
1. Понимание Бизнеса
Использование Python: Минимальное Python может использоваться для анализа геопространственных трендов или автоматизации отчетности с использованием специализированных библиотек для визуализации, но в целом, он не является ключевым инструментом на этом этапе.
2. Понимание Данных
Использование Python: Высокое
- Благодаря специализированным библиотекам Python становится отличным инструментом для визуализации и исследования геопространственных данных.
- Визуализация данных: Использование библиотек, таких как matplotlib, seaborn, и folium, для создания исходных графиков и карт и понимания распределения данных.
- Исследование данных: Применение ESDA для оценки и анализа основных характеристик и распределений пространственных данных.
3. Подготовка Данных
Использование Python: Очень высокое
- Геопространственная обработка данных (например, геокодирование, пространственный анализ) может быть выполнена с использованием GDAL и гео-библиотек Python.
- Обработка геоданных: Использование GeoPandas, Shapely, и Rasterio для обработки и операций над геоданными.
- Геокодирование: Использование Geopy для геокодирования адресов и получения пространственных данных.
4. Моделирование
Использование Python: Очень высокое
- Использование Python для пространственного моделирования может включать в себя создание прогнозных моделей, интерполяционных моделей и многое другое с использованием PySAL и scikit-mobility.
- Машинное обучение: Применение scikit-learn и tensorflow для создания и обучения пространственных моделей, таких как классификация и регрессия.
- Пространственная регрессия: Использование PySAL и statsmodels для анализа влияния пространственных переменных и создания пространственных регрессионных моделей.
- Кластеризация и классификация: Реализация алгоритмов кластеризации и классификации для группировки и категоризации пространственных данных.
5. Оценка
Использование Python: Высокое
- Библиотеки Python позволяют создавать и валидацировать модели, применяя специфичные для геоданных тесты и метрики.
- Оценка моделей: Применение метрик оценки моделей машинного обучения (например, точность, полнота, F1-мера) с использованием Python для анализа эффективности пространственных моделей.
- Пространственная валидация: Использование инструментов валидации и кросс-валидации с учетом пространственных характеристик.
6. Развертывание
Использование Python: Среднее
- Python может использоваться для создания web-ГИС решений с использованием фреймворков, таких как Flask или Django, но может потребовать применения дополнительных технологий для масштабирования и устойчивости в промышленной среде.
- Интерактивные веб-карты: Создание интерактивных веб-карт с использованием Folium и Bokeh, чтобы представить результаты анализа конечным пользователям.
- Интеграция с базами данных: Использование PostGIS и GeoAlchemy для работы с пространственными базами данных и обеспечения постоянного доступа к аналитическим результатам.
- Применение Flask или FastAPI для создания веб-сервисов, предоставляющих доступ к моделям машинного обучения и результатам анализа.
Spatial SQL
Spatial SQL является эффективным инструментом для работы с пространственными данными, обеспечивая масштабируемость и скорость обработки.
Spatial SQL позволяет работать с пространственными данными и обеспечивает быстрые способы анализа пространственных отношений и возможность проведения масштабных пространственных объединений и создание новых пространственных атрибутов.
Основные функции и возможности
- Пространственная инженерия признаков: создание новых признаков, используя различные наборы данных в вашей пространственной базе данных или хранилище данных.
- Визуализация данных: создание тайловых наборов и визуализация данных напрямую из баз или хранилищ данных.
- Инженерия данных: выполнение быстрой и эффективной инженерии данных с множеством поддерживаемых функций для геопространственных данных в среде Spatial SQL.
- Spatial SQL — важная часть современного геопространственного анализа, предоставляя масштабируемые решения для обработки и анализа больших объемов пространственных данных.
Это инструмент, который помогает перейти от локальной обработки данных к масштабным и управляемым рабочим процессам.
Spatial SQL в CRISP-DM
1. Понимание бизнеса. В начале любого проекта анализа данных основное внимание уделяется пониманию бизнес-проблемы и контекста, в котором она существует. Spatial SQL может облегчить изучение пространственных зависимостей, выявляя ключевые географические характеристики, которые могут влиять на бизнес-процессы.
2. Понимание данных. На этапе изучения данных важно оценить доступные пространственные и атрибутивные данные. Применяя Spatial SQL, можно провести анализ пространственных свойств данных, выявляя шаблоны, аномалии и связи между различными переменными и географическими объектами.
3. Подготовка данных. Spatial SQL помогает оптимизировать процесс подготовки данных, выполняя такие задачи, как пространственная фильтрация, трансформация геометрии и создание новых пространственных переменных, что повышает качество анализируемых данных и делает их более пригодными для моделирования.
4. Моделирование. Моделирование включает в себя разработку алгоритмов, предсказывающих или классифицирующих исследуемые явления. С использованием Spatial SQL возможно создание и анализ пространственных переменных, интеграция пространственных индикаторов в модели и учет пространственной автокорреляции для повышения точности предсказаний.
5. Оценка. При оценке модели важно удостовериться, что она отвечает бизнес-требованиям и достаточно точна. Spatial SQL может быть использован для проведения пространственной валидации, сравнивая пространственные прогнозы модели с реальными данными и вычисляя различные метрики качества для оценки её эффективности.
6. Развертывание. На этапе развертывания Spatial SQL обеспечивает инструменты для интеграции разработанных моделей в рабочие бизнес-процессы. Это может включать автоматизацию пространственных запросов, постоянный мониторинг и оптимизацию рабочих моделей в оперативной среде, адаптируя решения к меняющимся условиям и требованиям.
Облачные геоаналитические платформы: комплексный подход к пространственному анализу
Эти системы становятся комплексными платформами, интегрирующими геоданные, инструменты пространственного анализа и искусственный интеллекта и процессы подготовки, анализа и моделирования данных.
Каждая такая платформа в чём-то сильнее других, в чём-то уступает другим, имеет свою отраслевую специфику и свой набор инструментов. Объединяет их то, что они предоставляют не просто отдельные инструменты, а интегрированную среду, которая объединяет в себе современные технологии и поддерживает процессы совместной работы многих пользователей и ролевой доступ.
Геоаналитические платформы часто поддерживают полный цикл (или соответствующие своему назначению части цикла) анализа пространственных данных, начиная от сбора и подготовки данных до их анализа, моделирования, визуализации и предоставления доступа к результатам для всех заинтересованных в соответствии с правилами разграничения доступа.
Каталоги наборов данных для анализа
Важной характеристикой облачных геоаналитических платформ является то, что в них есть каталоги наборов пространственных данных, которые уже предварительно обработаны и оптимизированы для проведения анализа и могут быть использованы для обогащения данных пользователя или в качестве дополнительных слоёв.
Эти каталоги в различных платформах могут включать в себя множество разных наборов данных и их комбинации, например,
- Данные Дистанционного Зондирования Земли: доступ к обширным архивам снимков со спутников и аэрокосмических данных, которые могут быть немедленно использованы для анализа изменений покрытия земли, изучения климата и множества других приложений.
- Географические: включают в себя базы данных географической информации, такие как административные границы, гидрография, дорожные сети и другие слои данных, которые используются для различных геопространственных анализов.
- Демографические и социально-экономические: доступ к данным, отражающим демографическую структуру населения, социальные и экономические показатели, которые можно использовать для социально-экономического планирования и анализа.
- Метеорологические: данные о погодных условиях, климате и атмосферных явлениях, которые можно использовать для прогнозирования погоды, а также для анализа влияния климата на различные аспекты окружающей среды и человеческой деятельности.
- Данные об объектах: например, зданиях, сооружениях, растительности и других объектах, которые могут быть использованы в аналитических и планировочных целях.
- Данные о перемещениях абонентов с мобильных устройств:
- GPS-трекинг: данные с мобильных устройств, включающие геолокацию. Могут отображать миграционные паттерны, трафик и другие виды движения в разных географических областях.
- Точки интереса: Информация о посещенных пользователями местах, таких как магазины, кафе, туристические аттракционы, что позволяет анализировать потоки посетителей и популярность различных объектов.
7. Обезличенные и агрегированные финансовые и транзакционные данные:
- Данные транзакциях банковских карт: эти данные могут включать в себя информацию о том, где и когда были совершены покупки, предоставляя обзор паттернов потребительского поведения и экономической активности в различных регионах.
- Данные онлайн-касс и фискальных операторов: эта информация может дать понимание о частоте, объеме и характере покупок, а также предоставить взгляд на экономическую активность в конкретных торговых точках или районах.
8. Транспортные данные:
- Данные о транспортных потоках: информация о движении транспортных средств, пассажиропотоках и использовании различных видов транспорта, помогающая оптимизировать транспортные сети и планировать инфраструктурные проекты.
- Паттерны использования общественного транспорта: доступ к данным о частоте и популярности различных маршрутов общественного транспорта.
Такие готовые к использованию наборы данных не только экономят время и средства, которые потребовались бы на сбор, обработку и подготовку данных, но и обеспечивают надежность и качество информации.
Доступ к наборам данных позволяет быстро проводить комплексные исследования и создавать разнообразные модели, включая модели машинного обучения, без необходимости поиска и обработки всех необходимых данных с нуля.
Это помогает быстро генерировать и проверять гипотезы и ускоряет реализацию проектов.
Охват всего цикла пространственного анализа (или большой его части)
Преднастроенный процесс. Платформа обеспечивает методический и логически последовательный процесс, включающий в себя все этапы работы с данными — от их сбора и предварительной обработки до сложного анализа и применения технологий искусственного интеллекта. Вся эта цепочка профессионально настроена и оптимизирована для обеспечения качественных и точных результатов анализа.
Широкий набор функций и сервисов. Облачные системы часто содержат no-code и low-code сервисы и делают процесс доступным для профессионалов разного уровня квалификации, не теряя при этом в качестве.
Автоматизация процессов обработки данных: позволяет мимнимизировать затраты и потенциальные ошибки на этапе предобработки.
Автоматизация процессов моделирования: позволяет сократить время и ресурсы, необходимые для создания, валидации и реализации моделей машинного обучения. Это повышает уверенность в точности получаемых результатов благодаря применению проверенных методологий.
Среды для разработки и обучения моделей машинного обучения. Платформы могут предоставлять среды для создания и обучения моделей, включая интеграцию с популярными фреймворками и библиотеками, что обеспечивает экспертов необходимыми инструментами для реализации и оптимизации собственных алгоритмов и моделей.
Все стандартные плюсы облачных технологий
- Масштабируемость: Облако позволяет работать с мощными вычислительными ресурсами, намного превосходящими возможности локальных серверов.
- Доступность: Предоставляет возможность обмена данными и результатами работы с коллегами.
- Облачные процессы: Возможность использования serverless-технологий и эффективного распределения вычислительных ресурсов.
- Хранилища данных
- ETL/ELT-инструменты. Использование сервисов для потоковой и пакетной обработки данных при загрузке.
Заключение
Современные ГИС-специалисты сталкиваются с быстро меняющимся ландшафтом технологий и инструментов. Облачные ГИС-решения предоставляют мощные и масштабируемые инструменты для анализа и визуализации данных, делая эти решения доступными для профессионалов по всему миру. С учетом постоянных изменений в области геоинформационных систем, важность постоянного обновления знаний и навыков не может быть переоценена.