ECHO has been replaced by the Common Metadata Repository (CMR), a high-performance, high-quality, continuously evolving metadata system that catalogs all data and service metadata records for the EOSDIS system and will be the authoritative management system for all EOSDIS metadata.

The information contained within this ECHO wiki is now archived for historical reference. Please navigate to the CMR wiki pages, or to the CMR Overview page on Earthdata.

Acronyms used in ECHO

Acronyms used in this document are contained in this appendix.

ACL

Access Control List

API

Application Programming Interface

AQL

Alternative Query Language

ASF DAAC

Alaska Satellite Facility DAAC

ASTER

Advanced Spaceborne Thermal Emission and Reflection Radiometer

BMGT

Bulk Metadata Generation Tool

COTS

Commercial Off The Shelf

DAAC

Distributed Active Archive Center

DB

DataBase

DTD

Document Type Definition

ECHO

EOS Clearinghouse

ECS

EOSDIS Core System

EDC

EROS Data Center

EDG

EOS Data Gateway

EJB

Enterprise JAVA Beans

EMD

EOSDIS Maintenance and Development

EOS

Earth Observing System

EOSDIS

EOS Data and Information System

EROS

Earth Resources Observation Systems

ESDIS

Earth Science Data and Information System

ESIP

Earth Science Information Partner

ETC

ECHO Technical Committee

FTP

File Transfer Protocol

GCMD

Global Change Master Directory

GES DAAC

GSFC Earth Sciences DAAC

GHRC

Global Hydrology Resource Center

GIS

Geographic Information System

GML

Geography Markup Language

GMT

Greenwich Mean Time

GSFC

Goddard Space Flight Center

GUI

Graphical User Interface

GUID

Globally Unique Identifier

IIMS

Independent Information Management Subsystem

J2EE

Java 2 Enterprise Edition

LAADS

Level 1 and Atmosphere Archive and Distribution System

LP DAAC

Land Processes DAAC

MISR

Multiangle Imaging SpectroRadiometer

MODIS

Moderate Resolution Imaging Spectroradiometer

NASA

National Aeronautics and Space Administration

NSIDC DAAC

National Snow and Ice Data Center DAAC

ODL

Object Description Language

OGC

OpenGIS Consortium

ORNL DAAC

Oak Ridge National Laboratory DAAC

PGE

Product Generation Executives

PO.DAAC

Physical Oceanography DAAC

PSA

Product Specific Attribute

PUMP

Provider User Management Program

QA

Quality Assurance

SEDAC

Socioeconomic Data and Applications Center

SOAP

Simple Object Access Protocol

SSC

Stennis Space Center

SSL

Secure Sockets Layer

UDDI

Universal Description, Discovery, and Integration

UI

User Interface

UR

Universal Reference

URI

Uniform Resource Identifier

URL

Uniform Resource Locator

UTC

Universal Time, Coordinated (also called GMT/UTC)

WIST

Warehouse Inventory Search Tool

WGS

World Geodetic System

WRS

Worldwide Reference System

WSDL

Web Services Description Language

XML

eXtensible Markup Language

XSLT

eXtensible Style Language Transformation

Sample queries

Sample Granule Query Using Various Granule Conditions (Inventory)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE query PUBLIC "-//ECHO CatalogService (v{*}10{*})//EN" "http://api.echo.nasa.gov/echo/dtd/IIMSAQLQueryLanguage.dtd">
Search for granules from the L70R or L70RWRS or GLCF_GRANULE_METADATA datasets that have Browse data and were categorized as day granules. -->
<query>
	<for value="granules"/> 
		<dataCenterId>
			<list> 
				<value>ORNL_DAAC</value>
			</list>
		</dataCenterId>
	<where>
		<granuleCondition>
			<browseOnly/>
		</granuleCondition>
		<granuleCondition>
			<cloudCover>
				<range lower="10" upper="20"/> 
			</cloudCover>
		</granuleCondition>
		<granuleCondition>
			<dataSetId>
				<list>
					<value>'L70R'</value>
					<value>'L70RWRS'</value> 
					<value>'GLCF_GRANULE_METADATA'</value>
				</list>
			</dataSetId>
		</granuleCondition>
		<granuleCondition> 
			<dayNightFlag value="DAY"/> 
		/granuleCondition>
	</where>
</query>
Sample Granule Query Using Spatial and Temporal Bounds (Inventory)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE query PUBLIC "-//ECHO CatalogService (v{*}10{*})//EN" "http://api.echo.nasa.gov/echo/dtd/IIMSAQLQueryLanguage.dtd">
Search for granules the specified spatial region, and periodic temporal extent
--> 
<query>
	<for value="granules"/> 
	<dataCenterId>
		<list> 
			<value>ORNL_DAAC</value>
		</list>
	</dataCenterId>
	<where>
		<granuleCondition>
			<spatial operator="RELATE"> 
				<IIMSPolygon>
					<IIMSLRing>
						<IIMSPoint lon="-120" lat="-30" /> 
						<IIMSPoint lon="-100" lat="-60" /> 
						<IIMSPoint lon="-5" lat="-90" /> 
						<IIMSPoint lon="5" lat="85" /> 
						<IIMSPoint lon="-120" lat="30" /> 
						<IIMSPoint lon="-120" lat="-30" />
					</IIMSLRing>
					<IIMSLRing>
						<IIMSPoint lon="80" lat="20" /> 
						<IIMSPoint lon="80" lat="60" /> 
						<IIMSPoint lon="20" lat="60" /> 
						<IIMSPoint lon="20" lat="20" /> 
						<IIMSPoint lon="80" lat="20" />
					</IIMSLRing>
				</IIMSPolygon>
			</spatial>
		</granuleCondition>
		<granuleCondition>
			<temporal>
				<startDate>
					<Date YYYY="1989" MM="01" DD="01"/>
				</startDate> 
				<stopDate>
					<Date YYYY="1998" MM="12" DD="31"/>
				</stopDate> 
				<startDay value="1"/>
				<endDay value="300"/> 
			</temporal>
		</granuleCondition>
	</where>
