Skip to content

aerubanov/Proj_Air_Quality

Repository files navigation

Build Status codecov

Proj_Air_Quality

Проект анализу качества воздуха в Москве - детекции аномалий и предсказания измения концентрации частиц пыли c помощью вероятностной модели на основе Гауссовского процесса.

Contribution guid

contributing.md

Docs

data

raw_data.rst

dataset.rst

ML

В этом проекте мы операемся на две основные статьи:

  • https://www.aaai.org/ocs/index.php/AAAI/AAAI15/paper/viewFile/9712/9309 - в этой работе решается похожая задача, но используются данные за меньший промежуток времени, с меньшего количества станций, и признаков тоже меньше.
  • https://papers.nips.cc/paper/2017/file/f31b20466ae89669f9741e047487eb37-Paper.pdf - описывается построение модели на основе Гауссовского процесса, которую можно дообучать на вновь поступающих данных, и пригодную для работы с большими данными (десятки - сотни тысяч наблюдений).

Источники данных

В проекте используются проекта данные общественного мониторнга воздуха проекта Luftdaten. Данные собираются с датчиков концентрации частиц, температуры, атмосферного давления и влажности воздуха и размещаются в открытом доступе. В Москве установкой станций мониторинга качества воздуха занимаются волонтеры breathe.moscov.

Информация о погоде в Москве используется по данным метеостанции Балчуг

Для версионирования данных и построения pipline в проекте используется Data Version Control (DVC).

Загрузка новых данных

  • получение списка новых сенсоров
python -m src.data.get_sensor_list
  • обновление данных с сенсоров
python -m src.data.update_data
  • обновление данных метеостанции
python -m src.data.update_weather

DVC-pipline

        +----------------------+                  +----------------------+         
        | DATA/raw/sensors.dvc |                  | DATA/raw/weather.dvc |         
        +----------------------+                  +----------------------+         
         ***                 ***                  ***                  ***         
     ****                       ****          ****                        ***      
  ***                               **      **                               ****  
****                           +-----------------+                             ****
     *******                    | extract_sensors |                      *******    
           *******             +-----------------+                ******           
                  ******                 *                 *******                 
                        *******          *          *******                        
                               ****      *      ****                               
                                +----------------+                                 
                                | create_dataset |                                 
                                +----------------+  

Для запуска стадий pipline используйте dvc repro <stage.dvc> (подробнее)

Tests

  • Запуск всех тестов (перед отправкой на PR): python -m pytest --flake8 -v --cov-report term --cov=./src
  • Запуск единичных тестов: python -m pytest -vs tests/model/test_extract_anomalies.py::test_main