Exploring Climate Datasets

Climate Module

You can easily search and explore climate-related data utilizing the climate module of the Eratos SDK. You can import the climate module using the Python and R examples below.

import eratos.climate as eratosClimate
eratosClimate <- reticulate::import("eratos.climate")

Searching Regions

Search coverages using the list_regions function which has the following definition:

res_list = list_regions(
  adapter,
  query = '*',
  cordexDomain = None,
  lat = None,
  lon = None
)

where,

  • adapter: The Eratos adapter used to perform the query.
  • query: A textual search string to query the available coverages against.
  • cordexDomain: The cordex domain code to match against.
  • lat: Latitude as a floating point number (WGS84)
  • lon: Longitude as a floating point number (WGS84)
  • res_list: A list of Eratos Location Resources that match the query.

Examples in Python and R are shown below.

# Query for all regions.
eratosClimate.list_regions(adapter)
# Query for the region that represents TAS-10 .
eratosClimate.list_regions(adapter, cordexDomain="TAS-10")
# Query for the regions that represents TAS-10 and AUS-50
eratosClimate.list_regions(adapter, cordexDomain=["TAS-10","AUS-50"])
# Query for the regions that overlap with lat = 37.452 and lon = 144.271
eratosClimate.list_regions(adapter, lat = 37.452 , lon = 144.271)
# Query for all coverages.
eratosClimate$list_regions(adapter)
# Query for the coverage that represents TAS-10 .
eratosClimate$list_regions(adapter, cordexDomain="TAS-10")
# Query for the regions that represents TAS-10 and AUS-50
eratosClimate$list_regions(adapter, cordexDomain=["TAS-10","AUS-50"])
# Query for the regions that overlap with lat = 37.452 and lon = 144.271
eratosClimate$list_regions(adapter, lat = 37.452 , lon = 144.271)

Searching Variables

Search variables using the list_variables function which has the following definition:

res = list_variables(
  adapter,
  query='*',
  cordexVariable=None,
)

where,

  • adapter: The Eratos adapter used to perform the query.
  • query: A textual search string to query the available variables against.
  • cordexVariable: The cordex variable code to match against.
  • res_list: A list of Eratos Variable Resources that match the query.

Examples in Python and R are shown below.

# Query for all variables.
eratosClimate.list_variables(adapter)
# Query for 'temperature' variables.
eratosClimate.list_variables(adapter, 'temperature')
# Query for the variable that represents screen temperature (by cordex id).
eratosClimate.list_variables(adapter, cordexVariable="tasmax")
# Query for all variables.
eratosClimate$list_variables(adapter)
# Query for 'temperature' variables.
eratosClimate$list_variables(adapter, "temperature")
# Query for the variable that represents screen temperature (by cordex id).
eratosClimate$list_variables(adapter, cordexVariable="tasmax")

Searching Models

Search models using the list_models function which has the following definition:

res_list = list_models(
  adapter,
  query='*',
  cordexDrivingModelId=None,
)

where,

  • adapter: The Eratos adapter used to perform the query.
  • query: A textual search string to query the available models against.
  • cordexDrivingModelId: The cordex driving model code to match against.
  • res_list: A list of Eratos Variable Resources that match the query.

Examples in Python and R are shown below.

# Query for all models.
eratosClimate.list_models(adapter)
# Query for 'csiro' models.
eratosClimate.list_models(adapter, 'csiro')
# Query for the model that represents MOHC-HadGEM2-CC (by cordex id).
eratosClimate.list_models(adapter, cordexDrivingModelId='MOHC-HadGEM2-CC')
# Query for all models.
eratosClimate$list_models(adapter)
# Query for 'csiro' models.
eratosClimate$list_models(adapter, "csiro")
# Query for the model that represents MOHC-HadGEM2-CC (by cordex id).
eratosClimate$list_models(adapter, cordexDrivingModelId="MOHC-HadGEM2-CC")

Searching Experiments

Search experiments using the list_experiments function which has the following definition:

res = list_experiments(
  adapter,
  query='*',
  cordexExperimentId=None,
)

where,

  • adapter: The Eratos adapter used to perform the query.
  • query: A textual search string to query the available scenarios against.
  • cordexExperimentId: The cordex experiment id to match against.
  • res_list: A list of Eratos Scenario Resources that match the query.

Examples in Python and R are shown below.

# Query for all scenarios.
eratosClimate.list_experiments(adapter)
# Query for the scenario that represents rcp85 (by cordex id).
eratosClimate.list_experiments(adapter, cordexExperimentId='rcp85')
# Query for all scenarios.
eratosClimate$list_scenarios(adapter)
# Query for the scenario that represents rcp85 (by cordex id).
eratosClimate$list_scenarios(adapter, cordexExperimentId="rcp85")

