LLMSkillHub
mirroredCopied from beita6969/ScienceClaw under MIT. beita6969 has not claimed this page, and is not affiliated with LLM SkillHub.

beita6969 / copernicus-climate

Access Copernicus Climate Data Store (CDS) for ERA5 reanalysis, climate projections, and satellite observations. Use when: (1) retrieving historical weather/climate data, (2) downloading ERA5 reanalysis fields, (3) querying climate projections (CMIP), (4) getting satellite-derived climate variables. NOT for: real-time weather forecasts (use weather APIs), ocean biology (use Copernicus Marine), air quality (use CAMS).

0
SKILL.md
3.9 KB

Copernicus Climate Data Store (CDS)

Access ERA5 reanalysis, climate projections, and satellite climate records through
the Copernicus CDS API. Covers global gridded climate data from 1940 to present.

Prerequisites

Install the CDS API client and configure credentials:

pip install cdsapi

Create ~/.cdsapirc with your CDS credentials:

url: https://cds.climate.copernicus.eu/api
key: <your-uid>:<your-api-key>

Register at https://cds.climate.copernicus.eu to obtain credentials.

API Base URL

https://cds.climate.copernicus.eu/api

Basic Python Retrieval Pattern

import cdsapi

c = cdsapi.Client()

c.retrieve(
    "reanalysis-era5-single-levels",
    {
        "product_type": "reanalysis",
        "variable": "2m_temperature",
        "year": "2023",
        "month": "07",
        "day": "15",
        "time": "12:00",
        "area": [60, -10, 35, 30],  # N, W, S, E bounding box
        "format": "netcdf",
    },
    "era5_temperature.nc",
)

ERA5 Pressure-Level Variables

Retrieve upper-air data on pressure levels:

c.retrieve(
    "reanalysis-era5-pressure-levels",
    {
        "product_type": "reanalysis",
        "variable": ["temperature", "geopotential", "relative_humidity"],
        "pressure_level": ["500", "700", "850", "925"],
        "year": "2023",
        "month": "01",
        "day": "15",
        "time": "12:00",
        "format": "netcdf",
    },
    "era5_pressure_levels.nc",
)

Key Dataset Identifiers

Dataset IDDescription
reanalysis-era5-single-levelsSurface and single-level hourly fields
reanalysis-era5-pressure-levelsUpper-air on 37 pressure levels
reanalysis-era5-single-levels-monthlyMonthly-averaged surface fields
reanalysis-era5-landERA5-Land (enhanced land, 9 km)
satellite-sea-level-globalSatellite altimetry sea level

Common Variables

Single level: 2m_temperature, total_precipitation, 10m_u_component_of_wind,
10m_v_component_of_wind, mean_sea_level_pressure, surface_solar_radiation_downwards.

Pressure level: temperature, geopotential, relative_humidity, specific_humidity.

Processing Downloaded NetCDF

import xarray as xr
ds = xr.open_dataset("era5_temperature.nc")
temp_celsius = ds["t2m"] - 273.15  # Kelvin to Celsius
print(f"Mean temperature: {float(temp_celsius.mean()):.1f} C")

Area Selection (N, W, S, E bounding box)

Global: [90, -180, -90, 180], Europe: [72, -25, 33, 45],
Continental US: [50, -125, 25, -65], East Asia: [55, 70, 5, 145].

Best Practices

  1. Specify the smallest area and fewest variables needed to reduce download time.
  2. Use monthly-averaged datasets when daily resolution is not required.
  3. Request data in NetCDF format for analysis; GRIB for operational workflows.
  4. CDS queues requests; large jobs may take hours. Check status via the web dashboard.
  5. ERA5 data is available from 1940 to present with ~5-day latency.
  6. For multi-year bulk downloads, split requests by year to avoid timeouts.
  7. Install xarray and netCDF4 for reading downloaded files in Python.