Data descriptors

Contents

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"
   ]
}

field drs_name: str [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field long_name: str [Required][source]#
field name: str [Required][source]#
field type: str [Required][source]#

The data descriptor to which the term belongs.

field url: str | None [Required][source]#
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"
   ]
}

field description: str [Required][source]#
field drs_name: str [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field label: str [Required][source]#
field type: str [Required][source]#

The data descriptor to which the term belongs.

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:

  1. TemporalLabel

  2. VerticalLabel

  3. HorizontalLabel

  4. AreaLabel

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 description: str [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field parts: list[CompositeTermPart] [Required][source]#

The components.

field separator: str [Required][source]#

The components separator character.

field type: str [Required][source]#

The data descriptor to which the term belongs.

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 (see BrandedSuffix).

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 description: str [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field parts: list[CompositeTermPart] [Required][source]#

The components.

field separator: str [Required][source]#

The components separator character.

field type: str [Required][source]#

The data descriptor to which the term belongs.

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"
   ]
}

field changes: str | None [Required][source]#
field description: str = ''[source]#
field drs_name: str [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field members: list[Member] [Optional][source]#
field name: str | None = None[source]#
field status: str | None = None[source]#
field type: str [Required][source]#

The data descriptor to which the term belongs.

field url: str | None [Required][source]#
field validation_method: str = 'list'[source]#
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"
   ]
}

field id: str [Required][source]#

The identifier of the terms.

field regex: str [Required][source]#

The regular expression.

field type: str [Required][source]#

The data descriptor to which the term belongs.

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"
   ]
}

field id: str [Required][source]#

The identifier of the terms.

field regex: str [Required][source]#

The regular expression.

field type: str [Required][source]#

The data descriptor to which the term belongs.

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"
   ]
}

field activity: list[str] [Optional][source]#
field additional_allowed_model_components: list[str] [Optional][source]#
field description: str [Required][source]#
field drs_name: str [Required][source]#
field end_year: int | None [Required][source]#
field experiment: str [Required][source]#
field experiment_id: str [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field min_number_yrs_per_sim: int | None [Required][source]#
field parent_activity_id: list[str] | None [Required][source]#
field parent_experiment_id: list[str] | None [Required][source]#
field required_model_components: list[str] | None [Required][source]#
field start_year: int | None [Required][source]#
field sub_experiment_id: list[str] | None [Required][source]#
field tier: int | None [Required][source]#
field type: str [Required][source]#

The data descriptor to which the term belongs.

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"
   ]
}

field id: str [Required][source]#

The identifier of the terms.

field regex: str [Required][source]#

The regular expression.

field type: str [Required][source]#

The data descriptor to which the term belongs.

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"
   ]
}

field description: str [Required][source]#
field drs_name: str [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field long_name: str [Required][source]#
field name: str [Required][source]#
field type: str [Required][source]#

The data descriptor to which the term belongs.

field unit: str [Required][source]#
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"
   ]
}

field description: str [Required][source]#
field drs_name: str [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field name: str [Required][source]#
field region: str [Required][source]#
field short_name: str [Required][source]#
field type: str [Required][source]#

The data descriptor to which the term belongs.

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"
   ]
}

field description: str [Required][source]#
field drs_name: str [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field label: str [Required][source]#
field type: str [Required][source]#

The data descriptor to which the term belongs.

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"
   ]
}

field id: str [Required][source]#

The identifier of the terms.

field regex: str [Required][source]#

The regular expression.

field type: str [Required][source]#

The data descriptor to which the term belongs.

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"
   ]
}

field acronyms: list[str] [Optional][source]#
field aliases: list[str] [Optional][source]#
field drs_name: str [Required][source]#
field established: int | None [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field labels: list[str] [Optional][source]#
field location: dict [Optional][source]#
field name: str [Required][source]#
field ror: str | None [Required][source]#
field type: str [Required][source]#

The data descriptor to which the term belongs.

field url: list[str] [Optional][source]#
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"
   ]
}

field drs_name: str [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field kind: str [Required][source]#
field license: str | None [Required][source]#
field type: str [Required][source]#

The data descriptor to which the term belongs.

field url: str | None [Required][source]#
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"
   ]
}

field drs_name: str [Required][source]#
field end: int [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field name: str [Required][source]#
field start: int [Required][source]#
field type: str [Required][source]#

The data descriptor to which the term belongs.

field url: str [Required][source]#
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"
   ]
}

field description: str [Required][source]#
field drs_name: str [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field name: str [Required][source]#
field nominal_resolution: dict [Required][source]#
field realm: dict [Required][source]#
field type: str [Required][source]#

The data descriptor to which the term belongs.

field version: int [Required][source]#
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"
   ]
}

