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:
commit
9a12a4bca3
12 changed files with 303 additions and 122 deletions
|
@ -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,
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 |
|
@ -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
|
||||
|
|
|
@ -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>
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
4
edexOsgi/com.raytheon.edex.plugin.radar/utility/common_static/base/radar/tiltAngleGroups.txt
Normal file → Executable file
4
edexOsgi/com.raytheon.edex.plugin.radar/utility/common_static/base/radar/tiltAngleGroups.txt
Normal file → Executable 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
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue