Skip to main content

cdsodatacli

Build status Python Version Dependencies Status

Code style: black Security: bandit Pre-commit License Coverage Report

OData client for Copernicus Data Space Ecosystem (CDSE) catalog


Installation

pip install -U cdsodatacli

CLI Entrypoints

The package provides several command-line tools:

1. queryCDS - Spatio-temporal product search

Search for products using spatial and temporal filters (geometry, date range, product type, etc.).

Features:

  • Spatial filtering (Point, Polygon, global)
  • Temporal range with automatic time slicing (--batch-size)
  • Product type filtering (GRD, SLC, OCN, RAW)
  • Mode filtering (IW, EW, SM, WV)
  • Automatic pagination with $$skip (up to 10000 products)
  • Checkpoint support for interrupted queries
  • Cache support for repeated queries
  • Sequential or multithreaded mode

Examples:

# Basic query with geometry
queryCDS --collection SENTINEL-1 --startdate 20230101T00:00:00 --stopdate 20230105T10:10:10 --mode IW --product SLC --geometry "POINT (-5.02 48.4)"

# Global query with product filter and output
queryCDS --collection SENTINEL-1 --startdate 20260604T00:00:02 --stopdate 20260614T00:01:59 --product GRD --output-safe-listing results.csv

# With time slicing (3-day windows) to handle large periods
queryCDS --collection SENTINEL-1 --startdate 20260604T00:00:02 --stopdate 20260614T00:01:59 --product GRD --output-safe-listing results.csv --batch-size 3

# With checkpoint and cache
queryCDS --collection SENTINEL-1 --startdate 20260604T00:00:02 --stopdate 20260614T00:01:59 --product GRD --output-safe-listing results.csv --checkpoint-dir ./ckpt --cache-dir ./cache

# Multithreaded mode
queryCDS --collection SENTINEL-1 --startdate 20230101T00:00:00 --stopdate 20230105T10:10:10 --querymode multi

Key Options:

  • --startdate, --stopdate: Time range (format: YYYYMMDDTHH:MM:SS)
  • --geometry: WKT geometry (Point or Polygon)
  • --collection: SENTINEL-1, SENTINEL-2, etc.
  • --product: GRD, SLC, OCN, RAW
  • --mode: IW, EW, SM, WV
  • --batch-size: Days per time slice (default: 14)
  • --checkpoint-dir: Resume interrupted queries
  • --cache-dir: Cache OData responses
  • --output-safe-listing: CSV output file

2. get-metadata-from-product-names - Get metadata from SAFE names or Product IDs

Retrieve complete metadata for a list of known SAFE product names or Product UUIDs.

Features:

  • Input: text file with one SAFE name or UUID per line
  • Automatic detection of SAFE names vs UUIDs
  • Batching (15 names per OData query)
  • Parallel fetching with configurable workers
  • Automatic deduplication and geometry conversion
  • Checkpoint support
  • Cache support

Examples:

# From a file with SAFE names
get-metadata-from-product-names --input-listing safes.txt --output results.csv

# With checkpoint and cache for large lists
get-metadata-from-product-names --input-listing big_list.txt --output results.csv --checkpoint-dir ./ckpt --cache-dir ./cache

# With more parallel workers
get-metadata-from-product-names --input-listing safes.txt --output results.csv --max-workers 8

# With custom batch size
get-metadata-from-product-names --input-listing safes.txt --output results.csv --batch-size 30

Key Options:

  • --input-listing: Text file with one SAFE name or UUID per line
  • --output: CSV output file
  • --batch-size: Products per OData query (default: 15)
  • --max-workers: Parallel threads (default: 4)
  • --checkpoint-dir: Resume interrupted runs
  • --cache-dir: Cache OData responses

3. match_s1_prodtypes - Match Sentinel-1 product types

Find matching products of different types (e.g., find OCN products for a list of GRD products).

Examples:

# Match OCN products from a list of GRD SAFE names
match_s1_prodtypes --safe S1A_IW_GRDH_1SDV_20230726T071112_... --prodtype OCN_ --output matches.txt

# From a file with SAFE names
match_s1_prodtypes --input-listing grd_list.txt --prodtype SLC_ --output matches.txt

# With checkpoint for large lists
match_s1_prodtypes --input-listing big_list.txt --prodtype OCN_ --output matches.txt --checkpoint-dir ./ckpt

Key Options:

  • --safe: List of SAFE names
  • --input-listing: File with one SAFE name per line
  • --prodtype: Target product type (GRDH, GRDM, SLC*, OCN*, RAW_)
  • --checkpoint-dir: Resume interrupted runs

4. get-odata-ids - Get OData IDs from SAFE names

Extract OData product IDs from a list of SAFE names.

Examples:

get-odata-ids --input-listing safes.txt --output ids.csv

5. downloadMultiThreadMultiUserS3 - Multi-threaded S3 download

Download products from CDSE S3 storage with multi-threading and multi-account support.

Examples:

downloadMultiThreadMultiUserS3 --input-listing products.csv --output-dir ./downloads

6. countProductsLocally - Count local products

Count products present in a local directory vs expected from a listing.

Examples:

countProductsLocally --listing products.csv --directory ./downloads

Configuration

Create a configuration file localconfig.yml in your working directory or in the package location:

example_group_of_logins:
  user@email.com:
    cdse-psswd: your-password
    s3-access-key: your-s3-key
    s3-secret: your-s3-secret
URL_identity: https://identity.dataspace.copernicus.eu/auth/realms/CDSE/protocol/openid-connect/token
URL_download: https://zipper.dataspace.copernicus.eu/odata/v1/Products(%s)/$value
spools:
  default: "./my_spool"
archives:
  default: "./my_archive"
s3_endpoint: "https://eodata.dataspace.copernicus.eu"
s3_bucket: "eodata"

Project Structure

.
├── cdsodatacli              # Main package directory
│   ├── __init__.py
│   ├── config.yml           # Default configuration
│   ├── download.py          # Download logic
│   ├── fetch_access_token.py
│   ├── get_products_metadata.py  # Metadata from SAFE names
│   ├── product_parser.py    # SAFE name parsing
│   ├── query.py             # Query logic (spatio-temporal)
│   ├── rate_limiter.py      # Rate limiting
│   ├── retry.py             # Retry with backoff
│   ├── s3_path.py
│   ├── s3_temporary_access_token.py
│   ├── session.py
│   ├── utils.py
│   └── scripts/             # Helper scripts
│       ├── match_s1_product_types.py
│       ├── get_ids_listing_safe_iterative.py
│       ├── download_multithread_one_account_deamon.py
│       └── ...
├── tests/                   # Unit and integration tests
└── docs/                    # Documentation

License

License

This project is licensed under the terms of the MIT license.


Citation

@misc{cdsodatacli,
  author = {umr-lops},
  title = {OData client for Copernicus Data Space Ecosystem},
  year = {2023},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/umr-lops/cdsodatacli}}
}

Credits

This project was generated with python-package-template

Release files for cdsodatacli 2026.7.30

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cdsodatacli 2026.7.30
File Size Uploaded
cdsodatacli-2026.7.30.tar.gz 127.0 kB Details

Release files / cdsodatacli-2026.7.30.tar.gz

Download URL cdsodatacli-2026.7.30.tar.gz
Size 127.0 kB
Tags Source
SHA-256 checksum
How to use checksums
9f6f954ac74c8b3cbd92916ade95fe6354a707120e1e1eb869ef1711de5a720f
BLAKE2b-256 checksum
How to use checksums
bcbc21c2a656f9c87fdbda208e322105faaddeb6e703b12734c802211ec44471
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 30, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page