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

This document is the specification for the OpenSearch extension for Earth Observation collections and products search.

This standard is intended to provide a very simple way to make queries to a repository that contains Earth Observation information and to allow syndication of repositories.

ii. Keywords

The following are keywords to be used by search engines and document catalogues.

ogcdoc, OGC document, OpenSearch, Earth Observation Extension, OpenSearch Earth Observation Service, EO Collection, EO Product, ISO19115, INSPIRE, OGC O&M EOP

iii. Preface

This document is the result of work undertaken within the GENESI-DR (Ground European Network for Earth Science Interoperations - Digital Repositories) project funded by the 7th Framework program of the European (EC Grant Agreement no. 212073), the follow-up project GENESI-DEC (Ground European Network for Earth Science Interoperations -Digital Earth Community) funded by the same program (Contract nº RI-261623). The document was initially produced during the ESA HMA (Heterogeneous Missions Accessibility) initiative [OR1] and related projects.

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

Terradue SRL
con terra GmbH
Spacebel s.a.
European Space Agency (ESA)
EADS Astrium

v.  Submitters

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

 

Name Affiliation OGC Member?

Pedro Gonçalves

Terradue Srl

Yes

Uwe Voges

con terra GmbH

Yes

Yves Coene

Spacebel s.a.

Yes

1.    Scope

The OpenSearch specification originated in a community effort built around Amazon’s A9.com. It was intended to allow syndication of search results that could then be aggregated by one large index. The OpenSearch specification is made available under the Creative Commons Attribution-Sharealike 2.5 license.

Earth Observation (EO) products have specific characteristics like the orbit number, processing center, and acquisition station that follow a specific logic inherent to the EO community of users of satellite datasets. Typically, an EO product contains information regarding the:

The OpenSearch Description document format allows the use of extensions that allow search engines to inform clients about specific and contextual query parameters. This OGC candidate standard specifies an Earth Observation extension to OpenSearch that defines query parameters that allow the filtering of search results with those fields.

This document incorporates feedback from developers in the open source geospatial community and includes several annexes showing result sets in several possible formats and giving details that reflect a sample implementation.

Services that support the OpenSearch Specification and the Earth Observation extension defined in this document are called OpenSearch Earth Observation Services (OpenSearch-EO).

2.    Conformance

Conformance with this standard shall be checked using all the relevant tests specified in Annex A (normative) of this document. Annex B presents the different RELAX-NG schemas for the OpenSearch Description and the Atom Response Documents. 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 any one of the conformance classes specified in Table 1. The implementation can be validated with the conformance test defined in Annex A (normative). An implementation candidate to conformance shall minimally pass all applicable tests specified in the Abstract Test Suite belonging to core conformance class (minimal support).

The mappings between the requirements belonging to a requirements class and the associated conformance class are shown in the table below. All requirements-classes, conformance-classes and conformance tests described in this document are owned by the specification identified as http://www.opengis.net/spec/opensearcheo/1.0.

Table : Conformance Classes
Conformance Class Name Conformance Class URI Requirements Class URI Requirements

Core

/conf/Core

/req/Core

/req/osd (Req 1)

/req/namespaces (Req 2)

/req/atom (Req 3)

/req/request/parameters (Req 4)

/req/request/ kvpget (Req 8)

/req/response/atom (Req 9)

EOForeignElement

/conf/Earth ObservationForeignElement

/req/Earth ObservationForeignElement

/req/entry-eop (Req 10)

Suggestions

/conf/Suggestions

 

/req/Suggestions

 

/req/suggestions (Req 6)

/req/suggestions-range (Req 7)

 

INSPIRE

/conf/INSPIRE

/req/INSPIRE

/req/request/INSPIRE (Req 5)

 

3.    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.

