ECHO Open Search ECHO Technical Interchange 05/01/13 9:00am EST Doug Newman.
-
Upload
aubrey-williams -
Category
Documents
-
view
215 -
download
0
Transcript of 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
Another API?
• Standard• Lightweight / Simple• RESTful• Low entry cost
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
Things you need to know
• HTTP• REST (GET)• XML• Atom
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?}&instrument={echo:instrument?}&satellite={echo:satellite?}&boundingBox={georss:box?}&geometry={geo:geometry?}&placeName={geo:name?}&startTime={time:start?}&endTime={time:end?}&cursor={os:startIndex?}&numberOfResults={os:count?}&uid={echo:uid?}&clientId=dug"> </os:Url>
<os:Url type="text/html" indexOffset="0" template="https://api.echo.nasa.gov/opensearch-beta/datasets.html?keyword={os:searchTerms?}&instrument={echo:instrument?}&satellite={echo:satellite?}&boundingBox={georss:box?}&geometry={geo:geometry?}&placeName={geo:name?}&startTime={time:start?}&endTime={time:end?}&cursor={os:startIndex?}&numberOfResults={os:count?}&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>
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?}&versionId={echo:versionId?}&dataCenter={echo:dataCenter?}&boundingBox={georss:box?}&geometry={geo:geometry?}&placeName={geo:name?}&startTime={time:start?}&endTime={time:end?}&cursor={os:startIndex?}&numberOfResults={os:count?}&uid={echo:uid?}&clientId=dug"> </os:Url>
<os:Url type="text/html" indexOffset="0" template="https://api.echo.nasa.gov/opensearch-beta/granules.html?shortName={echo:shortName?}&versionId={echo:versionId?}&dataCenter={echo:dataCenter?}&boundingBox={georss:box?}&geometry={geo:geometry?}&placeName={geo:name?}&startTime={time:start?}&endTime={time:end?}&cursor={os:startIndex?}&numberOfResults={os:count?}&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>
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>
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>
Links to interesting stuff• More searching
<link href="https://api.echo.nasa.gov/opensearch/granules/descriptor_document.xml?clientId=foo&shortName=FirstDataset&versionId=1&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"/>
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
ESIP compliance
• Open Search Geo extension for spatial• Open Search Time extension for temporal
OGC compliance
• Search by unique id datasets.atom?uid=foo
• Search by place name granules.atom?placeName=washington, DC
Extras
• HTML rendering<os:Url type="text/html"
indexOffset="0"template=”https://api.echo.nasa.gov/
opensearch-beta/datasets.html?keyword={os:searchTerms?}&instrument={echo:instrument?}&satellite={echo:satellite?}&boundingBox={georss:box?}&polygon={georss:polygon?}&line={echo:line?}&point={echo:point?}&startTime={time:start?}&endTime={time:end?}&cursor={os:startIndex?}&numberOfResults={os:count?}&clientId={echo:clientId></os:Url>
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
Caveats (2 of 2)
• No authentication• Subset of ECHO search capability*• No ordering**
Questions?