CQLFilter#
- class geodesic.cql.CQLFilter(*args, **kwargs)[source]#
Represents an OGC CQL2 Filter.
The CQL2 standard is documented on the OGC’s github repo for the OGC API Features: opengeospatial/ogcapi-features
CQL2 is a way to filter tabular datasets such as features and STAC items. In Geodesic, we use CQL2 as the universal filtering language and it’s converted internally to the needed filtering format.
CQLFilter has only two keyword arguments, op and args, described below.
- Parameters:
op – the name/id for the operation
args – a list of arguments for that operation
Filters can be composed of multiple filters using the and/or ops.
Examples
>>> from geodesic.cql import CQLFilter as C >>> # filter a dataset for all items that have a value of "ASCENDING" for the field "properties.orbit" >>> filter = C.eq("properties.orbit", "ASCENDING")
>>> # filter a dataset for all items that have a value of "ASCENDING" for the field "properties.orbit" >>> # and a value of "properties.angle" of less than 45.0 >>> filter = C.and(C.eq("properties.orbit", "ASCENDING"), C.lt("properties.angle", 45.0))
>>> # Directly create a CQLFilter using CQL syntax. This is for items with a field "a" and a value equal to "b" >>> from geodesic.cql import CQLFilter >>> filter = CQLFilter(op="=", args=[{"property": "a"}, "b"])
Attributes
args
arguments to this operation
op
(str) - the operation this filter implements
Methods
between
(property, a, b)filter that checks that a property is between two values
clear
()copy
()eq
(property, value)filter on equality between a property and a value
fromkeys
([value])Create a new dictionary with keys from iterable and values set to value.
get
(key[, default])Return the value for key if key is in the dictionary, else default.
gt
(property, value)filter that a property is greater than a value
gte
(property, value)filter that a property is greater than or equal to a value
isin
(property, value)filter that checks for items in an array/list
isnull
(property)filter that checks that a field is null
items
()keys
()like
(property, value)filter that checks for text similarity
logical_and
(*args)filter that combines multiple filters with a logical and
logical_not
(filter)filter that negates another filter
logical_or
(*args)filter that combines multiple filters with a logical or
lt
(property, value)filter that a property is less than a value
lte
(property, value)filter that a property is less than or equal to a value
neq
(property, value)filter on no equality between a property and a value
pop
(k[,d])If key is not found, default is returned if given, otherwise KeyError is raised
popitem
()Remove and return a (key, value) pair as a 2-tuple.
setdefault
(key[, default])Insert key with a value of default if key is not in the dictionary.
update
(*mapping, **kwargs)values
()