IETF RFC4287, Atom - The Atom Syndication Format
Media RSS, http://www.rssboard.org/media-rss
OASIS OpenSearch, searchRetrieve: Part 4. APD Binding for OpenSearch Version 1.0, OASIS Standard, 30 January 2013, http://docs.oasis-open.org/search-ws/searchRetrieve/ v1.0/os/part4-opensearch/searchRetrieve-v1.0-os-part4-opensearch.html
OGC 06-121r9, OpenGIS® Implementation Standard: OGC Web Services Common Standard
OGC 06-103r4, OpenGIS® Implementation Standard: Geographic information - Simple feature access - Part 1: Common architecture
OGC 10-032r8, OpenGIS® Implementation Standard: OpenSearch Geo and Time Extensions
OGC 10-157r3, OpenGIS® Implementation Standard: Earth Observation Metadata profile of Observations & Measurements, V 1.0
OGC 10-157r4, OpenGIS® Implementation Standard: Earth Observation Metadata profile of Observations & Measurements, V 1.1
OGC 11-035r1, OGC Best Practice: Implementation Standard EO Collection, Service and Sensor Discovery using the CS-W ebRIM Catalogue
OGC 06-131r6, OGC Implementation Standard: OGC Catalogue Services Standard 2.0 Extension Package for ebRIM Application Profile: Earth Observation Products”
OGC 13-084r2, OGC Extension Package Standard: OGC I15 (ISO19115 Metadata) Extension Package of CS-W ebRIM Profile 1.0.
OGC 09-163r2, OGC Discussion Paper: OGC Catalogue Services Specification 2.0 Extension Package for ebRIM Application Profile: SensorML
OGC 07-122r2, OpenGIS® SensorML Encoding Standard, version 1.0. Schema – Corrigendum 1
OGC 12-000, OGC Encoding Standard: OGC® SensorML: Model and XML Encoding Standard
The Library of Congress, Information Resource Retrieval Protocols:SRU/SRW (Search and Retrieve URL/Web Service)  DC Schema for SRU (http://www.loc.gov/standards/sru/recordSchemas/dc-schema.html)
INSPIRE Metadata Implementing Rules: Technical Guidelines based on EN ISO 19115 and EN ISO 19119 (http://inspire.ec.europa.eu/index.cfm/pageid/101)
Technical Guidance for the implementation of INSPIRE Discovery Services (http://inspire.ec.europa.eu/index.cfm/pageid/5)
ISO 19115:2003, Geographic Information – Metadata
ISO 19115:2003/Cor 1:2006, Geographic information – Metadata - Corrigendum 1
ISO/TS 19139:2007, Geographic information – Metadata – XML schema implementation
ISO19115-2:2009, Geographic information – Metadata – Part 2: Extensions for imagery and gridded data.
ISO/TS 19139-2:2012, Geographic information - Metadata - XML schema implementation - Part 2: Extensions for imagery and gridded data
ISO 19115-1:2014, Geographic information – Metadata – Part 1: Fundamentals
ISO/TS 19115-3, Geographic information – Metadata – Part 3: XML schema implementation for fundamental concepts
OpenSearch Parameter Extension, http://www.opensearch.org/Specifications/ OpenSearch/Extensions/Parameter/1.0/Draft_2
RFC 3339, Date and Time on the Internet: Timestamps. Internet profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. http://www.ietf.org/rfc/rfc3339.txt
RFC 5646, Tags for Identifying Languages - http://tools.ietf.org/html/rfc5646
RFC 5988, Web Linking - http://tools.ietf.org/html/rfc5988
http://www.iana.org/assignments/link-relations/link-relations.xhtml

 

3.1    Other References

HMA - Heterogeneous Missions Accessibility – Design Methodology, Architecture and Use of Geospatial Standards for the Ground Segment Support of Earth Observation missions ESA TM-21, http://www.esa.int/About_Us/ESA_Publications/ESA_TM- 21_Heterogeneous_Missions_Accessibility.

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 following additional terms and definitions apply.

4.1       Collection

A Collection or a Dataset Series (in short Series) defines a container for a list of Products (or datasets) that have common properties. Products inherit all the Collection properties that are not explicitly overridden.

4.2       Product

A Product or a Dataset corresponds to an identifiable collection of data under one single identifier. It is independent of a physical form or an encoding even if it is normally distributed in a single file.

4.3       OpenSearch

Draft specification for web search syndication, originating from Amazon’s A9 project and given a corresponding interface binding by the OASIS Search Web Services working group.

4.4       OpenSearch Geospatial Service

Defines services that comply with the OpenSearch Specification and the Geo extension defined in OGC 10-032.

4.5       OpenSearch GeoTemporal Service

Defines services that comply with the OpenSearch Specification, the Geo and Time extensions defined in OGC 10-032.

4.6       OpenSearch Description Document

An XML document available at a consistent location describing metadata for the service and providing templates for queries.

4.7       OpenSearch Earth Observation Service

Defines services that comply with the OpenSearch Specification and the Earth Observation extension defined in this document.

4.8       Search feed

The response document of search service request containing zero or several entries.

4.9       Entry

An element of the search response representing a catalogued resource.

5.    Conventions

5.1    Abbreviated terms

Some of the abbreviated terms listed in Subclause 5.1 of the OWS Common Implementation Specification [OGC 06-121] apply to this document, plus the following:

EC                   European Commission

EO                  Earth Observation

EOP                Earth Observation Product

ESA                European Space Agency

OASIS            Advancing Open Standards for the Information Society

O&M              Observations and Measurements

SRU                Search/Retrieval via URL

SWS                Search Web Services

5.2    Namespace prefix conventions

Table 2 lists the namespaces used in this document and the specifications in which they are defined. The prefixes are not normative and are merely chosen for convenience; they may appear in examples without being formally declared, and have no semantic significance. The namespaces to which the prefixes correspond are normative, however.

Table : Namespace mappings
Prefix Namespace URI Specification

os

http://a9.com/-/spec/opensearch/1.1/"

OpenSearch 1.1 Specification

geo

http://a9.com/-/opensearch/extensions/geo/1.0/

OpenSearch Geo Extension

time

http://a9.com/-/opensearch/extensions/time/1.0/

OpenSearch Time Extension

atom

http://www.w3.org/2005/Atom

The Atom Syndication Format Common 1.0 – RFC-4287

georss

http://www.georss.org/georss

GeoRSS Specification

dc

http://purl.org/dc/elements/1.1/

Namespace Policy for the DCMIa

dct

http://purl.org/dc/terms/

Namespace Policy for the DCMIa

param

http://a9.com/-/opensearch/extensions/param/1.0/

OpenSearch parameter extension

sru

http://a9.com/-/opensearch/extensions/sru/2.0/

OpenSearch SRU Extension

media

http://search.yahoo.com/mrss/

Media RSS

eop

http://www.opengis.net/eop/2.0 or

http://www.opengis.net/eop/2.1

EO product schema namespace defined in OGC 10-157r3 or

EO product schema namespace defined in OGC 10-157r4

eo

http://a9.com/-/opensearch/extensions/eo/1.0/

OpenSearch Extension for EO

gmd

http://www.isotc211.org/2005/gmd

ISO19115/ISO19139

gmi

http://www.isotc211.org/2005/gmi

ISO19115-2/ISO19139-2

mdb

http://standards.iso.org/iso/19115/-3/mdb/1.0

ISO19115-1/ISO19115-3

sml

http://www.opengis.net/sensorml/2.0

Sensor ML 2.0

srw_dc

info:srw/schema/1/dc-schema

Dublin Core Schema for SRU

a       See <http://dublincore.org/documents/dcmi-namespace/>.

 

6.    Overview

As the OpenSearch specification is defined in the OASIS SWS bindings [OASIS OpenSearch], we confine ourselves here to the OpenSearch Earth Observation extension. This specification is complementary to the OpenSearch Geo and Time Extensions (OGC 10-032) and recommends its use for spatial and temporal queries.

The Earth Observation Extension specifies a series of parameters that can be used to constrain search results. These are discussed in more detail in Section 8.1. In short, provision is made to filter results by sensor information, acquisition, processing parameters and other information. The purpose of the OpenSearch Extension for Earth Observation is to make sure that OpenSearch parameters are aligned with OGC 10-157r4 that describes EO products metadata and with ISO19115(-1)/ISO19115-2 that is used for describing EO collection metadata. An OpenSearch Earth Observation Service is not expected to support all the elements defined here but use them in accordance with a given use case and search service contents.

6.1    Collections and Products

The parameters defined in this extension can be used both to search resources identifying EO Collections (i.e. dataset series) or EO Products (i.e. datasets) although different parameters are more suitable for one of the two (see 8.1).

An EO Collection is defined as a set of EO Products sharing a common specification or characteristics. For example, an EO Collection can be defined as series of EO products of the same satellite (e.g. MSG) and the same sensor (detector, e.g. SEVIRI/optical) acquired at different times.

Within ESA´s Heterogeneous Missions Access (HMA) project [HMA] the EO Collection Metadata (describing an EO Collection) is differentiated from the EO Product Metadata (describing an EO Product) (see Figure 1). EO Collections are described by metadata that are focused on the general application area (usage scenarios), the dissemination channels, access and use constraints and on the producer of the data etc. Nevertheless, it also includes metadata that is equally applicable to EO Products like information on the acquisition type (e.g. satellite and instrument) or on spatial and temporal extents describing the covered area. This metadata shall be interpreted as common to all EO Products of the same collection so that it must not be repeated within the metadata of every single EO Product.

General UML model of EO Collection and EO Product Metadata
Figure: : General UML model of EO Collection and EO Product Metadata

In contrast to EO Collection metadata, EO Product metadata is more geared to concrete technical details of the acquisition, quality, processing, archiving of the concrete EO Product.

6.2    Two Step Search

In a typical search scenario, a client will first search for the appropriate EO Collection with the parameters appropriate to EO Collections (see 8.1). In the search response he will find the details (e.g. the identifier or the link to the OpenSearch description document) to search for EO Products of that EO Collection that he identifies as most appropriate.

6.3    Search Optimization

In the case of a two-step search a possible search optimization is to follow an inheritance model as defined in ISO19115 where the product implicitly inherits the properties of the associated collection. Any discovery performed on the products will first validate the corresponding collection. Conversely, product inherits the metadata fields that are common to an entire collection (e.g. data access policies). For example, a collection may be defined to a specific geographical area or temporal range that aggregates all the associated products. This federated approach allows a strong optimization of the metadata storage and discovery mechanisms by distributing the server load in several logical or physical data servers.

6.4    Logical Collections

A given number of products from different collections can also be aggregated in special groups for specific applications. Using annotation or any other registry mechanism the logical collection will group products that have a special relation or domain specific usage. For example, a logical collection could be defined as a group of products from a given number of collections that cover a given spatial-temporal range by special annotation during product ingestion or my administrator configuration. This feature will also allow the definition of application-oriented collections that group the products of interest for that domain. For example, in a emergency situation instead of searching in all the collections for different satellite products, an operator will certainly value the existence of a dedicated feed that groups all past and currently available products of interest to the problem in hand. The logical collection is in its essence a server side classification or arrangement of entries and is seen by the client any other collection.

7.    OpenSearch Description

The OpenSearch Description Document allows clients to retrieve service metadata from a server. The response to a request for a Description shall be an XML document in the form specified by the SWS OpenSearch bindings published by OASIS. A brief summary of the Description’s requirements is provided in OGC 10-032.

OpenSearch Earth Observation Extension is designed to provide a search facility of Earth Observation metadata to the OpenSearch protocol. One namespace is provided for use in URL templates that form part of the OpenSearch Description Document (see Example 1), published by the server in XML at a stable URL.

A server provides an OpenSearch description document that a client reads to determine the response formats available and how to formulate a search/retrieve request. The OpenSearch Description Document includes a mandatory URL element containing a mandatory request template. Where several request templates are provided, a client may choose the one offering the most useful format (specified by MIME-type defined in the type attribute of the element) as shown in Example 1.

An OpenSearch Earth Observation Service shall return a valid OpenSearch description document using the parameters from the EO Extension namespace as an Atom access point.

EXAMPLE 1        The following XML document provides a sample response to a request for an OpenSearch Description from a repository supporting the Earth Observation Extension. Note that the response type is given in the type attribute and not implicitly on the URL path.


<?xml version=“1.0” encoding=“UTF-8”?>
<OpenSearchDescription xmlns=“http://a9.com/-/spec/opensearch/1.1/”
xmlns:eo=“http://a9.com/-/opensearch/extensions/eo/1.0/”>
<ShortName>Web Search</ShortName>
<Description>Use Example.com to search the Web.</Description>
<Contact>admin@example.com</Contact>
<Url type=“application/atom+xml” template=“http://example.com/myatom/?q= {searchTerms}&amp;pw={startPage?}&amp;platform={eo:platform?}”/>
<Url type=“application/geojson” template=“http://example.com/geojson/?q= {searchTerms}&amp;pw={startPage?}&amp;platform={eo:platform?}”/>
<Url type=“text/html” template=“http://example.com/?q= {searchTerms}&amp;platform={eo:platform?}&amp;pw={startPage?}”/>
<LongName>Example.com Web Search</LongName>
<Query role=“example” searchTerms=“cat” eo:platform=”ENVISAT”/>
<Attribution>Copyright 2005, Example.com, Inc.</Attribution>
<SyndicationRight>open</SyndicationRight>
</OpenSearchDescription>


 

Requirement 1 /req/osd

The server generates a valid OpenSearch description document

 

Requirement 2 /req/namespaces

This namespace and a corresponding namespace prefix shall be included when the extension is used in an OpenSearch Description document or any other XML document:

·      http://a9.com/-/opensearch/extensions/eo/1.0/

 

Requirement 3 /req/atom
Any server supporting the Earth Observation extension shall provide an access point returning documents complying with the rules specified in IETF [RFC-4287] (Atom 1.0)

8.    OpenSearch Earth Observation operation

8.1    Search operation request

8.1.1    Search request parameters

An OpenSearch Earth Observation Service should use the time and geo extensions defined in OGC10-032 when supporting the search respectively by acquisition times and acquisition footprint. This Earth Observation Extension defines in Table 3, Table 4, Table 5 and Table 6 an extensive list of OpenSearch parameters that can be supported by a search engine.

It is not expected or advisable for an OpenSearch Earth Observation Service to support all the elements defined in this specification. The elements defined should be used to constrain search results and their use is largely dependent on the search engine contents and capabilities (see also 6).

If a search engine use case is for the discovery of collections, it is recommended to use the elements of Table 3 and Table 4 that include parameters like: platform, orbitType, instrument, sensorType, spectralRange, processingLevel, compositeType, organisationName, useLimitation or accessConstraint. If the search engine is obliged to be aligned with INSPIRE requirements it SHALL support the elements of Table 4.

Conversely, if the search engine use case is for the discovery of products[2] associated to a single collection, it is recommended to select additional relevant parameters e.g. from: orbitNumber, orbitDirection, track, frame, archivingCenter, processingCenter, processingSoftware, processingDate, cloudCover and snowCoveras shown in Table 5. The specific parameters related to the acquisition of Earth Observation products are shown on Table 6.

Requirement 4 /req/request/parameters

The eo OpenSearch Parameters shall be used as specified in Table 3, Table 5 and Table 6

 

Table : OpenSearch Parameters for Collection Search
OpenSearch Parameter a Definition Data Type

productType

A string identifying the entry type (e.g. ER02_SAR_IM__0P, MER_RR__1P, SM_SLC__1S, GES_DISC_AIRH3STD_V005)

String c

doi

Digital Object Identifier identifying the product (see http://www.doi.org)

String c

platform

A string with the platform short name (e.g. Sentinel-1)

String c

platformSerialIdentifier

A string with the Platform serial identifier

String c

instrument

A string identifying the instrument (e.g. MERIS, AATSR, ASAR, HRVIR. SAR).

String c

sensorType

A string identifying the sensor type. Suggested values are: OPTICAL, RADAR, ALTIMETRIC, ATMOSPHERIC, LIMB

String c

compositeType

Type of composite product expressed as time period that the composite product covers  (e.g. P10D for a 10 day composite)

String c

processingLevel

A string identifying the processing level applied to the entry

String c

orbitType

A string identifying the platform orbit type (e.g. LEO, GEO)

String c

spectralRange

A string identifying the sensor spectral range (e.g. INFRARED, NEAR-INFRARED, UV, VISIBLE)

String c

wavelength

A number, set or interval requesting the sensor wavelengths in nanometers.

Integer b d

hasSecurityConstraints

A string informing if the resource has any security constraints. Possible values: TRUE, FALSE

String c

dissemination

A string identifying the dissemination method (e.g. EUMETCast, EUMETCast-Europe, DataCentre)

String c

sru:recordSchema f

Metadata model in which additional metadata should be provided inline (e.g. OGC O&M EOP, ISO19115(-1|-2|-3)/ISO19139(-2), Sensor ML 1.0/2.0 or Dublin Core Schema for SRU. For further details see 8.2.4.

String (URI) e

a The name capitalization rules are specified in Subclause 11.6.2 of [OGC 06-121].
b It uses mathematical notation for ranges and sets to define the intervals with:
          n1 equal to field = n1,                            {n1,n2,…} equals to field=n1 OR field=n2 OR …
         [n1,n2] equal to n1 <= field <= n2,        [n1,n2[ equals to n1 <= field < n2
         ]n1,n2[ equals to n1 < field < n2            ]n1,n2] equal to n1 < field  <= n2.

        [n1 equals to n1<= field                           ]n1 equals to n1 < field

        n2] equals to field <= n2                         n2[ equals to field < n2.
c OpenSearch Earth Observation Services are recommended to suggest the supported list of values on the OpenSearch Description document using the OpenSearch Parameter Extension, standard values for lists are suggested in OGC 10-157r4.
d OpenSearch Earth Observation Services are recommended to suggest the range of possible values of the element values on the OpenSearch Description document using the OpenSearch Parameter Extension.

e OpenSearch Earth Observation Services are recommended to suggest the supported list of values on the OpenSearch Description document using the OpenSearch Parameter Extension, standard values are e.g.:

  • http://www.opengis.net/eop/2.1 (OGC 10-157r4)
  • http://www.opengis.net/eop/2.0 (OGC 10-157r3)
  • http://www.isotc211.org/2005/gmd (ISO19115)
  • http://www.isotc211.org/2005/gmi (ISO19115-2)
  • http://standards.iso.org/iso/19115/-3/mdb/1.0 (ISO19115-1)
  • http://www.opengis.net/sensorml/2.0 (OGC 12-000)
  • http://www.opengis.net/sensorml/1.0.1 (OGC 07-122r2)
  • info:srw/schema/1/dc-v1.1[3] (Dublin Core Schema for SRU, http://www.loc.gov/standards/sru/recordSchemas/dc-schema.html)

f This parameter relates to collection and product search

 

Table : Additional INSPIRE obligated OpenSearch Parameters for Collection Search
OpenSearch Parameter a Definition Data Type

title

A name given to the resource i

String

topicCategory

Main theme(s) of the dataset i

String c

keyword

Commonly used word(s) or formalised word(s) or phrase(s) used to describe the subject. h

String c

abstract

Abstract. i

String

resolution

Using this (optional) parameter mandates the usage of one of the following 2 parameter groups within one search request:i.

 

 

denominator: Level of detail expressed as a scale factor or a ground distance. Here: the number below the line in a vulgar fraction.

Only used, if distanceValue and distanceUOM are not used.i

Integer b d

 

distanceValue: Sample ground distance. Here: the distance as decimal value.

distanceUOM: Sample ground distance. Here: the name of the unit of measure. CodeList, one of: meter, km,…

Only used, if Denominator is not used. i

Double b d

 

 

String c

organisationName

A string identifying the name of the organization responsible for the resource i

String c

organisationRole

The function performed by the responsible party i

String j,c

publicationDate

The date when the resource was issued

Date timed

lineage

General explanation of the data producer’s knowledge about the lineage of a dataset. i

String c

useLimitation

A string identifying informing if the resource has usage limitations i

String c

accessConstraint

Applied to assure the protection of privacy or intellectual property, and any special restrictions or limitations on obtaining the resource i

String e,c

otherConstraint

Other restrictions and legal prerequisites for accessing and using the resource or metadata. i

String c

classification

Name of the handling restrictions on the resource or metadata i

String f,c

language

Language of the intellectual content of the metadata record i

String g,c

specification

Using this (optional) parameter mandates the usage of the following 4 parameters within one search request:i.

specificationTitle: Title of the specification i.

specificationDate: Reference date of specification i

specificationdateType: Type reference date of specification i

degree: This is the degree of conformity of the resource to the related specification. i Possible values: true (if conformant), false (if not conformant), null (if not evaluated)

 

String c

Date timed

String k,c

String c

 

 

 

a The name capitalization rules are specified in Subclause 11.6.2 of [OGC 06-121].
b It uses mathematical notation for ranges and sets to define the intervals with:
          n1 equal to field = n1,                            {n1,n2,…} equals to field=n1 OR field=n2 OR …
         [n1,n2] equal to n1 <= field <= n2,        [n1,n2[ equals to n1 <= field < n2
         ]n1,n2[ equals to n1 < field < n2            ]n1,n2] equal to n1 < field  <= n2.

        [n1 equals to n1<= field                           ]n1 equals to n1 < field

        n2] equals to field <= n2                         n2[ equals to field < n2.
c OpenSearch Earth Observation Services are recommended to suggest the supported list of values on the OpenSearch Description document using the OpenSearch Parameter Extension , standard values for lists are suggested in OGC 10-157r4.
d OpenSearch Earth Observation Services are recommended to suggest the range of possible values of the element values on the OpenSearch Description document using the OpenSearch Parameter Extension.

e Codelist (MD_RestrictionCode), one of: copyright, patent, patentPending, trademark, license, intellectualPropertyRights, restricted, otherRestrictions

f Codelist (MD_ClassificationCode), one of: unclassified, restricted, confidential, secret, topSecret

g ISO 639-2, other parts may be used

h Optional parameter, for INSPIRE mandatory: the use of one keyword expressing the INSPIRE Data theme is required.  Relevant INSPIRE data themes concerning EO Product collections are “Land cover” and “Orthoimagery” (see [RD12] Table 15 and Table 21)

i Optional parameter, mandatory for INSPIRE. For details see INSPIRE Metadata Implementing Rules: Technical Guidelines based on EN ISO 19115 and EN ISO 19119 and Technical Guidance for the implementation of INSPIRE Discovery Services

j Codelist (CI_RoleCode codelist), one of: resourceProvider, custodian, owner, user, distributor, originator, pointOfContact, principalInvestigator, processor, publisher, author

k Codelist (CI_DateTypeCode), one of: creation, revision or publication

 

Requirement 5 /req/request/INSPIRE

The OpenSearch Parameters relevant for INSPIRE shall be supported as specified in Table 4.

 

Table : OpenSearch Parameters for Product Search
OpenSearch Parameter a Definition Data Type

parentIdentifier

A string identifying the parent of the entry in a hierarchy of resources

String c

productionStatus

A string identifying the status of the entry (e.g. ARCHIVED, ACQUIRED, CANCELLED)

String c

acquisitionType

Used to distinguish at a high level the appropriateness of the acquisition for "general" use, whether the product is a nominal acquisition, special calibration product or other. Values: NOMINAL, CALIBRATION, OTHER

String c

orbitNumber

A number, set or interval requesting the acquisition orbit

Integer b

orbitDirection

A string identifying the acquisition orbit direction. Possible values are: ASCENDING, DESCENDING

String

track

A string identifying the orbit track

String c

frame

A string identifying the orbit frame

String c

swathIdentifier

Swath identifier (e.g. Envisat ASAR has 7 distinct swaths (I1,I2,I3...I7) that correspond to precise incidence angles for the sensor). Value list can be retrieved with codeSpace.

String c

cloudCover

A number, set or interval of the cloud cover % (0-100).

Integer b

snowCover

A number, set or interval of the snow cover % (0-100).

Integer b

lowestLocation

A number, set or interval of the bottom height of

datalayer (in meters).

Double b

highestLocation

A number, set or interval of the top height of

datalayer (in meters).

Double b

productVersion

A string identifying the version of the Product

String c

productQualityStatus

This optional field must be provided if the product passed a quality check. Possible values: NOMINAL and DEGRADED

String c

productQuality DegradationTag

Keywords giving information on the degradations affecting the product. Possible values are mission specific and can be freely define (e.g. "RADIOMETRY", "MISSING_LINES")

String c

processorName

A string identifying the processor software name

String c

processingCenter

A string identifying the processing center (e.g. PDHS-E, PDHS-K, DPA, F-ACRI)

String c

creationDate

The date when the metadata item was ingested for the first time (i.e. inserted) in the catalogue

Date timed

modificationDate

The date when the metadata item was last modified (i.e. updated) in the catalogue.

Date timed

processingDate

A date interval requesting entries processed within a given time interval

Date timed

sensorMode

A string identifying the sensor mode.

String c

archivingCenter

A string identifying the archiving center.

String c

processingMode

Processing mode. Often referred to as Real Time, Near Real Time etc.

String c

a The name capitalization rules are specified in Subclause 11.6.2 of [OGC 06-121].
b It uses mathematical notation for ranges and sets to define the intervals with:
          n1 equal to field = n1,                            {n1,n2,…} equals to field=n1 OR field=n2 OR …
         [n1,n2] equal to n1 <= field <= n2,        [n1,n2[ equals to n1 <= field < n2
         ]n1,n2[ equals to n1 < field < n2            ]n1,n2] equal to n1 < field  <= n2.

        [n1 equals to n1<= field                          ]n1 equals to n1 < field

        n2] equals to field <= n2                         n2[ equals to field < n2.
c OpenSearch Earth Observation Services are recommended to suggest the supported list of values on the OpenSearch Description document using the OpenSearch Parameter Extension, standard values for lists are suggested in OGC 10-157r4.
d OpenSearch Earth Observation Services are recommended to suggest the range of possible values of the element values on the OpenSearch Description document using the OpenSearch Parameter Extension.

 

 

Table : OpenSearch Parameters for Acquistion Parameters Search
OpenSearch Parameter a Definition Data Type

availabilityTime

The time when the result became available (e.g. if postprocessing or laboratory analysis is required, it might be different to the phenomenonTime). dateTime in ISO 8601 format (CCYY-MM- DDThh:mm[:ss[.cc]]Z)

Date Time b d

acquisitionStation

A string identifying the station used for the acquisition

String c

acquisitionSub Type

Acquisition sub-type

String c

startTimeFrom AscendingNode

Start time of acquisition in milliseconds from Ascending node date.

Integer b d

completionTime FromAscending Node

Completion time of acquisition in milliseconds from Ascending node date.

Integer b d

illumination AzimuthAngle

Mean illumination/solar azimuth angle given in degrees. (i.e. uom='deg')

Double b d

illumination ZenithAngle

Mean illumination/solar zenith angle given in degrees.

Double b d

illumination ElevationAngle

Mean illumination/solar elevation angle given in degrees. (i.e. uom='deg')

Double b d

polarisationMode

Polarisation mode taken from codelist: S (for single), D (for dual), T (for twin), Q (for quad), UNDEFINED

String c

polarization Channels

Polarisation channel transmit/receive configuration: horizontal, vertical.

String c

antennaLook Direction

LEFT or RIGHT

String c

minimum IncidenceAngle

Minimum incidence angle given in degrees (i.e. uom='deg')

Double b d

maximum IncidenceAngle

Maximum incidence angle given in degrees (i.e. uom='deg')

Double b d

dopplerFrequency

Doppler Frequency of acquisition

Double b d

incidenceAngle Variation

Incidence angle variation

Double b d

a The name capitalization rules are specified in Subclause 11.6.2 of [OGC 06-121].
b It uses mathematical notation for ranges and sets to define the intervals with:
        n1 equal to field = n1,                      {n1,n2, …} equals to field=n1 OR field = n2 OR ..
       [n1,n2] equal to n1 <= field <= n2,       [n1,n2[ equals to n1 <= field < n2
       ]n1,n2[ equals to n1 < field < n2          ]n1,n2] equal to n1 < field  <= n2.

      [n1 equals to n1<= field                         ]n1 equals to n1 < field

      n2] equals to  field <= n2                       n2[ equals to field < n2
c OpenSearch Earth Observation Services are recommended to suggest the supported list of values on the OpenSearch Description document using the OpenSearch Parameter Extension, standard values for lists are suggested in OGC 10-157r4
d OpenSearch Earth Observation Services are recommended to suggest the range of possible values of the element values on the OpenSearch Description document using the OpenSearch Parameter Extension

 

 

To suggest clients of the possible values of a given parameter an OpenSearch Earth Observation Service should make use of the OpenSearch Parameter Extension.

EXAMPLE 2        The following XML document provides a sample response to a request for an OpenSearch Description from a repository supporting the Earth Observation and Temporal Extensions. The OpenSearch Parameter extension elements are used to suggest clients the possible values for temporal range and acquisition station names:


<?xml version=“1.0” encoding=“UTF-8”?>
<OpenSearchDescription xmlns=“http://a9.com/-/spec/opensearch/1.1/”
xmlns:eo=“http://a9.com/-/opensearch/extensions/eo/1.0/”
xmlns:param=“http://a9.com/-/spec/opensearch/extensions/parameters/1.0/”
xmlns:time=“http://a9.com/-/opensearch/extensions/time/1.0/”>
 
<ShortName>Web Search</ShortName>
<LongName>Example.com Web Search</LongName>
<Description>Use Example.com to search the Web.</Description>
<Tags>example web</Tags>
<Contact>admin@example.com</Contact>
<Url type=“application/atom+xml” 
    template=“http://example.com/myatom/? pw={startPage?}&acq={eo:acquisitionStation?}&start={time:start?}& end={time:end?}”>
 
<param:Parameter name=“start” value=“{time:start}” minimum=“0”
   minInclusive=“2011-01-01T00:00:00Z” maxExclusive=“2012-01-01T00:00:00Z”/>
 
<param:Parameter name=“end” value=“{time:end}” minimum=“0”
   minInclusive=“2011-01-01T00:00:00Z” maxExclusive=“2012-01-01T00:00:00Z”/>
 
<param:Parameter name=”acq” value=”{eo:acquisitionStation}” minimum=”0”
   title=”Acquisition Station”>
<param:Option value=“PDHS-K” label=”Kiruna”/>
          <param:Option value=“PDHS-E” label=”ESRIN”/ >
</param:Parameter>
</Url>
<Attribution>Copyright 2005, Example.com, Inc.</Attribution>
<SyndicationRight>open</SyndicationRight>
</OpenSearchDescription>


 

Requirement 6 /req/suggestions

The server implements a list of suggestions for string parameters for the Earth Observation extension elements on the OpenSearch Description document.

 

Requirement 7 /req/suggestions-range

The server implements a suggestion of parameters range for the Earth Observation extension elements on the OpenSearch Description document.

 

All parameters of the OpenSearch query should be mapped to the appropriate catalogue or metadata fields of the underlying metadata management system. Annex D shows the suggested mappings for

8.1.2    Search request KVP encoding (mandatory)

 

Requirement 8 /req/request/kvpget

Servers shall implement HTTP GET transfer of the Search operation request, using KVP encoding.

 

Note that for the given key-value pairs, the key can be an arbitrary string, specified by one given instance of an OpenSearch repository. For example, one Description may provide a URL template asking for platform={eo:platform}, another specifying plat={eo:platform}. It is the responsibility of the client application to parse the URL template and create the appropriate keys for each key-value pair. These parameter sets are templates from which URLs can be constructed. The search client must replace every instance of a template parameter with a value before the search request is performed. If a search engine wishes to indicate that a template parameter is optional and can be replaced with the empty string, then the “?” notation described in the section on optional template parameters should be used. Clients should take special consideration to the fact that according to the OpenSearch specification the OpenSearch parameters usage is not restricted to the URL query string and can be used as templates values in any of URL components (e.g. path, host).

 

EXAMPLE 3        A search operation URL template with the OpenSearch parameter as a query string parameter and the corresponding request:


<Url template=“http://foo.com/atom/?count={count?}&st={startIndex?}& platform={eo:platform}” type=“application/atom+xml” />
 
http://foo.com/atom/?count=&st=&platform=ENVISAT


    EXAMPLE 4        A search operation URL template with one of OpenSearch Parameter as the URL path and the corresponding request:

<Url template=“http://foo.com/{eo:platform}/atom/?count={count?}& st={startIndex?}” type=“application/atom+xml” />
 
http://foo.com/ENVISAT/atom/?count=&st=


 

8.2    Search operation response

8.2.1    Normal response parameters

The normal response to a valid Search operation request shall be in one of several formats that are specified in the OpenSearch Description for a given instance. The mandatory response format is Atom but the server may support other formats.

8.2.2    Normal response XML encoding

The normative response format for an OpenSearch service using Earth Observation Extension shall be ATOM 1.0. The properties shown in the Atom and OpenSearch namespaces are those mandated by the core specification.

Following the Atom format the response is made of a atom:feed element that may contain several atom:entry elements. While the latter describe the returned resources that respect the query performed the first describes the discovery service or search engine.

 

Requirement 9 /req/response/atom

The server response in Atom encoding shall be in accordance with the rules defined in Table 7 and Table 8.

 

In the atom:feed element the response should include the elements listed in Table 7and the atom:entry elements should include the elements listed in Table 8. The metadata for each item in the result set should provide a link to a “full” view of the result, where more detailed metadata according to OGC O&M EOP (OGC 10-157r3, OGC 10-157r4), ISO19115(-1|-2|-3)/ISO19139(-2), SensorML 1.0 (OGC 07-122r2), SensorML 2.0 (OGC 12-000) or Dublin Core Schema for SRU (http://www.loc.gov/standards/sru/recordSchemas/dc-schema.html) can be provided (see 8.2.4) and, when available, a direct link to the resource using the atom:link element.

Requirement 10 /req/entry-eop

The response includes an eop:EarthObservation element or a more specialized element such as opt:EarthObservation, sar:EarthObservation or other allowed by OGC 10-157r4 for each entry.

 

 

Table : Elements of Search operation response in the atom:feed element
Term OGC core returnable Atom Element Description Mult.

Title

dc:title

atom:feed/
atom:title

A title for the search feed.

1

mandatory

Creator

dc:creator

atom:feed/
atom:author

An entity primarily responsible for making the content of the search feed

1

mandatory

Subject

dc:subject

atom:feed/
atom:category

A topic of the search feed.

n

optional

Abstract

dct:abstract

atom:feed/
atom:subtitle

An account of the content of the search feed

1

optional

Publisher

dc:publisher

atom:feed/
atom:generator

An entity or agent responsible for making the search feed.

1

optional

Contributor

dc:contributor

atom:feed/
atom:contributor

An entity responsible for making contributions to the content of the search feed

n

optional

Modified

dc:date

atom:feed/
atom:updated

A date of a creation or update of the search feed (RFC 3339)

1 optional

Identifier

dc:identifier

atom:feed/
atom:id

An IRI as a unique identifier of the feed (it excludes relative references). Not to be assumed dereferenceable.

1

mandatory

atom:feed/
dc:identifier

The local identifier of the feed.

1 optional

Source

dc:source

atom:feed/atom:link[@rel=’search’][@type=‘application/opensearchdescription+xml‘]

A reference to a resource from which the present feed is derived. This points to the OpenSearch document that describes the search engine

1

mandatory

Language

dc:language

atom:feed/
@xml:lang

A language of feed’s content (RFC 5646)

1

optional

Envelope

dct:spatial

atom:feed/

georss:*

The maximal spatial extent of the search feed (GEORSS).

n

optional

Rights

dc:rights

atom:feed/
atom:rights

Information about rights held in and over the resource

1

optional

Relation

(first,next, last page and previous pages)

dc:relation

 

atom:feed/atom:link[@rel= ‘first‘]

Reference to the next page of the search feed

1

optional

atom:feed/atom:link[@rel= ‘next‘]

Reference to the next page of the search feed

1

optional

atom:feed/atom:link[@rel= ‘last‘]

Reference to the next page of the search feed

1

optional

atom:feed/atom:link[@rel= ‘previous‘ or @rel=”prev”]

Reference to the previous page of the search feed

1

optional

atom:feed/atom:link[@rel=’up’]

Refers to a parent resource in a hierarchy of resources.

n

optional

Query

-

atom:feed/os:Query

Defines the search request query.

1

optional

Extent

(total results, start index and items per page)

dct:extent

atom:feed/
os:totalResults

OpenSearch element with the total number of feed’s entries

1

mandatory

atom:feed/
os:startIndex

OpenSearch element with the index of the first feed’s entry.

1

mandatory

atom:feed/
os:itemsPerPage

OpenSearch element with the number of entries returned per page.

1

mandatory

Note: This table is equal Table 6 of OGC 10-032r8

 

Table : Elements of Search operation response in the atom:entry elements describing each search result
Term OGC returnable Atom Element Description Mult.

Title

dc:title

atom:entry/
atom:title

A title given to the resource.

1

mandatory

Creator

dc:creator

atom:entry/
atom:author

An entity primarily responsible for making the content of the resource

1

optional

Subject

dc:subject

atom:entry/
atom:category

A topic of the content of the resource (a topic category or other taxonomy can be applied)

n

optional

Abstract

dct:abstract

atom:entry/
atom:summary

An account of the content of the resource

1

optional

Contributor

dc:contributor

atom:entry/
atom:contributor

An entity responsible for making contributions to the content of the resource

n

optional

Modified

dc:date

atom:entry/
atom:updated

A date of a creation or update of the metadata resource (RFC-3339) a

1

optional

Date

eop:EarthObservation /om:phenomenonTime/gml:TimePeriod

atom:entry/
dc:date

A date or range of dates relevant to the resource (RFC-3339) a.

1

optional

Identifier

dc:identifier

atom:entry/
atom:id

A unique identifier of the entry. Its content MUST be an IRI (it excludes relative references).  It should not be assumed that it can be dereferenced.

1

mandatory

atom:entry/
dc:identifier

The identifier of the resource within the search engine context (local reference).

1

mandatory

Source

dc:source

atom:entry/
atom:link[@rel=
‘via’]

A reference to a document that is the source of the information provided in the entry d.

n

optional

Language

dc:language

atom:entry/
@xml:lang

A language of the intellectual content of the resource as defined in RFC 5646

1

optional

Rights

dc:rights

atom:entry/
atom:rights

Information about rights held in and over the resource

1

optional

Envelope

eop:Footprint

atom:entry/

georss:*

The spatial extent or scope of the content of the resource defined with an GEORSS element

1

optional

Relation

dc:relation

atom:entry/
atom:link[@rel=’search’]

Reference to the OpenSearch description document when the resource is search service or a collection

1

optional

atom:entry/
atom:link[@rel=’enclosure’]

Reference to the location of the data resource described in the entry

n

optional

atom:entry/atom:link[@rel=’icon’]

Reference to a quicklook or browse image representing the entry b

n

optional

atom:entry/
atom:link[@rel=’alternative’]

A reference to a document with the entry information in an alternative format c, d

For more details see 8.2.4

n

optional

atom:entry/atom:link[@rel=’up’]

Refers to a parent resource in a hierarchy of resources

n

optional

Format

dc:format

atom:entry/atom:link[@rel=’enclosure’]/@type

The MIME types of the data resources available

n

optional

Additional Metadata

 

 

  • OGC O&M EOP (http://www.opengis.net/eop/(2.0|2.1), root element “eop:EarthObservation” or one of the extensions (e.g. sar:EarthObservation))
  • ISO19115 (ISO19139) (http://www.isotc211.org/2005/gmd, root element “gmd:MD_Metadata”)
  • ISO19115-2 (ISO19139-2)(http://www.isotc211.org/2005/gmi, root element “gmi:MI_Metadata”)
  • ISO19115-1 (ISO19115-3)(http://standards.iso.org/iso/19115/-3/mdb/1.0, root element “mdb:MD_Metadata”)
  • SensorML http://www.opengis.net/sensorml/(1.0.1|2.0) (root element e.g. sml:SimpleProcess or sml:PhysicalComponent)
  • Dublin Core for SRU (root element srw_dc:dc)

For more details see 8.2.4

1

optional

a When specifying a temporal range the element should contain two dates separated by a slash, like:
<dc:date>2004-02-19T03:03:23.736Z/2010-09-12T15:57:36.072Z</dc:date>

b The  different images are differentiated by type and size.

 

c An atom:entry MUST NOT contain more than one atom:link element with a rel attribute value of "alternate" that has the same combination of type and hreflang attribute values

d An atom:link element with a rel attribute value of "alternate" or "via" may have one of the following link "types":

·      "application/gml+xml;profile=http://www.opengis.net/spec/EOMPOM/1.1"  for OGC O&M EOP (OGC 10-157r4)

·      "application/gml+xml;profile=http://www.opengis.net/spec/EOMPOM/1.0"  for OGC O&M EOP (OGC 10-157r3)

·      "application/vnd.iso.19139+xml" for ISO19115/19139

·      "application/vnd.iso.19139-2+xml" for ISO19115-2/19139-2

·      "application/vnd.iso.19115-3+xml" for ISO19115-1/19115-3

·      "text/xml;subtype="sensorML/2.0" for SensorML 2.0

·      "text/xml;subtype=sensorML/1.0.1" for SensorML 1.0

·      "application/xml" for Dublin Core schema for SRU

 

Note: Grey rows show differences with Table 7 of OGC 10-032r8

 

8.2.3    Search context propagation to external end points

If the resource described in the response entry aggregates other resources (e.g. is a collection or a search service) it should possess an atom:link with the relation “search” [RFC 5988]. This feature can be used to define recursive searches where the search context (e.g. queriables) is propagated to an internal or external service (see e.g. 6.2). It can also allow the aggregation of entries into collections or groups.

EXAMPLE 5        Defining access to the product file of the atom:entry


<atom:link rel=“search” type=“application/opensearchdescription+xml” 
    href=“http://search.acme.com/osd.xml” title=“Search this resource” />


 

When an entry contains a link with the rel attribute equal to “search” and the type attribute equal to “application/opensearchdescription+xml” clients are recommended to propagate the query parameters to the search engine described by the OpenSearch description document located on the href attribute value using the original query parameters.

8.2.4    Linking entry with metadata

If possible, the access to the original authoritative metadata source of the entry should be given using one atom:link element with the atom:rel equal to “via” [RFC5988] with the corresponding format announced in the type attribute.

If the information of this entry is available in other metadata encodings, then a server can include atom:link elements for each format using the “alternate” [RFC 5988] relation name and corresponding format in the type attribute.

EXAMPLE 6        Defining the access to authoritative source and alternative representations of the atom:entry


<atom:link rel=“alternate” type=“application/gml+xml;profile=http://www.opengis.net/spec/EOMPOM/1.1” 
    title=“EOP O&M Metadata” href=“http://site.com/eo/asarimageEOOM.xml” length=“1245”/>
<atom:link rel=“via” type=“application/vnd.iso.19139+xml” length=“845” 
    title=“ISO 19139 Metadata” href=“http://site.com/eo/asarimageISO.xml”/>


If a server allows to obtain metadata inline, it can advertise that it supports the sru:recordSchema (see Table 3) and use the parameter extension to say which ones.

EXAMPLE 7        Defining metadata inline


    <georss:where><gml:Polygon><gml:exterior><gml:LinearRing><gml:posList 
    srsDimension=“2”>42.2879 128.7535 42.4897 127.4932 41.4254 127.1936 41.2326 128.3991 42.2879 128.7535
    </gml:posList></gml:LinearRing></gml:exterior></gml:Polygon></georss:where>
…
<eop:EarthObservation xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
    xsi:schemaLocation=http://www.opengis.net/opt/2.1 ../xsd/opt.xsd
xmlns:eop=“http://www.opengis.net/eop/2.1”    … gml:id=“eo_ASA_IM__0CNPDE20100122_014441_000000162086_00146_41282_7918.N1”>
    <om:phenomenonTime><gml:TimePeriod
gml:id=“tp_ASA_IM__0CNPDE20100122_014441_000000162086_00146_41282_7918.N1”>
            <gml:beginPosition>2010-01-22T01:44:41.316Z</gml:beginPosition>
…


 

EXAMPLE 8        Use of parameter extension for sru:recordSchema


<param:Parameter name=“rec” value=“{sru:recordSchema}” minimum=“0” 
    title=“Metadata model in which additional metadata should be provided inline”>
              <param:Option value=“http://www.isotc211.org/2005/gmi” label=“ISO19115-2/ISO19139-2”/>
</param:Parameter>


 

Advertising sru:recordSchema means it can provide metadata inline in the Atom response.  Not advertising it means it cannot do this but will provide the available alternative atom:links instead. A server supporting sru:recordSchema can also support providing alternate links instead - support for both mechanisms by a single server are not mutually exclusive (the client can then decide what he wants by using or not using the sru:recordSchema parameter). 

8.2.5    Linking an entry with its thumbnail, quicklook or masks

To define the reference to a resource representing a quicklook, browse image or cloud mask that represents the entry, the “Media RSS Specification” should be used [Media RSS].  Each of the images should be included as a separate media:content element.  Multiple elements (e.g. Quicklook and cloud mask) for the same entry single entry should be included in the same media:groupelement.

The scheme parameter in the media:category element should reflect a thesaurus/codelist covering the various possibilities, e.g. the values allowed in the OGC 10-157r4 codelist for browse/BrowseInformation/type (THUMBNAIL, QUICKLOOK, ALBUM) and mask/MaskInformation/type (SNOW, CLOUD, QUALITY).

EXAMPLE 9        Defining the reference to the quicklook image of the atom:entry


<feed xmlns="http://www.w3.org/2005/Atom
xmlns:media=“http://search.yahoo.com/mrss/” …>
…
<entry>
…
   <media:group>
      <media:content url=“http://mda.com/browse/RADARSAT-2/2012/08/01/PASS_RS2_210671_3_32488_1.jpg” type=“image/jpeg” medium=“image”>   
         <media:category scheme=“http://www.opengis.net/spec/EOMPOM/1.1”>QUICKLOOK</media:category>
      </media:content>
…
     </media:group>
</entry>


 

8.2.6    Error handling

The Atom and the OpenSearch specifications do not directly specify how to deal with server and request errors. It is recommended that an OpenSearch Earth Observation Service use the HTTP error codes for client (4xx) and server (5xx) errors. In particular, it is recommended to use the following error codes in the particular situations of client error:

For server side errors the following error codes are recommended:

 

EXAMPLE 10      Response example for a bad request (incorrect eo:orbitNumber format)


HTTP/1.1 400 Bad Request
Content-Type: text/plain
Date: Mon, 6 Feb 2012 14:27:37 GMT
Content-Length: 56
 
Bad Request - Wrong orbitNumber format (number or range)


Annex A

Conformance Class Abstract Test Suite (Normative)

 

A.1     Conformance Test Class Core (/conf/Core)

A.1.1 OpenSearch description document

Requirements

/req/osd

Test Purpose:

Verify that the server generates a valid OpenSearch description document.

Test Method:

Execute an HTTP GET request to retrieve a server's description document.  Verify that the response is correct XML and is valid according to the description in this standard.

References:

Section 7

Test type:

Capability

 

A.1.2 Atom Response Type

Requirements

/req/atom

Test Purpose:

Verify that the server defines an URL template for the Atom response.

Test Method:

Execute an HTTP GET request to retrieve a server's description document.  Verify that an URL element with the type equal to “application/atom+xml” exists.

References:

Section 7

Test type:

Capability

A.1.3 Namespaces

Requirements

/req/namespaces

Test Purpose:

Verify that the server uses the EO extension namespaces

Test Method:

Execute an HTTP GET request to retrieve a server's description document.  Verify that the EO extensions namespace is present

References:

Section 7

Test type:

Capability

A.1.4 ATOM response

Requirements

/req/response/atom

Test Purpose:

Verify that the server response is a valid ATOM document

Test Method:

Execute search request  and validate the ATOM document

References:

Section 8.2.2

Test type:

Capability

A.1.5 KVP GET

Requirements

/req/request/kvpget

Test Purpose:

Verify that the server accepts search parameters as KVP

Test Method:

Execute an HTTP GET request to retrieve a server's description document.  Verify that the OpenSearch template accepts URL parameters

References:

Section 8.1.2

Test type:

Capability

A.1.6 Parameters

Requirements

/req/request/parameters

Test Purpose:

Verify that the server accepts search parameters from the EO extension

Test Method:

Execute an HTTP GET request to retrieve a server's description document.  Verify that the OpenSearch template accepts template parameters from the EO extension

References:

Section 8.1.1

Test type:

Capability

 

A.2     Conformance Test Class EarthObservationForeignElement (/conf/EarthObservationForeignElement)

A.2.1 EarthObservationForeignElement

Requirements

/req/entry-eop

Test Purpose:

Verify that the server response includes a eop:EarthObservation (or derived) element for each entry.

Test Method:

Submit a series of requests to the server and verify that the server responds as include an eop:EarthObservation (or derived) element for each entry.

References:

Section 8.2.2 Table 7 Note d

Test type:

Capability

 

A.3     Conformance Test Class Suggestions (/conf/Suggestions)

A.3.1 Suggestions

Requirements

/req/suggestions

Test Purpose:

Verify that the server implements a list of suggestions for string parameters for the Earth Observation extension elements on the OpenSearch Description document.

Test Method:

Execute an HTTP GET request to retrieve a server's description document. Verify that the URL template includes parameters of the character string type (Table 5, note c). Verify that the document includes a parameter element with the attribute pattern or with child Option elements with suggested values.

References:

Section 8.1.1

Test type:

Capability

A.3.2 Suggestions-Range

Requirements

/req/suggestions-range

Test Purpose:

Verify that the server implements a suggestion of parameters range for the Earth Observation extension elements on the OpenSearch Description document.

Test Method:

Execute an HTTP GET request to retrieve a server's description document. Verify that the URL template includes parameters of the numeric type (Table 5, note d). Verify that the document includes a parameter element with the attribute suggesting the value range.

References:

Section 9.2.1 Table 5 Note c

Test type:

Capability

 

A.4     Conformance Test Class INSPIRE (/conf/INSPIRE)

A.4.1 INSPIRE

Requirements

/req/request/INSPIRE

Test Purpose:

Verify that the server supports the INSPIRE relevant (mandatory) OpenSearch parameters (queryables are: useLimitation, accessConstraint, otherConstraint, classification, organisationName, organisationRole, topicCategory, lineage, keyword, denominator, distanceValue, distanceUOM, language, title, abstract, start, end, box, specificationTitle, specificationDate, specificationdateType, Degree).

Test Method:

Verify that the OpenSearch Description Document includes a URL Search Template providing all INSPIRE relevant search parameters.

References:

Section 8.1.1

Test type:

Capability

 


 

Annex B: XML Schema Documents

B.1     Atom Schema (schemas/atom/2005/rfc4287.rnc)[4]


# -*- rnc -*-
# RELAX NG Compact Syntax Grammar for the
# Atom Format Specification
# Taken from http://tools.ietf.org/html/rfc4287#page-35
# Defined a new constructor for Atom Feed and Entry
namespace atom = “http://www.w3.org/2005/Atom”
namespace xhtml = “http://www.w3.org/1999/xhtml”
namespace s = “http://purl.oclc.org/dsdl/schematron”
namespace local = “”  
start = atomFeed | atomEntry
 
# Common attributes
atomCommonAttributes = attribute xml:base { atomUri }?,
                        attribute xml:lang { atomLanguageTag }?, undefinedAttribute*
 
# Text Constructs
atomPlainTextConstruct = atomCommonAttributes,
      attribute type { “text” | “html” }?, text
atomXHTMLTextConstruct = atomCommonAttributes, attribute type { “xhtml” }, xhtmlDiv
atomTextConstruct = atomPlainTextConstruct | atomXHTMLTextConstruct
 
# Person Construct
atomPersonConstruct = atomCommonAttributes,
      (element atom:name { text } & element atom:uri { atomUri }?
       & element atom:email { atomEmailAddress }?  & extensionElement*)
 
# Date Construct
atomDateConstruct = atomCommonAttributes, xsd:dateTime
 
# atom:feed
atomFeed =  [
    s:pattern [ name=“check authors”
     s:rule [ context = “atom:feed”
       s:assert [test = “atom:author or not(atom:entry[not(atom:author)])”
               “An atom:feed must have an atom:author unless all”
               ~ “of its atom:entry children have an atom:author.”]]]]
      element atom:feed { atomFeedConstruct }
  
atomFeedConstruct =
         atomCommonAttributes, (atomAuthor* & atomCategory* & atomContributor*
         & atomGenerator? & atomIcon? & atomId & atomLink* & atomLogo? & atomRights? &
atomSubtitle? & atomTitle & atomUpdated & extensionElement*), atomEntry*
     
# atom:entry
atomEntry = [
    s:pattern [ name=“check entry’s alternate link”
      s:rule [ context = “atom:entry” s:assert [
               test = “atom:link[@rel=’alternate’]”
               ~ “or atom:link[not(@rel)] or atom:content”
               “An atom:entry must have at least one atom:link element”
               ~ “with a rel attribute of ‘alternate’ or an atom:content.”
            ]]]
    s:pattern [ name=“check entry’s author”
      s:rule [ context = “atom:entry” s:assert [
               test = “atom:author or ../atom:author or atom:source/atom:author”
               “An atom:entry must have an atom:author if its feed does not.”
            ]]]]
      element atom:entry { atomEntryConstruct }
  
atomEntryConstruct =
         atomCommonAttributes,
         (atomAuthor* & atomCategory* & atomContent? & atomContributor*
          & atomId & atomLink* & atomPublished? & atomRights? & atomSource?
          & atomSummary? & atomTitle & atomUpdated & extensionElement*)
         
# atom:content
atomInlineTextContent = element atom:content { atomCommonAttributes,
         attribute type { “text” | “html” }?, (text)* }
 
atomInlineXHTMLContent = element atom:content { atomCommonAttributes,
         attribute type { “xhtml” }, xhtmlDiv }
 
atomInlineOtherContent = element atom:content { atomCommonAttributes,
         attribute type { atomMediaType }?, (text|anyElement)*}
 
atomOutOfLineContent = element atom:content { atomCommonAttributes,
         attribute type { atomMediaType }?, attribute src { atomUri }, empty }
 
atomContent = atomInlineTextContent | atomInlineXHTMLContent
                    | atomInlineOtherContent | atomOutOfLineContent
 
atomAuthor = element atom:author { atomPersonConstruct }
 
atomCategory =
      element atom:category { atomCommonAttributes, attribute term { text },
         attribute scheme { atomUri }?, attribute label { text }?,
         undefinedContent }
 
atomContributor = element atom:contributor { atomPersonConstruct }
 
atomGenerator = element atom:generator { atomCommonAttributes,
      attribute uri { atomUri }?, attribute version { text }?, text }
 
atomIcon = element atom:icon { atomCommonAttributes, (atomUri) }
 
atomId = element atom:id { atomCommonAttributes, (atomUri) }
 
atomLogo = element atom:logo { atomCommonAttributes, (atomUri)}
 
atomLink =
      element atom:link { atomCommonAttributes, attribute href { atomUri },
         attribute rel { atomNCName | atomUri }?, attribute type { atomMediaType }?,
 attribute hreflang { atomLanguageTag }?, attribute title { text }?,
 attribute length { text }?, undefinedContent }
 
atomPublished = element atom:published { atomDateConstruct }
 
atomRights = element atom:rights { atomTextConstruct }
 
atomSource = element atom:source {
         atomCommonAttributes, (atomAuthor* & atomCategory* & atomContributor* &
 atomGenerator? & atomIcon? & atomId? & atomLink* & atomLogo? & atomRights?
          & atomSubtitle? & atomTitle? & atomUpdated? & extensionElement*)}
 
atomSubtitle = element atom:subtitle { atomTextConstruct }
 
atomSummary = element atom:summary { atomTextConstruct }
 
atomTitle = element atom:title { atomTextConstruct }
 
atomUpdated = element atom:updated { atomDateConstruct }
 
# Low-level simple types
atomNCName = xsd:string { minLength = “1” pattern = “[^:]*” }
 
# Whatever a media type is, it contains at least one slash
atomMediaType = xsd:string { pattern = “.+/.+” }
 
# As defined in RFC 5646
atomLanguageTag = xsd:string { pattern = “[A-Za-z]{1,8}(-[A-Za-z0-9]{1,8})*”}
 
# Unconstrained; it’s not entirely clear how IRI fit into
# xsd:anyURI so let’s not try to constrain it here
atomUri = text
 
# Whatever an email address is, it contains at least one @
atomEmailAddress = xsd:string { pattern = “.+@.+” }
 
# Simple Extension
simpleExtensionElement = element * - atom:* { text }
 
# Structured Extension
structuredExtensionElement = element * - atom:* {
         (attribute * { text }+, (text|anyElement)*)
       | (attribute * { text }*, (text?, anyElement+, (text|anyElement)*))}
 
# Other Extensibility
extensionElement = simpleExtensionElement | structuredExtensionElement
 
undefinedAttribute = attribute * - (xml:base | xml:lang | local:*) { text }
 
undefinedContent = (text|anyForeignElement)*
 
anyElement = element * { (attribute * { text } | text | anyElement)* }
 
anyForeignElement = element * - atom:* { (attribute * { text } | text | anyElement)* }
 
# XHTML
anyXHTML = element xhtml:* { (attribute * { text } | text | anyXHTML)* }
 
xhtmlDiv = element xhtml:div { (attribute * { text } | text | anyXHTML)* }
 
# EOF


 

 

B.2     OpenSearch Atom Schema (schemas/opensearch/1.1/osatom.rnc)


# -*- rnc -*-
   # RELAX NG Compact Syntax Grammar for
   # Atom encoding and foreign elements for OpenSearch   
namespace s = “http://purl.oclc.org/dsdl/schematron”
namespace atom = “http://www.w3.org/2005/Atom”
namespace os = “http://a9.com/-/spec/opensearch/1.1/”
 
# Redefine atom:feed to include new OpenSearch elements
atomFeedConstruct &= osQuery ? & osTotalResults? &osStartIndex? &osItemsPerPage?                      
osQuery = element os:Query { undefinedAttribute*, ( osQueryAttr ) }
osTotalResults = element os:totalResults { xsd:int }
osStartIndex = element os:startIndex { xsd:int }
osItemsPerPage = element os:itemsPerPage { xsd:int }
 
include “osquery.rnc”
 
# Replacing definitions on RFC4287
# relative path schemas/atom folder
include “../../atom/2005/rfc4287.rnc”{
      # Redefine the Simple Extension to exclude os:* elements
      simpleExtensionElement = element * - (atom:* | os:*) { text }
      # Redefine the Structured Extension to exclude os:* elements
      structuredExtensionElement = element * -
          (atom:* |  os:* ) { (attribute * { text }+,(text|anyElement)*)
           | (attribute * { text }*, (text?, anyElement+, (text|anyElement)*))}
 
      # Redefine Atom rules   
      atomFeed = [
       s:rule [ context = “atom:feed”
         s:assert [ test = “atom:author or not(atom:entry[not(atom:author)])”
           “An atom:feed must have an atom:author unless all”
           ~ “of its atom:entry children have an atom:author.”]]     
       ]
       element atom:feed { atomFeedConstruct }    
      
      atomEntry =[
       s:pattern [ name=“check entry content”
        s:rule [ context = “atom:entry”
         s:assert [ test = “atom:content”
          “An atom:entry must have one atom:content MUST have content”
          ~ “element in a format understandable by generic Atom readers”
          ~ " ( @type equal to ‘html’ is recommended)"]]]
        
      ]
      element atom:entry { atomEntryConstruct }
}
# EOF


 

B.3     OpenSearch Description Document Schema (schemas/opensearch/1.1/osdd.rnc)


# -*- rnc -*-
   # RELAX NG Compact Syntax Grammar for
   # OpenSearch Description Document
  
namespace os = “http://a9.com/-/spec/opensearch/1.1/”
namespace s = “http://purl.oclc.org/dsdl/schematron”
namespace local = “”  
start = osDocument
 
osDocument = element os:OpenSearchDescription { osDocumentConstruct }
 
osDocumentConstruct =
      element os:ShortName { xsd:string { maxLength = “16” } }
      & element os:Description { xsd:string { maxLength = “1024” } }
      & element os:Url { osdUrlAttr } *
      & element os:Contact { xsd:string {pattern=“.+@.+”}}?
      & element os:Tags { text }? & element os:LongName { xsd:string {maxLength=“48”}}?
      & element os:Image { osdImage } *
      & element os:Query { undefinedAttribute*, ( osQueryAttr ) }*
      & element os:Developer { xsd:string { maxLength = “64” } }?
      & element os:Attribution { xsd:string { maxLength = “256” } }?
      & element os:SyndicationRight { osdSyndicationRightValues } ?
      & element os:AdultContent { “false” | “true” } ?
      & element os:Language {xsd:string { pattern=“[A-Za-z]{1,8}(-[A-Za-z0-9]{1,8})*”}}?
      & element os:InputEncoding { text } ? & element os:OutputEncoding { text } ?
      & undefinedAttribute*
      & extensionElement*
 
osdUrlAttr = attribute template { text }, attribute type { text },
            attribute rel { osdRelationValues }?, attribute indexOffset { xsd:int }?,
         attribute pageOffset { xsd:int }?, undefinedAttribute*, extensionElement*
 
osdImage = attribute height {xsd:int}, attribute width {xsd:int},
           attribute type {xsd:string}, text
 
include “osquery.rnc”
   
osdRelationValues = “results” | “suggestions” | “self” | “collection”
osdSyndicationRightValues = “open” | “limited” | “private” | “closed”
 
# Simple Extension
simpleExtensionElement = element * - os:* { text }
 
# Structured Extension
structuredExtensionElement = element * - os:* {
         (attribute * { text }+, (text|anyElement)*)
       | (attribute * { text }*, (text?, anyElement+, (text|anyElement)*))}
 
# Other Extensibility
extensionElement = simpleExtensionElement | structuredExtensionElement
undefinedAttribute = attribute * - (local:* ) { text }
undefinedContent = (text|anyForeignElement)*
anyElement = element * { (attribute * { text } | text | anyElement)* }
anyForeignElement = element * - os:* { (attribute * { text } | text | anyElement)* }
 
 
# EOF


 

B.4     OpenSearch Query Element Schema (schemas/opensearch/1.1/osquery.rnc)


# -*- rnc -*-
   # RELAX NG Compact Syntax Grammar for
   # OpenSearch Query element
 
namespace os = “http://a9.com/-/spec/opensearch/1.1/”
namespace s = “http://purl.oclc.org/dsdl/schematron”
namespace local = “”
 
osQueryAttr = attribute role { osQueryRoleValues },
     attribute title { xsd:string { maxLength=“256”}}?, attribute searchTerms { text }?,
     attribute totalResults { xsd:int }?, attribute count { text }?,
     attribute startIndex { text }?, attribute startPage { text }?,
     attribute inputEncoding { text }?, attribute outputEncoding { text }?,
        attribute language { text }?
   
osQueryRoleValues = “request” | “example” | “related” | “correction” | “subset” | “superset”  
 
# EOF


 

 

B.5     GeoRSS Schema (schemas/georss/1.1/georss.rnc)


# -*- rnc -*-
   # RELAX NG Compact Syntax Grammar for the GEORSS
   # This defines the conformance to the rules of GEORSS
  
namespace georss=“http://www.georss.org/georss”
namespace gml=“http://www.opengis.net/gml”
namespace local = “”
 
georssElement = ( georssSimple | georssWhere)
     
georssWhere = element georss:where { gmlAttribute*, gmlElement }
 
georssSimple = georssPoint | georssLine | georssPolygon | georssBox | georssCircle
               | georssFeatureTypeTag | georssFeatureName | georssElev | georssFloor
 
georssPoint = element georss:point { list { xsd:decimal, xsd:decimal } }
georssLine = element georss:line { list { (xsd:decimal, xsd:decimal)+ } }
georssPolygon = element georss:polygon { list { (xsd:decimal, xsd:decimal)+ }  }
georssBox = element georss:box {
      list { (xsd:decimal, xsd:decimal, xsd:decimal, xsd:decimal) } }
georssCircle = element georss:circle { 
      list { (xsd:decimal, xsd:decimal, xsd:decimal) } }
georssFeatureTypeTag = element georss:featureTypeTag { text }
georssRelationshipTag = element georss:relationshipTag { text }
georssFeatureName = element georss:featureName { text }
georssElev = element georss:elev {xsd:decimal}
georssFloor = element georss:floor {xsd:decimal}
georssRadius = element georss:radius {xsd:decimal}
            
gmlAttribute = attribute (xml:base | xml:lang | local:* | gml:* ) { text }
  
gmlElement = (gmlPointElement | gmlLineStringElement |
                    gmlPolygonElement | gmlEnvelopeElement )
     
gmlPointElement =
      element gml:Point { gmlAttribute*,
        element gml:pos  { gmlAttribute*, list { xsd:decimal, xsd:decimal }}}
  
gmlLineStringElement = element gml:LineString { gmlAttribute*,
      element gml:posList  {gmlAttribute*, list { (xsd:decimal, xsd:decimal)+ }}}
            
gmlPolygonElement = element gml:Polygon { gmlAttribute*,
        element gml:exterior  { gmlAttribute*,
          element gml:LinearRing { gmlAttribute*,
            element gml:posList  { gmlAttribute*,
                                   list { (xsd:decimal, xsd:decimal)+ }}}}}
     
gmlEnvelopeElement = element  gml:Envelope { gmlAttribute*,
           (  element gml:lowerCorner { gmlAttribute*, 
                                        list { xsd:decimal, xsd:decimal } }
             & element gml:upperCorner { gmlAttribute*,
                                        list { xsd:decimal, xsd:decimal } }) }
            
# EOF


 

B.6     Earth Observation Extension Description Document Schema (schemas/opensearch/extensions/eo/1.0/osddeo.rnc)


# -*- rnc -*-
   # RELAX NG Compact Syntax Grammar for OpenSearch Description Documents
   # as defined in OGC 13-026 
namespace s = “http://purl.oclc.org/dsdl/schematron”
namespace local = “”
namespace os = “http://a9.com/-/spec/opensearch/1.1/”
namespace time = “http://a9.com/-/opensearch/extensions/time/1.0/”
namespace geo = “http://a9.com/-/opensearch/extensions/geo/1.0/”
namespace eo = “http://a9.com/-/opensearch/extensions/eo/1.0/”
 
include “eo.rnc”
 
# Redefine the foreign attribute to exclude eo:* elements
# relative path schemas/opensearch/1.1/ folder
include “../../../1.1/osdd.rnc”{
     undefinedAttribute = attribute * - (local:* | eo:* ) { text }
 
        osDocument = [
s:pattern [ name=“check Atom template”
 s:rule [ context = “os:OpenSearchDescription”
              s:assert [ test = “os:Url[@type=’application/atom+xml’]”
               “An OpenSearch Description Document must have a Url template with”
               ~ " type of Atom document." ]]]]
              element os:OpenSearchDescription { osDocumentConstruct }
}
 
#EOF


 

B.7     Earth Observation Extension Query Element Schema (schemas/opensearch/extensions/eo/1.0/eo.rnc)

 


# -*- rnc -*-
   # RELAX NG Compact Syntax Grammar
   # OpenSearch Query Element as defined in OGC 13-026 for the eo extension
 
namespace eo = “http://a9.com/-/opensearch/extensions/eo/1.0/”
 
 # from Table 3
 osQueryAttr &=
      attribute eo:productType { text }?
    & attribute eo:doi { text }?
    & attribute eo:platform { text }?
    & attribute eo:platformSerialIdentifier { text }?
    & attribute eo:instrument { text }?
    & attribute eo:sensorType  { text }?
    & attribute eo:compositeType { text }?
    & attribute eo:processingLevel { text }?
    & attribute eo:orbitType { text }?
    & attribute eo:spectralRange { text }?
    & attribute eo:wavelength {intValueOrSetOrRange }?
    & attribute eo:hasSecurityConstraints { text }?
    & attribute eo:dissemination { text }?
    & attribute sru:recordSchema { text }?
 
# from Table 4
osQueryAttr &=
    attribute eo:title  { text }?
    & attribute eo:topicCategory  { text }?
    & attribute eo:keyword  { text }?
    & attribute eo:abstract  { text }?
    & attribute eo:denominator { intValueOrSetOrRange }?
    & attribute eo:distanceValue { floatValueOrSetOrRange }?
    & attribute eo:distanceUOM { text }?
    & attribute eo:organisationName { text }?
    & attribute eo:organisationRole { text }?
    & attribute eo:publicationDate { dateValueOrSetOrRange }?
    & attribute eo:lineage { text }?
    & attribute eo:useLimitation { text }?
    & attribute eo:accessConstraint { text }?
    & attribute eo:otherConstraint { text }?
    & attribute eo:classification { text }?
    & attribute eo:language { text }?
    & attribute eo:specificationTitle { text }?
    & attribute eo:specificationDate { dateValueOrSetOrRange }?
    & attribute eo:specificationdateType { text }?
    & attribute eo:degree { text }?
 
# from Table 5
osQueryAttr &=
    attribute eo:parentIdentifier { text }?
  & attribute eo:productionStatus { text }?
  & attribute eo:acquisitionType { text }?
  & attribute eo:orbitNumber { intValueOrSetOrRange }?
  & attribute eo:orbitDirection { orbitDirection }?
  & attribute eo:track { text }?
  & attribute eo:frame { text }?
  & attribute eo:swathIdentifier { text }?
  & attribute eo:cloudCover { intValueOrSetOrRange }?
  & attribute eo:snowCover { intValueOrSetOrRange }?
  & attribute eo:lowestLocation { floatValueOrSetOrRange }? 
  & attribute eo:highestLocation { floatValueOrSetOrRange }? 
  & attribute eo:productVersion { text }?
  & attribute eo:productQualityStatus { text }?
  & attribute eo:productQualityDegradationTag { text }?
  & attribute eo:processorName { text }?
  & attribute eo:processingCenter { text }?
  & attribute eo:creationDate { dateValueOrSetOrRange }?
  & attribute eo:modificationDate { dateValueOrSetOrRange }?
 
  & attribute eo:processingDate { dateValueOrSetOrRange }?
  & attribute eo:sensorMode  { text }?
  & attribute eo:archivingCenter { text }?
  & attribute eo:processingMode { text }?
 
 
# from Table 6
 
osQueryAttr &=
attribute eo:availabilityTime
& attribute eo:acquisitionStation { text }?
& attribute eo:acquisitionSubType { text }?
& attribute eo:startTimeFromAscendingNode { intValueOrSetOrRange }?
& attribute eo:completionTimeFromAscendingNode { intValueOrSetOrRange }?
& attribute eo:illuminationAzimuthAngle { floatValueOrSetOrRange }?
& attribute eo:illuminationZenithAngle { floatValueOrSetOrRange }?
& attribute eo:illuminationElevationAngle { floatValueOrSetOrRange }?
& attribute eo:polarisationMode { polarisationMode }?
& attribute eo:polarizationChannels { text }?
& attribute eo:antennaLookDirection { antennaLookDirection }?
& attribute eo:minimumIncidenceAngle { floatValueOrSetOrRange }?
& attribute eo:maximumIncidenceAngle { floatValueOrSetOrRange }?
& attribute eo:dopplerFrequency { floatValueOrSetOrRange }?
& attribute eo:incidenceAngleVariation { floatValueOrSetOrRange }?
 
 
polarisationMode = “S” | “D” | “T” | “Q” | “UNDEFINED”
antennaLookDirection = “LEFT” | “RIGHT”
orbitDirection = “DESCENDING” | “ASCENDING”
 
# Ranges value|\{value(,value)*\}|[\]\[\(\)]value,value[\]\[\(\)]
 
intValueOrSetOrRange = xsd:string { pattern =“[\+\-]?[\d]*|\{[\+\-]?[\d]*(,[\d]*)*\}|[\]\[\(\)]?[\+\-]?[\d]*,[\+\-]?[\d]*[\]\[\(\)]?” }
 
floatValueOrSetOrRange = xsd:string { pattern =“[\+\-]?[\d]*(.[\d]+)?|\{[\+\-]?[\d]*(.[\d]+)?(,[\+\-]?[\d]*(.[\d]+)?)*\}|[\]\[\(\)]?[\+\-]?[\d]*(.[\d]+)?,[\+\-]?[\d]*(.[\d]+)?[\]\[\(\)]?” }
 
dateValueOrSetOrRange = xsd:string { pattern=“[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?(Z|[\+\-][0-9]{2}:[0-9]{2}))?|\{[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?(Z|[\+\-][0-9]{2}:[0-9]{2}))?(,[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?(Z|[\+\-][0-9]{2}:[0-9]{2}))?)*\}|[\]\[\(\)][0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?(Z|[\+\-][0-9]{2}:[0-9]{2}))?,[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?(Z|[\+\-][0-9]{2}:[0-9]{2}))?[\]\[\(\)]”}
 


 

 

B.8     Earth Observation Extension Atom Response Schema (schemas/opensearch/extenstions/eo/1.0/atomeo.rnc)


# -*- rnc -*-
   # RELAX NG Compact Syntax Grammar for Atom encoding and foreign elements
   # as defined in OGC 13-026 for the eo extension
  
namespace s = “http://purl.oclc.org/dsdl/schematron”
namespace atom = “http://www.w3.org/2005/Atom”
namespace os = “http://a9.com/-/spec/opensearch/1.1/”
namespace eo = “http://a9.com/-/opensearch/extensions/eo/1.0/”
namespace eop = “http://www.opengis.net/eop/2.1”
namespace opt = “http://www.opengis.net/opt/2.1”
namespace sar = “http://www.opengis.net/sar/2.1”
namespace atm = “http://www.opengis.net/atm/2.1”
namespace alt = “http://www.opengis.net/alt/2.1”
namespace lmb = “http://www.opengis.net/lmb/2.1”
namespace ssp = “http://www.opengis.net/ssp/2.1”
namespace local = “”
 
# Redefine atom:entry to include the EO elements  defined in OGC 10-157r4
atomEntryConstruct &= eopElements ?
eopElements =  eopElement | optElement | sarElement | atmElement | altElement
               | lmgElement | sspElement
eopElement = element eop:EarthObservation { anyChildren }
optElement = element opt:EarthObservation { anyChildren }
sarElement = element sar:EarthObservation { anyChildren }
atmElement = element atm:EarthObservation { anyChildren }
altElement = element alt:EarthObservation { anyChildren }
lmgElement = element lmb:EarthObservation { anyChildren }
sspElement = element ssp:EarthObservation { anyChildren }
 
anyChildren =  undefinedAttribute*, extensionElement*
 
include “eo.rnc”
 
# Replacing definitions on RFC4287 plus OpenSearch
# relative path schemas/opensearch/1.1/ folder
include “../../../1.1/osatom.rnc”{
      undefinedAttribute = attribute * - (xml:base | xml:lang | local:* | eo:* ) { text }
# Redefine the Simple Extension to exclude owc:* elements
      simpleExtensionElement = element * -
          (atom:* | os:* | eop:EarthObservation| opt:EarthObservation |
           sar:EarthObservation | atm:EarthObservation | alt:EarthObservation |
           lmb:EarthObservation | ssp:EarthObservation) { text }
 
      # Redefine the Structured Extension to exclude owc:* elements
      structuredExtensionElement = element * -
          (atom:* |  eop:EarthObservation | opt:EarthObservation | sar:EarthObservation |
           atm:EarthObservation | alt:EarthObservation | lmb:EarthObservation |
           ssp:EarthObservation | os:* ) {
             (attribute * { text }+,(text|anyElement)*)
           | (attribute * { text }*, (text?, anyElement+, (text|anyElement)*))}
 
      # Redefine Atom rules   
      atomFeed = element atom:feed { atomFeedConstruct }    
      atomEntry =element atom:entry { atomEntryConstruct }
}
# EOF


 

B.9     Parameter Extension Query Element Schema (schemas/opensearch/extensions/parameter/1.0/parameter.rnc)


# -*- rnc -*-
# RELAX NG Compact Syntax Grammar for
# OpenSearch Description Parameter Extension
namespace s = “http://purl.oclc.org/dsdl/schematron”
namespace local = “”
namespace os = “http://a9.com/-/spec/opensearch/1.1/”
namespace param = “http://a9.com/-/opensearch/extensions/param/1.0/”
 
parameterConstruct =  attribute name { xsd:token }?,
                                      attribute value { xsd:token }?,
                                      attribute minimum { xsd:unsignedInt }?,
                                      attribute maximum { xsd:unsignedInt }?,
                                      attribute pattern { text }?,
                                      attribute title {  xsd:string { maxLength = “1024” } }?,
                                      attribute minExclusive { xsd:decimal | xsd:dateTime }?,
                                      attribute maxExclusive { xsd:decimal | xsd:dateTime }?,
                                      attribute minInclusive { xsd:decimal | xsd:dateTime }?,
                                      attribute maxInclusive { xsd:decimal | xsd:dateTime }?,
                                      attribute step { xsd:decimal }?,
                                      undefinedAttribute*,
                                      element param:Option { paramOption }*
 
paramMethod = “OPTIONS” | “GET” | “HEAD” | “POST” | “PUT” | “DELETE” | “TRACE” | “CONNECT”
 
paramOption = attribute value { xsd:string },
               attribute label { xsd:string }, undefinedAttribute*
 
paramUrl = attribute param:method { paramMethod }?
            & attribute param:enctype {  xsd:string { pattern = “.+/.+” } }?
             &  element param:Parameter { parameterConstruct } *
 
#extend the Url definition here
osdUrl &= paramUrl
         
# Redefine the foreign attribute to exclude param:* elements
# relative path schemas/opensearch/1.1/ folder
include “../../../1.1/osdd.rnc”{
              # Simple Extension
              simpleExtensionElement = element * - ( os:* | param:* ){ text }
              # Structured Extension
              structuredExtensionElement = element * - ( os:*  | param:* ) {
                       (attribute * { text }+, (text|anyElement)*)
                     | (attribute * { text }*, (text?, anyElement+, (text|anyElement)*))}
             
              # Other Extensibility
              undefinedAttribute = attribute * - ( local:* | param:* ) { text }
              anyForeignElement = element * - ( os:*  | param:* ) { (attribute * { text } | text | anyElement)* }
                     
           osDocument = [ s:rule [ context = “os:OpenSearchDescription”
              s:assert [ test = “os:Url/param:Parameter”
               “This URL template does not contain a Parameter element.” ]]]
              element os:OpenSearchDescription { osDocumentConstruct }
}
# EOF


 


 

Annex C (informative): Example XML Documents

C.1 OpenSearch Description with Earth Observation Extension


<?xml version=“1.0” encoding=“UTF-8”?>
<OpenSearchDescription xmlns=“http://a9.com/-/spec/opensearch/1.1/”
xmlns:eo=“http://a9.com/-/opensearch/extensions/eo/1.0/”
xmlns:param=“http://a9.com/-/opensearch/extensions/param/1.0/”
xmlns:time=“http://a9.com/-/opensearch/extensions/time/1.0/”
xmlns:geo=“http://a9.com/-/opensearch/extensions/geo/1.0/”>
 
<ShortName>Web Search</ShortName>
<LongName>Example.com Web Search</LongName>
<Description>Use Example.com to search the Web.</Description>
<Tags>example web</Tags>
<Contact>admin@example.com</Contact>
<Url type=“application/atom+xml” template=“http://example.com/myatom/?pw={startPage?}&amp;acq={eo:acquisitionStation?}&amp;bbox={geo:box?}&amp;start={time:start?}&amp;end={time:end?}”>
 
   <param:Parameter name=“start” value=“{time:start}” minimum=“0”
      minInclusive=“2011-01-01T00:00:00Z” maxExclusive=“2012-01-01T00:00:00Z”/>
 
   <param:Parameter name=“end” value=“{time:end}” minimum=“0”
      minInclusive=“2011-01-01T00:00:00Z” maxExclusive=“2012-01-01T00:00:00Z”/>
 
   <param:Parameter name=“acq” value=“{eo:acquisitionStation}” minimum=“0”
      title=“Acquisition Station”>
     <param:Option value=“PDHS-K” label=“Kiruna”/>
     <param:Option value=“PDHS-E” label=“ESRIN” />
   </param:Parameter>
</Url>
<Attribution>Copyright 2005, Example.com, Inc.</Attribution>
<SyndicationRight>open</SyndicationRight>
 
</OpenSearchDescription>


 

 

C.2      Atom Output of Earth Observation Metadata


<?xml version=“1.0” encoding=“utf-8”?>
<feed xml:lang=“en” xmlns=“http://www.w3.org/2005/Atom” xmlns:time=“http://a9.com/-/opensearch/extensions/time/1.0/”
xmlns:os=“http://a9.com/-/spec/opensearch/1.1/” xmlns:dc=“http://purl.org/dc/elements/1.1/”
xmlns:georss=“http://www.georss.org/georss” xmlns:gml=“http://www.opengis.net/gml”
xmlns:geo=“http://a9.com/-/opensearch/extensions/geo/1.0/” >
  <title>Catalogue Search Feed for ASAR Image Mode source packets Level 0 (ASA_IM__0P)</title>
  <subtitle type=“html”>The ASAR Image Mode source packets Level 0 data product offers Level 0 data for possible images processing on an other processing site. It includes some mandatory information for SAR processing. The Image Mode Level 0 product consists of time-ordered Annotated Instrument Source Packets (AISPs) collected while the instrument is in Image Mode. The echo samples contained in the AISPs are compressed to 4 bits/sample using Flexible Block Adaptive Quantisation (FBAQ). This is a high-rate, narrow swath mode so data is only acquired for partial orbit segments and may be from one of seven possible image swaths. The Level 0 product is produced systematically for all data acquired within this mode. This product provides a continuation of the ERS-SAR_RAW product.</subtitle>
  <generator uri=“http://www.terradue.com” version=“1.4.0”>Terradue CAS</generator>
  <updated>2013-03-24T17:54:40Z</updated>
  <id>http://eo-virtual-archive4.esa.int/search/ASA_IM__0P/atom/</id>
  <link rel=“self” type=“application/atom+xml” href=“http://eo-virtual-archive4.esa.int/search/ASA_IM__0P/atom//?startIndex=0&amp;start=2010-01-01&amp;stop=2010-01-31&amp;bbox=125,39.9,132.7,43.5”/>
    <link rel=“search” type=“application/opensearchdescription+xml” href=“http://eo-virtual-archive4.esa.int/search/ASA_IM__0P/description”/>
  <os:totalResults>1</os:totalResults>
  <os:startIndex>0</os:startIndex>
  <os:itemsPerPage>20</os:itemsPerPage>
  <os:Query role=“request” startIndex=“0” time:start=“2010-01-01” time:end=“2010-01-31” geo:box=“125,39.9,132.7,43.5”/>
  <georss:where><gml:Polygon><gml:exterior><gml:LinearRing>
      <gml:posList>39.9 125 43.5 125 43.5 132.7 39.9 132.7 39.9 132.7</gml:posList>
  </gml:LinearRing></gml:exterior></gml:Polygon></georss:where>
    <author><name>GEOSS Supersites</name></author>
  <entry>
    <id>http://eo-virtual-archive4.esa.int/search/ASA_IM__0P/ASA_IM__0CNPDE20100122_014441_000000162086_00146_41282_7918.N1/atom</id>
    <title>ASA_IM__0CNPDE20100122_014441_000000162086_00146_41282_7918.N1</title>
    <dc:identifier>ASA_IM__0CNPDE20100122_014441_000000162086_00146_41282_7918.N1</dc:identifier>
    <published>2012-03-06T00:10:33.000Z</published>
    <updated>2013-05-16T22:25:57.124Z</updated>
    <dc:date>2010-01-22T01:44:41.316Z/2010-01-22T01:44:57.596Z</dc:date>
    <georss:where><gml:Polygon><gml:exterior><gml:LinearRing><gml:posList srsDimension=“2”>42.2879 128.7535 42.4897 127.4932 41.4254 127.1936 41.2326 128.3991 42.2879 128.7535
    </gml:posList></gml:LinearRing></gml:exterior></gml:Polygon></georss:where>
    <link rel=“alternate” type=" application/gml+xml;profile=http://www.opengis.net/spec/EOMPOM/1.1" title=“EOMPOM 1.1 file” href=“http://eo-virtual-archive4.esa.int/search/ASA_IM__0P/ASA_IM__0CNPDE20100122_014441_000000162086_00146_41282_7918.N1/xml”/>
    <link rel=“alternate” type=“text/html” title=“HTML page” href=“http://eo-virtual-archive4.esa.int/search/ASA_IM__0P/ASA_IM__0CNPDE20100122_014441_ 000000162086_00146_41282_7918.N1/html”/>
    <link rel=“via” type=“application/rdf+xml” title=“RDF metadata entry” href=“http://eo-virtual-archive4.esa.int/search/ASA_IM__0P/ASA_IM__ 0CNPDE20100122_014441_000000162086_00146_41282_7918.N1/rdf”/>
    <link rel=“enclosure” type=“application/binary” length=“157076059” title=" File ASA_IM__0CNPDE20100122_014441_000000162086_00146_41282_7918.N1 in the N1 (ENVISAT) format" href=“https://eo-virtual-archive4.esa.int/supersites/ASA_IM__ 0CNPDE20100122_014441_000000162086_00146_41282_7918.N1”/>
    <content type=“html”>
       &lt;ul&gt;    &lt;li&gt; &lt;b&gt;Date&lt;/b&gt;: 2010-01-22 &lt;br/&gt;
       (2010-01-22T01:44:41.316Z / 2010-01-22T01:44:57.596Z) &lt;/li&gt;
       &lt;li&gt; &lt;b&gt;Orbit Number&lt;/b&gt;: 41282 &lt;/li&gt;
       &lt;li&gt; &lt;b&gt;Processing Center&lt;/b&gt;: PDHS-E &lt;/li&gt;        
       &lt;li&gt; &lt;b&gt;Processing Date&lt;/b&gt;: 2010-01-22 &lt;/li&gt;
       &lt;br/&gt;
       &lt;a href=“https://eo-virtual-archive4.esa.int/supersites/ASA_IM__0CNPDE20100122_014441_000000162086_00146_41282_7918.N1”&gt;Product Download &lt;/a&gt;
       &lt;/ul&gt;
</content>
<eop:EarthObservation xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
    xsi:schemaLocation=“http://www.opengis.net/opt/2.1 ../xsd/opt.xsd”
xmlns:xlink=“http://www.w3.org/1999/xlink” xmlns:gml=“http://www.opengis.net/gml/3.2” xmlns:eop=“http://www.opengis.net/eop/2.1” xmlns:swe=“http://www.opengis.net/swe/1.0” xmlns:om=“http://www.opengis.net/om/2.0”
    gml:id=“eo_ASA_IM__0CNPDE20100122_014441_000000162086_00146_41282_7918.N1”>
    <om:phenomenonTime><gml:TimePeriod
gml:id=“tp_ASA_IM__0CNPDE20100122_014441_000000162086_00146_41282_7918.N1”>
            <gml:beginPosition>2010-01-22T01:44:41.316Z</gml:beginPosition>
            <gml:endPosition>2010-01-22T01:44:57.596Z</gml:endPosition>
        </gml:TimePeriod></om:phenomenonTime><om:resultTime>
        <gml:TimeInstant
  gml:id=“ad_ ASA_IM__0CNPDE20100122_014441_000000162086_00146_41282_7918.N1”>
            <gml:timePosition>2010-01-22T02:35:06.000Z</gml:timePosition>
        </gml:TimeInstant></om:resultTime>
    <om:procedure>
        <eop:EarthObservationEquipment
gml:id=“eq_ASA_IM__0CNPDE20100122_014441_000000162086_00146_41282_7918.N1”>
            <eop:platform><eop:Platform><eop:shortName>ENVISAT</eop:shortName>
</eop:Platform></eop:platform>
            <eop:instrument><eop:Instrument><eop:shortName>ASAR</eop:shortName>
                </eop:Instrument>
            </eop:instrument>
            <eop:sensor><eop:Sensor><eop:sensorType>RADAR</eop:sensorType>
</eop:Sensor></eop:sensor>
        </eop:EarthObservationEquipment>
    </om:procedure>
    <om:observedProperty xlink:href=“#params1”/>
    <om:featureOfInterest>
        <eop:Footprint gml:id=“fp_ASA_IM__0CNPDE20100122_014441_000000162086_00146_41282_7918.N1”>
            <eop:multiExtentOf><gml:MultiSurface gml:id=“ms_ASA_IM__0CNPDE20100122_014441_000000162086_00146_41282_7918.N1” srsName=“EPSG:4326”><gml:surfaceMember><gml:Polygon gml:id=“p_ASA_IM__0CNPDE20100122_014441_000000162086_00146_41282_7918.N1”>
              <gml:exterior><gml:LinearRing>
                <gml:posList>42.2879 128.7535 42.4897 127.4932 41.4254 127.1936 41.2326 128.3991 42.2879 128.7535</gml:posList>
               </gml:LinearRing></gml:exterior></gml:Polygon>
           </gml:surfaceMember></gml:MultiSurface></eop:multiExtentOf>
        </eop:Footprint>
    </om:featureOfInterest>
    <om:result></om:result>
    <eop:metaDataProperty>
        <eop:EarthObservationMetaData>
           <eop:identifier> ASA_IM__0CNPDE20100122_014441_000000162086_00146_41282_7918.N1 </eop:identifier>
            <eop:acquisitionType>NOMINAL</eop:acquisitionType>
            <eop:productType>ASA_IM__0P</eop:productType>
            <eop:status>ARCHIVED</eop:status>
            <eop:downlinkedTo><eop:DownlinkInformation>
                    <eop:acquisitionStation>PDHS-E</eop:acquisitionStation>
            </eop:DownlinkInformation></eop:downlinkedTo>
            <eop:processing><eop:ProcessingInformation>
                    <eop:processingCenter>PDHS-E</eop:processingCenter>
            </eop:ProcessingInformation></eop:processing>
        </eop:EarthObservationMetaData>
    </eop:metaDataProperty>
</eop:EarthObservation>
 
</entry>
</feed>
 


 

C.3      Atom Output of Earth Observation Collection Metadata


<atom:feed xml:lang=“en” xmlns:atom=“http://www.w3.org/2005/Atom” xmlns:xlink=“http://www.w3.org/1999/xlink” xmlns:gml=“http://www.opengis.net/gml” xmlns:georss=“http://www.georss.org/georss” xmlns:eop=“http://a9.com/-/opensearch/extensions/eo/1.0/” xmlns:eum=“http://a9.com/-/opensearch/extensions/eumetsat/1.0/” xmlns:time=“http://a9.com/-/opensearch/extensions/time/1.0/” xmlns:geo=“http://a9.com/-/opensearch/extensions/geo/1.0/” xmlns:opensearch=“http://a9.com/-/spec/opensearch/1.1/” xmlns:kml=“http://earth.google.com/kml/2.2”>
       <atom:title>EUMETSAT Product Navigator COLOS Adaptor results feed</atom:title>
       <atom:subtitle type=“html”>Number of results: 58</atom:subtitle>
       <atom:id>http://46.51.189.235:80/atom</atom:id>
       <atom:generator version=“2.1” uri=“http://46.51.189.235:80”>EUMETSAT Product Navigator</atom:generator>
       <atom:author>
              <atom:name>EUMETSAT</atom:name>
       </atom:author>
       <atom:category>climatologyMeteorologyAtmosphere</atom:category>
       <atom:contributor>con terra GmbH</atom:contributor>
       <atom:rights>Copyright</atom:rights>
       <atom:updated>2014-03-14T11:23:28Z</atom:updated>
       <atom:icon>http://46.51.189.235:80/soapServices/feed-icon-14x14.png</atom:icon>
       <atom:logo>http://46.51.189.235:80/soapServices/terraCatalog_feed.png</atom:logo>
       <opensearch:totalResults>58</opensearch:totalResults>
       <opensearch:startIndex>1</opensearch:startIndex>
       <opensearch:itemsPerPage>10</opensearch:itemsPerPage>
       <opensearch:Query role=“request” searchTerms=“wind” startIndex=“1” count=“1”/>
       <atom:link title=“Product Navigator search” type=“application/opensearchdescription+xml” href=“http://46.51.189.235:80/soapServices/os-description.xml” rel=“search”/>
       <atom:link title=“Product Navigator search” type=“application/opensearchdescription+xml” href=“http://46.51.189.235:80/soapServices/os-description.xml” rel=“up”/>
       <atom:link title=“self” type=“application/atom+xml” href=“http://46.51.189.235:80/soapServices/OpenSearch?format=atom&amp;sI=1&amp;c=1&amp;q=wind” rel=“self”/>
       <atom:link title=“next” type=“application/atom+xml” href=“http://46.51.189.235:80/soapServices/OpenSearch?format=atom&amp;sI=1&amp;c=1&amp;q=wind&amp;pw=2” rel=“next”/>
       <entry xml:lang=“en” xmlns=“http://www.w3.org/2005/Atom” xmlns:dc=“http://purl.org/dc/elements/1.1/” xmlns:eum=“http://www.eumetsat.int/2008/gmi” xmlns:gmi=“http://www.isotc211.org/2005/gmi”>
              <title>ASCAT AHRPT - Metop</title>
              <category term=“climatologyMeteorologyAtmosphere”/>
              <category term=“Observation”/>
              <category term=“Marine”/>
              <category term=“Satellite_Data”/>
              <category term=“Sea_Ice”/>
              <id>EO:EUM:DAT:METOP:ASCATAHRPT</id>
              <dc:identifier>EO:EUM:DAT:METOP:ASCATAHRPT</dc:identifier>
              <link href=“http://46.51.189.235:80/soapServices/CSWStartup?service=CSW&amp;version=2.0.2&amp;request=GetRecordById&amp;outputSchema=http://www.isotc211.org/2005/gmi&amp;Id=EO:EUM:DAT:METOP:ASCATAHRPT” rel=“alternate” type=“application/vnd.iso.19139+xml”/>
              <link href=“http://46.51.189.235:80/discovery/Start/DirectSearch/DetailResult.do?f(r0)=EO:EUM:DAT:METOP:ASCATAHRPT” rel=“alternate” title=“ASCAT AHRPT - Metop” type=“text/html”/>
              <generator uri=“http://navigator.eumatsat.int” version=“2.1”>EUMETSAT Product Navigator</generator>
              <author>
                      <name>EUMETSAT</name>
                      <email>ops@eumetsat.int</email>
              </author>
              <updated>2010-09-21</updated>
              <summary>The prime objective of the Advanced SCATterometer (ASCAT) is to measure wind speed and direction over the oceans, and the main operational application is the assimilation of ocean winds in NWP models. Other operational applications, based on the use of measurements of the backscattering coefficient, are sea ice edge detection and monitoring, monitoring sea ice, snow cover, soil moisture and land surface parameters.</summary>
              <georss:where>
                      <gml:Polygon srsName=“urn:x-ogc:def:crs:EPSG:6.7:4326”>
                             <gml:exterior>
                                    <gml:LinearRing>
                                           <gml:posList srsDimension=“2”>90.0 -180.0 -90.0 -180.0 -90.0 180.0 90.0 180.0 90.0 -180.0</gml:posList>
                                    </gml:LinearRing>
                             </gml:exterior>
                      </gml:Polygon>
              </georss:where>
              <rights>-</rights>
              <link href=“http://www.eumetsat.int/Home/Main/Satellites/Metop/Services/SP_2010034162824650?l=en” rel=“enclosure” title=“Metop Direct Readout Service” type=“text/html”/>
              <content type=“html”><![CDATA[<a href=“http://www.eumetsat.int/Home/Main/Satellites/Metop/Services/SP_2010034162824650?l=en”>Metop Direct Readout Service</a>
       <br/>
      
       <a href=“http://46.51.189.235:80/discovery/Start/DirectSearch/DetailResult.do?f(r0)=EO:EUM:DAT:METOP:ASCATAHRPT”>Metadata (HTML)</a>
       <br/>
       <a href=“http://46.51.189.235:80/soapServices/CSWStartup?service=CSW&version=2.0.2&request=GetRecordById&outputSchema=http://www.isotc211.org/2005/gmi&Id=EO:EUM:DAT:METOP:ASCATAHRPT”>Metadata (ISO19139 XML)</a>
       <br/>
       <a href=“http://46.51.189.235:80/soapServices/OpenSearch?format=atom&id=EO:EUM:DAT:METOP:ASCATAHRPT”>ATOM</a>
       <br/>]]></content>
       </entry>
</atom:feed>
 



 

 

Annex D (informative): Metadata Mappings

D.1      Mapping for EO Metadata profile of Observations & Measurements

In the table below the informative mappings of the queryables for the Product Search to “Earth Observation Metadata profile of Observations & Measurements” (OGC 10-157r4) are defined.

OpenSearch Parameter GML Metadata XPath

productType

/eop:metaDataProperty/eop:EarthObservationMetaData/eop:productType

doi

/eop:EarthObservation/eop:metaDataProperty/eop:EarthObservationMetaData/eop:doi

creationDate

/eop:metaDataProperty/eop:EarthObservationMetaData/eop:creationDate

modificationDate

/eop:metaDataProperty/eop:EarthObservationMetaData/eop:modificationDate

platform

/om:procedure/eop:EarthObservationEquipment/eop:platform/eop:Platform/eop:shortName

platformSerialIdentifier

/om:procedure/eop:EarthObservationEquipment/eop:platform/eop:Platform/eop:serialIdentifier

instrument

/om:procedure/eop:EarthObservationEquipment/eop:instrument/eop:Instrument/eop:shortName

sensorType

/om:procedure/eop:EarthObservationEquipment/eop:sensor/eop:Sensor/eop:sensorType

compositeType

/eop:metaDataProperty/eop:EarthObservationMetaData/eop:processing/eop:ProcessingInformation/eop:compositeType

processingLevel

/eop:metaDataProperty/eop:EarthObservationMetaData/eop:processing/eop:ProcessingInformation/eop:processingLevel

orbitType

/om:procedure/eop:EarthObservationEquipment/eop:platform/eop:Platform/eop:orbitType

resolution

/om:procedure/eop:EarthObservationEquipment/eop:sensor/eop:Sensor/eop:resolution

spectralRange

/om:procedure/eop:EarthObservationEquipment/eop:sensor/eop:Sensor/ eop:wavelengthInformation/eop:WavelengthInformation/eop:spectralRange

wavelengths

/om:procedure/eop:EarthObservationEquipment/eop:sensor/eop:Sensor/ eop:wavelengthInformation/eop:WavelengthInformation/eop:discreteWavelengths

geo:box

to be derived from: /eopr:EarthObservation/om:featureOfInterest/eop:Footprint

geo:name

N/A

time:start

/eop:EarthObservation/om:phenomenonTime/gml:TimePeriod/gml:beginPosition                              

time:end

/eop:EarthObservation/om:phenomenonTime/gml:TimePeriod/gml:endPosition

geo:uid

/eop:EarthObservation/eop:metaDataProperty/eop:EarthObservationMetaData/eop:identifier

useLimitation

N/A

hasSecurityConstraints

N/A

organisationName

N/A

publicationDate

N/A

dissemination

N/A

parentIdentifier

/eop:metaDataProperty/eop:EarthObservationMetaData/eop:parentIdentifier

productionStatus

/eop:metaDataProperty/eop:EarthObservationMetaData/eop:status

acquisitionType

/eop:metaDataProperty/eop:EarthObservationMetaData/eop:acquisitionType

orbitNumber

/om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/eop:Acquisition/eop:orbitNumber

orbitDirection

/om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/eop:Acquisition/eop:orbitDirection

track

/om:procedure/eop:EarthObservationEquipment/ eop:acquisitionParameters/eop:Acquisition/eop:wrsLongitudeGrid

frame

/om:procedure/eop:EarthObservationEquipment/ eop:acquisitionParameters/eop:Acquisition/eop:wrsLatitudeGrid

swathIdentifier

/om:procedure/eop:EarthObservationEquipment/eop:sensor/eop:Sensor/eop:swathIdentifier

cloudCover

/om:result/opt:EarthObservationResult/opt:cloudCoverPercentage

or

/atm:EarthObservation/om:result/atm:EarthObservationResult/atm:cloudCoverPercentage

snowCover

/om:result/opt:EarthObservationResult/opt:snowCoverPercentage

or

/atm:EarthObservation/om:result/atm:EarthObservationResult/atm:snowCoverPercentage

lowestLocation

/atm:EarthObservation/om:resultOf/atm:EarthObservationRe

sult/atm:dataLayers/atm:DataLayer/atm:lowestLocation

highestLocation

/atm:EarthObservation/om:resultOf/atm:EarthObservationRe

sult/atm:dataLayers/atm:DataLayer/atm:highestLocation

productVersion

/eop:EarthObservation/om:result/eop:EarthObservationResult/eop:product/eop:ProductInformation/eop:version

acquisitionStation

/eop:metaDataProperty/eop:EarthObservationMetaData/eop:downlinkedTo/eop:DownlinkInformation/eop:acquisitionStation

productQualityStatus

/eop:metaDataProperty/eop:EarthObservationMetaData/eop:productQualityDegradation

productQualityDegradationTag

/eop:metaDataProperty/eop:EarthObservationMetaData/eop:productQualityDegradationTag

processorName

/eop:metaDataProperty/eop:EarthObservationMetaData/eop:processing/eop:ProcessingInformation/eop:processorName

processingCenter

/eop:metaDataProperty/eop:EarthObservationMetadata/eop:processing/eop:ProcessingInformation/eop:processingCenter

processingDate

/eop:metaDataProperty/eop:EarthObservationMetadata/eop:processing/eop:ProcessingInformation/eop:processingDate

sensorMode

/om:procedure/eop:EarthObservationEquipment/eop:sensor/eop:Sensor/eop:operationalMode

archivingCenter

/eop:metaDataProperty/eop:EarthObservationMetaData/eop:archivedIn/eop:ArchivingInformation/eop:archivingCenter

processingMode

/eop:metaDataProperty/eop:EarthObservationMetaData/eop:processing/eop:ProcessingInformation/eop:ProcessingMode

availabilityTime

om:resultTime/gml:TimeInstant/gml:timePosition

acquisitionSubType

/eop:metaDataProperty/eop:EarthObservationMetaData/eop:acquisitionSubType

startTimeFromAscendingNode

/om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/eop:Acquisition/eop:startTimeFromAscendingNode

completionTimeFromAscendingNode

/om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/eop:Acquisition/eop:completionTimeFromAscendingNode

illuminationAzimuthAngle

/om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/eop:Acquisition/eop:illuminationAzimuthAngle

illuminationZenithAngle

/om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/eop:Acquisition/eop:illuminationZenithAngle

illuminationElevationAngle

/om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/eop:Acquisition/eop:illuminationElevationAngle

polarisationMode

/om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/sar:Acquisition/sar:polarisationMode

polarisationChannels

/om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/sar:Acquisition/sar:polarisationChannels

antennaLookDirection

/om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/sar:Acquisition/sar:antennaLookDirection

minimumIncidenceAngle

/om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/sar:Acquisition/sar:minimumIncidenceAngle

maximumIncidenceAngle

/om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/sar:Acquisition/sar:maximumIncidenceAngle

dopplerFrequency

/om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/sar:Acquisition/sar:dopplerFrequency

incidenceAngleVariation

/om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/sar:Acquisition/sar:incidenceAngleVariation

 

D.2      ISO 19115 / ISO19115-2 Geographic information – Metadata

In the table below the informative mappings of the queryables for the Collection Search to ISO19115(-2)/ISO19139(-2) are defined.

The table also includes the mappings of the spatial and temporal parameters of the OpenSearch Geo- and Time-Extension to the appropriate XPath in ISO 19115 / ISO 19115-2.

OpenSearch Parameter ISO191(15|39) Metadata XPath[5]

useLimitation

/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_Data-Identification/gmd:resourceConstraints/gmd:MD_LegalConstraints/gmd:useLimitation/gco:CharacterString

accessConstraint

/gmi:MI_Metadata|gmd:MD_Metadata)/identificationInfo/MD_DataIdentification/resourceConstraints/MD_LegalConstraints/accessConstraints/MD_RestrictionCode/@codeListValue

Sample: license

otherConstraint

/gmi:MI_Metadata/gmd:identificationInfo/…/gmd:resourceConstraints/gmd:MD_LegalConstraints/gmd:otherConstraints

classification

/gmi:MI_Metadata/gmd:identificationInfo/…/gmd:resourceConstraints/gmd:MD_SecurityConstraints/gmd:classification

 

Sample: confidential

hasSecurityConstraints

/gmi:MI_Metadata/identificationInfo/MD_DataIdentification/resourceConstraints[2]/MD_SecurityConstraints/

If an instance of the class MD_SecurityConstraint exists for a resource, the “HasSecurityConstraints” is “true”, otherwise “false”

organisationName

/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:organisationName/gco:CharacterString

organisationRole

//(gmi:MI_Metadata|gmd:MD_Metadata)/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:pointOfContact/*/role

publicationDate

/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:date/gco:Date[../../gmd:dateType/gmd:CI_DateTypeCode/@codeListValue='publication']/text()

dissemination

/gmi:MI_Metadata/gmd:distributionInfo/gmd:MD_Distribution/gmd:transferOptions/gmd:MD_DigitalTransferOptions/gmd:onLine/gmd:CI_OnlineResource/gmd:name

or

/gmi:MI_Metadata/gmd:distributionInfo/gmd:MD_Distribution/gmd:distributor/gmd:MD_Distributor/gmd:distributorTransferOptions/gmd:MD_DigitalTransferOptions/gmd:onLine/gmd:CI_OnlineResource/gmd:name

topicCategory

gmi:MI_Metadata/identificationInfo/MD_DataIdentification/topicCategory/gco:CharacterString

lineage

/gmi:MI_Metadata/gmd:dataQualityInfo/gmd:DQ_DataQuality/gmd:lineage/gmd:LI_Lineage/gmd:statement/gco:CharacterString

keyword

/gmi:MI_Metadata/gmd:identificationInfo//gmd:descriptiveKeywords/gmd:MD_Keywords [gmd:type/gmd:MD_KeywordTypeCode/@codeListValue = 'theme']

doi

/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:identifier/gmd:RS_Identifier/gmd:code/gco:CharacterString[../../codeSpace/gco:CharacterString='http://doi.org']

denominator

/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:spatialResolution/MD_Resolution/gmd:equivalentScale/MD_RepresentativeFraction/gmd:denominator/gco:Integer

Sample:

<gmd:MD_Resolution>

  <equivalentScale>

            <MD_RepresentativeFraction>

              <denominator>

                        <gco:Integer>50000</gco:Integer>

              </denominator>

            </MD_RepresentativeFraction>

  </equivalentScale>

</gmd:MD_Resolution>

distanceValue

distanceUOM

/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:spatialResolution/MD_Resolution/gmd:distance/gco:Distance

/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:spatialResolution/MD_Resolution/gmd:distance/gco:Distance/@uom

Sample 1:

<gmd:MD_Resolution>

                  <gmd:distance>

                              <gco:Distance uom="m">1000</gco:Distance>

                  </gmd:distance>

</gmd:MD_Resolution>

language

/gmi:MI_Metadata/gmd:language

modificationDate

/gmi:MI_Metadata/gmd:dateStamp

title

/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:title

abstract

/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:abstract

searchTerms

Minimally this should be mapped to search on:

/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:abstract

/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:title

/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:organisationName/gco:CharacterString

/gmi:MI_Metadata/gmd:identificationInfo//gmd:descriptiveKeywords/gmd:MD_Keywords [gmd:type/gmd:MD_KeywordTypeCode/@codeListValue = 'theme']

platform

/gmi:MI_Metadata/gmi:acquisitionInformation/ gmi:MI_AcquisitionInformation /gmi:platform/gmi:MI_Platform/ gmi:description/gco:CharacterString

OR:

/gmi:MI_Metadata/gmi:acquisitionInformation/ gmi:MI_AcquisitionInformation/gmi:platform/ gmi:MI_Platform/gmi:instrument/gmi:MI_Instrument/ gmi:mountedOn/gmi:MI_Platform/ gmi:description/gco:CharacterString

Sample: Meteosat8

platformSerialIdentifier

/gmi:MI_Metadata/gmi:acquisitionInformation/ gmi:MI_AcquisitionInformation/gmi:platform/ gmi:MI_Platform/gmi:identifier/gmd:MD_Identifier/ gmd:code/gco:CharacterString

OR:

/gmi:MI_Metadata/gmi:acquisitionInformation/ gmi:MI_AcquisitionInformation/gmi:platform/ gmi:MI_Platform/gmi:instrument/gmi:MI_Instrument/ gmi:mountedOn/gmi:MI_Platform/gmi:identifier/ MD_Identifier/code/gco:CharacterString

instrument

/gmi:MI_Metadata/gmi:acquisitionInformation/ gmi:MI_AcquisitionInformation/ /gmi:instrument/gmi:MI_Instrument/ gmi:citation/gmd:CI_Citation/gmd:identifier /gmd:MD_Identifier/gmd:code/gco:CharacterString

OR:

/gmi:MI_Metadata/gmi:acquisitionInformation/ gmi:MI_AcquisitionInformation/gmi:platform/ gmi:MI_Platform/gmi:instrument/gmi:MI_Instrument/ gmi:citation/gmd:CI_Citation/gmd:identifier /gmd:MD_Identifier/gmd:code/gco:CharacterString

 

…..OR…..

 

/gmi:MI_Metadata/gmi:acquisitionInformation/ gmi:MI_AcquisitionInformation/ /gmi:instrument/gmi:MI_Instrument/ gmi:description/gco:CharacterString

OR:

/gmi:MI_Metadata/gmi:acquisitionInformation/ gmi:MI_AcquisitionInformation/gmi:platform/ gmi:MI_Platform/gmi:instrument/gmi:MI_Instrument/ gmi:description/gco:CharacterString

 

Instrument name (sensor name). Used as ID for the instrument      

Note: MI_Instrument/identifier not existent within XML schema of ISO19115-2

Sample: SEVERI

sensorType

/gmi:MI_Metadata/gmi:acquisitionInformation/ gmi:MI_AcquisitionInformation/gmi:instrument/ gmi:MI_Instrument/ gmi:type/gmi:MI_SensorTypeCode/@id

OR:
/gmi:MI_Metadata/gmi:acquisitionInformation/ gmi:MI_AcquisitionInformation/gmi:platform/ gmi:MI_Platform/gmi:instrument/gmi:MI_Instrument/ gmi:type/gmi:MI_SensorTypeCode/@id

orbitType

N/A (not available in ISO19115(-2))

 

spectralRange

/gmi:MI_Metadata/gmd:contentInfo/gmi:MI_CoverageDescription/gmd:dimension/gmi:MI_Band

wavelengths

/gmi:MI_Metadata/gmd:contentInfo/gmi:MI_CoverageDescription/gmd:dimension/gmi:MI_Band/gmi:bandBoundaryDefinition

geo:box

/gmi:MI_Metadata/gmd:identificationInfo/*/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:westBoundLongitude

/gmi:MI_Metadata/gmd:identificationInfo/*/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:eastBoundLongitude

/gmi:MI_Metadata/gmd:identificationInfo/*/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:southBoundLatitude

/gmi:MI_Metadata/gmd:identificationInfo/*/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:northBoundLatitude

geo:name

/gmi:MI_Metadata/gmd:identificationInfo/*/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicDescription/gmd:geographicIdentifier

time:start

/gmi:MI_Metadata/identificationInfo/MD_DataIdentification/extent/EX_Extent/temporalElement/EX_TemporalExtent/extent/gml:TimePeriod/beginPosition

time:end

/gmi:MI_Metadata/identificationInfo/MD_DataIdentification/extent/EX_Extent/temporalElement/EX_TemporalExtent/extent/gml:TimePeriod/endPosition                     

geo:uid

gmd:MD_Metadata/gmd:fileIdentifier

specificationTitle

//dataQualityInfo/*/report/*/result/*/specification/*/title

specificationDate

//dataQualityInfo/*/report/*/result/*/specification/*/date/*/date

specificationdateType

//dataQualityInfo/*/report/*/result/*/specification/*/date/*/dateType

degree

//dataQualityInfo/*/report/*/result/*/pass

processingLevel

N/A

compositeType

N/A

productType

N/A

 

 

D.3      Mapping for OGC CS Extension Package for ebRIM AP: EO Products

This mapping is based on information from “OGC Catalogue Services Standard 2.0 Extension Package for ebRIM Application Profile Earth Observation Products” (OGC 06-131r6).

OpenSearch Parameter EOProduct ExtrinsicObject Attribute

productType

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC-CSW-ebRIM-EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::productType” ]/rim:ValueList/rim:Value[1]

doi

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC-CSW-ebRIM-EO::EOProduct” ]/rim:Slot[ @name= ”urn:ogc:def:slot:OGC-CSW-ebRIMEO::doi”]/rim:ValueList/rim:Value[1]

modificationDate

N/A

platform

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC- CSW-ebRIM- EO::EOAcquisitionPlatform” ]/rim:Name/rim:LocalizedString/@value

platformSerialIdentifier

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC- CSW-ebRIM- EO::EOAcquisitionPlatform” ]/rim:Slot[ @name = ”urn:ogc:def:slot:O GC-CSW-ebRIM- EO::platformSerialIdentifier” ]/rim:ValueList/rim:Value[1]

instrument

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC- CSW-ebRIM- EO::EOAcquisitionPlatform” ]/rim:Slot[ @name = ”urn:ogc:def:slot:O GC-CSW-ebRIM- EO::instrumentShortName” ]/rim:ValueList/rim:Value[1]

sensorType

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC- CSW-ebRIM- EO::EOAcquisitionPlatform” ]/rim:Slot[ @name = ”urn:ogc:def:slot:O GC-CSW-ebRIM-EO::sensorType” ]/rim:ValueList/rim:Value[1]

compositeType

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC-CSW-ebRIM-EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::compositeType” ]/rim:ValueList/rim:Value[*]

processingLevel

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC-CSW-ebRIM-EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::processingLevel” ]/rim:ValueList/rim:Value[*]

orbitType

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC- CSW-ebRIM- EO::EOAcquisitionPlatform” ]/rim:Slot[ @name = ”urn:ogc:def:slot:O GC-CSW-ebRIM- EO::platformOrbitType” ]/rim:ValueList/rim:Value[1]

resolution

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC- CSW-ebRIM- EO::EOAcquisitionPlatform” ]/rim:Slot[ @name = ”urn:ogc:def:slot:O GC-CSW-ebRIM- EO::sensorResolution” ]/rim:ValueList/rim:Value[1]

