HiRISE

HiRISE.HiReport.product
Class ProductObservationNode

java.lang.Object
  extended by HiRISE.HiReport.product.ObservationNode
      extended by HiRISE.HiReport.product.ProductObservationNode

public class ProductObservationNode
extends ObservationNode

Per-observation branch in tree of products


Field Summary
static double MARS_A_METERS
          equatorial radius in meters
static double MARS_B_METERS
          polar radius in meters
static double MARS_E2
          eccentricity squared
 
Fields inherited from class HiRISE.HiReport.product.ObservationNode
acquired, ccdset, cycle, id, predicted, related, status, stereo, suggestion, tagnames, tags, target, theme, thumb, title
 
Constructor Summary
ProductObservationNode(String id)
          Create a new node, with information to be filled out
 
Method Summary
 void addProductFile(ProductFile file)
          Add a product file to the hierarchy.
 ProductObservationNode geometry(boolean geometry)
          Set to true if geometry is available
 boolean getAnaglyphable()
          Return true if an anaglyph should be expected
 ProductGroupNode getAnaglyphs()
          Convenience method to get the Anaglyph group (may be empty)
 double getBin1Scale()
          Get the scale of an unbinned pixel
 float getCrosstrackDeltaKm()
          Get the cross-track delta (actual - planned) in kilometers.
 float getDeltaDeg()
          Get the absolute magnitude of the delta in degrees
 float getDeltaKm()
          Get the absolute magnitude of the delta in kilometers
 float getDerivedLat()
          Get the computed center latitude in degrees
 float getDerivedLon()
          Get the computed center longitude in degrees
 float getDowntrackDeltaKm()
          Get the down-track delta (actual - planned) in kilometers.
 ProductGroupNode getDTEs()
          Convenience method to get the DTE group (may be empty)
 ProductGroupNode getEDRs()
          Convenience method to get the EDR group (may be empty)
 float getLatitudeDeltaDeg()
          Get the latitude delta (actual - planned) in degrees.
 float getLatitudeDeltaKm()
          Get the latitude delta (actual - planned) in kilometers.
 float getLongitudeDeltaDeg()
          Get the longitude delta (actual - planned) in degrees.
 float getLongitudeDeltaKm()
          Get the longitude delta (actual - planned) in kilometers.
 int getMaxVersion()
           
 int getMinVersion()
           
 ProductGroupNode getNOMAPs()
          Convenience method to get the NOMAP group (may be empty)
 double getNorthAzimuth()
          Get the north azimuth
 ProductGroupNode getOrthos()
          Convenience method to get the ortho-image group (may be empty)
 float getOverlap()
          Calculates the fraction of overlap from 0 (no overlap) to 1 (complete overlap).
 float getPlannedLat()
          Get the planned center latitude in degrees
 float getPlannedLon()
          Get the planned center longitude in degrees
 ProductGroupNode getRDRs()
          Convenience method to get the RDR group (may be empty)
 Set<String> getTagNames()
          Get a collection of distinct tag names
 Map<Tag,String> getTags()
          Get a collection mapping tags to product version identifiers for display.
 boolean isGeometry()
           
 void setBin1Scale(double scale)
          Set the scale of an unbinned pixel
 void setCommanding()
          This method determines which products can be ignored because they were not commanded and sets the product state for those products in the hierarchy.
 void setDerivedCoordinates(float lat, float lon, double naz)
          Set the center coordinates as computed from SPICE
 void setGeometry()
          Compute based on geometry values Formula adopted from "Length of a Degree of longitude" http://en.wikipedia.org/wiki/Longitude
 void setPlannedCoordinates(float lat, float lon)
          Get the center targeted coordinates
 void setStatus(HiProduct product, String id, int version, String status)
          Set the status for a particular product.
 
Methods inherited from class HiRISE.HiReport.product.ObservationNode
addRelatedId, addTag, cycle, equals, getAcquiredTime, getCommandedCcdSet, getCycle, getDerivable, getId, getPredictedTime, getProductable, getRelated, getRelatedCount, getStatus, getSuggestion, getTarget, getTheme, getThumb, getTitle, hashCode, isStereo, setSuggestion, setThumb, setTiming, status, stereo, target, theme, title
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MARS_A_METERS

public static final double MARS_A_METERS
equatorial radius in meters

See Also:
Constant Field Values

MARS_B_METERS

public static final double MARS_B_METERS
polar radius in meters

See Also:
Constant Field Values

MARS_E2

public static final double MARS_E2
eccentricity squared

See Also:
Constant Field Values
Constructor Detail

ProductObservationNode

public ProductObservationNode(String id)
Create a new node, with information to be filled out

Parameters:
id - observation ID
Method Detail

geometry

public ProductObservationNode geometry(boolean geometry)
Set to true if geometry is available

Parameters:
geometry - true if geometry is available
Returns:
this instance

setCommanding

public void setCommanding()
This method determines which products can be ignored because they were not commanded and sets the product state for those products in the hierarchy. For meaningful results, it must be called after all product files have been added.


