Omaha #3873 - Fixed assigning timeObs for maritime record.

Former-commit-id: ccdf4928b9527e85684fb0d4eaa67435f8da5559
This commit is contained in:
Slav Korolev 2014-12-04 14:05:11 -05:00
parent 5d91f976af
commit 090bc93302

View file

@ -34,7 +34,7 @@ import com.raytheon.uf.common.time.util.TimeUtil;
import com.raytheon.uf.edex.decodertools.time.TimeTools;
/**
* TODO Add Description
* Provides a transform from FSSObsRecord to PointDataContainer and vice versa.
*
* <pre>
*
@ -44,6 +44,7 @@ import com.raytheon.uf.edex.decodertools.time.TimeTools;
* ------------ ---------- ----------- --------------------------
* Dec 3, 2010 skorolev Initial creation
* Jul 23, 2014 3410 bclement location changed to floats
* Dec 04, 2014 3873 skorolev Fixed assigning timeObs for maritime record.
*
* </pre>
*
@ -70,42 +71,79 @@ public class FSSObsDataTransform {
// ------------------ params in the FSSObsRecord----------------------------
private static final String CEILING = "ceiling";
private static final String DEWPOINT = "dewpoint";
private static final String DEWPOINT_DEPR = "dewpointDepr";
private static final String FROSTBITE_TIME = "frostbiteTime";
private static final String HORIZONTAL_VIS = "horzVisibility";
private static final String HOURLY_PRECIP = "hourlyPrecip";
private static final String MAX_WIND_SPEED = "maxWindSpeed";
private static final String PLATFORM_ID = "platformId";
private static final String PRES_WEATHER = "presWeather";
private static final String PRESS_CHANGE3_HOUR = "pressChange3Hour";
private static final String PRESS_CHANGE_CHAR = "pressChangeChar";
private static final String PRESS_ALTIMETER = "pressureAltimeter";
private static final String PRI_SWELL_WV_DIR = "primarySwellWaveDir";
private static final String PRI_SWELL_WV_HGT = "primarySwellWaveHeight";
private static final String PRI_SWELL_WV_PD = "primarySwellWavePeriod";
private static final String RAW_MESSAGE = "rawMessage";
private static final String REL_HUMIDITY = "relativeHumidity";
private static final String SEA_LEVEL_PRESS = "seaLevelPress";
private static final String SEA_SFC_TEMP = "seaSurfaceTemp";
private static final String SEC_SWELL_WV_DIR = "secondarySwellWaveDir";
private static final String SEC_SWELL_WV_HGT = "secondarySwellWaveHeight";
private static final String SEC_SWELL_WV_PD = "secondarySwellWavePeriod";
private static final String SKY_COVER = "skyCover";
private static final String SNOW_INC_HOURLY = "snincrHourly";
private static final String SNOW_INC_TOTAL = "snincrTotal";
private static final String SNOW_DEPTH = "snowDepth";
private static final String STATION_NAME = "stnName";
private static final String TEMPERATURE = "temperature";
private static final String TIME_OBS = "timeObs";
private static final String REF_HOUR = "refHour";
private static final String CLOUD_AMOUNT_TOT = "totCloudAmount";
private static final String VISIBILITY = "visibility";
private static final String WV_HGT = "waveHeight";
private static final String WV_PD = "wavePeriod";
private static final String WV_STEEPNESS = "waveSteepness";
private static final String WIND_DIR = "windDir";
private static final String WIND_GUST = "windGust";
private static final String WIND_SPEED = "windSpeed";
// ------------------Common params (From OBS
@ -146,6 +184,8 @@ public class FSSObsDataTransform {
private static final String PRECIP1_HOUR = "precip1Hour";
private static final String TIME_NOMINAL = "timeNominal";
public static final String OBS_PARAMS_LIST;
// ----------------From LDADMESOWEST-------------------------------
@ -296,19 +336,13 @@ public class FSSObsDataTransform {
fssr.setPlatformId(loc.getStationId());
fssr.setStnName(stId);
fssr.setRawMessage(pdv.getString(RAW_METAR));
fssr.setDataTime(new DataTime(new Date(pdv.getNumber(TIME_OBS)
.longValue())));
long to = pdv.getLong(TIME_OBS);
fssr.setTimeObs(TimeUtil.newGmtCalendar(new Date(to)));
// nominalTime
fssr.setDataTime(new DataTime(pdv.getDate(TIME_OBS)));
fssr.setTimeObs(pdv.getCalendar(TIME_OBS));
fssr.setRefHour(TimeTools.roundToNearestHour(fssr.getTimeObs()));
// in mbar
fssr.setSeaLevelPress(pdv.getNumber(SEA_LEVEL_PRESS).floatValue());
// in mmHg
fssr.setPressureAltimeter(pdv.getNumber(ALTIMETER).floatValue());
// Double pa =
// DecoderTools.inToPa(pdv.getNumber(ALTIMETER).doubleValue());
// fssr.setPressureAltimeter(pa.floatValue());
fssr.setPressChange3Hour(pdv.getNumber(PRESS_CHANGE3_HOUR).floatValue());
fssr.setPressChangeChar(pdv.getString(PRESS_CHANGE_CHAR));
// in Fahrenheit
@ -463,25 +497,15 @@ public class FSSObsDataTransform {
String stId = FSSObsUtils.getStationName(loc.getStationId());
fssr.setPlatformId(loc.getStationId());
fssr.setStnName(stId);
fssr.setRawMessage(pdv.getString(RAW_REPORT));
fssr.setDataTime(new DataTime(new Date(pdv.getNumber(TIME_OBS)
.longValue())));
long to = pdv.getLong(TIME_OBS);
fssr.setTimeObs(TimeUtil.newGmtCalendar(new Date(to)));
// TODO: check nominalTime
fssr.setRefHour(TimeTools.roundToNearestHour(fssr.getTimeObs()));
fssr.setDataTime(new DataTime(pdv.getDate(TIME_OBS)));
fssr.setTimeObs(pdv.getCalendar(TIME_OBS));
fssr.setRefHour(pdv.getCalendar(TIME_NOMINAL));
// in mbar
if (pdv.getFloat(SEA_LEVEL_PRESS) != MISSING) {
fssr.setSeaLevelPress(pdv.getFloat(SEA_LEVEL_PRESS) / 100);
}
fssr.setPressureAltimeter(pdv.getNumber(ALTIMETER).floatValue());
// Double pa =
// DecoderTools.inToPa(pdv.getNumber(ALTIMETER).doubleValue());
// if (pdv.getNumber(ALTIMETER).doubleValue() != MISSING) {
// fssr.setPressure(pa.floatValue());
// }
fssr.setPressChange3Hour(pdv.getFloat(PRESS_CHANGE3_HOUR));
fssr.setPressChangeChar(String.valueOf(pdv.getInt(PRESS_CHANGE_CHAR)));