License Agreement

Permission is hereby granted by the Open Geospatial Consortium, ("Licensor"), free of charge and subject to the terms set forth below, to any person obtaining a copy of this Intellectual Property and any associated documentation, to deal in the Intellectual Property without restriction (except as set forth below), including without limitation the rights to implement, use, copy, modify, merge, publish, distribute, and/or sublicense copies of the Intellectual Property, and to permit persons to whom the Intellectual Property is furnished to do so, provided that all copyright notices on the intellectual property are retained intact and that each person to whom the Intellectual Property is furnished agrees to the terms of this Agreement.

If you modify the Intellectual Property, all copies of the modified Intellectual Property must include, in addition to the above copyright notice, a notice that the Intellectual Property includes modifications that have not been approved or adopted by LICENSOR.

THIS LICENSE IS A COPYRIGHT LICENSE ONLY, AND DOES NOT CONVEY ANY RIGHTS UNDER ANY PATENTS THAT MAY BE IN FORCE ANYWHERE IN THE WORLD.

THE INTELLECTUAL PROPERTY IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE DO NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE INTELLECTUAL PROPERTY WILL MEET YOUR REQUIREMENTS OR THAT THE OPERATION OF THE INTELLECTUAL PROPERTY WILL BE UNINTERRUPTED OR ERROR FREE. ANY USE OF THE INTELLECTUAL PROPERTY SHALL BE MADE ENTIRELY AT THE USER’S OWN RISK. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ANY CONTRIBUTOR OF INTELLECTUAL PROPERTY RIGHTS TO THE INTELLECTUAL PROPERTY BE LIABLE FOR ANY CLAIM, OR ANY DIRECT, SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM ANY ALLEGED INFRINGEMENT OR ANY LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR UNDER ANY OTHER LEGAL THEORY, ARISING OUT OF OR IN CONNECTION WITH THE IMPLEMENTATION, USE, COMMERCIALIZATION OR PERFORMANCE OF THIS INTELLECTUAL PROPERTY.

This license is effective until terminated. You may terminate it at any time by destroying the Intellectual Property together with all copies in any form. The license will also terminate if you fail to comply with any term or condition of this Agreement. Except as provided in the following sentence, no such termination of this license shall require the termination of any third party end-user sublicense to the Intellectual Property which is in force as of the date of notice of such termination. In addition, should the Intellectual Property, or the operation of the Intellectual Property, infringe, or in LICENSOR’s sole opinion be likely to infringe, any patent, copyright, trademark or other right of a third party, you agree that LICENSOR, in its sole discretion, may terminate this license without any compensation or liability to you, your licensees or any other party. You agree upon termination of any kind to destroy or cause to be destroyed the Intellectual Property together with all copies in any form, whether held by you or by any third party.

Except as contained in this notice, the name of LICENSOR or of any other holder of a copyright in all or part of the Intellectual Property shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Intellectual Property without prior written authorization of LICENSOR or such copyright holder. LICENSOR is and shall at all times be the sole entity that may authorize you or any third party to use certification marks, trademarks or other special designations to indicate compliance with any LICENSOR standards or specifications. This Agreement is governed by the laws of the Commonwealth of Massachusetts. The application to this Agreement of the United Nations Convention on Contracts for the International Sale of Goods is hereby expressly excluded. In the event any provision of this Agreement shall be deemed unenforceable, void or invalid, such provision shall be modified so as to make it valid and enforceable, and as so modified the entire Agreement shall remain in full force and effect. No decision, action or inaction by LICENSOR shall be construed to be a waiver of any rights or remedies available to it.


 

i. Abstract

Coverages represent digital geospatial information representing space/time-varying phenomena. OGC Abstract Topic 6 [OGC 07-011] – which is identical to ISO 19123 – defines an abstract model for coverages. Coverage instances may be encoded using the GML Application Schema – Coverages (GMLCOV) version 1.0 [OGC 09-146r2] which is based on the Geography Markup Language (GML) version 3.2 [OGC 07-036], an XML grammar written in XML Schema for the description of application schemas as well as the transport and storage of geographic information.

This extension of the OGC® GML Application Schema – Coverages version 1.0 [OC 09-146r2] (in short GMLCOV) specifies the usage of the JPEG2000 data formats for still imagery (i.e. JPC, JP2, JPX) for the encoding of GML coverages. It is based on the format standard specified in the ISO/IEC 15444, Information technology — JPEG2000 Image Coding System series.

