Геокодирование: от слов к координатам

Геокодирование: Главная

Поделиться:

Когда адрес – это не просто текст

Информация имеет ценность тогда, когда её можно применить для решения прикладных задач. Поэтому везде нужно преобразование информации из одного формата в другой, делая её более полезной или понятной.

В двух словах процесс простой — взять исходные данные, применить к ним определенные алгоритмы или правила, и получить новые, обработанные данные, которые легче использовать.

В геоаналитике важным преобразованием является геокодирование (или геокодинг).

Это процесс, в ходе которого адреса преобразуются в географические координаты (и наоборот, адрес определяется по заданным географическим координатам).

Геокодирование используется не только для визуализации данных на карте, но и для анализа данных, что делает его востребованным инструментом для большинства ГИС-аналитиков.

На рынке много инструментов геокодирования — точных и не очень, платных и бесплатных, работающих в России или нет, офлайн и онлайн. Каждый день появляются новые инструменты и сервисы.

Рассмотрим в этой публикации основные моменты, в которых желательно разобраться, чтобы понять, как выбирать геокодеры и не запутаться.

Зачем нужно геокодирование или как показать адреса на карте

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

При этом источники данных часто содержат только адреса. Вспомните анкеты клиентов или excel файлы, курсирующие по компаниям, — в них редко бывают указаны координаты, гораздо чаще — неструктурированные адреса в виде текста. Не приходится ожидать и от пользователей знания координат при заполнении полей «Адрес» в приложениях или на сайтах.

Но именно координаты нужны для геоаналитики. Для того, чтобы их получить, и выполняется геокодирование.

Как выглядит процесс геокодирования

Прямое геокодирование или как получить координаты из адресов

Мы часто используем геокодинг, и даже не замечаем. Например, введём в поле Адрес «ул. Льва Толстого, 21 стр. 1», и геокодер мгновенно вернёт координаты 55.734177, 37.585925, отразит точку на карте, а также может показать многие другие атрибуты, связанные с этой точкой.

Обратное геокодирование или как получить адреса из координат

Обратное геокодирование — это процесс преобразования широты и долготы в адрес. Это используется, например, когда вам нужно узнать адрес по местоположению мобильного устройства или для отображения адреса при выборе точки на карте.

Пакетное геокодирование

Процесс геокодирования большого количества адресов за один раз. Многие сервисы предлагают пакетное геокодирование, позволяющее обрабатывать список адресов в

Процесс пакетного геокодирования имеет свои особенности и требует особого внимания к следующим аспектам:

  • Предварительная подготовка и очистка адресов.
  • Мониторинг и правила для приостановки и возобновления процесса.
  • Обработка ошибок.
  • Экспорт результатов в нужный формат.

Из чего состоит решение геокодинга

Геокодеры, исходные данные в форме адресов и программное обеспечение для визуализации результатов – это составные части решения геокодирования.

Геокодеры

Программные решения, обеспечивающие перевод текстовых адресов в географические координаты. Эти инструменты представлены на рынке в разнообразных форматах — от открытых решений, таких как OpenStreetMap Nominatim до коммерческих, таких как Google Maps и Bing Maps.

Источники картографических данных

К основным источникам картографических данных можно отнести Google Maps, OpenStreetMap, Bing Maps, Яндекс.Карты, 2GIS, MapBox и специализированные ГИС-решения от ESRI и других поставщиков.

Каждый источник имеет свои особенности, и выбор зависит от конкретной задачи и требований к точности в нужном регионе, скорости, условий лицензирования и стоимости.

База данных адресов и координат

Используется геокодером для сопоставления адресов с их координатами. База данных хранит набор объектов, для каждого из которых задано структурированное описание адреса, состоящее из компонентов: индекс, регион, населённый пункт, улица, номер дома и т.д., и соответствующие адресу географические координаты.

  • Внутренние БД: локальные хранилища, которые организации разрабатывают и поддерживают самостоятельно. Они обычно используются для решения специализированных отраслевых задач.
  • Внешние БД: облачные решения, предоставляемые третьими сторонами. Примеры включают Google Maps Geocoding API, Bing Maps Location API, Mapbox Geocoding API, OpenStreetMap, Geonames.org, Yandex Maps API, HERE Geocoding & Search API, ESRI и многие другие. Они являются универсальными и легко интегрируются с различными системами.

