@Immutable public class HybridSigmaPressure extends Object
pressure(x,y,z) = a(z)*p0 + b(z)*surfacePressure(x,y) or
pressure(x,y,z) = ap(z) + b(z)*surfacePressure(x,y)
| Modifier and Type | Field and Description |
|---|---|
static String |
A
The "a" variable name identifier
|
static String |
AP
The "ap" variable name identifier
|
static String |
B
The "b" variable name identifier
|
static String |
P0
P-naught identifier
|
static String |
PS
Surface pressure name identifier
|
protected String |
units |
| Modifier and Type | Method and Description |
|---|---|
static HybridSigmaPressure |
create(NetcdfFile ds,
Dimension timeDim,
List<Parameter> params)
Construct a coordinate transform for sigma pressure
|
ArrayDouble.D3 |
getCoordinateArray(int timeIndex)
Get the 3D vertical coordinate array for this time step.
|
ArrayDouble.D1 |
getCoordinateArray1D(int timeIndex,
int xIndex,
int yIndex)
Get the 1D vertical coordinate array for this time step and point
|
protected Dimension |
getTimeDimension()
Get the time Dimension, if it exists
|
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 VerticalTransform as a section of an existing VerticalTransform.
|
public static final String P0
public static final String PS
public static final String A
public static final String AP
public static final String B
protected final String units
public static HybridSigmaPressure create(NetcdfFile ds, Dimension timeDim, List<Parameter> params)
ds - netCDF datasettimeDim - time dimensionparams - list of transformation Parameters
TODO: params will change to AttributeContainer in ver7.public ArrayDouble.D3 getCoordinateArray(int timeIndex) throws IOException, InvalidRangeException
getCoordinateArray in interface VerticalTransformtimeIndex - the time index. Ignored if !isTimeDependent().IOException - problem reading dataInvalidRangeException - _more_public ArrayDouble.D1 getCoordinateArray1D(int timeIndex, int xIndex, int yIndex) throws IOException, InvalidRangeException
getCoordinateArray1D in interface VerticalTransformtimeIndex - the time index. Ignored if !isTimeDependent().xIndex - the x indexyIndex - the y indexIOException - problem reading dataInvalidRangeException - _more_@Nullable public String getUnitString()
VerticalTransformgetUnitString in interface VerticalTransformpublic boolean isTimeDependent()
VerticalTransformisTimeDependent in interface VerticalTransformprotected Dimension getTimeDimension()
public VerticalTransform subset(Range t_range, Range z_range, Range y_range, Range x_range)
VerticalTransformsubset in interface VerticalTransformt_range - subset the time dimension, or null if you want all of itz_range - subset the vertical dimension, or null if you want all of ity_range - subset the y dimension, or null if you want all of itx_range - subset the x dimension, or null if you want all of it