spectralRange

N/A

wavelengths

N/A

geo:box

/rim:ExtrinsicObject[@objectType=”urn:ogc:def:objectType:OGC-CSW-bRIMEO::EOProduct”]/rim:Slot[@name=”urn:ogc:def:slot:OGC-CSW-ebRIMEO::multiExtentOf”]/wrs:ValueList/wrs:AnyValue[1]

geo:name

N/A

time:start

/rim:ExtrinsicObject[@objectType=”urn:ogc:def:objectType:OGC-CSW-bRIMEO::EOProduct”]/rim:Slot[@name=”urn:ogc:def:slot:OGC-CSW-ebRIMEO::beginPosition”]/rim:ValueList/rim:Value[1]

time:end

/rim:ExtrinsicObject[@objectType=”urn:ogc:def:objectType:OGC-CSW-ebRIMEO::EOProduct”]/rim:Slot[@name=”urn:ogc:def:

geo:uid

/rim:ExtrinsicObject[@objectType=”urn:ogc:def:objectType:OGC-CSW-ebRIMEO::EOProduct”]/@id

or

/rim:ExternalIdentifier/@value (linked to the EOProduct ExtrinsicObject by the ExternalIdentifier’s registryObject attribute)

useLimitation

N/A

hasSecurityConstraints

N/A

organisationName

N/A

publicationDate

N/A

dissemination

N/A

parentIdentifier

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC-CSW-ebRIM-EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::parentIdentifier” ]/rim:ValueList/rim:Value[1]

