[QA] ЗОУИТ "Нет пересечений" — cad_zouit имеет данные, но analyze их не использует #232

Closed
opened 2026-05-16 19:55:33 +00:00 by lekss361 · 2 comments
Owner

Проблема

Site-finder показывает пустой список ЗОУИТ ("Нет пересечений") даже для участков в центре ЕКБ, где охранные зоны точно присутствуют.

Шаги воспроизведения

  1. POST /api/v1/parcels/66:41:0303018:7/analyze
  2. Ответ: nspd_zouit_overlaps: [] и zouit_overlaps: []
  3. При этом DB: SELECT ST_Distance(...) FROM cad_zouit WHERE cadastral_district LIKE '66:41%' → ближайшая зона 113м от центра участка

Ожидаемое vs Фактическое

  • Ожидалось: ЗОУИТ из cad_zouit (3446 строк для 66:41) пересекаются с участком через ST_Intersects
  • Получено: zouit_overlaps: [] — потому что запрос идёт в nspd_quarter_dumps (пустая таблица), а не в cad_zouit

Технические детали

  • cad_zouit COUNT для 66:41%: 3446 строк (валидные геометрии, SRID 4326)
  • ST_Distance от центра 66:41:0303018:7 до ближайшего ЗОУИТ: ~113м (охранная зона инженерных коммуникаций)
  • ST_Intersects(cad_parcels.geom, cad_zouit.geom) для этого участка: 0 results (не пересекается напрямую)
  • quarter_dump_lookup._get_zouit_overlaps() запрашивает ТОЛЬКО nspd_quarter_dumps → 0 строк → всегда []
  • cad_zouit → не используется в analyze pipeline!

Гипотеза причины

Два источника ЗОУИТ: 1) cad_zouit (данные Росреестра, 3446 строк ЕКБ), 2) nspd_quarter_dumps.features_json layer='zouit_*'. Код использует только #2 (nspd_quarter_dumps), который пуст. cad_zouit как fallback не реализован.

Severity

🟠 high — пользователь видит "нет ЗОУИТ" для участков, где они реально есть в БД

(QA audit 2026-05-16)

## Проблема Site-finder показывает пустой список ЗОУИТ ("Нет пересечений") даже для участков в центре ЕКБ, где охранные зоны точно присутствуют. ## Шаги воспроизведения 1. POST /api/v1/parcels/66:41:0303018:7/analyze 2. Ответ: nspd_zouit_overlaps: [] и zouit_overlaps: [] 3. При этом DB: SELECT ST_Distance(...) FROM cad_zouit WHERE cadastral_district LIKE '66:41%' → ближайшая зона 113м от центра участка ## Ожидаемое vs Фактическое - Ожидалось: ЗОУИТ из cad_zouit (3446 строк для 66:41) пересекаются с участком через ST_Intersects - Получено: zouit_overlaps: [] — потому что запрос идёт в **nspd_quarter_dumps** (пустая таблица), а не в cad_zouit ## Технические детали - cad_zouit COUNT для 66:41%: **3446 строк** (валидные геометрии, SRID 4326) - ST_Distance от центра 66:41:0303018:7 до ближайшего ЗОУИТ: ~113м (охранная зона инженерных коммуникаций) - ST_Intersects(cad_parcels.geom, cad_zouit.geom) для этого участка: **0 results** (не пересекается напрямую) - quarter_dump_lookup._get_zouit_overlaps() запрашивает ТОЛЬКО nspd_quarter_dumps → 0 строк → всегда [] - cad_zouit → не используется в analyze pipeline! ## Гипотеза причины Два источника ЗОУИТ: 1) cad_zouit (данные Росреестра, 3446 строк ЕКБ), 2) nspd_quarter_dumps.features_json layer='zouit_*'. Код использует только #2 (nspd_quarter_dumps), который пуст. cad_zouit как fallback не реализован. ## Severity 🟠 high — пользователь видит "нет ЗОУИТ" для участков, где они реально есть в БД (QA audit 2026-05-16)
Author
Owner

Working on this in PR #240 (cad_zouit fallback + parcel_meta). Pre-push deep-code-reviewer APPROVE — GIST utilization confirmed (cad_zouit_geom_gist, 0.97ms), psycopg v3 CAST clean, NSPD subcategory backward-compat preserved.

Working on this in PR #240 (cad_zouit fallback + parcel_meta). Pre-push deep-code-reviewer ✅ APPROVE — GIST utilization confirmed (cad_zouit_geom_gist, 0.97ms), psycopg v3 CAST clean, NSPD subcategory backward-compat preserved.
Collaborator

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

ЗОУИТ cad_zouit fallback реализован: quarter_dump_lookup.py:376 _get_zouit_overlaps → _get_cad_zouit_overlaps (ST_Intersects по cad_zouit_geom_gist). cad_zouit 3485 строк используется в analyze. Closed.

**DRIFT — реализовано (ground-truth 2026-06-13), трекер отставал.** ЗОУИТ cad_zouit fallback реализован: quarter_dump_lookup.py:376 _get_zouit_overlaps → _get_cad_zouit_overlaps (ST_Intersects по cad_zouit_geom_gist). cad_zouit 3485 строк используется в analyze. Closed.
Sign in to join this conversation.
No milestone
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#232
No description provided.