[ИРД-7] Публичные сервитуты #1063

Closed
opened 2026-06-05 03:46:24 +00:00 by bot-backend · 3 comments
Collaborator

Запрос команды (Макс/Леха) 2026-06-04 для «волшебной таблицы» (= analyze/§22). Источники: ПКК pkk.rosreestr.ru, НСПД нспд.рф, portal.okn.midural.ru, приказы ПАТ.

Существующее: 🔴 NONE напрямую — но НСПД zouit_other=37581 («иные ЗОУИТ: публичный сервитут/ОЭЗ») уже тащится (ЗОУИТ-стек, item 6). Тест уже ожидает «Зона публичного сервитута».
Источник: либо отдельный слой НСПД «Публичные сервитуты» (ID harvest), либо фильтр уже-тащимого 37581 по типу; ПКК тоже несёт сервитут. Feasibility: easy (данные уже приходят в 37581).
План: извлекать сервитуты из 37581 по типу → поле servitudes; опц. harvest dedicated ID если есть.
Acceptance: analyze отдаёт публичные сервитуты участка.
Связано: ЗОУИТ-стек (item 6 готов).

_Запрос команды (Макс/Леха) 2026-06-04 для «волшебной таблицы» (= analyze/§22). Источники: ПКК pkk.rosreestr.ru, НСПД нспд.рф, portal.okn.midural.ru, приказы ПАТ._ **Существующее:** 🔴 NONE напрямую — но НСПД `zouit_other=37581` («иные ЗОУИТ: публичный сервитут/ОЭЗ») **уже тащится** (ЗОУИТ-стек, item 6). Тест уже ожидает «Зона публичного сервитута». **Источник:** либо отдельный слой НСПД «Публичные сервитуты» (ID harvest), либо **фильтр уже-тащимого 37581 по типу**; ПКК тоже несёт сервитут. Feasibility: **easy** (данные уже приходят в 37581). **План:** извлекать сервитуты из 37581 по типу → поле `servitudes`; опц. harvest dedicated ID если есть. **Acceptance:** analyze отдаёт публичные сервитуты участка. **Связано:** ЗОУИТ-стек (item 6 готов).
bot-backend added the
scope/backend
status/ready
ИРД
GG-форсайт
site-finder
labels 2026-06-05 03:46:24 +00:00
lekss361 added this to the Site Finder v2 — Foresight (GG-форсайт) milestone 2026-06-05 07:22:47 +00:00
Owner

🔬 Research-дополнение (2026-06-05)

Правовая база (проверено по первоисточнику):

  • Публичный сервитут — ЗК РФ глава V.7, ст. 39.37–39.50. Цели (ст. 39.37): электро/тепло/водо-сети, связь, инж. сооружения. Границы — ст. 39.43. гл. V.7 ЗК.

Где публикуется / тип-поле:

  • Публичный сервитут вносится в реестр границ ЕГРН как самостоятельный объект: реквизиты решения, цель, срок, обладатель, координаты границ. Отображается на ПКК/НСПД.
  • ⚠️ Правовая поправка к телу issue: публичный сервитут юридически НЕ тождественен ЗОУИТ — это разные объекты реестра границ (одна территория может быть и в границах сервитута, и внутри ЗОУИТ). Письмо Росреестра 14-12213-ГЕ/19.

Состояние в коде (forgejo/main):

  • LAYERS["zouit_other"]=37581 («иные ЗОУИТ: публичный сервитут/ОЭЗ») уже тащится grid-walk (nspd_client.py:86,129).
  • test_gate_verdict.py:177-191 уже ожидает overlap type_zone="Зона публичного сервитута" → warning ZOUIT_CAD_OTHER. Т.е. если 37581 реально отдаёт сервитуты, фичу почти закрывает существующий стек.

Honest split:

  • easy-to-medium, но с оговоркой: 37581 не гарантированно несёт публичные сервитуты (они — отдельный класс объекта ЕГРН, а не подтип «иных ЗОУИТ»). Два пути: (1) фильтр 37581 по типу (быстро) — но сначала эмпирически проверить, реально ли НСПД отдаёт сервитуты в этом слое для ЕКБ; (2) dedicated НСПД-слой «Публичные сервитуты» — публичного подтверждения ID нет → harvest #1057.
  • Fetch: разбор type_zone/properties фич 37581 в nspd_denorm.py (сейчас zouit_* там пропускаются — nspd_denorm.py:356), surface в analyze.servitudes.

