public int interpElevationAt(float lat,float lon){
  if (frame_is_valid == true) {
    if (lat >= dsi.sw_lat && lat <= dsi.ne_lat && lon >= dsi.sw_lon && lon <= dsi.ne_lon) {
      float lat_index=(lat - dsi.sw_lat) * 36000F / uhl.lat_post_interval;
      float lon_index=(lon - dsi.sw_lon) * 36000F / uhl.lon_post_interval;
      int lflon_index=(int)Math.floor(lon_index);
      int lclon_index=(int)Math.ceil(lon_index);
      int lclat_index=(int)Math.ceil(lat_index);
      if (elevations[lflon_index] == null)       readDataRecord(lflon_index);
      if (elevations[lclon_index] == null)       readDataRecord(lclon_index);
      int ul=elevations[lflon_index][lclat_index];
      int ur=elevations[lclon_index][lclat_index];
      int ll=elevations[lflon_index][lclat_index];
      int lr=elevations[lclon_index][lclat_index];
      float answer=resolveFourPoints(ul,ur,lr,ll,lat_index,lon_index);
      return Math.round(answer);
    }
  }
  return -32767;
}

public int interpElevationAt ( float lat , float lon ) { if ( frame_is_valid == true ) { if ( lat >= dsi . sw_lat && lat <= dsi . ne_lat && lon >= dsi . sw_lon && lon <= dsi . ne_lon ) { float lat_index = ( lat - dsi . sw_lat ) * 36000F / uhl . lat_post_interval ; float lon_index = ( lon - dsi . sw_lon ) * 36000F / uhl . lon_post_interval ; int lflon_index = ( int ) Math . floor ( lon_index ) ; int lclon_index = ( int ) Math . ceil ( lon_index ) ; int lclat_index = ( int ) Math . ceil ( lat_index ) ; if ( elevations [ lflon_index ] == null ) readDataRecord ( lflon_index ) ; if ( elevations [ lclon_index ] == null ) readDataRecord ( lclon_index ) ; int ul = elevations [ lflon_index ] [ lclat_index ] ; int ur = elevations [ lclon_index ] [ lclat_index ] ; int ll = elevations [ lflon_index ] [ lclat_index ] ; int lr = elevations [ lclon_index ] [ lclat_index ] ; float answer = resolveFourPoints ( ul , ur , lr , ll , lat_index , lon_index ) ; return Math . round ( answer ) ; } } return - 32767 ; }
interpolated elevation at a given lat / lon - should be more precise than elevationat ( ) , but that depends on the resolution of the data .
