ucar.unidata.geoloc.vertical
Class VerticalTransformImpl

java.lang.Object
  extended by ucar.unidata.geoloc.vertical.VerticalTransformImpl
All Implemented Interfaces:
VerticalTransform
Direct Known Subclasses:
AtmosLnPressure, AtmosSigma, HybridHeight, HybridSigmaPressure, OceanS, OceanSG1, OceanSG2, 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.

Author:
Unidata Development Team

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.
 java.lang.String getUnitString()
          Get the unit string for the vertical coordinate.
 boolean isTimeDependent()
          Get whether this coordinate is time dependent.
 VerticalTransform subset(Range t_range, Range z_range, Range y_range, Range x_range)
          Create a subset of this VerticalTransform.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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

subset

public VerticalTransform subset(Range t_range,
                                Range z_range,
                                Range y_range,
                                Range x_range)
                         throws InvalidRangeException
Create a subset of this VerticalTransform.

Specified by:
subset in interface VerticalTransform
Parameters:
t_range - subset the time dimension, or null if you want all of it
z_range - subset the vertical dimension, or null if you want all of it
y_range - subset the y dimension, or null if you want all of it
x_range - subset the x dimension, or null if you want all of it
Returns:
the subsetted VerticalTransform
Throws:
InvalidRangeException - if any of the range parameters are illegal