Faceting Datasets

You can facet the datasets using the list_dataset_facets function. Faceting involves determining the number of unique dataset relationships that match a certain query. e.g. How many datasets are linked to a given variable/model/scenario after matching a query. The function has the following definition:

res_list =  list_dataset_block_facets(
  adapter,
  query='*',
  region=None,
  scenario=None,
  experiment=None,
  model=None,
  variable=None,
  temporalFrequency=None,
  lat=None,
  lon=None,
  cordexDomain=None,
  cordexVariable=None,
  cordexModelId=None,
  cordexDrivingModelId=None,
  cordexExperimentId=None,
  cordexFrequency=None,
  cordexDrivingModelEnsembleMember=None,
)

where,

  • adapter: The Eratos adapter used to perform the query.
  • query: A textual search string to query the available datasets against.
  • region: The id (String) or Eratos Resource (Object) of the region resource to match against.
  • scenario: The id (String) or Eratos Resource (Object) of the scenario resource to match against.
  • experiment: The id (String) or Eratos Resource (Object) of the experiment resource to match against.
  • model: The id (String) or Eratos Resource (Object) of the model resource to match against.
  • variable: The id (String) or Eratos Resource (Object) of the variable resource to match against.
  • temporalFrequency: The id (String) or Eratos Resource (Object) of the time period resource to match against.
  • lat: A latitude (Float) to match against. (WGS84)
  • lon: A longitude (Float) to match against. (WGS84)
  • cordexDomain: The cordex variable domain to match against (Mutually exclusive with region).
  • cordexVariable: The cordex variable key to match against (Mutually exclusive with variable).
  • cordexModelId: The cordex model id to match against (Mutually exclusive with experiment).
  • cordexDrivingModelId: The cordex driving model id to match against (Mutually exclusive with model).
  • cordexExperimentId: The cordex experiment id to match against (Mutually exclusive with scenario).
  • cordexFrequency: The cordex frequency key to match against (Mutually exclusive with temporalFrequency).
  • cordexDrivingModelEnsembleMember: The cordex model ensemble member key to match against.
  • A map of dataset properties and count of related ids for each. Note that facets currently return the mapping resultOf=model, resultIs=variable, aggregatePeriod=timePeriod.

Examples in Python and R are shown below.

# Query for all datasets.
eratosClimate.list_dataset_block_facets(adapter)
# Query for the datasets using the search string 'precipitation'
eratosClimate.list_dataset_block_facets(adapter, 'precipitation')
# Query for the datasets matching the cordex variable id 'pr'
eratosClimate.list_dataset_block_facets(adapter, cordexVariable='pr')
# Query for the datasets in the region TAS-10.
region_id = eratosClimate.list_regions(adapter, cordexDomain ='TAS-10')
eratosClimate.list_dataset_block_facets(adapter, region=region_id[0])
# Query for the datasets with the pr, tasmax and tasmin cordex variables at 145.010 -37.826
eratosClimate.list_dataset_blocks(adapter,
  cordexVariable= ['pr','tasmax','tasmin'], lon = 145.010 , lat = -37.826)
# Query for all datasets.
eratosClimate$list_dataset_block_facets(adapter)
# Query for the datasets using the search string 'precipitation'
eratosClimate$list_dataset_block_facets(adapter, 'precipitation')
# Query for the datasets matching the cordex variable id 'pr'
eratosClimate$list_dataset_block_facets(adapter, cordexVariable='pr')
# Query for the datasets in the region TAS-10.
region_id = eratosClimate$list_regions(adapter, cordexDomain ='TAS-10')
eratosClimate$list_dataset_block_facets(adapter, region=region_id[[0]])
# Query for the datasets with the pr, tasmax and tasmin cordex variables at 145.010 -37.826
eratosClimate$list_dataset_blocks(adapter, cordexVariable= ['pr','tasmax','tasmin'], lon = 145.010 , lat = -37.826)

Explore Eratos and the FCDI Space

The above functions highlight the variety of methods the Eratos SDK provides to explore data currently available in Eratos.

Frontend Explorer

The Eratos FCDI Space on our web application allows you to explore data more dynamically and visually, we encourage you to use it to a get feel for what is available or as a sense-check of results returned from the SDK. Note if you cannot see the FCDI Space on the front-end then you will not be able to access the associated data.

Backend Explorer Example

Explore Climate Datasets Recipe