-
Notifications
You must be signed in to change notification settings - Fork 9
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
DGGS RSID elaboration and implementation issues #41
Comments
My main confusion is currently accessing data vs only zone/dggs definitions: /collection/(collectionid)/dggs/(dggsrsid)/zones: then you could separate the DGGS index and the data layers? or you would assume all data indexed under a DGGS on a server needs to be accessible via: /dggs/(dggsrsid)/zones ? |
Some ideas below:
@jerstlouis I think you encountered a similar question to #41 (comment) in either OGC API - Tiles or OGC API - Coverages. How did you address it there? |
We cannot have both @rggibb @geofizzydrink @pvretano For a DGGS: What is here? conformance class, I think we would want to return data (e.g. as GeoJSON or FlatGeoBuf for vector features, and for raster GeoTIFF or a more compact format that encodes the particular shape of the e.g. hexagonal shape of the tile) at:
and for the DGGS: Where is this? conformance class, I think we want to return a list of zones at:
which can take additional parameters like To me these are the basic practical and useful conformance classes for OGC API - DGGS. Then the next most useful one would be DGGS: CQL2 support (used with e.g.
|
We now have informative Appendix B in the candidate OGC API - DGGS describing a schema for the definition of a DGGRS, as well as 3 example definitions. The original description at the top of this issue by @rggibb highlights excellent points, and much in line with the approach that we took, in particular:
I would comment on the original discussion that something we found missing is the independent concept of a Discrete Global Grid Hierarchy (DGGH), which implies a particular CRS, refinement strategy, refinement ratio and the grids themselves (points 1 and 4). It also imples a specific globe / Earth reference system (ellipsoid) -- point 3, parameters like polyhedron orientation, and therefore fully defines the geometry of all zones for the grid hierarchy, but without yet selecting a particular indexing system. This is a key concept that can be re-used. Unfortunately, in Topic 21 this DGGH concept is not clearly modeled as an entity on its own, since the DGG_ReferenceSystemType already includes the ZIRS, whereas the grids and refinement strategy/ratio is defined outside in the DGG_ReferenceSystem, with no class corresponding to the DGGH, which would include everything except the ZIRS and MDRS. For the definition of the DGGRS schema therefore took the liberty to re-organize things a little, consisting of 3 main components:
with the DGGH definition further split into parameters and properties, allowing for example to change the polyhedron orientation and ellipsoid by modifying only the parameters. The DGGRS registry could potentially re-use components, which could even have registry of their own, potentially using If I understand point 5 of the comment correctly, the MDRS corresponds to an identifier for the DGGRS -- I was always somewhat confused by this MDRS. In OGC API - DGGS, there is a distinction between the implementatin/deployment-local The further discussion is quite tangential to the original issue. In the candidate API, it is possible to retrieve for example GeoJSON representations of:
The DGGS-FG-JSON requirement class also supports retrieving data where the points of feature geometry are quantized to sub-zones for an efficient vector representation. Updating the paths I proposed above:
The final query parameters for Zone Query are We did not define DGGS-specific extensions to CQL2, but the ability to perform integration with other collections is hinted at by mentioning a potential The ability to reference DGGRS zones in CQL2 query is not currently planned -- we will wait to see whether that comes up as future requirement. Closing this issue as there are no further actions to take on this in the DGGS API for now. |
OGC Abstract Specification Topic 21 v2.0 Figure 13 has some elements that need further elaboration and dsiscussion before they can be implemented.
The OGC API DGGS refers to an identifier that resolves to a full specification of a DGGS RS
/dggs/{dggsRSID}
.At present the DGGS RS that are in use have been given informal identifers, for example H3, AusPIX and TB16-Pix and each of these are described by association with the library that is currently used to create them - which is sufficient for current purposes but isnt robust enough or transparent enough to cater for the range of possibilities that we expect to arise once people start to use the AS Topc 21 more widely. Figure 13 includes a structure that caters to that future, and the development of OGC API DGGS is an appropriate trigger to start doing things more robustly. Part of that is creation of the DGGS Registry cf Issue 36. This issue is intended to start conversations around other elements that may or may not yet be formally supported by existing infrastructures.
A DGGS RS brings together a number of component parts that could exist on their own and therefore can be described independently. This is analogous to the situation with projections, where the defintion of the ellipsoid used to describe the Earth is defined seperately from the definition of the sets of axes. A particular projection is then the combination of a definition of an ellispoid and a definition - including orgin and orientation of a coordinate set.
For DGGS the component parts are - with reference to the elemnts highlighted in red below, which is Figure 13:
4.1. (cf DGG_ReferenceSystem::DGGS_Grids) The list of 1..* DGG_GridContraint(s)
4.2. (cf DGG_ReferenceSystem::DGGS_Refinement) The list of 1..* DGG_RefinementStrategy(s)
4.3. (cf DGG_ReferenceSystem::DGGS_RefinementRatio) The sequence of 1..* RefinementRatios
The text was updated successfully, but these errors were encountered: