oceanum.datamesh.query.GeoFilter

pydantic model oceanum.datamesh.query.GeoFilter[source]

GeoFilter class Describes a spatial subset or interpolation

Show JSON schema
{
   "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"
   ],
   "definitions": {
      "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"
         ]
      }
   }
}

Fields
field geom: Union[List, geojson_pydantic.features.Feature] [Required]
  • For type=’feature’, geojson feature.

  • For type=’bbox’, list[x_min,y_min,x_max,y_max] in CRS units.

  • For type=’radius’, list[x0,y0,radius] in CRS units.

field resolution: Optional[float] = 0.0

Maximum resolution of the data for downsampling in CRS units

field type: oceanum.datamesh.query.GeoFilterType = <GeoFilterType.bbox: 'bbox'>
Type of the geofilter. Can be one of:
  • ‘feature’: Select with a geojson feature

  • ‘bbox’: Select with a bounding box

  • ‘radius’: Select within radius of point