copernicusmarine
Command line interface and Python API for accessing Copernicus Marine data and related services.
What it is and what it does
Copernicusmarine is a Python package and command-line tool that connects to the Copernicus Marine Service to access oceanographic datasets. It lets you list and retrieve metadata for all available marine products and datasets, apply filters to find specific data, and download subsets in formats like NetCDF or Zarr without quotas on volume or bandwidth.
The package wraps the Marine Data Store API, exposing both a CLI (via click) and a Python API. It depends on a substantial stack including xarray, dask, zarr, and boto3 for data handling and cloud storage, plus pydantic for validation and pystac for catalog metadata. The main constraint is a Python version requirement of 3.10 or higher, and a known incompatibility between older xarray and numpy 2.0+.
Use it for:
- Download oceanographic model outputs or observational data for a specific geographic region and time period.
- Subset large marine datasets to NetCDF or Zarr format before processing in a local analysis pipeline.
- Automate recurring data fetches from Copernicus Marine in a scheduled workflow or batch job.
- Query the full Copernicus Marine catalog to discover available variables and products programmatically.
- Access cloud-optimized Zarr stores directly for analysis with dask on distributed compute.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Copernicusmarine provides a CLI and Python API to query, filter, and download marine oceanographic data from the Copernicus Marine Service, including subsetting to NetCDF or Zarr formats.
Yes, if you work with Copernicus Marine oceanographic data. Install friction is low, maintenance is active, and there are no known vulnerabilities. The main gotchas are the Python 3.10+ requirement, the xarray/numpy compatibility caveat, and unclear license metadata—verify the EUPL terms apply to your use case before deploying in production.
Install
copernicusmarine on PyPI
pip
pip install copernicusmarineuv
uv add copernicusmarinepoetry
poetry add copernicusmarineInstalling copernicusmarine
Before you install
Low install friction with a pure-wheel distribution. Active maintenance as of 95 days ago. Supports Python 3.10 through 3.14. Note: the package documentation warns that xarray<2024.7.0 combined with numpy>=2.0.0 produces inconsistent results.
License in practice
License treatment is unclear—the package references EUPL in its description but metadata lacks explicit SPDX or raw license fields. Verify licensing terms before use in proprietary or restricted contexts.
Quickstart
pip install copernicusmarine
import copernicusmarine
# List available datasets
copernicusmarine.describe()
# Download a subset as NetCDF
copernicusmarine.subset(dataset_id="...", variables=[...], output_filename="subset.nc")
Requires Python >=3.10. Copernicus Marine account credentials needed for data access. xarray<2024.7.0 with numpy>=2.0.0 causes inconsistent results.
Verify before relying
- Whether Copernicus Marine account creation and login are required before any data access, or if public datasets are available without authentication.
- Performance characteristics and typical download speeds for large datasets or subsetting operations.
- Whether the package handles authentication caching or if credentials must be supplied on each call.
Package facts
| License | not declared (unclear) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 13 — click, requests, xarray, tqdm, zarr, dask, boto3, semver, pystac, numpy, pydantic, h5netcdf, arcosparse |
| Maintenance | actively maintained — 95 days since the last release |
| First released | |
| Downloads | 232,927/month — #9,052 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: copernicusmarine-2.4.1-py3-none-any.whl
Tags
More Information Analysis packages
A drop-in replacement for Python's standard…
permissive · top 100 on PyPI
pyarrowpyarrow provides Python bindings to Apache…
permissive · top 100 on PyPI
networkxNetworkX provides data structures and…
permissive · top 1,000 on PyPI
snowflake-connector-pythonConnects Python applications to Snowflake data…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
snowflake-snowpark-pythonSnowpark Python provides APIs to query and…
permissive · top 1,000 on PyPI
arcosparseDownloads and subsets sparse geospatial…
unclear · top 15,000 on PyPI
cdsapicdsapi is a Python client for the Copernicus…
permissive · top 15,000 on PyPI
earthkit-dataearthkit-data provides a unified Python…
permissive · top 15,000 on PyPI
gswGSW-Python wraps the TEOS-10 seawater…
permissive · top 15,000 on PyPI
cfgribcfgrib maps GRIB meteorological data files to…
permissive · top 5,000 on PyPI
cmoceanProvides perceptually uniform colormaps…
unclear · top 15,000 on PyPI
kerchunkKerchunk extracts metadata from chunked,…
permissive · top 15,000 on PyPI
netCDF4netcdf4 provides a Python interface to read,…
permissive · top 5,000 on PyPI
herbie-dataHerbie downloads numerical weather prediction…
permissive · top 15,000 on PyPI
google-cloud-quotasPython client library for Google Cloud Quotas…
permissive · top 15,000 on PyPI