General Info

OpenSearch in practice

Applicable standards

The OpenSearch Description Document

Overall OSDD

Collection Specific OSDD

Collection Level Search

Product Level Search

Direct Product Search

General Info

The VITO PDF OpenSearch Interface is an external interface on the VITO Product Distribution Facility (PDF) for the discovery of available EO data collections and products.

Users can discover, order and download the PROBA-V data and associated products such as SPOT-VGT data via the Product Distribution Facility (PDF). The PROBA-V Products User Manual provides information on the available EO collections and products. To enable third party applications to access the VITO PDF data, the PDF provides standard based external interface such as the OpenSearch interface. OpenSearch clients can launch requests to the VITO PDF OpenSearch Interface for EO data discovery.

OpenSearch in practice

The table below shows some examples to help you getting started with the openSearch interface.

OpenSearch Request Examples
 

OpenSearch Description Document

OSDD https://www.vito-eodata.be/openSearch/description.xml
OSDD for PROBA-V S1 TOA 1Km data https://www.vito-eodata.be/openSearch/description.xml?collection=urn:ogc:def:EOP:VITO:PROBAV_S1-TOA_1KM_V001

 

Find Collections

Discover all collections https://www.vito-eodata.be/openSearch/findCollections?
Discover all collections with e.g. resolution 333m https://www.vito-eodata.be/openSearch/findCollections?resolution=333
Discover all PROBA-V collections https://www.vito-eodata.be/openSearch/findCollections?platform=PV01

 

Find Products

Discover all PROBA-V S10 TOC 1KM products https://www.vito-eodata.be/openSearch/findProducts?collection=urn:ogc:def:EOP:VITO:PROBAV_S10-TOC_1KM_V001
Discover all PROBA-V S1 TOC 1KM products, between 05/05/2016 and 14/05/2016  for the bounding box -180, 0,180, 90 (=Northern Hemisphere) https://www.vito-eodata.be/openSearch/findProducts?collection=urn:ogc:def:EOP:VITO:PROBAV_S1-TOC_1KM_V001&start=2016-05-05T00:00&end=2016-05-14T23:59&bbox=-180.00,0.00,180.00,90.00
Discover all PROBA-V P products, for a specific  polygon https://www.vito-eodata.be/openSearch/findProducts?collection=urn:ogc:def:EOP:VITO:PROBAV_P_V001&geometry=polygon((120,-10,155,-10,155,-30,120,-30))
Discover all PROBA-V S1 TOA 1KM products, between 01/01/2016 and 31/01/2016 with cloudcover between 6% and 17% (both included)  https://www.vito-eodata.be/openSearch/findProducts?collection=urn:ogc:def:EOP:VITO:PROBAV_S1-TOA_1KM_V001&start=2016-01-01T00:00&end=2016-01-31T23:59&cloudCover=[6,17]
Discover all PROBA-V S1 TOA 1KM products, between 01/01/2016 and 31/01/2016 over Europe

https://www.vito-eodata.be/openSearch/findProducts?collection=urn:ogc:def:EOP:VITO:PROBAV_S1-TOA_1KM_V001&start=2016-01-01T00:00&end=2016-01-31T23:59&name=Europe

 

Applicable standards

The VITO PDF OpenSearch implementation applies to the following standards:            

- OpenSearch

OGC- 10-032r8: OGC OpenSearch Geo and Time Extensions

OGC 13-026r8: OGC OpenSearch Extension for Earth Observation

The OpenSearch query parameters are aligned with the Earth Observations Metadata profile of Observations and Measurements (O&M EOP): OGC 10-157r4 

Development of the interface is based on the CEOS OpenSearch Best Practice Document.

The compliancy of the VITO openSearch implementation wrt the CEOS Best Practices can be found here

Clients as simple as a Web browser or as complex as an aggregated portal implementation can use these services.

The OpenSearch Description Document

The VITO PDF OSDD (OpenSearch Description Document) describes the web interface of the PDF EO product search functionality.  No a priori knowledge of the interface is needed. Allowed values, maximum and minimum values or patterns to be respected by search parameters are defined in the OSDD document, allowing client applications to build a corresponding interface.

The VITO PDF OpenSearch implements the two step approach which means that the search starts with a collection level search and subsequently provides the product (granule) level search.

Overall OSDD

