Merge remote branch 'origin/ncep_14.4.1-n' into ncep_15.1.1-n

Conflicts:
	cave/build/p2-build.xml
	cave/com.raytheon.viz.warngen/src/com/raytheon/viz/warngen/gui/WarngenDialog.java
	edexOsgi/com.raytheon.uf.edex.plugin.npp.viirs/utility/edex_static/base/viirs/viirsHeaderMapping.xml

Former-commit-id: c16678bf45 [formerly 3d3cecdeb7bc191fa10e7bcb6e4791cab34daadc]
Former-commit-id: 48c980abe8
This commit is contained in:
Bradley Mabe 2015-08-25 09:55:26 -04:00
commit d05d3909f0
24 changed files with 359 additions and 533 deletions

View file

@ -253,6 +253,9 @@
<antcall target="p2.build.repo">
<param name="feature" value="com.raytheon.uf.viz.acarssounding.feature" />
</antcall>
<antcall target="p2.build.repo">
<param name="feature" value="com.raytheon.uf.viz.ncep.npp.feature" />
</antcall>
<antcall target="p2.build.repo">
<param name="feature" value="com.raytheon.viz.avnfps.feature" />
</antcall>

View file

@ -26,3 +26,4 @@ Require-Bundle: com.raytheon.uf.viz.core;bundle-version="1.14.0",
Export-Package: com.raytheon.uf.viz.d2d.nsharp,
com.raytheon.uf.viz.d2d.nsharp.display,
com.raytheon.uf.viz.d2d.nsharp.rsc
Import-Package: gov.noaa.nws.ncep.viz.soundingrequest

View file

