Data descriptors#
Data descriptors#
- Pydantic model esgvoc.api.data_descriptors.Activity[source]#
Bases:
PlainTermDataDescriptor
An ‘activity’ refers to a coordinated set of modeling experiments designed to address specific scientific questions or objectives. Each activity is focused on different aspects of climate science and utilizes various models to study a wide range of climate phenomena. Activities are often organized around key research themes and may involve multiple experiments, scenarios, and model configurations.
Show JSON schema
{ "title": "Activity", "description": "An 'activity' refers to a coordinated set of modeling experiments designed to address specific scientific questions or objectives. Each activity is focused on different aspects of climate science and utilizes various models to study a wide range of climate phenomena. Activities are often organized around key research themes and may involve multiple experiments, scenarios, and model configurations.", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "drs_name": { "title": "Drs Name", "type": "string" }, "name": { "title": "Name", "type": "string" }, "long_name": { "title": "Long Name", "type": "string" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Url" } }, "additionalProperties": true, "required": [ "id", "type", "drs_name", "name", "long_name", "url" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.AreaLabel[source]#
Bases:
PlainTermDataDescriptor
Area sampling label.
This label provides information about the area sampling of a given dataset. For a list of allowed values, see [TODO think about how to cross-reference to somewhere where people can look up the allowed values, e.g. some summary of the values in WCRP-CMIP/WCRP-universe.]
This label is used as the area component of a branded variable’s suffix (see
BrandedSuffix
). By definition, the area label must be consistent with the branded suffix. area labels must not contain dashes (as the dash is used as a separator when constructing the branded suffix).Show JSON schema
{ "title": "AreaLabel", "description": "Area sampling label.\n\nThis label provides information about the area sampling of a given dataset.\nFor a list of allowed values, see\n[TODO think about how to cross-reference to somewhere where people can look up the allowed values,\ne.g. some summary of the values in https://github.com/WCRP-CMIP/WCRP-universe/tree/esgvoc/area_label.]\n\nThis label is used as the area component of a branded variable's suffix\n(see :py:class:`BrandedSuffix`).\nBy definition, the area label must be consistent with the branded suffix.\narea labels must not contain dashes\n(as the dash is used as a separator when constructing the branded suffix).", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "drs_name": { "title": "Drs Name", "type": "string" }, "description": { "title": "Description", "type": "string" }, "label": { "title": "Label", "type": "string" } }, "additionalProperties": true, "required": [ "id", "type", "drs_name", "description", "label" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.BrandedSuffix[source]#
Bases:
CompositeTermDataDescriptor
The suffix of a branded variable.
A branded variable is composed of two parts. The first part is the root variable (see [TODO cross-ref to Variable]). The second is the suffix, i.e. the component described here. The suffix captures all the information about the time sampling, horizontal sampling, vertical sampling and area masking of the variable.
The suffix is composed of the following components:
These components are separated by a separator to create the branded suffix.
Show JSON schema
{ "title": "BrandedSuffix", "description": "The suffix of a branded variable.\n\nA branded variable is composed of two parts.\nThe first part is the root variable (see [TODO cross-ref to Variable]).\nThe second is the suffix, i.e. the component described here.\nThe suffix captures all the information\nabout the time sampling, horizontal sampling, vertical sampling\nand area masking of the variable.\n\nThe suffix is composed of the following components:\n\n#. :py:class:`TemporalLabel`\n#. :py:class:`VerticalLabel`\n#. :py:class:`HorizontalLabel`\n#. :py:class:`AreaLabel`\n\nThese components are separated by a separator to create the branded suffix.", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "separator": { "title": "Separator", "type": "string" }, "parts": { "items": { "$ref": "#/$defs/CompositeTermPart" }, "title": "Parts", "type": "array" }, "description": { "title": "Description", "type": "string" } }, "$defs": { "CompositeTermPart": { "additionalProperties": true, "description": "A reference to a term, part of a composite term.", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "is_required": { "title": "Is Required", "type": "boolean" } }, "required": [ "id", "type", "is_required" ], "title": "CompositeTermPart", "type": "object" } }, "additionalProperties": true, "required": [ "id", "type", "separator", "parts", "description" ] }
- field parts: list[CompositeTermPart] [Required][source]#
The components.
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.BrandedVariable[source]#
Bases:
CompositeTermDataDescriptor
A climate-related quantity or measurement, including information about sampling.
The concept of a branded variable was introduced in CMIP7. A branded variable is composed of two parts. The first part is the root variable (see
Variable
). The second is the suffix (seeBrandedSuffix
).For further details on the development of branded variables, see [this paper draft](https://docs.google.com/document/d/19jzecgymgiiEsTDzaaqeLP6pTvLT-NzCMaq-wu-QoOc/edit?pli=1&tab=t.0).
Show JSON schema
{ "title": "BrandedVariable", "description": "A climate-related quantity or measurement, including information about sampling.\n\nThe concept of a branded variable was introduced in CMIP7.\nA branded variable is composed of two parts.\nThe first part is the root variable (see :py:class:`Variable`).\nThe second is the suffix (see :py:class:`BrandedSuffix`).\n\nFor further details on the development of branded variables,\nsee [this paper draft](https://docs.google.com/document/d/19jzecgymgiiEsTDzaaqeLP6pTvLT-NzCMaq-wu-QoOc/edit?pli=1&tab=t.0).", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "separator": { "title": "Separator", "type": "string" }, "parts": { "items": { "$ref": "#/$defs/CompositeTermPart" }, "title": "Parts", "type": "array" }, "description": { "title": "Description", "type": "string" } }, "$defs": { "CompositeTermPart": { "additionalProperties": true, "description": "A reference to a term, part of a composite term.", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "is_required": { "title": "Is Required", "type": "boolean" } }, "required": [ "id", "type", "is_required" ], "title": "CompositeTermPart", "type": "object" } }, "additionalProperties": true, "required": [ "id", "type", "separator", "parts", "description" ] }
- field parts: list[CompositeTermPart] [Required][source]#
The components.
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.Consortium[source]#
Bases:
PlainTermDataDescriptor
Show JSON schema
{ "title": "Consortium", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "drs_name": { "title": "Drs Name", "type": "string" }, "validation_method": { "default": "list", "title": "Validation Method", "type": "string" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Name" }, "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Status" }, "changes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Changes" }, "members": { "items": { "$ref": "#/$defs/Member" }, "title": "Members", "type": "array" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Url" }, "description": { "default": "", "title": "Description", "type": "string" } }, "$defs": { "Dates": { "additionalProperties": true, "properties": { "phase": { "title": "Phase", "type": "string" }, "from": { "title": "From", "type": "integer" }, "to": { "anyOf": [ { "type": "integer" }, { "type": "string" } ], "title": "To" } }, "required": [ "phase", "from", "to" ], "title": "Dates", "type": "object" }, "Member": { "additionalProperties": true, "properties": { "type": { "title": "Type", "type": "string" }, "institution": { "title": "Institution", "type": "string" }, "dates": { "items": { "$ref": "#/$defs/Dates" }, "title": "Dates", "type": "array" }, "membership_type": { "title": "Membership Type", "type": "string" } }, "required": [ "type", "institution", "membership_type" ], "title": "Member", "type": "object" } }, "additionalProperties": true, "required": [ "id", "type", "drs_name", "changes", "url" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.Date[source]#
Bases:
PatternTermDataDescriptor
Show JSON schema
{ "title": "Date", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "regex": { "title": "Regex", "type": "string" } }, "additionalProperties": true, "required": [ "id", "type", "regex" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.DirectoryDate[source]#
Bases:
PatternTermDataDescriptor
Show JSON schema
{ "title": "DirectoryDate", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "regex": { "title": "Regex", "type": "string" } }, "additionalProperties": true, "required": [ "id", "type", "regex" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.Experiment[source]#
Bases:
PlainTermDataDescriptor
An ‘experiment’ refers to a specific, controlled simulation conducted using climate models to investigate particular aspects of the Earth’s climate system. These experiments are designed with set parameters, such as initial conditions, external forcings (like greenhouse gas concentrations or solar radiation), and duration, to explore and understand climate behavior under various scenarios and conditions.
Show JSON schema
{ "title": "Experiment", "description": "An 'experiment' refers to a specific, controlled simulation conducted using climate models to investigate particular aspects of the Earth's climate system. These experiments are designed with set parameters, such as initial conditions, external forcings (like greenhouse gas concentrations or solar radiation), and duration, to explore and understand climate behavior under various scenarios and conditions.", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "drs_name": { "title": "Drs Name", "type": "string" }, "activity": { "items": { "type": "string" }, "title": "Activity", "type": "array" }, "description": { "title": "Description", "type": "string" }, "tier": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tier" }, "experiment_id": { "title": "Experiment Id", "type": "string" }, "sub_experiment_id": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Sub Experiment Id" }, "experiment": { "title": "Experiment", "type": "string" }, "required_model_components": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Required Model Components" }, "additional_allowed_model_components": { "items": { "type": "string" }, "title": "Additional Allowed Model Components", "type": "array" }, "start_year": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Start Year" }, "end_year": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "End Year" }, "min_number_yrs_per_sim": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Min Number Yrs Per Sim" }, "parent_activity_id": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Parent Activity Id" }, "parent_experiment_id": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Parent Experiment Id" } }, "additionalProperties": true, "required": [ "id", "type", "drs_name", "description", "tier", "experiment_id", "sub_experiment_id", "experiment", "required_model_components", "start_year", "end_year", "min_number_yrs_per_sim", "parent_activity_id", "parent_experiment_id" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.ForcingIndex[source]#
Bases:
PatternTermDataDescriptor
Show JSON schema
{ "title": "ForcingIndex", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "regex": { "title": "Regex", "type": "string" } }, "additionalProperties": true, "required": [ "id", "type", "regex" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.Frequency[source]#
Bases:
PlainTermDataDescriptor
Show JSON schema
{ "title": "Frequency", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "drs_name": { "title": "Drs Name", "type": "string" }, "description": { "title": "Description", "type": "string" }, "long_name": { "title": "Long Name", "type": "string" }, "name": { "title": "Name", "type": "string" }, "unit": { "title": "Unit", "type": "string" } }, "additionalProperties": true, "required": [ "id", "type", "drs_name", "description", "long_name", "name", "unit" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.GridLabel[source]#
Bases:
PlainTermDataDescriptor
Show JSON schema
{ "title": "GridLabel", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "drs_name": { "title": "Drs Name", "type": "string" }, "description": { "title": "Description", "type": "string" }, "short_name": { "title": "Short Name", "type": "string" }, "name": { "title": "Name", "type": "string" }, "region": { "title": "Region", "type": "string" } }, "additionalProperties": true, "required": [ "id", "type", "drs_name", "description", "short_name", "name", "region" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.HorizontalLabel[source]#
Bases:
PlainTermDataDescriptor
Horizontal sampling label.
This label provides information about the horizontal sampling of a given dataset. For a list of allowed values, see [TODO think about how to cross-reference to somewhere where people can look up the allowed values, e.g. some summary of the values in WCRP-CMIP/WCRP-universe.]
This label is used as the horizontal component of a branded variable’s suffix (see
BrandedSuffix
). By definition, the horizontal label must be consistent with the branded suffix. Horizontal labels must not contain the separator used when constructing the branded suffix.Show JSON schema
{ "title": "HorizontalLabel", "description": "Horizontal sampling label.\n\nThis label provides information about the horizontal sampling of a given dataset.\nFor a list of allowed values, see\n[TODO think about how to cross-reference to somewhere where people can look up the allowed values,\ne.g. some summary of the values in https://github.com/WCRP-CMIP/WCRP-universe/tree/esgvoc/horizontal_label.]\n\nThis label is used as the horizontal component of a branded variable's suffix\n(see :py:class:`BrandedSuffix`).\nBy definition, the horizontal label must be consistent with the branded suffix.\nHorizontal labels must not contain the separator used when constructing the branded suffix.", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "drs_name": { "title": "Drs Name", "type": "string" }, "description": { "title": "Description", "type": "string" }, "label": { "title": "Label", "type": "string" } }, "additionalProperties": true, "required": [ "id", "type", "drs_name", "description", "label" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.InitialisationIndex[source]#
Bases:
PatternTermDataDescriptor
Show JSON schema
{ "title": "InitialisationIndex", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "regex": { "title": "Regex", "type": "string" } }, "additionalProperties": true, "required": [ "id", "type", "regex" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.Institution[source]#
Bases:
PlainTermDataDescriptor
An registered institution for WCRP modelisation MIP.
Show JSON schema
{ "title": "Institution", "description": "An registered institution for WCRP modelisation MIP.", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "drs_name": { "title": "Drs Name", "type": "string" }, "acronyms": { "items": { "type": "string" }, "title": "Acronyms", "type": "array" }, "aliases": { "items": { "type": "string" }, "title": "Aliases", "type": "array" }, "established": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Established" }, "labels": { "items": { "type": "string" }, "title": "Labels", "type": "array" }, "location": { "additionalProperties": true, "title": "Location", "type": "object" }, "name": { "title": "Name", "type": "string" }, "ror": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Ror" }, "url": { "items": { "type": "string" }, "title": "Url", "type": "array" } }, "additionalProperties": true, "required": [ "id", "type", "drs_name", "established", "name", "ror" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.License[source]#
Bases:
PlainTermDataDescriptor
Show JSON schema
{ "title": "License", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "drs_name": { "title": "Drs Name", "type": "string" }, "kind": { "title": "Kind", "type": "string" }, "license": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "License" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Url" } }, "additionalProperties": true, "required": [ "id", "type", "drs_name", "kind", "license", "url" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.MipEra[source]#
Bases:
PlainTermDataDescriptor
Show JSON schema
{ "title": "MipEra", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "drs_name": { "title": "Drs Name", "type": "string" }, "start": { "title": "Start", "type": "integer" }, "end": { "title": "End", "type": "integer" }, "name": { "title": "Name", "type": "string" }, "url": { "title": "Url", "type": "string" } }, "additionalProperties": true, "required": [ "id", "type", "drs_name", "start", "end", "name", "url" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.ModelComponent[source]#
Bases:
PlainTermDataDescriptor
Show JSON schema
{ "title": "ModelComponent", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "drs_name": { "title": "Drs Name", "type": "string" }, "description": { "title": "Description", "type": "string" }, "name": { "title": "Name", "type": "string" }, "realm": { "additionalProperties": true, "title": "Realm", "type": "object" }, "nominal_resolution": { "additionalProperties": true, "title": "Nominal Resolution", "type": "object" }, "version": { "title": "Version", "type": "integer" } }, "additionalProperties": true, "required": [ "id", "type", "drs_name", "description", "name", "realm", "nominal_resolution", "version" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.Organisation[source]#
Bases:
PlainTermDataDescriptor
Show JSON schema
{ "title": "Organisation", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "drs_name": { "title": "Drs Name", "type": "string" } }, "additionalProperties": true, "required": [ "id", "type", "drs_name" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.PhysicIndex[source]#
Bases:
PatternTermDataDescriptor
Show JSON schema
{ "title": "PhysicIndex", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "regex": { "title": "Regex", "type": "string" } }, "additionalProperties": true, "required": [ "id", "type", "regex" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.Product[source]#
Bases:
PlainTermDataDescriptor
Show JSON schema
{ "title": "Product", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "drs_name": { "title": "Drs Name", "type": "string" }, "description": { "title": "Description", "type": "string" }, "kind": { "title": "Kind", "type": "string" } }, "additionalProperties": true, "required": [ "id", "type", "drs_name", "description", "kind" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.RealisationIndex[source]#
Bases:
PatternTermDataDescriptor
Show JSON schema
{ "title": "RealisationIndex", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "regex": { "title": "Regex", "type": "string" } }, "additionalProperties": true, "required": [ "id", "type", "regex" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.Realm[source]#
Bases:
PlainTermDataDescriptor
Show JSON schema
{ "title": "Realm", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "drs_name": { "title": "Drs Name", "type": "string" }, "description": { "title": "Description", "type": "string" }, "name": { "title": "Name", "type": "string" } }, "additionalProperties": true, "required": [ "id", "type", "drs_name", "description", "name" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.Resolution[source]#
Bases:
PlainTermDataDescriptor
Show JSON schema
{ "title": "Resolution", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "drs_name": { "title": "Drs Name", "type": "string" }, "description": { "title": "Description", "type": "string" }, "value": { "title": "Value", "type": "string" }, "name": { "title": "Name", "type": "string" }, "unit": { "title": "Unit", "type": "string" } }, "additionalProperties": true, "required": [ "id", "type", "drs_name", "description", "value", "name", "unit" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.Source[source]#
Bases:
PlainTermDataDescriptor
A ‘source’ refers to a numerical representations of the Earth’s climate system. They simulate the interactions between the atmosphere, oceans, land surface, and ice. These models are based on fundamental physical, chemical, and biological processes and are used to understand past, present, and future climate conditions. Each source or model is typically associated with a specific research institution, center, or group. For instance, models like ‘EC-Earth’ are developed by a consortium of European institutes, while ‘GFDL-CM4’ is developed by the Geophysical Fluid Dynamics Laboratory (GFDL) in the United States.
Show JSON schema
{ "title": "Source", "description": "A 'source' refers to a numerical representations of the Earth's climate system. They simulate the interactions between the atmosphere, oceans, land surface, and ice. These models are based on fundamental physical, chemical, and biological processes and are used to understand past, present, and future climate conditions. Each source or model is typically associated with a specific research institution, center, or group. For instance, models like 'EC-Earth' are developed by a consortium of European institutes, while 'GFDL-CM4' is developed by the Geophysical Fluid Dynamics Laboratory (GFDL) in the United States.", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "drs_name": { "title": "Drs Name", "type": "string" }, "activity_participation": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Activity Participation" }, "cohort": { "items": { "type": "string" }, "title": "Cohort", "type": "array" }, "organisation_id": { "items": { "type": "string" }, "title": "Organisation Id", "type": "array" }, "label": { "title": "Label", "type": "string" }, "label_extended": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Label Extended" }, "license": { "additionalProperties": true, "title": "License", "type": "object" }, "model_component": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Component" }, "release_year": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Release Year" } }, "additionalProperties": true, "required": [ "id", "type", "drs_name", "activity_participation", "label", "label_extended", "model_component", "release_year" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.SourceType[source]#
Bases:
PlainTermDataDescriptor
Show JSON schema
{ "title": "SourceType", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "drs_name": { "title": "Drs Name", "type": "string" }, "description": { "title": "Description", "type": "string" } }, "additionalProperties": true, "required": [ "id", "type", "drs_name", "description" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.SubExperiment[source]#
Bases:
PlainTermDataDescriptor
Show JSON schema
{ "title": "SubExperiment", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "drs_name": { "title": "Drs Name", "type": "string" }, "description": { "title": "Description", "type": "string" } }, "additionalProperties": true, "required": [ "id", "type", "drs_name", "description" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.Table[source]#
Bases:
PlainTermDataDescriptor
Show JSON schema
{ "title": "Table", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "drs_name": { "title": "Drs Name", "type": "string" }, "product": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Product" }, "table_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Table Date" }, "variable_entry": { "items": { "type": "string" }, "title": "Variable Entry", "type": "array" } }, "additionalProperties": true, "required": [ "id", "type", "drs_name", "product", "table_date" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.TemporalLabel[source]#
Bases:
PlainTermDataDescriptor
Temporal sampling label.
This label provides information about the temporal sampling of a given dataset. For a list of allowed values, see [TODO think about how to cross-reference to somewhere where people can look up the allowed values, e.g. some summary of the values in WCRP-CMIP/WCRP-universe.]
This label is used as the temporal component of a branded variable’s suffix (see
BrandedSuffix
). By definition, the temporal label must be consistent with the branded suffix. Temporal labels must not contain the separator used when constructing the branded suffix.Show JSON schema
{ "title": "TemporalLabel", "description": "Temporal sampling label.\n\nThis label provides information about the temporal sampling of a given dataset.\nFor a list of allowed values, see\n[TODO think about how to cross-reference to somewhere where people can look up the allowed values,\ne.g. some summary of the values in https://github.com/WCRP-CMIP/WCRP-universe/tree/esgvoc/temporal_label.]\n\nThis label is used as the temporal component of a branded variable's suffix\n(see :py:class:`BrandedSuffix`).\nBy definition, the temporal label must be consistent with the branded suffix.\nTemporal labels must not contain the separator used when constructing the branded suffix.", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "drs_name": { "title": "Drs Name", "type": "string" }, "description": { "title": "Description", "type": "string" }, "label": { "title": "Label", "type": "string" } }, "additionalProperties": true, "required": [ "id", "type", "drs_name", "description", "label" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.TimeRange[source]#
Bases:
CompositeTermDataDescriptor
Show JSON schema
{ "title": "TimeRange", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "separator": { "title": "Separator", "type": "string" }, "parts": { "items": { "$ref": "#/$defs/CompositeTermPart" }, "title": "Parts", "type": "array" }, "description": { "title": "Description", "type": "string" } }, "$defs": { "CompositeTermPart": { "additionalProperties": true, "description": "A reference to a term, part of a composite term.", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "is_required": { "title": "Is Required", "type": "boolean" } }, "required": [ "id", "type", "is_required" ], "title": "CompositeTermPart", "type": "object" } }, "additionalProperties": true, "required": [ "id", "type", "separator", "parts", "description" ] }
- field parts: list[CompositeTermPart] [Required][source]#
The components.
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.Variable[source]#
Bases:
PlainTermDataDescriptor
A climate-related quantity or measurement.
These quantities represent key physical, chemical or biological properties of the Earth system and can be the result of direct observation of the climate system or simulations. Variables cover a range of aspects of the climate system, such as temperature, precipitation, sea level, radiation, or atmospheric composition. Some examples of variables that have been used in CMIP:
tas: Near-surface air temperature (often measured at 2 meters above the surface)
pr: Precipitation
psl: Sea-level pressure
zg: Geopotential height
rlut: Top-of-atmosphere longwave radiation
siconc: Sea-ice concentration
co2: Atmospheric CO2 concentration
Since CMIP7, the concept of a variable has been augmented with the idea of ‘branding’, leading to the idea of a ‘branded variable’. For details, see
BrandedVariable
.Show JSON schema
{ "title": "Variable", "description": "A climate-related quantity or measurement.\n\nThese quantities represent key physical, chemical or biological properties of the Earth system\nand can be the result of direct observation of the climate system or simulations.\nVariables cover a range of aspects of the climate system,\nsuch as temperature, precipitation, sea level, radiation, or atmospheric composition.\nSome examples of variables that have been used in CMIP:\n\n- *tas*: Near-surface air temperature (often measured at 2 meters above the surface)\n- *pr*: Precipitation\n- *psl*: Sea-level pressure\n- *zg*: Geopotential height\n- *rlut*: Top-of-atmosphere longwave radiation\n- *siconc*: Sea-ice concentration\n- *co2*: Atmospheric CO2 concentration\n\nSince CMIP7, the concept of a variable has been augmented with the idea of 'branding',\nleading to the idea of a 'branded variable'.\nFor details, see :py:class:`BrandedVariable`.", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "drs_name": { "title": "Drs Name", "type": "string" }, "validation_method": { "default": "list", "title": "Validation Method", "type": "string" }, "long_name": { "title": "Long Name", "type": "string" }, "standard_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Standard Name" }, "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Units" } }, "additionalProperties": true, "required": [ "id", "type", "drs_name", "long_name", "standard_name", "units" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.VariantLabel[source]#
Bases:
CompositeTermDataDescriptor
Show JSON schema
{ "title": "VariantLabel", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "separator": { "title": "Separator", "type": "string" }, "parts": { "items": { "$ref": "#/$defs/CompositeTermPart" }, "title": "Parts", "type": "array" }, "description": { "title": "Description", "type": "string" } }, "$defs": { "CompositeTermPart": { "additionalProperties": true, "description": "A reference to a term, part of a composite term.", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "is_required": { "title": "Is Required", "type": "boolean" } }, "required": [ "id", "type", "is_required" ], "title": "CompositeTermPart", "type": "object" } }, "additionalProperties": true, "required": [ "id", "type", "separator", "parts", "description" ] }
- field parts: list[CompositeTermPart] [Required][source]#
The components.
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.VerticalLabel[source]#
Bases:
PatternTermDataDescriptor
Vertical label.
This label provides information about the vertical sampling of a given dataset. For a list of allowed values, see [TODO think about how to cross-reference to somewhere where people can look up the allowed values, e.g. some summary of the values in WCRP-CMIP/WCRP-universe.]
This label is used as the vertical component of a branded variable’s suffix (see
BrandedSuffix
). By definition, the vertical label must be consistent with the branded suffix. Vertical labels must not contain the separator used when constructing the branded suffix.Show JSON schema
{ "title": "VerticalLabel", "description": "Vertical label.\n\nThis label provides information about the vertical sampling of a given dataset.\nFor a list of allowed values, see\n[TODO think about how to cross-reference to somewhere where people can look up the allowed values,\ne.g. some summary of the values in https://github.com/WCRP-CMIP/WCRP-universe/tree/esgvoc/vertical_label.]\n\nThis label is used as the vertical component of a branded variable's suffix\n(see :py:class:`BrandedSuffix`).\nBy definition, the vertical label must be consistent with the branded suffix.\nVertical labels must not contain the separator used when constructing the branded suffix.", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "regex": { "title": "Regex", "type": "string" } }, "additionalProperties": true, "required": [ "id", "type", "regex" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
Generic classes#
- Pydantic model esgvoc.api.data_descriptors.data_descriptor.CompositeTermDataDescriptor[source]#
Bases:
DataDescriptor
A data descriptor that describes terms composed of other terms.
Show JSON schema
{ "title": "CompositeTermDataDescriptor", "description": "A data descriptor that describes terms composed of other terms.", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "separator": { "title": "Separator", "type": "string" }, "parts": { "items": { "$ref": "#/$defs/CompositeTermPart" }, "title": "Parts", "type": "array" } }, "$defs": { "CompositeTermPart": { "additionalProperties": true, "description": "A reference to a term, part of a composite term.", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "is_required": { "title": "Is Required", "type": "boolean" } }, "required": [ "id", "type", "is_required" ], "title": "CompositeTermPart", "type": "object" } }, "additionalProperties": true, "required": [ "id", "type", "separator", "parts" ] }
- field parts: list[CompositeTermPart] [Required][source]#
The components.
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.data_descriptor.CompositeTermPart[source]#
Bases:
ConfiguredBaseModel
A reference to a term, part of a composite term.
Show JSON schema
{ "title": "CompositeTermPart", "description": "A reference to a term, part of a composite term.", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "is_required": { "title": "Is Required", "type": "boolean" } }, "additionalProperties": true, "required": [ "id", "type", "is_required" ] }
- Pydantic model esgvoc.api.data_descriptors.data_descriptor.ConfiguredBaseModel[source]#
Bases:
BaseModel
Show JSON schema
{ "title": "ConfiguredBaseModel", "type": "object", "properties": {}, "additionalProperties": true }
- Pydantic model esgvoc.api.data_descriptors.data_descriptor.DataDescriptor[source]#
Bases:
ConfiguredBaseModel
,ABC
Generic class for the data descriptor classes.
Show JSON schema
{ "title": "DataDescriptor", "description": "Generic class for the data descriptor classes.", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" } }, "additionalProperties": true, "required": [ "id", "type" ] }
- abstractmethod accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.data_descriptor.DataDescriptorSubSet[source]#
Bases:
DataDescriptor
A sub set of the information contains in a term.
Show JSON schema
{ "title": "DataDescriptorSubSet", "description": "A sub set of the information contains in a term.", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" } }, "additionalProperties": true, "required": [ "id", "type" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- class esgvoc.api.data_descriptors.data_descriptor.DataDescriptorVisitor(*args, **kwargs)[source]#
Bases:
Protocol
The specifications for a term visitor.
- visit_composite_term(term: CompositeTermDataDescriptor) Any [source]#
Visit a composite term.
- visit_pattern_term(term: PatternTermDataDescriptor) Any [source]#
Visit a pattern term.
- visit_plain_term(term: PlainTermDataDescriptor) Any [source]#
Visit a plain term.
- visit_sub_set_term(term: DataDescriptorSubSet) Any [source]#
Visit a sub set of the information of a term.
- Pydantic model esgvoc.api.data_descriptors.data_descriptor.PatternTermDataDescriptor[source]#
Bases:
DataDescriptor
A data descriptor that describes terms defined by a regular expression.
Show JSON schema
{ "title": "PatternTermDataDescriptor", "description": "A data descriptor that describes terms defined by a regular expression.", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "regex": { "title": "Regex", "type": "string" } }, "additionalProperties": true, "required": [ "id", "type", "regex" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any
- Pydantic model esgvoc.api.data_descriptors.data_descriptor.PlainTermDataDescriptor[source]#
Bases:
DataDescriptor
A data descriptor that describes hand written terms.
Show JSON schema
{ "title": "PlainTermDataDescriptor", "description": "A data descriptor that describes hand written terms.", "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "type": { "title": "Type", "type": "string" }, "drs_name": { "title": "Drs Name", "type": "string" } }, "additionalProperties": true, "required": [ "id", "type", "drs_name" ] }
- accept(visitor: DataDescriptorVisitor) Any [source]#
Accept an term visitor.
- Parameters:
visitor (DataDescriptorVisitor) – The term visitor.
- Returns:
Depending on the visitor.
- Return type:
Any