Gate G4: Extract max_floors / FAR / parking из pzz_zones_ekb.raw_props #31

Closed
opened 2026-05-11 20:14:00 +00:00 by lekss361 · 1 comment
lekss361 commented 2026-05-11 20:14:00 +00:00 (Migrated from github.com)

Эшелон: 🔴 Gate — «Можно ли тут строить МКД»

Контекст / проблема

После импорта ПЗЗ shape (G1) у нас есть полигоны зон + zone_code (Ж-3, Ж-5, ОД-1). Но числовые ограничения (max этажность, FAR, parking ratio) живут внутри raw_props jsonb или в текстовом description. Без них невозможно ответить «сколько построить» — следующий вопрос после «можно».

Что сделать

  1. Изучить структуру raw_props после G1 import — какие ключи приходят (likely: description, attr_xxx, etc)
  2. Создать reference-таблицу pzz_zone_params per zone_code: max_floors, max_far, min_parking_per_flat, max_density_persons_ha
    • Подход A: SQL extract из raw_props text (regex)
    • Подход B: ручное заполнение из официальных Правил ЗиЗ ЕКБ (~50 зон, час-два работы)
  3. JOIN view v_pzz_with_params — zone polygon + extracted params
  4. analyze.gate.pzz_constraints: {max_floors: 16, max_far: 2.5, ...} per intersected zone

Acceptance

  • >90% Ж-зон ЕКБ имеют непустой max_floors
  • Для тестовых участков Академический (Ж-5) max_floors=25, Центр (Ж-3) max_floors=12
  • analyze возвращает pzz_constraints

Owner

database-expert (parsing + reference table) + backend-engineer (view + analyze integration)

Effort

0.5–1 день после G1

Risks / open

  • ПЗЗ ЕКБ может варьироваться per зона — нужно reference-документ с параметрами
  • FAR не всегда указан явно — иногда выводится из плотности населения

Dependencies

  • Зависит от G1 (нужен полигональный shape с raw_props)
  • Closes part of: #27
**Эшелон:** 🔴 Gate — «Можно ли тут строить МКД» ## Контекст / проблема После импорта ПЗЗ shape (G1) у нас есть полигоны зон + `zone_code` (Ж-3, Ж-5, ОД-1). Но **числовые ограничения** (max этажность, FAR, parking ratio) живут внутри `raw_props` jsonb или в текстовом description. Без них невозможно ответить «сколько построить» — следующий вопрос после «можно». ## Что сделать 1. Изучить структуру `raw_props` после G1 import — какие ключи приходят (likely: `description`, `attr_xxx`, etc) 2. Создать reference-таблицу `pzz_zone_params` per zone_code: `max_floors`, `max_far`, `min_parking_per_flat`, `max_density_persons_ha` - Подход A: SQL extract из raw_props text (regex) - Подход B: ручное заполнение из официальных Правил ЗиЗ ЕКБ (~50 зон, час-два работы) 3. JOIN view `v_pzz_with_params` — zone polygon + extracted params 4. `analyze.gate.pzz_constraints: {max_floors: 16, max_far: 2.5, ...}` per intersected zone ## Acceptance - [ ] >90% Ж-зон ЕКБ имеют непустой max_floors - [ ] Для тестовых участков Академический (Ж-5) max_floors=25, Центр (Ж-3) max_floors=12 - [ ] analyze возвращает pzz_constraints ## Owner `database-expert` (parsing + reference table) + `backend-engineer` (view + analyze integration) ## Effort 0.5–1 день после G1 ## Risks / open - ПЗЗ ЕКБ может варьироваться per зона — нужно reference-документ с параметрами - FAR не всегда указан явно — иногда выводится из плотности населения ## Dependencies - **Зависит от G1** (нужен полигональный shape с raw_props) ## Links - Closes part of: #27
Collaborator

DRIFT — реализовано (ground-truth 2026-06-13), трекер отставал.

G4 max_floors/FAR/parking реализовано через zone_regulation.py → zone_regulation_cache (EKB geoportal urbanCard, regex-extract max_far/max_floors/max_building_pct/parking), commits #1094/#1099. Analyze получает pzz_constraints через get_or_fetch_zone_regulation. Исходная pzz_zones_ekb.raw заброшена в пользу alt-пути; цель достигнута. Closed.

**DRIFT — реализовано (ground-truth 2026-06-13), трекер отставал.** G4 max_floors/FAR/parking реализовано через zone_regulation.py → zone_regulation_cache (EKB geoportal urbanCard, regex-extract max_far/max_floors/max_building_pct/parking), commits #1094/#1099. Analyze получает pzz_constraints через get_or_fetch_zone_regulation. Исходная pzz_zones_ekb.raw заброшена в пользу alt-пути; цель достигнута. Closed.
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#31
No description provided.