Подборка классификаторов РФ
В этом репозитории собрана подборка классификаторов РФ в машино-читаемомо формате. На данный момент это:
- Общероссийский классификатор объектов административно-территориального деления
- Общероссийский классификатор территорий муниципальных образований
Данные были получены путем автоматического разбора HTML-документов на сайте http://mosclassific.ru в разные моменты времени. Таким образом были получены разные версии классификаторов, с разным набором включенных в них изменений.
Номер последнего включенного изменения содержится в суффиксе имени файла. Однако изменения не всегда включаются в хронологическом порядке, таким образом файл с okato-199.yaml может не включать изменение 198. К сожалению информация о том какие конкретно изменения включены, а какие нет не собиралась своевременно.
Все данные приведены в формате YAML в виде файлов
состоящих из нескольких YAML-документов, разделенных ---
. Первый документ -
заголовок вида:
classifier: название_классификатора
source: url_источника
timestamp: дата_и_время_загрузки
version: версия
Последующие YAML-документы содержат непосредственно данные. Их структура зависит от классификатора.
Структура ОКАТО
Один YAML-документ соответствует одному субъекту РФ.
Пример:
- ["01000000", "Алтайский край"]
- ["01200000", "Районы Алтайского края/"]
- ["01201000", "Алейский район"]
- ["01201800", "Сельсоветы Алейского р-на/"]
- ["01201802", "Алейский"]
- ["01201802000", "Сельские населенные пункты Алейского сельсовета/"]
- ["01201802001", "п Алейский"]
- ["01201802002", "с Малахово"]
- ["01201802003", "п Мамонтовский"]
- ["01201802004", "п Октябрьский"]
- ["01201802005", "п Первомайский"]
Первый элемент списка - код ОКАТО, второй - наименование по ОКАТО.
Структура ОКТМО
Один YAML-документ соответствует одной записи ОКТМО.
Пример блока без данных о населенных пунктах:
code: "01000000"
name: "Муниципальные образования Алтайского края"
Пример блока с данным о населенных пунктах:
code: "01601402"
name: "Алейский сельсовет"
settlements:
- ["01201802001", "п Алейский"]
- ["01201802002", "с Малахово"]
- ["01201802003", "п Мамонтовский"]
- ["01201802004", "п Октябрьский"]
- ["01201802005", "п Первомайский"]
Где code - код ОКТМО, namе - наименование записи ОКТМО, settlements - населенные пункты по ОКТМО (код ОКАТО и наименование).
Пример блока с данным о населенных пунктах, но без названий, в случае, когда они не приведены в ОКТМО:
code: "69608408"
name: "Батуринское"
settlements:
- ["69208808001"]
- ["69208808002"]
- ["69208808003"]
Импорт классификаторов в БД
Для импорта классификаторов в БД есть утилита, кототрая расположена по адресу: https://github.com/dezhin/clscol. Она позволяет импортировать данные в БД SQLite, PostgreSQL и ряд других, поддерживаемых SQLAlchemy.
Disclaimer
Необходимо понимать, что это не оффициальные данные, и в них возможны ошибки, связанные не только с ошибками в самих классификаторах, но с тем, каким способом они сюда попали.
Если вам кажется, что публикация этих данных здесь в таком виде нарушает ваше право на интеллектуальную собственность, то пожалуйста свяжитесь со мной по электронной почте me@dezhin.net. Однако учтите, что это один из немногих общедоступных источников, в котором можно получить эти данные в формате, пригодном для удобной автоматизированной обработки.