Logo
  • Home

Tutorials

  • Translate your first filter

How-to guides

  • Search the catalogue
  • Convert responses
  • Develop and preview documentation

Reference

  • Python API
  • Operators
  • Attributes
  • CLI
  • OData-STAC crosswalk
  • Container builds
  • Example notebooks
    • pygeofilter CDSE OData support for CQL2
    • Supported Comparison operators
    • Spatial operators
    • Temporal operators

Explanation

  • Translation and conversion
pygeofilter CDSE OData support for CQL2
  • Reference
  • Example notebooks
  • Supported Comparison operators
  • Edit on Terradue/pygeofilter-odata-cdse

Supported Comparison operators¶

Description CQL2 Operator(s) Resulting OData Operator
Equal =, eq eq
Greater than >,gt gt
Greater than or equal >=,gte ge
Less than <, lt lt
Less than or equal <=, lte le
In [28]:
Copied!
from pygeocdse.evaluator import to_cdse

cql2_filter = {
    "op": "=",
    "args": [
        {"property": "cloudCover"},
        20
    ]
}

print(to_cdse(cql2_filter))
from pygeocdse.evaluator import to_cdse cql2_filter = { "op": "=", "args": [ {"property": "cloudCover"}, 20 ] } print(to_cdse(cql2_filter))
Attributes/OData.CSC.DoubleAttribute/any(att:att/Name eq 'cloudCover' and att/OData.CSC.DoubleAttribute/Value eq 20)
In [29]:
Copied!
from pygeocdse.evaluator import to_cdse

cql2_filter = {
    "op": ">",
    "args": [
        {"property": "cloudCover"},
        20
    ]
}

print(to_cdse(cql2_filter))
from pygeocdse.evaluator import to_cdse cql2_filter = { "op": ">", "args": [ {"property": "cloudCover"}, 20 ] } print(to_cdse(cql2_filter))
Attributes/OData.CSC.DoubleAttribute/any(att:att/Name eq 'cloudCover' and att/OData.CSC.DoubleAttribute/Value gt 20)
In [30]:
Copied!
from pygeocdse.evaluator import to_cdse

cql2_filter = {
    "op": ">=",
    "args": [
        {"property": "cloudCover"},
        20
    ]
}

print(to_cdse(cql2_filter))
from pygeocdse.evaluator import to_cdse cql2_filter = { "op": ">=", "args": [ {"property": "cloudCover"}, 20 ] } print(to_cdse(cql2_filter))
Attributes/OData.CSC.DoubleAttribute/any(att:att/Name eq 'cloudCover' and att/OData.CSC.DoubleAttribute/Value ge 20)
In [31]:
Copied!
from pygeocdse.evaluator import to_cdse

cql2_filter = {
    "op": "<",
    "args": [
        {"property": "cloudCover"},
        20
    ]
}

print(to_cdse(cql2_filter))
from pygeocdse.evaluator import to_cdse cql2_filter = { "op": "<", "args": [ {"property": "cloudCover"}, 20 ] } print(to_cdse(cql2_filter))
Attributes/OData.CSC.DoubleAttribute/any(att:att/Name eq 'cloudCover' and att/OData.CSC.DoubleAttribute/Value lt 20)
In [32]:
Copied!
from pygeocdse.evaluator import to_cdse

cql2_filter = {
    "op": "<=",
    "args": [
        {"property": "cloudCover"},
        20
    ]
}

print(to_cdse(cql2_filter))
from pygeocdse.evaluator import to_cdse cql2_filter = { "op": "<=", "args": [ {"property": "cloudCover"}, 20 ] } print(to_cdse(cql2_filter))
Attributes/OData.CSC.DoubleAttribute/any(att:att/Name eq 'cloudCover' and att/OData.CSC.DoubleAttribute/Value le 20)

Please take note that Collection/Name is a reserved keyword

In [33]:
Copied!
from pygeocdse.evaluator import to_cdse

cql2_filter = {
    "op": "=",
    "args": [
        {"property": "Collection/Name"},
        "SENTINEL-2"
    ]
}

print(to_cdse(cql2_filter))
from pygeocdse.evaluator import to_cdse cql2_filter = { "op": "=", "args": [ {"property": "Collection/Name"}, "SENTINEL-2" ] } print(to_cdse(cql2_filter))
Collection/Name eq 'SENTINEL-2'

Supported inclusion operators¶

Description CQL2 Operator(s) Resulting OData Operator
Is a member of in OR of equality predicates
In [34]:
Copied!
from pygeocdse.evaluator import to_cdse

cql2_filter = {
    "op": "in",
    "args": [
        {"property": "productType"},
        [
            "IW_GRHD_1S",
            "IW_GRDH_1S",
            "EW_GRDM_1S",
            "EW_GRDH_1S",
            "S1_GRDH_1S",
            "S2_GRDH_1S",
            "S3_GRDH_1S",
            "S4_GRDH_1S",
            "S5_GRDH_1S",
            "S6_GRDH_1S"
        ]
    ]
}

print(to_cdse(cql2_filter))
from pygeocdse.evaluator import to_cdse cql2_filter = { "op": "in", "args": [ {"property": "productType"}, [ "IW_GRHD_1S", "IW_GRDH_1S", "EW_GRDM_1S", "EW_GRDH_1S", "S1_GRDH_1S", "S2_GRDH_1S", "S3_GRDH_1S", "S4_GRDH_1S", "S5_GRDH_1S", "S6_GRDH_1S" ] ] } print(to_cdse(cql2_filter))
(Attributes/OData.CSC.StringAttribute/any(att:att/Name eq 'productType' and att/OData.CSC.StringAttribute/Value eq 'IW_GRHD_1S') or Attributes/OData.CSC.StringAttribute/any(att:att/Name eq 'productType' and att/OData.CSC.StringAttribute/Value eq 'IW_GRDH_1S') or Attributes/OData.CSC.StringAttribute/any(att:att/Name eq 'productType' and att/OData.CSC.StringAttribute/Value eq 'EW_GRDM_1S') or Attributes/OData.CSC.StringAttribute/any(att:att/Name eq 'productType' and att/OData.CSC.StringAttribute/Value eq 'EW_GRDH_1S') or Attributes/OData.CSC.StringAttribute/any(att:att/Name eq 'productType' and att/OData.CSC.StringAttribute/Value eq 'S1_GRDH_1S') or Attributes/OData.CSC.StringAttribute/any(att:att/Name eq 'productType' and att/OData.CSC.StringAttribute/Value eq 'S2_GRDH_1S') or Attributes/OData.CSC.StringAttribute/any(att:att/Name eq 'productType' and att/OData.CSC.StringAttribute/Value eq 'S3_GRDH_1S') or Attributes/OData.CSC.StringAttribute/any(att:att/Name eq 'productType' and att/OData.CSC.StringAttribute/Value eq 'S4_GRDH_1S') or Attributes/OData.CSC.StringAttribute/any(att:att/Name eq 'productType' and att/OData.CSC.StringAttribute/Value eq 'S5_GRDH_1S') or Attributes/OData.CSC.StringAttribute/any(att:att/Name eq 'productType' and att/OData.CSC.StringAttribute/Value eq 'S6_GRDH_1S'))
Previous Next

Apache License, Version 2.0

Built with MkDocs using a theme provided by Read the Docs.
Terradue/pygeofilter-odata-cdse « Previous Next »