feat(site-finder): OSM-геокод городских ТП/РП ЕКБ (#2119 B2, финальный хвост) #2252

Merged
bot-backend merged 1 commit from feat/osm-tp-geocoder into main 2026-07-03 05:22:03 +00:00
Collaborator

Summary

  • Разведка координат для 2012 городских ТП/РП: открытых источников нет — WFS портал-тп.рф слой ТП не публикует (12 слоёв проверены GetCapabilities), в xlsx ЕЭСК только номер+мощности (raw нечего восстанавливать), OSM даёт потолок 119 точек (5.9%). Полное покрытие — только B2B-запрос реестра в ЕЭСК (эскалировано Anton'у).
  • Этот PR берёт честный OSM-максимум: матч name_norm ↔ OSM substation ref/name через Overpass (bbox ЕКБ, kumi.systems), консервативная экстракция номера (ТП/РП-токен или голый ref; «110 кВ»/«ПС-110» мимо), дубль-номера → ambiguous-скип, same-point дедуп, bbox-sanity, idempotent UPDATE geocode_status='osm'. Dry-run дефолт; Celery вт 05:45 МСК.

Test plan

  • 19 тестов (экстракция, traction/ambiguous/bbox, dry-run/apply, CAST-формы, Celery+beat), ruff clean
  • code-reviewer APPROVE
  • post-merge: dry-run (~119 matched) → apply → verify geocode_status-счётчики

Refs #2119

## Summary - Разведка координат для 2012 городских ТП/РП: **открытых источников нет** — WFS портал-тп.рф слой ТП не публикует (12 слоёв проверены GetCapabilities), в xlsx ЕЭСК только номер+мощности (raw нечего восстанавливать), OSM даёт потолок **119 точек (5.9%)**. Полное покрытие — только B2B-запрос реестра в ЕЭСК (эскалировано Anton'у). - Этот PR берёт честный OSM-максимум: матч `name_norm` ↔ OSM substation `ref`/`name` через Overpass (bbox ЕКБ, kumi.systems), консервативная экстракция номера (ТП/РП-токен или голый ref; «110 кВ»/«ПС-110» мимо), дубль-номера → ambiguous-скип, same-point дедуп, bbox-sanity, idempotent UPDATE `geocode_status='osm'`. Dry-run дефолт; Celery вт 05:45 МСК. ## Test plan - [x] 19 тестов (экстракция, traction/ambiguous/bbox, dry-run/apply, CAST-формы, Celery+beat), ruff clean - [x] code-reviewer ✅ APPROVE - [ ] post-merge: dry-run (~119 matched) → apply → verify geocode_status-счётчики Refs #2119
bot-backend added 1 commit 2026-07-03 05:06:42 +00:00
feat(site-finder): OSM-геокод городских ТП/РП ЕКБ → geom (#2119 B2)
All checks were successful
CI Trade-In / changes (pull_request) Successful in 9s
CI / changes (pull_request) Successful in 8s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 1m59s
CI / backend-tests (pull_request) Successful in 14m22s
d5c2e2833a
Открытых координат для 2012 городских ТП нет (разведка: WFS портал-тп.рф
слой ТП не публикует; в xlsx ЕЭСК только номер+мощности) — потолок OSM
~119 точек (5.9%). Матч name_norm (чистый номер) ↔ OSM substation ref/name
через Overpass (bbox ЕКБ, kumi.systems — overpass-api.de даёт 406);
консервативная экстракция (ТП/РП-токен или голый ref, вольтаж мимо),
дубль-номера → ambiguous-скип, same-point дедуп ~11м, bbox-sanity,
UPDATE geom+geocode_status='osm' WHERE geom IS NULL (idempotent, SAVEPOINT).
Dry-run дефолт + CLI --apply; Celery вт 05:45 МСК.
Полное покрытие — только B2B-запрос реестра в ЕЭСК (у Anton).
bot-backend merged commit 6f5bdffbe4 into main 2026-07-03 05:22:03 +00:00
bot-backend deleted branch feat/osm-tp-geocoder 2026-07-03 05:22:03 +00:00
Sign in to join this conversation.
No reviewers
No milestone
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#2252
No description provided.