The overall OSDD  provides the link to the collection level search (findCollections).

https://www.vito-eodata.be/openSearch/description.xml

Response Info

The OSDD response includes:

  •  ‘Url Template’ with type ‘application/atom+xml’ and rel(ation) ‘collection’:  template for the Collection Search Request with all available collection search parameters.
  • the allowed values for the search parameters.

Example Url template + parameters:

<os:Url template="http://www.vito-eodata.be/openSearch/findCollections.atom?platform={eo:platform?}&amp;compositeType={eo:compositeType?}&amp;instrument={eo:instrument?}&amp;resolution={eo:resolution?}&amp;productType={eo:productType?}&amp;title={eo:title?}&amp;sensorType={eo:sensorType?}&amp;parentIdentifier={eo:parentIdentifier?}&amp;startIndex={os:startIndex?}&amp;count={os:count?}&amp;startPage={os:startPage?}" type="application/atom+xml" rel="collection" indexOffset="1" pageOffset="1">

<param:Parameter name="platform" value="{eo:platform}" minimum="0" maximum="1">

<param:Option value="PV01" label="PV01"/>

<param:Option value="SPOT" label="SPOT"/>

</param:Parameter>

<param:Parameter name="compositeType" value="{eo:compositeType}" minimum="0" maximum="1">

<param:Option value="DAILY" label="DAILY"/>

<param:Option value="TEN-DAILY" label="TEN-DAILY"/>

<param:Option value="FIVE-DAILY" label="FIVE-DAILY"/>

</param:Parameter>

<param:Parameter name="instrument" value="{eo:instrument}" minimum="0" maximum="1">

<param:Option value="VGT" label="VGT"/>

<param:Option value="VG2" label="VG2"/>

</param:Parameter>

<param:Parameter name="resolution" value="{eo:resolution}" minimum="0" maximum="1">

<param:Option value="1000" label="1000"/>

<param:Option value="333" label="333"/>

<param:Option value="100" label="100"/>

</param:Parameter>

………

 

Collection Specific OSDD

The collection level search links to the collection specific OSDD which on its turn provides a link to the product level search (findProducts).

https://www.vito-eodata.be/openSearch/description.xml?collection={collectionID}

Where collectionID is parentIdentifier (OGC URN)  for the VITO EO data collections.

Example: 

https://www.vito-eodata.be/openSearch/description.xml?collection=urn:ogc:def:EOP:VITO:PROBAV_S1-TOA_1KM_V001

Response Info

The collection specific OSDD  response includes:

  • an ‘Url Template’ with type ‘application/atom+xml’ and rel(ation) ‘results’ which includes a template for the Product Search Request with all available search parameters.
  • the allowed values for the search parameters.

 

Example Url template + parameters:

<os:Url template="http://www.vito-eodata.be/openSearch/findProducts.atom?collection=urn:ogc:def:EOP:VITO:PROBAV_S1-TOA_1KM_V001&amp;platform={eo:platform?}&amp;instrument={eo:instrument?}&amp;archivingCenter={eo:archivingCenter?}&amp;acquisitionStation={eo:acquisitionStation?}&amp;productType={eo:productType?}&amp;title={eo:title?}&amp;parentIdentifier={eo:parentIdentifier?}&amp;orbitNumber={eo:orbitNumber?}&amp;orbitDirection={eo:orbitDirection?}&amp;dateOfAssociation={eo:dateOfAssociation?}&amp;cloudCover={eo:cloudCover?}&amp;acquisitionType={eo:acquisitionType?}&amp;snowCover={eo:snowCover?}&amp;processingCenter={eo:processingCenter?}&amp;creationDate={eo:creationDate?}&amp;start={time:start?}&amp;trelation={time:relation?}&amp;productref={vito:productref?}&amp;end={time:end?}&amp;processingDate={eo:processingDate?}&amp;modificationDate={eo:modificationDate?}&amp;availabilityTime={eo:availabilityTime?}&amp;processorName={eo:processorName?}&amp;isReserved={vito:isReserved}&amp;bbox={geo:box?}&amp;grelation={geo:relation?}&amp;name={geo:name?}&amp;lat={geo:lat?}&amp;lon={geo:lon?}&amp;radius={geo:radius?}&amp;geometry={geo:geometry?}&amp;productionStatus={eo:productionStatus?}&amp;uid={geo:uid?}&amp;startIndex={os:startIndex?}&amp;count={os:count?}&amp;startPage={os:startPage?}" type="application/atom+xml" rel="results" indexOffset="1" pageOffset="1">
…..

