Merge branch 'unidata_20.3.2' of github.com:Unidata/awips2 into unidata_20.3.2-windows

This commit is contained in:
Tiffany Meyer 2023-04-05 14:17:11 -05:00
commit 944bc331be
8 changed files with 525 additions and 115 deletions

View file

@ -1,7 +1,7 @@
#!/bin/bash
# Version
export AWIPSII_VERSION="20.3.2"
export AWIPSII_RELEASE="0.1"
export AWIPSII_RELEASE="0.2"
# Author
export AWIPSII_BUILD_VENDOR="UCAR"
export AWIPSII_BUILD_SITE="Unidata"

View file

@ -98,6 +98,7 @@ import org.locationtech.jts.geom.prep.PreparedGeometryFactory;
* Mar 15, 2022 srcarter@ucar Add support for display settings for outline, fill, text and time displays
* Jun 24, 2022 srcarter@ucar Add 'statement/other' display settings, set enabled for only relevant WWA types
* Jun 28, 2022 srcarter@ucar Display sampling based on new 'sampling' settings
* Mar 27, 2023 srcarter@ucar Optimize drawing to improve performance
*
* </pre>
*
@ -137,6 +138,28 @@ public abstract class AbstractWWAResource extends
*/
protected boolean project = false;
/**
* the display color
*/
protected RGB color = null;
/**
* the text string that can be displayed
*/
protected String textStr = null;
/**
* the time string that can be displayed
*/
protected String timeStr = null;
/**
* the stylized emergency display string
*/
protected DrawableString emergencyDS = null;
/**
* the stylized params display string
*/
protected DrawableString paramsDS = null;
}
/** Whether to display warning outlines by default */
@ -202,6 +225,13 @@ public abstract class AbstractWWAResource extends
private static final String WATCH_SIG = "A";
private static final String ADVISORY_SIG = "Y";
// Current drawing objects
private int currentFrameIdx = Integer.MIN_VALUE;
private TimeRange currentFramePeriod = null;
private boolean currentLastFrame = false;
private HashMap<String, WarningEntry> currentCandidates = new HashMap<>();
private float currentZoom = Float.MIN_VALUE;
/** The dialog used to change display properties */
private DrawingPropertiesDialog drawingDialog;
@ -420,6 +450,13 @@ public abstract class AbstractWWAResource extends
}
}
int index = info.getFrameIndex();
boolean framesChanged = false;
//only do the frame logic if the frame has changed
if(currentFrameIdx != index) {
framesChanged = true;
currentFrameIdx = index;
currentCandidates.clear();
if (!this.recordsToLoad.isEmpty()) {
this.updateDisplay(target);
}
@ -441,13 +478,17 @@ public abstract class AbstractWWAResource extends
framePeriod = getLastFrameTimeRange(thisFrameTime.getRefTime());
lastFrame = true;
}
currentFramePeriod = framePeriod;
currentLastFrame = lastFrame;
}
synchronized (paintLock) {
HashMap<String, WarningEntry> candidates = new HashMap<>();
if(currentCandidates.size() == 0 || framesChanged) {
for (WarningEntry entry : entryMap.values()) {
if (matchesFrame(entry, paintProps.getDataTime(), framePeriod,
lastFrame)) {
if (matchesFrame(entry, paintProps.getDataTime(), currentFramePeriod,
currentLastFrame)) {
String key = getEventKey(entry);
WarningEntry current = candidates.get(key);
WarningEntry current = currentCandidates.get(key);
if (current == null
|| current.record.getIssueTime().before(
@ -456,11 +497,17 @@ public abstract class AbstractWWAResource extends
entry.record.getIssueTime()) && current.record
.getInsertTime().before(
entry.record.getInsertTime()))) {
candidates.put(key, entry);
currentCandidates.put(key, entry);
}
}
}
for (WarningEntry entry : candidates.values()) {
}
//If there are no entries, end here
if(currentCandidates.values() == null) {
return;
}
for (WarningEntry entry : currentCandidates.values()) {
AbstractWarningRecord record = entry.record;
boolean drawShape = true;
boolean drawOutline = true;
@ -510,10 +557,13 @@ public abstract class AbstractWWAResource extends
entry.project = false;
}
if(entry.color == null) {
RGB displaycolor = color;
if ( ! record.getPil().equals("SPS")) {
displaycolor = RGBColors.getRGBColor(getPhensigColor(record.getPhensig()));
}
entry.color = displaycolor;
}
if(entry != null){
//draw shape
@ -532,24 +582,14 @@ public abstract class AbstractWWAResource extends
target.drawWireframeShape(
entry.wireframeShape,
displaycolor,
entry.color,
outlineWidth, lineStyle);
}
}
if (record != null && record.getGeometry() != null) {
// Calculate the upper left portion of the polygon
Coordinate upperLeft = new Coordinate(180, -90);
for (Coordinate c : record.getGeometry().getCoordinates()) {
if (c.y - c.x > upperLeft.y - upperLeft.x) {
upperLeft = c;
}
}
double[] d = descriptor.worldToPixel(new double[] {
upperLeft.x, upperLeft.y });
d[0] -= paintProps.getZoomLevel() * 100;
//only calculate the drawable strings the first time through
if(entry.paramsDS == null || (entry.emergencyDS == null && EmergencyType.isEmergency(record.getRawmessage()))){
double mapWidth = descriptor.getMapWidth()
* paintProps.getZoomLevel() / 1000;
@ -571,35 +611,84 @@ public abstract class AbstractWWAResource extends
12);
}
DrawableString params = new DrawableString(textToPrint, displaycolor);
DrawableString params = new DrawableString(textToPrint, entry.color);
params.font = warningsFont;
params.setCoordinates(d[0], d[1]);
params.horizontalAlignment = HorizontalAlignment.RIGHT;
params.verticallAlignment = VerticalAlignment.BOTTOM;
params.magnification = getCapability(
MagnificationCapability.class).getMagnification();
entry.paramsDS = params;
// Draws the string again to have it appear bolder
if (EmergencyType.isEmergency(record.getRawmessage())) {
// moves over text to add EMER in a different font
textToPrint[1] = String.format("%1$-23" + "s",
textToPrint[1]);
params.setText(textToPrint, displaycolor);
params.setText(textToPrint, entry.color);
DrawableString emergencyString = new DrawableString(
params);
emergencyString.setCoordinates(d[0],
d[1] + (paintProps.getZoomLevel()) * 90);
emergencyString.font = emergencyFont;
emergencyString.setText(new String[] { "", "",
" " + EmergencyType.EMER, "" }, displaycolor);
target.drawStrings(emergencyString);
" " + EmergencyType.EMER, "" }, entry.color);
entry.emergencyDS = emergencyString;
}
target.drawStrings(params);
entry.textStr = fullText[0];
entry.timeStr = fullText[1];
calculateTextPosition(entry, paintProps);
}
//if zoom has changed, recalucate text positions
if(currentZoom != paintProps.getZoomLevel()) {
calculateTextPosition(entry, paintProps);
}
if (EmergencyType.isEmergency(record.getRawmessage())) {
target.drawStrings(entry.emergencyDS);
}
String[] currentStrs = {"",""};
if(drawText) {
currentStrs[0] = entry.textStr;
}
if(drawTime) {
currentStrs[1] = entry.timeStr;
}
entry.paramsDS.setText(currentStrs, entry.color);
target.drawStrings(entry.paramsDS);
}
}
currentZoom = paintProps.getZoomLevel();
}
}
private void calculateTextPosition(WarningEntry entry, PaintProperties paintProps) {
AbstractWarningRecord record = entry.record;
// Calculate the upper left portion of the polygon
Coordinate upperLeft = new Coordinate(180, -90);
for (Coordinate c : record.getGeometry().getCoordinates()) {
if (c.y - c.x > upperLeft.y - upperLeft.x) {
upperLeft = c;
}
}
double[] d = descriptor.worldToPixel(new double[] {
upperLeft.x, upperLeft.y });
d[0] -= paintProps.getZoomLevel() * 100;
//update the drawable strings
if(entry.emergencyDS != null) {
entry.emergencyDS.setCoordinates(d[0], d[1] + (paintProps.getZoomLevel()) * 90);
}
if(entry.paramsDS != null) {
entry.paramsDS.setCoordinates(d[0], d[1]);
}
}
@ -688,6 +777,9 @@ public abstract class AbstractWWAResource extends
public synchronized void addRecord(PluginDataObject[] pdos)
throws VizException {
//data has changed, so clear the current drawing candidates
currentCandidates.clear();
for (PluginDataObject pdo : pdos) {
if (pdo instanceof AbstractWarningRecord) {
AbstractWarningRecord record = (AbstractWarningRecord) pdo;
@ -750,7 +842,7 @@ public abstract class AbstractWWAResource extends
@SuppressWarnings("unchecked")
protected void requestData(DataTime earliest) throws VizException {
System.out.println("requesting data");
// System.out.println("requesting data");
Map<String, RequestConstraint> map = (Map<String, RequestConstraint>) resourceData
.getMetadataMap().clone();
if (earliestRequested != null) {

View file

@ -0,0 +1,259 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<colorMap>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="0.0" b="0.0" g="0.0" r="0.0"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.75686276" g="0.9137255" r="0.7647059"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.77254903" r="0.5019608"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.96862745" r="0.96862745"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.7607843" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="0.5019608" g="0.5019608" r="0.9019608"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
<color a="1.0" b="1.0" g="0.5019608" r="1.0"/>
</colorMap>

View file

@ -43,18 +43,6 @@
<substitute value="PGWK48" key="wmo" />
<substitute value="0" key="posOff" />
</contribute>
<contribute xsi:type="bundleItem" useReferenceTime="true"
file="bundles/Redbook.xml" menuText="Thunderstorm Prob"
timeQuery="true" id="thunderstormProb">
<substitute value="PGWB44" key="wmo" />
<substitute value="0" key="posOff" />
</contribute>
<contribute xsi:type="bundleItem" useReferenceTime="true"
file="bundles/Redbook.xml" menuText="Severe Thunderstorm Prob"
timeQuery="true" id="severeThunderstormProb">
<substitute value="PGWB45" key="wmo" />
<substitute value="0" key="posOff" />
</contribute>
<contribute xsi:type="bundleItem" useReferenceTime="true"
file="bundles/Redbook.xml" menuText="Day 1 Hail outlook"
timeQuery="true" id="day1Hailoutlook">
@ -103,12 +91,14 @@
<substitute value="PZNK00" key="wmo" />
<substitute value="0" key="posOff" />
</contribute>
<!--
<contribute xsi:type="bundleItem" useReferenceTime="true"
file="bundles/Redbook.xml" menuText="Day 4-8 Composite Severe Outlook"
timeQuery="true" id="day4to8CompositeSevereOutlook">
<substitute value="PGNM98" key="wmo" />
<substitute value="0" key="posOff" />
</contribute>
-->
<contribute xsi:type="bundleItem" useReferenceTime="true"
file="bundles/Redbook.xml" menuText="Active Mesoscale Disc Summary"
timeQuery="true" id="activeMesoscaleDiscSummary">

View file

@ -0,0 +1,45 @@
<bundle xmlns:ns2="group">
<displayList>
<displays xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="d2DMapRenderableDisplay" scale="CONUS" density="1.0" magnification="1.0" zoomLevel="0.8015667796134949" mapCenter="-87.85607154045267 40.15162011360498 0.0">
<descriptor xsi:type="mapDescriptor">
<resource>
<loadProperties xsi:type="gridLoadProperties" displayType="IMAGE" loadWithoutData="false">
<capabilities>
<capability xsi:type="imagingCapability" contrast="1.0" brightness="1.0" interpolationState="true" alpha="1.0"/>
<capability xsi:type="outlineCapability" lineStyle="SOLID" outlineOn="true" outlineWidth="1"/>
</capabilities>
<resourceType>PLAN_VIEW</resourceType>
</loadProperties>
<properties isSystemResource="false" isBlinking="false" isMapLayer="false" isHoverOn="false" isVisible="true">
<pdProps maxDisplayWidth="100000000" minDisplayWidth="0"/>
</properties>
<resourceData xsi:type="gridResourceData" retrieveData="true" isUpdatingOnMetadataOnly="false" isRequeryNecessaryOnTimeMatch="true">
<metadataMap>
<mapping key="info.parameter.abbreviation">
<constraint constraintValue="CXR" constraintType="EQUALS"/>
</mapping>
<mapping key="info.datasetId">
<constraint constraintValue="${modelName}" constraintType="EQUALS"/>
</mapping>
<mapping key="pluginName">
<constraint constraintValue="grid" constraintType="EQUALS"/>
</mapping>
<mapping key="info.level.masterLevel.name">
<constraint constraintValue="EA" constraintType="EQUALS"/>
</mapping>
<mapping key="info.level.levelonevalue">
<constraint constraintValue="0.0" constraintType="EQUALS"/>
</mapping>
<mapping key="info.level.leveltwovalue">
<constraint constraintType="EQUALS" constraintValue="-999999.0"/>
</mapping>
</metadataMap>
<alertParser xsi:type="dataCubeAlertMessageParser"/>
</resourceData>
</resource>
<timeMatcher xsi:type="d2DTimeMatcher" deltaFilter="0" forecastFilter="0"/>
<numberOfFrames>${frameCount}</numberOfFrames>
</descriptor>
</displays>
</displayList>
</bundle>

View file

@ -78,6 +78,9 @@
<contribute xsi:type="bundleItem" file="bundles/grid/ModelFamilyHelicity.xml"
menuText="Helicity / Storm-Relative Flow" id="" useReferenceTime="true">
</contribute>
<contribute xsi:type="bundleItem" file="bundles/grid/CompRefl.xml"
menuText="Composite Reflectivity" id="" useReferenceTime="true">
</contribute>
<contribute xsi:type="bundleItem" file="bundles/grid/Hail.xml"
menuText="Hail Parameters" id="" useReferenceTime="true">
</contribute>

View file

@ -826,7 +826,7 @@ m/s| 1.0 | 0.0 | 4 | | |..|8000F0FF| | 0 | 5
<parameter>geoVort</parameter>
</paramLevelMatches>
<contourStyle>
<displayUnits label="/1e5s">/s*1.0E5</displayUnits>
<displayUnits label="/1e5s">/100000</displayUnits>
<contourLabeling labelSpacing="4" minMaxLabelFormat="#"
minLabel="N" maxLabel="X">
<increment>2</increment>
@ -846,7 +846,7 @@ m/s| 1.0 | 0.0 | 4 | | |..|8000F0FF| | 0 | 5
<parameter>RV</parameter>
</paramLevelMatches>
<contourStyle>
<displayUnits label="/1e5s">/s*1.0E5</displayUnits>
<displayUnits label="/1e5s">/100000</displayUnits>
<smoothingDistance>100</smoothingDistance>
<contourLabeling labelSpacing="4" minMaxLabelFormat="#"
minLabel="N" maxLabel="X">
@ -2842,7 +2842,7 @@ C | 1 | 0 | 4 | | |..|8000F0FF|,,,80 | 0 | 2
<parameter>AV</parameter>
</paramLevelMatches>
<contourStyle>
<displayUnits label="/1e5s">/s*1.0E5</displayUnits>
<displayUnits label="/1e5s">/100000</displayUnits>
<smoothingDistance>80</smoothingDistance>
<contourLabeling labelSpacing="4" minMaxLabelFormat="#"
minLabel="N" maxLabel="X">
@ -4233,13 +4233,12 @@ in | .03937 | 0 | 4 | | |..|8000F0FF| | 16 | \
<creatingEntity>HiResW-ARW-AK</creatingEntity>
<creatingEntity>HiResW-ARW-PR</creatingEntity>
<creatingEntity>HiResW-ARW-SJU</creatingEntity>
<creatingEntity>HRRR</creatingEntity>
<parameter>AV</parameter>
<parameter>RV</parameter>
<parameter>geoVort</parameter>
</paramLevelMatches>
<contourStyle>
<displayUnits label="/1e5s">/s*1.0E5</displayUnits>
<displayUnits label="/1e5s">/100000</displayUnits>
<smoothingDistance>100</smoothingDistance>
<contourLabeling labelSpacing="4">
<increment>8</increment>

View file

@ -1462,7 +1462,7 @@
<parameter>geoVort</parameter>
</paramLevelMatches>
<imageStyle>
<displayUnits label="/1e5s">/s*1.0E5</displayUnits>
<displayUnits label="/1e5s">/100000</displayUnits>
<range scale="LINEAR">
<minValue>-5</minValue>
<maxValue>30</maxValue>
@ -2166,7 +2166,7 @@
<minValue>0</minValue>
<maxValue>80</maxValue>
</range>
<defaultColormap>Radar/Storm Total Precip</defaultColormap>
<defaultColormap>HRRR Reflectivity</defaultColormap>
<colorbarLabeling>
<increment>5</increment>
</colorbarLabeling>
@ -4613,6 +4613,28 @@
</colorbarLabeling>
</imageStyle>
</styleRule>
<styleRule>
<paramLevelMatches>
<creatingEntity>SPCGuide</creatingEntity>
<parameter>SRCONO</parameter>
</paramLevelMatches>
<imageStyle>
<!-- filterLow="true" -->
<range scale="LINEAR">
<minValue>1</minValue>
<maxValue>8</maxValue>
</range>
<defaultColormap>SPC Outlook</defaultColormap>
<dataMapping>
<entry displayValue="2.5" pixelValue="2.5" label="TSTM" sample="TSTM" />
<entry displayValue="3.5" pixelValue="3.5" label="MRGL" sample="MRGL"/>
<entry displayValue="4.5" pixelValue="4.5" label="SLGT" sample="SLGT" />
<entry displayValue="5.5" pixelValue="5.5" label="ENH" sample="ENH" />
<entry displayValue="6.5" pixelValue="6.5" label="MDT" sample="MDT" />
<entry displayValue="7.5" pixelValue="7.5" label="HIGH" sample="HIGH" />
</dataMapping>
</imageStyle>
</styleRule>
<!--
* RUC, RUC130, RUC236, PR
in/hr | 141.732 | 0.0 | 0.005 | 16 |x|,c| 12 | 8 | 0.01 0.25 0.5
@ -4992,7 +5014,7 @@
<parameter>geoVort</parameter>
</paramLevelMatches>
<imageStyle>
<displayUnits label="/1e5s">/s*1.0E5</displayUnits>
<displayUnits label="/1e5s">/100000</displayUnits>
<range mirror="true" scale="LOG">
<minValue>5</minValue>
<maxValue>300</maxValue>