Coverages FAQ
Frequently asked questions on coverages and coverage services. --
PeterBaumann - 30 Jun 2014
WCS Extensions refer to WCS Core 2.0 - what about WCS 2.1?
Answer: all WCS 2.0 extensions apply equally to WCS 2.1, see the corresponding clarification in the WCS 2.1 Core specification. In other words: all WCS extension functionality work on CIS 1.1 coverages.
How to represent a 0-dimensional coverage?
Related issues: What happens when all the CRS dimensions get sliced in a WCS request? How to encode the CIS/GMLCOV description?
Answer: As per CIS/GMLCOV, the domain set of a coverage cannot have 0 dimensionality: at least for the GML encoding, the //gml:domainSet/@dimension attribute shall be greater or equal than 1. There is no clear guidance on 0-D in the OGC standards,
The
recommended solution is to represent such a coverage by the single (atomic or composite) range value in the range set and an
empty domain set .
Example: See the
rasdaman WCS test oracle for 0-dimensional output rectified grids:
browser:systemtest/testcases_services/test_wcs/oracle/18-get_coverage_0D.oracle.
Are time intervals closed or open?
Answer: Discussion on the
TC Discussion listhas confirmed that time intervals represent left-closed, right-open intervals, often written as [a:b). This maintains clean interval arithmetics, such as avoiding duplicate values when combining two adjacent intervals.
Related: In its latest release, ISO 8601 seems to drop 24:00 as a valid timestamp as it is equivalent to 00:00 of the next day. This removes an ambiguity where two different notations indicated the same time.
How can I construct the URL of a CRS as needed for a coverage?
Answer: By definition, every coverage has one CRS attached; in case of a grid coverage, there is additionally the internal Cartesian coordinate system of the array representing the range set. Following OGC convention, there are two ways to express (simple or composite) CRSs:
- as URLs following ISO 19111 (powerful, long, complicated)
- as
compact URIs aka CURIEs (simplified, compact)
CRS CURIEs
Let us look at the CURIE notation first because this is the simple and therefore recommended way. Following
discussion in OGC on CURIE shorthands for both atomic and composite CRSs, a CURIE syntax of
[{authority}:{crs}]
has been adopted where
{authority}
is the short name of the issuing body (eg, EPSG) and
{crs}
is the identifier (eg, 4326). Thus,
[EPSG:4326]
is an admissible CRS notation which can be used, eg, as the value of an srsName attribute in a coverage. Composite CRSs simply are written as comma-separated lists of CRS CURIEs, such as
[EPSG:4326],[OGC:Gregorian]
.
Full CRS URLs
Such CRS CURIEs actually are abbreviations of the full URL, governed by the expansion pattern of
https://www.opengis.net/def/crs/{authority}/0/{crs}
. For example,
[EPSG:4326]
is equivalent to
http://www.opengis.net/def/crs/EPSG/0/4326
. Such a URL is unwieldy, but it can be resolved in the sense that the URL points to a definition of the CRS (currently: in XML), hence allowing a lookup at any time.
CRSs for higher-dimensional coverages can be composed from existing CRSs and axes, as
described in the resolver wiki. Here is an example for image timeseries using WGS84:
https://www.opengis.net/def/crs-compound?
1=https://www.opengis.net/def/crs/EPSG/0/4326 &
2=https://www.opengis.net/def/crs/OGC/1.0/Gregorian-Date
There are several branches in the OGC CRS Resolver hosting CRSs, CSs, axes, etc. - see the
resolver wiki for details.
What is the correct uom (unit of measure) for hyperspectral satellite imagery?
Answer: As a common rule, UCUM should be used for uom. Specifically for optical / hyperspectral imagery, the correct uom is
W.m-2
(Watt per square meter, integrated over all observed frequency range).
Notes:
- occasionally a uom of
W.m-2.sr-1
is advertised which adds "per Steradian". This is generally not considered the correct option. [TODO: add technical rationale]
- occasionally
W.cm-2
is advertised which uses "per square centimeter" instead of "per square meter". The difference is simply a factor of 100x100=10^4.