<param:Parameter name="parentIdentifier" value="{eo:parentIdentifier}" minimum="0" maximum="1">

<param:Option value="urn:ogc:def:EOP:VITO:PROBAV_S1-TOA_1KM_V001" label="urn:ogc:def:EOP:VITO:PROBAV_S1-TOA_1KM_V001"/>

</param:Parameter>

<param:Parameter name="orbitNumber" value="{eo:orbitNumber}" minimum="0" maximum="1">

<param:Option value="1" label="1"/>

</param:Parameter>

<param:Parameter name="orbitDirection" value="{eo:orbitDirection}" minimum="0" maximum="1">

<param:Option value="DESCENDING" label="DESCENDING"/>

</param:Parameter>

<param:Parameter title="dateOfAssociation" name="dateOfAssociation" value="{eo:dateOfAssociation}" minimum="0" maximum="1" 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})$"/>

<param:Parameter title="Cloud Cover (%)" name="cloudCover" value="{eo:cloudCover}" minimum="0" maximum="1" pattern="(\[|\])(100|[0-9]\d?),(100|[0-9]\d?)(\[|\])|(\[|\])?(100|[0-9]\d?)|(100|[0-9]\d?)(\[|\])?|\{(100|[0-9]\d?),(100|[0-9]\d?)\}"/>

<param:Parameter title="acquisitionType" name="acquisitionType" value="{eo:acquisitionType}" minimum="0" maximum="1">

<param:Option value="NOMINAL" label="NOMINAL"/>

</param:Parameter>

<param:Parameter title="Snow Cover (%)" name="snowCover" value="{eo:snowCover}" minimum="0" maximum="1" pattern="(\[|\])(100|[0-9]\d?),(100|[0-9]\d?)(\[|\])|(\[|\])?(100|[0-9]\d?)|(100|[0-9]\d?)(\[|\])?|\{(100|[0-9]\d?),(100|[0-9]\d?)\}"/>

<param:Parameter title="processingCenter" name="processingCenter" value="{eo:processingCenter}" minimum="0" maximum="1">

<param:Option value="VITO:PF" label="VITO:PF"/>

</param:Parameter>

…..

Collection Level Search

With this search the client can request a list of available collections with respect to the given search criteria.

The search request can be done by issuing a HTTP GET call on the findCollections.atom servlet, which is available according the following OpenSearch URL template:

https://www.vito-eodata.be/openSearch/findCollections.atom?platform={eo:platform?}&compositeType={eo:compositeType?}&instrument={eo:instrument?}&resolution={eo:resolution?}&productType={eo:productType?}&title={eo:title?}&sensorType={eo:sensorType?}&parentIdentifier={eo:parentIdentifier?}&startIndex={os:startIndex?}&count={os:count?}&startPage={os:startPage?}"

Example:

GET https://www.vito-eodata.be/openSearch/findCollections?resolution=333

When no parameter is provided with the request, the full list of accessible collections is returned.

The parameters and possible values are listed in the OSDD response and depends on the authorisation of the user. Only the collections and the corresponding parameters which are accessible by the user shall be returned by the search filter.

Response Info

The collection level search response includes:

  • General info eg. total results, startIndex, itemsPerPage, ….
  • Information for each entry:
    • General info eg. title, id, summary, ….
    • Link to the VITO collection with rel(ation) ‘alternate’ and type ‘text/html’
    • Link to the collection INSPIRE metadata with rel(ation) ’via’ and type ‘application/vnd.iso.19139+xml’

Example response:

….

<atom:title>Search results feed for root Collection.</atom:title>

<atom:subtitle>Number of results: 5</atom:subtitle>

<atom:id>http://www.vito-eodata.be/openSearch/findCollections</atom:id>

<atom:generator version="0.1" uri="http://www.vito-eodata.be/openSearch/findCollections?resolution=333">root collection</atom:generator>

<atom:updated>2017-02-06T02:42:37.823Z</atom:updated>

<os:totalResults>5</os:totalResults>

<os:startIndex>1</os:startIndex>

<os:itemsPerPage>5</os:itemsPerPage>

