esignbr/qualidade-ar-smac

Sponsored OSS

By Esign Consulting

Updated about 1 month ago

SMAC air quality data collector

Image
API Management
Data Science
Internet of Things

2.1K

qualidade-ar-smac

License: MITQuality Gate StatusDocker PullsAPI

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:

Execução

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 -d -p 8080:8080 esignbr/qualidade-ar-smac

Gráfico dos últimos 365 dias

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):

  1. Prepare o ambiente Python: python3 -m venv env && source env/bin/activate && pip3 install -r requirements.txt;
  2. Execute o script Python: ./influxdb-data.py 365;
  3. Inicialize o ambiente: docker-compose up -d;
  4. Pelo browser entre em http://localhost:3000;
  5. Entre no dashboard SMAC.
Consultas aos dados

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' --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' --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' --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' --data-urlencode 'q=SELECT count(value) FROM "IQAR" WHERE "orgao" =~ /SMAC/ GROUP BY "classificacao"' -s | jq -r '.results[].series[] | "\(.tags.classificacao) - \(.values[0][1])"'

Docker Pull Command

docker pull esignbr/qualidade-ar-smac