/clscol-data

Collection of goverment classifiers used in Russia

Подборка классификаторов РФ

В этом репозитории собрана подборка классификаторов РФ в машино-читаемомо формате. На данный момент это:

  • Общероссийский классификатор объектов административно-территориального деления
  • Общероссийский классификатор территорий муниципальных образований

Данные были получены путем автоматического разбора 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. Однако учтите, что это один из немногих общедоступных источников, в котором можно получить эти данные в формате, пригодном для удобной автоматизированной обработки.