cdm/src/main/java/ucar/unidata/geoloc/vertical/OceanSigma.java
public D1 getCoordinateArray1D(int timeIndex, int xIndex, int yIndex)
		  throws IOException, InvalidRangeException {

	  Array eta = readArray(etaVar, timeIndex);
	  Array sigma = readArray(sVar, timeIndex);
	  Array depth = readArray(depthVar, timeIndex);

	  int nz = (int) sigma.getSize();
	  Index sIndex = sigma.getIndex();

	  Index etaIndex = eta.getIndex();
	  Index depthIndex = depth.getIndex();

	  ArrayDouble.D1 height = new ArrayDouble.D1(nz);

	  for (int z = 0; z < nz; z++) {
		  double sigmaVal = sigma.getDouble(sIndex.set(z));

		  double etaVal = eta.getDouble(etaIndex.set(yIndex, xIndex));
		  double depthVal = depth.getDouble(depthIndex.set(yIndex, xIndex));

		  height.set(z, etaVal + sigmaVal * (depthVal + etaVal));
	  }

	  return height;
  }
public D1 getCoordinateArray1D(int timeIndex, int xIndex, int yIndex)
		  throws IOException, InvalidRangeException {

	  Array eta = readArray(etaVar, timeIndex);
	  Array sigma = readArray(sVar, timeIndex);
	  Array depth = readArray(depthVar, timeIndex);

	  int nz = (int) sigma.getSize();
	  Index sIndex = sigma.getIndex();

	  Index etaIndex = eta.getIndex();
	  Index depthIndex = depth.getIndex();

	  ArrayDouble.D1 height = new ArrayDouble.D1(nz);

	  for (int z = 0; z < nz; z++) {
		  double sigmaVal = sigma.getDouble(sIndex.set(z));

		  double etaVal = eta.getDouble(etaIndex.set(yIndex, xIndex));
		  double depthVal = depth.getDouble(depthIndex.set(yIndex, xIndex));

		  height.set(z, etaVal + sigmaVal * (depthVal + etaVal));
	  }

	  return height;
  }
public D1 getCoordinateArray1D ( int timeIndex , int xIndex , int yIndex ) throws IOException , InvalidRangeException { Array eta = readArray ( etaVar , timeIndex ) ; Array sigma = readArray ( sVar , timeIndex ) ; Array depth = readArray ( depthVar , timeIndex ) ; int nz = ( int ) sigma . getSize ( ) ; Index sIndex = sigma . getIndex ( ) ; Index etaIndex = eta . getIndex ( ) ; Index depthIndex = depth . getIndex ( ) ; ArrayDouble . D1 height = new ArrayDouble . D1 ( nz ) ; for ( int z = 0 ; z < nz ; z ++ ) { double sigmaVal = sigma . getDouble ( sIndex . set ( z ) ) ; double etaVal = eta . getDouble ( etaIndex . set ( yIndex , xIndex ) ) ; double depthVal = depth . getDouble ( depthIndex . set ( yIndex , xIndex ) ) ; height . set ( z , etaVal + sigmaVal * ( depthVal + etaVal ) ) ; } return height ; }
Get the 1D vertical coordinate array for this time step and point

@param timeIndex the time index. Ignored if !isTimeDependent().
@param xIndex    the x index
@param yIndex    the y index
@return vertical coordinate array
@throws java.io.IOException problem reading data
@throws ucar.ma2.InvalidRangeException _more_
Get the 1D vertical coordinate array for this time step and point