The way a GMLCOV XML file conformal to this standard is distributed with the actual JPEG2000 file is out of scope of this document. This encoding will be used in different ways by some OGC services such as the Web Coverage Service (WCS) 2.0 Interface Standard – Core [OGC 09-110r4] and GMLJP2 v2.0.

ii. Keywords

ogcdoc, OGC document, extension, JPEG2000, GML, GMLCOV, GMLJP2

iii. Preface

This document is an extension to the OGC® GML Application Schema – Coverages version 1.0 [OC 09-146r2] defining the usage of the JPEG2000 data format for the encoding of GML coverages.

Based on this interface standard an extension to the Web Coverage Service (WCS) 2.0 is foreseen. This extension is going to specify how JPEG2000 encoded coverages can be requested from a WCS including parameters defining JPEG2000 features such as compression, tilling, etc.

Based on this interface standard a future version 2.0 of GMLJP2 is foreseen. This standard is going to specify how a GMLCOV document can be embedded inside a JPEG2000 file as a way to include georeference and range information in it.

It is also foreseen to adapt and expand the supporting types of coverage gmlcov:ReferenceableGridCoverage based on adopted extensions of GML, once it is available.

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):

CREAF
EOX IT Services GmbH
Jacobs University Bremen

v. Submitters

All questions regarding this submission should be directed to the editor or the submitters:

Name Representing OGC member
Joan Masó CREAF, Spain Yes
Stephen Meissl EOX IT Services GmbH Yes
Christian Schiller EOX IT Services GmbH Yes
Peter Baumann Jacobs University Bremen Yes

vi. Changes to the OGC® Abstract Specification

The OGC® Abstract Specification does not require changes to accommodate this OGC® standard.

vii. Foreword

Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. Open Geospatial Consortium shall not be held responsible for identifying any or all such patent rights. However, to date, no such rights have been claimed or identified.

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.

Scope

This OGC® GML Application Schema - Coverages – JPEG2000 Coverage Encoding Extension – henceforth abbreviated as “GMLCOV for JPEG2000” specifies an encoding of GML coverages for the JPEG2000 data exchange formats for still imagery (i.e. JPC, JP2, JPX). The way an XML document following this standard is distributed with the actual JPEG2000 file is out of scope of this document.

Conformance

This standard defines an extension of OGC® GML Application Schema – Coverages

Requirements for one standardization target type are considered:

Standardization targets for all conformance classes are concrete GML coverage instance documents as generated by some service and/or consumed by some client.

URIs given in this document for each requirement as well as conformance test URIs are relative paths to be appended to the root http://www.opengis.net/spec/gmlcov_jpeg2000-coverages/1.0/.

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[1].

In order to conform to this OGC™interface standard, a software implementation shall choose to implement:

a)     Any one of the conformance levels specified in Annex B (normative).

All requirements-classes and conformance-classes described in this document are owned by the standard(s) identified.

Normative References

The following normative documents contain provisions that, through reference in this text, constitute provisions of this document. For dated references, subsequent amendments to, or revisions of, any of these publications do not apply. For undated references, the latest edition of the normative document referred to applies.

ISO/IEC 15444-1, Information technology — JPEG2000 Image Coding System. Part 1: Core coding system
ISO/IEC 15444-2, Information technology — JPEG2000 Image Coding System: Part 2: Extensions
IETF RFC3745 MIME Type Registrations for JPEG 2000 (ISO/IEC 15444)
OGC 09-146r2, OGC® GML Application Schema – Coverages Encoding Specification version 1.0
OGC 07-036, OpenGIS® Geography Markup Language (GML) Encoding Standard, version 3.2

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. Also terms and definitions in [OGC 09-146r2] are used.

For the purposes of this document, the following additional terms and definitions apply.

4.1 pixel

smallest element of a digital image to which attributes are assigned [ISO/TS 19101-2:2008]

NOTE 1 This term originated as a contraction of “picture element”.

NOTE 2 Related to the concept of a grid cell.

4.2 raster space
pixel space

Space used to reference the pixel values in a grid or image

Conventions

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 to are normative.

Table : Namespace mappings
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 GML AS – Coverages 1.0

 

Multiple representations

When multiple representations of the same information are given about a JPEG2000 file they must be consistent. If this is not the case then this is considered an error. This document imposes several requirements about this.

Overview

