База данных населённых пунктов России

Да, ещё одна. И совсем не всех. Эта база данных вовсе не собирается хвастаться десятками тысяч строк. Как раз наоборот: цель — предоставить необходимый минимум. Естественно, необходимость использовать справочник населённых пунктов есть во многих проектах. И получить полную БД можно легко и просто из ФИАС. Так зачем же нужен этот «велосипед»?

Вряд ли кто-то не в курсе про ФИАС fias.nalog.ru/Updates — если не принимать во внимание некоторые ошибки (циклы по NEXTID, несколько актуальных записей одного объекта без PREVID и т.п.), которые иногда возникают и относительно оперативно устраняются по запросу, то лучшего источника нет. Однако, в своём продукте хочется сделать все красиво и удобно: например, изначально при простом поиске отсеять небольшие населённые пункты — а такой информации в ФИАС, к сожалению, нет. Перейти к более простой двухуровневой иерархии: населённый пункт внутри региона — никаких муниципальных районов. Возможно ли? На практике оказалось, что да (небольшая демонстрация в поисковой строке сайта). Если мы возьмём населённые пункты с более 1000 жителями, то получим охват примерно в 89% населения.

В общем, короткое введение закончилось и представляю небольшой open data проект – населённые пункты РФ с численностью населения более 1000 человек. Каждая запись содержит идентификатор ФИАС – по нему сопоставляется ОКТМО, ОКАТО (которые часто меняются); часовой пояс – если у вас есть оповещение по СМС, польза очевидна; ссылка на статью Википедии, откуда получена информация о численности населения и координатах.

Небольшие очевидные замечания:

  • эта база данных не подойдет для заполнения граф типа «место рождения» — для неё следует использовать полную БД ФИАС, более того с историческими данными (если честно, лучше этого не делать – делайте поле строкой)
  • если ваш проект затрагивает очень маленькие населённые пункты, то можно использовать эту БД только для удобства выбора, нужен «расширенный режим» — который тоже можно чуть упростить, исключив из полной БД ФИАС населенные пункты, содержащиеся в этой базе
  • используя ФИАС, храните не только выбранный AOID, AOGUID, а также используемую версию БД ФИАС

Обратная связь, проверка, корректировка данных, предложение ввода дополнительных полей и парсеры данных для них из открытых источников приветствуются.
Ads
AdBlock has stolen the banner, but banners are not teeth — they will be back

More

Comments 7

    +2
    В своё время по работе возился с городами (и тоже сделал аналогичную базу). Так вот, есть такой посёлок — Ганино, Кировская область, населением 2605 человек. и у Вас в базе его нет.

    Вероятно по той же причине, по которой его не было и у меня в самом начале работы. Причина простая: родительский объект этого посёлка — не район (как у деревни Нижний Наратбаш), не область (как у Самары), а другой город (Киров). Причём это не именованная часть города (как Вознесенское в Казани), не район города (как Ново-Савиновский в Казани), а прямо посёлок, со своим главой администрации.

    Кроме того, в базе нет одного интересного города, который сам (с оговоркой) является субъектом РФ. Таких на самом деле не три (Москва, Питер, Севастополь), а четыре, и четвёртый это Байконур. Формально он не является субъектом РФ, только городом, но другого родительского объекта над ним нет, поэтому в терминах структуры базы данных это субъект.
      +1
      Наверное стоит добавить, что Байконур входит в некий «94-й регион», с номерами машин «94RUS», туда же относится Антарктика.
        0
        — Нет, подчиненность другому населенному пункту в моей базе указана ( поле part_of, locdb.ru/doc ) Указанного вами и нескольких других ( ru.wikipedia.org/wiki/Административное_деление_Кирова ) нет по причине отсутствия странички в Википедии. Там многих посёлков, к сожалению, нет ( ru.wikipedia.org/wiki/Ганино ). Есть регионы, где все хорошо и странички есть даже куда у меньших посёлков, а есть «проблемные». Конкретно в этом случае я даже не заметил бы отсутствия, т.к. на практике всё равно менеджеры использовали бы Киров, а далее была бы выбрана улица вида «пос. Ганино \ ул. ***». Но повторюсь: в этом случае, применительно к БД, причина только в отсутствии странички Википедии.

        — Смысл базы больше не в интересных городах, а в практическом применении. Но вы правы, Байконур, пожалуй, мне следует добавить, хоть это и Казахстан, но «арендован Россией на период до 2050 года». Моя база не соответствует иерархии ФИАС, о чем сразу и заявлено (двухуровневая иерархия), поэтому по аналогии с Москвой — регион: «Байконур», населенный пункт «город Байконур». Страничка есть ru.wikipedia.org/wiki/Байконур_(город)

        — По быстрому гуглению в населённых пунктах (если станции так назвать) Антарктики значительно менее 1000 человек ( sevabashirov.livejournal.com/281499.html ), особенно в российских :)
        0
        Как часто планируете обновлять данные?
        image
          0
          По личной необходимости и на основании обратной связи, особенно касаемо новых населенных пунктов.
          База не очень «динамическая»: численность населения меняется редко, собирается автоматически + ручной контроль, если значительное отклонение или ошибка в ожидаемом формате.
          0

          А еще почему-то у всех населенных пунктов Сахалинской области таймзона Asia/Magadan, вместо Asia/Sakhalin.

            0
            Спасибо, исправлю.
            Потому что моя ручная работа, не замечено, т.к. фактическое время совпадает: МСК+8.

          Only users with full accounts can post comments. Log in, please.