field drs_name: str [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field type: str [Required][source]#

The data descriptor to which the term belongs.

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"
   ]
}

field id: str [Required][source]#

The identifier of the terms.

field regex: str [Required][source]#

The regular expression.

field type: str [Required][source]#

The data descriptor to which the term belongs.

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"
   ]
}

field description: str [Required][source]#
field drs_name: str [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field kind: str [Required][source]#
field type: str [Required][source]#

The data descriptor to which the term belongs.

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"
   ]
}

field id: str [Required][source]#

The identifier of the terms.

field regex: str [Required][source]#

The regular expression.

field type: str [Required][source]#

The data descriptor to which the term belongs.

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"
   ]
}

field description: str [Required][source]#
field drs_name: str [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field name: str [Required][source]#
field type: str [Required][source]#

The data descriptor to which the term belongs.

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"
   ]
}

field description: str [Required][source]#
field drs_name: str [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field name: str [Required][source]#
field type: str [Required][source]#

The data descriptor to which the term belongs.

field unit: str [Required][source]#
field value: str [Required][source]#
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"
   ]
}

field activity_participation: list[str] | None [Required][source]#
field cohort: list[str] [Optional][source]#
field drs_name: str [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field label: str [Required][source]#
field label_extended: str | None [Required][source]#
field license: dict [Optional][source]#
field model_component: dict | None [Required][source]#
field organisation_id: list[str] [Optional][source]#
field release_year: int | None [Required][source]#
field type: str [Required][source]#

The data descriptor to which the term belongs.

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"
   ]
}

field description: str [Required][source]#
field drs_name: str [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field type: str [Required][source]#

The data descriptor to which the term belongs.

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"
   ]
}

field description: str [Required][source]#
field drs_name: str [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field type: str [Required][source]#

The data descriptor to which the term belongs.

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"
   ]
}

field drs_name: str [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field product: str | None [Required][source]#
field table_date: str | None [Required][source]#
field type: str [Required][source]#

The data descriptor to which the term belongs.

field variable_entry: list[str] [Optional][source]#
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"
   ]
}

field description: str [Required][source]#
field drs_name: str [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field label: str [Required][source]#
field type: str [Required][source]#

The data descriptor to which the term belongs.

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 description: str [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field parts: list[CompositeTermPart] [Required][source]#

The components.

field separator: str [Required][source]#

The components separator character.

field type: str [Required][source]#

The data descriptor to which the term belongs.

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"
   ]
}

field drs_name: str [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field long_name: str [Required][source]#
field standard_name: str | None [Required][source]#
field type: str [Required][source]#

The data descriptor to which the term belongs.

field units: str | None [Required][source]#
field validation_method: str = 'list'[source]#
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 description: str [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field parts: list[CompositeTermPart] [Required][source]#

The components.

field separator: str [Required][source]#

The components separator character.

field type: str [Required][source]#

The data descriptor to which the term belongs.

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"
   ]
}

field id: str [Required][source]#

The identifier of the terms.

field regex: str [Required][source]#

The regular expression.

field type: str [Required][source]#

The data descriptor to which the term belongs.

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 id: str [Required][source]#

The identifier of the terms.

field parts: list[CompositeTermPart] [Required][source]#

The components.

field separator: str [Required][source]#

The components separator character.

field type: str [Required][source]#

The data descriptor to which the term belongs.

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"
   ]
}

field id: str [Required][source]#

The id of the referenced term.

field is_required: bool [Required][source]#

Denote if the term is optional as part of a composite term.

field type: str [Required][source]#

The type of the referenced term.

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"
   ]
}

field id: str [Required][source]#

The identifier of the terms.

field type: str [Required][source]#

The data descriptor to which the term belongs.

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"
   ]
}

field id: str [Required][source]#

The identifier of the terms.

field type: str [Required][source]#

The data descriptor to which the term belongs.

accept(visitor: DataDescriptorVisitor) Any[source]#

Accept an term visitor.

Parameters:

visitor (DataDescriptorVisitor) – The term visitor.

Returns:

Depending on the visitor.

Return type:

Any

MANDATORY_TERM_FIELDS: ClassVar[tuple[str, str]] = ('id', 'type')[source]#

The set of mandatory term fields.

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"
   ]
}

field id: str [Required][source]#

The identifier of the terms.

field regex: str [Required][source]#

The regular expression.

field type: str [Required][source]#

The data descriptor to which the term belongs.

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"
   ]
}

field drs_name: str [Required][source]#
field id: str [Required][source]#

The identifier of the terms.

field type: str [Required][source]#

The data descriptor to which the term belongs.

accept(visitor: DataDescriptorVisitor) Any[source]#

Accept an term visitor.

Parameters:

visitor (DataDescriptorVisitor) – The term visitor.

Returns:

Depending on the visitor.

Return type:

Any