Skip to content

Multi-Source Campaign Pipeline

This configuration demonstrates orchestrating 8 different observation platforms (ground networks + geostationary & polar satellites) in a single unified workflow.

Built-in example: multi_source_campaign_pipeline.yaml
Run directly: gathering run example:multi_source_campaign_pipeline.yaml  |  Copy locally: gathering examples copy multi_source_campaign_pipeline.yaml .

Configuration

# ==============================================================================
# Comprehensive Multi-Source Gathering Campaign Pipeline
# ==============================================================================
# Orchestrates Ground-Truth (AERONET, Pandonia, ACTRIS) and Satellite overpasses
# (EUMETSAT MTG FCI, MSG SEVIRI, Sentinel-3, EarthCARE) in a unified workflow.
#
# Credentials Configuration:
#   Set credentials via environment variables, .env, or credentials.yaml:
#     - EUMETSAT_CONSUMER_KEY & EUMETSAT_CONSUMER_SECRET
#     - CDSE_USERNAME & CDSE_PASSWORD
#     - EARTHCARE_USERNAME & EARTHCARE_PASSWORD (or EARTHCARE_MAAP_TOKEN)
#     - PANDONIA_API_KEY
#   See credentials templates or run: gathering examples show credentials.env.example
#
# Execute via CLI:
#   gathering run example:multi_source_campaign_pipeline.yaml
# Or in Python:
#   from gathering import run_from_yaml
#   results = run_from_yaml("example:multi_source_campaign_pipeline.yaml")
# ==============================================================================

logging:
  level: INFO
  log_file: "gathering_campaign.log"

tasks:
  # ----------------------------------------------------------------------------
  # 1. Ground Truth: NASA AERONET Photometer (AOD & Inversions)
  # ----------------------------------------------------------------------------
  - source: aeronet
    site: "Granada"
    start_date: "2024-09-01"
    end_date: "2024-09-02"
    product:
      - AOD15
      - ALM15

  # ----------------------------------------------------------------------------
  # 2. Ground Truth: Pandonia Global Network (PGN Trace Gases)
  # ----------------------------------------------------------------------------
  - source: pandonia
    # api_key: "your_pandonia_api_key"
    station: "Granada"
    start_date: "2024-09-01"
    end_date: "2024-09-02"
    product:
      - fnvh3
      - fzo3

  # ----------------------------------------------------------------------------
  # 3. Ground Truth: ACTRIS ARES In-situ Aerosol Optical Properties
  # ----------------------------------------------------------------------------
  - source: actris_ares
    station: "gra"
    data_type: "aer_opt"
    matrix: "pm10"
    start_date: "2024-09-01"
    end_date: "2024-09-02"

  # ----------------------------------------------------------------------------
  # 4. Satellite: EUMETSAT MTG FCI (Smart ROI Chunk Selection)
  # ----------------------------------------------------------------------------
  - source: eumdac
    # consumer_key: "your_eumetsat_consumer_key"
    # consumer_secret: "your_eumetsat_consumer_secret"
    instrument: FCI
    start_time: "2024-09-01T10:00:00Z"
    end_time: "2024-09-01T14:00:00Z"
    max_workers: 4
    download_minutes:
      - 0
    grid:
      center_lat_lon: [37.164, -3.605]   # Granada
      size_yx: [50, 50]
      resolution_m: 1000.0
      projection: "latlon"
    extract_entries: true

  # ----------------------------------------------------------------------------
  # 5. Satellite: Copernicus Data Space (CDSE) Sentinel-2 MSI
  # ----------------------------------------------------------------------------
  - source: cdse
    # username: "your_cdse_username"
    # password: "your_cdse_password"
    instrument: MSI
    product_type: S2MSI2A
    start_time: "2024-09-01T00:00:00Z"
    end_time: "2024-09-02T23:59:59Z"
    max_cloud_cover: 20.0
    max_workers: 4
    grid:
      site: "Granada"
      size_yx: [50, 50]
      resolution_m: 1000.0
      projection: "latlon"

  # ----------------------------------------------------------------------------
  # 6. Satellite: NASA MODIS Terra Aerosol (MOD04_L2)
  # ----------------------------------------------------------------------------
  - source: modis
    # username: "your_earthdata_username"
    # password: "your_earthdata_password"
    satellite: Terra
    product_type: MOD04_L2
    start_time: "2024-09-01T10:00:00Z"
    end_time: "2024-09-01T14:00:00Z"
    max_workers: 4
    grid:
      site: "Granada"
      size_yx: [50, 50]
      resolution_m: 10000.0

  # ----------------------------------------------------------------------------
  # 7. Satellite: NASA PACE OCI Hyperspectral L1C
  # ----------------------------------------------------------------------------
  - source: pace
    # username: "your_earthdata_username"
    # password: "your_earthdata_password"
    instrument: OCI
    product_type: L1C
    start_time: "2024-09-01T10:00:00Z"
    end_time: "2024-09-01T14:00:00Z"
    max_workers: 4
    grid:
      site: "Granada"
      size_yx: [50, 50]
      resolution_m: 5000.0

  # ----------------------------------------------------------------------------
  # 8. Satellite: ESA EarthCARE Atmospheric Lidar (ATLID Level 2A)
  # ----------------------------------------------------------------------------
  - source: earthcare
    # username: "your_earthcare_username"
    # password: "your_earthcare_password"
    # maap_token: "your_optional_maap_token"
    product_types:
      - "ATL_AER_2A"
      - "ATL_TC__2A"
    start_time: "2024-09-01T00:00:00Z"
    end_time: "2024-09-02T23:59:59Z"
    max_workers: 2
    grid:
      center_lat_lon: [37.164, -3.605]
      size_yx: [50, 50]
      resolution_m: 1000.0
      projection: "latlon"

Execution

Execute the multi-source pipeline using the CLI:

# Run the built-in example directly:
gathering run example:multi_source_campaign_pipeline.yaml

# Or export it locally for customization and execute:
gathering examples copy multi_source_campaign_pipeline.yaml .
gathering run multi_source_campaign_pipeline.yaml

Or execute directly from Python / Jupyter:

from gathering import run_from_yaml

results = run_from_yaml("example:multi_source_campaign_pipeline.yaml")