12.10.1-2 baseline
Former-commit-id:dde1f4c54d
[formerly250f0ccac9
] [formerlydde1f4c54d
[formerly250f0ccac9
] [formerlya66f3f4b60
[formerly 3dab4c2eb757ceea21f4db5bb78e8b92767dd18c]]] Former-commit-id:a66f3f4b60
Former-commit-id:ec74f638e5
[formerly34d2ddee9d
] Former-commit-id:cc3c3dadee
This commit is contained in:
parent
a924a8347a
commit
5684a84a46
15 changed files with 326 additions and 133 deletions
|
@ -1749,7 +1749,7 @@ class FWS_Overrides:
|
|||
# Add a "custom" component to sample data from current time
|
||||
# to product start time
|
||||
ct = self._issuanceInfo.issueTime()
|
||||
currentTime = AbsTime.AbsTimeYMD(ct.year, ct.month, ct.day,
|
||||
currentTime = AbsTime.absTimeYMD(ct.year, ct.month, ct.day,
|
||||
ct.hour)
|
||||
productStart = self._issuanceInfo.timeRange().startTime()
|
||||
tr = TimeRange.TimeRange(currentTime, productStart)
|
||||
|
@ -3928,6 +3928,8 @@ in the future. *|''' % self._timeLabel
|
|||
elif rank == hiRank and subkey.wxType() != "T":
|
||||
coKey = subkey
|
||||
coRank = rank
|
||||
if hiRank == -1:
|
||||
return ""
|
||||
keyAttrs = hiKey.attributes()
|
||||
keyType = hiKey.wxType()
|
||||
if coRank == hiRank:
|
||||
|
|
|
@ -20,13 +20,52 @@
|
|||
-->
|
||||
<DerivedParameter abbreviation="wx" name="Weather" unit="">
|
||||
<Method name="LinTrans" models="modelsounding">
|
||||
<Field abbreviation="rainType"/>
|
||||
<ConstantField value="1"/>
|
||||
<Field abbreviation="frzgRainTyp"/>
|
||||
<ConstantField value="2"/>
|
||||
<Field abbreviation="iceTyp"/>
|
||||
<ConstantField value="4"/>
|
||||
<Field abbreviation="snowTyp"/>
|
||||
<ConstantField value="8"/>
|
||||
<Field abbreviation="rainType" />
|
||||
<ConstantField value="1" />
|
||||
<Field abbreviation="frzgRainTyp" />
|
||||
<ConstantField value="2" />
|
||||
<Field abbreviation="iceTyp" />
|
||||
<ConstantField value="4" />
|
||||
<Field abbreviation="snowTyp" />
|
||||
<ConstantField value="8" />
|
||||
</Method>
|
||||
<Method name="Mapping" models="HPCGuide AK-HPCGuide" levels="Surface">
|
||||
<Field level="Surface" abbreviation="wxType" />
|
||||
<ConstantField value="1" />
|
||||
<ConstantField value="168" />
|
||||
|
||||
<ConstantField value="2" />
|
||||
<ConstantField value="168" />
|
||||
|
||||
<ConstantField value="3" />
|
||||
<ConstantField value="168" />
|
||||
|
||||
<ConstantField value="4" />
|
||||
<ConstantField value="41" />
|
||||
|
||||
<ConstantField value="5" />
|
||||
<ConstantField value="41" />
|
||||
|
||||
<ConstantField value="6" />
|
||||
<ConstantField value="41" />
|
||||
|
||||
<ConstantField value="7" />
|
||||
<ConstantField value="47" />
|
||||
|
||||
<ConstantField value="8" />
|
||||
<ConstantField value="47" />
|
||||
|
||||
<ConstantField value="9" />
|
||||
<ConstantField value="47" />
|
||||
|
||||
<ConstantField value="10" />
|
||||
<ConstantField value="164" />
|
||||
|
||||
<ConstantField value="11" />
|
||||
<ConstantField value="164" />
|
||||
|
||||
<ConstantField value="12" />
|
||||
<ConstantField value="164" />
|
||||
|
||||
</Method>
|
||||
</DerivedParameter>
|
|
@ -56,6 +56,7 @@ import com.raytheon.viz.gfe.textformatter.TextProductManager;
|
|||
* 2 SEP 2011 10654 gzhou Delete running/pending task and close tab.
|
||||
* 23 MAY 2012 14859 ryu Select VTEC formatting in practice mode
|
||||
* based on VTECMessageType setting.
|
||||
* 10 AUG 2012 15178 mli Add autoWrite and autoStore capability
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -642,6 +643,9 @@ public class ProductAreaComp extends Composite implements
|
|||
if (productText != null) {
|
||||
productEditorComp.retrieveActiveVTEC();
|
||||
productEditorComp.setProductText(productText);
|
||||
|
||||
// handle autoWrite and autoStore...
|
||||
productEditorComp.doAutoStuff();
|
||||
}
|
||||
|
||||
productEditorBtn.setSelection(true);
|
||||
|
|
|
@ -34,6 +34,7 @@ import java.text.SimpleDateFormat;
|
|||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Calendar;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
|
@ -135,6 +136,8 @@ import com.raytheon.viz.gfe.product.TextDBUtil;
|
|||
* 27 AUG 2010 6730 jnjanga Port FixVTEC functionality from A1.
|
||||
* 21 SEP 2010 5817 jnjanga Fix attribution phrase append from issuance to issuance.
|
||||
* 27 OCT 2010 5817 jnjanga Fix N.P.E caused when call getVTECActionCodes on non VTEC products.
|
||||
* 31 AUG 2012 15178 mli Add autoWrite and autoStore capability
|
||||
* 31 AUG 2012 15037 mli Handle bad characters in text formatter definition
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -312,6 +315,9 @@ public class ProductEditorComp extends Composite implements
|
|||
|
||||
private TimeZone localTimeZone;
|
||||
|
||||
private enum Action {
|
||||
STORE, TRANSMIT, AUTOSTORE };
|
||||
|
||||
/**
|
||||
* Product transmission callback to report the state of transmitting a
|
||||
* product.
|
||||
|
@ -418,12 +424,12 @@ public class ProductEditorComp extends Composite implements
|
|||
}
|
||||
|
||||
if (!editorCorrectionMode) {
|
||||
wmoId = (String) productDefinition.get("wmoID");
|
||||
pil = (String) productDefinition.get("pil");
|
||||
productId = (String) productDefinition.get("awipsWANPil");
|
||||
textdbPil = (String) productDefinition.get("textdbPil");
|
||||
fullStationId = (String) productDefinition.get("fullStationID");
|
||||
autoSendAddress = (String) productDefinition.get("autoSendAddress");
|
||||
wmoId = getDefString("wmoID");
|
||||
pil = getDefString("pil");
|
||||
productId = getDefString("awipsWANPil");
|
||||
textdbPil = getDefString("textdbPil");
|
||||
fullStationId = getDefString("fullStationID");
|
||||
autoSendAddress = getDefString("autoSendAddress");
|
||||
if (autoSendAddress == null) {
|
||||
autoSendAddress = "000";
|
||||
}
|
||||
|
@ -635,7 +641,7 @@ public class ProductEditorComp extends Composite implements
|
|||
storeMI.addSelectionListener(new SelectionAdapter() {
|
||||
@Override
|
||||
public void widgetSelected(SelectionEvent event) {
|
||||
displayStoreTransmitDialog(true);
|
||||
storeTransmit(Action.STORE);
|
||||
}
|
||||
});
|
||||
menuItems.add(storeMI);
|
||||
|
@ -648,7 +654,7 @@ public class ProductEditorComp extends Composite implements
|
|||
transmitMI.addSelectionListener(new SelectionAdapter() {
|
||||
@Override
|
||||
public void widgetSelected(SelectionEvent event) {
|
||||
displayStoreTransmitDialog(false);
|
||||
storeTransmit(Action.TRANSMIT);
|
||||
}
|
||||
});
|
||||
menuItems.add(transmitMI);
|
||||
|
@ -944,7 +950,7 @@ public class ProductEditorComp extends Composite implements
|
|||
transmitBtn.addSelectionListener(new SelectionAdapter() {
|
||||
@Override
|
||||
public void widgetSelected(SelectionEvent event) {
|
||||
displayStoreTransmitDialog(false);
|
||||
storeTransmit(Action.TRANSMIT);
|
||||
}
|
||||
});
|
||||
buttons.add(transmitBtn);
|
||||
|
@ -1029,13 +1035,14 @@ public class ProductEditorComp extends Composite implements
|
|||
}
|
||||
|
||||
/**
|
||||
* Display the Store to Transmit dialog.
|
||||
* Store or Transmit text product.
|
||||
*
|
||||
* @param showStore
|
||||
* If true show the Store dialog, false shows the Transmit
|
||||
* dialog.
|
||||
* @param action
|
||||
* STORE: show the Store dialog
|
||||
* TRANSMITT: shows the Transmit dialog.
|
||||
* AUTOSTORE: implement autoStore
|
||||
*/
|
||||
private void displayStoreTransmitDialog(boolean showStore) {
|
||||
private void storeTransmit(Action action) {
|
||||
|
||||
ProductDataStruct pds = textComp.getProductDataStruct();
|
||||
|
||||
|
@ -1060,6 +1067,20 @@ public class ProductEditorComp extends Composite implements
|
|||
}
|
||||
|
||||
if (fixText()) {
|
||||
|
||||
// autoStore
|
||||
if (action == Action.AUTOSTORE) {
|
||||
if (testVTEC) {
|
||||
devStore(textdbPil.substring(3));
|
||||
} else {
|
||||
TextDBUtil.storeProduct(textdbPil, getProductText(), testVTEC);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Store/transmit...
|
||||
boolean showStore = (action == Action.STORE) ? true : false;
|
||||
StoreTransmitDlg storeDlg = new StoreTransmitDlg(parent.getShell(),
|
||||
showStore, this, transmissionCB);
|
||||
String pid;
|
||||
|
@ -2228,10 +2249,68 @@ public class ProductEditorComp extends Composite implements
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* handle autoWrite, autoStore
|
||||
*/
|
||||
public void doAutoStuff() {
|
||||
int autoWrite = 0;
|
||||
Object autoWrite_obj = productDefinition.get("autoWrite");
|
||||
if (autoWrite_obj != null)
|
||||
autoWrite = (Integer)autoWrite_obj;
|
||||
|
||||
int autoStore = 0;
|
||||
Object autoStore_obj = productDefinition.get("autoStore");
|
||||
if (autoStore_obj != null)
|
||||
autoStore = (Integer)autoStore_obj;
|
||||
|
||||
if (autoWrite == 1) {
|
||||
autoWrite();
|
||||
}
|
||||
|
||||
if (autoStore == 1) {
|
||||
storeTransmit(Action.AUTOSTORE);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* autoWrite
|
||||
*/
|
||||
private void autoWrite() {
|
||||
String fname = null;
|
||||
if (productDefinition.get("outputFile") != null) {
|
||||
fname = getDefString("outputFile");
|
||||
if (fname.equals(EMPTY)) return;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
fname = fixfname(fname);
|
||||
|
||||
try {
|
||||
ProductFileUtil.writeFile(getProductText(), new File(
|
||||
fname));
|
||||
} catch (IOException e) {
|
||||
MessageBox mb = new MessageBox(parent.getShell(), SWT.OK
|
||||
| SWT.ICON_WARNING);
|
||||
mb.setText("Formatter AutoWrite failed: " + this.pil);
|
||||
mb.open();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Replace {prddir} with siteConfig.GFESUITE_PRDDIR if applicable.
|
||||
*/
|
||||
private String fixfname(String fname) {
|
||||
if (fname.contains("{prddir}"))
|
||||
fname = fname.replace("{prddir}", prdDir);
|
||||
|
||||
return fname;
|
||||
}
|
||||
|
||||
private String guessFilename() {
|
||||
if (productDefinition.get("outputFile") != null) {
|
||||
String basename = new File(
|
||||
(String) productDefinition.get("outputFile")).getName();
|
||||
getDefString("outputFile")).getName();
|
||||
return basename;
|
||||
} else {
|
||||
return guessTDBPil();
|
||||
|
@ -2356,7 +2435,7 @@ public class ProductEditorComp extends Composite implements
|
|||
|
||||
if (!HazardCTA && !GenericCTA && !ProductCTA) {
|
||||
String[] Sig = new String[1];
|
||||
String pil = (String) productDefinition.get("pil");
|
||||
String pil = getDefString("pil");
|
||||
if (pil != null) {
|
||||
Sig[0] = pil.substring(0, 3);
|
||||
ProductCTA = true;
|
||||
|
@ -2643,8 +2722,8 @@ public class ProductEditorComp extends Composite implements
|
|||
List<String> pils = VTECTableChangeNotification.DisableTable.get(pil);
|
||||
String brained = null;
|
||||
boolean allFound = false;
|
||||
String sid = (String) productDefinition.get("fullStationID");
|
||||
String pil = (String) productDefinition.get("pil");
|
||||
String sid = getDefString("fullStationID");
|
||||
String pil = getDefString("pil");
|
||||
if (pil != null) {
|
||||
pil = pil.substring(0, 3);
|
||||
|
||||
|
@ -2873,4 +2952,21 @@ public class ProductEditorComp extends Composite implements
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Handle bad characters in text formatter definition.
|
||||
*/
|
||||
private String getDefString(String key) {
|
||||
String str = null;
|
||||
|
||||
Object obj = productDefinition.get(key);
|
||||
if (obj != null && obj instanceof Collection ) {
|
||||
Collection<?> collection = (Collection<?>) obj;
|
||||
str = (String)(collection.toArray())[0];
|
||||
} else {
|
||||
str = (String) productDefinition.get(key);
|
||||
}
|
||||
|
||||
return str;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -53,6 +53,7 @@
|
|||
<vbSource key="UKMET-NorthernHemisphere" category="Volume" />
|
||||
<vbSource key="radar" name="Radar" category="Volume" />
|
||||
<vbSource key="MOSGuide-AK" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
<vbSource key="AK-HPCGuide" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
<vbSource key="AK-NamDNG5" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
<vbSource key="AK-NICICE" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
<vbSource key="AK-RTMA" category="SfcGrid" views="PLANVIEW TIMESERIES" />
|
||||
|
|
|
@ -120,6 +120,7 @@ import com.vividsolutions.jts.geom.Polygon;
|
|||
* Jul 10, 2012 #15099 Qinglu Lin Add updatePolygon() and apply it in xxxSelected methods.
|
||||
* Jul 26, 2012 #15227 Qinglu Lin Added removeDuplicateVertices(), removeOverlaidSegments(),
|
||||
* adjustLatLon(), etc.
|
||||
* Sep 05, 2012 DR 15261 D. Friedman Prevent additional counties from being selected for EXPs
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -1904,7 +1905,7 @@ public class WarngenDialog extends CaveSWTDialog implements
|
|||
}
|
||||
|
||||
updatePolygon(newWarn);
|
||||
|
||||
warngenLayer.setOldWarningPolygon(newWarn);
|
||||
setTimesFromFollowup(newWarn.getStartTime().getTime(), newWarn
|
||||
.getEndTime().getTime());
|
||||
try {
|
||||
|
|
|
@ -345,11 +345,13 @@ class IscMosaic:
|
|||
self.__myOfficeType = IFPServerConfigManager.getServerConfig(DatabaseID(self.__databaseID).getSiteId()).officeType()
|
||||
|
||||
#process each input file
|
||||
self.__areaMask = None
|
||||
|
||||
for i in range(0, self.__inFiles.size()):
|
||||
self.__areaMask = None
|
||||
self.__processInputFile(str(self.__inFiles.get(i)))
|
||||
|
||||
if self.__deleteInput:
|
||||
os.remove(str(self.__inFiles.get(i)))
|
||||
|
||||
self.logEvent("iscMosaic Finished")
|
||||
|
||||
def __processInputFile(self, filename):
|
||||
|
@ -532,6 +534,7 @@ class IscMosaic:
|
|||
minV = self.__dbwe.getGpi().getMinValue()
|
||||
# compute the site mask
|
||||
self.__siteID = str(getattr(vars[0], "siteID"))
|
||||
|
||||
if self.__areaMask is None:
|
||||
self.__areaMask = self.__computeAreaMask().getGrid().__numpy__[0]
|
||||
|
||||
|
@ -968,6 +971,7 @@ class IscMosaic:
|
|||
elif self.__altMask is not None:
|
||||
try:
|
||||
areaMask = iscUtil.getEditArea(self.__altMask, self.__mysite)
|
||||
areaMask.setGloc(self.__dbwe.getGpi().getGridLoc())
|
||||
except:
|
||||
self.logProblem("Unable to access edit mask [",
|
||||
self.__altMask, "]", traceback.format_exc())
|
||||
|
|
|
@ -2194,8 +2194,8 @@
|
|||
</model>
|
||||
|
||||
<model>
|
||||
<title>HPCGuide-AK</title>
|
||||
<name>HPCGuide-AK</name>
|
||||
<title>AK-HPCGuide</title>
|
||||
<name>AK-HPCGuide</name>
|
||||
<center>7</center>
|
||||
<subcenter>5</subcenter>
|
||||
<grid>198</grid>
|
||||
|
@ -2206,6 +2206,20 @@
|
|||
<dt>6</dt>
|
||||
</model>
|
||||
|
||||
<model>
|
||||
<title>AK-HPCGuide</title>
|
||||
<name>AK-HPCGuide</name>
|
||||
<center>7</center>
|
||||
<subcenter>5</subcenter>
|
||||
<grid>198</grid>
|
||||
<process>
|
||||
<id>0</id>
|
||||
</process>
|
||||
<paramInfo>hpcGuideNDFD</paramInfo>
|
||||
<dt>6</dt>
|
||||
</model>
|
||||
|
||||
|
||||
<model>
|
||||
<title>HPC</title>
|
||||
<name>HPCqpfNDFD</name>
|
||||
|
@ -2219,18 +2233,6 @@
|
|||
<dt>6</dt>
|
||||
</model>
|
||||
|
||||
<model>
|
||||
<title>HPC-MODEL0</title>
|
||||
<name>HPC-MODEL0</name>
|
||||
<center>7</center>
|
||||
<subcenter>5</subcenter>
|
||||
<grid>198</grid>
|
||||
<process>
|
||||
<id>0</id>
|
||||
</process>
|
||||
<paramInfo></paramInfo>
|
||||
<dt>6</dt>
|
||||
</model>
|
||||
|
||||
<!-- END SUBCENTER 5: HYDROMETEROLOGICAL PREDICTION CENTER -->
|
||||
|
||||
|
|
|
@ -115,13 +115,13 @@
|
|||
</gribParameterInfo>
|
||||
<gribParameterInfo xsi:type="parameterInfo"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<short_name>wx</short_name>
|
||||
<short_name>wxType</short_name>
|
||||
<long_name>Weather</long_name>
|
||||
<units></units>
|
||||
<udunits></udunits>
|
||||
<uiname>Weather</uiname>
|
||||
<valid_range>0.0</valid_range>
|
||||
<valid_range>10.0</valid_range>
|
||||
<valid_range>12.0</valid_range>
|
||||
<fillValue>-99999.0</fillValue>
|
||||
<n3D>0</n3D>
|
||||
<levels>SFC</levels>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Product Discipline 0: Meteorological products, Parameter Category 1: Moisture
|
||||
#192-254 Reserved for local use
|
||||
192:192:Categorical Rain::CRAIN
|
||||
192:192:Weather::wxType
|
||||
193:193:Categorical Freezing Rain::CFRZR
|
||||
194:194:Categorical Ice Pellets::CICEP
|
||||
195:195:Categorical Snow::CSNOW
|
||||
|
|
|
@ -71,6 +71,7 @@ import com.vividsolutions.jts.io.WKTWriter;
|
|||
* ------------ ---------- ----------- --------------------------
|
||||
* 06/22/09 2152 D. Hladky Initial release
|
||||
* 06/18/12 DR 15108 G. Zhang Fix County FIPS 4-digit issue
|
||||
* 09/05/12 DR 15164 G. Zhang Fix FFMP Table county/state name null issue
|
||||
* </pre>
|
||||
*
|
||||
* @author dhladky
|
||||
|
@ -468,8 +469,10 @@ public class FFMPUtils {
|
|||
*/
|
||||
public static FFMPCounty getCounty(Long pfaf, String mode) {
|
||||
|
||||
String ftxt = (pfaf>=10000 ? ""+pfaf : "0"+pfaf);// DR 15164
|
||||
|
||||
String sql = "SELECT county.countyname, county.state FROM "
|
||||
+ " mapdata.county WHERE county.fips = '" + pfaf + "'";
|
||||
+ " mapdata.county WHERE county.fips = '" + ftxt/*pfaf*/ + "'";// DR 15164
|
||||
|
||||
ISpatialQuery sq = null;
|
||||
FFMPCounty county = new FFMPCounty();
|
||||
|
|
|
@ -42,6 +42,21 @@ import com.raytheon.uf.common.monitor.xml.SourceXML;
|
|||
import com.raytheon.uf.common.serialization.SerializationException;
|
||||
import com.raytheon.uf.common.serialization.SerializationUtil;
|
||||
|
||||
|
||||
/**
|
||||
* FFMPRunConfigurationManager
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* 2012-09-04 DR 14404 gzhang Fixing ConcurrentModificationException
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
*/
|
||||
|
||||
public class FFMPRunConfigurationManager implements ILocalizationFileObserver {
|
||||
|
||||
/** Path to FFMP Source config. */
|
||||
|
@ -57,7 +72,8 @@ public class FFMPRunConfigurationManager implements ILocalizationFileObserver {
|
|||
|
||||
private LocalizationFile lf = null;
|
||||
|
||||
private ArrayList<MonitorConfigListener> listeners = new ArrayList<MonitorConfigListener>();
|
||||
private java.util.concurrent.CopyOnWriteArrayList<MonitorConfigListener> listeners = new java.util.concurrent.CopyOnWriteArrayList<MonitorConfigListener>();// DR 14404
|
||||
//private ArrayList<MonitorConfigListener> listeners = new ArrayList<MonitorConfigListener>();// DR 14404
|
||||
|
||||
/** Singleton instance of this class */
|
||||
private static FFMPRunConfigurationManager instance = new FFMPRunConfigurationManager();
|
||||
|
@ -259,11 +275,11 @@ public class FFMPRunConfigurationManager implements ILocalizationFileObserver {
|
|||
try {
|
||||
readConfigXml();
|
||||
// inform listeners
|
||||
synchronized (listeners) {
|
||||
//synchronized (listeners) {// DR 14404
|
||||
for (MonitorConfigListener fl : listeners) {
|
||||
fl.configChanged(new MonitorConfigEvent(this));
|
||||
}
|
||||
}
|
||||
//}// DR 14404
|
||||
} catch (SerializationException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
|
|
@ -38,6 +38,20 @@ import com.raytheon.uf.common.monitor.xml.SourceXML;
|
|||
import com.raytheon.uf.common.serialization.SerializationException;
|
||||
import com.raytheon.uf.common.serialization.SerializationUtil;
|
||||
|
||||
/**
|
||||
* FFMPSourceConfigurationManager
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* 2012-09-04 DR 14404 gzhang Fixing ConcurrentModificationException
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
*/
|
||||
|
||||
public class FFMPSourceConfigurationManager implements
|
||||
ILocalizationFileObserver {
|
||||
|
||||
|
@ -65,7 +79,8 @@ public class FFMPSourceConfigurationManager implements
|
|||
|
||||
private LocalizationFile lf = null;
|
||||
|
||||
private ArrayList<MonitorConfigListener> listeners = new ArrayList<MonitorConfigListener>();
|
||||
private java.util.concurrent.CopyOnWriteArrayList<MonitorConfigListener> listeners = new java.util.concurrent.CopyOnWriteArrayList<MonitorConfigListener>();// DR 14404
|
||||
//private ArrayList<MonitorConfigListener> listeners = new ArrayList<MonitorConfigListener>();// DR 14404
|
||||
|
||||
/* Private Constructor */
|
||||
private FFMPSourceConfigurationManager() {
|
||||
|
@ -481,11 +496,11 @@ public class FFMPSourceConfigurationManager implements
|
|||
if (message.getFileName().equals(CONFIG_FILE_NAME)) {
|
||||
readConfigXml();
|
||||
// inform listeners
|
||||
synchronized (listeners) {
|
||||
//synchronized (listeners) {// DR 14404
|
||||
for (MonitorConfigListener fl : listeners) {
|
||||
fl.configChanged(new MonitorConfigEvent(this));
|
||||
}
|
||||
}
|
||||
//}// DR 14404
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -154,83 +154,21 @@ else
|
|||
site=$(echo ${1} | tr '[A-Z]' '[a-z]')
|
||||
fi
|
||||
|
||||
IFPS_DATA="/awips2/GFESuite/ServiceBackup/data"
|
||||
GFESUITE_BIN="/awips2/GFESuite/bin"
|
||||
|
||||
################################################################################
|
||||
# Configuration Section #
|
||||
################################################################################
|
||||
|
||||
### Work Directory for Netcdf files. ###
|
||||
DXwrkDir=$IFPS_DATA/rsyncGridsToCWF # must be a non-nas1 drive with enough space
|
||||
if [ ! -d ${DXwrkDir} ] ;then
|
||||
mkdir -p ${DXwrkDir}
|
||||
chmod 777 ${DXwrkDir}
|
||||
chown awips:fxalpha ${DXwrkDir}
|
||||
IFPS_DATA="/awips2/GFESuite/ServiceBackup/data"
|
||||
|
||||
if [ ! -f ${IFPS_DATA}/rsync_parms.${site} ] ;then
|
||||
echo "${IFPS_DATA}/rsync_parms.${site} does not exist!"
|
||||
echo "Please contact your ITO to create this file from /awips2/GFESuite/bin/rsync_parms.ccc"
|
||||
exit
|
||||
else
|
||||
. ${IFPS_DATA}/rsync_parms.${site}
|
||||
fi
|
||||
|
||||
### Turn On/Off certain script functionality. ###
|
||||
QCnetCDF="no" # Do you want the netCDF file checked before
|
||||
# it is rsynced? This takes 5-15 minutes to
|
||||
# complete depending on size of domain.
|
||||
# *** Leave "no" for AWIPS 2. QC doesn't work ***
|
||||
|
||||
checkCWFavailability="no" # Do you want the script to check to see if
|
||||
# the netcdf file made it to the Consolidated
|
||||
# web farm?
|
||||
|
||||
### Banner notification configuration ###
|
||||
SendQCgoodNotification="no" # Tell forecaster that netcdf file passed
|
||||
# QC check.
|
||||
|
||||
sendCWFnotification="no" # Tell forecaster when netcdf rsync complete
|
||||
# to the consolidated web farm.
|
||||
|
||||
turnOffAllNotifications="yes" # This will turn off all banner messages.
|
||||
|
||||
### new ldad configuration ###
|
||||
locServer="ldad@ls1" # Name of local rsync server.
|
||||
locDirectory="/data/ldad/grid" # Directory where grids are stored on the
|
||||
# local rsync server. Note that file will be
|
||||
# stored in $site sub directory.
|
||||
locRsyncSwitches="--address=192.168.1.10" # Needed to fix a noaanet rysnc problem.
|
||||
|
||||
# Consolidated web farm
|
||||
remServer1="sync.weather.gov" # Name of remote rsync server.
|
||||
remDirectory1="netcdf-wfo" # Directory where grids are stored on the
|
||||
# remote rsync server.
|
||||
|
||||
# Edit area to limit the portion of the grid domain to send to the webfarms.
|
||||
mask=ISC_Send_Area
|
||||
|
||||
# Parameter list for the netcdf file
|
||||
parmlist="" #send all parameters
|
||||
. ${IFPS_DATA}/rsync_parms.${site}
|
||||
|
||||
creationAttempts=3 # How many times do you want script to create and
|
||||
# quality control netcdf files if bad netcdf files
|
||||
# are detected?
|
||||
|
||||
rsyncWait=30 # Minutes to wait for free rsync connection.
|
||||
CWFcheckWait=360 # Delay in seconds to wait to check to see if file made it
|
||||
# to the consolidated web farm.
|
||||
|
||||
iscMosaicDelay=0.0 # Delay of 0.0 causes GFE pauses.
|
||||
|
||||
probAlertNum=1 # Guardian alert level when problems occur.
|
||||
|
||||
# Email notification configuration
|
||||
sendEmailNotification="no" # Do you want to send email notification of grids are not sent?
|
||||
emailAddress1=""
|
||||
emailAddress2=""
|
||||
emailAddress3=""
|
||||
|
||||
################################################################################
|
||||
# Set some paths
|
||||
WRKDIR="${DXwrkDir}/data"
|
||||
FXA_BIN="/awips2/fxa/bin"
|
||||
CDSHOST="ec"
|
||||
CDSPORT="9581"
|
||||
|
||||
# set current data and log file name
|
||||
currdate=$(date -u +%Y%m%d)
|
||||
|
@ -278,6 +216,8 @@ else
|
|||
echo "Will send all elements" >> $LOG_FILE
|
||||
fi
|
||||
|
||||
echo "Using grid domain $mask" >> $LOG_FILE
|
||||
|
||||
# Determine the ifpnetCDF start and end times.
|
||||
start_time=$(date +%Y%m%d_%H00 -d "6 hours ago")
|
||||
end_time=$(date +%Y%m%d_%H00 -d "192 hours")
|
||||
|
|
|
@ -1,8 +1,78 @@
|
|||
# Configuration file for rsyncGridsToCWF.sh
|
||||
|
||||
GFESUITE_BIN="/awips2/GFESuite/bin"
|
||||
|
||||
### Work Directory for Netcdf files. ###
|
||||
DXwrkDir=$IFPS_DATA/rsyncGridsToCWF # must be a non-nas1 drive with enough space
|
||||
if [ ! -d ${DXwrkDir} ] ;then
|
||||
mkdir -p ${DXwrkDir}
|
||||
chmod 777 ${DXwrkDir}
|
||||
chown awips:fxalpha ${DXwrkDir}
|
||||
fi
|
||||
|
||||
### Turn On/Off certain script functionality. ###
|
||||
QCnetCDF="no" # Do you want the netCDF file checked before
|
||||
# it is rsynced? This takes 5-15 minutes to
|
||||
# complete depending on size of domain.
|
||||
# *** Leave "no" for AWIPS 2. QC doesn't work ***
|
||||
|
||||
checkCWFavailability="no" # Do you want the script to check to see if
|
||||
# the netcdf file made it to the Consolidated
|
||||
# web farm?
|
||||
|
||||
### Banner notification configuration ###
|
||||
SendQCgoodNotification="no" # Tell forecaster that netcdf file passed
|
||||
# QC check.
|
||||
|
||||
sendCWFnotification="no" # Tell forecaster when netcdf rsync complete
|
||||
# to the consolidated web farm.
|
||||
|
||||
turnOffAllNotifications="yes" # This will turn off all banner messages.
|
||||
|
||||
### new ldad configuration ###
|
||||
locServer="ldad@ls1" # Name of local rsync server.
|
||||
locDirectory="/data/ldad/grid" # Directory where grids are stored on the
|
||||
# local rsync server. Note that file will be
|
||||
# stored in $site sub directory.
|
||||
locRsyncSwitches="--address=192.168.1.10" # Needed to fix a noaanet rysnc problem.
|
||||
|
||||
# Consolidated web farm
|
||||
remServer1="sync.weather.gov" # Name of remote rsync server.
|
||||
remDirectory1="netcdf-wfo" # Directory where grids are stored on the
|
||||
# remote rsync server.
|
||||
|
||||
# Edit area to limit the portion of the grid domain to send to the webfarms.
|
||||
mask=ISC_Send_Area
|
||||
|
||||
# Parameter list for the netcdf file
|
||||
# Example: parmlist1="-p ClearIndex -p MaxT"
|
||||
parmlist1=""
|
||||
parmlist2=""
|
||||
parmlist3=""
|
||||
parmlist1="-p MaxT -p MinT -p MaxRH -p MinRH -p T -p Td -p RH -p WindChill -p HeatIndex -p ApparentT"
|
||||
parmlist2="-p PoP -p PoP12 -p Sky -p Wx -p Hazards -p SnowLevel -p QPF -p SnowAmt -p IceAccum -p Wind -p WindGust"
|
||||
parmlist3="-p ClearIndex -p FreeWind -p LAL -p Haines -p MixHgt -p VentRate -p TransWind -p Wind20ft -p CLRIndx"
|
||||
parmlist5=""
|
||||
parmlist6=""
|
||||
parmlist="$parmlist1 $parmlist2 $parmlist3 $parmlist4 $parmlist5 $parmlist6"
|
||||
parmlist="" #uncomment to send all parameters
|
||||
|
||||
creationAttempts=3 # How many times do you want script to create and
|
||||
# quality control netcdf files if bad netcdf files
|
||||
# are detected?
|
||||
|
||||
rsyncWait=30 # Minutes to wait for free rsync connection.
|
||||
CWFcheckWait=360 # Delay in seconds to wait to check to see if file made it
|
||||
# to the consolidated web farm.
|
||||
|
||||
iscMosaicDelay=0.0 # Delay of 0.0 causes GFE pauses.
|
||||
|
||||
probAlertNum=1 # Guardian alert level when problems occur.
|
||||
|
||||
# Email notification configuration
|
||||
sendEmailNotification="no" # Do you want to send email notification of grids are not sent?
|
||||
emailAddress1=""
|
||||
emailAddress2=""
|
||||
emailAddress3=""
|
||||
|
||||
# Set some paths
|
||||
WRKDIR="${DXwrkDir}/data"
|
||||
FXA_BIN="/awips2/fxa/bin"
|
||||
CDSHOST="ec"
|
||||
CDSPORT="9581"
|
||||
|
|
Loading…
Add table
Reference in a new issue