Как работает геокодирование

  • Процесс начинается с ввода текстового адреса.
  • Геокодер распознаёт и анализирует адрес, ищет его в базе данных и возвращает соответствующие адресу координаты.
  • Если адрес введен некорректно или не найден, геокодер может вернуть ошибку или предложить ближайшие соответствия.

Очистка адресов

Хорошо, если адреса вводятся сразу без ошибок, или в соответствующих мобильных приложениях и интернет-сайтах есть сервис, который при вводе пользователем адреса «подсказывает» корректные значения для каждого компонента адреса.

В этом случае найти адрес в базе данных и соотнести его с координатами легко, и геокодирование будет точным.

Однако в большинстве случаев адреса вводятся с ошибками или неочевидными сокращениями. Согласно исследованию качества данных Experian, более 32% почтовых адресных данных являются неточными.

Поэтому частыми спутниками геокодеров являются сервисы по распознаванию и очистке адресов.

Предварительная обработка адресов является важным этапом, и для этой цели разработаны специализированные средства. Этот процесс объединяет стандартизацию, исправление и проверку корректности адреса и включает в себя ряд шагов.

  1. Сбор данных. Адреса собираются из разных источников (файлов, баз данных, API).
  2. Выявление ошибок. Определяются нестандартные форматы и распространенные ошибки, такие как опечатки и недостающие элементы (например, индексы или названия улиц), и другие распространенные ошибки.
  3. Стандартизация. Адреса приводятся к единому формату в соответствии с официальным почтовым форматом конкретной страны. Это облегчает последующую валидацию и сопоставление данных.
  4. Валидация. Сопоставление структурированных адресов с надёжными ресурсами. Для России таким источником является Государственный адресный реестр (ГАР).
  5. Коррекция и обогащение. Затем все отсутствующие или некорректные данные должны быть добавлены или исправлены.

Также проводится обогащение адреса дополнительной информацией из других источников.

Например, к адресу добавляется часовой пояс, названия расположенных в этой локации компаний, тип жилого здания с количеством квартир разной планировки и площади, телефонный код страны, OSM URL, what3words,  ближайшие станции метро, ссылки на идентификатор на Wikidata, фотографии и другие полезные атрибуты.

Данные для обогащения могут быть самыми разными, в зависимости от задачи. Берутся они из других источников, где находятся по адресу или соответствующих ему координатам.

  1. Обновление базы адресов. Очищенные адреса загружаются в систему для последующего использования.
  2. Периодическая проверка. Эталонные базы данных регулярно обновляются для поддержания актуальности адресов.

Процесс «очистки» адресов может быть автоматизирован с помощью специализированного ПО. На рынке есть множество инструментов, включая как глобальные решения ESRI и Google, так и специализированные сервисы в разных странах, такие как Smarty в США или «Единый адрес» от Human Factor Labs в России.

Обычно поставщики сервисов для очистки адресов поставляют и геокодеры для адресов тех стран, с которыми умеют работать.

Сервисы «подсказок»

При вводе адреса «Тверская», ожидать уровня детализации до крыши было бы наивно. Чем точнее запрос, тем более точный результат.

Хорошие геокодеры предлагают возможности выбора адресов из качественного каталога адресов, или предлагают пользователю подсказки, что заметно повышает качество входных данных адресов.

Как выбрать геокодер

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

Также API могут иметь ограничения по количеству запросов в минуту или день, и взимать плату за большие объемы данных, это тоже нужно учесть при выборе геокодера.

На что обратить внимание

Процесс выглядит очень просто. Однако качество геокодирования у всех сервисов разное и зависит от нескольких основных факторов:

Точность геокодирования. Точность адресов в базе данных одного и того же геокодера отличается для адресов в разных странах. Например, OpenStreetMap Nominatim показывает высокую точность геокодирования адресов в Европе, и низкую точность в Африке (варьируется от уровня города до уровня района). Многие геокодеры работают с адресами только одной страны.

Качество адресов. Попытка геокодировать адрес с ошибками, с отсутствующим номером дома или названием улицы, скорее всего не будет удачной. Сервисы должны справляться с типовыми сложностями, которые встречаются при вводе адресов:

  • Ошибки и опечатки в адресах.
  • Неполные или устаревшие адреса, пропущенные элементы адреса.
  • Один и тот же адрес может существовать в разных городах или регионах.

