oceanum.datamesh.Query

pydantic model oceanum.datamesh.Query[source]

Datamesh query

Show JSON schema
{
   "title": "Query",
   "description": "Datamesh query",
   "type": "object",
   "properties": {
      "datasource": {
         "title": "The id of the datasource",
         "description": "Datasource ID",
         "type": "string"
      },
      "parameters": {
         "title": "Datasource parameters",
         "description": "Dictionary of driver parameters to pass to datasource",
         "default": {},
         "type": "object"
      },
      "description": {
         "title": "Optional description of this query",
         "description": "Human readable description of this query",
         "type": "string"
      },
      "variables": {
         "title": "List of selected variables",
         "description": "List of requested variables.",
         "type": "array",
         "items": {
            "type": "string"
         }
      },
      "timefilter": {
         "title": "Time filter",
         "description": "Temporal filter or interplator",
         "allOf": [
            {
               "$ref": "#/definitions/TimeFilter"
            }
         ]
      },
      "geofilter": {
         "title": "Spatial filter or interpolator",
         "allOf": [
            {
               "$ref": "#/definitions/GeoFilter"
            }
         ]
      },
      "crs": {
         "title": "Spatial reference for filter and output",
         "description": "Valid CRS string for returned data",
         "default": "EPSG:4326",
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "integer"
            }
         ]
      }
   },
   "required": [
      "datasource"
   ],
   "definitions": {
      "TimeFilterType": {
         "title": "TimeFilterType",
         "description": "An enumeration.",
         "enum": [
            "range"
         ],
         "type": "string"
      },
      "ResampleType": {
         "title": "ResampleType",
         "description": "An enumeration.",
         "enum": [
            "mean"
         ],
         "type": "string"
      },
      "TimeFilter": {
         "title": "TimeFilter",
         "description": "TimeFilter class\nDescribes a temporal subset or interpolation",
         "type": "object",
         "properties": {
            "type": {
               "title": "Timefilter type",
               "description": "\n        Type of the timefilter. Can be one of:\n            - 'range': Select times within a range\n        ",
               "default": "range",
               "allOf": [
                  {
                     "$ref": "#/definitions/TimeFilterType"
                  }
               ]
            },
            "times": {
               "title": "Selection times",
               "description": "\n            - For type='range', [timestart, tend].\n        ",
               "type": "array",
               "items": {
                  "type": "string",
                  "format": "date-time"
               }
            },
            "resolution": {
               "title": "Temporal resolution of data",
               "description": "Maximum resolution of the data for temporal downsampling. Only valid with range type",
               "default": "native",
               "type": "string"
            },
            "resample": {
               "title": "Temporal resampling method",
               "description": "Resampling method applied when reducing tempral resolution. Only valid with range type",
               "default": "mean",
               "allOf": [
                  {
                     "$ref": "#/definitions/ResampleType"
                  }
               ]
            }
         },
         "required": [
            "times"
         ]
      },
      "GeoFilterType": {
         "title": "GeoFilterType",
         "description": "An enumeration.",
         "enum": [
            "feature",
            "radius",
            "bbox"
         ]
      },
      "Point": {
         "title": "Point",
         "description": "Point Model",
         "type": "object",
         "properties": {
            "coordinates": {
               "title": "Coordinates",
               "anyOf": [
                  {
                     "type": "array",
                     "minItems": 2,
                     "maxItems": 2,
                     "items": [
                        {
                           "anyOf": [
                              {
                                 "type": "number"
                              },
                              {
                                 "type": "integer"
                              }
                           ]
                        },
                        {
                           "anyOf": [
                              {
                                 "type": "number"
                              },
                              {
                                 "type": "integer"
                              }
                           ]
                        }
                     ]
                  },
                  {
                     "type": "array",
                     "minItems": 3,
                     "maxItems": 3,
                     "items": [
                        {
                           "anyOf": [
                              {
                                 "type": "number"
                              },
                              {
                                 "type": "integer"
                              }
                           ]
                        },
                        {
                           "anyOf": [
                              {
                                 "type": "number"
                              },
                              {
                                 "type": "integer"
                              }
                           ]
                        },
                        {
                           "anyOf": [
                              {
                                 "type": "number"
                              },
                              {
                                 "type": "integer"
                              }
                           ]
                        }
                     ]
                  }
               ]
            },
            "type": {
               "title": "Type",
               "const": "Point",
               "type": "string"
            }
         },
         "required": [
            "coordinates"
         ]
      },
      "MultiPoint": {
         "title": "MultiPoint",
         "description": "MultiPoint Model",
         "type": "object",
         "properties": {
            "coordinates": {
               "title": "Coordinates",
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "type": "array",
                        "minItems": 2,
                        "maxItems": 2,
                        "items": [
                           {
                              "anyOf": [
                                 {
                                    "type": "number"
                                 },
                                 {
                                    "type": "integer"
                                 }
                              ]
                           },
                           {
                              "anyOf": [
                                 {
                                    "type": "number"
                                 },
                                 {
                                    "type": "integer"
                                 }
                              ]
                           }
                        ]
                     },
                     {
                        "type": "array",
                        "minItems": 3,
                        "maxItems": 3,
                        "items": [
                           {
                              "anyOf": [
                                 {
                                    "type": "number"
                                 },
                                 {
                                    "type": "integer"
                                 }
                              ]
                           },
                           {
                              "anyOf": [
                                 {
                                    "type": "number"
                                 },
                                 {
                                    "type": "integer"
                                 }
                              ]
                           },
                           {
                              "anyOf": [
                                 {
                                    "type": "number"
                                 },
                                 {
                                    "type": "integer"
                                 }
                              ]
                           }
                        ]
                     }
                  ]
               }
            },
            "type": {
               "title": "Type",
               "const": "MultiPoint",
               "type": "string"
            }
         },
         "required": [
            "coordinates"
         ]
      },
      "LineString": {
         "title": "LineString",
         "description": "LineString Model",
         "type": "object",
         "properties": {
            "coordinates": {
               "title": "Coordinates",
               "minItems": 2,
               "type": "array",
               "items": {
                  "anyOf": [
                     {
                        "type": "array",
                        "minItems": 2,
                        "maxItems": 2,
                        "items": [
                           {
                              "anyOf": [
                                 {
                                    "type": "number"
                                 },
                                 {
                                    "type": "integer"
                                 }
                              ]
                           },
                           {
                              "anyOf": [
                                 {
                                    "type": "number"
                                 },
                                 {
                                    "type": "integer"
                                 }
                              ]
                           }
                        ]
                     },
                     {
                        "type": "array",
                        "minItems": 3,
                        "maxItems": 3,
                        "items": [
                           {
                              "anyOf": [
                                 {
                                    "type": "number"
                                 },
                                 {
                                    "type": "integer"
                                 }
                              ]
                           },
                           {
                              "anyOf": [
                                 {
                                    "type": "number"
                                 },
                                 {
                                    "type": "integer"
                                 }
                              ]
                           },
                           {
                              "anyOf": [
                                 {
                                    "type": "number"
                                 },
                                 {
                                    "type": "integer"
                                 }
                              ]
                           }
                        ]
                     }
                  ]
               }
            },
            "type": {
               "title": "Type",
               "const": "LineString",
               "type": "string"
            }
         },
         "required": [
            "coordinates"
         ]
      },
      "MultiLineString": {
         "title": "MultiLineString",
         "description": "MultiLineString Model",
         "type": "object",
         "properties": {
            "coordinates": {
               "title": "Coordinates",
               "type": "array",
               "items": {
                  "type": "array",
                  "items": {
                     "anyOf": [
                        {
                           "type": "array",
                           "minItems": 2,
                           "maxItems": 2,
                           "items": [
                              {
                                 "anyOf": [
                                    {
                                       "type": "number"
                                    },
                                    {
                                       "type": "integer"
                                    }
                                 ]
                              },
                              {
                                 "anyOf": [
                                    {
                                       "type": "number"
                                    },
                                    {
                                       "type": "integer"
                                    }
                                 ]
                              }
                           ]
                        },
                        {
                           "type": "array",
                           "minItems": 3,
                           "maxItems": 3,
                           "items": [
                              {
                                 "anyOf": [
                                    {
                                       "type": "number"
                                    },
                                    {
                                       "type": "integer"
                                    }
                                 ]
                              },
                              {
                                 "anyOf": [
                                    {
                                       "type": "number"
                                    },
                                    {
                                       "type": "integer"
                                    }
                                 ]
                              },
                              {
                                 "anyOf": [
                                    {
                                       "type": "number"
                                    },
                                    {
                                       "type": "integer"
                                    }
                                 ]
                              }
                           ]
                        }
                     ]
                  }
               }
            },
            "type": {
               "title": "Type",
               "const": "MultiLineString",
               "type": "string"
            }
         },
         "required": [
            "coordinates"
         ]
      },
      "Polygon": {
         "title": "Polygon",
         "description": "Polygon Model",
         "type": "object",
         "properties": {
            "coordinates": {
               "title": "Coordinates",
               "type": "array",
               "items": {
                  "type": "array",
                  "items": {
                     "anyOf": [
                        {
                           "type": "array",
                           "minItems": 2,
                           "maxItems": 2,
                           "items": [
                              {
                                 "anyOf": [
                                    {
                                       "type": "number"
                                    },
                                    {
                                       "type": "integer"
                                    }
                                 ]
                              },
                              {
                                 "anyOf": [
                                    {
                                       "type": "number"
                                    },
                                    {
                                       "type": "integer"
                                    }
                                 ]
                              }
                           ]
                        },
                        {
                           "type": "array",
                           "minItems": 3,
                           "maxItems": 3,
                           "items": [
                              {
                                 "anyOf": [
                                    {
                                       "type": "number"
                                    },
                                    {
                                       "type": "integer"
                                    }
                                 ]
                              },
                              {
                                 "anyOf": [
                                    {
                                       "type": "number"
                                    },
                                    {
                                       "type": "integer"
                                    }
                                 ]
                              },
                              {
                                 "anyOf": [
                                    {
                                       "type": "number"
                                    },
                                    {
                                       "type": "integer"
                                    }
                                 ]
                              }
                           ]
                        }
                     ]
                  }
               }
            },
            "type": {
               "title": "Type",
               "const": "Polygon",
               "type": "string"
            }
         },
         "required": [
            "coordinates"
         ]
      },
      "MultiPolygon": {
         "title": "MultiPolygon",
         "description": "MultiPolygon Model",
         "type": "object",
         "properties": {
            "coordinates": {
               "title": "Coordinates",
               "type": "array",
               "items": {
                  "type": "array",
                  "items": {
                     "type": "array",
                     "items": {
                        "anyOf": [
                           {
                              "type": "array",
                              "minItems": 2,
                              "maxItems": 2,
                              "items": [
                                 {
                                    "anyOf": [
                                       {
                                          "type": "number"
                                       },
                                       {
                                          "type": "integer"
                                       }
                                    ]
                                 },
                                 {
                                    "anyOf": [
                                       {
                                          "type": "number"
                                       },
                                       {
                                          "type": "integer"
                                       }
                                    ]
                                 }
                              ]
                           },
                           {
                              "type": "array",
                              "minItems": 3,
                              "maxItems": 3,
                              "items": [
                                 {
                                    "anyOf": [
                                       {
                                          "type": "number"
                                       },
                                       {
                                          "type": "integer"
                                       }
                                    ]
                                 },
                                 {
                                    "anyOf": [
                                       {
                                          "type": "number"
                                       },
                                       {
                                          "type": "integer"
                                       }
                                    ]
                                 },
                                 {
                                    "anyOf": [
                                       {
                                          "type": "number"
                                       },
                                       {
                                          "type": "integer"
                                       }
                                    ]
                                 }
                              ]
                           }
                        ]
                     }
                  }
               }
            },
            "type": {
               "title": "Type",
               "const": "MultiPolygon",
               "type": "string"
            }
         },
         "required": [
            "coordinates"
         ]
      },
      "Feature": {
         "title": "Feature",
         "description": "Feature Model",
         "type": "object",
         "properties": {
            "type": {
               "title": "Type",
               "const": "Feature",
               "type": "string"
            },
            "geometry": {
               "title": "Geometry",
               "anyOf": [
                  {
                     "$ref": "#/definitions/Point"
                  },
                  {
                     "$ref": "#/definitions/MultiPoint"
                  },
                  {
                     "$ref": "#/definitions/LineString"
                  },
                  {
                     "$ref": "#/definitions/MultiLineString"
                  },
                  {
                     "$ref": "#/definitions/Polygon"
                  },
                  {
                     "$ref": "#/definitions/MultiPolygon"
                  }
               ]
            },
            "properties": {
               "title": "Properties",
               "type": "object"
            },
            "id": {
               "title": "Id",
               "type": "string"
            },
            "bbox": {
               "title": "Bbox",
               "anyOf": [
                  {
                     "type": "array",
                     "minItems": 4,
                     "maxItems": 4,
                     "items": [
                        {
                           "anyOf": [
                              {
                                 "type": "number"
                              },
                              {
                                 "type": "integer"
                              }
                           ]
                        },
                        {
                           "anyOf": [
                              {
                                 "type": "number"
                              },
                              {
                                 "type": "integer"
                              }
                           ]
                        },
                        {
                           "anyOf": [
                              {
                                 "type": "number"
                              },
                              {
                                 "type": "integer"
                              }
                           ]
                        },
                        {
                           "anyOf": [
                              {
                                 "type": "number"
                              },
                              {
                                 "type": "integer"
                              }
                           ]
                        }
                     ]
                  },
                  {
                     "type": "array",
                     "minItems": 6,
                     "maxItems": 6,
                     "items": [
                        {
                           "anyOf": [
                              {
                                 "type": "number"
                              },
                              {
                                 "type": "integer"
                              }
                           ]
                        },
                        {
                           "anyOf": [
                              {
                                 "type": "number"
                              },
                              {
                                 "type": "integer"
                              }
                           ]
                        },
                        {
                           "anyOf": [
                              {
                                 "type": "number"
                              },
                              {
                                 "type": "integer"
                              }
                           ]
                        },
                        {
                           "anyOf": [
                              {
                                 "type": "number"
                              },
                              {
                                 "type": "integer"
                              }
                           ]
                        },
                        {
                           "anyOf": [
                              {
                                 "type": "number"
                              },
                              {
                                 "type": "integer"
                              }
                           ]
                        },
                        {
                           "anyOf": [
                              {
                                 "type": "number"
                              },
                              {
                                 "type": "integer"
                              }
                           ]
                        }
                     ]
                  }
               ]
            }
         },
         "required": [
            "geometry"
         ]
      },
      "GeoFilter": {
         "title": "GeoFilter",
         "description": "GeoFilter class\nDescribes a spatial subset or interpolation",
         "type": "object",
         "properties": {
            "type": {
               "title": "Geofilter type",
               "description": "\n        Type of the geofilter. Can be one of:\n            - 'feature': Select with a geojson feature\n            - 'bbox': Select with a bounding box\n            - 'radius': Select within radius of point\n        ",
               "default": "bbox",
               "allOf": [
                  {
                     "$ref": "#/definitions/GeoFilterType"
                  }
               ]
            },
            "geom": {
               "title": "Selection geometry",
               "description": "\n            - For type='feature', geojson feature.\n            - For type='bbox', list[x_min,y_min,x_max,y_max] in CRS units.\n            - For type='radius', list[x0,y0,radius] in CRS units.\n        ",
               "anyOf": [
                  {
                     "type": "array",
                     "items": {}
                  },
                  {
                     "$ref": "#/definitions/Feature"
                  }
               ]
            },
            "resolution": {
               "title": "Maximum spatial resolution of data",
               "description": "Maximum resolution of the data for downsampling in CRS units",
               "default": 0.0,
               "type": "number"
            }
         },
         "required": [
            "geom"
         ]
      }
   }
}

Config
  • json_dumps: function = <function _orjson_dumps at 0x7f2e7574e3a0>

  • json_encoders: dict = {<class ‘numpy.datetime64’>: <class ‘str’>}

  • json_loads: builtin_function_or_method = <built-in function loads>

Fields
field crs: Optional[Union[str, int]] = 'EPSG:4326'

Valid CRS string for returned data

field datasource: str [Required]

Datasource ID

field description: Optional[str] = None

Human readable description of this query

field geofilter: Optional[oceanum.datamesh.query.GeoFilter] = None
field parameters: Optional[Dict] = {}

Dictionary of driver parameters to pass to datasource

field timefilter: Optional[oceanum.datamesh.query.TimeFilter] = None

Temporal filter or interplator

field variables: Optional[List[str]] = None

List of requested variables.