ECHO Open Search ECHO Technical Interchange 05/01/13 9:00am EST Doug Newman.

16
ECHO Open Search ECHO Technical Interchange 05/01/13 9:00am EST Doug Newman

Transcript of ECHO Open Search ECHO Technical Interchange 05/01/13 9:00am EST Doug Newman.

Page 1: ECHO Open Search ECHO Technical Interchange 05/01/13 9:00am EST Doug Newman.

ECHO Open Search

ECHO Technical Interchange 05/01/13 9:00am EST

Doug Newman

Page 2: ECHO Open Search ECHO Technical Interchange 05/01/13 9:00am EST Doug Newman.

Another API?

• Standard• Lightweight / Simple• RESTful• Low entry cost

Page 3: ECHO Open Search ECHO Technical Interchange 05/01/13 9:00am EST Doug Newman.

Tools to follow along

• Firefox Rest Client add-on http://restclient.net/

• Chrome Advanced Rest Client add-onhttps://chrome.google.com/webstore/detail/advanced-rest-client

• IE – on your own• Command line

curl

Page 4: ECHO Open Search ECHO Technical Interchange 05/01/13 9:00am EST Doug Newman.

Things you need to know

• HTTP• REST (GET)• XML• Atom

Page 5: ECHO Open Search ECHO Technical Interchange 05/01/13 9:00am EST Doug Newman.

Open Search Descriptor Documents (1 of 2)

http://api.echo.nasa.gov/opensearch-beta/

https://api.echo.nasa.gov/opensearch-beta/datasets/descriptor_document.xml?clientId=dug

<?xml version="1.0" encoding="UTF-8"?> <os:OpenSearchDescription xmlns:os="http://a9.com/-/spec/opensearch/1.1/" xmlns:echo="http://www.echo.nasa.gov/esip" xmlns:georss="http://a9.com/-/opensearch/extensions/geo/1.0/" xmlns:time="http://a9.com/-/opensearch/extensions/time/1.0/" xmlns:esipdiscovery="http://commons.esipfed.org/ns/discovery/1.2/" esipdiscovery:version="1.2" > <os:ShortName>NASA ECHO Dataset Open Search</os:ShortName> <os:Description>Open Search compliant NASA ECHO Dataset search that responds in the ATOM format with Open Search, GeoRSS, Open Search Time and ECHO extensions.</os:Description> <os:Tags>ESIP ECHO NASA</os:Tags> <os:Contact>[email protected]</os:Contact>

<os:Url type="application/atom+xml" indexOffset="0" template="https://api.echo.nasa.gov/opensearch-beta/datasets.atom?keyword={os:searchTerms?}&amp;instrument={echo:instrument?}&amp;satellite={echo:satellite?}&amp;boundingBox={georss:box?}&amp;geometry={geo:geometry?}&amp;placeName={geo:name?}&amp;startTime={time:start?}&amp;endTime={time:end?}&amp;cursor={os:startIndex?}&amp;numberOfResults={os:count?}&amp;uid={echo:uid?}&amp;clientId=dug"> </os:Url>

<os:Url type="text/html" indexOffset="0" template="https://api.echo.nasa.gov/opensearch-beta/datasets.html?keyword={os:searchTerms?}&amp;instrument={echo:instrument?}&amp;satellite={echo:satellite?}&amp;boundingBox={georss:box?}&amp;geometry={geo:geometry?}&amp;placeName={geo:name?}&amp;startTime={time:start?}&amp;endTime={time:end?}&amp;cursor={os:startIndex?}&amp;numberOfResults={os:count?}&amp;clientId=dug"> </os:Url> <os:Query role="example" echo:instrument="AMSR-E" echo:satellite="Aqua" title="Sample search" georss:box="-180.0,-90.0,180.0,90.0" time:start="2002-05-04T00:00:00-0400" time:stop="2009-05-04T00:00:00-0400"/> </os:OpenSearchDescription>

Page 6: ECHO Open Search ECHO Technical Interchange 05/01/13 9:00am EST Doug Newman.

Open Search Descriptor Documents (2 of 2)

