Dados de qualidade do ar coletados da Prefeitura do RJ - Secretaria Municipal de Meio Ambiente (SMAC). Os dados são publicados pela SMAC nos seguintes meios:
- Boletim Diário
- Portal de dados abertos da Prefeitura do RJ - Data.Rio
- Portal MonitorAr do Ministério de Meio Ambiente e Mudança do Clima
A API é uma aplicação Spring Boot e para ser inicializada execute (requer Maven):
mvn spring-boot:run
A API também pode ser inicializada como contâiner. Para inicializar a API deste modo, execute (requer Docker):
docker run --name smac --rm -d -p 8080:8080 esignbr/qualidade-ar-smac
Os dados de qualidade do ar dos últimos 365 dias podem ser carregados para uma base de dados InfluxDB e apresentados num dashboard do Grafana. Os passos são os seguintes (requer Python e docker-compose):
- Prepare o ambiente Python:
python3 -m venv env && source env/bin/activate && pip3 install -r requirements.txt
; - Execute o script Python:
./airflow/influxdb-data.py 365
; - Inicialize o ambiente:
docker-compose up -d
; - Pelo browser entre em http://localhost:3000;
- Entre no dashboard
SMAC
.
Se preferir, obtenha diretamente todos os dados da SMAC:
curl -H 'Authorization: Token my-super-secret-auth-token' -G 'http://localhost:8086/query?db=qualidadear-diaria' --data-urlencode 'q=SELECT * FROM "IQAR" WHERE "orgao" =~ /SMAC/'
Último índice de qualidade do ar das estações de monitoramento da SMAC:
curl -H 'Authorization: Token my-super-secret-auth-token' -G 'http://localhost:8086/query?db=qualidadear-diaria' --data-urlencode 'q=SELECT last(value) AS value FROM "IQAR" WHERE "orgao" =~ /SMAC/ GROUP BY "estacao", "latitude", "longitude"' -s | jq
Poluentes que mais impactaram o índice de qualidade do ar no período:
curl -H 'Authorization: Token my-super-secret-auth-token' -G 'http://localhost:8086/query?db=qualidadear-diaria' --data-urlencode 'q=SELECT count(value) FROM "IQAR" WHERE "orgao" =~ /SMAC/ GROUP BY "poluente"' -s | jq -r '.results[].series[] | "\(.tags.poluente) - \(.values[0][1])"'
Distribuição da classificação da qualidade do ar no período:
curl -H 'Authorization: Token my-super-secret-auth-token' -G 'http://localhost:8086/query?db=qualidadear-diaria' --data-urlencode 'q=SELECT count(value) FROM "IQAR" WHERE "orgao" =~ /SMAC/ GROUP BY "classificacao"' -s | jq -r '.results[].series[] | "\(.tags.classificacao) - \(.values[0][1])"'
Dados históricos horários no formato CSV podem ser obtidos do Data.Rio através do comando:
curl 'https://hub.arcgis.com/api/v3/datasets/5b1bf5c3e5114564bbf9b7a372b85e17_2/downloads/data?format=csv&spatialRefId=31983'