i. Abstract
Coverages represent space/time-varying phenomena, such as satellite imagery, digital elevation models, or digital aerial imagery. OGC Abstract Topic 6 [OGC 07-011] – which is identical to ISO 19123 – defines an abstract model of coverages. Coverage instances may be encoded using the GML Application Schema – Coverages – JPEG2000 Coverage Encoding Extension version 1.0 [OGC 12-108] which is based on the GML Application Schema – Coverages (GMLCOV) version 1.0 [OGC 09-146r2] which in turn is based on the Geography Markup Language (GML) version 3.2 [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 to the Web Coverage Service (WCS) 2.0 Interface Standard – Core (WCS) version 2.0 [OC 09-110r4] specifies the usage of the JPEG2000 coverage encoding and JPIP streaming capabilities with WCS. The approach is based on the authoritative GML Application Schema – Coverages – JPEG2000 Coverage Encoding Extension version 1.0 [OGC 12-108].
ii. Keywords
Ogcdoc, ogc documents, wcs, jpeg2000, jpip, extension
iii. Preface
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):
- IGN France
- Strobel Geoinformatics
v. Submitters
All questions regarding this document should be directed to the editor or the contributors:
Name | Organization |
---|---|
Dimitri Sarafinof | IGN, France |
Stefan Strobel | Strobel Geoinformatics |
1. Scope
This OGC® Web Coverage Service 2.0 Candidate Interface Standard – JPEG2000/JPIP Coverage Encoding Extension – henceforth abbreviated as “JPEG2000-Coverages” specifies the usage of JPEG2000 coverage encoding retrieval though a JPIP URL with WCS.
2. Conformance
This document establishes the following requirements and conformance class:
- jpeg2000-access of URI http://www.opengis.net/spec/GMLCOV_jpeg2000-coverages/1.0/req/jpeg2000-access, with a single pertaining conformance class,jpeg2000-access, of URI http://www.opengis.net/spec/GMLCOV_jpeg2000-coverages/1.0/conf/jpeg2000-access.
- jpip-access of URI http://www.opengis.net/spec/GMLCOV_jpeg2000-coverages/1.0/req/jpip-access, with a single pertaining conformance class, jpip-access, of URI http://www.opengis.net/spec/GMLCOV_jpeg2000-coverages/1.0/conf/jpip-access.
Standardization target of all conformance classes are concrete coverage instance documents, as generated by some service and/or consumed by some client.
a concrete coverage instance can be a GMLCOV instance document with a reference to a specific file (for example though a JPIP URL).
URIs given in this document for each requirement or conformance test URIs are relative paths to be appended to the root http://www.opengis.net/spec/GMLCOV_jpeg2000-coverages/1.0/.
Annex A lists the conformance tests which shall be exercised on any software artifact claiming to implement jpeg2000-coverage and/or jpip-access conformance classes.
3. Normative references
This JPEG2000/JPIP-CoveragesBest Practice consists of this document and an associated XML Schema. The complete Best Practice is identified by the OGC URI:
http://www.opengis.net/spec/GMLCOV_jpeg2000-coverages/1.0,
the document has an OGC URI:
http://www.opengis.net/doc/ISx/GMLCOV_jpeg2000-coverages/1.0.
The complete WCS standard is available for download from http://www.opengeospatial.org/standards/wcs; additionally, the XML Schema is posted online at http://bp.schemas.opengis.net/14-110r2/gmlcov/jpeg2000/1.0 as part of the OGC schema repository. In the event of a discrepancy between bundled and schema repository versions of the XML Schema files, the schema repository shall be considered normative.
The following normative documents contain provisions that, through reference in this text, constitute provisions of this candidate standard. 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.
- [1] OGC 12-108, OGC® GML Application Schema - Coverages – JPEG2000 Coverage Encoding Extension, version 1.0
- jpeg2000-coverage
- [2] OGC 09-110r4, OGC® Web Coverage Service 2.0 Interface Standard – Core, version 2.0
- core
- [3] ISO/IEC 15444-1, Information technology — JPEG2000 Image Coding System. Part 1: Core coding system
- [4] ISO/IEC 15444-2, Information technology — JPEG2000 Image Coding System: Part 2: Extensions
- [5] IETF RFC3745 MIME Type Registrations for JPEG 2000 (ISO/IEC 15444)
Conformance classes used:
Conformance classes used:
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.
For the purposes of this document, the terms and definitions given in the above references apply.
5. Overview and conventions
5.1 Overview (informal)
JPEG 2000[1] (JP2) is an image compression standard and coding system. It was created by the Joint Photographic Experts Group committee in 2000 with the intention of superseding their original discrete cosine transform-based JPEG standard (created in 1992) with a newly designed, wavelet-based method. Please find further details in the OGC® GML Application Schema - Coverages – JPEG2000 Coverage Encoding Extension [OGC 12-108].
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 | GML Application Schema – Coverages 1.0 |
wcs | http://www.opengis.net/wcs/2.0 | WCS 2.0 |
jpeg2000 | http://www.opengis.net/gmlcov/jpeg2000/1.0 | JPEG2000-Coverages 1.0 |
5.3 Multiple representations
Where representations of the same information are given in this OGC Best Practice and the associated XML schema document and there are differences in the representations, the XML schema shall take precedence.
6. JPEG2000 coverage requirements class
Requirements class jpeg2000-accessestablishes how JPEG2000 encoded coverages can be requested from a WCS including parameters defining JPEG2000 features like compression, tiling, etc. Its identifying URL is given by http://www.opengis.net/spec/GMLCOV_jpeg2000-coverages/1.0/req/jpeg2000-access.
6.1 GetCapabilities
The support of JPEG2000 coverage encoding shall be advertised in ows:Profile and a wcs:formatSupported elements.
Requirement 1 |
/req/jpeg2000-coverage/gmlcov-extension-identifier |
A WCS implementing this extension shall include the following URI in a ows:Profile element of the ows:ServiceIdentification in a GetCapabilities response: |
Requirement 2 |
/req/jpeg2000-coverage/service-extension-identifier |
A WCS implementing this extension shall include the following URI in a ows:Profile element of the ows:ServiceIdentification in a GetCapabilities response: |
Requirement 3 |
/req/jpeg2000-coverage/format-supported |
A WCS implementing this extension shall include the following MIME type identifier in a wcs:formatSupported element in the wcs:ServiceMetadata element in a GetCapabilities response: |
6.2 DescribeCoverage
Requirement 4 |
/req/jpeg2000-coverage/native-format |
A coverage served via WCS and native format JPEG2000 shall use the following MIME type identifier in the wcs:nativeFormat element in the wcs:ServiceParameters element in a DescribeCoverage response: |
6.3 GetCoverage
6.3.1 GetCoverage request
Requirement 5 |
/req/jpeg2000-coverage/format-requested |
In a GetCoverage request requesting a coverage in JPEG2000 encoding the format parameter value shall be the following MIME type identifier: |
The following additional parameters are defined for requesting JPEG2000 encoded coverages via GetCoverage requests.
It is always possible for a given coverage instance to determine its current parameter values, i.e., the parameter values used at creation. Thus a JPEG2000 encoded coverage is self-describing.
Requirement 6 |
/req/jpeg2000-coverage/additional-parameters |
The structure of a GetCoverage request requesting a coverage in JPEG2000 encoding shall be extended as defined in Table 2 and the respective XML Schema being part of this standard. |
In case of using KVP protocol binding, it is recommended for server implementations to parse the format parameter first in order to have the right context for further parameters.
Name | Definition | Data Type | Multiplicity |
---|---|---|---|
profile | JPEG2000 profile used | String, one of: “PROFILE0”, “PROFILE1”, “PROFILE2” | zero or one (optional) |
compression | JPEG2000 compression rates and quality layers. Only the smallest compression rate defines the size of the data. The other rates define quality layers available. | String with coma separated list of compression rates “10,20,50” “-”shall be used for lossless compression |
zero or one (optional) |
tiling | Indicates if tiling is requested. If tiling is requested, then both tileheight and tileheight shall be provided. No tiling implies one tile which size is the coverage size. |
Boolean | zero or one (optional) |
tileheight | Tile height in pixels; allowed only together with tiling being "true" and tilewidth being present No tile parameter implies tile size being the maximum allowed by the profile (if specified). |
Integer greater than zero | zero or one (conditional to tiling=“true”) |
tilewidth | Tile width in pixels; allowed only together with tiling being "true" and tileheight being present | Integer greater than zero | zero or one (conditional to tiling=“true”) |
precinct | Indicates if precinct is requested. If precint is requested, then precinctsize shall be provided. | Boolean | zero or one (optional) |
precinctsize | Precinct dimensions (must be powers of 2). Multiple records may be supplied, in which case the first record refers to the highest resolution level and subsequent records to lower resolution levels. The last specified record is used for any remaining lower resolution levels. Inside each record, vertical coordinates appear first. | String with comma separated list of records i.e {256,256},{128,128},{64,64} | zero or one (conditional to precinct=“true”) |
georeference | Specifies how the georeference is provided. It can follow GeoJP2 specification or GMLJP2 OGC Standard. GMLJP2 requires format=“image/jpx” |
String, one of: “GEO”, “GML”, “GEO_GML” | zero or one |
depending of the profile used, restrictions may apply on others parameters (tiles size …).
6.3.2 GetCoverage response
A JPEG2000 encoded coverage follows the OGC® GML Application Schema - Coverages – JPEG2000 Coverage Encoding Extension [OGC 12-108] and thus the JPEG2000 format Specifications ([3] and [4]).
Requirement 7 |
/req/jpeg2000-coverage/format-returned |
The response to a successful GetCoverage request containing a format parameter with value image/jp2 or image/jpx shall consist of a coverage encoded as specified in the OGC® GML Application Schema - Coverages – JPEG2000 Coverage Encoding Extension [OGC 12‑108]. |
A JPEG2000 encoded coverage encodes the JPEG2000 features as requested in a GetCoverage request.
Requirement 8 |
/req/jeg2000-coverage/profile |
The response to a successful GetCoverage request containing a profile parameter shall consist of a JPEG2000 encoded coverage according to JPEG2000 format Specifications ([3] and [4]). |
Requirement 9 |
/req/jpeg2000-coverage/compression |
The response to a successful GetCoverage request containing a compression parameter shall consist of a JPEG2000 encoded coverage using the specified compression rates. |
Requirement 10 |
/req/jpeg2000-coverage/tiling |
The response to a successful GetCoverage request containing a tiling and a tileheight and a tilewidth parameter shall consist of a JPEG2000 encoded coverage with internal tiling using the specified height and width. |
Requirement 11 |
/req/jpeg2000-coverage/georeference |
The response to a successful GetCoverage request containing a georeference parameter shall consist of a JPEG2000 encoded coverage with georeference information included. |
A server not implementing the requested feature is always free to respond with an exception.
6.3.3 GetCoverage exceptions
Requirement 12 |
/req/jpeg2000-coverage/exceptions |
When a WCS server encounters an error described in column “meaning of exception code” in Table 3 then it shall return the corresponding exception report message with the contents of the locator parameter value as specified in the right column of Table 3. |
exceptionCode value | HTTP code | Meaning of code | locator value |
---|---|---|---|
ProfileNotSupported | 404 | Server does not support the requested profile. | Value of profile parameter. |
ProfileInvalid | 404 | Invalid profile requested. | Value of profile parameter. |
CompressionNotSupported | 404 | Server does not support the requested compression. | Value of compression parameter. |
CompressionInvalid | 404 | Invalid compression requested. | Value of compression parameter. |
TilingNotSupported | 404 | Server does not support tiling. | – |
TilingInvalid | 404 | Either tileheight, tilewidth, or both are missing or one or both are not a positive integer and thus invalid. | Value of tileheight and tilewidth parameter. |
GeoreferenceNotSupported | 404 | Server does not support the requested georeference. | Value of georeference parameter. |
GeoreferenceInvalid | 404 | Invalid georeference requested. | Value of georeference parameter. |
6.4 Examples
Following GetCoverage request will return coverage with id Coverage1 in JPEG2000 with GeoJP2 georeference.
Get/KVP encoding
http://www.myserver.com/wcs?service=WCS &version=2.0.1 &request=GetCoverage&coverageId=Coverage1&format= image/jp2 &profile=PROFILE1&compression=10,20,50&tiling=true&tileheight=1024&tilewidth=1024&precinct=yes&precinctSize={256,256},{128,128},{64,64}&georeferenced=GEO
XML/POST encoding
<?xml version=“1.0” encoding=“UTF-8”?>
<GetCoverage xmlns="http://www.opengis.net/wcs/2.0" service="WCS" version="2.0.1"
xmlns:jpeg2000="http://www.opengis.net/gmlcov/jpeg2000/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://www.opengis.net/wcs/2.0 http://schemas.opengis.net/wcs/2.0/wcsGetCoverage.xsd http://www.opengis.net/gmlcov/jpeg2000/1.0 gmlcovJPEG2000.xsd">
<Extension>
<jpeg2000:parameters>
<jpeg2000:profile>PROFILE1</jpeg2000:profile>
<jpeg2000:compression>10,20,50</jpeg2000:compression>
<jpeg2000:tiling>true</jpeg2000:tiling>
<jpeg2000:tileheight>1024</jpeg2000:tileheight>
<jpeg2000:tilewidth>1024</jpeg2000:tilewidth>
<jpeg2000:precinct>true</jpeg2000:precinct>
<jpeg2000:precinctsize>{256,256},{128,128},{64,64}</jpeg2000:precinctsize>
<jpeg2000:georeference>GEO</jpeg2000:georeference>
</jpeg2000:parameters>
</Extension>
<CoverageId>Coverage1</CoverageId>
<format>image/jp2</format>
<mediaType>multipart/mixed</mediaType>
</GetCoverage>
Following example to request a coverage through a JPIP url within a multipart file:
Get/KVP encoding
http://www.myserver.com/wcs?service=WCS &version=2.0.1 &request=GetCoverage&coverageId=Coverage1&format= text/xml;urn:ogc:def:wcs:2.0:jpip-response& mediaType= multipart/mixed&profile=PROFILE1&compression=-,10,20,50&precinct=yes&precinctSize={256,256},{128,128},{64,64}&georeferenced=GEO
XML/POST encoding
<?xml version=“1.0” encoding=“UTF-8”?>
<GetCoverage xmlns="http://www.opengis.net/wcs/2.0" service="WCS" version="2.0.1"
xmlns:jpeg2000="http://www.opengis.net/gmlcov/jpeg2000/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://www.opengis.net/wcs/2.0 http://schemas.opengis.net/wcs/2.0/wcsGetCoverage.xsd http://www.opengis.net/gmlcov/jpeg2000/1.0 gmlcovJPEG2000.xsd">
<Extension>
<jpeg2000:parameters>
<jpeg2000:profile>PROFILE1</jpeg2000:profile>
<jpeg2000:compression>10,20,50</jpeg2000:compression>
<jpeg2000:tiling>false</jpeg2000:tiling>
<jpeg2000:precinct>true</jpeg2000:precinct>
<jpeg2000:precinctsize>{256,256},{128,128},{64,64}</jpeg2000:precinctsize>
<jpeg2000:georeference>GEO</jpeg2000:georeference>
</jpeg2000:parameters>
</Extension>
<CoverageId>Coverage1</CoverageId>
<format>text/xml;urn:ogc:def:wcs:2.0:jpip-response</format>
<mediaType>multipart/mixed</mediaType>
</GetCoverage>
7. JPIP access requirements class
Requirements class jpip-access establishes how JPEG200 encoded coverages can be requested from a service and retrieved through a JPIP URL, including parameters defining JPEG200 features like compression, tiling, etc. Its identifying URL is given by http://www.opengis.net/spec/GMLCOV_jpeg2000-coverages/1.0/req/jpip-access.
7.1 GetCapabilities
The support of JPEG2000 coverage encoding shall be advertised in ows:Profile and a wcs:formatSupported elements.
Requirement 13 |
/req/jpip-access/gmlcov-extension-identifier |
A WCS implementing this extension shall include the following URI in a ows:Profile element of the ows:ServiceIdentification in a GetCapabilities response: |
Requirement 14 |
/req/jpip-access/service-extension-identifier |
A WCS implementing this extension shall include the following URI in a ows:Profile element of the ows:ServiceIdentification in a GetCapabilities response: |
Requirement 15 |
/req/jpip-access/format-supported |
A WCS implementing this extension shall include the following MIME type identifier in a wcs:formatSupported element in the wcs:ServiceMetadata element in a GetCapabilities response: |
7.2 DescribeCoverage
Requirement 16 |
/req/jpip-access/native-format |
A coverage served via WCS and native format JPEG2000 shall use the following MIME type identifier in the wcs:nativeFormat element in the wcs:ServiceParameters element in a DescribeCoverage response: |
JPIP being a protocol and not a format, the native format is reported as a JPEG2000.
7.3 GetCoverage
7.3.1 GetCoverage request
A JPEG2000 coverage that has to be streamed through a JPIP URL can only be provided with a multipart/mixed document with a reference to this URL.
Requirement 17 |
/req/jpip-access/format-requested |
In a GetCoverage request requesting a JPEG2000 coverage through a JPIP URL, the format parameter value shall be the following MIME type identifier: |
Requirement 18 |
/req/jpip-access/mediatype-requested |
In a GetCoverage request requesting a JPEG2000 coverage through a JPIP URL, the mediatype parameter value shall be the following value: |
The following additional parameters are defined for requesting JPEG2000 encoded coverages via GetCoverage requests.
It is always possible for a given coverage instance to determine its current parameter values, i.e., the parameter values used at creation. Thus a JPEG2000 encoded coverage is self-describing.
Requirement 19 |
/req/jpip-access/additional-parameters |
The structure of a GetCoverage request requesting a coverage in JPEG2000 encoding shall be extended as defined in Table 2 and the respective XML Schema being part of this standard. |
In case of using KVP protocol binding, it is recommended for server implementations to parse the format parameter first in order to have the right context for further parameters.
Requirement 20 |
/req/jpeg2000-coverage/additional-parameters-constraints |
The parameters values of a GetCoverage request requesting a coverage in JPEG2000 encoding shall be compliant to restrictions defined by ISO 15444 Standard, depending on profile choice. |
7.3.2 GetCoverage response
The JPIP accessed coverage follows the OGC® GML Application Schema - Coverages – JPEG2000 Coverage Encoding Extension [OGC 12-108] and thus the JPEG2000 format Specifications ([3] and [4]).
A GMLCOV JPEG2000 coverage is not different from a GMLCOV coverage with JPIP access; instead of providing a multipart document with the GML file and the JPEG2000 file, only the GML file is provided to the client.
The JPIP URL provide to the link to stream the JPEG2000 file. It means the "<gml:File>/<gml:fileReference>" element provides a JPIP URL (like http://myserver.com/coverages/coverage1.jp2) instead of just the file name (coverage1.jp2).
Requirement 21 |
/req/jpip-access/document-returned |
The response to a successful GetCoverage request containing a format parameter with value text/xml;urn:ogc:def:wcs:2.0:jpip-responseand amediatype parameter with value multipart/mixed shall be a document compliant to multipart conformance class from GMLCOV 1.0. |
Requirement 22 |
/req/jpip-access/range-set |
Within the mulipart document, the range set of the coverage shall be provided by reference (<gml:File>/<gml:fileReference>) containing the JPIP URL. |
A JPEG2000 encoded coverage retrieved through a JPIP URL encodes the JPEG2000 features as requested in a GetCoverage request.
Requirement 23 |
/req/jpip-access/parameters |
The JPEG2000 file retrieved from the JPIP URL in a response to a successful GetCoverage request shall statisfy requirements Requirement 7, Requirement 8, Requirement 9, Requirement 10 and Requirement 11. |
A server not implementing the requested feature is always free to respond with an exception.
7.3.3 GetCoverage exceptions
Requirement 24 |
/req/jpip-access/exceptions |
When a WCS server encounters an error described in column “meaning of exception code” in Table 3 – Exception codes for JPEG2000 then it shall return the corresponding exception report message with the contents of the locator parameter value as specified in the right column of Table 3. |
Annex A: 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/JPIP coverage encoding extension.
Test identifiers below are relative to
http://www.opengis.net/spec/GMLCOV_jpeg2000-coverages/1.0/
A.1 Conformance class: jpeg2000-coverage
The OGC URI identifier of this conformance class is:
http://www.opengis.net/spec/GMLCOV_jpeg2000-coverages/1.0/conf/jpeg2000-access.
A.1.1 Prerequisites
Make sure that at least one coverage with JPEG2000 as native format is available from server under test.
A.1.2 Include GMLCOV extension identifier | |
Test id: | /req/jpeg2000-coverage/gmlcov-extension-identifier |
Test Purpose: |
/req/jpeg2000-coverage/gmlcov-extension-identifier: |
Test method: |
Send a GetCapabilities request to the server under test and verify that the response contains a Profile element with said URI. Test passes if constraint evaluates to true. |
A.1.3 Include WCS extension identifier | |
Test id: | /req/jpeg2000-coverage/service-extension-identifier |
Test Purpose: |
/req/jpeg2000-coverage/service-extension-identifier: |
Test method: |
Send a GetCapabilities request to the server under test and verify that the response contains a Profile element with said URI. Test passes if constraint evaluates to true. |
A.1.4 Include format supported | |
Test id: | /req/jpeg2000-coverage/format-supported |
Test Purpose: |
/req/jpeg2000-coverage/format-supported: |
Test method: |
Send a GetCapabilities request to the server under test and verify that the response contains a wcs:formatSupported element in the wcs:ServiceMetadata element with the value "image/jp2" and/or "image/jpx ". Test passes if constraint evaluates to true. |
A.1.5 Native format | |
Test id: | /req/jpeg2000-coverage/native-format |
Test Purpose: |
/req/jpeg2000-coverage/native-format: |
Test method: |
Send DescribeCoverage requests to the server under test for each coverage known to have JPEG2000 as native format and verify that the responses contain a wcs:nativeFormat element in the wcs:ServiceParameters element with the value "image/jp2" or "image/jpx". Test passes if constraint evaluates to true. |
A.1.6 Format parameter | |
Test id: | /req/jpeg2000-coverage/format-requested |
Test Purpose: |
/req/jpeg2000-coverage/format-requested: |
Test method: |
Send GetCoverage requests to the server under test for each coverage known to be able to be encoded in JPEG2000 (which are at least the ones known to have JPEG2000 as native format) with the format parameter set to "image/jp2" or "image/jpx" and verify that the responses are properly encoded in JPEG2000. Test passes if constraint evaluates to true. |
A.1.7 Additional parameters | |
Test id: | /req/jpeg2000-coverage/additional-parameters |
Test Purpose: |
/req/jpeg2000-coverage/additional-parameters: |
Test method: |
Send GetCoverage requests to the server under test for a coverage known to be available using JPEG2000 encoding for each parameter defined in Table 2 and each possible value for String and Boolean parameters and at least 3 different values for Integer parameters. Each request shall include one optional parameter respecting dependencies (e.g. tileheight needs tiling set to true). Test passes if for each request the response either indicates (by inspection) that the parameter has been recognized and executed properly or is a valid exception as defined in Error! Reference source not found.. |
A.1.8 Format returned | |
Test id: | /req/jpeg2000-coverage/format-returned |
Test Purpose: |
/req/jpeg2000-coverage/format-returned: |
Test method: |
Send GetCoverage requests to the server under test for each coverage known to be able to be encoded in JPEG2000 (which are at least the ones known to have JPEG200 as native format) with the format parameter set to "image/jp2" or "image/jpx" and verify that the responses are properly encoded in JPEG2000. Exercise tests for at least each of the following situations: mediaType parameter present with value "multipart/related"
mediaType parameter not present Test passes if for each request the response indicates (by inspection) that the parameter(s) has(have) been recognized and executed properly. |
A.1.9 Parameter for profile | |
Test id: | /req/jpeg2000-coverage/profile |
Test Purpose: |
/req/jeg2000-coverage/profile: |
Test method: |
Send GetCoverage requests to the server under test for each coverage known to be able to be encoded in JPEG2000 (which are at least the ones known to have JPEG2000 as native format) with the format parameter set to "image/jp2" or "image/jpx" and the "profile" parameter with all allowed values and verify that the responses are properly encoded in JPEG2000. Test passes if for each request the response either indicates (by inspection) that the parameters have been recognized and executed properly or is the valid exception " ProfileNotSupported" as defined in Table 3. |
A.1.10 Parameter for compression | |
Test id: | /req/jpeg2000-coverage/compression |
Test Purpose: |
/req/jpeg2000-coverage/compression: |
Test method: |
Send GetCoverage requests to the server under test for each coverage known to be able to be encoded in JPEG2000 (which are at least the ones known to have JPEG2000 as native format) with the format parameter set to "image/jp2" or "image/jpx" and the "compression" parameter present for followings values of the "compression" parameter (“-”,“10”, “20”, “50”, “-,10,20,50”) and verify that the responses are properly encoded in JPEG2000. Test passes if for each request the response either indicates (by inspection) that the parameters have been recognized and executed properly or is the valid exception "CompressionNotSupported" as defined in Table 3. |
A.1.11 Parameter for tiling | |
Test id: | /req/jpeg2000-coverage/tiling |
Test Purpose: |
/req/jpeg2000-coverage/tiling: |
Test method: |
Send GetCoverage requests to the server under test for each coverage known to be able to be encoded in JPEG2000 (which are at least the ones known to have JPEG2000 as native format) with the format parameter set to "image/jp2" or "image/jpx“, the”tiling" parameter set to "true“, and the”tileheight" and "tilewidth" parameters set to at least 3 different valid values and verify that the responses are properly encoded in JPEG2000. Test passes if for each request the response either indicates (by inspection) that the parameters have been recognized and executed properly or is the valid exception "TilingNotSupported" as defined in Table 3. |
A.1.12 Parameter for georeference | |
Test id: | /req/jpeg2000-coverage/georeference |
Test Purpose: |
/req/jpeg2000-coverage/georeference: |
Test method: |
Send GetCoverage requests to the server under test for each coverage known to be able to be encoded in JPEG2000 (which are at least the ones known to have JPEG2000 as native format) with the format parameter set to "image/jp2" or "image/jpx“, the”georeference" parameter set to all possible values and verify that the responses are properly encoded in JPEG2000/GMLJP2. Test passes if for each request the response either indicates (by inspection) that the parameters have been recognized and executed properly or is the valid exception " GeoreferenceNotSupported" as defined in Table 3. |
A.1.13 Exceptions | |
Test id: | /req/jpeg2000-coverage/exceptions |
Test Purpose: |
/req/jpeg2000-coverage/exceptions: |
Test method: |
Send GetCoverage requests to the server under test for a coverage known to be available using JPEG2000 encoding for each parameter defined in Table 2 including exactly one optional and using an invalid value. Test passes if for each request the response is a valid exception as defined in Table 3 using the relevant exceptionCode. |
A.2 Conformance Test Class: jpip-access
The OGC URI identifier of this conformance class is:
http://www.opengis.net/spec/GMLCOV_jpeg2000-coverages/1.0/conf/jpip-access.
A.2.1 Prerequisites
Make sure that at least one coverage with JPEG2000 as native format is available from server under test.
A.2.2 Include GMLCOV extension identifier | |
Test id: | /req/jpip-access/gmlcov-extension-identifier |
Test Purpose: |
/req/jpip-access/gmlcov-extension-identifier: |
Test method: |
Send a GetCapabilities request to the server under test and verify that the response contains a Profile element with said URI. Test passes if constraint evaluates to true. |
A.2.3 Include Service extension identifier | |
Test id: | /req/jpip-access/service-extension-identifier |
Test Purpose: |
/req/jpip-access/service-extension-identifier: |
Test method: |
Send a GetCapabilities request to the server under test and verify that the response contains a Profile element with said URI. Test passes if constraint evaluates to true. |
A.2.4 Include format supported | |
Test id: | /req/jpeg2000-coverage/format-supported |
Test Purpose: |
/req/jpeg2000-coverage/format-supported: |
Test method: |
Send a GetCapabilities request to the server under test and verify that the response contains a wcs:formatSupported element in the wcs:ServiceMetadata element with the value "image/jp2" and/or "image/jpx ". Test passes if constraint evaluates to true. |
A.2.5 Native format | |
Test id: | /req/jpeg2000-coverage/native-format |
Test Purpose: |
/req/jpeg2000-coverage/native-format: |
Test method: |
Send DescribeCoverage requests to the server under test for each coverage known to have JPEG2000 as native format and verify that the responses contain a wcs:nativeFormat element in the wcs:ServiceParameters element with the value "image/jp2" or "image/jpx". Test passes if constraint evaluates to true. |
A.2.6 Format parameter | |
Test id: | /req/jpeg2000-coverage/format-requested |
Test Purpose: |
/req/jpeg2000-coverage/format-requested: |
Test method: |
Send GetCoverage requests to the server under test for each coverage known to be able to be encoded in JPEG2000 (which are at least the ones known to have JPEG2000 as native format) with the format parameter set to "image/jp2" or "image/jpx" and verify that the responses are properly encoded in JPEG2000. Test passes if constraint evaluates to true. |
A.2.7 Additional parameters | |
Test id: | /req/jpeg2000-coverage/additional-parameters |
Test Purpose: |
/req/jpeg2000-coverage/additional-parameters: |
Test method: |
Send GetCoverage requests to the server under test for a coverage known to be available using JPEG2000 encoding for each parameter defined in Table 2 and each possible value for String and Boolean parameters and at least 3 different values for Integer parameters. Each request shall include one optional parameter respecting dependencies (e.g. tileheight needs tiling set to true). Test passes if for each request the response either indicates (by inspection) that the parameter has been recognized and executed properly or is a valid exception as defined in Table 3. |
A.2.8 Format returned | |
Test id: | /req/jpeg2000-coverage/format-returned |
Test Purpose: |
/req/jpeg2000-coverage/format-returned: |
Test method: |
Send GetCoverage requests to the server under test for each coverage known to be able to be encoded in JPEG2000 (which are at least the ones known to have JPEG200 as native format) with the format parameter set to "image/jp2" or "image/jpx" and verify that the responses are properly encoded in JPEG2000. Exercise tests for at least each of the following situations: mediaType parameter present with value "multipart/related"
mediaType parameter not present Test passes if for each request the response indicates (by inspection) that the parameter(s) has(have) been recognized and executed properly. |
A.2.9 Parameter for profile | |
Test id: | /req/jpeg2000-coverage/profile |
Test Purpose: |
/req/jeg2000-coverage/profile: |
Test method: |
Send GetCoverage requests to the server under test for each coverage known to be able to be encoded in JPEG2000 (which are at least the ones known to have JPEG2000 as native format) with the format parameter set to "image/jp2" or "image/jpx" and the "profile" parameter with all allowed values and verify that the responses are properly encoded in JPEG2000. Test passes if for each request the response either indicates (by inspection) that the parameters have been recognized and executed properly or is the valid exception " ProfileNotSupported" as defined in Table 3. |
A.2.10 Parameter for compression | |
Test id: | /req/jpeg2000-coverage/compression |
Test Purpose: |
/req/jpeg2000-coverage/compression: |
Test method: |
Send GetCoverage requests to the server under test for each coverage known to be able to be encoded in JPEG2000 (which are at least the ones known to have JPEG2000 as native format) with the format parameter set to "image/jp2" or "image/jpx" and the "compression" parameter present for followings values of the "compression" parameter (“-”,“10”, “20”, “50”, “-,10,20,50”) and verify that the responses are properly encoded in JPEG2000. Test passes if for each request the response either indicates (by inspection) that the parameters have been recognized and executed properly or is the valid exception "CompressionNotSupported" as defined in Table 3. |
A.2.11 Parameter for tiling | |
Test id: | /req/jpeg2000-coverage/tiling |
Test Purpose: |
/req/jpeg2000-coverage/tiling: |
Test method: |
Send GetCoverage requests to the server under test for each coverage known to be able to be encoded in JPEG2000 (which are at least the ones known to have JPEG2000 as native format) with the format parameter set to "image/jp2" or "image/jpx“, the”tiling" parameter set to "true“, and the”tileheight" and "tilewidth" parameters set to at least 3 different valid values and verify that the responses are properly encoded in JPEG2000. Test passes if for each request the response either indicates (by inspection) that the parameters have been recognized and executed properly or is the valid exception "TilingNotSupported" as defined in Table 3. |
A.2.12 Parameter for georeference | |
Test id: | /req/jpeg2000-coverage/georeference |
Test Purpose: |
/req/jpeg2000-coverage/georeference: |
Test method: |
Send GetCoverage requests to the server under test for each coverage known to be able to be encoded in JPEG2000 (which are at least the ones known to have JPEG2000 as native format) with the format parameter set to "image/jp2" or "image/jpx“, the”georeference" parameter set to all possible values and verify that the responses are properly encoded in JPEG2000/GMLJP2. Test passes if for each request the response either indicates (by inspection) that the parameters have been recognized and executed properly or is the valid exception " GeoreferenceNotSupported" as defined in Table 3. |
A.2.13 Exceptions | |
Test id: | /req/jpeg2000-coverage/exceptions |
Test Purpose: |
/req/jpeg2000-coverage/exceptions: |
Test method: |
Send GetCoverage requests to the server under test for a coverage known to be available using JPEG2000 encoding for each parameter defined in Table 2 including exactly one optional and using an invalid value. Test passes if for each request the response is a valid exception as defined in Table 3 using the relevant exceptionCode. |
– end of ATS –
Annex B: Revision history
Date | Release | Editor | Primary clauses modified | Description |
---|---|---|---|---|
2014-06-23 | 0.0.1 | Dimitri Sarafinof | All | First draft based on discussions in the WCS.SWG. |
2014-10-22 | 0.1.0 | Dimitri Sarafinof | All | Feedback from OGC (Calgary TC) and DGIWG (Madrid TP) |
2014-11-12 | 0.2.0 | Dimitri Sarafinof | All | OGC document number and cleaning for pending document |
2015-04-08 | 0.3.0 | Dimitri Sarafinof | All | Alignment with OGC 12-108, examples added |
2016-05-25 | 1.0 | Scott Simmons | All | Prepare for publication |
[1] http://en.wikipedia.org/wiki/JPEG_2000