visad.bom
Class Radar3DCoordinateSystem

java.lang.Object
  extended by visad.CoordinateSystem
      extended by visad.georef.NavigatedCoordinateSystem
          extended by visad.bom.Radar3DCoordinateSystem
All Implemented Interfaces:
Serializable

public class Radar3DCoordinateSystem
extends NavigatedCoordinateSystem

Radar3DCoordinateSystem is the VisAD CoordinateSystem class for radar (range, azimuth, elevation_angle) with an Earth (Latitude, Longitude, Altitude) Reference, and with azimuth and elevation angle in degrees, and range in meters.

See Also:
Serialized Form

Field Summary
static double EARTH_RADIUS
           
 
Constructor Summary
Radar3DCoordinateSystem(float clat, float clon, float calt)
          construct a CoordinateSystem for (range, azimuth, elevation_angle) relative to an Earth (Latitude, Longitude, Altitude) Reference; this constructor supplies units = {CommonUnit.meter, CommonUnit.degree, CommonUnit.degree} to the super constructor, in order to ensure Unit compatibility with its use of trigonometric functions.
Radar3DCoordinateSystem(float clat, float clon, float calt, float radl, float radr, float azl, float azr, float elevl, float elevr)
          construct a CoordinateSystem for (range, azimuth, elevation_angle) relative to an Earth (Latitude, Longitude, Altitude) Reference; this constructor supplies units = {CommonUnit.meter, CommonUnit.degree, CommonUnit.degree} to the super constructor, in order to ensure Unit compatibility with its use of trigonometric functions.
Radar3DCoordinateSystem(RealTupleType reference, float clat, float clon, float radl, float radr, float azl, float azr, float elevl, float elevr)
          Deprecated. use constructors with station altitude to get a true altitude above sea level.
Radar3DCoordinateSystem(RealTupleType reference, float clat, float clon, float calt, float radl, float radr, float azl, float azr, float elevl, float elevr)
          construct a CoordinateSystem for (range, azimuth, elevation_angle) relative to an Earth (Latitude, Longitude, Altitude) Reference; this constructor supplies units = {CommonUnit.meter, CommonUnit.degree, CommonUnit.degree} to the super constructor, in order to ensure Unit compatibility with its use of trigonometric functions.
 
Method Summary
 boolean equals(Object cs)
          Check to see if this is a Radar3DCoordinateSystem
 double[][] fromReference(double[][] tuples)
          Convert from latitude/longitude/altitude to range/azimuth/elevation.
 float[][] fromReference(float[][] tuples)
          Convert from latitude/longitude/altitude to range/azimuth/elevation.
 float[] getAzimuthParameters()
          Return the azimuth parameters
 float[] getCenterPoint()
          Get center point in lat/lon/alt
 float[] getElevationParameters()
          Return the elevation angle parameters
 float[] getRangeParameters()
          Return the range parameters
 double[][] toReference(double[][] tuples)
          Convert from range/azimuth/elevation to latitude/longitude/altitude.
 float[][] toReference(float[][] tuples)
          Convert from range/azimuth/elevation to latitude/longitude/altitude.
 String toString()
          Return String representation of this Radar3DCoordinateSystem
 
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

EARTH_RADIUS

public static final double EARTH_RADIUS
See Also:
Constant Field Values
Constructor Detail

Radar3DCoordinateSystem

public Radar3DCoordinateSystem(float clat,
                               float clon,
                               float calt)
                        throws VisADException
construct a CoordinateSystem for (range, azimuth, elevation_angle) relative to an Earth (Latitude, Longitude, Altitude) Reference; this constructor supplies units = {CommonUnit.meter, CommonUnit.degree, CommonUnit.degree} to the super constructor, in order to ensure Unit compatibility with its use of trigonometric functions. Values of range, azimuth, and elevation angle are in terms of absolute values of range, azimuth and elevation angle (tilt) from the center point where range is in meters, azimuth = 0 at north and elevation angle is in degrees.