setBin1Scale

public void setBin1Scale(double scale)
Set the scale of an unbinned pixel

Parameters:
scale - meters per pixel

getBin1Scale

public double getBin1Scale()
Get the scale of an unbinned pixel

Returns:
meters per pixel

setPlannedCoordinates

public void setPlannedCoordinates(float lat,
                                  float lon)
Get the center targeted coordinates

Parameters:
lat - center latitude in degrees
lon - center longitude in degrees

setDerivedCoordinates

public void setDerivedCoordinates(float lat,
                                  float lon,
                                  double naz)
Set the center coordinates as computed from SPICE

Parameters:
lat - center latitude in degrees
lon - center longitude in degrees (0-360)
naz - north azimuth in degrees

getPlannedLat

public float getPlannedLat()
Get the planned center latitude in degrees

Returns:
planned center latitude

getPlannedLon

public float getPlannedLon()
Get the planned center longitude in degrees

Returns:
planned center longitude

getDerivedLat

public float getDerivedLat()
Get the computed center latitude in degrees

Returns:
computed center latitude

getNorthAzimuth

public double getNorthAzimuth()
Get the north azimuth

Returns:
degrees

getDerivedLon

public float getDerivedLon()
Get the computed center longitude in degrees

Returns:
computed center latitude

getLatitudeDeltaDeg

public float getLatitudeDeltaDeg()
Get the latitude delta (actual - planned) in degrees.

Returns:
latitude delta in degrees

getLongitudeDeltaDeg

public float getLongitudeDeltaDeg()
Get the longitude delta (actual - planned) in degrees.

Returns:
longitude delta in kilometers

getLatitudeDeltaKm

public float getLatitudeDeltaKm()
Get the latitude delta (actual - planned) in kilometers.

Returns:
latitude delta in kilometers

getLongitudeDeltaKm

public float getLongitudeDeltaKm()
Get the longitude delta (actual - planned) in kilometers.

Returns:
longitude delta in kilometers

getDowntrackDeltaKm

public float getDowntrackDeltaKm()
Get the down-track delta (actual - planned) in kilometers.

Returns:
down-track delta in kilometers

getCrosstrackDeltaKm

public float getCrosstrackDeltaKm()
Get the cross-track delta (actual - planned) in kilometers.

Returns:
x-track delta in kilometers

getOverlap

public float getOverlap()
Calculates the fraction of overlap from 0 (no overlap) to 1 (complete overlap).

Returns:
overlap fraction

getDeltaDeg

public float getDeltaDeg()
Get the absolute magnitude of the delta in degrees

Returns:
degrees delta

getDeltaKm

public float getDeltaKm()
Get the absolute magnitude of the delta in kilometers

Returns:
kilometers delta

addProductFile

public void addProductFile(ProductFile file)
Add a product file to the hierarchy. Intermediate branch nodes will be updated as needed.

Parameters:
file - the product file instance

setStatus

public void setStatus(HiProduct product,
                      String id,
                      int version,
                      String status)
Set the status for a particular product. The status is typically a pipeline name.

Parameters:
product - uniquely identifies the product
id - product ID (not necessarily unique, e.g. "RED")
version - product version number
status - string to display for status

getTags

public Map<Tag,String> getTags()
Get a collection mapping tags to product version identifiers for display.

Returns:
tag collection

getTagNames

public Set<String> getTagNames()
Get a collection of distinct tag names

Returns:
distinct tag names

isGeometry

public boolean isGeometry()
Returns:
the geometry

getEDRs

public ProductGroupNode getEDRs()
Convenience method to get the EDR group (may be empty)

Returns:
EDRs

getRDRs

public ProductGroupNode getRDRs()
Convenience method to get the RDR group (may be empty)

Returns:
RDRs

getDTEs

public ProductGroupNode getDTEs()
Convenience method to get the DTE group (may be empty)

Returns:
DTEs

getOrthos

public ProductGroupNode getOrthos()
Convenience method to get the ortho-image group (may be empty)

Returns:
Orthos

getNOMAPs

public ProductGroupNode getNOMAPs()
Convenience method to get the NOMAP group (may be empty)

Returns:
NOMAPs

getAnaglyphs

public ProductGroupNode getAnaglyphs()
Convenience method to get the Anaglyph group (may be empty)

Returns:
Anaglyphs

getMinVersion

public int getMinVersion()
Returns:
the minVersion

getMaxVersion

public int getMaxVersion()
Returns:
the maxVersion

getAnaglyphable

public boolean getAnaglyphable()
Return true if an anaglyph should be expected

Returns:
true if anaglyph expected

setGeometry

public void setGeometry()
Compute based on geometry values Formula adopted from "Length of a Degree of longitude" http://en.wikipedia.org/wiki/Longitude


HiRISE

Copyright (C) Arizona Board of Regents on behalf of the Planetary Image Research Laboratory, Lunar and Planetary Laboratory at the University of Arizona