-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Derived fields and aggregation support #164
Comments
We should consider use cases where we want to aggregate / return results differently for different dimensions, for example: A) Return a 0D value including derived "minimum NDVI" and "maximum NDVI" values aggregated locally spatially over the time dimension at a single point in space, but averaged over the spatial dimensions. How could that look like syntactically? Possibly an additional parameter to the aggregation function to select dimensions on which to aggregate? e.g. A) Aggregate minimum of spatially local values over time, then aggregate average over space (a single cell is returned with a minimum and a maximum value)
With an additional option to specify aggregating to a coarser resolution, as opposed to a single value? e.g., B) Aggregate minimum of spatially local values over time for each given month, then aggregate sum over space. The result would be a 1D time series with 12 cells (data records / features), each with a single value in this case (the sum for each of the monthly minimums and maximums, over all subsetted space).
A special DAPA had some similar ideas for its To compare aggregating a gridded coverage with the Features search extension, cells are akin to the features in that their set of properties have given values. Aggregation is essentially creating a new collection of cells (equivalent to a new feature collection) with different dimensionality and/or resolution across some dimension(s). Note that if aggregation is simply functions used in derived fields properties, then the resulting dimensionality may differ if returned properties use different kinds of aggregation -- that could mean fields that are not aggregated over some dimensions or resolution would get duplicated. Another use case for
|
It would be great to have a list or tree like the one at https://github.com/cportele/ogcapi-building-blocks This would help to visualise what the building blocks are. |
@ghobona I tried at the top of this issue to organize them in a bullet list. Most of these building blocks are query parameters: Analytics Query parameters:
Aggregating functions
Spatiotemporal Subsetting Query parameters:
|
Thanks @jerstlouis ! Cc: @doublebyte1 |
See also opengeospatial/ogcapi-features#927 (comment) regarding suggestion to use deepObject style:
|
Suggesting that we plan for a separate part enabling basic analytics capabilities, including conformance classes for:
properties=
filter=
sortby=
Max()
,Min()
,Avg()
,StdDev()
,Sum()
... used withinproperties=
,filter=
,sortby=
expressions. The dimensions over which data is aggregated could also leveragesubset
,bbox
,datetime
, but a distinction mechanism would still be needed to know whether a series should be returned for a particular dimension, or aggregation should be performed.collections=
This would be informed by the work from DAPA and Testbed-17 GeoDataCube API, and ideally be consistent with the OGC API - Features Search extension as well as with OGC API - DGGS and OGC API - EDR.
We plan to explore this in the upcoming May 2022 Code Sprint.
Example proposed syntax:
properties=NDVI:Max((B5-B4)/(B5+B4))&subset=("2020-07-01":"2020-07-31")
The text was updated successfully, but these errors were encountered: