● UNOFFICIAL · community project

ambiente-pt

Qualidade do ar e condições do mar, em qualquer ponto de Portugal

AQI europeu, PM2.5/PM10, NO₂, O₃, UV — e temperatura da água e ondulação para a praia. Grátis, sem key. TypeScript, Java e .NET, uma API idêntica.

🟦 TypeScript☕ Java🟣 .NET / C#
TypeScript CI Java CI .NET CI MIT

Why this exists

Duas perguntas, dados grátis

"O ar está bom hoje?" e "quão fria está a água na praia?" têm ótimos dados abertos por trás — mas a resposta do Open-Meteo embrulha tudo num objeto current dinâmico, com tipos mistos e nulos. Estes SDKs dão-te snapshots tipados (AirQuality, MarineConditions), uma ajuda de banda de AQI e coordenadas prontas de Portugal.

🌬️

Qualidade do ar

AQI europeu, PM2.5/PM10, NO₂, O₃, SO₂, CO e índice UV.

🌊

Praia & mar

Temperatura da água, altura, período e direção da ondulação.

📍

Lugares PT

Coordenadas prontas de cidades e praias populares.

Quick start

Instala e corre

npm install ambiente-pt
import { AmbienteClient, europeanAqiBand, PLACES } from "ambiente-pt";

const env = new AmbienteClient();
const air = await env.airQuality(PLACES.Lisboa.lat, PLACES.Lisboa.lon);
console.log(air.europeanAqi, europeanAqiBand(air.europeanAqi));

const sea = await env.marine(PLACES.CascaisBeach.lat, PLACES.CascaisBeach.lon);
console.log(sea.seaSurfaceTemperature, sea.waveHeight);
<dependency>
  <groupId>io.github.marcelogdomingues</groupId>
  <artifactId>ambiente</artifactId>
  <version>0.1.0</version>
</dependency>
AmbienteClient env = AmbienteClient.builder().build();
AirQuality air = env.airQuality(Places.LISBOA.lat(), Places.LISBOA.lon());
System.out.println(air.europeanAqiBand());

MarineConditions sea = env.marine(Places.CASCAIS_BEACH.lat(), Places.CASCAIS_BEACH.lon());
dotnet add package Ambiente
var env = new AmbienteClient();
var air = await env.AirQualityAsync(Places.Lisboa.Lat, Places.Lisboa.Lon);
Console.WriteLine(air.Band());

var sea = await env.MarineAsync(Places.CascaisBeach.Lat, Places.CascaisBeach.Lon);

API

Superfície

ÁreaMétodoFonte
Qualidade do arairQuality(lat, lon)Open-Meteo Air-Quality (CAMS)
Praia / marmarine(lat, lon)Open-Meteo Marine

AirQuality: europeanAqi, pm10, pm25, nitrogenDioxide, ozone, sulphurDioxide, carbonMonoxide, uvIndex. MarineConditions: seaSurfaceTemperature, waveHeight, wavePeriod, waveDirection. Valores em falta vêm a null. Erros lançam AmbienteError / AmbienteException.

AQI bands

Índice europeu de qualidade do ar

europeanAqiBand classifica o AQI europeu na sua banda:

0–20 Good 20–40 Fair 40–60 Moderate 60–80 Poor 80–100 Very poor >100 Extremely poor

FAQ

Common questions

Preciso de uma API key?

Não — o Open-Meteo é grátis para uso não-comercial e sem key. Para uso intensivo ou comercial, vê os termos e planos do Open-Meteo.

São medições oficiais?

Não. A qualidade do ar vem do modelo CAMS e o mar de modelos de ondulação — ótimo para "está bom hoje?", mas não substitui dados oficiais de estação (ex. APA QualAr) quando precisas de medições certificadas.

Posso usar qualquer coordenada?

Sim — passa qualquer latitude/longitude. PLACES / Places é só um conjunto de conveniência de cidades e praias de Portugal.

Isto é afiliado ao Open-Meteo?

Não — é um cliente comunitário independente.