Issue #2361 fix SCAN Alarm errors

Change-Id: I6c47a38dd3b5c107188fbaabec859448b516bb8b

Former-commit-id: 8ee914edcb [formerly b5d99172fd] [formerly 89bf42161b] [formerly 89bf42161b [formerly 0f8ecc7c48]] [formerly 9069dc9a0c [formerly 89bf42161b [formerly 0f8ecc7c48] [formerly 9069dc9a0c [formerly cac9beb945a4edccc5c4304e8d6d02e5ed0fd144]]]]
Former-commit-id: 9069dc9a0c
Former-commit-id: 14bcc6c88701c0548502eff4eceec8fdd6a8886a [formerly 02691b73fce3638db53fe45b61d6f6fc33ad6f95] [formerly 3c8f7101d5 [formerly f8c23ec052]]
Former-commit-id: 3c8f7101d5
Former-commit-id: a7f9b3ecb5
This commit is contained in:
Nate Jensen 2013-10-15 08:53:12 -05:00
parent cc95d7e608
commit 10e9a0bf4b

View file

@ -55,7 +55,7 @@ import com.raytheon.uf.common.monitor.scan.config.SCANConfigEnums.ScanTables;
import com.raytheon.uf.common.monitor.scan.xml.ScanAlarmXML; import com.raytheon.uf.common.monitor.scan.xml.ScanAlarmXML;
import com.raytheon.uf.common.monitor.xml.SCANModelParameterXML; import com.raytheon.uf.common.monitor.xml.SCANModelParameterXML;
import com.raytheon.uf.common.monitor.xml.SCANSiteXML; import com.raytheon.uf.common.monitor.xml.SCANSiteXML;
import com.raytheon.uf.common.serialization.SerializationUtil; import com.raytheon.uf.common.serialization.SingleTypeJAXBManager;
import com.raytheon.uf.common.sounding.VerticalSounding; import com.raytheon.uf.common.sounding.VerticalSounding;
import com.raytheon.uf.common.time.DataTime; import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.edex.dat.utils.DATUtils; import com.raytheon.uf.edex.dat.utils.DATUtils;
@ -80,7 +80,7 @@ import com.vividsolutions.jts.geom.Coordinate;
/** /**
* *
* TODO Add Description * Filters URIs for SCAN processing
* *
* <pre> * <pre>
* *
@ -88,8 +88,10 @@ import com.vividsolutions.jts.geom.Coordinate;
* *
* Date Ticket# Engineer Description * Date Ticket# Engineer Description
* ------------ ---------- ----------- -------------------------- * ------------ ---------- ----------- --------------------------
* (prior history is missing) * Mar 23, 2010 dhladky Initial creation
* Jun 21, 2013 7613 zhao Modified setGridRecords() etc. * Jun 21, 2013 7613 zhao Modified setGridRecords() etc.
* Oct 15, 2013 2361 njensen Use JAXBManager for XML
*
* *
* </pre> * </pre>
* *
@ -97,10 +99,9 @@ import com.vividsolutions.jts.geom.Coordinate;
* @version 1.0 * @version 1.0
*/ */
public class ScanURIFilter extends URIFilter { public class ScanURIFilter extends URIFilter {
/**
* private static final SingleTypeJAXBManager<ScanAlarmXML> jaxb = SingleTypeJAXBManager
*/ .createWithoutException(ScanAlarmXML.class);
private static final long serialVersionUID = 1L;
public double cellTilt = 0.0; public double cellTilt = 0.0;
@ -889,73 +890,72 @@ public class ScanURIFilter extends URIFilter {
GridRecord[] records = { null, null, null, null, null, null, null }; GridRecord[] records = { null, null, null, null, null, null, null };
records = getGridRecords(); records = getGridRecords();
if (records[0] != null) {
scan.getCache()
.getModelData()
.setGridRecord(
site.getModelParameter(CAPEProduct.cape)
.getModelName(), CAPEProduct.cape,
records[0]);
}
if (records[0] != null) { if (records[1] != null) {
scan.getCache() scan.getCache()
.getModelData() .getModelData()
.setGridRecord( .setGridRecord(
site.getModelParameter(CAPEProduct.cape) site.getModelParameter(HELIProduct.heli)
.getModelName(), CAPEProduct.cape, .getModelName(), HELIProduct.heli,
records[0]); records[1]);
} }
if (records[1] != null) { if (records[2] != null) {
scan.getCache() scan.getCache()
.getModelData() .getModelData()
.setGridRecord( .setGridRecord(
site.getModelParameter(HELIProduct.heli) site.getModelParameter(U500Product.U500)
.getModelName(), HELIProduct.heli, .getModelName(), U500Product.U500,
records[1]); records[2]);
} }
if (records[2] != null) { if (records[3] != null) {
scan.getCache() scan.getCache()
.getModelData() .getModelData()
.setGridRecord( .setGridRecord(
site.getModelParameter(U500Product.U500) site.getModelParameter(U700Product.U700)
.getModelName(), U500Product.U500, .getModelName(), U700Product.U700,
records[2]); records[3]);
} }
if (records[3] != null) { if (records[4] != null) {
scan.getCache() scan.getCache()
.getModelData() .getModelData()
.setGridRecord( .setGridRecord(
site.getModelParameter(U700Product.U700) site.getModelParameter(V700Product.V700)
.getModelName(), U700Product.U700, .getModelName(), V700Product.V700,
records[3]); records[4]);
} }
if (records[4] != null) { if (records[5] != null) {
scan.getCache() scan.getCache()
.getModelData() .getModelData()
.setGridRecord( .setGridRecord(
site.getModelParameter(V700Product.V700) site.getModelParameter(GH500Product.GH500)
.getModelName(), V700Product.V700, .getModelName(), GH500Product.GH500,
records[4]); records[5]);
} }
if (records[5] != null) { if (records[6] != null) {
scan.getCache() scan.getCache()
.getModelData() .getModelData()
.setGridRecord( .setGridRecord(
site.getModelParameter(GH500Product.GH500) site.getModelParameter(GH1000Product.GH1000)
.getModelName(), GH500Product.GH500, .getModelName(), GH1000Product.GH1000,
records[5]); records[6]);
} }
} catch (Exception e) {
if (records[6] != null) { logger.debug("Grib record setter failed.....");
scan.getCache() e.printStackTrace();
.getModelData() }
.setGridRecord(
site.getModelParameter(GH1000Product.GH1000)
.getModelName(), GH1000Product.GH1000,
records[6]);
}
} catch (Exception e) {
logger.debug("Grib record setter failed.....");
e.printStackTrace();
}
} }
/** /**
@ -1126,10 +1126,9 @@ public class ScanURIFilter extends URIFilter {
String path = pm.getStaticFile(getFullPathAndFileName()) String path = pm.getStaticFile(getFullPathAndFileName())
.getAbsolutePath(); .getAbsolutePath();
dataXML = (ScanAlarmXML) SerializationUtil dataXML = jaxb.unmarshalFromXmlFile(path);
.jaxbUnmarshalFromXmlFile(path);
} catch (Exception e) { } catch (Exception e) {
logger.error("Scan Alaram data not available"); logger.error("Scan Alarm data not available", e);
dataXML = null; dataXML = null;
} }
@ -1146,30 +1145,30 @@ public class ScanURIFilter extends URIFilter {
GridRecord[] records = { null, null, null, null, null, null, null }; GridRecord[] records = { null, null, null, null, null, null, null };
try { try {
String[] modelUris = getModelSQL(); String[] modelUris = getModelSQL();
for ( String uri : modelUris ) { for (String uri : modelUris) {
logger.info(" model uri = " + uri ); logger.info(" model uri = " + uri);
} }
for ( int i = 0; i < modelUris.length; i++ ) { for (int i = 0; i < modelUris.length; i++) {
if ( !modelUris[i].isEmpty() ) { if (!modelUris[i].isEmpty()) {
records[i] = DATUtils.getGridRecord(modelUris[i]); records[i] = DATUtils.getGridRecord(modelUris[i]);
} else { } else {
logger.info(" modelUris[" + i + "] is empty"); logger.info(" modelUris[" + i + "] is empty");
} }
} }
// // CAPE // // CAPE
// records[0] = DATUtils.getGridRecord(modelUris[0]); // records[0] = DATUtils.getGridRecord(modelUris[0]);
// // HELI // // HELI
// records[1] = DATUtils.getGridRecord(modelUris[1]); // records[1] = DATUtils.getGridRecord(modelUris[1]);
// // U500 // // U500
// records[2] = DATUtils.getGridRecord(modelUris[2]); // records[2] = DATUtils.getGridRecord(modelUris[2]);
// // U700 // // U700
// records[3] = DATUtils.getGridRecord(modelUris[3]); // records[3] = DATUtils.getGridRecord(modelUris[3]);
// // V700 // // V700
// records[4] = DATUtils.getGridRecord(modelUris[4]); // records[4] = DATUtils.getGridRecord(modelUris[4]);
// // GH500 // // GH500
// records[5] = DATUtils.getGridRecord(modelUris[5]); // records[5] = DATUtils.getGridRecord(modelUris[5]);
// // GH1000 // // GH1000
// records[6] = DATUtils.getGridRecord(modelUris[6]); // records[6] = DATUtils.getGridRecord(modelUris[6]);
} catch (Exception e) { } catch (Exception e) {
logger.error("No Grib record(s) found....."); logger.error("No Grib record(s) found.....");
logger.error(e.toString()); logger.error(e.toString());
@ -1186,67 +1185,76 @@ public class ScanURIFilter extends URIFilter {
SCANSiteXML site = scan.getRunConfig().getSiteConfig(getIcao()); SCANSiteXML site = scan.getRunConfig().getSiteConfig(getIcao());
logger.info(" site = " + site.getScanSite()); logger.info(" site = " + site.getScanSite());
int interval = 1440*3; int interval = 1440 * 3;
// Set interval to 1 day, 1440 minutes // Set interval to 1 day, 1440 minutes
String modelCape = site.getModelParameter(CAPEProduct.cape).getModelName(); String modelCape = site.getModelParameter(CAPEProduct.cape)
String sqlCapeUri = CAPEProduct.getSQL(interval,modelCape); .getModelName();
String sqlCapeUri = CAPEProduct.getSQL(interval, modelCape);
logger.info("modelCape = " + modelCape + "; sqlCapeUri = " + sqlCapeUri); logger.info("modelCape = " + modelCape + "; sqlCapeUri = " + sqlCapeUri);
Object[] objectsCapeUri = scan.dbRequest(sqlCapeUri); Object[] objectsCapeUri = scan.dbRequest(sqlCapeUri);
String modelHeli = site.getModelParameter(HELIProduct.heli).getModelName(); String modelHeli = site.getModelParameter(HELIProduct.heli)
String sqlHeliUri = HELIProduct.getSQL(interval,modelHeli); .getModelName();
String sqlHeliUri = HELIProduct.getSQL(interval, modelHeli);
logger.info("modelHeli = " + modelHeli + "; sqlHeliUri = " + sqlHeliUri); logger.info("modelHeli = " + modelHeli + "; sqlHeliUri = " + sqlHeliUri);
Object[] objectsHeliUri = scan.dbRequest(sqlHeliUri); Object[] objectsHeliUri = scan.dbRequest(sqlHeliUri);
String modelU500 = site.getModelParameter(U500Product.U500).getModelName(); String modelU500 = site.getModelParameter(U500Product.U500)
String sqlU500Uri = U500Product.getSQL(interval,modelU500); .getModelName();
String sqlU500Uri = U500Product.getSQL(interval, modelU500);
logger.info("modelU500 = " + modelU500 + "; sqlU500Uri = " + sqlU500Uri); logger.info("modelU500 = " + modelU500 + "; sqlU500Uri = " + sqlU500Uri);
Object[] objectsU500Uri = scan.dbRequest(sqlU500Uri); Object[] objectsU500Uri = scan.dbRequest(sqlU500Uri);
String modelU700 = site.getModelParameter(U700Product.U700).getModelName(); String modelU700 = site.getModelParameter(U700Product.U700)
String sqlU700Uri = U700Product.getSQL(interval,modelU700); .getModelName();
String sqlU700Uri = U700Product.getSQL(interval, modelU700);
logger.info("modelU700 = " + modelU700 + "; sqlU700Uri = " + sqlU700Uri); logger.info("modelU700 = " + modelU700 + "; sqlU700Uri = " + sqlU700Uri);
Object[] objectsU700Uri = scan.dbRequest(sqlU700Uri); Object[] objectsU700Uri = scan.dbRequest(sqlU700Uri);
String modelV700 = site.getModelParameter(V700Product.V700).getModelName(); String modelV700 = site.getModelParameter(V700Product.V700)
String sqlV700Uri = V700Product.getSQL(interval,modelV700); .getModelName();
String sqlV700Uri = V700Product.getSQL(interval, modelV700);
logger.info("modelV700 = " + modelV700 + "; sqlV700Uri = " + sqlV700Uri); logger.info("modelV700 = " + modelV700 + "; sqlV700Uri = " + sqlV700Uri);
Object[] objectsV700Uri = scan.dbRequest(sqlV700Uri); Object[] objectsV700Uri = scan.dbRequest(sqlV700Uri);
String modelGH500 = site.getModelParameter(GH500Product.GH500).getModelName(); String modelGH500 = site.getModelParameter(GH500Product.GH500)
String sqlGH500Uri = GH500Product.getSQL(interval,modelGH500); .getModelName();
logger.info("modelGH500 = " + modelGH500 + "; sqlGH500Uri = " + sqlGH500Uri); String sqlGH500Uri = GH500Product.getSQL(interval, modelGH500);
logger.info("modelGH500 = " + modelGH500 + "; sqlGH500Uri = "
+ sqlGH500Uri);
Object[] objectsGH500Uri = scan.dbRequest(sqlGH500Uri); Object[] objectsGH500Uri = scan.dbRequest(sqlGH500Uri);
String modelGH1000 = site.getModelParameter(GH1000Product.GH1000).getModelName(); String modelGH1000 = site.getModelParameter(GH1000Product.GH1000)
String sqlGH1000Uri = GH1000Product.getSQL(interval,modelGH1000); .getModelName();
logger.info("modelGH1000 = " + modelGH1000 + "; sqlGH1000Uri = " + sqlGH1000Uri); String sqlGH1000Uri = GH1000Product.getSQL(interval, modelGH1000);
logger.info("modelGH1000 = " + modelGH1000 + "; sqlGH1000Uri = "
+ sqlGH1000Uri);
Object[] objectsGH1000Uri = scan.dbRequest(sqlGH1000Uri); Object[] objectsGH1000Uri = scan.dbRequest(sqlGH1000Uri);
// always grab the most recent time data // always grab the most recent time data
String[] results = { "", "", "", "", "", "", ""}; String[] results = { "", "", "", "", "", "", "" };
if (objectsCapeUri.length > 0) { if (objectsCapeUri.length > 0) {
results[0] = (String) objectsCapeUri[0]; results[0] = (String) objectsCapeUri[0];
} }
if (objectsHeliUri.length > 0) { if (objectsHeliUri.length > 0) {
results[1] = (String) objectsHeliUri[0]; results[1] = (String) objectsHeliUri[0];
} }
if (objectsU500Uri.length > 0) { if (objectsU500Uri.length > 0) {
results[2] = (String) objectsU500Uri[0]; results[2] = (String) objectsU500Uri[0];
} }
if (objectsU700Uri.length > 0) { if (objectsU700Uri.length > 0) {
results[3] = (String) objectsU700Uri[0]; results[3] = (String) objectsU700Uri[0];
} }
if (objectsV700Uri.length > 0) { if (objectsV700Uri.length > 0) {
results[4] = (String) objectsV700Uri[0]; results[4] = (String) objectsV700Uri[0];
} }
if (objectsGH500Uri.length > 0) { if (objectsGH500Uri.length > 0) {
results[5] = (String) objectsGH500Uri[0]; results[5] = (String) objectsGH500Uri[0];
} }
if (objectsGH1000Uri.length > 0) { if (objectsGH1000Uri.length > 0) {
results[6] = (String) objectsGH1000Uri[0]; results[6] = (String) objectsGH1000Uri[0];
} }
return results; return results;
} }