Merge branch 'master_14.1.1' into omaha_14.1.1
Conflicts: nativeLib/files.native/files.native.ecl nativeLib/ncep_grib2module/.cproject nativeLib/rary.cots.g2clib/.project nativeLib/rary.cots.g2clib/g2_unpack3.c rpms/awips2.core/Installer.python/component.spec rpms/awips2.core/Installer.python/nativeLib/x86_64/grib2.so rpms/awips2.core/Installer.python/nativeLib/x86_64/libjasper.so rpms/awips2.core/Installer.python/nativeLib/x86_64/libjasper.so.1 Former-commit-id:665911b033
[formerly665911b033
[formerly 412bcb0f21b7385a170d14b3a88dd67c91a301a2]] Former-commit-id:c76c856340
Former-commit-id:0954490a5a
This commit is contained in:
commit
6e08dc72c0
784 changed files with 4318 additions and 905 deletions
|
@ -52,7 +52,7 @@
|
||||||
<resourceData xsi:type="plotResourceData" plotSource="METAR Plot"
|
<resourceData xsi:type="plotResourceData" plotSource="METAR Plot"
|
||||||
plotModelFile="stdObsDesign.svg" spiFile="basemaps/MTR.spi"
|
plotModelFile="stdObsDesign.svg" spiFile="basemaps/MTR.spi"
|
||||||
isUpdatingOnMetadataOnly="true" retrieveData="false"
|
isUpdatingOnMetadataOnly="true" retrieveData="false"
|
||||||
isRequeryNecessaryOnTimeMatch="true" pixelSizeHint="45">
|
isRequeryNecessaryOnTimeMatch="true" isTopOfTheHour="true" pixelSizeHint="45">
|
||||||
<binOffset posOffset="1800" negOffset="1800" virtualOffset="0"/>
|
<binOffset posOffset="1800" negOffset="1800" virtualOffset="0"/>
|
||||||
<metadataMap>
|
<metadataMap>
|
||||||
<mapping key="reportType">
|
<mapping key="reportType">
|
||||||
|
|
|
@ -46,6 +46,7 @@
|
||||||
# Cleaned up some constants
|
# Cleaned up some constants
|
||||||
# Jun 21, 2013 14983 ryu Fixed encodeEditArea() to evaluate query
|
# Jun 21, 2013 14983 ryu Fixed encodeEditArea() to evaluate query
|
||||||
# when necessary
|
# when necessary
|
||||||
|
# Oct 07, 2013 2424 randerso remove use of pytz
|
||||||
#
|
#
|
||||||
########################################################################
|
########################################################################
|
||||||
import types, string, time, sys
|
import types, string, time, sys
|
||||||
|
@ -1479,14 +1480,14 @@ class SmartScript(BaseTool.BaseTool):
|
||||||
|
|
||||||
This should be used instead of time.localtime()
|
This should be used instead of time.localtime()
|
||||||
'''
|
'''
|
||||||
from pytz import timezone
|
import dateutil.tz
|
||||||
|
|
||||||
if tz is None:
|
if tz is None:
|
||||||
tzname = self.__dataMgr.getClient().getSiteTimeZone()
|
tzname = self.__dataMgr.getClient().getSiteTimeZone()
|
||||||
tz = timezone(tzname)
|
tz = dateutil.tz.gettz(tzname)
|
||||||
|
|
||||||
utczone = timezone('UTC')
|
utczone = dateutil.tz.gettz('UTC')
|
||||||
gmdt = utczone.localize(self._gmtime(date))
|
gmdt = self._gmtime(date).replace(tzinfo=utczone)
|
||||||
tzdt = gmdt.astimezone(tz)
|
tzdt = gmdt.astimezone(tz)
|
||||||
return tzdt
|
return tzdt
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,6 @@ FINT=
|
||||||
FLINE=
|
FLINE=
|
||||||
HILO=
|
HILO=
|
||||||
HLSYM=
|
HLSYM=
|
||||||
CLRBAR=0
|
|
||||||
WIND=
|
WIND=
|
||||||
TITLE=5/-1/~ 1000-500 MB THICKNESS!0
|
TITLE=5/-1/~ 1000-500 MB THICKNESS!0
|
||||||
COLORS=2
|
COLORS=2
|
||||||
|
|
0
cave/com.raytheon.uf.viz.npp/com.raytheon.uf.viz.npp.ecl
Normal file
0
cave/com.raytheon.uf.viz.npp/com.raytheon.uf.viz.npp.ecl
Normal file
0
cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/climatology/CigVisByHourTabComp.java
Executable file → Normal file
0
cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/climatology/CigVisByHourTabComp.java
Executable file → Normal file
|
@ -349,19 +349,7 @@ public class PlotResource2 extends
|
||||||
plots.put(normTime, list);
|
plots.put(normTime, list);
|
||||||
}
|
}
|
||||||
list.add(info);
|
list.add(info);
|
||||||
|
|
||||||
// Sort this data in "backwards" so that the most recent observation
|
|
||||||
// for a particular station display correctly
|
|
||||||
Collections.sort(list, new Comparator<PlotInfo>() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int compare(PlotInfo o1, PlotInfo o2) {
|
|
||||||
return o1.dataTime.compareTo(o2.dataTime);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
Collections.reverse(list);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -373,6 +361,19 @@ public class PlotResource2 extends
|
||||||
DataTime time = entry.getKey();
|
DataTime time = entry.getKey();
|
||||||
List<PlotInfo> info = entry.getValue();
|
List<PlotInfo> info = entry.getValue();
|
||||||
FrameInformation frameInfo = frameMap.get(time);
|
FrameInformation frameInfo = frameMap.get(time);
|
||||||
|
|
||||||
|
// Sort this data in "backwards" so that the most recent observation
|
||||||
|
// for a particular station display correctly
|
||||||
|
if (info.size() > 1) {
|
||||||
|
Collections.sort(info, new Comparator<PlotInfo>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compare(PlotInfo o1, PlotInfo o2) {
|
||||||
|
return o2.dataTime.compareTo(o1.dataTime);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
if (frameInfo != null) {
|
if (frameInfo != null) {
|
||||||
Map<String, Station> stationMap = frameInfo.stationMap;
|
Map<String, Station> stationMap = frameInfo.stationMap;
|
||||||
for (PlotInfo plot : info) {
|
for (PlotInfo plot : info) {
|
||||||
|
|
|
@ -96,7 +96,8 @@ import com.raytheon.viz.ui.dialogs.ICloseCallback;
|
||||||
* 07/26/2012 15171 rferrel Disable editor's send and clear AFOS PIL fields when
|
* 07/26/2012 15171 rferrel Disable editor's send and clear AFOS PIL fields when
|
||||||
* invalid product Id and user want to edit it anyway.
|
* invalid product Id and user want to edit it anyway.
|
||||||
* 09/20/2012 1196 rferrel Changing dialogs being called to not block.
|
* 09/20/2012 1196 rferrel Changing dialogs being called to not block.
|
||||||
* 11/26/2012 14526 mgamazaychikov Added traverse listener for RETURN key
|
* 11/26/2012 14526 mgamazaychikov Added traverse listener for RETURN key
|
||||||
|
* 10/07/2012 16664 mgamazaychikov Added padProdDesignatorText method
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @author lvenable
|
* @author lvenable
|
||||||
|
@ -411,21 +412,7 @@ public class AWIPSHeaderBlockDlg extends CaveSWTDialog implements
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void focusLost(FocusEvent e) {
|
public void focusLost(FocusEvent e) {
|
||||||
StringBuilder sb = new StringBuilder(prodDesignatorTF.getText()
|
padProdDesignatorText(prodDesignatorTF.getText());
|
||||||
.trim());
|
|
||||||
if (sb.length() > 0) {
|
|
||||||
// Pad field with trailing spaces.
|
|
||||||
while (sb.length() < 3) {
|
|
||||||
sb.append(' ');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Only trigger the modification listener when there is a
|
|
||||||
// real change.
|
|
||||||
String value = sb.toString();
|
|
||||||
if (!value.equals(prodDesignatorTF.getText())) {
|
|
||||||
prodDesignatorTF.setText(value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -462,7 +449,23 @@ public class AWIPSHeaderBlockDlg extends CaveSWTDialog implements
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
protected void padProdDesignatorText(String prodDesignatorText) {
|
||||||
|
StringBuilder sb = new StringBuilder(prodDesignatorText.trim());
|
||||||
|
if (sb.length() > 0) {
|
||||||
|
// Pad field with trailing spaces.
|
||||||
|
while (sb.length() < 3) {
|
||||||
|
sb.append(' ');
|
||||||
|
}
|
||||||
|
// Only trigger the modification listener when there is a
|
||||||
|
// real change.
|
||||||
|
String value = sb.toString();
|
||||||
|
if (!value.equals(prodDesignatorText)) {
|
||||||
|
prodDesignatorTF.setText(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
* Create the addressee control fields.
|
* Create the addressee control fields.
|
||||||
*/
|
*/
|
||||||
private void createAddresseeFields() {
|
private void createAddresseeFields() {
|
||||||
|
@ -1041,6 +1044,7 @@ public class AWIPSHeaderBlockDlg extends CaveSWTDialog implements
|
||||||
@Override
|
@Override
|
||||||
public void keyTraversed(TraverseEvent event) {
|
public void keyTraversed(TraverseEvent event) {
|
||||||
if (event.detail == SWT.TRAVERSE_RETURN) {
|
if (event.detail == SWT.TRAVERSE_RETURN) {
|
||||||
|
padProdDesignatorText(prodDesignatorTF.getText());
|
||||||
enterBtnPressed();
|
enterBtnPressed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -73,6 +73,7 @@ import com.vividsolutions.jts.geom.prep.PreparedGeometryFactory;
|
||||||
* the call to removeIntersectedSeg() with a call to adjustVertex(); updated
|
* the call to removeIntersectedSeg() with a call to adjustVertex(); updated
|
||||||
* removeDuplicateCoordinate(), computeCoordinate(), adjustPolygon() prolog, and
|
* removeDuplicateCoordinate(), computeCoordinate(), adjustPolygon() prolog, and
|
||||||
* removeOverlaidLinesegments(); added alterVertexes() and calcShortestDistance().
|
* removeOverlaidLinesegments(); added alterVertexes() and calcShortestDistance().
|
||||||
|
* 10/01/2013 DR 16632 Qinglu Lin Fixed the bug in for loop range.
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @author mschenke
|
* @author mschenke
|
||||||
|
@ -1102,6 +1103,9 @@ public class PolygonUtil {
|
||||||
if (verts == null) {
|
if (verts == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
if (verts.length <= 3)
|
||||||
|
return verts;
|
||||||
|
|
||||||
Set<Coordinate> coords = new LinkedHashSet<Coordinate>();
|
Set<Coordinate> coords = new LinkedHashSet<Coordinate>();
|
||||||
for (Coordinate c : verts)
|
for (Coordinate c : verts)
|
||||||
coords.add(c);
|
coords.add(c);
|
||||||
|
@ -1300,7 +1304,7 @@ public class PolygonUtil {
|
||||||
// of a straight line segment
|
// of a straight line segment
|
||||||
coords = new Coordinate[coords.length - 1];
|
coords = new Coordinate[coords.length - 1];
|
||||||
if (i == m - 2) {
|
if (i == m - 2) {
|
||||||
for (int j = 1; j < m - 2; j++) {
|
for (int j = 1; j <= m - 2; j++) {
|
||||||
coords[j-1] = new Coordinate(expandedCoords[j]);
|
coords[j-1] = new Coordinate(expandedCoords[j]);
|
||||||
}
|
}
|
||||||
coords[coords.length-1] = new Coordinate(coords[0]);
|
coords[coords.length-1] = new Coordinate(coords[0]);
|
||||||
|
|
|
@ -149,6 +149,7 @@ import com.vividsolutions.jts.geom.Polygon;
|
||||||
* Aug 6, 2013 2243 jsanchez Refreshed the follow up list every minute.
|
* Aug 6, 2013 2243 jsanchez Refreshed the follow up list every minute.
|
||||||
* Aug 15, 2013 DR 16418 D. Friedman Make dialog visibility match editable state.
|
* Aug 15, 2013 DR 16418 D. Friedman Make dialog visibility match editable state.
|
||||||
* Sep 17, 2013 DR 16496 D. Friedman Make editable state more consistent.
|
* Sep 17, 2013 DR 16496 D. Friedman Make editable state more consistent.
|
||||||
|
* Oct 01, 2013 DR16612 m.gamazaychikov Fixed inconsistencies with track locking and updateListSelected method
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @author chammack
|
* @author chammack
|
||||||
|
@ -259,6 +260,8 @@ public class WarngenDialog extends CaveSWTDialog implements
|
||||||
|
|
||||||
private boolean polygonLocked = false;
|
private boolean polygonLocked = false;
|
||||||
|
|
||||||
|
private boolean trackLocked = false;
|
||||||
|
|
||||||
private int totalSegments = 0;
|
private int totalSegments = 0;
|
||||||
|
|
||||||
private String damBreakInstruct = null;
|
private String damBreakInstruct = null;
|
||||||
|
@ -1066,7 +1069,7 @@ public class WarngenDialog extends CaveSWTDialog implements
|
||||||
if (((followupData == null) || ((WarningAction.valueOf(followupData
|
if (((followupData == null) || ((WarningAction.valueOf(followupData
|
||||||
.getAct()) == WarningAction.CON) && warngenLayer
|
.getAct()) == WarningAction.CON) && warngenLayer
|
||||||
.conWarnAreaChanged(followupData)))
|
.conWarnAreaChanged(followupData)))
|
||||||
&& !polygonLocked) {
|
&& !polygonLocked && !trackLocked) {
|
||||||
redrawFromWarned();
|
redrawFromWarned();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1518,8 +1521,8 @@ public class WarngenDialog extends CaveSWTDialog implements
|
||||||
}
|
}
|
||||||
warngenLayer.getStormTrackState().setInitiallyMotionless(
|
warngenLayer.getStormTrackState().setInitiallyMotionless(
|
||||||
(warngenLayer.getConfiguration().isTrackEnabled() == false)
|
(warngenLayer.getConfiguration().isTrackEnabled() == false)
|
||||||
|| (warngenLayer.getConfiguration()
|
|| (warngenLayer.getConfiguration()
|
||||||
.getPathcastConfig() == null));
|
.getPathcastConfig() == null));
|
||||||
if (warngenLayer.getStormTrackState().isInitiallyMotionless()) {
|
if (warngenLayer.getStormTrackState().isInitiallyMotionless()) {
|
||||||
warngenLayer.getStormTrackState().speed = 0;
|
warngenLayer.getStormTrackState().speed = 0;
|
||||||
warngenLayer.getStormTrackState().angle = 0;
|
warngenLayer.getStormTrackState().angle = 0;
|
||||||
|
@ -1570,6 +1573,7 @@ public class WarngenDialog extends CaveSWTDialog implements
|
||||||
* @param b
|
* @param b
|
||||||
*/
|
*/
|
||||||
private void setTrackLocked(boolean b) {
|
private void setTrackLocked(boolean b) {
|
||||||
|
trackLocked = b;
|
||||||
fromTrack.setEnabled(!b);
|
fromTrack.setEnabled(!b);
|
||||||
warngenLayer.getStormTrackState().editable = !b;
|
warngenLayer.getStormTrackState().editable = !b;
|
||||||
}
|
}
|
||||||
|
@ -1624,7 +1628,7 @@ public class WarngenDialog extends CaveSWTDialog implements
|
||||||
if ((WarningAction
|
if ((WarningAction
|
||||||
.valueOf(warngenLayer.state.followupData
|
.valueOf(warngenLayer.state.followupData
|
||||||
.getAct()) == WarningAction.CON)
|
.getAct()) == WarningAction.CON)
|
||||||
&& (totalSegments > 1)) {
|
&& (totalSegments > 1)) {
|
||||||
sameProductMessage(warngenLayer.state.followupData
|
sameProductMessage(warngenLayer.state.followupData
|
||||||
.getEquvialentString());
|
.getEquvialentString());
|
||||||
}
|
}
|
||||||
|
@ -1633,21 +1637,22 @@ public class WarngenDialog extends CaveSWTDialog implements
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (warngenLayer.state.followupData != null) {
|
if (warngenLayer.state.followupData != null) {
|
||||||
// Sets the updatelist with the last selected vtec option
|
// recreate updates before setting the updatelist to the
|
||||||
for (int i = 0; i < updateListCbo.getItemCount(); i++) {
|
// last selected vtec option
|
||||||
String item = updateListCbo.getItem(i);
|
|
||||||
if (item.equals(warngenLayer.state.followupData
|
|
||||||
.getDisplayString())) {
|
|
||||||
updateListCbo.select(i);
|
|
||||||
updateListCbo.setText(item);
|
|
||||||
data = warngenLayer.state.followupData;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
recreateUpdates();
|
recreateUpdates();
|
||||||
recreateDurations(durationList);
|
recreateDurations(durationList);
|
||||||
return;
|
for (int i = 0; i < updateListCbo.getItemCount(); i++) {
|
||||||
|
FollowupData fd = (FollowupData) updateListCbo
|
||||||
|
.getData(updateListCbo.getItem(i));
|
||||||
|
if ( fd != null ) {
|
||||||
|
if (fd.equals(warngenLayer.state.followupData)) {
|
||||||
|
updateListCbo.select(i);
|
||||||
|
updateListCbo.setText(updateListCbo.getItem(i));
|
||||||
|
data = warngenLayer.state.followupData;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (currMode == Mode.DRAG_ME) {
|
if (currMode == Mode.DRAG_ME) {
|
||||||
|
@ -2116,7 +2121,7 @@ public class WarngenDialog extends CaveSWTDialog implements
|
||||||
setPolygonLocked(false);
|
setPolygonLocked(false);
|
||||||
AbstractWarningRecord newWarn = CurrentWarnings.getInstance(
|
AbstractWarningRecord newWarn = CurrentWarnings.getInstance(
|
||||||
warngenLayer.getLocalizedSite()).getNewestByTracking(
|
warngenLayer.getLocalizedSite()).getNewestByTracking(
|
||||||
data.getEtn(), data.getPhen() + "." + data.getSig());
|
data.getEtn(), data.getPhen() + "." + data.getSig());
|
||||||
|
|
||||||
updatePolygon(newWarn);
|
updatePolygon(newWarn);
|
||||||
|
|
||||||
|
@ -2147,7 +2152,7 @@ public class WarngenDialog extends CaveSWTDialog implements
|
||||||
|
|
||||||
AbstractWarningRecord newWarn = CurrentWarnings.getInstance(
|
AbstractWarningRecord newWarn = CurrentWarnings.getInstance(
|
||||||
warngenLayer.getLocalizedSite()).getNewestByTracking(
|
warngenLayer.getLocalizedSite()).getNewestByTracking(
|
||||||
data.getEtn(), data.getPhen() + "." + data.getSig());
|
data.getEtn(), data.getPhen() + "." + data.getSig());
|
||||||
|
|
||||||
updatePolygon(newWarn);
|
updatePolygon(newWarn);
|
||||||
|
|
||||||
|
@ -2459,7 +2464,7 @@ public class WarngenDialog extends CaveSWTDialog implements
|
||||||
public void realizeEditableState() {
|
public void realizeEditableState() {
|
||||||
boolean layerEditable = warngenLayer.isEditable();
|
boolean layerEditable = warngenLayer.isEditable();
|
||||||
// TODO: Note there is no 'is track editing allowed' state yet.
|
// TODO: Note there is no 'is track editing allowed' state yet.
|
||||||
warngenLayer.getStormTrackState().editable = layerEditable && trackEditable;
|
warngenLayer.getStormTrackState().editable = layerEditable && trackEditable && !trackLocked;
|
||||||
warngenLayer.setBoxEditable(layerEditable && boxEditable && !polygonLocked);
|
warngenLayer.setBoxEditable(layerEditable && boxEditable && !polygonLocked);
|
||||||
warngenLayer.issueRefresh();
|
warngenLayer.issueRefresh();
|
||||||
}
|
}
|
||||||
|
|
0
cots/org.apache.commons.io/org.apache.commons.io.ecl
Normal file
0
cots/org.apache.commons.io/org.apache.commons.io.ecl
Normal file
0
cots/org.apache.tomcat.nativ/org.apache.tomcat.nativ.ecl
Normal file
0
cots/org.apache.tomcat.nativ/org.apache.tomcat.nativ.ecl
Normal file
0
cots/org.postgres/org.postgres.ecl
Normal file
0
cots/org.postgres/org.postgres.ecl
Normal file
0
cots/org.quartz/org.quartz.ecl
Normal file
0
cots/org.quartz/org.quartz.ecl
Normal file
0
deltaScripts/13.5.2/addBufrmosDataURI.sh
Executable file → Normal file
0
deltaScripts/13.5.2/addBufrmosDataURI.sh
Executable file → Normal file
|
@ -33,17 +33,12 @@
|
||||||
# Date Ticket# Engineer Description
|
# Date Ticket# Engineer Description
|
||||||
# ------------ ---------- ----------- --------------------------
|
# ------------ ---------- ----------- --------------------------
|
||||||
# 01/17/13 dgilling Initial Creation.
|
# 01/17/13 dgilling Initial Creation.
|
||||||
|
# 10/09/13 16614 njensen Fixed reloadModules()
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
|
||||||
import os
|
|
||||||
|
|
||||||
import MasterInterface
|
import MasterInterface
|
||||||
import RollBackImporter
|
|
||||||
|
|
||||||
rollbackImporter = RollBackImporter.RollBackImporter()
|
|
||||||
|
|
||||||
|
|
||||||
class RollbackMasterInterface(MasterInterface.MasterInterface):
|
class RollbackMasterInterface(MasterInterface.MasterInterface):
|
||||||
|
|
||||||
|
@ -75,8 +70,6 @@ class RollbackMasterInterface(MasterInterface.MasterInterface):
|
||||||
|
|
||||||
def reloadModules(self):
|
def reloadModules(self):
|
||||||
for script in self.scripts:
|
for script in self.scripts:
|
||||||
super(RollbackMasterInterface, self).removeModule(script)
|
super(RollbackMasterInterface, self).reloadModule(script)
|
||||||
rollbackImporter.rollback()
|
|
||||||
self.importModules()
|
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,15 @@
|
||||||
##
|
##
|
||||||
# NOTE: THIS FILE SHOULD NOT BE USER-MODIFIED. INSTEAD REFER TO THE
|
# NOTE: THIS FILE SHOULD NOT BE USER-MODIFIED. INSTEAD REFER TO THE
|
||||||
# LOCAL CONFIG DOCUMENTATION ON HOW TO OVERRIDE SETTINGS IN THIS FILE.
|
# LOCAL CONFIG DOCUMENTATION ON HOW TO OVERRIDE SETTINGS IN THIS FILE.
|
||||||
|
#
|
||||||
|
# Baseline GFE server configuration
|
||||||
|
#
|
||||||
|
# SOFTWARE HISTORY
|
||||||
|
#
|
||||||
|
# Date Ticket# Engineer Description
|
||||||
|
# ------------ ---------- ----------- --------------------------
|
||||||
|
# 10/03/13 2424 randerso Change localTC to use dateutil instead of pytz
|
||||||
|
# to get correct offsets for Alaska
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# USEFUL DEFINES
|
# USEFUL DEFINES
|
||||||
|
@ -859,9 +868,10 @@ Persistent = (0, 0, 0) # special time constraint
|
||||||
# seconds local time, e.g., 6*HOUR would indicate 6am.
|
# seconds local time, e.g., 6*HOUR would indicate 6am.
|
||||||
def localTC(start,repeat,duration,dst):
|
def localTC(start,repeat,duration,dst):
|
||||||
timezone = SITES[GFESUITE_SITEID][3]
|
timezone = SITES[GFESUITE_SITEID][3]
|
||||||
import pytz
|
import dateutil.tz, datetime
|
||||||
tz = pytz.timezone(timezone)
|
tz = dateutil.tz.gettz(timezone)
|
||||||
delta = tz.utcoffset(0) - tz.dst(0);
|
dt = datetime.datetime.utcnow()
|
||||||
|
delta = tz.utcoffset(dt) + tz.dst(dt)
|
||||||
offset = delta.days*86400 + delta.seconds
|
offset = delta.days*86400 + delta.seconds
|
||||||
start = start - offset
|
start = start - offset
|
||||||
if dst == 1:
|
if dst == 1:
|
||||||
|
|
0
edexOsgi/build.edex/opt/db/ddl/maps/importShapeFile.sh
Executable file → Normal file
0
edexOsgi/build.edex/opt/db/ddl/maps/importShapeFile.sh
Executable file → Normal file
|
@ -66,6 +66,7 @@ from com.raytheon.uf.common.localization import LocalizationContext_Localization
|
||||||
# A1, big perf improvement.
|
# A1, big perf improvement.
|
||||||
# 05/23/13 1759 dgilling Remove unnecessary imports.
|
# 05/23/13 1759 dgilling Remove unnecessary imports.
|
||||||
# 07/25/13 2233 randerso Improved memory utilization and performance
|
# 07/25/13 2233 randerso Improved memory utilization and performance
|
||||||
|
# 09/20/13 2405 dgilling Clip grids before inserting into cache.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
|
||||||
|
@ -97,8 +98,9 @@ def logDebug(*msg):
|
||||||
|
|
||||||
|
|
||||||
class WECache(object):
|
class WECache(object):
|
||||||
def __init__(self, we, inv):
|
def __init__(self, we, inv, clipArea):
|
||||||
self._we = we
|
self._we = we
|
||||||
|
self._clipArea = clipArea
|
||||||
self._inv = OrderedDict()
|
self._inv = OrderedDict()
|
||||||
lst = list(inv)
|
lst = list(inv)
|
||||||
while len(lst):
|
while len(lst):
|
||||||
|
@ -109,7 +111,7 @@ class WECache(object):
|
||||||
gridsAndHist = self._we.get(javaTRs, True)
|
gridsAndHist = self._we.get(javaTRs, True)
|
||||||
for idx, tr in enumerate(i):
|
for idx, tr in enumerate(i):
|
||||||
pair = gridsAndHist.get(idx)
|
pair = gridsAndHist.get(idx)
|
||||||
g = self.__encodeGridSlice(pair.getFirst())
|
g = self.__encodeGridSlice(pair.getFirst(), clipArea)
|
||||||
h = self.__encodeGridHistory(pair.getSecond())
|
h = self.__encodeGridHistory(pair.getSecond())
|
||||||
self._inv[tr] = (g, h)
|
self._inv[tr] = (g, h)
|
||||||
lst = lst[BATCH_WRITE_COUNT:]
|
lst = lst[BATCH_WRITE_COUNT:]
|
||||||
|
@ -122,31 +124,32 @@ class WECache(object):
|
||||||
try:
|
try:
|
||||||
return self._inv[key]
|
return self._inv[key]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
|
logEvent("Cache miss for key:", str(key))
|
||||||
grid = self._we.getItem(iscUtil.toJavaTimeRange(key))
|
grid = self._we.getItem(iscUtil.toJavaTimeRange(key))
|
||||||
pyGrid = self.__encodeGridSlice(grid)
|
pyGrid = self.__encodeGridSlice(grid, self._clipArea)
|
||||||
history = grid.getGridDataHistory()
|
history = grid.getGridDataHistory()
|
||||||
pyHist = self.__encodeGridHistory(history)
|
pyHist = self.__encodeGridHistory(history)
|
||||||
return (pyGrid, pyHist)
|
return (pyGrid, pyHist)
|
||||||
|
|
||||||
def __encodeGridSlice(self, grid):
|
def __encodeGridSlice(self, grid, clipArea):
|
||||||
gridType = grid.getGridInfo().getGridType().toString()
|
gridType = grid.getGridInfo().getGridType().toString()
|
||||||
if gridType == "SCALAR":
|
if gridType == "SCALAR":
|
||||||
return grid.__numpy__[0]
|
return clipToExtrema(grid.__numpy__[0], clipArea)
|
||||||
elif gridType == "VECTOR":
|
elif gridType == "VECTOR":
|
||||||
vecGrids = grid.__numpy__
|
vecGrids = grid.__numpy__
|
||||||
return (vecGrids[0], vecGrids[1])
|
return (clipToExtrema(vecGrids[0], clipArea), clipToExtrema(vecGrids[1], clipArea))
|
||||||
elif gridType == "WEATHER":
|
elif gridType == "WEATHER":
|
||||||
keys = grid.getKeys()
|
keys = grid.getKeys()
|
||||||
keyList = []
|
keyList = []
|
||||||
for theKey in keys:
|
for theKey in keys:
|
||||||
keyList.append(theKey.toString())
|
keyList.append(theKey.toString())
|
||||||
return (grid.__numpy__[0], keyList)
|
return (clipToExtrema(grid.__numpy__[0], clipArea), keyList)
|
||||||
elif gridType =="DISCRETE":
|
elif gridType =="DISCRETE":
|
||||||
keys = grid.getKey()
|
keys = grid.getKey()
|
||||||
keyList = []
|
keyList = []
|
||||||
for theKey in keys:
|
for theKey in keys:
|
||||||
keyList.append(theKey.toString())
|
keyList.append(theKey.toString())
|
||||||
return (grid.__numpy__[0], keyList)
|
return (clipToExtrema(grid.__numpy__[0], clipArea), keyList)
|
||||||
|
|
||||||
def __encodeGridHistory(self, histories):
|
def __encodeGridHistory(self, histories):
|
||||||
retVal = []
|
retVal = []
|
||||||
|
@ -524,55 +527,29 @@ def storeTopoGrid(client, file, databaseID, invMask, clipArea):
|
||||||
|
|
||||||
logEvent("Saved Topo Grid")
|
logEvent("Saved Topo Grid")
|
||||||
|
|
||||||
def historyFunc(x, y):
|
|
||||||
return y[x][1]
|
|
||||||
|
|
||||||
###-------------------------------------------------------------------------###
|
###-------------------------------------------------------------------------###
|
||||||
###
|
###
|
||||||
def storeGridDataHistory(file, we, wec, trList, timeRange):
|
def storeGridDataHistory(file, we, wec, trList):
|
||||||
"Stores the Grid Data history string for each grid in we."
|
"Stores the Grid Data history string for each grid in we."
|
||||||
|
|
||||||
histories = []
|
|
||||||
for tr in trList:
|
|
||||||
histories.append(historyFunc(tr, wec))
|
|
||||||
#histories = map(lambda x, y=wec: y[x][1], trList)
|
|
||||||
|
|
||||||
# get the maximum size of the history string
|
# get the maximum size of the history string
|
||||||
maxHistSize = 0
|
maxHistSize = 0
|
||||||
gridCount = 0
|
histList = []
|
||||||
firstSlot = -1
|
for tr in trList:
|
||||||
lastSlot = 0
|
his = wec[tr][1]
|
||||||
|
|
||||||
for x in xrange(len(trList)):
|
|
||||||
t = trList[x]
|
|
||||||
his = histories[x]
|
|
||||||
hisString = ''
|
hisString = ''
|
||||||
for i in xrange(len(his)):
|
for i,h in enumerate(his):
|
||||||
hisString = hisString + str(his[i])
|
hisString = hisString + str(h)
|
||||||
if i != len(his) - 1:
|
if i != len(his) - 1:
|
||||||
hisString = hisString + " ^"
|
hisString = hisString + " ^"
|
||||||
if overlaps(t, timeRange):
|
histList.append(hisString)
|
||||||
if firstSlot == -1:
|
maxHistSize = max(maxHistSize,len(hisString))
|
||||||
firstSlot = gridCount
|
|
||||||
lastSlot = gridCount
|
|
||||||
if len(hisString) > maxHistSize:
|
|
||||||
maxHistSize = len(hisString)
|
|
||||||
gridCount = gridCount + 1
|
|
||||||
|
|
||||||
# Make the history variable and fill it
|
# Make the history variable and fill it
|
||||||
histShape = (lastSlot - firstSlot + 1, maxHistSize + 1)
|
histShape = (len(histList), maxHistSize + 1)
|
||||||
if firstSlot != -1:
|
histCube = numpy.zeros(histShape, 'c')
|
||||||
histCube = numpy.zeros(histShape, 'c')
|
for slot, hisString in enumerate(histList):
|
||||||
slot = 0
|
histCube[slot:] = hisString
|
||||||
for i in xrange(firstSlot, lastSlot + 1):
|
|
||||||
his = histories[i]
|
|
||||||
hisString = ''
|
|
||||||
for h in range(len(his)):
|
|
||||||
hisString = hisString + str(his[h])
|
|
||||||
if h != len(his) - 1:
|
|
||||||
hisString = hisString + " ^"
|
|
||||||
histCube[slot:] = hisString
|
|
||||||
slot = slot + 1
|
|
||||||
|
|
||||||
# make the history variable anyway. iscMosaic needs it.
|
# make the history variable anyway. iscMosaic needs it.
|
||||||
elemName = we.getParmid().getParmName() + "_" + we.getParmid().getParmLevel()
|
elemName = we.getParmid().getParmName() + "_" + we.getParmid().getParmLevel()
|
||||||
|
@ -582,7 +559,7 @@ def storeGridDataHistory(file, we, wec, trList, timeRange):
|
||||||
|
|
||||||
var = file.createVariable(varName, 'c', dims)
|
var = file.createVariable(varName, 'c', dims)
|
||||||
|
|
||||||
if firstSlot != -1:
|
if len(histList) > 0:
|
||||||
# store the cube in the netCDF file
|
# store the cube in the netCDF file
|
||||||
var[:] = histCube
|
var[:] = histCube
|
||||||
return
|
return
|
||||||
|
@ -756,9 +733,9 @@ def storeScalarWE(we, trList, file, timeRange, databaseID,
|
||||||
|
|
||||||
cube = numpy.empty(shape=(gridCount, clipSize[1], clipSize[0]), dtype=numpy.float32)
|
cube = numpy.empty(shape=(gridCount, clipSize[1], clipSize[0]), dtype=numpy.float32)
|
||||||
|
|
||||||
wec = WECache(we, overlappingTimes)
|
wec = WECache(we, overlappingTimes, clipArea)
|
||||||
for i,t in enumerate(overlappingTimes):
|
for i,t in enumerate(overlappingTimes):
|
||||||
grid = clipToExtrema(wec[t][0], clipArea)
|
grid = wec[t][0]
|
||||||
#adjust for time changes
|
#adjust for time changes
|
||||||
if we.getGpi().isRateParm():
|
if we.getGpi().isRateParm():
|
||||||
durRatio = (float(timeList[i][1]-timeList[i][0]))/float((t[1]-t[0]))
|
durRatio = (float(timeList[i][1]-timeList[i][0]))/float((t[1]-t[0]))
|
||||||
|
@ -818,7 +795,7 @@ def storeScalarWE(we, trList, file, timeRange, databaseID,
|
||||||
setattr(var, "fillValue", fillValue)
|
setattr(var, "fillValue", fillValue)
|
||||||
|
|
||||||
## Extract the GridDataHistory info and save it
|
## Extract the GridDataHistory info and save it
|
||||||
storeGridDataHistory(file, we, wec, trList, timeRange)
|
storeGridDataHistory(file, we, wec, overlappingTimes)
|
||||||
|
|
||||||
logEvent("Saved", gridCount, varName, " grids")
|
logEvent("Saved", gridCount, varName, " grids")
|
||||||
|
|
||||||
|
@ -841,11 +818,11 @@ def storeVectorWE(we, trList, file, timeRange,
|
||||||
magCube = numpy.empty(shape=(gridCount, clipSize[1], clipSize[0]),dtype=numpy.float32)
|
magCube = numpy.empty(shape=(gridCount, clipSize[1], clipSize[0]),dtype=numpy.float32)
|
||||||
dirCube = numpy.empty(shape=(gridCount, clipSize[1], clipSize[0]),dtype=numpy.float32)
|
dirCube = numpy.empty(shape=(gridCount, clipSize[1], clipSize[0]),dtype=numpy.float32)
|
||||||
|
|
||||||
wec = WECache(we, overlappingTimes)
|
wec = WECache(we, overlappingTimes, clipArea)
|
||||||
for i,t in enumerate(overlappingTimes):
|
for i,t in enumerate(overlappingTimes):
|
||||||
vecData = wec[t][0]
|
vecData = wec[t][0]
|
||||||
mag = clipToExtrema(vecData[0], clipArea)
|
mag = vecData[0]
|
||||||
dir = clipToExtrema(vecData[1], clipArea)
|
dir = vecData[1]
|
||||||
if we.getGpi().isRateParm():
|
if we.getGpi().isRateParm():
|
||||||
durRatio = (float(timeList[i][1]-timeList[i][0]))/float((t[1]-t[0]))
|
durRatio = (float(timeList[i][1]-timeList[i][0]))/float((t[1]-t[0]))
|
||||||
mag *= durRatio
|
mag *= durRatio
|
||||||
|
@ -947,7 +924,7 @@ def storeVectorWE(we, trList, file, timeRange,
|
||||||
setattr(dirVar, "fillValue", dfillValue)
|
setattr(dirVar, "fillValue", dfillValue)
|
||||||
|
|
||||||
## Extract the GridDataHistory info and save it
|
## Extract the GridDataHistory info and save it
|
||||||
storeGridDataHistory(file, we, wec, trList, timeRange)
|
storeGridDataHistory(file, we, wec, overlappingTimes)
|
||||||
|
|
||||||
logEvent("Saved", gridCount, varName, "grids")
|
logEvent("Saved", gridCount, varName, "grids")
|
||||||
|
|
||||||
|
@ -1001,11 +978,10 @@ def storeWeatherWE(we, trList, file, timeRange, databaseID, invMask, clipArea):
|
||||||
byteCube = numpy.empty(shape=(gridCount, clipSize[1], clipSize[0]), dtype=numpy.int8)
|
byteCube = numpy.empty(shape=(gridCount, clipSize[1], clipSize[0]), dtype=numpy.int8)
|
||||||
|
|
||||||
keyList = []
|
keyList = []
|
||||||
wec = WECache(we, overlappingTimes)
|
wec = WECache(we, overlappingTimes, clipArea)
|
||||||
for i,t in enumerate(overlappingTimes):
|
for i,t in enumerate(overlappingTimes):
|
||||||
wx = wec[t][0]
|
wx = wec[t][0]
|
||||||
grid = clipToExtrema(wx[0], clipArea)
|
byteCube[i] = wx[0]
|
||||||
byteCube[i] = grid
|
|
||||||
keyList.append(wx[1])
|
keyList.append(wx[1])
|
||||||
|
|
||||||
# make the variable name
|
# make the variable name
|
||||||
|
@ -1070,7 +1046,7 @@ def storeWeatherWE(we, trList, file, timeRange, databaseID, invMask, clipArea):
|
||||||
setattr(var, "fillValue", fillValue)
|
setattr(var, "fillValue", fillValue)
|
||||||
|
|
||||||
## Extract the GridDataHistory info and save it
|
## Extract the GridDataHistory info and save it
|
||||||
storeGridDataHistory(file, we, wec, trList, timeRange)
|
storeGridDataHistory(file, we, wec, overlappingTimes)
|
||||||
|
|
||||||
logEvent("Saved", gridCount, varName, "grids")
|
logEvent("Saved", gridCount, varName, "grids")
|
||||||
|
|
||||||
|
@ -1092,11 +1068,10 @@ def storeDiscreteWE(we, trList, file, timeRange, databaseID, invMask, clipArea):
|
||||||
byteCube = numpy.empty(shape=(gridCount, clipSize[1], clipSize[0]), dtype=numpy.int8)
|
byteCube = numpy.empty(shape=(gridCount, clipSize[1], clipSize[0]), dtype=numpy.int8)
|
||||||
|
|
||||||
keyList = []
|
keyList = []
|
||||||
wec = WECache(we, overlappingTimes)
|
wec = WECache(we, overlappingTimes, clipArea)
|
||||||
for i,t in enumerate(overlappingTimes):
|
for i,t in enumerate(overlappingTimes):
|
||||||
dis = wec[t][0]
|
dis = wec[t][0]
|
||||||
grid = clipToExtrema(dis[0], clipArea)
|
byteCube[i] = dis[0]
|
||||||
byteCube[i] = grid
|
|
||||||
keyList.append(dis[1])
|
keyList.append(dis[1])
|
||||||
|
|
||||||
|
|
||||||
|
@ -1160,7 +1135,7 @@ def storeDiscreteWE(we, trList, file, timeRange, databaseID, invMask, clipArea):
|
||||||
setattr(var, "fillValue", fillValue)
|
setattr(var, "fillValue", fillValue)
|
||||||
|
|
||||||
## Extract the GridDataHistory info and save it
|
## Extract the GridDataHistory info and save it
|
||||||
storeGridDataHistory(file, we, wec, trList, timeRange)
|
storeGridDataHistory(file, we, wec, overlappingTimes)
|
||||||
|
|
||||||
logEvent("Saved", gridCount, varName, "grids")
|
logEvent("Saved", gridCount, varName, "grids")
|
||||||
|
|
||||||
|
@ -1335,7 +1310,8 @@ def main(outputFilename, parmList, databaseID, startTime,
|
||||||
try:
|
try:
|
||||||
timeRange = makeTimeRange(argDict['startTime'], argDict['endTime'])
|
timeRange = makeTimeRange(argDict['startTime'], argDict['endTime'])
|
||||||
except:
|
except:
|
||||||
sys.exit(1)
|
logException("Unable to create TimeRange from arguments: startTime= " + str(argDict['startTime']) + ", endTime= " + argDict['endTime'])
|
||||||
|
return
|
||||||
|
|
||||||
# See if the databaseID is valid. An exception will be tossed
|
# See if the databaseID is valid. An exception will be tossed
|
||||||
db = IFPDB(argDict['databaseID'])
|
db = IFPDB(argDict['databaseID'])
|
||||||
|
|
|
@ -2879,21 +2879,11 @@
|
||||||
<name>HPCGuide</name>
|
<name>HPCGuide</name>
|
||||||
<center>7</center>
|
<center>7</center>
|
||||||
<subcenter>5</subcenter>
|
<subcenter>5</subcenter>
|
||||||
<grid>197</grid>
|
|
||||||
<process>
|
<process>
|
||||||
<id>183</id>
|
<id>183</id>
|
||||||
</process>
|
</process>
|
||||||
</model>
|
</model>
|
||||||
|
|
||||||
<model>
|
|
||||||
<name>HPCGuide-2.5km</name>
|
|
||||||
<center>7</center>
|
|
||||||
<subcenter>5</subcenter>
|
|
||||||
<process>
|
|
||||||
<id>183</id>
|
|
||||||
</process>
|
|
||||||
</model>
|
|
||||||
|
|
||||||
<model>
|
<model>
|
||||||
<name>HPCGuide-AK</name>
|
<name>HPCGuide-AK</name>
|
||||||
<center>7</center>
|
<center>7</center>
|
||||||
|
|
|
@ -81,15 +81,6 @@ public class MhsMessage {
|
||||||
*/
|
*/
|
||||||
static public final String EnvMhsTrace = "MHS_SHOW_TRACE";
|
static public final String EnvMhsTrace = "MHS_SHOW_TRACE";
|
||||||
|
|
||||||
/**
|
|
||||||
* Environment variable to determine the MHS interface to use. If undefined,
|
|
||||||
* it is the same as defining it to "NO" or "FALSE". If set to "YES" or
|
|
||||||
* "TRUE", then the JNI interface to the MHS DWB functions is used to submit
|
|
||||||
* messages. Any other value results in message submission occurring via the
|
|
||||||
* command line utility msg_send.
|
|
||||||
*/
|
|
||||||
static public final String EnvMhsUseNative = "MHS_USE_NATIVE_INTERFACE";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Minimum message code value
|
* Minimum message code value
|
||||||
*/
|
*/
|
||||||
|
@ -194,7 +185,6 @@ public class MhsMessage {
|
||||||
* Valid time parameter formatted as a string (mm/dd/yyyy:HHMM). This value
|
* Valid time parameter formatted as a string (mm/dd/yyyy:HHMM). This value
|
||||||
* is derived from {@link #validTime} during message submission.
|
* is derived from {@link #validTime} during message submission.
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unused")
|
|
||||||
private String validTimeString;
|
private String validTimeString;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -207,7 +197,6 @@ public class MhsMessage {
|
||||||
* Timeout time parameter formatted as a string (mm/dd/yyyy:HHMM). This
|
* Timeout time parameter formatted as a string (mm/dd/yyyy:HHMM). This
|
||||||
* value is derived from {@link #timeoutTime} during message submission.
|
* value is derived from {@link #timeoutTime} during message submission.
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unused")
|
|
||||||
private String timeoutTimeString;
|
private String timeoutTimeString;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -259,11 +248,6 @@ public class MhsMessage {
|
||||||
*/
|
*/
|
||||||
private String resultText;
|
private String resultText;
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
private boolean useNativeInterface;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sole constructor. Provides reasonable default values for a message
|
* Sole constructor. Provides reasonable default values for a message
|
||||||
* object's fields as follows:
|
* object's fields as follows:
|
||||||
|
@ -286,14 +270,10 @@ public class MhsMessage {
|
||||||
*/
|
*/
|
||||||
public MhsMessage(int code) {
|
public MhsMessage(int code) {
|
||||||
String traceString = System.getenv(EnvMhsTrace);
|
String traceString = System.getenv(EnvMhsTrace);
|
||||||
String interfaceString = System.getenv(EnvMhsUseNative);
|
|
||||||
|
|
||||||
showTrace = (traceString != null)
|
showTrace = (traceString != null)
|
||||||
&& ((traceString.equalsIgnoreCase("yes") || traceString
|
&& ((traceString.equalsIgnoreCase("yes")
|
||||||
.equalsIgnoreCase("true")));
|
|| traceString.equalsIgnoreCase("true")));
|
||||||
useNativeInterface = (interfaceString != null)
|
|
||||||
&& ((interfaceString.equalsIgnoreCase("yes")) || interfaceString
|
|
||||||
.equalsIgnoreCase("true"));
|
|
||||||
|
|
||||||
actionCode = code;
|
actionCode = code;
|
||||||
setRetryCount(0);
|
setRetryCount(0);
|
||||||
|
@ -313,21 +293,6 @@ public class MhsMessage {
|
||||||
submitted = false;
|
submitted = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Submits a message to the message request server daemon. This is JNI code
|
|
||||||
* to translate a Java message object to a C MHS message object.
|
|
||||||
*
|
|
||||||
* @return 0 if successful; a positive integer if a MHS error is detected;
|
|
||||||
* -1 if an error occurs in a JNI call, which will usually result in
|
|
||||||
* a Java exception when control is returned toe the JVM.
|
|
||||||
* @see MhsMessage
|
|
||||||
*/
|
|
||||||
private native String submitMessage() throws MhsSubmitException;
|
|
||||||
|
|
||||||
static {
|
|
||||||
System.loadLibrary("coDDM_msg_send");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the action code for this message object.
|
* Gets the action code for this message object.
|
||||||
*
|
*
|
||||||
|
@ -839,30 +804,6 @@ public class MhsMessage {
|
||||||
return retryCount;
|
return retryCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Call to force the MHS interface to be used for this message. The default
|
|
||||||
* value is determined by the environment variable MHS_USE_NATIVE_INTERFACE.
|
|
||||||
* Set to true to use the native C DWB functions. Set to false to use the
|
|
||||||
* command line utility msg_send.
|
|
||||||
*
|
|
||||||
* @param useNativeInterface
|
|
||||||
* the useNativeInterface to set
|
|
||||||
*/
|
|
||||||
public void setUseNativeInterface(boolean useNativeInterface) {
|
|
||||||
this.useNativeInterface = useNativeInterface;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the MHS interface that will be used to submit this message. A
|
|
||||||
* true value indicates that the native C DWB functions will be used. False
|
|
||||||
* indicates that the command line utility msg_send will be used.
|
|
||||||
*
|
|
||||||
* @return the useNativeInterface
|
|
||||||
*/
|
|
||||||
public boolean isUseNativeInterface() {
|
|
||||||
return useNativeInterface;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves the message Id of this message.
|
* Retrieves the message Id of this message.
|
||||||
*
|
*
|
||||||
|
@ -1153,147 +1094,136 @@ public class MhsMessage {
|
||||||
String timeStamp = timeStampFormat.format(System.currentTimeMillis());
|
String timeStamp = timeStampFormat.format(System.currentTimeMillis());
|
||||||
System.out.println(timeStamp + ": Message submitted");
|
System.out.println(timeStamp + ": Message submitted");
|
||||||
|
|
||||||
if (useNativeInterface) { // Submit the message using the MHS and DWB
|
LinkedList<String> command = new LinkedList<String>();
|
||||||
// native libraries.
|
|
||||||
try {
|
|
||||||
messageId = submitMessage();
|
|
||||||
} catch (MhsSubmitException e) {
|
|
||||||
resultText = e.toString();
|
|
||||||
throw new MhsSubmitException(resultText);
|
|
||||||
}
|
|
||||||
} else { // Submit the message by constructing a command line and
|
|
||||||
// execing a new msg_send process
|
|
||||||
LinkedList<String> command = new LinkedList<String>();
|
|
||||||
|
|
||||||
command.add("msg_send");
|
command.add("msg_send");
|
||||||
command.add("-c" + actionCode);
|
command.add("-c" + actionCode);
|
||||||
String addrStr = "";
|
String addrStr = "";
|
||||||
String ackAddrStr = "";
|
String ackAddrStr = "";
|
||||||
String encList = "";
|
String encList = "";
|
||||||
|
|
||||||
for (int i = 0; i < addressees.getCount(); i++) {
|
for (int i = 0; i < addressees.getCount(); i++) {
|
||||||
Addressee addr = addressees.get(i);
|
Addressee addr = addressees.get(i);
|
||||||
if (addr.isAckRequired()) {
|
if (addr.isAckRequired()) {
|
||||||
if (ackAddrStr.isEmpty()) {
|
if (ackAddrStr.isEmpty()) {
|
||||||
ackAddrStr = addr.getAddress();
|
ackAddrStr = addr.getAddress();
|
||||||
} else {
|
|
||||||
ackAddrStr += "," + addr.getAddress();
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
if (addrStr.isEmpty()) {
|
ackAddrStr += "," + addr.getAddress();
|
||||||
addrStr = addr.getAddress();
|
|
||||||
} else {
|
|
||||||
addrStr += "," + addr.getAddress();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
|
if (addrStr.isEmpty()) {
|
||||||
if (!addrStr.isEmpty()) {
|
addrStr = addr.getAddress();
|
||||||
command.add("-a" + addrStr);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!ackAddrStr.isEmpty()) {
|
|
||||||
command.add("-A" + ackAddrStr);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (retryCount != 0) {
|
|
||||||
command.add("-R" + retryCount);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < enclosures.getCount(); i++) {
|
|
||||||
Enclosure enc = enclosures.get(i);
|
|
||||||
if (encList.isEmpty()) {
|
|
||||||
encList = enc.getEnclosureName();
|
|
||||||
} else {
|
} else {
|
||||||
encList += "," + enc.getEnclosureName();
|
addrStr += "," + addr.getAddress();
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!encList.isEmpty()) {
|
|
||||||
command.add("-e" + encList);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!timeoutTimeString.isEmpty()) {
|
|
||||||
command.add("-T" + timeoutTimeString);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!validTimeString.isEmpty()) {
|
|
||||||
command.add("-v" + validTimeString);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!bodyFile.isEmpty()) {
|
|
||||||
command.add("-b" + bodyFile);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!productId.isEmpty()) {
|
|
||||||
command.add("-i" + productId);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!subject.isEmpty()) {
|
|
||||||
command.add("-s" + subject);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (priority != MhsMessagePriority.Default) {
|
|
||||||
command.add("-p" + priority.value());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (type != MhsMessageType.Routine) {
|
|
||||||
command.add("-t" + type.text());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (verifyAddressees) {
|
|
||||||
command.add("-C");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (showTrace) {
|
|
||||||
System.out.print("Executing command: ");
|
|
||||||
for (int i = 0; i < command.size(); i++) {
|
|
||||||
System.out.print(command.get(i) + " ");
|
|
||||||
}
|
|
||||||
System.out.println();
|
|
||||||
}
|
|
||||||
|
|
||||||
Process proc = null;
|
|
||||||
try {
|
|
||||||
ProcessBuilder procDesc = new ProcessBuilder(command);
|
|
||||||
procDesc.redirectErrorStream(true);
|
|
||||||
|
|
||||||
proc = procDesc.start();
|
|
||||||
InputStream stdout = proc.getInputStream();
|
|
||||||
InputStreamReader isr = new InputStreamReader(stdout);
|
|
||||||
BufferedReader br = new BufferedReader(isr);
|
|
||||||
String outp;
|
|
||||||
|
|
||||||
while ((outp = br.readLine()) != null) {
|
|
||||||
if (outp.length() > 0) {
|
|
||||||
// System.out.println(outp);
|
|
||||||
messageId = outp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// System.out.println(line);
|
|
||||||
int exitVal = proc.waitFor();
|
|
||||||
if (exitVal != 0) {
|
|
||||||
// System.out.println("Abnormal exit code " + exitVal);
|
|
||||||
// resultText = messageId;
|
|
||||||
throw new MhsSubmitException(messageId);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (showTrace) {
|
|
||||||
System.out
|
|
||||||
.println("Message successfully submitted. Message ID: "
|
|
||||||
+ messageId);
|
|
||||||
}
|
|
||||||
} catch (Throwable t) {
|
|
||||||
resultText = t.getMessage();
|
|
||||||
// System.out.println("Exception thrown: " + resultText);
|
|
||||||
throw new MhsSubmitException(resultText);
|
|
||||||
} finally {
|
|
||||||
// DR #10955
|
|
||||||
if (proc != null) {
|
|
||||||
proc.destroy();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!addrStr.isEmpty()) {
|
||||||
|
command.add("-a" + addrStr);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!ackAddrStr.isEmpty()) {
|
||||||
|
command.add("-A" + ackAddrStr);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (retryCount != 0) {
|
||||||
|
command.add("-R" + retryCount);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < enclosures.getCount(); i++) {
|
||||||
|
Enclosure enc = enclosures.get(i);
|
||||||
|
if (encList.isEmpty()) {
|
||||||
|
encList = enc.getEnclosureName();
|
||||||
|
} else {
|
||||||
|
encList += "," + enc.getEnclosureName();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!encList.isEmpty()) {
|
||||||
|
command.add("-e" + encList);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!timeoutTimeString.isEmpty()) {
|
||||||
|
command.add("-T" + timeoutTimeString);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!validTimeString.isEmpty()) {
|
||||||
|
command.add("-v" + validTimeString);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!bodyFile.isEmpty()) {
|
||||||
|
command.add("-b" + bodyFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!productId.isEmpty()) {
|
||||||
|
command.add("-i" + productId);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!subject.isEmpty()) {
|
||||||
|
command.add("-s" + subject);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (priority != MhsMessagePriority.Default) {
|
||||||
|
command.add("-p" + priority.value());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (type != MhsMessageType.Routine) {
|
||||||
|
command.add("-t" + type.text());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (verifyAddressees) {
|
||||||
|
command.add("-C");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (showTrace) {
|
||||||
|
System.out.print("Executing command: ");
|
||||||
|
for (int i = 0; i < command.size(); i++) {
|
||||||
|
System.out.print(command.get(i) + " ");
|
||||||
|
}
|
||||||
|
System.out.println();
|
||||||
|
}
|
||||||
|
|
||||||
|
Process proc = null;
|
||||||
|
try {
|
||||||
|
ProcessBuilder procDesc = new ProcessBuilder(command);
|
||||||
|
procDesc.redirectErrorStream(true);
|
||||||
|
|
||||||
|
proc = procDesc.start();
|
||||||
|
InputStream stdout = proc.getInputStream();
|
||||||
|
InputStreamReader isr = new InputStreamReader(stdout);
|
||||||
|
BufferedReader br = new BufferedReader(isr);
|
||||||
|
String outp;
|
||||||
|
|
||||||
|
while ((outp = br.readLine()) != null) {
|
||||||
|
if (outp.length() > 0) {
|
||||||
|
// System.out.println(outp);
|
||||||
|
messageId = outp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// System.out.println(line);
|
||||||
|
int exitVal = proc.waitFor();
|
||||||
|
if (exitVal != 0) {
|
||||||
|
// System.out.println("Abnormal exit code " + exitVal);
|
||||||
|
// resultText = messageId;
|
||||||
|
throw new MhsSubmitException(messageId);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (showTrace) {
|
||||||
|
System.out.println("Message successfully submitted. Message ID: "
|
||||||
|
+ messageId);
|
||||||
|
}
|
||||||
|
} catch (Throwable t) {
|
||||||
|
resultText = t.getMessage();
|
||||||
|
// System.out.println("Exception thrown: " + resultText);
|
||||||
|
throw new MhsSubmitException(resultText);
|
||||||
|
} finally {
|
||||||
|
// DR #10955
|
||||||
|
if (proc != null) {
|
||||||
|
proc.destroy();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return messageId;
|
return messageId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,7 @@ import com.vividsolutions.jts.geom.prep.PreparedGeometry;
|
||||||
* ------------ ---------- ----------- --------------------------
|
* ------------ ---------- ----------- --------------------------
|
||||||
* Nov 15, 2010 mschenke Initial creation
|
* Nov 15, 2010 mschenke Initial creation
|
||||||
* Apr 28, 2013 1955 jsanchez Added an ignoreUserData flag to intersection method.
|
* Apr 28, 2013 1955 jsanchez Added an ignoreUserData flag to intersection method.
|
||||||
|
* Oct 01, 2013 DR 16632 Qinglu Lin Catch exceptions thrown by intersection().
|
||||||
*
|
*
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
|
@ -120,8 +121,13 @@ public class GeometryUtil {
|
||||||
|
|
||||||
if (g1Name == null || g2Name == null || g2Name.equals(g1Name)
|
if (g1Name == null || g2Name == null || g2Name.equals(g1Name)
|
||||||
|| ignoreUserData) {
|
|| ignoreUserData) {
|
||||||
Geometry section = g1.intersection(g2);
|
Geometry section = null;
|
||||||
if (section.isEmpty() == false) {
|
try {
|
||||||
|
section = g1.intersection(g2);
|
||||||
|
} catch (Exception e) {
|
||||||
|
; //continue;
|
||||||
|
}
|
||||||
|
if (section != null && section.isEmpty() == false) {
|
||||||
if (g2.getUserData() != null) {
|
if (g2.getUserData() != null) {
|
||||||
if (section instanceof GeometryCollection) {
|
if (section instanceof GeometryCollection) {
|
||||||
for (int n = 0; n < section.getNumGeometries(); ++n) {
|
for (int n = 0; n < section.getNumGeometries(); ++n) {
|
||||||
|
|
|
@ -24,20 +24,21 @@ import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Encapsulates the query parameters for a database query
|
* Encapsulates the query parameters for a database query.
|
||||||
*
|
*
|
||||||
* <pre>
|
* <pre>
|
||||||
* SOFTWARE HISTORY
|
* SOFTWARE HISTORY
|
||||||
* Date Ticket# Engineer Description
|
* Date Ticket# Engineer Description
|
||||||
* ------------ ---------- ----------- --------------------------
|
* ------------ ---------- ----------- --------------------------
|
||||||
* 05/29/08 #875 bphillip Initial Creation
|
* May 29, 2008 875 bphillip Initial Creation
|
||||||
|
* Oct 07, 2013 2392 rjpeter Updated to auto handle passing a null value to an equal operand.
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @author bphillip
|
* @author bphillip
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
public class QueryParam {
|
public class QueryParam {
|
||||||
|
|
||||||
/** Enumeration containing the logic operands */
|
/** Enumeration containing the logic operands */
|
||||||
public enum QueryOperand {
|
public enum QueryOperand {
|
||||||
EQUALS, NOTEQUALS, LESSTHAN, LESSTHANEQUALS, GREATERTHAN, GREATERTHANEQUALS, IN, LIKE, ILIKE, BETWEEN, ISNULL, ISNOTNULL
|
EQUALS, NOTEQUALS, LESSTHAN, LESSTHANEQUALS, GREATERTHAN, GREATERTHANEQUALS, IN, LIKE, ILIKE, BETWEEN, ISNULL, ISNOTNULL
|
||||||
|
@ -71,11 +72,12 @@ public class QueryParam {
|
||||||
|
|
||||||
/** The query operand */
|
/** The query operand */
|
||||||
private String operand = "=";
|
private String operand = "=";
|
||||||
|
|
||||||
private String className;
|
private String className;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new QueryParam. Operand defaults to equals
|
* Creates a new QueryParam. Operand defaults to equals, unless value is
|
||||||
|
* null, then operand is isNull.
|
||||||
*
|
*
|
||||||
* @param field
|
* @param field
|
||||||
* The field
|
* The field
|
||||||
|
@ -83,12 +85,12 @@ public class QueryParam {
|
||||||
* The value
|
* The value
|
||||||
*/
|
*/
|
||||||
public QueryParam(String field, Object value) {
|
public QueryParam(String field, Object value) {
|
||||||
this.field = field;
|
this(field, value, "=", null);
|
||||||
this.value = value;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new QueryParam.
|
* Creates a new QueryParam. If value is null and operand is =, operand is
|
||||||
|
* updated to isNull.
|
||||||
*
|
*
|
||||||
* @param field
|
* @param field
|
||||||
* The field
|
* The field
|
||||||
|
@ -98,31 +100,66 @@ public class QueryParam {
|
||||||
* The operand
|
* The operand
|
||||||
*/
|
*/
|
||||||
public QueryParam(String field, Object value, String operand) {
|
public QueryParam(String field, Object value, String operand) {
|
||||||
this.field = field;
|
this(field, value, operand, null);
|
||||||
this.value = value;
|
|
||||||
this.operand = operand;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public QueryParam(String field, Object value, String operand,String className) {
|
/**
|
||||||
|
* Creates a new QueryParam. If value is null and operand is =, operand is
|
||||||
|
* updated to isNull.
|
||||||
|
*
|
||||||
|
* @param field
|
||||||
|
* @param value
|
||||||
|
* @param operand
|
||||||
|
* @param className
|
||||||
|
*/
|
||||||
|
public QueryParam(String field, Object value, String operand,
|
||||||
|
String className) {
|
||||||
this.field = field;
|
this.field = field;
|
||||||
this.value = value;
|
this.value = value;
|
||||||
this.operand = operand;
|
|
||||||
|
if (value == null && "=".equals(operand)) {
|
||||||
|
this.operand = "isNull";
|
||||||
|
} else {
|
||||||
|
this.operand = operand;
|
||||||
|
}
|
||||||
|
|
||||||
this.className = className;
|
this.className = className;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new QueryParam. If value is null and operand is =, operand is
|
||||||
|
* updated to isNull.
|
||||||
|
*
|
||||||
|
* @param field
|
||||||
|
* @param value
|
||||||
|
* @param operand
|
||||||
|
*/
|
||||||
public QueryParam(String field, Object value, QueryOperand operand) {
|
public QueryParam(String field, Object value, QueryOperand operand) {
|
||||||
this.field = field;
|
this(field, value, operand, null);
|
||||||
this.value = value;
|
|
||||||
this.operand = QueryParam.reverseTranslateOperand(operand);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public QueryParam(String field, Object value, QueryOperand operand,String className) {
|
/**
|
||||||
|
* Creates a new QueryParam. If value is null and operand is =, operand is
|
||||||
|
* updated to isNull.
|
||||||
|
*
|
||||||
|
* @param field
|
||||||
|
* @param value
|
||||||
|
* @param operand
|
||||||
|
* @param className
|
||||||
|
*/
|
||||||
|
public QueryParam(String field, Object value, QueryOperand operand,
|
||||||
|
String className) {
|
||||||
this.field = field;
|
this.field = field;
|
||||||
this.value = value;
|
this.value = value;
|
||||||
this.operand = QueryParam.reverseTranslateOperand(operand);
|
|
||||||
|
if (value == null && QueryOperand.EQUALS.equals(operand)) {
|
||||||
|
this.operand = "isNull";
|
||||||
|
} else {
|
||||||
|
this.operand = QueryParam.reverseTranslateOperand(operand);
|
||||||
|
}
|
||||||
|
|
||||||
this.className = className;
|
this.className = className;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Translates the string representation of an operand to the enumeration
|
* Translates the string representation of an operand to the enumeration
|
||||||
|
@ -147,6 +184,7 @@ public class QueryParam {
|
||||||
return "=";
|
return "=";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return new StringBuffer().append(field).append(" ")
|
return new StringBuffer().append(field).append(" ")
|
||||||
.append(this.operand).append(" ").append(this.value).toString();
|
.append(this.operand).append(" ").append(this.value).toString();
|
||||||
|
|
|
@ -112,7 +112,7 @@ import com.raytheon.uf.edex.database.query.DatabaseQuery;
|
||||||
* May 07, 2013 1869 bsteffen Remove dataURI column from
|
* May 07, 2013 1869 bsteffen Remove dataURI column from
|
||||||
* PluginDataObject.
|
* PluginDataObject.
|
||||||
* May 16, 2013 1869 bsteffen Rewrite dataURI property mappings.
|
* May 16, 2013 1869 bsteffen Rewrite dataURI property mappings.
|
||||||
*
|
* Oct 07, 2013 2392 rjpeter Updated to pass null productKeys as actual null instead of string null.
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @author bphillip
|
* @author bphillip
|
||||||
|
@ -1234,7 +1234,11 @@ public abstract class PluginDao extends CoreDao {
|
||||||
int index = 0;
|
int index = 0;
|
||||||
for (Object obj : results) {
|
for (Object obj : results) {
|
||||||
distinctValues[index] = new String[1];
|
distinctValues[index] = new String[1];
|
||||||
distinctValues[index++][0] = String.valueOf(obj);
|
if (obj != null) {
|
||||||
|
distinctValues[index++][0] = String.valueOf(obj);
|
||||||
|
} else {
|
||||||
|
distinctValues[index++][0] = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
List<Object[]> results = (List<Object[]>) this
|
List<Object[]> results = (List<Object[]>) this
|
||||||
|
@ -1247,7 +1251,12 @@ public abstract class PluginDao extends CoreDao {
|
||||||
int cIndex = 0;
|
int cIndex = 0;
|
||||||
|
|
||||||
for (Object obj : result) {
|
for (Object obj : result) {
|
||||||
distinctValues[rIndex][cIndex++] = String.valueOf(obj);
|
if (obj != null) {
|
||||||
|
distinctValues[rIndex][cIndex++] = String
|
||||||
|
.valueOf(obj);
|
||||||
|
} else {
|
||||||
|
distinctValues[rIndex][cIndex++] = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rIndex++;
|
rIndex++;
|
||||||
|
|
0
edexOsgi/com.raytheon.uf.tools.gfesuite/cli/src/ifpnetcdf/ifpnetCDF.py
Executable file → Normal file
0
edexOsgi/com.raytheon.uf.tools.gfesuite/cli/src/ifpnetcdf/ifpnetCDF.py
Executable file → Normal file
0
edexOsgi/com.raytheon.uf.tools.gfesuite/cli/src/iscmosaic/iscMosaic.py
Executable file → Normal file
0
edexOsgi/com.raytheon.uf.tools.gfesuite/cli/src/iscmosaic/iscMosaic.py
Executable file → Normal file
0
edexOsgi/com.raytheon.uf.tools.gfesuite/cli/src/purgeallgrids/purgeAllGrids.py
Executable file → Normal file
0
edexOsgi/com.raytheon.uf.tools.gfesuite/cli/src/purgeallgrids/purgeAllGrids.py
Executable file → Normal file
0
javaUtilities/hydro/hydro.ecl
Normal file
0
javaUtilities/hydro/hydro.ecl
Normal file
0
javaUtilities/hydro/ohd.bias_trans/src/ohd/hseb/bias_trans/BiasDataMgr.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.bias_trans/src/ohd/hseb/bias_trans/BiasDataMgr.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.bias_trans/src/ohd/hseb/bias_trans/BiasDynGroup.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.bias_trans/src/ohd/hseb/bias_trans/BiasDynGroup.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.bias_trans/src/ohd/hseb/bias_trans/BiasDynSet.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.bias_trans/src/ohd/hseb/bias_trans/BiasDynSet.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.bias_trans/src/ohd/hseb/bias_trans/BiasMessageCreator.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.bias_trans/src/ohd/hseb/bias_trans/BiasMessageCreator.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.bias_trans/src/ohd/hseb/bias_trans/BiasMessageReader.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.bias_trans/src/ohd/hseb/bias_trans/BiasMessageReader.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.bias_trans/src/ohd/hseb/bias_trans/MemorySpanGroup.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.bias_trans/src/ohd/hseb/bias_trans/MemorySpanGroup.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.bias_trans/src/ohd/hseb/bias_trans/RadarBias.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.bias_trans/src/ohd/hseb/bias_trans/RadarBias.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.bias_trans/src/ohd/hseb/bias_trans/RfcBiasConstants.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.bias_trans/src/ohd/hseb/bias_trans/RfcBiasConstants.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.bias_trans/src/ohd/hseb/bias_trans/RfcBiasMessage.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.bias_trans/src/ohd/hseb/bias_trans/RfcBiasMessage.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/contour/ContourGrid.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/contour/ContourGrid.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/contour/Interpolator.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/contour/Interpolator.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/contour/RowColToLatLonTranslator.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/contour/RowColToLatLonTranslator.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/contour/RowToLatLonContourer.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/contour/RowToLatLonContourer.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/model/DrawableShape.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/model/DrawableShape.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/model/ElevationMap.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/model/ElevationMap.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/model/HrapRowColToLatLonConverter.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/model/HrapRowColToLatLonConverter.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/model/LatLonBounds.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/model/LatLonBounds.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/model/LatLonPoint.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/model/LatLonPoint.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/model/LatLonPolyline.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/model/LatLonPolyline.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/model/Polygon.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/model/Polygon.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/model/RowColumnPoint.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/model/RowColumnPoint.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/projection/BaseMapProjection.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/projection/BaseMapProjection.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/projection/FlatMapProjection.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/projection/FlatMapProjection.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/projection/MapProjection.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/projection/MapProjection.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/projection/PolarProjection.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/geomap/projection/PolarProjection.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/grid/XmrgGrid.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/grid/XmrgGrid.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/AbsTimeMeasurement.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/AbsTimeMeasurement.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/AbsTimeMeasurementPair.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/AbsTimeMeasurementPair.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/IrregularTimeSeries.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/IrregularTimeSeries.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/IrregularTimeSeriesHolder.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/IrregularTimeSeriesHolder.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/Measurement.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/Measurement.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/MeasurementHolder.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/MeasurementHolder.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/MeasurementPoint.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/MeasurementPoint.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/MeasurementPointComparator.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/MeasurementPointComparator.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/MeasurementPointSeries.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/MeasurementPointSeries.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/MeasuringUnit.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/MeasuringUnit.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/MeasuringUnitConversionException.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/MeasuringUnitConversionException.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/MeasuringUnitType.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/MeasuringUnitType.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/RegularTimeSeries.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/RegularTimeSeries.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/RegularTimeSeriesHolder.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/RegularTimeSeriesHolder.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/RelTimeMeasurement.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/RelTimeMeasurement.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/TimeIntervalMeasurement.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/TimeIntervalMeasurement.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/TimeSeriesEvent.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/TimeSeriesEvent.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/TimeSeriesListener.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/TimeSeriesListener.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/TimeSeriesTotaller.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/measurement/TimeSeriesTotaller.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/model/DurationCode.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/model/DurationCode.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/model/ForecastAdjuster.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/model/ForecastAdjuster.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/model/ForecastAdjusterParams.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/model/ForecastAdjusterParams.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/model/ForecastAdjustmentTest.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/model/ForecastAdjustmentTest.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/model/ForecastBlender.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/model/ForecastBlender.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/model/ForecastInterpolationMethod.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/model/ForecastInterpolationMethod.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/model/LocationDescriptor.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/model/LocationDescriptor.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/model/MonthlyValues.java
Executable file → Normal file
0
javaUtilities/hydro/ohd.common/src/ohd/hseb/model/MonthlyValues.java
Executable file → Normal file
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue