Source code for openeo_udf.server.data_model.data_collection_schema

# -*- coding: utf-8 -*-
from typing import List, Union, Tuple

from pydantic import BaseModel, Schema as Field

from openeo_udf.server.data_model.datacube_schema import DataCubeModel
from openeo_udf.server.data_model.variables_collection_schema import VariablesCollectionModel
from openeo_udf.server.data_model.metadata_schema import MetadataModel
from openeo_udf.server.data_model.simple_feature_collection_schema import SimpleFeatureCollectionModel

__license__ = "Apache License, Version 2.0"
__author__ = "Soeren Gebbert"
__copyright__ = "Copyright 2018, Soeren Gebbert"
__maintainer__ = "Soeren Gebbert"
__email__ = "soerengebbert@googlemail.com"


[docs]class TimeStampsModel(BaseModel): """The time stamps of the data collections""" intervals: List[Tuple[str, Union[str, None]]] = Field(..., description="A list of timestamp tuples as strings. " "Here start and end time can be specified. " "If only the start time is given, then the " "end time can be None.") calendar: str = Field(None, description="The definition of the temporal reference system of " "the time stamps. Either the gregorian or julian calendar.")
[docs]class ObjectCollectionModel(BaseModel): """Object collection that contains data cubes and simple feature collections""" data_cubes: List[DataCubeModel] = Field(None, description="A list of data cubes") simple_feature_collections: List[SimpleFeatureCollectionModel] = Field(None, description="A list of simple " "features collections")
[docs]class DataCollectionModel(BaseModel): """Data collection""" type: str = "DataCollection" metadata: MetadataModel = Field(..., description="The metadata object for the data collection") object_collections: ObjectCollectionModel = Field(..., description="A collection of different " "data objects like data cubes and feature collections") geometry_collection: List[str] = Field(..., description="A list of WKT geometry strings that are referenced by the " "objects in the object collection.") variables_collections: List[VariablesCollectionModel] = Field(..., description="A list of variable collections") timestamps: TimeStampsModel = Field(..., description="The time stamps of the data collection, that can be references " "by each object (feature, cube, ...).")