ucar.unidata.geoloc.vertical
Class VerticalTransformImpl

java.lang.Object
  extended by ucar.unidata.geoloc.vertical.VerticalTransformImpl
All Implemented Interfaces:
VerticalTransform
Direct Known Subclasses:
AtmosSigma, HybridHeight, HybridSigmaPressure, OceanS, OceanSigma, VerticalTransformSubset, VTfromExistingData, WRFEta

public abstract class VerticalTransformImpl
extends java.lang.Object
implements VerticalTransform

A transformation to a vertical reference coordinate system, such as height or pressure.

Version:
$Revision: 1.9 $
Author:
Unidata Development Team

Field Summary
protected  java.lang.String units
          unit string
 
Constructor Summary
VerticalTransformImpl(Dimension timeDim)
          Construct a VerticalCoordinate
 
Method Summary
abstract  ArrayDouble.D3 getCoordinateArray(int timeIndex)
          Get the 3D vertical coordinate array for this time step.
protected  Dimension getTimeDimension()
          Get the time Dimension
 java.lang.String getUnitString()
          Get the unit string for the vertical coordinate.
 boolean isTimeDependent()
          Get whether this coordinate is time dependent.
protected  Array readArray(Variable v, int timeIndex)
          Read the data Array from the variable, at the specified time index if applicable.
 VerticalTransform subset(Range t_range, Range z_range, Range y_range, Range x_range)
          _more_
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

units

protected java.lang.String units
unit string

Constructor Detail

VerticalTransformImpl

public VerticalTransformImpl(Dimension timeDim)
Construct a VerticalCoordinate

Parameters:
timeDim - time dimension
Method Detail

getCoordinateArray

public abstract ArrayDouble.D3 getCoordinateArray(int timeIndex)
                                           throws java.io.IOException,
                                                  InvalidRangeException
Get the 3D vertical coordinate array for this time step.

Specified by:
getCoordinateArray in interface VerticalTransform
Parameters:
timeIndex - the time index. Ignored if !isTimeDependent().
Returns:
vertical coordinate array
Throws:
InvalidRangeException - _more_
java.io.IOException - problem reading the data

getUnitString

public java.lang.String getUnitString()
Get the unit string for the vertical coordinate.

Specified by:
getUnitString in interface VerticalTransform
Returns:
unit string

isTimeDependent

public boolean isTimeDependent()
Get whether this coordinate is time dependent.

Specified by:
isTimeDependent in interface VerticalTransform
Returns:
true if time dependent

getTimeDimension

protected Dimension getTimeDimension()
Get the time Dimension

Returns:
time Dimension

readArray

protected Array readArray(Variable v,
                          int timeIndex)
                   throws java.io.IOException,
                          InvalidRangeException
Read the data Array from the variable, at the specified time index if applicable. If the variable does not have a time dimension, the data array will have the same rank as the Variable. If the variable has a time dimension, the data array will have rank-1.

Parameters:
v - variable to read
timeIndex - time index, ignored if !isTimeDependent()
Returns:
Array from the variable at that time index
Throws:
java.io.IOException - problem reading data
InvalidRangeException - _more_

subset

public VerticalTransform subset(Range t_range,
                                Range z_range,
                                Range y_range,
                                Range x_range)
                         throws InvalidRangeException
_more_

Specified by:
subset in interface VerticalTransform
Parameters:
t_range - _more_
z_range - _more_
y_range - _more_
x_range - _more_
Returns:
_more_
Throws:
InvalidRangeException - _more_