productionStatus

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC-CSW-ebRIM-EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::status” ]/rim:ValueList/rim:Value[1]

acquisitionType

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC-CSW-ebRIM-EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::acquisitionType” ]/rim:ValueList/rim:Value[1]

orbitNumber

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC-CSW-ebRIM-EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::orbitNumber” ]/rim:ValueList/rim:Value[1]

orbitDirection

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC-CSW-ebRIM-EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::orbitDirection” ]/rim:ValueList/rim:Value[1]

track

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC-CSW-ebRIM-EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::wrsLongitudeGrid” ]/rim:ValueList/rim:Value[1]

frame

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC-CSW-ebRIM-EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::wrsLatitudeGrid” ]/rim:ValueList/rim:Value[1]

swathIdentifier

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC- CSW-ebRIM-EO:: EOAcquisitionPlatform” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC- CSW-ebRIM-EO::swathIdentifier” ]/rim:ValueList/rim:Value[1]

cloudCover

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC- CSW-ebRIM- EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::cloudCoverPercentage” ]/rim:ValueList/rim:Value[1]

snowCover

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC- CSW-ebRIM- EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::snowCoverPercentage” ]/rim:ValueList/rim:Value[1]

lowestLocation

/rim:ExtrinsicObject[@objectType=”urn:ogc:def:objectType:OGCCSW-

ebRIM-EO::EODataLayer”]/rim:Slot[@name=”

urn:ogc:def:slot:OGC-CSW-ebRIMEO::lowestLocation”]/rim:ValueList/rim:Value[1]

