[ИРД][parser] Парсер PDF-постановлений ПАГЕ (проекты межевания/планировки) → перечень ЗУ под изъятие/резервирование #1091

Closed
opened 2026-06-06 18:49:51 +00:00 by lekss361 · 1 comment
Owner

Выделено из разведки #1062 (2026-06-06, ступень 2). Часть EPIC #1067 (слой ИРД) и #947 (сущность Граддокумент).

Зачем

Изъятие/резервирование ЗУ (#1062) не существует как готовый spatial-слой ни в НСПД, ни в геопортале ЕКБ, ни в региональном ГИСОГД66 (все целевые слои urban_parsel_reserve_ppm и т.п. = 0 фич — проверено вживую). Юридически перечень ЗУ под изъятие определяется только в тексте утверждённых проектов межевания (постановления ПАГЕ). Эти PDF публикуются на офиц. правовом портале Свердл. обл. Этот таск — ступень 2 пайплайна #1062 (ступень 1 — overlay геопортала dmd_prj_mej — отдельно).

Источник (подтверждено вживую)

  • pravo.gov66.ru — офиц. интернет-портал правовой информации Свердл. обл. Публикует «Об утверждении / О внесении изменений в проект межевания территории» как PDF (пример формата URL: https://www.pravo.gov66.ru/media/pravo/p341_*.pdf).
  • Реквизиты документа (ПАГЕ № … от …, doc_status, район) приходят из геопортала ЕКБ portal:portal_geo_dmd_prj_mej (WFS, 904 действующих/недействующих проекта межевания — поля doc_full_name/dmd_abstract/dmd_ident_title/doc_status). См. #1062.

Что парсить (вход → выход)

  • Вход: ПАГЕ-№ + дата (из dmd_prj_mej) ИЛИ прямой crawl pravo.gov66.ru по рубрике «проект межевания/планировки».
  • Извлекать из PDF:
    • перечень ЗУ, подлежащих изъятию для гос/мун нужд (кадастровые номера / адреса);
    • перечень резервируемых ЗУ (если есть, ст.70.1);
    • реквизиты постановления (№, дата, орган), срок, цель (под какой ОКС);
    • связь с проектом межевания (ПАГЕ-№) → join к геометрии dmd_prj_mej.
  • Выход: строки в overlay/таблицу (рядом с ird_overlays, см. data/sql/132_ird_overlays.sql) с кад.№/геометрией + основанием (ПАГЕ-№) + типом (изъятие/резервирование) + срок/цель + source_url. analyze отдаёт флаг + реквизиты.

Pipeline

geoportal dmd_prj_mej (doc_status='approved') → ПАГЕ-№/дата
  → найти PDF на pravo.gov66.ru (по №/дате или crawl рубрики)
  → extract text (pdfminer/pdfplumber; OCR fallback для сканов)
  → regex/LLM-извлечение перечня кад.№ под изъятие/резервирование + реквизиты
  → upsert в ИРД-overlay (кад.№ → решение)
  → analyze: parcel ∈ перечень → {изъятие/резерв: true, основание ПАГЕ-№, срок, цель}

Acceptance

  • Для тест-набора ПАГЕ-постановлений (проекты межевания ЕКБ с изъятием) парсер извлекает перечень кад.№ + реквизиты с приемлемой точностью (целевой recall на кад.№, ручная сверка ≥N документов).
  • Результат join-ится к dmd_prj_mej по ПАГЕ-№ и доступен в analyze; где PDF скан/нечитаем — честная пометка «требует ручной сверки» + ссылка на документ.

Честные пробелы / риски

  • Формат постановлений ПАГЕ не унифицирован (таблицы/списки/сканы) → часть потребует OCR + ручной верификации.
  • Не все изъятия проходят через опубликованный ППиМ; ст.56.1-ограничение в ЕГРН — отдельный платный/СМЭВ-путь (вне scope).
  • Это semi-automatable (🟡): чистый per-parcel boolean зависит от качества PDF-парса.

Связано

  • #1062 (ИРД-5 изъятие/резервирование — ступень 1 overlay + полная разведка где лежит)
  • #1061 (ИРД-4 граддокументация ППТ/ПМТ/ГПЗУ/РНС)
  • #947 (EPIC Граддокумент + парсер ППТ/ПМТ/слушаний)
  • #1067 (EPIC слой ИРД), data/sql/132_ird_overlays.sql
  • vault research/EKB_Geoportal_IRD_Layers_KRT_Genplan_Reserve_Jun06 (раздел «ДОБОР-2: где лежит изъятие»)
_Выделено из разведки #1062 (2026-06-06, ступень 2). Часть EPIC #1067 (слой ИРД) и #947 (сущность Граддокумент)._ ## Зачем Изъятие/резервирование ЗУ (#1062) **не существует как готовый spatial-слой** ни в НСПД, ни в геопортале ЕКБ, ни в региональном ГИСОГД66 (все целевые слои `urban_parsel_reserve_ppm` и т.п. = 0 фич — проверено вживую). Юридически перечень ЗУ под изъятие определяется **только в тексте утверждённых проектов межевания (постановления ПАГЕ)**. Эти PDF публикуются на офиц. правовом портале Свердл. обл. Этот таск — **ступень 2** пайплайна #1062 (ступень 1 — overlay геопортала `dmd_prj_mej` — отдельно). ## Источник (подтверждено вживую) - **`pravo.gov66.ru`** — офиц. интернет-портал правовой информации Свердл. обл. Публикует «Об утверждении / О внесении изменений в проект межевания территории» как PDF (пример формата URL: `https://www.pravo.gov66.ru/media/pravo/p341_*.pdf`). - Реквизиты документа (**ПАГЕ № … от …**, doc_status, район) приходят из геопортала ЕКБ `portal:portal_geo_dmd_prj_mej` (WFS, 904 действующих/недействующих проекта межевания — поля `doc_full_name`/`dmd_abstract`/`dmd_ident_title`/`doc_status`). См. #1062. ## Что парсить (вход → выход) - **Вход:** ПАГЕ-№ + дата (из `dmd_prj_mej`) ИЛИ прямой crawl pravo.gov66.ru по рубрике «проект межевания/планировки». - **Извлекать из PDF:** - перечень **ЗУ, подлежащих изъятию** для гос/мун нужд (кадастровые номера / адреса); - перечень **резервируемых** ЗУ (если есть, ст.70.1); - реквизиты постановления (№, дата, орган), срок, цель (под какой ОКС); - связь с проектом межевания (ПАГЕ-№) → join к геометрии `dmd_prj_mej`. - **Выход:** строки в overlay/таблицу (рядом с `ird_overlays`, см. `data/sql/132_ird_overlays.sql`) с кад.№/геометрией + основанием (ПАГЕ-№) + типом (изъятие/резервирование) + срок/цель + source_url. `analyze` отдаёт флаг + реквизиты. ## Pipeline ``` geoportal dmd_prj_mej (doc_status='approved') → ПАГЕ-№/дата → найти PDF на pravo.gov66.ru (по №/дате или crawl рубрики) → extract text (pdfminer/pdfplumber; OCR fallback для сканов) → regex/LLM-извлечение перечня кад.№ под изъятие/резервирование + реквизиты → upsert в ИРД-overlay (кад.№ → решение) → analyze: parcel ∈ перечень → {изъятие/резерв: true, основание ПАГЕ-№, срок, цель} ``` ## Acceptance - Для тест-набора ПАГЕ-постановлений (проекты межевания ЕКБ с изъятием) парсер извлекает перечень кад.№ + реквизиты с приемлемой точностью (целевой recall на кад.№, ручная сверка ≥N документов). - Результат join-ится к `dmd_prj_mej` по ПАГЕ-№ и доступен в analyze; где PDF скан/нечитаем — честная пометка «требует ручной сверки» + ссылка на документ. ## Честные пробелы / риски - Формат постановлений ПАГЕ **не унифицирован** (таблицы/списки/сканы) → часть потребует OCR + ручной верификации. - Не все изъятия проходят через опубликованный ППиМ; ст.56.1-ограничение в ЕГРН — отдельный платный/СМЭВ-путь (вне scope). - Это **semi-automatable** (🟡): чистый per-parcel boolean зависит от качества PDF-парса. ## Связано - #1062 (ИРД-5 изъятие/резервирование — ступень 1 overlay + полная разведка где лежит) - #1061 (ИРД-4 граддокументация ППТ/ПМТ/ГПЗУ/РНС) - #947 (EPIC Граддокумент + парсер ППТ/ПМТ/слушаний) - #1067 (EPIC слой ИРД), `data/sql/132_ird_overlays.sql` - vault `research/EKB_Geoportal_IRD_Layers_KRT_Genplan_Reserve_Jun06` (раздел «ДОБОР-2: где лежит изъятие»)
lekss361 added the
GG-форсайт
scope/backend
scrapers
site-finder
ИРД
labels 2026-06-06 18:49:59 +00:00
lekss361 added this to the Site Finder v2 — Foresight (GG-форсайт) milestone 2026-06-06 18:49:59 +00:00
Author
Owner

Сделано — на проде (verified 2026-06-07)

Парсер постановлений изъятия реализован и отработал на живых данных. Эволюция:

  • page_reservation_parser.py (#1091) — pdfplumber-парсер кад-номеров из текста постановлений.
  • Источник уточнён: пообъектные изъятия ЕКБ — на городском портале (екатеринбург.рф/гиз/.../изъятие), не областном pravo.gov66.
  • PDF = сканы → добавлен OCR-пайплайн (izyatie_ocr.py + Tesseract rus, #1153) с нормализацией OCR-шума.
  • Прод-прогон ingest_izyatie_ocr: 5 документов → 27 кад-номеров (формат валидный, 0 malformed). Пишутся в land_reservation, врезано в analyze через reservations (#1118).

Это опровергает «изъятие ЕКБ мёртвое с 2016» — раздел живой (сообщения 2026). Closing — парсер сделан и работает.

## ✅ Сделано — на проде (verified 2026-06-07) Парсер постановлений изъятия реализован и **отработал на живых данных**. Эволюция: - `page_reservation_parser.py` (#1091) — pdfplumber-парсер кад-номеров из текста постановлений. - Источник уточнён: пообъектные изъятия ЕКБ — на **городском портале** (екатеринбург.рф/гиз/.../изъятие), не областном pravo.gov66. - PDF = **сканы** → добавлен OCR-пайплайн (`izyatie_ocr.py` + Tesseract rus, #1153) с нормализацией OCR-шума. - **Прод-прогон `ingest_izyatie_ocr`: 5 документов → 27 кад-номеров** (формат валидный, 0 malformed). Пишутся в `land_reservation`, врезано в analyze через `reservations` (#1118). Это опровергает «изъятие ЕКБ мёртвое с 2016» — раздел живой (сообщения 2026). Closing — парсер сделан и работает.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#1091
No description provided.