The ISO/IEC 15444 JPEG2000 standard series (http://www.jpeg.org/jpeg2000) defines a wavelet based encoding for imagery. The standard emphasizes scalable image representations. Portions of the compressed code-stream may be extracted and decompressed independently, to recover the image at a reduced resolution, at a reduced quality within any given resolution, or within a reduced spatial region, all of it at the desired resolution and quality. JPEG2000 supports both lossy and entirely lossless compression of images without sacrificing scalability.

The ISO/IEC 15444 JPEG2000 standard series neither defines any concrete way to specify georeference metadata for the imagery nor provides a description of the sensors used to capture the data, However, ISO/IEC 15444-2, Information technology — JPEG2000 Image Coding System: Part 2: Extensions Annex M describes a mechanism for using some XML Boxes inside the JPEG2000 file to embed metadata such as metadata for camera producing JPEG2000 pictures.

The OGC GMLJP2 version 1.0 standard (OGC 05-047r3) specifies how this XML Box mechanism can be used to include a GML file containing a GML Coverage object, GML Features and GML annotations. GMLJP2 version 1.0 does not provide any common application schema but gives some guidance for developers who are supposed to create a specific application schema by themselves (using gml:FeatureCollection as a root element and defined in a specific XSD file for validation). Potentially, two implementations can generate 2 syntactically different descriptions for the same image thereby making interoperability more difficult.

The OGC work on GMLJP2 v2.0 utilizes a modular approach in which any reference to how a GML coverage document about a JPEG2000 image is constructed has been removed from the GMLJP2 standard. This document now specifies how coverage metadata about a JPEG2000 image is written. Another difference is that this standard relies on the GML Application Schema – Coverages (OGC 09-146r2) requirements (and uses the common GMLCOV application schema) but defines additional requirements that are particular to the case of GMLCOV describing JPEG2000 files (e.g. how some GMLCOV properties map to the JPEG2000 internal binary headers and content). The OGC believes that this standard will be used by some new standards (see figure 1) such as:

  • GMLJP2 version 2.0 rely on this standard and GMLJP2 will specify how a GMLCOV that follows JPEG2000-coverages will be embedded into a JPEG2000 file. Requirements about how GMLCOV can be embedded into a JPEG2000 file are foreseen in GMLJP2 version 2 and these are not included in this document.
  • WCS version 2.0 will serve images using either a GMLCOV document that links to an external JPEG2000 file or it will serve a JPEG2000 file that conforms to GMLJP2 version 2.0, so internally it will use GMLCOV to describe the coverage reference, sensor information etc. An extension that specifies exclusive characteristics for JPEG2000 files using WCS 2.0 is planned.
  • OWS Context version 1.0 uses GMLCOV as a way to include inline descriptions of coverages that link to external raster JPEG2000 files conformal to this standard.

Dependencies of GMLCOV JPEG2000 (in grey in the middle) with other existing standards (thick line boxes), and planned future standards that could use and depend on GMLCOV JPEG2000 in the future (thin line boxes).
Figure : Dependencies of GMLCOV JPEG2000 (in grey in the middle) with other existing standards (thick line boxes), and planned future standards that could use and depend on GMLCOV JPEG2000 in the future (thin line boxes).

 

This OGC standard recognizes the possibility of JPEG2000 files embedding georeference information and sensor descriptions in this encoding and other encodings including GMLJP2 version 1 or GeoJP2. Some requirements in this standard dictate a coherent representation of essential values, in all times maximum coherence between encodings is desired.

Thus, the only coverage types specified by this standard are gmlcov:GridCoverage, gmlcov:RectifiedGridCoverage, gmlcov:ReferenceableGridCoverage, and any coverage type derived thereof with exactly 2 dimensions. Although techniques to store 3D or even higher dimensional coverages in JPEG2000 files are known they are not considered in this document.

Coverages of type gmlcov:GridCoverage do not have to describe georeference, although include information on the rangeType and rangeSet can still be useful.

Following the notation of the abstract coverage definition in the GML AS – Coverages [OGC 09-146r2] the domainSet is limited to 2 dimensions and the rangeType is limited according to the JPEG2000 value restrictions format.

Clause containing normative material

Requirements class jpeg2000-coverage establishes how coverages are represented in the JPEG2000 encoding format. The identifying URL is:http://www.opengis.net/spec/gmlcov_jpeg2000-coverages/1.0/req/jpeg2000-coverage.

General

JPEG2000 encoded coverages shall adhere to ISO/IEC 15444-1 standard.

Requirement 1: ISO/IEC 15444-1 adherence
/req/jpep2000-coverage/jpeg2000-standard-part1
A coverage encoded in JPEG2000 shall adhere to the ISO/IEC 15444-1 Information technology — JPEG2000 Image Coding System. Part 1: Core coding system standard. Both raw J2K codestream are allowed: JC2 format as specified in Annex A of Part 1, and JP2 format as specified in annex I.

 

Requirement 2: ISO/IEC 15444-2 adherence
req/jpep2000-coverage/jpeg2000-standard-jpx
A coverage encoded in JPX for JPEG2000 shall adhere to the ISO/IEC 15444-2 Annex M Information technology — JPEG2000 Image Coding System. Part 2: Extensions

 

 

JPEG2000 identification

The JPEG2000 format shall be identified by the following URI or MIME type identifier, whenever a format identifier is required.

Note:     Examples include the Content-Type header in service responses, the formatSupported element in WCS GetCapabilities responses, the nativeFormat element in WCS DescribeCoverage responses, or the format parameter in WCS GetCoverage requests.

Requirement 3: Extension declaration
req/jpeg2000-coverage/uri
Where there a mechanism for declaring support to extensions and profiles by the use of URIs, JPEG2000 coverage shall be indicated by the following URI:
http://www.opengis.net/spec/gmlcov_jpeg2000-coverages/1.0/conf/jpeg2000-coverage

 

Requirement 4: MIME types identification
req/jpeg2000-coverage/mime-type-identifier
JPEG2000 encoding of a coverage shall beindicated by one of the following MIME type identifiers:
            image/jp2, image/jpx

Note:     MIME sub-type image/jp2 is defined in RFC 3745.

 

Mapping between JPEG2000 abstract model and GML AS abstract model

Requirement 5: Grid coverage types
req/jpeg2000-coverage/type
A coverage encoded in JPEG2000 shall be of type gmlcov:GridCoverage, gmlcov:RectifiedGridCoverage, or gmlcov:ReferenceableGridCoverage.
Dependency: http://www.opengis.net/spec/GMLCOV/1.0/req/gml-coverage

 

Domain

Requirement 6: Two dimension domain
req/jpeg2000-coverage/dimensions
The domain of a coverage encoded in JPEG2000 shall have exactly 2 dimensions.

 

Requirement 7: CRS consistency
req/jpeg2000-coverage/crs
The coordinate reference system identified by the value of the srsName attribute of the gml:Envelope element of the gml:boundedBy element of a coverage encoded in JPEG2000 shall be the same as any coordinate reference system specified in any other georeference encoding embedded in the JPEG2000.

 

Requirement 8: Axis ordering consistency
req/jpeg2000-coverage/axis-ordering
The value ordering of a coverage encoded in JPEG2000 shall adhere to the axis order of the coordinate reference system identified by the value of the srsName attribute of the gml:Envelope element of the gml:boundedBy element.

Note:   This applies to all elements directly bound to a coordinate reference system i.e. the boundedBy, origin, and offsetVector elements but not elements in raster or pixel space i.e. the grid.

 

Requirement 9: boundedBy consistency with cell geometry type
req/jpeg2000-coverage/cell-geometry-is-area
The gml:boundedBy of the domain description of a coverage using JPEG2000 encoding that also includes metadata about the type of cell geometry representation shall respect the coverage’s raster space depending on the type of cell geometry representation (center point or pixel area).

 

Note    The definition of grids in GML 3.2 [OGC 07-036] clause 19.2.2 will be followed: “When a grid point is used to represent a sample space (e.g. image pixel), the grid point represents the center of the sample space (see ISO 19123:2005, 8.2.2).”. Image pixel in this GML quote denotes the same as image space in JPEG2000 with metadata terminology. However, ISO19115 provides an element MD_PixelOrientationCode that can have the following values: center, lowerLeft, lowerRight, upperRight, or upperLeft. The only case supported by GML 3.2 is center and users may have to adapt their geometrical description in GMLCOV to it.

Example            In JPEG2000 file that uses GMLJP2 to embed an ISO 19115 metadata property that is of the MD_CellGeometryCode type with a value area the cell-value fills a square cell with the first point of the coverage grid in the middle of the first cell, and with the value point the first cell-value is realized as a point value located at first point of the grid. In fact, for a gml:RectifiedGrid the gml:origin element is in the same place independently of the MD_CellGeometryCode value. Nevertheless, when MD_CellGeometryCode is area the gml:boundedBy is decreased by the half of both gml:offsetVector elements in the gml:lowerCorner coordinates and increases in the half of both gml:offsetVector elements in the gml:upperCorner coordinates compared with MD_CellGeometryCode is point. In other words, gml:boundedBy will include the half pixel border in case of area (see also OGC 12-100r1 requirement http://www.opengis.net/spec/GMLCOV_geotiff-coverages/1.0/req/geotiff-coverage/pixel-is-area for some examples and figures).

Range

Requirement 10: Components ordering consistency
req/jpeg2000-coverage/range-ordering
A coverage encoded in JPEG2000 with more than one component and referenced in the gml:rangSet shall order the components of the coverage’s in the same order as given in the gml:rangeType element’s document order.

 

Requirement 11: Range units and type consistency
req/jpeg2000-coverage/range-sensor
The sensor information encoded in the swe:uom and the swe:AllowedValues in the gml:rangeType element of a coverage encoded in JPEG2000 shall be the same as the equivalent sensor information specified in any other encoding embedded in the JPEG2000.

 

Media Types for any data encoding(s)

JPEG2000 encoding of a coverage is indicated by one of the following MIME type identifiers: image/jp2, image/jpx

MIME sub-type image/jp2 is defined in RFC 3745.


 

Annex : Conformance Class Abstract Test Suite (Normative)

 

This Annex specifies an Abstract Test Suite which shall be passed in completeness by any implementation claiming conformance with this JPEG2000 coverage encoding extension.

Test identifiers below are relative to

http://www.opengis.net/spec/gmlcov_jpeg2000-coverages/1.0/.

A.1  Conformance Test Class: jpeg2000-coverage

The OGC URI identifier of this conformance class is:
http://www.opengis.net/spec/gmlcov_jpeg2000-coverages/1.0/conf/jpeg2000-coverage.

A.1.1    Follow JPEG2000 standard part 1

A.1.1    Follow JPEG2000 standard part 1

Test id:

/conf/jpeg2000-coverage/jpeg2000- standard-part1

Test Purpose:

Requirement 1 /req/jpep2000-coverage/jpeg2000-standard: A coverage encoded in JPEG2000 shall adhere to the ISO/IECISO 15444-1 Information technology — JPEG2000 Image Coding System. Part 1: Core coding system standard.

Test method:

Validate the coverage instance under test against the ISO/IEC15444-1 standard.

Test passes if coverage instance is valid according to the ISO/IEC15444-1 standard.

 

A.1.2    Follow JPEG2000 standard JPX

A.1.2    Follow JPEG2000 standard JPX

Test id:

/conf/jpeg2000-coverage/jpeg2000- standard-jpx

Test Purpose:

Req 2 /req/jpep2000-coverage/jpeg2000-standard-jpx:
A coverage encoded in JPX for JPEG2000 shall adhere to the ISO/IEC 15444-2 Annex M Information technology — JPEG2000 Image Coding System. Part 2: Extensions

Test method:

Validate the coverage instance under test against the ISO/IEC15444-2 standard Annex M.

Test passes if coverage instance is valid according to the ISO/IEC15444-2 standard Annex M.

 

A.1.3    Correct URI

A.1.3    Correct URI

Test id:

/conf/jpeg2000-coverage/uri

Test Purpose:

Req 3 /req/jpeg2000-coverage/uri:
Where there a mechanism for declaring support to extensions and profiles by the use of URIs, JPEG2000 coverage shall be indicated by the following URI:
http://www.opengis.net/spec/gmlcov_jpeg2000-coverages/1.0/conf/jpeg2000-coverage

Test method:

If the coverage instance under test is encoded in a multipart message check that the xlink:role attribute of the gml:rangeParameters element of the gml:File element of the gml:rangeSet element of its first part has the value "http://www.opengis.net/spec/gmlcov_jpeg2000-coverages/1.0/conf/jpeg2000-coverage".

Test passes if constraint evaluates to true.

 

A.1.4    Correct MIME type

A.1.4    Correct MIME type

Test id:

/conf/jpeg2000-coverage/mime-type-identifier

Test Purpose:

Req 4 /req/jpeg2000-coverage/mime-type-identifier:
JPEG2000 encoding of a coverage shall be indicated by one of the following MIME type identifiers:
            image/jp2, image/jpx

Test method:

If the coverage instance under test is encoded in a multipart message or there is a GML box in the JPEG2000 file, check that the gml:mimeType element of the gml:File element of the gml:rangeSet element of its first part as well as the Content-Type header of its second part have the value "image/jp2" or "image/jpx".

Test passes if constraints evaluate to true.

 

A.1.5    Correct coverage type

A.1.5    Correct coverage type

Test id:

/conf/jpeg2000-coverage/type

Test Purpose:

Req 5 /req/jpeg2000-coverage/type:
A coverage encoded in JPEG2000 shall be of type gmlcov:GridCoverage, gmlcov:RectifiedGridCoverage, or gmlcov:ReferenceableGridCoverage.
Dependency: http://www.opengis.net/spec/GMLCOV/1.0/req/gml-coverage

Test method:

If the coverage instance under test is encoded in a multipart message check the first part. If there is a GML box in the JPEG2000 file, check the embedded file. Verify if it consists of a GML document of type gmlcov:GridCoverage, gmlcov:RectifiedGridCoverage, or gmlcov:ReferenceableGridCoverage,  or a subtype thereof.

Test passes if constraint evaluates to true.

A.1.6    Correct dimensions

A.1.6    Correct dimensions

Test id:

/conf/jpeg2000-coverage/dimensions

Test Purpose:

Req 6 /req/jpeg2000-coverage/dimensions:
The domain of a coverage encoded in JPEG2000 shall have exactly 2 dimensions.

Test method:

If the coverage instance under test is encoded in a multipart message check or there is a GML box in the JPEG2000 file, that the dimension parameter of the gml:RectifiedGrid element or of a subtype thereof or of a subtype of gml:AbstractReferencealbeGrid of the gml:domainSet element of its first part has the value "2".

Test passes if constraint evaluates to true.

 

A.1.7    Correct CRS

A.1.7    Correct CRS

Test id:

/conf/jpeg2000-coverage/crs

Test Purpose:

Req 7 /req/jpeg2000-coverage/crs:
The coordinate reference system identified by the value of the srsName attribute of the gml:Envelope element of the gml:boundedBy element of a coverage encoded in JPEG2000 shall be the same as any coordinate reference system specified in any other georeference encoding embedded in the JPEG2000.

Test method:

If the coverage instance under test is encoded in a multipart message check or there is a GML box in the JPEG2000 file, that the srsName attribute of the gml:Envelope element of the gml:boundedBy element its first part defines the same coordinate reference system as the one used in any other georeference encoding embedded in the JPEG2000 file, which in case of gmlcov:ReferenceableGridCoverage is the coordinate reference system used for the tiepoints and in case of gmlcov:GridCoverage not present.

Test passes if constraint evaluates to true.

 

A.1.8    Correct axis ordering

A.1.8    Correct axis ordering

Test id:

/conf/jpeg2000-coverage/axis-ordering

Test Purpose:

Req 8 /req/jpeg2000-coverage/axis-ordering:
The value ordering of a coverage encoded in JPEG2000 shall adhere to the axis order of the coordinate reference system identified by the value of the srsName attribute of the gml:Envelope element of the gml:boundedBy element.

Test method:

If the coverage instance under test is encoded in a multipart message or there is a GML box in the JPEG2000 file, check that the coordinate reference system defined by the srsName attribute of the gml:Envelope element of the gml:boundedBy element of its first part defines the same axis ordering as the one used in the JPEG2000 datablocks.

Test passes if constraint evaluates to true.

 

A.1.9    Correct raster space

A.1.9    Correct raster space

Test id:

/req/jpeg2000-coverage/cell-geometry-is-area

Test Purpose:

Req 9 /req/jpeg2000-coverage/cell-geometry-is-area:
The gml:boundedBy of the domain description of a coverage using JPEG2000 encoding that also includes metadata about the type of cell geometry representation shall respect the coverage’s raster space depending on the type of cell geometry representation (center point or pixel area).

Test method:

If the coverage instance under test is encoded in a multipart message or there is a GML box in the JPEG2000 file, check that the values used in the gml:lowerCorner and gml:upperCorner elements of gml:Envelope element of the gml:boundedBy element of it are respecting the raster space setting used in the JPEG2000 datablock and documented in the metadata (e.g. MD_CellGeometryCode in ISO metadata).

In case of area, type gmlcov:RectifiedGridCoverage, and grid axis parallel to the CRS axis the difference between the values used in the gml:lowerCorner and gml:Envelope elements shall be the same as the number of pixels defined in the gml:domainSet element multiplied with the respective value of the respective gml:offsetVector element taking into account the right axis ordering.

In case of point, type gmlcov:RectifiedGridCoverage, and grid axis parallel to the CRS axis the difference between the values used in the gml:lowerCorner and gml:Envelope elements shall be the same as the number of pixels defined in the gml:domainSet element minus 1 multiplied with the respective value of the respective gml:offsetVector element taking into account the right axis ordering.

Test passes if constraints evaluate to true.

 

A.1.10 Correct range order

A.1.10 Correct range order

Test id:

/conf/jpeg2000-coverage/range-ordering

Test Purpose:

Req 10 /req/jpeg2000-coverage/range-ordering:
A coverage encoded in JPEG2000 with more than one component and referenced in the gml:rangSet shall order the components of the coverage’s in the same order as given in the gml:rangeType element’s document order.

Test method:

If the coverage instance under test is encoded in a multipart message or there is a GML box in the JPEG2000 file, check that the ordering used in the gmlcov:rangeType element of its first part is the same as used in the JPEG2000 datablocks.

Test passes if constraint evaluates to true.

 

A.1.11 Correct range sensor

A.1.11 Correct range sensor

Test id:

/conf/jpeg2000-coverage/range-sensor

Test Purpose:

Req 11 /req/jpeg2000-coverage/range-sensor:
The sensor information encoded in the swe:uom and the swe:AllowedValues in the gml:rangeType element of a coverage encoded in JPEG2000 shall be the same as the equivalent sensor information specified in any other encoding embedded in the JPEG2000.

Test method:

If the coverage instance under test is encoded in a multipart message or there is a GML box in the JPEG2000 file, check that the units of measure and allowed values used in the gmlcov:rangeType section in the swe:uom and swe:AllowedValues elements of it is the same as the used in the metadata describing the JPEG2000 (e.g in MD_Band).

Test passes if constraint evaluates to true.

 

– end of ATS –

 

Annex : Examples (Informative)

 

The following sketch corresponds to a multipart coverage (contents of second part omitted):


Content-Type: Multipart/Related; boundary=wcs;
        start=“GML-Part”
        type=“application/gml+xml”
 
-–wcs
Content-Type: text/xml
 
<?xml version=“1.0” encoding=“UTF-8”?>
<gmlcov:RectifiedGridCoverage
  xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
  xmlns:xlink=http://www.w3.org/1999/xlink
  xmlns:gml=http://www.opengis.net/gml/3.2
  xmlns:gmlcov=http://www.opengis.net/gmlcov/1.0
  xmlns:swe=http://www.opengis.net/swe/2.0
  xsi:schemaLocation=http://www.opengis.net/gmlcov/1.0 http://schemas.opengis.net/gmlcov/1.0/gmlcovAll.xsd
  gml:id=“grey”>
 <gml:boundedBy>
   <gml:Envelope srsName=“http://www.opengis.net/def/crs/EPSG/0/3857” axisLabels=“x y” uomLabels=“m m” srsDimension=“2”>
     <gml:lowerCorner>100 50</gml:lowerCorner>
     <gml:upperCorner>500 350</gml:upperCorner>
   </gml:Envelope>
 </gml:boundedBy>
 <gml:domainSet>
   <gml:RectifiedGrid dimension=“2” gml:id=“grid_grey”>
     <gml:limits>
       <gml:GridEnvelope>
         <gml:low>0 0</gml:low>
         <gml:high>39 29</gml:high>
       </gml:GridEnvelope>
     </gml:limits>
     <gml:axisLabels>x y</gml:axisLabels>
     <gml:origin>
       <gml:Point gml:id=“grid_origin_grey” srsName=“http://www.opengis.net/def/crs/EPSG/0/3857”>
         <gml:pos>105 345</gml:pos>
       </gml:Point>
     </gml:origin>
     <gml:offsetVector srsName=“http://www.opengis.net/def/crs/EPSG/0/ 3857”>10 0</gml:offsetVector>
     <gml:offsetVector srsName=“http://www.opengis.net/def/crs/EPSG/0/ 3857”>0 -10</gml:offsetVector>
   </gml:RectifiedGrid>
 </gml:domainSet>
 <gml:rangeSet>
   <gml:File>
     <gml:rangeParameters xlink:href=“cid:grey.jp2” xlink:role=“http://www.opengis.net/spec/gmlcov_jpeg2000-coverages/1.0/jpeg2000-coverage” xlink:arcrole=“fileReference”/>
     <gml:fileReference>cid:grey.jp2</gml:fileReference>
     <gml:fileStructure/>
     <gml:mimeType>image/jp2</gml:mimeType>
   </gml:File>
 </gml:rangeSet>
 <gmlcov:rangeType>
   <swe:DataRecord>
     <swe:field name=“grey”>
       <swe:Quantity definition=“http://www.opengis.net/def/property/OGC/0/Radiance”>
         <swe:description>Grey band</swe:description>
         <swe:nilValues/>
         <swe:uom code=“W.m-2.sr-1.nm-1”/>
         <swe:constraint>
           <swe:AllowedValues>
             <swe:interval>0 255</swe:interval>
           </swe:AllowedValues>
         </swe:constraint>
       </swe:Quantity>
     </swe:field>
   </swe:DataRecord>
 </gmlcov:rangeType>
</gmlcov:RectifiedGridCoverage>
-–wcs
Content-Type: image/jp2
Content-Description: coverage data
Content-Transfer-Encoding: binary
Content-ID: grey.jp2
Content-Disposition: inline
 
…
-–wcs–-

 

The following sketch corresponds to a GMLCOV XML file fragment embed in a JPEG2000 XML box:


<gmlcov:RectifiedGridCoverage
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:gml="http://www.opengis.net/gml/3.2"
  xmlns:gmlcov="http://www.opengis.net/gmlcov/1.0"
  xmlns:swe="http://www.opengis.net/swe/2.0"
  xsi:schemaLocation="http://www.opengis.net/gmlcov/1.0 http://schemas.opengis.net/gmlcov/1.0/gmlcovAll.xsd"
  gml:id=“grey”>
 <gml:boundedBy>
   <gml:Envelope srsName=“http://www.opengis.net/def/crs/EPSG/0/3857” axisLabels=“x y” uomLabels=“m m” srsDimension=“2”>
     <gml:lowerCorner>100 50</gml:lowerCorner>
     <gml:upperCorner>500 350</gml:upperCorner>
   </gml:Envelope>
 </gml:boundedBy>
 <gml:domainSet>
   <gml:RectifiedGrid dimension=“2” gml:id=“grid_grey”>
     <gml:limits>
       <gml:GridEnvelope>
         <gml:low>0 0</gml:low>
         <gml:high>39 29</gml:high>
       </gml:GridEnvelope>
     </gml:limits>
     <gml:axisLabels>x y</gml:axisLabels>
     <gml:origin>
       <gml:Point gml:id=“grid_origin_grey” srsName=“http://www.opengis.net/def/crs/EPSG/0/3857”>
         <gml:pos>105 345</gml:pos>
       </gml:Point>
     </gml:origin>
     <gml:offsetVector srsName=“http://www.opengis.net/def/crs/EPSG/0/ 3857”>10 0</gml:offsetVector>
     <gml:offsetVector srsName=“http://www.opengis.net/def/crs/EPSG/0/ 3857”>0 -10</gml:offsetVector>
   </gml:RectifiedGrid>
 </gml:domainSet>
 <gml:rangeSet>
   <gml:File>
     <gml:rangeParameters xlink:href="gmljp2://codestream/0" xlink:role=“http://www.opengis.net/spec/gmlcov_jpeg2000-coverages/1.0/jpeg2000-coverage” xlink:arcrole=“fileReference”/>
     <gml:fileReference>gmljp2://codestream/0</gml:fileReference>
     <gml:fileStructure/>
     <gml:mimeType>image/jp2</gml:mimeType>
   </gml:File>
 </gml:rangeSet>
 <gmlcov:rangeType>
   <swe:DataRecord>
     <swe:field name=“grey”>
       <swe:Quantity definition=“http://www.opengis.net/def/property/OGC/0/Radiance”>
         <swe:description>Grey band</swe:description>
         <swe:nilValues/>
         <swe:uom code=“W.m-2.sr-1.nm-1”/>
         <swe:constraint>
           <swe:AllowedValues>
             <swe:interval>0 255</swe:interval>
           </swe:AllowedValues>
         </swe:constraint>
       </swe:Quantity>
     </swe:field>
   </swe:DataRecord>
 </gmlcov:rangeType>
</gmlcov:RectifiedGridCoverage>

 

Annex : Revision history

 

Date Release Author Paragraph modified Description
2012-09-01 0.0.1 Joan Masó All First draft based on discussions in the WCS.SWG.
2012-09-18 0.0.2 Joan Masó Clause 5 and 6 Addition of a figure about the relation of this document with other documents. Addition of a requirement about sensors
2012-10-27 0.0.3 Joan Masó All Editorial changes

 


Annex : Bibliography

OGC 05-047r3 GML in JPEG 2000 for Geographic Imagery (GMLJP2) Encoding Specification version 1.0.0
OGC 09-110r4, OGC® Web Coverage Service 2.0 Interface Standard – Core, version 2.0
OGC 09-147r2, OGC® Web Coverage Service 2.0 Interface Standard – KVP Protocol Binding Extension, version 1.0
OGC 09-148r2, OGC® Web Coverage Service 2.0 Interface Standard – XML/POST Protocol Binding Extension, version 1.0
OGC 09-149r2, OGC® Web Coverage Service 2.0 Interface Standard – XML/SOAP Protocol Binding Extension, version 1.0

Footnotes


[1] www.opengeospatial.org/cite