highestLocation

/rim:ExtrinsicObject[@objectType=”urn:ogc:def:objectType:OGCCSW-

ebRIM-EO::EODataLayer”]/rim:Slot[@name=”

urn:ogc:def:slot:OGC-CSW-ebRIMEO::highestLocation”]/rim:ValueList/rim:Value[1]

productVersion

/rim:ExtrinsicObject[@objectType=”urn:ogc:def:objectType:OGCCSW-

ebRIMEO::EOProductInformation”]/rim:Slot[@name=”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::version”]/rim:ValueList/rim:Value[1]

acquisitionStation

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC-CSW-ebRIM-EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::acquisitionStation” ]/rim:ValueList/rim:Value[1]

productQualityStatus

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC-CSW-ebRIM-EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::imageQualityDegradation” ]/rim:ValueList/rim:Value[1]

productQualityDegradationTag

N/A

processorName

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC-CSW-ebRIM-EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::processorName” ]/rim:ValueList/rim:Value[*]

processingCenter

N/A

processingDate

N/A

sensorMode

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC- CSW-ebRIM- EO::EOAcquisitionPlatform” ]/rim:Slot[ @name = ”urn:ogc:def:slot:O GC-CSW-ebRIM- EO::sensorOperationalMode” ]/rim:ValueList/rim:Value[1]

