Source code for openeo_udf.server.data_model.simple_feature_collection_schema

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

from pydantic import BaseModel, Schema as Field

from openeo_udf.server.data_model.bounding_box_schema import SpatialBoundingBoxModel

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


[docs]class SimpleFeatureModel(BaseModel): """A simple feature definition that may contain (multi)points, (multi)lines or (multi)polygons""" type: str = Field(..., description="The type of the simple feature: Point, LineString, " "Polygon, MultiPoint, MultiLine, MultiPolygon.") predecessors: List[int] = Field(None, description="A list of predecessors from which this feature was created.") geometry: int = Field(..., description="The index of a geometry from the geometry collection.") variable: List[int] = Field(None, description="The index of the assigned " "field collection and the value/label index.") timestamp: int = Field(None, description="The index of the assigned timestamp.")
[docs]class SimpleFeatureCollectionModel(BaseModel): """Simple feature collection: (multi)points, (multi)lines or (multi)polygons""" name: str = Field(..., description="The unique name of the simple feature collection." " Allowed characters [a-z][A-Z][0-9][_].", examples=[{"name": "borders_1984"}]) description: str = Field(None, description="Description.") number_of_features: int = Field(..., description="The number of features.") bbox: SpatialBoundingBoxModel = Field(..., description="The bounding box of all features.") reference_system: Union[str, int, Dict] = Field(None, description="The definition of the spatial reference system. If an " "integer was provided it will be interpreted " "as EPSG code. If a string was provided it will " "be interpreted as WKT2 definition. In case of a " "dictionary object, PROJSON is expected. " "The definition is identical to the dimension srs") features: List[SimpleFeatureModel] = Field(..., description="A list of features.")