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-ptimport { 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 Ambientevar 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
| Área | Método | Fonte |
|---|---|---|
| Qualidade do ar | airQuality(lat, lon) | Open-Meteo Air-Quality (CAMS) |
| Praia / mar | marine(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:
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.