Уточнённый DoD:

  • STEP 0 (VPS-проба, ст. #1057): возвращает ли 37581 публичные сервитуты для тест-точки ЕКБ, какое поле различает тип.
  • Извлекать сервитуты из 37581 по типу → поле servitudes (цель/срок/обладатель если в props).
  • Если 37581 не несёт по ЕКБ → harvest dedicated ID (#1057) ИЛИ честная пометка + fallback ПКК/ИСОГД.
  • Тест: проба-участок с известным сервитутом → servitudes непуст.

Effort/Risk: ~0.5-1 дн если 37581 несёт данные. Risk: допущение «37581 = публичный сервитут» непроверено — гипотеза, нужна VPS-проба перед реализацией.

Status-label: держать status/ready (worker стартует с пути №1 + VPS-проба в первом шаге), но добавить в тело «STEP 0: verify 37581 carries servitudes for EKB — else escalate to #1057». Не понижать до needs-human — capability есть.

## 🔬 Research-дополнение (2026-06-05) **Правовая база (проверено по первоисточнику):** - **Публичный сервитут** — ЗК РФ **глава V.7, ст. 39.37–39.50**. Цели (ст. 39.37): электро/тепло/водо-сети, связь, инж. сооружения. Границы — ст. 39.43. [гл. V.7 ЗК](https://base.garant.ru/12124624/1dc0c75e84c609bad14d91efe6b2c3ed/). **Где публикуется / тип-поле:** - Публичный сервитут вносится в **реестр границ ЕГРН** как **самостоятельный объект**: реквизиты решения, цель, срок, обладатель, координаты границ. Отображается на ПКК/НСПД. - ⚠️ **Правовая поправка к телу issue:** публичный сервитут юридически **НЕ тождественен ЗОУИТ** — это разные объекты реестра границ (одна территория может быть и в границах сервитута, и внутри ЗОУИТ). [Письмо Росреестра 14-12213-ГЕ/19](https://rulaws.ru/acts/Pismo-Rosreestra-ot-13.12.2019-N-14-12213-GE_19/). **Состояние в коде (`forgejo/main`):** - `LAYERS["zouit_other"]=37581` («иные ЗОУИТ: публичный сервитут/ОЭЗ») **уже тащится** grid-walk (`nspd_client.py:86,129`). - `test_gate_verdict.py:177-191` **уже** ожидает overlap `type_zone="Зона публичного сервитута"` → warning `ZOUIT_CAD_OTHER`. Т.е. если 37581 реально отдаёт сервитуты, фичу почти закрывает существующий стек. **Honest split:** - ✅ **easy-to-medium**, но с оговоркой: 37581 не гарантированно несёт публичные сервитуты (они — отдельный класс объекта ЕГРН, а не подтип «иных ЗОУИТ»). Два пути: (1) **фильтр 37581 по типу** (быстро) — но сначала эмпирически проверить, реально ли НСПД отдаёт сервитуты в этом слое для ЕКБ; (2) **dedicated НСПД-слой «Публичные сервитуты»** — публичного подтверждения ID **нет** → harvest #1057. - Fetch: разбор `type_zone`/`properties` фич 37581 в `nspd_denorm.py` (сейчас zouit_* там пропускаются — `nspd_denorm.py:356`), surface в `analyze.servitudes`. **Уточнённый DoD:** - [ ] **STEP 0 (VPS-проба, ст. #1057):** возвращает ли 37581 публичные сервитуты для тест-точки ЕКБ, какое поле различает тип. - [ ] Извлекать сервитуты из 37581 по типу → поле `servitudes` (цель/срок/обладатель если в props). - [ ] Если 37581 не несёт по ЕКБ → harvest dedicated ID (#1057) ИЛИ честная пометка + fallback ПКК/ИСОГД. - [ ] Тест: проба-участок с известным сервитутом → `servitudes` непуст. **Effort/Risk:** ~0.5-1 дн **если** 37581 несёт данные. **Risk:** допущение «37581 = публичный сервитут» непроверено — гипотеза, нужна VPS-проба перед реализацией. **Status-label:** держать `status/ready` (worker стартует с пути №1 + VPS-проба в первом шаге), но добавить в тело «STEP 0: verify 37581 carries servitudes for EKB — else escalate to #1057». Не понижать до needs-human — capability есть.
Owner

🛰️ Источник найден — геопортал ЕКБ gknspecial_zone (2026-06-06, Playwright)

🟢 Публичные сервитуты автоматизируемы через геопортал ЕКБ WFS — НЕ нужен НСПД.

  • Слой portal:portal_geo_gknspecial_zone (единый слой ЗОУИТ ЕГРН/ГКН, 20 251 фича всего). Тип фильтруется по full_name.
  • «Зона публичного сервитута» = 2344 фичи (CQL full_name LIKE 'Зона публичного сервитута%', подтверждено вживую).
  • Метод: INTERSECTS(geoloc, POINT(lon lat)) EPSG:4326 lon-lat (как КРТ) + CQL по типу + фильтр zone_state_v='Действующий' (отсев архивных).
  • Атрибуты (читаемые, не коды!): full_name (тип + рег.№ 66:41-7.x), gkn_specialz_contentrestrictions (содержание ограничений — текст), gkn_specialz_protectedobject, authority_decision, gkn_document, registration_date, zone_state_v, area.
  • Лучше НСПД (37581 даёт только геометрию+код, тип/ограничения резолвить отдельно — 132_ird_overlays C8/D9). Здесь геометрия+тип+ограничения в одном WFS-запросе.

Pipeline: parcel point → WFS INTERSECTS(gknspecial_zone) WHERE full_name LIKE 'Зона публичного сервитута%' AND zone_state_v='Действующий' → {рег.№, ограничения, защищаемый объект}. Feasibility 🟢 → status/ready. Источник: геопортал ЕКБ, НЕ НСПД-harvest #1057.

Разведка: vault research/EKB_Geoportal_IRD_Layers_KRT_Genplan_Reserve_Jun06.

## 🛰️ Источник найден — геопортал ЕКБ `gknspecial_zone` (2026-06-06, Playwright) **🟢 Публичные сервитуты автоматизируемы через геопортал ЕКБ WFS — НЕ нужен НСПД.** - **Слой `portal:portal_geo_gknspecial_zone`** (единый слой ЗОУИТ ЕГРН/ГКН, **20 251 фича** всего). Тип фильтруется по `full_name`. - **«Зона публичного сервитута» = 2344 фичи** (CQL `full_name LIKE 'Зона публичного сервитута%'`, подтверждено вживую). - **Метод:** `INTERSECTS(geoloc, POINT(lon lat))` EPSG:4326 lon-lat (как КРТ) + CQL по типу + фильтр `zone_state_v='Действующий'` (отсев архивных). - **Атрибуты (читаемые, не коды!):** `full_name` (тип + рег.№ `66:41-7.x`), `gkn_specialz_contentrestrictions` (**содержание ограничений** — текст), `gkn_specialz_protectedobject`, `authority_decision`, `gkn_document`, `registration_date`, `zone_state_v`, `area`. - **Лучше НСПД** (37581 даёт только геометрию+код, тип/ограничения резолвить отдельно — `132_ird_overlays` C8/D9). Здесь геометрия+тип+ограничения в одном WFS-запросе. **Pipeline:** `parcel point → WFS INTERSECTS(gknspecial_zone) WHERE full_name LIKE 'Зона публичного сервитута%' AND zone_state_v='Действующий' → {рег.№, ограничения, защищаемый объект}`. Feasibility **🟢 → status/ready**. Источник: геопортал ЕКБ, НЕ НСПД-harvest #1057. _Разведка: vault `research/EKB_Geoportal_IRD_Layers_KRT_Genplan_Reserve_Jun06`._
Owner

Геометрия закрыта merged-работой: zouit_other (НСПД 37581 «иные ЗОУИТ: публичный сервитут/ОЭЗ») тащится ird_harvest (#1090) в ird_overlays → отдаётся в analyze через ird.ird_overlaps (layer_kind='zouit_other'), за флагом enable_ird_analyze (#1101).

Остаётся опционально: выделенное поле servitudes (фильтр 37581 по subcategory-типу «сервитут» vs ОЭЗ/иные) — но пересечение уже доступно потребителю в overlap. → needs-human: решить, нужен ли отдельный типизированный servitudes-срез поверх overlap, или overlap достаточно (тогда close).

Геометрия закрыта merged-работой: `zouit_other` (НСПД 37581 «иные ЗОУИТ: публичный сервитут/ОЭЗ») тащится `ird_harvest` (#1090) в `ird_overlays` → отдаётся в analyze через `ird.ird_overlaps` (layer_kind='zouit_other'), за флагом `enable_ird_analyze` (#1101). Остаётся опционально: выделенное поле `servitudes` (фильтр 37581 по subcategory-типу «сервитут» vs ОЭЗ/иные) — но пересечение уже доступно потребителю в overlap. → `needs-human`: решить, нужен ли отдельный типизированный `servitudes`-срез поверх overlap, или overlap достаточно (тогда close).
lekss361 added
needs-human
and removed
status/ready
labels 2026-06-06 20:56:39 +00:00
Sign in to join this conversation.
No project
No assignees
2 participants
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#1063
No description provided.