Географическое покрытие. Как правило, сервисы работают с данными не из всех стран и регионов, поэтому нужно изучить возможности геокодеров в тех регионах, с которыми Вы работаете.

Цена и количество бесплатных запросов в зависимости от количества обращений и объема данных.

Дополнительные данные. Хорошо, если кроме адреса геокодер показывает другие полезные данные локации, например, фотографии. В разделе «Обогащение данных» приведены распространённые примеры таких данных.

Требования безопасности. Для проектов, которые не могут использовать интернет для обеспечения конфиденциальности данных, могут подойти локальные on-premise решения или собственные разработки (ArcGIS Desktop, QGIS с плагинами для геокодирования, MapInfo Professional, Manifold System и подобные).

Интеграция и API. Часто нужно интегрировать геокодирование в существующую ИТ-инфраструктуру компании. Для этого важно, чтобы гекодер интегрировался как со внутренними ИТ-системами, так и с внешними геокодерами. У сервиса должен быть надёжный API.

Точность оценивается по нескольким критериям и может варьироваться в зависимости от региона

Глубина детализации

  • Крыша. Если геокодер определяет координаты на уровне крыши, это значит, что он находит местоположение конкретного здания. Например, Вы ищете адрес «Москва, ул. Льва Толстого., 5 стр. 1”, и сервис находит соответствующие координаты и указывает на здание с этим номером.
  • Улица. Сервис определит координаты середины или начала улицы.
  • Район. Координаты района (например, центра района).
  • Город. Координаты центра города.

Актуальность данных. Если ваш геокодер использует данные 2010 года, не удивляйтесь, когда не сможете найти координаты новостроек.

Умение работать с неточными адресами.  Хороший геокодер попробует «угадать» правильный адрес, даже если в исходном адресе есть ошибки, пропуски и опечатки.

Какие бывают геокодеры

Геокодеры можно разделить по различным категориям в зависимости от их функциональности, точности, скорости и других параметров. Вот некоторые из распространенных категорий:

Коммерческие и открытые

  • Коммерческие (например, Google Maps, HERE, Bing Maps). Эти геокодеры предлагают высокую точность в определенных странах и скорость, но платные.
  • Открытые (например, OpenStreetMap Nominatim, US Census Geocoder). Обычно бесплатные, но могут иметь ограничения на количество запросов.

Online или offline

  • Web: Геокодирование выполняется через интернет-соединение с сервером провайдера (Google Maps Geocoding API, Mapbox Geocoding API).
  • Desktop: Геокодеры, которые можно установить на локальной машине, например, ArcGIS или QGIS с MMQGIS.

По количеству одновременно обрабатываемых адресов

  • Поддерживают только одиночное геокодирование. Для перевода одного или нескольких адресов в координаты в реальном времени.
  • Поддерживают пакетное геокодирование. Предназначены для работы с большими наборами данных (HERE Batch Geocoding, SmartyStreets Bulk Geocoding).

