190 likes | 422 Views
ECHO. Backtrack Algorithm and MISR Backtrack Example Lei Fang January 23, 2007. Agenda. What is Backtrack? How do data providers configure orbit data? Example: MISR Backtrack How does ECHO search for orbit data?. What is Backtrack?.
E N D
ECHO Backtrack Algorithm and MISR Backtrack Example Lei Fang January 23, 2007
Agenda • What is Backtrack? • How do data providers configure orbit data? • Example: MISR Backtrack • How does ECHO search for orbit data?
What is Backtrack? • An algorithm for searching orbit swath data (developed by Ross Swick from NSIDC, see http://geospatialmethods.org/bosa/ for more details) A typical orbit path
What is Backtrack? Tough to represent spatial coverage in polar area withconventional search solution --Geodetic/Cartesian polygon The same orbit path showing on map
What is Backtrack? Backtrack solution: “If you are searching for orbital data, it’s probably a good idea to use orbits.” –Ross Swick
What is Backtrack? Backtrack orbit model Three parameters to define an orbit: • Instrument swath width (in kilometers) • Satellite declination or inclination (in degrees) • Satellite period (in minutes) Orbit data representation Three parameters to represent orbit data: • Equatorial crossing longitude • Start circular latitude (or start latitude and start direction) • End circular latitude (or end latitude and end direction)
How do data providers configure orbit data? Add orbit parameters to Collection Metadata (ECHO format) <Spatial> <SpatialCoverageType>Horizontal</SpatialCoverageType> <OrbitParameters> <SwathWidth>400</SwathWidth> <Period>98.88</Period> <InclinationAngle>98.2</InclinationAngle> </OrbitParameters> <GranuleSpatialRepresentation> <Orbit/> </GranuleSpatialRepresentation> </Spatial>
How do data providers configure orbit data? Add orbit data to Granule Metadata (ECHO format) <Spatial> <SpatialDomainContainer> <HorizontalSpatialDomainContainer> <Orbit> <AscendingCrossing>160.14462465545338</AscendingCrossing> <StartLat>69.021242</StartLat> <StartDirection>D</StartDirection> <EndLat>-68.995831</EndLat> <EndDirection>A</EndDirection> </Orbit> </HorizontalSpatialDomainContainer> </SpatialDomainContainer> </Spatial>
Example: MISR Backtrack • Multi-angle Imaging Spectro-Radiometer (MISR) data helps to understand Earth's climate. • See http://terra.nasa.gov/About/MISR/about_misr.html for more information • Configuring MISR orbit data requires additional work • Missing information in the metadata file such as orbit parameters • Spatial data elements are at different places in metadata file • Some information is stored in a separate file • Solution: • Add missing information to metadata file • Modify BMGT-to-ECHO XSLT ingest script
Example: MISR Backtrack • Add missing orbit parameters to collection metadata <Spatial> <SpatialCoverageType>Horizontal</SpatialCoverageType> <OrbitParameters> <SwathWidth>400</SwathWidth> <Period>98.88</Period> <InclinationAngle>98.2</InclinationAngle> </OrbitParameters> <GranuleSpatialRepresentation> <Orbit/> </GranuleSpatialRepresentation> </Spatial>
Example: MISR Backtrack • Modify BMGT-to-ECHO XSLT ingest script to weave orbit data for granule metadata • AscendingCrossing • The data underEquatorCrossingLongitude element in BMGT metadata input file is a descending crossing: <OrbitCalculatedSpatialDomain> <OrbitCalculatedSpatialDomainContainer> <OrbitNumber>10429</OrbitNumber> <EquatorCrossingLongitude>-32.2053753445466</EquatorCrossingLongitude> <EquatorCrossingDate>2001-12-03</EquatorCrossingDate> <EquatorCrossingTime>12:42:19.8204850</EquatorCrossingTime> </OrbitCalculatedSpatialDomainContainer> </OrbitCalculatedSpatialDomain> • XSLT script: • Extracts descending crossing: -32 • Adds placement -167 to adjust to ascending crossing: -32-168 • Normalizes to (-180, 180): -32-168+360 = 160 • Adds to spatial section to ECHO format output : <AscendingCrossing>160</AscendingCrossing>
Example: MISR Backtrack • Latitude • The data under PSA element in BMGT metadata input file as a block number, a separate block-latitude lookup table file is provided: <PSAs> <PSA> <PSAName>SP_AM_MISR_EndBlock</PSAName> <PSAValue>177</PSAValue> </PSA> <PSA> <PSAName>SP_AM_MISR_StartBlock</PSAName> <PSAValue>35</PSAValue> </PSA> </PSAs> • XSLT script: • Extracts value from SP_AM_MISR_StartBlock: 35 • Looks up latitude from lookup table: 69 • Determines the direction from path pattern in the lookup table: descending • Applies to end latitude: latidue is -68 for block 177, and it is ascending • Adds to spatial section to ECHO format output : <StartLat>69</StartLat> <StartDirection>D</StartDirection> <EndLat>-68</EndLat> <EndDirection>A</EndDirection>
How does ECHO search for orbit data? • User specifies a regular spatial window <granuleCondition> <spatial> <Polygon> <LRing> <CList>-90,49,-90,39,-70,39,-70,49,-90,49</CList> </LRing> </Polygon> <SpatialType> <list> <value>ORBIT</value> </list> </SpatialType> </spatial> </granuleCondition>
How does ECHO search for orbit data? • Backtrack calculates from both ascending and descending path for equatorial longitude crossings and start/end circular latitudes according to user’s query window
How does ECHO search for orbit data? 80W 64W Search ascending path End Circular Lat = 49N Start Circular Lat = 39N
How does ECHO search for orbit data? 88E 106E Search descending path Start Circular Lat = 131 End Circular Lat = 141
How does ECHO search for orbit data? • Sample SQL where condition: ( ( ( (start_clat between 39.0 and 49.0) or (end_clat between 39.0 and 49.0) or (start_clat < 39.0 and end_clat > 49.0) ) and ( ascending_crossing between -80.0 and -64.0) ) or ( (start_clat between 131.0 and 141.0) or (end_clat between 131.0 and 141.0) or (start_clat < 131.0 and end_clat > 141.0) ) and (ascending_crossing between 88.0 and 106.0) ) ) )