i. Abstract
The OGC GML Application Schema - Coverages (“GMLCOV”) version 1.0 [OGC 09-146r2], recently renamed the OGC Coverage Implementation Schema version 1.0, provides a ReferenceableGridCoverage
element for representing coverages on a referenceable grid. However, GMLCOV provides no instantiable subtypes of a critical sub-element of ReferenceableGridCoverage
, GMLCOV::AbstractReferenceableGrid
. To make use of ReferenceableGridCoverage
, an extension deriving from GMLCOV would need to be developed. GML 3.3 is not such an extension of GMLCOV, as it is built independently from GMLCOV. Use of the instantiable referenceable grid elements of GML 3.3 with ReferenceableGridCoverage
violates Requirement 14 of GMLCOV 1.0 and Requirement 24 of the OGC Modular Specification[1].
This OGC Coverage Implementation Schema - ReferenceableGridCoverage
Extension provides a set of referenceable grid elements for use as sub-elements of ReferenceableGridCoverage
. Three of these elements have been adapted from GML 3.3, while a fourth emerged from work on a Testbed-11 Engineering Report[2].
ii. Keywords
The following are keywords to be used by search engines and document catalogues.
ogcdoc, OGC document, extension, GMLCOVRGRID, GMLCOV, coverage, grid, referenceable, domain, GML, SensorML, CIS, WCS
iii. Preface
The OGC GML Application Schema - Coverages (“GMLCOV”) version 1.0 [OGC 09-146r2], recently renamed the OGC Coverage Implementation Schema version 1.0, provides a ReferenceableGridCoverage
element for representing coverages on a referenceable grid. For the structure of a ReferenceableGridCoverage
to be correct, its GML::domainSet must contain an instantiable subtype of GMLCOV::AbstractReferenceableGrid
. Subtypes of this abstract element specify the transformations that map grid positions to coordinates in an external CRS.
While GMLCOV defines no instantiable referenceable grid elements, GML 3.3 provides instantiable subtypes of a different AbstractReferenceableGrid, one with namespace GMLRGRID. As the AbstractReferenceableGrid elements of GML 3.3 are not based on the native AbstractReferenceableGrid element of GMLCOV 1.0, the user of the GML 3.3 referenceable grid elements in the GML::domainSet of a ReferenceableGridCoverage
violates Requirement 14 of GMLCOV: “A coverage of type ReferenceableGridCoverage
shall have a domain geometry that is a subtype of AbstractReferenceableGrid.”
As GML 3.3 and GMLCOV 1.0 both derive from GML 3.2.1, such that there is no direct dependency of one on the other, the user of the GML 3.3 referenceable grid elements in the GML::domainSet of a ReferenceableGridCoverage
violates Requirement 24 of the OGC Modular Specification[3], in that GML 3.3 is not a conformant extension to GMLCOV 1.0. The Requirement states: “A specification conformant to this standard shall require all conformant extensions to itself to be conformant to this standard.”
This OGC Coverage Implementation Schema - ReferenceableGridCoverage
Extension standard - henceforth known as the “ReferenceableGridCoverage
Extension” - provides a set of native referenceable grid elements, via an extension GMLCOVRGRID of GMLCOV 1.0. GMLCOVRGRID supports the following elements with namespace GMLCOVRGRID
.
1) ReferenceableGridByVectors, ReferenceableGridByArray, and ReferenceableGridByTransformation are adapted (with minor changes) from the GML 3.3 schema file referenceableGrid.xsd. The changes stem from the need to adjust for a slight difference between the GMLCOV 1.0 and GML 3.3 AbstractReferenceableGrid elements.
2) ReferenceableGridBySensorModel provides access to grid transformations via SensorML 2.0, where the associated SensorML 2.0 documents are recommended to be based on profiles associated with referenceable grid transformations (such as ISO 19130[4] and the Community Sensor Models[5] from NGA).
GMLCOVRGRID is a strict extension[6] of GMLCOV 1.0, in that it assumes without change the normative provisions of its parent standard, including its requirements classes.
According to Requirement 1 of version 1.1 of GMLCOV[7], renamed the “Coverage Implementation Standard” or CIS 1.1, all coverages based on GMLCOV 1.0 (retroactively renamed CIS 1.0) continue to be valid. Thus, a ReferenceableGridCoverage
Extension is an extension standard applicable to CIS 1.1 as well as to CIS 1.0.
As the details of sensor models and their metadata profiles for use with the ReferenceableGridBySensorModel element is beyond the scope of this document, the need for an OGC “Sensor Extension” document is foreseen, either as a Standard or as a Best Practice.
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. The Open Geospatial Consortium shall not be held responsible for identifying any or all such patent rights.
Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the standard set forth in this document, and to provide supporting documentation.
iv. Submitting organizations
The following organizations submitted this document to the Open Geospatial Consortium (OGC):
- European Union Satellite Centre (SatCen)
- Institut National de l’Information Géographique et Forestière (IGN)
- KeyW Corporation
v. Submitters
All questions regarding this submission should be directed to the editor or the submitters:
Name | Affiliation | OGC Member |
---|---|---|
Eric Hirschorn | KeyW | Y |
Lucio Colaiacomo | SatCen | Y |
Emmanuel Devys | IGN | Y |
1. Scope
This ReferenceableGridCoverage
Extension specifies instantiable referenceable grid elements supportive of GMLCOV::ReferenceableGridCoverage
.
2. Conformance
This standard defines the following requirement and conformance class:
- gmlcovrgrid, of URI http://www.opengis.net/spec/GMLCOV/GMLCOVRGRID/1.0/req/gmlcovrgrid, with a single pertaining conformance class, gmlcovrgrid, of URI http://www.opengis.net/spec/GMLCOV/GMLCOVRGRID/1.0/conf/gmlcovrgrid.
Standardization target of this document are concrete GMLCOV 1.0 coverage instance documents, as generated by some service and/or consumed by some client.
Conformance with this standard shall be checked using all the relevant tests specified in Annex A (normative) of this document. The framework, concepts, and methodology for testing, and the criteria to be achieved to claim conformance are specified in the OGC Compliance Testing Policies and Procedures and the OGC Compliance Testing web site[8].
All requirements-classes and conformance-classes described in this document are owned by the standard(s) identified.
3. References
The following normative documents contain provisions that, through reference in this text, constitute provisions of this document.
- OGC: OGC 09-146r2, OGC Coverage Implementation Schema(GMLCOV 1.0), 2012
Conformance class: http://www.opengis.net/spec/gmlcov/1.0/conf/gml-coverage - OGC: OGC 12-000, OGC SensorML: Model and XML Encoding Standard, 2014
Conformance class: http://www.opengis.net/spec/sensorML/2.0/conf/xml/coreProcess
4. Terms and Definitions
This document uses the terms defined in Sub-clause 5.3 of [OGC 06-121r8], which is based on the ISO/IEC Directives, Part 2, Rules for the structure and drafting of International Standards. In particular, the word “shall” (not “must”) is the verb form used to indicate a requirement to be strictly followed to conform to this standard.
The terms and definitions of the coverage standard GMLCOV 1.0 apply to this extension standard.
For the purposes of this document, the following additional terms and definitions apply.
- 4.1 referenceable grid
-
A grid associated with a transformation that can be used to convert grid coordinate values to values of coordinates referenced to an external coordinate reference system.
NOTE This definition has been copied from ISO 19123, Subclause 4.1.33, which is followed by the caveat: “If the coordinate reference system is related to the earth by a datum, the grid is a georeferenceable grid.”
- 4.2 sensor model
-
A mathematical model for estimating geolocations from data recorded by a remote sensing system.
NOTE Sensor models are used in this
ReferenceableGridCoverage
Extension to represent referenceable grid transformations for any relevant remote sensing system. There are alternative definitions in use by OGC and ISO TC211.According to SensorML 2.0 [OGC 12-000] section 4.31: “In line with traditional definitions of the remote sensing community, a sensor model is a type of Location Model that allows one to georegister observations from a sensor (particularly remote sensors).”
According to ISO 19130, which is narrowly focused on imagery, a sensor model is a “mathematical description of the relationship between the three-dimensional object space and the two-dimensional plane of the associated image produced by a sensor.”
5. Conventions
This section provides details and examples for any conventions used in the document. Examples of conventions are symbols, abbreviations, use of XML schema, or special notes regarding how to read the document.
5.1 Identifiers
The normative provisions in this specification are denoted by the URI
http://www.opengis.net/spec/GMLCOV/GMLCOVRGRID/1.0
All requirements and conformance tests that appear in this document are denoted by partial URIs which are relative to this base.
5.2 Namespace prefix conventions
The following namespaces are used in this document. The prefix abbreviations used constitute conventions used here, but are not normative. The namespaces to which the prefixes refer are normative, however.
Prefix | Namespace URI | Description |
---|---|---|
xsd |
http://www.w3.org/2001/ XMLSchema |
XML Schema namespace |
gml |
http://www.opengis.net/gml/3.2 |
GML 3.2.1 |
gmlcov |
http://www.opengis.net/gmlcov/1.0 |
GMLCOV 1.0 (i.e. CIS 1.0) |
sml |
http://www.opengis.net/ sensorML/2.0 |
SensorML 2.0 |
gmlcovrgrid |
http://www.opengis.net/gmlcov/ gmlcovrgrid/1.0 |
|
6. Class gmlcovrgrid
Class gmlcovrgrid lays the foundation for the implementation schema of this extension standard GMLCOVRGRID of GMLCOV 1.0. It is the only requirement class of GMLCOVRGRID, meaning that every compliant coverage instance must conform to the requirements stated here in Clause 6.
Requirement 1 |
A coverage instantiating class gmlcovrgrid shall conform to Figure 1. |
The type structure of class gmlcovrgrid follows requirement 14 of parent standard GMLCOV 1.0.
Clause 6 of this extension standard defines four instantiable referenceable grid types of class gmlcovrgrid that are generalizations of the GMLCOV::AbstractReferenceableGrid
type that is defined in GMLCOV 1.0. The attributes dimension and srsName of AbstractReferenceableGrid are used to define the number of grid axes and the name of the SRS of the external CRS, respectively.
The XML schema of class gmlcovrgrid specifies ReferenceableGridByVectors, ReferenceableGridByArray, and ReferenceableGridByTransformation that have been adapted from GML 3.3[9] and its associated schema file referenceableGrid.xsd. There is no dependency of the XML schema of gmlcovrgrid on GML 3.3.
The GML 3.3 document’s respective sections on its referenceable grid types remain useful as a guide for use of these adapted GMLCOVRGRID
types, especially for its examples of use. See section 10.4 for ReferenceableGridByArray, section 10.5 for ReferenceableGridByVectors, and section 10.6 for ReferenceableGridByTransformation.
The XML schema of class gmlcovrgrid also specifies ReferenceableGridBySensorModel that was developed for the Testbed-11.
6.1 RGRID-ByVectors
RGRID-ByVectors defines a referenceable grid by specifying an origin and a set of offset vectors, with multiplicative coefficients that scale the offset vectors to generate a (potentially) irregularly-spaced grid.
Requirement 2 |
An RGRID-ByVectors shall be defined by the structures of Table 2, Table 3, and by GMLCOVRGRID::ReferenceableGridByVectors of the XML Schema accompanying this standard. |
Name | Definition | Data type | Multiplicity |
---|---|---|---|
origin |
The origin of the referenceable grid in the external CRS |
GML:: PointPropertyType |
One |
generalGridAxis |
Used to define an offset vector and support parameters |
GeneralGridAxisPropertyType |
One or more |
Name | Definition | Data type | Multiplicity |
---|---|---|---|
offsetVector |
Specifies a vector in the external CRS |
GML:: VectorType |
One |
coefficients |
Specifies a set of multiplicative coefficients over the grid points |
GML:: doubleList |
One |
gridAxesSpanned |
The names of the grid axes spanned by the coefficients |
GML:: NCNameList |
One |
sequenceRule |
Specifies the order in which the coefficients are applied to the grid points |
GML:: SequenceRuleType |
One |
RGRID-ByVectors generalizes the mechanism used for the RectifiedGrid of GML 3.2.1, which similarly uses offset vectors but in a much more restrictive way. For a RectifiedGrid, each offset vector is always aligned with a single grid direction, while for a ReferenceableGridByVectors such a restriction does not hold in general.
A generalGridAxis is followed by a GeneralGridAxis that fully specifies an offset vector and its support parameters. The subelement offsetVector of GeneralGridAxis specifies a single vector in the external CRS. The subelement coefficients specifies a corresponding set of coefficients that multiply their respective offsetVector at grid points that span one or more of the grid dimensions, which are named with the gridAxesSpanned subelement. Finally, the order in which the coefficients are applied over the grid points is indicated using the sequenceRule subelement.
6.2 RGRID-ByArray
RGRID-ByArray defines a referenceable grid by listing an array of grid point locations explicitly, as a sequence of direct positions in a defined sequence order over the grid.
Requirement 3 |
An RGRID-ByArray shall be defined by the structure of Table 4, and by GMLCOVRGRID::ReferenceableGridByArray of the XML Schema accompanying this standard. |
Name | Definition | Data type | Multiplicity |
---|---|---|---|
GML::posList (for example) |
Specifies the array of grid point locations in the external CRS, via either a GML::posList or a sequence of GML::pos or GML::Point objects. |
GML:: geometricPositionList Group |
One |
sequenceRule |
Specifies the sequence order of the grid point locations over the grid. |
GML:: SequenceRuleType |
One |
6.3 RGRID-ByTransformation
RGRID-ByTransformation specifies either a GML::Transformation or a GML::ConcatenatedOperation to specify the relationship between positions in the source CRS and corresponding positions in the target CRS. A sequence of CRS to be used is optionally defined in gridCRS.
Requirement 4 |
An RGRID-ByTransformation shall be defined by the structure of Table 5, and by GMLCOVRGRID::ReferenceableGridByTransformation of the XML Schema accompanying this standard. |
Name | Definition | Data type | Multiplicity |
---|---|---|---|
transformation |
A general coordinate transformation using a sequence of operations based on GML::method that have an unbounded set of GML::parameterValue |
GML:: Transformation PropertyType |
Zero or one |
concatenatedOperation |
An ordered sequence of two or more coordinate operations |
GML:: ConcatenatedOperation PropertyType |
Zero or one |
gridCRS |
An optional sequence of CRS definitions used by the transformation or the concatenatedOperation |
GridCRSPropertyType |
Zero or one |
This type was originally proposed and discussed in depth in an OGC Change Request[10]. Subelement gridCRS is discussed there in detail.
In GML 3.3, gridCRS is a sub-element of gmlrgrid::AbstractReferenceableGrid. However, gridCRS is not present in the AbstractReferenceableGrid of GMLCOV 1.0. As a result, subelement gridCRS has been included in the RGRID-ByTransformation structure. In addition, it is included in the RGRID-BySensorModel structure.
6.4 RGRID-BySensorModel
RGRID-BySensorModel fully defines a sensor model (via SensorML 2.0) that is used to geolocate the referenceable grid. Such a sensor model involves two inputs: one or more sensor model descriptions containing free variables (using SML::sensorModel) plus a respective set of variable instantiations (using SML::sensorInstance). A sequence of CRS is optionally defined in gridCRS.
Requirement 5 |
An RGRID-BySensorModel shall be defined by the structure of Table 6, and by GMLCOVRGRID::ReferenceableGridBySensorModel of the XML Schema accompanying this standard. |
Name | Definition | Data type | Multiplicity |
---|---|---|---|
sensorModel |
SensorML model yielding the direct positions of the grid |
SML:: |
One |
sensorInstance |
Parameter values for the sensor model |
SML:: |
Zero or one |
gridCRS |
An optional sequence of CRS definitions used by sensorModel |
GridCRSPropertyType |
Zero or one |
Both sensorModel and sensorInstance are subtypes of SML::AbstractProcessProperty that can be followed by instantiable subtypes of SML::AbstractProcess, which include SML::SimpleProcess, SML::AggregateProcess, SML::PhysicalSystem, and SML::PhysicalComponent.
If a sensorInstance is specified, it is recommended (following SensorML 2.0 Requirement 13) that its associated SensorML 2.0 document reference its parent sensorModel via a SML::typeOf specification.
If a sensorInstance is specified, it is recommended that its associated SensorML 2.0 document specify a set of parameter values consistent with the free variables of its parent sensorModel. If a sensorInstance is not specified, it is recommended that the parameter values are instead specified within the associated SensorML 2.0 document of the mandatory sensorModel.
Annex : Conformance Class Abstract Test Suites (Normative)
This Annex specifies an Abstract Test Suite that shall be passed in completeness by any implementation claiming conformance with this Application Schema.
A.1 Conformance Test Class: gmlcovrgrid
Test Purpose: |
Requirement 1 |
Test Method: |
Verify that the coverage under test has a type structure that follows the UML model defined by this requirement. Verify that all necessary elements are present. Test passes if all checks pass. |
Test Purpose: |
Requirement 2 |
Test Method: |
Verify that the coverage under test contains the information structures defined by this requirement. Verify that the document body validates against the schema being part of this standard. Test passes if all checks pass. |
Test Purpose: |
Requirement 3 |
Test Method: |
Verify that the coverage under test contains the information structures defined by this requirement. Verify that the document body validates against the schema being part of this standard. Test passes if all checks pass. |
Test Purpose: |
Requirement 4 |
Test Method: |
Verify that the coverage under test contains the information structures defined by this requirement. Verify that the document body validates against the schema being part of this standard. Test passes if all checks pass.
|
Test Purpose: |
Requirement 5 |
Test Method: |
Verify that the coverage under test contains the information structures defined by this requirement. Verify that the document body validates against the schema being part of this standard. Test passes if all checks pass. |
Annex : Revision history (non-normative)
Date | Release | Author | Paragraph modified | Description |
---|---|---|---|---|
2016-05-04 |
1.0.0 |
Eric Hirschorn |
All |
First draft |
2016-08-01 |
1.0.0 |
Scott Simmons |
All |
Change name of “Implementation Schema for Coverages” to “Coverage Implementation Schema” and minor formatting fixes |
2016-09-18 |
1.0.0 |
Eric Hirschorn |
All |
Changes resulting from OAB review held on 2016-08-16 and additional discussions with Peter Baumann. |
2017-04-25 |
1.0.0 |
Eric Hirschorn |
Preface |
Edits due to approval of CIS 1.1 |
|
|
|
|
|
[1] OGC 08-131r3, The Specification Model — A Standard for Modular Specifications
[2] OGC 15-065r1, OGC Testbed11 Referenceable Grid Harmonization Engineering Report
[3] OGC 08-131r3
[4] ISO/TS 19130:2010, Geographic information - Imagery sensor models for geopositioning
[5] e.g. NGA.SIG.0002_2.1, Frame Sensor Model Metadata Profile Supporting Precise Geopositioning
[6] OGC 08-131r3
[7] OGC 09-146r6, OGC Coverage Implementation Schema 1.1(CIS 1.1)
[8] cite.opengeospatial.org/teamengine
[9] OGC 10-129r1, OGC Geographic Markup Language (GML) — Extended schemas and encoding rules
[10] OGC 09-091r1, GML 3.2.1 change request ‒ Add ReferencedGridByTransformation