Skip to content

Repository files navigation

CoalGuard

Демо-платформа для мониторинга штабелей угля, прогноза риска возгорания на горизонте 3 суток и просмотра фактических воспламенений.

Архитектура

  • Backend: FastAPI + SQLite (файл backend/db.sqlite3). Отдает стек данных, климат, воспламенения, принимает CSV и логирует историю загрузок. Модель CatBoost подгружается из MLflow по MLFLOW_RUN_ID (см. переменные окружения).
  • Frontend: статический HTML/CSS/JS (frontend/). Работает без сборки, обращается к API по http://127.0.0.1:8000.
  • MLflow: каталог mlruns/ содержит сохранённые запуски и артефакты модели.

Быстрый старт

  1. Установите зависимости (Python 3.11+):
    python -m venv venv
    venv\Scripts\activate
    pip install -r requirements.txt
  2. Запустите бэкенд:
    uvicorn backend.main:app --reload
    API будет доступен на http://127.0.0.1:8000 (health: /health).
  3. Запустите фронтенд (любой статический сервер):
    python -m http.server 8001 --directory frontend
    Откройте http://localhost:8001.
  4. (Опционально) Быстрый старт одним скриптом: start_all.bat (поднимает backend + http.server на 8001).

Настройки

  • MLFLOW_RUN_ID — id прогона в MLflow (по умолчанию зашит демо-run).
  • MLFLOW_ARTIFACT_PATH — имя артефакта модели (по умолчанию cat_model).
  • MODEL_THRESHOLD — порог вероятности для риска 3 суток (по умолчанию 0.5).
  • AIR_TEMP_THRESHOLD — порог температуры воздуха (по умолчанию 50.0).
  • Менять базовый URL фронта можно в frontend/app.js (API_BASE).

Основные эндпойнты

  • GET /health — проверка.
  • GET /stacks — список штабелей с флагом риска и вероятностью.
  • GET /climate?stack_id=ID — климатический ряд по штабелю.
  • GET /fires?start_date=YYYY-MM-DD&end_date=YYYY-MM-DD — список воспламенений (фильтр по датам).
  • POST /upload — загрузка CSV (multipart/form-data, ключ file), сохраняется история.
  • GET /upload/history — журнал загрузок.

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

  • Логин/пароль — базовая HTTP-авторизация, вводится на форме входа.
  • Карточки показывают: число безопасных/рисковых штабелей, порог воздуха, время последнего обновления.
  • Таблица “Штабели” — кликабельные строки. При выборе справа отображаются детали + график климата.
  • Блок “Воспламенения” — таблица с фильтром по датам; после загрузки CSV с новыми данными обновляется список.
  • Экран “Загрузка CSV” — drag-and-drop или выбор файла, история последних загрузок.

Данные для демо

Если API недоступно, фронт использует fallback-данные, чтобы интерфейс оставался заполненным.

About

Демо-платформа для мониторинга штабелей угля, прогноза риска возгорания на горизонте 3 суток и просмотра фактических воспламенений.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages