visad.data.hrit
Class HRITCoordinateSystem

java.lang.Object
  extended by visad.CoordinateSystem
      extended by visad.georef.NavigatedCoordinateSystem
          extended by visad.georef.MapProjection
              extended by visad.data.hrit.HRITCoordinateSystem
All Implemented Interfaces:
Serializable

public class HRITCoordinateSystem
extends MapProjection

HRITCoordinateSystem is a VisAD CoordinateSystem class used by HRITAdapter for conversions to/from (Latitude, Longitude) and Cartesian (element,line), and with Latitude and Longitude in degrees. It is currently modeled mostly after AREACoordinateSystem, so there are strong similarities between the two. In fact, for now this class does navigation exclusively through the McIDAS GEOS nav class.

See Also:
Serialized Form

Field Summary
protected  AREAnav anav
           
 
Constructor Summary
protected HRITCoordinateSystem()
          create an HRIT coordinate system with nothing initialized.
  HRITCoordinateSystem(int[] iparms, int[] dir, boolean useSpline)
          create an HRIT coordinate system from the provided array of navigation parameters, and partially filled AREA directory.
 
Method Summary
 boolean equals(Object obj)
          Determines whether or not the Object in question is the same as this HRITCoordinateSystem.
 double[][] fromReference(double[][] tuples)
          convert from latitude,longitude to image element,line
 float[][] fromReference(float[][] tuples)
          convert from latitude,longitude to image element,line
protected  AREAnav getAreaNav()
          This is used by the methods that do the work and can be overridden by a derived class to do a lazy instantiation of the coordinate system.
 int[] getAuxBlock()
          Get the navigation block used to initialize this HRITCoordinateSystem
 Rectangle2D getDefaultMapArea()
          Get the bounds for this image
 int[] getDirBlock()
          Get the directory block used to initialize this HRITCoordinateSystem
 int[] getNavBlock()
          Get the navigation block used to initialize this HRITCoordinateSystem
 double[] getSubpoint()
          get the subpoint if available
 boolean getUseSpline()
          Get whether we are using a spline or not
protected  void init(int[] iparms, int[] dir, boolean useSpline)
          Create and initialize the areanav.
 double[][] toReference(double[][] tuples)
          convert from image element,line to latitude,longitude
 float[][] toReference(float[][] tuples)
          convert from image element,line to latitude,longitude
 String toString()
          Return a String which tells some info about this navigation
 
Methods inherited from class visad.georef.MapProjection
getCenterLatLon, getLatLon, getXIndex, getYIndex, isLatLonOrder, isXYOrder
 
Methods inherited from class visad.georef.NavigatedCoordinateSystem
getLatitudeIndex, getLongitudeIndex
 
Methods inherited from class visad.CoordinateSystem
canConvert, fromReference, fromReference, getCoordinateSystemUnits, getDimension, getReference, getReferenceUnits, toReference, toReference, transformCoordinates, transformCoordinates, transformCoordinates, transformCoordinates, transformCoordinatesFreeUnits, transformCoordinatesFreeUnits
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

anav

protected AREAnav anav
Constructor Detail

HRITCoordinateSystem

protected HRITCoordinateSystem()
                        throws VisADException
create an HRIT coordinate system with nothing initialized. This allows for derived classes to do a lazy initialization of the coordinate system. To do this they must override getAreaNav in order to create the nav.

Throws:
VisADException

HRITCoordinateSystem

public HRITCoordinateSystem(int[] iparms,
                            int[] dir,
                            boolean useSpline)
                     throws VisADException
create an HRIT coordinate system from the provided array of navigation parameters, and partially filled AREA directory. This routine uses a flipped Y axis (first line of the image file is number 0)

Parameters:
iparms - init params?
dir - is the AREA file directory block
useSpline - use a spline approximation for speed
Throws:
VisADException
Method Detail

getAreaNav

protected AREAnav getAreaNav()
This is used by the methods that do the work and can be overridden by a derived class to do a lazy instantiation of the coordinate system.

Returns:
The area nav

init

protected void init(int[] iparms,
                    int[] dir,
                    boolean useSpline)
             throws VisADException
Create and initialize the areanav. This used to be in the constructor is snow its own method to enable derived classes to lazily create the areanav

Parameters:
iparms - init params?
dir - is the AREA file directory block
useSpline - use a spline approximation for speed
Throws:
VisADException

getDirBlock

public int[] getDirBlock()
Get the directory block used to initialize this HRITCoordinateSystem


getNavBlock

public int[] getNavBlock()
Get the navigation block used to initialize this HRITCoordinateSystem


getAuxBlock

public int[] getAuxBlock()
Get the navigation block used to initialize this HRITCoordinateSystem


getSubpoint

public double[] getSubpoint()
get the subpoint if available


getUseSpline

public boolean getUseSpline()
Get whether we are using a spline or not


toReference

public double[][] toReference(double[][] tuples)
                       throws VisADException
convert from image element,line to latitude,longitude

Specified by:
toReference in class CoordinateSystem
Parameters:
tuples - contains the element,line pairs to convert
Returns:
array of double values in reference coordinates and Units.
Throws:
VisADException - if problem with conversion.

fromReference

public double[][] fromReference(double[][] tuples)
                         throws VisADException
convert from latitude,longitude to image element,line

Specified by:
fromReference in class CoordinateSystem
Parameters:
tuples - contains the element,line pairs to convert
Returns:
array of double values in CoordinateSystem Units.
Throws:
VisADException - if problem with conversion.

toReference

public float[][] toReference(float[][] tuples)
                      throws VisADException
convert from image element,line to latitude,longitude

Overrides:
toReference in class CoordinateSystem
Parameters:
tuples - contains the element,line pairs to convert
Returns:
array of float values in reference coordinates and Units.
Throws:
VisADException - if problem with conversion.

fromReference

public float[][] fromReference(float[][] tuples)
                        throws VisADException
convert from latitude,longitude to image element,line

Overrides:
fromReference in class CoordinateSystem
Parameters:
tuples - contains the element,line pairs to convert
Returns:
array of float values in this CoordinateSystem Units.
Throws:
VisADException - if problem with conversion.

getDefaultMapArea

public Rectangle2D getDefaultMapArea()
Get the bounds for this image

Specified by:
getDefaultMapArea in class MapProjection
Returns:
the bounding box of the MapProjection

equals

public boolean equals(Object obj)
Determines whether or not the Object in question is the same as this HRITCoordinateSystem. The specified Object is equal to this HRITCoordinateSystem if it is an instance of HRITCoordinateSystem and it has the same navigation module and default map area as this one.

Specified by:
equals in class CoordinateSystem
Parameters:
obj - the Object in question
Returns:
true if and only if this instance equals cs.

toString

public String toString()
Return a String which tells some info about this navigation

Overrides:
toString in class MapProjection
Returns:
wordy String