Качество данных

Качество данных: проверки нагрузок, фрагментов, отметок, длин, диаметров и источников; объяснение проверки от ИИ.

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

Возможности

  • Сводка «Ошибок: …, предупреждений: …» и таблица из девяти проверок: важность (ошибка, предупреждение, справочно), что проверяется, сколько записей и где исправлять.
  • Проверки: нагрузка потребителя больше 50 Гкал/ч; участок и его узлы в разных фрагментах; узел без участков; отметка узла не заполнена (не больше 1 м); длина участка расходится с геометрией больше чем на 50 %; условный диаметр вне стандартного ряда; нет даты прокладки участка; задвижка на участке без узлов расчётной схемы; договорная нагрузка АЛСЕКО без источника тепла (с суммой нагрузки в Гкал/ч).
  • Щелчок по строке проверки — список записей: ID, объект, фрагмент, значение, подробности; щелчок по записи — объект на карте.
  • «Точки на карте» — все найденные записи кружками цвета важности; «Скрыть точки» убирает их. Точки убираются и при закрытии окна.
  • «Видимый фрагмент» — считать только по фрагменту на карте.
  • «Объяснить» — короткое объяснение найденного от помощника ИИ (видно, если помощник включён).

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

Проверки — запросы к текущим данным. Отдельной таблицы нарушений нет: каждая проверка — запрос к таблицам города при открытии окна, поэтому исправленное сразу пропадает из списка. Снятые узлы и участки (removed) не учитываются, кроме нагрузок потребителей.

  • Нагрузка — сумма расчётных нагрузок обобщённого потребителя (generalizedconsumers: отопление по зависимой и независимой схеме, вентиляция, ГВС, технология) больше 50 Гкал/ч — скорее всего, нагрузка введена в ккал/ч. Реальные потребители (realconsumers) не проверяются.
  • Участок и узлы в разных фрагментах — у участка linesobj.fileid не совпадает с фрагментом хотя бы одного из его узлов.
  • Узел без участков — действующий узел с геометрией, не внутренний, к которому не подходит ни один действующий участок.
  • Отметка — отметка верха трубы узла (geomarktoptube) пустая или не больше 1 м (в Алматы отметки 600–1000 м).
  • Длина — длина в паспорте трубы (heatpipesections.pipesectlength) отличается от длины линии на карте больше чем наполовину.
  • Диаметр — условный диаметр не из ряда 15, 20, 25, 32, 40, 50, 65, 70, 80, 100, 125, 150, 175, 200, 250, 300, 350, 400, 450, 500, 600, 700, 800, 900, 1000, 1200, 1400 мм.
  • Дата прокладки — у участка с геометрией нет ни даты ввода, ни даты последней перекладки.
  • Задвижка вне расчётной схемы — задвижка (dampers) на линии без начального или конечного узла: в локализации аварий она не участвует. Таких линий без геометрии в списке много, на карте у них нет точки.
  • Договорная нагрузка без источника — записи АЛСЕКО (organizatsii, zhile) с пустым источником тепла; с «Видимым фрагментом» не считается (договоры не привязаны к фрагментам).

Списки. В окне — первые 200 записей проверки, внизу «Показано 200 из …»; на карте — до 5000 точек. «Видимый фрагмент» доступен, когда на карте включён ровно один фрагмент.

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

  • Любой вошедший: проверки только читают данные.
  • «Объяснить» — включённый помощник ИИ и право на его использование.
  • Исправление — в инструментах, названных в столбце «Исправлять»: карточка объекта и групповые установщики, редактор топологии, сверка АЛСЕКО — с их правами.

Шаги

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

    Пункт «Качество данных» в панели «Инструменты»

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

    Окно «Качество данных»

  3. Нажмите строку проверки — ниже появится список записей (первые 200): объект, фрагмент, значение и подробности. Щелчок по записи показывает объект на карте.

    Качество данных: шаг 3

  4. «Точки на карте» отмечает все найденные записи на карте, «Скрыть точки» убирает.

    Качество данных: шаг 4

Примеры

Копия Алматы, все фрагменты. «Ошибок: 2343, предупреждений: 2837». По проверкам: нагрузка больше 50 Гкал/ч — 35, участок и узлы в разных фрагментах — 2308, узел без участков — 1215, отметка не заполнена — 715, длина расходится — 892, диаметр вне ряда — 15, нет даты прокладки — 7483, задвижка вне расчётной схемы — 11 813, договорная нагрузка без источника — 38 225 (4270,31 Гкал/ч). Все числа совпали с независимыми запросами к базе.

Та же копия: что за ними стоит. Из 2308 участков «в разных фрагментах» 2002 — во фрагменте 74 «Маг. сети для расчета НС», 306 — в «CЗЭР» (73). Из 35 потребителей с нагрузкой больше 50 Гкал/ч 6 стоят на снятых узлах — их проверка тоже показывает. С «Видимым фрагментом» 74: ошибок 2003, предупреждений 211, расхождений длины — 169.

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

  • Переключатель «Видимый фрагмент» неактивен — на карте включено несколько фрагментов или ни одного; оставьте один.
  • «нет данных» вместо числа — в базе этого города нет таблицы или поля проверки (подсказка при наведении называет ошибку).
  • «Показано 200 из …» — в окне видна только часть списка; остальное — на карте точками (до 5000) или после исправления первых.
  • У записи «Фрагмент —» и нет точки на карте — у объекта нет фрагмента или геометрии.
  • «Проверки не выполнены», «Список не загружен», «Точки не построены», «Помощник ИИ не ответил» — с текстом ответа сервера; повторите позже.

Для администратора

  • Флагов и служб не требует; проверки идут запросами к базе при каждом открытии окна и щелчке по проверке. Самые тяжёлые на большой базе — «Участок и его узлы в разных фрагментах» и «Узел без участков».
  • Пороги заданы в коде API (database/data_quality.py): 50 Гкал/ч, 1 м, 50 %, ряд условных диаметров.

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

  • API (routers/data_quality.py, database/data_quality.py, правила — словарь RULES): GET /api/v1/data-quality/rules, GET /api/v1/data-quality/summary?fragment_id=, GET /api/v1/data-quality/issues?rule=&fragment_id=&limit=&offset= (до 1000), GET /api/v1/data-quality/geojson?rule=&fragment_id=&limit= (до 50 000). Права — require_roles("viewer").
  • Веб: components/DataQualityDialog.vue, services/dataQualityService.ts; объяснение — инструмент ИИ data-quality/explain.
  • Тесты: API — tests/test_data_quality_router.py; e2e — e2e/functions/source-data.spec.ts («Качество данных»: числа всех проверок и сводки в окне — как в ответе API, «… записей» правила — его total).
Хотите увидеть эту функцию на своих данных?Покажем ТГИД на демонстрации и ответим на вопросы инженеров.
Запросить демо