Copernicus Climate Data Store
Copernicus / EU
EU satellite-based climate data. ERA5 reanalysis, sea level, ice extent.
ERA5 ReanalysisSea Level RiseArctic Ice ExtentClimate ProjectionsSoil Moisture
API KeyFreeDailyGlobal
Quick start
// Copernicus Climate Data Store API
import cdsapi from '@ecmwf/cdsapi';
const c = new cdsapi.Client({ url: process.env.CDS_URL, key: process.env.CDS_KEY });
await c.retrieve('reanalysis-era5-single-levels', {
product_type: 'reanalysis',
variable: '2m_temperature',
year: '2024',
month: '01',
day: '01',
time: '12:00',
format: 'netcdf',
}, 'download.nc');
console.log('ERA5 data downloaded');
VisitGlobal Carbon Project
Global Carbon Project
Annual global CO2 emissions by country and sector since 1750.
CO2 Emissions by CountrySector BreakdownHistorical TrendCarbon BudgetLand Use Change
No AuthFreeAnnualGlobal
Quick start
// GCP data via Our World in Data
const res = await fetch(
'https://raw.githubusercontent.com/owid/co2-data/master/owid-co2-data.json'
);
const data = await res.json();
const usData = data['United States'];
const recent = usData.data.slice(-3);
recent.forEach(d => console.log(`${d.year}: ${d.co2?.toFixed(1)} MtCO2`));
VisitNASA GISS Surface Temperature
NASA GISS
Global surface temperature anomaly data since 1880. GISTEMP dataset.
Global Temperature AnomalyMonthly RecordsLand vs Ocean TempBaseline Comparison140+ Years of Data
No AuthFreeMonthlyGlobal
Quick start
const res = await fetch(
'https://data.giss.nasa.gov/gistemp/tabledata_v4/GLB.Ts+dSST.json'
);
const data = await res.json();
const recent = data.data.slice(-3);
recent.forEach(row => console.log(`${row[0]}: ${row[13]}°C anomaly (annual avg)`));
VisitNOAA Climate Data Online
NOAA
Historical climate data. Temperature, precipitation, and extreme events.
Temperature RecordsPrecipitation HistoryExtreme EventsStation DataSnow & Ice
API KeyFreeDailyGlobal
Quick start
const res = await fetch(
`https://www.ncdc.noaa.gov/cdo-web/api/v2/data?datasetid=GHCND&stationid=GHCND:USW00094728&startdate=2024-01-01&enddate=2024-01-07&limit=10`,
{ headers: { token: process.env.NOAA_API_KEY } }
);
const { results } = await res.json();
results?.forEach(r => console.log(`${r.date}: ${r.datatype} = ${r.value}`));
VisitOur World in Data — CO2
Our World in Data
CO2 and greenhouse gas emissions by country. Open dataset on GitHub.
CO2 per CapitaCumulative EmissionsEnergy MixPer-GDP EmissionsHistorical Records
No AuthFreeAnnualGlobal
Quick start
const res = await fetch(
'https://raw.githubusercontent.com/owid/co2-data/master/owid-co2-data.json'
);
const data = await res.json();
const world = data['World'];
const last5 = world.data.slice(-5);
last5.forEach(d => console.log(`${d.year}: ${d.co2?.toFixed(1)} MtCO2 (total), ${d.co2_per_capita?.toFixed(2)} t/person`));
Visit