archivingCenter

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC- CSW-ebRIM- EO::EOArchivingInformation” ]/rim:Name/rim:LocalizedString/@value

processingMode

N/A

availabilityTime

N/A

acquisitionSubType

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC-CSW-ebRIM-EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::acquisitionSubType” ]/rim:ValueList/rim:Value[1]

startTimeFromAscendingNode

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC-CSW-ebRIM-EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::startTimeFromAscendingNode” ]/rim:ValueList/rim:Value[1]

completionTimeFromAscendingNode

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC-CSW-ebRIM-EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::completionTimeFromAscendingNode” ]/rim:ValueList/rim:Value[1]

illuminationAzimuthAngle

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC- CSW-ebRIM- EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM- EO::illuminationAzimuthAngle” ]/rim:ValueList/rim:Value[1]

illuminationZenithAngle

N/A

illuminationElevationAngle

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC- CSW-ebRIM- EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM- EO::illuminationElevationAngle” ]/rim:ValueList/rim:Value[1]

polarisationMode

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC- CSW-ebRIM- EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::polarisationMode” ]/rim:ValueList/rim:Value[1]

polarisationChannels

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC- CSW-ebRIM- EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::polarisationChannels” ]/rim:ValueList/rim:Value[1]

antennaLookDirection

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC- CSW-ebRIM- EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::antennaLookDirection” ]/rim:ValueList/rim:Value[1]

