Pull to refresh
15
Karma
0
Rating
Сергей Гладков @gladkovs

Разработчик баз данных

Дома ФИАС в среде PostgreSQL

Мне трудно точно ответить на Ваш вопрос, т.к. я только пользователь данных ФИАС. А данные ФИАС - это "дитя" двух "нянек": ФНС(оператора) и администрации населенного пункта (в Вашем случае города Санкт-Петербурга). ФНС только хранит данные, а ответственность за них несет администрация города.

Можно попробовать направить Ваш вопрос в ФНС (https://www.nalog.gov.ru/rn77/service/service_feedback/?service=22). Но, скорее всего, Вам предложат обратится в службу администрации (или районной администрации) Санкт-Петербурга, которая предоставляет эти данные.

 

Я думаю, что поле POSTALCODE (почтовый индекс) в таблице ADDROB78 остается не заполненным потому, что дома на улице обслуживаются не одним, а несколькими почтовыми отделениями. Т.е. одной улице могут соответствовать несколько почтовых индексов. Но поле POSTALCODE имеет длину 6 символов, так что больше одного почтового индекса в него не запишешь. В этом случае можно было бы включить поле POSTALCODE в таблицу домов HOUSE, чего сделано небыло. Правда, это приведет к увеличению трудоемкости заполнения этой таблицы . Другим, но не слишком хорошим, решением могло быть разрешение вводить в поле POSTALCODE таблицы ADDROB более одного почтового индекса.
Есть и более сложные варианты решения этой задачи.

Поэтому я думаю, что одной из причин того, что «файле AS_ADDROBJ_*.XML нет всех индексов», является ошибка в схеме хранения данных или обменного формата ФИАС.

Дома ФИАС в среде PostgreSQL

Извините. Ответ в комментарии ниже.

Дома ФИАС в среде PostgreSQL

На сайте ФНС fias.nalog.ru/Updates есть выгрузки в формате DBF. Эти файлы открываются с помощью MS Excel, а затем их можно можно сохранить в CSV. Но я для преобразования использую сценарий, написанный на Python. Он написан не лучшим образом, поэтому стыдно его предлагать. А переписать недосуг.

Дома ФИАС в среде PostgreSQL

Дома ФИАС в среде PostgreSQL

Да, это проблема. У меня сейчас 1000 домов, у которых литера записана в поле «номер корпуса». Я слышал от специалистов 2GIS, что это допускается из-за Санкт-Петербурга. Где используются буквенные номера корпуса. Например, дом 1 корпус А. Возможно я не прав. Но, именно так специалист из 2GIS возражал нашему требованию программно запретить такие номера корпусов.

Функции для документирования баз данных PostgreSQL. Часть третья

И в тексте и перех хранимой процедурой сделаны ссылки туда и обратно. НО вы меня уговорили я удалю статьи.

Функции для документирования баз данных PostgreSQL. Часть третья

Простыни текста — это и есть текст, который заменяет картинки.

Функции для документирования баз данных PostgreSQL. Часть третья

Каждый сниппет кода, это центральная часть соответствующей функции, текст которой приведен в приложении с название функции. Но, если Вам затруднительно извлечь их оттуда, я готов выслать Вам SELECTы в текстовой форме. Пишите gladkovs@list.ru

Функции для документирования баз данных PostgreSQL. Часть третья

Все что я могу ответить на это замечание — это принести извинения за то, что эти тексты Вас разочаровали.

Функции для документирования баз данных PostgreSQL. Часть первая

Причина обычная. Так случилось, что никаких средств, в том числе и schemacrawler или schemaspy, для документирования у меня не было.

Функции для документирования баз данных PostgreSQL. Часть первая

Спасибо на добром слове и за идею. Неоднократно решалась задача документирования унаследованной базы данных, базы данных разработанной не мной, в условиях очень ограниченного бюджета.
Мыслей выложить код на github/gitlab пока не было.

Функции для документирования баз данных PostgreSQL. Часть вторая

Прошу прощения. Я нечаянно отменил справедливое замечание о том, что следующая часть публикации должна иметь ссылку на предыдущую часть.
Спасибо за замечание. Исправлю.

Функции для документирования баз данных PostgreSQL. Часть вторая

Спасибо! Попробую не подвести, хотя времени на статьи катастрофически не хватает.

Адреса ФИАС в среде PostgreSQL. Часть 4. ЭПИЛОГ

Спасибо. Не знал. Обязательно попробую. Но, исправлять несогласованность данных ФИАС все равно придется.

Адреса ФИАС в среде PostgreSQL. Часть 3

Адреса ФИАС в среде PostgreSQL. Часть 3

Используется в рамках решения задачи геопривязки, т.е. по предоставленному извне адресу найти объект на карте.
При этом, внешний адрес может содержать устаревшие названия улиц и населенный пунктов. Как Вы знаете, переименование названий адресообразующих элементов не такое уж редкое явление.
Для этих целей создан справочник адресов со своей структурой, особенностью которого является наличие синонимов для каждого адресообразующего элемента.
Адреса ФИАС используется в качестве одного из источников для пополнения адресными данными, а также их синонимами, основного справочника.В этом же сценарии используются, описанные в публикации функции.

Адреса ФИАС в среде PostgreSQL. Часть 2

Я сам себя упрекаю…

Адреса ФИАС в среде PostgreSQL. Часть 2

Извините. В ответе не отобразились ссылки на сайты. Документ который упоминается в ответе, можно найти запросу ФИАС (ФЕДЕРАЛЬНАЯ ИНФОРМАЦИОННАЯ АДРЕСНАЯ СИСТЕМА) на сайте налоговой службы.
Мое описание проблем с адресами ФИАС можно найти по названию публикации «Эх, ФИАС, ФИАС… Почему ты не адресный реестр?».

Адреса ФИАС в среде PostgreSQL. Часть 2

Степень простоты или сложности решения оценивается в зависимости от задачи. Я принимаю неявный упрек в том, что в публикации не описал решаемую задачу, а лишь ограничился тем, что использую структуру справочника ADDROBJ.DBF.
Задача состоит в том, чтобы по адресу, поступившему откуда-то извне (например, от заказчика), найти соответствующий адрес в справочнике ФИАС. При этом, внешний адрес может содержать устаревшие названия улиц и населенный пунктов. Как Вы знаете, переименование названий адресообразующих элементов не такое уж редкое явление.
Поэтому в структуре таблицы, созданной из справочника, были сохранены записи об истории переименования каждого элемента. Я надеялся, что смогу по устаревшему названию элемента находить актуальное. К сожалению, эта надежда не оправдалась. Как написано в первой части статьи лишь в 6,8% от числа элементов, имеющих записи об истории переименования, присутствуют различия в названиях одного и того же элемента. Да и в этих случаях, речь идет скорее об исправлении ошибок, чем об истории переименования адресообразующих элементов. Поэтому, мне не удалось использовать ФИАС, как базовый справочник для решения поставленной задачи. Сейчас он используется как один из источников данных для моего внутреннего справочника адресов.
Подробнее проблемы связанные и использованием адресов ФИАС изложены: .
Описанная задача решается как часть основной задачи – задачи геопривязки, т.е. по предоставленному извне адресу найти объект на карте. Но объектами на карте не обязательно являются дома в населенных пунктах. Такими объектами могут быть, например, дома в дачных или садовых товариществах, или здания цехов на территории промышленной зоны.
Вот как выглядят адреса таких и подобных мест:
«Республика Хакасия, г Абакан, пр-кт Дружбы Народов, дворовая территория домов 15 17 19 тер»
«Республика Хакасия, г Абакан, ул Пушкина, дворовая территория дома 21 тер»
Для идентификации таких мест код ФИАС расширен полями:

  • PLANCODE nvarchar(4) Код элемента планировочной структуры
  • EXTRCODE nvarchar(4) Код дополнительного адресообразующего элемента
  • SEXTCODE nvarchar(3) Код подчиненного дополнительного адресообразующего элемента


Смотри документ «Сведения о составе информации государственного адресного реестра федеральной информационной адресной системы» на сайте .
Не буду обманывать, задача геопривязки дополнительных территорий еще не решена, но она стоит в ближайших планах компании, в которой я работаю. Поэтому и эти поля я не убирал из структуры таблицы.

Адреса ФИАС в среде PostgreSQL. Часть 2

Ваш вопрос требует развернутого ответа. Я, обязательно, отвечу Вам завтра на свежую голову.
1

Information

Rating
Does not participate
Location
Красноярск, Красноярский край, Россия
Registered
Activity