Merge branch 'field_15.1.1' of ssh://vlab.ncep.noaa.gov:29418/AWIPS2_Dev_Baseline into master_15.1.1

Former-commit-id: 391ff6c59e4db20b42ea5ff52d7b37f4f49fc714
This commit is contained in:
Fay.Liang 2015-03-19 12:41:59 -04:00
commit 9a12a4bca3
12 changed files with 303 additions and 122 deletions

View file

@ -143,12 +143,13 @@ public class Awips1ProdDistInfoBuilder {
// Because the radar ingest system uses zero as the value that stands for the
// null tilt, any bin including 0.0 must have 0.0 as the primary tilt.
// ... not sure if this applies to us
// 02/27/2015 DR17099 zwang For TLAS, the first elev 0.8 should match to 0.5
// Sequence of (group-rep1, min1, max1, group-rep2, min2, max2, ...)
protected static int[] angleGroups = {
0, 0, 3,
5, 4, 7,
9, 8, 11,
5, 4, 8,
9, 9, 11,
15, 12, 16,
18, 17, 20,
24, 21, 26,

View file

@ -20,10 +20,12 @@
-->
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- Direct port of tdlSurfaceMenus.txt -->
<!-- DR 9363: Commented out IFPS part of menu. Has no functionality
<contribute xsi:type="titleItem" titleText="------ IFPS ------"
id="IFPSLine" />
<contribute xsi:type="placeholder" menuText="IFPS 3hr" id="IFPS3Hr" />
<contribute xsi:type="placeholder" menuText="IFPS 12hr" id="IFPS12Hr" />
-->
<contribute xsi:type="titleItem" titleText="------ GFSLAMP ------"
id="GFSLAMPLine" />
<contribute xsi:type="bundleItem" file="bundles/BufrMosPlot.xml"
@ -110,7 +112,7 @@
</contribute>
<contribute xsi:type="bundleItem" file="bundles/BufrMosPlot.xml"
menuText="Cond Snow" id="GFSMOSCondSnowPlot">
<substitute key="model" value="GFS"/>
<substitute key="model" value="GFS"/>
<substitute key="plotModel" value="bufrmos/precipSnow.svg"/>
<substitute key="title" value="GFS Cond Snow"/>
</contribute>
@ -192,98 +194,101 @@
<substitute key="title" value="GFS Extended QPF 12Hr" />
</contribute>
</contribute>
<contribute xsi:type="subMenu" menuText="Eta" id="EtaMOSMenu">
<!-- DR 9363: Renamed menu text, titles, ids from Eta/ETA to NAM
in ETA submenu
-->
<contribute xsi:type="subMenu" menuText="NAM" id="NAMMOSMenu">
<contribute xsi:type="bundleItem" file="bundles/BufrMosPlot.xml"
menuText="Station Plot" id="EtaMOSStationPlot" >
menuText="Station Plot" id="NAMMOSStationPlot" >
<substitute key="model" value="ETA"/>
<substitute key="plotModel" value="bufrmos/stdDesign.svg"/>
<substitute key="title" value="ETA Station Plot"/>
<substitute key="title" value="NAM Station Plot"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/BufrMosPlot.xml"
menuText="MaxT/MinT" id="EtaMOSMaxTMinTPlot" >
menuText="MaxT/MinT" id="NAMMOSMaxTMinTPlot" >
<substitute key="model" value="ETA"/>
<substitute key="plotModel" value="bufrmos/maxmin.svg"/>
<substitute key="title" value="ETA MaxT/MinT"/>
<substitute key="title" value="NAM MaxT/MinT"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/BufrMosPlot.xml"
menuText="Ceil/Vis" id="EtaMOSCeilVisPlot">
menuText="Ceil/Vis" id="NAMMOSCeilVisPlot">
<substitute key="model" value="ETA"/>
<substitute key="plotModel" value="bufrmos/CIGV.svg"/>
<substitute key="title" value="ETA Ceil/Vis"/>
<substitute key="title" value="NAM Ceil/Vis"/>
</contribute>
<contribute xsi:type="subMenu" menuText="Probabilities" id="EtaMOSProbMenu">
<contribute xsi:type="subMenu" menuText="Probabilities" id="NAMMOSProbMenu">
<contribute xsi:type="bundleItem" file="bundles/BufrMosPlot.xml"
menuText="POP 12Hr" id="EtaMOSPop12HrPlot">
menuText="POP 12Hr" id="NAMMOSPop12HrPlot">
<substitute key="model" value="ETA"/>
<substitute key="plotModel" value="bufrmos/pqpf12hr.svg"/>
<substitute key="title" value="ETA POP 12Hr"/>
<substitute key="title" value="NAM POP 12Hr"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/BufrMosPlot.xml"
menuText="POP 6Hr" id="EtaMOSPop6HrPlot">
menuText="POP 6Hr" id="NAMMOSPop6HrPlot">
<substitute key="model" value="ETA"/>
<substitute key="plotModel" value="bufrmos/pqpf6hr.svg"/>
<substitute key="title" value="ETA POP 6Hr"/>
<substitute key="title" value="NAM POP 6Hr"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/BufrMosPlot.xml"
menuText="Tstorm 12Hr" id="EtaMOSTs12HrPlot">
menuText="Tstorm 12Hr" id="NAMMOSTs12HrPlot">
<substitute key="model" value="ETA"/>
<substitute key="plotModel" value="bufrmos/tstorm12hr.svg"/>
<substitute key="title" value="ETA Tstorm 12hr"/>
<substitute key="title" value="NAM Tstorm 12hr"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/BufrMosPlot.xml"
menuText="Tstorm 6Hr" id="EtaMOSTs6HrPlot">
menuText="Tstorm 6Hr" id="NAMMOSTs6HrPlot">
<substitute key="model" value="ETA"/>
<substitute key="plotModel" value="bufrmos/tstorm6hr.svg"/>
<substitute key="title" value="ETA Tstorm 6hr"/>
<substitute key="title" value="NAM Tstorm 6hr"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/BufrMosPlot.xml"
menuText="Svr Tstorm 12Hr" id="EtaMOSSts12HrPlot">
menuText="Svr Tstorm 12Hr" id="NAMMOSSts12HrPlot">
<substitute key="model" value="ETA"/>
<substitute key="plotModel" value="bufrmos/severe12hr.svg"/>
<substitute key="title" value="ETA Svr Tstorm 12hr"/>
<substitute key="title" value="NAM Svr Tstorm 12hr"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/BufrMosPlot.xml"
menuText="Svr Tstorm 6Hr" id="EtaMOSSts6HrPlot">
menuText="Svr Tstorm 6Hr" id="NAMMOSSts6HrPlot">
<substitute key="model" value="ETA"/>
<substitute key="plotModel" value="bufrmos/severe6hr.svg"/>
<substitute key="title" value="ETA Svr Tstorm 6hr"/>
<substitute key="title" value="NAM Svr Tstorm 6hr"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/BufrMosPlot.xml"
menuText="Cond Rain" id="EtaMOSCondRainPlot">
menuText="Cond Rain" id="NAMMOSCondRainPlot">
<substitute key="model" value="ETA"/>
<substitute key="plotModel" value="bufrmos/precipRain.svg"/>
<substitute key="title" value="ETA Cond Rain"/>
<substitute key="title" value="NAM Cond Rain"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/BufrMosPlot.xml"
menuText="Cond Freezing Precip" id="EtaMOSCondFPPlot">
menuText="Cond Freezing Precip" id="NAMMOSCondFPPlot">
<substitute key="model" value="ETA"/>
<substitute key="plotModel" value="bufrmos/freezing.svg"/>
<substitute key="title" value="ETA Cond Freezing"/>
<substitute key="title" value="NAM Cond Freezing"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/BufrMosPlot.xml"
menuText="Cond Snow" id="EtaMOSCondSnowPlot">
menuText="Cond Snow" id="NAMMOSCondSnowPlot">
<substitute key="model" value="ETA"/>
<substitute key="plotModel" value="bufrmos/precipSnow.svg"/>
<substitute key="title" value="ETA Cond Snow"/>
<substitute key="title" value="NAM Cond Snow"/>
</contribute>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/BufrMosPlot.xml"
menuText="QPF 12Hr" id="EtaMOSQPF12HrPlot">
menuText="QPF 12Hr" id="NAMMOSQPF12HrPlot">
<substitute key="model" value="ETA"/>
<substitute key="plotModel" value="bufrmos/qpf12hr.svg"/>
<substitute key="title" value="ETA QPF 12Hr"/>
<substitute key="title" value="NAM QPF 12Hr"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/BufrMosPlot.xml"
menuText="QPF 6Hr" id="EtaMOSQPF6HrPlot">
menuText="QPF 6Hr" id="NAMMOSQPF6HrPlot">
<substitute key="model" value="ETA"/>
<substitute key="plotModel" value="bufrmos/qpf6hr.svg"/>
<substitute key="title" value="ETA QPF 6Hr"/>
<substitute key="title" value="NAM QPF 6Hr"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/BufrMosPlot.xml"
menuText="SnowFall 24hr" id="EtaMOSSnowFall24HrPlot">
menuText="SnowFall 24hr" id="NAMMOSSnowFall24HrPlot">
<substitute key="model" value="ETA"/>
<substitute key="plotModel" value="bufrmos/snowfall24.svg"/>
<substitute key="title" value="ETA SnowFall 24hr"/>
<substitute key="title" value="NAM SnowFall 24hr"/>
</contribute>
</contribute>
</menuTemplate>

View file

@ -64,7 +64,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" style="stroke: rgb(255,255,255);">
<text id="presentWxText" plotMode="recursive_translation" class="weather" plotLookupTable="wx_symbol_trans.txt" plotParam="presWeather" style="text-anchor: end" x="-10" y="0">0</text>
<text id="stdSkyCover" plotMode="recursive_translation" class="weather" plotParam="stdSkyCover" plotLookupTable="bufrmos/mos_clouds_gfs_s2s.txt" style="text-anchor: middle" x="0" y="0">M</text>
<g id="windVaneText" plotMode="barb" plotParam="stdWindSpeed,stdWindDir" plotUnit="kts" x="0" y="0" transform="rotate(0,0,0)">
<g id="windVaneText" plotMode="barb" plotParam="stdWindSpeed,windDir" plotUnit="kts" x="0" y="0" transform="rotate(0,0,0)">
<text id="windVaneText" class="arrow" x="0" y="0">0</text>
<text id="windArrowText" class="barb" x="0" y="0">arrow</text>
</g>

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View file

@ -27,7 +27,8 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8",
com.raytheon.viz.alerts,
com.raytheon.uf.viz.core.rsc;bundle-version="1.14",
javax.measure
Import-Package: com.raytheon.viz.core.rsc,
Import-Package: com.raytheon.viz.awipstools,
com.raytheon.viz.core.rsc,
com.raytheon.viz.core.rsc.hdf5
Export-Package: com.raytheon.viz.satellite,
com.raytheon.viz.satellite.rsc

View file

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
This portion of the software was developed to support GOES-R and JPSS.
Developer: Jordan Gerth / Jordan.Gerth @ noaa.gov
Organization: Cooperative Institute for Meteorological Satellite Studies
Address: 1225 W. Dayton St., Madison, WI 53706
-->
<customLegends>
<map>
<entry><key>GOES-13(N) Imager Visible</key><value>GOES-13 Visible Imagery</value></entry>
<entry><key>GOES-14(O) Imager Visible</key><value>GOES-14 Visible Imagery</value></entry>
<entry><key>GOES-15(P) Imager Visible</key><value>GOES-15 Visible Imagery</value></entry>
<entry><key>Imager Visible</key><value>Visible Imagery</value></entry>
</map>
</customLegends>

View file

@ -32,91 +32,92 @@ import java.util.HashMap;
* ------------ ---------- ----------- --------------------------
* 02/26/09 jsanchez Initial Creation.
* 03/16/09 800 jsanchez Updated legend.
* 12/16/14 15196 kshrestha Converted Millimeters to Inches for Total Precip Water
* 12/16/14 15196 kshrestha Converted Millimeters to Inches for Total Precip Water
* 03/02/15 DCS 14960 jgerth Support custom legends to override the default constants
*
* </pre>
*/
public class SatelliteConstants {
private static final String GRID_CLOUD_AMOUNT_LEGEND = "GOES Sounder DPI Cloud Amount (%)";
private static final String GRID_CLOUD_TOP_PRESSURE_OR_HEIGHT_LEGEND = "GOES Sounder DPI Cloud Top Height (ft/100 MSL)";
private static final String IMAGER_11U_IR_LEGEND = "IR Satellite ( C )";
private static final String IMAGER_12U_IR_LEGEND = "IR 12u Satellite";
private static final String IMAGER_13U_IR_LEGEND = "IR 13u Satellite";
private static final String IMAGER_3P9U_IR_LEGEND = "IR 3.9u Satellite ( C )";
private static final String IMAGER_6P7_6P5U_IR_WV_LEGEND = "Water Vapor Satellite";
private static final String IMAGER_VISIBLE_LEGEND = "Visible Satellite";
private static final String RAIN_FALL_RATE_LEGEND = "Rainfall Rate (mm/hr)";
private static final String SOUNDER_11U_IMAGER_LEGEND = "GOES Sndr IR Satellite ( C )";
private static final String SOUNDER_14U_IMAGERY_LEGEND = "GOES Sndr IR 14.1u Satellite ( C )";
private static final String SOUNDER_4U_IMAGERY_LEGEND = "GOES Sndr IR 4.0u Satellite ( C )";
private static final String SOUNDER_4P5U_IMAGERY_LEGEND = "GOES Sndr IR 4.5u Satellite ( C )";
private static final String SOUNDER_6P5U_IMAGERY_LEGEND = "GOES Sndr Water Vapor 6.5u Satellite (Counts)";
private static final String SOUNDER_7U_IMAGERY_LEGEND = "GOES Sndr Water Vapor 7.0u Satellite (Counts)";
private static final String SOUNDER_7P4U_IMAGERY_LEGEND = "GOES Sndr Water Vapor 7.4u Satellite (Counts)";
private static final String SOUNDER_BASED_DERIVED_LI_LEGEND = "GOES Sounder DPI Lifted Index ( C )";
private static final String SOUNDER_BASED_DERIVED_PW_LEGEND = "Total Precip Water (in)";
private static final String SOUNDER_BASED_DERIVED_SFC_SKIN_LEGEND = "GOES Sounder DPI Skin Temperature ( C )";
private static final String SOUNDER_VIS_IMAGERY_LEGEND = "GOES Sndr Visible Satellite (Counts)";
private static final String IMAGER_11U_39U_IR_LEGEND = "11u-3.9u Satellite (counts)";
private static final String IMAGER_11U_13U_IR_LEGEND = "11u-13u Satellite (counts)";
private static final String IMAGER_11U_12U_IR_LEGEND = "11u-12u Satellite (counts)";
private static final String IR_IN_WV__LEGEND = "IR in WV Satellite (C)";
private static final String POES_IR_LEGEND = "POES IR Satellite (C)";
private static final String POES_VIS_LEGEND = "POES Visible Satellite";
private static final String POES_3P7U_IR_LEGEND = "POES IR 3.7u Satellite (C)";
private static final String POES_11U_37U_IR_LEGEND = "POES 11u-3.7u Satellite (counts)";
private static final String PERCENT_OF_NORMAL_LEGEND = "Percent of Normal TPW (%)";
public static final String DMSP = "DMSP";
public static final String POES = "POES-NPOESS";
public static final String MISC = "Miscellaneous";
public static final String COMP = "Composite";
public static final String PRECIP = "Sounder Based Derived Precipitable Water (PW)";
public static final String RAIN = "Rain fall rate";
private static final HashMap<String, String> LEGEND_MAP = new HashMap<String, String>();
static {
private static final HashMap<String, String> LEGEND_MAP = new HashMap<String, String>();
static {
LEGEND_MAP.put("Gridded Cloud Amount",GRID_CLOUD_AMOUNT_LEGEND);
LEGEND_MAP.put("Gridded Cloud Top Pressure or Height",GRID_CLOUD_TOP_PRESSURE_OR_HEIGHT_LEGEND);
LEGEND_MAP.put("Imager 11 micron IR",IMAGER_11U_IR_LEGEND);
LEGEND_MAP.put("Imager 12 micron IR",IMAGER_12U_IR_LEGEND);
LEGEND_MAP.put("Imager 13 micron (IR)",IMAGER_13U_IR_LEGEND);
LEGEND_MAP.put("Imager 3.9 micron IR",IMAGER_3P9U_IR_LEGEND);
LEGEND_MAP.put("Gridded Cloud Top Pressure or Height",GRID_CLOUD_TOP_PRESSURE_OR_HEIGHT_LEGEND);
LEGEND_MAP.put("Imager 11 micron IR",IMAGER_11U_IR_LEGEND);
LEGEND_MAP.put("Imager 12 micron IR",IMAGER_12U_IR_LEGEND);
LEGEND_MAP.put("Imager 13 micron IR",IMAGER_13U_IR_LEGEND);
LEGEND_MAP.put("Imager 3.9 micron IR",IMAGER_3P9U_IR_LEGEND);
LEGEND_MAP.put("Imager 6.7-6.5 micron IR (WV)",IMAGER_6P7_6P5U_IR_WV_LEGEND);
LEGEND_MAP.put("Imager Visible",IMAGER_VISIBLE_LEGEND);
LEGEND_MAP.put(RAIN,RAIN_FALL_RATE_LEGEND);
@ -135,38 +136,47 @@ public class SatelliteConstants {
LEGEND_MAP.put("Polar IR",POES_IR_LEGEND);
LEGEND_MAP.put("Polar Vis",POES_VIS_LEGEND);
LEGEND_MAP.put("Polar 3.7u",POES_3P7U_IR_LEGEND);
//Derived Parameters
LEGEND_MAP.put("satDif11u3_9uIR",IMAGER_11U_39U_IR_LEGEND);
LEGEND_MAP.put("satDif11u13uIR",IMAGER_11U_13U_IR_LEGEND);
LEGEND_MAP.put("satDif11u12uIR",IMAGER_11U_12U_IR_LEGEND);
LEGEND_MAP.put("satDivWVIR",IR_IN_WV__LEGEND);
LEGEND_MAP.put("poesDif11u3_7uIR",POES_11U_37U_IR_LEGEND);
}
public static String getLegend(String productName, String creatingEntity) {
String rVal = LEGEND_MAP.get(productName);
if(productName.equals(PRECIP) || productName.equals(RAIN)){
if(creatingEntity.equals(COMP)){
rVal = "GOES Sounder DPI " + rVal;
} else if(creatingEntity.equals(DMSP)){
rVal = "DMSP SSM/I " + rVal;
} else if(creatingEntity.equals(POES)){
if (productName.equals("Rain fall rate")) {
rVal = "Blended Rain Rate (mm/hr)";
}
else {
rVal = "POES AMSU " + rVal;
}
} else if(creatingEntity.equals(MISC)){
rVal = "Blended " + rVal;
}
}
if(rVal == null || rVal.length() == 0) {
rVal = productName;
}
return rVal;
}
}
public static String getLegend(String productName, String creatingEntity) {
String cl = null;
if (creatingEntity != null && creatingEntity.length() != 0)
cl = SatelliteCustomLegends.getInstance().getCustomLegend(creatingEntity + " " + productName);
if (cl == null)
cl = SatelliteCustomLegends.getInstance().getCustomLegend(productName);
String rVal;
if (cl != null)
rVal = cl;
else {
rVal = LEGEND_MAP.get(productName);
if(productName.equals(PRECIP) || productName.equals(RAIN)){
if(creatingEntity.equals(COMP)){
rVal = "GOES Sounder DPI " + rVal;
} else if(creatingEntity.equals(DMSP)){
rVal = "DMSP SSM/I " + rVal;
} else if(creatingEntity.equals(POES)){
if (productName.equals("Rain fall rate")) {
rVal = "Blended Rain Rate (mm/hr)";
}
else {
rVal = "POES AMSU " + rVal;
}
} else if(creatingEntity.equals(MISC)){
rVal = "Blended " + rVal;
}
}
}
if (rVal == null || rVal.length() == 0)
rVal = productName;
if (creatingEntity != null && creatingEntity.length() > 0 && cl == null)
rVal = creatingEntity + " " + rVal;
return rVal;
}
}

View file

@ -0,0 +1,138 @@
package com.raytheon.viz.satellite;
import java.io.File;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import com.raytheon.uf.common.localization.IPathManager;
import com.raytheon.uf.common.localization.LocalizationContext;
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationType;
import com.raytheon.uf.common.localization.PathManagerFactory;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
/**
* This code unmarshals an XML file to modify the default product legends for imagery handled
* through the raytheon viz satellite resources.
*
* This is similar to code that Tom Kretz previously developed for the edex regionalsat plug-in.
*
* The default customLegends.xml file contains the following:
* <pre>
*
* <customLegends>
* <map>
* <entry><key>GOES-13(N) Imager Visible</key><value>GOES-13 Visible Imagery</value></entry>
* <entry><key>GOES-14(O) Imager Visible</key><value>GOES-14 Visible Imagery</value></entry>
* <entry><key>GOES-15(P) Imager Visible</key><value>GOES-15 Visible Imagery</value></entry>
* <entry><key>Imager Visible</key><value>Visible Imagery</value></entry>
* </map>
* </customLegends>
*
* </pre>
*
* <pre>
*
* SOFTWARE HISTORY
*
* date Ticket# Engineer Description
* ----------- ---------- ----------- --------------------------
* 4/21/2014 DCS 14960 jgerth Initial Creation
*
* </pre>
*
* @author jgerth
* @version 1.0
*/
public class SatelliteCustomLegends {
private static final IUFStatusHandler theHandler = UFStatus
.getHandler(SatelliteCustomLegends.class);
private static final String LOOKUP_DIR = "satellite";
@XmlAccessorType(XmlAccessType.NONE)
public static abstract class AbstractLookup<K,V> {
public abstract Map<K, V> getMap();
}
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
private static class CustomLegends extends AbstractLookup<String, String> {
public HashMap<String, String> map = new HashMap<String, String>();
@Override
public Map<String, String> getMap() {
return map;
}
}
private CustomLegends customLegendsLookup;
public SatelliteCustomLegends() {
try {
init();
} catch (Exception e) {
theHandler.error("Failed to initialize lookups", e);
}
}
// initialize the lookup tables from the configuration files
private void init() throws Exception {
JAXBContext context = JAXBContext.newInstance(CustomLegends.class);
Unmarshaller u = context.createUnmarshaller();
customLegendsLookup = load(new CustomLegends(), "customLegends.xml", u);
}
private static <T extends AbstractLookup<K,V>, K, V> T load(T combinedLookup, String fileName, Unmarshaller u) throws Exception {
IPathManager pm = PathManagerFactory.getPathManager();
List<LocalizationContext> contexts = Arrays.asList(pm.getLocalSearchHierarchy(LocalizationType.CAVE_STATIC));
Collections.reverse(contexts);
for (LocalizationContext ctx : contexts) {
File f = pm.getFile(ctx, LOOKUP_DIR + File.separator + fileName);
if (f != null && f.isFile()) {
try {
@SuppressWarnings("unchecked")
T lookup = (T) u.unmarshal(f);
if (!combinedLookup.getClass().isAssignableFrom(lookup.getClass())) {
throw new Exception(String.format("file contains %s, expected %s",
lookup.getClass(), combinedLookup.getClass()));
}
combinedLookup.getMap().putAll(lookup.getMap());
} catch (Exception e) {
theHandler.error(String.format("%s: %s", f, e.getMessage()), e);
}
}
}
return combinedLookup;
}
/**
* @param cl
* @return
*/
public String getCustomLegend(String cl) {
return customLegendsLookup.map.get(cl);
}
private static SatelliteCustomLegends instance;
public static synchronized SatelliteCustomLegends getInstance() {
if (instance == null)
instance = new SatelliteCustomLegends();
return instance;
}
public static synchronized void reload() {
instance = new SatelliteCustomLegends();
}
}

View file

@ -78,6 +78,7 @@ import com.raytheon.uf.viz.datacube.DataCubeContainer;
* Jun 17, 2009 2493 jsanchez Displayed both times in CONUS scale.
* Apr 18, 2014 2947 bsteffen Allow resources being blended to omit
* load properties.
* Mar 3, 2015 DCS 14960 jgerth Slight modification to getName
*
* </pre>
*
@ -136,7 +137,7 @@ public class SatBlendedResourceData extends AbstractRequestableResourceData
if (rsc != null) {
if (s.length() == 0) {
s = rsc.getName();
} else if (!s.equals(rsc.getName())) {
} else if (!s.contains(rsc.getName())) {
s += " + " + rsc.getName();
}
}

View file

@ -84,6 +84,7 @@ import com.raytheon.viz.satellite.inventory.DerivedSatelliteRecord;
import com.raytheon.viz.satellite.tileset.SatDataRetriever;
import com.raytheon.viz.satellite.tileset.SatTileSetRenderable;
import com.vividsolutions.jts.geom.Coordinate;
import com.raytheon.viz.awipstools.IToolChangedListener;
/**
* Provides satellite raster rendering support
@ -125,6 +126,7 @@ import com.vividsolutions.jts.geom.Coordinate;
* Aug 21, 2014 DR 17313 jgerth Set no data value if no data mapping
* Oct 15, 2014 3681 bsteffen create renderable in interrogate if necessary.
* Feb 17, 2015 4135 bsteffen Set no data value for derived products.
* Mar 3, 2015 DCS 14960 jgerth Retrieve legend from style rules if available
*
*
* </pre>
@ -134,7 +136,7 @@ import com.vividsolutions.jts.geom.Coordinate;
*/
public class SatResource extends
AbstractPluginDataObjectResource<SatResourceData, IMapDescriptor>
implements ImageProvider, Interrogatable {
implements ImageProvider, Interrogatable, IToolChangedListener {
/**
* String id to look for satellite-provided data values
@ -341,6 +343,7 @@ public class SatResource extends
match.setLevels(Arrays.asList((Level) level));
match.setCreatingEntityNames(Arrays.asList(record.getCreatingEntity()));
Unit<?> unit = SatDataRetriever.getRecordUnit(record);
String lg = null;
try {
StyleRule sr = StyleManager.getInstance().getStyleRule(
StyleManager.StyleType.IMAGERY, match);
@ -367,10 +370,10 @@ public class SatResource extends
unit);
sampleRange = preferences.getSamplePrefs();
String lg = preferences.getLegend();
lg = preferences.getLegend();
// test, so legend is not over written with empty string
if (lg != null && !lg.trim().isEmpty()) {
legend = lg;
if (lg != null && lg.trim().isEmpty()) {
lg = null;
}
} catch (StyleException e) {
throw new VizException(e.getLocalizedMessage(), e);
@ -416,7 +419,11 @@ public class SatResource extends
getCapability(ColorMapCapability.class).setColorMapParameters(
colorMapParameters);
this.legend = getLegend(record);
if (lg != null) {
this.legend = lg;
} else {
this.legend = getLegend(record);
}
}
@Override
@ -662,4 +669,8 @@ public class SatResource extends
return result;
}
@Override
public void toolChanged() {
issueRefresh();
}
}

View file

@ -100,6 +100,7 @@ import com.raytheon.uf.edex.database.cluster.ClusterTask;
* Jan 21, 2014 2627 njensen Removed decode()'s try/catch, camel route will do try/catch
* May 14, 2014 2536 bclement moved WMO Header to common, removed TimeTools usage
* Dec 26, 2014 ASM#632 dhuffman Added AlertMessageSanityCheck() for this DR.
* Feb 27, 2015 17086 zwang Corrected the elevation of volume based TDWR products
*
* </pre>
*
@ -348,7 +349,8 @@ public class RadarDecoder extends AbstractDecoder {
// determine to use the primary elevations or the elevation
// in the terminal radar configuration file
if (TerminalRadarUtils.isTerminalRadar(record.getIcao())) {
if (TerminalRadarUtils.isTerminalRadar(record.getIcao())
&& info.isElevation()) {
Double elevation = TerminalRadarUtils.getPrimarysMap(
record.getIcao()).get(
TiltAngleBin.getPrimaryElevationAngle(record

View file

@ -8,8 +8,8 @@
// primary min max
// angle angle angle
0.0 0.0 0.3
0.5 0.4 0.7
0.9 0.8 1.1
0.5 0.4 0.8
0.9 0.9 1.1
1.5 1.2 1.6
1.8 1.7 2.0
2.4 2.1 2.6

View file

@ -47,6 +47,7 @@ import com.raytheon.uf.common.localization.PathManagerFactory;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* May 24, 2010 mnash Initial creation
* Feb 11, 2015 14627 zwang Remove the extra elevation 0.0
*
* </pre>
*
@ -117,10 +118,6 @@ public class TerminalRadarUtils {
for (Double y : mapSet.get("HAZ")) {
theMap.put(TiltAngleBin.getPrimaryElevationAngle(y), y);
}
// add the base case if necessary
if (!theMap.containsKey(0.0)) {
theMap.put(0.0, 0.0);
}
List<Double> list = new ArrayList<Double>(theMap.values());
Collections.sort(list);
radarElevations.put("t" + lineVals[0].toLowerCase(), list);