Parameters:
clat - latitude of center point
clon - longitude of center point
calt - altitude (meters) of center point
Throws:
VisADException - necessary VisAD object couldn't be created.

Radar3DCoordinateSystem

public Radar3DCoordinateSystem(float clat,
                               float clon,
                               float calt,
                               float radl,
                               float radr,
                               float azl,
                               float azr,
                               float elevl,
                               float elevr)
                        throws VisADException
construct a CoordinateSystem for (range, azimuth, elevation_angle) relative to an Earth (Latitude, Longitude, Altitude) Reference; this constructor supplies units = {CommonUnit.meter, CommonUnit.degree, CommonUnit.degree} to the super constructor, in order to ensure Unit compatibility with its use of trigonometric functions. Values of range, azimuth and elevation angle are in terms of multiples of range, azimuth and elevation angle resolutions away from the low values (radl, azl, elevl). The absolute range is (radl + range_value * radr) the absolute azimuth is (azl + azimuth_value * azr) with azimuth = 0 at north and the absolute elevation angle is (elevl + elevation_angle_value * elevr). This allows the use of Integer3DSets for the values assuming linear spacing of range, azimuth and elevation angle.

Parameters:
clat - latitude of center point
clon - longitude of center point
radl - distance from center point for first possible echo (meters)
radr - distance between subsequent range increments (meters)
azl - starting azimuth (degrees)
azr - resolution of degrees between azimuths.
elevl - starting elevation angle (tilt) (degrees)
elevr - resolution of degrees between elevation angles.
Throws:
VisADException - necessary VisAD object couldn't be created.

Radar3DCoordinateSystem

public Radar3DCoordinateSystem(RealTupleType reference,
                               float clat,
                               float clon,
                               float radl,
                               float radr,
                               float azl,
                               float azr,
                               float elevl,
                               float elevr)
                        throws VisADException
Deprecated. use constructors with station altitude to get a true altitude above sea level.

construct a CoordinateSystem for (range, azimuth, elevation_angle) relative to an Earth (Latitude, Longitude, Altitude) Reference; this constructor supplies units = {CommonUnit.meter, CommonUnit.degree, CommonUnit.degree} to the super constructor, in order to ensure Unit compatibility with its use of trigonometric functions. Values of range, azimuth and elevation angle are in terms of multiples of range, azimuth and elevation angle resolutions away from the low values (radl, azl, elevl). The absolute range is (radl + range_value * radr) the absolute azimuth is (azl + azimuth_value * azr) with azimuth = 0 at north and the absolute elevation angle is (elevl + elevation_angle_value*elevr). This allows the use of Integer3DSets for the values assuming linear spacing of range, azimuth and elevation angle.

Parameters:
reference - reference RealTupleType (should be Latitude, Longitude, Altitude)
clat - latitude of center point
clon - longitude of center point
radl - distance from center point for first possible echo (meters)
radr - distance between subsequent range values (meters)
azl - starting azimuth (degrees)
azr - resolution of degrees between azimuths.
elevl - starting elevation angle (tilt) (degrees)
elevr - resolution of degrees between elevation angles.
Throws:
VisADException - necessary VisAD object couldn't be created.

Radar3DCoordinateSystem

public Radar3DCoordinateSystem(RealTupleType reference,
                               float clat,
                               float clon,
                               float calt,
                               float radl,
                               float radr,
                               float azl,
                               float azr,
                               float elevl,
                               float elevr)
                        throws VisADException
