You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As I highlighted in the CoverageJSON / Conceptual modeling e-mail thread, the current CIS specification presents many significant barriers to implementation by developers. These are also obstacles faced by the CoverageJSON submitters in trying to do a proper comparison with CIS and to an eventual harmonization effort.
There is no JSON encoding defined for the discrete-mesh coverage types (MultiPointCurve, MultiPointSurface, MultiPointSolid)
There are dependencies on separate complex standards (e.g. coverage function from GML 3.2.1; RangeType / DataRecord from SWE Common; transformation from SensorML) which requires an implementor to dig deep into those standards in order to implement conformance classes, despite only small bits of those being relevant
There is a lack of examples for certain capabilities (e.g. grid-transformation -- any possibilities to define transformation besides SensorML? the one example links to HTML pages, surely that is not valid; using GeneralGridCoverage with custom CRS with affine transformation to handle the GMLCOV grid coverage types use cases)
The Conceptual and Logical model for CIS are defined together in the same conformance classes, leading to significant confusion as to how encodings besides the XML/GML, JSON and RDF defined in the standard (other-format-coverage conformance class) can still conform to the Conceptual Model (e.g. coverage and grid-regular conformance class, as illustrated by the CoverageJSON e-mail thread. Having separate conformance classes for the logical model would avoid the need for an other-format-coverage conformance class altogether, and make the Abstract Tests more streamlined.
To address these issues, I suggest that in a future CIS (1.2?) revision:
We fully deprecate coverage types marked for deprecation (GridCoverage, RectifiedGridCoverage, ReferenceableGridCoverage), after verifying the use cases for them are easily and clearly handled (e.g. with proper examples such as for custom CRS defining affine transformation) by the GeneralGridCoverage
We define the missing JSON encodings for the discrete mesh coverage types (perhaps embedding TopoJSON or GeoJSON)
We try to better align the name of the conceptual/logical model classes with the name of the conformance classes, where possible (e.g. right now General Grid coverages is defined inside class grid-regular which is super confusing)
We embed in each part/document all the essential relevant explanations, UML diagrams, schemas and examples inherited from other standards (GML 3.2.1, SWE Common, SensorML), while still referencing those documents as appropriate
We re-organize the specifications into separate parts/documents as suggested below:
A minimalistic Core Coverage Implementation Schema covering the current coverage conformance class (AbstractCoverage), including describing the domain set and range type) as well as support for regular grid (grid-regular conformance class, GeneralGridCoverage) but without introducing irregular grids/axes yet
Conceptual Model
Logical model
Encodings (JSON, RDF, XML)
An Irregular Grid Coverage extension adding support for irregular grids (grid-irregular conformance class) to GeneralGridCoverage
Conceptual Model
Logical model
Encodings (JSON, RDF, XML)
A Point Coud Coverage extension adding support for point clouds (discrete-pointcloud conformance class, MultiPointCoverage)
Conceptual Model
Logical model
Encodings (JSON, RDF, XML)
A Discrete Mesh Coverage extension, adding support for coverage defined by 1D, 2D or 3D geometries (discrete-mesh conformance class, MultiCurveCoverage, MultiSurfaceCoverage, MultiSolidCoverage)
Conceptual Model
Logical model
Encodings (JSON, RDF, XML)
A Grid Transformation extension adding support to apply transformations to the grid (grid-transformation conformance clas, as done with SensorML (including practical examples)
Conceptual Model
Logical model
Encodings (JSON, RDF, XML)
A Partitioned Coverage extension adding support to specify a coverage in multiple parts (coverage-partitioning conformance class; review whether the Position / Values specified here is redundant with the Point Cloud extension)
Conceptual Model
Logical model
Encodings (JSON, RDF, XML)
To review: whether the current multipart-coverage (easy to confuse with coverage-partitioning) and container conformance classes are also relevant for defining additional extensions, or if perhaps they are better handled in the definition of an API/service or data store, respectively.
As I highlighted in the CoverageJSON / Conceptual modeling e-mail thread, the current CIS specification presents many significant barriers to implementation by developers. These are also obstacles faced by the CoverageJSON submitters in trying to do a proper comparison with CIS and to an eventual harmonization effort.
To address these issues, I suggest that in a future CIS (1.2?) revision:
To review: whether the current multipart-coverage (easy to confuse with coverage-partitioning) and container conformance classes are also relevant for defining additional extensions, or if perhaps they are better handled in the definition of an API/service or data store, respectively.
(See also current complete CIS UML diagrams)
@joanma747 @pebau @Schpidi @cmheazel @ogcscotts @ghobona @cnreediii @jonblower @chris-little @tomkralidis @pomakis @rob-metalinkage @luciocola @lieberjosh @KathiSchleidt @EmDevys @dblodgett-usgs