CoordinateAxis1D zAxis = gcs.getVerticalAxis();
int zidx = zAxis.findCoordElement( zCoord);
int[] xy = gcs.findXYindexFromLatLon(lat, lon, null);
Array data = grid.readDataSlice(tidx, zidx, xy[1], xy[0]);
// use actual grid midpoint
LatLonPoint latlon = gcs.getLatLon(xy[0], xy[1]);
Point p = new Point();
p.lat = latlon.getLatitude();
p.lon = latlon.getLongitude();
p.z = zAxis.getCoordValue( zidx);
p.dataValue = data.getDouble( data.getIndex());
return p;
}