minimumIncidenceAngle

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC- CSW-ebRIM- EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::minimumIncidenceAngle” ]/rim:ValueList/rim:Value[1]

maximumIncidenceAngle

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC- CSW-ebRIM- EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::maximumIncidenceAngle” ]/rim:ValueList/rim:Value[1]

dopplerFrequency

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC- CSW-ebRIM- EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::dopplerFrequency” ]/rim:ValueList/rim:Value[1]

incidenceAngleVariation

/rim:ExtrinsicObject[ @objectType = ”urn:ogc:def:objectType:OGC- CSW-ebRIM- EO::EOProduct” ]/rim:Slot[ @name = ”urn:ogc:def:slot:OGC-CSW-ebRIM-EO::incidenceAngleV ariation” ]/rim:ValueList/rim:Value[1]

 

 

D.4      Mapping for OGC CS Extension Package for ebRIM AP: I15

In the table below the informative mappings of the queryables for the Collection Search to the CSW ebRIM I15 Extension Package (OGC 13-084) are defined.

The table also includes the mapping of the spatial and temporal parameters of the OpenSearch Geo- and Time-Extension to the CSW ebRIM I15 Extension Package.

OpenSearch Parameter I15 Extension Package Elements (OGC 13-084)

useLimitation

<<ExtrinsicObject>> LegalConstraints -> <<Description>>

accessConstraint

<<ExtrinsicObject>> LegalConstraints -> <<classification>> RestrictionCode (the classification is classified with RestrictionType “access”)

otherConstraint

<<ExtrinsicObject>> LegalConstraints -> <<slot>> Rights

classification

<<ExtrinsicObject>> SecurityConstraints -> <<classification>> ClassificationCode

hasSecurityConstraints

Map to a check for availability of any of the predefined constraints

organisationName

<<RegistryObject>> Organization -> Name

publicationDate

<<ExtrinsicObject>> ResourceMetadata -> <<slot>> Issued

dissemination

N/A

abstract

<<ExtrinsicObject>> ResourceMetadata -><<Description>>

topicCategory

<<ExtrinsicObject>> ResourceMetadata -> <<classification> TopicCategory

lineage

<<ExtrinsicObject>> ResourceMetadata -> <<slot>> Lineage

parentIdentifier

<<association >> parentMetadata from <<ExtrinsicObject>> ResourceMetadata  to MetadataInformation -> <<slot>> Identifier

keyword

Classification with KeywordSchemeUntyped or KeywordSchemeTheme

doi

N/A

distanceValue

distanceUOM

<<slot>> Resolution

denominator

<<slot>> ScaleDenominator

language

<<ExtrinsicObject>> MetadataInformation -> <<slot>> Language

modificationDate

<<ExtrinsicObject>> MetadataInformation -> <<slot>> Date

title

<<ExtrinsicObject>> ResourceMetadata -> Name

searchTerms

Minimally this should be mapped to the corresponding mappings of:

·               abstract

·               title

·               organisationName

·                                 keyword

platform

<<ExtrinsicObject>> Platform -> Description

platformSerialIdentifier

<<ExtrinsicObject>> Platform -> <<slot>> Identifier

instrument

<<ExtrinsicObject>> Instrument -> <<slot>> Identifier

…..OR…..

<<ExtrinsicObject>> Instrument -> Description

sensorType

<<ExtrinsicObject>> Instrument -> Name

orbitType

N/A

spectralRange

N/A

wavelengths

N/A

specificationTitle

<<ExtrinsicObject>> ReferenceSpecification -> <<Name>>

specificationDate

specificationdateType

<<ExtrinsicObject>> ReferenceSpecification ->

<<slot>> Created or

<<slot>> Modified or

<<slot>> Issued or

degree

<<ExtrinsicObject>> ReferenceSpecification -> <<slot>> Conformance

organisationRole

Handled through the CitedResponsibleParty classification on the CitedResponsibleParty association.

processingLevel

N/A

compositeType

N/A

productType

N/A

geo:box

<<slot>> Envelope (type gml:Envelope):

The WestBoundLongitude corresponds to the longitude of “lowerCorner” in gml:Envelope

The EastBoundLongitude corresponds to the longitude of “upperCorner” in gml:Envelope

The SouthBoundLatitude corresponds to the latitude of “lowerCorner” in gml:Envelope.

The NorthBoundLongitude corresponds to the latitude of “upperCorner” in gml:Envelope

geo:name

<<ExtrinsicObject>> ResourceMetadata -> <<slot>> Coverage 

time:start

<<ExtrinsicObject>> ResourceMetadata -> <<slot>> TemporalBegin

time:end

<<ExtrinsicObject>> ResourceMetadata -> <<slot>> TemporalEnd

geo:uid

<<ExtrinsicObject>> MetadataInformation -> <<slot>> Identifier

 

 

D.5      Mapping for OGC CS Extension Package for ebRIM AP: SensorML

In the table below the informative mappings of the queryables to “OGC Catalogue Services Specification 2.0 Extension Package for ebRIM Application Profile:  SensorML” (OGC 09-163) is defined.

 

OpenSearch Parameter ExtrinsicObject Attribute Section in OGC 09-163r2

platform

wrs:ExtrinsicObject[@objectType=”urn:ogc:def:objectType:OGC-CSW-ebRIM-Sensor::System”]/rim:Slot

/rim:ValueList/rim:Value[1]

13.1

instrument

wrs:ExtrinsicObject[@objectType=”urn:ogc:def:objectType:OGC-CSW-ebRIM-Sensor::System”]/rim:Slot

/rim:ValueList/rim:Value[1]

13.1

orbitType

Use Classification to the Corresponding ClassificationNode of the “

urn:ogc:def: classificationScheme:OGC-CSW-ebRIM-Sensor::OrbitTypes

” ClassificationScheme

 

B.6.1

sensorType

Use Classification to the Corresponding ClassificationNode of the “urn:ogc:def:classificationScheme:OGC-CSW-ebRIM-Sensor::SystemTypes:SensorType:EOInstrumentType” ClassificationScheme

 

B.6.2

pointingAcrossTrackAngle

 

 

rim:ExtrinsicObject[@objectType=”urn:ogc:def:objectType:OGC-CSW-ebRIM-Sensor::System”]/rim:Slot[@name=” urn:ogc:def:slot:OGC-CSW-ebRIM-Sensor:: AcrossTrackPointingLowerBound”]/rim:ValueList/rim:Value[1]

rim:ExtrinsicObject[@objectType=”urn:ogc:def:objectType:OGC-CSW-ebRIM-Sensor::System”]/rim:Slot[@name=” urn:ogc:def:slot:OGC-CSW-ebRIM-Sensor:: AcrossTrackPointingUpperBound”]/rim:ValueList/rim:Value[1]

 

B.6.2

pointingAlongTrackAngle

 

 

/rim:ExtrinsicObject[@objectType=”urn:ogc:def:objectType:OGC-CSW-ebRIM-Sensor::System”]/rim:Slot[@name=” urn:ogc:def:slot:OGC-CSW-ebRIM-Sensor:: AlongTrackPointingLowerBound”]/rim:ValueList/rim:Value[1]

/rim:ExtrinsicObject[@objectType=”urn:ogc:def:objectType:OGC-CSW-ebRIM-Sensor::System”]/rim:Slot[@name=” urn:ogc:def:slot:OGC-CSW-ebRIM-Sensor:: AlongTrackPointingUpperBound”]/rim:ValueList/rim:Value[1]

B.6.2

resolution

/rim:ExtrinsicObject[@objectType=”urn:ogc:def:objectType:OGC-CSW-ebRIM-Sensor::System”]/rim:Slot[@name=” urn:ogc:def:slot:OGC-CSW-ebRIM-Sensor:: AlongTrackGroundResolution”]/rim:ValueList/rim:Value[1]

 

B.6.4

spectralRange

/rim:ExtrinsicObject[@objectType=”urn:ogc:def:objectType:OGC-CSW-ebRIM-Sensor::System”]/rim:Slot[@name=” urn:ogc:def:slot:OGC-CSW-ebRIM-Sensor::SpectralRange”]/rim:ValueList/rim:Value[1]

B.6.4

 

 

D.6      Response Mapping: EOP O&M / EOP EP to ATOM

