feat(site-finder): P1 geometry suitability score (#45) #89

Merged
lekss361 merged 4 commits from feat/site-finder-polygon-suitability into main 2026-05-12 05:00:13 +00:00
Showing only changes of commit 5832dfae21 - Show all commits

View file

@ -278,8 +278,9 @@ GEOTECH_BY_REGION: dict[int, dict[str, Any]] = {
# P1 (#45) — constants for polygon suitability (строительные нормы Свердл/общие
# для ЖК; будут править — храним в одном месте)
_GEOM_MIN_AREA_HA = 0.2 # ниже → area_subscore = 0
_GEOM_AREA_SCORE_FULL_HA = 0.5 # ≥ → area_subscore = 1.0
_GEOM_MIN_AREA_HA = 0.2 # ниже → area_subscore = 0 (физический минимум)
_GEOM_AREA_COMFORT_HA = 0.3 # рекомендуемая комфортная площадь МКД (recommendation)
_GEOM_AREA_SCORE_FULL_HA = 0.5 # ≥ → area_subscore = 1.0 (premium)
_GEOM_ASPECT_PENALTY_THRESHOLD = 5.0 # выше → вытянутый
_GEOM_ASPECT_PENALTY = 0.3
_GEOM_CONVEX_PENALTY_THRESHOLD = 0.65 # ниже → изрезанный
@ -419,7 +420,7 @@ def _polygon_suitability(geom_wkt: str) -> dict[str, Any]:
"recommendation": (
f"Строительный минимум короткой стороны — {_GEOM_MIN_WIDTH_PHYSICAL_M}м, "
f"комфорт типового МКД 12-16 этажей — от {_GEOM_MIN_WIDTH_COMFORT_M}м "
f"и площадь от 0.3 га."
f"и площадь от {_GEOM_AREA_COMFORT_HA} га."
),
"note": (
"Оценка по форме участка (Shapely). Учитывает площадь, "