## visad.bom
Class Radar3DCoordinateSystem

    java.lang.Object
      visad.CoordinateSystem
          visad.georef.NavigatedCoordinateSystem
              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

  Returns:
    string listing params