<os:Query role="request" eo:resolution="333"/>

<atom:link title="self" href="http://www.vito-eodata.be/openSearch/findCollections?resolution=333" rel="self" type="application/atom+xml"/>

<atom:link title="Collection description" href="http://www.vito-eodata.be/openSearch/description.xml" rel="search" type="application/opensearchdescription+xml"/>

<atom:link title="first" href="http://www.vito-eodata.be/openSearch/findCollections?resolution=333&amp;startIndex=1" rel="first" type="application/atom+xml"/>

<atom:link title="last" href="http://www.vito-eodata.be/openSearch/findCollections?resolution=333&amp;startIndex=1" rel="last" type="application/atom+xml"/>

<atom:entry>

<atom:title>S1 TOA - 300 m</atom:title>

<atom:id>urn:ogc:def:EOP:VITO:PROBAV_S1-TOA_333M_V001</atom:id>

<dc:identifier>urn:ogc:def:EOP:VITO:PROBAV_S1-TOA_333M_V001</dc:identifier>

<atom:published>2012-06-01T12:00:00Z</atom:published>

<atom:updated>2017-02-06T00:00:00Z</atom:updated>

<atom:summary>Collection of VGT_S1__3A products</atom:summary>

<atom:link href="http://www.vito-eodata.be/collections/srv/eng/main.home?uuid=2dc3d0e4-a731-11e2-9e96-0800200c9a66" rel="alternate" type="text/html"/>

<atom:link title="URL for querying the urn:ogc:def:EOP:VITO:PROBAV_S1-TOA_333M_V001" href="http://www.vito-eodata.be/openSearch/description.xml?collection=urn:ogc:def:EOP:VITO:PROBAV_S1-TOA_333M_V001" rel="alternate" type="application/opensearchdescription+xml"/>

<atom:link href="http://www.vito-eodata.be/openSearch/description.xml?collection=urn:ogc:def:EOP:VITO:PROBAV_S1-TOA_333M_V001" rel="search" type="application/opensearchdescription+xml"/>

<atom:link title="Collection Catalogue Entry" href="http://www.vito-eodata.be/collections/srv/eng/xml_iso19139?uuid=urn:ogc:def:EOP:VITO:PROBAV_S1-TOA_333M_V001" rel="via" type="application/vnd.iso.19139+xml"/>

</atom:entry>

Product Level Search

With this search the client can request a list of accessible products within a collection with respect to the given search criteria.

The search request can be done by issuing a HTTP GET call on the findProducts servlet, which is available according the following OpenSearch URL template:

https://www.vito-eodata.be/openSearch/findProducts?collection={collection?}&amp;...  

With mandatory parameter {collection} defined as the parentIdentifier value of the collection.

The exact URL template depends on the collection definition which is available in the collection specific OSDD for the given collection.

Example:

GET https://www.vito-eodata.be/openSearch/findProducts?collection=urn:ogc:def:EOP:VITO:PROBAV_S1-TOC_1KM_V001&start=2016-05-05T00:00&end=2016-05-14T23:59&bbox=-180.00,-80.00,180.00,90.0

Response Info

The product level search response includes:

  • General info eg. total results, startIndex, itemsPerPage, ….
  • Information for each entry:
    • General info eg. title, id, summary, ….
    • Link to WMS images (Red band and NDVI) with rel ‘icon’ and title “Red band”/”NDVI band”
    • Link to the product INSPIRE metadata with rel ‘alternate’ and title “Inspire” and type ‘
    • Link to the product HMA metadata with rel ‘via’ and title “HMA” and type “application/gml+xml”
    • Link to retrieve the full metadata of the product with rel ‘alternate’ and title “URL for retrieving full details of the product: {productID}
    • Data access URL with the rel ‘enclosure’ and type “application/metalink+xml”
    • Product metadata (O&M EOP, OGC 10-157r4)

 

Direct Product Search

 A direct product search can be performed using the unique identifier of the product, together with the collection parentidentifier,

Example:

GET https://www.vito-eodata.be/openSearch/findProducts?collection=urn:ogc:def:EOP:VITO:PROBAV_S1-TOC_1KM_V001&uid=urn:ogc:def:EOP:VITO:PROBAV_S1-TOC_1KM_V001:PROBAV_S1-TOC_20160902_1KM:V102