@ -24,6 +24,7 @@ import gov.noaa.nws.ncep.ui.nsharp.NsharpStationInfo;
import gov.noaa.nws.ncep.ui.nsharp.display.NsharpEditor;
import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpResourceHandler;
import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpDataHandling;
import gov.noaa.nws.ncep.ui.nsharp.view.NsharpHandleArchiveFile;
import java.io.BufferedReader;
import java.io.File;
@ -59,6 +60,9 @@ import com.raytheon.uf.viz.core.exception.VizException;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Aug 31, 2011 bsteffen Initial creation
* 2/23/2015 RM#5694,7788 Chin Chen Use NCP's Nsharp text file loader
* and comment out openNspFile()
*
*
* </pre>
*
@ -114,7 +118,7 @@ public class D2DNsharpHandleArchiveFile {
if (isTabular) {
openTabularFile(lines);
} else {
openNspFile(lines);
NsharpHandleArchiveFile.nsharpParseAndLoadTextFile(fileName);////Task#5694
}
} catch (IOException e) {
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), e);
@ -124,57 +128,57 @@ public class D2DNsharpHandleArchiveFile {
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), e);
}
}
public static void openNspFile(List<String> lines) throws ParseException,
VizException {
// It would have been great to reuse some ncep code here but the parsing
// code is tied to the dialog/loading code.
if (lines.size() < 3) {
throw new VizException("Unrecognized file format");
}
NsharpStationInfo stninfo = new NsharpStationInfo();
// First line is all the metadata
String line = lines.remove(0);
line = line.replaceAll(" +", " ");
String[] values = line.split(" ");
if (values.length == 7) {
stninfo.setSndType(values[1]);
String stationId = values[2];
String yearMonthDay = values[3];
String hourMinuteSecond = values[4];
// looks like "LAT=44.847"
String lat = values[5];
// looks like "LON=-93.564"
String lon = values[6];
String dateStr = yearMonthDay + " " + hourMinuteSecond;
Date date = ncepDataFormat.parse(dateStr);
stninfo.setReftime(new Timestamp(date.getTime()));
stninfo.setRangestarttime(new Timestamp(date.getTime()));
stninfo.setStnDisplayInfo(stationId + " " + dateStr);
lat = lat.replace("LAT=", "");
lon = lon.replace("LON=", "");
stninfo.setLatitude(Float.parseFloat(lat));
stninfo.setLongitude(Float.parseFloat(lon));
} else {
// TODO it might be possible to look at each token and throw
// something together
throw new VizException("Unrecognized data headings");
}
// Second line is the headings
String headingLine = lines.remove(0);
// The rest of the lines should be data lines.
List<String> dataLines = new ArrayList<String>();
line = lines.remove(0);
while (!lines.isEmpty()) {
dataLines.add(line);
line = lines.remove(0);
}
List<NcSoundingLayer> layers = parseLayers(headingLine, dataLines);
load(stninfo, layers);
}
//Task#5694: openNspFile() is no longer used.
// public static void openNspFile(List<String> lines) throws ParseException,
// VizException {
// // It would have been great to reuse some ncep code here but the parsing
// // code is tied to the dialog/loading code.
// if (lines.size() < 3) {
// throw new VizException("Unrecognized file format");
// }
// NsharpStationInfo stninfo = new NsharpStationInfo();
//
// // First line is all the metadata
// String line = lines.remove(0);
// line = line.replaceAll(" +", " ");
// String[] values = line.split(" ");
// if (values.length == 7) {
// stninfo.setSndType(values[1]);
// String stationId = values[2];
// String yearMonthDay = values[3];
// String hourMinuteSecond = values[4];
// // looks like "LAT=44.847"
// String lat = values[5];
// // looks like "LON=-93.564"
// String lon = values[6];
// String dateStr = yearMonthDay + " " + hourMinuteSecond;
// Date date = ncepDataFormat.parse(dateStr);
// stninfo.setReftime(new Timestamp(date.getTime()));
// stninfo.setRangestarttime(new Timestamp(date.getTime()));
// stninfo.setStnDisplayInfo(stationId + " " + dateStr);
// lat = lat.replace("LAT=", "");
// lon = lon.replace("LON=", "");
// stninfo.setLatitude(Float.parseFloat(lat));
// stninfo.setLongitude(Float.parseFloat(lon));
// } else {
// // TODO it might be possible to look at each token and throw
// // something together
// throw new VizException("Unrecognized data headings");
// }
// // Second line is the headings
// String headingLine = lines.remove(0);
// // The rest of the lines should be data lines.
// List<String> dataLines = new ArrayList<String>();
// line = lines.remove(0);
// while (!lines.isEmpty()) {
// dataLines.add(line);
// line = lines.remove(0);
// }
//
// List<NcSoundingLayer> layers = parseLayers(headingLine, dataLines);
//
// load(stninfo, layers);
// }
public static void openTabularFile(List<String> lines)
throws ParseException, VizException {

View file

@ -23,7 +23,7 @@ import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingCube;
import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingLayer;
import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingProfile.ObsSndType;
import gov.noaa.nws.ncep.ui.nsharp.NsharpStationInfo;
import gov.noaa.nws.ncep.viz.common.soundingQuery.NcSoundingQuery;
import gov.noaa.nws.ncep.viz.soundingrequest.NcSoundingQuery;
import java.util.Map;

View file

@ -22,8 +22,10 @@ package com.raytheon.uf.viz.d2d.nsharp.rsc;
import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingCube;
import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingLayer;
import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingProfile;
import gov.noaa.nws.ncep.ui.nsharp.NsharpConfigManager;
import gov.noaa.nws.ncep.ui.nsharp.NsharpConfigStore;
import gov.noaa.nws.ncep.ui.nsharp.NsharpStationInfo;
import gov.noaa.nws.ncep.viz.common.soundingQuery.NcSoundingQuery;
import gov.noaa.nws.ncep.viz.soundingrequest.NcSoundingQuery;
import java.util.List;
@ -49,6 +51,8 @@ import com.raytheon.uf.viz.core.exception.VizException;
* Jul 26, 2011 bsteffen Initial creation
* Feb 15, 2013 1638 mschenke Got rid of viz/edex topo classes
* and moved into common
* 04/27/2015 RM#6674&7787 Chin Chen support model sounding query data interpolation and nearest point option
*
*
* </pre>
*
@ -82,9 +86,18 @@ public class GribNSharpResourceData extends D2DNSharpResourceData {
float[][] latLon = { { (float) coordinate.y, (float) coordinate.x } };
String refTimeStr = formatTimestamp(stnInfo.getReftime());
String validTimeStr = formatTimestamp(stnInfo.getRangestarttime());
//RM#6674
NsharpConfigManager mgr =NsharpConfigManager.getInstance();
NsharpConfigStore configStore = mgr.retrieveNsharpConfigStoreFromFs();
boolean gridInterpolation;
if(configStore != null){
gridInterpolation = configStore.getGraphProperty().isGridInterpolation();
}
else
gridInterpolation = true; //by default
NcSoundingCube cube = NcSoundingQuery.mdlSoundingQueryByLatLon(
refTimeStr, validTimeStr, latLon, "grid", getSoundingType(),
false, "-1");
false, "-1", gridInterpolation);
if ((cube != null) && !cube.getSoundingProfileList().isEmpty()) {
NcSoundingProfile profileList = cube.getSoundingProfileList()
.get(0);

View file

@ -22,7 +22,7 @@ package com.raytheon.uf.viz.d2d.nsharp.rsc;
import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingCube;
import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingLayer;
import gov.noaa.nws.ncep.ui.nsharp.NsharpStationInfo;
import gov.noaa.nws.ncep.viz.common.soundingQuery.NcSoundingQuery;
import gov.noaa.nws.ncep.viz.soundingrequest.NcSoundingQuery;
import java.util.Map;

View file

@ -28,7 +28,8 @@ Require-Bundle: org.eclipse.ui,
com.raytheon.uf.viz.datacube
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Bundle-ActivationPolicy: lazy
Export-Package: com.raytheon.uf.viz.npp.viirs.rsc
Export-Package: com.raytheon.uf.viz.npp.viirs.rsc,
com.raytheon.uf.viz.npp.viirs.style
Import-Package: com.raytheon.uf.common.inventory.data,
com.raytheon.uf.common.inventory.exception,
com.raytheon.uf.common.inventory,

View file

@ -37,10 +37,11 @@ import com.raytheon.uf.common.localization.LocalizationContext;
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationType;
import com.raytheon.uf.common.localization.LocalizationFile;
import com.raytheon.uf.common.localization.PathManagerFactory;
import com.raytheon.uf.viz.core.localization.CAVELocalizationAdapter;
import com.raytheon.uf.viz.thinclient.preferences.ThinClientPreferenceConstants;
/**
* TODO Add Description
* A {@link BooleanFieldEditor} which adds a button that can be used to
* synchronize localization files with the server.
*
* <pre>
*
@ -48,7 +49,8 @@ import com.raytheon.uf.viz.core.localization.CAVELocalizationAdapter;
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Nov 22, 2011 bsteffen Initial creation
* Nov 22, 2011 bsteffen Initial creation
* May 29, 2015 4532 bsteffen Notify the preference store when sync is running.
*
* </pre>
*
@ -75,8 +77,9 @@ public class SyncLocalizationEditor extends BooleanFieldEditor {
@Override
protected IStatus run(IProgressMonitor monitor) {
IPathManager pathManager = PathManagerFactory
.getPathManager(new CAVELocalizationAdapter());
getPreferenceStore().firePropertyChangeEvent(ThinClientPreferenceConstants.P_SYNC_REMOTE_LOCALIZATION,
false, true);
IPathManager pathManager = PathManagerFactory.getPathManager();
LocalizationType[] types = { LocalizationType.CAVE_CONFIG,
LocalizationType.CAVE_STATIC,
LocalizationType.COMMON_STATIC };
@ -105,6 +108,8 @@ public class SyncLocalizationEditor extends BooleanFieldEditor {
System.out.println("Time to download " + type + ": "
+ (endTime - startTime) + "ms");
}
getPreferenceStore().firePropertyChangeEvent(ThinClientPreferenceConstants.P_SYNC_REMOTE_LOCALIZATION,
true, false);
monitor.done();
return Status.OK_STATUS;
}

View file

@ -25,6 +25,7 @@ import java.util.Date;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import java.util.concurrent.atomic.AtomicInteger;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.util.IPropertyChangeListener;
@ -53,6 +54,7 @@ import com.raytheon.uf.viz.thinclient.preferences.ThinClientPreferenceConstants;
* Aug 9, 2011 njensen Initial creation
* Aug 13, 2013 2033 mschenke Changed to search all plugins when
* CAVE_STATIC BASE context searched
* May 29, 2015 4532 bsteffen Always use super when sync job is running.
*
* </pre>
*
@ -63,6 +65,12 @@ import com.raytheon.uf.viz.thinclient.preferences.ThinClientPreferenceConstants;
public class ThinClientLocalizationAdapter extends CAVELocalizationAdapter
implements IPropertyChangeListener {
/**
* Whenever there is a sync job running, always call super to allow it to go
* to the server.
*/
private final AtomicInteger syncJobsRunning = new AtomicInteger(0);
private boolean useRemoteFiles = true;
public ThinClientLocalizationAdapter() {
@ -83,6 +91,10 @@ public class ThinClientLocalizationAdapter extends CAVELocalizationAdapter
@Override
public void retrieve(LocalizationFile file)
throws LocalizationOpFailedException {
if (syncJobsRunning.get() > 0) {
super.retrieve(file);
return;
}
try {
File localFile = file.getFile(false);
if (localFile.exists() == false || localFile.length() == 0) {
@ -91,8 +103,15 @@ public class ThinClientLocalizationAdapter extends CAVELocalizationAdapter
} catch (LocalizationOpFailedException e) {
throw e;
} catch (LocalizationException e) {
// Ignore exception
e.printStackTrace();
/*
* At the time of this writing, nothing will actually throw any
* LocalizationException other than LocalizationOpFailedException.
* However since LocalizationFile.getFile(boolean) has a method
* signature indicating it could throw any LocalizationException
* this code should be able to handle any LocalizationException in
* case the implementation of getFile changes in the future.
*/
throw new LocalizationOpFailedException(e);
}
}
@ -108,7 +127,7 @@ public class ThinClientLocalizationAdapter extends CAVELocalizationAdapter
public ListResponse[] listDirectory(LocalizationContext[] contexts,
String path, boolean recursive, boolean filesOnly)
throws LocalizationOpFailedException {
if (useRemoteFiles) {
if (shouldUseRemoteFiles()) {
return super.listDirectory(contexts, path, recursive, filesOnly);
} else {
@ -164,7 +183,7 @@ public class ThinClientLocalizationAdapter extends CAVELocalizationAdapter
public ListResponse[] getLocalizationMetadata(
LocalizationContext[] context, String fileName)
throws LocalizationOpFailedException {
if (useRemoteFiles) {
if (shouldUseRemoteFiles()) {
return super.getLocalizationMetadata(context, fileName);
} else {
List<ListResponse> responses = new ArrayList<ListResponse>(
@ -193,19 +212,30 @@ public class ThinClientLocalizationAdapter extends CAVELocalizationAdapter
@Override
public boolean exists(LocalizationFile file) {
if (useRemoteFiles) {
if (shouldUseRemoteFiles()) {
return super.exists(file);
} else {
return file.getFile().exists();
}
}
private boolean shouldUseRemoteFiles() {
return useRemoteFiles || syncJobsRunning.get() > 0;
}
@Override
public void propertyChange(PropertyChangeEvent event) {
if (ThinClientPreferenceConstants.P_DISABLE_REMOTE_LOCALIZATION
.equals(event.getProperty())) {
useRemoteFiles = !Boolean.valueOf(String.valueOf(event
.getNewValue()));
} else if (ThinClientPreferenceConstants.P_SYNC_REMOTE_LOCALIZATION.equals(event.getProperty())) {
boolean sync = Boolean.valueOf(String.valueOf(event.getNewValue()));
if (sync) {
syncJobsRunning.incrementAndGet();
} else {
syncJobsRunning.decrementAndGet();
}
}
}

View file

@ -19,6 +19,8 @@
**/
package com.raytheon.uf.viz.thinclient.preferences;
import org.eclipse.jface.preference.IPreferenceStore;
/**
* Preference constants for the thin client mode
*
@ -32,6 +34,8 @@ package com.raytheon.uf.viz.thinclient.preferences;
* Jan 14, 2013 1469 bkowal The hdf5 data directory is no longer a preference constant.
* Feb 04, 2014 2704 njensen Consolidate services and pypies proxy addresses
* Jun 24, 2014 3236 njensen Added proxy address options
* May 29, 2015 4532 bsteffen Add sync localization option.
*
*
* </pre>
*
@ -61,6 +65,19 @@ public class ThinClientPreferenceConstants {
public static String P_DISABLE_REMOTE_LOCALIZATION = "disableRemoteLocalization";
/**
* This preference is not stored but is used to send notification through
* the preference store that the {@link #P_CACHE_LOCALIZATION} and
* {@link #P_DISABLE_REMOTE_LOCALIZATION} should be temporarily ignored so
* that the localization files can be synchronized with the server. Before
* performing synchronization, an event should be fired using
* {@link IPreferenceStore#firePropertyChangeEvent(String, Object, Object)}
* with the preference name as {@link #P_SYNC_REMOTE_LOCALIZATION} and a
* newValue of true. When synchronization has completed another event should
* be fired with a newValue of false.
*/
public static String P_SYNC_REMOTE_LOCALIZATION = "syncRemoteFiles";
public static String P_DISABLE_MENU_TIMES = "disableMenuTimes";
public static String P_DISABLE_JMS = "disableJms";

View file

@ -185,7 +185,7 @@
id="com.raytheon.uf.viz.aviation.advisory.feature"
version="0.0.0"/>
<includes
<includes
id="com.raytheon.uf.viz.datadelivery.feature"
version="0.0.0"/>
@ -193,6 +193,10 @@
id="edu.wisc.ssec.cimss.viz.convectprob.feature"
version="0.0.0"/>
<includes
id="com.raytheon.uf.viz.ncep.npp.feature"
version="0.0.0"/>
<requires>
<import feature="com.raytheon.uf.viz.application.feature" version="1.0.0.qualifier"/>
</requires>

View file

@ -17,6 +17,13 @@ then
echo "CAVE and/or gfeclient not installed on this workstation ..exiting"
exit 1
else
$_GFECLI $_MODULE "$@"
CONFDIR=${HOME}/.runProc-$(hostname)-$$
cleanup() {
rm -rf "$CONFDIR"
}
mkdir -p "$CONFDIR" || exit 1
trap cleanup EXIT
$_GFECLI -configuration $CONFDIR $_MODULE "$@"
fi

View file

@ -166,6 +166,7 @@ import com.vividsolutions.jts.geom.Polygon;
* not be as expected if percentage/area is different between the two products. But the
* chance for that to occur is trivial.
* May 7, 2015 ASM #17438 D. Friedman Clean up debug and performance logging.
* Jun 05, 2015 DR 17428 D. Friedman Fixed duration-related user interface issues. Added duration logging.
* </pre>
*
* @author chammack
@ -1095,15 +1096,25 @@ public class WarngenDialog extends CaveSWTDialog implements
* @param durations
*/
public void setDurations(int[] durations) {
String[] durList = new String[durations.length];
ArrayList<String> durList = new ArrayList<String>(durations.length);
boolean isDefaultDurationInList = false;
durationList.removeAll();
for (int i = 0; i < durations.length; i++) {
if (defaultDuration != null
&& defaultDuration.minutes == durations[i]) {
isDefaultDurationInList = true;
}
DurationData data = new DurationData(durations[i]);
durationList.setData(data.displayString, data);
durList[i] = data.displayString;
durList.add(data.displayString);
}
// Add the default duration to the list if what was missing
if (! isDefaultDurationInList && defaultDuration != null) {
durationList.setData(defaultDuration.displayString, defaultDuration);
durList.add(0, defaultDuration.displayString);
}
durationList.setItems(durList);
durationList.setItems(durList.toArray(new String[durList.size()]));
}
/**
@ -1179,6 +1190,9 @@ public class WarngenDialog extends CaveSWTDialog implements
long t0 = System.currentTimeMillis();
try {
monitor.beginTask("Generating product", 1);
statusHandler.debug("using startTime " + startTime.getTime()
+ " endTime " + endTime.getTime());
long t0 = System.currentTimeMillis();
String result = TemplateRunner.runTemplate(
warngenLayer, startTime.getTime(),
endTime.getTime(), selectedBullets,
@ -1328,9 +1342,10 @@ public class WarngenDialog extends CaveSWTDialog implements
* Action for Reset button
*/
private void resetPressed() {
statusHandler.debug("resetPressed");
int durationToUse = getSelectedDuration();
warngenLayer.resetState();
warngenLayer.getStormTrackState().duration = ((DurationData) durationList
.getData(durationList.getItem(durationList.getSelectionIndex()))).minutes;
restoreDuration(durationToUse);
durationList.setEnabled(warngenLayer.getConfiguration()
.isEnableDuration());
if (lineOfStorms.getSelection()) {
@ -1366,6 +1381,7 @@ public class WarngenDialog extends CaveSWTDialog implements
warngenLayer.resetInitialFrame();
warngenLayer.setWarningAction(null);
instructionsLabel.setText("Instructions:");
changeStartEndTimes();
warngenLayer.issueRefresh();
}
@ -1430,8 +1446,11 @@ public class WarngenDialog extends CaveSWTDialog implements
* Select one storm
*/
private void selectOneStorm() {
statusHandler.debug("selectOneStorm");
if (warngenLayer.state.followupData == null) {
int savedDuration = warngenLayer.getStormTrackState().duration;
warngenLayer.resetState();
restoreDuration(savedDuration);
warngenLayer.reset("oneStorm");
warngenLayer.clearWarningGeometries();
warngenLayer.getStormTrackState().dragMeLine = null;
@ -1447,8 +1466,11 @@ public class WarngenDialog extends CaveSWTDialog implements
* Select line of storms
*/
private void selectLineOfStorms() {
statusHandler.debug("selectLineOfStorms");
if (warngenLayer.state.followupData == null) {
int savedDuration = warngenLayer.getStormTrackState().duration;
warngenLayer.resetState();
restoreDuration(savedDuration);
warngenLayer.reset("lineOfStorms");
warngenLayer.clearWarningGeometries();
warngenLayer.getStormTrackState().dragMeLine = null;
@ -1596,6 +1618,7 @@ public class WarngenDialog extends CaveSWTDialog implements
* - The button that has been clicked
*/
private void changeTemplate(String templateName) {
statusHandler.debug("changeTemplate: " + templateName);
String lastAreaSource = warngenLayer.getConfiguration()
.getHatchedAreaSource().getAreaSource();
@ -1689,11 +1712,11 @@ public class WarngenDialog extends CaveSWTDialog implements
}
protected void recreateDurations(Combo durList) {
setDurations(warngenLayer.getConfiguration().getDurations());
if (warngenLayer.getConfiguration().getDefaultDuration() != 0) {
setDefaultDuration(warngenLayer.getConfiguration()
.getDefaultDuration());
}
setDurations(warngenLayer.getConfiguration().getDurations());
durList.setText(defaultDuration.displayString);
endTime = DurationUtil.calcEndTime(startTime, defaultDuration.minutes);
end.setText(df.format(endTime.getTime()));
@ -1754,6 +1777,7 @@ public class WarngenDialog extends CaveSWTDialog implements
FollowupData data = (FollowupData) updateListCbo
.getData(updateListCbo.getItem(updateListCbo
.getSelectionIndex()));
statusHandler.debug("updateListSelected: " + (data != null ? data.getDisplayString() : "(null)"));
Mode currMode = warngenLayer.getStormTrackState().mode;
if (data != null) {
// does not refesh if user selected already highlighted option
@ -1863,6 +1887,8 @@ public class WarngenDialog extends CaveSWTDialog implements
|| (action == WarningAction.EXT)) {
recreateDurations(durationList);
}
} else {
statusHandler.debug("updateListSelected");
}
updateListCbo.pack(true);
productType.layout();
@ -1895,6 +1921,7 @@ public class WarngenDialog extends CaveSWTDialog implements
}
private void changeSelected() {
statusHandler.debug("changeSelected");
if ((validPeriodDlg == null) || validPeriodDlg.isDisposed()) {
validPeriodDlg = new ValidPeriodDialog(shell, startTime, endTime);
validPeriodDlg.setCloseCallback(new ICloseCallback() {
@ -1902,6 +1929,7 @@ public class WarngenDialog extends CaveSWTDialog implements
@Override
public void dialogClosed(Object returnValue) {
int duration = (Integer) returnValue;
statusHandler.debug("changeSelected.dialogClosed: " + duration);
if (duration != -1) {
durationList.setEnabled(false);
endTime.add(Calendar.MINUTE, duration);
@ -1926,6 +1954,7 @@ public class WarngenDialog extends CaveSWTDialog implements
private void durationSelected() {
String selection = durationList.getItem(durationList
.getSelectionIndex());
statusHandler.debug("durationSelected: " + selection);
endTime = DurationUtil.calcEndTime(extEndTime != null ? extEndTime
: startTime,
((DurationData) durationList.getData(selection)).minutes);
@ -2292,8 +2321,7 @@ public class WarngenDialog extends CaveSWTDialog implements
updatePolygon(newWarn);
recreateDurations(durationList);
int duration = ((DurationData) durationList.getData(durationList
.getItem(durationList.getSelectionIndex()))).minutes;
int duration = getSelectedDuration();
warngenLayer.getStormTrackState().duration = duration;
startTime = TimeUtil.newCalendar();
@ -2615,4 +2643,39 @@ public class WarngenDialog extends CaveSWTDialog implements
return defaultTemplate;
}
private void restoreDuration(int duration) {
warngenLayer.getStormTrackState().duration =
warngenLayer.getStormTrackState().newDuration = duration;
warngenLayer.getStormTrackState().geomChanged = true;
}
private int getSelectedDuration() {
Exception excToReport= null;
DurationData data = null;
try {
data = (DurationData) durationList.getData(durationList
.getItem(durationList.getSelectionIndex()));
} catch (RuntimeException e) {
excToReport = e;
}
int duration;
if (data != null) {
duration = data.minutes;
} else {
try {
duration = warngenLayer.getConfiguration().getDefaultDuration();
} catch (RuntimeException e) {
if (excToReport == null) {
excToReport = e;
}
duration = 30;
}
statusHandler.handle(Priority.WARN,
"Unable to determine duration from selection in WarnGen dialog. Using default of "
+ duration + " minutes.", excToReport);
}
statusHandler.debug("selected duration is " + duration);
return duration;
}
}

File diff suppressed because one or more lines are too long

View file

@ -1,4 +1,4 @@
# Version 2015.5.21-0
# Version 2015.6.16-0
import GenericHazards
import string, time, os, re, types, copy, LogStream, collections
@ -1171,25 +1171,26 @@ class TextProduct(HLSTCV_Common.TextProduct):
editAreas = [(self._cwa(), self._cwa())]
intersectAreas = self._computeIntersectAreas(editAreas, argDict)
intersectSampler = self.getSampler(argDict,
(self._intersectAnalysisList_HLS(), self._timeRangeList, intersectAreas))
statList = self.getStatList(intersectSampler,
self._intersectAnalysisList_HLS(),
self._timeRangeList,
"intersect_" + self._cwa())
for period in range(len(statList)):
statDict = statList[period]
self._sampleRankedDiscreteValue('StormSurgeThreat', statDict)
self._sampleMostSignificantDiscreteValue('StormSurgeThreat', statDict)
if len(intersectAreas) != 0:
intersectSampler = self.getSampler(argDict,
(self._intersectAnalysisList_HLS(), self._timeRangeList, intersectAreas))
inundationMax = self._getStatValue(statDict, "InundationMax", "Max")
decidingField = self._samplingDict['StormSurgeThreat']['decidingField']
if decidingField is None or inundationMax > decidingField:
self._samplingDict['StormSurgeThreat']['decidingField'] = inundationMax
self.debug_print("StormSurgeThreat = %s" % (self._samplingDict['StormSurgeThreat']['inputThreatDominant']), 1)
statList = self.getStatList(intersectSampler,
self._intersectAnalysisList_HLS(),
self._timeRangeList,
"intersect_" + self._cwa())
for period in range(len(statList)):
statDict = statList[period]
self._sampleRankedDiscreteValue('StormSurgeThreat', statDict)
self._sampleMostSignificantDiscreteValue('StormSurgeThreat', statDict)
inundationMax = self._getStatValue(statDict, "InundationMax", "Max")
decidingField = self._samplingDict['StormSurgeThreat']['decidingField']
if decidingField is None or inundationMax > decidingField:
self._samplingDict['StormSurgeThreat']['decidingField'] = inundationMax
self.debug_print("StormSurgeThreat = %s" % (self._samplingDict['StormSurgeThreat']['inputThreatDominant']), 1)
def _sampleTCVAdvisory(self, advisory):
self.debug_print("sampling TCV advisory!", 1)

View file

@ -1516,12 +1516,11 @@ class SectionCommon():
pass
# If this is the "default" case
if self._tr == "default" and len(statements) > 0:
if elementName in ["Wind", "Storm Surge"]:
if statements[0].find("If realized, ") == -1:
statements[0] = "If realized, " + statements[0] + \
statements[0][1:]
#if self._tr == "default" and len(statements) > 0:
#
# if elementName in ["Wind", "Storm Surge"]:
# if statements[0].find("If realized, ") == -1:
# statements[0] = "If realized, " + statements[0][0].lower() + statements[0][1:]
return statements

View file

@ -0,0 +1,12 @@
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
<bean class="com.raytheon.uf.common.message.JAXBMessageRegistry" factory-method="register">
<constructor-arg>
<list>
<value>com.raytheon.uf.common.dataplugin.obs.metar.MetarRecord</value>
</list>
</constructor-arg>
</bean>
</beans>

View file

@ -66,5 +66,18 @@
<defaultColormap>NPP/VIIRS/CA (Low Light Vis)</defaultColormap>
</imageStyle>
</styleRule>
<!-- Special Ref 1.378u Satellite Rule based on sample data -->
<styleRule>
<viirsDataMatches>
<parameter>Ref</parameter>
<wavelength>1.378</wavelength>
</viirsDataMatches>
<imageStyle>
<range scale="LINEAR">
<minValue>0</minValue>
<maxValue>0.6</maxValue>
</range>
<defaultColormap>NPP/VIIRS/CA (Low Light Vis)</defaultColormap>
</imageStyle>
</styleRule>
</styleRuleset>

View file

@ -1,406 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<aliasList namespace="GEMPAK">
<alias base="5WAVA">HGHT5</alias>
<alias base="ALBDO">ALBD</alias>
<alias base="ALBDO1hr">ALBD01</alias>
<alias base="ALBDO3hr">ALBD03</alias>
<alias base="ALBDO6hr">ALBD06</alias>
<alias base="ALBDO9hr">ALBD09</alias>
<alias base="ALBD12hr">ALBD12</alias>
<alias base="ALBD18hr">ALBD18</alias>
<alias base="ALBD24hr">ALBD24</alias>
<alias base="ALBD48hr">ALBD48</alias>
<alias base="APCP6hr">P06M</alias>
<alias base="APCP12hr">P12M</alias>
<alias base="APCP18hr">P18M</alias>
<alias base="APCP24hr">P24M</alias>
<alias base="APCP30hr">P30M</alias>
<alias base="APCP36hr">P36M</alias>
<alias base="APCP42hr">P42M</alias>
<alias base="APCP48hr">P48M</alias>
<alias base="APCP54hr">P54M</alias>
<alias base="APCP60hr">P60M</alias>
<alias base="APCP66hr">P66M</alias>
<alias base="APCP72hr">P72M</alias>
<alias base="APCP78hr">P78M</alias>
<alias base="APCP84hr">P84M</alias>
<alias base="APCP90hr">P90M</alias>
<alias base="APCP96hr">P96M</alias>
<alias base="APCP102hr">P102M</alias>
<alias base="APCP108hr">P108M</alias>
<alias base="APCP114hr">P114M</alias>
<alias base="APCP120hr">P120M</alias>
<alias base="APCP126hr">P126M</alias>
<alias base="APCP132hr">P132M</alias>
<alias base="APCP138hr">P138M</alias>
<alias base="APCP144hr">P144M</alias>
<alias base="APCP150hr">P150M</alias>
<alias base="APCP156hr">P156M</alias>
<alias base="APCP162hr">P162M</alias>
<alias base="APCP168hr">P168M</alias>
<alias base="APCP174hr">P174M</alias>
<alias base="APCP180hr">P180M</alias>
<alias base="APCP186hr">P186M</alias>
<alias base="APCP192hr">P192M</alias>
<alias base="APCP198hr">P198M</alias>
<alias base="APCP204hr">P204M</alias>
<alias base="APCP210hr">P210M</alias>
<alias base="APCP216hr">P216M</alias>
<alias base="APCP222hr">P222M</alias>
<alias base="APCP228hr">P228M</alias>
<alias base="APCP234hr">P234M</alias>
<alias base="APCP240hr">P240M</alias>
<alias base="AV">AVOR</alias>
<alias base="BLI">LFT4</alias>
<alias base="CAPE">CAPE</alias>
<alias base="CDCON">CCLD</alias>
<alias base="CFRZR">WXTZ</alias>
<alias base="CFRZR1hr">WXTZ01</alias>
<alias base="CFRZR3hr">WXTZ03</alias>
<alias base="CFRZR6hr">WXTZ06</alias>
<alias base="CFRZR9hr">WXTZ09</alias>
<alias base="CFRZR12hr">WXTZ12</alias>
<alias base="CFRZR18hr">WXTZ18</alias>
<alias base="CFRZR24hr">WXTZ24</alias>
<alias base="CFRZR48hr">WXTZ48</alias>
<alias base="CICEP">WXTP</alias>
<alias base="CICEP1hr">WXTP01</alias>
<alias base="CICEP3hr">WXTP03</alias>
<alias base="CICEP6hr">WXTP06</alias>
<alias base="CICEP9hr">WXTP09</alias>
<alias base="CICEP12hr">WXTP12</alias>
<alias base="CICEP18hr">WXTP18</alias>
<alias base="CICEP24hr">WXTP24</alias>
<alias base="CICEP48hr">WXTP48</alias>
<alias base="CIn">CINS</alias>
<alias base="CLWMR">CLWMR</alias>
<alias base="CP">ACPCP</alias>
<alias base="CP1hr">C01M</alias>
<alias base="CP3hr">C03M</alias>
<alias base="CP6hr">C06M</alias>
<alias base="CP9hr">C09M</alias>
<alias base="CP12hr">C12M</alias>
<alias base="CP18hr">C18M</alias>
<alias base="CP24hr">C24M</alias>
<alias base="CP48hr">C48M</alias>
<alias base="CPOFP">POPZ</alias>
<alias base="CPOZP">POPF</alias>
<alias base="CPRAT1hr">C01M</alias>
<alias base="CPRAT3hr">C03M</alias>
<alias base="CPRAT6hr">C06M</alias>
<alias base="CPRAT9hr">C09M</alias>
<alias base="CPRAT12hr">C12M</alias>
<alias base="CPRAT18hr">C18M</alias>
<alias base="CPRAT24hr">C24M</alias>
<alias base="CPRAT48hr">C48M</alias>
<alias base="CRAIN">WXTR</alias>
<alias base="CRAIN1hr">WXTR01</alias>
<alias base="CRAIN3hr">WXTR03</alias>
<alias base="CRAIN6hr">WXTR06</alias>
<alias base="CRAIN9hr">WXTR09</alias>
<alias base="CRAIN12hr">WXTR12</alias>
<alias base="CRAIN18hr">WXTR18</alias>
<alias base="CRAIN24hr">WXTR24</alias>
<alias base="CRAIN48hr">WXTR48</alias>
<alias base="CSNOW">WXTS</alias>
<alias base="CSNOW1hr">WXTS01</alias>
<alias base="CSNOW3hr">WXTS03</alias>
<alias base="CSNOW6hr">WXTS06</alias>
<alias base="CSNOW9hr">WXTS09</alias>
<alias base="CSNOW12hr">WXTS12</alias>
<alias base="CSNOW18hr">WXTS18</alias>
<alias base="CSNOW24hr">WXTS24</alias>
<alias base="CSNOW48hr">WXTS48</alias>
<alias base="CWAT">CWTR</alias>
<alias base="CWORK">CWRK</alias>
<alias base="CWORK1hr">CWRK01</alias>
<alias base="CWORK3hr">CWRK03</alias>
<alias base="CWORK6hr">CWRK06</alias>
<alias base="CWORK9hr">CWRK09</alias>
<alias base="CWORK12hr">CWRK12</alias>
<alias base="CWORK18hr">CWRK18</alias>
<alias base="CWORK24hr">CWRK24</alias>
<alias base="CWORK48hr">CWRK48</alias>
<alias base="DIRPW">DRCTPW</alias>
<alias base="DIRSW">DRCTSW</alias>
<alias base="DIRWWW">SDWWW</alias>
<alias base="DLWRF">LWRD</alias>
<alias base="DLWRF1hr">LWRD01</alias>
<alias base="DLWRF3hr">LWRD03</alias>
<alias base="DLWRF6hr">LWRD06</alias>
<alias base="DLWRF9hr">LWRD09</alias>
<alias base="DLWRF12hr">LWRD12</alias>
<alias base="DLWRF18hr">LWRD18</alias>
<alias base="DLWRF24hr">LWRD24</alias>
<alias base="DLWRF48hr">LWRD48</alias>
<alias base="DpT">DWPK</alias>
<alias base="DpD">DPDK</alias>
<alias base="DSWRF">SWRD</alias>
<alias base="DSWRF1hr">SWRD01</alias>
<alias base="DSWRF3hr">SWRD03</alias>
<alias base="DSWRF6hr">SWRD06</alias>
<alias base="DSWRF9hr">SWRD09</alias>
<alias base="DSWRF12hr">SWRD12</alias>
<alias base="DSWRF18hr">SWRD18</alias>
<alias base="DSWRF24hr">SWRD24</alias>
<alias base="DSWRF48hr">SWRD48</alias>
<alias base="EMSP">EMSL</alias>
<alias base="EPT">THTE</alias>
<alias base="EVP">EVAP</alias>
<alias base="FLDCP">FLDCP</alias>
<alias base="GeH">DIST</alias>
<alias base="GFLUX">GHFX</alias>
<alias base="GFLUX1hr">GHFX01</alias>
<alias base="GFLUX3hr">GHFX03</alias>
<alias base="GFLUX6hr">GHFX06</alias>
<alias base="GFLUX9hr">GHFX09</alias>
<alias base="GFLUX12hr">GHFX12</alias>
<alias base="GFLUX18hr">GHFX18</alias>
<alias base="GFLUX24hr">GHFX24</alias>
<alias base="GFLUX48hr">GHFX48</alias>
<alias base="GH">HGHT</alias>
<alias base="GHa">HGHTA</alias>
<alias base="HCDC">CLDH</alias>
<alias base="Heli">HLCY</alias>
<alias base="HIdx">HEAT</alias>
<alias base="HINDEX">HINDEX</alias>
<alias base="HPBL">ZPBL</alias>
<alias base="ICAHT">ICAHT</alias>
<alias base="ICEC">ICEC</alias>
<alias base="ICETK">ICET</alias>
<alias base="LAND">LAND</alias>
<alias base="LAPR">LAPS</alias>
<alias base="LCDC">CLDL</alias>
<alias base="LgSP">NCPCP</alias>
<alias base="LgSP1hr">S01M</alias>
<alias base="LgSP3hr">S03M</alias>
<alias base="LgSP6hr">S06M</alias>
<alias base="LgSP9hr">S09M</alias>
<alias base="LgSP12hr">S12M</alias>
<alias base="LgSP18hr">S18M</alias>
<alias base="LgSP24hr">S24M</alias>
<alias base="LgSP48hr">S48M</alias>
<alias base="LHF">FXLH</alias>
<alias base="LHF1hr">FXLH01</alias>
<alias base="LHF3hr">FXLH03</alias>
<alias base="LHF6hr">FXLH06</alias>
<alias base="LHF9hr">FXLH09</alias>
<alias base="LHF12hr">FXLH12</alias>
<alias base="LHF18hr">FXLH18</alias>
<alias base="LHF24hr">FXLH24</alias>
<alias base="LHF48hr">FXLH48</alias>
<alias base="MCDC">CLDM</alias>
<alias base="MIXR">MIXR</alias>
<alias base="MMSP">MMSL</alias>
<alias base="MN2T66hr">TKMN06</alias>
<alias base="MnT">TMNK</alias>
<alias base="MnT1hr">TMNK01</alias>
<alias base="MnT3hr">TMNK03</alias>
<alias base="MnT6hr">TMNK06</alias>
<alias base="MnT9hr">TMNK09</alias>
<alias base="MnT12hr">TMNK12</alias>
<alias base="MnT18hr">TMNK18</alias>
<alias base="MnT24hr">TMNK24</alias>
<alias base="MnT48hr">TMNK48</alias>
<alias base="MX2T66hr">TKMX06</alias>
<alias base="MxT">TMXK</alias>
<alias base="MxT1hr">TMXK01</alias>
<alias base="MxT3hr">TMXK03</alias>
<alias base="MxT6hr">TMXK06</alias>
<alias base="MxT9hr">TMXK09</alias>
<alias base="MxT12hr">TMXK12</alias>
<alias base="MxT18hr">TMXK18</alias>
<alias base="MxT24hr">TMXK24</alias>
<alias base="MxT48hr">TMXK48</alias>
<alias base="O3MR">OZMR</alias>
<alias base="P">PRES</alias>
<alias base="P1hr">PRES01</alias>
<alias base="P3hr">PRES03</alias>
<alias base="P6hr">PRES06</alias>
<alias base="P9hr">PRES09</alias>
<alias base="P12hr">PRES12</alias>
<alias base="P18hr">PRES18</alias>
<alias base="P24hr">PRES24</alias>
<alias base="P48hr">PRES48</alias>
<alias base="P1PS">PERSW1</alias>
<alias base="P2PS">PERSW2</alias>
<alias base="P1WW">PERWW1</alias>
<alias base="P2WW">PERWW2</alias>
<alias base="PERPW">PERDPW</alias>
<alias base="PERSW">PERDSW</alias>
<alias base="PEVAP">PEVAP</alias>
<alias base="PEVPR">PEVP</alias>
<alias base="PLI">LIFT</alias>
<alias base="PLPL">PLPL</alias>
<alias base="PMSL">PMSL</alias>
<alias base="PoT">THTA</alias>
<alias base="PR">PRATE</alias>
<alias base="PR1hr">PR01</alias>
<alias base="PR3hr">PR03</alias>
<alias base="PR6hr">PR06</alias>
<alias base="PR9hr">PR09</alias>
<alias base="PR12hr">PR12</alias>
<alias base="PR18hr">PR18</alias>
<alias base="PR24hr">PR24</alias>
<alias base="PR48hr">PR48</alias>
<alias base="PRESA">PRESA</alias>
<alias base="PVORT">PVOR</alias>
<alias base="PVV">OMEG</alias>
<alias base="PW">PWTR</alias>
<alias base="RH">RELH</alias>
<alias base="SATD">SATD</alias>
<alias base="SCP">SCVR</alias>
<alias base="SH">SPFH</alias>
<alias base="SHF">FXSH</alias>
<alias base="SHF1hr">FXSH01</alias>
<alias base="SHF3hr">FXSH03</alias>
<alias base="SHF6hr">FXSH06</alias>
<alias base="SHF9hr">FXSH09</alias>
<alias base="SHF12hr">FXSH12</alias>
<alias base="SHF18hr">FXSH18</alias>
<alias base="SHF24hr">FXSH24</alias>
<alias base="SHF48hr">FXSH48</alias>
<alias base="SLI">LIFT</alias>
<alias base="SnD">SNDM</alias>
<alias base="SOILW">SOIM</alias>
<alias base="SUNSD">SUNSD</alias>
<alias base="SWDIR">DRCTSW</alias>
<alias base="SWELL">HGHTSW</alias>
<alias base="SWPER">PERDSW</alias>
<alias base="T">TMPK</alias>
<alias base="T1hr">TMPK01</alias>
<alias base="T3hr">TMPK03</alias>
<alias base="T6hr">TMPK06</alias>
<alias base="T9hr">TMPK09</alias>
<alias base="T12hr">TMPK12</alias>
<alias base="T18hr">TMPK18</alias>
<alias base="T24hr">TMPK24</alias>
<alias base="T48hr">TMPK48</alias>
<alias base="Ta">TMPKA</alias>
<alias base="TCC">TCLD</alias>
<alias base="TCC1hr">TCLD01</alias>
<alias base="TCC3hr">TCLD03</alias>
<alias base="TCC6hr">TCLD06</alias>
<alias base="TCC9hr">TCLD09</alias>
<alias base="TCC12hr">TCLD12</alias>
<alias base="TCC18hr">TCLD18</alias>
<alias base="TCC24hr">TCLD24</alias>
<alias base="TCC48hr">TCLD48</alias>
<alias base="TCWAT">TCWTR</alias>
<alias base="ThP">TSTM</alias>
<alias base="TOZNE">TOZO</alias>
<alias base="TP">APCP</alias>
<alias base="TP1hr">P01M</alias>
<alias base="TP3hr">P03M</alias>
<alias base="TP6hr">P06M</alias>
<alias base="TP9hr">P09M</alias>
<alias base="TP12hr">P12M</alias>
<alias base="TP18hr">P18M</alias>
<alias base="TP24hr">P24M</alias>
<alias base="TP48hr">P48M</alias>
<alias base="TSOIL">SLTK</alias>
<alias base="U-GWD">UGWD</alias>
<alias base="U-GWD1hr">UGWD01</alias>
<alias base="U-GWD3hr">UGWD03</alias>
<alias base="U-GWD6hr">UGWD06</alias>
<alias base="U-GWD9hr">UGWD09</alias>
<alias base="U-GWD12hr">UGWD12</alias>
<alias base="U-GWD18hr">UGWD18</alias>
<alias base="U-GWD24hr">UGWD24</alias>
<alias base="U-GWD48hr">UGWD48</alias>
<alias base="UFLX">URELFX</alias>
<alias base="UFLX1hr">URELFX01</alias>
<alias base="UFLX3hr">URELFX03</alias>
<alias base="UFLX6hr">URELFX06</alias>
<alias base="UFLX9hr">URELFX09</alias>
<alias base="UFLX12hr">URELFX12</alias>
<alias base="UFLX18hr">URELFX18</alias>
<alias base="UFLX24hr">URELFX24</alias>
<alias base="UFLX48hr">URELFX48</alias>
<alias base="ULWRF">LWRU</alias>
<alias base="ULWRF1hr">LWRU01</alias>
<alias base="ULWRF3hr">LWRU03</alias>
<alias base="ULWRF6hr">LWRU06</alias>
<alias base="ULWRF9hr">LWRU09</alias>
<alias base="ULWRF12hr">LWRU12</alias>
<alias base="ULWRF18hr">LWRU18</alias>
<alias base="ULWRF24hr">LWRU24</alias>
<alias base="ULWRF48hr">LWRU48</alias>
<alias base="USTM">USTRM</alias>
<alias base="VSTM">VSTRM</alias>
<alias base="USWRF">SWRU</alias>
<alias base="USWRF1hr">SWRU01</alias>
<alias base="USWRF3hr">SWRU03</alias>
<alias base="USWRF6hr">SWRU06</alias>
<alias base="USWRF9hr">SWRU09</alias>
<alias base="USWRF12hr">SWRU12</alias>
<alias base="USWRF18hr">SWRU18</alias>
<alias base="USWRF24hr">SWRU24</alias>
<alias base="USWRF48hr">SWRU48</alias>
<alias base="uW">UREL</alias>
<alias base="vW">VREL</alias>
<alias base="VAFTAD1hr">VASH01</alias>
<alias base="VAPP">VAPR</alias>
<alias base="VFLX">VRELFX</alias>
<alias base="VFLX1hr">VRELFX01</alias>
<alias base="VFLX3hr">VRELFX03</alias>
<alias base="VFLX6hr">VRELFX06</alias>
<alias base="VFLX9hr">VRELFX09</alias>
<alias base="VFLX12hr">VRELFX12</alias>
<alias base="VFLX18hr">VRELFX18</alias>
<alias base="VFLX24hr">VRELFX24</alias>
<alias base="VFLX48hr">VRELFX48</alias>
<alias base="V-GWD">VGWD</alias>
<alias base="V-GWD1hr">VGWD01</alias>
<alias base="V-GWD3hr">VGWD03</alias>
<alias base="V-GWD6hr">VGWD06</alias>
<alias base="V-GWD9hr">VGWD09</alias>
<alias base="V-GWD12hr">VGWD12</alias>
<alias base="V-GWD18hr">VGWD18</alias>
<alias base="V-GWD24hr">VGWD24</alias>
<alias base="V-GWD48hr">VGWD48</alias>
<alias base="Vis">VSBY</alias>
<alias base="VPT">THTV</alias>
<alias base="VRATE">VRATE</alias>
<alias base="VSS">VWSH</alias>
<alias base="VTMP">TVRK</alias>
<alias base="VWSH">VWSH</alias>
<alias base="WATR">WATR</alias>
<alias base="WATR1hr">WATR01</alias>
<alias base="WATR3hr">WATR03</alias>
<alias base="WATR6hr">WATR06</alias>
<alias base="WATR9hr">WATR09</alias>
<alias base="WATR12hr">WATR12</alias>
<alias base="WATR18hr">WATR18</alias>
<alias base="WATR24hr">WATR24</alias>
<alias base="WATR48hr">WATR48</alias>
<alias base="WD">DRCT</alias>
<alias base="WEASD">SWEM</alias>
<alias base="WGH">HGHT5</alias>
<alias base="WGS">GUST</alias>
<alias base="WILT">WILT</alias>
<alias base="WMIXE">ENRG</alias>
<alias base="WS">SPED</alias>
<alias base="WVDIR">DRCTWW</alias>
<alias base="WVHGT">HGHTWW</alias>
<alias base="WVPER">PERDWW</alias>
</aliasList>

View file

@ -36,6 +36,11 @@
<regionInfo id="TIPQ">
<region>Puerto Rico</region>
</regionInfo>
<!-- Global region -->
<regionInfo id="TIPG">
<region>Global</region>
</regionInfo>
<!-- I1 -->
<channelInfo id="01">
@ -130,10 +135,11 @@
<resolution>750.0</resolution>
</channelInfo>
<!-- DNB replace id when known -->
<channelInfo id="??">
<channelType>Moderate</channelType>
<wavelength>0.7</wavelength>
<resolution>750.0</resolution>
</channelInfo>
</viirsHeaderMapping>
<!-- DNB/NCC -->
<channelInfo id="10">
<channelType>Moderate</channelType>
<wavelength>0.7</wavelength>
<channel>10</channel>
<resolution>750.0</resolution>
</channelInfo>
</viirsHeaderMapping>

View file

@ -41,38 +41,42 @@ def __parseCommandLine():
parser = UsageArgumentParser.UsageArgumentParser(prog='retrieveActivity',description="Retrieve PGEN Activities from EDEX. When invoked without any arguments, retrieveActivity is run in interactive mode.")
bgroup = parser.add_argument_group(title='batch',description='For running in scripts and/or batch mode.')
bgroup.add_argument("-l*", action="store", dest="label",
help="Activity Label being requested",
required=False, metavar="label")
bgroup.add_argument("-t*", action="store", dest="type",
bgroup.add_argument("-type", action="store", dest="type",
help="Activity Type being requested",
required=False, metavar="type")
required=False, metavar=" type")
bgroup.add_argument("-st", action="store", dest="subtype",
help="Activity Subtype being requested",
required=False, metavar="subtype")
bgroup.add_argument("-d*", action="store", dest="reftime",
required=False, metavar=" subtype")
bgroup.add_argument("-tag", action="store", dest="tagId",
help="Tag ID being requested",
required=False, metavar=" tag")
bgroup.add_argument("-l", action="store", dest="label",
help="Activity Label being requested",
required=False, metavar=" label")
bgroup.add_argument("-time", action="store", dest="reftime",
help="Activity Ref Time being requested (YYYY-MM-DD_HH:MM)",
required=False, metavar="reftime")
bgroup.add_argument("-n*", action="store", dest="name",
required=False, metavar=" time")
bgroup.add_argument("-n", action="store", dest="name",
help="Activity Name being requested",
required=False, metavar="name")
required=False, metavar=" name")
bgroup.add_argument("-f", action="store", dest="fullpath",
help="Write out XML with full path? (Yes/No)",
required=False, metavar="fullpath")
required=False, metavar=" Yes/No")
bgroup = parser.add_argument_group(title='Note',description='Pattern match with "*" is allowed for -l, -t, -d, and -n. E.g, -l "*CCFP*3*" will match any activities whose label contains CCFP and 3.')
bgroup = parser.add_argument_group(title='Note',description='Pattern matching with "*" is allowed for -type, -l, -time, and -n. E.g., -l "*CCFP*3*" will match any activities whose label contains CCFP and 3.')
options = parser.parse_args()
options.interactive = False
if (options.label == None and options.type == None and
options.reftime == None and options.subtype == None and
options.tagId == None and
options.fullpath == None and options.name == None):
options.interactive = True
else:
if (options.label == None and options.type == None and
options.reftime == None and options.name == None):
print "Must enter values for at least one of -l, -t, -d, or -n"
print "Must enter values for at least one of -type, -l, -d, or -n"
exit(0)
logger.debug("Command-line arguments: " + str(options))
@ -100,17 +104,24 @@ def main():
mu = ActivityUtil.ActivityUtil()
activityMap = mu.getActivityMap()
# Replace a space with the "_" in the type, accepting "CONV SIGMET" & "OUTL SIGMET".
reqtype = None
if ( options.type != None ):
reqtype = options.type;
reqtype = options.type.replace(" ", "_");
if ( options.subtype != None ) :
reqtype = options.type + "(" + options.subtype + ")"
# Form the matching pattern for tag ID
tagID = None
if ( options.tagId != None):
tagID = "*\." + options.tagId + "\.*"
records = []
for key in activityMap.iterkeys():
recs = activityMap[key]
for rec in recs:
if ( mu.stringMatcher(options.label, rec["activityLabel"]) and
mu.stringMatcher(tagID, rec["activityLabel"]) and
mu.stringMatcher(reqtype, key ) and
mu.stringMatcher(options.name, rec["activityName"] ) ):
#Remove sec.msec from record's refTime
@ -122,7 +133,9 @@ def main():
shortTime = dbRefTime
#Replace the "_" with a whitespace in reftime.
optionTime = options.reftime.replace("_", " ")
optionTime = options.reftime
if ( optionTime != None ):
optionTime = optionTime.replace("_", " ")
if ( mu.stringMatcher( optionTime, shortTime ) ):
records.append( rec )
@ -246,4 +259,4 @@ class RetrieveGui(Frame):
if __name__ == '__main__':
main()
main()

View file

@ -0,0 +1,21 @@
diff -ur thrift-0.9.0/lib/cpp/src/thrift/transport/THttpTransport.cpp thrift-0.9.0-chunked-encoding-fix/lib/cpp/src/thrift/transport/THttpTransport.cpp
--- thrift-0.9.0/lib/cpp/src/thrift/transport/THttpTransport.cpp 2012-10-12 00:58:06.000000000 +0000
+++ thrift-0.9.0-chunked-encoding-fix/lib/cpp/src/thrift/transport/THttpTransport.cpp 2015-05-08 21:14:29.532529766 +0000
@@ -90,8 +90,8 @@
size = readChunked();
} else {
size = readContent(contentLength_);
+ readHeaders_ = true;
}
- readHeaders_ = true;
return size;
}
@@ -102,6 +102,7 @@
uint32_t chunkSize = parseChunkSize(line);
if (chunkSize == 0) {
readChunkedFooters();
+ readHeaders_ = true;
} else {
// Read data content
length += readContent(chunkSize);

View file

@ -0,0 +1,15 @@
diff -ur thrift-0.9.0/lib/cpp/src/thrift/transport/THttpTransport.cpp thrift-0.9.0-http-refill/lib/cpp/src/thrift/transport/THttpTransport.cpp
--- thrift-0.9.0/lib/cpp/src/thrift/transport/THttpTransport.cpp 2012-10-12 00:58:06.000000000 +0000
+++ thrift-0.9.0-http-refill/lib/cpp/src/thrift/transport/THttpTransport.cpp 2015-06-19 10:50:02.818636967 +0000
@@ -80,7 +80,10 @@
uint32_t size;
// Get more data!
- refill();
+ uint32_t avail = httpBufLen_ - httpPos_;
+ if (avail == 0) {
+ refill();
+ }
if (readHeaders_) {
readHeaders();