Response mapping for Atom encoding to the EO Metadata profile of O&M (OGC 10-157r4)

Atom Element Mapping to EO O&M

atom:entry/
atom:title

eop:metaDataProperty/eop:EarthObservationMetaData/eop:identifier

atom:entry/
atom:author

N/A

atom:entry/
atom:category

N/A

atom:entry/
atom:summary

N/A

atom:entry/
atom:updated

om:resultTime

 

atom:entry/
dc:date

om:phenomenonTime

 

  atom:entry/
atom:id

N/A

  atom:entry/
dc:identifier

eop:metaDataProperty / eop:EarthObservationMetaData / eop:identifier

  atom:entry/
@xml:lang

N/A

  atom:entry/
atom:rights

N/A

  atom:entry/       georss:*

om: featureOfInterest

atom:entry/
atom:link[@rel=’search’]

N/A

  atom:entry/ atom:link[@rel=’icon’]

om:result/eop:EarthObservationResult/eop:product/eop: BrowseInformation/eop:fileName

 

  atom:entry/ atom:link[@rel=’alternate’]

 

 

N/A

  atom:entry/
atom:link[@rel=’enclosure’]

om:result/eop:EarthObservationResult/eop:product/eop:ProductInformation/eop:fileName

 

D.7      Response Mapping: ISO191(15|39)[-2] / I15 EP to ATOM

The following table defines the mappings from ISO191(15|39)[-2] and I15 EP (OGC 13-084) to ATOM response elements.

Atom Element Mapping from ISO19139-2 Mapping from I15

atom:entry/
atom:title

gmd:MD_Metadata/gmd:identificationInfo/<gmd:MD_DataIdentification |srv:SV_ServiceIdentification>/gmd:citation/gmd:CI_Citation/gmd:title

<<ExtrinsicObject>> ResourceMetadata -> Name

atom:entry/
atom:author

The organization name and email of the corresponding field in ISO19139-2: mapped from /gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:pointOfContact/-> /gmd:organisationName/ gco:CharacterString

and

/gmd:contactInfo/ gmd:CI_Contact/gmd:address/ gmd:CI_Address/ gmd:electronicMailAddress/ gco:CharacterString

<<RegistryObject>> Organization -> Name

And

<<RegistryObject>> Organization -> EmailAddress

atom:entry/
atom:category

Shall include:  /gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:topicCategory

and

gmd:identificationInfo//gmd:descriptiveKeywords/gmd:MD_Keywords [gmd:type/gmd:MD_KeywordTypeCode/@codeListValue = 'theme']

and possibly entries from:

/gmi:MI_Metadata/gmd:hierarchyLevelName/gco:CharacterString

 

<<ExtrinsicObject>> ResourceMetadata -> <<classification> TopicCategory

and

Classifications with KeywordSchemeUntyped or KeywordSchemeTheme

and possibly

<<ExtrinsicObject>> ResourceMetadata -> <<slot>> Type

 

atom:entry/
atom:summary

/gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:abstract

<<ExtrinsicObject>> ResourceMetadata -> <<Description>>

atom:entry/
atom:contributor

N/A

 

atom:entry/
atom:updated

gmd:MD_Metadata/gmd:identificationInfo/<gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:date (of dateType revision, if not available of dateType creation)

<<ExtrinsicObject>> ResourceMetadata -> <<slot>> Modified (or <<slot>> Created)

 

atom:entry/
dc:date

DateTime or DateTime Interval (aka: 2007-03-01T13:00:00Z/2008-05-11T15:30:00Z) -> to be mapped from /gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/extent/EX_Extent/temporalElement/EX_TemporalExtent/extent/gml:TimePeriod/gml:beginPosition / /gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/extent/EX_Extent/temporalElement/EX_TemporalExtent/extent/gml:TimePeriod/gml:endPosition

<<ExtrinsicObject>> ResourceMetadata -> <<slot>> TemporalBegin

 

<<ExtrinsicObject>> ResourceMetadata -> <<slot>> TemporalEnd

atom:entry/
atom:id

The identifier shall be created (as already done in the I15ToISO-Bridge) in a way that it can be used as parentIdentifier parameter for a subsequent EOP product search. Sample: urn:ogc:def:EOP:EUM:acronym:ASCxxx1A:satellite:M02:fileid:EO:EUM:DAT:METOP:ASCSZO1B

see notes column left

atom:entry/
dc:identifier

To be mapped from: /gmd:MD_Metadata/gmd:fileIdentifier

<<ExtrinsicObject>> MetadataInformation -> <<slot>> Identifier

 

atom:entry/
@xml:lang

/gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:language

<<ExtrinsicObject>> ResourceMetadata -> <<slot>> Language

atom:entry/
atom:rights

/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_Data-Identification/

gmd:resourceConstraints/gmd:MD_LegalConstraints/gmd:useLimitation/gco:CharacterString[6]

<<ExtrinsicObject>> Rights -> <<Description>>

atom:entry/       georss:*

Polygon -> to be mapped from the /gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent//gmd:geographicElement/gmd:EX_GeographicBoundingBox[7]

<<ExtrinsicObject>> ResourceMetadata -> <<slot>> Envelope

atom:entry/
atom:link[@rel=’search’]

The atom/link[@rel='search'] element should provide a link to a search engine (OSDD document) to search for specific products of the collection described in the atom:entry. In this OSDD a link with @rel='results' should be found that provides gives the template for the product query (e.g. …&parentIdentifier=<atom:id of current collection>&…)

see notes column left

atom:entry/atom:link[@rel=’icon’]

Per 8.2.5 the media:content@url should be mapped from /gmd:MD_BrowseGraphic/gmd:filename, the media:content@type from /gmd:MD_BrowseGraphic/gmd:filetype.

<<ExtrinsicObject>> MD_BrowseGraphic

atom:entry/atom:link[@rel=’via’][8]

atom:entry/atom:link[@rel=’alternate’]

 

 

 

For the rel “via” a link to the original/native source (from which the other metadata types are derived by conversion or translation) shall be provided.

For the rel “alternate” links to alternative formats/representations of the original source shall be provided.

 

E.g. link to the GetRecordById operation: Reference (Link) to the data source (e.g. original ISO19139 collection metadata).

The “type” attribute set to “application/vnd.iso.19139+xml”.

Example:

<atom:link rel="via" type="application/vnd.iso.19139+xml" length="845" title="ISO 19139 Metadata" href=" http://46.51.189.235:80/soapServices/CSWStartup?service=CSW&version=2.0.2&request=GetRecordById&outputSchema=http://www.isotc211.org/2005/gmi&Id=EO:EUM:DAT:METOP:OAS025"/>

It may also make sense to include other links, e.g. a link (with rel=”alternate”) to the HTML-based metadata-representation – but now with the “type” attribute set to “text/html” and the "href" attribute set to the additional HTML representation of the metadata.

Example:

<link href="http://46.51.189.235:80/discovery/Start/DirectSearch/DetailResult.do?f(r0)=EO:EUM:DAT:METOP:OAS025" rel="alternate" title="ASCAT Winds and Soil Moisture at 25 km Swath Grid - Metop" type=" text/html "/>

 

atom:entry/
atom:link[@rel=’enclosure’]

Provide here the dissemination endpoints: atom:link elements reference every single dissemination endpoint of the data resource.

Proposal: Link element includes a "rel" attribute with value "enclosure", a "type" attribute with "text/html" and a "title" attribute with the name of the dissemination point. Example:

<link href="http://eoportal.eumetsat.int/userMgmt" rel="enclosure" title="EO Portal Registration" type="text/html"/>

 

The XPaths in ISO19139 are as follows:

·      The link itself:

/gmd:MD_Metadata/gmd:distributionInfo/gmd:MD_Distribution/gmd:distributor[1]/gmd:MD_Distributor/gmd:distributorTransferOptions/gmd:MD_DigitalTransferOptions/gmd:onLine[2]/gmd:CI_OnlineResource/gmd:linkage/gmd:URL

·      The title:

/gmd:MD_Metadata/gmd:distributionInfo/gmd:MD_Distribution/gmd:distributor[1]/gmd:MD_Distributor/gmd:distributorTransferOptions/gmd:MD_DigitalTransferOptions/gmd:onLine[1]/gmd:CI_OnlineResource/gmd:name/gco:CharacterString

 

atom:entry/atom:link[@rel=’up’]

N/A

 

atom:content[@type=’html’]

An atom:content element may be added to the atom:entry to allow to visualization links to the additional metadata presentations and the dissemination links. The content element of the atom:entry includes a “type” attribute with “html”. Example:

 

<content type="html">&lt;a href="http://46.51.189.235:80/discovery/Start/DirectSearch/DetailResult.do?f(r0)=EO:EUM:DAT:METOP:ASCAT25"&gt;Metadata (HTML)&lt;/a&gt;       &lt;br/&gt;&lt;a href="http://46.51.189.235:80/soapServices/CSWStartup?service=CSW&amp;version=2.0.2&amp;request=GetRecordById&amp;outputSchema=http://www.isotc211.org/2005/gmi&amp;Id=EO:EUM:DAT:METOP:ASCAT25"&gt;Metadata  (ISO19139 XML)&lt;/a&gt;            &lt;br/&gt; &lt;a href="http://46.51.189.235:80/soapServices/OpenSearch?format=atom&amp;id=EO:EUM:DAT:METOP:ASCAT25"&gt;Metadata (ATOM)&lt;/a&gt;            &lt;br/&gt; &lt;a href="http://eoportal.eumetsat.int/userMgmt/protected/dataCentre.faces?acronym=OASW025"&gt;EUMETSAT Data Centre (until 28/02/2011) &lt;/a&gt;        &lt;br/&gt;                    &lt;a href="/discovery/Start/DirectSearch/Extended.do?freeTextValue(resourceidentifier)=EO:EUM:DAT:METOP:OAS025"&gt;Please order from ASCAT Winds and Soil Moisture for data from 28/02/11 onwards&lt;/a&gt;   &lt;br/&gt;                    &lt;a href="http://www.osi-saf.org"&gt;OSI SAF Archive and FTP&lt;/a&gt;   &lt;br/&gt;</content>

The content without URL-encoding looks as follows:

<a href="http://46.51.189.235:80/discovery/Start/DirectSearch/DetailResult.do?f(r0)=EO:EUM:DAT:METOP:ASCAT25">Metadata (HTML)</a> <br/><a href="http://46.51.189.235:80/soapServices/CSWStartup?service=CSW&version=2.0.2&request=GetRecordById&outputSchema=http://www.isotc211.org/2005/gmi&Id=EO:EUM:DAT:METOP:ASCAT25">Metadata (ISO19139 XML)</a> <br/> <a href="http://46.51.189.235:80/soapServices/OpenSearch?format=atom&id=EO:EUM:DAT:METOP:ASCAT25">Metadata (ATOM)</a> <br/> <a href="http://eoportal.eumetsat.int/userMgmt/protected/dataCentre.faces?acronym=OASW025">EUMETSAT Data Centre (until 28/02/2011) </a> <br/> <a href="/discovery/Start/DirectSearch/Extended.do?freeTextValue(resourceidentifier)=EO:EUM:DAT:METOP:OAS025">Please order from ASCAT Winds and Soil Moisture for data from 28/02/11 onwards</a> <br/> <a href="http://www.osi-saf.org">OSI SAF Archive and FTP</a> <br/></a>

 


 

Annex E: Revision history

 

Date Release Author Paragraph modified Description

2013-03-15

0.0.1

Pedro Gonçalves

 

 

Consolidation of Earth Observation Extension

 

2013-08-12

0.0.2

Pedro Goncalves

Annex B and C

All

Addition of Schemas and examples

Revision and typo correction

2013-12-13

0.0.3

Pedro Goncalves

Annexes

Reorganization of Annexes. Correction of example values on tables 3, 4 and 5.

2014-06-02

0.0.4

Uwe Voges

All

Included definitions of Collection, Product etc, included additional queryables for Collection Discovery, included informative mappings of all Collection queryables to ISO19115/1939 and to CSW ebRIM EP I15, included all informative response mappings from ISO19115/1939 and CSW ebRIM EP I15 to ATOM,….

2014-06-26

0.0.4

Uwe Voges

All

Added an INSPIRE conformance class, updated rnc file regarding additional query parameters, resolved some comments, mainly in "Response Mapping: ISO191(15|39)[-2] / I15 EP to ATOM", renamed platformShortName now platform, uniquely named "productQualityStatus" and "productQualityDegradationTag" in the whole doc and added those to rnc schema definition, fixed the "resolution" for Collections as follows:

Splitted resolution into 2 (groups) of parameters (see my mapping in annex D2):

denominator AND

distanceValue + distanceUOM  (for resolution an UOM is needed)

This is the only useful way it can be done (this was done in the same way in CSW AP ISO).

2014-07-11

0.0.4

Uwe Voges

All

Added reference to INSPIRE specifications. Added requirement for INSPIRE.

2014-07-25

0.0.4

Uwe Voges

All

Split parameters table for collections into 2 tables: one for INSPIRE conformance

In the INSPIRE table: degree now has possible values of "true", "false", "null" and I grouped queryables which make only sense if used together.

Extended the “Overview” section. Added 6.2 "Two step search" for a better understanding how search for collections and products may work.

Reorganized the requirements in the text and their mappings to conformance classes in table 1.

Reorganized and extended the ATS: organized the ATS so that tests are grouped related to conformance classes and assigned requirement(s) to the tests.

Corrected specification references, added SensorML EP Ref

Updated response mappings to ATOM

Added comments to: B.7. Earth Observation Extension Query Element Schema (schemas/opensearch/extensions/eo/1.0/eo.rnc) which must be solved by Pedro

2014-07-28

0.0.4

Pedro Gonçalves

Conformance Classes

Schemas

Content review of requirements and their mappings to conformance classes / test classes

Review of EO Schemas

2014-10-27

0.0.5

Yves Coene

All

Corrected eop entry in Table 2 and Annex B.8.

Updated requirement /req/entry-eop.

Added eo:creationDate and eo:modificationDate mapping in Table 5, Annex B.7 and Annex D.1.

Reworded Conformance Test Class A.2.1 to allow also derived types such as opt:EarthObservation or sar:EarthObservation etc.

Updated OGC 10-032r7 references to OGC 10-032r8 and updated its title.

2016-05-25

0.0.7 (0.0.6 was only internal)

Uwe Voges

All

Included the changes solving all comments received on the OGC OpenSearch Extension for Earth Observation candidate standard during the TC voting period:

Comment 2.1:

Added new queryables highestLocation and lowestLocation to table 5, B7, mappings to D1 and D3 (not applicable to collections).

Extended mappings for cloudCover and snowCover in D1

Comment 2.2:

We now use (in all tables) "organisation" instead "organization" for:

organisationName

organisationRole

Comment 2.3:

Made the type of eo:frame and eo:track equal to "string" in Table 5, B7, .

Comment 2.5:

“doi” was added as queryable.

Added definition to table 3 and B7.

Added mappings for collection and products to D1, D2, D3, D4

Comment 2.6:

“publicationDate” was added as queryable.

The type of the queryable is now of type date.

Added definition to table 4.

Added definition to B7.

Added mappings for collection and products to D1, D2, D3, D4

Comment 2.7

Product Identifier is not defined as new queryable but is mapped to OGC 10-032 geo:uid

Added to table D1 and D3.

Comment 2.8:

“productVersion” was added as queryable.

The type of the queryable is now of type string.

Added definition to table 5 and B7.

Added mappings for products to D1, D3

Comment 2.9:

recordSchema was added as queryable.

The type of the queryable is now of type string.

Standard values are e.g. http://www.opengis.net/eop/2.1 (OGC O&M EOP), http://www.isotc211.org/2005/gmi (ISO19115-2), http://www.isotc211.org/2005/gmd  (ISO19115)

Added definition to table 3

Added definition to B7.

Comment 2.10:

Modified not added as queryable: this is already covered by queryable modificationDate.

But mappings were added in D2, D3, D4. 

Comment 2.11:

Mapping of the basic OGC 10-032 queryables geo:box, geo:name, geo:uid, time:start, time.end in D1 and D3

Editorial:

Added keywords

Hints on "alternative" representations in atom response entries

Editorial changes

2016-05-30

0.0.7 (0.0.6 was only internal)

Uwe Voges

All

Table 2: added media namespace from example 7. Added param namespace used in Annex C.

Instead of adding recordSchema in the eo: namespace, we keep it in the sru: namespace and added a note in the same way as for the Parameter extension where also the param: namespace is kept instead of moving everything to the eo: namespace.

Table 7: added relation to first and last page in ATOM response

2016-05-31

0.0.7 (0.0.6 was only internal)

Uwe Voges

All

Added links to first and last entry to atom feed.

atom:entry/dc:identifier now mandatory

Added root nodes to be provided for every recordSchema

Added hint to the official Atom.XSD file used by NASA CWICSmart conformance tests

2016-06-01

0.0.7 (0.0.6 was only internal)

Uwe Voges

Table-2

Chapter 8.1, 8.2

all

Added namespaces for ISO19115(-2)

Added recordSchemas for Sensor ML 2.0 and Dublin Core

Editorial

2016-07-06

0.0.8

Uwe Voges, Yves Coene

 

 

 

 

 

Table-3

Chapter 8.2.2

Table 8

 

Chapter 8.2.4

In summary the inclusion and linking to additional/alternative metadata in the ATOM response was clarified and updated. Metadata model references (namespaces, identifier, media types,..) were updated (ISO19115-1/ISO19115-3 was added), the list of reference documents was updated, document references were added in different positions and examples were updated and clarified

clarified sru:recordSchema

 

improved text on detailed metadata

 

Clarified atom:entry/atom:link[@rel= ’alternative’] and Additional Metadata.

Extended chapter 8.2.4 with additional explanations

2016-09-06

1.0.0

Uwe Voges

 

Requirements / Conformance Classes

Conformance Tests

Table 6

Improved explanation for what kind of search which parameters should be used

Definitions of requirements / conformance classs aligned with usual OGC definitions

 

Updated references

 

Definition of availabilityTime improved

 



[1] www.opengeospatial.org/cite

[2] Including products of logical collections (e.g. containing items of different types, sensor, sensor mode, platforms)

[3] For the identifier see: https://www.loc.gov/standards/sru/recordSchemas/index.html

[4] Note: the official Atom.XSD file used by NASA CWICSmart conformance tests is stricter than this RELAX NG which allows more flexibility. See https://tools.oasis-open.org/version-control/browse/wsvn/cmis/trunk/SchemaProject/schema/ATOM.xsd

[5] Can be applied to gmd:MD_Metadata (ISO19139) and gmi:MI_Metadata (ISO19139-2)

[6] the semantic of atom:rights is not 100%: therefore other mappings (accessConstraints, otherConstraints, useConstratints, classification) may make sense.

[7] Note: it makes sense to provide a gml:Polygon/gml:exterior/gml:LinearRing/gml:posList entry as different clients are able to render this.

[8] An alternative (or in addition to this) is to include gmd:MD_Metadata into the ATOM response (see below).