From 1e905b06fa66b451de0dc7373e7cf570dd01319b Mon Sep 17 00:00:00 2001 From: Ben Steffensmeier Date: Wed, 28 Nov 2012 16:33:15 -0600 Subject: [PATCH] Issue #1358 fix forced basins and ffmp loading rfc ffg on startup. Former-commit-id: 5039e5fa0831ff57a871805a1c9fc59902058242 [formerly 215f954d8279ef80722f88a911f13e4119c10856 [formerly b536f26daa373d536844171c48cf07bd036e0570] [formerly 5039e5fa0831ff57a871805a1c9fc59902058242 [formerly 901c629add69ab263d041919c45316512718b72a]]] Former-commit-id: 215f954d8279ef80722f88a911f13e4119c10856 [formerly b536f26daa373d536844171c48cf07bd036e0570] Former-commit-id: 215f954d8279ef80722f88a911f13e4119c10856 Former-commit-id: e6d005ec38ff4c9263b9bc6d98e3f4930241b5ce --- .../dataplugin/ffmp/FFMPGuidanceBasin.java | 62 +++++++++---------- .../uf/common/dataplugin/ffmp/FFMPUtils.java | 33 +++++++--- .../uf/edex/plugin/ffmp/FFMPGenerator.java | 3 +- 3 files changed, 58 insertions(+), 40 deletions(-) diff --git a/edexOsgi/com.raytheon.uf.common.dataplugin.ffmp/src/com/raytheon/uf/common/dataplugin/ffmp/FFMPGuidanceBasin.java b/edexOsgi/com.raytheon.uf.common.dataplugin.ffmp/src/com/raytheon/uf/common/dataplugin/ffmp/FFMPGuidanceBasin.java index c08bf448ea..3366acac1c 100644 --- a/edexOsgi/com.raytheon.uf.common.dataplugin.ffmp/src/com/raytheon/uf/common/dataplugin/ffmp/FFMPGuidanceBasin.java +++ b/edexOsgi/com.raytheon.uf.common.dataplugin.ffmp/src/com/raytheon/uf/common/dataplugin/ffmp/FFMPGuidanceBasin.java @@ -100,7 +100,7 @@ public class FFMPGuidanceBasin extends FFMPBasin implements ISerializableObject return Float.NaN; } } - + /** * purge out old entries * @@ -178,14 +178,14 @@ public class FFMPGuidanceBasin extends FFMPBasin implements ISerializableObject return val; } - + /** * Gets a Value for a FFG source * * @param date * @return */ - public Float getValue(String sourceName, + public Float getValue(String sourceName, FFMPGuidanceInterpolation interpolation, long expiration) { Float dvalue = Float.NaN; @@ -209,23 +209,23 @@ public class FFMPGuidanceBasin extends FFMPBasin implements ISerializableObject */ public Float getValue(String sourceName, Date date, FFMPGuidanceInterpolation interpolation, long expiration) { - + Float dvalue = Float.NaN; Float value = Float.NaN; Date closestDate = getClosest(sourceName, date, expiration); - + if (closestDate != null) { value = getValue(closestDate, sourceName); } - + if (!value.isNaN()) { FFFGDataMgr dman = FFFGDataMgr.getInstance(); if (dman.isExpired() == false) { - dvalue = dman.adjustValue(dvalue, sourceName, this.pfaf, + dvalue = dman.adjustValue(value, sourceName, this.pfaf, this.countyFips); } else { - dvalue = value; + dvalue = value; } } @@ -244,30 +244,30 @@ public class FFMPGuidanceBasin extends FFMPBasin implements ISerializableObject Date rdate = null; if (guidValues != null && guidValues.size() > 0) { - - Date markerDate = guidValues.firstKey(); - - for (Date checkDate : guidValues.keySet()) { - - if (guidValues.get(checkDate).containsKey(sourceName)) { - float val = guidValues.get(checkDate).get(sourceName); - if (val != FFMPUtils.MISSING) { - - long time1 = markerDate.getTime(); - long time2 = checkDate.getTime(); - - if ((time1 - time2) < expiration) { - rdate = checkDate; - } - break; - } - } - } + + Date markerDate = guidValues.firstKey(); + + for (Date checkDate : guidValues.keySet()) { + + if (guidValues.get(checkDate).containsKey(sourceName)) { + float val = guidValues.get(checkDate).get(sourceName); + if (val != FFMPUtils.MISSING) { + + long time1 = markerDate.getTime(); + long time2 = checkDate.getTime(); + + if ((time1 - time2) < expiration) { + rdate = checkDate; + } + break; + } + } + } } return rdate; } - + /** * Get Closest Key * @@ -284,14 +284,14 @@ public class FFMPGuidanceBasin extends FFMPBasin implements ISerializableObject if (guidValues.containsKey(date)) { if (guidValues.get(date).containsKey(sourceName)) { - + float val = guidValues.get(date).get(sourceName); - + if (val != FFMPUtils.MISSING) { rdate = date; } } - } + } if (rdate == null) { diff --git a/edexOsgi/com.raytheon.uf.common.dataplugin.ffmp/src/com/raytheon/uf/common/dataplugin/ffmp/FFMPUtils.java b/edexOsgi/com.raytheon.uf.common.dataplugin.ffmp/src/com/raytheon/uf/common/dataplugin/ffmp/FFMPUtils.java index 13758d47ec..a7d3fb4e02 100644 --- a/edexOsgi/com.raytheon.uf.common.dataplugin.ffmp/src/com/raytheon/uf/common/dataplugin/ffmp/FFMPUtils.java +++ b/edexOsgi/com.raytheon.uf.common.dataplugin.ffmp/src/com/raytheon/uf/common/dataplugin/ffmp/FFMPUtils.java @@ -475,11 +475,12 @@ public class FFMPUtils { * @return */ public static FFMPCounty getCounty(Long pfaf, String mode) { - - String ftxt = (pfaf>=10000 ? ""+pfaf : "0"+pfaf);// DR 15164 - + + String ftxt = (pfaf >= 10000 ? "" + pfaf : "0" + pfaf);// DR 15164 + String sql = "SELECT county.countyname, county.state FROM " - + " mapdata.county WHERE county.fips = '" + ftxt/*pfaf*/ + "'";// DR 15164 + + " mapdata.county WHERE county.fips = '" + ftxt/* pfaf */+ "'";// DR + // 15164 ISpatialQuery sq = null; FFMPCounty county = new FFMPCounty(); @@ -627,10 +628,23 @@ public class FFMPUtils { */ @SuppressWarnings("unchecked") public static ArrayList getCountyInfo(Long fips, String mode) { - String ftxt = (fips>=10000 ? ""+fips : "0"+fips);// DR 15108: add a leading 0 to 4-digit FIPS. + String ftxt = (fips >= 10000 ? "" + fips : "0" + fips);// DR 15108: add + // a leading 0 to + // 4-digit FIPS. String sql1 = "SELECT county.gid from " + FFMPUtils.COUNTY_TABLE - + " WHERE county.fips = '" + ftxt/*fips*/ + "'";// DR 15108: use the 5-digit FIPS string. - System.out.println("___FFMPUtils.getCountyInfo(): county FIPS: "+ftxt);//Not a debug statement but for Template generation. + + " WHERE county.fips = '" + ftxt/* fips */+ "'";// DR 15108: + // use the + // 5-digit FIPS + // string. + System.out + .println("___FFMPUtils.getCountyInfo(): county FIPS: " + ftxt);// Not + // a + // debug + // statement + // but + // for + // Template + // generation. ISpatialQuery sq1 = null; ArrayList gids = new ArrayList(); @@ -914,13 +928,16 @@ public class FFMPUtils { * @param id * @return */ - public static String getFFGDataURI(String parameter, String plugin) { + public static String getFFGDataURI(String rfc, String parameter, + String plugin) { DbQueryRequest request = new DbQueryRequest(); request.setEntityClass(GridRecord.class.getName()); request.addRequestField("dataURI"); request.addConstraint(GridConstants.PARAMETER_ABBREVIATION, new RequestConstraint(parameter)); + request.addConstraint(GridConstants.DATASET_ID, new RequestConstraint( + "FFG-" + rfc.substring(1))); request.setOrderByField("dataTime.refTime", OrderMode.DESC); try { DbQueryResponse response = (DbQueryResponse) RequestRouter diff --git a/edexOsgi/com.raytheon.uf.edex.plugin.ffmp/src/com/raytheon/uf/edex/plugin/ffmp/FFMPGenerator.java b/edexOsgi/com.raytheon.uf.edex.plugin.ffmp/src/com/raytheon/uf/edex/plugin/ffmp/FFMPGenerator.java index 9f49448262..74dc7d497c 100644 --- a/edexOsgi/com.raytheon.uf.edex.plugin.ffmp/src/com/raytheon/uf/edex/plugin/ffmp/FFMPGenerator.java +++ b/edexOsgi/com.raytheon.uf.edex.plugin.ffmp/src/com/raytheon/uf/edex/plugin/ffmp/FFMPGenerator.java @@ -1065,7 +1065,8 @@ public class FFMPGenerator extends CompositeProductGenerator implements String plugin = getSourceConfig().getSource(source) .getPlugin(); - uris.add(FFMPUtils.getFFGDataURI(source, plugin)); + uris.add(FFMPUtils.getFFGDataURI(rfc, source, + plugin)); } } }