/** * Gets the SoundingOb associated with this DataChoice. The VisAD {@link visad.MathType} of the * return value is the {@link visad.Tuple} ({@link visad.DateTime}, {@link * visad.georef.EarthLocationTuple}, {@link ucar.visad.functiontypes.InSituAirTemperatureProfile}, * {@link ucar.visad.functiontypes.DewPointProfile}). * * @param dc DataChoice for data * @param dataSelection subselection criteria * @return The sounding observation. * @throws RemoteException Java RMI problem * @throws VisADException VisAD problem */ private Data makeSoundingOb(DataChoice dc, DataSelection dataSelection) throws VisADException, RemoteException { SoundingOb so = getRDS().initSoundingOb((SoundingOb) dc.getId()); if (so == null) { return null; } RAOB raob = so.getRAOB(); SoundingStation ss = (SoundingStation) so.getStation(); // sanity check FlatField t = raob.getTemperatureProfile(); if (t.getDomainSet().getLength() == 1) { return null; } return new Tuple( new Data[] { so.getTimestamp(), ((SoundingStation) so.getStation()).getNamedLocation(), raob.getTemperatureProfile(), raob.getDewPointProfile(), raob.getWindProfile() }); }