Find files on the local filesystem#
Find files on the local filesystem.
Deprecated since version 2.14.0: This module has been moved to esmvalcore.io.local. Importing it as
esmvalcore.local is deprecated and will be removed in version 2.16.0.
Classes:
|
Data source for finding files on a local filesystem. |
|
File on the local filesystem. |
Functions:
|
Find files on the local filesystem. |
- class esmvalcore.local.LocalDataSource(name: str, project: str, priority: int, rootpath: ~pathlib.Path, dirname_template: str, filename_template: str, ignore_warnings: list[dict[str, ~typing.Any]] | None = <factory>, ignore_datetimes_in_filename: bool = False)[source]#
Bases:
DataSourceData source for finding files on a local filesystem.
Attributes:
A string containing debug information when no data is found.
The template for the directory names.
The template for the file names.
Ignore date times specified in file names.
Warnings to ignore when loading the data.
A name identifying the data source.
The priority of the data source.
The project that the data source provides data for.
The path where the directories are located.
Methods:
find_data(**facets)Find data locally.
- Parameters:
- ignore_datetimes_in_filename: bool = False#
Ignore date times specified in file names.
By default, if possible, the time range spanned by a file is determined by datetimes given in its file name. For example, the file
my-model_20000101-20051231.ncwill be assigned a start date of 2000-01-01 and an end date of 2005-12-31. Only if reading datetimes from the file name fails, the actual file will be opened to determine the time range from the file contents.If this option is set to
True, date times in file names are ignored, and the time range is always determined from the contents of the file.Note that in the vast majority of cases, reading datetimes from file names works very well. In addition, opening files to determine time range is much slower than just reading file names. Thus, this option should only be set to
Trueif absolutely necessary.
- class esmvalcore.local.LocalFile(*args, **kwargs)[source]#
Bases:
PosixPath,DataElementFile on the local filesystem.
Attributes:
Attributes are key-value pairs describing the data.
Facets are key-value pairs that were used to find this data.
Warnings to ignore when loading the data.
Methods:
- property facets: Facets#
Facets are key-value pairs that were used to find this data.
- property ignore_warnings: list[dict[str, Any]] | None#
Warnings to ignore when loading the data.
The list should contain
dict`s with keyword arguments that will be passed to the :func:`warnings.filterwarningsfunction when calling theto_irismethod.
- esmvalcore.local.find_files(*, debug: bool = False, **facets: FacetValue) list[LocalFile] | tuple[list[LocalFile], list[Path]][source]#
Find files on the local filesystem.
Deprecated since version 2.14.0: This function is deprecated and will be removed in version 2.16.0. Please use
esmvalcore.local.LocalDataSource.find_data()instead.The directories that are searched for files are defined in
esmvalcore.config.CFGunder the'rootpath'key using the directory structure defined under the'drs'key. Ifesmvalcore.config.CFG['rootpath']contains a key that matches the value of theprojectfacet, those paths will be used. If there is no project specific key, the directories inesmvalcore.config.CFG['rootpath']['default']will be searched.See Input data for extensive instructions on configuring ESMValCore so it can find files locally.
- Parameters:
debug (bool) – When debug is set to
True, the function will return a tuple with the first element containing the files that were found and the second element containing theglob.glob()patterns that were used to search for files.**facets (FacetValue) – Facets used to search for files. 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='*'. 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.
- Return type:
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
Search for files containing surface air temperature from any CMIP6 model for the historical experiment:
>>> esmvalcore.local.find_files( ... project='CMIP6', ... activity='CMIP', ... mip='Amon', ... short_name='tas', ... exp='historical', ... dataset='*', ... ensemble='*', ... grid='*', ... institute='*', ... ) [LocalFile('/home/bandela/climate_data/CMIP6/CMIP/BCC/BCC-ESM1/historical/r1i1p1f1/Amon/tas/gn/v20181214/tas_Amon_BCC-ESM1_historical_r1i1p1f1_gn_185001-201412.nc')]