ESGF Search Harvester — CMIP6 / CORDEX Climate Data
Pricing
from $0.35 / 1,000 record returneds
ESGF Search Harvester — CMIP6 / CORDEX Climate Data
Point at ANY ESGF federation node (LLNL, DKRZ, IPSL...) and harvest climate-model dataset/file records via the Search API. Facet-filter by project, model, experiment, variable, frequency. Modes: search, facets, wget file listing.
Pricing
from $0.35 / 1,000 record returneds
Rating
0.0
(0)
Developer
Datamule
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Point this Actor at any node in the Earth System Grid Federation (ESGF) and harvest
climate-model dataset and file records through the federation's uniform, Solr-backed
Search API. It's a generic runner: the same query grammar works across every ESGF index
node — LLNL, DKRZ, IPSL, CEDA, NCI and the rest — so you can target one node or the default
federation trio without changing anything but the nodes list.
Built for climate scientists, earth-system modellers and research-data engineers who need programmatic, structured access to CMIP6 / CMIP5 / CORDEX / obs4MIPs / input4MIPs holdings without hand-rolling the Solr query layer.
What it does
Three modes, auto-selected from the mode input:
| Mode | What you get |
|---|---|
| search | One row per dataset (aggregate) or file (.nc, with url + checksum), facet-filtered and paginated to completion (or a maxRecords cap). |
| facets | The node's controlled-vocabulary index — every value of the facet fields you ask for (experiment_id, source_id, variable, …) with its hit count. The fastest way to discover what a node actually holds. |
| wget | The ESGF-generated download script parsed into one clean row per file (filename, url, checksum_type, checksum) — a ready-to-use download manifest. |
Facet filters
Filter by the standard ESGF facets, exposed as first-class inputs (all optional, all multi-value):
project · experiment_id · variable · frequency · source_id (model) ·
institution_id · activity_id · variant_label · grid_label · realm ·
table_id · data_node — plus a free-text query and an extraFacets object for anything
else the node indexes.
Example input
{"nodes": ["https://esgf-node.llnl.gov/esg-search"],"mode": "search","type": "Dataset","project": ["CMIP6"],"experiment_id": ["historical"],"variable": ["tas"],"frequency": ["mon"],"latestOnly": true,"maxRecords": 200}
Download-manifest example (wget mode)
ESGF download scripts list files only, so in wget mode the Actor always asks the node
for file records (type=File), whatever the Record type field says — the untouched default
Dataset just works. All your facet filters are kept exactly as entered. Rows are file
entries (filename, url, checksum), one charged record each.
{"nodes": ["https://esgf-data.dkrz.de/esg-search"],"mode": "wget","project": ["CMIP6"],"experiment_id": ["historical"],"variable": ["tas"],"frequency": ["mon"],"maxRecords": 6}
Example output (search / Dataset)
{"type": "Dataset","id": "CMIP6.CMIP.EC-Earth-Consortium.EC-Earth3.historical.r23i1p1f1.Amon.tas.gr.v20210527|eagle.alcf.anl.gov","title": "CMIP6.CMIP.EC-Earth-Consortium.EC-Earth3.historical.r23i1p1f1.Amon.tas.gr","project": ["CMIP6"],"source_id": ["EC-Earth3"],"experiment_id": ["historical"],"variable": ["tas"],"frequency": ["mon"],"institution_id": ["EC-Earth-Consortium"],"variant_label": ["r23i1p1f1"],"data_node": "eagle.alcf.anl.gov","size": 782045502}
Multi-valued Solr fields (variable, project, url, checksum, …) are preserved as
arrays — never flattened to the first element. The complete raw Solr document is kept under
raw so nothing is lost.
Notes on the federation
format=application/solr+jsonis pinned for you — without it ESGF returns XML.distribdefaults tofalse(query only the target node). Set ittrueto fan the query out across the whole federation — more coverage, but slower and can partially fail.latestOnly(defaulttrue) restricts to the latest dataset version;replicacontrols whether replica copies are included.- Pagination is automatic (
numFound+offset/limit); setmaxRecords: 0to harvest a result set to completion (can be very large — CMIP6 has tens of millions of records).
Pricing
Pay-per-result: you're charged per record returned. Discovery runs (facets mode, or a
small maxRecords) are cheap; full harvests scale with what you pull.
Your max run charge is respected. Set a maximum charge per run and the Actor delivers
only as many records as that budget pays for, then stops before making any further request
to ESGF nodes. Every record in the dataset is exactly one charged record — no unpaid extras,
no double charges if the run restarts. A max charge below the price of one record returns
0 records and costs nothing. The wget mode only reads the download script's file list;
it never runs the script or downloads climate data.
About the ESGF Search API
The ESGF Search API is a thin REST facade over a federated Apache Solr index. Every node speaks the same grammar, which is exactly what makes one generic Actor work across the whole federation. Reference: ESGF Search RESTful API.

