Предлагаю сообществу новый проект GEOКладр.
Цель проекта: создание полностью открытой базы данных по населенным пунктам с географическими координатами на основе общероссийского классификатора КЛАДР.
Использование только открытых источников.
Используемая система координат - WGS84
Данные не копируются из других карт и баз данных, использующих закрытые источники.
Предлагаю список источников для обсуждения:
1. Слой административно-территориального деления России
Administrative areas - источник GADM (
http://biogeo.berkeley.edu/gadm/)
2. GNS - источники
http://earth-info.nga.mil/gns/html/namefiles.htm
Описание на рус.
http://gis-lab.info/qa/gns.html
3. VMAP0 – источник Русскоязычная база данных по названиям населенных пунктов на основе данных VMap0
http://gis-lab.info/qa/vmap0-settl-rus.html
4. VMAP1 - источники
http://geoengine.nga.mil/geospatial/SW_ ... _roam.html
Описание на рус.
http://gis-lab.info/qa/vmap1.html
5. gData -
источник U.S. National Imagery and Mapping Agency's (NIMA) database of foreign geographic feature names
http://biogeo.berkeley.edu/bgm/gdata.php
OSM – источник
http://www.openstreetmap.org/ ,
http://gpsmapsearch.com/osm/mp/#
Рассмотрим основные этапы работы алгоритма на примере базы GNS:
1. Автоматическая транслитерация с латиницы на русский язык
Правила русско-английской транслитерации из
системы Board of Geographic Names
http://ezpc.ru/itliter.shtml
2. Привязка слоя административно-территориального деления к КЛАДР
Присвоение базе адм. Терр. Деления России кода КЛАДР.
3. Цикл по базе адм. терр. деления России - определение вхождения координат (например из GNS) в полигон по конкретному району.
Используем алгоритм Проверки принадлежности точки многоугольнику
http://algolist.manual.ru/maths/geom/belong/poly2d.php
4. Цикл автоматического сравнения наименований из базы КЛАДР с результатом транслитерации в базе GNS. При точном совпадении координаты заносятся в поля координат в КЛАДР.
Кроме того определяется дополнительно по какому коду ADM1 (код адм.террит. деления в базе GNS) получилось совпадение. Т.е. возможна ситуация когда нас.пункт относится к определенному региону но находится вне полигона. Этому есть подтверждение – отклонение координат несколько десятков секунд.
5. Цикл по базе GNS по коду ADM1 по тем нас.пунктам которые не синхронизированы с КЛАДР – дополнительная проверка на совпадение наименований.
6. Обратный поиск - цикл по району в GNS определение поле транслит.наименование содержится в поле наименование в Кладр.
7. Использование алгоритма Levenshtein Distance для определения возможного допустимого названия объекта - предложение ближайших похожих.
Возможно приближенное сравнение (approximate matching) (путем задания порогового значения для расстояния Левенштейна Levenshtein distance.
http://ru.wikibooks.org/wiki/%D0%A0%D0% ... 0%BD%D0%B0
Дистанция Левенштейна (также функция Левенштейна или алгоритм Левенштейна) в теории информатики и компьютерной лингвистики является мерой разницы двух последовательностей символов (строк) относительно минимального количества операций Вставки, Удаления и Замены, необходимых для перевода одной строки в другую.
Примеры:
АЙСАРАЙ в GNS - АЙСАПАЙ в Кладр
ДЗХУРАК в GNS - ДЖУРАК в Кладр
РЫЧИНСКИЙ в GNS - РЫЧАНСКИЙ в Кладр
ЯГИНАУЛ в GNS - ЕГИН-АУЛ в Кладр
Практическим применением дистанции Левенштейна является определение похожести последовательностей символов, к примеру в коррекции орфографии или при поиске дубликатов. В 2006 году VLADIMIR I. LEVENSHTEIN, Leading Scientific Researcher, Keldysh Institute for Applied Mathematics, Moscow, Russia получил медаль Хэмминга (IEEE Richard W. Hamming Medal) за вклад в теорию кодов с исправлением ошибок и теорию информации (For contributions to the theory of error-correcting codes and information theory, including the Levenshtein distance).
http://www.ieee.org/portal/pages/about/ ... hampr.html
8. Дополнителный поиск в других базах-источниках. Возможно статистический анализ по координатам объектов из различных источников.
9. Ручная доводка результатов по регионам, проверка и исправление с использованием проверочных БД .
1. Пример Астраханская область
Количество населенных пунктов по КЛАДР - 461 определено координат по GNS - 406
2.Пример республика КАЛМЫКИЯ
Количество населенных пунктов по КЛАДР - 283 определено координат по GNS - 223
Анализ координат населенных пунктов показал, что даже при совпадении наименований их координаты могут не соответствовать реальным - например, Волжский, Олейниково, Вышка и т.д. в Астраханской области - вообще говоря, выпали по координатам, т.е. есть претензии к GNS по достоверности координат. Поэтому, на мой взгляд, далее необходим статистический анализ координат из различных источников.
Примеры в формате shp, mif, csv. (есть изменения в алгоритме относительно 27.08.09)