</query>


Sample Granule Query Using Sensor Name (Inventory)
<?xml version="1.0" encoding="UTF-8"?>
<query>
	<for value="granules"/> 
	<dataCenterId>
		<list>
			<value>ORNL_DAAC</value>
		</list> 
	</dataCenterId>
	<where>
		<granuleCondition>
			<sensorName>
				<list>
					<value>'SWIR'</value>
					<value>'TIR'</value>
				</list>
			</sensorName>
		</granuleCondition>
	</where>
</query>

Sample Granule Query Using Temporal Constraints (Inventory)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE query PUBLIC "-//ECHO CatalogService (v{*}10{*})//EN" "http://api.echo.nasa.gov/echo/dtd/IIMSAQLQueryLanguage.dtd">
Search for granules with temporal range: periodic range between Jan 1, 1990 and Dec. 31 1998 from the 1st to the 300th day
of each year. -->
<query>
	<for value="granules"/> 
	<dataCenterId>
		<list> 
			<value>ORNL_DAAC</value>
		</list>
	</dataCenterId>
	<where>
		<granuleCondition>
			<temporal>
				<startDate>
					<Date YYYY="1990" MM="01" DD="01"/> 
				</startDate>
				<stopDate>
					<Date YYYY="1998" MM="12" DD="31"/>
				</stopDate> 
				<startDay value="1"/>
				<endDay value="300"/> 
			</temporal>
		</granuleCondition>
	</where>
</query>


Sample Granule Query Using Additional Provider Specific Attributes (Inventory)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE query PUBLIC "-//ECHO CatalogService (v10)//EN" "http://api.echo.nasa.gov/echo/dtd/IIMSAQLQueryLanguage.dtd"> <query>
	<for value="granules"/>
	<dataCenterId> 
		<value>ORNL_DAAC</value>
	</dataCenterId>
	<where>
		<granuleCondition>
			<additionalAttributes>
				<additionalAttribute> 
					<additionalAttributeName>'COORDINATE_UNITS_NAME'</additionalAttributeName>
					<additionalAttributeValue>
						<value>'METERS'</value>
					</additionalAttributeValue>
				</additionalAttribute> 
			 </additionalAttributes>
		</granuleCondition>
	</where>
</query>


Sample Granule Query Using Additional Provider Specific Attributes with Complex Values (Inventory)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE query PUBLIC "-//ECHO CatalogService (v10)//EN" "http://api.echo.nasa.gov/echo/dtd/IIMSAQLQueryLanguage.dtd"> 
<query>
	<for value="granules"/> 
	<dataCenterId>
		<value>ORNL_DAAC</value> 
	</dataCenterId>
	<where>
		<granuleCondition>
			<additionalAttributes>
				<additionalAttribute>
					<additionalAttributeName>'SAMPLE_DATE'</ additionalAttributeName> 
					<additionalAttributeValue>
						<dateRange>
							<startDate>
								<Date YYYY="2000" MM="05" DD="12"/> 
							</startDate>
							<stopDate>
								<Date YYYY="2000" MM="10" DD="12"/> 
							</stopDate>
						</dateRange>
					</additionalAttributeValue>
				</additionalAttribute>
			</additionalAttributes>
		</granuleCondition>
	</where>
</query>

DTD Results

ECHO Collection Results DTD


The ECHO Collection Results DTD is located at the following link: ECHO Collection Results DTD

ECHO Granule Results DTD


The ECHO Granule Results DTD is located at the following link: ECHO Granule Results DTD

Best Practices for Queries


The following tips and other recommended practices will improve the efficiency of queries.

Best Practices for Faster Queries

  • Limiting the end user choices will lead the user down a logical path. This will promote efficiency by limiting the choice to those applicable to the user's needs.
  • Search for collections first and limit the collection search spatially or temporally and by data center. Limiting the collection will result in a narrower search and a smaller, more focused result set.
  • Queries are optimized to return as soon as the requested iterator size is found. Therefore, to do a check for the existence of data, use a small iterator size such as 1 rather than a HITS query.
  • The result type HITS requires the query to be executed and the entire result set identified and counted. Use this result type extremely sparingly.
  • Use the MetadataAttributes to return only the necessary attributes when presenting data. ECHO defaults to all attributes, which will take longer to return and display.
  • Request only what the user would see in the first few pages. For example, if the client only supports displaying 10 pages of 10 items, use an iterator size of 100. The client may want to pre-fetch the next page of results while the user is examining the first page.
  • The user of the value element will be more efficient than the use of the range element in general.

Efficient Spatial Queries

  • If you are querying a single Data Partner, name the Data Partner in the query.
  • If you are querying a single collection, include the name of the collection in the query.
  • Queries for smaller spatial regions return faster than queries for broader regions.
  • Queries for spatial regions with fewer points return faster results than queries with more point

  • No labels