По географическому охвату

  • Глобальные: предлагают данные для множества стран и территорий (OpenStreetMap Nominatim, Google Maps Geocoding API).
  • Региональные и локальные: Сосредоточены на определенной стране (Yandex Geocoder (Россия), Baidu Map Geocoding API (Китай).

По отраслевой принадлежности

  • Универсальные (для широкого спектра приложений и сервисов).
  • Специализированные (например, оптимизированные для логистики, недвижимости или научных исследований).

По уровню точности в заданных странах

  • Высокая: до уровня крыши.
  • Средняя: до уровня улицы или района.
  • Низкая: до уровня города или страны.

Выбор геокодера зависит от требований.

Я знаю три слова или «сбросим почтовый адрес с корабля современности»

Некоторые разработчики сильно впечатлились проблемами, с которыми приходится сталкиваться при обработке привычных почтовых адресов, и придумали новые системы гекодирования.

Некоторые из них нашли своих пользователей. Например, whats3words — система геокодирования, которая разбивает поверхность Земли на квадраты размером 3×3 метра. Каждому квадрату присваивается уникальный адрес из трех слов, например, apple.banana.orange.

Геокодирование whats3words - Фрукты

Эти три слова позволяет пользователю точно идентифицировать любое местоположение на нашей планете с помощью простого и запоминающегося набора слов.

Например, указанный ранее адрес усадьбы Льва Толстого в Хамовниках в whats3words включает в себя несколько квадратов, у каждого из которых есть своё название (на мой взгляд, одно нелепей другого, но кому-то нравится).

Геокодирование whats3words - Хамовники

Плюсы What3Words

  • Универсальность. What3Words позволяет дать адрес абсолютно любому месту на Земле, включая те, которые ранее не имели точного адреса, например, отдаленные лесные тропы или места в океане, или локации на территории промышленных зон или строящихся жилых комплексов.
  • Легкость запоминания. Комбинации из трёх слов легче запомнить и передать, чем традиционные координаты (хотя мне лично сложно запоминать из-за бессмысленности словосочетаний).
  • Точность. Точность до 3 метров позволяет использовать систему в различных сферах, от логистики и туризма до экстренных служб и доставки

What3Words часто сравнивается с другими системами геокодирования, такими как Open Location Code от Google и традиционными GPS-координатами.

В интернете пользователи делятся забавными сочетаниями из трёх слов для популярных и не очень локаций.

Whats3Words -- Хорошая жизнь

Минусы What3Words

Несмотря на инновационность подхода, What3Words имеет ряд ограничений и недостатков, которые могут влиять на его применимость и эффективность в различных областях и условиях:

  • Закрытый исходный код. Отсутствие открытости ограничивает адаптацию и интеграцию с другими сервисами.
  • Стоимость и лицензирование. Платное использование API может быть барьером для пользователей и разработчиков.
  • Отсутствие географического контекста. Адреса не содержат географического контекста, затрудняя понимание физического расположения. Например, соседние квадраты всегда имеют никак не несвязанные между собой адреса.
  • Языковой барьер. Слова в адресах могут быть незнакомы или трудны для произношения.
  • Риск ошибок. Существует риск опечаток и путаницы из-за схожести слов в разных адресах.
  • Зависимость от интернета. Для доступа к сервису и преобразования кодов требуется подключение к интернету
  • Ограниченность области применения: What3Words преимущественно подходит для определения точных местоположений, но может быть не так эффективен для обозначения больших территорий или динамичных объектов, а также система не предоставляет информацию о высоте, что может быть ограничивающим фактором для ряда сценариев использования.

Заключение

Геокодирование необходимо для преобразования текстовых строк в геопространственные объекты, что позволяет выполнять анализ и визуализации геоданных.

Геокодирование широко используется во многих областях геопространственного анализа от городского планирования и логистики до здравоохранения и экологического мониторинга.

При выборе геокодера необходимо учитывать точность геокодирования, скорость обработки запросов, географическое покрытие и стоимость. Точность геокодирования различается в зависимости от региона и страны. Многие геокодеры предлагают специализированные решения для отдельных стран и отраслей.

Статьи по теме

6 шагов подготовки данных для дата аналитики и машинного обучения

6 шагов подготовки данных для дата аналитики и машинного обучения

Статья рассказывает о важности автоматизации подготовки и преобразования данных для повышения эффективности машинного обучения. Рассматриваются ключевые этапы и их роль в аналитике.

Построение RAG c большой языковой моделью LLM (Llama 2) и FAISS: подробное руководство

Построение RAG c большой языковой моделью LLM (Llama 2) и FAISS: подробное руководство

Статья рассказывает, как большие языковые модели (LLM) повышают эффективность поиска с помощью технологии Retrieval-Augmented Generation (RAG). В ней показаны два подхода: программная реализация на Python с Llama 2 и FAISS и no-code решение через платформу Epsilon Workflow.

Сделайте свою большую языковую модель (LLM) специалистом в любой области с помощью Retrieval Augmented Generation (RAG)

Сделайте свою большую языковую модель (LLM) специалистом в любой области с помощью Retrieval Augmented Generation (RAG)

Большие языковые модели (LLM) помогают генерировать текст на основе вероятностей, но не могут обновлять свои знания. Технология Retrieval-Augmented Generation (RAG) решает эту проблему, предоставляя доступ к актуальным данным для более точных ответов.

Запросить демонстрацию

Готовы увидеть, как это может работать для вашей организации?

Свяжитесь с нами