Comments 25
К счастью, цепочки от уровня здания теперь можно представить в едином виде с элементами от 10 до 1, где 10 — это дом, а 1 — регион, и подчиняются они именно в таком порядке.
если вы про object_levels, то там ещё есть Начало действия записи, Окончание действия записи и Признак действующего адресного объекта, а указанные числа - это просто уникальные идентификаторы записей, и нигде не сказано, что это именно уровень в иерархии, т.к. при добавлении/удалении (а удаление будет просто установкой даты окончания) записей идентификаторы будут всегда увеличиваться
Насчет идентификаторов, посмотрите какие уровни были в старом фиасе:
Ничего не увеличилось. Будет оно увеличиваться, как вы утверждаете, или не будет - я не знаю, утверждать ничего не могу. Если будет, будем менять код соответствующим образом.
Система иерархическая, и они постарались в новой классификации сделать эту самую иерархию удобнее.
Цепочки можно вытянуть из двух файлов, один с административным делением (историческим), другой с муниципальным (актуальным). Судя по моим изысканиям, отличия минимальные и затрагивают верхние уровни подчинения (административные и муниципальные районы).
Поэтому работаем с муниципальным делением. А вообще, чтобы помочь Даше отыскать все 10 различий, можно зайти сюда, выбрать деление и сравнить поля.
Муниципальное деление воспринимать как актуальное не совсем правильно, и понимать административное деление как историческое (не актуальное) тоже не верно. У РФ ест 2 вида территориального деления, муниципальное и административное, и оба они актуальные, и оба они используются в равной степени, в зависимости от назначения задачи.
Возможно. В нашей задаче нам хватает муниципального. Возможно, историческим административное деление считает только налоговая, и информация с сайта налоговой - https://fias.nalog.ru/ExtendedSearch - при наведении на подсказку.
В некоторых регионах предусмотрительно выделена колонка
PATH
с цепочкой адресов. Если же такой колонки там нет, то может помочь дополнительный ключОКТМО
А почему вы рекурсивно не можете построить адресную цепочку, начиная с house или appartment? В данных объектах есть ссылка на объект в справочнике adm/mun иерархий, в том же справочнике есть идентификатор на родительскую запись, и так далее до самого верха?
А почему вы рекурсивно не можете построить адресную цепочку, начиная с house или appartment?
Не только могу, но и практикую. Если вы обратите внимание на следующее предложение, то там указана причина, по которой это нельзя делать бездумно:
В своих функциях я обращаюсь к сверке ОКТМО, когда вверху цепочки вдруг происходит взрыв.
А разрыв это когда цепочка не доходит до региона? или разрыв когда у адреса нет каких либо потомков на определенных уровнях?
Если честно, на разрывы не обращали внимания, может, они там и есть.
Взрыв цепочки - это когда на каком-то из уровней у объекта несколько родителей одновременно. В статье указан пример - Челябинск, у которого все внутригородские районы являются родителями самого Челябинска. И тогда цепочек становится по количеству этих самых внутригородских районов.
Но если такие адреса попробовать найти через веб-форму фиаса, то в родителях будет только один внутригородской район. Отсечь лишнее можно, сверив ОКТМО. Если есть другой, менее геморройный способ, и кто-то может его указать, будем благодарны.
Немного оффтопик, но у меня подгорает, когда структуры, принадлежащие частным лицам, пытаются "справедливыми рыночными инструментами" присваивать себе заслуги наших предков и всего советского народа в целом и "лочить" эти достижения внутри своих "экосистем".
Грубо говоря, у нас аналогом "закона о Микки-Маусе" является текущая ситуация с Союзмультфильмом, например.
Поэтому люто, бешено плюсую эту статью. ФИАС мягко говоря не идеален, но спасибо за то, что он есть.
Привет! Меня зовут Таня, я развиваю продукт «Единый адрес» в HFLabs. Статья очень ценная, информации про ГАР не так много, спасибо что поделилась своими наработками.
Но, судя по тексту, чем занимается HFLabs, похоже, не совсем понятно :(
Есть компании, перепродающие ФИАС, иногда с дополнениями (DaData) или собирающие ваши данные (HFLabs). Несомненно, работа по очистке, поддержка, сбор координат из росреестра или другого источника, чего-то стоят, и кто-то не готов ее сам чистить и поддерживать, но готов заплатить, в том числе своими данными, и это нормально. Как относиться к тому, что в таком случае они не указывают первоисточник данных, где можно тупо скачать базу без вопросов, решайте сами.
HFLabs работает с крупными заказчиками, софт и БД разворачивается у заказчика в контуре, есть NDA и законодательство, все данные живут у заказчика. Сервис DaData сделан нашей командой для тех, кому энтерпрайз-решение не нужно. Формат ФИАС (а скоро перейдем на ГАР), используем в наших сервисах и не скрываем этого.
1 сентября 2021 года ФНС перестала выпускать справочник в формате ФИАС с dbf, а оставила только ГАР в xml. Мы сделали конвертер из ГАР в ФИАС и стали раздавать всем желающим справочник в формате «ФИАС», т.к. не все системы успели поддержать формат ГАР в xml.
Чтобы получить справочник «ФИАС» из ГАР мы просим указать емейл, писали про это в статье «Сделали «ФИАС» на основе ГАР». Емейлы нужны, чтобы оценить потенциальную нагрузку на сервера, с которых будет скачиваться справочник и чтобы понять, а нужна ли вообще кому-то эта выгрузка. А то может желающих миллионы, и нам надо бежать, наращивать серверные мощности, чтобы держать регулярную нагрузку. Или, наоборот, никому справочник не нужен, так зачем его вообще поддерживать? :-)
Мы не перепродаем ФИАС. Наоборот, раздаем сделанный на основе ГАР справочник в формате ФИАС бесплатно и делимся знаниями про ГАР в телеграм и на ютьюб-канале.
1 сентября 2021 года ФНС перестала выпускать справочник в формате ФИАС с dbf, а оставила только ГАР в xml. Мы сделали конвертер из ГАР в ФИАС и стали раздавать всем желающим справочник в формате «ФИАС», т.к. не все системы успели поддержать формат ГАР в xml.
Об этом переходе стало известно кажется месяца за три до этого перехода. Идеологически более верно дать людям "удочку" и научить их самим парсить эти базы, вместо того, что зависеть еще от одной третьей стороны, которая перегоняет новые базы в старый формат, тем более, что ваша статья вышла уже через месяц после такого перехода.
Чтобы получить справочник «ФИАС» из ГАР мы просим указать емейл, писали про это в статье «Сделали «ФИАС» на основе ГАР». Емейлы нужны, чтобы оценить потенциальную нагрузку на сервера, с которых будет скачиваться справочник и чтобы понять, а нужна ли вообще кому-то эта выгрузка.
Ну… чтобы скачать публичные и открытые данные, нужно вводить на какой-то сайт свои персональные данные. Причем нигде нет ссылки ни на оригинал, ни на скрипты, которыми этот переход делается.
На том же hetzner
инстансы с 20 ТБ трафика стоят довольно тривиальные деньги. С около нулевыми расходами у меня получалось хостить даже датасеты терабайтного размера (да и есть некоммерческие и научные хостинги для таких больших данных).
Поэтому наверное позволю себе усомниться в истинности таких намерений (более того, не всем нужно качать сразу все регионы). Вы могли выложить скрипты и ссылку на первоисточник и скрипт, и никакого трафика бы в принципе не возникло. Но вы почему-то сделали иначе.
Мы не перепродаем ФИАС. Наоборот, раздаем сделанный на основе ГАР справочник в формате ФИАС бесплатно и делимся знаниями про ГАР в телеграм и на ютьюб-канале.
Если вынести позитивный анализ за скобки, пусть каждый читатель сам сделает для себя вывод.
Нам активно продают будущее, где мы ничего не можем и ничем не владеем. От нас прячут источники. Нам рассказывают, что мы должны покупать корпоративные экосистемы.
Будущее в наших руках. Каждый должен сам сделать вывод, за какое будущее он голосует.
Статья очень ценная, информации про ГАР не так много, спасибо что поделилась своими наработками.
И почему-то именно после вашего комментария "очень ценная" статья на не самую массовую и популярную тему стала резко набирать минусы… интересно. Причем число этих "резких" минусов примерно соответствует числу сотрудников, у кого у вас RW карма.
Хабр конечно не VC, чтобы показывать кто что лайкает, но на определенные выводы меня это наводит.
Идеологически более верно дать людям "удочку" и научить их самим парсить эти базы, вместо того, что зависеть еще от одной третьей стороны, которая перегоняет новые базы в старый формат, тем более, что ваша статья вышла уже через месяц после такого перехода.
Да, мы сначала рассматривали вариант, чтобы дать конвертер для самостоятельного парсинга. Конвертер писался на скорую руку, и в данный момент использует часть уже имеющейся у нас инфраструктуры, которую мы не можем выложить в открытый доступ. А для того чтобы подготовить, выложить все опенсорс и описать, нужно потратить определенное время и ресурсы команды. И ресурсов на это уйдет больше, чем выкладывать справочник.
Поэтому решение о временном выпуске справочника «ФИАС» из конвертера удобно для пользователей и для поддержки.
В конечном итоге, все должны прийти к тому, чтобы использовать ГАР, который предоставляет ФНС, а не жить постоянно с конвертером из ГАР в «ФИАС».
Поэтому вы компанией минусите статью человека, бесплатно поделившегося своей работой, потратившего много времени и усилий на то, что вы не сделали, после того как он в личке отказался удалять справедливую адекватную критику. Лицемерно говоря "Молодец, хорошая статья".
Интересно. Компания, специализирующаяся на данной тематике, не смогла "потратить определенное время и ресурсы команды", а одна девушка смогла и просто поделилась.
И, о ужас, она отказалась по вашей просьбе цензурировать свое мнение и вы тупо сливаете ее статью.
Как показательно.
В итоге в сухом остатке по итогу статьи habr.com/ru/post/692182/ :
Справедливость восстановлена, факт коллективного слива этой компанией публично задокументирован
Статья получила больше exposure
Карма восстановлена, теперь вы ее слить не сможете даже если всей толпой проголосуете
Вероятно если проголосуете, то хабр уже с вами что-то сделает
Удивительно и занятно, что не прокатило, не так ли?
Какой бедлам творится сейчас в этих базах — не представляю :)
Через тернии к звёздам. Но базы всё-таки есть и становятся лучше, хоть и медленно.
Ещё вспомнилось, к чести «хозяина» выписки телефонных кодов (по крайней мере в то время), все отправленные мной на публичный email абузы с несостыковками в таблицах (очепятки, дубликаты, перемешанные части строк и т.п.) исправлялись, пусть иногда и через месяц-полтора, но чаще в ближайшем обновлении. По крайней мере для этой базы вышеупомянутая мной таблица исключений уменьшалась в разы по сравнению с самым первым состоянием.
Остаётся загадкой, почему подобные ошибки не выявлялись сразу при заполнении или выгрузке, ведь даже мой несложный скрипт на пару сотен строк легко их выявлял.
Меня лично в этом всем пугает ещё и откровенно сложный формат подачи - цепочки, xml, много легаси.
Не берусь судить почему они так выкладывают, но 100% можно пожертвовать какими-то историческими особенностями и сделать проще. Чего стоит только отсутвие унификации полей всяких корпусов и строений.
Но наверное это является отражением каких-то внутренних неведомых нам процессов.
Добрый день,
Согласно AS_MUN_HIERARCHY_2_251_10_04_01_01.xsd в файлах AS_MUN_HIERARCHY_*.XML нет поля PATH. Да и в файлах AS_ADM_HIERARCHY_*.XML тоже. Можно узнать, откуда вы получили эту информацию?
Вы используете xml.etree.ElementTree и парсите XML целиком в память. Я столкнулся, что при обработке XML файлов размером по несколько сотен мегабайт и даже пару гигабайт, это происходит - ну очень долго:) Да и памяти нужно много. Я обрабатываю эти файлы, используя lxml, и делаю for event, element in ET.iterparse(xml_file, encoding='utf-8'). При этом сохраняю все данные в csv файл, который потом импортирую в постгрес, из которого уже можно делать все, что угодно. Получается относительно быстро.
А вообще, ФИАС - очень веселая система:)
Если не ошибаюсь, поле PATH упоминается в документации, но не в схеме xsd. И это поле присутствует не во всех регионах.
Насчет очень долго - для нас терпимо, памяти у нас достаточно, поэтому мы не искали способы сделать это более эффективно.
Постгрес мы любим и используем, но сложные манипуляции с данными давно делаем в питоновых скриптах, так как работаем в основном со звуком, и там постгрес нам не поможет.
Спасибо за хороший совет для обхода проблем с памятью)
Меня больше пугает то, что если бы мы разбирали каждую версию ФИАС в какую-то нормализованную и упрощенную версию и начали бы вести version control допустим через тот же постгрес (вроде в ФИАС есть uuid
для каждого объекта?), то наверное нас ждало бы еще больше открытий.
Не знаю готовы ли мы морально к такому =)
Парниша бустанул статейку.
Парсим ГАР БД ФИАС в удобный формат в питоне. Бесплатно, без регистрации и СМС