Omaha #3873 - Fixed assigning timeObs for maritime record.

Former-commit-id: fc045d397e [formerly 4b43ae6fb4] [formerly 090bc93302] [formerly 63026ac59b [formerly 090bc93302 [formerly ccdf4928b9527e85684fb0d4eaa67435f8da5559]]]
Former-commit-id: 63026ac59b
Former-commit-id: 7a7e0f7c520306ee470317b3986f23a40ee79e12 [formerly f697594b73]
Former-commit-id: 7d0803fcb1
This commit is contained in:
Slav Korolev 2014-12-04 14:05:11 -05:00
parent 32fe42fb59
commit f691ef9c11

View file

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