cdm/src/main/java/ucar/unidata/geoloc/vertical/HybridHeight.java
public D1 getCoordinateArray1D(int timeIndex, int xIndex, int yIndex)
  		throws IOException, InvalidRangeException {
	  
	  
	  Array orogArray = readArray(orogVar, timeIndex);
	  if (null == aArray) {
		  aArray = aVar.read();
		  bArray = bVar.read();
	  }

	  int nz = (int) aArray.getSize();
	  Index aIndex = aArray.getIndex();
	  Index bIndex = bArray.getIndex();	  

	  Index orogIndex = orogArray.getIndex();
	  ArrayDouble.D1 height = new ArrayDouble.D1(nz);

	  for (int z = 0; z < nz; z++) {
		  double az = aArray.getDouble(aIndex.set(z));
		  double bz = bArray.getDouble(bIndex.set(z));
		  
          double orog = orogArray.getDouble(orogIndex.set(yIndex, xIndex));
          height.set(z,  az + bz * orog);
		  
	  }
	  
	  return height;
  }
public D1 getCoordinateArray1D(int timeIndex, int xIndex, int yIndex)
  		throws IOException, InvalidRangeException {
	  
	  
	  Array orogArray = readArray(orogVar, timeIndex);
	  if (null == aArray) {
		  aArray = aVar.read();
		  bArray = bVar.read();
	  }

	  int nz = (int) aArray.getSize();
	  Index aIndex = aArray.getIndex();
	  Index bIndex = bArray.getIndex();	  

	  Index orogIndex = orogArray.getIndex();
	  ArrayDouble.D1 height = new ArrayDouble.D1(nz);

	  for (int z = 0; z < nz; z++) {
		  double az = aArray.getDouble(aIndex.set(z));
		  double bz = bArray.getDouble(bIndex.set(z));
		  
          double orog = orogArray.getDouble(orogIndex.set(yIndex, xIndex));
          height.set(z,  az + bz * orog);
		  
	  }
	  
	  return height;
  }
public D1 getCoordinateArray1D ( int timeIndex , int xIndex , int yIndex ) throws IOException , InvalidRangeException { Array orogArray = readArray ( orogVar , timeIndex ) ; if ( null == aArray ) { aArray = aVar . read ( ) ; bArray = bVar . read ( ) ; } int nz = ( int ) aArray . getSize ( ) ; Index aIndex = aArray . getIndex ( ) ; Index bIndex = bArray . getIndex ( ) ; Index orogIndex = orogArray . getIndex ( ) ; ArrayDouble . D1 height = new ArrayDouble . D1 ( nz ) ; for ( int z = 0 ; z < nz ; z ++ ) { double az = aArray . getDouble ( aIndex . set ( z ) ) ; double bz = bArray . getDouble ( bIndex . set ( z ) ) ; double orog = orogArray . getDouble ( orogIndex . set ( yIndex , xIndex ) ) ; height . set ( z , az + bz * orog ) ; } 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