Package ucar.nc2.geoloc.vertical
Class OceanSigma
- java.lang.Object
-
- ucar.nc2.geoloc.vertical.OceanSigma
-
- All Implemented Interfaces:
VerticalTransform
@Immutable public class OceanSigma extends Object
Implement CF "ocean_sigma_coordinate".:standard_name = "ocean_sigma_coordinate"; :formula_terms = "sigma: sigma eta: zeta depth: depth" :height_formula = "height(x,y,z) = eta(n,j,i) + sigma(k)*(depth(j,i)+eta(n,j,i))" Definition z(n,k,j,i) = eta(n,j,i) + sigma(k)*(depth(j,i)+eta(n,j,i)) where z(n,k,j,i) is height (positive upwards) relative to the datum (e.g. mean sea level) at gridpoint (n,k,j,i), eta(n,j,i) is the height of the sea surface (positive upwards) relative to the datum at gridpoint (n,j,i), sigma(k) is the dimensionless coordinate at vertical gridpoint (k), and depth(j,i) is the distance (a positive value) from the datum to the sea floor at horizontal gridpoint (j,i). formula_terms = "sigma: var1 eta: var2 depth: var3"
- See Also:
- "http://cfconventions.org/Data/cf-conventions/cf-conventions-1.9/cf-conventions.html#_ocean_sigma_coordinate"
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
OceanSigma.Builder
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static Optional<VerticalTransform>
create(NetcdfDataset ds, AttributeContainer params, Formatter errlog)
Array<Number>
getCoordinateArray1D(int timeIndex, int xIndex, int yIndex)
Get the 1D vertical coordinate array for this time step and pointArray<Number>
getCoordinateArray3D(int timeIndex)
Get the 3D vertical coordinate array for this time step.String
getCtvName()
The name of the Coordinate Variable Transform container.String
getName()
The name of the Vertical Transform.String
getUnitString()
The unit string for the vertical coordinate.
-
-
-
Method Detail
-
create
public static Optional<VerticalTransform> create(NetcdfDataset ds, AttributeContainer params, Formatter errlog)
-
getCoordinateArray3D
public Array<Number> getCoordinateArray3D(int timeIndex) throws IOException, InvalidRangeException
Description copied from interface:VerticalTransform
Get the 3D vertical coordinate array for this time step. Must be in "canonical order" : z, y, x.- Parameters:
timeIndex
- the time index. Ignored if !isTimeDependent().- Returns:
- 3D vertical coordinate array, for the given t.
- Throws:
IOException
InvalidRangeException
-
getName
public String getName()
Description copied from interface:VerticalTransform
The name of the Vertical Transform.- Specified by:
getName
in interfaceVerticalTransform
-
getCtvName
public String getCtvName()
Description copied from interface:VerticalTransform
The name of the Coordinate Variable Transform container.- Specified by:
getCtvName
in interfaceVerticalTransform
-
getUnitString
@Nullable public String getUnitString()
Description copied from interface:VerticalTransform
The unit string for the vertical coordinate.- Specified by:
getUnitString
in interfaceVerticalTransform
-
getCoordinateArray1D
public Array<Number> getCoordinateArray1D(int timeIndex, int xIndex, int yIndex) throws IOException, InvalidRangeException
Description copied from interface:VerticalTransform
Get the 1D vertical coordinate array for this time step and point- Specified by:
getCoordinateArray1D
in interfaceVerticalTransform
- Parameters:
timeIndex
- the time index. Ignored if !isTimeDependent().xIndex
- the x indexyIndex
- the y index- Returns:
- vertical coordinate array
- Throws:
IOException
InvalidRangeException
-
-