Geom P1: Polygon suitability score (площадь, форма, convexity) #45

Closed
opened 2026-05-11 20:17:29 +00:00 by lekss361 · 0 comments
lekss361 commented 2026-05-11 20:17:29 +00:00 (Migrated from github.com)

Эшелон: 🔵 Geometry — физическая пригодность

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

Скоринг ничего не говорит про сам участок — его форму, размер, пропорции. Узкая «лапша» 30×500м не подходит для типового МКД-корпуса. Микро-участок 0.2 га = малая ёмкость. Текущий скоринг этого не видит.

Что сделать

  1. Shapely-метрики polygon в analyze.geometry:
    • area_ha: площадь
    • perimeter_m
    • aspect_ratio: длина / ширина минимального ограничивающего прямоугольника
    • convex_hull_ratio: poly.area / poly.convex_hull.area
    • min_inscribed_rect_dim_m: длина короткой стороны MABR
  2. Suitability score 0..1 — composite:
    • +1.0 если area >= 0.5 ha, +0 если <0.2 ha, linear in between
    • −0.3 если aspect_ratio > 5 (вытянутый)
    • −0.3 если convex_hull_ratio < 0.65 (сложный/изрезанный)
    • −0.5 если min_inscribed_rect_dim_m < 30 (невозможен корпус)
  3. UI badge: «Геометрия: подходящая» / «сложная форма» / «слишком узкий»
  4. Recommendation hint: «Для МКД 16+ этажей нужно >0.3 ha + min ширина 40м»

Acceptance

  • Узкая лапша 30×500м → suitability < 0.4
  • Квадрат 100×100м → suitability > 0.85
  • Микро-участок 30×30м → suitability < 0.2

Owner

backend-engineer (Shapely metrics)

Effort

0.5–1 день

Dependencies

— (нужна геометрия из existing cad_quarters/buildings/parcels)

**Эшелон:** 🔵 Geometry — физическая пригодность ## Контекст / проблема Скоринг ничего не говорит про **сам участок** — его форму, размер, пропорции. Узкая «лапша» 30×500м не подходит для типового МКД-корпуса. Микро-участок 0.2 га = малая ёмкость. Текущий скоринг этого не видит. ## Что сделать 1. Shapely-метрики polygon в `analyze.geometry`: - `area_ha`: площадь - `perimeter_m` - `aspect_ratio`: длина / ширина минимального ограничивающего прямоугольника - `convex_hull_ratio`: poly.area / poly.convex_hull.area - `min_inscribed_rect_dim_m`: длина короткой стороны MABR 2. Suitability score 0..1 — composite: - +1.0 если area >= 0.5 ha, +0 если <0.2 ha, linear in between - −0.3 если aspect_ratio > 5 (вытянутый) - −0.3 если convex_hull_ratio < 0.65 (сложный/изрезанный) - −0.5 если min_inscribed_rect_dim_m < 30 (невозможен корпус) 3. UI badge: «Геометрия: подходящая» / «сложная форма» / «слишком узкий» 4. Recommendation hint: «Для МКД 16+ этажей нужно >0.3 ha + min ширина 40м» ## Acceptance - [ ] Узкая лапша 30×500м → suitability < 0.4 - [ ] Квадрат 100×100м → suitability > 0.85 - [ ] Микро-участок 30×30м → suitability < 0.2 ## Owner `backend-engineer` (Shapely metrics) ## Effort 0.5–1 день ## Dependencies — (нужна геометрия из existing cad_quarters/buildings/parcels)
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#45
No description provided.