http://api.echo.nasa.gov/opensearch-beta/

https://api.echo.nasa.gov/opensearch-beta/granules/descriptor_document.xml?clientId=dug

<?xml version="1.0" encoding="UTF-8"?> <os:OpenSearchDescription xmlns:os="http://a9.com/-/spec/opensearch/1.1/" xmlns:echo="http://www.echo.nasa.gov/esip" xmlns:georss="http://a9.com/-/opensearch/extensions/geo/1.0/" xmlns:time="http://a9.com/-/opensearch/extensions/time/1.0/" xmlns:esipdiscovery="http://commons.esipfed.org/ns/discovery/1.2/" esipdiscovery:version="1.2" > <os:ShortName>NASA ECHO Granule Search</os:ShortName> <os:Description>Open Search compliant NASA ECHO Granule search that responds in the ATOM format with Open Search, GeoRSS, Open Search Time and ECHO extensions.</os:Description> <os:Tags>ESIP ECHO NASA granule</os:Tags> <os:Contact>[email protected]</os:Contact>

<os:Url type="application/atom+xml" indexOffset="0" template="https://api.echo.nasa.gov/opensearch-beta/granules.atom?shortName={echo:shortName?}&amp;versionId={echo:versionId?}&amp;dataCenter={echo:dataCenter?}&amp;boundingBox={georss:box?}&amp;geometry={geo:geometry?}&amp;placeName={geo:name?}&amp;startTime={time:start?}&amp;endTime={time:end?}&amp;cursor={os:startIndex?}&amp;numberOfResults={os:count?}&amp;uid={echo:uid?}&amp;clientId=dug"> </os:Url>

<os:Url type="text/html" indexOffset="0" template="https://api.echo.nasa.gov/opensearch-beta/granules.html?shortName={echo:shortName?}&amp;versionId={echo:versionId?}&amp;dataCenter={echo:dataCenter?}&amp;boundingBox={georss:box?}&amp;geometry={geo:geometry?}&amp;placeName={geo:name?}&amp;startTime={time:start?}&amp;endTime={time:end?}&amp;cursor={os:startIndex?}&amp;numberOfResults={os:count?}&amp;clientId=dug"> </os:Url> <os:Query role="example" echo:shortName="MOD02QKM" echo:versionId="005" echo:dataCenter="LAADS" georss:box="-180.0,-90.0,180.0,90.0" time:start="2002-05-04T00:00:00-0400" time:stop="2009-05-04T00:00:00-0400" title="Sample search" /> </os:OpenSearchDescription>

Page 7: ECHO Open Search ECHO Technical Interchange 05/01/13 9:00am EST Doug Newman.

Datasetshttps://api.echo.nasa.gov:443/opensearch-beta/datasets.atom

<?xml version="1.0" encoding="UTF-8"?> <feed esipdiscovery:version="1.2" xmlns="http://www.w3.org/2005/Atom" xmlns:esipdiscovery="http://commons.esipfed.org/ns/discovery/1.2/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">

<os:totalResults>916</os:totalResults><os:itemsPerPage>10</os:itemsPerPage> <os:startIndex>1</os:startIndex>

<entry xmlns:echo="http://www.echo.nasa.gov/esip" xmlns:georss="http://www.georss.org/georss/10" xmlns:gml="http://www.opengis.net/gml" xmlns:time="http://a9.com/-/opensearch/extensions/time/1.0/"> <id>C1135-SEDAC</id>

...</entry>

Page 8: ECHO Open Search ECHO Technical Interchange 05/01/13 9:00am EST Doug Newman.

Granuleshttps://api.echo.nasa.gov:443/opensearch-beta/granules.atom

<?xml version="1.0" encoding="UTF-8"?> <feed esipdiscovery:version="1.2" xmlns="http://www.w3.org/2005/Atom" xmlns:esipdiscovery="http://commons.esipfed.org/ns/discovery/1.2/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">

<os:totalResults>50321</os:totalResults> <os:itemsPerPage>10</os:itemsPerPage> <os:startIndex>1</os:startIndex>

