Gathering¶
A modular, robust Python package and CLI toolkit for automated atmospheric and satellite data gathering, verification, caching, and downloading.
-
9 Data Sources
Ground-based networks (AERONET, ACTRIS, Pandonia) and satellite platforms (CDSE, EUMETSAT, EarthCARE, PACE, MODIS)
-
Python & Jupyter First
Type-safe
Taskbuilders with IDE autocompletion,Pipelineexecution with progress bars, and rich HTML rendering -
CLI & YAML
Run individual commands or batch multi-source workflows via YAML configuration files with
${ENV_VAR}expansion -
Built-in Integrity
Per-format verification (MD5, SHA-256, magic headers, CRC), automatic cache repair, and corrupted file detection
Supported Data Sources¶
| Source | Provider | Instruments / Products | Auth |
|---|---|---|---|
aeronet |
NASA AERONET | AOD, Inversions, SDA | No |
actris_ares |
ACTRIS / EARLINET | Lidar profiles, In-situ optical | No |
actris_cloudnet |
ACTRIS Cloudnet | Radar, Lidar, MWR, Classification | No |
pandonia |
Pandonia Global Network | NO₂, O₃, HCHO, SO₂, H₂O | API key |
cdse |
Copernicus Data Space | Sentinel-1/2/3/5P/6 | Yes |
eumdac |
EUMETSAT Data Store | MTG FCI, MSG SEVIRI, Metop, S-3 | Yes |
earthcare |
ESA EarthCARE / MAAP | ATLID, CPR, MSI, BBR | Yes |
pace |
NASA PACE | OCI, SPEXone, HARP2 | Yes |
modis |
NASA MODIS | Terra MOD, Aqua MYD, Combined MCD* | Yes |
Quick Start¶
from gathering import Task, Pipeline
# Build typed tasks with IDE autocompletion
t1 = Task.aeronet(
station="Granada",
product="AOD15",
start_date="2023-07-01",
end_date="2023-07-05",
)
t2 = Task.earthcare(
product_types=["ATL_NOM_1B"],
collections=["EarthCAREL1InstChecked"],
start_time="2024-07-31T13:00:00Z",
end_time="2024-07-31T14:00:00Z",
)
# Execute with progress bar
pipeline = Pipeline([t1, t2])
results = pipeline.run(show_progress=True)
print(results.files)
Architecture¶
gathering/
├── base.py # Abstract Gatherer, caching, GATHERER_FOLDER
├── credentials.py # Credentials manager, secret store & .env generator
├── integrity.py # Multi-format verification (MD5/SHA-256, magic, CRC)
├── logging.py # Unified logging with Loguru
├── pipeline.py # Task, Pipeline, tqdm, parallel & rich HTML
├── registry.py # Dynamic registry & plugin system
├── runner.py # YAML & config execution engine
├── cli.py # CLI entrypoint
└── sources/ # One module per data source
├── aeronet.py
├── actris_ares.py
├── actris_cloudnet.py
├── pandonia.py
├── cdse.py
├── eumdac.py
├── earthcare.py
├── cmr_base.py # Shared NASA CMR search & download
├── pace.py
└── modis.py
Supported on Python 3.10, 3.11, and 3.12.