Диагностика топологии

Диагностика топологии: разрывы, висячие узлы и другие ошибки связности сети.

Где найти
«Инструменты» (значок чемоданчика справа вверху) → Расчёты и диагностика → «Диагностика топологии». То же — палитрой команд: Ctrl+K и начните набирать название.
Права
доступно всем, кто вошёл.
Короткое видео: как это выглядит в системе
Читаю как

Возможности

  • Проверка связности одного фрагмента: восемь видов ошибок — от участка на снятый узел до геометрии, не совпадающей с узлами.
  • Итог плитками: «Проблем», «Узлов», «Участков» и по одной плитке на каждый найденный вид ошибки. Числа на плитках — полные.
  • Плитка вида ошибки — фильтр списка; повторное нажатие снимает его. Поиск — по номеру объекта или тексту описания.
  • Щелчок по строке — карта летит к объекту и ставит метку; значок прицела в строке показывает, что координаты есть.
  • «Проверить заново» (круговая стрелка в заголовке) — после правки сети.

Как это работает

Фрагмент берётся так же, как его читает расчёт: узлы с этим номером фрагмента (снятые не в счёт) и живые участки, у которых хотя бы один конец в этих узлах. Номер фрагмента у самого участка не используется — на копиях баз он бывает неверным.

Кроме участков, узел считается связанным с сетью через связи узлов (connectnodes) и через ссылку внутренней схемы (internalnodeid). Источник, потребитель, насосная и узел с заданным давлением — объекты узла.

Виды ошибок, в порядке важности для расчёта:

Плитка Когда ставится
Участок на снятый узел конец участка ссылается на снятый или несуществующий узел
Замкнутый участок начальный и конечный узел участка совпадают
Повторяющийся участок та же пара узлов и тот же признак трубопровода (подача, обратка); первый участок пары не помечается, помечаются повторы
Участок между фрагментами концы участка в разных фрагментах
Изолированный узел у узла нет ни участков, ни связей, ни ссылок внутренней схемы; в описании — что на узле стоит (потребитель, источник…)
Часть сети без источника связная часть из двух и более узлов, где нет ни источника, ни узла с заданным давлением; одна строка на часть, в описании — сколько в ней узлов
Тупиковый узел один участок, к узлу ничего не подключено и нет внутренней схемы
Геометрия не у узлов концы линии участка дальше 1 м от его узлов

Часть сети, связанная участком или связью с узлом другого фрагмента, не считается «без источника»: питание может прийти оттуда. Такую часть расчёт тоже не посчитает, если питания нет и там, — это видно уже в протоколе расчёта.

Проверка только читает базу и ничего не сохраняет. В списке — не больше 200 строк каждого вида; если их больше, справа над списком написано «В списке — не больше 200 каждого типа; числа на плитках — полные». Координаты строки: для узла — точка узла, для участка — середина линии, а если линии нет — живой конец участка.

Проверка не запускается сама после правки сети: окно показывает результат на момент открытия.

Что нужно для работы

  • Вход в систему с любой ролью, включая «Просмотр».
  • Фрагмент выбирается в окне; по умолчанию — выбранный на карте или единственный видимый.

Шаги

  1. Откройте «Инструменты» и наберите в поиске «Диагностика топологии» — пункт выделен рамкой.

    Пункт «Диагностика топологии» в панели «Инструменты»

  2. Нажмите пункт — откроется окно.

    Окно «Диагностика топологии»

  3. Выберите фрагмент — проверка запустится сама. Нажмите плитку с видом ошибки (например, «Изолированный узел»): в списке останутся только такие ошибки. Повторное нажатие снимает фильтр.

    Диагностика топологии: шаг 3

  4. Нажмите строку — карта перейдёт к объекту и поставит метку. Закройте окно, чтобы увидеть место на карте; после правки сети нажмите «Проверить заново» (круговая стрелка в заголовке).

    Диагностика топологии: шаг 4

Примеры

Фрагмент 74 «Маг. сети для расчёта НС» (копия базы Алматы): 2028 узлов, 2018 участков, проблем 39.

  • «Изолированный узел» — 22. Часть из них — узлы потребителей без участков: описание «Нет участков и связей (потребитель)». Такой потребитель в расчёт не попадёт.
  • «Тупиковый узел» — 13: «Один участок, к узлу ничего не подключено». Чаще всего это недорисованный отвод.
  • «Часть сети без источника» — 1: «2 узлов без источника и заданного давления (узел 534872 и связанные с ним)». Узел 534872 одновременно стоит в списке тупиковых — это короткий отрезок, оторванный от магистрали.
  • «Участок на снятый узел» — 1: участок 326381, «узел 535695 снят (removed)»; «Повторяющийся участок» — 1: участок 324095 повторяет участок 326258; «Геометрия не у узлов» — 1.

Для сравнения, копия этой же магистрали — фрагмент 99: 2044 узла, 2026 участков, проблем 48 (из них «Геометрия не у узлов» — 7).

Если не получается

  • Строка не переводит карту — у объекта нет координат, появится предупреждение «у объекта нет координат».
  • Цифры не изменились после правки — нажмите «Проверить заново»: проверка не повторяется сама.
  • «Ошибок топологии не найдено» и под ним «Узлов N, участков M — связность в порядке» — проблем нет. Если N и M равны нулю, у фрагмента нет живых узлов: проверьте номер фрагмента.
  • «Не удалось выполнить диагностику» с текстом «Фрагмент … не найден» — фрагмент снят или удалён; обновите страницу, чтобы список фрагментов перечитался.
  • Описания строк на английском и казахском интерфейсе остаются по-русски — их пишет сервер.

Для разработчика

  • API: GET /api/v1/topology/diagnostics?fragment_id=&limit= (limit 1–2000, по умолчанию 200; 404 — фрагмента нет). Ответ: nodes, lines, counts по типам, total, truncated, faults (type, object_type, object_id, description, lat, lng, related_ids). Код — database/topology_diagnostics.py, маршрут — routers/topology.py.
  • Веб: components/TopologyDiagnosticsModal.vue (ключ topologyDiagnostics, перелёт — событие locate-fault), подписи, цвета и значки видов — utils/topologyDiagnostics.ts (там же правила проверки после правки: node_type_conflict, unsnapped_end, no_supply).
  • Тесты: tests/components/TopologyDiagnosticsModal.spec.ts, tests/utils/topologyDiagnostics.spec.ts; API — tests/test_topology_diagnostics.py.
Хотите увидеть эту функцию на своих данных?Покажем ТГИД на демонстрации и ответим на вопросы инженеров.
Запросить демо