<entry xmlns:echo="http://www.echo.nasa.gov/esip" xmlns:georss="http://www.georss.org/georss/10" xmlns:gml="http://www.opengis.net/gml" xmlns:time="http://a9.com/-/opensearch/extensions/time/1.0/"> <id>G19324-ASF</id>…

</entry>

Page 9: ECHO Open Search ECHO Technical Interchange 05/01/13 9:00am EST Doug Newman.

Links to interesting stuff• More searching

<link href="https://api.echo.nasa.gov/opensearch/granules/descriptor_document.xml?clientId=foo&amp;shortName=FirstDataset&amp;versionId=1&amp;dataCenter=OS_PROV_1" hreflang="en-US" rel="search" title="Custom ECHO Granule Open Search Descriptor Document" type="application/opensearchdescription+xml”>

• Data<link href="http://api.echo.nasa.gov/awesome.hdf" hreflang="en-US" rel=”data”

type="application/hdf-eos"/>

• Metadata<link href="http://api.echo.nasa.gov/catalog-rest/echo_catalog/datasets/C1000-

OS_PROV_1.xml" hreflang="en-US" rel="describedBy" title="Product metadata" type="application/xml"/>

• Documentation<link href="http://example.com/manual.pdf" hreflang="en-US" rel="describedBy"

title="Product manual" type="application/pdf"/>

• Browse<link href="http://browse.echo.nasa.gov/awesome.jpg" hreflang="en-US" rel="icon"/>

Page 10: ECHO Open Search ECHO Technical Interchange 05/01/13 9:00am EST Doug Newman.

Search Parameters

• Free text os:searchTermsdatasets.atom?keyword=MODIS

• Spatial geo:box, geo:geometrygranules.atom?boundingBox=-180.0,-90.0,180.0,90.0

granules.atom?geometry=POINT (-5 -5)granules.atom?geometry=LINESTRING (5 5, 4 4)granules.atom?geometry=POLYGON ((30 10, 10 20, 40 40, 30 10))

• Temporal time:startTime, time:endTimedatasets.atom?startTime=2001-01-01T22:00:00Z

datasets.atom?endTime=2001-01-01T22:00:00Z

• Traversing os:cursor, os:numberOfResultsgranules.atom?cursor=1&numberOfResults=10

Page 11: ECHO Open Search ECHO Technical Interchange 05/01/13 9:00am EST Doug Newman.

ESIP compliance

• Open Search Geo extension for spatial• Open Search Time extension for temporal

Page 12: ECHO Open Search ECHO Technical Interchange 05/01/13 9:00am EST Doug Newman.

OGC compliance

• Search by unique id datasets.atom?uid=foo

• Search by place name granules.atom?placeName=washington, DC

Page 13: ECHO Open Search ECHO Technical Interchange 05/01/13 9:00am EST Doug Newman.

Extras

• HTML rendering<os:Url type="text/html"

indexOffset="0"template=”https://api.echo.nasa.gov/

opensearch-beta/datasets.html?keyword={os:searchTerms?}&amp;instrument={echo:instrument?}&amp;satellite={echo:satellite?}&amp;boundingBox={georss:box?}&amp;polygon={georss:polygon?}&amp;line={echo:line?}&amp;point={echo:point?}&amp;startTime={time:start?}&amp;endTime={time:end?}&amp;cursor={os:startIndex?}&amp;numberOfResults={os:count?}&amp;clientId={echo:clientId></os:Url>

Page 14: ECHO Open Search ECHO Technical Interchange 05/01/13 9:00am EST Doug Newman.

Caveats (1 of 2)

‘Home made explosives can kill! Do not mix weed killer and sugar!’

‘Don’t do this!’

granules.atom?geometry=POLYGON ((30 10, 10 20, 40 40, 30 10))&numberOfResults=1&cursor=GAZILLION

Page 15: ECHO Open Search ECHO Technical Interchange 05/01/13 9:00am EST Doug Newman.

Caveats (2 of 2)

• No authentication• Subset of ECHO search capability*• No ordering**

Page 16: ECHO Open Search ECHO Technical Interchange 05/01/13 9:00am EST Doug Newman.

Questions?