[ИРД-3] КРТ — попадает ли ЗУ в зону комплексного развития территории #1060

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

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

Существующее: 🔴 NONE.
Источник: НСПД КРТ — сервис nspd.gov.ru/integrated-development-territories + слой (нспд.рф/дляработы/гиз/крт); ID — harvest #1057. Формат WMS/REST. By-geometry. Feasibility: easy–medium через клиент после ID. ⚠️ проверить на VPS: даёт ли WMS props метаданные проекта (решение №/дата, застройщик, срок) или нужен card-endpoint (tab-group-data).
План: harvest ID (#1057) → fetch пересечение по геометрии → поле krt {попадает:bool, проект, решение, застройщик, срок}.
Acceptance: для участка в КРТ — флаг + реквизиты проекта; вне — false.
prereq #1057.

_Запрос команды (Макс/Леха) 2026-06-04 для «волшебной таблицы» (= analyze/§22). Источники: ПКК pkk.rosreestr.ru, НСПД нспд.рф, portal.okn.midural.ru, приказы ПАТ._ **Существующее:** 🔴 NONE. **Источник:** НСПД КРТ — сервис `nspd.gov.ru/integrated-development-territories` + слой (`нспд.рф/дляработы/гиз/крт`); ID — harvest #1057. Формат WMS/REST. By-geometry. Feasibility: **easy–medium** через клиент после ID. ⚠️ проверить на VPS: даёт ли WMS props метаданные проекта (**решение №/дата, застройщик, срок**) или нужен card-endpoint (`tab-group-data`). **План:** harvest ID (#1057) → fetch пересечение по геометрии → поле `krt` {попадает:bool, проект, решение, застройщик, срок}. **Acceptance:** для участка в КРТ — флаг + реквизиты проекта; вне — `false`. prereq #1057.
lekss361 added this to the Site Finder v2 — Foresight (GG-форсайт) milestone 2026-06-05 07:22:44 +00:00
Owner

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

Источник (verified): НСПД-сервис «Комплексное развитие территорий» публичен: nspd.gov.ru/integrated-development-territories — отдельный сервис портала для застройщиков + слой КРТ на гео-портале. WMS-паттерн тот же: nspd.gov.ru/api/aeggis/v*/{layer}/wms. Numeric layer ID не подтверждён публично — снимается harvest'ом #1057 на VPS (НСПД геоблок). НЕ выдумывать ID.

Правовая основа: КРТ — ГрК гл.10, ст.64–70, ФЗ-494 от 30.12.2020; 4 вида. Минстрой КРТ.

Реальность покрытия ЕКБ (verified — НЕ пусто): КРТ в Екатеринбурге активен. Свердл. обл.: 23 площадки, 123,5 га, 13 жилых (66.ru). Свежий кейс — площадка у УГМК-Арены (май 2026, uralweb); первый КРТ незастроенной территории (Исток, февр. 2025). By-geometry попадания будут реальные, риск пустоты для ЕКБ — LOW (но verify GetFeatureInfo на конкретном КРТ-полигоне).

Metadata by-geometry vs card (критично для DoD): get_feature_info(layer_id, lon, lat) вернёт геометрию + WMS-props — хватит на флаг intersects:bool и, вероятно, имя/тип проекта. Но реквизиты решение №/дата, застройщик, срок в WMS-props обычно НЕ приходят — нужен card-endpoint (tab-group-data по feature_id), как и предупреждает issue. Открытого единого реестра КРТ с реквизитами по геометрии нет.

Recommended fetch: этап 1 — get_feature_info(<krt_layer_id>, centroid_lon, centroid_lat)krt.intersects + базовые props. Этап 2 (реквизиты) — follow-up card-fetch по feature.feature_id; на VPS проверить tab-group-data. Если нет — krt.requisites помечать source:"card_lookup_required", не блокировать MVP-флаг.

Sharpened DoD:

  • harvest #1057: numeric КРТ layer ID + покрытие ЕКБ (GetFeatureInfo по ≥1 площадке, напр. УГМК-Арена/Исток — НЕ пусто);
  • ID в LAYERS;
  • поле analyze.krt {intersects:bool, project, decision_no, decision_date, developer, deadline} — реквизиты nullable;
  • вне КРТ → intersects:false;
  • зафиксировать в коде: какие поля из WMS-props, какие требуют card-lookup.

Effort/risk: easy–medium (~1 день при ID готовом). Risk: MEDIUM — доступны ли реквизиты по геометрии или только bool-флаг.

Status label: остаётся needs-analysis до закрытия #1057 (нет подтверждённого numeric ID — кодить нечего). После harvest → flip ready. Не флипать сейчас: prereq жёсткий, ID нельзя выдумать.

## 🔬 Research-дополнение (2026-06-05) **Источник (verified):** НСПД-сервис **«Комплексное развитие территорий»** публичен: [`nspd.gov.ru/integrated-development-territories`](https://nspd.gov.ru/integrated-development-territories) — отдельный сервис портала для застройщиков + слой КРТ на гео-портале. WMS-паттерн тот же: `nspd.gov.ru/api/aeggis/v*/{layer}/wms`. **Numeric layer ID не подтверждён публично** — снимается harvest'ом #1057 на VPS (НСПД геоблок). НЕ выдумывать ID. **Правовая основа:** КРТ — **ГрК гл.10, ст.64–70**, ФЗ-494 от 30.12.2020; 4 вида. [Минстрой КРТ](https://minstroyrf.gov.ru/trades/kompleksnoe-razvitie-territoriy/). **Реальность покрытия ЕКБ (verified — НЕ пусто):** КРТ в Екатеринбурге активен. Свердл. обл.: **23 площадки**, **123,5 га**, 13 жилых ([66.ru](https://66.ru/realty/news/276779/)). Свежий кейс — площадка у УГМК-Арены (май 2026, [uralweb](https://www.uralweb.ru/news/society/581689-territoriyu-uugmk-areny-otdali-pod-zastroyku-krt.html)); первый КРТ незастроенной территории (Исток, февр. 2025). By-geometry попадания будут реальные, риск пустоты для ЕКБ — LOW (но verify GetFeatureInfo на конкретном КРТ-полигоне). **Metadata by-geometry vs card (критично для DoD):** `get_feature_info(layer_id, lon, lat)` вернёт **геометрию + WMS-props** — хватит на флаг `intersects:bool` и, вероятно, имя/тип проекта. Но реквизиты **решение №/дата, застройщик, срок** в WMS-props обычно НЕ приходят — нужен card-endpoint (`tab-group-data` по feature_id), как и предупреждает issue. Открытого единого реестра КРТ с реквизитами по геометрии нет. **Recommended fetch:** этап 1 — `get_feature_info(<krt_layer_id>, centroid_lon, centroid_lat)` → `krt.intersects` + базовые props. Этап 2 (реквизиты) — follow-up card-fetch по `feature.feature_id`; на VPS проверить `tab-group-data`. Если нет — `krt.requisites` помечать `source:"card_lookup_required"`, не блокировать MVP-флаг. **Sharpened DoD:** - [ ] harvest #1057: numeric КРТ layer ID + покрытие ЕКБ (GetFeatureInfo по ≥1 площадке, напр. УГМК-Арена/Исток — НЕ пусто); - [ ] ID в `LAYERS`; - [ ] поле `analyze.krt {intersects:bool, project, decision_no, decision_date, developer, deadline}` — реквизиты nullable; - [ ] вне КРТ → `intersects:false`; - [ ] зафиксировать в коде: какие поля из WMS-props, какие требуют card-lookup. **Effort/risk:** easy–medium (~1 день при ID готовом). Risk: MEDIUM — доступны ли реквизиты по геометрии или только bool-флаг. **Status label:** **остаётся needs-analysis до закрытия #1057** (нет подтверждённого numeric ID — кодить нечего). После harvest → flip **ready**. Не флипать сейчас: prereq жёсткий, ID нельзя выдумать.
Owner

🛰️ Разведка источника КРТ — Геопортал Екатеринбурга (2026-06-06)

TL;DR: 🟢 «попадает ли ЗУ в КРT + № + тип» автоматизируется через публичный WFS геопортала ЕКБ (подтверждено вживую). 🟡 реквизиты (решение/договор/застройщик/срок) — отдельным join к городскому реестру КРТ (их в геопортале НЕТ). НСПД для этого пункта НЕ нужен.

Источник (CONFIRMED, открыл вживую)

  • Слой: portal:portal_geo_oks_krt (typename = «Здания в границах КРТ»)
  • Endpoint: https://геопортал.екатеринбург.рф/api/gis/ows/3/portal/wfs (punycode-хост xn--80afgznagjs.xn--80acgfbsl1azdqr.xn--p1ai). Публичный, без авторизации, обычный TLS.
  • Метод: WFS 2.0 GetFeature + CQL_FILTER=INTERSECTS(geoloc, POINT(<lon> <lat>)), EPSG:4326, порядок lon lat — round-trip подтверждён (centroid реального здания КРТ → matched=1; граничная вершина даёт 0 — брать внутреннюю точку/ST_PointOnSurface).
    /api/gis/ows/3/portal/wfs?service=WFS&version=2.0.0&request=GetFeature
      &typeNames=portal:portal_geo_oks_krt&outputFormat=application/json
      &CQL_FILTER=INTERSECTS(geoloc,POINT(60.65977 56.85274))
    

Покрытие ЕКБ — CONFIRMED

  • 48 features, numberMatched=48. Геометрия — Polygon.
  • num_oks_krt ∈ {1…16, 66} (+ часть null) → ~17–18 пронумерованных КРТ. Совпадает с публичными данными: «в Екатеринбурге действуют 18 договоров по КРТ» (РИА ЕАН, 01.10.2025).

Реальные атрибуты (что отдаёт WFS)

full_name («Здание в границах КРТ № N»), num_oks_krt (номер КРТ), type_oks_krt (2 кода-справочника: …3409 / …3419), status_oks_krt (коды …2895563 / …763455 / …763456), floor_oks_krt, year_oks_krt, area, kol_pom_oks_krt, geoloc.
Чего НЕТ: реквизиты решения/постановления о КРТ, договор, застройщик, срок — в слое отсутствуют (это слой ЗДАНИЙ внутри КРТ, не карточка проекта).

⚠️ Две честные оговорки

  1. Слой = здания, а не контур КРТ. Точечный INTERSECTS по ЗУ сработает, только если ЗУ перекрывает footprint здания. Для корректного «ЗУ в границах КРТ N» нужен полигон территории КРТ. Варианты: (а) ST_ConvexHull/ST_Union зданий по num_oks_krt — грубая аппроксимация контура; (б) официальный контур из реестра/ИСОГД; (в) проверить федеральный сабсистем НСПД nspd.gov.ru/krt-nspd (отдельный реестр КРТ-предложений, НЕ слой темы-1 — рекон его не покрывал, стоит пробить отдельно).
  2. Справочные коды type_oks_krt/status_oks_krt — числовые ключи; расшифровка через классификатор портала (urbanCard) либо хардкод-маппинг (2 типа / 3 статуса — дёшево снять вручную).

Реквизиты КРТ (join по номеру)

Не в геопортале → городской реестр: екатеринбург.рф/официально/строительство/крт + Минстрой Свердл. обл. (minstroy.midural.ru). HTML/PDF, по каждому КРТ — решение/постановление + параметры. unconfirmed live (не парсил сам). Скрейпится один раз → таблица krt_registry(num, decision_ref, developer, deadline, …).

Рекомендованный pipeline

parcel.geom (centroid / ST_PointOnSurface, EPSG:4326)
  → WFS INTERSECTS(geoloc, POINT(lon lat)) на portal_geo_oks_krt
  → hit? krt.in = true, krt.num = num_oks_krt, krt.type = map(type_oks_krt)
       (опц. fallback: within ST_Union(buildings WHERE num=N) для контура)
  → join krt_registry[num] → decision_ref, developer, deadline   # отдельный скрейп
  → else krt.in = false

Разовый ETL: можно затянуть все 48 features в PostGIS (krt_oks(geom, num, type, status)) и делать ST_Intersects локально — без обращения к порталу в рантайме.

Итог

🟢🟡 automatable → status/ready. Ядро (да/нет + № + тип по геометрии) — детерминированно через публичный WFS, подтверждено. Реквизиты — отдельной под-задачей (скрейп городского реестра + join по num_oks_krt); либо MVP без реквизитов. Источник сменить: НЕ НСПД-harvest (#1057), а геопортал ЕКБ WFS — он уже используется для ПЗЗ/ЗОУИТ.

Спек для воркера: слой portal:portal_geo_oks_krt, endpoint …/api/gis/ows/3/portal/wfs, INTERSECTS(geoloc,POINT(lon lat)) 4326 lon-lat, поля num_oks_krt/type_oks_krt/status_oks_krt/full_name; контур = ST_Union по num_oks_krt; реквизиты — TODO-подзадача (городской реестр).

## 🛰️ Разведка источника КРТ — Геопортал Екатеринбурга (2026-06-06) **TL;DR: 🟢 «попадает ли ЗУ в КРT + № + тип» автоматизируется через публичный WFS геопортала ЕКБ (подтверждено вживую). 🟡 реквизиты (решение/договор/застройщик/срок) — отдельным join к городскому реестру КРТ (их в геопортале НЕТ).** НСПД для этого пункта НЕ нужен. ### Источник (CONFIRMED, открыл вживую) - **Слой:** `portal:portal_geo_oks_krt` (typename = «Здания в границах КРТ») - **Endpoint:** `https://геопортал.екатеринбург.рф/api/gis/ows/3/portal/wfs` (punycode-хост `xn--80afgznagjs.xn--80acgfbsl1azdqr.xn--p1ai`). Публичный, без авторизации, обычный TLS. - **Метод:** WFS 2.0 GetFeature + `CQL_FILTER=INTERSECTS(geoloc, POINT(<lon> <lat>))`, **EPSG:4326, порядок lon lat** — round-trip подтверждён (centroid реального здания КРТ → `matched=1`; граничная вершина даёт 0 — брать внутреннюю точку/ST_PointOnSurface). ``` /api/gis/ows/3/portal/wfs?service=WFS&version=2.0.0&request=GetFeature &typeNames=portal:portal_geo_oks_krt&outputFormat=application/json &CQL_FILTER=INTERSECTS(geoloc,POINT(60.65977 56.85274)) ``` ### Покрытие ЕКБ — CONFIRMED - **48 features**, `numberMatched=48`. Геометрия — Polygon. - `num_oks_krt` ∈ {1…16, 66} (+ часть null) → **~17–18 пронумерованных КРТ**. Совпадает с публичными данными: «в Екатеринбурге действуют 18 договоров по КРТ» (РИА ЕАН, 01.10.2025). ### Реальные атрибуты (что отдаёт WFS) `full_name` («Здание в границах КРТ № N»), `num_oks_krt` (номер КРТ), `type_oks_krt` (2 кода-справочника: `…3409` / `…3419`), `status_oks_krt` (коды `…2895563` / `…763455` / `…763456`), `floor_oks_krt`, `year_oks_krt`, `area`, `kol_pom_oks_krt`, `geoloc`. **Чего НЕТ:** реквизиты решения/постановления о КРТ, договор, застройщик, срок — в слое отсутствуют (это слой ЗДАНИЙ внутри КРТ, не карточка проекта). ### ⚠️ Две честные оговорки 1. **Слой = здания, а не контур КРТ.** Точечный INTERSECTS по ЗУ сработает, только если ЗУ перекрывает footprint здания. Для корректного «ЗУ в границах КРТ N» нужен полигон территории КРТ. Варианты: (а) `ST_ConvexHull`/`ST_Union` зданий по `num_oks_krt` — грубая аппроксимация контура; (б) официальный контур из реестра/ИСОГД; (в) проверить федеральный сабсистем НСПД `nspd.gov.ru/krt-nspd` (отдельный реестр КРТ-предложений, НЕ слой темы-1 — рекон его не покрывал, стоит пробить отдельно). 2. **Справочные коды** `type_oks_krt`/`status_oks_krt` — числовые ключи; расшифровка через классификатор портала (`urbanCard`) либо хардкод-маппинг (2 типа / 3 статуса — дёшево снять вручную). ### Реквизиты КРТ (join по номеру) Не в геопортале → городской реестр: `екатеринбург.рф/официально/строительство/крт` + Минстрой Свердл. обл. (`minstroy.midural.ru`). HTML/PDF, по каждому КРТ — решение/постановление + параметры. **unconfirmed live** (не парсил сам). Скрейпится один раз → таблица `krt_registry(num, decision_ref, developer, deadline, …)`. ### Рекомендованный pipeline ``` parcel.geom (centroid / ST_PointOnSurface, EPSG:4326) → WFS INTERSECTS(geoloc, POINT(lon lat)) на portal_geo_oks_krt → hit? krt.in = true, krt.num = num_oks_krt, krt.type = map(type_oks_krt) (опц. fallback: within ST_Union(buildings WHERE num=N) для контура) → join krt_registry[num] → decision_ref, developer, deadline # отдельный скрейп → else krt.in = false ``` Разовый ETL: можно затянуть все 48 features в PostGIS (`krt_oks(geom, num, type, status)`) и делать `ST_Intersects` локально — без обращения к порталу в рантайме. ### Итог **🟢→🟡 automatable → `status/ready`.** Ядро (да/нет + № + тип по геометрии) — детерминированно через публичный WFS, подтверждено. Реквизиты — отдельной под-задачей (скрейп городского реестра + join по `num_oks_krt`); либо MVP без реквизитов. **Источник сменить: НЕ НСПД-harvest (#1057), а геопортал ЕКБ WFS** — он уже используется для ПЗЗ/ЗОУИТ. _Спек для воркера:_ слой `portal:portal_geo_oks_krt`, endpoint `…/api/gis/ows/3/portal/wfs`, `INTERSECTS(geoloc,POINT(lon lat))` 4326 lon-lat, поля `num_oks_krt/type_oks_krt/status_oks_krt/full_name`; контур = `ST_Union` по `num_oks_krt`; реквизиты — TODO-подзадача (городской реестр).
lekss361 removed the
status/needs-analysis
label 2026-06-06 18:05:55 +00:00
Owner

Доп-источник (2026-06-06): региональный ГИСОГД — настоящий контур КРТ (не здания)

В дополнение к муниципальному геопорталу ЕКБ (oks_krt = ЗДАНИЯ в границах КРТ) — нашёл https://gisogd66.midural.ru (платформа «agate»/Аксиома, публичный, без auth). В каталоге /api/catalogs/agate_sverdregion есть слой «Комплексное развитие территорий» (id 26, typeName agate_sverdregion:agate_sverdregion_geo_urban_10_area_base_development_5fb3842d) — вероятно полигон территории КРТ, что решает оговорку «слой = здания, а не контур» из основного комментария.

Метод (CONFIRMED работает): GET /api/v1/spatialsearch/agate_sverdregion/<entity>/<x>/<y> (EPSG:3857); raw /geoserver WFS не проксируется (SPA). UNCONFIRMED: entity-alias слоя КРТ (рабочий пример — urbanterzoneregulation; снять через UI-toggle + перехват) + покрытие/атрибутика ЕКБ.

→ Воркеру: сверить gisogd66 «КРТ»-полигон с муниципальным oks_krt — взять контур из региона, реквизиты/номер из муниципального + городского реестра. Детали платформы — в комментарии #1062 (путь A) и vault-заметке.

## ➕ Доп-источник (2026-06-06): региональный ГИСОГД — настоящий контур КРТ (не здания) В дополнение к муниципальному геопорталу ЕКБ (`oks_krt` = ЗДАНИЯ в границах КРТ) — нашёл **`https://gisogd66.midural.ru`** (платформа «agate»/Аксиома, публичный, без auth). В каталоге `/api/catalogs/agate_sverdregion` есть слой **«Комплексное развитие территорий»** (id 26, typeName `agate_sverdregion:agate_sverdregion_geo_urban_10_area_base_development_5fb3842d`) — вероятно **полигон территории КРТ**, что решает оговорку «слой = здания, а не контур» из основного комментария. **Метод (CONFIRMED работает):** `GET /api/v1/spatialsearch/agate_sverdregion/<entity>/<x>/<y>` (EPSG:3857); raw `/geoserver` WFS не проксируется (SPA). **UNCONFIRMED:** entity-alias слоя КРТ (рабочий пример — `urbanterzoneregulation`; снять через UI-toggle + перехват) + покрытие/атрибутика ЕКБ. → Воркеру: сверить gisogd66 «КРТ»-полигон с муниципальным `oks_krt` — взять контур из региона, реквизиты/номер из муниципального + городского реестра. Детали платформы — в комментарии #1062 (путь A) и vault-заметке.
Owner

⚠️ Поправка к доп-источнику gisogd66 — слой КРТ ПУСТ (Playwright-проверка)

Проверил вживую: в региональном ГИСОГД gisogd66.midural.ru слой «Комплексное развитие территорий» (urban_10_area_base_development) = 0 фич (WFS рабочий — контроль ЗУ 1.38M). Каталог слой показывает, но геометрия не залита. Полигона контура КРТ оттуда не получить.

gisogd66 для КРТ отзываю. Остаётся подтверждённый источник — муниципальный геопортал ЕКБ portal:portal_geo_oks_krt (48 фич «Здания в границах КРТ», см. основной комментарий) + реквизиты из городского реестра. Лейбл status/ready оставляю. Подробности проверки — в #1062.

## ⚠️ Поправка к доп-источнику gisogd66 — слой КРТ ПУСТ (Playwright-проверка) Проверил вживую: в региональном ГИСОГД `gisogd66.midural.ru` слой **«Комплексное развитие территорий» (`urban_10_area_base_development`) = 0 фич** (WFS рабочий — контроль ЗУ 1.38M). Каталог слой показывает, но **геометрия не залита**. Полигона контура КРТ оттуда не получить. → **gisogd66 для КРТ отзываю.** Остаётся подтверждённый источник — муниципальный геопортал ЕКБ `portal:portal_geo_oks_krt` (48 фич «Здания в границах КРТ», см. основной комментарий) + реквизиты из городского реестра. Лейбл `status/ready` оставляю. Подробности проверки — в #1062.
Owner

Подход скорректирован (источник найден, #1057-зависимость снята).

КРТ НЕ в НСПД-дереве (harvest #1057 подтвердил — nspd.gov.ru/integrated-development-territories это форма заявки инвестора, не датасет/слой; закрыт). Но есть в ЕКБ-геопортале:

  • WFS portal:portal_geo_oks_krt — границы/объекты КРТ (подтверждён feature «КРТ №13»: num/status/type/area+geom). Через ekb_geoportal_client.py (PR #1083): features_at_point('krt', lon, lat).
  • HTML екатеринбург.рф/дляработы/гиз/крт — реквизиты площадки (градпотенциал, застройщик-имя, цена аукциона, постановления). SSR, парсится BS4/regex.

План: WFS КРТ по геометрии участка → флаг + границы; HTML-парсер → реквизиты/застройщик/потенциал. Поле krt {попадает, проект, застройщик, потенциал, решение}. Источник: vault research/EKB_Geoportal_WFS_Construction_Intel_Jun06 + EKB_Construction_Documents_Jun06.

**Подход скорректирован (источник найден, #1057-зависимость снята).** КРТ **НЕ в НСПД-дереве** (harvest #1057 подтвердил — `nspd.gov.ru/integrated-development-territories` это форма заявки инвестора, не датасет/слой; закрыт). Но **есть в ЕКБ-геопортале**: - **WFS** `portal:portal_geo_oks_krt` — границы/объекты КРТ (подтверждён feature «КРТ №13»: num/status/type/area+geom). Через `ekb_geoportal_client.py` (PR #1083): `features_at_point('krt', lon, lat)`. - **HTML** `екатеринбург.рф/дляработы/гиз/крт` — реквизиты площадки (градпотенциал, **застройщик-имя**, цена аукциона, постановления). SSR, парсится BS4/regex. **План:** WFS КРТ по геометрии участка → флаг + границы; HTML-парсер → реквизиты/застройщик/потенциал. Поле `krt` {попадает, проект, застройщик, потенциал, решение}. Источник: vault `research/EKB_Geoportal_WFS_Construction_Intel_Jun06` + `EKB_Construction_Documents_Jun06`.
Owner

Реализовано в merged-работе ИРД-эпика (за флагом enable_ird_analyze, default off), двумя путями:

  • КРТ по геометрии (ЕКБ-геопортал WFS)ird.krt в analyze: backend/app/services/site_finder/ird_analyze.py (_krt_at), слой krt (portal:portal_geo_oks_krt). Возвращает реквизиты проекта из properties (num_oks_krt/status/type/area). Wired #1101 (D9b).
  • КРТ-ЗУ из НСПДopportunity_krt (НСПД слой krt_territories=37430) в ird_overlays, harvest #1100 (#1086), читается через parcel_ird_overlaps/opportunity_overlaps.

Acceptance («для участка в КРТ — флаг + реквизиты проекта; вне — false») закрывается при enable_ird_analyze=true.

⚠️ Нюанс: «решение №/дата, застройщик, срок» — в WFS-props ЕКБ-геопортала присутствуют не все; если нужны полные реквизиты постановления — отдельная задача (card-endpoint / приказы ПАТ). Перевожу в needs-human для решения по объёму.

Реализовано в merged-работе ИРД-эпика (за флагом `enable_ird_analyze`, default off), двумя путями: - **КРТ по геометрии (ЕКБ-геопортал WFS)** — `ird.krt` в analyze: `backend/app/services/site_finder/ird_analyze.py` (`_krt_at`), слой `krt` (`portal:portal_geo_oks_krt`). Возвращает реквизиты проекта из properties (num_oks_krt/status/type/area). Wired #1101 (D9b). - **КРТ-ЗУ из НСПД** — `opportunity_krt` (НСПД слой `krt_territories=37430`) в `ird_overlays`, harvest #1100 (#1086), читается через `parcel_ird_overlaps`/`opportunity_overlaps`. Acceptance («для участка в КРТ — флаг + реквизиты проекта; вне — false») закрывается при `enable_ird_analyze=true`. ⚠️ Нюанс: «решение №/дата, застройщик, срок» — в WFS-props ЕКБ-геопортала присутствуют не все; если нужны полные реквизиты постановления — отдельная задача (card-endpoint / приказы ПАТ). Перевожу в `needs-human` для решения по объёму.
lekss361 added the
needs-human
label 2026-06-06 20:46:39 +00:00
Owner

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

КРТ закрыт обеими сторонами:

  • Геометрия: ekb_krt_geometry = 44 фичи (geoportal portal_geo_oks_krt, harvest #1130) → _krt_at ST_Intersects из БД.
  • Реквизиты: ekb_krt_sites = 15 площадок (застройщик/цена торгов/градпотенциал/постановления ПАГЕ, scrape /гиз/крт #1126).
  • В analyze: krt (геом-факт «участок в КРТ») + krt_requisites (реквизиты по ПАГЕ-матчу к planning_projects, #1131). Verified в smoke /analyze. Closing.
## ✅ Сделано — на проде (verified 2026-06-07) КРТ закрыт обеими сторонами: - **Геометрия:** `ekb_krt_geometry` = 44 фичи (geoportal `portal_geo_oks_krt`, harvest #1130) → `_krt_at` ST_Intersects из БД. - **Реквизиты:** `ekb_krt_sites` = 15 площадок (застройщик/цена торгов/градпотенциал/постановления ПАГЕ, scrape `/гиз/крт` #1126). - **В analyze:** `krt` (геом-факт «участок в КРТ») + `krt_requisites` (реквизиты по ПАГЕ-матчу к planning_projects, #1131). Verified в smoke `/analyze`. Closing.
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#1060
No description provided.