Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/maxymvlasov/eco-data-visualizer

Data visualizer + AQI calculator for CSV-files provided by SaveEcoBot
https://github.com/maxymvlasov/eco-data-visualizer

air-quality air-quality-index aqi csv csv-files data-visualization data-visualizer ecology hacktoberfest raw-data-exploration savednipro saveecobot

Last synced: 10 days ago
JSON representation

Data visualizer + AQI calculator for CSV-files provided by SaveEcoBot

Awesome Lists containing this project

README

        

# Візуалізатор вихідних даних з SaveEcoBot. Обчислює AQI

[![StandWithUkraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://github.com/vshymanskyy/StandWithUkraine/blob/main/docs/README.md)
[![RussianWarship](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/RussianWarship.svg)](https://github.com/vshymanskyy/StandWithUkraine/blob/main/docs/README.md)

>**[Read in English :world_map:](README.md)**

Це програмне забезпечення підготує та запустить панель з усіма показниками з CSV-файлу а також обчислить і покаже AQI для PM2.5 та PM10.

Розрахунки Індексу Якості Повітря (Air Quality Index) базуються на основі [цього документа](https://www.airnow.gov/sites/default/files/2020-05/aqi-technical-assistance-document-sept2018.pdf).

![Як це виглядає](docs/en/images/first-view.png)

Більше скріншотів та прикладів використання [наведено тут [en]](docs/en/screenshots.md).

---

## МЕНЮ

* [Необхідне програмне забезпечення](#необхідне-програмне-забезпечення)
* [Використання](#використання)
* [Швидкий старт](#швидкий-старт)
* [Повсякденне використання](#повсякденне-використання)
* [Запуск](#запуск)
* [Зупинка](#зупинка)
* [Датчики](#датчики)
* [Оброблення нових даних](#оброблення-нових-даних)
* [Додавання нових даних](#додавання-нових-даних)
* [Видалення даних](#видалення-даних)
* [Повне очищення](#повне-очищення)
* [Для контриб'юторів](#для-контрибюторів)
* [Плани на майбутнє](#плани-на-майбутнє)
* [Хочете допомоги?](#хочете-допомоги)
* [Ліцензія та авторські права](#ліцензія-та-авторські-права)

---

## Необхідне програмне забезпечення

* [`Docker`](https://docs.docker.com/get-docker/)
* [`docker-compose`](https://docs.docker.com/compose/install/) (для Linux)

## Використання

### Швидкий старт

1. Зклонуйте цей репозиторій

```bash
git clone [email protected]:MaxymVlasov/eco-data-visualizer.git
```

або [завантажте його як zip архів](https://github.com/MaxymVlasov/eco-data-visualizer/archive/master.zip) і розпакуйте.

2. Виберіть станцію SaveEcoBot [на цій мапі](https://www.saveecobot.com/uk/maps) та натисніть "Детальна інформація про станцію"
![map-details.png](docs/uk/images/map-details.png)

3. Унизу ви побачите "Завантажити дані у форматі CSV"
![download-csv.png](docs/uk/images/download-csv.png)
натисніть на посилання і збережіть CSV-файл у `./data/original_data/` всередині завантаженого репозиторію.

4. Відкрийте термінал у корені `eco-data-visualizer` і виконайте:

```bash
# Підготовка даних
docker build -t data-transformer ./data-transformer-app
docker run -v "$PWD"/data/:/app/data/ --rm data-transformer
# Запуск візуалізації
docker-compose up -d
# Додавання даних датчиків до InfluxDB
docker build -t add_influx_data ./provisioning/influx
docker run -v "$PWD"/data/influx/:/influx-data/ --rm --network=eco-data-visualizer_default add_influx_data
```

>Залежно від пропускної здатності вашого інтернет-каналу, параметрів процесора, жорсткого диску, розміру CSV-файлу та кількості оброблених файлів `Швидкий старт` може тривати різний час.
Наприклад, у ноутбуці з пропускною здатністю `100 Мбіт/с`, `Intel Core i7-8550U` (максимальна тактова частота `4ГГц`), з SSD-диском та:

- 2-ма файлами CSV (разом: 620MB) потрібно `11m47s` (з них `9m39s` для перетворення даних)
- 1-ним файлом CSV (513MB) - `6m16s` (з них `4m18s` для перетворення даних)
- 1-ним файлом CSV (107MB) - `6m35s` (з них `4m32s` для перетворення даних)

5. Відкрийте [http://localhost/](http://localhost/), щоб побачити візуалізацію!

### Повсякденне використання

#### Запуск

Для запуску візуалізації відкрийте термінал у корені репозиторія і виконайте:

```bash
docker-compose up -d
```

Потім відкрийте [http://localhost/](http://localhost/), щоб побачити візуалізацію.

#### Зупинка

Для зупинки візуалізації відкрийте термінал у корені репозиторія і запустіть:

```bash
docker-compose stop
```

### Датчики

#### Оброблення нових даних

1. Завантажте CSV-файл з SaveEcoBot
2. Перемістіть його в теку `data/original_data` цього репозиторія.
3. Виконайте:

```bash
# Видалення тимчасових файлів
docker run -v "$PWD"/data/:/app/ --rm amancevice/pandas:1.0.3-alpine sh -c "rm -f /app/csv/*.csv /app/influx/*.influx"
# Підготовка даних
docker build -t data-transformer ./data-transformer-app
docker run -v "$PWD"/data/:/app/data/ --rm data-transformer
```

#### Додавання нових даних

Для додавання нових даних у візуалізацію відкрийте термінал у корені репозиторія і виконайте:

```bash
# Запуск візуалізації
docker-compose up -d
# Додання нових даних
docker build -t add_influx_data ./provisioning/influx
docker run -v "$PWD"/data/influx/:/influx-data/ --rm --network=eco-data-visualizer_default add_influx_data
```

#### Видалення даних

Для видалення даних датчиків з візуалізації відкрийте термінал у корені репозиторія і виконайте:

```bash
docker-compose down
docker volume rm eco-data-visualizer_sensors-data
```

### Повне очищення

Для повного очищення відкрийте термінал у корені репозиторія і запустіть:

```bash
# Зупинка візуалізації
docker-compose down
# Видалення томів з налаштуваннями та даними датчиків
docker volume rm eco-data-visualizer_grafana-settings eco-data-visualizer_sensors-data
# Видалення тимчасових файлів
docker run -v "$PWD"/data/:/app/ --rm amancevice/pandas:1.0.3-alpine sh -c "rm -f /app/csv/*.csv /app/influx/*.influx"
```

## Для контриб'юторів

Скористайтеся тими ж інструкціями з розділу [Швидкий старт](#швидкий-старт), але на кроці 4 додайте `--build-arg ENV=dev` для `data-transformer-app`.

```bash
docker build --build-arg ENV=dev -t data-transformer ./data-transformer-app
```

## Плани на майбутнє

Дивіться [відповідну секцію](README.md#future-plans) в англомовній версії.

## Хочете допомоги?

Ви можете:

* Удосконалити це програмне забезпечення (див. розділ [Плани на майбутнє [en]](README.md#future-plans)).
* [Зробити пожертву у SaveEcoBot](https://www.saveecobot.com/uk/donate).
* Зібрати або придбати станцію контролю якості повітря та додати її до SaveEcoBot. SaveDnipro може зібрати і додати його для вас. [Замовляти тут](https://www.savednipro.org/product/stanciya-monitoringu-yakosti-povitrya/).

## Ліцензія та авторські права

Це програмне забезпечення розповсюджується під ліцензією [Apache License 2.0](LICENSE).

Усі дані з SaveEcoBot розповсюджуються під ліцензією [Creative Commons Attribution License 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode).

Інші дані та джерела можуть мати інші ліцензії.

Також, використовуючи код, наданий у цьому репозиторії, ви погоджуєтеся з наступним:
* Росія [незаконно анексувала Крим у 2014 році](https://uk.wikipedia.org/wiki/%D0%90%D0%BD%D0%B5%D0%BA%D1%81%D1%96%D1%8F_%D0%9A%D1%80%D0%B8%D0%BC%D1%83_(2014)) і [почала війну на Донбасі](https://uk.wikipedia.org/wiki/%D0%92%D1%96%D0%B9%D0%BD%D0%B0_%D0%BD%D0%B0_%D1%81%D1%85%D0%BE%D0%B4%D1%96_%D0%A3%D0%BA%D1%80%D0%B0%D1%97%D0%BD%D0%B8), а потім і [повномасштабне вторгнення в Україну 2022 року](https://uk.wikipedia.org/wiki/%D0%A0%D0%BE%D1%81%D1%96%D0%B9%D1%81%D1%8C%D0%BA%D0%B5_%D0%B2%D1%82%D0%BE%D1%80%D0%B3%D0%BD%D0%B5%D0%BD%D0%BD%D1%8F_%D0%B2_%D0%A3%D0%BA%D1%80%D0%B0%D1%97%D0%BD%D1%83_(2022)).
* Росія принесла смуток і спустошення мільйонам українців, вбила сотні невинних людей, пошкодила тисячі будівель і змусила кілька мільйонів людей стати вимушеними переселенцями.
* [Путін — хуйло!](https://uk.wikipedia.org/wiki/%D0%9F%D1%83%D1%82%D1%96%D0%BD_%E2%80%94_%D1%85%D1%83%D0%B9%D0%BB%D0%BE!)