Skip to main content

Python bridge between Copernicus Data Stores (C3S, CAMS, CEMS) and mainstream GIS operations

Project description

GeoBridge

Python library that bridges Copernicus Data Stores into mainstream GIS workflows.

GeoBridge removes the technical friction GIS users face when working with Copernicus climate, atmosphere, and emergency data. It resolves dataset discovery, authentication, and access-method differences into a single ergonomic API that produces analysis-ready Cloud Optimized GeoTIFFs.

The library is the foundation for the project's QGIS plugin.


What it does

  • Discovery. gb.discover() lists every dataset in the Copernicus catalogue with filters for keyword, service, variable, bounding box, and time range — all from a locally bundled snapshot, no network needed.
  • Authentication. A single gb.authenticate() call handles credential resolution for the new ARCO bearer-token model.
  • Extraction — ARCO path. gb.zarr_to_geotiff() pulls a spatial / temporal subset from the ARCO Zarr Data Lake and writes it as a Cloud Optimized GeoTIFF, ready for QGIS or ArcGIS.
  • Extraction — CDS API path. gb.cds_to_geotiff() submits a download job through the standard CDS API for datasets that are not yet in the ARCO lake, converts the result to GeoTIFF, and streams it to disk.
  • WMTS. gb.wmts_layer() returns a ready-to-use WMTS layer object for live tile streaming inside QGIS or Leaflet.
  • Form schema. gb.fetch_form() and gb.fetch_constraints() retrieve the server-side parameter form for any dataset so your UI can build validated request widgets. gb.valid_variables_for_product_type() filters the variable list to what the selected product type actually supports.
  • Styling. gb.to_qgis_style() generate calibrated colour ramps for known Copernicus variables.
  • Fusion. gb.fuse() co-registers multiple layers onto a common grid for joint analysis (e.g. heat + air quality).
  • Semantics. gb.semantic_search() resolves user themes like "urban heat island" or "wildfire risk" into concrete dataset and workflow recommendations. gb.list_themes() and gb.list_use_cases() enumerate the built-in vocabulary.

How to run it

Prerequisites

  • Python 3.10 or newer. GeoBridge does not support older Python.
  • A free Copernicus account. Register at https://cds.climate.copernicus.eu and copy your personal access token from your profile page.
  • macOS, Linux, or Windows with WSL2. Native Windows may work but is not tested.

Configure your credentials

Create ~/.cdsapirc with your personal access token:

key: YOUR-CDS-API-KEY-HERE

Then protect the file so other users on the machine cannot read it:

chmod 600 ~/.cdsapirc

Alternatively, export your key as an environment variable instead of writing it to a file:

export CDS_API_KEY=YOUR-CDS-API-KEY-HERE

Run the Athens demo

This is the end-to-end demonstration. It extracts ERA5 temperature for Athens summer 2023, writes a Cloud Optimized GeoTIFF, and generates a matching QGIS style:

python examples/athens_urban_heat.py

Expected runtime is roughly one minute on a reasonable broadband connection. The output appears in ./athens_outputs/. Open the .tif in QGIS, load the .qml style alongside it, and you should see Athens temperatures rendered with a calibrated colour ramp.

License

MIT. See LICENSE.


Acknowledgements

GeoBridge was developed for the ECMWF Copernicus Data Store GIS Integration Challenge.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

geobridge-0.1.1.tar.gz (246.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

geobridge-0.1.1-py3-none-any.whl (239.6 kB view details)

Uploaded Python 3

File details

Details for the file geobridge-0.1.1.tar.gz.

File metadata

  • Download URL: geobridge-0.1.1.tar.gz
  • Upload date:
  • Size: 246.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for geobridge-0.1.1.tar.gz
Algorithm Hash digest
SHA256 3055b7f0b73dbbcd74556830a7acb1b34a9d8d66bb7c7dff958b631f1a7e90aa
MD5 7d90ff8d429c530d1d2d5bcbe17e8fa9
BLAKE2b-256 d06a4c4f6c769c8e63bf95b2ff1ed065056ffbca2c0f8806d36935210bff331c

See more details on using hashes here.

File details

Details for the file geobridge-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: geobridge-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 239.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for geobridge-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9d4887940140593d6693550de8123cd9b49f66095c580c92c2874f27fe961457
MD5 abb0259a2fe00904174b86e9bc2544a0
BLAKE2b-256 3318fac84a6d1541b32da0677f3bdc032b23782c0942e00f21a13598d3589914

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page