construct a CoordinateSystem for (range, azimuth, elevation_angle) relative to an Earth (Latitude, Longitude, Altitude) Reference; this constructor supplies units = {CommonUnit.meter, CommonUnit.degree, CommonUnit.degree} to the super constructor, in order to ensure Unit compatibility with its use of trigonometric functions. Values of range, azimuth and elevation angle are in terms of multiples of range, azimuth and elevation angle resolutions away from the low values (radl, azl, elevl). The absolute range is (radl + range_value * radr) the absolute azimuth is (azl + azimuth_value * azr) with azimuth = 0 at north and the absolute elevation angle is (elevl + elevation_angle_value*elevr). This allows the use of Integer3DSets for the values assuming linear spacing of range, azimuth and elevation angle.

Parameters:
reference - reference RealTupleType (should be Latitude, Longitude, Altitude)
clat - latitude of center point
clon - longitude of center point
calt - altitude (meters) of center point
radl - distance from center point for first possible echo (meters)
radr - distance between subsequent range values (meters)
azl - starting azimuth (degrees)
azr - resolution of degrees between azimuths.
elevl - starting elevation angle (tilt) (degrees)
elevr - resolution of degrees between elevation angles.
Throws:
VisADException - necessary VisAD object couldn't be created.
Method Detail

toReference

public double[][] toReference(double[][] tuples)
                       throws VisADException
Convert from range/azimuth/elevation to latitude/longitude/altitude. Values input are in terms of multiples of the value resolution from the low value (ex: low + value * resolution). Returned Altitude is in meters above the station elevation if this was constructed without the calt parameter.

Specified by:
toReference in class CoordinateSystem
Parameters:
tuples - range/azimuth/elevation values
Returns:
lat/lon/altitude values
Throws:
VisADException - tuples is null or wrong dimension

fromReference

public double[][] fromReference(double[][] tuples)
                         throws VisADException
Convert from latitude/longitude/altitude to range/azimuth/elevation. Values returned are in terms of multiples of the value resolution from the low value (ex: low + value * resolution)

Specified by:
fromReference in class CoordinateSystem
Parameters:
tuples - lat/lon/altitude values
Returns:
range/azimuth/elevation values
Throws:
VisADException - tuples is null or wrong dimension

toReference

public float[][] toReference(float[][] tuples)
                      throws VisADException
Convert from range/azimuth/elevation to latitude/longitude/altitude. Values input are in terms of multiples of the value resolution from the low value (ex: low + value * resolution). Returned Altitude is in meters above the station elevation if this was constructed without the calt parameter.

Overrides:
toReference in class CoordinateSystem
Parameters:
tuples - range/azimuth/elevation values
Returns:
lat/lon/altitude values
Throws:
VisADException - tuples is null or wrong dimension

fromReference

public float[][] fromReference(float[][] tuples)
                        throws VisADException
Convert from latitude/longitude/altitude to range/azimuth/elevation. Values returned are in terms of multiples of the value resolution from the low value (ex: low + value * resolution)

Overrides:
fromReference in class CoordinateSystem
Parameters:
tuples - lat/lon/altitude values
Returns:
range/azimuth/elevation values
Throws:
VisADException - tuples is null or wrong dimension

equals

public boolean equals(Object cs)
Check to see if this is a Radar3DCoordinateSystem

Specified by:
equals in class CoordinateSystem
Parameters:
cs - object to compare
Returns:
true if cs is an instance of Radar3DCoordinateSystem

getElevationParameters

public float[] getElevationParameters()
Return the elevation angle parameters

Returns:
array[] (len == 2) where array[0] = elevl, array[1] = elevr

getAzimuthParameters

public float[] getAzimuthParameters()
Return the azimuth parameters

Returns:
array[] (len == 2) where array[0] = azl, array[1] = azr

getRangeParameters

public float[] getRangeParameters()
Return the range parameters

Returns:
array[] (len == 2) where array[0] = radl, array[1] = radr

getCenterPoint

public float[] getCenterPoint()
Get center point in lat/lon/alt

Returns:
latlon array where array[0] = lat, array[1] = lon, array[2] = alt

toString

public String toString()
Return String representation of this Radar3DCoordinateSystem

Overrides:
toString in class Object
Returns:
string listing params