Find and download files from ESGF#
esmvalcore.esgf#
Find files on the ESGF and download them.
Deprecated since version 2.14.0: This module has been moved to esmvalcore.io.esgf. Importing it as
esmvalcore.io.esgf is deprecated and will be removed in version 2.16.0.
Classes:
|
|
|
File on the ESGF. |
Functions:
|
Download multiple ESGFFiles in parallel. |
|
Search for files on ESGF. |
- class esmvalcore.esgf.ESGFDataSource(name: 'str', project: 'str', priority: 'int', download_dir: 'Path')[source]
Bases:
DataSourceAttributes:
debug_infoA string containing debug information when no data is found.
download_dirThe destination directory where data will be downloaded.
nameA name identifying the data source.
priorityThe priority of the data source.
projectThe project that the data source provides data for.
Methods:
find_data(**facets)Find data.
- debug_info: str = ''
A string containing debug information when no data is found.
- download_dir: Path
The destination directory where data will be downloaded.
- find_data(**facets: FacetValue) list[ESGFFile][source]
Find data.
- Parameters:
**facets (FacetValue) – Find data matching these facets.
- Returns:
A list of files that have been found on ESGF.
- Return type:
- name: str
A name identifying the data source.
- priority: int
The priority of the data source. Lower values have priority.
- project: str
The project that the data source provides data for.
- class esmvalcore.esgf.ESGFFile(results: Iterable[FileResult], dest_folder: Path | None = None)[source]
Bases:
DataElementFile on the ESGF.
This is the object returned by
esmvalcore.io.esgf.find_files().- Parameters:
results (Iterable[FileResult])
dest_folder (Path | None)
- dataset
The name of the dataset that the file is part of.
- Type:
- name
The name of the file.
- Type:
- size
The size of the file in bytes.
- Type:
Attributes:
attributesAttributes are key-value pairs describing the data.
Methods:
download(dest_folder)Download the file.
local_file(dest_folder)Return the path to the local file after download.
prepare()Prepare the data for access.
to_iris()Load the data as Iris cubes.
- local_file(dest_folder: Path | None) LocalFile[source]
Return the path to the local file after download.
- to_iris() iris.cube.CubeList[source]
Load the data as Iris cubes.
- Returns:
The loaded data.
- Return type:
- esmvalcore.esgf.download(files, dest_folder=None, n_jobs=4)[source]
Download multiple ESGFFiles in parallel.
- Parameters:
files (list of
ESGFFile) – The files to download.dest_folder (Path or None) – The destination folder.
n_jobs (int) – The number of files to download in parallel.
- Raises:
DownloadError: – Raised if one or more files failed to download.
- esmvalcore.esgf.find_files(*, project, short_name, dataset, **facets)[source]
Search for files on ESGF.
- Parameters:
project (str) – Choose from CMIP3, CMIP5, CMIP6, CORDEX, or obs4MIPs.
short_name (str) – The name of the variable.
dataset (str) – The name of the dataset.
**facets (Union[str, list[str]]) – Any other search facets. An
'*'can be used to match any value. By default, only the latest version of a file will be returned. To select all versions useversion='*'while other omitted facets will default to'*'. It is also possible to specify multiple values for a facet, e.g.exp=['historical', 'ssp585']will match any file that belongs to either the historical or ssp585 experiment. Thetimerangefacet can be specified in ISO 8601 format.
Note
A value of
timerange='*'is supported, but combining a'*'with a time or period as supported in the recipe is currently not supported and will return all found files.Examples
Examples of how to use this function for all supported projects.
Search for a CMIP3 dataset:
>>> find_files( ... project='CMIP3', ... frequency='mon', ... short_name='tas', ... dataset='cccma_cgcm3_1', ... exp='historical', ... ensemble='run1', ... ) [ESGFFile:cmip3/CCCma/cccma_cgcm3_1/historical/mon/atmos/run1/tas/v1/tas_a1_20c3m_1_cgcm3.1_t47_1850_2000.nc]
Search for a CMIP5 dataset:
>>> find_files( ... project='CMIP5', ... mip='Amon', ... short_name='tas', ... dataset='inmcm4', ... exp='historical', ... ensemble='r1i1p1', ... ) [ESGFFile:cmip5/output1/INM/inmcm4/historical/mon/atmos/Amon/r1i1p1/v20130207/tas_Amon_inmcm4_historical_r1i1p1_185001-200512.nc]
Search for a CMIP6 dataset:
>>> find_files( ... project='CMIP6', ... mip='Amon', ... short_name='tas', ... dataset='CanESM5', ... exp='historical', ... ensemble='r1i1p1f1', ... ) [ESGFFile:CMIP6/CMIP/CCCma/CanESM5/historical/r1i1p1f1/Amon/tas/gn/v20190429/tas_Amon_CanESM5_historical_r1i1p1f1_gn_185001-201412.nc]
Search for a CORDEX dataset and limit the search results to files containing data to the years in the range 1990-2000:
>>> find_files( ... project='CORDEX', ... frequency='mon', ... dataset='COSMO-crCLIM-v1-1', ... short_name='tas', ... exp='historical', ... ensemble='r1i1p1', ... domain='EUR-11', ... driver='MPI-M-MPI-ESM-LR', ... timerange='1990/2000', ... ) [ESGFFile:cordex/output/EUR-11/CLMcom-ETH/MPI-M-MPI-ESM-LR/historical/r1i1p1/COSMO-crCLIM-v1-1/v1/mon/tas/v20191219/tas_EUR-11_MPI-M-MPI-ESM-LR_historical_r1i1p1_CLMcom-ETH-COSMO-crCLIM-v1-1_v1_mon_198101-199012.nc, ESGFFile:cordex/output/EUR-11/CLMcom-ETH/MPI-M-MPI-ESM-LR/historical/r1i1p1/COSMO-crCLIM-v1-1/v1/mon/tas/v20191219/tas_EUR-11_MPI-M-MPI-ESM-LR_historical_r1i1p1_CLMcom-ETH-COSMO-crCLIM-v1-1_v1_mon_199101-200012.nc]
Search for an obs4MIPs dataset:
>>> find_files( ... project='obs4MIPs', ... frequency='mon', ... dataset='CERES-EBAF', ... short_name='rsutcs', ... ) [ESGFFile:obs4MIPs/NASA-LaRC/CERES-EBAF/atmos/mon/v20160610/rsutcs_CERES-EBAF_L3B_Ed2-8_200003-201404.nc]
Search for any ensemble member:
>>> find_files( ... project='CMIP6', ... mip='Amon', ... short_name='tas', ... dataset='BCC-CSM2-MR', ... exp='historical', ... ensemble='*', ... ) [ESGFFile:CMIP6/CMIP/BCC/BCC-CSM2-MR/historical/r1i1p1f1/Amon/tas/gn/v20181126/tas_Amon_BCC-CSM2-MR_historical_r1i1p1f1_gn_185001-201412.nc, ESGFFile:CMIP6/CMIP/BCC/BCC-CSM2-MR/historical/r2i1p1f1/Amon/tas/gn/v20181115/tas_Amon_BCC-CSM2-MR_historical_r2i1p1f1_gn_185001-201412.nc, ESGFFile:CMIP6/CMIP/BCC/BCC-CSM2-MR/historical/r3i1p1f1/Amon/tas/gn/v20181119/tas_Amon_BCC-CSM2-MR_historical_r3i1p1f1_gn_185001-201412.nc]
Search for all available versions of a file:
>>> find_files( ... project='CMIP5', ... mip='Amon', ... short_name='tas', ... dataset='CCSM4', ... exp='historical', ... ensemble='r1i1p1', ... version='*', ... ) [ESGFFile:cmip5/output1/NCAR/CCSM4/historical/mon/atmos/Amon/r1i1p1/v20121031/tas_Amon_CCSM4_historical_r1i1p1_185001-200512.nc, ESGFFile:cmip5/output1/NCAR/CCSM4/historical/mon/atmos/Amon/r1i1p1/v20130425/tas_Amon_CCSM4_historical_r1i1p1_185001-200512.nc, ESGFFile:cmip5/output1/NCAR/CCSM4/historical/mon/atmos/Amon/r1i1p1/v20160829/tas_Amon_CCSM4_historical_r1i1p1_185001-200512.nc]
Search for a specific version of a file:
>>> find_files( ... project='CMIP5', ... mip='Amon', ... short_name='tas', ... dataset='CCSM4', ... exp='historical', ... ensemble='r1i1p1', ... version='v20130425', ... ) [ESGFFile:cmip5/output1/NCAR/CCSM4/historical/mon/atmos/Amon/r1i1p1/v20130425/tas_Amon_CCSM4_historical_r1i1p1_185001-200512.nc]
- Returns:
A list of files that have been found.
- Return type:
listofESGFFile
esmvalcore.esgf.facets#
Find files on the ESGF and download them.
Deprecated since version 2.14.0: This module has been moved to esmvalcore.io.esgf.facets. Importing it as
esmvalcore.io.esgf.facets is deprecated and will be removed in version 2.16.0.
Functions:
Create the DATASET_MAP from recipe datasets to ESGF dataset names. |