diff --git a/cave/build/static/common/cave/etc/aviation/python/MetarMonitor.py b/cave/build/static/common/cave/etc/aviation/python/MetarMonitor.py index 47d8b10fa5..b291e5a074 100644 --- a/cave/build/static/common/cave/etc/aviation/python/MetarMonitor.py +++ b/cave/build/static/common/cave/etc/aviation/python/MetarMonitor.py @@ -145,7 +145,10 @@ # Status: TEST # Title: AvnFPS: Unable to properly set QC functions in Site Info Editor # -# +# Date Ticket# Engineer Description +# ------------ ---------- ----------- -------------------------- +# 06JUL2012 15153 zhao Retrieve latest METAR record in database +# import logging, os, time import Avn, AvnLib, Globals, MonitorP, MetarMonitorP @@ -176,7 +179,9 @@ class Monitor(MetarMonitorP.Monitor): now = time.time() # metars = Globals.DRC.getMetars(self.info['sites']['metar'], True, # now-15000.0) - metars = MetarData.retrieve(self.info['sites']['metar']) + +# For DR15153: use 'maxSize=0' to indicate that the latest record is to be retrieved + metars = MetarData.retrieve(self.info['sites']['metar'],0) msg = None result = {} if not metars: diff --git a/cave/build/static/common/cave/etc/aviation/python/PersistMonitor.py b/cave/build/static/common/cave/etc/aviation/python/PersistMonitor.py index c05d10c75c..07a9755bd9 100644 --- a/cave/build/static/common/cave/etc/aviation/python/PersistMonitor.py +++ b/cave/build/static/common/cave/etc/aviation/python/PersistMonitor.py @@ -72,6 +72,11 @@ # METAR monitoring module # Author: George Trojan, SAIC/MDL, June 2003 # last update: 04/20/06 +# +# Date Ticket# Engineer Description +# ------------ ---------- ----------- -------------------------- +# 06JUL2012 15153 zhao Retrieve latest METAR record in database +# import logging, os, time import Avn, AvnLib, Globals, MonitorP, MetarMonitorP @@ -87,7 +92,9 @@ class Monitor(MetarMonitorP.Monitor): now = time.time() # self._metars = Globals.DRC.getMetars(self.info['sites']['metar'], # True, now-7200.0) - self._metars = MetarData.retrieve(self.info['sites']['metar']) + +# For DR15153: use 'maxSize=0' to indicate that the latest record is to be retrieved + self._metars = MetarData.retrieve(self.info['sites']['metar'],0) msg = None result = {} if not self._metars: diff --git a/cave/build/static/common/cave/etc/bundles/maps/statesCounties.xml b/cave/build/static/common/cave/etc/bundles/maps/statesCounties.xml index 7cfc269937..d3dfe96091 100644 --- a/cave/build/static/common/cave/etc/bundles/maps/statesCounties.xml +++ b/cave/build/static/common/cave/etc/bundles/maps/statesCounties.xml @@ -132,6 +132,25 @@ County Boundaries + + + + + + + + PLAN_VIEW + + + + + + two lakes + mapdata.lake
+ the_geom + name in ('Great Salt Lake', 'Lake Winnepeg') +
+
State/County Boundaries diff --git a/cave/build/static/common/cave/etc/bundles/scales/CONUS.xml b/cave/build/static/common/cave/etc/bundles/scales/CONUS.xml index d2e8090acf..bd90bd5707 100644 --- a/cave/build/static/common/cave/etc/bundles/scales/CONUS.xml +++ b/cave/build/static/common/cave/etc/bundles/scales/CONUS.xml @@ -123,6 +123,25 @@ mapdata.county
+ + + + + + + + PLAN_VIEW + + + + + + two lakes + mapdata.lake
+ the_geom + name in ('Great Salt Lake', 'Lake Winnepeg') +
+
State/County Boundaries diff --git a/cave/build/static/common/cave/etc/ffmp/guiConfig/DefaultFFMPconfig_basin.xml b/cave/build/static/common/cave/etc/ffmp/guiConfig/DefaultFFMPconfig_basin.xml index 4b8cc87856..b0f42094e7 100644 --- a/cave/build/static/common/cave/etc/ffmp/guiConfig/DefaultFFMPconfig_basin.xml +++ b/cave/build/static/common/cave/etc/ffmp/guiConfig/DefaultFFMPconfig_basin.xml @@ -55,7 +55,7 @@ RATE false - .00 + .01 .1 .5 1.0 @@ -68,7 +68,7 @@ QPE false - .000 + .01 2.0 3.5 5.0 @@ -81,7 +81,7 @@ QPF false - .00 + .01 2.0 3.5 5.0 @@ -107,7 +107,7 @@ RATIO false - 0 + 5 25 50 90 diff --git a/cave/build/static/common/cave/etc/gfe/userPython/procedures/BOIVerifyBiasCorr.py b/cave/build/static/common/cave/etc/gfe/userPython/procedures/BOIVerifyBiasCorr.py index 6fc824579a..e0581dbc49 100644 --- a/cave/build/static/common/cave/etc/gfe/userPython/procedures/BOIVerifyBiasCorr.py +++ b/cave/build/static/common/cave/etc/gfe/userPython/procedures/BOIVerifyBiasCorr.py @@ -473,7 +473,7 @@ class Procedure (SmartScript.SmartScript): else: Td=tdc Td=clip(Td,self.parmMinval,self.parmMaxval) - self.createGrid(mutableModel,"TdMrn","SFC",Td,newtr) + self.createGrid(mutableModel,"TdMrn","SCALAR",Td,newtr) self.saveGrid(mutableModel,"TdMrn") (self.parmUnits,self.parmPrecision,self.parmMinval,self.parmMaxval, self.parmColorTable,self.parmDisplayMinval, @@ -496,7 +496,7 @@ class Procedure (SmartScript.SmartScript): else: Td=tdc Td=clip(Td,self.parmMinval,self.parmMaxval) - self.createGrid(mutableModel,"TdAft","SFC",Td,newtr) + self.createGrid(mutableModel,"TdAft","SCALAR",Td,newtr) self.saveGrid(mutableModel,"TdAft") self.VU.logMsg("BOIVerifyBiasCorr Procedure Finished") return diff --git a/cave/build/static/common/cave/etc/gfe/userPython/utilities/SmartScript.py b/cave/build/static/common/cave/etc/gfe/userPython/utilities/SmartScript.py index 2018230417..a29973704a 100644 --- a/cave/build/static/common/cave/etc/gfe/userPython/utilities/SmartScript.py +++ b/cave/build/static/common/cave/etc/gfe/userPython/utilities/SmartScript.py @@ -883,7 +883,7 @@ class SmartScript(BaseTool.BaseTool): if varDict is not None: varDict = str(varDict) - parm = self.getParm("Fcst", elementName, "SFC") + parm = self.getParm(self.__mutableID, elementName, "SFC") if timeRange is None: from com.raytheon.viz.gfe.core.parm import ParmState timeRange = parm.getParmState().getSelectedTimeRange() diff --git a/cave/build/static/common/cave/etc/gfe/utility/PngWriter.py b/cave/build/static/common/cave/etc/gfe/utility/PngWriter.py index 4a3644a713..c486cf1b43 100644 --- a/cave/build/static/common/cave/etc/gfe/utility/PngWriter.py +++ b/cave/build/static/common/cave/etc/gfe/utility/PngWriter.py @@ -48,7 +48,6 @@ class PngWriter: self.pgons = None self.imgParm = None self.ipn = self.getConfig('Png_image', '') - print "ipn:",self.ipn # user named time range specified? if usrTimeRange is not None: @@ -246,6 +245,10 @@ class PngWriter: wholeDomain = self.getConfig('Png_wholeDomain', 0, int) viz = GFEPainter.GFEPainter(width, height, leftExpand, rightExpand, topExpand, bottomExpand, mask, wholeDomain) + + if not omitColorbar: + viz.enableColorbar() + prms = self.getParms() # allow user to specify precise interval for creation of images @@ -306,9 +309,6 @@ class PngWriter: #TODO handle transparent background bgColor, trans = self.getBG() - if not omitColorbar: - viz.enableColorbar() - xOffset = self.getConfig("MapLabelXOffset", None, int) yOffset = self.getConfig("MapLabelYOffset", None, int) for map in maps: @@ -329,7 +329,7 @@ class PngWriter: colorMin = self.getConfig(pname + '_minColorTableValue', None, float) color = self.getConfig(pname + '_graphicColor', None) lineWidth = self.getConfig(pname + '_lineWidth', None, int) - viz.addGfeResource(pname, colormap=colormap, colorMin=colorMin, colorMax=colorMax, \ + viz.addGfeResource(p, colormap=colormap, colorMin=colorMin, colorMax=colorMax, \ smooth=smooth, color=color, lineWidth=lineWidth) fitToDataAlg = self.getConfig(pname + '_fitToDataColorTable', None) if fitToDataAlg is not None: @@ -343,11 +343,9 @@ class PngWriter: fitToDataAlg = None if pname == self.ipn: - print "setting",pname,"to IMAGE" - p.getDisplayAttributes().setVisMode(VisMode.IMAGE) + self.dm.getSpatialDisplayManager().setDisplayMode(p, VisMode.IMAGE) else: - print "setting",pname,"to GRAPHIC" - p.getDisplayAttributes().setVisMode(VisMode.GRAPHIC) + self.dm.getSpatialDisplayManager().setDisplayMode(p, VisMode.GRAPHIC) self.initSamples() diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF1_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF1_1.00.attr index dca30de7f5..2fc75f3d94 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF1_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF1_1.00.attr @@ -1,7 +1,8 @@ colorMapName=osf_ref16 -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml productCode=19 elevationNumber=1 +!primaryElevationAngle=0.5 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF1_2.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF1_2.00.attr index e96767d498..717a79c747 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF1_2.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF1_2.00.attr @@ -1,7 +1,8 @@ colorMapName=osf_ref16 -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml productCode=20 elevationNumber=1 +!primaryElevationAngle=0.5 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF2_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF2_1.00.attr index 20bac10462..996a3e67bf 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF2_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF2_1.00.attr @@ -1,7 +1,8 @@ colorMapName=osf_ref16 -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml productCode=19 elevationNumber=2 +!primaryElevationAngle=1.5 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF2_2.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF2_2.00.attr index 29cf480440..0766aae4be 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF2_2.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF2_2.00.attr @@ -1,7 +1,8 @@ colorMapName=osf_ref16 -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml productCode=20 elevationNumber=2 +!primaryElevationAngle=1.5 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF3_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF3_1.00.attr index 0f4c1ac1c0..dad4ec52b5 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF3_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF3_1.00.attr @@ -1,7 +1,8 @@ colorMapName=osf_ref16 -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml productCode=19 elevationNumber=3 +!primaryElevationAngle=2.4 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF3_2.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF3_2.00.attr index 7010ec15b5..528fead943 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF3_2.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF3_2.00.attr @@ -1,7 +1,8 @@ colorMapName=osf_ref16 -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml productCode=20 elevationNumber=3 +!primaryElevationAngle=2.4 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF4_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF4_1.00.attr index be81b932d1..bbf17cb8ee 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF4_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF4_1.00.attr @@ -1,7 +1,8 @@ colorMapName=osf_ref16 -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml productCode=19 elevationNumber=4 +!primaryElevationAngle=3.4 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF4_2.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF4_2.00.attr index 6763c799fc..e782f0fc62 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF4_2.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF4_2.00.attr @@ -1,7 +1,8 @@ colorMapName=osf_ref16 -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml productCode=20 elevationNumber=4 +!primaryElevationAngle=3.4 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF5_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF5_1.00.attr index 5beb9ec424..4f319ad8bf 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF5_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF5_1.00.attr @@ -1,7 +1,8 @@ colorMapName=osf_ref16 -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml productCode=19 elevationNumber=5 +!primaryElevationAngle=2.4 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF6_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF6_1.00.attr index a244602f2e..cd0ec461f5 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF6_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/BREF6_1.00.attr @@ -1,7 +1,8 @@ colorMapName=osf_ref16 -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml productCode=19 elevationNumber=6 +!primaryElevationAngle=3.4 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/CREFP_4.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/CREFP_4.00.attr index 21b83b9183..d10728afbb 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/CREFP_4.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/CREFP_4.00.attr @@ -1,9 +1,9 @@ colorMapName=rad_scref -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml ! 4km CREF productCode=38 -! check elevation elevationNumber=0 +!primaryElevationAngle=0.0 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/CREF_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/CREF_1.00.attr index a2c3ac9506..ca01177b06 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/CREF_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/CREF_1.00.attr @@ -1,9 +1,9 @@ colorMapName=rad_scref -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml ! 1km COMP REFL productCode=37 -! check elevation -elevationNumber=0 +elevationNumber=1 +!primaryElevationAngle=0.5 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/CREF_4.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/CREF_4.00.attr index 89a985cfbb..62ff1a687a 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/CREF_4.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/CREF_4.00.attr @@ -1,9 +1,10 @@ colorMapName=rad_scref -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml ! 4km COMP REFL productCode=36 ! check elevation elevationNumber=0 +!primaryElevationAngle=0.0 alpha=1.0 brightness=1.0 -contrast=1.0 \ No newline at end of file +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/DIGSCAN_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/DIGSCAN_1.00.attr index 49c2753f29..8b24fc5db1 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/DIGSCAN_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/DIGSCAN_1.00.attr @@ -1,9 +1,10 @@ ! ?what is correct colormap? colorMapName=lingray -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml ! 1km Digital Hybrid Scan Refl. productCode=32 elevationNumber=0 +!primaryElevationAngle=0.0 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/EETOPS_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/EETOPS_1.00.attr index 311f704adf..f87b2698ff 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/EETOPS_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/EETOPS_1.00.attr @@ -1,8 +1,9 @@ colorMapName=rad_eetops -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml ! 1km Enhanced Echo Tops productCode=135 elevationNumber=0 +!primaryElevationAngle=0.0 alpha=1.0 brightness=1.0 contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/PRCP1_2.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/PRCP1_2.00.attr index 030c6d5c13..36bd6328aa 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/PRCP1_2.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/PRCP1_2.00.attr @@ -1,8 +1,9 @@ colorMapName=nids_pre -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml ! 2km 1 hr precip productCode=78 elevationNumber=0 +!primaryElevationAngle=0.0 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/PRCP3_2.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/PRCP3_2.00.attr index 60bf79130d..c3651cd930 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/PRCP3_2.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/PRCP3_2.00.attr @@ -1,8 +1,9 @@ colorMapName=nids_pre -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml ! 2km total precip productCode=80 elevationNumber=0 +! primaryElevationAngle=0.0 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/PRCPC_2.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/PRCPC_2.00.attr index 1aa015fc4c..61f371d34d 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/PRCPC_2.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/PRCPC_2.00.attr @@ -1,8 +1,9 @@ colorMapName=nids_pre -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml productCode=101 prodName=PRCPC elevationNumber=0 +! primaryElevationAngle=0.0 alpha=1.0 brightness=1.0 contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/RCM_0.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/RCM_0.00.attr index 8430b3728a..0ec8d805c4 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/RCM_0.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/RCM_0.00.attr @@ -1,8 +1,9 @@ colorMapName=osf_ref16 -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml ! Radar Coded Message productCode=74 elevationNumber=0 +!primaryElevationAngle=0.0 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/SRVEL1_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/SRVEL1_1.00.attr index f5073a5d38..7a908c3bae 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/SRVEL1_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/SRVEL1_1.00.attr @@ -1,8 +1,9 @@ colorMapName=rad_srmvel -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml ! 1km Storm Relative Motion productCode=56 elevationNumber=1 +! primaryElevationAngle=0.5 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/SRVEL2_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/SRVEL2_1.00.attr index 496ec88eaa..95b850d29c 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/SRVEL2_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/SRVEL2_1.00.attr @@ -1,5 +1,5 @@ colorMapName=rad_srmvel -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml ! 1km Storm Relative Motion productCode=56 elevationNumber=2 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/SRVEL3_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/SRVEL3_1.00.attr index 3a38b7ac4a..bd30274438 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/SRVEL3_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/SRVEL3_1.00.attr @@ -1,8 +1,9 @@ colorMapName=rad_srmvel -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml ! 1km Storm Relative Motion productCode=56 elevationNumber=3 +!primaryElevationAngle=2.4 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/SRVEL4_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/SRVEL4_1.00.attr index 28ac06697b..fdeaf41c21 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/SRVEL4_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/SRVEL4_1.00.attr @@ -1,8 +1,9 @@ colorMapName=rad_srmvel -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml ! 1km Storm Relative Motion productCode=56 elevationNumber=4 +! primaryElevationAngle=3.4 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/SRVEL5_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/SRVEL5_1.00.attr index 8d38b6e952..d5b6d6eb76 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/SRVEL5_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/SRVEL5_1.00.attr @@ -1,8 +1,9 @@ colorMapName=rad_srmvel -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml ! 1km Storm Relative Motion productCode=56 elevationNumber=5 +! primaryElevationAngle=2.4 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/SRVEL6_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/SRVEL6_1.00.attr index 2adc70222e..d83752ef1d 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/SRVEL6_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/SRVEL6_1.00.attr @@ -1,8 +1,9 @@ colorMapName=rad_srmvel -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml ! 1km Storm Relative Motion productCode=56 elevationNumber=6 +! primaryElevationAngle=3.4 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/STRAC_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/STRAC_1.00.attr index fd9f0aa795..3468918faf 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/STRAC_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/STRAC_1.00.attr @@ -1,8 +1,9 @@ colorMapName=osf_ref16 -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml ! Storm Track Information (Graphic) productCode=58 elevationNumber=0 +! primaryElevationAngle=0.0 alpha=1.0 brightness=1.0 contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/TOPS_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/TOPS_1.00.attr index aca3a0e387..8a573aabaa 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/TOPS_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/TOPS_1.00.attr @@ -1,9 +1,10 @@ colorMapName=osf_etops -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml ! 1km Echo Tops productCode=41 ! check elevation elevationNumber=0 +! primaryElevationAngle=0.0 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL1_.25.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL1_.25.00.attr index d235c2a7e3..fde655a6ab 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL1_.25.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL1_.25.00.attr @@ -1,8 +1,9 @@ colorMapName=nids_vel16 -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml ! .25km Radial Velocity productCode=99 elevationNumber=1 +!primaryElevationAngle=0.5 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL1_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL1_1.00.attr index ec7b36cbc2..bfdb7210c3 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL1_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL1_1.00.attr @@ -1,7 +1,8 @@ colorMapName=nids_vel16 -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml productCode=27 elevationNumber=1 +! primaryElevationAngle=0.5 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL2_.25.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL2_.25.00.attr index 2700a42667..4266c2fc52 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL2_.25.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL2_.25.00.attr @@ -1,5 +1,5 @@ colorMapName=nids_vel16 -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml ! .25km Radial Velocity productCode=99 elevationNumber=2 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL2_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL2_1.00.attr index e071e64cca..31554fec05 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL2_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL2_1.00.attr @@ -1,5 +1,5 @@ colorMapName=nids_vel16 -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml productCode=27 elevationNumber=2 alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL3_.25.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL3_.25.00.attr index 6706e27dcf..4083150221 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL3_.25.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL3_.25.00.attr @@ -1,8 +1,9 @@ colorMapName=nids_vel16 -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml ! .25km Radial Velocity productCode=99 elevationNumber=3 +! primaryElevationAngle=2.4 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL3_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL3_1.00.attr index dde2fd0143..7e20aa105c 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL3_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL3_1.00.attr @@ -1,7 +1,8 @@ colorMapName=nids_vel16 -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml productCode=27 elevationNumber=3 +! primaryElevationAngle=2.4 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL4_.25.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL4_.25.00.attr index b229976ad2..48d0980538 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL4_.25.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL4_.25.00.attr @@ -1,8 +1,9 @@ colorMapName=nids_vel16 -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml ! .25km Radial Velocity productCode=99 elevationNumber=4 +! primaryElevationAngle=3.4 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL4_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL4_1.00.attr index 21e15bc1c4..62d9b255b3 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL4_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL4_1.00.attr @@ -1,7 +1,8 @@ colorMapName=nids_vel16 -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml productCode=27 elevationNumber=4 +! primaryElevationAngle=3.4 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL5_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL5_1.00.attr index 62d1f79adf..837c19add8 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL5_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL5_1.00.attr @@ -1,7 +1,8 @@ colorMapName=nids_vel16 -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml productCode=27 elevationNumber=5 +! primaryElevationAngle=2.4 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL6_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL6_1.00.attr index 07a2fd6f26..5bb20c5cc7 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL6_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VEL6_1.00.attr @@ -1,7 +1,8 @@ colorMapName=nids_vel16 -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml productCode=27 elevationNumber=6 +! primaryElevationAngle=3.4 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VIL_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VIL_1.00.attr index ba76a86679..2201c07a03 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VIL_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VIL_1.00.attr @@ -1,8 +1,9 @@ colorMapName=nids_vil -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml ! 1km DIGITAL VIL productCode=134 elevationNumber=0 +! primaryElevationAngle=0.0 alpha=1.0 brightness=1.0 contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VIL_4.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VIL_4.00.attr index 643847d81a..83fe152971 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VIL_4.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/LocalRadar/VIL_4.00.attr @@ -1,7 +1,8 @@ colorMapName=osf_ref16 -colorBar=@dfltRadarColorBar.xml +colorBar=@ColorBars/Radar/dfltRadarColorBar.xml productCode=57 elevationNumber=0 +! primaryElevationAngle=0.0 alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/PGEN/default.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/PGEN/default.attr index 7e8239c43f..77ce42af86 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/PGEN/default.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/PGEN/default.attr @@ -1,6 +1,5 @@ ! Attributes for PGEN XML ! -legend_color=RGB {155, 155, 155} color=RGB {155, 155, 155} monoColorEnable=false monoColor=RGB {0, 255, 0} diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/PGEN/monocolor-green.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/PGEN/monocolor-green.attr index 18e7b6ab12..2b33d0a877 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/PGEN/monocolor-green.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/PGEN/monocolor-green.attr @@ -1,6 +1,5 @@ ! Attributes for PGEN XML ! -legend_color=RGB {155, 155, 155} color=RGB {155, 155, 155} monoColorEnable=true monoColor=RGB {0, 255, 0} diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/PGEN/monocolor-white.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/PGEN/monocolor-white.attr index 5160c57264..eb83b96354 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/PGEN/monocolor-white.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/PGEN/monocolor-white.attr @@ -1,6 +1,5 @@ ! Attributes for PGEN XML ! -legend_color=RGB {255, 255, 255} color=RGB {255, 255, 255} monoColorEnable=true monoColor=RGB {255, 255, 255} diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/BREF_2.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/BREF_2.00.attr index 70357bba8b..2a68e8ad4f 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/BREF_2.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/BREF_2.00.attr @@ -1,5 +1,5 @@ colorMapName=osf_ref16 -colorBar=@dfltMosaicColorBar.xml +colorBar=@ColorBars/Radar/dfltMosaicColorBar.xml productCode=140 prodName=BREF_2 alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/BREF_nids_cmref.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/BREF_nids_cmref.attr index d4a6fd8a72..87ac3da07e 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/BREF_nids_cmref.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/BREF_nids_cmref.attr @@ -1,5 +1,5 @@ colorMapName=nids_cmref -colorBar=@dfltMosaicColorBar.xml +colorBar=@ColorBars/Radar/dfltMosaicColorBar.xml productCode=140 prodName=BREF alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/CREF_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/CREF_1.00.attr index 589dbdf535..60be8e2ab2 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/CREF_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/CREF_1.00.attr @@ -1,5 +1,5 @@ colorMapName=osf_ref16 -colorBar=@dfltMosaicColorBar.xml +colorBar=@ColorBars/Radar/dfltMosaicColorBar.xml productCode=211 prodName=CREF alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/CREF_30.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/CREF_30.00.attr index 155fe07cd8..f3b92ec585 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/CREF_30.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/CREF_30.00.attr @@ -1,5 +1,5 @@ colorMapName=osf_ref16 -colorBar=@dfltMosaicColorBar.xml +colorBar=@ColorBars/Radar/dfltMosaicColorBar.xml productCode=30 prodName=CREF_30 alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/CREF_4.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/CREF_4.00.attr index 155fe07cd8..f3b92ec585 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/CREF_4.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/CREF_4.00.attr @@ -1,5 +1,5 @@ colorMapName=osf_ref16 -colorBar=@dfltMosaicColorBar.xml +colorBar=@ColorBars/Radar/dfltMosaicColorBar.xml productCode=30 prodName=CREF_30 alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/CREF_nids_cmref.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/CREF_nids_cmref.attr index 15a0166da2..3100f09511 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/CREF_nids_cmref.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/CREF_nids_cmref.attr @@ -1,5 +1,5 @@ colorMapName=nids_cmref -colorBar=@dfltMosaicColorBar.xml +colorBar=@ColorBars/Radar/dfltMosaicColorBar.xml productCode=30 prodName=CREF alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/NatlMosaic-ALL.xml b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/NatlMosaic-ALL.xml index be50350c8a..806932a362 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/NatlMosaic-ALL.xml +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/NatlMosaic-ALL.xml @@ -2,5 +2,5 @@ NatlMosaic ALL - RALA_1.00,PRCP1_4.00,VIL_4.00,PRCP24_4.00,TOPS2_4.00,PRCPC_4.00,CREF_4.00,CREF_1.00,TOPS18_1.00,TOPS30_1.00,VIL_1.00 + RALA_1.00,PRCP,PRCP1_4.00,VIL_4.00,PRCP24_4.00,TOPS_4.00,TOPS2_4.00,PRCPC_4.00,CREF_4.00,CREF_1.00,TOPS18_1.00,TOPS30_1.00,VIL_1.00 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/NatlMosaic-PRECIP.xml b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/NatlMosaic-PRECIP.xml index 6706b74b4a..457bc2f7f8 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/NatlMosaic-PRECIP.xml +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/NatlMosaic-PRECIP.xml @@ -2,5 +2,5 @@ NatlMosaic PRECIP - PRCP1_4.00,PRCP24_4.00,PRCPC_4.00 + PRCP,PRCP1_4.00,PRCP24_4.00,PRCPC_4.00 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/NatlMosaic-TOPS.xml b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/NatlMosaic-TOPS.xml index 472d493dbf..33cf55e7ef 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/NatlMosaic-TOPS.xml +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/NatlMosaic-TOPS.xml @@ -2,5 +2,5 @@ NatlMosaic TOPS - TOPS2_4.00,TOPS18_1.00,TOPS30_1.00 + TOPS_4.00,TOPS2_4.00,TOPS18_1.00,TOPS30_1.00 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/PRCP.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/PRCP.attr index af79c4c4fb..24689fead5 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/PRCP.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/PRCP.attr @@ -1,5 +1,5 @@ colorMapName=nids_pre -colorBar=@dfltMosaicColorBar.xml +colorBar=@ColorBars/Radar/dfltMosaicColorBar.xml productCode=101 prodName=PRCP alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/PRCP1_4.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/PRCP1_4.00.attr index b71cf4ebba..758f3eb6a0 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/PRCP1_4.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/PRCP1_4.00.attr @@ -1,5 +1,5 @@ colorMapName=nids_pre -colorBar=@dfltMosaicColorBar.xml +colorBar=@ColorBars/Radar/dfltMosaicColorBar.xml productCode=90 prodName=PRCP1_4 alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/PRCP24_4.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/PRCP24_4.00.attr index 807fe75fdf..2d338ed6ec 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/PRCP24_4.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/PRCP24_4.00.attr @@ -1,5 +1,5 @@ colorMapName=nids_pre -colorBar=@dfltMosaicColorBar.xml +colorBar=@ColorBars/Radar/dfltMosaicColorBar.xml productCode=102 prodName=PRCP24 alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/PRCPC_4.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/PRCPC_4.00.attr index 0394a9aaae..381c0f60b2 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/PRCPC_4.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/PRCPC_4.00.attr @@ -1,5 +1,5 @@ colorMapName=nids_pre -colorBar=@dfltMosaicColorBar.xml +colorBar=@ColorBars/Radar/dfltMosaicColorBar.xml productCode=101 prodName=PRCPC alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/RALA_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/RALA_1.00.attr index 97703e91a4..5da15345b3 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/RALA_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/RALA_1.00.attr @@ -1,5 +1,5 @@ colorMapName=osf_ref16 -colorBar=@dfltMosaicColorBar.xml +colorBar=@ColorBars/Radar/dfltMosaicColorBar.xml productCode=203 prodName=RALA alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/TOPS18_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/TOPS18_1.00.attr index c0f75a1efc..51002d0cf6 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/TOPS18_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/TOPS18_1.00.attr @@ -1,5 +1,5 @@ colorMapName=nids_tops -colorBar=@dfltMosaicColorBar.xml +colorBar=@ColorBars/Radar/dfltMosaicColorBar.xml productCode=210 prodName=TOPS18 alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/TOPS2_4.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/TOPS2_4.00.attr index 04276a3d6f..959ce9063a 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/TOPS2_4.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/TOPS2_4.00.attr @@ -1,5 +1,5 @@ colorMapName=nids_tops -colorBar=@dfltMosaicColorBar.xml +colorBar=@ColorBars/Radar/dfltMosaicColorBar.xml productCode=95 prodName=TOPS2 alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/TOPS30_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/TOPS30_1.00.attr index 7ee8d141c7..a7fc31b306 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/TOPS30_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/TOPS30_1.00.attr @@ -1,5 +1,5 @@ colorMapName=nids_tops -colorBar=@dfltMosaicColorBar.xml +colorBar=@ColorBars/Radar/dfltMosaicColorBar.xml productCode=212 prodName=TOPS30 alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/TOPS_4.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/TOPS_4.00.attr index 05a9876592..4e92309dc3 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/TOPS_4.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/TOPS_4.00.attr @@ -1,5 +1,5 @@ colorMapName=nids_tops -colorBar=@dfltMosaicColorBar.xml +colorBar=@ColorBars/Radar/dfltMosaicColorBar.xml productCode=95 prodName=TOPS_4 alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/VIL_1.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/VIL_1.00.attr index cb8cb85e95..0c86f7eb03 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/VIL_1.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/VIL_1.00.attr @@ -1,5 +1,5 @@ colorMapName=nids_vil -colorBar=@dfltMosaicColorBar.xml +colorBar=@ColorBars/Radar/dfltMosaicColorBar.xml productCode=209 prodName=VIL alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/VIL_4.00.attr b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/VIL_4.00.attr index d4ad91d380..f8034564a7 100644 --- a/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/VIL_4.00.attr +++ b/cave/build/static/common/cave/etc/ncep/AttributeSetGroups/RadarMosaic/VIL_4.00.attr @@ -1,5 +1,5 @@ colorMapName=nids_vil -colorBar=@dfltMosaicColorBar.xml +colorBar=@ColorBars/Radar/dfltMosaicColorBar.xml productCode=148 prodName=VIL_4 alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ColorBars/ffgColorBar.xml b/cave/build/static/common/cave/etc/ncep/ColorBars/FFG/ffgColorBar.xml similarity index 100% rename from cave/build/static/common/cave/etc/ncep/ColorBars/ffgColorBar.xml rename to cave/build/static/common/cave/etc/ncep/ColorBars/FFG/ffgColorBar.xml diff --git a/cave/build/static/common/cave/etc/ncep/ColorBars/dfltLtngColorBar.xml b/cave/build/static/common/cave/etc/ncep/ColorBars/Lightning/dfltLtngColorBar.xml similarity index 100% rename from cave/build/static/common/cave/etc/ncep/ColorBars/dfltLtngColorBar.xml rename to cave/build/static/common/cave/etc/ncep/ColorBars/Lightning/dfltLtngColorBar.xml diff --git a/cave/build/static/common/cave/etc/ncep/ColorBars/intensityColorBar.xml b/cave/build/static/common/cave/etc/ncep/ColorBars/Lightning/intensityColorBar.xml similarity index 100% rename from cave/build/static/common/cave/etc/ncep/ColorBars/intensityColorBar.xml rename to cave/build/static/common/cave/etc/ncep/ColorBars/Lightning/intensityColorBar.xml diff --git a/cave/build/static/common/cave/etc/ncep/ColorBars/dfltMosaicColorBar.xml b/cave/build/static/common/cave/etc/ncep/ColorBars/Radar/dfltMosaicColorBar.xml similarity index 100% rename from cave/build/static/common/cave/etc/ncep/ColorBars/dfltMosaicColorBar.xml rename to cave/build/static/common/cave/etc/ncep/ColorBars/Radar/dfltMosaicColorBar.xml diff --git a/cave/build/static/common/cave/etc/ncep/ColorBars/dfltRadarColorBar.xml b/cave/build/static/common/cave/etc/ncep/ColorBars/Radar/dfltRadarColorBar.xml similarity index 100% rename from cave/build/static/common/cave/etc/ncep/ColorBars/dfltRadarColorBar.xml rename to cave/build/static/common/cave/etc/ncep/ColorBars/Radar/dfltRadarColorBar.xml diff --git a/cave/build/static/common/cave/etc/ncep/ColorBars/ambig1ColorBar1.xml b/cave/build/static/common/cave/etc/ncep/ColorBars/SCAT/ambig1ColorBar1.xml similarity index 100% rename from cave/build/static/common/cave/etc/ncep/ColorBars/ambig1ColorBar1.xml rename to cave/build/static/common/cave/etc/ncep/ColorBars/SCAT/ambig1ColorBar1.xml diff --git a/cave/build/static/common/cave/etc/ncep/ColorBars/ambig1ColorBar2.xml b/cave/build/static/common/cave/etc/ncep/ColorBars/SCAT/ambig1ColorBar2.xml similarity index 100% rename from cave/build/static/common/cave/etc/ncep/ColorBars/ambig1ColorBar2.xml rename to cave/build/static/common/cave/etc/ncep/ColorBars/SCAT/ambig1ColorBar2.xml diff --git a/cave/build/static/common/cave/etc/ncep/ColorBars/ambig2ColorBar1.xml b/cave/build/static/common/cave/etc/ncep/ColorBars/SCAT/ambig2ColorBar1.xml similarity index 100% rename from cave/build/static/common/cave/etc/ncep/ColorBars/ambig2ColorBar1.xml rename to cave/build/static/common/cave/etc/ncep/ColorBars/SCAT/ambig2ColorBar1.xml diff --git a/cave/build/static/common/cave/etc/ncep/ColorBars/ambig2ColorBar2.xml b/cave/build/static/common/cave/etc/ncep/ColorBars/SCAT/ambig2ColorBar2.xml similarity index 100% rename from cave/build/static/common/cave/etc/ncep/ColorBars/ambig2ColorBar2.xml rename to cave/build/static/common/cave/etc/ncep/ColorBars/SCAT/ambig2ColorBar2.xml diff --git a/cave/build/static/common/cave/etc/ncep/ColorBars/ambig3ColorBar1.xml b/cave/build/static/common/cave/etc/ncep/ColorBars/SCAT/ambig3ColorBar1.xml similarity index 100% rename from cave/build/static/common/cave/etc/ncep/ColorBars/ambig3ColorBar1.xml rename to cave/build/static/common/cave/etc/ncep/ColorBars/SCAT/ambig3ColorBar1.xml diff --git a/cave/build/static/common/cave/etc/ncep/ColorBars/ambig3ColorBar2.xml b/cave/build/static/common/cave/etc/ncep/ColorBars/SCAT/ambig3ColorBar2.xml similarity index 100% rename from cave/build/static/common/cave/etc/ncep/ColorBars/ambig3ColorBar2.xml rename to cave/build/static/common/cave/etc/ncep/ColorBars/SCAT/ambig3ColorBar2.xml diff --git a/cave/build/static/common/cave/etc/ncep/ColorBars/ambig4ColorBar1.xml b/cave/build/static/common/cave/etc/ncep/ColorBars/SCAT/ambig4ColorBar1.xml similarity index 100% rename from cave/build/static/common/cave/etc/ncep/ColorBars/ambig4ColorBar1.xml rename to cave/build/static/common/cave/etc/ncep/ColorBars/SCAT/ambig4ColorBar1.xml diff --git a/cave/build/static/common/cave/etc/ncep/ColorBars/ambig4ColorBar2.xml b/cave/build/static/common/cave/etc/ncep/ColorBars/SCAT/ambig4ColorBar2.xml similarity index 100% rename from cave/build/static/common/cave/etc/ncep/ColorBars/ambig4ColorBar2.xml rename to cave/build/static/common/cave/etc/ncep/ColorBars/SCAT/ambig4ColorBar2.xml diff --git a/cave/build/static/common/cave/etc/ncep/ColorBars/defaultColorBar1.xml b/cave/build/static/common/cave/etc/ncep/ColorBars/SCAT/defaultColorBar1.xml similarity index 100% rename from cave/build/static/common/cave/etc/ncep/ColorBars/defaultColorBar1.xml rename to cave/build/static/common/cave/etc/ncep/ColorBars/SCAT/defaultColorBar1.xml diff --git a/cave/build/static/common/cave/etc/ncep/ColorBars/defaultColorBar2.xml b/cave/build/static/common/cave/etc/ncep/ColorBars/SCAT/defaultColorBar2.xml similarity index 100% rename from cave/build/static/common/cave/etc/ncep/ColorBars/defaultColorBar2.xml rename to cave/build/static/common/cave/etc/ncep/ColorBars/SCAT/defaultColorBar2.xml diff --git a/cave/build/static/common/cave/etc/ncep/ColorBars/dfltMcidasColorBar.xml b/cave/build/static/common/cave/etc/ncep/ColorBars/Satellite/dfltMcidasColorBar.xml similarity index 100% rename from cave/build/static/common/cave/etc/ncep/ColorBars/dfltMcidasColorBar.xml rename to cave/build/static/common/cave/etc/ncep/ColorBars/Satellite/dfltMcidasColorBar.xml diff --git a/cave/build/static/common/cave/etc/ncep/ColorBars/waveSatColorBar.xml b/cave/build/static/common/cave/etc/ncep/ColorBars/WaveSat/waveSatColorBar.xml similarity index 100% rename from cave/build/static/common/cave/etc/ncep/ColorBars/waveSatColorBar.xml rename to cave/build/static/common/cave/etc/ncep/ColorBars/WaveSat/waveSatColorBar.xml diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/37ghz-trmm1.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/37ghz-trmm1.cmap new file mode 100644 index 0000000000..069d8eb389 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/37ghz-trmm1.cmap @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/37ghz-trmm2.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/37ghz-trmm2.cmap new file mode 100644 index 0000000000..fb8227c3f0 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/37ghz-trmm2.cmap @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/37ghz-trmm3.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/37ghz-trmm3.cmap new file mode 100644 index 0000000000..d5c2660374 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/37ghz-trmm3.cmap @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/50C.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/50C.cmap new file mode 100644 index 0000000000..bf4fb6a110 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/50C.cmap @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/85ghz-trmm1.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/85ghz-trmm1.cmap new file mode 100644 index 0000000000..d5c2660374 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/85ghz-trmm1.cmap @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/85h-ssmi.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/85h-ssmi.cmap new file mode 100644 index 0000000000..eecd327c1f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/85h-ssmi.cmap @@ -0,0 +1,5 @@ + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/airmass.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/airmass.cmap new file mode 100644 index 0000000000..331d30382a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/airmass.cmap @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/bd.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/bd.cmap new file mode 100644 index 0000000000..41c1f2ab79 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/bd.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/dust.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/dust.cmap new file mode 100644 index 0000000000..a509b838d3 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/dust.cmap @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/ir_trp.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/ir_trp.cmap new file mode 100644 index 0000000000..42879f3e8e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/ir_trp.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/ir_tv2.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/ir_tv2.cmap new file mode 100644 index 0000000000..ecf097a199 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/ir_tv2.cmap @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/jf.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/jf.cmap new file mode 100644 index 0000000000..61dd021f53 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/jf.cmap @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/nmcir.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/nmcir.cmap new file mode 100644 index 0000000000..97ef1a9628 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/nmcir.cmap @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/omiai.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/omiai.cmap new file mode 100644 index 0000000000..be00e80125 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/omiai.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/omiso2.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/omiso2.cmap new file mode 100644 index 0000000000..5e1a0ac8b9 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/omiso2.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/qscat.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/qscat.cmap new file mode 100644 index 0000000000..d0a39824d3 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/qscat.cmap @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/qscat1.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/qscat1.cmap new file mode 100644 index 0000000000..4613a102ef --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/qscat1.cmap @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/rgb_airmass_95.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/rgb_airmass_95.cmap new file mode 100644 index 0000000000..331d30382a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/rgb_airmass_95.cmap @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/rgb_dust_95.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/rgb_dust_95.cmap new file mode 100644 index 0000000000..a509b838d3 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/rgb_dust_95.cmap @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/roygbv.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/roygbv.cmap new file mode 100644 index 0000000000..bea3269fdf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/roygbv.cmap @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/rr_trmm.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/rr_trmm.cmap new file mode 100644 index 0000000000..93f40f9495 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/rr_trmm.cmap @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/sabir.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/sabir.cmap index f020dad494..9512ba5088 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/sabir.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/sabir.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/ssmi_mpc.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/ssmi_mpc.cmap new file mode 100644 index 0000000000..9757edfeca --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/ssmi_mpc.cmap @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/ssmi_tpc.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/ssmi_tpc.cmap new file mode 100644 index 0000000000..b56459f7cc --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/ssmi_tpc.cmap @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/ssmi_wr.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/ssmi_wr.cmap new file mode 100644 index 0000000000..6d3cfae897 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/ssmi_wr.cmap @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/ssmiwnd_hi.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/ssmiwnd_hi.cmap new file mode 100644 index 0000000000..547b8e833a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/ssmiwnd_hi.cmap @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/topo-mb2.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/topo-mb2.cmap new file mode 100644 index 0000000000..57a655854a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/topo-mb2.cmap @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/topo-tv0.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/topo-tv0.cmap new file mode 100644 index 0000000000..3efe052102 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/topo-tv0.cmap @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/topo-tv1.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/topo-tv1.cmap new file mode 100644 index 0000000000..5367060bc9 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/topo-tv1.cmap @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/topo-tv2.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/topo-tv2.cmap new file mode 100644 index 0000000000..e1d1b31f1d --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/topo-tv2.cmap @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/topo.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/topo.cmap new file mode 100644 index 0000000000..afb07eebfc --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/topo.cmap @@ -0,0 +1,275 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/topo42.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/topo42.cmap new file mode 100644 index 0000000000..f81d0876a2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/topo42.cmap @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/topo42x.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/topo42x.cmap new file mode 100644 index 0000000000..6ae36ecf5f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/topo42x.cmap @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/topomap.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/topomap.cmap new file mode 100644 index 0000000000..11bc2fdb10 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/topomap.cmap @@ -0,0 +1,288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/tpc_topoir.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/tpc_topoir.cmap new file mode 100644 index 0000000000..f1a6cfa4d0 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/tpc_topoir.cmap @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/tpw.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/tpw.cmap new file mode 100644 index 0000000000..0f08186ee9 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/tpw.cmap @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/tpw_cira.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/tpw_cira.cmap new file mode 100644 index 0000000000..1f30b1e4a3 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/tpw_cira.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/tpwpct_cira.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/tpwpct_cira.cmap new file mode 100644 index 0000000000..b18833b020 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/tpwpct_cira.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/upc_topo.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/upc_topo.cmap index 4c01061892..f23bf0374f 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/upc_topo.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/upc_topo.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/vis_blue.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/vis_blue.cmap new file mode 100644 index 0000000000..93b9b4954a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/vis_blue.cmap @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/vis_early.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/vis_early.cmap new file mode 100644 index 0000000000..4464846c4d --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/vis_early.cmap @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/visgray2.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/visgray2.cmap new file mode 100644 index 0000000000..f2c60a186b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/visgray2.cmap @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/visgray3.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/visgray3.cmap new file mode 100644 index 0000000000..f2fb402713 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/visgray3.cmap @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/wv_bw.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/wv_bw.cmap new file mode 100644 index 0000000000..3d19874de0 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/wv_bw.cmap @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/wv_old.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/wv_old.cmap new file mode 100644 index 0000000000..00b9de94a3 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/wv_old.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/wv_tpc2.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/wv_tpc2.cmap new file mode 100644 index 0000000000..394cc655f2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/wv_tpc2.cmap @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/wv_tpc3.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/wv_tpc3.cmap new file mode 100644 index 0000000000..9ec4ab21ca --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/wv_tpc3.cmap @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/zbd.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/zbd.cmap new file mode 100644 index 0000000000..41c1f2ab79 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Other/zbd.cmap @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_cmref.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_cmref.cmap index 8eba7b89e2..7093277f45 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_cmref.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_cmref.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_csher.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_csher.cmap index ff94369a05..a1aaefe737 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_csher.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_csher.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_pre.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_pre.cmap index 655510923d..0babdb9f81 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_pre.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_pre.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_ref16.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_ref16.cmap index 2fa0b7cb23..17299fe80c 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_ref16.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_ref16.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_ref8.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_ref8.cmap index eaf932dffb..1e7e6f0e93 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_ref8.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_ref8.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_rsher.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_rsher.cmap index 5046b57e5d..1fef757b7c 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_rsher.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_rsher.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_swid.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_swid.cmap index d568f401be..e55815ccc9 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_swid.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_swid.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_tops.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_tops.cmap index 89819eef2b..bdcefb0009 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_tops.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_tops.cmap @@ -1,7 +1,7 @@ - + + - diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_vel16.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_vel16.cmap index 084006afae..221acce8b5 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_vel16.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_vel16.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_vel8.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_vel8.cmap index e57682bffd..f5f88affce 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_vel8.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_vel8.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_vil.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_vil.cmap index 2fa0b7cb23..17299fe80c 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_vil.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_vil.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_wecho.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_wecho.cmap index eaf932dffb..1e7e6f0e93 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_wecho.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/nids_wecho.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/osf_ref16.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/osf_ref16.cmap index de8c9140dc..36ea5a72f1 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/osf_ref16.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/osf_ref16.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/osf_ref8.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/osf_ref8.cmap index 2d55913d7d..d5e0595f0a 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/osf_ref8.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/osf_ref8.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/rad_gray16.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/rad_gray16.cmap index 31720f51f6..b1c19134d5 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/rad_gray16.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/rad_gray16.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/rad_gray8.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/rad_gray8.cmap index 205298240f..1a3f956dc0 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/rad_gray8.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Radar/rad_gray8.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/colormb.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/colormb.cmap index 7c8d1b7167..a9641fc6a9 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/colormb.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/colormb.cmap @@ -1,5 +1,6 @@ - + + @@ -16,52 +17,105 @@ + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/gdpicape.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/gdpicape.cmap index a0402c5801..d1137b4acf 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/gdpicape.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/gdpicape.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/gdpicinh.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/gdpicinh.cmap index b57a46325e..e09abe3677 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/gdpicinh.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/gdpicinh.cmap @@ -1,7 +1,7 @@ - + - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/gdpili.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/gdpili.cmap index 59ccdab28a..bc4966bda2 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/gdpili.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/gdpili.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/gdpipw.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/gdpipw.cmap index 72780dd4be..f0119456ff 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/gdpipw.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/gdpipw.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/goes_dpw.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/goes_dpw.cmap index d6f55c7440..feed3b0b6d 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/goes_dpw.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/goes_dpw.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_drgb.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_drgb.cmap index 369690eeb8..d7ae929d9c 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_drgb.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_drgb.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_grb.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_grb.cmap index 9410e00917..085104a6f2 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_grb.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_grb.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_nmc.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_nmc.cmap index 1a11639c29..f32a7209e5 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_nmc.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_nmc.cmap @@ -1,5 +1,5 @@ - + @@ -51,17 +51,19 @@ + - - - - - - - - - - - + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_rgbv.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_rgbv.cmap index 2551eb5d12..4b3ce8eb1c 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_rgbv.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_rgbv.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_sab.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_sab.cmap index 7141846ef5..255369ee8b 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_sab.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_sab.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_tpc.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_tpc.cmap index eeb44a5169..656396de8a 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_tpc.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_tpc.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_tv1.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_tv1.cmap index 02a90ae110..f45daad853 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_tv1.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ir_tv1.cmap @@ -1,5 +1,5 @@ - + @@ -213,47 +213,40 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/lingradk.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/lingradk.cmap index f2df2e0fda..beaaa4ae69 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/lingradk.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/lingradk.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/lingray.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/lingray.cmap index f665027c7e..a6b0930459 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/lingray.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/lingray.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/micro89a.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/micro89a.cmap index b37fc61b03..10df961400 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/micro89a.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/micro89a.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/micro89b.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/micro89b.cmap index d7ad4eea33..ae4ec25b86 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/micro89b.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/micro89b.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/micropw.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/micropw.cmap index 3e4cd6c48e..7774ba9298 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/micropw.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/micropw.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/microrain.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/microrain.cmap index 35f1f22dca..188ef46484 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/microrain.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/microrain.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ssmi_opc.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ssmi_opc.cmap index 59b3440938..139abe90a9 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ssmi_opc.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ssmi_opc.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ssmiwind.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ssmiwind.cmap index fc5759d649..aa2be4b128 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ssmiwind.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/ssmiwind.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/visgray.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/visgray.cmap index e9f898fd31..42d0dceab7 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/visgray.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/visgray.cmap @@ -1,5 +1,5 @@ - + @@ -64,4 +64,11 @@ + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/watvap.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/watvap.cmap index bd1f4aefb7..7b1fad2aef 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/watvap.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/watvap.cmap @@ -1,5 +1,5 @@ - + @@ -70,92 +70,46 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - + + + + - - - - - + + + + - - - - - + + + + - - - - - + + + + - - - - - + + + + - + - - - + + + + - - - + + @@ -174,28 +128,4 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/watvap2.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/watvap2.cmap index d6380b0bf3..df75b8defa 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/watvap2.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/watvap2.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/wv_gr8.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/wv_gr8.cmap index 6114ed6ddd..a533357b6f 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/wv_gr8.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/wv_gr8.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/wv_gree.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/wv_gree.cmap index 95feaa11dc..6b31ddc267 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/wv_gree.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/wv_gree.cmap @@ -1,5 +1,5 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/wv_tpc.cmap b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/wv_tpc.cmap index 3427269520..09ed55f377 100644 --- a/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/wv_tpc.cmap +++ b/cave/build/static/common/cave/etc/ncep/ColorMaps/Satellite/wv_tpc.cmap @@ -1,259 +1,131 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + + - + + - + + - + + - + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + diff --git a/cave/build/static/common/cave/etc/ncep/DefaultRBDs/defaultRBD.xml b/cave/build/static/common/cave/etc/ncep/DefaultRBDs/defaultRBD.xml index 7c3a638a94..c4d181573b 100644 --- a/cave/build/static/common/cave/etc/ncep/DefaultRBDs/defaultRBD.xml +++ b/cave/build/static/common/cave/etc/ncep/DefaultRBDs/defaultRBD.xml @@ -1,5 +1,5 @@ - + true diff --git a/cave/build/static/common/cave/etc/ncep/PgenXmlOverlayProducts/elev_NAM1000.xml b/cave/build/static/common/cave/etc/ncep/PgenXmlOverlayProducts/elev_NAM1000.xml new file mode 100644 index 0000000000..d4cb614322 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/PgenXmlOverlayProducts/elev_NAM1000.xml @@ -0,0 +1,2779 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/PgenXmlOverlayProducts/hpc050med.xml b/cave/build/static/common/cave/etc/ncep/PgenXmlOverlayProducts/hpc050med.xml new file mode 100644 index 0000000000..1feeb037f1 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/PgenXmlOverlayProducts/hpc050med.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/PgenXmlOverlayProducts/hpcsfc.xml b/cave/build/static/common/cave/etc/ncep/PgenXmlOverlayProducts/hpcsfc.xml new file mode 100644 index 0000000000..161cf1d300 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/PgenXmlOverlayProducts/hpcsfc.xml @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/PgenXmlOverlayProducts/mwobnds.xml b/cave/build/static/common/cave/etc/ncep/PgenXmlOverlayProducts/mwobnds.xml new file mode 100644 index 0000000000..bfd19984c2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/PgenXmlOverlayProducts/mwobnds.xml @@ -0,0 +1,3876 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/PgenXmlOverlayProducts/opcbnds.xml b/cave/build/static/common/cave/etc/ncep/PgenXmlOverlayProducts/opcbnds.xml new file mode 100644 index 0000000000..3e3f85c1b5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/PgenXmlOverlayProducts/opcbnds.xml @@ -0,0 +1,1013 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/PgenXmlOverlayProducts/opcbnds_nomex.xml b/cave/build/static/common/cave/etc/ncep/PgenXmlOverlayProducts/opcbnds_nomex.xml new file mode 100644 index 0000000000..3065b4103c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/PgenXmlOverlayProducts/opcbnds_nomex.xml @@ -0,0 +1,970 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/PgenXmlOverlayProducts/ssa_bnd.xml b/cave/build/static/common/cave/etc/ncep/PgenXmlOverlayProducts/ssa_bnd.xml new file mode 100644 index 0000000000..5d4034c85a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/PgenXmlOverlayProducts/ssa_bnd.xml @@ -0,0 +1,3728 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/PgenXmlOverlayProducts/tpcbounds.xml b/cave/build/static/common/cave/etc/ncep/PgenXmlOverlayProducts/tpcbounds.xml new file mode 100644 index 0000000000..5331f1d8b6 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/PgenXmlOverlayProducts/tpcbounds.xml @@ -0,0 +1,9594 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/ConditionalFilters/taf_tempo_flight_condition.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/ConditionalFilters/taf_tempo_flight_condition.xml new file mode 100644 index 0000000000..bed0e27e26 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/ConditionalFilters/taf_tempo_flight_condition.xml @@ -0,0 +1,4 @@ + + + + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/ConditionalFilters/tempo_prob.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/ConditionalFilters/taf_tempo_prob.xml similarity index 71% rename from cave/build/static/common/cave/etc/ncep/PlotModels/ConditionalFilters/tempo_prob.xml rename to cave/build/static/common/cave/etc/ncep/PlotModels/ConditionalFilters/taf_tempo_prob.xml index 5747d59121..e45d0577c6 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/ConditionalFilters/tempo_prob.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/ConditionalFilters/taf_tempo_prob.xml @@ -1,4 +1,4 @@ - + - + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/ConditionalFilters/tempo_flight_condition.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/ConditionalFilters/tempo_flight_condition.xml deleted file mode 100644 index f7f1b562dd..0000000000 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/ConditionalFilters/tempo_flight_condition.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/CourierBold.svg b/cave/build/static/common/cave/etc/ncep/PlotModels/CourierBold.svg new file mode 100644 index 0000000000..d5bf4e655e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/CourierBold.svg @@ -0,0 +1,710 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/CourierBoldItalic.svg b/cave/build/static/common/cave/etc/ncep/PlotModels/CourierBoldItalic.svg new file mode 100644 index 0000000000..81c725d372 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/CourierBoldItalic.svg @@ -0,0 +1,2920 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/CourierItalic.svg b/cave/build/static/common/cave/etc/ncep/PlotModels/CourierItalic.svg new file mode 100644 index 0000000000..2029148d6c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/CourierItalic.svg @@ -0,0 +1,339 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/CourierNormal.svg b/cave/build/static/common/cave/etc/ncep/PlotModels/CourierNormal.svg new file mode 100644 index 0000000000..ad181b74e6 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/CourierNormal.svg @@ -0,0 +1,501 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/HelveticaBold.svg b/cave/build/static/common/cave/etc/ncep/PlotModels/HelveticaBold.svg new file mode 100644 index 0000000000..784fddc7d8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/HelveticaBold.svg @@ -0,0 +1,570 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/HelveticaBoldItalic.svg b/cave/build/static/common/cave/etc/ncep/PlotModels/HelveticaBoldItalic.svg new file mode 100644 index 0000000000..47f75a9b71 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/HelveticaBoldItalic.svg @@ -0,0 +1,1221 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/HelveticaItalic.svg b/cave/build/static/common/cave/etc/ncep/PlotModels/HelveticaItalic.svg new file mode 100644 index 0000000000..62e75dd9f0 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/HelveticaItalic.svg @@ -0,0 +1,659 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/HelveticaNormal.svg b/cave/build/static/common/cave/etc/ncep/PlotModels/HelveticaNormal.svg new file mode 100644 index 0000000000..fe23624d8f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/HelveticaNormal.svg @@ -0,0 +1,929 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/NcWxSymbols.svg b/cave/build/static/common/cave/etc/ncep/PlotModels/NcWxSymbols.svg index 26ab091054..06741e99bb 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/NcWxSymbols.svg +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/NcWxSymbols.svg @@ -194,14 +194,14 @@ xmlns:xlink="http://www.w3.org/1999/xlink"> - - - + + + - - - + + + @@ -210,11 +210,12 @@ xmlns:xlink="http://www.w3.org/1999/xlink"> - - - - - + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/PlotParameters/plotParameters_ncuair.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/PlotParameters/plotParameters_ncuair.xml index d6d03715a3..38c245afd7 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/PlotParameters/plotParameters_ncuair.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/PlotParameters/plotParameters_ncuair.xml @@ -52,15 +52,15 @@ + + - - - + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/TimesBold.svg b/cave/build/static/common/cave/etc/ncep/PlotModels/TimesBold.svg new file mode 100644 index 0000000000..4af6927b93 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/TimesBold.svg @@ -0,0 +1,753 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/TimesBoldItalic.svg b/cave/build/static/common/cave/etc/ncep/PlotModels/TimesBoldItalic.svg new file mode 100644 index 0000000000..d8d8d50de0 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/TimesBoldItalic.svg @@ -0,0 +1,3667 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/TimesItalic.svg b/cave/build/static/common/cave/etc/ncep/PlotModels/TimesItalic.svg new file mode 100644 index 0000000000..c1c081d29a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/TimesItalic.svg @@ -0,0 +1,1886 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/TimesNormal.svg b/cave/build/static/common/cave/etc/ncep/PlotModels/TimesNormal.svg new file mode 100644 index 0000000000..0042ebc8aa --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/TimesNormal.svg @@ -0,0 +1,851 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/WindSymbols.svg b/cave/build/static/common/cave/etc/ncep/PlotModels/WindSymbols.svg index e4e262c498..331fa004d4 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/WindSymbols.svg +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/WindSymbols.svg @@ -8,60 +8,60 @@ xmlns:xlink="http://www.w3.org/1999/xlink"> units-per-em="12" alphabetic="0" /> - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/standard.xml deleted file mode 100644 index 40ff13553c..0000000000 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/standard.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - UL - - - - LL - - - - LR - - - diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/etamos_standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosETA/standard.xml similarity index 78% rename from cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/etamos_standard.xml rename to cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosETA/standard.xml index fe38965427..287fa59b99 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/etamos_standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosETA/standard.xml @@ -1,31 +1,31 @@ - + - + LR - + UR - + TC - + LL @@ -40,4 +40,4 @@ --> - + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/gfsmos_12hrpop.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/12hrpop.xml similarity index 61% rename from cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/gfsmos_12hrpop.xml rename to cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/12hrpop.xml index a98241c852..95616859e7 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/gfsmos_12hrpop.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/12hrpop.xml @@ -1,9 +1,9 @@ - + - + UR - \ No newline at end of file + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/gfsmos_6hrpop.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/6hrpop.xml similarity index 59% rename from cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/gfsmos_6hrpop.xml rename to cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/6hrpop.xml index 234f9dd2bd..4537377d7a 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/gfsmos_6hrpop.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/6hrpop.xml @@ -1,9 +1,9 @@ - + - + UR - \ No newline at end of file + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/gfsmos_fosb.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/fosb.xml similarity index 60% rename from cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/gfsmos_fosb.xml rename to cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/fosb.xml index b2dc7e1199..3ae9c3f780 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/gfsmos_fosb.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/fosb.xml @@ -1,10 +1,10 @@ - + - + UL - \ No newline at end of file + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/gfsmos_misc.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/misc.xml similarity index 77% rename from cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/gfsmos_misc.xml rename to cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/misc.xml index 445d75cd32..cf02c402f1 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/gfsmos_misc.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/misc.xml @@ -1,86 +1,86 @@ - + - + BC - + LL - + TC - + LR - + TC - + BC - + TC - + BC - + UR - + UR - + LR - + LL - + UL - + BC - + TC - + LR - \ No newline at end of file + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/gfsmos_standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/standard.xml similarity index 77% rename from cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/gfsmos_standard.xml rename to cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/standard.xml index c5e52be39a..cfbad0ecb3 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/gfsmos_standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/standard.xml @@ -1,55 +1,55 @@ - + - + UL - + UR - + TC - + LL - + LR - + BC - + UL - + UR - + TC - + LL - + LR - + UR - \ No newline at end of file + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/gfsmos_wind.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/wind.xml similarity index 78% rename from cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/gfsmos_wind.xml rename to cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/wind.xml index fb792c4aee..bdb24f2f7e 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/gfsmos_wind.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosGFS/wind.xml @@ -1,5 +1,5 @@ - + WD @@ -11,4 +11,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/lampmos_standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosLAMP/standard.xml similarity index 74% rename from cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/lampmos_standard.xml rename to cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosLAMP/standard.xml index 34cf9ea547..5d485e6573 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/lampmos_standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosLAMP/standard.xml @@ -1,39 +1,39 @@ - - + + UL - + LL - + SC - + LR - + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/gfsxmos_standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosMRF/standard.xml similarity index 70% rename from cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/gfsxmos_standard.xml rename to cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosMRF/standard.xml index 6c75426d88..43c86fd02d 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/gfsxmos_standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosMRF/standard.xml @@ -1,17 +1,17 @@ - + - + LR - + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/ngmmos_standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosNGM/standard.xml similarity index 71% rename from cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/ngmmos_standard.xml rename to cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosNGM/standard.xml index 5a449e3641..40fac1486f 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmos/ngmmos_standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrmosNGM/standard.xml @@ -1,15 +1,15 @@ - - + + UL - + LL - + LR - + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrua/bufrua_standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrua/bufrua_standard.xml deleted file mode 100644 index aa5a02fa68..0000000000 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrua/bufrua_standard.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - UL - - - - UR - - - - LL - - - - LR - - - - WD - - - diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrua_standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrua/standard.xml similarity index 77% rename from cave/build/static/common/cave/etc/ncep/PlotModels/bufrua_standard.xml rename to cave/build/static/common/cave/etc/ncep/PlotModels/bufrua/standard.xml index aa5a02fa68..8ab913ad8e 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/bufrua_standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/bufrua/standard.xml @@ -1,28 +1,28 @@ - - + UL - + UR - + LL - + LR - + WD - + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/modelsounding/basicNAM.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/modelsounding/basicNAM.xml index 30cdc62a98..6ee4096621 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/modelsounding/basicNAM.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/modelsounding/basicNAM.xml @@ -1,51 +1,51 @@ - - + + MC - + UL - + LL - + ML - + MR - + TR - + BR - + LC - + BC - + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/ncairep/fullPlot.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/ncairep/fullPlot.xml index dc7e34172a..57cdce2263 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/ncairep/fullPlot.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/ncairep/fullPlot.xml @@ -1,6 +1,6 @@ - @@ -11,59 +11,59 @@ --> +textFont="Helvetica" textSize="14" paramName="TBSY"> TC +textFont="Helvetica" textSize="14" paramName="TMPC"> UL +textFont="Helvetica" textSize="14" paramName="FELV"> LL +textFont="Helvetica" textSize="14" paramName="ICSY"> MR +textFont="Helvetica" textSize="14" paramName="STID"> LR - + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/ncairep/standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/ncairep/standard.xml index 41c2acc818..af0a1bf1ce 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/ncairep/standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/ncairep/standard.xml @@ -1,6 +1,6 @@ - @@ -11,46 +11,46 @@ --> +textFont="Helvetica" textSize="14" paramName="TPOI"> UC +textFont="Helvetica" textSize="14" paramName="ICSY"> UR +textFont="Helvetica" textSize="14" paramName="STID"> MC +textFont="Helvetica" textSize="14" paramName="FELV"> LC +textFont="Helvetica" textSize="14" paramName="TBSY"> UL - + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/ncpafm/standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/ncpafm/standard.xml index 5a5eb5ccdc..1ae5c11d01 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/ncpafm/standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/ncpafm/standard.xml @@ -1,52 +1,52 @@ - - + + TC - + UL - + UC - + UR - + ML - + MR - + LL - + LC - + WD - + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/ncpirep/standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/ncpirep/standard.xml index 325ca23f4b..65494863c7 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/ncpirep/standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/ncpirep/standard.xml @@ -1,6 +1,6 @@ - @@ -10,20 +10,20 @@ have not been implemented yet for airep --> +textFont="Helvetica" textSize="14" paramName="TPOI"> UC +textFont="Helvetica" textSize="14" paramName="STID"> MC +textFont="Helvetica" textSize="14" paramName="FELV"> LC +textFont="Helvetica" textSize="14" paramName="TBSY"> UL +textFont="Helvetica" textSize="14" paramName="ICSY"> UR - \ No newline at end of file + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/ncscd/standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/ncscd/standard.xml index b5c92ecbda..e8bcfcca7f 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/ncscd/standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/ncscd/standard.xml @@ -1,35 +1,35 @@ - - + + UL - + ML - + LL - + UR - + LR - + BC - + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/simple.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/simple.xml index 2dfd478e43..0e3deaa413 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/simple.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/simple.xml @@ -1,39 +1,39 @@ - - + + UL - + LL - + SC - + WD - - + LR - + TC - + UR - + LM - + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/standard.xml index 25d4ba419f..d7853d0259 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/standard.xml @@ -1,15 +1,15 @@ - - + + SC - + ML - + LR - + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/tempo_flt_condition.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/tempo_flt_condition.xml index 694babf7a8..c00ee75b40 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/tempo_flt_condition.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/tempo_flt_condition.xml @@ -1,32 +1,32 @@ - - + + UL - + LL - + SC - + UR - + LR - + TC - + BC - + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/tempo_prob.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/tempo_prob.xml index 54c9b0f35a..41d35ace04 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/tempo_prob.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/nctaf/tempo_prob.xml @@ -1,32 +1,32 @@ - - + + UL - + LL - + SC - + UR - + LR - + TC - + BC - + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/ncuair/standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/ncuair/standard.xml index 3cb3780c93..d195d6eaba 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/ncuair/standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/ncuair/standard.xml @@ -1,28 +1,28 @@ - - + UL - + UR - + LL - + LR - + - + WD - + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/obs/simple.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/obs/simple.xml index 04aa36e200..5bc098fabb 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/obs/simple.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/obs/simple.xml @@ -1,12 +1,10 @@ - - + UL @@ -14,7 +12,7 @@ ML - + LL @@ -22,4 +20,4 @@ WD - + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/obs/standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/obs/standard.xml index 479b9d264e..7e4b6ff7e7 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/obs/standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/obs/standard.xml @@ -1,41 +1,41 @@ - - + + UL - + LL - + BC - + LR - + UR - + SC - + WD - + ML - + MR - + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/obs/standard2.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/obs/standard2.xml index 3e648beb27..c3d11a4e40 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/obs/standard2.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/obs/standard2.xml @@ -1,14 +1,14 @@ - - + + UL - + LL - + BC @@ -16,28 +16,28 @@ LR - + UR - + SC - + WD - + ML - + MR - + LC - \ No newline at end of file + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/plotModel.xsd b/cave/build/static/common/cave/etc/ncep/PlotModels/plotModel.xsd index 01a78403e7..c376513642 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/plotModel.xsd +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/plotModel.xsd @@ -1,7 +1,7 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/sfcobs/bouys.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/sfcobs/bouys.xml index cf9de6d1f3..e51feb6fbf 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/sfcobs/bouys.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/sfcobs/bouys.xml @@ -1,5 +1,5 @@ - + WD @@ -17,4 +17,4 @@ - + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/sfcobs/ship_standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/sfcobs/ship_standard.xml index 7277bd7a5a..976ac6d526 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/sfcobs/ship_standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/sfcobs/ship_standard.xml @@ -1,5 +1,5 @@ - + UL @@ -42,4 +42,4 @@ BC - + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/sfcobs/synop_standard.xml b/cave/build/static/common/cave/etc/ncep/PlotModels/sfcobs/synop_standard.xml index b915faee1e..4258a9b1bf 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/sfcobs/synop_standard.xml +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/sfcobs/synop_standard.xml @@ -1,5 +1,5 @@ - + UL @@ -40,4 +40,4 @@ LC - + diff --git a/cave/build/static/common/cave/etc/ncep/PlotModels/standardPlotModelTemplate.svg b/cave/build/static/common/cave/etc/ncep/PlotModels/standardPlotModelTemplate.svg index 4118f96d73..7ce4be2933 100644 --- a/cave/build/static/common/cave/etc/ncep/PlotModels/standardPlotModelTemplate.svg +++ b/cave/build/static/common/cave/etc/ncep/PlotModels/standardPlotModelTemplate.svg @@ -9,12 +9,43 @@ xmlns:xlink="http://www.w3.org/1999/xlink" style="stroke: rgb(255,255,255);"> @@ -24,29 +55,29 @@ xmlns:xlink="http://www.w3.org/1999/xlink" style="stroke: rgb(255,255,255);"> and a plugin's plotParameters.xml file are used to create the svg syntax for a plot image. --> - + - err - err - err + err + err + err - err - err + err + err err err - err + err - err - err - err + err + err + err arrow arrow - + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/ENSEMBLE/GFS_ENS.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/ENSEMBLE/GFS_ENS.xml index ca92afbe60..0c730e6d4e 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/ENSEMBLE/GFS_ENS.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/ENSEMBLE/GFS_ENS.xml @@ -4,9 +4,9 @@ GFS_ENS ENSEMBLE +primaryModel=gfs availableModels=gfs pluginName=ncgrib -eventName=% Forecast,Global,Ensemble EnsembleFcstGridContours diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/ENSEMBLE/NAM_00.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/ENSEMBLE/NAM_00.xml index 5ea665616c..d3c854a6b7 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/ENSEMBLE/NAM_00.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/ENSEMBLE/NAM_00.xml @@ -4,9 +4,9 @@ NAM_00 ENSEMBLE +primaryModel=nam availableModels=nam;gefs:01,02,03,04,05,07,09;gfs;ruc80 pluginName=ncgrib -eventName=% Forecast,Ensemble EnsembleFcstGridContours diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/AVIATION/AVIATION.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/AVIATION/AVIATION.xml index 550c5b2bca..25047846b3 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/AVIATION/AVIATION.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/AVIATION/AVIATION.xml @@ -4,7 +4,7 @@ AVIATION GRID -GDFILE=AVIATION +GDFILE=aviation pluginName=ncgrib eventName=% diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/EASTNMM/EASTNMM.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/EASTNMM/EASTNMM.xml index f26ed06cdd..bfec8f5ff4 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/EASTNMM/EASTNMM.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/EASTNMM/EASTNMM.xml @@ -4,7 +4,7 @@ EASTNMM GRID -GDFILE=EASTNMM +GDFILE=eastnmm pluginName=ncgrib eventName=% diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/ECMWF/ECMWF.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/ECMWF/ECMWF.xml index e23588919f..c25393c1c2 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/ECMWF/ECMWF.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/ECMWF/ECMWF.xml @@ -4,7 +4,7 @@ ECMWF GRID -GDFILE=ECMWF25 +GDFILE=ecmwf25 pluginName=ncgrib eventName=% diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/GHM/GHM.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/GHM/GHM.xml index 2948d6fb0c..012e74332b 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/GHM/GHM.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/GHM/GHM.xml @@ -4,7 +4,7 @@ GHM GRID -GDFILE=GHM +GDFILE=ghm pluginName=ncgrib eventName=% diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/GHMNEST/GHMNEST.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/GHMNEST/GHMNEST.xml index f00a774d22..02a669846d 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/GHMNEST/GHMNEST.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/GHMNEST/GHMNEST.xml @@ -4,7 +4,7 @@ GHMNEST GRID -GDFILE=GHMNEST +GDFILE=ghmnest pluginName=ncgrib eventName=% diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/NAM/NAM.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/NAM/NAM.xml index 5195160fe9..c8e64fdec1 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/NAM/NAM.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/NAM/NAM.xml @@ -5,7 +5,7 @@ GRID Forecast,Regional -GDFILE=NAM +GDFILE=nam pluginName=ncgrib eventName=% diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/WESTNMM/WESTNMM.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/WESTNMM/WESTNMM.xml index 33eb26e7c5..81c0c27d34 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/WESTNMM/WESTNMM.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/GRID/WESTNMM/WESTNMM.xml @@ -4,7 +4,7 @@ WESTNMM GRID -GDFILE=WESTNMM +GDFILE=westnmm pluginName=ncgrib eventName=% diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/AIRMET/AIRMET.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/AIRMET/AIRMET.xml index 55ab339cf2..899516d186 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/AIRMET/AIRMET.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/AIRMET/AIRMET.xml @@ -3,7 +3,11 @@ true AIRMET MISC - legend_color=RGB {155, 155, 155} + +pluginName=airmet +reportType=airmet +legendColor=RGB {155, 155, 155} + SigMet,Event Airmet diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ASCT/ASCT.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ASCT/ASCT.xml index 5065e2fe6f..de5732ed4c 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ASCT/ASCT.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ASCT/ASCT.xml @@ -3,6 +3,12 @@ true ASCT MISC + +pluginName=ncscat +! the reportType may be overridden in an attrSet file +reportType=ascat +color=RGB {155, 155, 155} + SCAT SCAT diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ASCT/ambig1_hi.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ASCT/ambig1_hi.attr index 384c5e5239..c17062e176 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ASCT/ambig1_hi.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ASCT/ambig1_hi.attr @@ -4,10 +4,8 @@ ! the reportType could alternatively be set in the .prm file reportType=ascat-hi-ambig1 -legend_color=RGB {155, 155, 155} -color=RGB {155, 155, 155} -colorBar1=@ambig1ColorBar1.xml -colorBar2=@ambig1ColorBar2.xml +colorBar1=@ColorBars/SCAT/ambig1ColorBar1.xml +colorBar2=@ColorBars/SCAT/ambig1ColorBar2.xml ! skipEnable=false skipValue=5 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ASCT/ambig2_hi.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ASCT/ambig2_hi.attr index 4b06c6251a..b69a603815 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ASCT/ambig2_hi.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ASCT/ambig2_hi.attr @@ -4,10 +4,8 @@ ! the reportType could alternatively be set in the .prm file reportType=ascat-hi-ambig2 -legend_color=RGB {155, 155, 155} -color=RGB {155, 155, 155} -colorBar1=@ambig2ColorBar1.xml -colorBar2=@ambig2ColorBar2.xml +colorBar1=@ColorBars/SCAT/ambig2ColorBar1.xml +colorBar2=@ColorBars/SCAT/ambig2ColorBar2.xml ! skipEnable=false skipValue=5 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ASCT/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ASCT/default.attr index ec8d215f99..5d3d073fbf 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ASCT/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ASCT/default.attr @@ -4,10 +4,8 @@ ! the reportType could alternatively be set in the .prm file reportType=ascat -legend_color=RGB {155, 155, 155} -color=RGB {155, 155, 155} -colorBar1=@defaultColorBar1.xml -colorBar2=@defaultColorBar2.xml +colorBar1=@ColorBars/SCAT/defaultColorBar1.xml +colorBar2=@ColorBars/SCAT/defaultColorBar2.xml ! skipEnable=false skipValue=5 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ASCT/default_hi.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ASCT/default_hi.attr index a2a76f1dfd..e1dc00673a 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ASCT/default_hi.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ASCT/default_hi.attr @@ -4,10 +4,8 @@ ! the reportType could alternatively be set in the .prm file reportType=ascat-hi -legend_color=RGB {155, 155, 155} -color=RGB {155, 155, 155} -colorBar1=@defaultColorBar1.xml -colorBar2=@defaultColorBar2.xml +colorBar1=@ColorBars/SCAT/defaultColorBar1.xml +colorBar2=@ColorBars/SCAT/defaultColorBar2.xml ! skipEnable=false skipValue=5 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ATCF/ATCF.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ATCF/ATCF.xml index 757a3597d8..a9782556fe 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ATCF/ATCF.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ATCF/ATCF.xml @@ -3,7 +3,11 @@ true ATCF MISC - legendColor=RGB {255, 255, 255} + +pluginName=atcf +reportType=ATCF +legendColor=RGB {255, 255, 255} + Hurricane ATCF diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/CSIG/CSIG.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/CSIG/CSIG.xml index e1baad3820..7bab44ba86 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/CSIG/CSIG.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/CSIG/CSIG.xml @@ -3,7 +3,12 @@ true CSIG MISC - legend_color=RGB {155, 155, 155} + +pluginName=convsigmet +reportType=convsigmet +color=RGB {155, 155, 155} +legendName=Convective SIGMETs + SigMet,Event ConvectiveSigmet diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/CSIG/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/CSIG/default.attr index 6f265181a2..3d2f6a5949 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/CSIG/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/CSIG/default.attr @@ -1,7 +1,5 @@ ! Attributes for Convective SIGMET ! -color=RGB {155, 155, 155} -! hour0Enable=true hour0Color=RGB {255, 0, 0} hour0LineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ENS_CYC/ENS_CYC.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ENS_CYC/ENS_CYC.xml index 9e47a3c505..ff11d02701 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ENS_CYC/ENS_CYC.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ENS_CYC/ENS_CYC.xml @@ -3,7 +3,11 @@ true ENS_CYC MISC - legendColor=RGB {255, 255, 255} + +pluginName=stormtrack +reportType=ENSCYC +legendColor=RGB {255, 255, 255} + Hurricane StormTrack diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/EXASCT/EXASCT.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/EXASCT/EXASCT.xml index 4203f4d6ca..b38cf82711 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/EXASCT/EXASCT.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/EXASCT/EXASCT.xml @@ -3,6 +3,12 @@ true EXASCT MISC + +pluginName=ncscat +! the reportType may be overridden in an attrSet file +reportType=Exasct +color=RGB {155, 155, 155} + SCAT SCAT diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/EXASCT/ambig1_hi.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/EXASCT/ambig1_hi.attr index 469e668e57..1bbe67ebd3 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/EXASCT/ambig1_hi.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/EXASCT/ambig1_hi.attr @@ -2,10 +2,8 @@ ! reportType=Exasct-hi-ambig1 ! -legend_color=RGB {155, 155, 155} -color=RGB {155, 155, 155} -colorBar1=@ambig1ColorBar1.xml -colorBar2=@ambig1ColorBar2.xml +colorBar1=@ColorBars/SCAT/ambig1ColorBar1.xml +colorBar2=@ColorBars/SCAT/ambig1ColorBar2.xml ! skipEnable=false skipValue=5 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/EXASCT/ambig2_hi.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/EXASCT/ambig2_hi.attr index 916703714f..c8d404f413 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/EXASCT/ambig2_hi.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/EXASCT/ambig2_hi.attr @@ -2,10 +2,8 @@ ! reportType=Exasct-hi-ambig2 ! -legend_color=RGB {155, 155, 155} -color=RGB {155, 155, 155} -colorBar1=@ambig2ColorBar1.xml -colorBar2=@ambig2ColorBar2.xml +colorBar1=@ColorBars/SCAT/ambig2ColorBar1.xml +colorBar2=@ColorBars/SCAT/ambig2ColorBar2.xml ! skipEnable=false skipValue=5 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/EXASCT/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/EXASCT/default.attr index ed2688bcdb..96a86ce3ad 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/EXASCT/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/EXASCT/default.attr @@ -2,10 +2,8 @@ ! reportType=Exasct ! -legend_color=RGB {155, 155, 155} -color=RGB {155, 155, 155} -colorBar1=@defaultColorBar1.xml -colorBar2=@defaultColorBar2.xml +colorBar1=@ColorBars/SCAT/defaultColorBar1.xml +colorBar2=@ColorBars/SCAT/defaultColorBar2.xml ! skipEnable=false skipValue=5 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/EXASCT/default_hi.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/EXASCT/default_hi.attr index 536d83f256..1ed598b684 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/EXASCT/default_hi.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/EXASCT/default_hi.attr @@ -2,10 +2,8 @@ ! reportType=Exasct-hi ! -legend_color=RGB {155, 155, 155} -color=RGB {155, 155, 155} -colorBar1=@defaultColorBar1.xml -colorBar2=@defaultColorBar2.xml +colorBar1=@ColorBars/SCAT/defaultColorBar1.xml +colorBar2=@ColorBars/SCAT/defaultColorBar2.xml ! skipEnable=false skipValue=5 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/FFA/FFA.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/FFA/FFA.xml index cb6c156430..71865ca048 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/FFA/FFA.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/FFA/FFA.xml @@ -3,6 +3,12 @@ true FFA MISC + +pluginName=aww +reportType=FLASH_FLOOD_ADVISORY,FLASH_FLOOD_WARNING,FLASH_FLOOD_WATCH,FLASH_FLOOD_STATEMENT,FLOOD_WATCH +legendName=FFA +color=RGB {155, 155, 155} + AWW,Event FFA diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/FFA/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/FFA/default.attr index c15265d295..c78205c999 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/FFA/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/FFA/default.attr @@ -1,9 +1,5 @@ ! Attributes for Flash Flood related information ! -sourceName=FFA -normalize_timeline=true -color=RGB {155, 155, 155} -! flashFloodAdvisoryEnable=true flashFloodAdvisoryColor=RGB {0, 255, 0} flashFloodAdvisorySymbolWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/HRCN/HRCN.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/HRCN/HRCN.xml index b2d74bdf05..28206890a9 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/HRCN/HRCN.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/HRCN/HRCN.xml @@ -3,7 +3,11 @@ true HRCN MISC - legend_color=RGB {155, 155, 155} + +pluginName=tcm +reportType=TCM +color= {155, 155, 155} + Huh,Event HRCN diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/HRCN/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/HRCN/default.attr index dcb21f9bfa..dc26260429 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/HRCN/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/HRCN/default.attr @@ -1,7 +1,5 @@ ! Attributes for Tropical Cyclone (HRCN/TCM) ! -color= {155, 155, 155} -! hurricaneEnable=true hurricaneColor= {255, 0, 0} hurricaneSymbolWidth=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ISIG/ISIG.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ISIG/ISIG.xml index 904838d0fc..5cc8beccb1 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ISIG/ISIG.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/ISIG/ISIG.xml @@ -3,7 +3,11 @@ true ISIG MISC - legendColor=RGB {255, 255, 255} + +pluginName=intlsigmet +reportType=intlsigmet +legendColor=RGB {255, 255, 255} + SigMet,Event IntlSigmet diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/LTNG/LTNG.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/LTNG/LTNG.xml index 91f42092e8..3d6f4eb9cd 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/LTNG/LTNG.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/LTNG/LTNG.xml @@ -4,8 +4,9 @@ LTNG MISC -legend_color=RGB {200, 200, 200} +pluginName=binlightning colorByIntensity=false +legendColor=RGB {200, 200, 200} Observed Lightning @@ -17,5 +18,4 @@ colorByIntensity=false 10 6 BasicWX_US - diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/LTNG/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/LTNG/default.attr index e8151141b3..2e9b8042a3 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/LTNG/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/LTNG/default.attr @@ -4,4 +4,4 @@ enablePositiveStrikes=true enableNegativeStrikes=true positiveSymbolSize=3 negativeSymbolSize=3 -colorBar=@dfltLtngColorBar.xml \ No newline at end of file +colorBar=@ColorBars/Lightning/dfltLtngColorBar.xml \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/LTNG/newLtngAttrSet.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/LTNG/newLtngAttrSet.attr index e41d4d002a..1dcd46784f 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/LTNG/newLtngAttrSet.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/LTNG/newLtngAttrSet.attr @@ -4,4 +4,4 @@ enablePositiveStrikes=false enableNegativeStrikes=true positiveSymbolSize=3 negativeSymbolSize=3 -colorBar=@dfltLtngColorBar.xml \ No newline at end of file +colorBar=@ColorBars/Lightning/dfltLtngColorBar.xml \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/LTNG2/LTNG2.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/LTNG2/LTNG2.xml index 1c82888a31..a46abbac6a 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/LTNG2/LTNG2.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/LTNG2/LTNG2.xml @@ -4,9 +4,10 @@ LTNG2 MISC -legend_color=RGB {200, 200, 200} +pluginName=binlightning colorByIntensity=true - +legendColor=RGB {200, 200, 200} + Observed Lightning @@ -17,5 +18,4 @@ colorByIntensity=true 10 6 BasicWX_US - diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/LTNG2/colorByIntensity.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/LTNG2/colorByIntensity.attr index 0b040b4300..c153e1af86 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/LTNG2/colorByIntensity.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/LTNG2/colorByIntensity.attr @@ -4,4 +4,4 @@ enablePositiveStrikes=true enableNegativeStrikes=true positiveSymbolSize=3 negativeSymbolSize=3 -colorBar=@intensityColorBar.xml +colorBar=@ColorBars/Lightning/intensityColorBar.xml diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/NCON/NCON.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/NCON/NCON.xml index 3fc85da426..448d6d8439 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/NCON/NCON.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/NCON/NCON.xml @@ -3,7 +3,11 @@ true NCON MISC - legend_color=RGB {155, 155, 155} + +pluginName=nonconvsigmet +reportType=nonconvsigmet +color=RGB {155, 155, 155} + SigMet,Event NonconvectiveSigmet diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/NCON/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/NCON/default.attr index 025c06e992..1101ad3189 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/NCON/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/NCON/default.attr @@ -1,7 +1,5 @@ ! Attributes for NonConvective SIGMET ! -color=RGB {155, 155, 155} -! icingEnable=true icingColor=RGB {0, 255, 0} icingLineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/QSCT.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/QSCT.xml index 71f18f607e..baf4786805 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/QSCT.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/QSCT.xml @@ -3,6 +3,12 @@ true QSCT MISC + +pluginName=ncscat +! the reportType may be overridden in an attrSet file +reportType=quikscat +color=RGB {155, 155, 155} + SCAT SCAT diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/ambig1.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/ambig1.attr index f90896622d..2a013e8da7 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/ambig1.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/ambig1.attr @@ -2,10 +2,8 @@ ! reportType=quikscat-ambig1 ! -legend_color=RGB {155, 155, 155} -color=RGB {155, 155, 155} -colorBar1=@ambig1ColorBar1.xml -colorBar2=@ambig1ColorBar2.xml +colorBar1=@ColorBars/SCAT/ambig1ColorBar1.xml +colorBar2=@ColorBars/SCAT/ambig1ColorBar2.xml ! skipEnable=false skipValue=5 @@ -15,8 +13,6 @@ timeStampColor=RGB {255, 255, 255} timeStampInterval=30 timeStampLineWidth=1 arrowStyle=DIRECTIONAL_ARROW -regArrow=true -windBarb=true arrowWidth=1 arrowSize=2 headSize=4 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/ambig2.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/ambig2.attr index 0aa865437c..67481bdc27 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/ambig2.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/ambig2.attr @@ -2,10 +2,8 @@ ! reportType=quikscat-ambig2 ! -legend_color=RGB {155, 155, 155} -color=RGB {155, 155, 155} -colorBar1=@ambig2ColorBar1.xml -colorBar2=@ambig2ColorBar2.xml +colorBar1=@ColorBars/SCAT/ambig2ColorBar1.xml +colorBar2=@ColorBars/SCAT/ambig2ColorBar2.xml ! skipEnable=false skipValue=5 @@ -15,8 +13,6 @@ timeStampColor=RGB {255, 255, 255} timeStampInterval=30 timeStampLineWidth=1 arrowStyle=DIRECTIONAL_ARROW -regArrow=true -windBarb=true arrowWidth=1 arrowSize=2 headSize=4 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/ambig3.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/ambig3.attr index dc64f12640..dbd6422dcf 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/ambig3.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/ambig3.attr @@ -2,10 +2,8 @@ ! reportType=quikscat-ambig3 ! -legend_color=RGB {155, 155, 155} -color=RGB {155, 155, 155} -colorBar1=@ambig3ColorBar1.xml -colorBar2=@ambig3ColorBar2.xml +colorBar1=@ColorBars/SCAT/ambig3ColorBar1.xml +colorBar2=@ColorBars/SCAT/ambig3ColorBar2.xml ! skipEnable=false skipValue=5 @@ -15,8 +13,6 @@ timeStampColor=RGB {255, 255, 255} timeStampInterval=30 timeStampLineWidth=1 arrowStyle=DIRECTIONAL_ARROW -regArrow=true -windBarb=true arrowWidth=1 arrowSize=2 headSize=4 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/ambig4.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/ambig4.attr index a7d6c35a90..537ab845b5 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/ambig4.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/ambig4.attr @@ -2,10 +2,8 @@ ! reportType=quikscat-ambig4 ! -legend_color=RGB {155, 155, 155} -color=RGB {155, 155, 155} -colorBar1=@ambig4ColorBar1.xml -colorBar2=@ambig4ColorBar2.xml +colorBar1=@ColorBars/SCAT/ambig4ColorBar1.xml +colorBar2=@ColorBars/SCAT/ambig4ColorBar2.xml ! skipEnable=false skipValue=5 @@ -15,8 +13,6 @@ timeStampColor=RGB {255, 255, 255} timeStampInterval=30 timeStampLineWidth=1 arrowStyle=DIRECTIONAL_ARROW -regArrow=true -windBarb=true arrowWidth=1 arrowSize=2 headSize=4 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/default.attr index e2e9f3f01a..c788dc8c56 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/default.attr @@ -2,10 +2,8 @@ ! reportType=quikscat ! -legend_color=RGB {155, 155, 155} -color=RGB {155, 155, 155} -colorBar1=@defaultColorBar1.xml -colorBar2=@defaultColorBar2.xml +colorBar1=@ColorBars/SCAT/defaultColorBar1.xml +colorBar2=@ColorBars/SCAT/defaultColorBar2.xml ! skipEnable=false skipValue=5 @@ -15,8 +13,6 @@ timeStampColor=RGB {255, 255, 255} timeStampInterval=30 timeStampLineWidth=1 arrowStyle=WIND_BARB -regArrow=true -windBarb=true arrowWidth=1 arrowSize=2 headSize=4 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/default_hi.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/default_hi.attr index 21ce8b2a8c..e8f45055cc 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/default_hi.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/QSCT/default_hi.attr @@ -2,10 +2,8 @@ ! reportType=quikscat-hi ! -legend_color=RGB {155, 155, 155} -color=RGB {155, 155, 155} -colorBar1=@defaultColorBar1.xml -colorBar2=@defaultColorBar2.xml +colorBar1=@ColorBars/SCAT/defaultColorBar1.xml +colorBar2=@ColorBars/SCAT/defaultColorBar2.xml ! skipEnable=false skipValue=5 @@ -15,8 +13,6 @@ timeStampColor=RGB {255, 255, 255} timeStampInterval=30 timeStampLineWidth=1 arrowStyle=WIND_BARB -regArrow=true -windBarb=true arrowWidth=1 arrowSize=2 headSize=4 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/SGWH/WaveSat.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/SGWH/WaveSat.xml index 5de65e17ac..fac8d5d38c 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/SGWH/WaveSat.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/SGWH/WaveSat.xml @@ -3,8 +3,10 @@ true SGWH MISC - legend_color=RGB {33,100,255} - pluginName=sgwh + +pluginName=sgwh +satelliteId=260 +legendColor=RGB {33,100,255} Satellite WaveSat diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/SGWH/envisat_default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/SGWH/envisat_default.attr index 1f51c80115..10560a9f93 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/SGWH/envisat_default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/SGWH/envisat_default.attr @@ -1,8 +1,9 @@ ! Parameters and Attributes for the default WaveSat Resource ! -colorBar=@waveSatColorBar.xml +colorBar=@ColorBars/WaveSat/waveSatColorBar.xml fontSize=12 fontName=Courier timeDisplayInterval=30 timeDisplayColor=RGB {255, 255, 255} -satelliteId=60 \ No newline at end of file +! satelliteId moved to the resourceDefn +!satelliteId=60 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/SGWH/jason1_default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/SGWH/jason1_default.attr index 5e6afb319a..ff6c754177 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/SGWH/jason1_default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/SGWH/jason1_default.attr @@ -1,10 +1,9 @@ ! Parameters and Attributes for the default WaveSat Resource ! -colorBar=@waveSatColorBar.xml +colorBar=@ColorBars/WaveSat/waveSatColorBar.xml fontSize=12 fontName=Times timeDisplayInterval=30 timeDisplayColor=RGB {255, 255, 255} -satelliteId=260 !displayValues=true !symbolName=ASTERISK Not Implemented \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/SGWH/jason2_default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/SGWH/jason2_default.attr index 62e0952dab..562ef9ddfc 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/SGWH/jason2_default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/SGWH/jason2_default.attr @@ -1,8 +1,9 @@ ! Parameters and Attributes for the default WaveSat Resource ! -colorBar=@waveSatColorBar.xml +colorBar=@ColorBars/WaveSat/waveSatColorBar.xml fontSize=12 fontName=Serif timeDisplayInterval=30 timeDisplayColor=RGB {255, 255, 255} +! satelliteId moved to the resourceDefn satelliteId=261 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/SVRL/SVRL.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/SVRL/SVRL.xml index 697534e9df..12a29bf226 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/SVRL/SVRL.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/SVRL/SVRL.xml @@ -3,6 +3,11 @@ true SVRL MISC + +pluginName=aww +reportType=SEVERE_THUNDERSTORM_WATCH,TORNADO_WATCH_OUTLINE_UPDATE +color=RGB {155, 155, 155} + AWW,Event SVRL diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/SVRL/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/SVRL/default.attr index f273d90781..bb8d5961ba 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/SVRL/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/SVRL/default.attr @@ -1,10 +1,5 @@ ! Attributes for SVRL (Severe Local Storm Watches) ! -!frame_interval in minutes -frame_interval=60 -normalize_timeline=true -color=RGB {155, 155, 155} -! thunderstormEnable=true thunderstormColor=RGB {109, 246, 254} thunderstormSymbolWidth=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WARN/WARN.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WARN/WARN.xml index 267490b879..9917fe0150 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WARN/WARN.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WARN/WARN.xml @@ -3,6 +3,11 @@ true WARN MISC + +pluginName=aww +reportType=SEVERE_THUNDERSTORM_WARNING,TORNADO_WARNING,FLASH_FLOOD_WARNING +color=RGB {155, 155, 155} + AWW,Event Warn diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WARN/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WARN/default.attr index 3e1e03b7ae..1d67213058 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WARN/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WARN/default.attr @@ -1,7 +1,5 @@ ! Attributes for WARN ! -color=RGB {155, 155, 155} -! thunderstormEnable=true thunderstormColor=RGB {10, 232, 243} thunderstormSymbolWidth=3 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WATCH/WATCH.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WATCH/WATCH.xml index c0907727fe..cffe9c32b0 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WATCH/WATCH.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WATCH/WATCH.xml @@ -3,6 +3,12 @@ true WATCH MISC + +pluginName=aww +reportType=THUNDERSTORM_REPORT,TORNADO_REPORT,WATCH_COUNTY_NOTIFICATION +color=RGB {155, 155, 155} +legendName=WATCH + AWW,Event WATCH diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WATCH/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WATCH/default.attr index 7003f7f168..f91282bff3 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WATCH/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WATCH/default.attr @@ -1,8 +1,5 @@ ! Attributes for WTCH (SEVERE WEATHER WATCH Outline Update) - default ! -sourceName=WATCH -color=RGB {155, 155, 155} -! thunderstormEnable=true thunderstormColor=RGB {109, 246, 254} thunderstormLineWidth=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WCN/WCN.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WCN/WCN.xml index 5d8784a63d..34fb5ee7b0 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WCN/WCN.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WCN/WCN.xml @@ -3,6 +3,11 @@ true WCN MISC + +pluginName=aww +reportType=WATCH_COUNTY_NOTIFICATION +color=RGB {155, 155, 155} + AWW,Event WCN diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WCN/colorCodedMarkers.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WCN/colorCodedMarkers.attr index 1bff952048..901fd7d195 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WCN/colorCodedMarkers.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WCN/colorCodedMarkers.attr @@ -1,7 +1,5 @@ ! Attributes for WCN (Watch County Notification) - color coded markers ! -color=RGB {155, 155, 155} -! thunderstormEnable=true thunderstormColor=RGB {109, 246, 254} thunderstormSymbolWidth=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WCN/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WCN/default.attr index d3c9a6b108..df8853594d 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WCN/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WCN/default.attr @@ -1,7 +1,5 @@ ! Attributes for WCN (Watch County Notification) - default ! -color=RGB {155, 155, 155} -! thunderstormEnable=true thunderstormColor=RGB {109, 246, 254} thunderstormSymbolWidth=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WCP/WCP.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WCP/WCP.xml index 57460411ad..35c9155420 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WCP/WCP.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WCP/WCP.xml @@ -3,7 +3,11 @@ true WCP MISC - legend_color=RGB {0, 100, 255} + +pluginName=wcp +reportType=wcp +color=RGB {0, 100, 255} + AWW,Event WCP diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WCP/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WCP/default.attr index 690ac92596..f2edd3f69d 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WCP/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WCP/default.attr @@ -1,7 +1,6 @@ ! Attributes for WCP (Watch Corner Points) - default ! lineWidth=2 -color=RGB {0, 100, 255} thunderstormName=Thunderstorm thunderstormEnable=true thunderstormColor=RGB {0, 255, 255} diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WOU/WOU.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WOU/WOU.xml index a2bd5da90a..bf54a0b34c 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WOU/WOU.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WOU/WOU.xml @@ -3,6 +3,11 @@ true WOU MISC + +pluginName=aww +reportType=SEVERE_THUNDERSTORM_WATCH,TORNADO_WATCH_OUTLINE_UPDATE +color=RGB {155, 155, 155} + AWW,Event WOU diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WOU/colorCodedMarkers.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WOU/colorCodedMarkers.attr index 72aa9f4fbf..6ed42ce955 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WOU/colorCodedMarkers.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WOU/colorCodedMarkers.attr @@ -1,7 +1,5 @@ ! Attributes for WOU (Watch Outline Update) - color coded markers ! -color=RGB {155, 155, 155} -! thunderstormEnable=true thunderstormColor=RGB {109, 246, 254} thunderstormSymbolWidth=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WOU/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WOU/default.attr index 76ee2d610f..888674c8d0 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WOU/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WOU/default.attr @@ -1,7 +1,5 @@ ! Attributes for WOU (Watch Outline Update) - default ! -color=RGB {155, 155, 155} -! thunderstormEnable=true thunderstormColor=RGB {109, 246, 254} thunderstormSymbolWidth=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSAT/WSAT.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSAT/WSAT.xml index 2c272b0e57..1df2478acb 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSAT/WSAT.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSAT/WSAT.xml @@ -3,6 +3,12 @@ true WSAT MISC + +pluginName=ncscat +! the reportType may be overridden in an attrSet file +reportType=wscat +color=RGB {155, 155, 155} + SCAT SCAT diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSAT/ambig1.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSAT/ambig1.attr index 07de55e254..bde4eca5c0 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSAT/ambig1.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSAT/ambig1.attr @@ -2,10 +2,8 @@ ! reportType=wscat-ambig1 ! -legend_color=RGB {155, 155, 155} -color=RGB {155, 155, 155} -colorBar1=@ambig1ColorBar1.xml -colorBar2=@ambig1ColorBar2.xml +colorBar1=@ColorBars/SCAT/ambig1ColorBar1.xml +colorBar2=@ColorBars/SCAT/ambig1ColorBar2.xml ! skipEnable=false skipValue=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSAT/ambig2.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSAT/ambig2.attr index 158ef62bb2..61fe867322 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSAT/ambig2.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSAT/ambig2.attr @@ -2,10 +2,8 @@ ! reportType=wscat-ambig2 ! -legend_color=RGB {155, 155, 155} -color=RGB {155, 155, 155} -colorBar1=@ambig2ColorBar1.xml -colorBar2=@ambig2ColorBar2.xml +colorBar1=@ColorBars/SCAT/ambig2ColorBar1.xml +colorBar2=@ColorBars/SCAT/ambig2ColorBar2.xml ! skipEnable=false skipValue=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSAT/ambig3.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSAT/ambig3.attr index 1adab6b428..0e9c3b7ad3 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSAT/ambig3.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSAT/ambig3.attr @@ -2,10 +2,8 @@ ! reportType=wscat-ambig3 ! -legend_color=RGB {155, 155, 155} -color=RGB {155, 155, 155} -colorBar1=@ambig3ColorBar1.xml -colorBar2=@ambig3ColorBar2.xml +colorBar1=@ColorBars/SCAT/ambig3ColorBar1.xml +colorBar2=@ColorBars/SCAT/ambig3ColorBar2.xml ! skipEnable=false skipValue=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSAT/ambig4.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSAT/ambig4.attr index 107e30224e..a7199eb8f6 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSAT/ambig4.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSAT/ambig4.attr @@ -2,10 +2,8 @@ ! reportType=wscat-ambig4 ! -legend_color=RGB {155, 155, 155} -color=RGB {155, 155, 155} -colorBar1=@ambig4ColorBar1.xml -colorBar2=@ambig4ColorBar2.xml +colorBar1=@ColorBars/SCAT/ambig4ColorBar1.xml +colorBar2=@ColorBars/SCAT/ambig4ColorBar2.xml ! skipEnable=false skipValue=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSAT/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSAT/default.attr index 3fa67341b7..c7ff50b376 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSAT/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSAT/default.attr @@ -2,10 +2,8 @@ ! reportType=wscat ! -legend_color=RGB {155, 155, 155} -color=RGB {155, 155, 155} -colorBar1=@defaultColorBar1.xml -colorBar2=@defaultColorBar2.xml +colorBar1=@ColorBars/SCAT/defaultColorBar1.xml +colorBar2=@ColorBars/SCAT/defaultColorBar2.xml ! skipEnable=false skipValue=0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSTM/WSTM.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSTM/WSTM.xml index e81279dcd1..feebf6272d 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSTM/WSTM.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/MISC/WSTM/WSTM.xml @@ -3,7 +3,11 @@ true WSTM MISC - legendColor=RGB {255, 255, 255} + +pluginName=aww +reportType=WINTER_WEATHER_ADVISORY,WINTER_STORM_WARNING,WINTER_STORM_WATCH,ADVISORY,URGENT_WEATHER_MESSAGE,WEATHER_ADVISORY,WINTER_STORM +legendColor=RGB {255, 255, 255} + AWW,Event WSTM diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/88Ds/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/88Ds/default.attr index 05d33b602b..c92227db02 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/88Ds/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/88Ds/default.attr @@ -4,4 +4,4 @@ markerType=ASTERISK markerSize=1 markerWidth=1 markerTextSize=MEDIUM -legend_color=RGB {255,255,255} +markerTextAppearanceZoomLevel=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/AirmetCstl/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/AirmetCstl/default.attr index 50c4ac3937..c94fc93f0d 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/AirmetCstl/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/AirmetCstl/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,100,225} color= RGB {255,100,225} lineStyle=SOLID lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/AkPsa/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/AkPsa/default.attr index 801cc04959..3e41cc5eb6 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/AkPsa/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/AkPsa/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,200,225} color= RGB {255,200,225} lineStyle=SOLID lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Ascairways/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Ascairways/default.attr index 5a4850768f..58d2018ba6 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Ascairways/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Ascairways/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,0,225} color= RGB {255,0,225} lineStyle=SOLID lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Ascarrfa/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Ascarrfa/default.attr index 5a4850768f..58d2018ba6 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Ascarrfa/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Ascarrfa/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,0,225} color= RGB {255,0,225} lineStyle=SOLID lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/ARTCC/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Ascfaarea/default.attr similarity index 62% rename from cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/ARTCC/default.attr rename to cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Ascfaarea/default.attr index 5a4850768f..58d2018ba6 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/ARTCC/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Ascfaarea/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,0,225} color= RGB {255,0,225} lineStyle=SOLID lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Ascfaregion/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Ascfaregion/default.attr new file mode 100644 index 0000000000..58d2018ba6 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Ascfaregion/default.attr @@ -0,0 +1,3 @@ +color= RGB {255,0,225} +lineStyle=SOLID +lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Aschifiwo/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Aschifiwo/default.attr index 5a4850768f..58d2018ba6 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Aschifiwo/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Aschifiwo/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,0,225} color= RGB {255,0,225} lineStyle=SOLID lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Asctropfirs/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Asctropfirs/default.attr index 5a4850768f..58d2018ba6 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Asctropfirs/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Asctropfirs/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,0,225} color= RGB {255,0,225} lineStyle=SOLID lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Asctweb/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Asctweb/default.attr index 5a4850768f..58d2018ba6 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Asctweb/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Asctweb/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,0,225} color= RGB {255,0,225} lineStyle=SOLID lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Ascwrzones/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Ascwrzones/default.attr index 5a4850768f..58d2018ba6 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Ascwrzones/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Ascwrzones/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,0,225} color= RGB {255,0,225} lineStyle=SOLID lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/AtlanticFullBasin/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/AtlanticFullBasin/default.attr index bc705430f9..5682ba7d8c 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/AtlanticFullBasin/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/AtlanticFullBasin/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {0,0,255} color= RGB {0,0,255} lineStyle=SOLID lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/AwcCcfcan/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/AwcCcfcan/default.attr index 5a4850768f..1742025464 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/AwcCcfcan/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/AwcCcfcan/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,0,225} color= RGB {255,0,225} lineStyle=SOLID -lineWidth=2 +lineWidth=2 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/BWUS/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/BWUS/default.attr index c2aa59e8a0..58d2018ba6 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/BWUS/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/BWUS/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {200,200,100} color= RGB {255,0,225} lineStyle=SOLID lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/BWUSLabel/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/BWUSLabel/default.attr index b5867fa976..4f82f2e3d8 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/BWUSLabel/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/BWUSLabel/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,255,225} color= RGB {255,255,225} lineStyle=SOLID lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/BWX1224/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/BWX1224/default.attr index 9b26151ec8..88772e2c86 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/BWX1224/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/BWX1224/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {100,255,225} color= RGB {100,255,225} lineStyle=SOLID lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Buoys/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Buoys/default.attr index 9b8691ba3e..6ff392158b 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Buoys/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Buoys/default.attr @@ -1,7 +1,7 @@ -legend_color= RGB {255,255,255} color= RGB {255,255,255} markerState=MARKER_PLUS_TEXT markerType=PLUS_SIGN markerSize=1 markerWidth=1 markerTextSize=MEDIUM +markerTextAppearanceZoomLevel=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/CPCUS/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/CPCUS/default.attr index f16ae8d44e..08ab656d37 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/CPCUS/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/CPCUS/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {200,255,225} color= RGB {200,255,225} lineStyle=SOLID lineWidth=2 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/CWAs/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/CWAs/default.attr index 31b479700b..a4eac571e5 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/CWAs/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/CWAs/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {238,64,0} color= RGB {238,64,0} lineStyle=LONG_DASH_THREE_DOTS lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Canada/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Canada/default.attr index 96d110c43c..bf2e79f96a 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Canada/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Canada/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,255,255} color= RGB {255,255,255} lineStyle=SOLID lineWidth=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Cities/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Cities/default.attr index 9b8691ba3e..6ff392158b 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Cities/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Cities/default.attr @@ -1,7 +1,7 @@ -legend_color= RGB {255,255,255} color= RGB {255,255,255} markerState=MARKER_PLUS_TEXT markerType=PLUS_SIGN markerSize=1 markerWidth=1 markerTextSize=MEDIUM +markerTextAppearanceZoomLevel=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Counties/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Counties/default.attr index 90fdc5ff04..f7344879fb 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Counties/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Counties/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {139,0,0} color= RGB {139,0,0} lineStyle=SOLID lineWidth=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/DwmStns/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/DwmStns/default.attr index 08d46f023b..f56410246e 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/DwmStns/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/DwmStns/default.attr @@ -1,7 +1,7 @@ -legend_color= RGB {255,255,255} color= RGB {255,255,255} markerState=MARKER_PLUS_TEXT markerType=DOT markerSize=2 markerWidth=1 markerTextSize=SMALL +markerTextAppearanceZoomLevel=3 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/EnhArea/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/EnhArea/default.attr index b96019f1b2..f9ee31bc2a 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/EnhArea/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/EnhArea/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,255,100} color= RGB {255,255,100} lineStyle=SOLID lineWidth=2 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FAArea/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FAArea/default.attr index 5a4850768f..58d2018ba6 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FAArea/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FAArea/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,0,225} color= RGB {255,0,225} lineStyle=SOLID lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FAAreaX/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FAAreaX/default.attr index 5a4850768f..58d2018ba6 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FAAreaX/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FAAreaX/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,0,225} color= RGB {255,0,225} lineStyle=SOLID lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FARegion/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FARegion/default.attr index 5a4850768f..58d2018ba6 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FARegion/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FARegion/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,0,225} color= RGB {255,0,225} lineStyle=SOLID lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FIRBNDS/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FIRBNDS/default.attr index 4174fc6608..b7efff8e23 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FIRBNDS/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FIRBNDS/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,255,200} color= RGB {255,255,200} lineStyle=SOLID lineWidth=2 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FcstZones/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FcstZones/default.attr index 96d110c43c..bf2e79f96a 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FcstZones/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FcstZones/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,255,255} color= RGB {255,255,255} lineStyle=SOLID lineWidth=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FireBnds/defaults.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FireBnds/defaults.attr index ab84d0f748..428c282262 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FireBnds/defaults.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FireBnds/defaults.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,255,20} color= RGB {255,255,20} lineStyle=SOLID lineWidth=2 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FireWxAOR/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FireWxAOR/default.attr index 96d110c43c..bf2e79f96a 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FireWxAOR/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FireWxAOR/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,255,255} color= RGB {255,255,255} lineStyle=SOLID lineWidth=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FireWxZones/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FireWxZones/default.attr index 96d110c43c..bf2e79f96a 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FireWxZones/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/FireWxZones/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,255,255} color= RGB {255,255,255} lineStyle=SOLID lineWidth=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/G2tAtl/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/G2tAtl/default.attr index 3b91f75f6a..ef1a2c29c4 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/G2tAtl/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/G2tAtl/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,255,2} color= RGB {255,255,2} lineStyle=SOLID lineWidth=2 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/G2tPac/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/G2tPac/default.attr index b96019f1b2..f9ee31bc2a 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/G2tPac/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/G2tPac/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,255,100} color= RGB {255,255,100} lineStyle=SOLID lineWidth=2 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/G2tTpc/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/G2tTpc/default.attr index 023b5c207b..4d116b52bb 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/G2tTpc/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/G2tTpc/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,55,100} color= RGB {255,55,100} lineStyle=SOLID lineWidth=2 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/GeoPolitical/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/GeoPolitical/default.attr index 0dd51458fe..39397fc04d 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/GeoPolitical/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/GeoPolitical/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,228,220} color= RGB {255,228,220} lineStyle=SOLID lineWidth=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/GfaConus/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/GfaConus/default.attr index ddb43b9c1a..090a4307b5 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/GfaConus/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/GfaConus/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,155,100} color= RGB {255,155,100} lineStyle=SOLID lineWidth=2 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/GreatLakes/GreatLakes.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/GreatLakes/GreatLakes.xml index 2af16f4103..3c1da65efc 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/GreatLakes/GreatLakes.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/GreatLakes/GreatLakes.xml @@ -6,7 +6,7 @@ dbName=ncep tableName=bounds.greatlakesbnds -labelField=area +labelField=name mapName=Great Lakes DbOverlay diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/GreatLakes/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/GreatLakes/default.attr index ca726b17ab..3ad7925c0f 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/GreatLakes/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/GreatLakes/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {0,100,100} color= RGB {0,100,100} lineStyle=SOLID lineWidth=2 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/HCN/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/HCN/default.attr index 91f3bd36e5..945817f353 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/HCN/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/HCN/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {100,100,100} color= RGB {100,100,100} lineStyle=SOLID lineWidth=2 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/HighSeasZones/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/HighSeasZones/default.attr index 96d110c43c..bf2e79f96a 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/HighSeasZones/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/HighSeasZones/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,255,255} color= RGB {255,255,255} lineStyle=SOLID lineWidth=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Highways/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Highways/default.attr index 96d110c43c..bf2e79f96a 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Highways/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Highways/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,255,255} color= RGB {255,255,255} lineStyle=SOLID lineWidth=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Interstates/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Interstates/default.attr index dca264a6c8..ae466f9b17 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Interstates/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Interstates/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {205,133,0} color= RGB {205,133,0} lineStyle=SOLID lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Lakes/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Lakes/default.attr index 17708d8538..4016580f37 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Lakes/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Lakes/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {30,144,255} color= RGB {30,144,255} lineStyle=SOLID lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/LatLon/LatLon.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/LatLon/LatLon.xml index 1e69c2f682..3edf6b86c9 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/LatLon/LatLon.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/LatLon/LatLon.xml @@ -3,7 +3,7 @@ true LatLon OVERLAY - legend_color= RGB {255, 165, 79} + LatlonOverlay diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/MarineCounty/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/MarineCounty/default.attr index fdf24d43f2..4016580f37 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/MarineCounty/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/MarineCounty/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,144,255} color= RGB {30,144,255} lineStyle=SOLID lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/MetarStations/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/MetarStations/default.attr index 3cbefa39d1..b498fa9ee0 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/MetarStations/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/MetarStations/default.attr @@ -1,7 +1,7 @@ -legend_color= RGB {255,0,0} color= RGB {255,0,0} markerState=MARKER_PLUS_TEXT markerType=PLUS_SIGN markerSize=1 markerWidth=1 markerTextSize=MEDIUM +markerTextAppearanceZoomLevel=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/NPsa/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/NPsa/default.attr index c0bd0e1747..28185e4199 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/NPsa/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/NPsa/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {150,150,150} color= RGB {150,150,150} lineStyle=SOLID lineWidth=2 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Nexrad/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Nexrad/default.attr index 23a0792ebf..c92227db02 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Nexrad/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Nexrad/default.attr @@ -1,7 +1,7 @@ -legend_color=RGB {255,255,255} color= RGB {255,255,255} markerState=MARKER_PLUS_TEXT markerType=ASTERISK markerSize=1 markerWidth=1 markerTextSize=MEDIUM +markerTextAppearanceZoomLevel=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/OpcNomex/OpcNomex.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/OpcNomex/OpcNomex.xml index 37d5b1a420..3414189fa2 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/OpcNomex/OpcNomex.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/OpcNomex/OpcNomex.xml @@ -1,7 +1,7 @@ true - OPCSSA + OpcNomex OVERLAY dbName=ncep diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/OpcNomex/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/OpcNomex/default.attr index 50a27f7993..59b977f54e 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/OpcNomex/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/OpcNomex/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {150,250,150} color= RGB {150,250,150} lineStyle=SOLID lineWidth=2 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PFZ/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PFZ/default.attr index 6b002aa529..a992d6051b 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PFZ/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PFZ/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {150,200,250} color= RGB {150,200,150} lineStyle=SOLID lineWidth=2 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PacificFullBasin/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PacificFullBasin/default.attr index 93bee2eb85..4facf3c69c 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PacificFullBasin/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PacificFullBasin/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {0,10,205} color= RGB {0,10,205} lineStyle=SOLID lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/AscCarrFa/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/AscCarrFa/default.attr index 8a5918f245..1742025464 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/AscCarrFa/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/AscCarrFa/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,0,225} color= RGB {255,0,225} lineStyle=SOLID lineWidth=2 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/AscGulfFa/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/AscGulfFa/default.attr index 8a5918f245..1742025464 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/AscGulfFa/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/AscGulfFa/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,0,225} color= RGB {255,0,225} lineStyle=SOLID lineWidth=2 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/AwcARTCC/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/AwcARTCC/default.attr index 5a4850768f..58d2018ba6 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/AwcARTCC/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/AwcARTCC/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,0,225} color= RGB {255,0,225} lineStyle=SOLID lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/AwcFIR/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/AwcFIR/default.attr index 5a4850768f..58d2018ba6 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/AwcFIR/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/AwcFIR/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,0,225} color= RGB {255,0,225} lineStyle=SOLID lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/AwcWST/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/AwcWST/default.attr index 7626f2fd40..58d2018ba6 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/AwcWST/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/AwcWST/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,0,0} color= RGB {255,0,225} lineStyle=SOLID lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/ElevNam1000/ElevNam1000.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/ElevNam1000/ElevNam1000.xml new file mode 100644 index 0000000000..f8a2ef31fd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/ElevNam1000/ElevNam1000.xml @@ -0,0 +1,19 @@ + + + true + ElevNam1000 + OVERLAY + + pgenProductName=elev_NAM1000.xml + + + PgenXmlOverlay + + + CLOSEST_BEFORE_OR_AFTER + 0 + USE_DATA_TIMES + 10 + 24 + BasicWX_US + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/ElevNam1000/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/ElevNam1000/default.attr new file mode 100644 index 0000000000..e840c60eaf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/ElevNam1000/default.attr @@ -0,0 +1,3 @@ +color= RGB {255,250,225} +lineStyle=SOLID +lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/HPCSFC/HPCSFC.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/HPCSFC/HPCSFC.xml new file mode 100644 index 0000000000..eefe952705 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/HPCSFC/HPCSFC.xml @@ -0,0 +1,19 @@ + + + true + HPCSFC + OVERLAY + +pgenProductName=hpcsfc.xml + + + PgenXmlOverlay + + + CLOSEST_BEFORE_OR_AFTER + 0 + USE_DATA_TIMES + 10 + 24 + BasicWX_US + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/HPCSFC/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/HPCSFC/default.attr new file mode 100644 index 0000000000..3e41cc5eb6 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/HPCSFC/default.attr @@ -0,0 +1,3 @@ +color= RGB {255,200,225} +lineStyle=SOLID +lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/Hpc050Med/Hpc050Med.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/Hpc050Med/Hpc050Med.xml new file mode 100644 index 0000000000..cadf266d22 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/Hpc050Med/Hpc050Med.xml @@ -0,0 +1,19 @@ + + + true + Hpc050Med + OVERLAY + +pgenProductName=hpc050med.xml + + + PgenXmlOverlay + + + CLOSEST_BEFORE_OR_AFTER + 0 + USE_DATA_TIMES + 10 + 24 + BasicWX_US + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/Hpc050Med/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/Hpc050Med/default.attr new file mode 100644 index 0000000000..c94fc93f0d --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/Hpc050Med/default.attr @@ -0,0 +1,3 @@ +color= RGB {255,100,225} +lineStyle=SOLID +lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/MWO/MWO.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/MWO/MWO.xml new file mode 100644 index 0000000000..f19bb0c689 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/MWO/MWO.xml @@ -0,0 +1,19 @@ + + + true + MWO + OVERLAY + + pgenProductName=mwobnds.xml + + + PgenXmlOverlay + + + CLOSEST_BEFORE_OR_AFTER + 0 + USE_DATA_TIMES + 10 + 24 + BasicWX_US + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/MWO/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/MWO/default.attr new file mode 100644 index 0000000000..e840c60eaf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/MWO/default.attr @@ -0,0 +1,3 @@ +color= RGB {255,250,225} +lineStyle=SOLID +lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/OPCBNDS/OPCBNDS.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/OPCBNDS/OPCBNDS.xml new file mode 100644 index 0000000000..dbec3e5c4d --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/OPCBNDS/OPCBNDS.xml @@ -0,0 +1,19 @@ + + + true + OPCBNDS + OVERLAY + +pgenProductName=opcbnds.xml + + + PgenXmlOverlay + + + CLOSEST_BEFORE_OR_AFTER + 0 + USE_DATA_TIMES + 10 + 24 + BasicWX_US + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/OPCBNDS/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/OPCBNDS/default.attr new file mode 100644 index 0000000000..e840c60eaf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/OPCBNDS/default.attr @@ -0,0 +1,3 @@ +color= RGB {255,250,225} +lineStyle=SOLID +lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/OPCNomex/OPCNomex.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/OPCNomex/OPCNomex.xml new file mode 100644 index 0000000000..11ac15e8ef --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/OPCNomex/OPCNomex.xml @@ -0,0 +1,19 @@ + + + true + OPCNomex + OVERLAY + + pgenProductName=opcbnds_nomex.xml + + + PgenXmlOverlay + + + CLOSEST_BEFORE_OR_AFTER + 0 + USE_DATA_TIMES + 10 + 24 + BasicWX_US + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/OPCNomex/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/OPCNomex/default.attr new file mode 100644 index 0000000000..e840c60eaf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/OPCNomex/default.attr @@ -0,0 +1,3 @@ +color= RGB {255,250,225} +lineStyle=SOLID +lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/OPCSSA/OPCSSA.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/OPCSSA/OPCSSA.xml new file mode 100644 index 0000000000..8453e7c463 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/OPCSSA/OPCSSA.xml @@ -0,0 +1,19 @@ + + + true + OPCSSA + OVERLAY + +pgenProductName=ssa_bnd.xml + + + PgenXmlOverlay + + + CLOSEST_BEFORE_OR_AFTER + 0 + USE_DATA_TIMES + 10 + 24 + BasicWX_US + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/OPCSSA/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/OPCSSA/default.attr new file mode 100644 index 0000000000..e840c60eaf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/OPCSSA/default.attr @@ -0,0 +1,3 @@ +color= RGB {255,250,225} +lineStyle=SOLID +lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/TPC/TPC.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/TPC/TPC.xml new file mode 100644 index 0000000000..fc2a81a291 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/TPC/TPC.xml @@ -0,0 +1,19 @@ + + + true + TPC + OVERLAY + + pgenProductName=tpcbounds.xml + + + PgenXmlOverlay + + + CLOSEST_BEFORE_OR_AFTER + 0 + USE_DATA_TIMES + 10 + 24 + BasicWX_US + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/TPC/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/TPC/default.attr new file mode 100644 index 0000000000..e840c60eaf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/TPC/default.attr @@ -0,0 +1,3 @@ +color= RGB {255,250,225} +lineStyle=SOLID +lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/World/World.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/World/World.xml new file mode 100644 index 0000000000..5351cb2251 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/World/World.xml @@ -0,0 +1,19 @@ + + + true + World + OVERLAY + + pgenProductName=locowobnds.xml + + + PgenXmlOverlay + + + CLOSEST_BEFORE_OR_AFTER + 0 + USE_DATA_TIMES + 10 + 24 + BasicWX_US + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/World/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/World/default.attr new file mode 100644 index 0000000000..e840c60eaf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/PgenXmlOverlay/World/default.attr @@ -0,0 +1,3 @@ +color= RGB {255,250,225} +lineStyle=SOLID +lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/RAOBs/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/RAOBs/default.attr index 9b8691ba3e..6ff392158b 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/RAOBs/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/RAOBs/default.attr @@ -1,7 +1,7 @@ -legend_color= RGB {255,255,255} color= RGB {255,255,255} markerState=MARKER_PLUS_TEXT markerType=PLUS_SIGN markerSize=1 markerWidth=1 markerTextSize=MEDIUM +markerTextAppearanceZoomLevel=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Railroads/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Railroads/default.attr index 96d110c43c..8809b48f27 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Railroads/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Railroads/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,255,255} color= RGB {255,255,255} lineStyle=SOLID -lineWidth=1 +lineWidth=1 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Rivers/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Rivers/default.attr index 3679132a85..2fee12439f 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Rivers/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Rivers/default.attr @@ -1,4 +1,3 @@ color= RGB {30,144,255} lineStyle=SOLID -lineWidth=2 -legend_color= RGB {30,144,255} +lineWidth=2 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/SPCOutlook/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/SPCOutlook/default.attr index bc1ea171a9..31a51f5850 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/SPCOutlook/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/SPCOutlook/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {150,100,250} color= RGB {150,100,150} lineStyle=SOLID lineWidth=2 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Scale/Scale.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Scale/Scale.xml index 52aa4ae68c..d4198ca170 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Scale/Scale.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Scale/Scale.xml @@ -3,7 +3,7 @@ true Scale OVERLAY - legend_color= RGB {0, 255, 0} + ScaleOverlay diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/SfcStns/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/SfcStns/default.attr index e20f3acbd5..7453822eb1 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/SfcStns/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/SfcStns/default.attr @@ -1,7 +1,7 @@ -legend_color= RGB {255,0,0} color= RGB {255,0,0} markerState=MARKER_PLUS_TEXT markerType=PLUS_SIGN markerSize=0.7 markerWidth=1 markerTextSize=MEDIUM +markerTextAppearanceZoomLevel=1 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/ARTCC/ARTCC.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/States/States.xml similarity index 82% rename from cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/ARTCC/ARTCC.xml rename to cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/States/States.xml index 6d8011b402..747fe3d54d 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/ARTCC/ARTCC.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/States/States.xml @@ -1,13 +1,13 @@ true - ARTCC + States OVERLAY -dbName=ncep -tableName=bounds.awcartcc -labelField=area -mapName=ARTCC Boundaries +dbName=maps +tableName=mapdata.states +labelField=name +mapName=States DbOverlay diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/States/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/States/default.attr index 96d110c43c..783f792f27 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/States/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/States/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,255,255} -color= RGB {255,255,255} +color= RGB {255,0,0} lineStyle=SOLID -lineWidth=1 +lineWidth=1 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/SynopStations/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/SynopStations/default.attr index 9b8691ba3e..bc546b97ec 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/SynopStations/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/SynopStations/default.attr @@ -1,7 +1,7 @@ -legend_color= RGB {255,255,255} color= RGB {255,255,255} markerState=MARKER_PLUS_TEXT markerType=PLUS_SIGN markerSize=1 markerWidth=1 markerTextSize=MEDIUM +markerTextAppearanceZoomLevel=5 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/TimeZones/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/TimeZones/default.attr index 90fdc5ff04..f7344879fb 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/TimeZones/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/TimeZones/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {139,0,0} color= RGB {139,0,0} lineStyle=SOLID lineWidth=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/UA/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/UA/default.attr index 4bbe155402..abcc19ddf3 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/UA/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/UA/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,50,225} color= RGB {255,50,225} lineStyle=SOLID lineWidth=2 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/USAK/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/USAK/default.attr index 859ac4c244..39fab926ba 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/USAK/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/USAK/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {50,50,50} color= RGB {50,50,50} lineStyle=SOLID lineWidth=2 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/VORs/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/VORs/default.attr index d98d900526..5eb8f16c54 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/VORs/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/VORs/default.attr @@ -1,7 +1,7 @@ -legend_color= RGB {0,0,255} color= RGB {0,0,255} markerState=MARKER_ONLY markerType=TRIANGLE markerSize=1 markerWidth=1 markerTextSize=MEDIUM +markerTextAppearanceZoomLevel=3 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Vaacar/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Vaacar/default.attr index 084bd5b670..4bc4861324 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Vaacar/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Vaacar/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {50,50,10} color= RGB {50,50,10} lineStyle=SOLID lineWidth=2 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Volcano/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Volcano/default.attr index 3e1ef66ad6..28c9400f49 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Volcano/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/Volcano/default.attr @@ -1,7 +1,7 @@ -legend_color= RGB {0,255,0} color= RGB {0,255,0} markerState=MARKER_ONLY markerType=FILLED_TRIANGLE markerSize=1.2 markerWidth=1 markerTextSize=SMALL +markerTextAppearanceZoomLevel=5 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/VolcanoNames/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/VolcanoNames/default.attr index d281530d92..8cc5aaa9bf 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/VolcanoNames/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/VolcanoNames/default.attr @@ -1,7 +1,7 @@ -legend_color= RGB {0,255,0} color= RGB {0,255,0} markerState=MARKER_PLUS_TEXT markerType=TRIANGLE markerSize=1.0 markerWidth=1 markerTextSize=MEDIUM +markerTextAppearanceZoomLevel=8 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/WFOs/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/WFOs/default.attr index f59a00ae17..f71b27f3e1 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/WFOs/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/WFOs/default.attr @@ -1,7 +1,7 @@ -legend_color= RGB {238,238,0} color= RGB {238,238,0} markerState=MARKER_PLUS_TEXT markerType=STAR markerSize=1 markerWidth=1 markerTextSize=MEDIUM +markerTextAppearanceZoomLevel=4 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/acarsAirports/acarsAirports.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/acarsAirports/acarsAirports.attr index 9b8691ba3e..6ff392158b 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/acarsAirports/acarsAirports.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/acarsAirports/acarsAirports.attr @@ -1,7 +1,7 @@ -legend_color= RGB {255,255,255} color= RGB {255,255,255} markerState=MARKER_PLUS_TEXT markerType=PLUS_SIGN markerSize=1 markerWidth=1 markerTextSize=MEDIUM +markerTextAppearanceZoomLevel=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/countyCluster/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/countyCluster/default.attr index 4acec425e3..282e76730a 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/countyCluster/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/countyCluster/default.attr @@ -1,7 +1,7 @@ -legend_color= RGB {255,255,0} color= RGB {255,255,0} markerState=MARKER_ONLY markerType=OCTAGON markerSize=1 markerWidth=1 markerTextSize=MEDIUM +markerTextAppearanceZoomLevel=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/countyNames/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/countyNames/default.attr index 911cbe2bdf..1cc847be18 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/countyNames/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/countyNames/default.attr @@ -1,7 +1,7 @@ -legend_color= RGB {205,0,0} color= RGB {205,0,0} markerState=TEXT_ONLY markerType=PLUS_SIGN markerSize=1 markerWidth=1 markerTextSize=MEDIUM +markerTextAppearanceZoomLevel=3 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/cpcStations/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/cpcStations/default.attr index cf7e308735..595a01a31a 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/cpcStations/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/cpcStations/default.attr @@ -1,7 +1,7 @@ -legend_color= RGB {139,71,38} color= RGB {139,71,38} markerState=MARKER_PLUS_TEXT markerType=PLUS_SIGN markerSize=1 markerWidth=1 markerTextSize=MEDIUM +markerTextAppearanceZoomLevel=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/drainageBasins/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/drainageBasins/default.attr index 96d110c43c..bf2e79f96a 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/drainageBasins/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/drainageBasins/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {255,255,255} color= RGB {255,255,255} lineStyle=SOLID lineWidth=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/rfcBoundaries/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/rfcBoundaries/default.attr index f592037c1f..b03eedecfb 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/rfcBoundaries/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/rfcBoundaries/default.attr @@ -1,4 +1,3 @@ -legend_color= RGB {139,0,139} color= RGB {139,0,139} lineStyle=SOLID -lineWidth=2 +lineWidth=2 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/snapPoints/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/snapPoints/default.attr index 8815c1ba0c..595a01a31a 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/snapPoints/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/snapPoints/default.attr @@ -1,7 +1,7 @@ -legend_color= RGB {200,71,38} color= RGB {139,71,38} markerState=MARKER_PLUS_TEXT markerType=PLUS_SIGN markerSize=1 markerWidth=1 markerTextSize=MEDIUM +markerTextAppearanceZoomLevel=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/spcwatch/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/spcwatch/default.attr index 9c7f4878da..8374092d51 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/spcwatch/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/spcwatch/default.attr @@ -1,7 +1,7 @@ -legend_color= RGB {0,255,0} color= RGB {0,255,0} markerState=MARKER_ONLY markerType=BOX_WITH_DIAGONALS markerSize=1 markerWidth=1 markerTextSize=MEDIUM +markerTextAppearanceZoomLevel=1 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/wrqpf/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/wrqpf/default.attr index 911cbe2bdf..1cc847be18 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/wrqpf/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/OVERLAYS/wrqpf/default.attr @@ -1,7 +1,7 @@ -legend_color= RGB {205,0,0} color= RGB {205,0,0} markerState=TEXT_ONLY markerType=PLUS_SIGN markerSize=1 markerWidth=1 markerTextSize=MEDIUM +markerTextAppearanceZoomLevel=3 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/CCFP.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/CCFP.xml index a47250b84b..153e657497 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/CCFP.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/CCFP.xml @@ -5,13 +5,12 @@ PGEN -legend_color=RGB {155, 155, 155} ! the sub-directory under the current PGEN working directory ! TODO : may want to change pgenDirectory to productType/activity and get the directory of the productType pgenDirectory=/home/awp2pgen/activities/CCFP/xml PGEN - ${productName} + productName CLOSEST_BEFORE_OR_AFTER 60 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/CONV_SIGMET.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/CONV_SIGMET.xml index 901f2bc43d..5cc04a68bb 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/CONV_SIGMET.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/CONV_SIGMET.xml @@ -5,13 +5,12 @@ PGEN -legend_color=RGB {155, 155, 155} ! the sub-directory under the current PGEN working directory ! TODO : may want to change pgenDirectory to productType/activity and get the directory of the productType pgenDirectory=/home/awp2pgen/activities/CONV_SIGMET/xml PGEN - ${productName} + productName CLOSEST_BEFORE_OR_AFTER 60 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/Extended_Range.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/Extended_Range.xml index c5747cd6d0..085af0df68 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/Extended_Range.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/Extended_Range.xml @@ -5,13 +5,12 @@ PGEN -legend_color=RGB {155, 155, 155} ! the sub-directory under the current PGEN working directory ! TODO : may want to change pgenDirectory to productType/activity and get the directory of the productType pgenDirectory=/home/awp2pgen/activities/Extend_Range/xml PGEN - ${productName} + productName CLOSEST_BEFORE_OR_AFTER 60 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/G_AIRMET.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/G_AIRMET.xml index 6ccb3b5955..6bcedcf88e 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/G_AIRMET.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/G_AIRMET.xml @@ -5,13 +5,12 @@ PGEN -legend_color=RGB {155, 155, 155} ! the sub-directory under the current PGEN working directory ! TODO : may want to change pgenDirectory to productType/activity and get the directory of the productType pgenDirectory=/home/awp2pgen/activities/G_AIRMET/xml PGEN - ${productName} + productName CLOSEST_BEFORE_OR_AFTER 60 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/Hazard_Outlook.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/Hazard_Outlook.xml index b9d7ded25f..36dc1105aa 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/Hazard_Outlook.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/Hazard_Outlook.xml @@ -5,13 +5,12 @@ PGEN -legend_color=RGB {155, 155, 155} ! the sub-directory under the current PGEN working directory ! TODO : may want to change pgenDirectory to productType/activity and get the directory of the productType pgenDirectory=/home/awp2pgen/activities/Hazard_Outlook/xml PGEN - ${productName} + productName CLOSEST_BEFORE_OR_AFTER 60 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/Intl_SIGMET.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/Intl_SIGMET.xml index 60a3d08008..26098deb75 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/Intl_SIGMET.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/Intl_SIGMET.xml @@ -5,13 +5,12 @@ PGEN -legend_color=RGB {155, 155, 155} ! the sub-directory under the current PGEN working directory ! TODO : may want to change pgenDirectory to productType/activity and get the directory of the productType pgenDirectory=/home/awp2pgen/activities/Intl_SIGMET/xml PGEN - ${productName} + productName CLOSEST_BEFORE_OR_AFTER 60 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/SIGWX_High.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/SIGWX_High.xml index e11ad9b8c4..f6f8766140 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/SIGWX_High.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/SIGWX_High.xml @@ -5,13 +5,12 @@ PGEN -legend_color=RGB {155, 155, 155} ! the sub-directory under the current PGEN working directory ! TODO : may want to change pgenDirectory to productType/activity and get the directory of the productType pgenDirectory=/home/awp2pgen/activities/SIGWX_High/xml PGEN - ${productName} + productName CLOSEST_BEFORE_OR_AFTER 60 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/SIGWX_Medium.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/SIGWX_Medium.xml index 967d1a97bc..eb4b9a5f1d 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/SIGWX_Medium.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/SIGWX_Medium.xml @@ -5,13 +5,12 @@ PGEN -legend_color=RGB {155, 155, 155} ! the sub-directory under the current PGEN working directory ! TODO : may want to change pgenDirectory to productType/activity and get the directory of the productType pgenDirectory=/home/awp2pgen/activities/SIGWX_Medium/xml PGEN - ${productName} + productName CLOSEST_BEFORE_OR_AFTER 60 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/Sample.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/Sample.xml index 371d5bfb4c..8682289ed7 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/Sample.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/Sample.xml @@ -5,13 +5,12 @@ PGEN -legend_color=RGB {155, 155, 155} ! the sub-directory under the current PGEN working directory ! TODO : may want to change pgenDirectory to productType/activity and get the directory of the productType pgenDirectory=/home/awp2pgen/activities/Sample/xml PGEN - ${productName} + productName CLOSEST_BEFORE_OR_AFTER 60 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/Surface_Analysis.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/Surface_Analysis.xml index 6c576ff269..7d0ce57924 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/Surface_Analysis.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/Surface_Analysis.xml @@ -5,13 +5,12 @@ PGEN -legend_color=RGB {155, 155, 155} ! the sub-directory under the current PGEN working directory ! TODO : may want to change pgenDirectory to productType/activity and get the directory of the productType pgenDirectory=/home/awp2pgen/activities/Surface_Analysis/xml PGEN - ${productName} + productName CLOSEST_BEFORE_OR_AFTER 60 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/Volcano.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/Volcano.xml index 96777d4641..397ee7b175 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/Volcano.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/PGEN/Volcano.xml @@ -5,13 +5,12 @@ PGEN -legend_color=RGB {155, 155, 155} ! the sub-directory under the current PGEN working directory ! TODO : may want to change pgenDirectory to productType/activity and get the directory of the productType pgenDirectory=/home/awp2pgen/activities/Volcano/xml PGEN - ${productName} + productName CLOSEST_BEFORE_OR_AFTER 60 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/RADAR/LocalRadar/LocalRadar.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/RADAR/LocalRadar/LocalRadar.xml index beff9bfd29..d00b1ab752 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/RADAR/LocalRadar/LocalRadar.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/RADAR/LocalRadar/LocalRadar.xml @@ -5,7 +5,8 @@ RADAR pluginName=radar -legend_color=RGB {200, 200, 200} +format=Radial,Raster,Graphic +legendColor=RGB {200, 200, 200} LocalRadar LocalRadar diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/RADAR/NatlMosaic/NatlMosaic.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/RADAR/NatlMosaic/NatlMosaic.xml index ae6080b3d5..fedb2ac62e 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/RADAR/NatlMosaic/NatlMosaic.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/RADAR/NatlMosaic/NatlMosaic.xml @@ -5,7 +5,7 @@ RADAR pluginName=mosaic -legend_color=RGB {200, 200, 200} +legendColor=RGB {200, 200, 200} RadarMosaic RadarMosaic @@ -17,4 +17,4 @@ legend_color=RGB {200, 200, 200} 10 3 BasicWX_US - + \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/DPD/CAPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/DPD/CAPE.attr index ed8da2238b..3631ce1ae7 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/DPD/CAPE.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/DPD/CAPE.attr @@ -1,6 +1,5 @@ -legend_color=RGB {200, 200, 200} colorMapName=gdpicape -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=CAPE displayUnitStr=BRIT alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/DPD/CINH.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/DPD/CINH.attr index 38d0384b25..6396cafd72 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/DPD/CINH.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/DPD/CINH.attr @@ -1,6 +1,5 @@ -legend_color=RGB {200, 200, 200} colorMapName=gdpicinh -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=CINH displayUnitStr=C alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/DPD/DPD.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/DPD/DPD.xml index d30ee7a543..6fb92359ca 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/DPD/DPD.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/DPD/DPD.xml @@ -3,12 +3,12 @@ true DPD SATELLITE - McIdas + Standard,McIdas McidasSatellite - ${areaName}_${resolution} + areaName,resolution CLOSEST_BEFORE_OR_AFTER - 30 + 60 USE_DATA_TIMES 10 48 @@ -16,9 +16,6 @@ pluginName=mcidas satelliteName=DPD -! mcidas DB table valid values are -! (GOES12, GOES13, .....) -! This must match the value in the - +legendColor=RGB {200, 200, 200} diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/DPD/IR2.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/DPD/IR2.attr index 212a010cc9..eb0f7432f7 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/DPD/IR2.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/DPD/IR2.attr @@ -1,6 +1,5 @@ -legend_color=RGB {200, 200, 200} colorMapName=lingray -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=IR2 displayUnitStr=C alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/DPD/LI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/DPD/LI.attr index fcca5f1247..64beacb29e 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/DPD/LI.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/DPD/LI.attr @@ -1,6 +1,5 @@ -legend_color=RGB {200, 200, 200} colorMapName=gdpili -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=LI displayUnitStr=C alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/DPD/TPW.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/DPD/TPW.attr index 7d9e711e0a..4ea4103fef 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/DPD/TPW.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/DPD/TPW.attr @@ -1,6 +1,5 @@ -legend_color=RGB {200, 200, 200} colorMapName=gdpipw -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=TPW displayUnitStr=C alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Meteosat/Meteosat.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/FYC/FYC.xml similarity index 81% rename from cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Meteosat/Meteosat.xml rename to cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/FYC/FYC.xml index 3ae6a13405..41c5837647 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Meteosat/Meteosat.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/FYC/FYC.xml @@ -1,21 +1,22 @@ true - Meteosat + FYC SATELLITE ! This must match the value in the ! mcidas DB table valid values are ! (GOES12, GOES13, .....) -satelliteName=METEOSAT9 +satelliteName=FYC pluginName=mcidas +legendColor=RGB {200, 200, 200} McIdas McidasSatellite - ${areaName}_${resolution} + areaName,resolution CLOSEST_BEFORE_OR_AFTER - 30 + 60 USE_DATA_TIMES 10 48 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/FYC/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/FYC/IR.attr new file mode 100644 index 0000000000..33b222506e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/FYC/IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR +displayUnitStr=C +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/FYC/IR2.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/FYC/IR2.attr new file mode 100644 index 0000000000..eb0f7432f7 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/FYC/IR2.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR2 +displayUnitStr=C +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/FYC/SW.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/FYC/SW.attr new file mode 100644 index 0000000000..eb2b9c2848 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/FYC/SW.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=SW +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/FYC/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/FYC/VIS.attr new file mode 100644 index 0000000000..b7e1bd693a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/FYC/VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=VIS +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/CLOUD_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/CLOUD_WATER.attr new file mode 100644 index 0000000000..4e62b6105c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/CLOUD_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Cloud water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/DERIVED_CAPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/DERIVED_CAPE.attr new file mode 100644 index 0000000000..98ba73b6fb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/DERIVED_CAPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Available Potential Energy (CAPE) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/DERIVED_CONV_INH.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/DERIVED_CONV_INH.attr new file mode 100644 index 0000000000..57a4f38069 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/DERIVED_CONV_INH.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Inhibition +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/DERIVED_LAND_SEA_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/DERIVED_LAND_SEA_TEMP.attr new file mode 100644 index 0000000000..7a23e38f72 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/DERIVED_LAND_SEA_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived land-sea temp +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/DERIVED_VOLCANO_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/DERIVED_VOLCANO_IMG.attr new file mode 100644 index 0000000000..2229ec1825 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/DERIVED_VOLCANO_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Volcano Imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/DERIVED_WINDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/DERIVED_WINDEX.attr new file mode 100644 index 0000000000..089564cdb4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/DERIVED_WINDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Wind Index(WINDEX) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/DMPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/DMPI.attr new file mode 100644 index 0000000000..a899181e1c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/DMPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Dry Microburst Potential Index (DMPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/GINI_Composite.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/GINI_Composite.xml new file mode 100644 index 0000000000..31d708b38e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/GINI_Composite.xml @@ -0,0 +1,23 @@ + + + true + GINI_Composite + SATELLITE + +! This must match the "creatingEntity" in the +! satellite DB table valid values are +pluginName=satellite +satelliteName=Composite +legendColor=RGB {200, 200, 200} + + GINI + GiniSatellite + sectorID + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/GRID_CLOUD_AMT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/GRID_CLOUD_AMT.attr new file mode 100644 index 0000000000..8fd34efc0b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/GRID_CLOUD_AMT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Amount +displayUnitStr=SounderCloudAmountPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/GRID_CTOP_PRES_HGHT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/GRID_CTOP_PRES_HGHT.attr new file mode 100644 index 0000000000..1c64cd80c4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/GRID_CTOP_PRES_HGHT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Top Pressure or Height +displayUnitStr=SounderCloudTopHeightPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/ICE_CONC.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/ICE_CONC.attr new file mode 100644 index 0000000000..9efb75ca77 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/ICE_CONC.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice concentrations +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/ICE_EDGE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/ICE_EDGE.attr new file mode 100644 index 0000000000..9379c1e0de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/ICE_EDGE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice edge +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/ICE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/ICE_TYPE.attr new file mode 100644 index 0000000000..e8befd0987 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/ICE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/IMG_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/IMG_LIFTED_INDEX.attr new file mode 100644 index 0000000000..4ef5aa938c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/IMG_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/IMG_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/IMG_PRECIP_WATER.attr new file mode 100644 index 0000000000..646aeffd51 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/IMG_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Precipitable Water (PW) +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/IMG_SRFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/IMG_SRFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..bdd4ad59a5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/IMG_SRFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/IR.attr new file mode 100644 index 0000000000..ab8d27b7e8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/IR.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/IR13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/IR13.attr new file mode 100644 index 0000000000..43b1bf4b32 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/IR13.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 13 micron (IR) +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/LOW_CLOUD_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/LOW_CLOUD_IMG.attr new file mode 100644 index 0000000000..d7926c72dd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/LOW_CLOUD_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Low cloud base imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/MDPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/MDPI.attr new file mode 100644 index 0000000000..cef6535f0e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/MDPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Microburst Day Potential Index (MDPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/NORMAL_TPW_PERCENT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/NORMAL_TPW_PERCENT.attr new file mode 100644 index 0000000000..6bd99b6f42 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/NORMAL_TPW_PERCENT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Percent of Normal TPW +displayUnitStr=PercentOfNormalTPWPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/POLAR_3.7u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/POLAR_3.7u.attr new file mode 100644 index 0000000000..4d633f1530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/POLAR_3.7u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.7u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/POLAR_3.9u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/POLAR_3.9u.attr new file mode 100644 index 0000000000..06854db01e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/POLAR_3.9u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.9u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/POLAR_IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/POLAR_IR.attr new file mode 100644 index 0000000000..6a20f7d566 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/POLAR_IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/POLAR_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/POLAR_VIS.attr new file mode 100644 index 0000000000..d6578a334f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/POLAR_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar Vis +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/RAIN_RATE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/RAIN_RATE.attr new file mode 100644 index 0000000000..7305eb7685 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/RAIN_RATE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Rain fall rate +displayUnitStr=RainfallRatePixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SCATTEROMETER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SCATTEROMETER.attr new file mode 100644 index 0000000000..a05f578deb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SCATTEROMETER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Scatterometer Data +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SFC_WETNESS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SFC_WETNESS.attr new file mode 100644 index 0000000000..9753cf44db --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SFC_WETNESS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wetness +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SFC_WIND_SPD.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SFC_WIND_SPD.attr new file mode 100644 index 0000000000..04808eb1b9 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SFC_WIND_SPD.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wind speeds over oceans and Great Lakes +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_11.03.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_11.03.attr new file mode 100644 index 0000000000..547dd6e061 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_11.03.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 11.03 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_12.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_12.02.attr new file mode 100644 index 0000000000..244de73617 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_12.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_12.66.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_12.66.attr new file mode 100644 index 0000000000..462e666f93 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_12.66.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.66 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_13.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_13.37.attr new file mode 100644 index 0000000000..9cb1aa9c5e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_13.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_13.64.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_13.64.attr new file mode 100644 index 0000000000..9f58a6bac2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_13.64.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.64 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_14.06.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_14.06.attr new file mode 100644 index 0000000000..de2a6e2798 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_14.06.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.06 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_14.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_14.37.attr new file mode 100644 index 0000000000..da7800808b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_14.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_14.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_14.71.attr new file mode 100644 index 0000000000..b4f2c87ea2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_14.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_3.74.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_3.74.attr new file mode 100644 index 0000000000..4b0e26bda5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_3.74.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.74 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_3.98.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_3.98.attr new file mode 100644 index 0000000000..db0e925130 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_3.98.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.98 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_4.13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_4.13.attr new file mode 100644 index 0000000000..8e3484d48e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_4.13.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.13 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_4.45.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_4.45.attr new file mode 100644 index 0000000000..4f0b9bce68 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_4.45.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.45 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_4.52.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_4.52.attr new file mode 100644 index 0000000000..54e31f291f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_4.52.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.52 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_4.57.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_4.57.attr new file mode 100644 index 0000000000..f8c6a6c828 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_4.57.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.57 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_6.51.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_6.51.attr new file mode 100644 index 0000000000..de741eae3a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_6.51.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 6.51 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_7.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_7.02.attr new file mode 100644 index 0000000000..ed7f062cf5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_7.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_7.43.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_7.43.attr new file mode 100644 index 0000000000..748ac900d6 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_7.43.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.43 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_9.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_9.71.attr new file mode 100644 index 0000000000..29d901bdfd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_9.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 9.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_LIFTED_INDEX.attr new file mode 100644 index 0000000000..e2cf799bbf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_PRECIP_WATER.attr new file mode 100644 index 0000000000..2c88a0f5d8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Precipitable Water (PW) +displayUnitStr=SounderPrecipWaterPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_SFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_SFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..311972a597 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_SFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_VIS.attr new file mode 100644 index 0000000000..d99cea7530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SND_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Visible imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SNOW_IND.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SNOW_IND.attr new file mode 100644 index 0000000000..de51b42452 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SNOW_IND.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow indicator +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SNOW_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SNOW_WATER.attr new file mode 100644 index 0000000000..4eec894549 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SNOW_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow-water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SURFACE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SURFACE_TYPE.attr new file mode 100644 index 0000000000..0cc7cca419 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/SURFACE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/VIS.attr new file mode 100644 index 0000000000..56a43a4d7e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/VIS.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager Visible +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/WV.attr new file mode 100644 index 0000000000..e34cef65ef --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/WV.attr @@ -0,0 +1,8 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 6.7-6.5 micron IR (WV) +displayUnitStr=DerivedWVPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/default.attr new file mode 100644 index 0000000000..267d61ad67 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Composite/default.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/CLOUD_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/CLOUD_WATER.attr new file mode 100644 index 0000000000..4e62b6105c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/CLOUD_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Cloud water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/DERIVED_CAPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/DERIVED_CAPE.attr new file mode 100644 index 0000000000..98ba73b6fb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/DERIVED_CAPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Available Potential Energy (CAPE) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/DERIVED_CONV_INH.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/DERIVED_CONV_INH.attr new file mode 100644 index 0000000000..57a4f38069 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/DERIVED_CONV_INH.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Inhibition +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/DERIVED_LAND_SEA_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/DERIVED_LAND_SEA_TEMP.attr new file mode 100644 index 0000000000..7a23e38f72 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/DERIVED_LAND_SEA_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived land-sea temp +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/DERIVED_VOLCANO_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/DERIVED_VOLCANO_IMG.attr new file mode 100644 index 0000000000..2229ec1825 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/DERIVED_VOLCANO_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Volcano Imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/DERIVED_WINDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/DERIVED_WINDEX.attr new file mode 100644 index 0000000000..089564cdb4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/DERIVED_WINDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Wind Index(WINDEX) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/DMPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/DMPI.attr new file mode 100644 index 0000000000..a899181e1c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/DMPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Dry Microburst Potential Index (DMPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/GINI_DMSP.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/GINI_DMSP.xml new file mode 100644 index 0000000000..0e0e5cab3e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/GINI_DMSP.xml @@ -0,0 +1,23 @@ + + + true + GINI_DMSP + SATELLITE + +! This must match the "creatingEntity" in the +! satellite DB table valid values are +pluginName=satellite +satelliteName=DMSP +legendColor=RGB {200, 200, 200} + + GINI + GiniSatellite + sectorID + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/GRID_CLOUD_AMT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/GRID_CLOUD_AMT.attr new file mode 100644 index 0000000000..8fd34efc0b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/GRID_CLOUD_AMT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Amount +displayUnitStr=SounderCloudAmountPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/GRID_CTOP_PRES_HGHT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/GRID_CTOP_PRES_HGHT.attr new file mode 100644 index 0000000000..1c64cd80c4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/GRID_CTOP_PRES_HGHT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Top Pressure or Height +displayUnitStr=SounderCloudTopHeightPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/ICE_CONC.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/ICE_CONC.attr new file mode 100644 index 0000000000..9efb75ca77 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/ICE_CONC.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice concentrations +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/ICE_EDGE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/ICE_EDGE.attr new file mode 100644 index 0000000000..9379c1e0de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/ICE_EDGE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice edge +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/ICE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/ICE_TYPE.attr new file mode 100644 index 0000000000..e8befd0987 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/ICE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/IMG_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/IMG_LIFTED_INDEX.attr new file mode 100644 index 0000000000..4ef5aa938c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/IMG_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/IMG_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/IMG_PRECIP_WATER.attr new file mode 100644 index 0000000000..646aeffd51 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/IMG_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Precipitable Water (PW) +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/IMG_SRFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/IMG_SRFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..bdd4ad59a5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/IMG_SRFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/IR.attr new file mode 100644 index 0000000000..ab8d27b7e8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/IR.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/IR13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/IR13.attr new file mode 100644 index 0000000000..43b1bf4b32 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/IR13.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 13 micron (IR) +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/LOW_CLOUD_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/LOW_CLOUD_IMG.attr new file mode 100644 index 0000000000..d7926c72dd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/LOW_CLOUD_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Low cloud base imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/MDPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/MDPI.attr new file mode 100644 index 0000000000..cef6535f0e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/MDPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Microburst Day Potential Index (MDPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/NORMAL_TPW_PERCENT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/NORMAL_TPW_PERCENT.attr new file mode 100644 index 0000000000..6bd99b6f42 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/NORMAL_TPW_PERCENT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Percent of Normal TPW +displayUnitStr=PercentOfNormalTPWPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/POLAR_3.7u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/POLAR_3.7u.attr new file mode 100644 index 0000000000..4d633f1530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/POLAR_3.7u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.7u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/POLAR_3.9u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/POLAR_3.9u.attr new file mode 100644 index 0000000000..06854db01e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/POLAR_3.9u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.9u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/POLAR_IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/POLAR_IR.attr new file mode 100644 index 0000000000..6a20f7d566 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/POLAR_IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/POLAR_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/POLAR_VIS.attr new file mode 100644 index 0000000000..d6578a334f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/POLAR_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar Vis +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/RAIN_RATE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/RAIN_RATE.attr new file mode 100644 index 0000000000..7305eb7685 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/RAIN_RATE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Rain fall rate +displayUnitStr=RainfallRatePixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SCATTEROMETER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SCATTEROMETER.attr new file mode 100644 index 0000000000..a05f578deb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SCATTEROMETER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Scatterometer Data +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SFC_WETNESS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SFC_WETNESS.attr new file mode 100644 index 0000000000..9753cf44db --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SFC_WETNESS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wetness +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SFC_WIND_SPD.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SFC_WIND_SPD.attr new file mode 100644 index 0000000000..04808eb1b9 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SFC_WIND_SPD.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wind speeds over oceans and Great Lakes +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_11.03.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_11.03.attr new file mode 100644 index 0000000000..547dd6e061 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_11.03.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 11.03 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_12.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_12.02.attr new file mode 100644 index 0000000000..244de73617 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_12.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_12.66.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_12.66.attr new file mode 100644 index 0000000000..462e666f93 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_12.66.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.66 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_13.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_13.37.attr new file mode 100644 index 0000000000..9cb1aa9c5e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_13.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_13.64.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_13.64.attr new file mode 100644 index 0000000000..9f58a6bac2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_13.64.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.64 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_14.06.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_14.06.attr new file mode 100644 index 0000000000..de2a6e2798 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_14.06.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.06 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_14.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_14.37.attr new file mode 100644 index 0000000000..da7800808b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_14.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_14.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_14.71.attr new file mode 100644 index 0000000000..b4f2c87ea2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_14.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_3.74.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_3.74.attr new file mode 100644 index 0000000000..4b0e26bda5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_3.74.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.74 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_3.98.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_3.98.attr new file mode 100644 index 0000000000..db0e925130 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_3.98.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.98 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_4.13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_4.13.attr new file mode 100644 index 0000000000..8e3484d48e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_4.13.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.13 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_4.45.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_4.45.attr new file mode 100644 index 0000000000..4f0b9bce68 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_4.45.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.45 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_4.52.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_4.52.attr new file mode 100644 index 0000000000..54e31f291f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_4.52.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.52 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_4.57.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_4.57.attr new file mode 100644 index 0000000000..f8c6a6c828 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_4.57.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.57 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_6.51.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_6.51.attr new file mode 100644 index 0000000000..de741eae3a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_6.51.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 6.51 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_7.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_7.02.attr new file mode 100644 index 0000000000..ed7f062cf5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_7.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_7.43.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_7.43.attr new file mode 100644 index 0000000000..748ac900d6 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_7.43.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.43 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_9.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_9.71.attr new file mode 100644 index 0000000000..29d901bdfd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_9.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 9.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_LIFTED_INDEX.attr new file mode 100644 index 0000000000..e2cf799bbf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_PRECIP_WATER.attr new file mode 100644 index 0000000000..2c88a0f5d8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Precipitable Water (PW) +displayUnitStr=SounderPrecipWaterPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_SFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_SFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..311972a597 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_SFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_VIS.attr new file mode 100644 index 0000000000..d99cea7530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SND_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Visible imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SNOW_IND.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SNOW_IND.attr new file mode 100644 index 0000000000..de51b42452 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SNOW_IND.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow indicator +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SNOW_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SNOW_WATER.attr new file mode 100644 index 0000000000..4eec894549 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SNOW_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow-water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SURFACE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SURFACE_TYPE.attr new file mode 100644 index 0000000000..0cc7cca419 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/SURFACE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/VIS.attr new file mode 100644 index 0000000000..56a43a4d7e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/VIS.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager Visible +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/WV.attr new file mode 100644 index 0000000000..e34cef65ef --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/WV.attr @@ -0,0 +1,8 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 6.7-6.5 micron IR (WV) +displayUnitStr=DerivedWVPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/default.attr new file mode 100644 index 0000000000..267d61ad67 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_DMSP/default.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/CLOUD_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/CLOUD_WATER.attr new file mode 100644 index 0000000000..4e62b6105c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/CLOUD_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Cloud water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/DERIVED_CAPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/DERIVED_CAPE.attr new file mode 100644 index 0000000000..98ba73b6fb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/DERIVED_CAPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Available Potential Energy (CAPE) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/DERIVED_CONV_INH.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/DERIVED_CONV_INH.attr new file mode 100644 index 0000000000..57a4f38069 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/DERIVED_CONV_INH.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Inhibition +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/DERIVED_LAND_SEA_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/DERIVED_LAND_SEA_TEMP.attr new file mode 100644 index 0000000000..7a23e38f72 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/DERIVED_LAND_SEA_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived land-sea temp +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/DERIVED_VOLCANO_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/DERIVED_VOLCANO_IMG.attr new file mode 100644 index 0000000000..2229ec1825 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/DERIVED_VOLCANO_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Volcano Imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/DERIVED_WINDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/DERIVED_WINDEX.attr new file mode 100644 index 0000000000..089564cdb4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/DERIVED_WINDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Wind Index(WINDEX) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/DMPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/DMPI.attr new file mode 100644 index 0000000000..a899181e1c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/DMPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Dry Microburst Potential Index (DMPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/GINI_ERS-QuickSCAT-Scatterometer.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/GINI_ERS-QuickSCAT-Scatterometer.xml new file mode 100644 index 0000000000..818c430e2b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/GINI_ERS-QuickSCAT-Scatterometer.xml @@ -0,0 +1,23 @@ + + + true + GINI_ERS-QuickSCAT-Scatterometer + SATELLITE + +! This must match the "creatingEntity" in the +! satellite DB table valid values are +pluginName=satellite +satelliteName=ERS-QuickSCAT-Scatterometer +legendColor=RGB {200, 200, 200} + + GINI + GiniSatellite + sectorID + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/GRID_CLOUD_AMT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/GRID_CLOUD_AMT.attr new file mode 100644 index 0000000000..8fd34efc0b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/GRID_CLOUD_AMT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Amount +displayUnitStr=SounderCloudAmountPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/GRID_CTOP_PRES_HGHT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/GRID_CTOP_PRES_HGHT.attr new file mode 100644 index 0000000000..1c64cd80c4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/GRID_CTOP_PRES_HGHT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Top Pressure or Height +displayUnitStr=SounderCloudTopHeightPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/ICE_CONC.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/ICE_CONC.attr new file mode 100644 index 0000000000..9efb75ca77 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/ICE_CONC.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice concentrations +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/ICE_EDGE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/ICE_EDGE.attr new file mode 100644 index 0000000000..9379c1e0de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/ICE_EDGE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice edge +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/ICE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/ICE_TYPE.attr new file mode 100644 index 0000000000..e8befd0987 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/ICE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/IMG_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/IMG_LIFTED_INDEX.attr new file mode 100644 index 0000000000..4ef5aa938c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/IMG_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/IMG_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/IMG_PRECIP_WATER.attr new file mode 100644 index 0000000000..646aeffd51 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/IMG_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Precipitable Water (PW) +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/IMG_SRFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/IMG_SRFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..bdd4ad59a5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/IMG_SRFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/IR.attr new file mode 100644 index 0000000000..ab8d27b7e8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/IR.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/IR13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/IR13.attr new file mode 100644 index 0000000000..43b1bf4b32 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/IR13.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 13 micron (IR) +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/LOW_CLOUD_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/LOW_CLOUD_IMG.attr new file mode 100644 index 0000000000..d7926c72dd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/LOW_CLOUD_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Low cloud base imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/MDPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/MDPI.attr new file mode 100644 index 0000000000..cef6535f0e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/MDPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Microburst Day Potential Index (MDPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/NORMAL_TPW_PERCENT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/NORMAL_TPW_PERCENT.attr new file mode 100644 index 0000000000..6bd99b6f42 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/NORMAL_TPW_PERCENT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Percent of Normal TPW +displayUnitStr=PercentOfNormalTPWPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/POLAR_3.7u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/POLAR_3.7u.attr new file mode 100644 index 0000000000..4d633f1530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/POLAR_3.7u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.7u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/POLAR_3.9u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/POLAR_3.9u.attr new file mode 100644 index 0000000000..06854db01e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/POLAR_3.9u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.9u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/POLAR_IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/POLAR_IR.attr new file mode 100644 index 0000000000..6a20f7d566 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/POLAR_IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/POLAR_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/POLAR_VIS.attr new file mode 100644 index 0000000000..d6578a334f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/POLAR_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar Vis +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/RAIN_RATE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/RAIN_RATE.attr new file mode 100644 index 0000000000..7305eb7685 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/RAIN_RATE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Rain fall rate +displayUnitStr=RainfallRatePixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SCATTEROMETER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SCATTEROMETER.attr new file mode 100644 index 0000000000..a05f578deb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SCATTEROMETER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Scatterometer Data +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SFC_WETNESS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SFC_WETNESS.attr new file mode 100644 index 0000000000..9753cf44db --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SFC_WETNESS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wetness +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SFC_WIND_SPD.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SFC_WIND_SPD.attr new file mode 100644 index 0000000000..04808eb1b9 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SFC_WIND_SPD.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wind speeds over oceans and Great Lakes +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_11.03.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_11.03.attr new file mode 100644 index 0000000000..547dd6e061 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_11.03.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 11.03 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_12.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_12.02.attr new file mode 100644 index 0000000000..244de73617 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_12.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_12.66.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_12.66.attr new file mode 100644 index 0000000000..462e666f93 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_12.66.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.66 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_13.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_13.37.attr new file mode 100644 index 0000000000..9cb1aa9c5e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_13.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_13.64.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_13.64.attr new file mode 100644 index 0000000000..9f58a6bac2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_13.64.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.64 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_14.06.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_14.06.attr new file mode 100644 index 0000000000..de2a6e2798 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_14.06.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.06 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_14.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_14.37.attr new file mode 100644 index 0000000000..da7800808b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_14.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_14.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_14.71.attr new file mode 100644 index 0000000000..b4f2c87ea2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_14.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_3.74.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_3.74.attr new file mode 100644 index 0000000000..4b0e26bda5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_3.74.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.74 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_3.98.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_3.98.attr new file mode 100644 index 0000000000..db0e925130 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_3.98.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.98 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_4.13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_4.13.attr new file mode 100644 index 0000000000..8e3484d48e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_4.13.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.13 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_4.45.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_4.45.attr new file mode 100644 index 0000000000..4f0b9bce68 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_4.45.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.45 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_4.52.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_4.52.attr new file mode 100644 index 0000000000..54e31f291f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_4.52.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.52 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_4.57.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_4.57.attr new file mode 100644 index 0000000000..f8c6a6c828 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_4.57.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.57 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_6.51.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_6.51.attr new file mode 100644 index 0000000000..de741eae3a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_6.51.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 6.51 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_7.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_7.02.attr new file mode 100644 index 0000000000..ed7f062cf5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_7.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_7.43.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_7.43.attr new file mode 100644 index 0000000000..748ac900d6 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_7.43.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.43 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_9.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_9.71.attr new file mode 100644 index 0000000000..29d901bdfd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_9.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 9.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_LIFTED_INDEX.attr new file mode 100644 index 0000000000..e2cf799bbf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_PRECIP_WATER.attr new file mode 100644 index 0000000000..2c88a0f5d8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Precipitable Water (PW) +displayUnitStr=SounderPrecipWaterPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_SFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_SFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..311972a597 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_SFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_VIS.attr new file mode 100644 index 0000000000..d99cea7530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SND_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Visible imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SNOW_IND.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SNOW_IND.attr new file mode 100644 index 0000000000..de51b42452 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SNOW_IND.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow indicator +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SNOW_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SNOW_WATER.attr new file mode 100644 index 0000000000..4eec894549 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SNOW_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow-water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SURFACE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SURFACE_TYPE.attr new file mode 100644 index 0000000000..0cc7cca419 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/SURFACE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/VIS.attr new file mode 100644 index 0000000000..56a43a4d7e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/VIS.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager Visible +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/WV.attr new file mode 100644 index 0000000000..e34cef65ef --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/WV.attr @@ -0,0 +1,8 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 6.7-6.5 micron IR (WV) +displayUnitStr=DerivedWVPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/default.attr new file mode 100644 index 0000000000..267d61ad67 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_ERS-QuickSCAT-Scatterometer/default.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/CLOUD_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/CLOUD_WATER.attr new file mode 100644 index 0000000000..4e62b6105c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/CLOUD_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Cloud water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/DERIVED_CAPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/DERIVED_CAPE.attr new file mode 100644 index 0000000000..98ba73b6fb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/DERIVED_CAPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Available Potential Energy (CAPE) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/DERIVED_CONV_INH.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/DERIVED_CONV_INH.attr new file mode 100644 index 0000000000..57a4f38069 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/DERIVED_CONV_INH.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Inhibition +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/DERIVED_LAND_SEA_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/DERIVED_LAND_SEA_TEMP.attr new file mode 100644 index 0000000000..7a23e38f72 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/DERIVED_LAND_SEA_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived land-sea temp +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/DERIVED_VOLCANO_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/DERIVED_VOLCANO_IMG.attr new file mode 100644 index 0000000000..2229ec1825 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/DERIVED_VOLCANO_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Volcano Imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/DERIVED_WINDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/DERIVED_WINDEX.attr new file mode 100644 index 0000000000..089564cdb4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/DERIVED_WINDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Wind Index(WINDEX) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/DMPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/DMPI.attr new file mode 100644 index 0000000000..a899181e1c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/DMPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Dry Microburst Potential Index (DMPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/GINI_GMS.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/GINI_GMS.xml new file mode 100644 index 0000000000..df5c8fdb3d --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/GINI_GMS.xml @@ -0,0 +1,23 @@ + + + true + GINI_GMS + SATELLITE + +! This must match the "creatingEntity" in the +! satellite DB table valid values are +pluginName=satellite +satelliteName=GMS +legendColor=RGB {200, 200, 200} + + GMS,GINI + GiniSatellite + sectorID + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/GRID_CLOUD_AMT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/GRID_CLOUD_AMT.attr new file mode 100644 index 0000000000..8fd34efc0b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/GRID_CLOUD_AMT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Amount +displayUnitStr=SounderCloudAmountPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/GRID_CTOP_PRES_HGHT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/GRID_CTOP_PRES_HGHT.attr new file mode 100644 index 0000000000..1c64cd80c4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/GRID_CTOP_PRES_HGHT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Top Pressure or Height +displayUnitStr=SounderCloudTopHeightPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/ICE_CONC.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/ICE_CONC.attr new file mode 100644 index 0000000000..9efb75ca77 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/ICE_CONC.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice concentrations +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/ICE_EDGE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/ICE_EDGE.attr new file mode 100644 index 0000000000..9379c1e0de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/ICE_EDGE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice edge +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/ICE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/ICE_TYPE.attr new file mode 100644 index 0000000000..e8befd0987 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/ICE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/IMG_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/IMG_LIFTED_INDEX.attr new file mode 100644 index 0000000000..4ef5aa938c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/IMG_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/IMG_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/IMG_PRECIP_WATER.attr new file mode 100644 index 0000000000..646aeffd51 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/IMG_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Precipitable Water (PW) +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/IMG_SRFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/IMG_SRFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..bdd4ad59a5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/IMG_SRFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/IR.attr new file mode 100644 index 0000000000..ab8d27b7e8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/IR.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/IR13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/IR13.attr new file mode 100644 index 0000000000..43b1bf4b32 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/IR13.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 13 micron (IR) +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/LOW_CLOUD_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/LOW_CLOUD_IMG.attr new file mode 100644 index 0000000000..d7926c72dd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/LOW_CLOUD_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Low cloud base imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/MDPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/MDPI.attr new file mode 100644 index 0000000000..cef6535f0e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/MDPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Microburst Day Potential Index (MDPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/NORMAL_TPW_PERCENT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/NORMAL_TPW_PERCENT.attr new file mode 100644 index 0000000000..6bd99b6f42 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/NORMAL_TPW_PERCENT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Percent of Normal TPW +displayUnitStr=PercentOfNormalTPWPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/POLAR_3.7u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/POLAR_3.7u.attr new file mode 100644 index 0000000000..4d633f1530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/POLAR_3.7u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.7u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/POLAR_3.9u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/POLAR_3.9u.attr new file mode 100644 index 0000000000..06854db01e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/POLAR_3.9u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.9u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/POLAR_IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/POLAR_IR.attr new file mode 100644 index 0000000000..6a20f7d566 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/POLAR_IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/POLAR_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/POLAR_VIS.attr new file mode 100644 index 0000000000..d6578a334f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/POLAR_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar Vis +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/RAIN_RATE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/RAIN_RATE.attr new file mode 100644 index 0000000000..7305eb7685 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/RAIN_RATE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Rain fall rate +displayUnitStr=RainfallRatePixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SCATTEROMETER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SCATTEROMETER.attr new file mode 100644 index 0000000000..a05f578deb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SCATTEROMETER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Scatterometer Data +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SFC_WETNESS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SFC_WETNESS.attr new file mode 100644 index 0000000000..9753cf44db --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SFC_WETNESS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wetness +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SFC_WIND_SPD.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SFC_WIND_SPD.attr new file mode 100644 index 0000000000..04808eb1b9 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SFC_WIND_SPD.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wind speeds over oceans and Great Lakes +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_11.03.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_11.03.attr new file mode 100644 index 0000000000..547dd6e061 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_11.03.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 11.03 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_12.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_12.02.attr new file mode 100644 index 0000000000..244de73617 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_12.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_12.66.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_12.66.attr new file mode 100644 index 0000000000..462e666f93 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_12.66.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.66 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_13.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_13.37.attr new file mode 100644 index 0000000000..9cb1aa9c5e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_13.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_13.64.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_13.64.attr new file mode 100644 index 0000000000..9f58a6bac2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_13.64.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.64 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_14.06.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_14.06.attr new file mode 100644 index 0000000000..de2a6e2798 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_14.06.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.06 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_14.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_14.37.attr new file mode 100644 index 0000000000..da7800808b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_14.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_14.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_14.71.attr new file mode 100644 index 0000000000..b4f2c87ea2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_14.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_3.74.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_3.74.attr new file mode 100644 index 0000000000..4b0e26bda5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_3.74.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.74 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_3.98.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_3.98.attr new file mode 100644 index 0000000000..db0e925130 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_3.98.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.98 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_4.13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_4.13.attr new file mode 100644 index 0000000000..8e3484d48e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_4.13.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.13 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_4.45.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_4.45.attr new file mode 100644 index 0000000000..4f0b9bce68 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_4.45.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.45 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_4.52.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_4.52.attr new file mode 100644 index 0000000000..54e31f291f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_4.52.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.52 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_4.57.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_4.57.attr new file mode 100644 index 0000000000..f8c6a6c828 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_4.57.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.57 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_6.51.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_6.51.attr new file mode 100644 index 0000000000..de741eae3a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_6.51.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 6.51 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_7.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_7.02.attr new file mode 100644 index 0000000000..ed7f062cf5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_7.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_7.43.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_7.43.attr new file mode 100644 index 0000000000..748ac900d6 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_7.43.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.43 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_9.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_9.71.attr new file mode 100644 index 0000000000..29d901bdfd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_9.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 9.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_LIFTED_INDEX.attr new file mode 100644 index 0000000000..e2cf799bbf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_PRECIP_WATER.attr new file mode 100644 index 0000000000..2c88a0f5d8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Precipitable Water (PW) +displayUnitStr=SounderPrecipWaterPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_SFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_SFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..311972a597 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_SFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_VIS.attr new file mode 100644 index 0000000000..d99cea7530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SND_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Visible imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SNOW_IND.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SNOW_IND.attr new file mode 100644 index 0000000000..de51b42452 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SNOW_IND.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow indicator +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SNOW_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SNOW_WATER.attr new file mode 100644 index 0000000000..4eec894549 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SNOW_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow-water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SURFACE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SURFACE_TYPE.attr new file mode 100644 index 0000000000..0cc7cca419 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/SURFACE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/VIS.attr new file mode 100644 index 0000000000..56a43a4d7e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/VIS.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager Visible +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/WV.attr new file mode 100644 index 0000000000..e34cef65ef --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/WV.attr @@ -0,0 +1,8 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 6.7-6.5 micron IR (WV) +displayUnitStr=DerivedWVPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/default.attr new file mode 100644 index 0000000000..267d61ad67 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GMS/default.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/CLOUD_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/CLOUD_WATER.attr new file mode 100644 index 0000000000..4e62b6105c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/CLOUD_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Cloud water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/DERIVED_CAPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/DERIVED_CAPE.attr new file mode 100644 index 0000000000..98ba73b6fb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/DERIVED_CAPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Available Potential Energy (CAPE) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/DERIVED_CONV_INH.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/DERIVED_CONV_INH.attr new file mode 100644 index 0000000000..57a4f38069 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/DERIVED_CONV_INH.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Inhibition +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/DERIVED_LAND_SEA_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/DERIVED_LAND_SEA_TEMP.attr new file mode 100644 index 0000000000..7a23e38f72 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/DERIVED_LAND_SEA_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived land-sea temp +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/DERIVED_VOLCANO_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/DERIVED_VOLCANO_IMG.attr new file mode 100644 index 0000000000..2229ec1825 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/DERIVED_VOLCANO_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Volcano Imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/DERIVED_WINDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/DERIVED_WINDEX.attr new file mode 100644 index 0000000000..089564cdb4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/DERIVED_WINDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Wind Index(WINDEX) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/DMPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/DMPI.attr new file mode 100644 index 0000000000..a899181e1c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/DMPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Dry Microburst Potential Index (DMPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/GINI_GOES10.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/GINI_GOES10.xml new file mode 100644 index 0000000000..bc1ca9a5a7 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/GINI_GOES10.xml @@ -0,0 +1,23 @@ + + + true + GINI_GOES10 + SATELLITE + +! This must match the "creatingEntity" in the +! satellite DB table valid values are +pluginName=satellite +satelliteName=GOES-10(K) +legendColor=RGB {200, 200, 200} + + GOES,GINI + GiniSatellite + sectorID + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/GRID_CLOUD_AMT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/GRID_CLOUD_AMT.attr new file mode 100644 index 0000000000..8fd34efc0b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/GRID_CLOUD_AMT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Amount +displayUnitStr=SounderCloudAmountPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/GRID_CTOP_PRES_HGHT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/GRID_CTOP_PRES_HGHT.attr new file mode 100644 index 0000000000..1c64cd80c4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/GRID_CTOP_PRES_HGHT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Top Pressure or Height +displayUnitStr=SounderCloudTopHeightPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/ICE_CONC.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/ICE_CONC.attr new file mode 100644 index 0000000000..9efb75ca77 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/ICE_CONC.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice concentrations +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/ICE_EDGE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/ICE_EDGE.attr new file mode 100644 index 0000000000..9379c1e0de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/ICE_EDGE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice edge +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/ICE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/ICE_TYPE.attr new file mode 100644 index 0000000000..e8befd0987 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/ICE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/IMG_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/IMG_LIFTED_INDEX.attr new file mode 100644 index 0000000000..4ef5aa938c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/IMG_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/IMG_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/IMG_PRECIP_WATER.attr new file mode 100644 index 0000000000..646aeffd51 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/IMG_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Precipitable Water (PW) +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/IMG_SRFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/IMG_SRFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..bdd4ad59a5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/IMG_SRFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/IR.attr new file mode 100644 index 0000000000..ab8d27b7e8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/IR.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/IR13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/IR13.attr new file mode 100644 index 0000000000..43b1bf4b32 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/IR13.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 13 micron (IR) +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/LOW_CLOUD_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/LOW_CLOUD_IMG.attr new file mode 100644 index 0000000000..d7926c72dd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/LOW_CLOUD_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Low cloud base imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/MDPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/MDPI.attr new file mode 100644 index 0000000000..cef6535f0e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/MDPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Microburst Day Potential Index (MDPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/NORMAL_TPW_PERCENT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/NORMAL_TPW_PERCENT.attr new file mode 100644 index 0000000000..6bd99b6f42 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/NORMAL_TPW_PERCENT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Percent of Normal TPW +displayUnitStr=PercentOfNormalTPWPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/POLAR_3.7u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/POLAR_3.7u.attr new file mode 100644 index 0000000000..4d633f1530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/POLAR_3.7u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.7u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/POLAR_3.9u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/POLAR_3.9u.attr new file mode 100644 index 0000000000..06854db01e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/POLAR_3.9u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.9u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/POLAR_IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/POLAR_IR.attr new file mode 100644 index 0000000000..6a20f7d566 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/POLAR_IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/POLAR_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/POLAR_VIS.attr new file mode 100644 index 0000000000..d6578a334f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/POLAR_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar Vis +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/RAIN_RATE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/RAIN_RATE.attr new file mode 100644 index 0000000000..7305eb7685 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/RAIN_RATE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Rain fall rate +displayUnitStr=RainfallRatePixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SCATTEROMETER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SCATTEROMETER.attr new file mode 100644 index 0000000000..a05f578deb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SCATTEROMETER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Scatterometer Data +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SFC_WETNESS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SFC_WETNESS.attr new file mode 100644 index 0000000000..9753cf44db --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SFC_WETNESS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wetness +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SFC_WIND_SPD.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SFC_WIND_SPD.attr new file mode 100644 index 0000000000..04808eb1b9 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SFC_WIND_SPD.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wind speeds over oceans and Great Lakes +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_11.03.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_11.03.attr new file mode 100644 index 0000000000..547dd6e061 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_11.03.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 11.03 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_12.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_12.02.attr new file mode 100644 index 0000000000..244de73617 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_12.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_12.66.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_12.66.attr new file mode 100644 index 0000000000..462e666f93 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_12.66.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.66 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_13.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_13.37.attr new file mode 100644 index 0000000000..9cb1aa9c5e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_13.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_13.64.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_13.64.attr new file mode 100644 index 0000000000..9f58a6bac2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_13.64.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.64 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_14.06.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_14.06.attr new file mode 100644 index 0000000000..de2a6e2798 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_14.06.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.06 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_14.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_14.37.attr new file mode 100644 index 0000000000..da7800808b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_14.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_14.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_14.71.attr new file mode 100644 index 0000000000..b4f2c87ea2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_14.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_3.74.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_3.74.attr new file mode 100644 index 0000000000..4b0e26bda5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_3.74.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.74 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_3.98.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_3.98.attr new file mode 100644 index 0000000000..db0e925130 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_3.98.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.98 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_4.13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_4.13.attr new file mode 100644 index 0000000000..8e3484d48e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_4.13.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.13 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_4.45.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_4.45.attr new file mode 100644 index 0000000000..4f0b9bce68 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_4.45.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.45 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_4.52.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_4.52.attr new file mode 100644 index 0000000000..54e31f291f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_4.52.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.52 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_4.57.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_4.57.attr new file mode 100644 index 0000000000..f8c6a6c828 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_4.57.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.57 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_6.51.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_6.51.attr new file mode 100644 index 0000000000..de741eae3a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_6.51.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 6.51 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_7.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_7.02.attr new file mode 100644 index 0000000000..ed7f062cf5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_7.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_7.43.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_7.43.attr new file mode 100644 index 0000000000..748ac900d6 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_7.43.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.43 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_9.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_9.71.attr new file mode 100644 index 0000000000..29d901bdfd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_9.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 9.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_LIFTED_INDEX.attr new file mode 100644 index 0000000000..e2cf799bbf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_PRECIP_WATER.attr new file mode 100644 index 0000000000..2c88a0f5d8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Precipitable Water (PW) +displayUnitStr=SounderPrecipWaterPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_SFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_SFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..311972a597 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_SFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_VIS.attr new file mode 100644 index 0000000000..d99cea7530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SND_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Visible imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SNOW_IND.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SNOW_IND.attr new file mode 100644 index 0000000000..de51b42452 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SNOW_IND.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow indicator +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SNOW_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SNOW_WATER.attr new file mode 100644 index 0000000000..4eec894549 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SNOW_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow-water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SURFACE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SURFACE_TYPE.attr new file mode 100644 index 0000000000..0cc7cca419 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/SURFACE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/VIS.attr new file mode 100644 index 0000000000..56a43a4d7e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/VIS.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager Visible +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/WV.attr new file mode 100644 index 0000000000..e34cef65ef --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/WV.attr @@ -0,0 +1,8 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 6.7-6.5 micron IR (WV) +displayUnitStr=DerivedWVPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/default.attr new file mode 100644 index 0000000000..267d61ad67 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES10/default.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/CLOUD_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/CLOUD_WATER.attr new file mode 100644 index 0000000000..4e62b6105c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/CLOUD_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Cloud water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/DERIVED_CAPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/DERIVED_CAPE.attr new file mode 100644 index 0000000000..98ba73b6fb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/DERIVED_CAPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Available Potential Energy (CAPE) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/DERIVED_CONV_INH.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/DERIVED_CONV_INH.attr new file mode 100644 index 0000000000..57a4f38069 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/DERIVED_CONV_INH.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Inhibition +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/DERIVED_LAND_SEA_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/DERIVED_LAND_SEA_TEMP.attr new file mode 100644 index 0000000000..7a23e38f72 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/DERIVED_LAND_SEA_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived land-sea temp +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/DERIVED_VOLCANO_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/DERIVED_VOLCANO_IMG.attr new file mode 100644 index 0000000000..2229ec1825 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/DERIVED_VOLCANO_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Volcano Imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/DERIVED_WINDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/DERIVED_WINDEX.attr new file mode 100644 index 0000000000..089564cdb4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/DERIVED_WINDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Wind Index(WINDEX) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/DMPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/DMPI.attr new file mode 100644 index 0000000000..a899181e1c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/DMPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Dry Microburst Potential Index (DMPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/GINI_GOES11.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/GINI_GOES11.xml new file mode 100644 index 0000000000..0abe6c32e0 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/GINI_GOES11.xml @@ -0,0 +1,23 @@ + + + true + GINI_GOES11 + SATELLITE + +! This must match the "creatingEntity" in the +! satellite DB table valid values are +pluginName=satellite +satelliteName=GOES-11(L) +legendColor=RGB {200, 200, 200} + + GOES,GINI + GiniSatellite + sectorID + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/GRID_CLOUD_AMT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/GRID_CLOUD_AMT.attr new file mode 100644 index 0000000000..8fd34efc0b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/GRID_CLOUD_AMT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Amount +displayUnitStr=SounderCloudAmountPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/GRID_CTOP_PRES_HGHT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/GRID_CTOP_PRES_HGHT.attr new file mode 100644 index 0000000000..1c64cd80c4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/GRID_CTOP_PRES_HGHT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Top Pressure or Height +displayUnitStr=SounderCloudTopHeightPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/ICE_CONC.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/ICE_CONC.attr new file mode 100644 index 0000000000..9efb75ca77 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/ICE_CONC.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice concentrations +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/ICE_EDGE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/ICE_EDGE.attr new file mode 100644 index 0000000000..9379c1e0de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/ICE_EDGE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice edge +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/ICE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/ICE_TYPE.attr new file mode 100644 index 0000000000..e8befd0987 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/ICE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/IMG_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/IMG_LIFTED_INDEX.attr new file mode 100644 index 0000000000..4ef5aa938c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/IMG_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/IMG_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/IMG_PRECIP_WATER.attr new file mode 100644 index 0000000000..646aeffd51 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/IMG_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Precipitable Water (PW) +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/IMG_SRFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/IMG_SRFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..bdd4ad59a5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/IMG_SRFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/IR.attr new file mode 100644 index 0000000000..ab8d27b7e8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/IR.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/IR13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/IR13.attr new file mode 100644 index 0000000000..43b1bf4b32 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/IR13.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 13 micron (IR) +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/LOW_CLOUD_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/LOW_CLOUD_IMG.attr new file mode 100644 index 0000000000..d7926c72dd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/LOW_CLOUD_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Low cloud base imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/MDPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/MDPI.attr new file mode 100644 index 0000000000..cef6535f0e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/MDPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Microburst Day Potential Index (MDPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/NORMAL_TPW_PERCENT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/NORMAL_TPW_PERCENT.attr new file mode 100644 index 0000000000..6bd99b6f42 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/NORMAL_TPW_PERCENT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Percent of Normal TPW +displayUnitStr=PercentOfNormalTPWPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/POLAR_3.7u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/POLAR_3.7u.attr new file mode 100644 index 0000000000..4d633f1530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/POLAR_3.7u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.7u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/POLAR_3.9u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/POLAR_3.9u.attr new file mode 100644 index 0000000000..06854db01e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/POLAR_3.9u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.9u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/POLAR_IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/POLAR_IR.attr new file mode 100644 index 0000000000..6a20f7d566 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/POLAR_IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/POLAR_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/POLAR_VIS.attr new file mode 100644 index 0000000000..d6578a334f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/POLAR_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar Vis +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/RAIN_RATE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/RAIN_RATE.attr new file mode 100644 index 0000000000..7305eb7685 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/RAIN_RATE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Rain fall rate +displayUnitStr=RainfallRatePixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SCATTEROMETER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SCATTEROMETER.attr new file mode 100644 index 0000000000..a05f578deb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SCATTEROMETER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Scatterometer Data +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SFC_WETNESS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SFC_WETNESS.attr new file mode 100644 index 0000000000..9753cf44db --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SFC_WETNESS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wetness +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SFC_WIND_SPD.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SFC_WIND_SPD.attr new file mode 100644 index 0000000000..04808eb1b9 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SFC_WIND_SPD.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wind speeds over oceans and Great Lakes +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_11.03.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_11.03.attr new file mode 100644 index 0000000000..547dd6e061 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_11.03.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 11.03 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_12.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_12.02.attr new file mode 100644 index 0000000000..244de73617 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_12.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_12.66.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_12.66.attr new file mode 100644 index 0000000000..462e666f93 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_12.66.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.66 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_13.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_13.37.attr new file mode 100644 index 0000000000..9cb1aa9c5e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_13.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_13.64.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_13.64.attr new file mode 100644 index 0000000000..9f58a6bac2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_13.64.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.64 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_14.06.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_14.06.attr new file mode 100644 index 0000000000..de2a6e2798 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_14.06.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.06 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_14.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_14.37.attr new file mode 100644 index 0000000000..da7800808b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_14.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_14.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_14.71.attr new file mode 100644 index 0000000000..b4f2c87ea2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_14.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_3.74.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_3.74.attr new file mode 100644 index 0000000000..4b0e26bda5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_3.74.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.74 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_3.98.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_3.98.attr new file mode 100644 index 0000000000..db0e925130 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_3.98.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.98 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_4.13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_4.13.attr new file mode 100644 index 0000000000..8e3484d48e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_4.13.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.13 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_4.45.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_4.45.attr new file mode 100644 index 0000000000..4f0b9bce68 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_4.45.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.45 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_4.52.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_4.52.attr new file mode 100644 index 0000000000..54e31f291f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_4.52.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.52 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_4.57.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_4.57.attr new file mode 100644 index 0000000000..f8c6a6c828 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_4.57.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.57 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_6.51.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_6.51.attr new file mode 100644 index 0000000000..de741eae3a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_6.51.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 6.51 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_7.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_7.02.attr new file mode 100644 index 0000000000..ed7f062cf5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_7.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_7.43.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_7.43.attr new file mode 100644 index 0000000000..748ac900d6 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_7.43.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.43 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_9.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_9.71.attr new file mode 100644 index 0000000000..29d901bdfd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_9.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 9.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_LIFTED_INDEX.attr new file mode 100644 index 0000000000..e2cf799bbf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_PRECIP_WATER.attr new file mode 100644 index 0000000000..2c88a0f5d8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Precipitable Water (PW) +displayUnitStr=SounderPrecipWaterPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_SFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_SFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..311972a597 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_SFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_VIS.attr new file mode 100644 index 0000000000..d99cea7530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SND_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Visible imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SNOW_IND.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SNOW_IND.attr new file mode 100644 index 0000000000..de51b42452 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SNOW_IND.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow indicator +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SNOW_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SNOW_WATER.attr new file mode 100644 index 0000000000..4eec894549 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SNOW_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow-water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SURFACE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SURFACE_TYPE.attr new file mode 100644 index 0000000000..0cc7cca419 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/SURFACE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/VIS.attr new file mode 100644 index 0000000000..56a43a4d7e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/VIS.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager Visible +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/WV.attr new file mode 100644 index 0000000000..e34cef65ef --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/WV.attr @@ -0,0 +1,8 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 6.7-6.5 micron IR (WV) +displayUnitStr=DerivedWVPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/default.attr new file mode 100644 index 0000000000..267d61ad67 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES11/default.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/CLOUD_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/CLOUD_WATER.attr new file mode 100644 index 0000000000..4e62b6105c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/CLOUD_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Cloud water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/DERIVED_CAPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/DERIVED_CAPE.attr new file mode 100644 index 0000000000..98ba73b6fb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/DERIVED_CAPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Available Potential Energy (CAPE) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/DERIVED_CONV_INH.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/DERIVED_CONV_INH.attr new file mode 100644 index 0000000000..57a4f38069 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/DERIVED_CONV_INH.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Inhibition +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/DERIVED_LAND_SEA_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/DERIVED_LAND_SEA_TEMP.attr new file mode 100644 index 0000000000..7a23e38f72 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/DERIVED_LAND_SEA_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived land-sea temp +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/DERIVED_VOLCANO_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/DERIVED_VOLCANO_IMG.attr new file mode 100644 index 0000000000..2229ec1825 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/DERIVED_VOLCANO_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Volcano Imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/DERIVED_WINDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/DERIVED_WINDEX.attr new file mode 100644 index 0000000000..089564cdb4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/DERIVED_WINDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Wind Index(WINDEX) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/DMPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/DMPI.attr new file mode 100644 index 0000000000..a899181e1c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/DMPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Dry Microburst Potential Index (DMPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/GINI_GOES12.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/GINI_GOES12.xml new file mode 100644 index 0000000000..e1103d4d1c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/GINI_GOES12.xml @@ -0,0 +1,23 @@ + + + true + GINI_GOES12 + SATELLITE + +! This must match the "creatingEntity" in the +! satellite DB table valid values are +pluginName=satellite +satelliteName=GOES-12(M) +legendColor=RGB {200, 200, 200} + + GOES,GINI + GiniSatellite + sectorID + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/GRID_CLOUD_AMT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/GRID_CLOUD_AMT.attr new file mode 100644 index 0000000000..8fd34efc0b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/GRID_CLOUD_AMT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Amount +displayUnitStr=SounderCloudAmountPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/GRID_CTOP_PRES_HGHT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/GRID_CTOP_PRES_HGHT.attr new file mode 100644 index 0000000000..1c64cd80c4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/GRID_CTOP_PRES_HGHT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Top Pressure or Height +displayUnitStr=SounderCloudTopHeightPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/ICE_CONC.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/ICE_CONC.attr new file mode 100644 index 0000000000..9efb75ca77 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/ICE_CONC.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice concentrations +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/ICE_EDGE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/ICE_EDGE.attr new file mode 100644 index 0000000000..9379c1e0de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/ICE_EDGE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice edge +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/ICE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/ICE_TYPE.attr new file mode 100644 index 0000000000..e8befd0987 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/ICE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/IMG_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/IMG_LIFTED_INDEX.attr new file mode 100644 index 0000000000..4ef5aa938c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/IMG_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/IMG_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/IMG_PRECIP_WATER.attr new file mode 100644 index 0000000000..646aeffd51 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/IMG_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Precipitable Water (PW) +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/IMG_SRFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/IMG_SRFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..bdd4ad59a5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/IMG_SRFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/IR.attr new file mode 100644 index 0000000000..ab8d27b7e8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/IR.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/IR13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/IR13.attr new file mode 100644 index 0000000000..43b1bf4b32 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/IR13.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 13 micron (IR) +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/LOW_CLOUD_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/LOW_CLOUD_IMG.attr new file mode 100644 index 0000000000..d7926c72dd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/LOW_CLOUD_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Low cloud base imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/MDPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/MDPI.attr new file mode 100644 index 0000000000..cef6535f0e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/MDPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Microburst Day Potential Index (MDPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/NORMAL_TPW_PERCENT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/NORMAL_TPW_PERCENT.attr new file mode 100644 index 0000000000..6bd99b6f42 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/NORMAL_TPW_PERCENT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Percent of Normal TPW +displayUnitStr=PercentOfNormalTPWPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/POLAR_3.7u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/POLAR_3.7u.attr new file mode 100644 index 0000000000..4d633f1530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/POLAR_3.7u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.7u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/POLAR_3.9u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/POLAR_3.9u.attr new file mode 100644 index 0000000000..06854db01e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/POLAR_3.9u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.9u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/POLAR_IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/POLAR_IR.attr new file mode 100644 index 0000000000..6a20f7d566 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/POLAR_IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/POLAR_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/POLAR_VIS.attr new file mode 100644 index 0000000000..d6578a334f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/POLAR_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar Vis +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/RAIN_RATE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/RAIN_RATE.attr new file mode 100644 index 0000000000..7305eb7685 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/RAIN_RATE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Rain fall rate +displayUnitStr=RainfallRatePixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SCATTEROMETER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SCATTEROMETER.attr new file mode 100644 index 0000000000..a05f578deb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SCATTEROMETER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Scatterometer Data +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SFC_WETNESS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SFC_WETNESS.attr new file mode 100644 index 0000000000..9753cf44db --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SFC_WETNESS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wetness +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SFC_WIND_SPD.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SFC_WIND_SPD.attr new file mode 100644 index 0000000000..04808eb1b9 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SFC_WIND_SPD.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wind speeds over oceans and Great Lakes +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_11.03.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_11.03.attr new file mode 100644 index 0000000000..547dd6e061 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_11.03.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 11.03 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_12.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_12.02.attr new file mode 100644 index 0000000000..244de73617 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_12.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_12.66.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_12.66.attr new file mode 100644 index 0000000000..462e666f93 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_12.66.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.66 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_13.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_13.37.attr new file mode 100644 index 0000000000..9cb1aa9c5e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_13.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_13.64.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_13.64.attr new file mode 100644 index 0000000000..9f58a6bac2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_13.64.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.64 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_14.06.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_14.06.attr new file mode 100644 index 0000000000..de2a6e2798 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_14.06.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.06 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_14.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_14.37.attr new file mode 100644 index 0000000000..da7800808b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_14.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_14.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_14.71.attr new file mode 100644 index 0000000000..b4f2c87ea2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_14.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_3.74.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_3.74.attr new file mode 100644 index 0000000000..4b0e26bda5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_3.74.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.74 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_3.98.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_3.98.attr new file mode 100644 index 0000000000..db0e925130 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_3.98.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.98 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_4.13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_4.13.attr new file mode 100644 index 0000000000..8e3484d48e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_4.13.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.13 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_4.45.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_4.45.attr new file mode 100644 index 0000000000..4f0b9bce68 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_4.45.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.45 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_4.52.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_4.52.attr new file mode 100644 index 0000000000..54e31f291f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_4.52.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.52 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_4.57.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_4.57.attr new file mode 100644 index 0000000000..f8c6a6c828 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_4.57.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.57 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_6.51.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_6.51.attr new file mode 100644 index 0000000000..de741eae3a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_6.51.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 6.51 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_7.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_7.02.attr new file mode 100644 index 0000000000..ed7f062cf5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_7.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_7.43.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_7.43.attr new file mode 100644 index 0000000000..748ac900d6 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_7.43.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.43 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_9.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_9.71.attr new file mode 100644 index 0000000000..29d901bdfd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_9.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 9.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_LIFTED_INDEX.attr new file mode 100644 index 0000000000..e2cf799bbf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_PRECIP_WATER.attr new file mode 100644 index 0000000000..2c88a0f5d8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Precipitable Water (PW) +displayUnitStr=SounderPrecipWaterPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_SFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_SFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..311972a597 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_SFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_VIS.attr new file mode 100644 index 0000000000..d99cea7530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SND_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Visible imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SNOW_IND.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SNOW_IND.attr new file mode 100644 index 0000000000..de51b42452 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SNOW_IND.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow indicator +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SNOW_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SNOW_WATER.attr new file mode 100644 index 0000000000..4eec894549 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SNOW_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow-water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SURFACE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SURFACE_TYPE.attr new file mode 100644 index 0000000000..0cc7cca419 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/SURFACE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/VIS.attr new file mode 100644 index 0000000000..56a43a4d7e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/VIS.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager Visible +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/WV.attr new file mode 100644 index 0000000000..e34cef65ef --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/WV.attr @@ -0,0 +1,8 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 6.7-6.5 micron IR (WV) +displayUnitStr=DerivedWVPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/default.attr new file mode 100644 index 0000000000..ab8d27b7e8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES12/default.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/CLOUD_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/CLOUD_WATER.attr new file mode 100644 index 0000000000..4e62b6105c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/CLOUD_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Cloud water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/DERIVED_CAPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/DERIVED_CAPE.attr new file mode 100644 index 0000000000..98ba73b6fb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/DERIVED_CAPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Available Potential Energy (CAPE) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/DERIVED_CONV_INH.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/DERIVED_CONV_INH.attr new file mode 100644 index 0000000000..57a4f38069 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/DERIVED_CONV_INH.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Inhibition +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/DERIVED_LAND_SEA_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/DERIVED_LAND_SEA_TEMP.attr new file mode 100644 index 0000000000..7a23e38f72 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/DERIVED_LAND_SEA_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived land-sea temp +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/DERIVED_VOLCANO_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/DERIVED_VOLCANO_IMG.attr new file mode 100644 index 0000000000..2229ec1825 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/DERIVED_VOLCANO_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Volcano Imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/DERIVED_WINDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/DERIVED_WINDEX.attr new file mode 100644 index 0000000000..089564cdb4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/DERIVED_WINDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Wind Index(WINDEX) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/DMPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/DMPI.attr new file mode 100644 index 0000000000..a899181e1c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/DMPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Dry Microburst Potential Index (DMPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/GINI_GOES13.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/GINI_GOES13.xml new file mode 100644 index 0000000000..2277ad120e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/GINI_GOES13.xml @@ -0,0 +1,23 @@ + + + true + GINI_GOES13 + SATELLITE + +! This must match the "creatingEntity" in the +! satellite DB table valid values are +pluginName=satellite +satelliteName=GOES-13(N) +legendColor=RGB {200, 200, 200} + + GOES,GINI + GiniSatellite + sectorID + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/GRID_CLOUD_AMT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/GRID_CLOUD_AMT.attr new file mode 100644 index 0000000000..8fd34efc0b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/GRID_CLOUD_AMT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Amount +displayUnitStr=SounderCloudAmountPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/GRID_CTOP_PRES_HGHT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/GRID_CTOP_PRES_HGHT.attr new file mode 100644 index 0000000000..1c64cd80c4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/GRID_CTOP_PRES_HGHT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Top Pressure or Height +displayUnitStr=SounderCloudTopHeightPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/ICE_CONC.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/ICE_CONC.attr new file mode 100644 index 0000000000..9efb75ca77 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/ICE_CONC.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice concentrations +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/ICE_EDGE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/ICE_EDGE.attr new file mode 100644 index 0000000000..9379c1e0de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/ICE_EDGE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice edge +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/ICE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/ICE_TYPE.attr new file mode 100644 index 0000000000..e8befd0987 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/ICE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/IMG_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/IMG_LIFTED_INDEX.attr new file mode 100644 index 0000000000..4ef5aa938c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/IMG_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/IMG_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/IMG_PRECIP_WATER.attr new file mode 100644 index 0000000000..646aeffd51 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/IMG_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Precipitable Water (PW) +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/IMG_SRFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/IMG_SRFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..bdd4ad59a5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/IMG_SRFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/IR.attr new file mode 100644 index 0000000000..ab8d27b7e8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/IR.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/IR13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/IR13.attr new file mode 100644 index 0000000000..43b1bf4b32 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/IR13.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 13 micron (IR) +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/LOW_CLOUD_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/LOW_CLOUD_IMG.attr new file mode 100644 index 0000000000..d7926c72dd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/LOW_CLOUD_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Low cloud base imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/MDPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/MDPI.attr new file mode 100644 index 0000000000..cef6535f0e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/MDPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Microburst Day Potential Index (MDPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/NORMAL_TPW_PERCENT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/NORMAL_TPW_PERCENT.attr new file mode 100644 index 0000000000..6bd99b6f42 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/NORMAL_TPW_PERCENT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Percent of Normal TPW +displayUnitStr=PercentOfNormalTPWPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/POLAR_3.7u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/POLAR_3.7u.attr new file mode 100644 index 0000000000..4d633f1530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/POLAR_3.7u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.7u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/POLAR_3.9u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/POLAR_3.9u.attr new file mode 100644 index 0000000000..06854db01e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/POLAR_3.9u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.9u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/POLAR_IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/POLAR_IR.attr new file mode 100644 index 0000000000..6a20f7d566 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/POLAR_IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/POLAR_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/POLAR_VIS.attr new file mode 100644 index 0000000000..d6578a334f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/POLAR_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar Vis +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/RAIN_RATE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/RAIN_RATE.attr new file mode 100644 index 0000000000..7305eb7685 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/RAIN_RATE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Rain fall rate +displayUnitStr=RainfallRatePixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SCATTEROMETER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SCATTEROMETER.attr new file mode 100644 index 0000000000..a05f578deb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SCATTEROMETER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Scatterometer Data +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SFC_WETNESS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SFC_WETNESS.attr new file mode 100644 index 0000000000..9753cf44db --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SFC_WETNESS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wetness +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SFC_WIND_SPD.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SFC_WIND_SPD.attr new file mode 100644 index 0000000000..04808eb1b9 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SFC_WIND_SPD.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wind speeds over oceans and Great Lakes +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_11.03.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_11.03.attr new file mode 100644 index 0000000000..547dd6e061 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_11.03.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 11.03 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_12.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_12.02.attr new file mode 100644 index 0000000000..244de73617 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_12.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_12.66.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_12.66.attr new file mode 100644 index 0000000000..462e666f93 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_12.66.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.66 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_13.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_13.37.attr new file mode 100644 index 0000000000..9cb1aa9c5e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_13.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_13.64.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_13.64.attr new file mode 100644 index 0000000000..9f58a6bac2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_13.64.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.64 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_14.06.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_14.06.attr new file mode 100644 index 0000000000..de2a6e2798 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_14.06.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.06 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_14.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_14.37.attr new file mode 100644 index 0000000000..da7800808b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_14.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_14.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_14.71.attr new file mode 100644 index 0000000000..b4f2c87ea2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_14.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_3.74.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_3.74.attr new file mode 100644 index 0000000000..4b0e26bda5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_3.74.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.74 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_3.98.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_3.98.attr new file mode 100644 index 0000000000..db0e925130 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_3.98.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.98 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_4.13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_4.13.attr new file mode 100644 index 0000000000..8e3484d48e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_4.13.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.13 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_4.45.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_4.45.attr new file mode 100644 index 0000000000..4f0b9bce68 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_4.45.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.45 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_4.52.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_4.52.attr new file mode 100644 index 0000000000..54e31f291f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_4.52.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.52 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_4.57.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_4.57.attr new file mode 100644 index 0000000000..f8c6a6c828 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_4.57.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.57 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_6.51.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_6.51.attr new file mode 100644 index 0000000000..de741eae3a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_6.51.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 6.51 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_7.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_7.02.attr new file mode 100644 index 0000000000..ed7f062cf5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_7.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_7.43.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_7.43.attr new file mode 100644 index 0000000000..748ac900d6 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_7.43.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.43 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_9.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_9.71.attr new file mode 100644 index 0000000000..29d901bdfd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_9.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 9.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_LIFTED_INDEX.attr new file mode 100644 index 0000000000..e2cf799bbf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_PRECIP_WATER.attr new file mode 100644 index 0000000000..2c88a0f5d8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Precipitable Water (PW) +displayUnitStr=SounderPrecipWaterPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_SFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_SFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..311972a597 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_SFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_VIS.attr new file mode 100644 index 0000000000..d99cea7530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SND_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Visible imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SNOW_IND.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SNOW_IND.attr new file mode 100644 index 0000000000..de51b42452 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SNOW_IND.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow indicator +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SNOW_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SNOW_WATER.attr new file mode 100644 index 0000000000..4eec894549 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SNOW_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow-water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SURFACE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SURFACE_TYPE.attr new file mode 100644 index 0000000000..0cc7cca419 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/SURFACE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/VIS.attr new file mode 100644 index 0000000000..56a43a4d7e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/VIS.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager Visible +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/WV.attr new file mode 100644 index 0000000000..e34cef65ef --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/WV.attr @@ -0,0 +1,8 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 6.7-6.5 micron IR (WV) +displayUnitStr=DerivedWVPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/default.attr new file mode 100644 index 0000000000..267d61ad67 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES13/default.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/CLOUD_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/CLOUD_WATER.attr new file mode 100644 index 0000000000..4e62b6105c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/CLOUD_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Cloud water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/DERIVED_CAPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/DERIVED_CAPE.attr new file mode 100644 index 0000000000..98ba73b6fb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/DERIVED_CAPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Available Potential Energy (CAPE) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/DERIVED_CONV_INH.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/DERIVED_CONV_INH.attr new file mode 100644 index 0000000000..57a4f38069 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/DERIVED_CONV_INH.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Inhibition +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/DERIVED_LAND_SEA_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/DERIVED_LAND_SEA_TEMP.attr new file mode 100644 index 0000000000..7a23e38f72 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/DERIVED_LAND_SEA_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived land-sea temp +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/DERIVED_VOLCANO_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/DERIVED_VOLCANO_IMG.attr new file mode 100644 index 0000000000..2229ec1825 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/DERIVED_VOLCANO_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Volcano Imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/DERIVED_WINDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/DERIVED_WINDEX.attr new file mode 100644 index 0000000000..089564cdb4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/DERIVED_WINDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Wind Index(WINDEX) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/DMPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/DMPI.attr new file mode 100644 index 0000000000..a899181e1c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/DMPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Dry Microburst Potential Index (DMPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/GINI_GOES7.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/GINI_GOES7.xml new file mode 100644 index 0000000000..bf91194161 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/GINI_GOES7.xml @@ -0,0 +1,23 @@ + + + true + GINI_GOES7 + SATELLITE + +! This must match the "creatingEntity" in the +! satellite DB table valid values are +pluginName=satellite +satelliteName=GOES-7(H) +legendColor=RGB {200, 200, 200} + + GOES,GINI + GiniSatellite + sectorID + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/GRID_CLOUD_AMT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/GRID_CLOUD_AMT.attr new file mode 100644 index 0000000000..8fd34efc0b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/GRID_CLOUD_AMT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Amount +displayUnitStr=SounderCloudAmountPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/GRID_CTOP_PRES_HGHT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/GRID_CTOP_PRES_HGHT.attr new file mode 100644 index 0000000000..1c64cd80c4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/GRID_CTOP_PRES_HGHT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Top Pressure or Height +displayUnitStr=SounderCloudTopHeightPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/ICE_CONC.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/ICE_CONC.attr new file mode 100644 index 0000000000..9efb75ca77 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/ICE_CONC.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice concentrations +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/ICE_EDGE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/ICE_EDGE.attr new file mode 100644 index 0000000000..9379c1e0de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/ICE_EDGE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice edge +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/ICE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/ICE_TYPE.attr new file mode 100644 index 0000000000..e8befd0987 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/ICE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/IMG_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/IMG_LIFTED_INDEX.attr new file mode 100644 index 0000000000..4ef5aa938c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/IMG_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/IMG_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/IMG_PRECIP_WATER.attr new file mode 100644 index 0000000000..646aeffd51 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/IMG_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Precipitable Water (PW) +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/IMG_SRFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/IMG_SRFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..bdd4ad59a5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/IMG_SRFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/IR.attr new file mode 100644 index 0000000000..ab8d27b7e8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/IR.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/IR13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/IR13.attr new file mode 100644 index 0000000000..43b1bf4b32 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/IR13.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 13 micron (IR) +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/LOW_CLOUD_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/LOW_CLOUD_IMG.attr new file mode 100644 index 0000000000..d7926c72dd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/LOW_CLOUD_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Low cloud base imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/MDPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/MDPI.attr new file mode 100644 index 0000000000..cef6535f0e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/MDPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Microburst Day Potential Index (MDPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/NORMAL_TPW_PERCENT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/NORMAL_TPW_PERCENT.attr new file mode 100644 index 0000000000..6bd99b6f42 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/NORMAL_TPW_PERCENT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Percent of Normal TPW +displayUnitStr=PercentOfNormalTPWPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/POLAR_3.7u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/POLAR_3.7u.attr new file mode 100644 index 0000000000..4d633f1530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/POLAR_3.7u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.7u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/POLAR_3.9u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/POLAR_3.9u.attr new file mode 100644 index 0000000000..06854db01e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/POLAR_3.9u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.9u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/POLAR_IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/POLAR_IR.attr new file mode 100644 index 0000000000..6a20f7d566 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/POLAR_IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/POLAR_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/POLAR_VIS.attr new file mode 100644 index 0000000000..d6578a334f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/POLAR_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar Vis +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/RAIN_RATE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/RAIN_RATE.attr new file mode 100644 index 0000000000..7305eb7685 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/RAIN_RATE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Rain fall rate +displayUnitStr=RainfallRatePixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SCATTEROMETER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SCATTEROMETER.attr new file mode 100644 index 0000000000..a05f578deb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SCATTEROMETER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Scatterometer Data +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SFC_WETNESS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SFC_WETNESS.attr new file mode 100644 index 0000000000..9753cf44db --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SFC_WETNESS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wetness +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SFC_WIND_SPD.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SFC_WIND_SPD.attr new file mode 100644 index 0000000000..04808eb1b9 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SFC_WIND_SPD.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wind speeds over oceans and Great Lakes +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_11.03.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_11.03.attr new file mode 100644 index 0000000000..547dd6e061 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_11.03.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 11.03 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_12.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_12.02.attr new file mode 100644 index 0000000000..244de73617 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_12.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_12.66.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_12.66.attr new file mode 100644 index 0000000000..462e666f93 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_12.66.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.66 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_13.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_13.37.attr new file mode 100644 index 0000000000..9cb1aa9c5e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_13.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_13.64.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_13.64.attr new file mode 100644 index 0000000000..9f58a6bac2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_13.64.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.64 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_14.06.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_14.06.attr new file mode 100644 index 0000000000..de2a6e2798 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_14.06.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.06 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_14.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_14.37.attr new file mode 100644 index 0000000000..da7800808b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_14.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_14.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_14.71.attr new file mode 100644 index 0000000000..b4f2c87ea2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_14.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_3.74.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_3.74.attr new file mode 100644 index 0000000000..4b0e26bda5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_3.74.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.74 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_3.98.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_3.98.attr new file mode 100644 index 0000000000..db0e925130 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_3.98.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.98 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_4.13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_4.13.attr new file mode 100644 index 0000000000..8e3484d48e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_4.13.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.13 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_4.45.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_4.45.attr new file mode 100644 index 0000000000..4f0b9bce68 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_4.45.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.45 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_4.52.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_4.52.attr new file mode 100644 index 0000000000..54e31f291f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_4.52.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.52 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_4.57.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_4.57.attr new file mode 100644 index 0000000000..f8c6a6c828 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_4.57.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.57 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_6.51.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_6.51.attr new file mode 100644 index 0000000000..de741eae3a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_6.51.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 6.51 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_7.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_7.02.attr new file mode 100644 index 0000000000..ed7f062cf5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_7.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_7.43.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_7.43.attr new file mode 100644 index 0000000000..748ac900d6 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_7.43.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.43 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_9.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_9.71.attr new file mode 100644 index 0000000000..29d901bdfd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_9.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 9.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_LIFTED_INDEX.attr new file mode 100644 index 0000000000..e2cf799bbf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_PRECIP_WATER.attr new file mode 100644 index 0000000000..2c88a0f5d8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Precipitable Water (PW) +displayUnitStr=SounderPrecipWaterPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_SFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_SFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..311972a597 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_SFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_VIS.attr new file mode 100644 index 0000000000..d99cea7530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SND_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Visible imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SNOW_IND.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SNOW_IND.attr new file mode 100644 index 0000000000..de51b42452 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SNOW_IND.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow indicator +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SNOW_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SNOW_WATER.attr new file mode 100644 index 0000000000..4eec894549 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SNOW_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow-water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SURFACE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SURFACE_TYPE.attr new file mode 100644 index 0000000000..0cc7cca419 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/SURFACE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/VIS.attr new file mode 100644 index 0000000000..56a43a4d7e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/VIS.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager Visible +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/WV.attr new file mode 100644 index 0000000000..e34cef65ef --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/WV.attr @@ -0,0 +1,8 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 6.7-6.5 micron IR (WV) +displayUnitStr=DerivedWVPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/default.attr new file mode 100644 index 0000000000..267d61ad67 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES7/default.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/CLOUD_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/CLOUD_WATER.attr new file mode 100644 index 0000000000..4e62b6105c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/CLOUD_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Cloud water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/DERIVED_CAPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/DERIVED_CAPE.attr new file mode 100644 index 0000000000..98ba73b6fb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/DERIVED_CAPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Available Potential Energy (CAPE) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/DERIVED_CONV_INH.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/DERIVED_CONV_INH.attr new file mode 100644 index 0000000000..57a4f38069 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/DERIVED_CONV_INH.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Inhibition +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/DERIVED_LAND_SEA_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/DERIVED_LAND_SEA_TEMP.attr new file mode 100644 index 0000000000..7a23e38f72 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/DERIVED_LAND_SEA_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived land-sea temp +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/DERIVED_VOLCANO_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/DERIVED_VOLCANO_IMG.attr new file mode 100644 index 0000000000..2229ec1825 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/DERIVED_VOLCANO_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Volcano Imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/DERIVED_WINDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/DERIVED_WINDEX.attr new file mode 100644 index 0000000000..089564cdb4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/DERIVED_WINDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Wind Index(WINDEX) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/DMPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/DMPI.attr new file mode 100644 index 0000000000..a899181e1c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/DMPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Dry Microburst Potential Index (DMPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/GINI_GOES8.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/GINI_GOES8.xml new file mode 100644 index 0000000000..090ec2cdf1 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/GINI_GOES8.xml @@ -0,0 +1,23 @@ + + + true + GINI_GOES8 + SATELLITE + +! This must match the "creatingEntity" in the +! satellite DB table valid values are +pluginName=satellite +satelliteName=GOES-8(I) +legendColor=RGB {200, 200, 200} + + GOES,GINI + GiniSatellite + sectorID + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/GRID_CLOUD_AMT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/GRID_CLOUD_AMT.attr new file mode 100644 index 0000000000..8fd34efc0b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/GRID_CLOUD_AMT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Amount +displayUnitStr=SounderCloudAmountPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/GRID_CTOP_PRES_HGHT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/GRID_CTOP_PRES_HGHT.attr new file mode 100644 index 0000000000..1c64cd80c4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/GRID_CTOP_PRES_HGHT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Top Pressure or Height +displayUnitStr=SounderCloudTopHeightPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/ICE_CONC.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/ICE_CONC.attr new file mode 100644 index 0000000000..9efb75ca77 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/ICE_CONC.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice concentrations +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/ICE_EDGE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/ICE_EDGE.attr new file mode 100644 index 0000000000..9379c1e0de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/ICE_EDGE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice edge +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/ICE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/ICE_TYPE.attr new file mode 100644 index 0000000000..e8befd0987 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/ICE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/IMG_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/IMG_LIFTED_INDEX.attr new file mode 100644 index 0000000000..4ef5aa938c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/IMG_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/IMG_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/IMG_PRECIP_WATER.attr new file mode 100644 index 0000000000..646aeffd51 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/IMG_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Precipitable Water (PW) +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/IMG_SRFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/IMG_SRFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..bdd4ad59a5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/IMG_SRFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/IR.attr new file mode 100644 index 0000000000..ab8d27b7e8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/IR.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/IR13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/IR13.attr new file mode 100644 index 0000000000..43b1bf4b32 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/IR13.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 13 micron (IR) +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/LOW_CLOUD_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/LOW_CLOUD_IMG.attr new file mode 100644 index 0000000000..d7926c72dd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/LOW_CLOUD_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Low cloud base imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/MDPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/MDPI.attr new file mode 100644 index 0000000000..cef6535f0e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/MDPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Microburst Day Potential Index (MDPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/NORMAL_TPW_PERCENT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/NORMAL_TPW_PERCENT.attr new file mode 100644 index 0000000000..6bd99b6f42 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/NORMAL_TPW_PERCENT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Percent of Normal TPW +displayUnitStr=PercentOfNormalTPWPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/POLAR_3.7u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/POLAR_3.7u.attr new file mode 100644 index 0000000000..4d633f1530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/POLAR_3.7u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.7u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/POLAR_3.9u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/POLAR_3.9u.attr new file mode 100644 index 0000000000..06854db01e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/POLAR_3.9u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.9u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/POLAR_IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/POLAR_IR.attr new file mode 100644 index 0000000000..6a20f7d566 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/POLAR_IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/POLAR_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/POLAR_VIS.attr new file mode 100644 index 0000000000..d6578a334f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/POLAR_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar Vis +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/RAIN_RATE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/RAIN_RATE.attr new file mode 100644 index 0000000000..7305eb7685 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/RAIN_RATE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Rain fall rate +displayUnitStr=RainfallRatePixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SCATTEROMETER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SCATTEROMETER.attr new file mode 100644 index 0000000000..a05f578deb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SCATTEROMETER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Scatterometer Data +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SFC_WETNESS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SFC_WETNESS.attr new file mode 100644 index 0000000000..9753cf44db --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SFC_WETNESS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wetness +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SFC_WIND_SPD.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SFC_WIND_SPD.attr new file mode 100644 index 0000000000..04808eb1b9 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SFC_WIND_SPD.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wind speeds over oceans and Great Lakes +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_11.03.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_11.03.attr new file mode 100644 index 0000000000..547dd6e061 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_11.03.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 11.03 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_12.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_12.02.attr new file mode 100644 index 0000000000..244de73617 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_12.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_12.66.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_12.66.attr new file mode 100644 index 0000000000..462e666f93 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_12.66.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.66 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_13.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_13.37.attr new file mode 100644 index 0000000000..9cb1aa9c5e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_13.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_13.64.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_13.64.attr new file mode 100644 index 0000000000..9f58a6bac2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_13.64.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.64 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_14.06.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_14.06.attr new file mode 100644 index 0000000000..de2a6e2798 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_14.06.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.06 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_14.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_14.37.attr new file mode 100644 index 0000000000..da7800808b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_14.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_14.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_14.71.attr new file mode 100644 index 0000000000..b4f2c87ea2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_14.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_3.74.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_3.74.attr new file mode 100644 index 0000000000..4b0e26bda5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_3.74.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.74 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_3.98.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_3.98.attr new file mode 100644 index 0000000000..db0e925130 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_3.98.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.98 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_4.13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_4.13.attr new file mode 100644 index 0000000000..8e3484d48e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_4.13.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.13 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_4.45.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_4.45.attr new file mode 100644 index 0000000000..4f0b9bce68 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_4.45.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.45 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_4.52.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_4.52.attr new file mode 100644 index 0000000000..54e31f291f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_4.52.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.52 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_4.57.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_4.57.attr new file mode 100644 index 0000000000..f8c6a6c828 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_4.57.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.57 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_6.51.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_6.51.attr new file mode 100644 index 0000000000..de741eae3a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_6.51.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 6.51 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_7.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_7.02.attr new file mode 100644 index 0000000000..ed7f062cf5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_7.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_7.43.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_7.43.attr new file mode 100644 index 0000000000..748ac900d6 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_7.43.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.43 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_9.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_9.71.attr new file mode 100644 index 0000000000..29d901bdfd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_9.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 9.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_LIFTED_INDEX.attr new file mode 100644 index 0000000000..e2cf799bbf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_PRECIP_WATER.attr new file mode 100644 index 0000000000..2c88a0f5d8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Precipitable Water (PW) +displayUnitStr=SounderPrecipWaterPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_SFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_SFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..311972a597 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_SFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_VIS.attr new file mode 100644 index 0000000000..d99cea7530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SND_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Visible imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SNOW_IND.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SNOW_IND.attr new file mode 100644 index 0000000000..de51b42452 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SNOW_IND.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow indicator +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SNOW_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SNOW_WATER.attr new file mode 100644 index 0000000000..4eec894549 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SNOW_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow-water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SURFACE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SURFACE_TYPE.attr new file mode 100644 index 0000000000..0cc7cca419 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/SURFACE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/VIS.attr new file mode 100644 index 0000000000..56a43a4d7e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/VIS.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager Visible +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/WV.attr new file mode 100644 index 0000000000..e34cef65ef --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/WV.attr @@ -0,0 +1,8 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 6.7-6.5 micron IR (WV) +displayUnitStr=DerivedWVPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/default.attr new file mode 100644 index 0000000000..267d61ad67 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES8/default.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/CLOUD_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/CLOUD_WATER.attr new file mode 100644 index 0000000000..4e62b6105c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/CLOUD_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Cloud water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/DERIVED_CAPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/DERIVED_CAPE.attr new file mode 100644 index 0000000000..98ba73b6fb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/DERIVED_CAPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Available Potential Energy (CAPE) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/DERIVED_CONV_INH.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/DERIVED_CONV_INH.attr new file mode 100644 index 0000000000..57a4f38069 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/DERIVED_CONV_INH.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Inhibition +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/DERIVED_LAND_SEA_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/DERIVED_LAND_SEA_TEMP.attr new file mode 100644 index 0000000000..7a23e38f72 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/DERIVED_LAND_SEA_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived land-sea temp +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/DERIVED_VOLCANO_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/DERIVED_VOLCANO_IMG.attr new file mode 100644 index 0000000000..2229ec1825 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/DERIVED_VOLCANO_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Volcano Imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/DERIVED_WINDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/DERIVED_WINDEX.attr new file mode 100644 index 0000000000..089564cdb4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/DERIVED_WINDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Wind Index(WINDEX) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/DMPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/DMPI.attr new file mode 100644 index 0000000000..a899181e1c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/DMPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Dry Microburst Potential Index (DMPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/GINI_GOES9.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/GINI_GOES9.xml new file mode 100644 index 0000000000..fb21115544 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/GINI_GOES9.xml @@ -0,0 +1,23 @@ + + + true + GINI_GOES9 + SATELLITE + +! This must match the "creatingEntity" in the +! satellite DB table valid values are +pluginName=satellite +satelliteName=GOES-9(J) +legendColor=RGB {200, 200, 200} + + GOES,GINI + GiniSatellite + sectorID + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/GRID_CLOUD_AMT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/GRID_CLOUD_AMT.attr new file mode 100644 index 0000000000..8fd34efc0b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/GRID_CLOUD_AMT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Amount +displayUnitStr=SounderCloudAmountPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/GRID_CTOP_PRES_HGHT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/GRID_CTOP_PRES_HGHT.attr new file mode 100644 index 0000000000..1c64cd80c4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/GRID_CTOP_PRES_HGHT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Top Pressure or Height +displayUnitStr=SounderCloudTopHeightPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/ICE_CONC.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/ICE_CONC.attr new file mode 100644 index 0000000000..9efb75ca77 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/ICE_CONC.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice concentrations +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/ICE_EDGE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/ICE_EDGE.attr new file mode 100644 index 0000000000..9379c1e0de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/ICE_EDGE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice edge +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/ICE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/ICE_TYPE.attr new file mode 100644 index 0000000000..e8befd0987 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/ICE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/IMG_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/IMG_LIFTED_INDEX.attr new file mode 100644 index 0000000000..4ef5aa938c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/IMG_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/IMG_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/IMG_PRECIP_WATER.attr new file mode 100644 index 0000000000..646aeffd51 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/IMG_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Precipitable Water (PW) +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/IMG_SRFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/IMG_SRFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..bdd4ad59a5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/IMG_SRFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/IR.attr new file mode 100644 index 0000000000..ab8d27b7e8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/IR.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/IR13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/IR13.attr new file mode 100644 index 0000000000..43b1bf4b32 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/IR13.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 13 micron (IR) +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/LOW_CLOUD_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/LOW_CLOUD_IMG.attr new file mode 100644 index 0000000000..d7926c72dd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/LOW_CLOUD_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Low cloud base imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/MDPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/MDPI.attr new file mode 100644 index 0000000000..cef6535f0e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/MDPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Microburst Day Potential Index (MDPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/NORMAL_TPW_PERCENT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/NORMAL_TPW_PERCENT.attr new file mode 100644 index 0000000000..6bd99b6f42 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/NORMAL_TPW_PERCENT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Percent of Normal TPW +displayUnitStr=PercentOfNormalTPWPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/POLAR_3.7u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/POLAR_3.7u.attr new file mode 100644 index 0000000000..4d633f1530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/POLAR_3.7u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.7u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/POLAR_3.9u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/POLAR_3.9u.attr new file mode 100644 index 0000000000..06854db01e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/POLAR_3.9u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.9u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/POLAR_IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/POLAR_IR.attr new file mode 100644 index 0000000000..6a20f7d566 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/POLAR_IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/POLAR_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/POLAR_VIS.attr new file mode 100644 index 0000000000..d6578a334f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/POLAR_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar Vis +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/RAIN_RATE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/RAIN_RATE.attr new file mode 100644 index 0000000000..7305eb7685 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/RAIN_RATE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Rain fall rate +displayUnitStr=RainfallRatePixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SCATTEROMETER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SCATTEROMETER.attr new file mode 100644 index 0000000000..a05f578deb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SCATTEROMETER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Scatterometer Data +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SFC_WETNESS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SFC_WETNESS.attr new file mode 100644 index 0000000000..9753cf44db --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SFC_WETNESS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wetness +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SFC_WIND_SPD.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SFC_WIND_SPD.attr new file mode 100644 index 0000000000..04808eb1b9 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SFC_WIND_SPD.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wind speeds over oceans and Great Lakes +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_11.03.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_11.03.attr new file mode 100644 index 0000000000..547dd6e061 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_11.03.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 11.03 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_12.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_12.02.attr new file mode 100644 index 0000000000..244de73617 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_12.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_12.66.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_12.66.attr new file mode 100644 index 0000000000..462e666f93 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_12.66.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.66 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_13.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_13.37.attr new file mode 100644 index 0000000000..9cb1aa9c5e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_13.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_13.64.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_13.64.attr new file mode 100644 index 0000000000..9f58a6bac2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_13.64.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.64 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_14.06.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_14.06.attr new file mode 100644 index 0000000000..de2a6e2798 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_14.06.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.06 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_14.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_14.37.attr new file mode 100644 index 0000000000..da7800808b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_14.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_14.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_14.71.attr new file mode 100644 index 0000000000..b4f2c87ea2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_14.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_3.74.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_3.74.attr new file mode 100644 index 0000000000..4b0e26bda5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_3.74.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.74 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_3.98.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_3.98.attr new file mode 100644 index 0000000000..db0e925130 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_3.98.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.98 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_4.13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_4.13.attr new file mode 100644 index 0000000000..8e3484d48e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_4.13.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.13 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_4.45.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_4.45.attr new file mode 100644 index 0000000000..4f0b9bce68 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_4.45.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.45 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_4.52.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_4.52.attr new file mode 100644 index 0000000000..54e31f291f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_4.52.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.52 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_4.57.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_4.57.attr new file mode 100644 index 0000000000..f8c6a6c828 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_4.57.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.57 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_6.51.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_6.51.attr new file mode 100644 index 0000000000..de741eae3a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_6.51.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 6.51 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_7.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_7.02.attr new file mode 100644 index 0000000000..ed7f062cf5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_7.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_7.43.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_7.43.attr new file mode 100644 index 0000000000..748ac900d6 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_7.43.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.43 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_9.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_9.71.attr new file mode 100644 index 0000000000..29d901bdfd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_9.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 9.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_LIFTED_INDEX.attr new file mode 100644 index 0000000000..e2cf799bbf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_PRECIP_WATER.attr new file mode 100644 index 0000000000..2c88a0f5d8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Precipitable Water (PW) +displayUnitStr=SounderPrecipWaterPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_SFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_SFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..311972a597 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_SFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_VIS.attr new file mode 100644 index 0000000000..d99cea7530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SND_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Visible imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SNOW_IND.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SNOW_IND.attr new file mode 100644 index 0000000000..de51b42452 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SNOW_IND.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow indicator +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SNOW_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SNOW_WATER.attr new file mode 100644 index 0000000000..4eec894549 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SNOW_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow-water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SURFACE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SURFACE_TYPE.attr new file mode 100644 index 0000000000..0cc7cca419 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/SURFACE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/VIS.attr new file mode 100644 index 0000000000..56a43a4d7e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/VIS.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager Visible +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/WV.attr new file mode 100644 index 0000000000..e34cef65ef --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/WV.attr @@ -0,0 +1,8 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 6.7-6.5 micron IR (WV) +displayUnitStr=DerivedWVPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/default.attr new file mode 100644 index 0000000000..267d61ad67 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_GOES9/default.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/CLOUD_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/CLOUD_WATER.attr new file mode 100644 index 0000000000..4e62b6105c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/CLOUD_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Cloud water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/DERIVED_CAPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/DERIVED_CAPE.attr new file mode 100644 index 0000000000..98ba73b6fb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/DERIVED_CAPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Available Potential Energy (CAPE) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/DERIVED_CONV_INH.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/DERIVED_CONV_INH.attr new file mode 100644 index 0000000000..57a4f38069 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/DERIVED_CONV_INH.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Inhibition +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/DERIVED_LAND_SEA_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/DERIVED_LAND_SEA_TEMP.attr new file mode 100644 index 0000000000..7a23e38f72 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/DERIVED_LAND_SEA_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived land-sea temp +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/DERIVED_VOLCANO_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/DERIVED_VOLCANO_IMG.attr new file mode 100644 index 0000000000..2229ec1825 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/DERIVED_VOLCANO_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Volcano Imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/DERIVED_WINDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/DERIVED_WINDEX.attr new file mode 100644 index 0000000000..089564cdb4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/DERIVED_WINDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Wind Index(WINDEX) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/DMPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/DMPI.attr new file mode 100644 index 0000000000..a899181e1c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/DMPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Dry Microburst Potential Index (DMPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/GINI_JERS.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/GINI_JERS.xml new file mode 100644 index 0000000000..6d999e82a5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/GINI_JERS.xml @@ -0,0 +1,23 @@ + + + true + GINI_JERS + SATELLITE + +! This must match the "creatingEntity" in the +! satellite DB table valid values are +pluginName=satellite +satelliteName=JERS +legendColor=RGB {200, 200, 200} + + GINI + GiniSatellite + sectorID + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/GRID_CLOUD_AMT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/GRID_CLOUD_AMT.attr new file mode 100644 index 0000000000..8fd34efc0b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/GRID_CLOUD_AMT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Amount +displayUnitStr=SounderCloudAmountPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/GRID_CTOP_PRES_HGHT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/GRID_CTOP_PRES_HGHT.attr new file mode 100644 index 0000000000..1c64cd80c4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/GRID_CTOP_PRES_HGHT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Top Pressure or Height +displayUnitStr=SounderCloudTopHeightPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/ICE_CONC.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/ICE_CONC.attr new file mode 100644 index 0000000000..9efb75ca77 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/ICE_CONC.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice concentrations +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/ICE_EDGE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/ICE_EDGE.attr new file mode 100644 index 0000000000..9379c1e0de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/ICE_EDGE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice edge +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/ICE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/ICE_TYPE.attr new file mode 100644 index 0000000000..e8befd0987 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/ICE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/IMG_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/IMG_LIFTED_INDEX.attr new file mode 100644 index 0000000000..4ef5aa938c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/IMG_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/IMG_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/IMG_PRECIP_WATER.attr new file mode 100644 index 0000000000..646aeffd51 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/IMG_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Precipitable Water (PW) +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/IMG_SRFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/IMG_SRFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..bdd4ad59a5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/IMG_SRFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/IR.attr new file mode 100644 index 0000000000..ab8d27b7e8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/IR.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/IR13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/IR13.attr new file mode 100644 index 0000000000..43b1bf4b32 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/IR13.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 13 micron (IR) +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/LOW_CLOUD_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/LOW_CLOUD_IMG.attr new file mode 100644 index 0000000000..d7926c72dd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/LOW_CLOUD_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Low cloud base imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/MDPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/MDPI.attr new file mode 100644 index 0000000000..cef6535f0e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/MDPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Microburst Day Potential Index (MDPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/NORMAL_TPW_PERCENT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/NORMAL_TPW_PERCENT.attr new file mode 100644 index 0000000000..6bd99b6f42 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/NORMAL_TPW_PERCENT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Percent of Normal TPW +displayUnitStr=PercentOfNormalTPWPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/POLAR_3.7u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/POLAR_3.7u.attr new file mode 100644 index 0000000000..4d633f1530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/POLAR_3.7u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.7u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/POLAR_3.9u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/POLAR_3.9u.attr new file mode 100644 index 0000000000..06854db01e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/POLAR_3.9u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.9u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/POLAR_IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/POLAR_IR.attr new file mode 100644 index 0000000000..6a20f7d566 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/POLAR_IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/POLAR_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/POLAR_VIS.attr new file mode 100644 index 0000000000..d6578a334f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/POLAR_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar Vis +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/RAIN_RATE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/RAIN_RATE.attr new file mode 100644 index 0000000000..7305eb7685 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/RAIN_RATE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Rain fall rate +displayUnitStr=RainfallRatePixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SCATTEROMETER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SCATTEROMETER.attr new file mode 100644 index 0000000000..a05f578deb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SCATTEROMETER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Scatterometer Data +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SFC_WETNESS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SFC_WETNESS.attr new file mode 100644 index 0000000000..9753cf44db --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SFC_WETNESS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wetness +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SFC_WIND_SPD.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SFC_WIND_SPD.attr new file mode 100644 index 0000000000..04808eb1b9 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SFC_WIND_SPD.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wind speeds over oceans and Great Lakes +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_11.03.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_11.03.attr new file mode 100644 index 0000000000..547dd6e061 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_11.03.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 11.03 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_12.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_12.02.attr new file mode 100644 index 0000000000..244de73617 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_12.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_12.66.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_12.66.attr new file mode 100644 index 0000000000..462e666f93 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_12.66.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.66 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_13.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_13.37.attr new file mode 100644 index 0000000000..9cb1aa9c5e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_13.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_13.64.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_13.64.attr new file mode 100644 index 0000000000..9f58a6bac2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_13.64.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.64 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_14.06.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_14.06.attr new file mode 100644 index 0000000000..de2a6e2798 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_14.06.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.06 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_14.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_14.37.attr new file mode 100644 index 0000000000..da7800808b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_14.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_14.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_14.71.attr new file mode 100644 index 0000000000..b4f2c87ea2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_14.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_3.74.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_3.74.attr new file mode 100644 index 0000000000..4b0e26bda5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_3.74.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.74 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_3.98.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_3.98.attr new file mode 100644 index 0000000000..db0e925130 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_3.98.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.98 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_4.13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_4.13.attr new file mode 100644 index 0000000000..8e3484d48e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_4.13.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.13 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_4.45.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_4.45.attr new file mode 100644 index 0000000000..4f0b9bce68 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_4.45.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.45 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_4.52.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_4.52.attr new file mode 100644 index 0000000000..54e31f291f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_4.52.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.52 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_4.57.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_4.57.attr new file mode 100644 index 0000000000..f8c6a6c828 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_4.57.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.57 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_6.51.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_6.51.attr new file mode 100644 index 0000000000..de741eae3a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_6.51.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 6.51 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_7.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_7.02.attr new file mode 100644 index 0000000000..ed7f062cf5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_7.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_7.43.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_7.43.attr new file mode 100644 index 0000000000..748ac900d6 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_7.43.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.43 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_9.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_9.71.attr new file mode 100644 index 0000000000..29d901bdfd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_9.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 9.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_LIFTED_INDEX.attr new file mode 100644 index 0000000000..e2cf799bbf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_PRECIP_WATER.attr new file mode 100644 index 0000000000..2c88a0f5d8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Precipitable Water (PW) +displayUnitStr=SounderPrecipWaterPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_SFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_SFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..311972a597 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_SFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_VIS.attr new file mode 100644 index 0000000000..d99cea7530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SND_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Visible imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SNOW_IND.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SNOW_IND.attr new file mode 100644 index 0000000000..de51b42452 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SNOW_IND.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow indicator +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SNOW_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SNOW_WATER.attr new file mode 100644 index 0000000000..4eec894549 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SNOW_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow-water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SURFACE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SURFACE_TYPE.attr new file mode 100644 index 0000000000..0cc7cca419 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/SURFACE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/VIS.attr new file mode 100644 index 0000000000..56a43a4d7e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/VIS.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager Visible +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/WV.attr new file mode 100644 index 0000000000..e34cef65ef --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/WV.attr @@ -0,0 +1,8 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 6.7-6.5 micron IR (WV) +displayUnitStr=DerivedWVPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/default.attr new file mode 100644 index 0000000000..267d61ad67 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_JERS/default.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/CLOUD_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/CLOUD_WATER.attr new file mode 100644 index 0000000000..4e62b6105c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/CLOUD_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Cloud water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/DERIVED_CAPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/DERIVED_CAPE.attr new file mode 100644 index 0000000000..98ba73b6fb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/DERIVED_CAPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Available Potential Energy (CAPE) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/DERIVED_CONV_INH.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/DERIVED_CONV_INH.attr new file mode 100644 index 0000000000..57a4f38069 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/DERIVED_CONV_INH.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Inhibition +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/DERIVED_LAND_SEA_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/DERIVED_LAND_SEA_TEMP.attr new file mode 100644 index 0000000000..7a23e38f72 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/DERIVED_LAND_SEA_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived land-sea temp +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/DERIVED_VOLCANO_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/DERIVED_VOLCANO_IMG.attr new file mode 100644 index 0000000000..2229ec1825 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/DERIVED_VOLCANO_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Volcano Imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/DERIVED_WINDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/DERIVED_WINDEX.attr new file mode 100644 index 0000000000..089564cdb4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/DERIVED_WINDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Wind Index(WINDEX) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/DMPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/DMPI.attr new file mode 100644 index 0000000000..a899181e1c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/DMPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Dry Microburst Potential Index (DMPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/GINI_METEOSAT.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/GINI_METEOSAT.xml new file mode 100644 index 0000000000..4ec3b0d69d --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/GINI_METEOSAT.xml @@ -0,0 +1,23 @@ + + + true + GINI_METEOSAT + SATELLITE + +! This must match the "creatingEntity" in the +! satellite DB table valid values are +pluginName=satellite +satelliteName=METEOSAT +legendColor=RGB {200, 200, 200} + + METEOSAT,GINI + GiniSatellite + sectorID + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/GRID_CLOUD_AMT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/GRID_CLOUD_AMT.attr new file mode 100644 index 0000000000..8fd34efc0b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/GRID_CLOUD_AMT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Amount +displayUnitStr=SounderCloudAmountPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/GRID_CTOP_PRES_HGHT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/GRID_CTOP_PRES_HGHT.attr new file mode 100644 index 0000000000..1c64cd80c4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/GRID_CTOP_PRES_HGHT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Top Pressure or Height +displayUnitStr=SounderCloudTopHeightPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/ICE_CONC.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/ICE_CONC.attr new file mode 100644 index 0000000000..9efb75ca77 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/ICE_CONC.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice concentrations +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/ICE_EDGE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/ICE_EDGE.attr new file mode 100644 index 0000000000..9379c1e0de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/ICE_EDGE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice edge +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/ICE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/ICE_TYPE.attr new file mode 100644 index 0000000000..e8befd0987 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/ICE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/IMG_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/IMG_LIFTED_INDEX.attr new file mode 100644 index 0000000000..4ef5aa938c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/IMG_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/IMG_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/IMG_PRECIP_WATER.attr new file mode 100644 index 0000000000..646aeffd51 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/IMG_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Precipitable Water (PW) +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/IMG_SRFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/IMG_SRFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..bdd4ad59a5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/IMG_SRFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/IR.attr new file mode 100644 index 0000000000..ab8d27b7e8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/IR.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/IR13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/IR13.attr new file mode 100644 index 0000000000..43b1bf4b32 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/IR13.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 13 micron (IR) +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/LOW_CLOUD_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/LOW_CLOUD_IMG.attr new file mode 100644 index 0000000000..d7926c72dd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/LOW_CLOUD_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Low cloud base imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/MDPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/MDPI.attr new file mode 100644 index 0000000000..cef6535f0e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/MDPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Microburst Day Potential Index (MDPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/NORMAL_TPW_PERCENT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/NORMAL_TPW_PERCENT.attr new file mode 100644 index 0000000000..6bd99b6f42 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/NORMAL_TPW_PERCENT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Percent of Normal TPW +displayUnitStr=PercentOfNormalTPWPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/POLAR_3.7u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/POLAR_3.7u.attr new file mode 100644 index 0000000000..4d633f1530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/POLAR_3.7u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.7u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/POLAR_3.9u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/POLAR_3.9u.attr new file mode 100644 index 0000000000..06854db01e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/POLAR_3.9u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.9u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/POLAR_IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/POLAR_IR.attr new file mode 100644 index 0000000000..6a20f7d566 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/POLAR_IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/POLAR_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/POLAR_VIS.attr new file mode 100644 index 0000000000..d6578a334f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/POLAR_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar Vis +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/RAIN_RATE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/RAIN_RATE.attr new file mode 100644 index 0000000000..7305eb7685 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/RAIN_RATE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Rain fall rate +displayUnitStr=RainfallRatePixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SCATTEROMETER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SCATTEROMETER.attr new file mode 100644 index 0000000000..a05f578deb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SCATTEROMETER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Scatterometer Data +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SFC_WETNESS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SFC_WETNESS.attr new file mode 100644 index 0000000000..9753cf44db --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SFC_WETNESS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wetness +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SFC_WIND_SPD.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SFC_WIND_SPD.attr new file mode 100644 index 0000000000..04808eb1b9 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SFC_WIND_SPD.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wind speeds over oceans and Great Lakes +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_11.03.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_11.03.attr new file mode 100644 index 0000000000..547dd6e061 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_11.03.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 11.03 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_12.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_12.02.attr new file mode 100644 index 0000000000..244de73617 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_12.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_12.66.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_12.66.attr new file mode 100644 index 0000000000..462e666f93 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_12.66.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.66 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_13.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_13.37.attr new file mode 100644 index 0000000000..9cb1aa9c5e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_13.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_13.64.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_13.64.attr new file mode 100644 index 0000000000..9f58a6bac2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_13.64.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.64 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_14.06.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_14.06.attr new file mode 100644 index 0000000000..de2a6e2798 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_14.06.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.06 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_14.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_14.37.attr new file mode 100644 index 0000000000..da7800808b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_14.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_14.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_14.71.attr new file mode 100644 index 0000000000..b4f2c87ea2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_14.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_3.74.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_3.74.attr new file mode 100644 index 0000000000..4b0e26bda5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_3.74.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.74 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_3.98.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_3.98.attr new file mode 100644 index 0000000000..db0e925130 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_3.98.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.98 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_4.13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_4.13.attr new file mode 100644 index 0000000000..8e3484d48e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_4.13.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.13 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_4.45.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_4.45.attr new file mode 100644 index 0000000000..4f0b9bce68 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_4.45.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.45 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_4.52.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_4.52.attr new file mode 100644 index 0000000000..54e31f291f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_4.52.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.52 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_4.57.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_4.57.attr new file mode 100644 index 0000000000..f8c6a6c828 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_4.57.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.57 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_6.51.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_6.51.attr new file mode 100644 index 0000000000..de741eae3a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_6.51.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 6.51 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_7.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_7.02.attr new file mode 100644 index 0000000000..ed7f062cf5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_7.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_7.43.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_7.43.attr new file mode 100644 index 0000000000..748ac900d6 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_7.43.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.43 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_9.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_9.71.attr new file mode 100644 index 0000000000..29d901bdfd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_9.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 9.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_LIFTED_INDEX.attr new file mode 100644 index 0000000000..e2cf799bbf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_PRECIP_WATER.attr new file mode 100644 index 0000000000..2c88a0f5d8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Precipitable Water (PW) +displayUnitStr=SounderPrecipWaterPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_SFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_SFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..311972a597 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_SFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_VIS.attr new file mode 100644 index 0000000000..d99cea7530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SND_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Visible imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SNOW_IND.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SNOW_IND.attr new file mode 100644 index 0000000000..de51b42452 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SNOW_IND.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow indicator +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SNOW_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SNOW_WATER.attr new file mode 100644 index 0000000000..4eec894549 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SNOW_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow-water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SURFACE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SURFACE_TYPE.attr new file mode 100644 index 0000000000..0cc7cca419 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/SURFACE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/VIS.attr new file mode 100644 index 0000000000..56a43a4d7e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/VIS.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager Visible +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/WV.attr new file mode 100644 index 0000000000..e34cef65ef --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/WV.attr @@ -0,0 +1,8 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 6.7-6.5 micron IR (WV) +displayUnitStr=DerivedWVPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/default.attr new file mode 100644 index 0000000000..267d61ad67 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_METEOSAT/default.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/CLOUD_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/CLOUD_WATER.attr new file mode 100644 index 0000000000..4e62b6105c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/CLOUD_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Cloud water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/DERIVED_CAPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/DERIVED_CAPE.attr new file mode 100644 index 0000000000..98ba73b6fb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/DERIVED_CAPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Available Potential Energy (CAPE) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/DERIVED_CONV_INH.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/DERIVED_CONV_INH.attr new file mode 100644 index 0000000000..57a4f38069 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/DERIVED_CONV_INH.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Inhibition +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/DERIVED_LAND_SEA_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/DERIVED_LAND_SEA_TEMP.attr new file mode 100644 index 0000000000..7a23e38f72 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/DERIVED_LAND_SEA_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived land-sea temp +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/DERIVED_VOLCANO_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/DERIVED_VOLCANO_IMG.attr new file mode 100644 index 0000000000..2229ec1825 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/DERIVED_VOLCANO_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Volcano Imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/DERIVED_WINDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/DERIVED_WINDEX.attr new file mode 100644 index 0000000000..089564cdb4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/DERIVED_WINDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Wind Index(WINDEX) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/DMPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/DMPI.attr new file mode 100644 index 0000000000..a899181e1c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/DMPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Dry Microburst Potential Index (DMPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/GINI_Miscellaneous.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/GINI_Miscellaneous.xml new file mode 100644 index 0000000000..d7fbfd1bc6 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/GINI_Miscellaneous.xml @@ -0,0 +1,23 @@ + + + true + GINI_Miscellaneous + SATELLITE + +! This must match the "creatingEntity" in the +! satellite DB table valid values are +pluginName=satellite +satelliteName=Miscellaneous +legendColor=RGB {200, 200, 200} + + GINI + GiniSatellite + sectorID + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/GRID_CLOUD_AMT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/GRID_CLOUD_AMT.attr new file mode 100644 index 0000000000..8fd34efc0b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/GRID_CLOUD_AMT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Amount +displayUnitStr=SounderCloudAmountPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/GRID_CTOP_PRES_HGHT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/GRID_CTOP_PRES_HGHT.attr new file mode 100644 index 0000000000..1c64cd80c4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/GRID_CTOP_PRES_HGHT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Top Pressure or Height +displayUnitStr=SounderCloudTopHeightPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/ICE_CONC.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/ICE_CONC.attr new file mode 100644 index 0000000000..9efb75ca77 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/ICE_CONC.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice concentrations +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/ICE_EDGE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/ICE_EDGE.attr new file mode 100644 index 0000000000..9379c1e0de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/ICE_EDGE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice edge +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/ICE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/ICE_TYPE.attr new file mode 100644 index 0000000000..e8befd0987 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/ICE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/IMG_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/IMG_LIFTED_INDEX.attr new file mode 100644 index 0000000000..4ef5aa938c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/IMG_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/IMG_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/IMG_PRECIP_WATER.attr new file mode 100644 index 0000000000..646aeffd51 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/IMG_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Precipitable Water (PW) +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/IMG_SRFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/IMG_SRFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..bdd4ad59a5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/IMG_SRFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/IR.attr new file mode 100644 index 0000000000..ab8d27b7e8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/IR.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/IR13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/IR13.attr new file mode 100644 index 0000000000..43b1bf4b32 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/IR13.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 13 micron (IR) +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/LOW_CLOUD_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/LOW_CLOUD_IMG.attr new file mode 100644 index 0000000000..d7926c72dd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/LOW_CLOUD_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Low cloud base imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/MDPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/MDPI.attr new file mode 100644 index 0000000000..cef6535f0e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/MDPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Microburst Day Potential Index (MDPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/NORMAL_TPW_PERCENT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/NORMAL_TPW_PERCENT.attr new file mode 100644 index 0000000000..6bd99b6f42 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/NORMAL_TPW_PERCENT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Percent of Normal TPW +displayUnitStr=PercentOfNormalTPWPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/POLAR_3.7u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/POLAR_3.7u.attr new file mode 100644 index 0000000000..4d633f1530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/POLAR_3.7u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.7u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/POLAR_3.9u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/POLAR_3.9u.attr new file mode 100644 index 0000000000..06854db01e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/POLAR_3.9u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.9u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/POLAR_IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/POLAR_IR.attr new file mode 100644 index 0000000000..6a20f7d566 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/POLAR_IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/POLAR_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/POLAR_VIS.attr new file mode 100644 index 0000000000..d6578a334f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/POLAR_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar Vis +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/RAIN_RATE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/RAIN_RATE.attr new file mode 100644 index 0000000000..7305eb7685 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/RAIN_RATE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Rain fall rate +displayUnitStr=RainfallRatePixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SCATTEROMETER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SCATTEROMETER.attr new file mode 100644 index 0000000000..a05f578deb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SCATTEROMETER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Scatterometer Data +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SFC_WETNESS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SFC_WETNESS.attr new file mode 100644 index 0000000000..9753cf44db --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SFC_WETNESS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wetness +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SFC_WIND_SPD.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SFC_WIND_SPD.attr new file mode 100644 index 0000000000..04808eb1b9 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SFC_WIND_SPD.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wind speeds over oceans and Great Lakes +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_11.03.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_11.03.attr new file mode 100644 index 0000000000..547dd6e061 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_11.03.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 11.03 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_12.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_12.02.attr new file mode 100644 index 0000000000..244de73617 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_12.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_12.66.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_12.66.attr new file mode 100644 index 0000000000..462e666f93 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_12.66.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.66 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_13.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_13.37.attr new file mode 100644 index 0000000000..9cb1aa9c5e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_13.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_13.64.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_13.64.attr new file mode 100644 index 0000000000..9f58a6bac2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_13.64.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.64 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_14.06.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_14.06.attr new file mode 100644 index 0000000000..de2a6e2798 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_14.06.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.06 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_14.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_14.37.attr new file mode 100644 index 0000000000..da7800808b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_14.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_14.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_14.71.attr new file mode 100644 index 0000000000..b4f2c87ea2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_14.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_3.74.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_3.74.attr new file mode 100644 index 0000000000..4b0e26bda5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_3.74.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.74 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_3.98.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_3.98.attr new file mode 100644 index 0000000000..db0e925130 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_3.98.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.98 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_4.13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_4.13.attr new file mode 100644 index 0000000000..8e3484d48e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_4.13.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.13 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_4.45.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_4.45.attr new file mode 100644 index 0000000000..4f0b9bce68 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_4.45.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.45 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_4.52.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_4.52.attr new file mode 100644 index 0000000000..54e31f291f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_4.52.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.52 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_4.57.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_4.57.attr new file mode 100644 index 0000000000..f8c6a6c828 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_4.57.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.57 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_6.51.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_6.51.attr new file mode 100644 index 0000000000..de741eae3a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_6.51.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 6.51 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_7.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_7.02.attr new file mode 100644 index 0000000000..ed7f062cf5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_7.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_7.43.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_7.43.attr new file mode 100644 index 0000000000..748ac900d6 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_7.43.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.43 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_9.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_9.71.attr new file mode 100644 index 0000000000..29d901bdfd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_9.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 9.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_LIFTED_INDEX.attr new file mode 100644 index 0000000000..e2cf799bbf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_PRECIP_WATER.attr new file mode 100644 index 0000000000..2c88a0f5d8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Precipitable Water (PW) +displayUnitStr=SounderPrecipWaterPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_SFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_SFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..311972a597 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_SFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_VIS.attr new file mode 100644 index 0000000000..d99cea7530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SND_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Visible imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SNOW_IND.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SNOW_IND.attr new file mode 100644 index 0000000000..de51b42452 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SNOW_IND.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow indicator +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SNOW_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SNOW_WATER.attr new file mode 100644 index 0000000000..4eec894549 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SNOW_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow-water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SURFACE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SURFACE_TYPE.attr new file mode 100644 index 0000000000..0cc7cca419 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/SURFACE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/VIS.attr new file mode 100644 index 0000000000..56a43a4d7e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/VIS.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager Visible +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/WV.attr new file mode 100644 index 0000000000..e34cef65ef --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/WV.attr @@ -0,0 +1,8 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 6.7-6.5 micron IR (WV) +displayUnitStr=DerivedWVPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/default.attr new file mode 100644 index 0000000000..267d61ad67 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_Miscellaneous/default.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/CLOUD_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/CLOUD_WATER.attr new file mode 100644 index 0000000000..4e62b6105c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/CLOUD_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Cloud water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/DERIVED_CAPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/DERIVED_CAPE.attr new file mode 100644 index 0000000000..98ba73b6fb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/DERIVED_CAPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Available Potential Energy (CAPE) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/DERIVED_CONV_INH.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/DERIVED_CONV_INH.attr new file mode 100644 index 0000000000..57a4f38069 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/DERIVED_CONV_INH.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Inhibition +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/DERIVED_LAND_SEA_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/DERIVED_LAND_SEA_TEMP.attr new file mode 100644 index 0000000000..7a23e38f72 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/DERIVED_LAND_SEA_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived land-sea temp +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/DERIVED_VOLCANO_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/DERIVED_VOLCANO_IMG.attr new file mode 100644 index 0000000000..2229ec1825 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/DERIVED_VOLCANO_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Volcano Imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/DERIVED_WINDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/DERIVED_WINDEX.attr new file mode 100644 index 0000000000..089564cdb4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/DERIVED_WINDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Wind Index(WINDEX) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/DMPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/DMPI.attr new file mode 100644 index 0000000000..a899181e1c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/DMPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Dry Microburst Potential Index (DMPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/GINI_NOAA16.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/GINI_NOAA16.xml new file mode 100644 index 0000000000..2766546933 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/GINI_NOAA16.xml @@ -0,0 +1,23 @@ + + + true + GINI_NOAA16 + SATELLITE + +! This must match the "creatingEntity" in the +! satellite DB table valid values are +pluginName=satellite +satelliteName=NOAA16 +legendColor=RGB {200, 200, 200} + + NOAA,GINI + GiniSatellite + sectorID + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/GRID_CLOUD_AMT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/GRID_CLOUD_AMT.attr new file mode 100644 index 0000000000..8fd34efc0b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/GRID_CLOUD_AMT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Amount +displayUnitStr=SounderCloudAmountPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/GRID_CTOP_PRES_HGHT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/GRID_CTOP_PRES_HGHT.attr new file mode 100644 index 0000000000..1c64cd80c4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/GRID_CTOP_PRES_HGHT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Top Pressure or Height +displayUnitStr=SounderCloudTopHeightPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/ICE_CONC.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/ICE_CONC.attr new file mode 100644 index 0000000000..9efb75ca77 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/ICE_CONC.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice concentrations +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/ICE_EDGE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/ICE_EDGE.attr new file mode 100644 index 0000000000..9379c1e0de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/ICE_EDGE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice edge +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/ICE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/ICE_TYPE.attr new file mode 100644 index 0000000000..e8befd0987 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/ICE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/IMG_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/IMG_LIFTED_INDEX.attr new file mode 100644 index 0000000000..4ef5aa938c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/IMG_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/IMG_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/IMG_PRECIP_WATER.attr new file mode 100644 index 0000000000..646aeffd51 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/IMG_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Precipitable Water (PW) +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/IMG_SRFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/IMG_SRFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..bdd4ad59a5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/IMG_SRFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/IR.attr new file mode 100644 index 0000000000..ab8d27b7e8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/IR.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/IR13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/IR13.attr new file mode 100644 index 0000000000..43b1bf4b32 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/IR13.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 13 micron (IR) +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/LOW_CLOUD_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/LOW_CLOUD_IMG.attr new file mode 100644 index 0000000000..d7926c72dd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/LOW_CLOUD_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Low cloud base imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/MDPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/MDPI.attr new file mode 100644 index 0000000000..cef6535f0e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/MDPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Microburst Day Potential Index (MDPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/NORMAL_TPW_PERCENT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/NORMAL_TPW_PERCENT.attr new file mode 100644 index 0000000000..6bd99b6f42 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/NORMAL_TPW_PERCENT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Percent of Normal TPW +displayUnitStr=PercentOfNormalTPWPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/POLAR_3.7u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/POLAR_3.7u.attr new file mode 100644 index 0000000000..4d633f1530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/POLAR_3.7u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.7u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/POLAR_3.9u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/POLAR_3.9u.attr new file mode 100644 index 0000000000..06854db01e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/POLAR_3.9u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.9u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/POLAR_IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/POLAR_IR.attr new file mode 100644 index 0000000000..6a20f7d566 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/POLAR_IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/POLAR_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/POLAR_VIS.attr new file mode 100644 index 0000000000..d6578a334f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/POLAR_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar Vis +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/RAIN_RATE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/RAIN_RATE.attr new file mode 100644 index 0000000000..7305eb7685 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/RAIN_RATE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Rain fall rate +displayUnitStr=RainfallRatePixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SCATTEROMETER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SCATTEROMETER.attr new file mode 100644 index 0000000000..a05f578deb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SCATTEROMETER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Scatterometer Data +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SFC_WETNESS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SFC_WETNESS.attr new file mode 100644 index 0000000000..9753cf44db --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SFC_WETNESS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wetness +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SFC_WIND_SPD.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SFC_WIND_SPD.attr new file mode 100644 index 0000000000..04808eb1b9 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SFC_WIND_SPD.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wind speeds over oceans and Great Lakes +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_11.03.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_11.03.attr new file mode 100644 index 0000000000..547dd6e061 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_11.03.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 11.03 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_12.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_12.02.attr new file mode 100644 index 0000000000..244de73617 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_12.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_12.66.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_12.66.attr new file mode 100644 index 0000000000..462e666f93 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_12.66.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.66 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_13.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_13.37.attr new file mode 100644 index 0000000000..9cb1aa9c5e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_13.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_13.64.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_13.64.attr new file mode 100644 index 0000000000..9f58a6bac2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_13.64.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.64 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_14.06.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_14.06.attr new file mode 100644 index 0000000000..de2a6e2798 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_14.06.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.06 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_14.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_14.37.attr new file mode 100644 index 0000000000..da7800808b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_14.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_14.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_14.71.attr new file mode 100644 index 0000000000..b4f2c87ea2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_14.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_3.74.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_3.74.attr new file mode 100644 index 0000000000..4b0e26bda5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_3.74.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.74 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_3.98.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_3.98.attr new file mode 100644 index 0000000000..db0e925130 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_3.98.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.98 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_4.13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_4.13.attr new file mode 100644 index 0000000000..8e3484d48e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_4.13.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.13 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_4.45.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_4.45.attr new file mode 100644 index 0000000000..4f0b9bce68 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_4.45.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.45 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_4.52.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_4.52.attr new file mode 100644 index 0000000000..54e31f291f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_4.52.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.52 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_4.57.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_4.57.attr new file mode 100644 index 0000000000..f8c6a6c828 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_4.57.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.57 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_6.51.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_6.51.attr new file mode 100644 index 0000000000..de741eae3a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_6.51.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 6.51 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_7.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_7.02.attr new file mode 100644 index 0000000000..ed7f062cf5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_7.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_7.43.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_7.43.attr new file mode 100644 index 0000000000..748ac900d6 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_7.43.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.43 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_9.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_9.71.attr new file mode 100644 index 0000000000..29d901bdfd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_9.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 9.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_LIFTED_INDEX.attr new file mode 100644 index 0000000000..e2cf799bbf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_PRECIP_WATER.attr new file mode 100644 index 0000000000..2c88a0f5d8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Precipitable Water (PW) +displayUnitStr=SounderPrecipWaterPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_SFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_SFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..311972a597 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_SFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_VIS.attr new file mode 100644 index 0000000000..d99cea7530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SND_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Visible imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SNOW_IND.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SNOW_IND.attr new file mode 100644 index 0000000000..de51b42452 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SNOW_IND.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow indicator +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SNOW_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SNOW_WATER.attr new file mode 100644 index 0000000000..4eec894549 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SNOW_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow-water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SURFACE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SURFACE_TYPE.attr new file mode 100644 index 0000000000..0cc7cca419 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/SURFACE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/VIS.attr new file mode 100644 index 0000000000..56a43a4d7e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/VIS.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager Visible +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/WV.attr new file mode 100644 index 0000000000..e34cef65ef --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/WV.attr @@ -0,0 +1,8 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 6.7-6.5 micron IR (WV) +displayUnitStr=DerivedWVPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/default.attr new file mode 100644 index 0000000000..267d61ad67 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA16/default.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/CLOUD_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/CLOUD_WATER.attr new file mode 100644 index 0000000000..4e62b6105c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/CLOUD_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Cloud water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/DERIVED_CAPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/DERIVED_CAPE.attr new file mode 100644 index 0000000000..98ba73b6fb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/DERIVED_CAPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Available Potential Energy (CAPE) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/DERIVED_CONV_INH.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/DERIVED_CONV_INH.attr new file mode 100644 index 0000000000..57a4f38069 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/DERIVED_CONV_INH.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Inhibition +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/DERIVED_LAND_SEA_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/DERIVED_LAND_SEA_TEMP.attr new file mode 100644 index 0000000000..7a23e38f72 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/DERIVED_LAND_SEA_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived land-sea temp +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/DERIVED_VOLCANO_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/DERIVED_VOLCANO_IMG.attr new file mode 100644 index 0000000000..2229ec1825 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/DERIVED_VOLCANO_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Volcano Imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/DERIVED_WINDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/DERIVED_WINDEX.attr new file mode 100644 index 0000000000..089564cdb4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/DERIVED_WINDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Wind Index(WINDEX) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/DMPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/DMPI.attr new file mode 100644 index 0000000000..a899181e1c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/DMPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Dry Microburst Potential Index (DMPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/GINI_NOAA17.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/GINI_NOAA17.xml new file mode 100644 index 0000000000..20f092f8c9 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/GINI_NOAA17.xml @@ -0,0 +1,23 @@ + + + true + GINI_NOAA17 + SATELLITE + +! This must match the "creatingEntity" in the +! satellite DB table valid values are +pluginName=satellite +satelliteName=NOAA17 +legendColor=RGB {200, 200, 200} + + NOAA,GINI + GiniSatellite + sectorID + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/GRID_CLOUD_AMT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/GRID_CLOUD_AMT.attr new file mode 100644 index 0000000000..8fd34efc0b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/GRID_CLOUD_AMT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Amount +displayUnitStr=SounderCloudAmountPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/GRID_CTOP_PRES_HGHT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/GRID_CTOP_PRES_HGHT.attr new file mode 100644 index 0000000000..1c64cd80c4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/GRID_CTOP_PRES_HGHT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Top Pressure or Height +displayUnitStr=SounderCloudTopHeightPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/ICE_CONC.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/ICE_CONC.attr new file mode 100644 index 0000000000..9efb75ca77 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/ICE_CONC.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice concentrations +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/ICE_EDGE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/ICE_EDGE.attr new file mode 100644 index 0000000000..9379c1e0de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/ICE_EDGE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice edge +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/ICE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/ICE_TYPE.attr new file mode 100644 index 0000000000..e8befd0987 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/ICE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/IMG_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/IMG_LIFTED_INDEX.attr new file mode 100644 index 0000000000..4ef5aa938c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/IMG_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/IMG_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/IMG_PRECIP_WATER.attr new file mode 100644 index 0000000000..646aeffd51 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/IMG_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Precipitable Water (PW) +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/IMG_SRFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/IMG_SRFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..bdd4ad59a5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/IMG_SRFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/IR.attr new file mode 100644 index 0000000000..ab8d27b7e8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/IR.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/IR13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/IR13.attr new file mode 100644 index 0000000000..43b1bf4b32 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/IR13.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 13 micron (IR) +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/LOW_CLOUD_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/LOW_CLOUD_IMG.attr new file mode 100644 index 0000000000..d7926c72dd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/LOW_CLOUD_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Low cloud base imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/MDPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/MDPI.attr new file mode 100644 index 0000000000..cef6535f0e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/MDPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Microburst Day Potential Index (MDPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/NORMAL_TPW_PERCENT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/NORMAL_TPW_PERCENT.attr new file mode 100644 index 0000000000..6bd99b6f42 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/NORMAL_TPW_PERCENT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Percent of Normal TPW +displayUnitStr=PercentOfNormalTPWPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/POLAR_3.7u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/POLAR_3.7u.attr new file mode 100644 index 0000000000..4d633f1530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/POLAR_3.7u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.7u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/POLAR_3.9u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/POLAR_3.9u.attr new file mode 100644 index 0000000000..06854db01e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/POLAR_3.9u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.9u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/POLAR_IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/POLAR_IR.attr new file mode 100644 index 0000000000..6a20f7d566 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/POLAR_IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/POLAR_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/POLAR_VIS.attr new file mode 100644 index 0000000000..d6578a334f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/POLAR_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar Vis +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/RAIN_RATE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/RAIN_RATE.attr new file mode 100644 index 0000000000..7305eb7685 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/RAIN_RATE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Rain fall rate +displayUnitStr=RainfallRatePixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SCATTEROMETER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SCATTEROMETER.attr new file mode 100644 index 0000000000..a05f578deb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SCATTEROMETER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Scatterometer Data +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SFC_WETNESS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SFC_WETNESS.attr new file mode 100644 index 0000000000..9753cf44db --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SFC_WETNESS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wetness +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SFC_WIND_SPD.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SFC_WIND_SPD.attr new file mode 100644 index 0000000000..04808eb1b9 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SFC_WIND_SPD.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wind speeds over oceans and Great Lakes +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_11.03.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_11.03.attr new file mode 100644 index 0000000000..547dd6e061 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_11.03.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 11.03 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_12.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_12.02.attr new file mode 100644 index 0000000000..244de73617 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_12.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_12.66.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_12.66.attr new file mode 100644 index 0000000000..462e666f93 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_12.66.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.66 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_13.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_13.37.attr new file mode 100644 index 0000000000..9cb1aa9c5e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_13.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_13.64.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_13.64.attr new file mode 100644 index 0000000000..9f58a6bac2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_13.64.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.64 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_14.06.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_14.06.attr new file mode 100644 index 0000000000..de2a6e2798 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_14.06.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.06 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_14.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_14.37.attr new file mode 100644 index 0000000000..da7800808b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_14.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_14.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_14.71.attr new file mode 100644 index 0000000000..b4f2c87ea2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_14.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_3.74.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_3.74.attr new file mode 100644 index 0000000000..4b0e26bda5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_3.74.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.74 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_3.98.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_3.98.attr new file mode 100644 index 0000000000..db0e925130 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_3.98.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.98 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_4.13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_4.13.attr new file mode 100644 index 0000000000..8e3484d48e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_4.13.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.13 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_4.45.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_4.45.attr new file mode 100644 index 0000000000..4f0b9bce68 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_4.45.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.45 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_4.52.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_4.52.attr new file mode 100644 index 0000000000..54e31f291f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_4.52.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.52 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_4.57.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_4.57.attr new file mode 100644 index 0000000000..f8c6a6c828 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_4.57.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.57 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_6.51.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_6.51.attr new file mode 100644 index 0000000000..de741eae3a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_6.51.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 6.51 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_7.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_7.02.attr new file mode 100644 index 0000000000..ed7f062cf5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_7.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_7.43.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_7.43.attr new file mode 100644 index 0000000000..748ac900d6 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_7.43.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.43 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_9.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_9.71.attr new file mode 100644 index 0000000000..29d901bdfd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_9.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 9.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_LIFTED_INDEX.attr new file mode 100644 index 0000000000..e2cf799bbf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_PRECIP_WATER.attr new file mode 100644 index 0000000000..2c88a0f5d8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Precipitable Water (PW) +displayUnitStr=SounderPrecipWaterPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_SFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_SFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..311972a597 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_SFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_VIS.attr new file mode 100644 index 0000000000..d99cea7530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SND_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Visible imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SNOW_IND.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SNOW_IND.attr new file mode 100644 index 0000000000..de51b42452 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SNOW_IND.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow indicator +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SNOW_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SNOW_WATER.attr new file mode 100644 index 0000000000..4eec894549 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SNOW_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow-water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SURFACE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SURFACE_TYPE.attr new file mode 100644 index 0000000000..0cc7cca419 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/SURFACE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/VIS.attr new file mode 100644 index 0000000000..56a43a4d7e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/VIS.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager Visible +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/WV.attr new file mode 100644 index 0000000000..e34cef65ef --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/WV.attr @@ -0,0 +1,8 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 6.7-6.5 micron IR (WV) +displayUnitStr=DerivedWVPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/default.attr new file mode 100644 index 0000000000..267d61ad67 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA17/default.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/CLOUD_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/CLOUD_WATER.attr new file mode 100644 index 0000000000..4e62b6105c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/CLOUD_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Cloud water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/DERIVED_CAPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/DERIVED_CAPE.attr new file mode 100644 index 0000000000..98ba73b6fb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/DERIVED_CAPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Available Potential Energy (CAPE) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/DERIVED_CONV_INH.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/DERIVED_CONV_INH.attr new file mode 100644 index 0000000000..57a4f38069 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/DERIVED_CONV_INH.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Inhibition +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/DERIVED_LAND_SEA_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/DERIVED_LAND_SEA_TEMP.attr new file mode 100644 index 0000000000..7a23e38f72 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/DERIVED_LAND_SEA_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived land-sea temp +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/DERIVED_VOLCANO_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/DERIVED_VOLCANO_IMG.attr new file mode 100644 index 0000000000..2229ec1825 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/DERIVED_VOLCANO_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Volcano Imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/DERIVED_WINDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/DERIVED_WINDEX.attr new file mode 100644 index 0000000000..089564cdb4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/DERIVED_WINDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Wind Index(WINDEX) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/DMPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/DMPI.attr new file mode 100644 index 0000000000..a899181e1c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/DMPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Dry Microburst Potential Index (DMPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/GINI_NOAA18.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/GINI_NOAA18.xml new file mode 100644 index 0000000000..e59d3f56a9 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/GINI_NOAA18.xml @@ -0,0 +1,23 @@ + + + true + GINI_NOAA18 + SATELLITE + +! This must match the "creatingEntity" in the +! satellite DB table valid values are +pluginName=satellite +satelliteName=NOAA18 +legendColor=RGB {200, 200, 200} + + NOAA,GINI + GiniSatellite + sectorID + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/GRID_CLOUD_AMT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/GRID_CLOUD_AMT.attr new file mode 100644 index 0000000000..8fd34efc0b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/GRID_CLOUD_AMT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Amount +displayUnitStr=SounderCloudAmountPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/GRID_CTOP_PRES_HGHT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/GRID_CTOP_PRES_HGHT.attr new file mode 100644 index 0000000000..1c64cd80c4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/GRID_CTOP_PRES_HGHT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Top Pressure or Height +displayUnitStr=SounderCloudTopHeightPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/ICE_CONC.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/ICE_CONC.attr new file mode 100644 index 0000000000..9efb75ca77 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/ICE_CONC.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice concentrations +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/ICE_EDGE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/ICE_EDGE.attr new file mode 100644 index 0000000000..9379c1e0de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/ICE_EDGE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice edge +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/ICE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/ICE_TYPE.attr new file mode 100644 index 0000000000..e8befd0987 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/ICE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/IMG_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/IMG_LIFTED_INDEX.attr new file mode 100644 index 0000000000..4ef5aa938c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/IMG_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/IMG_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/IMG_PRECIP_WATER.attr new file mode 100644 index 0000000000..646aeffd51 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/IMG_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Precipitable Water (PW) +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/IMG_SRFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/IMG_SRFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..bdd4ad59a5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/IMG_SRFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/IR.attr new file mode 100644 index 0000000000..ab8d27b7e8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/IR.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/IR13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/IR13.attr new file mode 100644 index 0000000000..43b1bf4b32 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/IR13.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 13 micron (IR) +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/LOW_CLOUD_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/LOW_CLOUD_IMG.attr new file mode 100644 index 0000000000..d7926c72dd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/LOW_CLOUD_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Low cloud base imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/MDPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/MDPI.attr new file mode 100644 index 0000000000..cef6535f0e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/MDPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Microburst Day Potential Index (MDPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/NORMAL_TPW_PERCENT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/NORMAL_TPW_PERCENT.attr new file mode 100644 index 0000000000..6bd99b6f42 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/NORMAL_TPW_PERCENT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Percent of Normal TPW +displayUnitStr=PercentOfNormalTPWPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/POLAR_3.7u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/POLAR_3.7u.attr new file mode 100644 index 0000000000..4d633f1530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/POLAR_3.7u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.7u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/POLAR_3.9u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/POLAR_3.9u.attr new file mode 100644 index 0000000000..06854db01e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/POLAR_3.9u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.9u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/POLAR_IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/POLAR_IR.attr new file mode 100644 index 0000000000..6a20f7d566 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/POLAR_IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/POLAR_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/POLAR_VIS.attr new file mode 100644 index 0000000000..d6578a334f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/POLAR_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar Vis +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/RAIN_RATE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/RAIN_RATE.attr new file mode 100644 index 0000000000..7305eb7685 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/RAIN_RATE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Rain fall rate +displayUnitStr=RainfallRatePixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SCATTEROMETER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SCATTEROMETER.attr new file mode 100644 index 0000000000..a05f578deb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SCATTEROMETER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Scatterometer Data +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SFC_WETNESS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SFC_WETNESS.attr new file mode 100644 index 0000000000..9753cf44db --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SFC_WETNESS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wetness +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SFC_WIND_SPD.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SFC_WIND_SPD.attr new file mode 100644 index 0000000000..04808eb1b9 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SFC_WIND_SPD.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wind speeds over oceans and Great Lakes +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_11.03.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_11.03.attr new file mode 100644 index 0000000000..547dd6e061 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_11.03.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 11.03 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_12.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_12.02.attr new file mode 100644 index 0000000000..244de73617 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_12.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_12.66.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_12.66.attr new file mode 100644 index 0000000000..462e666f93 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_12.66.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.66 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_13.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_13.37.attr new file mode 100644 index 0000000000..9cb1aa9c5e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_13.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_13.64.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_13.64.attr new file mode 100644 index 0000000000..9f58a6bac2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_13.64.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.64 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_14.06.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_14.06.attr new file mode 100644 index 0000000000..de2a6e2798 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_14.06.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.06 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_14.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_14.37.attr new file mode 100644 index 0000000000..da7800808b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_14.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_14.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_14.71.attr new file mode 100644 index 0000000000..b4f2c87ea2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_14.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_3.74.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_3.74.attr new file mode 100644 index 0000000000..4b0e26bda5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_3.74.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.74 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_3.98.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_3.98.attr new file mode 100644 index 0000000000..db0e925130 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_3.98.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.98 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_4.13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_4.13.attr new file mode 100644 index 0000000000..8e3484d48e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_4.13.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.13 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_4.45.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_4.45.attr new file mode 100644 index 0000000000..4f0b9bce68 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_4.45.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.45 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_4.52.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_4.52.attr new file mode 100644 index 0000000000..54e31f291f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_4.52.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.52 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_4.57.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_4.57.attr new file mode 100644 index 0000000000..f8c6a6c828 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_4.57.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.57 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_6.51.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_6.51.attr new file mode 100644 index 0000000000..de741eae3a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_6.51.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 6.51 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_7.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_7.02.attr new file mode 100644 index 0000000000..ed7f062cf5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_7.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_7.43.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_7.43.attr new file mode 100644 index 0000000000..748ac900d6 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_7.43.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.43 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_9.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_9.71.attr new file mode 100644 index 0000000000..29d901bdfd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_9.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 9.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_LIFTED_INDEX.attr new file mode 100644 index 0000000000..e2cf799bbf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_PRECIP_WATER.attr new file mode 100644 index 0000000000..2c88a0f5d8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Precipitable Water (PW) +displayUnitStr=SounderPrecipWaterPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_SFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_SFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..311972a597 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_SFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_VIS.attr new file mode 100644 index 0000000000..d99cea7530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SND_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Visible imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SNOW_IND.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SNOW_IND.attr new file mode 100644 index 0000000000..de51b42452 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SNOW_IND.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow indicator +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SNOW_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SNOW_WATER.attr new file mode 100644 index 0000000000..4eec894549 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SNOW_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow-water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SURFACE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SURFACE_TYPE.attr new file mode 100644 index 0000000000..0cc7cca419 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/SURFACE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/VIS.attr new file mode 100644 index 0000000000..56a43a4d7e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/VIS.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager Visible +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/WV.attr new file mode 100644 index 0000000000..e34cef65ef --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/WV.attr @@ -0,0 +1,8 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 6.7-6.5 micron IR (WV) +displayUnitStr=DerivedWVPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/default.attr new file mode 100644 index 0000000000..267d61ad67 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA18/default.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/CLOUD_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/CLOUD_WATER.attr new file mode 100644 index 0000000000..4e62b6105c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/CLOUD_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Cloud water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/DERIVED_CAPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/DERIVED_CAPE.attr new file mode 100644 index 0000000000..98ba73b6fb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/DERIVED_CAPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Available Potential Energy (CAPE) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/DERIVED_CONV_INH.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/DERIVED_CONV_INH.attr new file mode 100644 index 0000000000..57a4f38069 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/DERIVED_CONV_INH.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Inhibition +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/DERIVED_LAND_SEA_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/DERIVED_LAND_SEA_TEMP.attr new file mode 100644 index 0000000000..7a23e38f72 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/DERIVED_LAND_SEA_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived land-sea temp +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/DERIVED_VOLCANO_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/DERIVED_VOLCANO_IMG.attr new file mode 100644 index 0000000000..2229ec1825 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/DERIVED_VOLCANO_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Volcano Imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/DERIVED_WINDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/DERIVED_WINDEX.attr new file mode 100644 index 0000000000..089564cdb4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/DERIVED_WINDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Wind Index(WINDEX) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/DMPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/DMPI.attr new file mode 100644 index 0000000000..a899181e1c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/DMPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Dry Microburst Potential Index (DMPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/GINI_NOAA19.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/GINI_NOAA19.xml new file mode 100644 index 0000000000..4d5fb88126 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/GINI_NOAA19.xml @@ -0,0 +1,23 @@ + + + true + GINI_NOAA19 + SATELLITE + +! This must match the "creatingEntity" in the +! satellite DB table valid values are +pluginName=satellite +satelliteName=NOAA19 +legendColor=RGB {200, 200, 200} + + NOAA,GINI + GiniSatellite + sectorID + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/GRID_CLOUD_AMT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/GRID_CLOUD_AMT.attr new file mode 100644 index 0000000000..8fd34efc0b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/GRID_CLOUD_AMT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Amount +displayUnitStr=SounderCloudAmountPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/GRID_CTOP_PRES_HGHT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/GRID_CTOP_PRES_HGHT.attr new file mode 100644 index 0000000000..1c64cd80c4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/GRID_CTOP_PRES_HGHT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Top Pressure or Height +displayUnitStr=SounderCloudTopHeightPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/ICE_CONC.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/ICE_CONC.attr new file mode 100644 index 0000000000..9efb75ca77 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/ICE_CONC.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice concentrations +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/ICE_EDGE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/ICE_EDGE.attr new file mode 100644 index 0000000000..9379c1e0de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/ICE_EDGE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice edge +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/ICE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/ICE_TYPE.attr new file mode 100644 index 0000000000..e8befd0987 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/ICE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/IMG_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/IMG_LIFTED_INDEX.attr new file mode 100644 index 0000000000..4ef5aa938c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/IMG_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/IMG_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/IMG_PRECIP_WATER.attr new file mode 100644 index 0000000000..646aeffd51 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/IMG_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Precipitable Water (PW) +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/IMG_SRFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/IMG_SRFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..bdd4ad59a5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/IMG_SRFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/IR.attr new file mode 100644 index 0000000000..ab8d27b7e8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/IR.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/IR13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/IR13.attr new file mode 100644 index 0000000000..43b1bf4b32 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/IR13.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 13 micron (IR) +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/LOW_CLOUD_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/LOW_CLOUD_IMG.attr new file mode 100644 index 0000000000..d7926c72dd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/LOW_CLOUD_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Low cloud base imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/MDPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/MDPI.attr new file mode 100644 index 0000000000..cef6535f0e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/MDPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Microburst Day Potential Index (MDPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/NORMAL_TPW_PERCENT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/NORMAL_TPW_PERCENT.attr new file mode 100644 index 0000000000..6bd99b6f42 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/NORMAL_TPW_PERCENT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Percent of Normal TPW +displayUnitStr=PercentOfNormalTPWPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/POLAR_3.7u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/POLAR_3.7u.attr new file mode 100644 index 0000000000..4d633f1530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/POLAR_3.7u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.7u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/POLAR_3.9u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/POLAR_3.9u.attr new file mode 100644 index 0000000000..06854db01e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/POLAR_3.9u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.9u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/POLAR_IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/POLAR_IR.attr new file mode 100644 index 0000000000..6a20f7d566 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/POLAR_IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/POLAR_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/POLAR_VIS.attr new file mode 100644 index 0000000000..d6578a334f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/POLAR_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar Vis +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/RAIN_RATE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/RAIN_RATE.attr new file mode 100644 index 0000000000..7305eb7685 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/RAIN_RATE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Rain fall rate +displayUnitStr=RainfallRatePixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SCATTEROMETER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SCATTEROMETER.attr new file mode 100644 index 0000000000..a05f578deb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SCATTEROMETER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Scatterometer Data +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SFC_WETNESS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SFC_WETNESS.attr new file mode 100644 index 0000000000..9753cf44db --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SFC_WETNESS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wetness +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SFC_WIND_SPD.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SFC_WIND_SPD.attr new file mode 100644 index 0000000000..04808eb1b9 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SFC_WIND_SPD.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wind speeds over oceans and Great Lakes +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_11.03.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_11.03.attr new file mode 100644 index 0000000000..547dd6e061 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_11.03.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 11.03 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_12.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_12.02.attr new file mode 100644 index 0000000000..244de73617 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_12.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_12.66.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_12.66.attr new file mode 100644 index 0000000000..462e666f93 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_12.66.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.66 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_13.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_13.37.attr new file mode 100644 index 0000000000..9cb1aa9c5e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_13.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_13.64.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_13.64.attr new file mode 100644 index 0000000000..9f58a6bac2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_13.64.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.64 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_14.06.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_14.06.attr new file mode 100644 index 0000000000..de2a6e2798 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_14.06.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.06 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_14.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_14.37.attr new file mode 100644 index 0000000000..da7800808b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_14.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_14.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_14.71.attr new file mode 100644 index 0000000000..b4f2c87ea2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_14.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_3.74.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_3.74.attr new file mode 100644 index 0000000000..4b0e26bda5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_3.74.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.74 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_3.98.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_3.98.attr new file mode 100644 index 0000000000..db0e925130 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_3.98.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.98 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_4.13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_4.13.attr new file mode 100644 index 0000000000..8e3484d48e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_4.13.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.13 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_4.45.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_4.45.attr new file mode 100644 index 0000000000..4f0b9bce68 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_4.45.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.45 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_4.52.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_4.52.attr new file mode 100644 index 0000000000..54e31f291f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_4.52.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.52 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_4.57.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_4.57.attr new file mode 100644 index 0000000000..f8c6a6c828 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_4.57.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.57 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_6.51.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_6.51.attr new file mode 100644 index 0000000000..de741eae3a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_6.51.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 6.51 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_7.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_7.02.attr new file mode 100644 index 0000000000..ed7f062cf5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_7.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_7.43.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_7.43.attr new file mode 100644 index 0000000000..748ac900d6 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_7.43.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.43 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_9.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_9.71.attr new file mode 100644 index 0000000000..29d901bdfd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_9.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 9.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_LIFTED_INDEX.attr new file mode 100644 index 0000000000..e2cf799bbf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_PRECIP_WATER.attr new file mode 100644 index 0000000000..2c88a0f5d8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Precipitable Water (PW) +displayUnitStr=SounderPrecipWaterPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_SFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_SFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..311972a597 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_SFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_VIS.attr new file mode 100644 index 0000000000..d99cea7530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SND_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Visible imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SNOW_IND.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SNOW_IND.attr new file mode 100644 index 0000000000..de51b42452 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SNOW_IND.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow indicator +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SNOW_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SNOW_WATER.attr new file mode 100644 index 0000000000..4eec894549 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SNOW_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow-water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SURFACE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SURFACE_TYPE.attr new file mode 100644 index 0000000000..0cc7cca419 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/SURFACE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/VIS.attr new file mode 100644 index 0000000000..56a43a4d7e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/VIS.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager Visible +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/WV.attr new file mode 100644 index 0000000000..e34cef65ef --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/WV.attr @@ -0,0 +1,8 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 6.7-6.5 micron IR (WV) +displayUnitStr=DerivedWVPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/default.attr new file mode 100644 index 0000000000..267d61ad67 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_NOAA19/default.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/CLOUD_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/CLOUD_WATER.attr new file mode 100644 index 0000000000..4e62b6105c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/CLOUD_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Cloud water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/DERIVED_CAPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/DERIVED_CAPE.attr new file mode 100644 index 0000000000..98ba73b6fb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/DERIVED_CAPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Available Potential Energy (CAPE) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/DERIVED_CONV_INH.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/DERIVED_CONV_INH.attr new file mode 100644 index 0000000000..57a4f38069 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/DERIVED_CONV_INH.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Convective Inhibition +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/DERIVED_LAND_SEA_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/DERIVED_LAND_SEA_TEMP.attr new file mode 100644 index 0000000000..7a23e38f72 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/DERIVED_LAND_SEA_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived land-sea temp +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/DERIVED_VOLCANO_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/DERIVED_VOLCANO_IMG.attr new file mode 100644 index 0000000000..2229ec1825 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/DERIVED_VOLCANO_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Volcano Imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/DERIVED_WINDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/DERIVED_WINDEX.attr new file mode 100644 index 0000000000..089564cdb4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/DERIVED_WINDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Wind Index(WINDEX) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/DMPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/DMPI.attr new file mode 100644 index 0000000000..a899181e1c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/DMPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Dry Microburst Potential Index (DMPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/GINI_POES-NPOESS.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/GINI_POES-NPOESS.xml new file mode 100644 index 0000000000..a498bbacbb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/GINI_POES-NPOESS.xml @@ -0,0 +1,23 @@ + + + true + GINI_POES-NPOESS + SATELLITE + +! This must match the "creatingEntity" in the +! satellite DB table valid values are +pluginName=satellite +satelliteName=POES-NPOESS +legendColor=RGB {200, 200, 200} + + GINI + GiniSatellite + sectorID + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/GRID_CLOUD_AMT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/GRID_CLOUD_AMT.attr new file mode 100644 index 0000000000..8fd34efc0b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/GRID_CLOUD_AMT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Amount +displayUnitStr=SounderCloudAmountPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/GRID_CTOP_PRES_HGHT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/GRID_CTOP_PRES_HGHT.attr new file mode 100644 index 0000000000..1c64cd80c4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/GRID_CTOP_PRES_HGHT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Gridded Cloud Top Pressure or Height +displayUnitStr=SounderCloudTopHeightPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/ICE_CONC.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/ICE_CONC.attr new file mode 100644 index 0000000000..9efb75ca77 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/ICE_CONC.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice concentrations +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/ICE_EDGE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/ICE_EDGE.attr new file mode 100644 index 0000000000..9379c1e0de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/ICE_EDGE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice edge +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/ICE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/ICE_TYPE.attr new file mode 100644 index 0000000000..e8befd0987 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/ICE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Ice type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/IMG_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/IMG_LIFTED_INDEX.attr new file mode 100644 index 0000000000..4ef5aa938c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/IMG_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/IMG_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/IMG_PRECIP_WATER.attr new file mode 100644 index 0000000000..646aeffd51 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/IMG_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Precipitable Water (PW) +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/IMG_SRFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/IMG_SRFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..bdd4ad59a5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/IMG_SRFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/IR.attr new file mode 100644 index 0000000000..ab8d27b7e8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/IR.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/IR13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/IR13.attr new file mode 100644 index 0000000000..43b1bf4b32 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/IR13.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 13 micron (IR) +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/LOW_CLOUD_IMG.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/LOW_CLOUD_IMG.attr new file mode 100644 index 0000000000..d7926c72dd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/LOW_CLOUD_IMG.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Low cloud base imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/MDPI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/MDPI.attr new file mode 100644 index 0000000000..cef6535f0e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/MDPI.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Derived Microburst Day Potential Index (MDPI) +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/NORMAL_TPW_PERCENT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/NORMAL_TPW_PERCENT.attr new file mode 100644 index 0000000000..6bd99b6f42 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/NORMAL_TPW_PERCENT.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Percent of Normal TPW +displayUnitStr=PercentOfNormalTPWPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/POLAR_3.7u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/POLAR_3.7u.attr new file mode 100644 index 0000000000..4d633f1530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/POLAR_3.7u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.7u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/POLAR_3.9u.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/POLAR_3.9u.attr new file mode 100644 index 0000000000..06854db01e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/POLAR_3.9u.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar 3.9u +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/POLAR_IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/POLAR_IR.attr new file mode 100644 index 0000000000..6a20f7d566 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/POLAR_IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/POLAR_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/POLAR_VIS.attr new file mode 100644 index 0000000000..d6578a334f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/POLAR_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Polar Vis +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/RAIN_RATE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/RAIN_RATE.attr new file mode 100644 index 0000000000..7305eb7685 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/RAIN_RATE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Rain fall rate +displayUnitStr=RainfallRatePixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SCATTEROMETER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SCATTEROMETER.attr new file mode 100644 index 0000000000..a05f578deb --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SCATTEROMETER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Scatterometer Data +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SFC_WETNESS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SFC_WETNESS.attr new file mode 100644 index 0000000000..9753cf44db --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SFC_WETNESS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wetness +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SFC_WIND_SPD.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SFC_WIND_SPD.attr new file mode 100644 index 0000000000..04808eb1b9 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SFC_WIND_SPD.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface wind speeds over oceans and Great Lakes +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_11.03.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_11.03.attr new file mode 100644 index 0000000000..547dd6e061 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_11.03.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 11.03 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_12.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_12.02.attr new file mode 100644 index 0000000000..244de73617 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_12.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_12.66.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_12.66.attr new file mode 100644 index 0000000000..462e666f93 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_12.66.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 12.66 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_13.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_13.37.attr new file mode 100644 index 0000000000..9cb1aa9c5e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_13.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_13.64.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_13.64.attr new file mode 100644 index 0000000000..9f58a6bac2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_13.64.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 13.64 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_14.06.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_14.06.attr new file mode 100644 index 0000000000..de2a6e2798 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_14.06.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.06 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_14.37.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_14.37.attr new file mode 100644 index 0000000000..da7800808b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_14.37.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.37 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_14.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_14.71.attr new file mode 100644 index 0000000000..b4f2c87ea2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_14.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 14.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_3.74.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_3.74.attr new file mode 100644 index 0000000000..4b0e26bda5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_3.74.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.74 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_3.98.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_3.98.attr new file mode 100644 index 0000000000..db0e925130 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_3.98.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 3.98 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_4.13.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_4.13.attr new file mode 100644 index 0000000000..8e3484d48e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_4.13.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.13 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_4.45.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_4.45.attr new file mode 100644 index 0000000000..4f0b9bce68 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_4.45.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.45 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_4.52.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_4.52.attr new file mode 100644 index 0000000000..54e31f291f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_4.52.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.52 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_4.57.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_4.57.attr new file mode 100644 index 0000000000..f8c6a6c828 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_4.57.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 4.57 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_6.51.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_6.51.attr new file mode 100644 index 0000000000..de741eae3a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_6.51.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 6.51 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_7.02.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_7.02.attr new file mode 100644 index 0000000000..ed7f062cf5 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_7.02.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.02 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_7.43.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_7.43.attr new file mode 100644 index 0000000000..748ac900d6 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_7.43.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 7.43 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_9.71.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_9.71.attr new file mode 100644 index 0000000000..29d901bdfd --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_9.71.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder 9.71 micron imagery +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_LIFTED_INDEX.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_LIFTED_INDEX.attr new file mode 100644 index 0000000000..e2cf799bbf --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_LIFTED_INDEX.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Lifted Index (LI) +displayUnitStr=SounderLiftedIndexPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_PRECIP_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_PRECIP_WATER.attr new file mode 100644 index 0000000000..2c88a0f5d8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_PRECIP_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Precipitable Water (PW) +displayUnitStr=SounderPrecipWaterPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_SFC_SKIN_TEMP.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_SFC_SKIN_TEMP.attr new file mode 100644 index 0000000000..311972a597 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_SFC_SKIN_TEMP.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Based Derived Surface Skin Temp (SFC Skin) +displayUnitStr=SounderSkinTempPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_VIS.attr new file mode 100644 index 0000000000..d99cea7530 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SND_VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Sounder Visible imagery +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SNOW_IND.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SNOW_IND.attr new file mode 100644 index 0000000000..de51b42452 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SNOW_IND.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow indicator +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SNOW_WATER.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SNOW_WATER.attr new file mode 100644 index 0000000000..4eec894549 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SNOW_WATER.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Snow-water content +displayUnitStr=PrecipPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SURFACE_TYPE.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SURFACE_TYPE.attr new file mode 100644 index 0000000000..0cc7cca419 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/SURFACE_TYPE.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Surface type +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/VIS.attr new file mode 100644 index 0000000000..56a43a4d7e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/VIS.attr @@ -0,0 +1,8 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager Visible +displayUnitStr=GenericPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/WV.attr new file mode 100644 index 0000000000..e34cef65ef --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/WV.attr @@ -0,0 +1,8 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +! The DB values have spaces but imageType must use " "s. +imageType=Imager 6.7-6.5 micron IR (WV) +displayUnitStr=DerivedWVPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/default.attr new file mode 100644 index 0000000000..267d61ad67 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GINI_POES-NPOESS/default.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=Imager 11 micron IR +displayUnitStr=IRPixel +alpha=1.0 +brightness=1.0 +contrast=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GMS/GMS.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GMS/GMS.xml new file mode 100644 index 0000000000..7422ea0d4a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GMS/GMS.xml @@ -0,0 +1,24 @@ + + + true + GMS + SATELLITE + +! This must match the value in the +! mcidas DB table valid values are +! (GOES12, GOES13, .....) +satelliteName=GMS +pluginName=mcidas +legendColor=RGB {200, 200, 200} + + Standard,McIdas,GMS + McidasSatellite + areaName,resolution + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GMS/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GMS/IR.attr new file mode 100644 index 0000000000..33b222506e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GMS/IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR +displayUnitStr=C +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GMS/IR2.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GMS/IR2.attr new file mode 100644 index 0000000000..ca1a5231de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GMS/IR2.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR2 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GMS/IR3.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GMS/IR3.attr new file mode 100644 index 0000000000..9754808068 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GMS/IR3.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR3 +displayUnitStr=C +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GMS/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GMS/VIS.attr new file mode 100644 index 0000000000..b7e1bd693a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GMS/VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=VIS +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GMS/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GMS/WV.attr new file mode 100644 index 0000000000..76b1ae905b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GMS/WV.attr @@ -0,0 +1,7 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=WV +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES10/GOES10.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES10/GOES10.xml new file mode 100644 index 0000000000..38128d6d03 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES10/GOES10.xml @@ -0,0 +1,24 @@ + + + true + GOES10 + SATELLITE + +! This must match the value in the +! mcidas DB table valid values are +! (GOES12, GOES13, .....) +satelliteName=GOES10 +pluginName=mcidas +legendColor=RGB {200, 200, 200} + + McIdas,GOES + McidasSatellite + areaName,resolution + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES10/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES10/IR.attr new file mode 100644 index 0000000000..33b222506e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES10/IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR +displayUnitStr=C +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES10/IR2.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES10/IR2.attr new file mode 100644 index 0000000000..ca1a5231de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES10/IR2.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR2 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES10/IR3.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES10/IR3.attr new file mode 100644 index 0000000000..9754808068 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES10/IR3.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR3 +displayUnitStr=C +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES10/IR4.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES10/IR4.attr new file mode 100644 index 0000000000..8aee7c020c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES10/IR4.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR4 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES10/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES10/VIS.attr new file mode 100644 index 0000000000..b7e1bd693a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES10/VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=VIS +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES10/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES10/WV.attr new file mode 100644 index 0000000000..76b1ae905b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES10/WV.attr @@ -0,0 +1,7 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=WV +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/GOES11.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/GOES11.xml index 0b55b3fb2e..5ec07d4a51 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/GOES11.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/GOES11.xml @@ -9,13 +9,14 @@ ! (GOES12, GOES13, .....) satelliteName=GOES11 pluginName=mcidas +legendColor=RGB {200, 200, 200} McIdas,GOES McidasSatellite - ${areaName}_${resolution} + areaName,resolution CLOSEST_BEFORE_OR_AFTER - 30 + 60 USE_DATA_TIMES 10 48 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/IR.attr index f1b21023bf..33b222506e 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/IR.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/IR.attr @@ -1,6 +1,5 @@ -legend_color=RGB {200, 200, 200} colorMapName=lingray -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=IR displayUnitStr=C alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/IR2.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/IR2.attr index 212a010cc9..ca1a5231de 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/IR2.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/IR2.attr @@ -1,8 +1,7 @@ -legend_color=RGB {200, 200, 200} colorMapName=lingray -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=IR2 -displayUnitStr=C +displayUnitStr=BRIT alpha=1.0 brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/IR3.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/IR3.attr new file mode 100644 index 0000000000..9754808068 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/IR3.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR3 +displayUnitStr=C +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/IR4.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/IR4.attr new file mode 100644 index 0000000000..8aee7c020c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/IR4.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR4 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/VIS.attr index 10f9b65351..b7e1bd693a 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/VIS.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/VIS.attr @@ -1,6 +1,5 @@ -legend_color=RGB {200, 200, 200} colorMapName=lingray -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=VIS displayUnitStr=BRIT alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/WV.attr index 8b25ce377d..76b1ae905b 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/WV.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES11/WV.attr @@ -1,6 +1,5 @@ -legend_color=RGB {200, 200, 200} colorMapName=watvap -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=WV displayUnitStr=BRIT alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES12/GOES12.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES12/GOES12.xml index c623bed70d..d0ca3ba1e9 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES12/GOES12.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES12/GOES12.xml @@ -9,10 +9,11 @@ ! (GOES12, GOES13, .....) satelliteName=GOES12 pluginName=mcidas +legendColor=RGB {200, 200, 200} McIdas,GOES McidasSatellite - ${areaName}_${resolution} + areaName,resolution CLOSEST_BEFORE_OR_AFTER 60 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES12/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES12/IR.attr new file mode 100644 index 0000000000..33b222506e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES12/IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR +displayUnitStr=C +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES12/IR2.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES12/IR2.attr new file mode 100644 index 0000000000..ca1a5231de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES12/IR2.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR2 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES12/IR3.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES12/IR3.attr new file mode 100644 index 0000000000..9754808068 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES12/IR3.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR3 +displayUnitStr=C +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES12/IR4.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES12/IR4.attr new file mode 100644 index 0000000000..8aee7c020c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES12/IR4.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR4 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES12/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES12/VIS.attr new file mode 100644 index 0000000000..b7e1bd693a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES12/VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=VIS +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES12/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES12/WV.attr new file mode 100644 index 0000000000..76b1ae905b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES12/WV.attr @@ -0,0 +1,7 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=WV +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/GOES13.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/GOES13.xml index 2f2a435f6f..aacc470974 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/GOES13.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/GOES13.xml @@ -9,10 +9,11 @@ ! (GOES12, GOES13, .....) satelliteName=GOES13 pluginName=mcidas +legendColor=RGB {200, 200, 200} - McIdas,GOES + Standard,McIdas,GOES McidasSatellite - ${areaName}_${resolution} + areaName,resolution CLOSEST_BEFORE_OR_AFTER 60 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/IR.attr index f1b21023bf..33b222506e 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/IR.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/IR.attr @@ -1,6 +1,5 @@ -legend_color=RGB {200, 200, 200} colorMapName=lingray -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=IR displayUnitStr=C alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/IR2.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/IR2.attr index 212a010cc9..eb0f7432f7 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/IR2.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/IR2.attr @@ -1,6 +1,5 @@ -legend_color=RGB {200, 200, 200} colorMapName=lingray -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=IR2 displayUnitStr=C alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/IR3.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/IR3.attr new file mode 100644 index 0000000000..9754808068 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/IR3.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR3 +displayUnitStr=C +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/IR4.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/IR4.attr new file mode 100644 index 0000000000..8aee7c020c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/IR4.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR4 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/VIS.attr index 10f9b65351..b7e1bd693a 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/VIS.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/VIS.attr @@ -1,6 +1,5 @@ -legend_color=RGB {200, 200, 200} colorMapName=lingray -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=VIS displayUnitStr=BRIT alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/WV.attr index 8b25ce377d..76b1ae905b 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/WV.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES13/WV.attr @@ -1,6 +1,5 @@ -legend_color=RGB {200, 200, 200} colorMapName=watvap -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=WV displayUnitStr=BRIT alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/GOES15.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/GOES15.xml index 1f2f088166..12c985746c 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/GOES15.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/GOES15.xml @@ -9,13 +9,14 @@ ! (GOES12, GOES13, .....) satelliteName=GOES15 pluginName=mcidas +legendColor=RGB {200, 200, 200} - McIdas,GOES + Standard,McIdas,GOES McidasSatellite - ${areaName}_${resolution} + areaName,resolution CLOSEST_BEFORE_OR_AFTER - 30 + 60 USE_DATA_TIMES 10 48 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/IR.attr index f1b21023bf..33b222506e 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/IR.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/IR.attr @@ -1,6 +1,5 @@ -legend_color=RGB {200, 200, 200} colorMapName=lingray -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=IR displayUnitStr=C alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/IR2.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/IR2.attr index 212a010cc9..eb0f7432f7 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/IR2.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/IR2.attr @@ -1,6 +1,5 @@ -legend_color=RGB {200, 200, 200} colorMapName=lingray -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=IR2 displayUnitStr=C alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/IR3.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/IR3.attr new file mode 100644 index 0000000000..9754808068 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/IR3.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR3 +displayUnitStr=C +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/IR4.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/IR4.attr new file mode 100644 index 0000000000..8aee7c020c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/IR4.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR4 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/VIS.attr index 10f9b65351..b7e1bd693a 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/VIS.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/VIS.attr @@ -1,6 +1,5 @@ -legend_color=RGB {200, 200, 200} colorMapName=lingray -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=VIS displayUnitStr=BRIT alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/WV.attr index 8b25ce377d..76b1ae905b 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/WV.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES15/WV.attr @@ -1,6 +1,5 @@ -legend_color=RGB {200, 200, 200} colorMapName=watvap -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=WV displayUnitStr=BRIT alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES6/GOES6.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES6/GOES6.xml new file mode 100644 index 0000000000..56f1862362 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES6/GOES6.xml @@ -0,0 +1,24 @@ + + + true + GOES6 + SATELLITE + +! This must match the value in the +! mcidas DB table valid values are +! (GOES12, GOES13, .....) +satelliteName=GOES6 +pluginName=mcidas +legendColor=RGB {200, 200, 200} + + McIdas,GOES + McidasSatellite + areaName,resolution + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES6/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES6/IR.attr new file mode 100644 index 0000000000..33b222506e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES6/IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR +displayUnitStr=C +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES6/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES6/VIS.attr new file mode 100644 index 0000000000..b7e1bd693a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES6/VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=VIS +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES6/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES6/WV.attr new file mode 100644 index 0000000000..76b1ae905b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES6/WV.attr @@ -0,0 +1,7 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=WV +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES7/GOES7.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES7/GOES7.xml new file mode 100644 index 0000000000..440b5295a0 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES7/GOES7.xml @@ -0,0 +1,24 @@ + + + true + GOES7 + SATELLITE + +! This must match the value in the +! mcidas DB table valid values are +! (GOES12, GOES13, .....) +satelliteName=GOES7 +pluginName=mcidas +legendColor=RGB {200, 200, 200} + + McIdas,GOES + McidasSatellite + areaName,resolution + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES7/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES7/IR.attr new file mode 100644 index 0000000000..33b222506e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES7/IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR +displayUnitStr=C +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES7/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES7/VIS.attr new file mode 100644 index 0000000000..b7e1bd693a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES7/VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=VIS +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES7/VISPC.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES7/VISPC.attr new file mode 100644 index 0000000000..b25c7e0046 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES7/VISPC.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=VISPC +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES7/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES7/WV.attr new file mode 100644 index 0000000000..76b1ae905b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES7/WV.attr @@ -0,0 +1,7 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=WV +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES8/GOES8.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES8/GOES8.xml new file mode 100644 index 0000000000..fb2b443064 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES8/GOES8.xml @@ -0,0 +1,24 @@ + + + true + GOES8 + SATELLITE + +! This must match the value in the +! mcidas DB table valid values are +! (GOES12, GOES13, .....) +satelliteName=GOES8 +pluginName=mcidas +legendColor=RGB {200, 200, 200} + + McIdas,GOES + McidasSatellite + areaName,resolution + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES8/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES8/IR.attr new file mode 100644 index 0000000000..33b222506e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES8/IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR +displayUnitStr=C +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES8/IR2.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES8/IR2.attr new file mode 100644 index 0000000000..ca1a5231de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES8/IR2.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR2 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES8/IR3.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES8/IR3.attr new file mode 100644 index 0000000000..9754808068 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES8/IR3.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR3 +displayUnitStr=C +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES8/IR4.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES8/IR4.attr new file mode 100644 index 0000000000..8aee7c020c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES8/IR4.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR4 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES8/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES8/VIS.attr new file mode 100644 index 0000000000..b7e1bd693a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES8/VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=VIS +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES8/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES8/WV.attr new file mode 100644 index 0000000000..76b1ae905b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES8/WV.attr @@ -0,0 +1,7 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=WV +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES9/GOES9.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES9/GOES9.xml new file mode 100644 index 0000000000..95a29b79fc --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES9/GOES9.xml @@ -0,0 +1,24 @@ + + + true + GOES9 + SATELLITE + +! This must match the value in the +! mcidas DB table valid values are +! (GOES12, GOES13, .....) +satelliteName=GOES9 +pluginName=mcidas +legendColor=RGB {200, 200, 200} + + McIdas,GOES + McidasSatellite + areaName,resolution + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES9/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES9/IR.attr new file mode 100644 index 0000000000..33b222506e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES9/IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR +displayUnitStr=C +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES9/IR2.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES9/IR2.attr new file mode 100644 index 0000000000..ca1a5231de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES9/IR2.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR2 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES9/IR3.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES9/IR3.attr new file mode 100644 index 0000000000..9754808068 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES9/IR3.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR3 +displayUnitStr=C +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES9/IR4.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES9/IR4.attr new file mode 100644 index 0000000000..8aee7c020c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES9/IR4.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR4 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES9/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES9/VIS.attr new file mode 100644 index 0000000000..b7e1bd693a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES9/VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=VIS +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES9/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES9/WV.attr new file mode 100644 index 0000000000..76b1ae905b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/GOES9/WV.attr @@ -0,0 +1,7 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=WV +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Global/85GHZ.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Global/85GHZ.attr new file mode 100644 index 0000000000..62364ecce6 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Global/85GHZ.attr @@ -0,0 +1,7 @@ +colorMapName=microrain +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=85GHZ +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Global/89GHZ.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Global/89GHZ.attr new file mode 100644 index 0000000000..4201eef380 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Global/89GHZ.attr @@ -0,0 +1,7 @@ +colorMapName=micro89a +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=89GHZ +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Global/Global.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Global/Global.xml new file mode 100644 index 0000000000..2ff7d8a230 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Global/Global.xml @@ -0,0 +1,24 @@ + + + true + Global + SATELLITE + +! This must match the value in the +! mcidas DB table valid values are +! (GOES12, GOES13, .....) +satelliteName=Global +pluginName=mcidas +legendColor=RGB {200, 200, 200} + + Standard,McIdas + McidasSatellite + areaName,resolution + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Global/PWAT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Global/PWAT.attr new file mode 100644 index 0000000000..79c3154eea --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Global/PWAT.attr @@ -0,0 +1,7 @@ +colorMapName=micropw +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=PWAT +displayUnitStr=in +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Global/RAIN.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Global/RAIN.attr new file mode 100644 index 0000000000..c6176a9c37 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Global/RAIN.attr @@ -0,0 +1,7 @@ +colorMapName=microrain +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=RAIN +displayUnitStr=inches_per_hour +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Global/SSMI.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Global/SSMI.attr new file mode 100644 index 0000000000..32146c05d8 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Global/SSMI.attr @@ -0,0 +1,7 @@ +colorMapName=ssmi_opc +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=SSMI +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Global/WINDS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Global/WINDS.attr new file mode 100644 index 0000000000..ab1747d292 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Global/WINDS.attr @@ -0,0 +1,7 @@ +colorMapName=ssmiwind +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=WINDS +displayUnitStr=kn +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/IND/IND.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/IND/IND.xml index 6dcb86197b..16f9b1a5fb 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/IND/IND.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/IND/IND.xml @@ -3,22 +3,20 @@ true IND SATELLITE - McIdas + Standard,McIdas McidasSatellite - ${areaName}_${resolution} + areaName,resolution CLOSEST_BEFORE_OR_AFTER - 30 + 60 USE_DATA_TIMES 10 48 BasicWX_US pluginName=mcidas -! mcidas DB table valid values are satelliteName=IND -! (GOES12, GOES13, .....) -! This must match the value in the +legendColor=RGB {200, 200, 200} diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/IND/IR3.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/IND/IR3.attr index 9c634a63c3..9754808068 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/IND/IR3.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/IND/IR3.attr @@ -1,6 +1,5 @@ -legend_color=RGB {200, 200, 200} colorMapName=lingray -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=IR3 displayUnitStr=C alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/IND/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/IND/VIS.attr index 10f9b65351..b7e1bd693a 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/IND/VIS.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/IND/VIS.attr @@ -1,6 +1,5 @@ -legend_color=RGB {200, 200, 200} colorMapName=lingray -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=VIS displayUnitStr=BRIT alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/IND/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/IND/WV.attr index 8b25ce377d..76b1ae905b 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/IND/WV.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/IND/WV.attr @@ -1,6 +1,5 @@ -legend_color=RGB {200, 200, 200} colorMapName=watvap -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=WV displayUnitStr=BRIT alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/HRVIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/HRVIS.attr new file mode 100644 index 0000000000..b00333aad0 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/HRVIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=HRVIS +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/IR.attr new file mode 100644 index 0000000000..9af1e721f0 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/IR_10.8.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/IR_10.8.attr new file mode 100644 index 0000000000..4c18a58af2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/IR_10.8.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR-10.8 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/IR_12.0.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/IR_12.0.attr new file mode 100644 index 0000000000..8688bfdb38 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/IR_12.0.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR-12.0 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/IR_8.7.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/IR_8.7.attr new file mode 100644 index 0000000000..5a4da2fc84 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/IR_8.7.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR-8.7 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/METEOSAT10.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/METEOSAT10.xml new file mode 100644 index 0000000000..dd400ab92f --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/METEOSAT10.xml @@ -0,0 +1,24 @@ + + + true + METEOSAT10 + SATELLITE + +! This must match the value in the +! mcidas DB table valid values are +! (GOES12, GOES13, .....) +satelliteName=METEOSAT10 +pluginName=mcidas +legendColor=RGB {200, 200, 200} + + McIdas,METEOSAT + McidasSatellite + areaName,resolution + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/NIR_1.6.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/NIR_1.6.attr new file mode 100644 index 0000000000..bfa6e31447 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/NIR_1.6.attr @@ -0,0 +1,7 @@ +colorMapName=visgray2 +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=NIR-1.6 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/SWIR_3.9.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/SWIR_3.9.attr new file mode 100644 index 0000000000..99b6bb1910 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/SWIR_3.9.attr @@ -0,0 +1,7 @@ +colorMapName=ir_grb +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=SWIR-3.9 +displayUnitStr=C +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/VIS_0.6.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/VIS_0.6.attr new file mode 100644 index 0000000000..9d7a1c2c46 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/VIS_0.6.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=VIS-0.6 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/VIS_0.8.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/VIS_0.8.attr new file mode 100644 index 0000000000..f2c8c48a95 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/VIS_0.8.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=VIS-0.8 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/WV_6.2.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/WV_6.2.attr new file mode 100644 index 0000000000..39f5b48d5d --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/WV_6.2.attr @@ -0,0 +1,7 @@ +colorMapName=wv_tpc +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=WV-6.2 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/WV_7.3.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/WV_7.3.attr new file mode 100644 index 0000000000..a4fe8e8f93 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT10/WV_7.3.attr @@ -0,0 +1,7 @@ +colorMapName=wv_tpc +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=WV-7.3 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT3/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT3/IR.attr new file mode 100644 index 0000000000..9af1e721f0 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT3/IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT3/METEOSAT3.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT3/METEOSAT3.xml new file mode 100644 index 0000000000..4d531a6d3a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT3/METEOSAT3.xml @@ -0,0 +1,24 @@ + + + true + METEOSAT3 + SATELLITE + +! This must match the value in the +! mcidas DB table valid values are +! (GOES12, GOES13, .....) +satelliteName=METEOSAT3 +pluginName=mcidas +legendColor=RGB {200, 200, 200} + + McIdas,METEOSAT + McidasSatellite + areaName,resolution + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT3/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT3/VIS.attr new file mode 100644 index 0000000000..b7e1bd693a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT3/VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=VIS +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT3/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT3/WV.attr new file mode 100644 index 0000000000..76b1ae905b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT3/WV.attr @@ -0,0 +1,7 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=WV +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT5/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT5/IR.attr new file mode 100644 index 0000000000..9af1e721f0 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT5/IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT5/IR3.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT5/IR3.attr new file mode 100644 index 0000000000..9754808068 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT5/IR3.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR3 +displayUnitStr=C +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT5/METEOSAT5.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT5/METEOSAT5.xml new file mode 100644 index 0000000000..5ef932c765 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT5/METEOSAT5.xml @@ -0,0 +1,24 @@ + + + true + METEOSAT5 + SATELLITE + +! This must match the value in the +! mcidas DB table valid values are +! (GOES12, GOES13, .....) +satelliteName=METEOSAT5 +pluginName=mcidas +legendColor=RGB {200, 200, 200} + + McIdas,METEOSAT + McidasSatellite + areaName,resolution + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT5/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT5/VIS.attr new file mode 100644 index 0000000000..b7e1bd693a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT5/VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=VIS +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT5/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT5/WV.attr new file mode 100644 index 0000000000..76b1ae905b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT5/WV.attr @@ -0,0 +1,7 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=WV +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT6/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT6/IR.attr new file mode 100644 index 0000000000..9af1e721f0 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT6/IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT6/METEOSAT6.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT6/METEOSAT6.xml new file mode 100644 index 0000000000..29a2a2806e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT6/METEOSAT6.xml @@ -0,0 +1,24 @@ + + + true + METEOSAT6 + SATELLITE + +! This must match the value in the +! mcidas DB table valid values are +! (GOES12, GOES13, .....) +satelliteName=METEOSAT6 +pluginName=mcidas +legendColor=RGB {200, 200, 200} + + McIdas,METEOSAT + McidasSatellite + areaName,resolution + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT6/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT6/VIS.attr new file mode 100644 index 0000000000..b7e1bd693a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT6/VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=VIS +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT6/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT6/WV.attr new file mode 100644 index 0000000000..76b1ae905b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT6/WV.attr @@ -0,0 +1,7 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=WV +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT7/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT7/IR.attr new file mode 100644 index 0000000000..9af1e721f0 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT7/IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT7/IR3.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT7/IR3.attr new file mode 100644 index 0000000000..9754808068 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT7/IR3.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR3 +displayUnitStr=C +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT7/METEOSAT7.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT7/METEOSAT7.xml new file mode 100644 index 0000000000..589257d8e4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT7/METEOSAT7.xml @@ -0,0 +1,24 @@ + + + true + METEOSAT7 + SATELLITE + +! This must match the value in the +! mcidas DB table valid values are +! (GOES12, GOES13, .....) +satelliteName=METEOSAT7 +pluginName=mcidas +legendColor=RGB {200, 200, 200} + + McIdas,METEOSAT + McidasSatellite + areaName,resolution + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT7/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT7/VIS.attr new file mode 100644 index 0000000000..b7e1bd693a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT7/VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=VIS +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT7/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT7/WV.attr new file mode 100644 index 0000000000..76b1ae905b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT7/WV.attr @@ -0,0 +1,7 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=WV +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/HRVIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/HRVIS.attr new file mode 100644 index 0000000000..b00333aad0 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/HRVIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=HRVIS +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/IR.attr new file mode 100644 index 0000000000..9af1e721f0 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/IR_10.8.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/IR_10.8.attr new file mode 100644 index 0000000000..4c18a58af2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/IR_10.8.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR-10.8 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/IR_12.0.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/IR_12.0.attr new file mode 100644 index 0000000000..8688bfdb38 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/IR_12.0.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR-12.0 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/IR_8.7.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/IR_8.7.attr new file mode 100644 index 0000000000..5a4da2fc84 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/IR_8.7.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR-8.7 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/METEOSAT8.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/METEOSAT8.xml new file mode 100644 index 0000000000..b26a04018c --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/METEOSAT8.xml @@ -0,0 +1,24 @@ + + + true + METEOSAT8 + SATELLITE + +! This must match the value in the +! mcidas DB table valid values are +! (GOES12, GOES13, .....) +satelliteName=METEOSAT8 +pluginName=mcidas +legendColor=RGB {200, 200, 200} + + McIdas,METEOSAT + McidasSatellite + areaName,resolution + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/NIR_1.6.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/NIR_1.6.attr new file mode 100644 index 0000000000..bfa6e31447 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/NIR_1.6.attr @@ -0,0 +1,7 @@ +colorMapName=visgray2 +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=NIR-1.6 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/SWIR_3.9.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/SWIR_3.9.attr new file mode 100644 index 0000000000..99b6bb1910 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/SWIR_3.9.attr @@ -0,0 +1,7 @@ +colorMapName=ir_grb +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=SWIR-3.9 +displayUnitStr=C +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/VIS_0.6.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/VIS_0.6.attr new file mode 100644 index 0000000000..9d7a1c2c46 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/VIS_0.6.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=VIS-0.6 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/VIS_0.8.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/VIS_0.8.attr new file mode 100644 index 0000000000..f2c8c48a95 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/VIS_0.8.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=VIS-0.8 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/WV_6.2.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/WV_6.2.attr new file mode 100644 index 0000000000..39f5b48d5d --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/WV_6.2.attr @@ -0,0 +1,7 @@ +colorMapName=wv_tpc +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=WV-6.2 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/WV_7.3.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/WV_7.3.attr new file mode 100644 index 0000000000..a4fe8e8f93 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT8/WV_7.3.attr @@ -0,0 +1,7 @@ +colorMapName=wv_tpc +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=WV-7.3 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/HRVIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/HRVIS.attr new file mode 100644 index 0000000000..b00333aad0 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/HRVIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=HRVIS +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/IR.attr new file mode 100644 index 0000000000..9af1e721f0 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/IR_10.8.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/IR_10.8.attr new file mode 100644 index 0000000000..4c18a58af2 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/IR_10.8.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR-10.8 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/IR_12.0.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/IR_12.0.attr new file mode 100644 index 0000000000..8688bfdb38 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/IR_12.0.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR-12.0 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/IR_8.7.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/IR_8.7.attr new file mode 100644 index 0000000000..5a4da2fc84 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/IR_8.7.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR-8.7 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/METEOSAT9.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/METEOSAT9.xml new file mode 100644 index 0000000000..8fe36c1ca4 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/METEOSAT9.xml @@ -0,0 +1,24 @@ + + + true + METEOSAT9 + SATELLITE + +! This must match the value in the +! mcidas DB table valid values are +! (GOES12, GOES13, .....) +satelliteName=METEOSAT9 +pluginName=mcidas +legendColor=RGB {200, 200, 200} + + Standard,McIdas,METEOSAT + McidasSatellite + areaName,resolution + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/NIR_1.6.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/NIR_1.6.attr new file mode 100644 index 0000000000..bfa6e31447 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/NIR_1.6.attr @@ -0,0 +1,7 @@ +colorMapName=visgray2 +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=NIR-1.6 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/SWIR_3.9.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/SWIR_3.9.attr new file mode 100644 index 0000000000..99b6bb1910 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/SWIR_3.9.attr @@ -0,0 +1,7 @@ +colorMapName=ir_grb +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=SWIR-3.9 +displayUnitStr=C +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/VIS_0.6.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/VIS_0.6.attr new file mode 100644 index 0000000000..9d7a1c2c46 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/VIS_0.6.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=VIS-0.6 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/VIS_0.8.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/VIS_0.8.attr new file mode 100644 index 0000000000..f2c8c48a95 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/VIS_0.8.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=VIS-0.8 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/WV_6.2.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/WV_6.2.attr new file mode 100644 index 0000000000..39f5b48d5d --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/WV_6.2.attr @@ -0,0 +1,7 @@ +colorMapName=wv_tpc +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=WV-6.2 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/WV_7.3.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/WV_7.3.attr new file mode 100644 index 0000000000..a4fe8e8f93 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/METEOSAT9/WV_7.3.attr @@ -0,0 +1,7 @@ +colorMapName=wv_tpc +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=WV-7.3 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTS/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTS/IR.attr new file mode 100644 index 0000000000..33b222506e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTS/IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR +displayUnitStr=C +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTS/IR2.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTS/IR2.attr new file mode 100644 index 0000000000..ca1a5231de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTS/IR2.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR2 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTS/MTS.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTS/MTS.xml new file mode 100644 index 0000000000..f80b966341 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTS/MTS.xml @@ -0,0 +1,24 @@ + + + true + MTS + SATELLITE + +! This must match the value in the +! mcidas DB table valid values are +! (GOES12, GOES13, .....) +satelliteName=MTS +pluginName=mcidas +legendColor=RGB {200, 200, 200} + + Standard,McIdas + McidasSatellite + areaName,resolution + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTS/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTS/VIS.attr new file mode 100644 index 0000000000..b7e1bd693a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTS/VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=VIS +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTS/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTS/WV.attr new file mode 100644 index 0000000000..76b1ae905b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTS/WV.attr @@ -0,0 +1,7 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=WV +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTSAT2/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTSAT2/IR.attr new file mode 100644 index 0000000000..33b222506e --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTSAT2/IR.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR +displayUnitStr=C +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTSAT2/IR2.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTSAT2/IR2.attr new file mode 100644 index 0000000000..ca1a5231de --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTSAT2/IR2.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=IR2 +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTSAT2/MTSAT2.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTSAT2/MTSAT2.xml new file mode 100644 index 0000000000..cadabb9735 --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTSAT2/MTSAT2.xml @@ -0,0 +1,24 @@ + + + true + MTSAT2 + SATELLITE + +! This must match the value in the +! mcidas DB table valid values are +! (GOES12, GOES13, .....) +satelliteName=MTSAT2 +pluginName=mcidas +legendColor=RGB {200, 200, 200} + + McIdas + McidasSatellite + areaName,resolution + + CLOSEST_BEFORE_OR_AFTER + 60 + USE_DATA_TIMES + 10 + 48 + BasicWX_US + diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTSAT2/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTSAT2/VIS.attr new file mode 100644 index 0000000000..b7e1bd693a --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTSAT2/VIS.attr @@ -0,0 +1,7 @@ +colorMapName=lingray +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=VIS +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTSAT2/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTSAT2/WV.attr new file mode 100644 index 0000000000..76b1ae905b --- /dev/null +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/MTSAT2/WV.attr @@ -0,0 +1,7 @@ +colorMapName=watvap +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml +imageType=WV +displayUnitStr=BRIT +alpha=1.0 +brightness=1.0 +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Meteosat/IR3.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Meteosat/IR3.attr deleted file mode 100644 index 58b5e2e87a..0000000000 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Meteosat/IR3.attr +++ /dev/null @@ -1,8 +0,0 @@ -legend_color=RGB {200, 200, 200} -colorMapName=lingray -colorBar=@dfltMcidasColorBar.xml -imageType=IR_10.8 -displayUnitStr=BRIT -alpha=1.0 -brightness=1.0 -contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Meteosat/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Meteosat/VIS.attr deleted file mode 100644 index 7cdffa871b..0000000000 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Meteosat/VIS.attr +++ /dev/null @@ -1,8 +0,0 @@ -legend_color=RGB {200, 200, 200} -colorMapName=lingray -colorBar=@dfltMcidasColorBar.xml -imageType=VIS_0.6 -displayUnitStr=BRIT -alpha=1.0 -brightness=1.0 -contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Meteosat/VIS_0.6.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Meteosat/VIS_0.6.attr deleted file mode 100644 index 7cdffa871b..0000000000 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/Meteosat/VIS_0.6.attr +++ /dev/null @@ -1,8 +0,0 @@ -legend_color=RGB {200, 200, 200} -colorMapName=lingray -colorBar=@dfltMcidasColorBar.xml -imageType=VIS_0.6 -displayUnitStr=BRIT -alpha=1.0 -brightness=1.0 -contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/CIRA.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/CIRA.attr index a0121719c8..f0c4765ce1 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/CIRA.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/CIRA.attr @@ -1,9 +1,10 @@ -legend_color=RGB {200, 200, 200} colorMapName=lingray -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=CIRA ! ? check that the displayUnits is correct? displayUnitStr=BRIT alpha=1.0 brightness=1.0 +contrast=1.0alpha=1.0 +brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/ELLROD.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/ELLROD.attr index 036e02e753..33e490e459 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/ELLROD.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/ELLROD.attr @@ -1,9 +1,10 @@ -legend_color=RGB {200, 200, 200} colorMapName=lingray -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=ELLROD ! ? check that the displayUnits is correct? displayUnitStr=BRIT alpha=1.0 brightness=1.0 +contrast=1.0alpha=1.0 +brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/IR.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/IR.attr index 6febcf46a3..33b222506e 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/IR.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/IR.attr @@ -1,8 +1,7 @@ -legend_color=RGB {200, 200, 200} colorMapName=lingray -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=IR displayUnitStr=C alpha=1.0 brightness=1.0 -contrast=1.0s \ No newline at end of file +contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/IR2.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/IR2.attr index 212a010cc9..eb0f7432f7 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/IR2.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/IR2.attr @@ -1,6 +1,5 @@ -legend_color=RGB {200, 200, 200} colorMapName=lingray -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=IR2 displayUnitStr=C alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/IR4.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/IR4.attr index 2e7f1eb3a8..3105b54bff 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/IR4.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/IR4.attr @@ -1,6 +1,5 @@ -legend_color=RGB {200, 200, 200} colorMapName=lingray -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=IR4 displayUnitStr=C alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/SPLIT.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/SPLIT.attr index c9c7e899b9..cfacab544c 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/SPLIT.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/SPLIT.attr @@ -1,9 +1,10 @@ -legend_color=RGB {200, 200, 200} colorMapName=lingray -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=SPLIT ! ? check that the displayUnits is correct? displayUnitStr=BRIT alpha=1.0 brightness=1.0 +contrast=1.0alpha=1.0 +brightness=1.0 contrast=1.0 \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/VAAC.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/VAAC.xml index a9915fc3d6..1e9ca92e0a 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/VAAC.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/VAAC.xml @@ -9,13 +9,14 @@ ! (GOES12, GOES13, .....) satelliteName=VAAC pluginName=mcidas +legendColor=RGB {200, 200, 200} - McIdas + Standard,McIdas McidasSatellite - ${areaName}_${resolution} + areaName,resolution CLOSEST_BEFORE_OR_AFTER - 30 + 60 USE_DATA_TIMES 10 48 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/VIS.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/VIS.attr index 10f9b65351..b7e1bd693a 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/VIS.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/VIS.attr @@ -1,6 +1,5 @@ -legend_color=RGB {200, 200, 200} colorMapName=lingray -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=VIS displayUnitStr=BRIT alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/WV.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/WV.attr index 8b25ce377d..76b1ae905b 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/WV.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SATELLITE/VAAC/WV.attr @@ -1,6 +1,5 @@ -legend_color=RGB {200, 200, 200} colorMapName=watvap -colorBar=@dfltMcidasColorBar.xml +colorBar=@ColorBars/Satellite/dfltMcidasColorBar.xml imageType=WV displayUnitStr=BRIT alpha=1.0 diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/ETAMOS/ETAMOS.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/ETAMOS/ETAMOS.xml index 1618f85253..0521d30989 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/ETAMOS/ETAMOS.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/ETAMOS/ETAMOS.xml @@ -5,14 +5,12 @@ SURFACE pluginName=bufrmosETA -reportType=ETA spiFile=MTR.spi legendString=ETAMOS -legend_color=RGB {0, 255, 0} -levelKey=Surface +legendColor=RGB {0, 255, 0} Forecast,MOS - PlotData + MosPlot CLOSEST_BEFORE_OR_AFTER diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/ETAMOS/standard.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/ETAMOS/standard.attr index c8c9de899f..fcf07b0b46 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/ETAMOS/standard.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/ETAMOS/standard.attr @@ -1,5 +1,5 @@ ! Attributes for the ETAMOS resource with "standard" plot model ! -plotModelName=etamos_standard +plotModel=@PlotModels/bufrmosETA/standard.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/FFG/FFG.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/FFG/FFG.xml index aeda63473b..23e66242b6 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/FFG/FFG.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/FFG/FFG.xml @@ -3,7 +3,11 @@ true FFG SURFACE - legend_color=RGB {33,100,255} + +pluginName=ffg +reportType=FFG +legendColor=RGB {33,100,255} + FFG diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/FFG/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/FFG/default.attr index b7cfdb9ce4..1c295122ff 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/FFG/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/FFG/default.attr @@ -1,6 +1,6 @@ ! Parameters and Attributes for the default FFG Resource ! ffg_param=FF01 -colorBar=@ffgColorBar.xml +colorBar=@ColorBars/FFG/ffgColorBar.xml displayValues=true symbolName=ASTERISK diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/FFG/guidance_03.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/FFG/guidance_03.attr index 829fa2cb3b..7f5fcde4f9 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/FFG/guidance_03.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/FFG/guidance_03.attr @@ -1,4 +1,4 @@ ffg_param=FF03 -colorBar=@ffgColorBar.xml +colorBar=@ColorBars/FFG/ffgColorBar.xml displayValues=true symbolName=ASTERISK diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/FFG/guidance_06.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/FFG/guidance_06.attr index 4d43b8c08a..2a0faff34f 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/FFG/guidance_06.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/FFG/guidance_06.attr @@ -1,4 +1,4 @@ ffg_param=FF06 -colorBar=@ffgColorBar.xml +colorBar=@ColorBars/FFG/ffgColorBar.xml displayValues=true symbolName=ASTERISK diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/FFG/guidance_12.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/FFG/guidance_12.attr index 21b9dbe204..628858c8cc 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/FFG/guidance_12.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/FFG/guidance_12.attr @@ -1,4 +1,4 @@ ffg_param=FF12 -colorBar=@ffgColorBar.xml +colorBar=@ColorBars/FFG/ffgColorBar.xml displayValues=true symbolName=ASTERISK diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/FFG/guidance_24.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/FFG/guidance_24.attr index 33799c6320..6a5b6d0f82 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/FFG/guidance_24.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/FFG/guidance_24.attr @@ -1,4 +1,4 @@ ffg_param=FF24 -colorBar=@ffgColorBar.xml +colorBar=@ColorBars/FFG/ffgColorBar.xml displayValues=true symbolName=ASTERISK diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/12hrpop.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/12hrpop.attr index 7adea99807..348fabb30b 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/12hrpop.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/12hrpop.attr @@ -1,5 +1,5 @@ ! Attributes for the GFSMOS resource with "12 hour POP" plot model ! -plotModelName=gfsmos_12hrpop +plotModel=@PlotModels/bufrmosGFS/12hrpop.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/6hrpop.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/6hrpop.attr index 24789d7a59..d34618b9f6 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/6hrpop.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/6hrpop.attr @@ -1,5 +1,5 @@ ! Attributes for the GFSMOS resource with "6 hour POP" plot model ! -plotModelName=gfsmos_6hrpop +plotModel=@PlotModels/bufrmosGFS/6hrpop.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/GFSMOS.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/GFSMOS.xml index 26f0e706d1..fb68a1150c 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/GFSMOS.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/GFSMOS.xml @@ -5,15 +5,12 @@ SURFACE pluginName=bufrmosGFS -! not used -reportType=GFS spiFile=MTR.spi legendString=GFSMOS -legend_color=RGB {0, 255, 0} -levelKey=Surface +legendColor=RGB {0, 255, 0} Forecast,MOS - PlotData + MosPlot CLOSEST_BEFORE_OR_AFTER diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/fosb.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/fosb.attr index a366bc119c..65abe1b689 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/fosb.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/fosb.attr @@ -1,5 +1,5 @@ ! Attributes for the GFSMOS resource with "Fosberg index, also called fire weather index" plot model ! -plotModelName=gfsmos_fosb +plotModel=@PlotModels/bufrmosGFS/fosb.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/misc.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/misc.attr index ae9d6a9ae6..6f6a2b8e5d 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/misc.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/misc.attr @@ -1,6 +1,6 @@ ! Attributes for the GFSMOS resource with the parameters of plot models listed below ! fcig, fvsa, ovsi, pozp, posn, qp06, qp12, sn24, tc06, tc12, ts06, ts12, pcpt, clct, tdyf, tntf ! -plotModelName=gfsmos_misc +plotModel=@PlotModels/bufrmosGFS/misc.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/standard.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/standard.attr index 72955a9c41..83c7445d9f 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/standard.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/standard.attr @@ -1,5 +1,5 @@ ! Attributes for the GFSMOS resource with "standard" plot model ! -plotModelName=gfsmos_standard +plotModel=@PlotModels/bufrmosGFS/standard.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/wind.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/wind.attr index 83012bec0e..d4586a9bdb 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/wind.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSMOS/wind.attr @@ -1,5 +1,5 @@ ! Attributes for the GFSMOS resource with "wind related symbols" plot model ! -plotModelName=gfsmos_wind +plotModel=@PlotModels/bufrmosGFS/wind.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/12hrpop.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/12hrpop.attr index f0d0b55774..d0f25af46f 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/12hrpop.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/12hrpop.attr @@ -1,5 +1,5 @@ ! Attributes for the GFSXMOS resource with "12hrpop" plot model ! -plotModelName=12hrpop +plotModel=@PlotModels/bufrmosMRF/12hrpop.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/GFSXMOS.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/GFSXMOS.xml index 2b5912b9b6..83abd399df 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/GFSXMOS.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/GFSXMOS.xml @@ -5,14 +5,12 @@ SURFACE pluginName=bufrmosMRF -reportType=N/A spiFile=MTR.spi legendString=GFSXMOS -legend_color=RGB {0, 255, 0} -levelKey=Surface +legendColor=RGB {0, 255, 0} Forecast,MOS - PlotData + MosPlot CLOSEST_BEFORE_OR_AFTER diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/anom_mm.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/anom_mm.attr index 929981f5e2..9d29d4fffc 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/anom_mm.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/anom_mm.attr @@ -1,5 +1,5 @@ ! Attributes for the GFSXMOS resource with "anonmm" plot model ! -plotModelName=anonmm +plotModel=anonmm plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/cli_all.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/cli_all.attr index 28023f08cd..344d66e766 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/cli_all.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/cli_all.attr @@ -1,5 +1,5 @@ ! Attributes for the GFSXMOS resource with "cliall" plot model ! -plotModelName=cliall +plotModel=cliall plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/cli_hpc.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/cli_hpc.attr index 3daf0cd4e2..edfb96f35c 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/cli_hpc.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/cli_hpc.attr @@ -1,5 +1,5 @@ ! Attributes for the GFSXMOS resource with "clihpc" plot model ! -plotModelName=clihpc +plotModel=clihpc plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/climo_mm.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/climo_mm.attr index e74d44cb14..8e98aea19a 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/climo_mm.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/climo_mm.attr @@ -1,5 +1,5 @@ ! Attributes for the GFSXMOS resource with "climomm" plot model ! -plotModelName=climomm +plotModel=climomm plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/dewpoint_hpc.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/dewpoint_hpc.attr index b59b6d5471..9ae8fa8302 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/dewpoint_hpc.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/dewpoint_hpc.attr @@ -1,5 +1,5 @@ ! Attributes for the GFSXMOS resource with "dewpointhpc" plot model ! -plotModelName=dewpointhpc +plotModel=dewpointhpc plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/max_anom.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/max_anom.attr index 3e4c559b82..233c402f32 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/max_anom.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/max_anom.attr @@ -1,5 +1,5 @@ ! Attributes for the GFSXMOS resource with "maxanom" plot model ! -plotModelName=maxanom +plotModel=maxanom plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/max_mm_1.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/max_mm_1.attr index 32ae345e0c..cc77ba7da1 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/max_mm_1.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/max_mm_1.attr @@ -1,5 +1,5 @@ ! Attributes for the GFSXMOS resource with "maxmm1" plot model ! -plotModelName=maxmm1 +plotModel=maxmm1 plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/max_mm_2.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/max_mm_2.attr index 98ac746c5f..ee32973969 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/max_mm_2.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/max_mm_2.attr @@ -1,5 +1,5 @@ ! Attributes for the GFSXMOS resource with "maxmm2" plot model ! -plotModelName=maxmm2 -plotDplotDensity=10 -conditionalFilterName= \ No newline at end of file +plotModel=maxmm2 +plotDensity=10 +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/maxminpop.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/maxminpop.attr index ffec5d0e09..b2ea66033e 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/maxminpop.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/maxminpop.attr @@ -2,4 +2,4 @@ ! plotModelName=maxminpop plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilterName=conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/maxminpop_an.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/maxminpop_an.attr index c98ae0795c..18ddaaf6f4 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/maxminpop_an.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/maxminpop_an.attr @@ -1,5 +1,5 @@ ! Attributes for the GFSXMOS resource with "maxminpopan" plot model ! -plotModelName=maxminpopan +plotModel=maxminpopan plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/min_anom.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/min_anom.attr index 5273c80cc7..b9f67205be 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/min_anom.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/min_anom.attr @@ -2,4 +2,4 @@ ! plotModelName=minanom plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilterName=conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/min_mm_1.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/min_mm_1.attr index 274cd0bd10..07b87f8c95 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/min_mm_1.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/min_mm_1.attr @@ -2,4 +2,4 @@ ! plotModelName=minmm1 plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilterName=conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/min_mm_2.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/min_mm_2.attr index 56dfeef20b..99c8cb9d76 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/min_mm_2.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/min_mm_2.attr @@ -2,4 +2,4 @@ ! plotModelName=minmm2 plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilterName=conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/mos_anom_mm.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/mos_anom_mm.attr index 08db3fa431..7627e6acbb 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/mos_anom_mm.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/mos_anom_mm.attr @@ -2,4 +2,4 @@ ! plotModelName=mosanonmm plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilterName=conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/pop12_mm.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/pop12_mm.attr index d1d696cc91..25d48c65fb 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/pop12_mm.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/pop12_mm.attr @@ -2,4 +2,4 @@ ! plotModelName=pop12mm plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilterName=conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/pop24_mm.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/pop24_mm.attr index 42fc3f6010..ead22429c5 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/pop24_mm.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/pop24_mm.attr @@ -1,5 +1,5 @@ ! Attributes for the GFSXMOS resource with "pop24mm" plot model ! -plotModelName=pop24mm +plotModel=@PlotModels/bufrmosMRF/pop24mm.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/pop_anom.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/pop_anom.attr index 155c5f4687..49c806bbe8 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/pop_anom.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/pop_anom.attr @@ -2,4 +2,4 @@ ! plotModelName=popanom plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilterName=conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/simple.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/simple.attr index d5e83c2bfc..0b72a66d9b 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/simple.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/simple.attr @@ -1,5 +1,5 @@ ! Attributes for the GFSXMOS resource with "simple" plot model ! -plotModelName=simple +plotModel=@PlotModels/bufrmosMRF/simple.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/standard.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/standard.attr index b72769cde6..6ca3fc5389 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/standard.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/GFSXMOS/standard.attr @@ -1,5 +1,5 @@ ! Attributes for the GFSXMOS resource with "standard" plot model ! -plotModelName=gfsxmos_standard +plotModel=@PlotModels/bufrmosMRF/standard.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/IDFT/IDFT.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/IDFT/IDFT.xml index 8097d0295b..9e74faa4fd 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/IDFT/IDFT.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/IDFT/IDFT.xml @@ -3,6 +3,10 @@ true IDFT SURFACE + +pluginName=idft +reportType=idft + Forecast IDFT diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/LAMPMOS/LAMPMOS.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/LAMPMOS/LAMPMOS.xml index d174e494bd..c5876a6c91 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/LAMPMOS/LAMPMOS.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/LAMPMOS/LAMPMOS.xml @@ -5,14 +5,12 @@ SURFACE pluginName=bufrmosLAMP -reportType=LAMP spiFile=MTR.spi legendString=LAMPMOS -legend_color=RGB {0, 255, 0} -levelKey=Surface +legendColor=RGB {0, 255, 0} Forecast,MOS - PlotData + MosPlot CLOSEST_BEFORE_OR_AFTER diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/LAMPMOS/standard.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/LAMPMOS/standard.attr index e9a9013a8f..e7b24c939d 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/LAMPMOS/standard.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/LAMPMOS/standard.attr @@ -1,5 +1,5 @@ ! Attributes for the LAMP resource with "standard" plot model ! -plotModelName=lampmos_standard +plotModel=@PlotModels/bufrmosLAMP/standard.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/METAR/METAR.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/METAR/METAR.xml index e5585e451c..6f160a519c 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/METAR/METAR.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/METAR/METAR.xml @@ -8,11 +8,10 @@ pluginName=obs reportType=METAR spiFile=MTR.spi legendString=Metar -legend_color=RGB {0, 255, 0} -levelKey=Surface +legendColor=RGB {0, 255, 0} Observed - PlotData + SurfacePlot CLOSEST_BEFORE_OR_AFTER diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/METAR/simple.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/METAR/simple.attr index 1636d0b8ba..11fa9e7717 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/METAR/simple.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/METAR/simple.attr @@ -1,5 +1,5 @@ ! Parameters and Attributes for the default METAR Resource ! -plotModelName=simple +plotModel=@PlotModels/obs/simple.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/METAR/standard.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/METAR/standard.attr index 6e9de023c2..cf15a9777e 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/METAR/standard.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/METAR/standard.attr @@ -1,5 +1,5 @@ ! Parameters and Attributes for the default METAR Resource ! -plotModelName=standard +plotModel=@PlotModels/obs/standard.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/METAR/standard2.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/METAR/standard2.attr index 4de93c2298..4dbbf3be15 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/METAR/standard2.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/METAR/standard2.attr @@ -1,5 +1,5 @@ ! Alternative standard with PTSY and P03C together METAR Resource ! -plotModelName=standard2 +plotModel=@PlotModels/obs/standard2.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/NGMMOS/NGMMOS.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/NGMMOS/NGMMOS.xml index 136e757df3..6f01c3cf74 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/NGMMOS/NGMMOS.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/NGMMOS/NGMMOS.xml @@ -5,14 +5,12 @@ SURFACE pluginName=bufrmosNGM -reportType=NGM spiFile=MTR.spi legendString=NGMMOS -legend_color=RGB {0, 255, 0} -levelKey=Surface +legendColor=RGB {0, 255, 0} Forecast,MOS - PlotData + MosPlot CLOSEST_BEFORE_OR_AFTER diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/NGMMOS/mxmn12hrpop.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/NGMMOS/mxmn12hrpop.attr index faf97cb0e0..c0eb729af9 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/NGMMOS/mxmn12hrpop.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/NGMMOS/mxmn12hrpop.attr @@ -1,5 +1,5 @@ ! Attributes for the NGMMOS resource with "mxmn12hrpop" plot model ! -plotModelName=mxmn12hrpop +plotModel=@PlotModels/bufrmosNGM/mxmn12hrpop.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/NGMMOS/standard.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/NGMMOS/standard.attr index 032fe65205..c8f623840a 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/NGMMOS/standard.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/NGMMOS/standard.attr @@ -1,5 +1,5 @@ ! Attributes for the NGMMOS resource with "standard" plot model ! -plotModelName=nammos_standard +plotModel=@PlotModels/bufrmosNGM/standard.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/PAFM/PAFM.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/PAFM/PAFM.xml index f63cd0c758..8f2ee02e7d 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/PAFM/PAFM.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/PAFM/PAFM.xml @@ -8,11 +8,10 @@ pluginName=ncpafm reportType=PAFM spiFile= legendString=Point/Area Forecast Matrix -legend_color=RGB {0, 255, 0} -levelKey=Surface +legendColor=RGB {0, 255, 0} Forecast - PlotData + SurfacePlot CLOSEST_BEFORE_OR_AFTER diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/PAFM/standard.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/PAFM/standard.attr index 5b2cfeeb6c..133ee90004 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/PAFM/standard.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/PAFM/standard.attr @@ -1,5 +1,5 @@ ! Attributes for the PAFM resource with "standard" plot model ! -plotModelName=standard +plotModel=@PlotModels/ncpafm/standard.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SCD/SCD.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SCD/SCD.xml index 875dab25ee..23144e33c9 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SCD/SCD.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SCD/SCD.xml @@ -8,11 +8,10 @@ pluginName=ncscd reportType=SCD spiFile=MTR.spi legendString=SCD -legend_color=RGB {0, 255, 0} -levelKey=Surface +legendColor=RGB {0, 255, 0} Observed - PlotData + SurfacePlot CLOSEST_BEFORE_OR_AFTER diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SCD/standard.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SCD/standard.attr index 7346b3983d..031bbcdfdb 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SCD/standard.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SCD/standard.attr @@ -1,5 +1,5 @@ ! Parameters and Attributes for the default SCD Resource ! -plotModelName=standard +plotModel=@PlotModels/ncscd/standard.xml plotDensity=15 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SHIP/SHIP.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SHIP/SHIP.xml index 0a993e1cb0..da7d763f81 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SHIP/SHIP.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SHIP/SHIP.xml @@ -5,14 +5,13 @@ SURFACE legendString=SHIP -levelKey=Surface pluginName=sfcobs reportType=1003 spiFile=MTR.spi -legend_color=RGB {0, 255, 0} +legendColor=RGB {0, 255, 0} Observed - PlotData + SurfacePlot CLOSEST_BEFORE_OR_AFTER diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SHIP/standard.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SHIP/standard.attr index e12fa2e98b..d8593c4191 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SHIP/standard.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SHIP/standard.attr @@ -1,4 +1,4 @@ ! Parameters and Attributes for the default UAIR Resource -plotModelName=ship_standard +plotModel=@PlotModels/sfcobs/ship_standard.xml plotDensity=12 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/BuoysDrifting.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/BuoysDrifting.attr index 3e8ae7a2d8..254dbf390c 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/BuoysDrifting.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/BuoysDrifting.attr @@ -1,7 +1,7 @@ ! Parameters and Attributes for the default METAR Resource ! legendString=Drifting Buoy Synop -plotModelName=bouys +plotModel=@PlotModels/sfcobs/bouys.xml reportType=1006 plotDensity=15 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/BuoysFixed.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/BuoysFixed.attr index 5ef867f7ac..e38ef1e907 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/BuoysFixed.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/BuoysFixed.attr @@ -1,7 +1,7 @@ ! Parameters and Attributes for the default METAR Resource ! legendString=Fixed Buoy Synop -plotModelName=bouys +plotModel=@PlotModels/sfcobs/bouys.xml reportType=1005 plotDensity=15 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/CMAN.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/CMAN.attr index 9e4883b0ca..b0b3ad4130 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/CMAN.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/CMAN.attr @@ -1,7 +1,7 @@ ! Parameters and Attributes for the default METAR Resource ! legendString=CMAN Synop -plotModelName=synop_standard +plotModel=@PlotModels/sfcobs/synop_standard.xml reportType=1004 plotDensity=15 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/LandFixed.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/LandFixed.attr index 31516dad60..72d379564e 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/LandFixed.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/LandFixed.attr @@ -1,7 +1,7 @@ ! Parameters and Attributes for the default METAR Resource ! legendString=Fixed Land Synop -plotModelName=synop_standard +plotModel=@PlotModels/sfcobs/synop_standard.xml reportType=1001 plotDensity=15 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/LandMobile.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/LandMobile.attr index ea48e316cb..4428319a21 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/LandMobile.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/LandMobile.attr @@ -1,7 +1,7 @@ ! Parameters and Attributes for the default METAR Resource ! legendString=Mobile Land Synop -plotModelName=synop_standard +plotModel=@PlotModels/sfcobs/synop_standard.xml reportType=1002 plotDensity=15 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/MarineObs.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/MarineObs.attr index a6eae54c53..2322313c47 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/MarineObs.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/MarineObs.attr @@ -1,7 +1,7 @@ ! Parameters and Attributes for the default METAR Resource ! legendString=Marine Synop -plotModelName=synop_standard +plotModel=@PlotModels/sfcobs/synop_standard.xml reportType=1007 plotDensity=15 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/SYNOP.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/SYNOP.xml index 815262eeb8..6d0cb0872a 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/SYNOP.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/SYNOP.xml @@ -6,11 +6,13 @@ pluginName=sfcobs spiFile=synoptic.spi -legend_color=RGB {0, 80, 255} -levelKey=Surface +! reportType and legendString can be overridden in the attrSet files for SYNOP +reportType=1001,1002,1003,1004,1005,1006,1007 +legendString=SYNOP(all-reports) +legendColor=RGB {0, 80, 255} Observed - PlotData + SurfacePlot CLOSEST_BEFORE_OR_AFTER diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/Ships.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/Ships.attr index 5eeb76eefe..4a8d2ada43 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/Ships.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/Ships.attr @@ -1,7 +1,7 @@ ! Parameters and Attributes for the default METAR Resource ! legendString=Ship Synop -plotModelName=ship_standard +plotModel=@PlotModels/sfcobs/ship_standard.xml reportType=1003 plotDensity=15 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/allReports.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/allReports.attr index b2d019a1fe..6609943f68 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/allReports.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/allReports.attr @@ -1,7 +1,7 @@ ! Parameters and Attributes for the default METAR Resource ! legendString=Synop (All Reports) -plotModelName=synop_standard +plotModel=@PlotModels/sfcobs/synop_standard.xml reportType=1001,1002,1003,1004,1005,1006,1007 plotDensity=10 -conditionalFilterName= +conditionalFilter= diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/standard.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/standard.attr index 84ddc01ee1..d580036b1d 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/standard.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/SYNOP/standard.attr @@ -1,7 +1,7 @@ ! Parameters and Attributes for the default METAR Resource ! legendString=Synop (All Reports) -plotModelName=synop_standard +plotModel=@PlotModels/sfcobs/synop_standard.xml reportType=1001,1002,1003,1004,1005,1006,1007 plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/TAF/TAF.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/TAF/TAF.xml index 0dbeb80e5d..8604182f93 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/TAF/TAF.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/TAF/TAF.xml @@ -8,11 +8,10 @@ pluginName=nctaf reportType=TAF spiFile=MTR.spi legendString=TAF -legend_color=RGB {0, 255, 0} -levelKey=Surface +legendColor=RGB {0, 255, 0} Forecast - PlotData + SurfacePlot CLOSEST_BEFORE_OR_AFTER diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/TAF/simple.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/TAF/simple.attr index c58d7eb5fc..b3680a500c 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/TAF/simple.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/TAF/simple.attr @@ -1,5 +1,5 @@ ! Attributes for the TAF resource with "simple" plot model ! -plotModelName=simple +plotModel=@PlotModels/nctaf/simple.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/TAF/standard.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/TAF/standard.attr index 2fdacd44e9..31b7fda292 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/TAF/standard.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/TAF/standard.attr @@ -1,5 +1,5 @@ ! Attributes for the TAF resource with "standard" plot model ! -plotModelName=standard +plotModel=@PlotModels/nctaf/standard.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/TAF/tempo_flt_condition.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/TAF/tempo_flt_condition.attr index 487de57c6a..395e3b26f3 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/TAF/tempo_flt_condition.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/TAF/tempo_flt_condition.attr @@ -1,5 +1,5 @@ ! Attributes for the TAF resource with "tempo_flt_condition" plot model ! -plotModelName=tempo_flt_condition +plotModel=@PlotModels/nctaf/tempo_flt_condition.xml plotDensity=10 -conditionalFilterName=tempo_flight_condition \ No newline at end of file +conditionalFilter=@PlotModels/ConditionalFilters/taf_tempo_flight_condition.xml \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/TAF/tempo_prob.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/TAF/tempo_prob.attr index ac5d59272e..e698500b41 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/TAF/tempo_prob.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/SURFACE/TAF/tempo_prob.attr @@ -1,5 +1,5 @@ ! Attributes for the TAF resource with "tempo_prob" plot model ! -plotModelName=tempo_prob +plotModel=@PlotModels/nctaf/tempo_prob.xml plotDensity=10 -conditionalFilterName=tempo_prob \ No newline at end of file +conditionalFilter=@PlotModels/ConditionalFilters/taf_tempo_prob.xml \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/AIREP/AIREP.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/AIREP/AIREP.xml index bc5ea59c32..4bd6ceb0f4 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/AIREP/AIREP.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/AIREP/AIREP.xml @@ -4,15 +4,14 @@ AIREP UPPER_AIR -legendString=Aircraft Reports pluginName=ncairep reportType=AIREP +legendString=Aircraft Reports spiFile=MTR.spi -legend_color=RGB {0, 255, 0} -levelKey=N/A +legendColor=RGB {0, 255, 0} Observed - PlotData + SurfacePlot CLOSEST_BEFORE_OR_AFTER diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/AIREP/fullPlot.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/AIREP/fullPlot.attr index 3870d76054..b3d84ac408 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/AIREP/fullPlot.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/AIREP/fullPlot.attr @@ -1,4 +1,5 @@ ! Parameters and Attributes for the default AIREP Resource -plotModelName=fullPlot +! +plotModel=@PlotModels/ncairep/fullPlot.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/AIREP/standard.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/AIREP/standard.attr index b621b9e7ad..daa5582e26 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/AIREP/standard.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/AIREP/standard.attr @@ -1,4 +1,4 @@ ! Parameters and Attributes for the default AIREP Resource -plotModelName=standard +plotModel=@PlotModels/ncairep/standard.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/NAMSND/NAMSND.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/NAMSND/NAMSND.xml index fe9132f167..5990e1f9cf 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/NAMSND/NAMSND.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/NAMSND/NAMSND.xml @@ -4,14 +4,14 @@ NAMSND UPPER_AIR -legendString=NAM Sounding pluginName=modelsounding reportType=ETA spiFile=MTR.spi -legend_color=RGB {0, 255, 0} +legendString=NAM Sounding +legendColor=RGB {0, 255, 0} Forecast,MODEL - PlotData + UpperAirPlot CLOSEST_BEFORE_OR_AFTER diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/NAMSND/basicNAM.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/NAMSND/basicNAM.attr index 381397d8ad..63bd54859a 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/NAMSND/basicNAM.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/NAMSND/basicNAM.attr @@ -1,6 +1,6 @@ ! Attributes for the NGM Model Sounding resource with "standard" plot model ! levelKey=500 -plotModelName=basicNAM +plotModel=@PlotModels/modelsounding/basicNAM.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/PIREP/PIREP.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/PIREP/PIREP.xml index 9238a08f38..d0d3736c8c 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/PIREP/PIREP.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/PIREP/PIREP.xml @@ -4,15 +4,14 @@ PIREP UPPER_AIR -legendString=Pilot Reports pluginName=ncpirep reportType=PIREP +legendString=Pilot Reports spiFile=MTR.spi -legend_color=RGB {0, 255, 0} -levelKey=N/A +legendColor=RGB {0, 255, 0} Observed - PlotData + SurfacePlot CLOSEST_BEFORE_OR_AFTER diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/PIREP/standard.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/PIREP/standard.attr index b621b9e7ad..ea8f1ff525 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/PIREP/standard.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/PIREP/standard.attr @@ -1,4 +1,4 @@ ! Parameters and Attributes for the default AIREP Resource -plotModelName=standard +plotModel=@PlotModels/ncpirep/standard.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/UAIR/700mb.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/UAIR/700mb.attr index 1e9c295860..261c743f28 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/UAIR/700mb.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/UAIR/700mb.attr @@ -1,6 +1,5 @@ ! Parameters and Attributes for the default UAIR Resource levelKey=700 -!resourceName=UAIR -plotModelName=standard +plotModel=@PlotModels/ncuair/standard.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/UAIR/UAIR.xml b/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/UAIR/UAIR.xml index 21ccf94030..752de9871d 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/UAIR/UAIR.xml +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/UAIR/UAIR.xml @@ -4,14 +4,14 @@ UAIR UPPER_AIR -legendString=UAIR pluginName=ncuair reportType=UAIR +legendString=UAIR spiFile=MTR.spi -legend_color=RGB {0, 255, 0} +legendColor=RGB {0, 255, 0} Observed - PlotData + UpperAirPlot CLOSEST_BEFORE_OR_AFTER diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/UAIR/default.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/UAIR/default.attr index 1e3b9b09aa..ef58550f8e 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/UAIR/default.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/UAIR/default.attr @@ -1,5 +1,5 @@ ! Parameters and Attributes for the default UAIR Resource levelKey=500 -plotModelName=standard +plotModel=@PlotModels/ncuair/standard.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/UAIR/standard.attr b/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/UAIR/standard.attr index 1e3b9b09aa..ef58550f8e 100644 --- a/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/UAIR/standard.attr +++ b/cave/build/static/common/cave/etc/ncep/ResourceDefns/UPPER_AIR/UAIR/standard.attr @@ -1,5 +1,5 @@ ! Parameters and Attributes for the default UAIR Resource levelKey=500 -plotModelName=standard +plotModel=@PlotModels/ncuair/standard.xml plotDensity=10 -conditionalFilterName= \ No newline at end of file +conditionalFilter= \ No newline at end of file diff --git a/cave/build/static/common/cave/etc/pyViz/GFEPainter.py b/cave/build/static/common/cave/etc/pyViz/GFEPainter.py index 38459b2062..96e117a467 100644 --- a/cave/build/static/common/cave/etc/pyViz/GFEPainter.py +++ b/cave/build/static/common/cave/etc/pyViz/GFEPainter.py @@ -104,18 +104,17 @@ class GFEPainter(VizPainter.VizPainter): self.addVizResource(colorBar) self.getDescriptor().getResourceList().getProperties(colorBar).setSystemResource(True) - def __makeGFEResource(self, parmName): - parm = self.dataMgr.getParmManager().getParmInExpr(parmName, False) + def __makeGFEResource(self, parm): parm.getParmState().setPickUpValue(None) gfeRsc = GFEResource(parm, self.dataMgr) self.addVizResource(gfeRsc) if not parm.getDisplayAttributes().getBaseColor(): from com.raytheon.viz.core import ColorUtil parm.getDisplayAttributes().setBaseColor(ColorUtil.getNewColor(self.getDescriptor())) - return gfeRsc, parm + return gfeRsc - def addGfeResource(self, parmName, colormap=None, colorMin=None, colorMax=None, smooth=False, color=None, lineWidth=None): - gfeRsc, parm = self.__makeGFEResource(parmName) + def addGfeResource(self, parm, colormap=None, colorMin=None, colorMax=None, smooth=False, color=None, lineWidth=None): + gfeRsc = self.__makeGFEResource(parm) # jvisType = VisualizationType.valueOf('IMAGE') # jset = HashSet() # jset.add(jvisType) diff --git a/cave/build/static/common/cave/etc/scan/config/dmdTableConfig/SCANconfig_dmdTable.xml b/cave/build/static/common/cave/etc/scan/config/dmdTableConfig/SCANconfig_dmdTable.xml index 899711ce42..624eb8d9a8 100644 --- a/cave/build/static/common/cave/etc/scan/config/dmdTableConfig/SCANconfig_dmdTable.xml +++ b/cave/build/static/common/cave/etc/scan/config/dmdTableConfig/SCANconfig_dmdTable.xml @@ -17,6 +17,13 @@ See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for further_licensing_information. + + SOFTWARE HISTORY + + Date Ticket# Engineer Description + __________________________________________________________________________ + 06/04/2012 14710 Xiaochuan Changed DefaultRank to default + --> true @@ -27,7 +34,7 @@ false true stRank - stRank + default 999 false true diff --git a/cave/build/static/linux/cave/caveEnvironment/bin/tmbRemoteCheck b/cave/build/static/linux/cave/caveEnvironment/bin/tmbRemoteCheck index 1bec138767..c3cf5a2b6b 100755 Binary files a/cave/build/static/linux/cave/caveEnvironment/bin/tmbRemoteCheck and b/cave/build/static/linux/cave/caveEnvironment/bin/tmbRemoteCheck differ diff --git a/cave/build/static/linux/cave/caveEnvironment/bin/tmcp b/cave/build/static/linux/cave/caveEnvironment/bin/tmcp index 797f361a2a..0f1132a390 100755 Binary files a/cave/build/static/linux/cave/caveEnvironment/bin/tmcp and b/cave/build/static/linux/cave/caveEnvironment/bin/tmcp differ diff --git a/cave/build/static/linux/cave/caveEnvironment/lib/libgempak.so b/cave/build/static/linux/cave/caveEnvironment/lib/libgempak.so index 0f8c017935..a0aec1ca1e 100755 Binary files a/cave/build/static/linux/cave/caveEnvironment/lib/libgempak.so and b/cave/build/static/linux/cave/caveEnvironment/lib/libgempak.so differ diff --git a/cave/com.raytheon.uf.viz.d2d.nsharp/src/com/raytheon/uf/viz/d2d/nsharp/display/D2DNSharpDescriptor.java b/cave/com.raytheon.uf.viz.d2d.nsharp/src/com/raytheon/uf/viz/d2d/nsharp/display/D2DNSharpDescriptor.java index 8f991be196..668e133302 100644 --- a/cave/com.raytheon.uf.viz.d2d.nsharp/src/com/raytheon/uf/viz/d2d/nsharp/display/D2DNSharpDescriptor.java +++ b/cave/com.raytheon.uf.viz.d2d.nsharp/src/com/raytheon/uf/viz/d2d/nsharp/display/D2DNSharpDescriptor.java @@ -101,19 +101,20 @@ public class D2DNSharpDescriptor extends NsharpSkewTDescriptor { .valueOf(operation.name()); IDescriptor.FrameChangeMode dmode = IDescriptor.FrameChangeMode .valueOf(mode.name()); + D2DNSharpDescriptor.this.changeFrame(dop, dmode); // Just hand this off to the resource. - switch (dmode) { + /*switch (dmode) { case TIME_ONLY: - getSkewtResource().setSteppingTimeLine(dop, dmode /*ignored*/); + getSkewtResource().setSteppingTimeLine(dop, dmode ); break; case SPACE_ONLY: // noop for now break; case TIME_AND_SPACE: // same as TIME_ONLY for now - getSkewtResource().setSteppingTimeLine(dop, dmode /*ignored*/); + getSkewtResource().setSteppingTimeLine(dop, dmode ); break; - } + }*/ } }; } diff --git a/cave/com.raytheon.uf.viz.monitor.fog/src/com/raytheon/uf/viz/monitor/fog/FogMonitor.java b/cave/com.raytheon.uf.viz.monitor.fog/src/com/raytheon/uf/viz/monitor/fog/FogMonitor.java index c9f8cc9aa3..fd83906249 100644 --- a/cave/com.raytheon.uf.viz.monitor.fog/src/com/raytheon/uf/viz/monitor/fog/FogMonitor.java +++ b/cave/com.raytheon.uf.viz.monitor.fog/src/com/raytheon/uf/viz/monitor/fog/FogMonitor.java @@ -24,6 +24,8 @@ import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.Set; +import java.util.SortedMap; +import java.util.TreeMap; import java.util.regex.Pattern; import org.eclipse.core.runtime.IStatus; @@ -78,6 +80,7 @@ import com.vividsolutions.jts.geom.Geometry; * 10/7/2009 **** dhladky reworked * 11/30/2009 3424 Zhidong/Slav/Wen Adds stationTableData to keep station info. * May 15, 2012 14510 zhao Modified processing at startup + * Jun 16, 2012 14386 zhao Auto update County/Zone Table when new fog threat data arrives * * * @@ -104,7 +107,8 @@ public class FogMonitor extends ObsMonitor implements IFogResourceListener { public ArrayList resourceTimes = null; /** data holder for FOG Algo data **/ - public HashMap> algorithmData = null; + //public HashMap> algorithmData = null; + public SortedMap> algorithmData = null; public Date dialogTime = null; @@ -187,7 +191,7 @@ public class FogMonitor extends ObsMonitor implements IFogResourceListener { obData.setThresholdMgr(FogThresholdMgr.getInstance()); obsData = new ObsData(); - algorithmData = new HashMap>(); + algorithmData = new TreeMap>(); for (String zone : MonitoringArea.getPlatformMap().keySet()) { obsData.addArea(zone, MonitoringArea.getPlatformMap().get(zone)); @@ -340,11 +344,14 @@ public class FogMonitor extends ObsMonitor implements IFogResourceListener { // use ObMultiHrsReports for data archive // [Jan 21, 2010, zhao] obData.addReport(result); - fireMonitorEvent(this); + //fireMonitorEvent(this); String zone = findZone(result.getPlatformId()); getTableData().getArea(zone).addReport(result.getObservationTime(), result); + + fireMonitorEvent(this); + } /** @@ -392,6 +399,7 @@ public class FogMonitor extends ObsMonitor implements IFogResourceListener { algorithmData.remove(time); } algorithmData.put(time, algData); + updateDialogTime(time); } /** diff --git a/cave/com.raytheon.uf.viz.monitor.fog/src/com/raytheon/uf/viz/monitor/fog/ui/dialogs/FogZoneTableDlg.java b/cave/com.raytheon.uf.viz.monitor.fog/src/com/raytheon/uf/viz/monitor/fog/ui/dialogs/FogZoneTableDlg.java index 369dbc1b41..492e9319a9 100644 --- a/cave/com.raytheon.uf.viz.monitor.fog/src/com/raytheon/uf/viz/monitor/fog/ui/dialogs/FogZoneTableDlg.java +++ b/cave/com.raytheon.uf.viz.monitor.fog/src/com/raytheon/uf/viz/monitor/fog/ui/dialogs/FogZoneTableDlg.java @@ -45,6 +45,7 @@ import com.raytheon.uf.viz.monitor.ui.dialogs.ZoneTableDlg; * (Where is the history log for this file???) * * Jan 25, 2010 #4281 zhao Modified the notify method + * Jun 16, 2012 14386 zhao Modified the notify method * * @author * @@ -93,9 +94,9 @@ public class FogZoneTableDlg extends ZoneTableDlg { if (date != null) { Date nominalTime = date; ObMultiHrsReports obData = fog.getObData(); - if (!isLinkedToFrame()) { - nominalTime = obData.getLatestNominalTime(); - } +// if (!isLinkedToFrame()) { +// nominalTime = obData.getLatestNominalTime(); +// } FogDataGenerator fdg = new FogDataGenerator(); HashMap fogAlgCellType = fdg .getAlgCellTypes(fog.getAlgorithmData(nominalTime)); diff --git a/cave/com.raytheon.uf.viz.monitor.fog/src/com/raytheon/uf/viz/monitor/fog/ui/resource/FogResource.java b/cave/com.raytheon.uf.viz.monitor.fog/src/com/raytheon/uf/viz/monitor/fog/ui/resource/FogResource.java index 0c567629b5..54d1048536 100644 --- a/cave/com.raytheon.uf.viz.monitor.fog/src/com/raytheon/uf/viz/monitor/fog/ui/resource/FogResource.java +++ b/cave/com.raytheon.uf.viz.monitor.fog/src/com/raytheon/uf/viz/monitor/fog/ui/resource/FogResource.java @@ -24,6 +24,7 @@ import java.util.Calendar; import java.util.Date; import org.opengis.referencing.FactoryException; +import org.opengis.referencing.crs.CoordinateReferenceSystem; import org.opengis.referencing.datum.PixelInCell; import com.raytheon.uf.common.colormap.ColorMap; @@ -70,7 +71,8 @@ import com.vividsolutions.jts.geom.Coordinate; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * 11Nov2009 2037 dhladky Initial Creation. - * + * 16Jun2012 14386 zhao Fixed a bug causing auto update to fail; + * also modified to keep only latest Fog record for each frame. * * * @author dhladky @@ -99,8 +101,6 @@ public class FogResource extends private String colormapfile = null; - private boolean algUpdated = false; - private static String[] fogLabels = new String[] { "LOW", "MODERATE", "HIGH" }; @@ -118,6 +118,8 @@ public class FogResource extends private FogMonitor monitor = null; + private boolean needsUpdate = false; + public FogResource(FogResourceData data, LoadProperties props) { super(data, props); @@ -160,18 +162,23 @@ public class FogResource extends */ private void addRecord(FogRecord pdo) { Calendar rh = pdo.getRefHour(); - if (resourceData.dataObjectMap.containsKey(rh)) { + if (!resourceData.dataObjectMap.containsKey(rh)) { try { record = resourceData.populateRecord(pdo); - resourceData.dataObjectMap.put(record.getRefHour().getTime(), - record); - resourceData.gridImageMap.put(record.getRefHour().getTime(), - null); + resourceData.dataObjectMap.put(record.getRefHour().getTime(), record); + resourceData.gridImageMap.put(record.getRefHour().getTime(), null); } catch (VizException e) { - // TODO Auto-generated catch block. Please revise as - // appropriate. - statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), - e); + statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), e); + } + } else if ( resourceData.dataObjectMap.containsKey(rh) ) { + try { + record = resourceData.populateRecord(pdo); + resourceData.dataObjectMap.remove(record.getRefHour().getTime()); + resourceData.dataObjectMap.put(record.getRefHour().getTime(), record); + resourceData.gridImageMap.remove(record.getRefHour().getTime()); + resourceData.gridImageMap.put(record.getRefHour().getTime(), null); + } catch (VizException e) { + statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), e); } } } @@ -215,14 +222,18 @@ public class FogResource extends } this.record = resourceData.dataObjectMap.get(refHour); if (record != null) { - if (resourceData.gridImageMap.get(refHour) != null) { + if(record.getThreats()== null) needsUpdate=true; + if (resourceData.gridImageMap.get(refHour) != null && needsUpdate==false) { gridDisplay = resourceData.gridImageMap.get(refHour); } else { - // new image - record = resourceData.getFogThreat().getFogThreat(record); + if (needsUpdate) { + // new image + record = resourceData.getFogThreat().getFogThreat(record); + } gridDisplay = new GriddedImageDisplay(FloatBuffer.wrap(record .getThreats()), descriptor, record.getGridGeometry()); resourceData.gridImageMap.put(refHour, gridDisplay); + needsUpdate=false; } } if (!refHour.equals(previousDataTime)) { @@ -396,5 +407,15 @@ public class FogResource extends monitor.closeDialog(); } + + @Override + public void project(CoordinateReferenceSystem crs) throws VizException { + if (record != null) { + record.setGridGeometry2D(null); + resourceData.resetGridImgMap(); + needsUpdate = false; + issueRefresh(); + } + } } diff --git a/cave/com.raytheon.uf.viz.monitor.fog/src/com/raytheon/uf/viz/monitor/fog/ui/resource/FogResourceData.java b/cave/com.raytheon.uf.viz.monitor.fog/src/com/raytheon/uf/viz/monitor/fog/ui/resource/FogResourceData.java index a9bc4dbece..55ae2176e5 100644 --- a/cave/com.raytheon.uf.viz.monitor.fog/src/com/raytheon/uf/viz/monitor/fog/ui/resource/FogResourceData.java +++ b/cave/com.raytheon.uf.viz.monitor.fog/src/com/raytheon/uf/viz/monitor/fog/ui/resource/FogResourceData.java @@ -58,6 +58,7 @@ import com.raytheon.viz.core.rsc.displays.GriddedImageDisplay; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * 12Dec2009 3963 dhladky Initial Creation. + * 16Jun2012 14386 zhao Modified to keep only latest fog record for each frame * * * @@ -94,10 +95,15 @@ public class FogResourceData extends AbstractRequestableResourceData { try { records[i] = populateRecord(records[i]); } catch (VizException e) { - // TODO Auto-generated catch block. Please revise as - // appropriate. - statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), - e); + statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), e); + } + if ( dataObjectMap.containsKey(records[i].getRefHour().getTime()) ) { + if ( dataObjectMap.get(records[i].getRefHour().getTime()).getDataTime().greaterThan(records[i].getDataTime()) ) { + continue; + } else { + dataObjectMap.remove(records[i].getRefHour().getTime()); + gridImageMap.remove(records[i].getRefHour().getTime()); + } } dataObjectMap.put(records[i].getRefHour().getTime(), records[i]); gridImageMap.put(records[i].getRefHour().getTime(), null); @@ -188,5 +194,12 @@ public class FogResourceData extends AbstractRequestableResourceData { } return monitor; } + + public void resetGridImgMap() { + for(Date key: dataObjectMap.keySet()){ + gridImageMap.put(key, null); + } + } + } diff --git a/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/monitor/SiteMonitor.java b/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/monitor/SiteMonitor.java index 66b15e14d8..bc4d32c6e9 100644 --- a/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/monitor/SiteMonitor.java +++ b/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/monitor/SiteMonitor.java @@ -75,7 +75,7 @@ public class SiteMonitor implements IRequestCompleteListener> { * check if Metar is outdated * and turn indicator labels gray when Metar is outdated */ - private static long latestMetarTime = -1; + //private static long latestMetarTime = -1; private final int GRAY_COLOR_SEVERITY = 1; private boolean GRAY_LABEL = false; @@ -432,7 +432,7 @@ public class SiteMonitor implements IRequestCompleteListener> { Map mtrdcdMap = (Map) statusMap.get("dcd"); if ( mtrdcdMap != null ) { Map mtrItimeMap = (Map) mtrdcdMap.get("itime"); - latestMetarTime = ((Float) mtrItimeMap.get("value")).longValue() * 1000; + parentSiteComp.setLatestMtrTime(((Float) mtrItimeMap.get("value")).longValue() * 1000); } } @@ -452,8 +452,8 @@ public class SiteMonitor implements IRequestCompleteListener> { /** * DR14717: Metar monitor indicators should turn gray when Metar is outdated */ - if ( latestMetarTime > 0 ) { - if ( ( currentTime > ( latestMetarTime + TafSiteComp.METAR_TIMEOUT_4HR ) ) + if ( parentSiteComp.getLatestMtrTime() > 0 ) { + if ( ( currentTime > ( parentSiteComp.getLatestMtrTime() + TafSiteComp.METAR_TIMEOUT_4HR10MIN ) ) && ( thisMonitor.equals("MetarMonitor") || thisMonitor.equals("PersistMonitor") ) ) { /** * both Current observation monitoring indicators @@ -461,7 +461,7 @@ public class SiteMonitor implements IRequestCompleteListener> { */ GRAY_LABEL = true; msg = "METAR outdated"; - } else if ( ( currentTime > ( latestMetarTime + TafSiteComp.METAR_TIMEOUT_2HR ) ) + } else if ( ( currentTime > ( parentSiteComp.getLatestMtrTime() + TafSiteComp.METAR_TIMEOUT_2HR ) ) && thisMonitor.equals("PersistMonitor") ) { /** * Persistence indicators should turn gray @@ -471,7 +471,7 @@ public class SiteMonitor implements IRequestCompleteListener> { } } - if ( ( latestMetarTime < 0 ) && thisMonitor.equals("PersistMonitor") ) { + if ( ( parentSiteComp.getLatestMtrTime() < 0 ) && thisMonitor.equals("PersistMonitor") ) { parentSiteComp.setPersistMonitorProcessedFirst(true); } diff --git a/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/monitor/TafSiteComp.java b/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/monitor/TafSiteComp.java index b1d9012a6a..219fe6d9b7 100755 --- a/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/monitor/TafSiteComp.java +++ b/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/monitor/TafSiteComp.java @@ -124,11 +124,12 @@ public class TafSiteComp { * and the current observation and persistence indicators turn gray. * This is the timeout in milliseconds for 4 hours plus 10 minutes. */ - public final static long METAR_TIMEOUT_4HR = (4L * 60L + 10L) * 60L * 1000L; + public final static long METAR_TIMEOUT_4HR10MIN = (4L * 60L + 10L) * 60L * 1000L; /** * DR14717: */ + private long latestMtrTime = -1; private boolean persistMonitorProcessedFirst = false; /** @@ -651,7 +652,7 @@ public class TafSiteComp { long currentTime = SimulatedTime.getSystemTime().getTime() .getTime(); - if ( currentTime > ( metarTime + METAR_TIMEOUT_4HR ) ) { + if ( currentTime > ( metarTime + METAR_TIMEOUT_4HR10MIN ) ) { mtrTimeLbl.setText("None"); mtrTimeLbl.setBackground(getBackgroundColor()); if ( persistMonitorProcessedFirst ) { @@ -814,4 +815,12 @@ public class TafSiteComp { public void setPersistMonitorProcessedFirst(boolean b) { persistMonitorProcessedFirst = b; } + + public void setLatestMtrTime(long latestMtrTime) { + this.latestMtrTime = latestMtrTime; + } + + public long getLatestMtrTime() { + return latestMtrTime; + } } diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/ProductScriptsDialog.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/ProductScriptsDialog.java index e0d4d7b5ff..3a78196014 100644 --- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/ProductScriptsDialog.java +++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/ProductScriptsDialog.java @@ -21,8 +21,10 @@ package com.raytheon.viz.gfe.dialogs; import java.text.SimpleDateFormat; import java.util.Arrays; +import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.TimeZone; @@ -46,7 +48,10 @@ import com.raytheon.uf.common.time.SimulatedTime; import com.raytheon.uf.viz.core.VizApp; import com.raytheon.viz.gfe.Activator; import com.raytheon.viz.gfe.core.DataManager; +import com.raytheon.viz.gfe.smartscript.FieldDefinition; +import com.raytheon.viz.gfe.smartscript.FieldDefinition.FieldType; import com.raytheon.viz.gfe.tasks.TaskManager; +import com.raytheon.viz.gfe.ui.runtimeui.ValuesDialog; import com.raytheon.viz.ui.dialogs.CaveJFACEDialog; import com.raytheon.viz.ui.widgets.ToggleSelectList; @@ -127,13 +132,12 @@ public class ProductScriptsDialog extends CaveJFACEDialog { * */ private void runScripts() { - // TODO implement this int[] idxs = scriptsList.getSelectionIndices(); for (int idx : idxs) { try { - Boolean run = true; - + Boolean run = true; + String name = scriptsList.getItem(idx); String cmd = scriptDict.get(name); @@ -189,47 +193,89 @@ public class ProductScriptsDialog extends CaveJFACEDialog { // {entryButtons: : } - - int count = cmd.split("entryButtons").length - 1; + int count = cmd.split("entryButtons").length - 1; if (count > 0) { - int entryIdx = 0, i = 0, start = 0; - HashMap map = new HashMap(); - - while (entryIdx != -1) { - entryIdx = cmd.indexOf("{entryButtons:",entryIdx); - if (entryIdx >= 0) { - int endEntryIdx = cmd.indexOf("}", entryIdx); - String[] entry = cmd.substring(entryIdx + 1, endEntryIdx) - .split(":"); - map.put(entry[1],entry[2].split(",")); - if (i == 0) start = entryIdx; - entryIdx=endEntryIdx+1; - i++; - } - - if (entryIdx == -1) { - ButtonEntryDialog buttonDlg = new ButtonEntryDialog( - this.getShell(), name, map); - String returnMsg = buttonDlg.open(); - if (returnMsg == null) { - // cancel pressed - run = false; - continue; - } - start = start - 3; + int entryIdx = 0, i = 0, start = 0; + List fieldDefs = new ArrayList (); + + while (entryIdx != -1) { + entryIdx = cmd.indexOf("{entryButtons:",entryIdx); + if (entryIdx >= 0) { + int endEntryIdx = cmd.indexOf("}", entryIdx); + String[] entry = cmd.substring(entryIdx + 1, endEntryIdx) + .split(":"); + String [] fields = entry[2].split(","); + + fieldDefs.add(new FieldDefinition((Object)entry[1], entry[1], FieldType.RADIO, (Object)fields[0], + Arrays.asList(Arrays.asList(fields).toArray(new Object[fields.length])), (float)1.0, (int)3)); + if (i == 0) start = entryIdx; + entryIdx=endEntryIdx+1; + i++; + } + + if (entryIdx == -1) { + ValuesDialog buttonDlg = new ValuesDialog(name, fieldDefs, dataManager); + if (buttonDlg.open() > 0) { + run = false; + continue; + } + + Map map = buttonDlg.getValues(); + String returnMsg = ""; + + for (Map.Entry entry : map.entrySet()) { + returnMsg = returnMsg + entry.getValue().toString() + " "; + } + + start = start - 3; cmd = cmd.substring(0, start) + returnMsg; - } - } + } + } } // The user is prompted for a list of check box values. // {entryChecks: : } - // int entryIdx = cmd.indexOf("{entryChecks:"); - // if (entryIdx >= 0) { - // int endEntryIdx = cmd.indexOf("}", entryIdx); - // } + count = cmd.split("entryChecks").length - 1; + if (count > 0) { + int entryIdx = 0, i = 0, start = 0; + List fieldDefs = new ArrayList (); + + while (entryIdx != -1) { + entryIdx = cmd.indexOf("{entryChecks:",entryIdx); + if (entryIdx >= 0) { + int endEntryIdx = cmd.indexOf("}", entryIdx); + String[] entry = cmd.substring(entryIdx + 1, endEntryIdx) + .split(":"); + String [] fields = entry[2].split(","); + + fieldDefs.add(new FieldDefinition((Object)entry[1], entry[1], FieldType.CHECK, (Object)null, + Arrays.asList(Arrays.asList(fields).toArray(new Object[fields.length])), (float)1.0, (int)3)); + if (i == 0) start = entryIdx; + entryIdx=endEntryIdx+1; + i++; + } + + if (entryIdx == -1) { + ValuesDialog buttonDlg = new ValuesDialog(name, fieldDefs, dataManager); + if (buttonDlg.open() > 0) { + run = false; + continue; + } + + Map map = buttonDlg.getValues(); + String returnMsg = ""; + + for (Map.Entry entry : map.entrySet()) { + returnMsg = returnMsg + entry.getValue().toString() + " "; + } + + start = start - 3; + cmd = cmd.substring(0, start) + returnMsg; + } + } + } // The user is prompted for a named variable, same as the // user-supplied variables above, but for non-standard @@ -245,8 +291,7 @@ public class ProductScriptsDialog extends CaveJFACEDialog { + ":", entry[2]); String returnMsg = entryDlg.open(); if (returnMsg == null) { - // cancel pressed - run = false; + run = false; continue; } configFile = returnMsg; @@ -299,7 +344,7 @@ public class ProductScriptsDialog extends CaveJFACEDialog { data = new GridData(GridData.FILL_HORIZONTAL); data.horizontalAlignment = SWT.CENTER; scriptsLab.setLayoutData(data); - scriptsList = new ToggleSelectList(top, SWT.BORDER | SWT.MULTI); + scriptsList = new ToggleSelectList(top, SWT.MULTI | SWT.V_SCROLL); String[] scriptLabels = scriptDict.keySet().toArray( new String[scriptDict.size()]); Arrays.sort(scriptLabels); @@ -314,7 +359,7 @@ public class ProductScriptsDialog extends CaveJFACEDialog { return top; } - + /* * (non-Javadoc) * diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/ifpimage/ImageLegendResource.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/ifpimage/ImageLegendResource.java index aca16656a0..5e5cf36057 100644 --- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/ifpimage/ImageLegendResource.java +++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/ifpimage/ImageLegendResource.java @@ -1,19 +1,19 @@ /** * 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. **/ @@ -46,17 +46,18 @@ import com.raytheon.viz.gfe.rsc.GFEResource; /** * Image legend resource used by GFEPainter.py - * + * *
- * 
+ *
  * SOFTWARE HISTORY
- * 
+ *
  * Date         Ticket#    Engineer    Description
  * ------------ ---------- ----------- --------------------------
  * Jan 24, 2011            mschenke     Initial creation
- * 
+ * Jun 25, 2012  15080     ryu          Ron's local time fix
+ *
  * 
- * + * * @author mschenke * @version 1.0 */ @@ -154,14 +155,15 @@ public class ImageLegendResource extends GFELegendResource { Formatter formatter = new Formatter(locale); + String tz = "GMT"; + if (localTime) { + tz = dataManager.getParmManager().compositeGridLocation() + .getTimeZone(); + } + if (snapshotTime) { // display the time of the snapshot Calendar snap = curTime.getRefTimeAsCalendar(); - String tz = "GMT"; - if (localTime) { - tz = dataManager.getParmManager().compositeGridLocation() - .getTimeZone(); - } snap.setTimeZone(TimeZone.getTimeZone(tz)); formatter.format(snapshotFormat.replaceAll("\\%", "%1\\$t"), snap); @@ -175,22 +177,14 @@ public class ImageLegendResource extends GFELegendResource { } if (startFormat != null) { Calendar start = Calendar.getInstance(); - if (localTime) { - start.setTimeZone(TimeZone.getDefault()); - } else { - start.setTimeZone(TimeZone.getTimeZone("GMT")); - } + start.setTimeZone(TimeZone.getTimeZone(tz)); start.setTime(tr.getStart()); formatter.format( startFormat.replaceAll("\\%", "%1\\$t"), start); } if (endFormat != null) { Calendar end = Calendar.getInstance(); - if (localTime) { - end.setTimeZone(TimeZone.getDefault()); - } else { - end.setTimeZone(TimeZone.getTimeZone("GMT")); - } + end.setTimeZone(TimeZone.getTimeZone(tz)); end.setTime(tr.getEnd()); formatter.format(endFormat.replaceAll("\\%", "%1\\$t"), end); @@ -345,7 +339,7 @@ public class ImageLegendResource extends GFELegendResource { /** * Specifies the color for a legend entry, overrides the default - * + * * @param parmName * @param colorName */ diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/sampler/ParmHisto.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/sampler/ParmHisto.java index 5e970481ad..3b6575bd38 100644 --- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/sampler/ParmHisto.java +++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/sampler/ParmHisto.java @@ -46,6 +46,7 @@ import com.raytheon.uf.common.time.TimeRange; * ------------ ---------- ----------- -------------------------- * May 21, 2008 1167 mnash Initial creation * Sep 3, 2008 1283 njensen Fixed issues + * Jun 15, 2012 14994 ryu Fixed NPE on _minMaxSumHP * * * @@ -210,7 +211,7 @@ public class ParmHisto { // if not cached, then calculate if (((minpercent != _minModPercent) || (maxpercent != _maxModPercent)) - && (_minMaxSumHP.size() >= 1)) { + && (_minMaxSumHP != null) && (_minMaxSumHP.size() >= 1)) { ParmHisto ph = this; // calculate the number of sample points @@ -297,7 +298,7 @@ public class ParmHisto { // if not cached, then calculate if (((minStds != _minStds) || (maxStds != _maxStds)) - && (_minMaxSumHP.size() >= 1)) { + && (_minMaxSumHP != null) && (_minMaxSumHP.size() >= 1)) { ParmHisto ph = this; float sDev = 0.0f; float avg = 0.0f; diff --git a/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/rsc/GridResource.java b/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/rsc/GridResource.java index 037ecb8815..e18ffbb869 100644 --- a/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/rsc/GridResource.java +++ b/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/rsc/GridResource.java @@ -135,6 +135,9 @@ import com.vividsolutions.jts.io.WKTReader; * 04/03/2012 14774/14775 D. Friedman Fixed tiling and lockup problem * 05/08/2012 14828 D. Friedman Use nearest-neighbor interpolation for * reprojected grids. + * 06/19/2012 14988 D. Friedman Choose interpolation method based on + * ImagingCapability.isInterpolationState(). + * Oversample reprojected grids. * * * @@ -295,10 +298,19 @@ public class GridResource extends .getLocation().getGridGeometry(); GridGeometry2D expectedGridGeometry = this.gridGeometry[0]; if (!realGridGeometry.equals(expectedGridGeometry)) { - AbstractInterpolation interp = new NearestNeighborInterpolation( - realGridGeometry, expectedGridGeometry, -9998, - Float.POSITIVE_INFINITY, -999999); - //interp.setMissingThreshold(1.0f); // Should be used for bi-linear interpolation + AbstractInterpolation interp; + if (getCapability(ImagingCapability.class).isInterpolationState()) { + BilinearInterpolation blInterp = new BilinearInterpolation( + realGridGeometry, expectedGridGeometry, -9998, + Float.POSITIVE_INFINITY, -999999); + blInterp.setMissingThreshold(1.0f); + interp = blInterp; + } else { + interp = new NearestNeighborInterpolation( + realGridGeometry, expectedGridGeometry, -9998, + Float.POSITIVE_INFINITY, -999999); + } + if (record instanceof FloatDataRecord) { float[] data = ((FloatDataRecord) record).getFloatData(); record = record.clone(); @@ -724,7 +736,7 @@ public class GridResource extends try { gridGeometry2D = GridGeometry2D.wrap(MapUtil.reprojectGeometry( gridGeometry2D, descriptor.getGridGeometry() - .getEnvelope())); + .getEnvelope(), false, 2)); } catch (Exception e) { statusHandler.handle(Priority.PROBLEM, "Unable to reproject image:" + e.getLocalizedMessage(), @@ -1479,6 +1491,17 @@ public class GridResource extends } } } + } else if (type.equals(ChangeType.CAPABILITY)) { + if (object instanceof ImagingCapability) { + // TODO: check if interpolation state really changed + try { + if (descriptor != null) + project(descriptor.getGridGeometry().getCoordinateReferenceSystem()); + } catch (VizException e) { + statusHandler.handle(Priority.PROBLEM, + "Error updating grid resource imaging", e); + } + } } issueRefresh(); diff --git a/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/rsc/GridVectorResource.java b/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/rsc/GridVectorResource.java index 82687db694..c1838c22b9 100644 --- a/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/rsc/GridVectorResource.java +++ b/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/rsc/GridVectorResource.java @@ -77,6 +77,7 @@ import com.raytheon.viz.core.rsc.ICombinedResourceData.CombineUtil; import com.raytheon.viz.grid.GridLevelTranslator; import com.raytheon.viz.grid.rsc.GridNameGenerator.IGridNameResource; import com.raytheon.viz.grid.rsc.GridNameGenerator.LegendParameters; +import com.raytheon.viz.grid.util.ConformalityUtil; import com.raytheon.viz.grid.util.CoverageUtils; import com.raytheon.viz.grid.util.RemappedImage; import com.raytheon.viz.grid.xml.FieldDisplayTypesFactory; @@ -104,7 +105,8 @@ import com.vividsolutions.jts.geom.Coordinate; * when click 'Diff' button. * 05/08/2012 14828 D. Friedman Use nearest-neighbor interpolation for * reprojected grids. - * 05/16/2012 14993 D. Friedman Fix "blocky" contours + * 05/16/2012 14993 D. Friedman Fix "blocky" contours + * 06/19/2012 14988 D. Friedman Reproject based on conformality * * * @@ -232,7 +234,9 @@ public class GridVectorResource extends AbstractMapVectorResource implements if (location != null && location.getSpacingUnit().equals("degree")) { double dx = location.getDx(); Integer nx = location.getNx(); - if (dx * nx >= 360) { + //if (dx * nx >= 360) { // Test changed for DR 14988 to the following + if (! ConformalityUtil.testConformality(location.getGridGeometry(), + descriptor.getGridGeometry())) { reproject = true; } } diff --git a/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/rsc/general/D2DGribGridResource.java b/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/rsc/general/D2DGribGridResource.java index 91f031b8fb..1c942e2844 100644 --- a/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/rsc/general/D2DGribGridResource.java +++ b/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/rsc/general/D2DGribGridResource.java @@ -54,6 +54,7 @@ import com.raytheon.viz.grid.rsc.GridNameGenerator; import com.raytheon.viz.grid.rsc.GridNameGenerator.IGridNameResource; import com.raytheon.viz.grid.rsc.GridNameGenerator.LegendParameters; import com.raytheon.viz.grid.rsc.GridResourceData; +import com.raytheon.viz.grid.util.ConformalityUtil; import com.raytheon.viz.grid.xml.FieldDisplayTypesFactory; import com.vividsolutions.jts.geom.Coordinate; @@ -68,6 +69,7 @@ import com.vividsolutions.jts.geom.Coordinate; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * Mar 9, 2011 bsteffen Initial creation + * 06/19/2012 14988 D. Friedman Reproject based on conformality * * * @@ -265,14 +267,17 @@ public class D2DGribGridResource extends GribGridResource if (location != null && location.getSpacingUnit().equals("degree")) { double dx = location.getDx(); Integer nx = location.getNx(); - if (dx * nx >= 360) { + //if (dx * nx >= 360) { // Test changed for DR 14988 to the following + + if (! ConformalityUtil.testConformality(location.getGridGeometry(), + descriptor.getGridGeometry())) { try { GridGeometry2D sourceGeometry = location.getGridGeometry(); GeneralGridGeometry targetGeometry = sourceGeometry; if (descriptor != null) { targetGeometry = MapUtil.reprojectGeometry( sourceGeometry, descriptor.getGridGeometry() - .getEnvelope(), true); + .getEnvelope(), true, 2); } reprojectionInterpolation = new BilinearInterpolation( sourceGeometry, targetGeometry); diff --git a/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/util/ConformalityUtil.java b/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/util/ConformalityUtil.java new file mode 100644 index 0000000000..04bb98c6e4 --- /dev/null +++ b/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/util/ConformalityUtil.java @@ -0,0 +1,273 @@ +package com.raytheon.viz.grid.util; + +import java.util.ArrayList; + +import org.geotools.coverage.grid.GeneralGridGeometry; +import org.geotools.factory.Hints; +import org.geotools.geometry.DirectPosition2D; +import org.geotools.referencing.CRS; +import org.geotools.referencing.ReferencingFactoryFinder; +import org.geotools.referencing.operation.AbstractCoordinateOperationFactory; +import org.geotools.referencing.operation.transform.IdentityTransform; +import org.opengis.geometry.Envelope; +import org.opengis.referencing.FactoryException; +import org.opengis.referencing.crs.CoordinateReferenceSystem; +import org.opengis.referencing.crs.GeographicCRS; +import org.opengis.referencing.crs.ProjectedCRS; +import org.opengis.referencing.operation.CoordinateOperationFactory; +import org.opengis.referencing.operation.MathTransform; +import org.opengis.referencing.operation.MathTransformFactory; +import org.opengis.referencing.operation.TransformException; + +// TODO: is .getEnvelope() correct? + +/** + * From AWIPS 1 GridPVDepict.C: + * + * This method determines whether the mapping between gridded data and the + * display space is severe enough to require the gridded data to be remapped + * before display. + * + *
+ * 
+ *    SOFTWARE HISTORY
+ *   
+ *    Date         Ticket#     Engineer    Description
+ *    ------------ ----------  ----------- --------------------------
+ *    06/19/2012   14988       D. Friedman Initial revision
+ * 
+ * 
+ */ +public class ConformalityUtil { + public static boolean testConformality(GeneralGridGeometry sourceGG, GeneralGridGeometry destGG) { + ConformalityUtil test = new ConformalityUtil(sourceGG, destGG); + return test.testConformality(); + } + + GeneralGridGeometry sourceGG; + GeneralGridGeometry destGG; + double minRatio; + double maxRatio; + MathTransform lastMT; + + private ConformalityUtil(GeneralGridGeometry sourceGG, GeneralGridGeometry destGG) { + this.sourceGG = sourceGG; + this.destGG = destGG; + + } + + public boolean testConformality() { + CoordinateReferenceSystem srcCRS = sourceGG.getCoordinateReferenceSystem(); + CoordinateReferenceSystem dstCRS = destGG.getCoordinateReferenceSystem(); + GeneralGridGeometry evaluatedDomain = null; + + if (srcCRS == null || dstCRS == null) + return false; + if (CRS.equalsIgnoreMetadata(srcCRS, dstCRS)) + return true; + + boolean evaluated = false; + + resetRatios(); + evaluated = evaluateEnvelope(destGG, sourceGG); + if (evaluated) { + evaluatedDomain = destGG; + } else { + resetRatios(); + evaluated = evaluateEnvelope(sourceGG, destGG); + evaluatedDomain = sourceGG; + } + + double ar = evaluatedDomain.getEnvelope().getSpan(0)/ + evaluatedDomain.getEnvelope().getSpan(1); + if (ar < 1) + ar = 1 / ar; + final double maxRatioRatio = 2.0; + double rr = maxRatio / minRatio; + + if (! evaluated || maxRatio / minRatio > maxRatioRatio) { + System.out.format("%s -> %s : not conformal enough (%f)\n", + sourceGG, destGG, maxRatio / minRatio); + return false; + } + + resetRatios(); + + if (! evaluateNonContig(evaluatedDomain)) { + System.out.format("%s -> %s : not contiguous?\n", sourceGG, destGG); + return false; + } else if (maxRatio/minRatio > maxRatioRatio || + (minRatio > 0 && maxRatio/minRatio > maxRatioRatio) || // ? + (minRatio < 0 && minRatio/maxRatio > maxRatioRatio)) { + System.out.format("%s -> %s : not conformal enough somehow\n", sourceGG, destGG); + return false; + } else { + System.out.format("%s -> %s : conformal enough (%f, %f)\n", + sourceGG, destGG, rr, maxRatio/minRatio); + return true; + } + } + + private boolean evaluateNonContig(GeneralGridGeometry evaluatedDomain) { + int nEval = 0; + Envelope e = evaluatedDomain.getEnvelope(); + + DirectPosition2D pivot = new DirectPosition2D( + (e.getMinimum(0)+e.getMaximum(0)) / 2, + (e.getMinimum(1)+e.getMaximum(1)) / 2); + if (ep(pivot, (e.getMinimum(0)+e.getMaximum(0)) / 2, e.getMinimum(1))) ++nEval; + if (ep(pivot, (e.getMinimum(0)+e.getMaximum(0)) / 2, e.getMaximum(1))) ++nEval; + if (ep(pivot, e.getMinimum(0), (e.getMinimum(1)+e.getMaximum(1)) / 2)) ++nEval; + if (ep(pivot, e.getMaximum(0), (e.getMinimum(1)+e.getMaximum(1)) / 2)) ++nEval; + if (ep(pivot, (pivot.x+e.getMaximum(0)*999999)/1000000, + (pivot.y+e.getMaximum(1)*999999)/1000000)) ++nEval; + if (ep(pivot, (pivot.x+e.getMinimum(0)*999999)/1000000, + (pivot.y+e.getMaximum(1)*999999)/1000000)) ++nEval; + if (ep(pivot, (pivot.x+e.getMaximum(0)*999999)/1000000, + (pivot.y+e.getMinimum(1)*999999)/1000000)) ++nEval; + if (ep(pivot, (pivot.x+e.getMinimum(0)*999999)/1000000, + (pivot.y+e.getMinimum(1)*999999)/1000000)) ++nEval; + + return nEval >= 4; + } + + private boolean ep(DirectPosition2D base, double x, double y) { + DirectPosition2D point = new DirectPosition2D(x, y); + DirectPosition2D br = new DirectPosition2D(); + DirectPosition2D pr = new DirectPosition2D(); + if (! xf(base, br) || ! xf(point, pr)) + return false; + + pr.x -= br.x; + pr.y -= br.y; + point.x -= base.x; + point.y -= base.y; + + //double conf = (pr.x*point.x+pr.y*point.y)/Math.sqrt(pr.x*pr.x+pr.y*pr.y);//? + double conf = Math.sqrt(point.x*point.x+point.y*point.y)/Math.sqrt(pr.x*pr.x+pr.y*pr.y); + if (confmaxRatio) maxRatio = conf; + + return true; + } + + private boolean evaluateEnvelope(GeneralGridGeometry aGG, GeneralGridGeometry bGG) { + CoordinateReferenceSystem aCRS = aGG.getCoordinateReferenceSystem(); + CoordinateReferenceSystem bCRS = bGG.getCoordinateReferenceSystem(); + GeographicCRS aGeoCRS = null; + GeographicCRS bGeoCRS = null; + ArrayList transforms = new ArrayList(); + + if (aCRS instanceof ProjectedCRS) { + aGeoCRS = ((ProjectedCRS) aCRS).getBaseCRS(); + } + if (bCRS instanceof ProjectedCRS) { + bGeoCRS = ((ProjectedCRS) bCRS).getBaseCRS(); + } + try { + transforms.add(CRS.findMathTransform(bCRS, bGeoCRS, true)); + if (CRS.equalsIgnoreMetadata(aGeoCRS, bGeoCRS)) { + // nothing... + } else { + transforms.add(CRS.findMathTransform(bGeoCRS, aGeoCRS)); + } + transforms.add(CRS.findMathTransform(aGeoCRS, aGG.getCoordinateReferenceSystem(), true)); + } catch (FactoryException e) { + //statusHandler.error(e.getMessage(), e); + return false; + } + + MathTransform mt; + try { + mt = concatenateTransforms(transforms); + } catch (FactoryException e) { + //statusHandler.error(e.getMessage(), e); + return false; + } + + lastMT = mt; + + Envelope e = aGG.getEnvelope(); + return (evaluatePoint((e.getMinimum(0)+e.getMaximum(0)) / 2, + (e.getMinimum(1)+e.getMaximum(1)) / 2) && + evaluatePoint(e.getMinimum(0), e.getMinimum(1)) && + evaluatePoint(e.getMinimum(0), e.getMaximum(1)) && + evaluatePoint(e.getMaximum(0), e.getMaximum(1)) && + evaluatePoint(e.getMaximum(0), e.getMinimum(1))); + } + + private boolean evaluatePoint(double x, double y) { + DirectPosition2D point = new DirectPosition2D(x, y); + DirectPosition2D remap = new DirectPosition2D(); + DirectPosition2D offset = new DirectPosition2D(); + + if (! xf(point, remap)) + return false; + + point.x += 0.0001; + if (! xf(point, offset)) { + point.x = x - 0.0001; + if (! xf(point, offset)) + return false; + } + + offset.x -= remap.x; + offset.y -= remap.y; + double ratio = Math.sqrt(offset.x*offset.x+offset.y*offset.y)/0.0001; + if (ratiomaxRatio) maxRatio = ratio; + + point.x = x; + point.y += 0.0001; + if (! xf(point, offset)) { + point.y = y - 0.0001; + if (! xf(point, offset)) + return false; + } + + offset.x -= remap.x; + offset.y -= remap.y; + ratio = Math.sqrt(offset.x*offset.x+offset.y*offset.y)/0.0001; + if (ratiomaxRatio) maxRatio = ratio; + + return true; + } + + private boolean xf(DirectPosition2D a, DirectPosition2D b) { + try { + lastMT.transform(a, b); + } catch (TransformException e) { + return false; + } + return true; + } + + private static MathTransform concatenateTransforms(ArrayList transforms) throws FactoryException { + Hints hints = new Hints(); + final CoordinateOperationFactory factory = + ReferencingFactoryFinder.getCoordinateOperationFactory(hints); + final MathTransformFactory mtFactory; + if (factory instanceof AbstractCoordinateOperationFactory) { + mtFactory = ((AbstractCoordinateOperationFactory) factory).getMathTransformFactory(); + } else { + mtFactory = ReferencingFactoryFinder.getMathTransformFactory(hints); + } + + MathTransform mt = null; + for (MathTransform mti : transforms) { + if (mt == null) + mt = mti; + else { + mt = mtFactory.createConcatenatedTransform(mt, mti); + } + } + + return mt != null ? mt : IdentityTransform.create(2); + } + + private void resetRatios() { + minRatio = Double.MAX_VALUE; + maxRatio = -Double.MAX_VALUE; + } +} diff --git a/cave/com.raytheon.viz.hydro/src/com/raytheon/viz/hydro/timeseries/TimeSeriesDisplayCanvas.java b/cave/com.raytheon.viz.hydro/src/com/raytheon/viz/hydro/timeseries/TimeSeriesDisplayCanvas.java index 64d0cf79f3..00d350e75f 100644 --- a/cave/com.raytheon.viz.hydro/src/com/raytheon/viz/hydro/timeseries/TimeSeriesDisplayCanvas.java +++ b/cave/com.raytheon.viz.hydro/src/com/raytheon/viz/hydro/timeseries/TimeSeriesDisplayCanvas.java @@ -1978,9 +1978,12 @@ public class TimeSeriesDisplayCanvas extends TimeSeriesGraphCanvas implements rubberBandY2 = e.y; if (dialog.isZoomAction()) { - dialog.setZoom(true); - zoomed = true; - dialog.setZoomAction(false); + if ((rubberBandX1 != rubberBandX2) || //avoid click to zoom in on 1 point + (rubberBandY1 != rubberBandY2)) { + dialog.setZoom(true); + zoomed = true; + dialog.setZoomAction(false); + } } else if (pointSelected) { int[] dataPts = graphData.getTraceData(selectedTraceId) .getLineData(); @@ -2060,6 +2063,25 @@ public class TimeSeriesDisplayCanvas extends TimeSeriesGraphCanvas implements redraw(); } + /** + * Reset the time series back to non-zoom-in + */ + public void resetTS(){ + dialog.setZoom(false); + setZoomed(false); + dialog.setZoomAction(false); + traceArray = graphData.getTraces(); + traceArray.trimToSize(); + + // Set true so new regions will be created + createRegions = true; + + setCursor(arrowCursor); + redraw(); + + return; + } + /** * Save the edited data. * diff --git a/cave/com.raytheon.viz.hydro/src/com/raytheon/viz/hydro/timeseries/TimeSeriesDisplayDlg.java b/cave/com.raytheon.viz.hydro/src/com/raytheon/viz/hydro/timeseries/TimeSeriesDisplayDlg.java index 33ec6695ff..cdb7102a22 100644 --- a/cave/com.raytheon.viz.hydro/src/com/raytheon/viz/hydro/timeseries/TimeSeriesDisplayDlg.java +++ b/cave/com.raytheon.viz.hydro/src/com/raytheon/viz/hydro/timeseries/TimeSeriesDisplayDlg.java @@ -967,11 +967,15 @@ public class TimeSeriesDisplayDlg extends CaveSWTDialog { resetMI.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent event) { - setZoom(false); - setZoomAction(false); - setSelectZoom(false); - reset = true; -// displayCanvas.redraw(); + if (groupInfo.isGroupSelected()) { + setZoom(false); + setZoomAction(false); + setSelectZoom(false); + reset = true; + displayCanvas.redraw(); + } else { + displayCanvas.resetTS(); + } } }); } diff --git a/cave/com.raytheon.viz.hydro/src/com/raytheon/viz/hydro/timeseries/util/ScaleManager.java b/cave/com.raytheon.viz.hydro/src/com/raytheon/viz/hydro/timeseries/util/ScaleManager.java index 008c773336..66b0300460 100644 --- a/cave/com.raytheon.viz.hydro/src/com/raytheon/viz/hydro/timeseries/util/ScaleManager.java +++ b/cave/com.raytheon.viz.hydro/src/com/raytheon/viz/hydro/timeseries/util/ScaleManager.java @@ -102,7 +102,7 @@ public class ScaleManager { // set the range the values fit into double range = maxDataValue - minScaleValue; - if (range < 1) { + if (range < 1 && !zoomFlag) { range = 1; } diff --git a/cave/com.raytheon.viz.hydrobase/src/com/raytheon/viz/hydrobase/FloodReportDlg.java b/cave/com.raytheon.viz.hydrobase/src/com/raytheon/viz/hydrobase/FloodReportDlg.java index 86b0fce159..3343d3107f 100644 --- a/cave/com.raytheon.viz.hydrobase/src/com/raytheon/viz/hydrobase/FloodReportDlg.java +++ b/cave/com.raytheon.viz.hydrobase/src/com/raytheon/viz/hydrobase/FloodReportDlg.java @@ -22,6 +22,7 @@ package com.raytheon.viz.hydrobase; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; +import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; @@ -76,6 +77,7 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog; * Jan 13, 2011 5415 lbousaidi added a dialog when * "Compute Latest data" button runs * May 14, 2012 14965 wkwock fix crash in query for data + * Jun 18, 2012 14377 wkwock Correct insert data into crest table. * * * @@ -1048,8 +1050,23 @@ public class FloodReportDlg extends CaveSWTDialog { Map dataMap = dman.getReportData(); FloodReportData data = dataMap.get(selectedLid); String cremark = "Inserted from the FloodTS table via Hydrobase"; + + String[] selectedEvent=eventList.getSelection(); + String stage=selectedEvent[0].substring(1, 13).trim(); + String eventDateStr=selectedEvent[0].substring(17, 33); + Date eventDate=null; + try { + eventDate=fr.parse(eventDateStr); + } catch (ParseException e) { + e.printStackTrace(); + MessageBox mbe = new MessageBox(shell, SWT.OK | SWT.ERROR); + mbe.setMessage("ERROR while attempting to parse :"+eventDateStr+" at insertRecord()"); + mbe.open(); + return -2; + } + long discharge = Math.round(RatingUtils.stage2discharge(data.getLid(), - data.getCrest())); + Double.parseDouble(stage))); // Build the insert statement StringBuilder sql = new StringBuilder(); @@ -1060,10 +1077,10 @@ public class FloodReportDlg extends CaveSWTDialog { } sql.append(") values('" + data.getLid() + "', "); - sql.append("'" + dateFormat.format(data.getCrestDate()) + "', "); - sql.append("'" + hourFormat.format(data.getCrestDate()) + "', "); + sql.append("'" + dateFormat.format(eventDate) + "', "); + sql.append("'" + hourFormat.format(eventDate) + "', "); sql.append("'" + cremark + "', "); - sql.append("" + data.getCrest()); + sql.append("" + stage); if (discharge != HydroConstants.RATING_CONVERT_FAILED) { sql.append(", " + discharge); } diff --git a/cave/com.raytheon.viz.hydrobase/src/com/raytheon/viz/hydrobase/dialogs/AddModifyLocationDlg.java b/cave/com.raytheon.viz.hydrobase/src/com/raytheon/viz/hydrobase/dialogs/AddModifyLocationDlg.java index 6a19863280..300697e8f4 100644 --- a/cave/com.raytheon.viz.hydrobase/src/com/raytheon/viz/hydrobase/dialogs/AddModifyLocationDlg.java +++ b/cave/com.raytheon.viz.hydrobase/src/com/raytheon/viz/hydrobase/dialogs/AddModifyLocationDlg.java @@ -26,6 +26,8 @@ import java.util.TimeZone; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.StackLayout; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Font; @@ -216,6 +218,11 @@ public class AddModifyLocationDlg extends CaveSWTDialog implements * Remarks text control. */ private Text remarksTF; + + /** + * text from the remark text box + */ + private String currentRemarkText=null; /** * Forecast Point check box. @@ -783,6 +790,20 @@ public class AddModifyLocationDlg extends CaveSWTDialog implements remarksTF.setLayoutData(gd); remarksTF.setFont(controlFont); remarksTF.setTextLimit(255); + currentRemarkText=remarksTF.getText(); + ModifyListener listener = new ModifyListener() { + public void modifyText(ModifyEvent e) { + if (remarksTF.getText().length()>255){ + remarksTF.setText(currentRemarkText); + shell.getDisplay().beep(); + } + else + currentRemarkText=remarksTF.getText(); + } + }; + + remarksTF.addModifyListener(listener); + } /** diff --git a/cave/com.raytheon.viz.hydrobase/src/com/raytheon/viz/hydrobase/dialogs/DescriptionDlg.java b/cave/com.raytheon.viz.hydrobase/src/com/raytheon/viz/hydrobase/dialogs/DescriptionDlg.java index 52a504ab31..916200382a 100644 --- a/cave/com.raytheon.viz.hydrobase/src/com/raytheon/viz/hydrobase/dialogs/DescriptionDlg.java +++ b/cave/com.raytheon.viz.hydrobase/src/com/raytheon/viz/hydrobase/dialogs/DescriptionDlg.java @@ -22,6 +22,8 @@ package com.raytheon.viz.hydrobase.dialogs; import java.util.ArrayList; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Font; @@ -132,6 +134,13 @@ public class DescriptionDlg extends CaveSWTDialog { private Button affectAreaSaveBtn; private String locationId; + + private String currentRemarkText=null; + private String currentFreezeText=null; + private String currentReachText=null; + private String currentRegText=null; + private String currentTopoText=null; + private String currentAreaText=null; // private boolean hasCurrentData = false; @@ -208,6 +217,7 @@ public class DescriptionDlg extends CaveSWTDialog { streamBedTF = new Text(controlComp, SWT.BORDER); streamBedTF.setFont(controlFont); streamBedTF.setLayoutData(gd); + streamBedTF.setTextLimit(60); gd = new GridData(SWT.FILL, SWT.CENTER, true, true); Label divertLbl = new Label(controlComp, SWT.RIGHT); @@ -219,6 +229,7 @@ public class DescriptionDlg extends CaveSWTDialog { divertTF = new Text(controlComp, SWT.BORDER); divertTF.setFont(controlFont); divertTF.setLayoutData(gd); + divertTF.setTextLimit(60); gd = new GridData(SWT.FILL, SWT.CENTER, true, true); Label remarksLbl = new Label(controlComp, SWT.RIGHT); @@ -232,6 +243,19 @@ public class DescriptionDlg extends CaveSWTDialog { | SWT.V_SCROLL); remarksTF.setFont(controlFont); remarksTF.setLayoutData(gd); + currentRemarkText=remarksTF.getText(); + ModifyListener listener = new ModifyListener() { + public void modifyText(ModifyEvent e) { + if (remarksTF.getText().length()>255){ + remarksTF.setText(currentRemarkText); + shell.getDisplay().beep(); + } + else + currentRemarkText=remarksTF.getText(); + } + }; + + remarksTF.addModifyListener(listener); gd = new GridData(SWT.FILL, SWT.CENTER, true, true); Label freezingLbl = new Label(controlComp, SWT.RIGHT); @@ -245,6 +269,18 @@ public class DescriptionDlg extends CaveSWTDialog { | SWT.V_SCROLL); freezingTF.setFont(controlFont); freezingTF.setLayoutData(gd); + currentFreezeText=freezingTF.getText(); + ModifyListener listenerF = new ModifyListener() { + public void modifyText(ModifyEvent e) { + if (freezingTF.getText().length()>160){ + freezingTF.setText(currentFreezeText); + shell.getDisplay().beep(); + } + else + currentFreezeText=freezingTF.getText(); + } + }; + freezingTF.addModifyListener(listenerF); gd = new GridData(SWT.FILL, SWT.CENTER, true, true); Label reachLbl = new Label(controlComp, SWT.RIGHT); @@ -258,6 +294,18 @@ public class DescriptionDlg extends CaveSWTDialog { | SWT.V_SCROLL); reachTF.setFont(controlFont); reachTF.setLayoutData(gd); + currentReachText=reachTF.getText(); + ModifyListener listenerR = new ModifyListener() { + public void modifyText(ModifyEvent e) { + if (reachTF.getText().length()>80){ + reachTF.setText(currentReachText); + shell.getDisplay().beep(); + } + else + currentReachText=reachTF.getText(); + } + }; + reachTF.addModifyListener(listenerR); gd = new GridData(SWT.FILL, SWT.CENTER, true, true); Label regulationLbl = new Label(controlComp, SWT.RIGHT); @@ -271,6 +319,18 @@ public class DescriptionDlg extends CaveSWTDialog { | SWT.V_SCROLL); regulationTF.setFont(controlFont); regulationTF.setLayoutData(gd); + currentRegText=regulationTF.getText(); + ModifyListener listenerReg = new ModifyListener() { + public void modifyText(ModifyEvent e) { + if (regulationTF.getText().length()>230){ + regulationTF.setText(currentRegText); + shell.getDisplay().beep(); + } + else + currentRegText=regulationTF.getText(); + } + }; + regulationTF.addModifyListener(listenerReg); gd = new GridData(SWT.FILL, SWT.CENTER, true, true); Label topoLbl = new Label(controlComp, SWT.RIGHT); @@ -284,6 +344,18 @@ public class DescriptionDlg extends CaveSWTDialog { | SWT.V_SCROLL); topoTF.setFont(controlFont); topoTF.setLayoutData(gd); + currentTopoText=topoTF.getText(); + ModifyListener listenerT = new ModifyListener() { + public void modifyText(ModifyEvent e) { + if (topoTF.getText().length()>230){ + topoTF.setText(currentTopoText); + shell.getDisplay().beep(); + } + else + currentTopoText=topoTF.getText(); + } + }; + topoTF.addModifyListener(listenerT); // --------------------------------------------- // Add the Delete and Save buttons @@ -338,6 +410,19 @@ public class DescriptionDlg extends CaveSWTDialog { | SWT.WRAP | SWT.V_SCROLL); affectedAreaTF.setFont(controlFont); affectedAreaTF.setLayoutData(gd); + currentAreaText=affectedAreaTF.getText(); + ModifyListener listenerA = new ModifyListener() { + public void modifyText(ModifyEvent e) { + if (affectedAreaTF.getText().length()>80){ + affectedAreaTF.setText(currentAreaText); + shell.getDisplay().beep(); + } + else + currentAreaText=affectedAreaTF.getText(); + } + }; + affectedAreaTF.addModifyListener(listenerA); + // --------------------------------------------- // Add the Delete and Save buttons diff --git a/cave/com.raytheon.viz.hydrobase/src/com/raytheon/viz/hydrobase/dialogs/FloodDamageDlg.java b/cave/com.raytheon.viz.hydrobase/src/com/raytheon/viz/hydrobase/dialogs/FloodDamageDlg.java index 7f2256491e..6e4f2645ba 100644 --- a/cave/com.raytheon.viz.hydrobase/src/com/raytheon/viz/hydrobase/dialogs/FloodDamageDlg.java +++ b/cave/com.raytheon.viz.hydrobase/src/com/raytheon/viz/hydrobase/dialogs/FloodDamageDlg.java @@ -23,6 +23,8 @@ import java.util.ArrayList; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; @@ -84,6 +86,11 @@ public class FloodDamageDlg extends CaveSWTDialog { */ private Text damageTF; + /** + * text from the remark text box + */ + private String currentDamageText=null; + /** * Lid for the dialog. */ @@ -221,6 +228,20 @@ public class FloodDamageDlg extends CaveSWTDialog { damageTF = new Text(statmentGroup, SWT.BORDER | SWT.MULTI | SWT.WRAP); damageTF.setLayoutData(gd); damageTF.setFont(controlFont); + currentDamageText=damageTF.getText(); + ModifyListener listener = new ModifyListener() { + public void modifyText(ModifyEvent e) { + if (damageTF.getText().length()>510){ + damageTF.setText(currentDamageText); + shell.getDisplay().beep(); + } + else + currentDamageText=damageTF.getText(); + } + }; + + damageTF.addModifyListener(listener); + } /** diff --git a/cave/com.raytheon.viz.hydrobase/src/com/raytheon/viz/hydrobase/dialogs/GageHistoryDlg.java b/cave/com.raytheon.viz.hydrobase/src/com/raytheon/viz/hydrobase/dialogs/GageHistoryDlg.java index eefe09b8e6..3acd1fc922 100644 --- a/cave/com.raytheon.viz.hydrobase/src/com/raytheon/viz/hydrobase/dialogs/GageHistoryDlg.java +++ b/cave/com.raytheon.viz.hydrobase/src/com/raytheon/viz/hydrobase/dialogs/GageHistoryDlg.java @@ -26,6 +26,8 @@ import java.util.Date; import java.util.TimeZone; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Font; @@ -104,7 +106,8 @@ public class GageHistoryDlg extends CaveSWTDialog { * Location text control. */ private Text locationTF; - + + private String currentLocText=null; /** * OK button. */ @@ -319,6 +322,20 @@ public class GageHistoryDlg extends CaveSWTDialog { locationTF = new Text(locationGroup, SWT.BORDER | SWT.MULTI | SWT.WRAP); locationTF.setLayoutData(gd); locationTF.setTextLimit(255); + currentLocText=locationTF.getText(); + ModifyListener listener = new ModifyListener() { + public void modifyText(ModifyEvent e) { + if (locationTF.getText().length()>255){ + locationTF.setText(currentLocText); + shell.getDisplay().beep(); + } + else + currentLocText=locationTF.getText(); + } + }; + + locationTF.addModifyListener(listener); + } /** diff --git a/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/contacts/ContactsDlg.java b/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/contacts/ContactsDlg.java index c671d0289d..7173339a03 100644 --- a/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/contacts/ContactsDlg.java +++ b/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/contacts/ContactsDlg.java @@ -22,6 +22,8 @@ package com.raytheon.viz.hydrocommon.contacts; import java.util.ArrayList; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Font; @@ -99,6 +101,10 @@ public class ContactsDlg extends CaveSWTDialog { * Concerns text control. */ private Text concernsTF; + /** + * text from the remark text box + */ + private String currentConcernsText=null; /** * Delete button. @@ -287,6 +293,21 @@ public class ContactsDlg extends CaveSWTDialog { gd.horizontalSpan = 3; concernsTF = new Text(infoGroup, SWT.BORDER | SWT.MULTI | SWT.WRAP); concernsTF.setLayoutData(gd); + currentConcernsText=concernsTF.getText(); + ModifyListener listener = new ModifyListener() { + @Override + public void modifyText(ModifyEvent e) { + if (concernsTF.getText().length()>255){ + concernsTF.setText(currentConcernsText); + shell.getDisplay().beep(); + } + else + currentConcernsText=concernsTF.getText(); + } + }; + + concernsTF.addModifyListener(listener); + } /** diff --git a/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/impactstatement/ImpactStatementDlg.java b/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/impactstatement/ImpactStatementDlg.java index a6d9b5fac0..214deb0fe4 100644 --- a/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/impactstatement/ImpactStatementDlg.java +++ b/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/impactstatement/ImpactStatementDlg.java @@ -31,6 +31,8 @@ import java.util.TimeZone; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.StyledText; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; @@ -146,6 +148,10 @@ public class ImpactStatementDlg extends CaveSWTDialog { * Text editor control. */ private StyledText textEditor; + /** + * text from the remark text box + */ + private String currentImpactText=null; /** * OK button. @@ -460,6 +466,20 @@ public class ImpactStatementDlg extends CaveSWTDialog { textEditor.setEditable(fullControl); textEditor.setWordWrap(true); textEditor.setTextLimit(512); + currentImpactText=textEditor.getText(); + ModifyListener listener = new ModifyListener() { + public void modifyText(ModifyEvent e) { + if (textEditor.getText().length()>512){ + textEditor.setText(currentImpactText); + shell.getDisplay().beep(); + } + else + currentImpactText=textEditor.getText(); + } + }; + + textEditor.addModifyListener(listener); + } /** diff --git a/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/lowwaterstatment/LowWaterStatementDlg.java b/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/lowwaterstatment/LowWaterStatementDlg.java index f061e737cd..2424dcbdb6 100644 --- a/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/lowwaterstatment/LowWaterStatementDlg.java +++ b/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/lowwaterstatment/LowWaterStatementDlg.java @@ -23,6 +23,8 @@ import java.util.ArrayList; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; @@ -142,8 +144,15 @@ public class LowWaterStatementDlg extends CaveSWTDialog { private enum DialogStates { HYDRO_VIEW, NEW, STATEMENTS_AVAILABLE, STATEMENTS_NOT_AVAILABLE - } - + } + + /** + * text from the remark text box + */ + private String currentCriteriaText=null; + private String currentSourceText=null; + private String currentStatementText=null; + private DialogStates buttonState; /** @@ -278,6 +287,19 @@ public class LowWaterStatementDlg extends CaveSWTDialog { gd.horizontalSpan = 7; criteriaTF = new Text(infoGroup, SWT.BORDER | SWT.MULTI); criteriaTF.setLayoutData(gd); + currentCriteriaText=criteriaTF.getText(); + ModifyListener listenerC = new ModifyListener() { + public void modifyText(ModifyEvent e) { + if (criteriaTF.getText().length()>255){ + criteriaTF.setText(currentCriteriaText); + shell.getDisplay().beep(); + } + else + currentCriteriaText=criteriaTF.getText(); + } + }; + + criteriaTF.addModifyListener(listenerC); gd = new GridData(SWT.RIGHT, SWT.TOP, true, true); Label sourceLbl = new Label(infoGroup, SWT.RIGHT); @@ -289,6 +311,19 @@ public class LowWaterStatementDlg extends CaveSWTDialog { gd.horizontalSpan = 7; sourceTF = new Text(infoGroup, SWT.BORDER | SWT.MULTI); sourceTF.setLayoutData(gd); + currentSourceText=sourceTF.getText(); + ModifyListener listenerS = new ModifyListener() { + public void modifyText(ModifyEvent e) { + if (sourceTF.getText().length()>255){ + sourceTF.setText(currentSourceText); + shell.getDisplay().beep(); + } + else + currentSourceText=sourceTF.getText(); + } + }; + + sourceTF.addModifyListener(listenerS); gd = new GridData(SWT.RIGHT, SWT.TOP, true, true); Label statementLbl = new Label(infoGroup, SWT.RIGHT); @@ -300,6 +335,20 @@ public class LowWaterStatementDlg extends CaveSWTDialog { gd.horizontalSpan = 7; statementTF = new Text(infoGroup, SWT.BORDER | SWT.MULTI); statementTF.setLayoutData(gd); + currentStatementText=statementTF.getText(); + ModifyListener listenerT = new ModifyListener() { + public void modifyText(ModifyEvent e) { + if (statementTF.getText().length()>200){ + statementTF.setText(currentStatementText); + shell.getDisplay().beep(); + } + else + currentStatementText=statementTF.getText(); + } + }; + + statementTF.addModifyListener(listenerT); + } /** diff --git a/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/whfslib/colorthreshold/GetColorValues.java b/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/whfslib/colorthreshold/GetColorValues.java index c2f49f8805..8e70931ce9 100644 --- a/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/whfslib/colorthreshold/GetColorValues.java +++ b/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/whfslib/colorthreshold/GetColorValues.java @@ -130,9 +130,15 @@ public class GetColorValues { + "Metric\n")); } - // Try to find a user defined color set. - cvHead = getUserColorSet(user_id, application_name, coloruse_name, - duration, threshold_unit); + //get color values from default setting in xml file. + if (application_name=="hydroview" && coloruse_name=="HEIGHT" ) { + cvHead = getDefaultColorSet(application_name, coloruse_name, + threshold_unit); + } else { + // Try to find a user defined color set. + cvHead = getUserColorSet(user_id, application_name, coloruse_name, + duration, threshold_unit); + } if (cvHead == null) { diff --git a/cave/com.raytheon.viz.mpe.ui/src/com/raytheon/viz/mpe/ui/dialogs/gagetable/GageTableDataManager.java b/cave/com.raytheon.viz.mpe.ui/src/com/raytheon/viz/mpe/ui/dialogs/gagetable/GageTableDataManager.java index 56b86def44..bdc5c57c1d 100644 --- a/cave/com.raytheon.viz.mpe.ui/src/com/raytheon/viz/mpe/ui/dialogs/gagetable/GageTableDataManager.java +++ b/cave/com.raytheon.viz.mpe.ui/src/com/raytheon/viz/mpe/ui/dialogs/gagetable/GageTableDataManager.java @@ -737,8 +737,7 @@ public class GageTableDataManager { String edit = editedGage.getEdit(); if (edit != null && !edit.trim().equals("") && !edit.trim().equalsIgnoreCase("M")) { - editValue = Double.parseDouble(editedGage.getEdit()); - gage.setEdit(edit); + editValue = Double.parseDouble(editedGage.getEdit()); } else { gage.setManedit(false); } diff --git a/cave/com.raytheon.viz.mpe.ui/src/com/raytheon/viz/mpe/ui/dialogs/gagetable/GageTableDlg.java b/cave/com.raytheon.viz.mpe.ui/src/com/raytheon/viz/mpe/ui/dialogs/gagetable/GageTableDlg.java index 5cf0d7f1e1..cbc43518a8 100644 --- a/cave/com.raytheon.viz.mpe.ui/src/com/raytheon/viz/mpe/ui/dialogs/gagetable/GageTableDlg.java +++ b/cave/com.raytheon.viz.mpe.ui/src/com/raytheon/viz/mpe/ui/dialogs/gagetable/GageTableDlg.java @@ -1016,8 +1016,6 @@ public class GageTableDlg extends JFrame { (String) gridCombo.getSelectedItem())) { dataManager.setSelectedGrid(prod .getProductFilenamePrefix()); - - tableModel.refreshTable(); break; } } diff --git a/cave/com.raytheon.viz.mpe/src/com/raytheon/viz/mpe/util/MeanMonthlyPrecip.java b/cave/com.raytheon.viz.mpe/src/com/raytheon/viz/mpe/util/MeanMonthlyPrecip.java index f35a86def5..a85046f46f 100644 --- a/cave/com.raytheon.viz.mpe/src/com/raytheon/viz/mpe/util/MeanMonthlyPrecip.java +++ b/cave/com.raytheon.viz.mpe/src/com/raytheon/viz/mpe/util/MeanMonthlyPrecip.java @@ -135,19 +135,12 @@ public class MeanMonthlyPrecip { return false; } pdata = xmfile.getData(); - short temp=0; - for (int i = MaxY - 1; i >= 0; i--) { - if (pdata.length == 0) { - System.out.println("Error reading " + pfile); - return false; - } - + if (pdata.length == 0) { + System.out.println("Error reading " + pfile); + return false; + } + for (int i = MaxY - 1; i >= 0; i--) { for (int j = 0; j < MaxX; j++) { - - temp = pdata[i * MaxX + j]; - pdata[i * MaxX + j ]=pdata[i + MaxX * (MaxY - 1)]; - pdata[i + MaxX *(MaxY -1)] =temp; - float f = 0; short s= pdata[j + MaxX * (MaxY - i -1)]; if (s < 0) { diff --git a/cave/com.raytheon.viz.pointdata/localization/pointdata/RefTimePointDataRetrieve.py b/cave/com.raytheon.viz.pointdata/localization/pointdata/RefTimePointDataRetrieve.py index d11b54d4cd..f5538335ce 100644 --- a/cave/com.raytheon.viz.pointdata/localization/pointdata/RefTimePointDataRetrieve.py +++ b/cave/com.raytheon.viz.pointdata/localization/pointdata/RefTimePointDataRetrieve.py @@ -31,7 +31,7 @@ import PointDataView, PointDataContainer, NoDataException, PointDataRetrieve # Date Ticket# Engineer Description # ------------ ---------- ----------- -------------------------- # 25Apr2012 14688 rferrel Initial Creation. -# +# 06JUL2012 15153 zhao retrieve latest Metar for MetarMonitor & PersistMonitor # # @@ -54,7 +54,19 @@ class RefTimePointDataRetrieve(PointDataRetrieve.PointDataRetrieve): from com.raytheon.viz.pointdata import PointDataRequest from java.lang import String import jep - dts = self._createJarray(availableTimes, maxSize) + from com.raytheon.uf.common.time import DataTime + #dts = self._createJarray(availableTimes, maxSize) + length = len(availableTimes) + dts = jep.jarray(length,DataTime) + + if maxSize==0 : #DR15153: retrive latest Metar for Metarmonitor & PersistMonitor + #from com.raytheon.uf.common.time import DataTime + dts = jep.jarray(1,DataTime) + #length = len(availableTimes) + dts[0] = DataTime(availableTimes[length-1]) + else : # for maxSize >= 1 + dts = self._createJarray(availableTimes, maxSize) + constraints = self._buildConstraints(None) #times are explicitly set so we don't need to constrain those params = jep.jarray(len(parameters), String) for i in range(len(parameters)): diff --git a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/util/GraphicDataUtil.java b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/util/GraphicDataUtil.java index b256dc86c9..0ba93ac697 100644 --- a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/util/GraphicDataUtil.java +++ b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/util/GraphicDataUtil.java @@ -46,7 +46,10 @@ import com.vividsolutions.jts.geom.Envelope; * * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- - * Sep 21, 2011 mnash Initial creation + * Sep 21, 2011 mnash Initial creation + * Jun 04 2012 14710 Xiaochuan The rank value should take + * from STRENGTH_RANK instead + * of 2D_STRENGTH_RANK. * * * @@ -170,27 +173,17 @@ public class GraphicDataUtil { baseHeight = setupConverter(currFeature, DMDAttributeIDs.BASE_HEIGHT.toString(), 1, true); - // if (!baseHeight.equals("")) { - // baseHeight += "Ag"; - // } - + // Depth, user unit definable String depth = setupConverter(currFeature, DMDAttributeIDs.DEPTH.toString(), 1, true); // Rank, not user unit definable - String ranks = currFeature - .getValue(DMDAttributeIDs._2D_STRENGTH_RANK + String rank = currFeature + .getValue(DMDAttributeIDs.STRENGTH_RANK .toString()); - int tiltNum = 0; - if ((ranks.length() > 0) && !ranks.isEmpty()) { - tiltNum = ranks.split(",").length - 1; - } - String rank = ranks.split(",")[tiltNum] - + currFeature - .getValue(DMDAttributeIDs.STRENGTH_RANK_TYPE - .toString()); + // MSI, not user definable String msi = currFeature .getValue(DMDAttributeIDs.MSI @@ -216,11 +209,7 @@ public class GraphicDataUtil { currFeature, DMDAttributeIDs.HEIGHT_MAX_ROTATIONAL_VEL .toString(), 1, true); - - // if (!htmxrv.equals("")) { - // htmxrv += "Ag"; - // } - + // put together the final string to display in // the table String fnlString = String.format(dataRowFormat, diff --git a/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/dialogs/AWIPSHeaderBlockDlg.java b/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/dialogs/AWIPSHeaderBlockDlg.java index 7bf7c1d750..c709f65720 100644 --- a/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/dialogs/AWIPSHeaderBlockDlg.java +++ b/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/dialogs/AWIPSHeaderBlockDlg.java @@ -23,6 +23,8 @@ package com.raytheon.viz.texteditor.dialogs; import java.util.ArrayList; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.DisposeEvent; +import org.eclipse.swt.events.DisposeListener; import org.eclipse.swt.events.FocusEvent; import org.eclipse.swt.events.FocusListener; import org.eclipse.swt.events.KeyAdapter; @@ -87,6 +89,7 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog; * * 01/26/2012 14468 D.Friedman Fix initial BBB field selection. * 05/30/2012 15046 D.Friedman Always set addressee field to ALL. + * 06/19/2012 14975 D.Friedman Run callback when dialog is dismissed. * * * @author lvenable @@ -187,13 +190,23 @@ public class AWIPSHeaderBlockDlg extends CaveSWTDialog implements * Parent shell. */ public AWIPSHeaderBlockDlg(Shell parent, TextEditorDialog cbClient) { - super(parent, SWT.DIALOG_TRIM, CAVE.PERSPECTIVE_INDEPENDENT); + super(parent, SWT.DIALOG_TRIM | SWT.PRIMARY_MODAL, + CAVE.PERSPECTIVE_INDEPENDENT | CAVE.DO_NOT_BLOCK); this.setText("AWIPS Header Block"); this.parentEditor = cbClient; } @Override protected void initializeComponents(Shell shell) { + shell.addDisposeListener(new DisposeListener() { + @Override + public void widgetDisposed(DisposeEvent e) { + if (parentEditor != null) + parentEditor.headerBlockDlgDismissed( + Boolean.TRUE.equals(getReturnValue())); + } + }); + setReturnValue(false); createWmoIdFields(); diff --git a/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/dialogs/TextEditorDialog.java b/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/dialogs/TextEditorDialog.java index 84693ba7ad..f1c03cdf54 100644 --- a/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/dialogs/TextEditorDialog.java +++ b/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/dialogs/TextEditorDialog.java @@ -278,6 +278,7 @@ import com.raytheon.viz.ui.dialogs.SWTMessageBox; * 23Apr2012 14783 rferrel Allow line wrap at white space or hyphen. * 24Apr2012 14548 rferrel Merging lines for wrap places a space beween words when needed. * 27Apr2012 14902 rferrel No longer have blank line between AWIPS ID and UGC line. + * 06/19/2012 14975 D.Friedman Prevent zeroed-out WMO header times. * * * @author lvenable @@ -784,12 +785,6 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener, */ private final String currentDateId = "DDHHMM"; - /** - * Current date used to update the header block placeholder when saving a - * text product. - */ - private String currentDate; - /** * Accumulate text check box. */ @@ -1095,6 +1090,10 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener, private RemoteRetrievalRequest lastRemoteRetrievalRequest; private Clipboard clipboard; + + private enum HeaderEditSession { CLOSE_ON_EXIT, IN_EDITOR } + + private HeaderEditSession headerEditSession; static { AUTOSAVE_DATE_FORMAT.setTimeZone(TimeZone @@ -3737,20 +3736,7 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener, } // Edit the header block of the text product. - boolean editing = editHeader("warning", true); - if (editing) { - if (product == null) - return; - if (autoSave == null) { - // user can cancel the edit immediately when the header is - // displayed, verify it was not cancelled before starting the - // autoSave task. - autoSave = new AutoSaveTask(product.getWmoid(), - product.getSite()); - } - } else { - stopAutoSave(); - } + editHeader("warning", true); } /** @@ -3872,47 +3858,86 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener, * @param closeEditorOnCancel * True if the text editor should be closed on a cancel action, * false otherwise. - * - * @return True if the header was edited, false otherwise. */ - private boolean editHeader(String warning, boolean closeEditorOnCancel) { + private void editHeader(String warning, boolean closeEditorOnCancel) { + if (headerEditSession != null) + return; + // Create and display the AWIPS header block dialog. AWIPSHeaderBlockDlg awipsHeaderBlockDlg = new AWIPSHeaderBlockDlg( shell, this); + + headerEditSession = closeEditorOnCancel ? + HeaderEditSession.CLOSE_ON_EXIT : HeaderEditSession.IN_EDITOR; - Boolean rv = (Boolean) awipsHeaderBlockDlg.open(); - + awipsHeaderBlockDlg.open(); + // headerBlockDlgDismissed() is called when the dialog is dismissed. + } + + /** + * Called by AWIPSHeaderBlockDlg when it is dismissed. + * + * @param dialogResult + * True if header block editor was dismissed by clicking the + * "Enter" button, false otherwise. + */ + public void headerBlockDlgDismissed(boolean dialogResult) { + HeaderEditSession lastSession = headerEditSession; + headerEditSession = null; + // If the user cancels the AWIPS header block dialog then // get out of edit mode. // Otherwise use the node, product category, and product designator. - if (rv == false && closeEditorOnCancel) { - return !cancelEditor(false); - } + + boolean editing = false; + + if (dialogResult == true) { - TextDisplayModel tdm = TextDisplayModel.getInstance(); - - // Update the buttonology. - updateButtonology(tdm.getAfosPil(token)); - String bbbid = tdm.getBbbId(token); - - String nnnxxx = workProductId != null ? workProductId : tdm - .getProductCategory(token) + tdm.getProductDesignator(token); - // Set the header text field. - if (bbbid.equals("NOR")) { - String wmoId = tdm.getWmoId(token); - wmoId = (wmoId.length() > 0 ? wmoId : "-"); - String siteId = tdm.getSiteId(token); - siteId = (siteId.length() > 0 ? siteId : "-"); - setHeaderTextField(wmoId, siteId, currentDateId, "\n", nnnxxx); + TextDisplayModel tdm = TextDisplayModel.getInstance(); + + // Update the buttonology. + updateButtonology(tdm.getAfosPil(token)); + String bbbid = tdm.getBbbId(token); + + String nnnxxx = workProductId != null ? workProductId : tdm + .getProductCategory(token) + tdm.getProductDesignator(token); + // Set the header text field. + if (bbbid.equals("NOR")) { + String wmoId = tdm.getWmoId(token); + wmoId = (wmoId.length() > 0 ? wmoId : "-"); + String siteId = tdm.getSiteId(token); + siteId = (siteId.length() > 0 ? siteId : "-"); + setHeaderTextField(wmoId, siteId, currentDateId, "\n", nnnxxx); + } else { + setHeaderTextField(tdm.getWmoId(token), tdm.getSiteId(token), + currentDateId + " " + bbbid, "\n", nnnxxx); + } + + // Update the "now editing" title of the text editor window. + updateNowEditingTitle(); + + editing = true; } else { - setHeaderTextField(tdm.getWmoId(token), tdm.getSiteId(token), - currentDateId + " " + bbbid, "\n", nnnxxx); + if (lastSession == HeaderEditSession.CLOSE_ON_EXIT) + editing = !cancelEditor(false); } - - // Update the "now editing" title of the text editor window. - updateNowEditingTitle(); - - return true; + + if (lastSession == HeaderEditSession.CLOSE_ON_EXIT) + if (editing) { + StdTextProduct product = TextDisplayModel.getInstance() + .getStdTextProduct(token); + if (product == null) + return; + if (autoSave == null) { + // user can cancel the edit immediately when the header is + // displayed, verify it was not cancelled before starting the + // autoSave task. + autoSave = new AutoSaveTask(product.getWmoid(), + product.getSite()); + } + } else { + stopAutoSave(); + } } /** @@ -4585,7 +4610,7 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener, boolean successful = false; // Convert the text in the text editor to uppercase - currentDate = getCurrentDate(); + String currentDate = getCurrentDate(); TextDisplayModel tdmInst = TextDisplayModel.getInstance(); if (!isAutoSave) { @@ -4617,25 +4642,28 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener, } if (!isAutoSave) { - // Replace the 'DDHHMM' placeholder in the current text with the - // current date. - productText = productText.replaceFirst("DDHHMM", currentDate); - VtecObject vtecObj = VtecUtil.parseMessage(productText); - if (warnGenFlag) { - // TODO: Pass in some flavor of currentDate to use to set the - // times. Currently roll over to the next minute between getting - // currentDate and getting the times in this method will cause - // them to be different. - productText = updateVtecTimes(productText, vtecObj); - // Update editor so the proper send times are displayed. - String[] b = productText.split("\n"); - StringBuilder body = new StringBuilder(); - for (int i = 2; i < b.length; ++i) { - body.append(b[i]).append("\n"); + if (! resend) { + // If not a resend, set the DDHHMM field to the current time + productText = replaceDDHHMM(productText, currentDate); + + VtecObject vtecObj = VtecUtil.parseMessage(productText); + if (warnGenFlag) { + // TODO: Pass in some flavor of currentDate to use to set the + // times. Currently roll over to the next minute between getting + // currentDate and getting the times in this method will cause + // them to be different. + productText = updateVtecTimes(productText, vtecObj); + // Update editor so the proper send times are displayed. + String[] b = productText.split("\n"); + StringBuilder body = new StringBuilder(); + for (int i = 2; i < b.length; ++i) { + body.append(b[i]).append("\n"); + } + updateTextEditor(body.toString()); } - updateTextEditor(body.toString()); + + storedProduct.setHdrtime(currentDate); } - storedProduct.setHdrtime(currentDate); storedProduct.setCreatetime(System.currentTimeMillis()); if (productText.contains(AFOSParser.DRAFT_PIL)) { int start = productText.indexOf(AFOSParser.DRAFT_PIL); @@ -4698,6 +4726,35 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener, return successful; } + + /** Replaces the WMO heading DDHHMM field with the given text. + * @param productText Product text which includes the WMO heading + * @param ddhhmm Replacement text + * @return The modified product text + */ + private static String replaceDDHHMM(String productText, String ddhhmm) { + String[] parts = productText.split("\n", 2); + if (parts.length > 0) { + String[] headerParts = parts[0].split("\\s+", 0); + if (headerParts.length >= 3) + headerParts[2] = ddhhmm; + // TODO: else raise error? + StringBuilder sb = new StringBuilder(productText.length()); + boolean first = true; + for (String s : headerParts) { + if (first) + first = false; + else + sb.append(' '); + sb.append(s); + } + if (parts.length > 1) + sb.append('\n').append(parts[1]); + productText = sb.toString(); + } + + return productText; + } /** * Replaces the contents of the Text Editor widget while preserving the diff --git a/cave/com.raytheon.viz.warngen/src/com/raytheon/viz/warngen/gui/WarngenDialog.java b/cave/com.raytheon.viz.warngen/src/com/raytheon/viz/warngen/gui/WarngenDialog.java index e4cc664e60..b48e7ba2f4 100644 --- a/cave/com.raytheon.viz.warngen/src/com/raytheon/viz/warngen/gui/WarngenDialog.java +++ b/cave/com.raytheon.viz.warngen/src/com/raytheon/viz/warngen/gui/WarngenDialog.java @@ -23,6 +23,7 @@ import java.lang.reflect.InvocationTargetException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.HashMap; @@ -90,6 +91,7 @@ import com.raytheon.viz.warngen.util.DurationUtil; import com.raytheon.viz.warngen.util.FollowUpUtil; import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.Geometry; +import com.vividsolutions.jts.geom.GeometryFactory; import com.vividsolutions.jts.geom.Polygon; /** @@ -115,6 +117,7 @@ import com.vividsolutions.jts.geom.Polygon; * a FontData object. * Apr 16, 2012 #14515 Qinglu Lin Added return at the beginning of changeTemplate() * if the newly selected product is same as current one. + * Jul 10, 2012 #15099 Qinglu Lin Add updatePolygon() and apply it in xxxSelected methods. * * * @@ -1810,6 +1813,8 @@ public class WarngenDialog extends CaveSWTDialog implements + "." + data.getSig()); } + updatePolygon(newWarn); + warngenLayer.setOldWarningPolygon(newWarn); setTimesFromFollowup(newWarn.getStartTime().getTime(), newWarn .getEndTime().getTime()); @@ -1851,6 +1856,9 @@ public class WarngenDialog extends CaveSWTDialog implements newWarn = cw.getNewestByTracking(data.getEtn(), data.getPhen() + "." + data.getSig()); + + updatePolygon(newWarn); + warngenLayer.setOldWarningPolygon(newWarn); setTimesFromFollowup(newWarn.getStartTime().getTime(), newWarn .getEndTime().getTime()); @@ -1890,6 +1898,8 @@ public class WarngenDialog extends CaveSWTDialog implements + "." + data.getSig()); } + updatePolygon(newWarn); + setTimesFromFollowup(newWarn.getStartTime().getTime(), newWarn .getEndTime().getTime()); try { @@ -1925,6 +1935,8 @@ public class WarngenDialog extends CaveSWTDialog implements + "." + data.getSig()); } + updatePolygon(newWarn); + warngenLayer.setOldWarningPolygon(newWarn); setTimesFromFollowup(newWarn.getStartTime().getTime(), newWarn .getEndTime().getTime()); @@ -1950,6 +1962,9 @@ public class WarngenDialog extends CaveSWTDialog implements AbstractWarningRecord newWarn = CurrentWarnings.getInstance( warngenLayer.getLocalizedSite()).getNewestByTracking( data.getEtn(), data.getPhen() + "." + data.getSig()); + + updatePolygon(newWarn); + try { warngenLayer.createPolygonFromRecord(newWarn); refreshDisplay(); @@ -1979,6 +1994,8 @@ public class WarngenDialog extends CaveSWTDialog implements warngenLayer.getLocalizedSite()).getNewestByTracking( data.getEtn(), data.getPhen() + "." + data.getSig()); + updatePolygon(newWarn); + recreateDurations(durationList); int duration = ((DurationData) durationList.getData(durationList .getItem(durationList.getSelectionIndex()))).minutes; @@ -2070,4 +2087,33 @@ public class WarngenDialog extends CaveSWTDialog implements } }); } + + /** + * Update polygon in a warning product to remove intersected segment. + */ + private boolean updatePolygon(AbstractWarningRecord oldWarning) { + Geometry geo = oldWarning.getGeometry(); + Coordinate[] coords = geo.getCoordinates(); + java.util.List points = new ArrayList(Arrays.asList(coords)); + + GeometryFactory gf = new GeometryFactory(); + PolygonUtil.truncate(points, 2); + Polygon rval = gf.createPolygon(gf.createLinearRing(points + .toArray(new Coordinate[points.size()])), null); + + boolean invalidPolyFlag = false; + if (rval.isValid() == false) { + invalidPolyFlag = true; + points.remove(points.size()-1); + PolygonUtil.removeIntersectedSeg(points); + points.add(new Coordinate(points.get(0))); + rval = gf.createPolygon(gf.createLinearRing(points + .toArray(new Coordinate[points.size()])), null); + } + if (invalidPolyFlag) { + oldWarning.setGeometry(rval); + return true; + } + return false; + } } diff --git a/cave/com.raytheon.viz.warngen/src/com/raytheon/viz/warngen/template/TemplateRunner.java b/cave/com.raytheon.viz.warngen/src/com/raytheon/viz/warngen/template/TemplateRunner.java index 3aad0f8dac..cb88bd0282 100644 --- a/cave/com.raytheon.viz.warngen/src/com/raytheon/viz/warngen/template/TemplateRunner.java +++ b/cave/com.raytheon.viz.warngen/src/com/raytheon/viz/warngen/template/TemplateRunner.java @@ -110,6 +110,7 @@ import com.vividsolutions.jts.io.WKTReader; * Oct 31, 2011 Qinglu Lin Call convertAlaskaLons() for eventLocation. * May 9, 2012 14887 Qinglu Lin Changed one argument passed to calculatePortion(). * May 31, 2012 15047 Qinglu Lin Added additional logic to canOrExpCal for CAN and EXP. + * Jun 15, 2012 15043 Qinglu Lin Added duration to context. * * * @@ -284,6 +285,11 @@ public class TemplateRunner { "expire", DateUtil.roundDateTo15(selectedAction == WarningAction.EXT ? endTime : wx.getEndTime())); + + // duration: convert millisecond to minute + long duration = (wx.getEndTime().getTime()-wx.getStartTime().getTime())/(1000*60); + context.put("duration", duration); + context.put("event", eventTime); context.put("ugcline", FipsUtil.getUgcLine(areas, wx.getEndTime(), 15)); diff --git a/cave/com.raytheon.viz.warngen/src/com/raytheon/viz/warngen/util/WarningTextHandler.java b/cave/com.raytheon.viz.warngen/src/com/raytheon/viz/warngen/util/WarningTextHandler.java index 1c854fb22b..44a5400437 100644 --- a/cave/com.raytheon.viz.warngen/src/com/raytheon/viz/warngen/util/WarningTextHandler.java +++ b/cave/com.raytheon.viz.warngen/src/com/raytheon/viz/warngen/util/WarningTextHandler.java @@ -22,6 +22,7 @@ package com.raytheon.viz.warngen.util; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.HashSet; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -56,6 +57,12 @@ import com.raytheon.viz.warngen.gis.AffectedAreasComparator; * lengthy code snippet is available) and to resolve issue with * empty areaNotation and areasNotation which occurs when, * for example, District of Columbia is followed by a county. + * Jun 19, 2012 15110 Qinglu Lin Fixed issues in CAN of CANCON: a) ST in any words changed to "ST." and + * locked if county name has ST., e.g., ST. JOSEPH; + * b)Locking beyond the first paragraph for areal flood warning followup; + * c)Locking does not work for areal flood advisory followup; + * d)NullointException/locking does not work for special marine warning + * and locking beyond first paragragh. * * * @@ -125,7 +132,10 @@ public class WarningTextHandler { .compile("(\\.\\.\\.((A|THE)\\s(.*)\\s(WARNING|ADVISORY))\\s(FOR|(REMAINS IN EFFECT (|(UNTIL\\s\\d{3,4}\\s(AM|PM)\\s\\w{3})))))(|(.*))"); private static final Pattern canVtecPtrn = Pattern.compile("(\\.CAN\\.)"); - + private static final Pattern smwCanPtrn = Pattern.compile("(\\.MA\\.W\\.)"); + private static final Pattern afaCanPtrn = Pattern.compile("(\\.FA\\.Y\\.)"); + private static final Pattern smwHeadlinePtrn = Pattern.compile("(THE AFFECTED AREAS WERE)"); + private static Pattern immediateCausePtrn = null; /** ex. SARPY NE-DOUGLAS NE-WASHINGTON NE- */ @@ -285,6 +295,51 @@ public class WarningTextHandler { // Set before to false if the line is beyond "THE NATIONAL WEATHER SERVICE IN" line. boolean before = true; + boolean isCancelledFound = false; + + // for CAN of CANCON of Special Marine Warning + boolean smwCan = false; + boolean lockSmwCan = false; + + // for CAN of CANCON of Areal Flood Advisory + boolean afaCan = false; + int afaCanBlankline = 0; + + String[] tokens = null; + if (canceledAreas != null) { + String areaNames = ""; + for (AffectedAreas area : canceledAreas) { + String areaName = area.getName(); + if (areaName != null && areaName.length()>0) { + areaName = areaName.toUpperCase(); + areaNames += areaName + " "; + } + } + areaNames = areaNames.trim(); + HashSet areaNameSet = new HashSet(); + String[] tokens0 = areaNames.split(" "); + int tokensLength = tokens0.length; + for (int i=0;i s0.length()) { + s1 = s0; + s0 = tokens[j]; + tokens[j] = s1; + } + } + tokens[i] = s0; + } + } + ArrayList usedAreaNotations = new ArrayList(); for (int lineIndex = 0; lineIndex < seperatedLines.length; ++lineIndex) { String line = seperatedLines[lineIndex]; @@ -330,8 +385,13 @@ public class WarningTextHandler { m = canVtecPtrn.matcher(line); if (action == WarningAction.CANCON && m.find()) { cancelVtecLineFound = true; - } else - cancelVtecLineFound = false; + m = smwCanPtrn.matcher(line); + if (m.find()) + smwCan = true; + m = afaCanPtrn.matcher(line); + if (m.find()) + afaCan = true; + } continue; } @@ -361,6 +421,18 @@ public class WarningTextHandler { if (line.trim().length() == 0) { headlineFound = false; + if (smwCan) { + if (lockSmwCan) + cancelVtecLineFound = false; + lockSmwCan = false; + } + if (afaCan) { + afaCanBlankline += 1; + if (afaCanBlankline > 1) { + afaCan = false; + cancelVtecLineFound = false; + } + } if (startLines) { // Don't lock blank line after header sb.append("\n"); @@ -479,44 +551,58 @@ public class WarningTextHandler { } // CAN portion in a CANCON if (cancelVtecLineFound) { - for (AffectedAreas area : canceledAreas) { - String areaName = area.getName(); - if (areaName != null) { - areaName = areaName.toUpperCase(); - String[] tokens = areaName.split(" "); - for (String s: tokens) - if (line.contains(s)) - line = line.replaceAll(s, LOCK_START - + s + LOCK_END); + if (smwCan) { + // lock marine zone names + if (lockSmwCan) { + if (line.length()==0) { + lockSmwCan = false; + } else + line = LOCK_START + line + LOCK_END; + } else { + m = smwHeadlinePtrn.matcher(line); + if (m.find()) + lockSmwCan = true; } - // areaNotation, e.g., COUNTY - String areaNotation = area.getAreaNotation().toUpperCase(); - if (areaNotation != null && areaNotation.length()>0 - && !usedAreaNotations.contains(areaNotation) - && line.contains(areaNotation)) { - line = line.replaceAll(areaNotation, LOCK_START - + areaNotation + LOCK_END); - usedAreaNotations.add(areaNotation); - } - // areasNotation, e.g., COUNTIES - String areasNotation = area.getAreasNotation().toUpperCase(); - if (areasNotation != null && areasNotation.length()>0 - && !usedAreaNotations.contains(areasNotation) - && line.contains(areasNotation)) { - line = line.replaceAll(areasNotation, LOCK_START - + areasNotation + LOCK_END); - usedAreaNotations.add(areasNotation); + } else { + for (String s: tokens) + if (line.contains(s)) + line = line.replace(s, LOCK_START + + s + LOCK_END); + for (AffectedAreas area : canceledAreas) { + String areaNotation = area.getAreaNotation(); + if (areaNotation != null) { + // areaNotation, e.g., COUNTY + if (areaNotation != null && areaNotation.length()>0 + && !usedAreaNotations.contains(areaNotation) + && line.contains(areaNotation)) { + line = line.replaceAll(areaNotation, LOCK_START + + areaNotation + LOCK_END); + usedAreaNotations.add(areaNotation); + } + // areasNotation, e.g., COUNTIES + String areasNotation = area.getAreasNotation().toUpperCase(); + if (areasNotation != null && areasNotation.length()>0 + && !usedAreaNotations.contains(areasNotation) + && line.contains(areasNotation)) { + line = line.replaceAll(areasNotation, LOCK_START + + areasNotation + LOCK_END); + usedAreaNotations.add(areasNotation); + } + } } + // locking "THE" in "THE CITY OF MANASSAS", "...THE" in "...THE CITY", + // and "IS" or "CANCELLED" in "IS CANCELLED...". + line = extraTokensPattern.matcher(line).replaceAll( + LOCK_REPLACEMENT_TEXT); } - // locking "THE" in "THE CITY OF MANASSAS", "...THE" in "...THE CITY", - // and "IS" or "CANCELLED" in "IS CANCELLED...". - line = extraTokensPattern.matcher(line).replaceAll( - LOCK_REPLACEMENT_TEXT); - m = cancelOnlyPtrn.matcher(line); + if (cancelVtecLineFound && isCancelledFound) + cancelVtecLineFound = false; + + m = cancelOnlyPtrn.matcher(line); if (m.find()) cancelVtecLineFound = false; - + sb.append(line + "\n"); continue; } else { @@ -577,7 +663,7 @@ public class WarningTextHandler { LOCK_START + m.group(3) + LOCK_END); headlineFound = false; } - + sb.append(line + "\n"); continue; } diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/AIREP.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/AIREP.xml new file mode 100644 index 0000000000..cc683ff5ca --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/AIREP.xml @@ -0,0 +1,13 @@ + + + AIREP + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/AIRMET.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/AIRMET.xml new file mode 100644 index 0000000000..3e7b347674 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/AIRMET.xml @@ -0,0 +1,13 @@ + + + AIRMET + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/ASCT.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/ASCT.xml new file mode 100644 index 0000000000..68b766b75a --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/ASCT.xml @@ -0,0 +1,13 @@ + + + ASCT + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/ATCF.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/ATCF.xml new file mode 100644 index 0000000000..75eef00d06 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/ATCF.xml @@ -0,0 +1,13 @@ + + + ATCF + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/AVIATION.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/AVIATION.xml new file mode 100644 index 0000000000..dd34f25186 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/AVIATION.xml @@ -0,0 +1,16 @@ + + + AVIATION + pluginName,eventName,dataTime + + + + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/CSIG.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/CSIG.xml new file mode 100644 index 0000000000..604fe23194 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/CSIG.xml @@ -0,0 +1,13 @@ + + + CSIG + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/DPD.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/DPD.xml new file mode 100644 index 0000000000..de08fece21 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/DPD.xml @@ -0,0 +1,13 @@ + + + DPD + pluginName,areaName,resolution,imageType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/EASTNMM.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/EASTNMM.xml new file mode 100644 index 0000000000..e5e7399b0b --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/EASTNMM.xml @@ -0,0 +1,16 @@ + + + EASTNMM + pluginName,eventName,dataTime + + + + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/ECMWF.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/ECMWF.xml new file mode 100644 index 0000000000..db845f8297 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/ECMWF.xml @@ -0,0 +1,16 @@ + + + ECMWF + pluginName,eventName,dataTime + + + + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/ENS_CYC.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/ENS_CYC.xml new file mode 100644 index 0000000000..a9d336bc2e --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/ENS_CYC.xml @@ -0,0 +1,13 @@ + + + ENS_CYC + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/ETAMOS.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/ETAMOS.xml new file mode 100644 index 0000000000..3576100ef2 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/ETAMOS.xml @@ -0,0 +1,10 @@ + + + ETAMOS + pluginName,dataTime + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/EXASCT.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/EXASCT.xml new file mode 100644 index 0000000000..7c2f235159 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/EXASCT.xml @@ -0,0 +1,13 @@ + + + EXASCT + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/FFA.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/FFA.xml new file mode 100644 index 0000000000..37358088cf --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/FFA.xml @@ -0,0 +1,13 @@ + + + FFA + pluginName,reportType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/FFG.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/FFG.xml new file mode 100644 index 0000000000..16e0fefc3a --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/FFG.xml @@ -0,0 +1,13 @@ + + + FFG + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/FYC.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/FYC.xml new file mode 100644 index 0000000000..0cef20fea3 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/FYC.xml @@ -0,0 +1,13 @@ + + + FYC + pluginName,areaName,resolution,imageType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GEFS.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GEFS.xml new file mode 100644 index 0000000000..f293f7f111 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GEFS.xml @@ -0,0 +1,16 @@ + + + GEFS + pluginName,eventName,dataTime + + + + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GEFSC.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GEFSC.xml new file mode 100644 index 0000000000..d4ac9ba90c --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GEFSC.xml @@ -0,0 +1,16 @@ + + + GEFSC + pluginName,eventName,dataTime + + + + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GFS.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GFS.xml new file mode 100644 index 0000000000..679a13cf0a --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GFS.xml @@ -0,0 +1,16 @@ + + + GFS + pluginName,eventName,dataTime + + + + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GFSMOS.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GFSMOS.xml new file mode 100644 index 0000000000..c45420be44 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GFSMOS.xml @@ -0,0 +1,10 @@ + + + GFSMOS + pluginName,dataTime + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GFSXMOS.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GFSXMOS.xml new file mode 100644 index 0000000000..d3a9bef6e7 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GFSXMOS.xml @@ -0,0 +1,10 @@ + + + GFSXMOS + pluginName,dataTime + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GFS_ENS.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GFS_ENS.xml new file mode 100644 index 0000000000..dbb82b349f --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GFS_ENS.xml @@ -0,0 +1,13 @@ + + + GFS_ENS + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GHM.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GHM.xml new file mode 100644 index 0000000000..6d16028365 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GHM.xml @@ -0,0 +1,16 @@ + + + GHM + pluginName,eventName,dataTime + + + + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GHMNEST.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GHMNEST.xml new file mode 100644 index 0000000000..c17795949b --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GHMNEST.xml @@ -0,0 +1,16 @@ + + + GHMNEST + pluginName,eventName,dataTime + + + + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_Composite.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_Composite.xml new file mode 100644 index 0000000000..cd73325cb6 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_Composite.xml @@ -0,0 +1,13 @@ + + + GINI_Composite + pluginName,sectorID,physicalElement,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_DMSP.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_DMSP.xml new file mode 100644 index 0000000000..f000c621f4 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_DMSP.xml @@ -0,0 +1,13 @@ + + + GINI_DMSP + pluginName,sectorID,physicalElement,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_ERS-QuickSCAT-Scatterometer.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_ERS-QuickSCAT-Scatterometer.xml new file mode 100644 index 0000000000..7c3fe88605 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_ERS-QuickSCAT-Scatterometer.xml @@ -0,0 +1,13 @@ + + + GINI_ERS-QuickSCAT-Scatterometer + pluginName,sectorID,physicalElement,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_GMS.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_GMS.xml new file mode 100644 index 0000000000..cc4c671f83 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_GMS.xml @@ -0,0 +1,13 @@ + + + GINI_GMS + pluginName,sectorID,physicalElement,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_GOES10.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_GOES10.xml new file mode 100644 index 0000000000..8faf1124f6 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_GOES10.xml @@ -0,0 +1,13 @@ + + + GINI_GOES10 + pluginName,sectorID,physicalElement,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_GOES11.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_GOES11.xml new file mode 100644 index 0000000000..a3178e3d3f --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_GOES11.xml @@ -0,0 +1,13 @@ + + + GINI_GOES11 + pluginName,sectorID,physicalElement,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_GOES12.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_GOES12.xml new file mode 100644 index 0000000000..dfc7eeefdc --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_GOES12.xml @@ -0,0 +1,13 @@ + + + GINI_GOES12 + pluginName,sectorID,physicalElement,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_GOES13.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_GOES13.xml new file mode 100644 index 0000000000..2fb2ecc2e0 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_GOES13.xml @@ -0,0 +1,13 @@ + + + GINI_GOES13 + pluginName,sectorID,physicalElement,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_GOES7.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_GOES7.xml new file mode 100644 index 0000000000..fc070c6f71 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_GOES7.xml @@ -0,0 +1,13 @@ + + + GINI_GOES7 + pluginName,sectorID,physicalElement,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_GOES8.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_GOES8.xml new file mode 100644 index 0000000000..f0f693061b --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_GOES8.xml @@ -0,0 +1,13 @@ + + + GINI_GOES8 + pluginName,sectorID,physicalElement,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_GOES9.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_GOES9.xml new file mode 100644 index 0000000000..adf5c951f5 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_GOES9.xml @@ -0,0 +1,13 @@ + + + GINI_GOES9 + pluginName,sectorID,physicalElement,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_JERS.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_JERS.xml new file mode 100644 index 0000000000..7e11a2311d --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_JERS.xml @@ -0,0 +1,13 @@ + + + GINI_JERS + pluginName,sectorID,physicalElement,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_METEOSAT.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_METEOSAT.xml new file mode 100644 index 0000000000..fe468dc0b4 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_METEOSAT.xml @@ -0,0 +1,13 @@ + + + GINI_METEOSTAT + pluginName,sectorID,physicalElement,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_Miscellaneous.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_Miscellaneous.xml new file mode 100644 index 0000000000..91b5b39192 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_Miscellaneous.xml @@ -0,0 +1,13 @@ + + + GINI_Miscellaneous + pluginName,sectorID,physicalElement,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_NOAA16.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_NOAA16.xml new file mode 100644 index 0000000000..8d951d81b1 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_NOAA16.xml @@ -0,0 +1,13 @@ + + + GINI_NOAA16 + pluginName,sectorID,physicalElement,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_NOAA17.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_NOAA17.xml new file mode 100644 index 0000000000..4287200d33 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_NOAA17.xml @@ -0,0 +1,13 @@ + + + GINI_NOAA17 + pluginName,sectorID,physicalElement,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_NOAA18.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_NOAA18.xml new file mode 100644 index 0000000000..311c513292 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_NOAA18.xml @@ -0,0 +1,13 @@ + + + GINI_NOAA18 + pluginName,sectorID,physicalElement,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_NOAA19.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_NOAA19.xml new file mode 100644 index 0000000000..71036bf987 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_NOAA19.xml @@ -0,0 +1,13 @@ + + + GINI_NOAA19 + pluginName,sectorID,physicalElement,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_POES-NPOESS.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_POES-NPOESS.xml new file mode 100644 index 0000000000..e262703657 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GINI_POES-NPOESS.xml @@ -0,0 +1,13 @@ + + + GINI_POES-NPOESS + pluginName,sectorID,physicalElement,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GMS.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GMS.xml new file mode 100644 index 0000000000..42770ecdd6 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GMS.xml @@ -0,0 +1,13 @@ + + + GMS + pluginName,areaName,resolution,imageType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES10.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES10.xml new file mode 100644 index 0000000000..6ec0f16bb3 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES10.xml @@ -0,0 +1,13 @@ + + + GOES10 + pluginName,areaName,resolution,imageType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES11.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES11.xml new file mode 100644 index 0000000000..4370576f1b --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES11.xml @@ -0,0 +1,13 @@ + + + GOES11 + pluginName,areaName,resolution,imageType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES12.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES12.xml new file mode 100644 index 0000000000..08f7c09c38 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES12.xml @@ -0,0 +1,13 @@ + + + GOES12 + pluginName,areaName,resolution,imageType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES13.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES13.xml new file mode 100644 index 0000000000..a5728e50e2 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES13.xml @@ -0,0 +1,13 @@ + + + GOES13 + pluginName,areaName,resolution,imageType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES15.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES15.xml new file mode 100644 index 0000000000..43d9469d5d --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES15.xml @@ -0,0 +1,13 @@ + + + GOES15 + pluginName,areaName,resolution,imageType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES6.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES6.xml new file mode 100644 index 0000000000..d3fe8b6e4e --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES6.xml @@ -0,0 +1,13 @@ + + + GOES6 + pluginName,areaName,resolution,imageType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES7.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES7.xml new file mode 100644 index 0000000000..4ec1f2a2a1 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES7.xml @@ -0,0 +1,13 @@ + + + GOES7 + pluginName,areaName,resolution,imageType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES8.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES8.xml new file mode 100644 index 0000000000..938a9f7637 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES8.xml @@ -0,0 +1,13 @@ + + + GOES8 + pluginName,areaName,resolution,imageType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES9.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES9.xml new file mode 100644 index 0000000000..d17f4414a1 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/GOES9.xml @@ -0,0 +1,13 @@ + + + GOES9 + pluginName,areaName,resolution,imageType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/Global.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/Global.xml new file mode 100644 index 0000000000..9220c52862 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/Global.xml @@ -0,0 +1,13 @@ + + + Global + pluginName,areaName,resolution,imageType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/HRCN.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/HRCN.xml new file mode 100644 index 0000000000..96a9415a00 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/HRCN.xml @@ -0,0 +1,13 @@ + + + HRCN + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/IDFT.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/IDFT.xml new file mode 100644 index 0000000000..61de0c5898 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/IDFT.xml @@ -0,0 +1,13 @@ + + + IDFT + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/IND.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/IND.xml new file mode 100644 index 0000000000..b6727490a6 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/IND.xml @@ -0,0 +1,13 @@ + + + IND + pluginName,areaName,resolution,imageType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/ISIG.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/ISIG.xml new file mode 100644 index 0000000000..42e960683f --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/ISIG.xml @@ -0,0 +1,13 @@ + + + ISIG + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/LAMPMOS.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/LAMPMOS.xml new file mode 100644 index 0000000000..f26a615f6d --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/LAMPMOS.xml @@ -0,0 +1,10 @@ + + + LAMPMOS + pluginName,dataTime + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/LTNG.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/LTNG.xml new file mode 100644 index 0000000000..930418ed60 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/LTNG.xml @@ -0,0 +1,10 @@ + + + LTNG + pluginName,dataTime + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/LTNG2.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/LTNG2.xml new file mode 100644 index 0000000000..9233290ba9 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/LTNG2.xml @@ -0,0 +1,10 @@ + + + LTNG2 + pluginName,dataTime + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/LocalRadar.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/LocalRadar.xml new file mode 100644 index 0000000000..ab80c21d72 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/LocalRadar.xml @@ -0,0 +1,13 @@ + + + LocalRadar + pluginName,icao,productCode,elevationNumber,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/METAR.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/METAR.xml new file mode 100644 index 0000000000..f38144df53 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/METAR.xml @@ -0,0 +1,13 @@ + + + METAR + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/METEOSAT10.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/METEOSAT10.xml new file mode 100644 index 0000000000..58371775ec --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/METEOSAT10.xml @@ -0,0 +1,13 @@ + + + METEOSAT10 + pluginName,areaName,resolution,imageType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/METEOSAT3.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/METEOSAT3.xml new file mode 100644 index 0000000000..95f64df880 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/METEOSAT3.xml @@ -0,0 +1,13 @@ + + + METEOSAT3 + pluginName,areaName,resolution,imageType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/METEOSAT5.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/METEOSAT5.xml new file mode 100644 index 0000000000..14d33c6d19 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/METEOSAT5.xml @@ -0,0 +1,13 @@ + + + METEOSAT5 + pluginName,areaName,resolution,imageType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/METEOSAT6.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/METEOSAT6.xml new file mode 100644 index 0000000000..f4fab32e10 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/METEOSAT6.xml @@ -0,0 +1,13 @@ + + + METEOSAT6 + pluginName,areaName,resolution,imageType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/METEOSAT7.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/METEOSAT7.xml new file mode 100644 index 0000000000..9eff698d0a --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/METEOSAT7.xml @@ -0,0 +1,13 @@ + + + METEOSAT7 + pluginName,areaName,resolution,imageType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/METEOSAT8.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/METEOSAT8.xml new file mode 100644 index 0000000000..62a50d823b --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/METEOSAT8.xml @@ -0,0 +1,13 @@ + + + METEOSAT8 + pluginName,areaName,resolution,imageType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/METEOSAT9.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/METEOSAT9.xml new file mode 100644 index 0000000000..b8ef533be0 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/METEOSAT9.xml @@ -0,0 +1,13 @@ + + + METEOSAT9 + pluginName,areaName,resolution,imageType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/MTS.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/MTS.xml new file mode 100644 index 0000000000..9ddcf8a97a --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/MTS.xml @@ -0,0 +1,13 @@ + + + MTSAT2 + pluginName,areaName,resolution,imageType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/MTSAT2.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/MTSAT2.xml new file mode 100644 index 0000000000..e8c2a0e56d --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/MTSAT2.xml @@ -0,0 +1,13 @@ + + + MTS + pluginName,areaName,resolution,imageType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/NAM.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/NAM.xml new file mode 100644 index 0000000000..c87167937b --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/NAM.xml @@ -0,0 +1,16 @@ + + + NAM + pluginName,eventName,dataTime + + + + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/NAMSND.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/NAMSND.xml new file mode 100644 index 0000000000..c1664d597b --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/NAMSND.xml @@ -0,0 +1,13 @@ + + + NAMSND + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/NAM_00.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/NAM_00.xml new file mode 100644 index 0000000000..ee2dd2e260 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/NAM_00.xml @@ -0,0 +1,13 @@ + + + NAM_00 + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/NCON.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/NCON.xml new file mode 100644 index 0000000000..532b050510 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/NCON.xml @@ -0,0 +1,13 @@ + + + NCON + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/NGMMOS.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/NGMMOS.xml new file mode 100644 index 0000000000..6b353fcc7d --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/NGMMOS.xml @@ -0,0 +1,10 @@ + + + NGMMOS + pluginName,dataTime + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/NatlMosaic.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/NatlMosaic.xml new file mode 100644 index 0000000000..a4c6dd7800 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/NatlMosaic.xml @@ -0,0 +1,10 @@ + + + NatlMosaic + pluginName,prodName,productCode,dataTime + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/NcGridInventory.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/NcGridInventory.xml new file mode 100644 index 0000000000..c949857283 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/NcGridInventory.xml @@ -0,0 +1,10 @@ + + + NcGridInventory + pluginName,modelName,eventName,parm,vcord,modelInfo.level.levelonevalue,modelInfo.level.leveltwovalue + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/PAFM.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/PAFM.xml new file mode 100644 index 0000000000..0dbb07aa2e --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/PAFM.xml @@ -0,0 +1,13 @@ + + + PAFM + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/PIREP.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/PIREP.xml new file mode 100644 index 0000000000..5411e2f98c --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/PIREP.xml @@ -0,0 +1,13 @@ + + + PIREP + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/QSCT.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/QSCT.xml new file mode 100644 index 0000000000..c2ed2a964b --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/QSCT.xml @@ -0,0 +1,13 @@ + + + QSCT + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/RUC.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/RUC.xml new file mode 100644 index 0000000000..46da75e1ed --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/RUC.xml @@ -0,0 +1,16 @@ + + + RUC + pluginName,eventName,dataTime + + + + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/RUC40.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/RUC40.xml new file mode 100644 index 0000000000..db99b4dd57 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/RUC40.xml @@ -0,0 +1,16 @@ + + + RUC40 + pluginName,eventName,dataTime + + + + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/SCD.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/SCD.xml new file mode 100644 index 0000000000..1c717822b8 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/SCD.xml @@ -0,0 +1,13 @@ + + + SCD + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/SGWH.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/SGWH.xml new file mode 100644 index 0000000000..076fdbdcdd --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/SGWH.xml @@ -0,0 +1,13 @@ + + + SGWH + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/SHIP.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/SHIP.xml new file mode 100644 index 0000000000..45890d0497 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/SHIP.xml @@ -0,0 +1,13 @@ + + + SHIP + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/SVRL.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/SVRL.xml new file mode 100644 index 0000000000..f47cc4a37f --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/SVRL.xml @@ -0,0 +1,13 @@ + + + SVRL + pluginName,reportType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/SYNOP.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/SYNOP.xml new file mode 100644 index 0000000000..80a6c1d3e2 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/SYNOP.xml @@ -0,0 +1,13 @@ + + + SYNOP + pluginName,reportType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/TAF.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/TAF.xml new file mode 100644 index 0000000000..e3ae1c5bf3 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/TAF.xml @@ -0,0 +1,13 @@ + + + TAF + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/UAIR.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/UAIR.xml new file mode 100644 index 0000000000..b9b33c13dd --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/UAIR.xml @@ -0,0 +1,13 @@ + + + UAIR + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/UKMET.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/UKMET.xml new file mode 100644 index 0000000000..e0c7416091 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/UKMET.xml @@ -0,0 +1,16 @@ + + + UKMET + pluginName,eventName,dataTime + + + + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/VAAC.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/VAAC.xml new file mode 100644 index 0000000000..d181dfd3d7 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/VAAC.xml @@ -0,0 +1,13 @@ + + + VAAC + pluginName,areaName,resolution,imageType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WARN.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WARN.xml new file mode 100644 index 0000000000..ac563a202f --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WARN.xml @@ -0,0 +1,13 @@ + + + WARN + pluginName,reportType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WATCH.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WATCH.xml new file mode 100644 index 0000000000..17ed5a8fd2 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WATCH.xml @@ -0,0 +1,13 @@ + + + WATCH + pluginName,reportType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WCN.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WCN.xml new file mode 100644 index 0000000000..dbcbdce7e7 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WCN.xml @@ -0,0 +1,13 @@ + + + WCN + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WCP.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WCP.xml new file mode 100644 index 0000000000..777d6cb04b --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WCP.xml @@ -0,0 +1,13 @@ + + + WCP + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WESTNMM.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WESTNMM.xml new file mode 100644 index 0000000000..082b0aa3c8 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WESTNMM.xml @@ -0,0 +1,16 @@ + + + WESTNMM + pluginName,eventName,dataTime + + + + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WOU.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WOU.xml new file mode 100644 index 0000000000..34053fb4a8 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WOU.xml @@ -0,0 +1,13 @@ + + + WOU + pluginName,reportType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WSAT.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WSAT.xml new file mode 100644 index 0000000000..1d7b2c68a2 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WSAT.xml @@ -0,0 +1,13 @@ + + + WSAT + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WSTM.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WSTM.xml new file mode 100644 index 0000000000..d1b6ead951 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WSTM.xml @@ -0,0 +1,13 @@ + + + WSTM + pluginName,reportType,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WSTM2.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WSTM2.xml new file mode 100644 index 0000000000..5dde743f03 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/WSTM2.xml @@ -0,0 +1,13 @@ + + + WSTM2 + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/gefs.xml b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/gefs.xml new file mode 100644 index 0000000000..573973baa5 --- /dev/null +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/ncep/hold/NcInventoryDefinitions/gefs.xml @@ -0,0 +1,13 @@ + + + gefs + pluginName,dataTime + + + + + + + + + diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/python/gfe/MetLib.py b/edexOsgi/build.edex/esb/data/utility/common_static/base/python/gfe/MetLib.py index 6f76a5e858..963c908baf 100644 --- a/edexOsgi/build.edex/esb/data/utility/common_static/base/python/gfe/MetLib.py +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/python/gfe/MetLib.py @@ -210,7 +210,7 @@ def advection(windGrid, scalarGrid): def getLatLonGrids(gridLoc): # Fetch the grids latLonGrid = gridLoc.getLatLonGrid().__numpy__[0]; - latLonGrid = numpy.reshape(latLonGrid, (2,gridLoc.getNy().intValue(),gridLoc.getNx().intValue()), order='F') + latLonGrid = reshape(latLonGrid, (2,gridLoc.getNy().intValue(),gridLoc.getNx().intValue()), order='F') return latLonGrid[1], latLonGrid[0] # Returns a grid of gridSpacing or the distance from one grid cell to diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/warngen/VM_global_library.vm b/edexOsgi/build.edex/esb/data/utility/common_static/base/warngen/VM_global_library.vm index 8050df9ff7..a6ab74429c 100644 --- a/edexOsgi/build.edex/esb/data/utility/common_static/base/warngen/VM_global_library.vm +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/warngen/VM_global_library.vm @@ -1,5 +1,6 @@ ##### UPDATED 3/2/12 12.2.1-4 BY EVAN BOOKBINDER ##### Qinglu Lin 04-04-2012 DR 14691. +##### Qinglu Lin 06-18-2012 DR 15043. Use duration in secondBullet. #* #################################################################################################### @@ -644,12 +645,20 @@ THE ${area.name}## ## #end #end -#macro(secondBullet $dateUtil $expire $timeFormat $localtimezone $secondtimezone) +#macro(secondBullet $dateUtil $expire $timeFormat $localtimezone $secondtimezone $duration) +#if(${duration} >= 360) +UNTIL ${dateUtil.format(${expire}, ${timeFormat.plain}, 15, ${localtimezone})}## +#else UNTIL ${dateUtil.format(${expire}, ${timeFormat.clock}, 15, ${localtimezone})}## +#end #if(${secondtimezone}) +#if(${duration} >= 360) +/${dateUtil.format(${expire}, ${timeFormat.plain}, 15, ${secondtimezone})}/## +#else /${dateUtil.format(${expire}, ${timeFormat.clock}, 15, ${secondtimezone})}/## #end #end +#end #macro(thirdBullet $dateUtil $eventtime $timeFormat $localtimezone $secondtimezone) AT ${dateUtil.format(${eventtime}, ${timeFormat.clock}, ${localtimezone})}## diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/warngen/arealFloodAdvisoryFollowup.vm b/edexOsgi/build.edex/esb/data/utility/common_static/base/warngen/arealFloodAdvisoryFollowup.vm index 7319fb1f1b..a9ae2cfa5d 100644 --- a/edexOsgi/build.edex/esb/data/utility/common_static/base/warngen/arealFloodAdvisoryFollowup.vm +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/warngen/arealFloodAdvisoryFollowup.vm @@ -351,7 +351,7 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})} THIS IS A TEST MESSAGE.## #end ...THE ${advType} ${hycType}HAS BEEN CANCELLED FOR ## -#headlineLocList(${areas} true true true false)## +#headlineLocList(${cancelareas} true true true false)## ... ########### END NEW HEADLINE CODE #################### diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/warngen/severeThunderstormWarning.vm b/edexOsgi/build.edex/esb/data/utility/common_static/base/warngen/severeThunderstormWarning.vm index 1dca9107f5..b94f780416 100644 --- a/edexOsgi/build.edex/esb/data/utility/common_static/base/warngen/severeThunderstormWarning.vm +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/warngen/severeThunderstormWarning.vm @@ -7,6 +7,7 @@ ## 9-15-2011 OB11.8.0-8 PATHCAST/CITY ## ## 11-04-2011 OB11.9-3 (DRs) ## ## 2-24-2012 OB12.2.1 CLEANUP ## +## BY QINGLU LIN 6-18-2012 DR 15043 use duration ## ################################################################ ## ##SET SOME INITIAL VARIABLES @@ -227,7 +228,7 @@ SEVERE THUNDERSTORM WARNING FOR... #if(${productClass}=="T") THIS IS A TEST MESSAGE. ## #end -#secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone}) +#secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone},${duration}) #################################################### ############# THIRD BULLET ######################### diff --git a/edexOsgi/build.edex/esb/data/utility/common_static/base/warngen/severeWeatherStatement.vm b/edexOsgi/build.edex/esb/data/utility/common_static/base/warngen/severeWeatherStatement.vm index ab4544d245..7446de8c4f 100644 --- a/edexOsgi/build.edex/esb/data/utility/common_static/base/warngen/severeWeatherStatement.vm +++ b/edexOsgi/build.edex/esb/data/utility/common_static/base/warngen/severeWeatherStatement.vm @@ -8,6 +8,7 @@ ## BY EVAN BOOKBINDER 11-04-2011 OB11.9-3 ## ## BY EVAN BOOKBINDER 2-24-2012 OB12.2.1 ## ## BY MIKE REGA 5-3-2012 DR 14885 MND blank line ## +## BY QINGLU LIN 6-18-2012 DR 15043 use duration ## ################################################################# ## ################################################################### @@ -332,7 +333,7 @@ ${dateUtil.format(${now}, ${timeFormat.header}, ${localtimezone})} #end #end #if(${action}=="CANCON" || ${action}=="CON" || ${action}=="COR" || ${CORCAN}=="true") -...A ${eventType} WARNING REMAINS IN EFFECT #secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone}) FOR ## +...A ${eventType} WARNING REMAINS IN EFFECT #secondBullet(${dateUtil},${expire},${timeFormat},${localtimezone},${secondtimezone},${duration}) FOR ## #headlineLocList(${areas} true true true false) ...## ########### END NEW HEADLINE CODE #################### diff --git a/edexOsgi/build.edex/opt/db/ddl/setup/postgresql.conf b/edexOsgi/build.edex/opt/db/ddl/setup/postgresql.conf index 06f60796fd..368dd9ad42 100644 --- a/edexOsgi/build.edex/opt/db/ddl/setup/postgresql.conf +++ b/edexOsgi/build.edex/opt/db/ddl/setup/postgresql.conf @@ -236,7 +236,7 @@ logging_collector = on # Enable capturing of stderr into log # These are only used if redirect_stderr is on: log_directory = 'pg_log' # Directory where log files are written # Can be absolute or relative to PGDATA -#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # Log file name pattern. +log_filename = 'postgresql-%A.log' # Log file name pattern. # Can include strftime() escapes log_truncate_on_rotation = on # If on, any existing log file of the same # name as the new log file will be diff --git a/edexOsgi/build.edex/rpm/component/edex/includes/edex-ost/MANIFEST.MF b/edexOsgi/build.edex/rpm/component/edex/includes/edex-ost/MANIFEST.MF new file mode 100644 index 0000000000..80c3619d52 --- /dev/null +++ b/edexOsgi/build.edex/rpm/component/edex/includes/edex-ost/MANIFEST.MF @@ -0,0 +1,9 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: edex-ost +Bundle-SymbolicName: edex-ost +Bundle-Version: 1 +Bundle-Vendor: RAYTHEON +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Require-Bundle: + gov.noaa.nws.ost.edex.plugin.regionalsat;bundle-version="1.0.0" diff --git a/edexOsgi/com.raytheon.edex.feature.uframe/feature.xml b/edexOsgi/com.raytheon.edex.feature.uframe/feature.xml index 94e97414f2..a0d1839a3b 100644 --- a/edexOsgi/com.raytheon.edex.feature.uframe/feature.xml +++ b/edexOsgi/com.raytheon.edex.feature.uframe/feature.xml @@ -252,6 +252,7 @@ install-size="0" version="0.0.0" unpack="false"/> + + + diff --git a/edexOsgi/com.raytheon.edex.ingestsrv/src/com/raytheon/edex/services/PersistSrv.java b/edexOsgi/com.raytheon.edex.ingestsrv/src/com/raytheon/edex/services/PersistSrv.java index e4cfecad83..2bcbebd228 100644 --- a/edexOsgi/com.raytheon.edex.ingestsrv/src/com/raytheon/edex/services/PersistSrv.java +++ b/edexOsgi/com.raytheon.edex.ingestsrv/src/com/raytheon/edex/services/PersistSrv.java @@ -53,109 +53,100 @@ import com.raytheon.uf.edex.database.plugin.PluginFactory; */ public class PersistSrv { - private Log logger = LogFactory.getLog(getClass()); + private Log logger = LogFactory.getLog(getClass()); - private static final PersistSrv instance = new PersistSrv(); + private static final PersistSrv instance = new PersistSrv(); - public static PersistSrv getInstance() { - return instance; - } + public static PersistSrv getInstance() { + return instance; + } - private PersistSrv() { - } + private PersistSrv() { + } - @SuppressWarnings("unchecked") - public PluginDataObject[] persist(PluginDataObject[] pdo) { + @SuppressWarnings("unchecked") + public PluginDataObject[] persist(PluginDataObject[] pdo) { - if (pdo == null || pdo.length == 0) { - return new PluginDataObject[0]; - } + if (pdo == null || pdo.length == 0) { + return new PluginDataObject[0]; + } - Set pdoList = new HashSet(); - EDEXUtil.checkPersistenceTimes(pdo); + Set pdoList = new HashSet(); + EDEXUtil.checkPersistenceTimes(pdo); - try { - PluginDao dao = PluginFactory.getInstance().getPluginDao( - pdo[0].getPluginName()); - StorageStatus ss = dao.persistToHDF5(pdo); - StorageException[] se = ss.getExceptions(); - pdoList.addAll(Arrays.asList(pdo)); - if (se != null) { - Map pdosThatFailed = new HashMap(); - for (StorageException s : se) { - IDataRecord rec = s.getRecord(); + try { + PluginDao dao = PluginFactory.getInstance().getPluginDao( + pdo[0].getPluginName()); + StorageStatus ss = dao.persistToHDF5(pdo); + StorageException[] se = ss.getExceptions(); + pdoList.addAll(Arrays.asList(pdo)); + if (se != null) { + Map pdosThatFailed = new HashMap(); + for (StorageException s : se) { + IDataRecord rec = s.getRecord(); - if (rec != null) { - // If we have correlation info and it's a pdo, use that - // for the error message... - Object corrObj = rec.getCorrelationObject(); - if (corrObj != null - && corrObj instanceof PluginDataObject) { - pdosThatFailed.put((PluginDataObject) corrObj, s); - } else { - // otherwise, do the best we can with the group - // information - logger.error("Persisting record " + rec.getGroup() - + "/" + rec.getName() + " failed.", s); - } - } else { - // All we know is something bad happened. - logger.error("Persistence error occurred: ", s); - } + if (rec != null) { + // If we have correlation info and it's a pdo, use that + // for the error message... + Object corrObj = rec.getCorrelationObject(); + if (corrObj != null + && corrObj instanceof PluginDataObject) { + pdosThatFailed.put((PluginDataObject) corrObj, s); + } else { + // otherwise, do the best we can with the group + // information + logger.error("Persisting record " + rec.getGroup() + + "/" + rec.getName() + " failed.", s); + } + } else { + // All we know is something bad happened. + logger.error("Persistence error occurred: ", s); + } - // Produce error messages for each pdo that failed - int errCnt = 0; - boolean suppressed = false; - for (Map.Entry e : pdosThatFailed - .entrySet()) { - if (errCnt > 50) { - logger.warn("More than 50 errors occurred in this batch. The remaining errors will be suppressed."); - suppressed = true; - continue; - } + // Produce error messages for each pdo that failed + int errCnt = 0; + boolean suppressed = false; + for (Map.Entry e : pdosThatFailed + .entrySet()) { + if (errCnt > 50) { + logger.warn("More than 50 errors occurred in this batch. The remaining errors will be suppressed."); + suppressed = true; + continue; + } - if (!suppressed) { - if (e.getValue() instanceof DuplicateRecordStorageException) { - logger.warn("Duplicate record encountered (duplicate ignored): " - + e.getKey().getDataURI()); - } else { - logger.error( - "Error persisting record " + e.getKey() - + " to database: ", - e.getValue()); - } - } + if (!suppressed) { + if (e.getValue() instanceof DuplicateRecordStorageException) { + logger.warn("Duplicate record encountered (duplicate ignored): " + + e.getKey().getDataURI()); + } else { + logger.error( + "Error persisting record " + e.getKey() + + " to database: ", + e.getValue()); + } + } - // Remove from the pdoList so the pdo is not propagated - // to the next service - pdoList.remove(e.getKey()); - errCnt++; + // Remove from the pdoList so the pdo is not propagated + // to the next service + pdoList.remove(e.getKey()); + errCnt++; - } - } + } + } - } + } - } catch (Throwable e1) { - logger.error( - "Critical persistence error occurred. Individual records that failed will be logged separately.", - e1); - for (PluginDataObject p : pdo) { - logger.error("Record " - + p - + " failed persistence due to critical error logged above."); - } - } + } catch (Throwable e1) { + logger.error( + "Critical persistence error occurred. Individual records that failed will be logged separately.", + e1); + for (PluginDataObject p : pdo) { + logger.error("Record " + + p + + " failed persistence due to critical error logged above."); + } + } - return pdoList.toArray(new PluginDataObject[pdoList.size()]); - } - - public PluginDataObject[] removeRawData(PluginDataObject[] pdos) { - if (pdos != null) { - for (PluginDataObject pdo : pdos) { - pdo.setMessageData(null); - } - } - return pdos; - } + return pdoList.toArray(new PluginDataObject[pdoList.size()]); + } } diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/gfe/isc/ifpnetCDF.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/gfe/isc/ifpnetCDF.py index 5dedfb169c..0ec8296d2d 100644 --- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/gfe/isc/ifpnetCDF.py +++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/gfe/isc/ifpnetCDF.py @@ -213,8 +213,6 @@ def getArgs(argv): elif opt[0] == '-v': logFile=opt[1] - initLogger(logFile) - # Create dictionary of arguments argDict = { "host" : host, @@ -231,7 +229,8 @@ def getArgs(argv): "compressFileFactor" : compressFileFactor, "trim" : trim, "krunch" : krunch, - "userID" : userID + "userID" : userID, + "logFile" : logFile, } return argDict @@ -623,10 +622,13 @@ def storeTopoGrid(client, file, databaseID, maskGrid, clipArea): pDict = gridLoc.getProjection() # Get the topo grid - topoGrid = TopoDatabaseManager.getTopoDatabase(DatabaseID(databaseID).getSiteId()).getTopo().__numpy__[0] + topoDB = TopoDatabaseManager.getTopoDatabase(DatabaseID(databaseID).getSiteId()) + parmId = topoDB.getParmList().getPayload().get(0) + tr = topoDB.getGridInventory(parmId).getPayload() + topoGrid = topoDB.getGridData(parmId, tr).getPayload().get(0).__numpy__[0] topoGrid = clipToExtrema(topoGrid, clipArea) topoGrid = numpy.flipud(topoGrid) - + # clipped size clipGridSize = (clipArea[1] - clipArea[0] + 1, clipArea[3] - clipArea[2] + 1) @@ -970,7 +972,7 @@ def storeScalarWE(we, trList, file, timeRange, databaseID, ## Extract the GridDataHistory info and save it storeGridDataHistory(file, we, wec, trList, timeRange) - logEvent("Saved ", gridCount, " ", varName, " grids") + logEvent("Saved", gridCount, varName, " grids") return gridCount @@ -1491,6 +1493,8 @@ def executeIfpNetCDF(host, port, outputFilename, parmList, databaseID, startTime argDict = checkArgs(argDict) start = time.time() + a = os.times() + cpu0 = a[0] + a[1] client = None try: @@ -1609,11 +1613,10 @@ def executeIfpNetCDF(host, port, outputFilename, parmList, databaseID, startTime cpugz = a[0] + a[1] stop = time.time() logEvent("Elapsed/CPU time: ", "%-.2f" % (stop1 - start), - "/", "%-.2f" % cpu, "processing,", "%-.2f" % (stop - stop1), "/", + "/", "%-.2f" % (cpu - cpu0), "processing,", "%-.2f" % (stop - stop1), "/", "%-.2f" % (cpugz - cpu), "compress,", - "%-.2f" % (stop - start), "/", "%-.2f" % (cpugz), "total") + "%-.2f" % (stop - start), "/", "%-.2f" % (cpugz - cpu0), "total") #logEvent("stats: ", client.getStats()) - logEvent("ifpnetCDF Finished") @@ -1625,17 +1628,19 @@ def main(argv): # AFPS.DBSubsystem_getBuiltBy(), AFPS.DBSubsystem_getBuiltOn(), # AFPS.DBSubsystem_getBuildVersion()) - if type(argv) != 'list': + if type(argv) is not list: argv = JUtil.javaStringListToPylist(argv) argDict = getArgs(argv) + + initLogger(argDict["logFile"]) logEvent("ifpnetCDF Starting") logEvent("Command: ",iscUtil.tupleToString(*argv)) - executeIfpNetCDF(argDict["host"], argDict["port"], argDict["outputFilename"], argDict["parmList"], argDict["databaseID"], argDict["startTime"], argDict["endTime"], argDict["mask"], argDict["geoInfo"], argDict["compressFile"], argDict["configFileName"], argDict["compressFileFactor"], argDict["trim"], argDict["krunch"], argDict["userID"]) + logEvent("ifpnetCDF Finished") if __name__ == "__main__": pass diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/gfe/isc/iscExtract.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/gfe/isc/iscExtract.py index 2bf88303b0..4c9aa8138c 100755 --- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/gfe/isc/iscExtract.py +++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/gfe/isc/iscExtract.py @@ -428,9 +428,35 @@ def executeIscExtract(parmNames, databaseName, startTime, endTime, maskName = "ISC_Send_Area" # Run ifpnetCDF for the data - ifpnetCDF.executeIfpNetCDF(siteConfig.GFESUITE_SERVER, siteConfig.GFESUITE_PORT, - fname, JUtil.pyValToJavaObj(dest['parms']), dbid, startTR, endTR, maskName, 0, 1, - None, 6, 1, 1, "iscExtract") + argv = [] + argv.append("ifpnetCDF") + argv.append("-h") + argv.append(siteConfig.GFESUITE_SERVER) + argv.append("-r") + argv.append(siteConfig.GFESUITE_PORT) + argv.append("-o") + argv.append(fname) + for p in dest['parms']: + argv.append("-p") + argv.append(p) + + argv.append("-d") + argv.append(dbid) + argv.append("-s") + argv.append(startTR) + argv.append("-e") + argv.append(endTR) + argv.append("-m") + argv.append(maskName) + argv.append("-c") + argv.append("-f") + argv.append("6") + argv.append("-t") + argv.append("-k") + argv.append("-u") + argv.append("iscExtract") + + ifpnetCDF.main(argv) fname = fname + '.gz' size = os.stat(fname)[stat.ST_SIZE] diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/gfe/isc/iscUtil.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/gfe/isc/iscUtil.py index 3e777cb6d1..ef78946aa5 100644 --- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/gfe/isc/iscUtil.py +++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/gfe/isc/iscUtil.py @@ -278,7 +278,7 @@ def getRequestXML(xml,selectedServers, selectedWEList): return xmlreq; def getLogger(scriptName, logName=None): - import threading, logging + import logging if logName is None: logPath=siteConfig.GFESUITE_LOGDIR+"/"+strftime("%Y%m%d", gmtime()) logName=scriptName+".log" @@ -293,12 +293,12 @@ def getLogger(scriptName, logName=None): if not os.path.exists(logPath): os.makedirs(logPath) - theLog = logging.getLogger(scriptName+threading.current_thread().name) + theLog = logging.getLogger(scriptName) theLog.setLevel(logging.INFO) ch = logging.FileHandler(logFile) ch.setLevel(logging.INFO) - formatter = logging.Formatter("%(asctime)s %(filename)s %(levelname)s: %(message)s", "%H:%M:%S") + formatter = logging.Formatter("%(levelname)s %(asctime)s [%(process)d:%(thread)d] %(filename)s: %(message)s") ch.setFormatter(formatter) for h in theLog.handlers: theLog.removeHandler(h) diff --git a/edexOsgi/com.raytheon.edex.plugin.grib/res/spring/grib-ingest.xml b/edexOsgi/com.raytheon.edex.plugin.grib/res/spring/grib-ingest.xml index eca745d9dd..f8f3654fc5 100644 --- a/edexOsgi/com.raytheon.edex.plugin.grib/res/spring/grib-ingest.xml +++ b/edexOsgi/com.raytheon.edex.plugin.grib/res/spring/grib-ingest.xml @@ -67,7 +67,6 @@ - diff --git a/edexOsgi/com.raytheon.edex.plugin.grib/src/com/raytheon/edex/plugin/grib/notify/GribNotifyContainer.java b/edexOsgi/com.raytheon.edex.plugin.grib/src/com/raytheon/edex/plugin/grib/notify/GribNotifyContainer.java index 91364134ca..d8aa80da81 100644 --- a/edexOsgi/com.raytheon.edex.plugin.grib/src/com/raytheon/edex/plugin/grib/notify/GribNotifyContainer.java +++ b/edexOsgi/com.raytheon.edex.plugin.grib/src/com/raytheon/edex/plugin/grib/notify/GribNotifyContainer.java @@ -19,6 +19,8 @@ **/ package com.raytheon.edex.plugin.grib.notify; +import java.util.List; + import com.raytheon.uf.common.serialization.ISerializableObject; import com.raytheon.uf.common.serialization.annotations.DynamicSerialize; import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement; @@ -43,13 +45,21 @@ import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement; public class GribNotifyContainer implements ISerializableObject { @DynamicSerializeElement - private GribNotifyMessage[] messages; + private List messages; - public GribNotifyMessage[] getMessages() { + public GribNotifyContainer() { + + } + + public GribNotifyContainer(List messages) { + this.messages = messages; + } + + public List getMessages() { return messages; } - public void setMessages(GribNotifyMessage[] messages) { + public void setMessages(List messages) { this.messages = messages; } diff --git a/edexOsgi/com.raytheon.edex.plugin.grib/src/com/raytheon/edex/plugin/grib/notify/GribNotifyMessage.java b/edexOsgi/com.raytheon.edex.plugin.grib/src/com/raytheon/edex/plugin/grib/notify/GribNotifyMessage.java index 29ddd5c18b..7b3825402c 100644 --- a/edexOsgi/com.raytheon.edex.plugin.grib/src/com/raytheon/edex/plugin/grib/notify/GribNotifyMessage.java +++ b/edexOsgi/com.raytheon.edex.plugin.grib/src/com/raytheon/edex/plugin/grib/notify/GribNotifyMessage.java @@ -21,6 +21,8 @@ package com.raytheon.edex.plugin.grib.notify; import java.util.Date; +import com.raytheon.uf.common.dataplugin.grib.GribModel; +import com.raytheon.uf.common.dataplugin.grib.GribRecord; import com.raytheon.uf.common.serialization.ISerializableObject; import com.raytheon.uf.common.serialization.annotations.DynamicSerialize; import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement; @@ -78,6 +80,24 @@ public class GribNotifyMessage implements ISerializableObject { this.model = model; } + public GribNotifyMessage() { + + } + + public GribNotifyMessage(GribRecord grib) { + GribModel modelInfo = grib.getModelInfo(); + + this.setInsertTime(grib.getInsertTime().getTime()); + this.setDataTime(grib.getDataTime()); + this.setModel(modelInfo.getModelName()); + this.setLevelName(modelInfo.getLevelName()); + this.setLevelOne(modelInfo.getLevelOneValue()); + this.setLevelTwo(modelInfo.getLevelTwoValue()); + this.setParamAbbreviation(grib.getModelInfo() + .getParameterAbbreviation()); + this.setDataURI(grib.getDataURI()); + } + public DataTime getDataTime() { return dataTime; } diff --git a/edexOsgi/com.raytheon.edex.plugin.grib/src/com/raytheon/edex/plugin/grib/notify/GribNotifyQueue.java b/edexOsgi/com.raytheon.edex.plugin.grib/src/com/raytheon/edex/plugin/grib/notify/GribNotifyQueue.java index 5fe4dbc5b4..082308283d 100644 --- a/edexOsgi/com.raytheon.edex.plugin.grib/src/com/raytheon/edex/plugin/grib/notify/GribNotifyQueue.java +++ b/edexOsgi/com.raytheon.edex.plugin.grib/src/com/raytheon/edex/plugin/grib/notify/GribNotifyQueue.java @@ -47,100 +47,98 @@ import com.raytheon.uf.edex.core.EdexException; */ public class GribNotifyQueue { - protected static final transient IUFStatusHandler handler = UFStatus - .getHandler(GribNotifyQueue.class); + protected static final transient IUFStatusHandler handler = UFStatus + .getHandler(GribNotifyQueue.class); - private final Object syncObj = new Object(); + private final Object syncObj = new Object(); - private List queuedRecord = new ArrayList(35); + private List queuedMsgs = new ArrayList( + 35); - private String destinationUri = null; + private String destinationUri = null; - private GribNotifySendThread sendThread = new GribNotifySendThread( - "gribNotifySend"); + private GribNotifySendThread sendThread = new GribNotifySendThread( + "gribNotifySend"); - public GribNotifyQueue() { - sendThread.start(); - } + public GribNotifyQueue() { + sendThread.start(); + } - public void addRecords(PluginDataObject[] gribs) { - if (gribs != null && gribs.length > 0) { - synchronized (syncObj) { - if (gribs.length > 0) { - for (PluginDataObject grib : gribs) { - queuedRecord.add((GribRecord) grib); - } - } else { - queuedRecord.add((GribRecord) gribs[0]); - } + public void addRecords(PluginDataObject[] gribs) { + if (gribs != null && gribs.length > 0) { + synchronized (syncObj) { + for (PluginDataObject grib : gribs) { + queuedMsgs.add(new GribNotifyMessage((GribRecord) grib)); + } + syncObj.notifyAll(); + } + } + } - syncObj.notifyAll(); - } - } - } + public String getDestinationUri() { + return destinationUri; + } - public String getDestinationUri() { - return destinationUri; - } + public void setDestinationUri(String destinationUri) { + this.destinationUri = destinationUri; + } - public void setDestinationUri(String destinationUri) { - this.destinationUri = destinationUri; - } + private class GribNotifySendThread extends Thread { + public GribNotifySendThread(String name) { + super(name); + } - private class GribNotifySendThread extends Thread { - public GribNotifySendThread(String name) { - super(name); - } + @Override + public void run() { + while (true) { + List msgsToSend = null; - public void run() { - while (true) { - List recordsToSend = null; + // small sleep to allow messages to accumulate + try { + Thread.sleep(1000); + } catch (InterruptedException e) { - // small sleep to allow messages to accumulate - try { - Thread.sleep(1000); - } catch (InterruptedException e) { + } - } + try { + synchronized (syncObj) { + while (queuedMsgs.size() == 0) { + try { + syncObj.wait(); + } catch (InterruptedException e) { + } + } - try { - synchronized (syncObj) { - while (queuedRecord.size() == 0) { - try { - syncObj.wait(); - } catch (InterruptedException e) { - } - } + msgsToSend = queuedMsgs; + queuedMsgs = new ArrayList(35); + } - recordsToSend = queuedRecord; - queuedRecord = new ArrayList(35); - } + GribNotifyContainer msg = new GribNotifyContainer( + msgsToSend); - GribNotifyContainer msg = GribNotifyTransform - .transformToMessages(recordsToSend); - try { - byte[] data = SerializationUtil.transformToThrift(msg); - EDEXUtil.getMessageProducer().sendAsyncUri( - destinationUri, data); - } catch (SerializationException e) { - handler.error( - "Failed to serialize grib notification message. Notification msg for " - + recordsToSend.size() - + " records won't be sent", e); - } catch (EdexException e) { - handler.error( - "Failed to send grib notification message. Notification msg for " - + recordsToSend.size() - + " records won't be sent", e); - } - } catch (Throwable e) { - handler.error( - "Error occurred in GribNotificationSend process. Notification msg for " - + (recordsToSend == null ? 0 - : recordsToSend.size()) - + " records won't be sent", e); - } - } - } - } + try { + byte[] data = SerializationUtil.transformToThrift(msg); + EDEXUtil.getMessageProducer().sendAsyncUri( + destinationUri, data); + } catch (SerializationException e) { + handler.error( + "Failed to serialize grib notification message. Notification msg for " + + msgsToSend.size() + + " records won't be sent", e); + } catch (EdexException e) { + handler.error( + "Failed to send grib notification message. Notification msg for " + + msgsToSend.size() + + " records won't be sent", e); + } + } catch (Throwable e) { + handler.error( + "Error occurred in GribNotificationSend process. Notification msg for " + + (msgsToSend == null ? 0 : msgsToSend + .size()) + " records won't be sent", + e); + } + } + } + } } diff --git a/edexOsgi/com.raytheon.edex.plugin.grib/src/com/raytheon/edex/plugin/grib/notify/GribNotifyTransform.java b/edexOsgi/com.raytheon.edex.plugin.grib/src/com/raytheon/edex/plugin/grib/notify/GribNotifyTransform.java deleted file mode 100644 index a3f12af57a..0000000000 --- a/edexOsgi/com.raytheon.edex.plugin.grib/src/com/raytheon/edex/plugin/grib/notify/GribNotifyTransform.java +++ /dev/null @@ -1,77 +0,0 @@ -/** - * 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. - **/ -package com.raytheon.edex.plugin.grib.notify; - -import java.util.List; - -import com.raytheon.uf.common.dataplugin.grib.GribModel; -import com.raytheon.uf.common.dataplugin.grib.GribRecord; - -/** - * Translates a GribRecord into a GribNotifyMessage - * - *
- * 
- * SOFTWARE HISTORY
- * Date         Ticket#    Engineer    Description
- * ------------ ---------- ----------- --------------------------
- * Oct 5, 2009            njensen     Initial creation
- * 
- * 
- * - * @author njensen - * @version 1.0 - */ - -public class GribNotifyTransform { - - /** - * Translates the grib records into messages that have specific readable - * data about what was ingested. - * - * @param gribs - * @return - */ - public static GribNotifyContainer transformToMessages(List gribs) { - GribNotifyContainer container = new GribNotifyContainer(); - GribNotifyMessage[] msgs = new GribNotifyMessage[gribs.size()]; - int index = 0; - for (GribRecord grib : gribs) { - GribModel modelInfo = grib.getModelInfo(); - // String level = GridTranslator.getShortLevelName( - // modelInfo.getLevelName(), modelInfo.getLevelOneValue(), - // modelInfo.getLevelTwoValue()); - - GribNotifyMessage msg = new GribNotifyMessage(); - msg.setInsertTime(grib.getInsertTime().getTime()); - msg.setDataTime(grib.getDataTime()); - msg.setModel(modelInfo.getModelName()); - msg.setLevelName(modelInfo.getLevelName()); - msg.setLevelOne(modelInfo.getLevelOneValue()); - msg.setLevelTwo(modelInfo.getLevelTwoValue()); - msg.setParamAbbreviation(grib.getModelInfo() - .getParameterAbbreviation()); - msg.setDataURI(grib.getDataURI()); - msgs[index++] = msg; - } - container.setMessages(msgs); - return container; - } -} diff --git a/edexOsgi/com.raytheon.edex.plugin.grib/src/com/raytheon/edex/plugin/grib/spatial/GribSpatialCache.java b/edexOsgi/com.raytheon.edex.plugin.grib/src/com/raytheon/edex/plugin/grib/spatial/GribSpatialCache.java index feac8b8fa9..ee199ae5dc 100644 --- a/edexOsgi/com.raytheon.edex.plugin.grib/src/com/raytheon/edex/plugin/grib/spatial/GribSpatialCache.java +++ b/edexOsgi/com.raytheon.edex.plugin.grib/src/com/raytheon/edex/plugin/grib/spatial/GribSpatialCache.java @@ -1,750 +1,750 @@ -/** - * 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. - **/ - -package com.raytheon.edex.plugin.grib.spatial; - -import java.io.File; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.opengis.metadata.spatial.PixelOrientation; - -import com.raytheon.edex.plugin.grib.dao.GribModelDao; -import com.raytheon.edex.plugin.grib.dao.GridCoverageDao; -import com.raytheon.edex.plugin.grib.dao.IGridCoverageDao; -import com.raytheon.edex.site.SiteUtil; -import com.raytheon.uf.common.awipstools.GetWfoCenterPoint; -import com.raytheon.uf.common.dataplugin.grib.exception.GribException; -import com.raytheon.uf.common.dataplugin.grib.spatial.projections.GridCoverage; -import com.raytheon.uf.common.dataplugin.grib.subgrid.SubGrid; -import com.raytheon.uf.common.dataplugin.grib.subgrid.SubGridDef; -import com.raytheon.uf.common.dataplugin.grib.util.GribModelLookup; -import com.raytheon.uf.common.dataplugin.grib.util.GridModel; -import com.raytheon.uf.common.geospatial.MapUtil; -import com.raytheon.uf.common.localization.IPathManager; -import com.raytheon.uf.common.localization.LocalizationContext; -import com.raytheon.uf.common.localization.LocalizationContext.LocalizationLevel; -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.common.serialization.SerializationException; -import com.raytheon.uf.common.serialization.SerializationUtil; -import com.raytheon.uf.edex.awipstools.GetWfoCenterHandler; -import com.raytheon.uf.edex.core.EDEXUtil; -import com.raytheon.uf.edex.database.DataAccessLayerException; -import com.raytheon.uf.edex.database.cluster.ClusterLockUtils; -import com.raytheon.uf.edex.database.cluster.ClusterLockUtils.LockState; -import com.raytheon.uf.edex.database.cluster.ClusterTask; -import com.raytheon.uf.edex.database.dao.CoreDao; -import com.raytheon.uf.edex.database.dao.DaoConfig; -import com.vividsolutions.jts.geom.Coordinate; - -/** - * Cache used for holding GridCoverage objects. Since creating geometries and - * CRS objects are expensive operations, this cache is used to store - * GridCoverages as they are produced. - * - *
- * 
- * SOFTWARE HISTORY
- * 
- * Date         Ticket#     Engineer    Description
- * ------------ ----------  ----------- --------------------------
- * 4/7/09       1994        bphillip    Initial Creation
- * 
- * 
- * - * @author bphillip - * @version 1 - */ -public class GribSpatialCache { - - /** The logger */ - protected transient Log logger = LogFactory.getLog(getClass()); - - /** The singleton instance */ - private static GribSpatialCache instance = new GribSpatialCache(); - - /** - * Map containing the GridCoverages
- * The key for this map is the id field of the GridCoverage object stored as - * the value of the map - */ - private Map spatialMap; - - /** - * Map containing the GridCoverages
- * The key for this map is the name field of the GridCoverage object stored - * as the value of the map. This is only used internally for lookup of a - * coverage by name aka gridId. - */ - private Map spatialNameMap; - - /** - * Map containing the subGrid coverage based on a model name. - */ - private Map subGridCoverageMap; - - /** - * Map containing the subGrid definition based on a model name. - */ - private Map definedSubGridMap; - - /** - * Gets the singleton instance of GribSpatialCache - * - * @return The singleton instance of the GribSpatialCache - */ - public static GribSpatialCache getInstance() { - return instance; - } - - /** - * Creates a new GribSpatialCache - */ - private GribSpatialCache() { - spatialMap = new HashMap(); - spatialNameMap = new HashMap(); - definedSubGridMap = new HashMap(); - subGridCoverageMap = new HashMap(); - initializeGrids(); - } - - /** - * Retrieves a grid from the map. If the grid does not exist, null is - * returned - * - * @param id - * The id of the GridCoverage to retrieve - * @return The GridCoverage object, null if not present - * @throws GribException - * @throws DataAccessLayerException - */ - public GridCoverage getGrid(GridCoverage coverage) throws GribException { - GridCoverage retVal = spatialMap.get(coverage.getId()); - - if (retVal == null) { - /* - * Coverage not found in cache, but the values provided in the GDS - * may be slightly different than those for the grid in the cache. - * Check the database to be sure. - */ - try { - retVal = ((IGridCoverageDao) EDEXUtil.getESBComponent(coverage - .getProjectionType().replaceAll(" ", "") + "Dao")) - .checkGrid(coverage); - } catch (DataAccessLayerException e) { - throw new GribException("Error querying for grib coverage!", e); - } - - if (retVal != null) { - spatialMap.put(coverage.getId(), retVal); - spatialNameMap.put(coverage.getName(), retVal); - } - - } - - return retVal; - } - - public GridCoverage getGrid(int id) { - return spatialMap.get(id); - } - - public GridCoverage getGrid(String modelName) { - GridCoverage rval = null; - - if (modelName != null) { - if (subGridCoverageMap.containsKey(modelName)) { - rval = spatialMap.get(subGridCoverageMap.get(modelName)); - } else { - GridModel model = GribModelLookup.getInstance().getModelByName( - modelName); - if (model != null) { - rval = spatialNameMap.get(model.getGrid().toString()); - } - } - } - - return rval; - } - - public GridCoverage getGridByName(String name) { - return spatialNameMap.get(name); - } - - /** - * Puts a grid into the GribSpatialCache. - * - * @param grid - * The grid to store - * @param persistToDb - * True if this GridCoverage object is to be persisted to the - * database - * @throws GribException - * If problems occur while initializing the grid - */ - public void putGrid(GridCoverage grid, boolean initializeGrid, - boolean persistToDb) throws GribException { - if (initializeGrid) { - /* - * Prepare the grid to be stored into the cache. Initializes the - * geometry and crs objects and generates the id field - */ - grid.initialize(); - if (grid.getName() == null) { - grid.generateName(); - } - } - - // Persist to the database if desired - if (persistToDb) { - new CoreDao(DaoConfig.DEFAULT).saveOrUpdate(grid); - } - - spatialMap.put(grid.getId(), grid); - spatialNameMap.put(grid.getName(), grid); - } - - public SubGrid getSubGrid(String modelName) { - return definedSubGridMap.get(modelName); - } - - public GridCoverage getSubGridCoverage(String modelName) { - GridCoverage rval = null; - - if (subGridCoverageMap.containsKey(modelName)) { - rval = spatialMap.get(subGridCoverageMap.get(modelName)); - } - - return rval; - } - - /** - * Initializes the predefined set of grids. The grids are stored in xml - * format in the utility folder so the localization service has access to - * them.
- * GridCoverage are created from the xml via JaxB and placed in the cache - */ - private void initializeGrids() { - ClusterTask ct = null; - - do { - ct = ClusterLockUtils.lock("grib", "spatialCache", 120000, true); - } while (!LockState.SUCCESSFUL.equals(ct.getLockState())); - - try { - // pull all the coverage from the database - GridCoverageDao dao = new GridCoverageDao(); - FileDataList previousFdl = getPreviousFileDataList(); - FileDataList currentFdl = generateFileDataList(); - - if (isDefintionChanged(previousFdl, currentFdl)) { - processBaseGridsChanged(dao, currentFdl); - saveFileDataList(currentFdl); - } else { - List baseCoverages = dao - .loadBaseGrids(); - - if (baseCoverages != null && baseCoverages.size() > 0) { - for (Object obj : baseCoverages) { - try { - putGrid((GridCoverage) obj, false, false); - } catch (Exception e) { - // Log error but do not throw exception, technically - // is - // only from initialize which isn't being called - logger.error( - "Unable to load grid coverage into cache " - + obj, e); - } - } - } else { - // database wiped/plugin re-initialized need to repopulate - processBaseGridsChanged(dao, currentFdl); - saveFileDataList(currentFdl); - } - } - - processUnknownGrids(dao); - processSubGrids(dao, currentFdl); - } finally { - ClusterLockUtils.unlock(ct, false); - } - } - - /** - * A non subgridded definition has been added, deleted, or changed. - * Changed/delete both delete all records, models, and coverage defintion. - * Then Change/Add put in a new coverage definition. - * - * TODO: Post process Unknown definitions to see if they are now known. If - * now known delete definitions of unknown. - * - * @param dao - * @param currentFdl - */ - private void processBaseGridsChanged(GridCoverageDao dao, - FileDataList currentFdl) { - List baseCoverages = dao.loadBaseGrids(); - Map fileCoverageMap = loadGridDefinitionsFromDisk(currentFdl); - - // update needs to delete all hdf5 same as delete, so update is - // a delete and then an add to simplify logic and handle primary - // key changes. - List coveragesToDelete = new LinkedList(); - HashSet validDbCoverageNames = new HashSet( - (int) (baseCoverages.size() * 1.25) + 1); - - Iterator iter = baseCoverages.iterator(); - while (iter.hasNext()) { - GridCoverage dbCov = iter.next(); - GridCoverage fileCoverage = fileCoverageMap.get(dbCov.getName()); - if (!dbCov.equals(fileCoverage)) { - // coverage not in flat file or coverage has changed, - // delete coverage old coverage - coveragesToDelete.add(dbCov); - iter.remove(); - } else { - // current coverage still valid - validDbCoverageNames.add(dbCov.getName()); - } - } - - // delete grids, models, coverages, and hdf5 for namesToDelete. - for (GridCoverage cov : coveragesToDelete) { - logger.info("GridCoverage " + cov.getName() - + " has changed. Deleting out of date data"); - if (!dao.deleteCoverageAssociatedData(cov, true)) { - logger.warn("Failed to delete GridCoverage " + cov.getName() - + ". Manual intervention required."); - } else { - logger.info("GridCoverage successfully deleted"); - } - } - - // remove the valid db coverages from the map - fileCoverageMap.keySet().removeAll(validDbCoverageNames); - - // add new grids in bulk - for (GridCoverage cov : fileCoverageMap.values()) { - try { - putGrid(cov, true, false); - } catch (Exception e) { - logger.error( - "Failed to initialize grid definition " + cov.getName(), - e); - } - } - - // bulk persist the spatial maps - if (spatialMap.size() > 0) { - dao.persistAll(spatialMap.values()); - } - - for (GridCoverage cov : baseCoverages) { - try { - putGrid(cov, false, false); - } catch (Exception e) { - logger.error( - "Failed to initialize grid definition " + cov.getName(), - e); - } - } - } - - /** - * A non subGridd definition has been added, deleted, or changed. - * Changed/delete both delete all records, models, and coverage defintion. - * Then Change/Add put in a new coverage definition, and also delete any - * data associated with base model definition. - * - * @param dao - * @param currentFdl - */ - private void processSubGrids(GridCoverageDao dao, FileDataList currentFdl) { - List oldSubGridCoverages = dao.loadSubGrids(); - Map fileSubGridCoverageMap = loadSubGridDefinitionsFromDisk(currentFdl); - - // update needs to delete all hdf5 same as delete, so update is - // a delete and then an add to simplify logic and handle primary - // key changes. - List coveragesToDelete = new LinkedList(); - HashSet validDbCoverageNames = new HashSet( - (int) (oldSubGridCoverages.size() * 1.25) + 1); - - Iterator iter = oldSubGridCoverages.iterator(); - while (iter.hasNext()) { - GridCoverage dbCov = iter.next(); - GridCoverage fileCoverage = fileSubGridCoverageMap.get(dbCov - .getName()); - if (!dbCov.equals(fileCoverage)) { - // coverage not in flat file or coverage has changed, - // delete coverage - coveragesToDelete.add(dbCov); - iter.remove(); - } else { - // current coverage still valid - validDbCoverageNames.add(dbCov.getName()); - } - } - - // delete grids, models, coverages, and hdf5 for namesToDelete. - for (GridCoverage cov : coveragesToDelete) { - logger.info("Model " - + cov.getSubGridModel() - + " has changed subGrid definition, deleting out of date data"); - if (!dao.deleteCoverageAssociatedData(cov, true)) { - logger.warn("Failed to delete GridCoverage " + cov.getName() - + ". Manual intervention required."); - } else { - logger.info("GridModel successfully deleted"); - } - } - - // remove the valid db coverages from the map - fileSubGridCoverageMap.keySet().removeAll(validDbCoverageNames); - - // need to delete model information for new adds, as old grid may not - // have been subgridded - GribModelDao modelDao = new GribModelDao(); - for (GridCoverage cov : fileSubGridCoverageMap.values()) { - logger.info("Model " - + cov.getSubGridModel() - + " has changed subGrid definition, deleting out of date data"); - // look up parent - if (modelDao.deleteModelAndAssociatedData(cov.getSubGridModel()) < 0) { - logger.warn("Failed to delete SubGrid Model " - + cov.getSubGridModel() - + ". Manual intervention required."); - } else { - logger.info("GridModel successfully deleted"); - } - } - - // add new grids, persisting individually - for (GridCoverage cov : fileSubGridCoverageMap.values()) { - try { - putGrid(cov, true, true); - subGridCoverageMap.put(cov.getSubGridModel(), cov.getId()); - } catch (Exception e) { - logger.error( - "Failed to initialize grid definition " + cov.getName(), - e); - } - } - - // put database grids into map - for (GridCoverage cov : oldSubGridCoverages) { - try { - putGrid(cov, true, true); - subGridCoverageMap.put(cov.getSubGridModel(), cov.getId()); - } catch (Exception e) { - logger.error( - "Failed to initialize grid definition " + cov.getName(), - e); - } - } - } - - private void processUnknownGrids(GridCoverageDao dao) { - List unknownGrids = dao.loadUnknownGrids(); - for (GridCoverage cov : unknownGrids) { - try { - GridCoverage dbCov = getGrid(cov); - if (!cov.getName().equals(dbCov.getName())) { - logger.info("Unknown grid " + cov.getName() - + " is now mapped by " + dbCov.getName() - + ". Deleting unknown grid"); - dao.deleteCoverageAssociatedData(cov, true); - } - } catch (Exception e) { - logger.error("Erro occurred scanning unknown grids", e); - } - } - } - - private Map loadSubGridDefinitionsFromDisk( - FileDataList currentFdl) { - GribModelLookup gribModelLUT = GribModelLookup.getInstance(); - List subGridDefs = currentFdl.getSubGridFileList(); - Map subGrids = null; - - if (subGridDefs != null && subGridDefs.size() > 0) { - subGrids = new HashMap(subGridDefs.size() * 3); - Coordinate wfoCenterPoint = null; - String wfo = SiteUtil.getSite(); - GetWfoCenterPoint centerPointRequest = new GetWfoCenterPoint(wfo); - try { - wfoCenterPoint = new GetWfoCenterHandler() - .handleRequest(centerPointRequest); - } catch (Exception e) { - logger.error( - "Failed to generate sub grid definitions. Unable to lookup WFO Center Point", - e); - return new HashMap(0); - } - - for (FileData fd : subGridDefs) { - try { - SubGridDef subGridDef = loadSubGridDef(fd.getFilePath()); - - if (subGridDef != null) { - String referenceModel = subGridDef.getReferenceModel(); - - GridCoverage gridCoverage = getGrid(referenceModel); - - if (gridCoverage != null) { - Coordinate wfoCenter = MapUtil - .latLonToGridCoordinate(wfoCenterPoint, - PixelOrientation.CENTER, - gridCoverage); - - double xCenterPoint = wfoCenter.x; - double yCenterPoint = wfoCenter.y; - - double xDistance = subGridDef.getNx() / 2; - double yDistance = subGridDef.getNy() / 2; - Coordinate lowerLeftPosition = new Coordinate( - xCenterPoint - xDistance, yCenterPoint - + yDistance); - Coordinate upperRightPosition = new Coordinate( - xCenterPoint + xDistance, yCenterPoint - - yDistance); - - lowerLeftPosition = MapUtil.gridCoordinateToLatLon( - lowerLeftPosition, PixelOrientation.CENTER, - gridCoverage); - upperRightPosition = MapUtil - .gridCoordinateToLatLon(upperRightPosition, - PixelOrientation.CENTER, - gridCoverage); - - subGridDef.setLowerLeftLon(lowerLeftPosition.x); - subGridDef.setLowerLeftLat(lowerLeftPosition.y); - subGridDef.setUpperRightLon(upperRightPosition.x); - subGridDef.setUpperRightLat(upperRightPosition.y); - - // verify numbers in -180 -> 180 range - subGridDef.setLowerLeftLon(MapUtil - .correctLon(subGridDef.getLowerLeftLon())); - subGridDef.setUpperRightLon(MapUtil - .correctLon(subGridDef.getUpperRightLon())); - - // do a reverse lookup of the model name to get its - // associated grid id - - for (String modelName : subGridDef.getModelNames()) { - GridModel model = gribModelLUT - .getModelByName(modelName); - if (model != null) { - GridCoverage baseCoverage = spatialNameMap - .get(model.getGrid().toString()); - - if (baseCoverage != null) { - SubGrid subGrid = new SubGrid(); - subGrid.setModelName(modelName); - GridCoverage subGridCoverage = baseCoverage - .trim(subGridDef, subGrid); - if (subGridCoverage != null) { - subGrids.put( - subGridCoverage.getName(), - subGridCoverage); - definedSubGridMap.put(modelName, - subGrid); - } - } - } - } - } else { - logger.error("Failed to generate sub grid for " - + fd.getFilePath() - + ". Unable to determine coverage for referenceModel [" - + referenceModel + "]"); - } - } - } catch (Exception e) { - // Log error but do not throw exception - logger.error( - "Failed processing sub grid file: " - + fd.getFilePath(), e); - } - } - } else { - subGrids = new HashMap(0); - } - - return subGrids; - } - - /** - * Loads and validates subGridDef pointed to by filePath. If definition - * empty/invalid returns null. - * - * @param filePath - * @return - */ - private SubGridDef loadSubGridDef(String filePath) { - SubGridDef rval = null; - File f = new File(filePath); - - if (f.length() > 0) { - try { - rval = (SubGridDef) SerializationUtil - .jaxbUnmarshalFromXmlFile(f); - if (rval.getReferenceModel() == null - || rval.getModelNames() == null - || rval.getModelNames().size() == 0) { - // sub grid didn't have required definitions - rval = null; - } - } catch (SerializationException e) { - logger.error("Failed reading sub grid file: " + filePath, e); - } - } - - return rval; - } - - private static boolean isDefintionChanged(FileDataList previousFdl, - FileDataList currentFdl) { - boolean rval = true; - if (currentFdl != null) { - rval = !currentFdl.equals(previousFdl); - } else { - rval = previousFdl != null; - } - - return rval; - } - - private FileDataList generateFileDataList() { - /* - * Retrieve the list of files from the localization service - */ - IPathManager pm = PathManagerFactory.getPathManager(); - FileDataList fileList = new FileDataList(); - LocalizationContext[] contexts = pm - .getLocalSearchHierarchy(LocalizationType.EDEX_STATIC); - fileList.addCoverageFiles(pm.listFiles(contexts, "/grib/grids", - new String[] { "xml" }, true, true)); - fileList.addSubGridFiles(pm.listFiles(contexts, "/grib/subgrids", - new String[] { "xml" }, true, true)); - - return fileList; - } - - private FileDataList getPreviousFileDataList() { - IPathManager pm = PathManagerFactory.getPathManager(); - File previousFileData = pm.getFile(pm.getContext( - LocalizationType.EDEX_STATIC, LocalizationLevel.CONFIGURED), - "/grib/gridDefFileListing.xml"); - FileDataList rval = null; - - if (previousFileData.exists() && previousFileData.length() > 0) { - try { - Object obj = SerializationUtil - .jaxbUnmarshalFromXmlFile(previousFileData); - if (obj instanceof FileDataList) { - rval = (FileDataList) obj; - } else { - logger.error("Error occurred deserializing " - + previousFileData.getAbsolutePath() - + ", expected type " + FileDataList.class - + " received " + obj.getClass()); - } - } catch (Exception e) { - logger.error( - "Error occurred deserializing " - + previousFileData.getAbsolutePath(), e); - } - } - return rval; - } - - private Map loadGridDefinitionsFromDisk( - FileDataList currentFdl) { - List coverageFiles = currentFdl.getCoverageFileList(); - Map fileCoverageMap = new HashMap( - (int) (coverageFiles.size() * 1.25) + 1); - - /* - * Iterate over file list. Unmarshal to GridCoverage object - */ - for (FileData fd : coverageFiles) { - try { - GridCoverage grid = (GridCoverage) SerializationUtil - .jaxbUnmarshalFromXmlFile(fd.getFilePath()); - GridCoverage previousGrid = fileCoverageMap.put(grid.getName(), - grid); - if (previousGrid != null) { - for (FileData fd2 : coverageFiles) { - GridCoverage grid2 = (GridCoverage) SerializationUtil - .jaxbUnmarshalFromXmlFile(fd2.getFilePath()); - if (grid.getName().equals(grid2.getName())) { - logger.error("Grid " + grid.getName() - + " has already been defined. " - + fd.getFilePath() + " and " - + fd2.getFilePath() - + " have same name. Using " - + fd2.getFilePath()); - break; - } - } - } - } catch (Exception e) { - // Log error but do not throw exception - logger.error( - "Unable to read default grids file: " - + fd.getFilePath(), e); - } - } - - return fileCoverageMap; - } - - private void saveFileDataList(FileDataList fdl) { - try { - IPathManager pm = PathManagerFactory.getPathManager(); - LocalizationFile lf = pm.getLocalizationFile( - pm.getContext(LocalizationType.EDEX_STATIC, - LocalizationLevel.CONFIGURED), - "/grib/gridDefFileListing.xml"); - SerializationUtil.jaxbMarshalToXmlFile(fdl, lf.getFile() - .getAbsolutePath()); - lf.save(); - } catch (Exception e) { - logger.error( - "Failed to save coverage file data list, coverages may be reloaded on next restart", - e); - } - } - - public static void reinitialize() { - GribSpatialCache newInstance = new GribSpatialCache(); - instance = newInstance; - } -} +/** + * 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. + **/ + +package com.raytheon.edex.plugin.grib.spatial; + +import java.io.File; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.opengis.metadata.spatial.PixelOrientation; + +import com.raytheon.edex.plugin.grib.dao.GribModelDao; +import com.raytheon.edex.plugin.grib.dao.GridCoverageDao; +import com.raytheon.edex.plugin.grib.dao.IGridCoverageDao; +import com.raytheon.edex.site.SiteUtil; +import com.raytheon.uf.common.awipstools.GetWfoCenterPoint; +import com.raytheon.uf.common.dataplugin.grib.exception.GribException; +import com.raytheon.uf.common.dataplugin.grib.spatial.projections.GridCoverage; +import com.raytheon.uf.common.dataplugin.grib.subgrid.SubGrid; +import com.raytheon.uf.common.dataplugin.grib.subgrid.SubGridDef; +import com.raytheon.uf.common.dataplugin.grib.util.GribModelLookup; +import com.raytheon.uf.common.dataplugin.grib.util.GridModel; +import com.raytheon.uf.common.geospatial.MapUtil; +import com.raytheon.uf.common.localization.IPathManager; +import com.raytheon.uf.common.localization.LocalizationContext; +import com.raytheon.uf.common.localization.LocalizationContext.LocalizationLevel; +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.common.serialization.SerializationException; +import com.raytheon.uf.common.serialization.SerializationUtil; +import com.raytheon.uf.edex.awipstools.GetWfoCenterHandler; +import com.raytheon.uf.edex.core.EDEXUtil; +import com.raytheon.uf.edex.database.DataAccessLayerException; +import com.raytheon.uf.edex.database.cluster.ClusterLockUtils; +import com.raytheon.uf.edex.database.cluster.ClusterLockUtils.LockState; +import com.raytheon.uf.edex.database.cluster.ClusterTask; +import com.raytheon.uf.edex.database.dao.CoreDao; +import com.raytheon.uf.edex.database.dao.DaoConfig; +import com.vividsolutions.jts.geom.Coordinate; + +/** + * Cache used for holding GridCoverage objects. Since creating geometries and + * CRS objects are expensive operations, this cache is used to store + * GridCoverages as they are produced. + * + *
+ * 
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#     Engineer    Description
+ * ------------ ----------  ----------- --------------------------
+ * 4/7/09       1994        bphillip    Initial Creation
+ * 
+ * 
+ * + * @author bphillip + * @version 1 + */ +public class GribSpatialCache { + + /** The logger */ + protected transient Log logger = LogFactory.getLog(getClass()); + + /** The singleton instance */ + private static GribSpatialCache instance = new GribSpatialCache(); + + /** + * Map containing the GridCoverages
+ * The key for this map is the id field of the GridCoverage object stored as + * the value of the map + */ + private Map spatialMap; + + /** + * Map containing the GridCoverages
+ * The key for this map is the name field of the GridCoverage object stored + * as the value of the map. This is only used internally for lookup of a + * coverage by name aka gridId. + */ + private Map spatialNameMap; + + /** + * Map containing the subGrid coverage based on a model name. + */ + private Map subGridCoverageMap; + + /** + * Map containing the subGrid definition based on a model name. + */ + private Map definedSubGridMap; + + /** + * Gets the singleton instance of GribSpatialCache + * + * @return The singleton instance of the GribSpatialCache + */ + public static GribSpatialCache getInstance() { + return instance; + } + + /** + * Creates a new GribSpatialCache + */ + private GribSpatialCache() { + spatialMap = new HashMap(); + spatialNameMap = new HashMap(); + definedSubGridMap = new HashMap(); + subGridCoverageMap = new HashMap(); + initializeGrids(); + } + + /** + * Retrieves a grid from the map. If the grid does not exist, null is + * returned + * + * @param id + * The id of the GridCoverage to retrieve + * @return The GridCoverage object, null if not present + * @throws GribException + * @throws DataAccessLayerException + */ + public GridCoverage getGrid(GridCoverage coverage) throws GribException { + GridCoverage retVal = spatialMap.get(coverage.getId()); + + if (retVal == null) { + /* + * Coverage not found in cache, but the values provided in the GDS + * may be slightly different than those for the grid in the cache. + * Check the database to be sure. + */ + try { + retVal = ((IGridCoverageDao) EDEXUtil.getESBComponent(coverage + .getProjectionType().replaceAll(" ", "") + "Dao")) + .checkGrid(coverage); + } catch (DataAccessLayerException e) { + throw new GribException("Error querying for grib coverage!", e); + } + + if (retVal != null) { + spatialMap.put(coverage.getId(), retVal); + spatialNameMap.put(coverage.getName(), retVal); + } + + } + + return retVal; + } + + public GridCoverage getGrid(int id) { + return spatialMap.get(id); + } + + public GridCoverage getGrid(String modelName) { + GridCoverage rval = null; + + if (modelName != null) { + if (subGridCoverageMap.containsKey(modelName)) { + rval = spatialMap.get(subGridCoverageMap.get(modelName)); + } else { + GridModel model = GribModelLookup.getInstance().getModelByName( + modelName); + if (model != null) { + rval = spatialNameMap.get(model.getGrid().toString()); + } + } + } + + return rval; + } + + public GridCoverage getGridByName(String name) { + return spatialNameMap.get(name); + } + + /** + * Puts a grid into the GribSpatialCache. + * + * @param grid + * The grid to store + * @param persistToDb + * True if this GridCoverage object is to be persisted to the + * database + * @throws GribException + * If problems occur while initializing the grid + */ + public void putGrid(GridCoverage grid, boolean initializeGrid, + boolean persistToDb) throws GribException { + if (initializeGrid) { + /* + * Prepare the grid to be stored into the cache. Initializes the + * geometry and crs objects and generates the id field + */ + grid.initialize(); + if (grid.getName() == null) { + grid.generateName(); + } + } + + // Persist to the database if desired + if (persistToDb) { + new CoreDao(DaoConfig.DEFAULT).saveOrUpdate(grid); + } + + spatialMap.put(grid.getId(), grid); + spatialNameMap.put(grid.getName(), grid); + } + + public SubGrid getSubGrid(String modelName) { + return definedSubGridMap.get(modelName); + } + + public GridCoverage getSubGridCoverage(String modelName) { + GridCoverage rval = null; + + if (subGridCoverageMap.containsKey(modelName)) { + rval = spatialMap.get(subGridCoverageMap.get(modelName)); + } + + return rval; + } + + /** + * Initializes the predefined set of grids. The grids are stored in xml + * format in the utility folder so the localization service has access to + * them.
+ * GridCoverage are created from the xml via JaxB and placed in the cache + */ + private void initializeGrids() { + ClusterTask ct = null; + + do { + ct = ClusterLockUtils.lock("grib", "spatialCache", 120000, true); + } while (!LockState.SUCCESSFUL.equals(ct.getLockState())); + + try { + // pull all the coverage from the database + GridCoverageDao dao = new GridCoverageDao(); + FileDataList previousFdl = getPreviousFileDataList(); + FileDataList currentFdl = generateFileDataList(); + + if (isDefintionChanged(previousFdl, currentFdl)) { + processBaseGridsChanged(dao, currentFdl); + saveFileDataList(currentFdl); + } else { + List baseCoverages = dao + .loadBaseGrids(); + + if (baseCoverages != null && baseCoverages.size() > 0) { + for (Object obj : baseCoverages) { + try { + putGrid((GridCoverage) obj, false, false); + } catch (Exception e) { + // Log error but do not throw exception, technically + // is + // only from initialize which isn't being called + logger.error( + "Unable to load grid coverage into cache " + + obj, e); + } + } + } else { + // database wiped/plugin re-initialized need to repopulate + processBaseGridsChanged(dao, currentFdl); + saveFileDataList(currentFdl); + } + } + + processUnknownGrids(dao); + processSubGrids(dao, currentFdl); + } finally { + ClusterLockUtils.unlock(ct, false); + } + } + + /** + * A non subgridded definition has been added, deleted, or changed. + * Changed/delete both delete all records, models, and coverage defintion. + * Then Change/Add put in a new coverage definition. + * + * TODO: Post process Unknown definitions to see if they are now known. If + * now known delete definitions of unknown. + * + * @param dao + * @param currentFdl + */ + private void processBaseGridsChanged(GridCoverageDao dao, + FileDataList currentFdl) { + List baseCoverages = dao.loadBaseGrids(); + Map fileCoverageMap = loadGridDefinitionsFromDisk(currentFdl); + + // update needs to delete all hdf5 same as delete, so update is + // a delete and then an add to simplify logic and handle primary + // key changes. + List coveragesToDelete = new LinkedList(); + HashSet validDbCoverageNames = new HashSet( + (int) (baseCoverages.size() * 1.25) + 1); + + Iterator iter = baseCoverages.iterator(); + while (iter.hasNext()) { + GridCoverage dbCov = iter.next(); + GridCoverage fileCoverage = fileCoverageMap.get(dbCov.getName()); + if (!dbCov.equals(fileCoverage)) { + // coverage not in flat file or coverage has changed, + // delete coverage old coverage + coveragesToDelete.add(dbCov); + iter.remove(); + } else { + // current coverage still valid + validDbCoverageNames.add(dbCov.getName()); + } + } + + // delete grids, models, coverages, and hdf5 for namesToDelete. + for (GridCoverage cov : coveragesToDelete) { + logger.info("GridCoverage " + cov.getName() + + " has changed. Deleting out of date data"); + if (!dao.deleteCoverageAssociatedData(cov, true)) { + logger.warn("Failed to delete GridCoverage " + cov.getName() + + ". Manual intervention required."); + } else { + logger.info("GridCoverage successfully deleted"); + } + } + + // remove the valid db coverages from the map + fileCoverageMap.keySet().removeAll(validDbCoverageNames); + + // add new grids in bulk + for (GridCoverage cov : fileCoverageMap.values()) { + try { + putGrid(cov, true, false); + } catch (Exception e) { + logger.error( + "Failed to initialize grid definition " + cov.getName(), + e); + } + } + + // bulk persist the spatial maps + if (spatialMap.size() > 0) { + dao.persistAll(spatialMap.values()); + } + + for (GridCoverage cov : baseCoverages) { + try { + putGrid(cov, false, false); + } catch (Exception e) { + logger.error( + "Failed to initialize grid definition " + cov.getName(), + e); + } + } + } + + /** + * A non subGridd definition has been added, deleted, or changed. + * Changed/delete both delete all records, models, and coverage defintion. + * Then Change/Add put in a new coverage definition, and also delete any + * data associated with base model definition. + * + * @param dao + * @param currentFdl + */ + private void processSubGrids(GridCoverageDao dao, FileDataList currentFdl) { + List oldSubGridCoverages = dao.loadSubGrids(); + Map fileSubGridCoverageMap = loadSubGridDefinitionsFromDisk(currentFdl); + + // update needs to delete all hdf5 same as delete, so update is + // a delete and then an add to simplify logic and handle primary + // key changes. + List coveragesToDelete = new LinkedList(); + HashSet validDbCoverageNames = new HashSet( + (int) (oldSubGridCoverages.size() * 1.25) + 1); + + Iterator iter = oldSubGridCoverages.iterator(); + while (iter.hasNext()) { + GridCoverage dbCov = iter.next(); + GridCoverage fileCoverage = fileSubGridCoverageMap.get(dbCov + .getName()); + if (!dbCov.equals(fileCoverage)) { + // coverage not in flat file or coverage has changed, + // delete coverage + coveragesToDelete.add(dbCov); + iter.remove(); + } else { + // current coverage still valid + validDbCoverageNames.add(dbCov.getName()); + } + } + + // delete grids, models, coverages, and hdf5 for namesToDelete. + for (GridCoverage cov : coveragesToDelete) { + logger.info("Model " + + cov.getSubGridModel() + + " has changed subGrid definition, deleting out of date data"); + if (!dao.deleteCoverageAssociatedData(cov, true)) { + logger.warn("Failed to delete GridCoverage " + cov.getName() + + ". Manual intervention required."); + } else { + logger.info("GridModel successfully deleted"); + } + } + + // remove the valid db coverages from the map + fileSubGridCoverageMap.keySet().removeAll(validDbCoverageNames); + + // need to delete model information for new adds, as old grid may not + // have been subgridded + GribModelDao modelDao = new GribModelDao(); + for (GridCoverage cov : fileSubGridCoverageMap.values()) { + logger.info("Model " + + cov.getSubGridModel() + + " has changed subGrid definition, deleting out of date data"); + // look up parent + if (modelDao.deleteModelAndAssociatedData(cov.getSubGridModel()) < 0) { + logger.warn("Failed to delete SubGrid Model " + + cov.getSubGridModel() + + ". Manual intervention required."); + } else { + logger.info("GridModel successfully deleted"); + } + } + + // add new grids, persisting individually + for (GridCoverage cov : fileSubGridCoverageMap.values()) { + try { + putGrid(cov, true, true); + subGridCoverageMap.put(cov.getSubGridModel(), cov.getId()); + } catch (Exception e) { + logger.error( + "Failed to initialize grid definition " + cov.getName(), + e); + } + } + + // put database grids into map + for (GridCoverage cov : oldSubGridCoverages) { + try { + putGrid(cov, true, true); + subGridCoverageMap.put(cov.getSubGridModel(), cov.getId()); + } catch (Exception e) { + logger.error( + "Failed to initialize grid definition " + cov.getName(), + e); + } + } + } + + private void processUnknownGrids(GridCoverageDao dao) { + List unknownGrids = dao.loadUnknownGrids(); + for (GridCoverage cov : unknownGrids) { + try { + GridCoverage dbCov = getGrid(cov); + if (!cov.getName().equals(dbCov.getName())) { + logger.info("Unknown grid " + cov.getName() + + " is now mapped by " + dbCov.getName() + + ". Deleting unknown grid"); + dao.deleteCoverageAssociatedData(cov, true); + } + } catch (Exception e) { + logger.error("Erro occurred scanning unknown grids", e); + } + } + } + + private Map loadSubGridDefinitionsFromDisk( + FileDataList currentFdl) { + GribModelLookup gribModelLUT = GribModelLookup.getInstance(); + List subGridDefs = currentFdl.getSubGridFileList(); + Map subGrids = null; + + if (subGridDefs != null && subGridDefs.size() > 0) { + subGrids = new HashMap(subGridDefs.size() * 3); + Coordinate wfoCenterPoint = null; + String wfo = SiteUtil.getSite(); + GetWfoCenterPoint centerPointRequest = new GetWfoCenterPoint(wfo); + try { + wfoCenterPoint = new GetWfoCenterHandler() + .handleRequest(centerPointRequest); + } catch (Exception e) { + logger.error( + "Failed to generate sub grid definitions. Unable to lookup WFO Center Point", + e); + return new HashMap(0); + } + + for (FileData fd : subGridDefs) { + try { + SubGridDef subGridDef = loadSubGridDef(fd.getFilePath()); + + if (subGridDef != null) { + String referenceModel = subGridDef.getReferenceModel(); + + GridCoverage gridCoverage = getGrid(referenceModel); + + if (gridCoverage != null) { + Coordinate wfoCenter = MapUtil + .latLonToGridCoordinate(wfoCenterPoint, + PixelOrientation.CENTER, + gridCoverage); + + double xCenterPoint = wfoCenter.x; + double yCenterPoint = wfoCenter.y; + + double xDistance = subGridDef.getNx() / 2; + double yDistance = subGridDef.getNy() / 2; + Coordinate lowerLeftPosition = new Coordinate( + xCenterPoint - xDistance, yCenterPoint + + yDistance); + Coordinate upperRightPosition = new Coordinate( + xCenterPoint + xDistance, yCenterPoint + - yDistance); + + lowerLeftPosition = MapUtil.gridCoordinateToLatLon( + lowerLeftPosition, PixelOrientation.CENTER, + gridCoverage); + upperRightPosition = MapUtil + .gridCoordinateToLatLon(upperRightPosition, + PixelOrientation.CENTER, + gridCoverage); + + subGridDef.setLowerLeftLon(lowerLeftPosition.x); + subGridDef.setLowerLeftLat(lowerLeftPosition.y); + subGridDef.setUpperRightLon(upperRightPosition.x); + subGridDef.setUpperRightLat(upperRightPosition.y); + + // verify numbers in -180 -> 180 range + subGridDef.setLowerLeftLon(MapUtil + .correctLon(subGridDef.getLowerLeftLon())); + subGridDef.setUpperRightLon(MapUtil + .correctLon(subGridDef.getUpperRightLon())); + + // do a reverse lookup of the model name to get its + // associated grid id + + for (String modelName : subGridDef.getModelNames()) { + GridModel model = gribModelLUT + .getModelByName(modelName); + if (model != null) { + GridCoverage baseCoverage = spatialNameMap + .get(model.getGrid().toString()); + + if (baseCoverage != null) { + SubGrid subGrid = new SubGrid(); + subGrid.setModelName(modelName); + GridCoverage subGridCoverage = baseCoverage + .trim(subGridDef, subGrid); + if (subGridCoverage != null) { + subGrids.put( + subGridCoverage.getName(), + subGridCoverage); + definedSubGridMap.put(modelName, + subGrid); + } + } + } + } + } else { + logger.error("Failed to generate sub grid for " + + fd.getFilePath() + + ". Unable to determine coverage for referenceModel [" + + referenceModel + "]"); + } + } + } catch (Exception e) { + // Log error but do not throw exception + logger.error( + "Failed processing sub grid file: " + + fd.getFilePath(), e); + } + } + } else { + subGrids = new HashMap(0); + } + + return subGrids; + } + + /** + * Loads and validates subGridDef pointed to by filePath. If definition + * empty/invalid returns null. + * + * @param filePath + * @return + */ + private SubGridDef loadSubGridDef(String filePath) { + SubGridDef rval = null; + File f = new File(filePath); + + if (f.length() > 0) { + try { + rval = (SubGridDef) SerializationUtil + .jaxbUnmarshalFromXmlFile(f); + if (rval.getReferenceModel() == null + || rval.getModelNames() == null + || rval.getModelNames().size() == 0) { + // sub grid didn't have required definitions + rval = null; + } + } catch (SerializationException e) { + logger.error("Failed reading sub grid file: " + filePath, e); + } + } + + return rval; + } + + private static boolean isDefintionChanged(FileDataList previousFdl, + FileDataList currentFdl) { + boolean rval = true; + if (currentFdl != null) { + rval = !currentFdl.equals(previousFdl); + } else { + rval = previousFdl != null; + } + + return rval; + } + + private FileDataList generateFileDataList() { + /* + * Retrieve the list of files from the localization service + */ + IPathManager pm = PathManagerFactory.getPathManager(); + FileDataList fileList = new FileDataList(); + LocalizationContext[] contexts = pm + .getLocalSearchHierarchy(LocalizationType.EDEX_STATIC); + fileList.addCoverageFiles(pm.listFiles(contexts, "/grib/grids", + new String[] { "xml" }, true, true)); + fileList.addSubGridFiles(pm.listFiles(contexts, "/grib/subgrids", + new String[] { "xml" }, true, true)); + + return fileList; + } + + private FileDataList getPreviousFileDataList() { + IPathManager pm = PathManagerFactory.getPathManager(); + File previousFileData = pm.getFile(pm.getContext( + LocalizationType.EDEX_STATIC, LocalizationLevel.CONFIGURED), + "/grib/gridDefFileListing.xml"); + FileDataList rval = null; + + if (previousFileData.exists() && previousFileData.length() > 0) { + try { + Object obj = SerializationUtil + .jaxbUnmarshalFromXmlFile(previousFileData); + if (obj instanceof FileDataList) { + rval = (FileDataList) obj; + } else { + logger.error("Error occurred deserializing " + + previousFileData.getAbsolutePath() + + ", expected type " + FileDataList.class + + " received " + obj.getClass()); + } + } catch (Exception e) { + logger.error( + "Error occurred deserializing " + + previousFileData.getAbsolutePath(), e); + } + } + return rval; + } + + private Map loadGridDefinitionsFromDisk( + FileDataList currentFdl) { + List coverageFiles = currentFdl.getCoverageFileList(); + Map fileCoverageMap = new HashMap( + (int) (coverageFiles.size() * 1.25) + 1); + + /* + * Iterate over file list. Unmarshal to GridCoverage object + */ + for (FileData fd : coverageFiles) { + try { + GridCoverage grid = (GridCoverage) SerializationUtil + .jaxbUnmarshalFromXmlFile(fd.getFilePath()); + GridCoverage previousGrid = fileCoverageMap.put(grid.getName(), + grid); + if (previousGrid != null) { + for (FileData fd2 : coverageFiles) { + GridCoverage grid2 = (GridCoverage) SerializationUtil + .jaxbUnmarshalFromXmlFile(fd2.getFilePath()); + if (grid.getName().equals(grid2.getName())) { + logger.error("Grid " + grid.getName() + + " has already been defined. " + + fd.getFilePath() + " and " + + fd2.getFilePath() + + " have same name. Using " + + fd2.getFilePath()); + break; + } + } + } + } catch (Exception e) { + // Log error but do not throw exception + logger.error( + "Unable to read default grids file: " + + fd.getFilePath(), e); + } + } + + return fileCoverageMap; + } + + private void saveFileDataList(FileDataList fdl) { + try { + IPathManager pm = PathManagerFactory.getPathManager(); + LocalizationFile lf = pm.getLocalizationFile( + pm.getContext(LocalizationType.EDEX_STATIC, + LocalizationLevel.CONFIGURED), + "/grib/gridDefFileListing.xml"); + SerializationUtil.jaxbMarshalToXmlFile(fdl, lf.getFile() + .getAbsolutePath()); + lf.save(); + } catch (Exception e) { + logger.error( + "Failed to save coverage file data list, coverages may be reloaded on next restart", + e); + } + } + + public static void reinitialize() { + GribSpatialCache newInstance = new GribSpatialCache(); + instance = newInstance; + } +} diff --git a/edexOsgi/com.raytheon.edex.plugin.grib/utility/edex_static/base/grib/subgrids/ruc2Clip.xml b/edexOsgi/com.raytheon.edex.plugin.grib/utility/edex_static/base/grib/subgrids/ruc2Clip.xml deleted file mode 100644 index df965cb6c6..0000000000 --- a/edexOsgi/com.raytheon.edex.plugin.grib/utility/edex_static/base/grib/subgrids/ruc2Clip.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - RUC236 - RUC236 - 58 - 58 - \ No newline at end of file diff --git a/edexOsgi/com.raytheon.edex.plugin.sfcobs/src/com/raytheon/edex/plugin/sfcobs/decoder/synoptic/SHIPSynopticDecoder.java b/edexOsgi/com.raytheon.edex.plugin.sfcobs/src/com/raytheon/edex/plugin/sfcobs/decoder/synoptic/SHIPSynopticDecoder.java index f50f7a06c9..9c57b3c8a6 100644 --- a/edexOsgi/com.raytheon.edex.plugin.sfcobs/src/com/raytheon/edex/plugin/sfcobs/decoder/synoptic/SHIPSynopticDecoder.java +++ b/edexOsgi/com.raytheon.edex.plugin.sfcobs/src/com/raytheon/edex/plugin/sfcobs/decoder/synoptic/SHIPSynopticDecoder.java @@ -47,6 +47,7 @@ import com.raytheon.uf.edex.decodertools.core.IDecoderConstants; * 20070928 391 jkorman Initial Coding. * 20080106 391 jkorman Corrected ship longitude decode. * 20080108 721 jkorman Added buoy id query. + * 20120619 DR 14015 mporricelli Added elevation for fixed buoys * * * @author jkorman @@ -60,6 +61,8 @@ public class SHIPSynopticDecoder extends AbstractSynopticDecoder { protected Double shipLongitude = null; + protected Integer shipElev = null; + protected Integer shipQuadrant = null; protected boolean isFixedBuoy = false; @@ -88,6 +91,7 @@ public class SHIPSynopticDecoder extends AbstractSynopticDecoder { isValid = reportPrefix.equals(element); Double buoyLat = null; Double buoyLon = null; + Integer buoyElev = null; isFixedBuoy = false; if (isValid) { reportParser.next(); @@ -113,6 +117,7 @@ public class SHIPSynopticDecoder extends AbstractSynopticDecoder { isFixedBuoy = true; buoyLat = DecoderTools.getCoordinateLatitude(staInfo.getStationGeom().getCoordinate()); buoyLon = DecoderTools.getCoordinateLongitude(staInfo.getStationGeom().getCoordinate()); + buoyElev = staInfo.getElevation(); } } reportParser.next(); @@ -157,6 +162,7 @@ public class SHIPSynopticDecoder extends AbstractSynopticDecoder { shipLatitude = buoyLat; shipLongitude = buoyLon; + shipElev = buoyElev; if ((shipLatitude == null) || (shipLongitude == null)) { clearSectionDecoders(); logger.error("Bad Geometry for " + getReportIdentifier()); @@ -198,7 +204,7 @@ public class SHIPSynopticDecoder extends AbstractSynopticDecoder { SurfaceObsLocation loc = new SurfaceObsLocation( getReportIdentifier()); loc.assignLocation(shipLatitude, shipLongitude); - loc.setElevation(0); + loc.setElevation(shipElev); loc.setLocationDefined(Boolean.FALSE); report.setLocation(loc); } diff --git a/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/SHEFParser.java b/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/SHEFParser.java index b72739abde..a707797ac8 100644 --- a/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/SHEFParser.java +++ b/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/SHEFParser.java @@ -2599,16 +2599,13 @@ public class SHEFParser { if(TokenType.COMMA.equals(last) && currToken.startsWith(" ")) { tokens.add(new ParserToken(" ", TokenType.SPACE)); } - if (TokenType.UNKNOWN.equals(t.getType())) { + if (TokenType.UNKNOWN.equals(t.getType()) || + TokenType.SPACEINMIDDLE.equals(t.getType())) { // check possible failures - if(TokenType.UNKNOWN.equals(t.getType())) { List subList = subTokenize(currToken); if (subList != null) { tokens.addAll(subList); } - } else { - tokens.add(t); - } } else { tokens.add(t); } diff --git a/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/database/PostShef.java b/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/database/PostShef.java index 2c46059198..47d9f14716 100644 --- a/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/database/PostShef.java +++ b/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/database/PostShef.java @@ -751,16 +751,16 @@ public class PostShef { .format("Posting data [%s] for LID [%s] to pairedValue table", dataValue, locId)); } - } else { + } else { PostTables.postPeData(shefRecord, data, locId, - dataValue, dataQualifier, qualityCode, + data.getStringValue(), dataQualifier, qualityCode, prodId, prodTime, shefPostDuplicateDef, ingestSwitch, stats, validTime, postDate, dataType); if (dataLog) { log.info(String .format("Posting data [%s] for LID [%s] for PE [%s]", - dataValue, locId, data + data.getStringValue(), locId, data .getPhysicalElement() .getCode())); } diff --git a/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/database/PostTables.java b/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/database/PostTables.java index 1e84b133ea..c7efcdf5a8 100644 --- a/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/database/PostTables.java +++ b/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/database/PostTables.java @@ -1056,7 +1056,7 @@ public class PostTables { + "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)}"); cs.setString(1, locId); cs.setString(2, shefData.getPhysicalElement().getCode()); - cs.setInt(3, shefData.getDuration().getValue()); + cs.setInt(3, shefData.getDurationValue()); cs.setString(4, shefData.getTypeSource().getCode()); cs.setString(5, shefData.getExtremum().getCode()); cs.setTimestamp(6, new Timestamp(shefData.getObservationTimeObj() @@ -1181,7 +1181,7 @@ public class PostTables { + "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)}"); cs.setString(1, locId); cs.setString(2, shefData.getPhysicalElement().getCode()); - cs.setInt(3, shefData.getDuration().getValue()); + cs.setInt(3, shefData.getDurationValue()); cs.setString(4, shefData.getTypeSource().getCode()); cs.setString(5, shefData.getExtremum().getCode()); cs.setTimestamp(6, new java.sql.Timestamp(shefData diff --git a/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/util/ParserToken.java b/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/util/ParserToken.java index ec906352c7..267fadee53 100644 --- a/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/util/ParserToken.java +++ b/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/util/ParserToken.java @@ -709,7 +709,7 @@ public class ParserToken { if(!isAllDigits(ss)) { error = SHEFErrorCodes.LOG_028; } else { - if(ss.length() > 2) { + if(ss.length() > 3) { error = SHEFErrorCodes.LOG_103; } } diff --git a/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/util/TokenType.java b/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/util/TokenType.java index fe8703dc45..032e9dc1cb 100644 --- a/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/util/TokenType.java +++ b/edexOsgi/com.raytheon.edex.plugin.shef/src/com/raytheon/edex/plugin/shef/util/TokenType.java @@ -43,6 +43,7 @@ import java.util.regex.Pattern; public enum TokenType { SLASH("/"), + SPACEINMIDDLE("[^ \t].*[ \t][ \t]*.*[^ \t]"), SPACE(" "), TAB("\t"), COMMA(","), diff --git a/edexOsgi/com.raytheon.edex.plugin.text/src/com/raytheon/edex/plugin/text/dao/TextDao.java b/edexOsgi/com.raytheon.edex.plugin.text/src/com/raytheon/edex/plugin/text/dao/TextDao.java index 069873d95d..bfe2311539 100644 --- a/edexOsgi/com.raytheon.edex.plugin.text/src/com/raytheon/edex/plugin/text/dao/TextDao.java +++ b/edexOsgi/com.raytheon.edex.plugin.text/src/com/raytheon/edex/plugin/text/dao/TextDao.java @@ -1,72 +1,72 @@ -/** - * 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. - **/ -package com.raytheon.edex.plugin.text.dao; - -import java.util.Calendar; - -import com.raytheon.edex.db.dao.DefaultPluginDao; -import com.raytheon.edex.textdb.dbapi.impl.TextDB; -import com.raytheon.uf.common.dataplugin.PluginException; -import com.raytheon.uf.edex.database.purge.PurgeLogger; - -/** - * DAO for text products - * - *
- * 
- * SOFTWARE HISTORY
- * 
- * Date       	Ticket#		Engineer	Description
- * ------------	----------	-----------	--------------------------
- * Jul 10, 2009 2191        rjpeter     Update retention time handling.
- * Aug 18, 2009 2191        rjpeter     Changed to version purging.
- * 
- * - * @author - * @version 1 - */ -public class TextDao extends DefaultPluginDao { - - public TextDao(String pluginName) throws PluginException { - super(pluginName); - } - - @Override - public void purgeAllData() { - logger.warn("purgeAllPluginData not implemented for text. No data will be purged."); - } - - protected void loadScripts() throws PluginException { - // no op - } - - public void purgeExpiredData() throws PluginException { - int deletedRecords = 0; - - // only do full purge every few hours since incremental purge runs every - // minute - if (Calendar.getInstance().get(Calendar.HOUR_OF_DAY) % 3 == 0) { - TextDB.purgeStdTextProducts(); - } - - PurgeLogger.logInfo("Purged " + deletedRecords + " items total.", - "text"); - } -} +/** + * 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. + **/ +package com.raytheon.edex.plugin.text.dao; + +import java.util.Calendar; + +import com.raytheon.edex.db.dao.DefaultPluginDao; +import com.raytheon.edex.textdb.dbapi.impl.TextDB; +import com.raytheon.uf.common.dataplugin.PluginException; +import com.raytheon.uf.edex.database.purge.PurgeLogger; + +/** + * DAO for text products + * + *
+ * 
+ * SOFTWARE HISTORY
+ * 
+ * Date       	Ticket#		Engineer	Description
+ * ------------	----------	-----------	--------------------------
+ * Jul 10, 2009 2191        rjpeter     Update retention time handling.
+ * Aug 18, 2009 2191        rjpeter     Changed to version purging.
+ * 
+ * + * @author + * @version 1 + */ +public class TextDao extends DefaultPluginDao { + + public TextDao(String pluginName) throws PluginException { + super(pluginName); + } + + @Override + public void purgeAllData() { + logger.warn("purgeAllPluginData not implemented for text. No data will be purged."); + } + + protected void loadScripts() throws PluginException { + // no op + } + + public void purgeExpiredData() throws PluginException { + int deletedRecords = 0; + + // only do full purge every few hours since incremental purge runs every + // minute + if (Calendar.getInstance().get(Calendar.HOUR_OF_DAY) % 3 == 0) { + TextDB.purgeStdTextProducts(); + } + + PurgeLogger.logInfo("Purged " + deletedRecords + " items total.", + "text"); + } +} diff --git a/edexOsgi/com.raytheon.edex.plugin.text/src/com/raytheon/edex/plugin/text/impl/TextSeparatorFactory.java b/edexOsgi/com.raytheon.edex.plugin.text/src/com/raytheon/edex/plugin/text/impl/TextSeparatorFactory.java index ecc16f93f3..446d8d820f 100644 --- a/edexOsgi/com.raytheon.edex.plugin.text/src/com/raytheon/edex/plugin/text/impl/TextSeparatorFactory.java +++ b/edexOsgi/com.raytheon.edex.plugin.text/src/com/raytheon/edex/plugin/text/impl/TextSeparatorFactory.java @@ -45,6 +45,7 @@ import com.raytheon.uf.edex.wmo.message.WMOHeader; * ------------ ---------- ----------- -------------------------- * Aug 12, 2008 jkorman Initial creation * Jul 10, 2009 2191 rjpeter Finished implementation. + * 06/29/2012 15154 D. Friedman Fix detection of TAF collectives. * * * @author jkorman @@ -62,7 +63,7 @@ public class TextSeparatorFactory { private static final TextDBStaticData staticData = TextDBStaticData .instance(siteId); - private static Pattern TAF_PTRN = Pattern.compile("[\n\r]?TAF"); + private static Pattern TAF_PTRN = Pattern.compile("^TAF\\s*$"); /** * @@ -186,16 +187,12 @@ public class TextSeparatorFactory { msgType = WMOMessageType.MSG_DISCARD; } - Matcher m = TAF_PTRN.matcher(startOfMessage); - if (m.find()) { - msgType = WMOMessageType.STD_COLLECTIVE; - } - if (msgType == null) { String stdAfosId = null; - int firstLineLen = WMOMessageSeparator.getLine(rawData, - startIndex).length(); + String firstLine = WMOMessageSeparator.getLine(rawData, + startIndex); + int firstLineLen = firstLine.length(); if (staticData.matchStdCollective(dataDes) != null) { msgType = WMOMessageType.STD_COLLECTIVE; } else if (staticData.matchUACollective(dataDes) != null) { @@ -208,7 +205,8 @@ public class TextSeparatorFactory { if (msgType == null) { if (!hdr.startsWith("SXUS70") && !hdr.startsWith("FRUS45") - && firstLineLen > 6 + && (firstLineLen > 6 || + TAF_PTRN.matcher(firstLine).matches()) && (hdr.startsWith("SA") || hdr.startsWith("SP") || hdr.startsWith("FR") || hdr .startsWith("FT"))) { diff --git a/edexOsgi/com.raytheon.edex.uengine/src/com/raytheon/edex/uengine/runners/LdadMicroEngine.java b/edexOsgi/com.raytheon.edex.uengine/src/com/raytheon/edex/uengine/runners/LdadMicroEngine.java index 95a2faf667..da10bf8210 100644 --- a/edexOsgi/com.raytheon.edex.uengine/src/com/raytheon/edex/uengine/runners/LdadMicroEngine.java +++ b/edexOsgi/com.raytheon.edex.uengine/src/com/raytheon/edex/uengine/runners/LdadMicroEngine.java @@ -28,6 +28,7 @@ import java.util.Map.Entry; import javax.xml.bind.annotation.adapters.HexBinaryAdapter; import com.raytheon.edex.uengine.exception.MicroEngineException; +import com.raytheon.uf.common.localization.PathManagerFactory; import com.raytheon.uf.common.message.Header; import com.raytheon.uf.common.message.Message; import com.raytheon.uf.common.message.Property; @@ -54,6 +55,7 @@ import com.raytheon.uf.edex.core.EDEXUtil; * 28May2011 8686 bkowal Replaced useless try ... catch block. * Added logic to utilize the trigger. * Sep 19, 2011 10955 rferrel Use RunProcess + * 05/25/2012 DR 15015 D. Friedman Use helper script to launch triggers. * * * @author mfegan @@ -62,6 +64,7 @@ import com.raytheon.uf.edex.core.EDEXUtil; public class LdadMicroEngine extends AMicroEngine { private static final String TEXT_DB_QUEUE = "textdbsrvinternal"; + private static final String SCRIPT_LAUNCHER_PATH = "util/scriptLauncher"; /** * Constructor. @@ -240,6 +243,9 @@ public class LdadMicroEngine extends AMicroEngine { for (Entry entry : env.entrySet()) { strEnv.add(entry.getKey() + "=" + entry.getValue()); } + String launcher = getScriptLauncher(); + if (launcher != null) + script = launcher + ' ' + script; // DR#10955 RunProcess.getRunProcess() .exec(script, strEnv.toArray(new String[] {})); @@ -272,5 +278,29 @@ public class LdadMicroEngine extends AMicroEngine { byte[] b = new HexBinaryAdapter().unmarshal(hexString); return new String(b); } + + /** + * Finds a helper script that should be used to launch triggers. The helper + * script terminates immediately so that resources can be freed even if the + * trigger takes a long time to run. + * + * @return The absolute path of the help script or null if not found. + */ + private String getScriptLauncher() { + File f = null; + try { + f = PathManagerFactory.getPathManager().getStaticFile(SCRIPT_LAUNCHER_PATH); + if (f != null) { + f.setExecutable(true); + return f.getAbsolutePath(); + } else { + logger.warn("Script launcher not found"); + return null; + } + } catch (Exception e) { + logger.error("Error finding script launcher", e); + return null; + } + } } diff --git a/edexOsgi/com.raytheon.edex.uengine/utility/edex_static/base/util/scriptLauncher b/edexOsgi/com.raytheon.edex.uengine/utility/edex_static/base/util/scriptLauncher new file mode 100644 index 0000000000..daf4358a26 --- /dev/null +++ b/edexOsgi/com.raytheon.edex.uengine/utility/edex_static/base/util/scriptLauncher @@ -0,0 +1,2 @@ +#!/bin/sh +exec "$@" >&/dev/null * * @author dhladky @@ -617,10 +617,10 @@ public class FFMPUtils { */ @SuppressWarnings("unchecked") public static ArrayList getCountyInfo(Long fips, String mode) { - + String ftxt = (fips>=10000 ? ""+fips : "0"+fips);// DR 15108: add a leading 0 to 4-digit FIPS. String sql1 = "SELECT county.gid from " + FFMPUtils.COUNTY_TABLE - + " WHERE county.fips = '" + fips + "'"; - + + " WHERE county.fips = '" + ftxt/*fips*/ + "'";// DR 15108: use the 5-digit FIPS string. + System.out.println("___FFMPUtils.getCountyInfo(): county FIPS: "+ftxt);//Not a debug statement but for Template generation. ISpatialQuery sq1 = null; ArrayList gids = new ArrayList(); diff --git a/edexOsgi/com.raytheon.uf.common.dataplugin.fog/src/com/raytheon/uf/common/dataplugin/fog/FogRecord.java b/edexOsgi/com.raytheon.uf.common.dataplugin.fog/src/com/raytheon/uf/common/dataplugin/fog/FogRecord.java index c542710196..f1e58691b0 100644 --- a/edexOsgi/com.raytheon.uf.common.dataplugin.fog/src/com/raytheon/uf/common/dataplugin/fog/FogRecord.java +++ b/edexOsgi/com.raytheon.uf.common.dataplugin.fog/src/com/raytheon/uf/common/dataplugin/fog/FogRecord.java @@ -435,7 +435,15 @@ public class FogRecord extends PersistablePluginDataObject implements return vis_array; } - /** + public GridGeometry2D getGridGeometry2D() { + return gridGeometry2D; + } + + public void setGridGeometry2D(GridGeometry2D gridGeometry2D) { + this.gridGeometry2D = gridGeometry2D; + } + + /** * Set the VIS pixel array * * @param data_array diff --git a/edexOsgi/com.raytheon.uf.common.geospatial/src/com/raytheon/uf/common/geospatial/MapUtil.java b/edexOsgi/com.raytheon.uf.common.geospatial/src/com/raytheon/uf/common/geospatial/MapUtil.java index 985665a8a4..3975be241b 100644 --- a/edexOsgi/com.raytheon.uf.common.geospatial/src/com/raytheon/uf/common/geospatial/MapUtil.java +++ b/edexOsgi/com.raytheon.uf.common.geospatial/src/com/raytheon/uf/common/geospatial/MapUtil.java @@ -94,6 +94,7 @@ import com.vividsolutions.jts.geom.Polygon; * ------------ ---------- ----------- -------------------------- * 05/16/2012 14993 D. Friedman Add oversampling option to * reprojectGeometry. + * 06/19/2012 14988 D. Friedman Make oversampling more like AWIPS 1 * * */ @@ -386,6 +387,7 @@ public class MapUtil { ReferencedEnvelope newEnv = new ReferencedEnvelope(JTS.getEnvelope2D( newTargetREnv.intersection(newSourceEnv), LATLON_PROJECTION), LATLON_PROJECTION); + ReferencedEnvelope newEnvInSourceProjection = newEnv.transform(sourceCRS, false, 500); newEnv = newEnv.transform(targetCRS, false, 500); // Calculate nx and ny, start with the number of original grid // points in the intersection and then adjust to the new aspect @@ -397,8 +399,16 @@ public class MapUtil { double count = intersectingEnv.getWidth() * intersectingEnv.getHeight(); int nx = (int) Math.sqrt(count / aspectRatio); int ny = (int) (nx * aspectRatio); - nx *= oversampleFactor; - ny *= oversampleFactor; + + if (oversampleFactor > 1) { + int inCount = sourceGeometry.getGridRange().getSpan(0) * + sourceGeometry.getGridRange().getSpan(1); + double outCount = inCount * newEnv.getArea() / + sourceEnv.getArea(); + outCount *= 4; + nx = (int) Math.sqrt(outCount / aspectRatio); + ny = (int) (nx * aspectRatio); + } if (addBorder) { newEnv.expandBy(newEnv.getWidth() / nx, newEnv.getHeight() / ny); diff --git a/edexOsgi/gov.noaa.nws.ost.edex.plugin.regionalsat/META-INF/services/com.raytheon.uf.common.serialization.ISerializableObject b/edexOsgi/com.raytheon.uf.common.tafqueue/com.raytheon.uf.common.tafqueue.ecl similarity index 100% rename from edexOsgi/gov.noaa.nws.ost.edex.plugin.regionalsat/META-INF/services/com.raytheon.uf.common.serialization.ISerializableObject rename to edexOsgi/com.raytheon.uf.common.tafqueue/com.raytheon.uf.common.tafqueue.ecl diff --git a/edexOsgi/com.raytheon.uf.edex.purgesrv/src/com/raytheon/uf/edex/purgesrv/PurgeDao.java b/edexOsgi/com.raytheon.uf.edex.purgesrv/src/com/raytheon/uf/edex/purgesrv/PurgeDao.java index 492c27e9c7..b619ccef61 100644 --- a/edexOsgi/com.raytheon.uf.edex.purgesrv/src/com/raytheon/uf/edex/purgesrv/PurgeDao.java +++ b/edexOsgi/com.raytheon.uf.edex.purgesrv/src/com/raytheon/uf/edex/purgesrv/PurgeDao.java @@ -1,282 +1,282 @@ -/** - * 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. - **/ -package com.raytheon.uf.edex.purgesrv; - -import java.sql.Timestamp; -import java.util.Calendar; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.TimeZone; - -import org.hibernate.Query; -import org.hibernate.Session; -import org.springframework.transaction.TransactionStatus; -import org.springframework.transaction.support.TransactionCallback; -import org.springframework.transaction.support.TransactionCallbackWithoutResult; - -import com.raytheon.uf.edex.database.dao.CoreDao; -import com.raytheon.uf.edex.database.dao.DaoConfig; - -/** - * - * Data access object for accessing purge job status objects - * - *
- * 
- * SOFTWARE HISTORY
- * 
- * Date         Ticket#    Engineer    Description
- * ------------ ---------- ----------- --------------------------
- * May 1, 2012  #470      bphillip     Initial creation
- * 
- * 
- * - * @author bphillip - * @version 1.0 - */ -public class PurgeDao extends CoreDao { - - /** - * Constructs a new purge data access object - */ - public PurgeDao() { - super(DaoConfig.forClass(PurgeJobStatus.class)); - } - - /** - * Gets the number of purge jobs currently running on the cluster. A job is - * considered running if the 'running' flag is set to true and the job has - * been started since validStartTime and has not met or exceeded the failed - * count. - * - * @param validStartTime - * @param failedCount - * @return The number of purge jobs currently running on the cluster - */ - public int getRunningClusterJobs(final Date validStartTime, - final int failedCount) { - final String query = "from " - + daoClass.getName() - + " obj where obj.running = true and obj.startTime > :startTime and obj.failedCount <= :failedCount"; - return (Integer) txTemplate.execute(new TransactionCallback() { - @Override - public Object doInTransaction(TransactionStatus status) { - Query hibQuery = getSession(false).createQuery(query); - hibQuery.setTimestamp("startTime", validStartTime); - hibQuery.setInteger("failedCount", failedCount); - List queryResult = hibQuery.list(); - if (queryResult == null) { - return 0; - } else { - return queryResult.size(); - } - } - }); - } - - /** - * Returns the jobs that have met or exceed the failed count. - * - * @param failedCount - * @return - */ - @SuppressWarnings("unchecked") - public List getFailedJobs(final int failedCount) { - final String query = "from " + daoClass.getName() - + " obj where obj.failedCount >= :failedCount"; - return (List) txTemplate - .execute(new TransactionCallback() { - @Override - public List doInTransaction( - TransactionStatus status) { - Query hibQuery = getSession(false).createQuery(query); - hibQuery.setInteger("failedCount", failedCount); - return hibQuery.list(); - } - }); - } - - @SuppressWarnings("unchecked") - public List getTimedOutJobs(final Date validStartTime) { - final String query = "from " - + daoClass.getName() - + " obj where obj.running = true and obj.startTime <= :startTime"; - return (List) txTemplate - .execute(new TransactionCallback() { - @Override - public List doInTransaction( - TransactionStatus status) { - Query hibQuery = getSession(false).createQuery(query); - hibQuery.setTimestamp("startTime", validStartTime); - return hibQuery.list(); - } - }); - } - - @SuppressWarnings("unchecked") - public Map> getRunningServerJobs() { - final String query = "from " - + daoClass.getName() - + " obj where obj.running = true and obj.timedOut = false and obj.failed = false and obj.id.server=':SERVER'"; - return (Map>) txTemplate - .execute(new TransactionCallback() { - @Override - public Map> doInTransaction( - TransactionStatus status) { - Map> serverMap = new HashMap>(); - Query serverQuery = getSession(false).createQuery( - "select distinct obj.id.server from " - + daoClass.getName() - + " obj order by obj.id.server asc"); - List result = serverQuery.list(); - for (String server : result) { - Query query2 = getSession(false).createQuery( - query.replace(":SERVER", server)); - serverMap.put(server, query2.list()); - } - return serverMap; - } - }); - } - - /** - * Gets the amount of time in milliseconds since the last purge of a given - * plugin - * - * @param plugin - * The plugin name - * @return Number of milliseconds since the purge job was run for the given - * plugin - */ - public long getTimeSinceLastPurge(String plugin) { - final String query = "select obj.startTime from " + daoClass.getName() - + " obj where obj.id.plugin='" + plugin + "'"; - return (Long) txTemplate.execute(new TransactionCallback() { - @Override - public Object doInTransaction(TransactionStatus status) { - Query hibQuery = getSession(false).createQuery(query); - Timestamp queryResult = (Timestamp) hibQuery.uniqueResult(); - if (queryResult == null) { - return -1; - } else { - return System.currentTimeMillis() - queryResult.getTime(); - } - } - }); - } - - /** - * Gets the purge job status for a plugin - * - * @param plugin - * The plugin to get the purge job status for - * @return The purge job statuses - */ - public PurgeJobStatus getJobForPlugin(String plugin) { - final String query = "from " + daoClass.getName() - + " obj where obj.id.plugin='" + plugin + "'"; - return (PurgeJobStatus) txTemplate.execute(new TransactionCallback() { - @Override - public PurgeJobStatus doInTransaction(TransactionStatus status) { - Query hibQuery = getSession(false).createQuery(query); - PurgeJobStatus queryResult = (PurgeJobStatus) hibQuery - .uniqueResult(); - return queryResult; - } - }); - } - - /** - * Sets a purge job to running status and sets the startTime to current - * time. If was previously running, will increment the failed count. - * - * @param plugin - * The plugin row to update - */ - public void startJob(final String plugin) { - final String query = "from " + daoClass.getName() - + " obj where obj.id.plugin='" + plugin + "'"; - txTemplate.execute(new TransactionCallback() { - @Override - public PurgeJobStatus doInTransaction(TransactionStatus status) { - Session sess = getSession(false); - Query hibQuery = sess.createQuery(query); - PurgeJobStatus queryResult = (PurgeJobStatus) hibQuery - .uniqueResult(); - if (queryResult == null) { - queryResult = new PurgeJobStatus(); - queryResult.setFailedCount(0); - queryResult.setPlugin(plugin); - queryResult.setRunning(false); - sess.save(queryResult); - } - - if (queryResult.isRunning()) { - // query was previously running, update failed count - queryResult.incrementFailedCount(); - } - - queryResult.setStartTime(Calendar.getInstance( - TimeZone.getTimeZone("GMT")).getTime()); - queryResult.setRunning(true); - sess.update(queryResult); - return queryResult; - } - }); - } - - /** - * Retrieves the plugins order by startTime. - * - * @param latestStartTime - * @param failedCount - * @return - */ - @SuppressWarnings("unchecked") - public List getPluginsByPurgeTime() { - final String query = "select obj.id.plugin from " + daoClass.getName() - + " obj order by obj.startTime asc, obj.plugin asc"; - return (List) txTemplate.execute(new TransactionCallback() { - @Override - public List doInTransaction(TransactionStatus status) { - Query hibQuery = getSession(false).createQuery(query); - List result = (List) hibQuery.list(); - return result; - } - }); - } - - /** - * Updates a purge job status object - * - * @param jobStatus - * The object to update - */ - public void update(final PurgeJobStatus jobStatus) { - txTemplate.execute(new TransactionCallbackWithoutResult() { - @Override - public void doInTransactionWithoutResult(TransactionStatus status) { - getHibernateTemplate().update(jobStatus); - } - }); - } -} +/** + * 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. + **/ +package com.raytheon.uf.edex.purgesrv; + +import java.sql.Timestamp; +import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.TimeZone; + +import org.hibernate.Query; +import org.hibernate.Session; +import org.springframework.transaction.TransactionStatus; +import org.springframework.transaction.support.TransactionCallback; +import org.springframework.transaction.support.TransactionCallbackWithoutResult; + +import com.raytheon.uf.edex.database.dao.CoreDao; +import com.raytheon.uf.edex.database.dao.DaoConfig; + +/** + * + * Data access object for accessing purge job status objects + * + *
+ * 
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    Engineer    Description
+ * ------------ ---------- ----------- --------------------------
+ * May 1, 2012  #470      bphillip     Initial creation
+ * 
+ * 
+ * + * @author bphillip + * @version 1.0 + */ +public class PurgeDao extends CoreDao { + + /** + * Constructs a new purge data access object + */ + public PurgeDao() { + super(DaoConfig.forClass(PurgeJobStatus.class)); + } + + /** + * Gets the number of purge jobs currently running on the cluster. A job is + * considered running if the 'running' flag is set to true and the job has + * been started since validStartTime and has not met or exceeded the failed + * count. + * + * @param validStartTime + * @param failedCount + * @return The number of purge jobs currently running on the cluster + */ + public int getRunningClusterJobs(final Date validStartTime, + final int failedCount) { + final String query = "from " + + daoClass.getName() + + " obj where obj.running = true and obj.startTime > :startTime and obj.failedCount <= :failedCount"; + return (Integer) txTemplate.execute(new TransactionCallback() { + @Override + public Object doInTransaction(TransactionStatus status) { + Query hibQuery = getSession(false).createQuery(query); + hibQuery.setTimestamp("startTime", validStartTime); + hibQuery.setInteger("failedCount", failedCount); + List queryResult = hibQuery.list(); + if (queryResult == null) { + return 0; + } else { + return queryResult.size(); + } + } + }); + } + + /** + * Returns the jobs that have met or exceed the failed count. + * + * @param failedCount + * @return + */ + @SuppressWarnings("unchecked") + public List getFailedJobs(final int failedCount) { + final String query = "from " + daoClass.getName() + + " obj where obj.failedCount >= :failedCount"; + return (List) txTemplate + .execute(new TransactionCallback() { + @Override + public List doInTransaction( + TransactionStatus status) { + Query hibQuery = getSession(false).createQuery(query); + hibQuery.setInteger("failedCount", failedCount); + return hibQuery.list(); + } + }); + } + + @SuppressWarnings("unchecked") + public List getTimedOutJobs(final Date validStartTime) { + final String query = "from " + + daoClass.getName() + + " obj where obj.running = true and obj.startTime <= :startTime"; + return (List) txTemplate + .execute(new TransactionCallback() { + @Override + public List doInTransaction( + TransactionStatus status) { + Query hibQuery = getSession(false).createQuery(query); + hibQuery.setTimestamp("startTime", validStartTime); + return hibQuery.list(); + } + }); + } + + @SuppressWarnings("unchecked") + public Map> getRunningServerJobs() { + final String query = "from " + + daoClass.getName() + + " obj where obj.running = true and obj.timedOut = false and obj.failed = false and obj.id.server=':SERVER'"; + return (Map>) txTemplate + .execute(new TransactionCallback() { + @Override + public Map> doInTransaction( + TransactionStatus status) { + Map> serverMap = new HashMap>(); + Query serverQuery = getSession(false).createQuery( + "select distinct obj.id.server from " + + daoClass.getName() + + " obj order by obj.id.server asc"); + List result = serverQuery.list(); + for (String server : result) { + Query query2 = getSession(false).createQuery( + query.replace(":SERVER", server)); + serverMap.put(server, query2.list()); + } + return serverMap; + } + }); + } + + /** + * Gets the amount of time in milliseconds since the last purge of a given + * plugin + * + * @param plugin + * The plugin name + * @return Number of milliseconds since the purge job was run for the given + * plugin + */ + public long getTimeSinceLastPurge(String plugin) { + final String query = "select obj.startTime from " + daoClass.getName() + + " obj where obj.id.plugin='" + plugin + "'"; + return (Long) txTemplate.execute(new TransactionCallback() { + @Override + public Object doInTransaction(TransactionStatus status) { + Query hibQuery = getSession(false).createQuery(query); + Timestamp queryResult = (Timestamp) hibQuery.uniqueResult(); + if (queryResult == null) { + return -1; + } else { + return System.currentTimeMillis() - queryResult.getTime(); + } + } + }); + } + + /** + * Gets the purge job status for a plugin + * + * @param plugin + * The plugin to get the purge job status for + * @return The purge job statuses + */ + public PurgeJobStatus getJobForPlugin(String plugin) { + final String query = "from " + daoClass.getName() + + " obj where obj.id.plugin='" + plugin + "'"; + return (PurgeJobStatus) txTemplate.execute(new TransactionCallback() { + @Override + public PurgeJobStatus doInTransaction(TransactionStatus status) { + Query hibQuery = getSession(false).createQuery(query); + PurgeJobStatus queryResult = (PurgeJobStatus) hibQuery + .uniqueResult(); + return queryResult; + } + }); + } + + /** + * Sets a purge job to running status and sets the startTime to current + * time. If was previously running, will increment the failed count. + * + * @param plugin + * The plugin row to update + */ + public void startJob(final String plugin) { + final String query = "from " + daoClass.getName() + + " obj where obj.id.plugin='" + plugin + "'"; + txTemplate.execute(new TransactionCallback() { + @Override + public PurgeJobStatus doInTransaction(TransactionStatus status) { + Session sess = getSession(false); + Query hibQuery = sess.createQuery(query); + PurgeJobStatus queryResult = (PurgeJobStatus) hibQuery + .uniqueResult(); + if (queryResult == null) { + queryResult = new PurgeJobStatus(); + queryResult.setFailedCount(0); + queryResult.setPlugin(plugin); + queryResult.setRunning(false); + sess.save(queryResult); + } + + if (queryResult.isRunning()) { + // query was previously running, update failed count + queryResult.incrementFailedCount(); + } + + queryResult.setStartTime(Calendar.getInstance( + TimeZone.getTimeZone("GMT")).getTime()); + queryResult.setRunning(true); + sess.update(queryResult); + return queryResult; + } + }); + } + + /** + * Retrieves the plugins order by startTime. + * + * @param latestStartTime + * @param failedCount + * @return + */ + @SuppressWarnings("unchecked") + public List getPluginsByPurgeTime() { + final String query = "select obj.id.plugin from " + daoClass.getName() + + " obj order by obj.startTime asc, obj.plugin asc"; + return (List) txTemplate.execute(new TransactionCallback() { + @Override + public List doInTransaction(TransactionStatus status) { + Query hibQuery = getSession(false).createQuery(query); + List result = (List) hibQuery.list(); + return result; + } + }); + } + + /** + * Updates a purge job status object + * + * @param jobStatus + * The object to update + */ + public void update(final PurgeJobStatus jobStatus) { + txTemplate.execute(new TransactionCallbackWithoutResult() { + @Override + public void doInTransactionWithoutResult(TransactionStatus status) { + getHibernateTemplate().update(jobStatus); + } + }); + } +} diff --git a/edexOsgi/com.raytheon.uf.edex.purgesrv/src/com/raytheon/uf/edex/purgesrv/PurgeJob.java b/edexOsgi/com.raytheon.uf.edex.purgesrv/src/com/raytheon/uf/edex/purgesrv/PurgeJob.java index d71ca475d1..38009b518d 100644 --- a/edexOsgi/com.raytheon.uf.edex.purgesrv/src/com/raytheon/uf/edex/purgesrv/PurgeJob.java +++ b/edexOsgi/com.raytheon.uf.edex.purgesrv/src/com/raytheon/uf/edex/purgesrv/PurgeJob.java @@ -1,302 +1,312 @@ -/** - * 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. - **/ -package com.raytheon.uf.edex.purgesrv; - -import java.lang.reflect.Method; -import java.sql.SQLException; -import java.util.Calendar; -import java.util.Date; -import java.util.Map; -import java.util.TimeZone; - -import com.raytheon.uf.edex.database.cluster.ClusterLockUtils; -import com.raytheon.uf.edex.database.cluster.ClusterTask; -import com.raytheon.uf.edex.database.plugin.PluginDao; -import com.raytheon.uf.edex.database.plugin.PluginFactory; -import com.raytheon.uf.edex.database.purge.PurgeLogger; - -/** - * - * This class encapsulates the purge activity for a plugin into a cluster task. - * - *
- * 
- * SOFTWARE HISTORY
- * 
- * Date         Ticket#    Engineer    Description
- * ------------ ---------- ----------- --------------------------
- * Apr 19, 2012 #470       bphillip     Initial creation
- * 
- * 
- * - * @author bphillip - * @version 1.0 - */ -public class PurgeJob extends Thread { - - /** The type of purge */ - public enum PURGE_JOB_TYPE { - PURGE_ALL, PURGE_EXPIRED - } - - private long startTime; - - /** The cluster task name to use for purge jobs */ - public static final String TASK_NAME = "Purge Plugin Data"; - - /** The plugin associated with this purge job */ - private String pluginName; - - /** The type of purge job being executed */ - private PURGE_JOB_TYPE purgeType; - - /** Last time job has printed a timed out message */ - private long lastTimeOutMessage = 0; - - /** - * Creates a new Purge job for the specified plugin. - * - * @param pluginName - * The plugin to be purged - * @param purgeType - * The type of purge to be executed - */ - public PurgeJob(String pluginName, PURGE_JOB_TYPE purgeType) { - // Give the thread a name - this.setName("Purge-" + pluginName.toUpperCase() + "-Thread"); - this.pluginName = pluginName; - this.purgeType = purgeType; - } - - public void run() { - - // Flag used to track if this job has failed - boolean failed = false; - startTime = System.currentTimeMillis(); - PurgeLogger.logInfo("Purging expired data...", pluginName); - PluginDao dao = null; - - try { - dao = PluginFactory.getInstance().getPluginDao(pluginName); - if (dao.getDaoClass() != null) { - dao.purgeExpiredData(); - PurgeLogger.logInfo("Data successfully Purged!", pluginName); - } else { - Method m = dao.getClass().getMethod("purgeExpiredData", - new Class[] {}); - if (m != null) { - if (m.getDeclaringClass().equals(PluginDao.class)) { - PurgeLogger - .logWarn( - "Unable to purge data. This plugin does not specify a record class and does not implement a custom purger.", - pluginName); - } else { - if (this.purgeType.equals(PURGE_JOB_TYPE.PURGE_EXPIRED)) { - dao.purgeExpiredData(); - } else { - dao.purgeAllData(); - } - PurgeLogger.logInfo("Data successfully Purged!", - pluginName); - } - } - } - } catch (Exception e) { - failed = true; - // keep getting next exceptions with sql exceptions to ensure - // we can see the underlying error - PurgeLogger - .logError("Error purging expired data!\n", pluginName, e); - Throwable t = e.getCause(); - while (t != null) { - if (t instanceof SQLException) { - SQLException se = ((SQLException) t).getNextException(); - PurgeLogger.logError("Next exception:", pluginName, se); - } - t = t.getCause(); - } - } finally { - ClusterTask purgeLock = PurgeManager.getInstance().getPurgeLock(); - try { - /* - * Update the status accordingly if the purge failed or - * succeeded - */ - PurgeDao purgeDao = new PurgeDao(); - PurgeJobStatus status = purgeDao - .getJobForPlugin(this.pluginName); - if (status == null) { - PurgeLogger.logError( - "Purge job completed but no status object found!", - this.pluginName); - } else { - if (failed) { - status.incrementFailedCount(); - if (status.getFailedCount() >= PurgeManager - .getInstance().getFatalFailureCount()) { - PurgeLogger - .logFatal( - "Purger for this plugin has reached or exceeded consecutive failure limit of " - + PurgeManager - .getInstance() - .getFatalFailureCount() - + ". Data will no longer being purged for this plugin.", - pluginName); - } else { - PurgeLogger.logError("Purge job has failed " - + status.getFailedCount() - + " consecutive times.", this.pluginName); - // Back the start time off by half an hour to try to - // purgin soon, don't want to start immediately so - // it doesn't ping pong between servers in a time - // out scenario - Date startTime = status.getStartTime(); - startTime.setTime(startTime.getTime() - (1800000)); - } - } else { - status.setFailedCount(0); - } - - /* - * This purger thread has exceeded the time out duration but - * finally finished. Output a message and update the status - */ - int deadPurgeJobAge = PurgeManager.getInstance() - .getDeadPurgeJobAge(); - Calendar purgeTimeOutLimit = Calendar.getInstance(); - purgeTimeOutLimit.setTimeZone(TimeZone.getTimeZone("GMT")); - purgeTimeOutLimit.add(Calendar.MINUTE, -deadPurgeJobAge); - if (startTime < purgeTimeOutLimit.getTimeInMillis()) { - PurgeLogger - .logInfo( - "Purge job has recovered from timed out state!!", - pluginName); - } - status.setRunning(false); - purgeDao.update(status); - /* - * Log execution times - */ - long executionTime = getAge(); - long execTimeInMinutes = executionTime / 60000; - if (execTimeInMinutes > 0) { - PurgeLogger.logInfo("Purge run time: " + executionTime - + " ms (" + execTimeInMinutes + " minutes)", - this.pluginName); - } else { - PurgeLogger.logInfo("Purge run time: " + executionTime - + " ms", this.pluginName); - } - } - } catch (Throwable e) { - PurgeLogger - .logError( - "An unexpected error occurred upon completion of the purge job", - this.pluginName, e); - } finally { - ClusterLockUtils.unlock(purgeLock, false); - } - } - } - - public void printTimedOutMessage(int deadPurgeJobAge) { - // only print message every 5 minutes - if (System.currentTimeMillis() - lastTimeOutMessage > 300000) { - PurgeLogger.logFatal( - "Purger running time has exceeded timeout duration of " - + deadPurgeJobAge - + " minutes. Current running time: " - + (getAge() / 60000) + " minutes", pluginName); - printStackTrace(); - } - } - - /** - * Prints the stack trace for this job thread. - */ - public void printStackTrace() { - StringBuffer buffer = new StringBuffer(); - buffer.append("Stack trace for Purge Job Thread:\n"); - buffer.append(getStackTrace(this)); - // If this thread is blocked, output the stack traces for the other - // blocked threads to assist in determining the source of the - // deadlocked - // threads - if (this.getState().equals(State.BLOCKED)) { - buffer.append("\tDUMPING OTHER BLOCKED THREADS\n"); - buffer.append(getBlockedStackTraces()); - - } - PurgeLogger.logError(buffer.toString(), this.pluginName); - - } - - /** - * Gets the stack traces for all other threads in the BLOCKED state in the - * JVM - * - * @return The stack traces for all other threads in the BLOCKED state in - * the JVM - */ - private String getBlockedStackTraces() { - StringBuffer buffer = new StringBuffer(); - Map threads = Thread.getAllStackTraces(); - for (Thread t : threads.keySet()) { - if (t.getState().equals(State.BLOCKED)) { - if (t.getId() != this.getId()) { - buffer.append(getStackTrace(t)); - } - } - } - - return buffer.toString(); - } - - /** - * Gets the stack trace for the given thread - * - * @param thread - * The thread to get the stack trace for - * @return The stack trace as a String - */ - private String getStackTrace(Thread thread) { - StringBuffer buffer = new StringBuffer(); - StackTraceElement[] stack = Thread.getAllStackTraces().get(thread); - buffer.append("\tThread ID: ").append(thread.getId()) - .append(" Thread state: ").append(this.getState()) - .append("\n"); - if (stack == null) { - buffer.append("No stack trace could be retrieved for this thread"); - } else { - for (int i = 0; i < stack.length; i++) { - buffer.append("\t\t").append(stack[i]).append("\n"); - } - } - return buffer.toString(); - } - - public long getStartTime() { - return startTime; - } - - public long getAge() { - return System.currentTimeMillis() - startTime; - } -} +/** + * 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. + **/ +package com.raytheon.uf.edex.purgesrv; + +import java.lang.reflect.Method; +import java.sql.SQLException; +import java.util.Calendar; +import java.util.Date; +import java.util.Map; +import java.util.TimeZone; + +import com.raytheon.uf.edex.core.EDEXUtil; +import com.raytheon.uf.edex.database.cluster.ClusterLockUtils; +import com.raytheon.uf.edex.database.cluster.ClusterTask; +import com.raytheon.uf.edex.database.plugin.PluginDao; +import com.raytheon.uf.edex.database.plugin.PluginFactory; +import com.raytheon.uf.edex.database.purge.PurgeLogger; + +/** + * + * This class encapsulates the purge activity for a plugin into a cluster task. + * + *
+ * 
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    Engineer    Description
+ * ------------ ---------- ----------- --------------------------
+ * Apr 19, 2012   #470      bphillip     Initial creation
+ * Jun 20, 2012  NC#606     ghull        send purge-complete messages 
+ * 
+ * 
+ * + * @author bphillip + * @version 1.0 + */ +public class PurgeJob extends Thread { + + /** The type of purge */ + public enum PURGE_JOB_TYPE { + PURGE_ALL, PURGE_EXPIRED + } + + public static final String PLUGIN_PURGED_TOPIC = "jms-generic:topic:pluginPurged"; + + private long startTime; + + /** The cluster task name to use for purge jobs */ + public static final String TASK_NAME = "Purge Plugin Data"; + + /** The plugin associated with this purge job */ + private String pluginName; + + /** The type of purge job being executed */ + private PURGE_JOB_TYPE purgeType; + + /** Last time job has printed a timed out message */ + private long lastTimeOutMessage = 0; + + /** + * Creates a new Purge job for the specified plugin. + * + * @param pluginName + * The plugin to be purged + * @param purgeType + * The type of purge to be executed + */ + public PurgeJob(String pluginName, PURGE_JOB_TYPE purgeType) { + // Give the thread a name + this.setName("Purge-" + pluginName.toUpperCase() + "-Thread"); + this.pluginName = pluginName; + this.purgeType = purgeType; + } + + public void run() { + + // Flag used to track if this job has failed + boolean failed = false; + startTime = System.currentTimeMillis(); + PurgeLogger.logInfo("Purging expired data...", pluginName); + PluginDao dao = null; + + try { + dao = PluginFactory.getInstance().getPluginDao(pluginName); + if (dao.getDaoClass() != null) { + dao.purgeExpiredData(); + + PurgeLogger.logInfo("Data successfully Purged!", pluginName); + + EDEXUtil.getMessageProducer().sendAsyncUri( PLUGIN_PURGED_TOPIC, pluginName ); + + } else { + Method m = dao.getClass().getMethod("purgeExpiredData", + new Class[] {}); + if (m != null) { + if (m.getDeclaringClass().equals(PluginDao.class)) { + PurgeLogger + .logWarn( + "Unable to purge data. This plugin does not specify a record class and does not implement a custom purger.", + pluginName); + } else { + if (this.purgeType.equals(PURGE_JOB_TYPE.PURGE_EXPIRED)) { + dao.purgeExpiredData(); + } else { + dao.purgeAllData(); + } + + PurgeLogger.logInfo("Data successfully Purged!", pluginName); + + EDEXUtil.getMessageProducer().sendAsyncUri( PLUGIN_PURGED_TOPIC, pluginName ); + } + } + } + } catch (Exception e) { + failed = true; + // keep getting next exceptions with sql exceptions to ensure + // we can see the underlying error + PurgeLogger + .logError("Error purging expired data!\n", pluginName, e); + Throwable t = e.getCause(); + while (t != null) { + if (t instanceof SQLException) { + SQLException se = ((SQLException) t).getNextException(); + PurgeLogger.logError("Next exception:", pluginName, se); + } + t = t.getCause(); + } + } finally { + ClusterTask purgeLock = PurgeManager.getInstance().getPurgeLock(); + try { + /* + * Update the status accordingly if the purge failed or + * succeeded + */ + PurgeDao purgeDao = new PurgeDao(); + PurgeJobStatus status = purgeDao + .getJobForPlugin(this.pluginName); + if (status == null) { + PurgeLogger.logError( + "Purge job completed but no status object found!", + this.pluginName); + } else { + if (failed) { + status.incrementFailedCount(); + if (status.getFailedCount() >= PurgeManager + .getInstance().getFatalFailureCount()) { + PurgeLogger + .logFatal( + "Purger for this plugin has reached or exceeded consecutive failure limit of " + + PurgeManager + .getInstance() + .getFatalFailureCount() + + ". Data will no longer being purged for this plugin.", + pluginName); + } else { + PurgeLogger.logError("Purge job has failed " + + status.getFailedCount() + + " consecutive times.", this.pluginName); + // Back the start time off by half an hour to try to + // purgin soon, don't want to start immediately so + // it doesn't ping pong between servers in a time + // out scenario + Date startTime = status.getStartTime(); + startTime.setTime(startTime.getTime() - (1800000)); + } + } else { + status.setFailedCount(0); + } + + /* + * This purger thread has exceeded the time out duration but + * finally finished. Output a message and update the status + */ + int deadPurgeJobAge = PurgeManager.getInstance() + .getDeadPurgeJobAge(); + Calendar purgeTimeOutLimit = Calendar.getInstance(); + purgeTimeOutLimit.setTimeZone(TimeZone.getTimeZone("GMT")); + purgeTimeOutLimit.add(Calendar.MINUTE, -deadPurgeJobAge); + if (startTime < purgeTimeOutLimit.getTimeInMillis()) { + PurgeLogger + .logInfo( + "Purge job has recovered from timed out state!!", + pluginName); + } + status.setRunning(false); + purgeDao.update(status); + /* + * Log execution times + */ + long executionTime = getAge(); + long execTimeInMinutes = executionTime / 60000; + if (execTimeInMinutes > 0) { + PurgeLogger.logInfo("Purge run time: " + executionTime + + " ms (" + execTimeInMinutes + " minutes)", + this.pluginName); + } else { + PurgeLogger.logInfo("Purge run time: " + executionTime + + " ms", this.pluginName); + } + } + } catch (Throwable e) { + PurgeLogger + .logError( + "An unexpected error occurred upon completion of the purge job", + this.pluginName, e); + } finally { + ClusterLockUtils.unlock(purgeLock, false); + } + } + } + + public void printTimedOutMessage(int deadPurgeJobAge) { + // only print message every 5 minutes + if (System.currentTimeMillis() - lastTimeOutMessage > 300000) { + PurgeLogger.logFatal( + "Purger running time has exceeded timeout duration of " + + deadPurgeJobAge + + " minutes. Current running time: " + + (getAge() / 60000) + " minutes", pluginName); + printStackTrace(); + } + } + + /** + * Prints the stack trace for this job thread. + */ + public void printStackTrace() { + StringBuffer buffer = new StringBuffer(); + buffer.append("Stack trace for Purge Job Thread:\n"); + buffer.append(getStackTrace(this)); + // If this thread is blocked, output the stack traces for the other + // blocked threads to assist in determining the source of the + // deadlocked + // threads + if (this.getState().equals(State.BLOCKED)) { + buffer.append("\tDUMPING OTHER BLOCKED THREADS\n"); + buffer.append(getBlockedStackTraces()); + + } + PurgeLogger.logError(buffer.toString(), this.pluginName); + + } + + /** + * Gets the stack traces for all other threads in the BLOCKED state in the + * JVM + * + * @return The stack traces for all other threads in the BLOCKED state in + * the JVM + */ + private String getBlockedStackTraces() { + StringBuffer buffer = new StringBuffer(); + Map threads = Thread.getAllStackTraces(); + for (Thread t : threads.keySet()) { + if (t.getState().equals(State.BLOCKED)) { + if (t.getId() != this.getId()) { + buffer.append(getStackTrace(t)); + } + } + } + + return buffer.toString(); + } + + /** + * Gets the stack trace for the given thread + * + * @param thread + * The thread to get the stack trace for + * @return The stack trace as a String + */ + private String getStackTrace(Thread thread) { + StringBuffer buffer = new StringBuffer(); + StackTraceElement[] stack = Thread.getAllStackTraces().get(thread); + buffer.append("\tThread ID: ").append(thread.getId()) + .append(" Thread state: ").append(this.getState()) + .append("\n"); + if (stack == null) { + buffer.append("No stack trace could be retrieved for this thread"); + } else { + for (int i = 0; i < stack.length; i++) { + buffer.append("\t\t").append(stack[i]).append("\n"); + } + } + return buffer.toString(); + } + + public long getStartTime() { + return startTime; + } + + public long getAge() { + return System.currentTimeMillis() - startTime; + } +} diff --git a/edexOsgi/com.raytheon.uf.edex.purgesrv/src/com/raytheon/uf/edex/purgesrv/PurgeManager.java b/edexOsgi/com.raytheon.uf.edex.purgesrv/src/com/raytheon/uf/edex/purgesrv/PurgeManager.java index a21bb7fc7e..c646477376 100644 --- a/edexOsgi/com.raytheon.uf.edex.purgesrv/src/com/raytheon/uf/edex/purgesrv/PurgeManager.java +++ b/edexOsgi/com.raytheon.uf.edex.purgesrv/src/com/raytheon/uf/edex/purgesrv/PurgeManager.java @@ -1,488 +1,488 @@ -/** - * 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. - **/ -package com.raytheon.uf.edex.purgesrv; - -import java.lang.Thread.State; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Collections; -import java.util.Date; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.TimeZone; -import java.util.concurrent.ConcurrentHashMap; - -import com.raytheon.uf.edex.core.dataplugin.PluginRegistry; -import com.raytheon.uf.edex.database.cluster.ClusterLockUtils; -import com.raytheon.uf.edex.database.cluster.ClusterLockUtils.LockState; -import com.raytheon.uf.edex.database.cluster.ClusterTask; -import com.raytheon.uf.edex.database.purge.PurgeLogger; -import com.raytheon.uf.edex.database.status.StatusConstants; -import com.raytheon.uf.edex.purgesrv.PurgeJob.PURGE_JOB_TYPE; - -/** - * - * Object for managing purge jobs. The purge manager relies on the purgejobs - * table to coordinate information. The executePurge() method on this class is - * executed every minute via a quartz timer defined in the purge-spring.xml - * Spring configuration file. - *

- * The purge manager is designed to adhere to the following rules: - *

- * · The cluster may have no more than 6 purge jobs running simultaneously by - * default. This property is configurable in the project.properties file
- * · Any given server may have no more than 2 purge jobs running simultaneously - * by default. This property is configurable in the project.properties file
- * · A purge job for a plugin is considered 'hung' if it has been running for - * more than 20 minutes by default. This property is configurable in the - * project.properties file
- * · If a purge job that was previously determined to be hung actually finishes - * it's execution, the cluster lock is updated appropriately and the purge job - * is able to resume normal operation. This is in place so if a hung purge - * process goes unnoticed for a period of time, the server will still try to - * recover autonomously if it can.
- * · If a purge job is determined to be hung, the stack trace for the thread - * executing the job is output to the log. Furthermore, if the job is in the - * BLOCKED state, the stack traces for all other BLOCKED threads is output to - * the purge log as part of a rudimentary deadlock detection strategy to be used - * by personnel attempting to remedy the situation.
- * · By default, a fatal condition occurs if a given plugin's purge job fails 3 - * consecutive times.
- * · If a purge job hangs on one server in the cluster, it will try and run on - * another cluster member at the next purge interval.
- * · If the purge manager attempts to purge a plugin that has been running for - * longer than the 20 minute threshold, it is considered a failure, and the - * failure count is updated. - *

- * - * - *

- * 
- * SOFTWARE HISTORY
- * 
- * Date         Ticket#    Engineer    Description
- * ------------ ---------- ----------- --------------------------
- * Apr 18, 2012 #470       bphillip    Initial creation
- * 
- * 
- * - * @author bphillip - * @version 1.0 - */ -public class PurgeManager { - - /** Purge Manager task name */ - private static final String PURGE_TASK_NAME = "Purge Manager"; - - /** Purge Manager task details */ - private static final String PURGE_TASK_DETAILS = "Purge Manager Job"; - - /** Purge Manager task override timeout. Currently 2 minutes */ - private static final long PURGE_MANAGER_TIMEOUT = 120000; - - /** - * The cluster limit property to be set via Spring with the value defined in - * project.properties - */ - private int clusterLimit = 6; - - /** - * The server limit property to be set via Spring with the value defined in - * project.properties - */ - private int serverLimit = 2; - - /** - * The time in minutes at which a purge job is considered 'dead' or 'hung' - * set via Spring with the value defined in project.properties - */ - private int deadPurgeJobAge = 20; - - /** - * The frequency, in minutes, that a plugin may be purged set via Spring - * with the value defined in project.properties - */ - private int purgeFrequency = 60; - - /** - * How many times a purger is allowed to fail before it is considered fatal. - * Set via Spring with the value defined in project.properties - */ - private int fatalFailureCount = 3; - - /** - * The master switch defined in project.properties that enables and disables - * data purging - */ - private boolean purgeEnabled = true; - - /** Map of purge jobs */ - private Map purgeJobs = new ConcurrentHashMap(); - - private PurgeDao dao = new PurgeDao(); - - private static PurgeManager instance = new PurgeManager(); - - public static PurgeManager getInstance() { - return instance; - } - - /** - * Creates a new PurgeManager - */ - private PurgeManager() { - } - - /** - * Executes the purge routine - */ - public void executePurge() { - if (!purgeEnabled) { - PurgeLogger.logWarn( - "Data purging has been disabled. No data will be purged.", - null); - return; - } - - ClusterTask purgeMgrTask = getPurgeLock(); - - try { - // Prune the job map - Iterator iter = purgeJobs.values().iterator(); - while (iter.hasNext()) { - if (!iter.next().isAlive()) { - iter.remove(); - } - } - - Calendar purgeTimeOutLimit = Calendar.getInstance(); - purgeTimeOutLimit.setTimeZone(TimeZone.getTimeZone("GMT")); - purgeTimeOutLimit.add(Calendar.MINUTE, -deadPurgeJobAge); - Calendar purgeFrequencyLimit = Calendar.getInstance(); - purgeFrequencyLimit.setTimeZone(TimeZone.getTimeZone("GMT")); - purgeFrequencyLimit.add(Calendar.MINUTE, -purgeFrequency); - - // Gets the list of plugins in ascending order by the last time they - // were purged - List pluginList = dao.getPluginsByPurgeTime(); - - // check for any new plugins or database being purged and needing - // entries recreated - Set availablePlugins = new HashSet(PluginRegistry - .getInstance().getRegisteredObjects()); - - // Merge the lists - availablePlugins.removeAll(pluginList); - - if (availablePlugins.size() > 0) { - // generate new list with them at the beginning - List newSortedPlugins = new ArrayList( - availablePlugins); - Collections.sort(newSortedPlugins); - newSortedPlugins.addAll(pluginList); - pluginList = newSortedPlugins; - } - - boolean canPurge = true; - int jobsStarted = 0; - int maxNumberOfJobsToStart = Math.min( - clusterLimit - - dao.getRunningClusterJobs( - purgeTimeOutLimit.getTime(), - fatalFailureCount), serverLimit - - getNumberRunningJobsOnServer(purgeTimeOutLimit)); - for (String plugin : pluginList) { - try { - // initialize canPurge based on number of jobs started - canPurge = jobsStarted < maxNumberOfJobsToStart; - PurgeJob jobThread = purgeJobs.get(plugin); - PurgeJobStatus job = dao.getJobForPlugin(plugin); - - if (job == null) { - // no job in database, generate empty job - - try { - job = new PurgeJobStatus(); - job.setPlugin(plugin); - job.setFailedCount(0); - job.setRunning(false); - job.setStartTime(new Date(0)); - dao.create(job); - } catch (Throwable e) { - PurgeLogger.logError( - "Failed to create new purge job entry", - plugin, e); - } - } - - // Check to see if this job has met the fatal failure count - if (job.getFailedCount() >= fatalFailureCount) { - canPurge = false; - PurgeLogger - .logFatal( - "Purger for this plugin has reached or exceeded consecutive failure limit of " - + fatalFailureCount - + ". Data will no longer being purged for this plugin.", - plugin); - } - - // is purge job currently running on this server - if (jobThread != null) { - // job currently running on our server, don't start - // another - canPurge = false; - - if (purgeTimeOutLimit.getTimeInMillis() > jobThread - .getStartTime()) { - jobThread.printTimedOutMessage(deadPurgeJobAge); - } - } else { - if (job.isRunning()) { - // check if job has timed out - if (purgeTimeOutLimit.getTime().before( - job.getStartTime())) { - canPurge = false; - } - // else if no one else sets canPurge = false will - // start purging on this server - } else { - // not currently running, check if need to be purged - Date startTime = job.getStartTime(); - if (startTime != null - && startTime.after(purgeFrequencyLimit - .getTime())) { - canPurge = false; - } - } - } - - if (canPurge) { - purgeJobs.put(plugin, purgeExpiredData(plugin)); - jobsStarted++; - } - } catch (Throwable e) { - PurgeLogger - .logError( - "An unexpected error occured during the purge job check for plugin", - plugin, e); - } - } - } catch (Throwable e) { - PurgeLogger - .logError( - "An unexpected error occured during the data purge process", - StatusConstants.CATEGORY_PURGE, e); - } finally { - // Unlock the purge task to allow other servers to run. - ClusterLockUtils.unlock(purgeMgrTask, false); - // PurgeLogger.logInfo(getPurgeStatus(true), null); - } - } - - @SuppressWarnings("unused") - private String getPurgeStatus(boolean verbose) { - Calendar purgeTimeOutLimit = Calendar.getInstance(); - purgeTimeOutLimit.setTimeZone(TimeZone.getTimeZone("GMT")); - purgeTimeOutLimit.add(Calendar.MINUTE, -deadPurgeJobAge); - - StringBuilder builder = new StringBuilder(); - List failedJobs = dao.getFailedJobs(fatalFailureCount); - - List timedOutJobs = dao - .getTimedOutJobs(purgeTimeOutLimit.getTime()); - int clusterJobs = dao.getRunningClusterJobs( - purgeTimeOutLimit.getTime(), fatalFailureCount); - Map> serverMap = dao - .getRunningServerJobs(); - builder.append("\nPURGE JOB STATUS:"); - builder.append("\n\tTotal Jobs Running On Cluster: ").append( - clusterJobs); - List jobs = null; - for (String server : serverMap.keySet()) { - jobs = serverMap.get(server); - builder.append("\n\tJobs Running On ").append(server).append(": ") - .append(jobs.size()); - if (verbose && !jobs.isEmpty()) { - builder.append(" Plugins: "); - for (int i = 0; i < jobs.size(); i++) { - builder.append(jobs.get(i).getPlugin()); - if (i != jobs.size() - 1) { - builder.append(","); - } - } - } - } - if (verbose) { - builder.append("\n\tFailed Jobs: "); - if (failedJobs.isEmpty()) { - builder.append("0"); - } else { - PurgeJobStatus currentJob = null; - for (int i = 0; i < failedJobs.size(); i++) { - currentJob = failedJobs.get(i); - builder.append(currentJob.getPlugin()); - if (i != failedJobs.size() - 1) { - builder.append(","); - } - } - } - - builder.append("\n\tTimed Out Jobs: "); - if (timedOutJobs.isEmpty()) { - builder.append("0"); - } else { - PurgeJobStatus currentJob = null; - for (int i = 0; i < timedOutJobs.size(); i++) { - currentJob = timedOutJobs.get(i); - builder.append(currentJob.getPlugin()); - if (i != timedOutJobs.size() - 1) { - builder.append(","); - } - } - } - } - return builder.toString(); - } - - public ClusterTask getPurgeLock() { - // Lock so only one cluster member may start purge processes - ClusterTask purgeMgrTask = ClusterLockUtils.lock(PURGE_TASK_NAME, - PURGE_TASK_DETAILS, PURGE_MANAGER_TIMEOUT, true); - - LockState purgeMgrLockState = purgeMgrTask.getLockState(); - switch (purgeMgrLockState) { - case FAILED: - PurgeLogger.logError( - "Purge Manager failed to acquire cluster task lock", - StatusConstants.CATEGORY_PURGE); - return null; - case OLD: - PurgeLogger.logWarn("Purge Manager acquired old cluster task lock", - StatusConstants.CATEGORY_PURGE); - break; - case ALREADY_RUNNING: - PurgeLogger - .logWarn( - "Purge Manager acquired currently running cluster task lock", - StatusConstants.CATEGORY_PURGE); - return null; - case SUCCESSFUL: - break; - } - return purgeMgrTask; - } - - private int getNumberRunningJobsOnServer(Calendar timeOutTime) { - int rval = 0; - for (PurgeJob job : purgeJobs.values()) { - // if job has not timed out or if the job is not blocked consider it - // running on this server - if (timeOutTime.getTimeInMillis() < job.getStartTime() - || !job.getState().equals(State.BLOCKED)) { - rval++; - } - - } - return rval; - } - - /** - * Starts a purge expired data job for the specified plugin. Using this - * method allows for exceeding failure count via a manual purge as well as - * kicking off a second purge for one already running on a server. - * - * @param plugin - * The plugin to purge the expired data for - * @return The PurgeJob that was started - */ - public PurgeJob purgeExpiredData(String plugin) { - dao.startJob(plugin); - PurgeJob job = new PurgeJob(plugin, PURGE_JOB_TYPE.PURGE_EXPIRED); - job.start(); - return job; - } - - /** - * Starts a purge all data job for the specified plugin. Using this method - * allows for exceeding failure count via a manual purge as well as kicking - * off a second purge for one already running on a server. - * - * @param plugin - * The plugin to purge all data for - * @return The PurgeJob that was started - */ - public PurgeJob purgeAllData(String plugin) { - dao.startJob(plugin); - PurgeJob job = new PurgeJob(plugin, PURGE_JOB_TYPE.PURGE_ALL); - job.start(); - return job; - } - - public int getClusterLimit() { - return clusterLimit; - } - - public void setClusterLimit(int clusterLimit) { - this.clusterLimit = clusterLimit; - } - - public int getServerLimit() { - return serverLimit; - } - - public void setServerLimit(int serverLimit) { - this.serverLimit = serverLimit; - } - - public int getDeadPurgeJobAge() { - return deadPurgeJobAge; - } - - public void setDeadPurgeJobAge(int deadPurgeJobAge) { - this.deadPurgeJobAge = deadPurgeJobAge; - } - - public int getPurgeFrequency() { - return purgeFrequency; - } - - public void setPurgeFrequency(int purgeFrequency) { - this.purgeFrequency = purgeFrequency; - } - - public int getFatalFailureCount() { - return this.fatalFailureCount; - } - - public void setFatalFailureCount(int fatalFailureCount) { - this.fatalFailureCount = fatalFailureCount; - } - - public void setPurgeEnabled(boolean purgeEnabled) { - this.purgeEnabled = purgeEnabled; - } - - public boolean getPurgeEnabled() { - return purgeEnabled; - } -} +/** + * 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. + **/ +package com.raytheon.uf.edex.purgesrv; + +import java.lang.Thread.State; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Collections; +import java.util.Date; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TimeZone; +import java.util.concurrent.ConcurrentHashMap; + +import com.raytheon.uf.edex.core.dataplugin.PluginRegistry; +import com.raytheon.uf.edex.database.cluster.ClusterLockUtils; +import com.raytheon.uf.edex.database.cluster.ClusterLockUtils.LockState; +import com.raytheon.uf.edex.database.cluster.ClusterTask; +import com.raytheon.uf.edex.database.purge.PurgeLogger; +import com.raytheon.uf.edex.database.status.StatusConstants; +import com.raytheon.uf.edex.purgesrv.PurgeJob.PURGE_JOB_TYPE; + +/** + * + * Object for managing purge jobs. The purge manager relies on the purgejobs + * table to coordinate information. The executePurge() method on this class is + * executed every minute via a quartz timer defined in the purge-spring.xml + * Spring configuration file. + *

+ * The purge manager is designed to adhere to the following rules: + *

+ * · The cluster may have no more than 6 purge jobs running simultaneously by + * default. This property is configurable in the project.properties file
+ * · Any given server may have no more than 2 purge jobs running simultaneously + * by default. This property is configurable in the project.properties file
+ * · A purge job for a plugin is considered 'hung' if it has been running for + * more than 20 minutes by default. This property is configurable in the + * project.properties file
+ * · If a purge job that was previously determined to be hung actually finishes + * it's execution, the cluster lock is updated appropriately and the purge job + * is able to resume normal operation. This is in place so if a hung purge + * process goes unnoticed for a period of time, the server will still try to + * recover autonomously if it can.
+ * · If a purge job is determined to be hung, the stack trace for the thread + * executing the job is output to the log. Furthermore, if the job is in the + * BLOCKED state, the stack traces for all other BLOCKED threads is output to + * the purge log as part of a rudimentary deadlock detection strategy to be used + * by personnel attempting to remedy the situation.
+ * · By default, a fatal condition occurs if a given plugin's purge job fails 3 + * consecutive times.
+ * · If a purge job hangs on one server in the cluster, it will try and run on + * another cluster member at the next purge interval.
+ * · If the purge manager attempts to purge a plugin that has been running for + * longer than the 20 minute threshold, it is considered a failure, and the + * failure count is updated. + *

+ * + * + *

+ * 
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    Engineer    Description
+ * ------------ ---------- ----------- --------------------------
+ * Apr 18, 2012 #470       bphillip    Initial creation
+ * 
+ * 
+ * + * @author bphillip + * @version 1.0 + */ +public class PurgeManager { + + /** Purge Manager task name */ + private static final String PURGE_TASK_NAME = "Purge Manager"; + + /** Purge Manager task details */ + private static final String PURGE_TASK_DETAILS = "Purge Manager Job"; + + /** Purge Manager task override timeout. Currently 2 minutes */ + private static final long PURGE_MANAGER_TIMEOUT = 120000; + + /** + * The cluster limit property to be set via Spring with the value defined in + * project.properties + */ + private int clusterLimit = 6; + + /** + * The server limit property to be set via Spring with the value defined in + * project.properties + */ + private int serverLimit = 2; + + /** + * The time in minutes at which a purge job is considered 'dead' or 'hung' + * set via Spring with the value defined in project.properties + */ + private int deadPurgeJobAge = 20; + + /** + * The frequency, in minutes, that a plugin may be purged set via Spring + * with the value defined in project.properties + */ + private int purgeFrequency = 60; + + /** + * How many times a purger is allowed to fail before it is considered fatal. + * Set via Spring with the value defined in project.properties + */ + private int fatalFailureCount = 3; + + /** + * The master switch defined in project.properties that enables and disables + * data purging + */ + private boolean purgeEnabled = true; + + /** Map of purge jobs */ + private Map purgeJobs = new ConcurrentHashMap(); + + private PurgeDao dao = new PurgeDao(); + + private static PurgeManager instance = new PurgeManager(); + + public static PurgeManager getInstance() { + return instance; + } + + /** + * Creates a new PurgeManager + */ + private PurgeManager() { + } + + /** + * Executes the purge routine + */ + public void executePurge() { + if (!purgeEnabled) { + PurgeLogger.logWarn( + "Data purging has been disabled. No data will be purged.", + null); + return; + } + + ClusterTask purgeMgrTask = getPurgeLock(); + + try { + // Prune the job map + Iterator iter = purgeJobs.values().iterator(); + while (iter.hasNext()) { + if (!iter.next().isAlive()) { + iter.remove(); + } + } + + Calendar purgeTimeOutLimit = Calendar.getInstance(); + purgeTimeOutLimit.setTimeZone(TimeZone.getTimeZone("GMT")); + purgeTimeOutLimit.add(Calendar.MINUTE, -deadPurgeJobAge); + Calendar purgeFrequencyLimit = Calendar.getInstance(); + purgeFrequencyLimit.setTimeZone(TimeZone.getTimeZone("GMT")); + purgeFrequencyLimit.add(Calendar.MINUTE, -purgeFrequency); + + // Gets the list of plugins in ascending order by the last time they + // were purged + List pluginList = dao.getPluginsByPurgeTime(); + + // check for any new plugins or database being purged and needing + // entries recreated + Set availablePlugins = new HashSet(PluginRegistry + .getInstance().getRegisteredObjects()); + + // Merge the lists + availablePlugins.removeAll(pluginList); + + if (availablePlugins.size() > 0) { + // generate new list with them at the beginning + List newSortedPlugins = new ArrayList( + availablePlugins); + Collections.sort(newSortedPlugins); + newSortedPlugins.addAll(pluginList); + pluginList = newSortedPlugins; + } + + boolean canPurge = true; + int jobsStarted = 0; + int maxNumberOfJobsToStart = Math.min( + clusterLimit + - dao.getRunningClusterJobs( + purgeTimeOutLimit.getTime(), + fatalFailureCount), serverLimit + - getNumberRunningJobsOnServer(purgeTimeOutLimit)); + for (String plugin : pluginList) { + try { + // initialize canPurge based on number of jobs started + canPurge = jobsStarted < maxNumberOfJobsToStart; + PurgeJob jobThread = purgeJobs.get(plugin); + PurgeJobStatus job = dao.getJobForPlugin(plugin); + + if (job == null) { + // no job in database, generate empty job + + try { + job = new PurgeJobStatus(); + job.setPlugin(plugin); + job.setFailedCount(0); + job.setRunning(false); + job.setStartTime(new Date(0)); + dao.create(job); + } catch (Throwable e) { + PurgeLogger.logError( + "Failed to create new purge job entry", + plugin, e); + } + } + + // Check to see if this job has met the fatal failure count + if (job.getFailedCount() >= fatalFailureCount) { + canPurge = false; + PurgeLogger + .logFatal( + "Purger for this plugin has reached or exceeded consecutive failure limit of " + + fatalFailureCount + + ". Data will no longer being purged for this plugin.", + plugin); + } + + // is purge job currently running on this server + if (jobThread != null) { + // job currently running on our server, don't start + // another + canPurge = false; + + if (purgeTimeOutLimit.getTimeInMillis() > jobThread + .getStartTime()) { + jobThread.printTimedOutMessage(deadPurgeJobAge); + } + } else { + if (job.isRunning()) { + // check if job has timed out + if (purgeTimeOutLimit.getTime().before( + job.getStartTime())) { + canPurge = false; + } + // else if no one else sets canPurge = false will + // start purging on this server + } else { + // not currently running, check if need to be purged + Date startTime = job.getStartTime(); + if (startTime != null + && startTime.after(purgeFrequencyLimit + .getTime())) { + canPurge = false; + } + } + } + + if (canPurge) { + purgeJobs.put(plugin, purgeExpiredData(plugin)); + jobsStarted++; + } + } catch (Throwable e) { + PurgeLogger + .logError( + "An unexpected error occured during the purge job check for plugin", + plugin, e); + } + } + } catch (Throwable e) { + PurgeLogger + .logError( + "An unexpected error occured during the data purge process", + StatusConstants.CATEGORY_PURGE, e); + } finally { + // Unlock the purge task to allow other servers to run. + ClusterLockUtils.unlock(purgeMgrTask, false); + // PurgeLogger.logInfo(getPurgeStatus(true), null); + } + } + + @SuppressWarnings("unused") + private String getPurgeStatus(boolean verbose) { + Calendar purgeTimeOutLimit = Calendar.getInstance(); + purgeTimeOutLimit.setTimeZone(TimeZone.getTimeZone("GMT")); + purgeTimeOutLimit.add(Calendar.MINUTE, -deadPurgeJobAge); + + StringBuilder builder = new StringBuilder(); + List failedJobs = dao.getFailedJobs(fatalFailureCount); + + List timedOutJobs = dao + .getTimedOutJobs(purgeTimeOutLimit.getTime()); + int clusterJobs = dao.getRunningClusterJobs( + purgeTimeOutLimit.getTime(), fatalFailureCount); + Map> serverMap = dao + .getRunningServerJobs(); + builder.append("\nPURGE JOB STATUS:"); + builder.append("\n\tTotal Jobs Running On Cluster: ").append( + clusterJobs); + List jobs = null; + for (String server : serverMap.keySet()) { + jobs = serverMap.get(server); + builder.append("\n\tJobs Running On ").append(server).append(": ") + .append(jobs.size()); + if (verbose && !jobs.isEmpty()) { + builder.append(" Plugins: "); + for (int i = 0; i < jobs.size(); i++) { + builder.append(jobs.get(i).getPlugin()); + if (i != jobs.size() - 1) { + builder.append(","); + } + } + } + } + if (verbose) { + builder.append("\n\tFailed Jobs: "); + if (failedJobs.isEmpty()) { + builder.append("0"); + } else { + PurgeJobStatus currentJob = null; + for (int i = 0; i < failedJobs.size(); i++) { + currentJob = failedJobs.get(i); + builder.append(currentJob.getPlugin()); + if (i != failedJobs.size() - 1) { + builder.append(","); + } + } + } + + builder.append("\n\tTimed Out Jobs: "); + if (timedOutJobs.isEmpty()) { + builder.append("0"); + } else { + PurgeJobStatus currentJob = null; + for (int i = 0; i < timedOutJobs.size(); i++) { + currentJob = timedOutJobs.get(i); + builder.append(currentJob.getPlugin()); + if (i != timedOutJobs.size() - 1) { + builder.append(","); + } + } + } + } + return builder.toString(); + } + + public ClusterTask getPurgeLock() { + // Lock so only one cluster member may start purge processes + ClusterTask purgeMgrTask = ClusterLockUtils.lock(PURGE_TASK_NAME, + PURGE_TASK_DETAILS, PURGE_MANAGER_TIMEOUT, true); + + LockState purgeMgrLockState = purgeMgrTask.getLockState(); + switch (purgeMgrLockState) { + case FAILED: + PurgeLogger.logError( + "Purge Manager failed to acquire cluster task lock", + StatusConstants.CATEGORY_PURGE); + return null; + case OLD: + PurgeLogger.logWarn("Purge Manager acquired old cluster task lock", + StatusConstants.CATEGORY_PURGE); + break; + case ALREADY_RUNNING: + PurgeLogger + .logWarn( + "Purge Manager acquired currently running cluster task lock", + StatusConstants.CATEGORY_PURGE); + return null; + case SUCCESSFUL: + break; + } + return purgeMgrTask; + } + + private int getNumberRunningJobsOnServer(Calendar timeOutTime) { + int rval = 0; + for (PurgeJob job : purgeJobs.values()) { + // if job has not timed out or if the job is not blocked consider it + // running on this server + if (timeOutTime.getTimeInMillis() < job.getStartTime() + || !job.getState().equals(State.BLOCKED)) { + rval++; + } + + } + return rval; + } + + /** + * Starts a purge expired data job for the specified plugin. Using this + * method allows for exceeding failure count via a manual purge as well as + * kicking off a second purge for one already running on a server. + * + * @param plugin + * The plugin to purge the expired data for + * @return The PurgeJob that was started + */ + public PurgeJob purgeExpiredData(String plugin) { + dao.startJob(plugin); + PurgeJob job = new PurgeJob(plugin, PURGE_JOB_TYPE.PURGE_EXPIRED); + job.start(); + return job; + } + + /** + * Starts a purge all data job for the specified plugin. Using this method + * allows for exceeding failure count via a manual purge as well as kicking + * off a second purge for one already running on a server. + * + * @param plugin + * The plugin to purge all data for + * @return The PurgeJob that was started + */ + public PurgeJob purgeAllData(String plugin) { + dao.startJob(plugin); + PurgeJob job = new PurgeJob(plugin, PURGE_JOB_TYPE.PURGE_ALL); + job.start(); + return job; + } + + public int getClusterLimit() { + return clusterLimit; + } + + public void setClusterLimit(int clusterLimit) { + this.clusterLimit = clusterLimit; + } + + public int getServerLimit() { + return serverLimit; + } + + public void setServerLimit(int serverLimit) { + this.serverLimit = serverLimit; + } + + public int getDeadPurgeJobAge() { + return deadPurgeJobAge; + } + + public void setDeadPurgeJobAge(int deadPurgeJobAge) { + this.deadPurgeJobAge = deadPurgeJobAge; + } + + public int getPurgeFrequency() { + return purgeFrequency; + } + + public void setPurgeFrequency(int purgeFrequency) { + this.purgeFrequency = purgeFrequency; + } + + public int getFatalFailureCount() { + return this.fatalFailureCount; + } + + public void setFatalFailureCount(int fatalFailureCount) { + this.fatalFailureCount = fatalFailureCount; + } + + public void setPurgeEnabled(boolean purgeEnabled) { + this.purgeEnabled = purgeEnabled; + } + + public boolean getPurgeEnabled() { + return purgeEnabled; + } +} diff --git a/edexOsgi/gov.noaa.nws.ost.edex.plugin.regionalsat/gov.noaa.nws.ost.edex.plugin.regionalsat.ecl b/edexOsgi/com.raytheon.uf.edex.tafqueue/com.raytheon.uf.edex.tafqueue.ecl similarity index 100% rename from edexOsgi/gov.noaa.nws.ost.edex.plugin.regionalsat/gov.noaa.nws.ost.edex.plugin.regionalsat.ecl rename to edexOsgi/com.raytheon.uf.edex.tafqueue/com.raytheon.uf.edex.tafqueue.ecl diff --git a/edexOsgi/com.raytheon.uf.tools.gfesuite/cli/rsyncGridsToCWF.sh b/edexOsgi/com.raytheon.uf.tools.gfesuite/cli/rsyncGridsToCWF.sh index 7f28d70474..eead9e0880 100644 --- a/edexOsgi/com.raytheon.uf.tools.gfesuite/cli/rsyncGridsToCWF.sh +++ b/edexOsgi/com.raytheon.uf.tools.gfesuite/cli/rsyncGridsToCWF.sh @@ -234,7 +234,7 @@ emailAddress3="" # Set some paths WRKDIR="${DXwrkDir}/data" FXA_BIN="/awips2/fxa/bin" -CDSHOST="dx3" +CDSHOST="ec" CDSPORT="9581" # It is possible that you may not have all of the parameters that your service backup sites diff --git a/edexOsgi/com.raytheon.uf.tools.gfesuite/cli/rsyncGridsToCWF_client.sh b/edexOsgi/com.raytheon.uf.tools.gfesuite/cli/rsyncGridsToCWF_client.sh index 7bec67a3d4..d4f04b6af9 100644 --- a/edexOsgi/com.raytheon.uf.tools.gfesuite/cli/rsyncGridsToCWF_client.sh +++ b/edexOsgi/com.raytheon.uf.tools.gfesuite/cli/rsyncGridsToCWF_client.sh @@ -5,7 +5,7 @@ # # # Executes rsynceGridsToCWF.sh locally or remotely as needed # # # -# Author: Juliya Dynina # +# Author: Juliya Dynina # # # # Revisions: # # 04/25/12: Created Script # @@ -21,7 +21,15 @@ host_name=`hostname` host_name=`echo $host_name | cut -c1-3` if [ $host_name != "dx3" ] && [ $host_name != "dx4" ]; then - ssh dx3 "/awips2/GFESuite/bin/rsyncGridsToCWF.sh ${1}" + CHK=`ssh -q -o "BatchMode yes" -o "ConnectTimeout 5" dx3 "echo success"`; + if [ "success" = $CHK ] >/dev/null 2>&1 + then + echo "dx3 connection success - running on dx3" + ssh dx3 "/awips2/GFESuite/bin/rsyncGridsToCWF.sh ${1}" + else + echo "dx3 connection failure - running on dx4" + ssh dx4 "/awips2/GFESuite/bin/rsyncGridsToCWF.sh ${1}" + fi else /awips2/GFESuite/bin/rsyncGridsToCWF.sh ${1} fi diff --git a/edexOsgi/gov.noaa.nws.ost.edex.plugin.regionalsat/component-deploy.xml b/edexOsgi/gov.noaa.nws.ost.edex.plugin.regionalsat/component-deploy.xml deleted file mode 100644 index 0162213379..0000000000 --- a/edexOsgi/gov.noaa.nws.ost.edex.plugin.regionalsat/component-deploy.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/nativeLib/dist.native/i386-pc-linux-gnu.tar.REMOVED.git-id b/nativeLib/dist.native/i386-pc-linux-gnu.tar.REMOVED.git-id index 4b35d20944..52f1f6e6b2 100644 --- a/nativeLib/dist.native/i386-pc-linux-gnu.tar.REMOVED.git-id +++ b/nativeLib/dist.native/i386-pc-linux-gnu.tar.REMOVED.git-id @@ -1 +1 @@ -635307bdc190794794c28bdd7f28ff9cad05c40f \ No newline at end of file +b288540d9df12e4f12524428bcfe5d37ae56cd76 \ No newline at end of file diff --git a/nativeLib/nativeLib.ecl b/nativeLib/nativeLib.ecl new file mode 100644 index 0000000000..e69de29bb2 diff --git a/nativeLib/rary.ohd.filesystem/awips/hydroapps/whfs/bin/run_SiteSpecific b/nativeLib/rary.ohd.filesystem/awips/hydroapps/whfs/bin/run_SiteSpecific index 299b05f4ee..5f1d3203b8 100755 --- a/nativeLib/rary.ohd.filesystem/awips/hydroapps/whfs/bin/run_SiteSpecific +++ b/nativeLib/rary.ohd.filesystem/awips/hydroapps/whfs/bin/run_SiteSpecific @@ -15,7 +15,7 @@ export WHFS_BIN_DIR=$(get_apps_defaults whfs_bin_dir) # set initial lid to the first command line argument passed into the script LID_PASSED_IN=$1 -export CLASSPATH=$CLASSPATH:$DB_DRIVER_PATH +export CLASSPATH=$DB_DRIVER_PATH # need to add a path to the jar file for this application CLASSPATH=$CLASSPATH:$WHFS_BIN_DIR/SiteSpecific.jar diff --git a/ncep/gov.noaa.nws.ncep.common.dataplugin.mcidas/res/scripts/imageType.sql b/ncep/gov.noaa.nws.ncep.common.dataplugin.mcidas/res/scripts/imageType.sql index f1c0c39376..1fd2445444 100644 --- a/ncep/gov.noaa.nws.ncep.common.dataplugin.mcidas/res/scripts/imageType.sql +++ b/ncep/gov.noaa.nws.ncep.common.dataplugin.mcidas/res/scripts/imageType.sql @@ -53,39 +53,39 @@ INSERT INTO awips.mcidas_image_type VALUES (60, 'VISPC', '128', '32'); INSERT INTO awips.mcidas_image_type VALUES (61, 'IR', '128', '31'); INSERT INTO awips.mcidas_image_type VALUES (62, 'WV', '512', '31'); INSERT INTO awips.mcidas_image_type VALUES (63, 'VIS', '1', '30'); -INSERT INTO awips.mcidas_image_type VALUES (70, 'VIS_0.6', '1', '53'); -INSERT INTO awips.mcidas_image_type VALUES (71, 'VIS_0.8', '2', '53'); -INSERT INTO awips.mcidas_image_type VALUES (72, 'NIR_1.6', '4', '53'); -INSERT INTO awips.mcidas_image_type VALUES (73, 'SWIR_3.9', '8', '53'); -INSERT INTO awips.mcidas_image_type VALUES (74, 'WV_6.2', '16', '53'); -INSERT INTO awips.mcidas_image_type VALUES (75, 'WV_7.3', '32', '53'); -INSERT INTO awips.mcidas_image_type VALUES (76, 'IR_8.7', '64', '53'); -INSERT INTO awips.mcidas_image_type VALUES (77, 'IR_10.8', '256', '53'); -INSERT INTO awips.mcidas_image_type VALUES (78, 'IR_12.0', '512', '53'); +INSERT INTO awips.mcidas_image_type VALUES (70, 'VIS-0.6', '1', '53'); +INSERT INTO awips.mcidas_image_type VALUES (71, 'VIS-0.8', '2', '53'); +INSERT INTO awips.mcidas_image_type VALUES (72, 'NIR-1.6', '4', '53'); +INSERT INTO awips.mcidas_image_type VALUES (73, 'SWIR-3.9', '8', '53'); +INSERT INTO awips.mcidas_image_type VALUES (74, 'WV-6.2', '16', '53'); +INSERT INTO awips.mcidas_image_type VALUES (75, 'WV-7.3', '32', '53'); +INSERT INTO awips.mcidas_image_type VALUES (76, 'IR-8.7', '64', '53'); +INSERT INTO awips.mcidas_image_type VALUES (77, 'IR-10.8', '256', '53'); +INSERT INTO awips.mcidas_image_type VALUES (78, 'IR-12.0', '512', '53'); INSERT INTO awips.mcidas_image_type VALUES (79, 'HRVIS', '2048', '53'); INSERT INTO awips.mcidas_image_type VALUES (80, 'IR', '64', '53'); INSERT INTO awips.mcidas_image_type VALUES (81, 'HRVIS', '2048', '53'); -INSERT INTO awips.mcidas_image_type VALUES (85, 'VIS_0.6', '1', '52'); -INSERT INTO awips.mcidas_image_type VALUES (86, 'VIS_0.8', '2', '52'); -INSERT INTO awips.mcidas_image_type VALUES (87, 'NIR_1.6', '4', '52'); -INSERT INTO awips.mcidas_image_type VALUES (88, 'SWIR_3.9', '8', '52'); -INSERT INTO awips.mcidas_image_type VALUES (89, 'WV_6.2', '16', '52'); -INSERT INTO awips.mcidas_image_type VALUES (90, 'WV_7.3', '32', '52'); -INSERT INTO awips.mcidas_image_type VALUES (91, 'IR_8.7', '64', '52'); -INSERT INTO awips.mcidas_image_type VALUES (92, 'IR_10.8', '256', '52'); -INSERT INTO awips.mcidas_image_type VALUES (93, 'IR_12.0', '512', '52'); +INSERT INTO awips.mcidas_image_type VALUES (85, 'VIS-0.6', '1', '52'); +INSERT INTO awips.mcidas_image_type VALUES (86, 'VIS-0.8', '2', '52'); +INSERT INTO awips.mcidas_image_type VALUES (87, 'NIR-1.6', '4', '52'); +INSERT INTO awips.mcidas_image_type VALUES (88, 'SWIR-3.9', '8', '52'); +INSERT INTO awips.mcidas_image_type VALUES (89, 'WV-6.2', '16', '52'); +INSERT INTO awips.mcidas_image_type VALUES (90, 'WV-7.3', '32', '52'); +INSERT INTO awips.mcidas_image_type VALUES (91, 'IR-8.7', '64', '52'); +INSERT INTO awips.mcidas_image_type VALUES (92, 'IR-10.8', '256', '52'); +INSERT INTO awips.mcidas_image_type VALUES (93, 'IR-12.0', '512', '52'); INSERT INTO awips.mcidas_image_type VALUES (94, 'HRVIS', '2048', '52'); INSERT INTO awips.mcidas_image_type VALUES (95, 'IR', '64', '52'); INSERT INTO awips.mcidas_image_type VALUES (96, 'HRVIS', '2048', '52'); -INSERT INTO awips.mcidas_image_type VALUES (100, 'VIS_0.6', '1', '51'); -INSERT INTO awips.mcidas_image_type VALUES (101, 'VIS_0.8', '2', '51'); -INSERT INTO awips.mcidas_image_type VALUES (102, 'NIR_1.6', '4', '51'); -INSERT INTO awips.mcidas_image_type VALUES (103, 'SWIR_3.9', '8', '51'); -INSERT INTO awips.mcidas_image_type VALUES (104, 'WV_6.2', '16', '51'); -INSERT INTO awips.mcidas_image_type VALUES (105, 'WV_7.3', '32', '51'); -INSERT INTO awips.mcidas_image_type VALUES (106, 'IR_8.7', '64', '51'); -INSERT INTO awips.mcidas_image_type VALUES (107, 'IR_10.8', '256', '51'); -INSERT INTO awips.mcidas_image_type VALUES (108, 'IR_12.0', '512', '51'); +INSERT INTO awips.mcidas_image_type VALUES (100, 'VIS-0.6', '1', '51'); +INSERT INTO awips.mcidas_image_type VALUES (101, 'VIS-0.8', '2', '51'); +INSERT INTO awips.mcidas_image_type VALUES (102, 'NIR-1.6', '4', '51'); +INSERT INTO awips.mcidas_image_type VALUES (103, 'SWIR-3.9', '8', '51'); +INSERT INTO awips.mcidas_image_type VALUES (104, 'WV-6.2', '16', '51'); +INSERT INTO awips.mcidas_image_type VALUES (105, 'WV-7.3', '32', '51'); +INSERT INTO awips.mcidas_image_type VALUES (106, 'IR-8.7', '64', '51'); +INSERT INTO awips.mcidas_image_type VALUES (107, 'IR-10.8', '256', '51'); +INSERT INTO awips.mcidas_image_type VALUES (108, 'IR-12.0', '512', '51'); INSERT INTO awips.mcidas_image_type VALUES (109, 'HRVIS', '2048', '51'); INSERT INTO awips.mcidas_image_type VALUES (110, 'IR', '64', '51'); INSERT INTO awips.mcidas_image_type VALUES (111, 'HRVIS', '2048', '51'); diff --git a/ncep/gov.noaa.nws.ncep.common.dataplugin.ncgrib/res/scripts/ncgrib_indices.sql b/ncep/gov.noaa.nws.ncep.common.dataplugin.ncgrib/res/scripts/ncgrib_indices.sql new file mode 100644 index 0000000000..a28bf2e831 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.common.dataplugin.ncgrib/res/scripts/ncgrib_indices.sql @@ -0,0 +1,64 @@ +/** + * 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. + **/ +CREATE INDEX "ncgribEventName_idx" + ON ncgrib + USING btree + (eventname); + +CREATE INDEX "ncgribModelName_idx" + ON ncgrib + USING btree + (modelname); + +CREATE INDEX "ncgribParm_idx" + ON ncgrib + USING btree + (parm); + +CREATE INDEX "ncgribRecordQuery_idx" + ON ncgrib + USING btree + (modelName, parm, vcord, glevel1, glevel2, refTime, forecastTime); + +CREATE INDEX "ncgribRecordEventRangeQuery_idx" + ON ncgrib + USING btree + (refTime, forecastTime, utilityFlags, rangeStart, rangeEnd, eventName); + +CREATE INDEX "ncgribModelsModelName_idx" + ON ncgrib_models + USING btree + (modelname); + +CREATE INDEX "ncgribModelsLevelId_idx" + ON ncgrib_models + USING btree + (level_id); + +CREATE INDEX "ncgribCoverageType_idx" + ON ncgridcoverage + USING btree + (dtype); + +CREATE INDEX "ncgribCoverageLookup_idx" + ON ncgridcoverage + USING btree + (dx, dy, la1, lo1, nx, ny); + diff --git a/ncep/gov.noaa.nws.ncep.common.dataplugin.ncgrib/src/gov/noaa/nws/ncep/common/dataplugin/ncgrib/spatial/projections/NcgridCoverage.java b/ncep/gov.noaa.nws.ncep.common.dataplugin.ncgrib/src/gov/noaa/nws/ncep/common/dataplugin/ncgrib/spatial/projections/NcgridCoverage.java index 8c19122842..45aec6bb21 100644 --- a/ncep/gov.noaa.nws.ncep.common.dataplugin.ncgrib/src/gov/noaa/nws/ncep/common/dataplugin/ncgrib/spatial/projections/NcgridCoverage.java +++ b/ncep/gov.noaa.nws.ncep.common.dataplugin.ncgrib/src/gov/noaa/nws/ncep/common/dataplugin/ncgrib/spatial/projections/NcgridCoverage.java @@ -58,6 +58,7 @@ import com.vividsolutions.jts.geom.Polygon; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * 4/7/09 1994 bphillip Initial Creation + * 5/23/12 xguo Merged 4 coverage tables into one * * * @@ -65,7 +66,7 @@ import com.vividsolutions.jts.geom.Polygon; * @version 1 */ @Entity -@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) +@Inheritance(strategy = InheritanceType.SINGLE_TABLE) @Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL) @XmlAccessorType(XmlAccessType.NONE) @DynamicSerialize diff --git a/ncep/gov.noaa.nws.ncep.common.dataplugin.ncuair/component-deploy.xml b/ncep/gov.noaa.nws.ncep.common.dataplugin.ncuair/component-deploy.xml index 2bbe3b7b53..0f80cb4041 100644 --- a/ncep/gov.noaa.nws.ncep.common.dataplugin.ncuair/component-deploy.xml +++ b/ncep/gov.noaa.nws.ncep.common.dataplugin.ncuair/component-deploy.xml @@ -1,12 +1,12 @@ - - - + + + - - - + + + diff --git a/ncep/gov.noaa.nws.ncep.common.dataplugin.stormtrack/component-deploy.xml b/ncep/gov.noaa.nws.ncep.common.dataplugin.stormtrack/component-deploy.xml index af70648927..b127d4ec79 100644 --- a/ncep/gov.noaa.nws.ncep.common.dataplugin.stormtrack/component-deploy.xml +++ b/ncep/gov.noaa.nws.ncep.common.dataplugin.stormtrack/component-deploy.xml @@ -1,12 +1,12 @@ - - - + + + - - - + + + diff --git a/ncep/gov.noaa.nws.ncep.common/component-deploy.xml b/ncep/gov.noaa.nws.ncep.common/component-deploy.xml index dd5381c323..ff8e58cff7 100644 --- a/ncep/gov.noaa.nws.ncep.common/component-deploy.xml +++ b/ncep/gov.noaa.nws.ncep.common/component-deploy.xml @@ -1,12 +1,12 @@ - - - + + + - - - + + + diff --git a/ncep/gov.noaa.nws.ncep.edex.common/META-INF/MANIFEST.MF b/ncep/gov.noaa.nws.ncep.edex.common/META-INF/MANIFEST.MF index 8569b5c506..47d6e1e42e 100644 --- a/ncep/gov.noaa.nws.ncep.edex.common/META-INF/MANIFEST.MF +++ b/ncep/gov.noaa.nws.ncep.edex.common/META-INF/MANIFEST.MF @@ -10,12 +10,13 @@ Export-Package: gov.noaa.nws.ncep.edex.common.dao, gov.noaa.nws.ncep.edex.common.metparameters, gov.noaa.nws.ncep.edex.common.metparameters.parameterconversion, gov.noaa.nws.ncep.edex.common.metparameters.quantity, + gov.noaa.nws.ncep.edex.common.ncinventory, gov.noaa.nws.ncep.edex.common.sounding, gov.noaa.nws.ncep.edex.common.stationTables, gov.noaa.nws.ncep.edex.locations, gov.noaa.nws.ncep.edex.tools.decoder, - gov.noaa.nws.ncep.edex.util, - gov.noaa.nws.ncep.metparameters.util + gov.noaa.nws.ncep.edex.util + Require-Bundle: com.raytheon.uf.common.serialization;bundle-version="1.11.12", com.raytheon.uf.edex.decodertools;bundle-version="1.11.16", com.raytheon.uf.common.localization;bundle-version="1.11.16", @@ -28,7 +29,10 @@ Require-Bundle: com.raytheon.uf.common.serialization;bundle-version="1.11.12", com.raytheon.uf.edex.pointdata;bundle-version="1.12.1174", com.raytheon.uf.common.pointdata;bundle-version="1.12.1174", com.raytheon.uf.common.status;bundle-version="1.12.1174" -Import-Package: gov.noaa.nws.ncep.common.tools, +Import-Package: com.raytheon.edex.uengine.tasks.query, + gov.noaa.nws.ncep.common.tools, + com.raytheon.uf.common.message.response, + com.raytheon.uf.common.dataplugin.radar, javax.measure.converter, javax.measure.quantity, javax.measure.unit diff --git a/ncep/gov.noaa.nws.ncep.edex.common/META-INF/services/com.raytheon.uf.common.serialization.ISerializableObject b/ncep/gov.noaa.nws.ncep.edex.common/META-INF/services/com.raytheon.uf.common.serialization.ISerializableObject index 93633f5d94..7bf193bae9 100644 --- a/ncep/gov.noaa.nws.ncep.edex.common/META-INF/services/com.raytheon.uf.common.serialization.ISerializableObject +++ b/ncep/gov.noaa.nws.ncep.edex.common/META-INF/services/com.raytheon.uf.common.serialization.ISerializableObject @@ -1,3 +1,5 @@ +gov.noaa.nws.ncep.edex.common.ncinventory.ManageNcInventoryMsg +gov.noaa.nws.ncep.edex.common.ncinventory.NcInventoryDefinition gov.noaa.nws.ncep.edex.common.dataRecords.NcFloatDataRecord gov.noaa.nws.ncep.edex.common.sounding.NcSoundingCube gov.noaa.nws.ncep.edex.common.sounding.NcSoundingProfile diff --git a/ncep/gov.noaa.nws.ncep.edex.common/res/spring/ncinventory-request.xml b/ncep/gov.noaa.nws.ncep.edex.common/res/spring/ncinventory-request.xml new file mode 100644 index 0000000000..dc8586896c --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.edex.common/res/spring/ncinventory-request.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.Throwable + + + + + + + + + + + java.lang.Throwable + + + + + + + + + + + java.lang.Throwable + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/metparameters/MetParameterFactory.java b/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/metparameters/MetParameterFactory.java index cb3949e1ec..40e1d6997f 100644 --- a/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/metparameters/MetParameterFactory.java +++ b/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/metparameters/MetParameterFactory.java @@ -263,6 +263,7 @@ public class MetParameterFactory implements ISerializableObject{ // ncParamsMap.put( ThunderstormOccurring12hr.class.getSimpleName(), new ThunderstormOccurring12hr() ); // ncParamsMap.put( ThunderstormOccurring24hr.class.getSimpleName(), new ThunderstormOccurring24hr() ); ncParamsMap.put( ShipIceThickness.class.getSimpleName(), new ShipIceThickness() ); + ncParamsMap.put( StationNumber.class.getSimpleName(), new StationNumber() ); ncParamsMap.put( TopOfIcing.class.getSimpleName(), new TopOfIcing() ); ncParamsMap.put( TopOfTurbulence.class.getSimpleName(), new TopOfTurbulence() ); ncParamsMap.put( TopOfWeather.class.getSimpleName(), new TopOfWeather() ); diff --git a/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/metparameters/StationNumber.java b/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/metparameters/StationNumber.java new file mode 100644 index 0000000000..8dcbfce6a0 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/metparameters/StationNumber.java @@ -0,0 +1,27 @@ +/** + * + */ +package gov.noaa.nws.ncep.edex.common.metparameters; + +import javax.measure.quantity.Dimensionless; +import com.raytheon.uf.common.serialization.ISerializableObject; +import com.raytheon.uf.common.serialization.adapters.UnitAdapter; + +/** + * @author archana + * + */ +public class StationNumber extends AbstractMetParameter implements + Dimensionless, ISerializableObject { + + /** + * + */ + private static final long serialVersionUID = 2038229143862266928L; + + public StationNumber() throws Exception { + super( new UnitAdapter().marshal(UNIT) ); + setValueIsString(); + } + +} diff --git a/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/metparameters/parameterconversion/NcUnits.java b/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/metparameters/parameterconversion/NcUnits.java index c1f9a24f16..63870a1e6d 100644 --- a/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/metparameters/parameterconversion/NcUnits.java +++ b/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/metparameters/parameterconversion/NcUnits.java @@ -45,6 +45,9 @@ public class NcUnits implements ISerializableObject{ @DynamicSerializeElement public static Unit INCHES_PER_THREE_HOURS = NonSI.INCH.divide(NonSI.HOUR.times( 3 ) ); + + @DynamicSerializeElement + public static Unit INCHES_PER_HOUR = NonSI.INCH.divide(NonSI.HOUR ); @DynamicSerializeElement public static Unit METER_SQUARE_PER_SECOND_SQUARE = @@ -100,6 +103,7 @@ public class NcUnits implements ISerializableObject{ UnitFormat.getUCUMInstance().label( PASCALS_PER_SEC, "pascals_per_sec" ); UnitFormat.getUCUMInstance().label( KELVIN_PER_DAY, "kelvin_per_day" ); UnitFormat.getUCUMInstance().label( JOULES_PER_KILOGRAM, "joules_per_kg" ); + UnitFormat.getUCUMInstance().label( INCHES_PER_HOUR, "inches_per_hour" ); // UnitFormat.getUCUMInstance().label( CELSIUS_PER_KILOMETER, "℃/km" ); // UnitFormat.getUCUMInstance().label( KELVIN_PER_MILLIBAR, "K/mb" ); diff --git a/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/ncinventory/InventoryDescription.java b/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/ncinventory/InventoryDescription.java new file mode 100644 index 0000000000..8e6402cb5d --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/ncinventory/InventoryDescription.java @@ -0,0 +1,114 @@ +package gov.noaa.nws.ncep.edex.common.ncinventory; + +import java.util.ArrayList; +import java.util.HashMap; + +import com.raytheon.uf.common.dataquery.db.QueryParam; + +/** + * An ncInvetory is defined by a set of base constraints which every entry + * (from a query or dataURI) must pass, and a set of inventory constraints which + * will define the levels in the inventory tree. + * Two inventories are the same if they have the same base and inventory constraints. + * The inventoryName is just used to know which 'user/rscDefn' created the inventory. + * + *
+ * SOFTWARE HISTORY
+ * Date       	Ticket#		Engineer	Description
+ * ------------	----------	-----------	--------------------------
+ *  01/20/12      #606       Greg Hull   Created
+ * 
+ * 
+ * + * @author ghull + * @version 1 + */ +public class InventoryDescription { + //private String rscDefnName; + private String inventoryName; // the resourceDefnName + + private ArrayList inventoryParamsList; + private HashMap baseQueryParamsMap; + + public InventoryDescription( String rscName ) { + inventoryName = rscName; + inventoryParamsList = new ArrayList(); + baseQueryParamsMap = new HashMap(); + } + + public InventoryDescription( String rscName, + HashMap basePrmsMap, + ArrayList invPrmsList ) { + inventoryName = rscName; + inventoryParamsList = new ArrayList( invPrmsList ); + baseQueryParamsMap = new HashMap( basePrmsMap ); + } + + public void addBaseParameter( String prmName, String prmValue, String op ) { + baseQueryParamsMap.put( prmName, new QueryParam( prmName, prmValue, op) ); + } + + // the order that this is called is important since it will define the + // levels of the tree + public void addInventoryParameter( String prmName, String prmValue, String op ) { + inventoryParamsList.add( new QueryParam( prmName, prmValue, op) ); + } + + public HashMap getBaseQueryParamsMap() { + return baseQueryParamsMap; + } + + public ArrayList getInventoryParamsList() { + return inventoryParamsList; + } + + public String getInventoryName( ) { + return inventoryName; + } + + public String getPluginName() { + return baseQueryParamsMap.get("pluginName").getValue().toString(); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + + ((baseQueryParamsMap == null) ? 0 : baseQueryParamsMap.toString().hashCode()); + result = prime * result + + ((inventoryParamsList == null) ? 0 : inventoryParamsList.toString().hashCode()); + return result; + } + + // Note that inventoryName is NOT part of the equals + // 2 users can create 2 resourceDefns with different names but as long as the constraints + // are the same then they are the same inventory + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + InventoryDescription other = (InventoryDescription) obj; + if (baseQueryParamsMap == null) { + if (other.baseQueryParamsMap != null) + return false; + } else if (!baseQueryParamsMap.toString().equals( other.baseQueryParamsMap.toString() )) + return false; + if (inventoryParamsList == null) { + if (other.inventoryParamsList != null) + return false; + } else if (!inventoryParamsList.toString().equals(other.inventoryParamsList.toString())) + return false; + return true; + } + + public String toString() { + return "InventoryName="+ inventoryName + + "\nBaseConstraints="+baseQueryParamsMap.toString() + + "\nInventoryConstraints=" + inventoryParamsList.toString(); + } +} diff --git a/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/ncinventory/ManageNcInventoryMsg.java b/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/ncinventory/ManageNcInventoryMsg.java new file mode 100644 index 0000000000..c8faf9fc60 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/ncinventory/ManageNcInventoryMsg.java @@ -0,0 +1,143 @@ +package gov.noaa.nws.ncep.edex.common.ncinventory; + +import java.util.ArrayList; +import java.util.HashMap; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + +import com.raytheon.uf.common.dataquery.requests.RequestConstraint; +import com.raytheon.uf.common.dataquery.requests.RequestableMetadataMarshaller; +import com.raytheon.uf.common.serialization.annotations.DynamicSerialize; +import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement; +import com.raytheon.uf.common.serialization.comm.IServerRequest; + +/** + * + *
+ * SOFTWARE HISTORY
+ * Date       	Ticket#		Engineer	Description
+ * ------------	----------	-----------	--------------------------
+ *  04/13/12      #606       Greg Hull   created
+ * 
+ * 
+ * + * @author ghull + * @version 1 + */ +@DynamicSerialize +@XmlRootElement(name = "ManageNcInventoryMsg") +@XmlAccessorType(XmlAccessType.NONE) +public class ManageNcInventoryMsg implements IServerRequest { + + // the directiveType and also the prefix of a message put on the + // manageInventory topic for all edexes. + // + public static final String CREATE_INVENTORY_DIRECTIVE = "CREATE:"; + + public static final String REINIT_INVENTORY_DIRECTIVE = "REINIT:"; + + public static final String DELETE_INVENTORY_DIRECTIVE = "DELETE:"; + + public static final String CREATE_SUCCESS_RESPONSE = "Inventory Created"; + + public static final String REINIT_SUCCESS_RESPONSE = "Inventory Reinitialized"; + + public static final String DELETE_SUCCESS_RESPONSE = "Inventory Deleted"; + + /// ... REBUILD...SYNC...??? + + @DynamicSerializeElement + @XmlElement + private String directiveType = CREATE_INVENTORY_DIRECTIVE; // Create or Delete + + @DynamicSerializeElement + @XmlElement + private String inventoryName; // the resourceDefnName + + @DynamicSerializeElement + @XmlElement + private ArrayList inventoryParamsList; + + // all data that goes into the inventory must pass these constraints. + // inventory parameters may have a constraint in which case these + // will be returned separately by getInventoryQueryParams. + // + @DynamicSerializeElement + @XmlElement + @XmlJavaTypeAdapter(value = RequestableMetadataMarshaller.class) + private HashMap baseConstraints; + + public String getDirectiveType() { + return directiveType; + } + + public void setDirectiveType(String directiveType) { + this.directiveType = directiveType; + } + + public static ManageNcInventoryMsg makeCreateDirective() { + ManageNcInventoryMsg msg = new ManageNcInventoryMsg(); + msg.setDirectiveType(CREATE_INVENTORY_DIRECTIVE); + return msg; + } + + public static ManageNcInventoryMsg makeReinitDirective() { + ManageNcInventoryMsg msg = new ManageNcInventoryMsg(); + msg.setDirectiveType(REINIT_INVENTORY_DIRECTIVE); + return msg; + } + + public static ManageNcInventoryMsg makeDeleteDirective() { + ManageNcInventoryMsg msg = new ManageNcInventoryMsg(); + msg.setDirectiveType(DELETE_INVENTORY_DIRECTIVE); + return msg; + } + + public NcInventoryDefinition getInventoryDefinition() { + if( inventoryName == null || inventoryName.isEmpty() || + baseConstraints == null || baseConstraints.isEmpty() || + inventoryParamsList == null || inventoryParamsList.isEmpty() ) { + return null; + } + else { + return new NcInventoryDefinition( inventoryName, baseConstraints, inventoryParamsList ); + } +// return inventoryDescr; + } + + public void setInventoryDefinition(NcInventoryDefinition inventoryDescr) { + this.inventoryName = inventoryDescr.getInventoryName(); + this.baseConstraints = inventoryDescr.getBaseConstraints(); + this.inventoryParamsList = inventoryDescr.getInventoryParameters(); + } + + public String getInventoryName() { + return inventoryName; + } + + public void setInventoryName(String inventoryName) { + this.inventoryName = inventoryName; + } + + public ArrayList getInventoryParamsList() { + return inventoryParamsList; + } + + public void setInventoryParamsList(ArrayList inventoryParamsList) { + this.inventoryParamsList = inventoryParamsList; + } + + public HashMap getBaseConstraints() { + return baseConstraints; + } + + public void setBaseConstraints( + HashMap baseConstraints) { + this.baseConstraints = baseConstraints; + } + +} diff --git a/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/ncinventory/ManageNcInventoryMsgHandler.java b/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/ncinventory/ManageNcInventoryMsgHandler.java new file mode 100644 index 0000000000..29a7aab7a5 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/ncinventory/ManageNcInventoryMsgHandler.java @@ -0,0 +1,142 @@ +package gov.noaa.nws.ncep.edex.common.ncinventory; +/** + * + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 02/14/2012	606			Greg Hull	Initial coding
+ * 
+ * @author Greg Hull
+ * @version 1.0
+ */
+import java.io.File;
+import java.io.FileReader;
+
+import com.raytheon.uf.common.serialization.SerializationUtil;
+import com.raytheon.uf.common.serialization.comm.IRequestHandler;
+import com.raytheon.uf.edex.core.EDEXUtil;
+import com.raytheon.uf.edex.core.EdexException;
+
+/**
+ * Called by ThriftClient on one EdexRequest. This will create the inventory
+ * for this Edex Request and send a message to topic for all EdexRequests.
+ *    The load time is stored in the inventory and will be used to determine
+ * 
+ * 
+ * 
+ * SOFTWARE HISTORY
+ * Date       	Ticket#		Engineer	Description
+ * ------------	----------	-----------	--------------------------
+ *  04/04/12      #606       Greg Hull   Created
+ *  05/20/12      #606       Greg Hull   Reinit so the description is not needed.
+ * 
+ * 
+ * + * @author ghull + * @version 1 + */ +public class ManageNcInventoryMsgHandler implements IRequestHandler { + + public static final String MANAGE_INVENTORY_TOPIC = "jms-generic:topic:manageInventory"; + + @Override + public Object handleRequest(ManageNcInventoryMsg mngrMsg) throws Exception { +// out.println("NcInventoryCreateHandler handleRequest called for "+ +// createMsg.getInventoryDescr().getInventoryName() ); + String directive = mngrMsg.getDirectiveType(); + + if( directive.equals( ManageNcInventoryMsg.CREATE_INVENTORY_DIRECTIVE ) ) { + return initInventory( mngrMsg, false ); + } + else if( directive.equals( ManageNcInventoryMsg.REINIT_INVENTORY_DIRECTIVE ) ) { + + // the Description is taken from the existing inventory instead of the msg. + // + NcInventory inv = NcInventory.getInventory( mngrMsg.getInventoryName() ); + + if( inv == null ) { + return "Inventory " + mngrMsg.getInventoryName()+" has not been created."; + } + else if( mngrMsg.getInventoryDefinition() != null ) { + if( !inv.getInventoryDefinition().equals( mngrMsg.getInventoryDefinition() ) ) { + return "???Existing inventory "+mngrMsg.getInventoryName()+ + " has different description than that given in the ReInit msg???"; + } + } + + mngrMsg.setInventoryDefinition( inv.getInventoryDefinition() ); + + return initInventory( mngrMsg, true ); + } + else if ( directive.equals( ManageNcInventoryMsg.DELETE_INVENTORY_DIRECTIVE ) ) { + return deleteInventory( mngrMsg ); + } + else { + return (Object)"Unrecognized NcInventory Directive"; + } + } + + public Object initInventory( ManageNcInventoryMsg initMsg, boolean reload ) { + + try { + NcInventory.initInventory( initMsg.getInventoryDefinition(), reload ); + + // if the inventory created successfully on this EDEX, send + // a msg to all EDEX Requests to create their own inventory. + // + File tmpFile = File.createTempFile("LoadInventoryRequest-", ".xml" ); + + SerializationUtil.jaxbMarshalToXmlFile( + initMsg, tmpFile.getAbsolutePath() ); + + FileReader freader = new FileReader( tmpFile ); + char[] xmlStr = new char[(int)tmpFile.length()]; + freader.read(xmlStr); + freader.close(); + + EDEXUtil.getMessageProducer().sendAsyncUri( MANAGE_INVENTORY_TOPIC, + ( reload ? ManageNcInventoryMsg.REINIT_INVENTORY_DIRECTIVE : + ManageNcInventoryMsg.CREATE_INVENTORY_DIRECTIVE ) + + new String(xmlStr) ); + + if( !tmpFile.delete() ) { + System.out.println("Error deleting temp file:"+tmpFile.getName()); + } + + } catch ( Exception ex ) { + return ex.getMessage(); + } + + // msg recieved but no guarantee on whether the inventory was created. + // + return ManageNcInventoryMsg.CREATE_SUCCESS_RESPONSE; + } + + // this should be quick so don't bother deleting here for this Edex. + // Just put the msg on the topic and delete the inventory when the msg is + // recieved. + // + public Object deleteInventory( ManageNcInventoryMsg deleteMsg ) { + + try { + String invName = deleteMsg.getInventoryName(); + + EDEXUtil.getMessageProducer().sendAsyncUri( MANAGE_INVENTORY_TOPIC, + ManageNcInventoryMsg.DELETE_INVENTORY_DIRECTIVE + invName ); + + // not much of a success msg since we aren't really deleting yet, + // so we'll try for at least a little feedback by checking if the inventory exists +// if( NcInventory.getInventory( invName ) == null ) { +// +// } + + return ManageNcInventoryMsg.DELETE_SUCCESS_RESPONSE; + + } catch (EdexException e) { + return e.getMessage(); + } + } +} diff --git a/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/ncinventory/NcInventory.java b/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/ncinventory/NcInventory.java new file mode 100644 index 0000000000..cf096ad411 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/ncinventory/NcInventory.java @@ -0,0 +1,729 @@ +package gov.noaa.nws.ncep.edex.common.ncinventory; + +import static java.lang.System.out; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import com.raytheon.edex.uengine.tasks.query.MetadataCatalogQuery; +import com.raytheon.uf.common.dataquery.db.QueryParam; +import com.raytheon.uf.common.dataquery.db.QueryParam.QueryOperand; +import com.raytheon.uf.common.dataquery.requests.RequestConstraint; +import com.raytheon.uf.common.dataquery.requests.RequestConstraint.ConstraintType; +import com.raytheon.uf.edex.database.dao.CoreDao; +import com.raytheon.uf.edex.database.dao.DaoConfig; +import com.raytheon.uf.edex.database.plugin.PluginFactory; +import com.raytheon.uf.edex.database.query.DatabaseQuery; + +/** + * + * + *
+ * SOFTWARE HISTORY
+ * Date       	Ticket#		Engineer	Description
+ * ------------	----------	-----------	--------------------------
+ *  02/20/12      #606       Greg Hull   Created
+ *  04/20/12      #606       Greg Hull   Init using one distinct query
+ *  05/28/12      #606       Greg Hull   store actual db values (w/o underscores)
+ * 
+ * 
+ * + * @author ghull + * @version 1 + */ +public class NcInventory { + + // map of all ncInventories by description. + // + private static Map inventoriesMap = new HashMap(); + + // map of all ncInventories by plugin + // (We could do without this if it becomes too tedious to maintain. If just helps speed up + // the inventory updates, but we could always just attempt to update all inventories with each URI) + // + private static Map> inventoriesByPlugin = + new HashMap>(); + + // a map from the inventory name (userName+rscDefnName) to the inventoryDescription. + // + private static Map inventoryAliasMap= new HashMap(); + + private static Object inventoryLock = new Object(); + + // the descriptor for this inventory. This is the baseConstraints (which all nodes must + // match and the inventory constraints which defines the parameter and a constraint for + // each node level. + private NcInventoryDefinition inventoryDefn; + + // This defines the levels of the inventory tree. The first level will be the pluginName + // and the last param will be the dataTimes. + // + private ArrayList paramNames; + + public int getInventoryDepth() { + return paramNames.size(); + } + + // the top level node. + private InventoryNode treeTopNode; + + private long lastLoadTime = 0; + + // all nodes, not just leafs + private long nodeCount=0; + private long branchCount=0; + + // temporary holding place for a search. + private ArrayList searchResults = new ArrayList(); + + private final static Log logger = LogFactory.getLog(NcInventory.class); + + public static NcInventory getInventory( String invName ) { + + synchronized( inventoryLock ) { + if( !inventoryAliasMap.containsKey( invName ) || + inventoryAliasMap.get( invName ) == null ) { + + logError("getInventory() can't find inventory or alias for "+ invName ); + return null; + } + + return getInventory( inventoryAliasMap.get( invName ) ); + } + } + + public static List getAllNcInventories() { + return new ArrayList( inventoriesMap.values() ); + } + + public static NcInventory getInventory( NcInventoryDefinition invDescr ) { + + synchronized( inventoryLock ) { + if( !inventoriesMap.containsKey( invDescr ) ) { + return null; + } + + return inventoriesMap.get( invDescr ); + } + } + + public static List getInventoriesForPlugin( String plugin ) { + List invList = new ArrayList(); + + synchronized( inventoryLock ) { + if( inventoriesByPlugin.containsKey( plugin ) ) { + return inventoriesByPlugin.get( plugin ); + } + else { + return invList; + } + } + } + + // + private NcInventory( NcInventoryDefinition id ) { + + inventoryDefn = id; + + paramNames = new ArrayList( inventoryDefn.getInventoryParameters() ); + + treeTopNode = new InventoryNode( null, "pluginName", inventoryDefn.getPluginName() ); + } + + // not synchronized since we don't want to block if re are re-initializing + // + public static String reinitInventories( String plugin ) { + + List invDescList = NcInventory.getInventoriesForPlugin( plugin ); + + for( NcInventoryDefinition invDescr : invDescList ) { + try { + NcInventory.initInventory( invDescr, true ); + } catch( Exception e ) { + NcInventory.logError("Failed to re-init NcInventory "+ + invDescr.getInventoryName()+e.getMessage() ); + } + } + return "N/A"; + } + + public static String initInventory( NcInventoryDefinition invDescr, + Boolean reload ) throws Exception { + + // if there is a matching inventoryDescription then get the inventory. + // + NcInventory inv = getInventory( invDescr ); + NcInventory newInv = null; + + long t0 = System.currentTimeMillis(); + + if( inv == null || reload ) { + newInv = new NcInventory( invDescr ); + + try { + newInv.loadInventory(); + } + catch( Exception e ) { + logError( "Failed to Create Inventory for "+invDescr.toString() + + "\nError is : " + e.getMessage() ); + + // TODO : send an alertViz msg to cave + throw new Exception( "Failed to Create Inventory for "+invDescr.toString() + + "\nError is : " + e.getMessage() ); + } + } + + synchronized( inventoryLock ) { + + // if creating a new Inventory add it to the map + // + if( newInv != null ) { + + if( inv != null ) { + inv.dispose(); + inventoriesMap.remove( inv.getInventoryDefinition() ); + } + + inventoriesMap.put( invDescr, newInv ); + + if( !inventoriesByPlugin.containsKey( invDescr.getPluginName() ) ) { + inventoriesByPlugin.put( invDescr.getPluginName(), + new ArrayList() ); + } + + List idList = + inventoriesByPlugin.get( invDescr.getPluginName() ); + + if( !idList.contains( newInv.getInventoryDefinition() ) ) { + idList.add( newInv.getInventoryDefinition() ); + } + + logInfo("Inventory "+invDescr.getInventoryName() + " loaded "+ + newInv.getNodeCount() + " nodes and "+ + newInv.getBranchCount() + " branches in "+ + (System.currentTimeMillis()-t0) +" msecs" ); + } + + // make sure that there is an alias for this inventory + // + //if( !inventoryAliasMap.containsKey( invDescr.getInventoryName() ) ) { + inventoryAliasMap.put( invDescr.getInventoryName(), invDescr ); + + if( inv != null && + !invDescr.getInventoryName().equals( + inv.getInventoryDefinition().getInventoryName() )) { + logInfo("Inventory "+ + invDescr.getInventoryName()+" aliased to inventory "+ + inv.getInventoryDefinition().getInventoryName() ); + } + //} + } + + return "Inventory Initialized"; + } + + public static void deleteInventory( String invName ) throws Exception { + + synchronized( inventoryLock ) { + if( !inventoryAliasMap.containsKey( invName ) || + inventoryAliasMap.get( invName ) == null ) { + throw new Exception("deleteInventory() can't find alias for "+ invName ); + } + + NcInventoryDefinition invDescr = inventoryAliasMap.get( invName ); + + if( !inventoriesMap.containsKey( invDescr ) || + inventoriesMap.get( invDescr ) == null ) { + throw new Exception("deleteInventory() can't find inventory for "+ invName ); + } + + // first remove all aliases to this inventory + // + ArrayList invAliases = new ArrayList( inventoryAliasMap.keySet() ); + + for( String invAlias : invAliases ) { + + if( inventoryAliasMap.get( invAlias ).equals( invDescr ) ) { + inventoryAliasMap.remove( invAlias ); + } + } + + inventoriesMap.remove( invDescr ); + + logInfo("Inventory "+ + invDescr.getInventoryName()+" has been Deleted and all aliases removed." ); + } + + } + + public NcInventoryDefinition getInventoryDefinition() { + return inventoryDefn; + } + + public long getNodeCount() { + return nodeCount; + } + + public long getBranchCount() { + return branchCount; + } + + private boolean loadInventory() throws Exception { + synchronized ( this ) { + + // get the dao and the record class for this plugin and use them + // to create a DatabaseQuery. + // + CoreDao dao = PluginFactory.getInstance().getPluginDao( + inventoryDefn.getPluginName() ); + String recordClassStr = PluginFactory.getInstance().getPluginRecordClassName( + inventoryDefn.getPluginName() ); + + DatabaseQuery dbQuery = new DatabaseQuery( recordClassStr ); + + List distinctFields = new ArrayList( + inventoryDefn.getInventoryParameters() ); + + // don't need pluginName as a field. + // + distinctFields.remove(0); + + dbQuery.addOrder( distinctFields.get( 0 ), true ); + dbQuery.addDistinctParameter( distinctFields ); + + // get each of the base constraints and add them to the dbQuery + for( QueryParam queryPrm : inventoryDefn.getBaseQueryParamsMap().values() ) { + if( !queryPrm.getField().equals("pluginName" ) ) { + dbQuery.addQueryParam( queryPrm ); + } + } + + List queryResults = dao.queryByCriteria( dbQuery ); + + if( !queryResults.isEmpty() ) { + + for( Object queryRslt : queryResults ) { + // if there is only one parameter then the results will be an + // Object, otherwise it will be an array of Objects. + // + HashMap rsltMap = new HashMap(); + rsltMap.put( "pluginName", inventoryDefn.getPluginName() ); + + if( distinctFields.size() == 1 ) { + rsltMap.put( distinctFields.get(0), queryRslt ); + } + else { + if( !queryRslt.getClass().isArray() ) { + throw new Exception( + "dao.queryByCriteria returned unexpected non-array type???"); + } + Object rsltArray[] = (Object[])queryRslt; + + for( int p=0 ; p rsltArray = new ArrayList( +// Arrays.asList( (Object[]) queryRslt ) ); + + // if updateNode returns false then the rsltMap was not added to the + // tree. Since our query should only return distinct results this is a sanity check. + if( !treeTopNode.updateNode( rsltMap ) ) { + logWarning("NcInventory:loadInventory sanity check; distinct query result ("+ + queryRslt.toString()+ ") did not add a new node to the tree???" ); + } + } + } + +// treeTopNode.queryChildNodes(); + lastLoadTime = System.currentTimeMillis(); + return true; + } + } + + public long getLastLoadTime() { + return lastLoadTime; + } + + public class InventoryNode { + private String paramName; + private String paramValue; // straight from the DB and may contain spaces. + // when returning the value from a search or when + // updating from a URI the spaces will be replaced by '_'s. + private InventoryNode parentNode; + + // map from paramvalues to a node that may store + private HashMap childNodes; + +// private int nodeDepth; + + public InventoryNode( InventoryNode parent, String pName, String pValue ) { + parentNode = parent; + paramName = pName; + + paramValue = pValue; +// nodeCount++; // not the top node + } + + public InventoryNode getParamNode() { + return parentNode; + } + + public String getParamName() { + return paramName; + } + + public String getParamValue() { + return paramValue; + } + + public String getParamValueNoSpaces() { + return paramValue.replaceAll(" ", "_"); + } + + // used to index into paramNames + public int getNodeDepth() { + return (parentNode == null ? 0 : parentNode.getNodeDepth()+1 ); + } + + // add a constraint for this node to the requestConstraint for its parent. + // This is used when querying the DB (ie initializing the inventory) + // + public HashMap getRequestConstraintsForNode() { + + if( parentNode == null ) { + return new HashMap( inventoryDefn.getBaseQueryParamsMap() ); + } + HashMap nodeConstraints = + parentNode.getRequestConstraintsForNode(); + + // use the actual paramValue (as queried from the db) which may contain spaces + nodeConstraints.put( paramName, new QueryParam( paramName, paramValue ) ); + + return nodeConstraints; + } + + // go up the tree and get + public String[] getBranchValue() { + if( parentNode == null ) { + String[] brVals = new String[ getInventoryDepth() ]; + brVals[0] = getParamValueNoSpaces(); + return brVals; + } + else { + String[] brVals = parentNode.getBranchValue(); + brVals[ getNodeDepth() ] = getParamValueNoSpaces(); + return brVals; + } + } + + private void getBranchValueAsString( StringBuffer sbuf, String delimiter ) { + if( parentNode == null ) { + sbuf.append( getParamValueNoSpaces() ); // with a preceding '/' the string.split will not be indexed correctly + return ; + } + else { + parentNode.getBranchValueAsString(sbuf, delimiter); + sbuf.append( delimiter+getParamValueNoSpaces() ); + } + } + + // + public InventoryNode createChildNode( String prmName, String prmValue ) { + + if( childNodes == null ) { + childNodes = new HashMap(); + } + else { // sanity check that the prmName matches other child nodes + assert( !childNodes.isEmpty() ); + assert( childNodes.values().iterator().next().getParamName().equals( prmName ) ); + } + + if( childNodes.containsKey( prmValue ) ) { + return childNodes.get( prmValue ); + } + else { + InventoryNode newNode = new InventoryNode( this, prmName, prmValue ); + + String keyStr = newNode.getParamValue();//.replaceAll(" ","_"); + + childNodes.put( keyStr, newNode ); + + nodeCount++; +// out.println("NcInventory param "+prmName+" node depth = "+getNodeDepth() + " inv depth "+getInventoryDepth() ); + + if( newNode.getNodeDepth() == getInventoryDepth()-1 ) { + branchCount++; + } + + return newNode; + } + } + + // NOTE : this will use the '_' version of the prmValue to look up + // the child node in the map. + public InventoryNode getChildNode( String prmName, String prmValue ) { + if( childNodes == null || childNodes.isEmpty() ) { + return null; + } +// String keyStr = prmValue.replaceAll(" ", "_"); + InventoryNode childNode = childNodes.get( prmValue );//keyStr ); + + if( childNode != null && + childNode.getParamName().equals( prmName ) ) { // sanity check + return childNode; + } + + if( childNode != null ) { + logWarning( "getChildNode(): ??? sanity check childNode prmname "+childNode.getParamName()+ + " doesn't match requested prm " + prmName ); + } + + return null; + } + + // add a constraint for this paramName/Value and query for child nodes + // + /********* + This was used before loadInventory was changed to query all distinct + parameters with one query. + private void queryChildNodes() throws Exception { +// if( paramName.startsWith( "satelliteName") ) { +// out.println("GINI"); +// } + + if( getNodeDepth() == getInventoryDepth()-1 ) { + return; + } + + String childParamName = paramNames.get( getNodeDepth()+1 ); + + try { + MetadataCatalogQuery catQuery = new MetadataCatalogQuery( inventoryDescr.getPluginName() ); + catQuery.setDistinctField( childParamName ); + + HashMap nodeConstraints = getRequestConstraintsForNode(); + + for( QueryParam qParam : nodeConstraints.values() ) { + if( !qParam.getField().equals("pluginName") ) { + catQuery.addParameter( qParam.getField(), + qParam.getValue().toString(), qParam.getOperand()); + } + } + + // check that the queried values pass the constraintsForChildNodes + QueryParam childQueryParam = + inventoryDescr.getQueryParamFromConstraints( childParamName ); + //constraintsForChildNodes.get( childParamName ); + + if( childQueryParam != null ) { + catQuery.addParameter( childQueryParam.getField(), + childQueryParam.getValue().toString(), childQueryParam.getOperand() ); + } + + String[] childParamValues = catQuery.execute().getValues(); + + for( String childPrmVal : childParamValues ) { + InventoryNode childNode = createChildNode( childParamName, childPrmVal ); + childNode.queryChildNodes(); + } + + } catch (Exception e1) { +// out.println("CatalogQuery Error while initializing rscInventory "+ +// ": "+e1.getMessage() ); + throw e1; + } + } + *****************************/ + + private void searchForNodes( + HashMap searchConstraints, String searchPrm ) { + + // if this node doesn't match the constraints, return without adding + // anything to the searchResults + if( searchConstraints.containsKey( paramName ) ) { + RequestConstraint reqCon = searchConstraints.get( paramName ); + + if( !reqCon.evaluate( getParamValue() ) ) { // getParamValueNoSpaces() ) ) { + return; + } + } + else { + // true or false; if there is no constraint for this level? + + } + + // if this is the last level or if this is the requested search parameter. + // + if( getNodeDepth() == getInventoryDepth()-1 ) { + searchResults.add( this ); + } + // if this is the parameter being requested add it to the searchResults + else if( !searchPrm.isEmpty() && + paramName.equals( searchPrm ) ) { + searchResults.add( this ); + } + else if( childNodes != null ) { // else search each of the child nodes + + for( InventoryNode child : childNodes.values() ) { + child.searchForNodes( searchConstraints, searchPrm ); + } + } + + return; + } + + // + private boolean updateNode( Map paramValues ) throws Exception { + + // if there is a constraint for this node, make sure that + // the parameter passes it. + if( !evaluateParameterConstraint( paramName, paramValues.get( paramName ) ) ) { + return false; + } + +// out.println(paramValues.toString() + " passed constraint for node "+paramName ); + + if( getNodeDepth() == getInventoryDepth()-1 ) { + return true; + } + + String chldPrmName = paramNames.get( getNodeDepth()+1 ); + + // sanity check. this is checked for in updateInventory + if( chldPrmName == null || + !paramValues.containsKey( chldPrmName ) ) { + throw new Exception("sanity check!!! : param "+ chldPrmName + " not found in URI map" ); + } + + Object chldPrmValue = paramValues.get( chldPrmName ); + String chldPrmStrVal = chldPrmValue.toString(); + + InventoryNode chldNode = getChildNode( chldPrmName, chldPrmStrVal ); + + if( chldNode == null ) { + + chldNode = createChildNode( chldPrmName, chldPrmStrVal ); + + if( !chldNode.updateNode( paramValues ) ) { + childNodes.remove( chldPrmStrVal ); + return false; + } + return true; +// out.println("creating child node for "+ chldPrmName+"="+chldPrmStrVal); + } + else { + return chldNode.updateNode( paramValues ); + } + } + } + + // + // the constraints here should have had any spaces replaced with '_'s. + // + public String[] search( + HashMap searchConstraints, String searchPrm ) { + + // lock this ncInventory so that it is not updated in the middle of a search + // + synchronized( this ) { + searchResults.clear(); + + if( searchPrm != null && !searchPrm.isEmpty() && + !paramNames.contains( searchPrm ) ) { + out.println("Error searching inventory: param "+ searchPrm+" doen'nt exist"); + return null; + } + + treeTopNode.searchForNodes( searchConstraints, searchPrm ); + + String[] retRslts = new String[ searchResults.size() ]; + + int r=0; + StringBuffer sbuf = new StringBuffer( ); + + for( InventoryNode inode : searchResults ) { + inode.getBranchValueAsString( sbuf, "/" ); + retRslts[r++] = sbuf.toString(); + sbuf.setLength(0); + } + + return retRslts; + } + } + + // + public boolean updateInventory( Map paramValues ) throws Exception { + + synchronized( this ) { + // check that all of the base constraints are met by the paramValues + // + for( String constraintPrmName : inventoryDefn.getBaseQueryParamsMap().keySet() ) { + // if there is no value for a constraint then we fail + // the dataURIs for each plugin must have the information needed for all the constraints + // for an inventory. + if( !paramValues.containsKey( constraintPrmName ) ) { + throw new Exception( "dataURI has no attribute/field for inventory "+ + inventoryDefn.getInventoryName() + "'s base constraint, "+ constraintPrmName ); + } + + if( !evaluateParameterConstraint( constraintPrmName, + paramValues.get( constraintPrmName ) ) ) { + return false; + } + } + +// out.println( paramValues.toString()+" passed base constraints for "+inventoryDescr.getInventoryName() ); + + // confirm that there are param values given for all of the inventory parameters + // + for( String invParam : paramNames ) { + if( !paramValues.containsKey( invParam ) ) { + throw new Exception( "dataURI has no attribute/field for "+ + inventoryDefn.getInventoryName() + "'s inventory constraint, "+ invParam ); + } + } + + // + return treeTopNode.updateNode( paramValues ); + } + } + + private boolean evaluateParameterConstraint( String prmName, Object prmVal ) { + + // if there is no constraint for this parameter then return true. + // + if( !inventoryDefn.getBaseConstraints().containsKey( prmName ) ) { + return true; + } + + RequestConstraint reqConstr = inventoryDefn.getBaseRequestConstraint( prmName ); + + // No longer need to do this since we are storing the actual db value. + // if the prmVal is coming from a URI then it will have already replaced '_'s with spaces. +// reqConstr = new RequestConstraint( +// reqConstr.getConstraintValue().replaceAll(" ", "_"), +// reqConstr.getConstraintType() ); +// if( prmVal instanceof String ) { +// prmVal = prmVal.toString().replaceAll(" ", "_"); +// } + + return reqConstr.evaluate( prmVal ); + } + + private void dispose() { + // TODO : + } + + public static void logInfo( String info ) { logger.info( "NcInventory: "+info ); } + public static void logWarning( String warn ) { logger.warn( "NcInventory: "+warn ); } + public static void logError( String err ) { logger.error( "NcInventory: "+err ); } +} diff --git a/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/ncinventory/NcInventoryDefinition.java b/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/ncinventory/NcInventoryDefinition.java new file mode 100644 index 0000000000..673c03a1b6 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/ncinventory/NcInventoryDefinition.java @@ -0,0 +1,265 @@ +package gov.noaa.nws.ncep.edex.common.ncinventory; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.adapters.XmlAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + +import com.raytheon.uf.common.dataquery.db.QueryParam; +import com.raytheon.uf.common.dataquery.db.QueryParam.QueryOperand; +import com.raytheon.uf.common.dataquery.requests.RequestConstraint; +import com.raytheon.uf.common.dataquery.requests.RequestableMetadataMarshaller; +import com.raytheon.uf.common.dataquery.requests.RequestConstraint.ConstraintType; +import com.raytheon.uf.common.serialization.ISerializableObject; +import com.raytheon.uf.common.serialization.annotations.DynamicSerialize; +import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement; + +/** + * An ncInvetory is defined by a set of base constraints which every entry + * (from a query or dataURI) must pass, and a set of inventory parameters which + * will define the levels in the inventory tree. + * Two inventories are the same if they have the same base and inventory constraints. + * The inventoryName is just used to know which 'user/rscDefn' created the inventory. + * + *
+ * SOFTWARE HISTORY
+ * Date       	Ticket#		Engineer	Description
+ * ------------	----------	-----------	--------------------------
+ *  01/20/12      #606       Greg Hull   Created
+ *  05/03/12      #606       Greg Hull   make ISerializable; changed to store all constraints as
+ *                                       RequestConstraints in baseConstraints and access as QueryParam
+ *  05/23/12      #606       Greg Hull   Save jaxb files in static_common for edex to read on startup
+ * 
+ * 
+ * + * @author ghull + * @version 1 + */ +@DynamicSerialize +@XmlRootElement(name = "NcInventoryDefinition") +@XmlAccessorType(XmlAccessType.NONE) +public class NcInventoryDefinition implements ISerializableObject { + + @DynamicSerializeElement + @XmlElement + private String inventoryName; // the resourceDefnName + + // the names of parameters that are kept in the inventory. These are the + // levels in the inventory tree. There may be a + // + @DynamicSerializeElement + @XmlElement + @XmlJavaTypeAdapter(value = InvParmListAdapter.class) + private ArrayList inventoryParameters; + + // all data that goes into the inventory must pass these constraints. + // inventory parameters may have a constraint in which case these + // will be returned separately by getInventoryQueryParams. + // + @DynamicSerializeElement + @XmlElement + @XmlJavaTypeAdapter(value = RequestableMetadataMarshaller.class) + private HashMap baseConstraints; + + // no-arg constructor required for serialization + public NcInventoryDefinition() { + inventoryName = "none"; + inventoryParameters = new ArrayList(); + baseConstraints = new HashMap(); + } + + public NcInventoryDefinition( String rscName ) { + inventoryName = rscName; + inventoryParameters = new ArrayList(); + baseConstraints = new HashMap(); + } + + public NcInventoryDefinition( String rscName, + HashMap baseConstrMap, + ArrayList invPrmsList ) { + inventoryName = rscName; + inventoryParameters = new ArrayList( invPrmsList ); + baseConstraints = new HashMap( baseConstrMap ); + } + + public void setInventoryName(String inventoryName) { + this.inventoryName = inventoryName; + } + + public void setInventoryParameters(ArrayList invParamsList) { + this.inventoryParameters = invParamsList; + } + + public ArrayList getInventoryParameters() { + return inventoryParameters; + } + + public String getInventoryName( ) { + return inventoryName; + } + + public HashMap getBaseConstraints() { + return baseConstraints; + } + + public void setBaseConstraints( + HashMap baseConstraints) { + this.baseConstraints = baseConstraints; + } + + public String getPluginName() { + return baseConstraints.get("pluginName").getConstraintValue().toString(); + } + + public RequestConstraint getBaseRequestConstraint( String paramName ) { + return baseConstraints.get( paramName ); + } + + // if there are constraints for a parameter stored in the inventory the NcInventory + // needs to know them when making the catalog query for that parameter. + // + /// This was used by queryChildNodes() before it was replaced +// public QueryParam getQueryParamFromConstraints( String paramName ) { +// if( baseConstraints.containsKey( paramName ) ) { +// return new QueryParam( paramName, +// baseConstraints.get( paramName ).getConstraintValue(), +// getQueryOperandFromRequestConstraintType( +// baseConstraints.get( paramName ).getConstraintType() ) ); +// } +// +// return null; +// } + + // return a version of the baseConstraints using QueryParams instead of + // RequestConstraints. (Should we leave out the constraints for the inventory parameters?) + // + public HashMap getBaseQueryParamsMap() { + HashMap queryParamsMap = new HashMap(); + + for( String prm : baseConstraints.keySet() ) { + queryParamsMap.put( prm, + new QueryParam( prm, baseConstraints.get(prm).getConstraintValue(), + getQueryOperandFromRequestConstraintType( + baseConstraints.get(prm).getConstraintType() ) ) ); + } + + return queryParamsMap; + } + + public QueryOperand getQueryOperandFromRequestConstraintType( ConstraintType cType ) { + if( cType == ConstraintType.EQUALS ) { + return QueryOperand.EQUALS; + } + else if( cType == ConstraintType.NOT_EQUALS ) { + return QueryOperand.NOTEQUALS; + } + else if( cType == ConstraintType.LESS_THAN ) { + return QueryOperand.LESSTHAN; + } + else if( cType == ConstraintType.LESS_THAN_EQUALS ) { + return QueryOperand.LESSTHANEQUALS; + } + else if( cType == ConstraintType.GREATER_THAN ) { + return QueryOperand.GREATERTHAN; + } + else if( cType == ConstraintType.GREATER_THAN_EQUALS ) { + return QueryOperand.GREATERTHANEQUALS; + } + else if( cType == ConstraintType.IN ) { + return QueryOperand.IN; + } + else if( cType == ConstraintType.LIKE ) { + return QueryOperand.LIKE; + } + else if( cType == ConstraintType.ILIKE ) { + return QueryOperand.ILIKE; + } + else if( cType == ConstraintType.ISNULL ) { + return QueryOperand.ISNULL; + } + else if( cType == ConstraintType.BETWEEN ) { + return QueryOperand.BETWEEN; + } + else { + return QueryOperand.EQUALS; + } + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + + ((baseConstraints == null) ? 0 : baseConstraints.toString().hashCode()); + result = prime * result + + ((inventoryParameters == null) ? 0 : inventoryParameters.toString().hashCode()); + return result; + } + + // Note that inventoryName is NOT part of the equals + // 2 users can create 2 resourceDefns with different names but as long as the constraints + // are the same then they are the same inventory + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + NcInventoryDefinition other = (NcInventoryDefinition) obj; + if (baseConstraints == null) { + if (other.baseConstraints != null) + return false; + } else if (!baseConstraints.toString().equals( other.baseConstraints.toString() )) + return false; + if (inventoryParameters == null) { + if (other.inventoryParameters != null) + return false; + } else if (!inventoryParameters.toString().equals(other.inventoryParameters.toString())) + return false; + return true; + } + + public String toString() { + return "InventoryName="+ inventoryName + + "\nBaseConstraints="+baseConstraints.toString() + + "\nInventoryConstraints=" + inventoryParameters.toString(); + } + + public static class InvParmListAdapter extends XmlAdapter> { + @Override + public String marshal(ArrayList v) throws Exception { + if( v.isEmpty() ) { + return new String(""); + } + + StringBuffer strb = new StringBuffer(v.get(0).toString()); + + for( int i=1 ; i unmarshal(String v) throws Exception { + ArrayList intlist = new ArrayList(); + if( v != null && !v.isEmpty() && !v.equals("[]") ) { + String istrs[] = v.split(","); + for( int i=0 ; i + * SOFTWARE HISTORY + * Date Ticket# Engineer Description + * ------------ ---------- ----------- -------------------------- + * 05/24/12 #606 Greg Hull Created + * + * + * + * @author ghull + * @version 1 + */ +public class NcInventoryInitializer { + + public static final String NCINVENTORY_DEFN_PATH = "ncep/NcInventoryDefinitions"; + + public void initialize() throws Exception { + System.out.println("initializing ncinventory"); + + IPathManager pathMngr = PathManagerFactory.getPathManager(); + + LocalizationContext lCntxts[] = new LocalizationContext[3]; + lCntxts[0] = pathMngr.getContext( + LocalizationType.COMMON_STATIC, LocalizationLevel.BASE ); +// lCntxts[1] = pathMngr.getContext( +// LocalizationType.COMMON_STATIC, LocalizationLevel.DESK ); + lCntxts[1] = pathMngr.getContext( + LocalizationType.COMMON_STATIC, LocalizationLevel.SITE ); + lCntxts[2] = pathMngr.getContext( + LocalizationType.COMMON_STATIC, LocalizationLevel.USER ); + + LocalizationFile[] invDefnsFiles = + pathMngr.listFiles( lCntxts, NCINVENTORY_DEFN_PATH, + new String[]{".xml"}, true, true ); + + for( LocalizationFile lFile : invDefnsFiles ) { + System.out.println("invDefn file is :"+ lFile.getName() ); + File invDefnFile = lFile.getFile(); + + Object xmlObj; + try { + xmlObj = SerializationUtil.jaxbUnmarshalFromXmlFile( + invDefnFile.getAbsolutePath() ); + if( !(xmlObj instanceof NcInventoryDefinition) ) { + throw new Exception("NcInventoryDefinition .xml file is not an NcInventoryDefinition object???"); + } + NcInventoryDefinition invDefn = (NcInventoryDefinition)xmlObj; + + NcInventory.initInventory( invDefn, false ); + } + catch( Exception ex ) { + NcInventory.logError( ex.getMessage() ); + } + } + } + +} diff --git a/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/ncinventory/NcInventoryMngr.java b/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/ncinventory/NcInventoryMngr.java new file mode 100644 index 0000000000..c906ca4bd7 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/ncinventory/NcInventoryMngr.java @@ -0,0 +1,101 @@ +package gov.noaa.nws.ncep.edex.common.ncinventory; + +import java.io.File; +import java.io.FileWriter; +import java.net.InetAddress; + +import com.raytheon.uf.common.serialization.SerializationUtil; + +/** + * Recieve msgs from the jms-generic:topic:manageInventory topic which are sent + * out when ManageNcInventoryMsgHandler receives a msg from the ThriftClient. + * + *
+ * SOFTWARE HISTORY
+ * Date       	Ticket#		Engineer	Description
+ * ------------	----------	-----------	--------------------------
+ *  04/04/12      #606       Greg Hull   Created
+ *  05/11/12      #606       Greg Hull   renamed to manager and implement delete
+ * 
+ * 
+ * + * @author ghull + * @version 1 + */ +public class NcInventoryMngr { + + public void manageInventory(String manageInvMsg ) throws Exception { + + if( manageInvMsg == null ) { + NcInventory.logError("NULL message received by NcInventoryMngr on "+ + InetAddress.getLocalHost().getHostName() ); + return; + } + else if( manageInvMsg.startsWith( ManageNcInventoryMsg.DELETE_INVENTORY_DIRECTIVE ) ) { + deleteInventory( manageInvMsg.substring( + ManageNcInventoryMsg.DELETE_INVENTORY_DIRECTIVE.length() ) ); + } + else if( manageInvMsg.startsWith( ManageNcInventoryMsg.REINIT_INVENTORY_DIRECTIVE ) ) { + createInventory( manageInvMsg.substring( + ManageNcInventoryMsg.REINIT_INVENTORY_DIRECTIVE.length() ), true ); + } + else if( manageInvMsg.startsWith( ManageNcInventoryMsg.CREATE_INVENTORY_DIRECTIVE ) ) { + createInventory( manageInvMsg.substring( + ManageNcInventoryMsg.CREATE_INVENTORY_DIRECTIVE.length() ), false ); + } + } + + public void deleteInventory( String inventoryName ) throws Exception { + + try { + NcInventory.deleteInventory( inventoryName ); + } + catch ( Exception e ) { + NcInventory.logError( e.getMessage() ); + } + } + + public void createInventory( String createInvMsg, Boolean reload ) { + + try { + File tmpFile = File.createTempFile("CreateInventoryRequest-", ".xml" ); + FileWriter fwriter = new FileWriter( tmpFile ); + fwriter.write( createInvMsg ); + fwriter.close(); + + Object createMsgObj = SerializationUtil.jaxbUnmarshalFromXmlFile( tmpFile ); + + tmpFile.delete(); + + if( !(createMsgObj instanceof ManageNcInventoryMsg) ) { + throw new Exception("NcInventoryMngr create Error: msg object is not ManageNcInventoryMsg"); + } + + ManageNcInventoryMsg invCreateMsg = (ManageNcInventoryMsg)createMsgObj; + + NcInventory inv = NcInventory.getInventory( invCreateMsg.getInventoryName() ); + + // if there is already an inventory and if it was created recently (ie. by the + // CreateMsgHandler that sent this createInventory msg) then don't bother creating + // the inventory again. + // + if( inv != null ) { + if( System.currentTimeMillis() - inv.getLastLoadTime() < 20*1000 ) { + NcInventory.logInfo( "NcInventoryMngr.creator: "+invCreateMsg.getInventoryName()+ + " was loaded less than 20 seconds ago. Not re-initializing" ); + return; + } + else if( System.currentTimeMillis() - inv.getLastLoadTime() < 60*1000 ) { + System.out.println( "NcInventoryMngr.creator: "+invCreateMsg.getInventoryName()+ + " was loaded less than 60 seconds ago. still creating inventory." ); + } + } + + String stsStr = NcInventory.initInventory( invCreateMsg.getInventoryDefinition(), + reload ); + + } catch ( Exception ex ) { + NcInventory.logError( ex.getMessage() ); + } + } +} diff --git a/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/ncinventory/NcInventoryRequestMsg.java b/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/ncinventory/NcInventoryRequestMsg.java new file mode 100644 index 0000000000..a2e8c13d66 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/ncinventory/NcInventoryRequestMsg.java @@ -0,0 +1,108 @@ +package gov.noaa.nws.ncep.edex.common.ncinventory; + +import java.util.HashMap; + +import com.raytheon.uf.common.dataquery.requests.RequestConstraint; +import com.raytheon.uf.common.serialization.annotations.DynamicSerialize; +import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement; +import com.raytheon.uf.common.serialization.comm.IServerRequest; + +/** + * + *
+ * SOFTWARE HISTORY
+ * Date       	Ticket#		Engineer	Description
+ * ------------	----------	-----------	--------------------------
+ *  04/13/12      #606       Greg Hull   created
+ * 
+ * 
+ * + * @author ghull + * @version 1 + */ +@DynamicSerialize +public class NcInventoryRequestMsg implements IServerRequest { + + public static enum NcInventoryRequestType { + QUERY, + DUMP, + DIRECTORY, // list of current inventory names + SUMMARY, + STATISTICS // Not Implemented + } + + @DynamicSerializeElement + private NcInventoryRequestType requestType; // Query, DeleteRequest, Dump, Summary, Statistics... + + @DynamicSerializeElement + private String inventoryName; // the userName+rscDefnName + + @DynamicSerializeElement + private String requestedParam; + + @DynamicSerializeElement + private HashMap reqConstraintsMap; + + + public static NcInventoryRequestMsg makeQueryRequest( ) { + NcInventoryRequestMsg msg = new NcInventoryRequestMsg(); + msg.setRequestType( NcInventoryRequestType.QUERY ); + return msg; + } + + public static NcInventoryRequestMsg makeDumpRequest( ) { + NcInventoryRequestMsg msg = new NcInventoryRequestMsg(); + msg.setRequestType( NcInventoryRequestType.DUMP ); + return msg; + } + + public static NcInventoryRequestMsg makeDirectoryRequest( ) { + NcInventoryRequestMsg msg = new NcInventoryRequestMsg(); + msg.setRequestType( NcInventoryRequestType.DIRECTORY ); + return msg; + } + + public static NcInventoryRequestMsg makeSummaryRequest( ) { + NcInventoryRequestMsg msg = new NcInventoryRequestMsg(); + msg.setRequestType( NcInventoryRequestType.SUMMARY ); + return msg; + } + + public String getInventoryName() { + return inventoryName; + } + + public void setInventoryName(String inventoryName) { + this.inventoryName = inventoryName; + } + + public String getRequestedParam() { + return requestedParam; + } + + public void setRequestedParam(String requestedParam) { + this.requestedParam = requestedParam; + } + + public HashMap getReqConstraintsMap() { + if( reqConstraintsMap == null ) { + return new HashMap(); + } + else { + return reqConstraintsMap; + } + } + + public void setReqConstraintsMap( + HashMap reqConstraintsMap) { + this.reqConstraintsMap = reqConstraintsMap; + } + + public NcInventoryRequestType getRequestType() { + return requestType; + } + + public void setRequestType(NcInventoryRequestType requestType) { + this.requestType = requestType; + } +} diff --git a/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/ncinventory/NcInventoryRequestMsgHandler.java b/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/ncinventory/NcInventoryRequestMsgHandler.java new file mode 100644 index 0000000000..5f1a984e66 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.edex.common/src/gov/noaa/nws/ncep/edex/common/ncinventory/NcInventoryRequestMsgHandler.java @@ -0,0 +1,171 @@ +package gov.noaa.nws.ncep.edex.common.ncinventory; +/** + * + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 02/14/2012	606			Greg Hull	Initial coding
+ * 
+ * @author Greg Hull
+ * @version 1.0
+ */
+import static java.lang.System.out;
+
+import gov.noaa.nws.ncep.edex.common.ncinventory.NcInventoryRequestMsg.NcInventoryRequestType;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+
+import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
+import com.raytheon.uf.common.dataquery.requests.RequestConstraint.ConstraintType;
+import com.raytheon.uf.common.serialization.comm.IRequestHandler;
+import com.raytheon.uf.common.serialization.comm.IServerRequest;
+
+/**
+ * 
+ * 
+ * 
+ * SOFTWARE HISTORY
+ * Date       	Ticket#		Engineer	Description
+ * ------------	----------	-----------	--------------------------
+ *  02/20/12      #606       Greg Hull   Created
+ *  04/13/12      #606       Greg Hull   add dumpInventory()
+ *  05/18/12      #606       Greg Hull   add directory and summary
+ * 
+ * 
+ * + * @author ghull + * @version 1 + */ +public class NcInventoryRequestMsgHandler implements IRequestHandler { + + @Override + public Object handleRequest( NcInventoryRequestMsg request) throws Exception { + try { + if( request.getRequestType() == NcInventoryRequestType.QUERY ) { + return (Object)handleQueryRequest( request ); + } + else if( request.getRequestType() == NcInventoryRequestType.DUMP ) { + return (Object)handleDumpRequest( request ); + } + else if( request.getRequestType() == NcInventoryRequestType.DIRECTORY ) { + return (Object)handleDirectoryRequest( request ); + } + else if( request.getRequestType() == NcInventoryRequestType.SUMMARY ) { + return (Object)handleSummaryRequest( request ); + } + else { + return "Unimplemented Request Type"; + } + } + catch (Exception e ) { + return e.getMessage(); + } + } + + public String[] handleQueryRequest( NcInventoryRequestMsg queryRequest) throws Exception { + + String inventoryName = queryRequest.getInventoryName(); + + NcInventory inv = NcInventory.getInventory( inventoryName ); + + if( inv == null ) { + String errStr = "Error requesting NcInventory data. NcInventory "+ + inventoryName+" has not been created on "+InetAddress.getLocalHost().getHostName(); + throw new Exception( errStr ); + } + + String invContents[] = inv.search( + queryRequest.getReqConstraintsMap(), queryRequest.getRequestedParam() ); + + return invContents; + } + + private Object handleDumpRequest( NcInventoryRequestMsg dumpRequest ) throws Exception { + try { + long t0 = System.currentTimeMillis(); + + String invContents[] = handleQueryRequest( dumpRequest ); + + String inventoryName = dumpRequest.getInventoryName(); + + File dumpFile = File.createTempFile( "NcInvDump-"+inventoryName+"-", ".xml" ); + FileWriter dumpWriter = new FileWriter( dumpFile ); + + // TODO : get edex request service instance + dumpWriter.write("Dumping Inventory "+inventoryName+ " with Description: " + + NcInventory.getInventory( inventoryName ).getInventoryDefinition().toString() +"\n"); + if( !dumpRequest.getReqConstraintsMap().isEmpty() ) { + dumpWriter.write( "search constraints are:\n"+ + dumpRequest.getReqConstraintsMap().toString()+"\n" ); + } + + dumpWriter.write( invContents.length + " entries found in " + (System.currentTimeMillis()-t0) + " msecs.\n"); + + for( String invEntry : invContents ) { + dumpWriter.write( invEntry+"\n" ); + } + dumpWriter.close(); + + String hostname = InetAddress.getLocalHost().getHostName(); + + if( invContents.length == 0 ) { + return (Object)"Inventory "+inventoryName+" contains no data."; + } + else { + return (Object)("Inventory "+inventoryName+" contains "+invContents.length + " entries.\n"+ + "Contents Dumped to file:\n"+dumpFile.getAbsolutePath() + " on host "+hostname); + } + } catch (IOException e) { + return (Object)"Error creating temporary Dump file."; + } + } + + // return an array of the InventoryDefnitions. + // + public Object handleDirectoryRequest( NcInventoryRequestMsg dirRequest) throws Exception { + + List invList = NcInventory.getAllNcInventories(); + + if( invList == null || invList.isEmpty() ) { + String errStr = "Error requesting NcInventory Directory. No NcInventories?? "; + throw new Exception( errStr ); + } + + NcInventoryDefinition invDefns[] = new NcInventoryDefinition[ invList.size() ]; + + for( int s=0 ; s + * SOFTWARE HISTORY + * + * Date Ticket# Engineer Description + * ------- ------- -------- ----------- + * 02/14/2012 #606 Greg Hull Initial coding + * 05/29/2012 #606 Greg Hull replace URI '_'s with spaces + * + * @author Greg Hull + * @version 1.0 + */ +import static java.lang.System.out; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import com.raytheon.edex.msg.DataURINotificationMessage; +import com.raytheon.edex.uengine.tasks.query.MetadataCatalogQuery; +import com.raytheon.edex.uengine.tasks.query.TableQuery; +import com.raytheon.uf.common.dataplugin.PluginDataObject; +import com.raytheon.uf.common.dataplugin.PluginProperties; +import com.raytheon.uf.common.dataplugin.annotations.DataURI; +import com.raytheon.uf.common.dataplugin.radar.RadarRecord; +import com.raytheon.uf.edex.core.dataplugin.PluginRegistry; +import com.raytheon.uf.edex.database.DataAccessLayerException; +import com.raytheon.uf.edex.database.status.StatusConstants; + +/** + * + * + *
+ * SOFTWARE HISTORY
+ * Date       	Ticket#		Engineer	Description
+ * ------------	----------	-----------	--------------------------
+ *  02/20/12      #606       Greg Hull   Created
+ * 
+ * 
+ * + * @author ghull + * @version 1 + */ +public class NcInventoryUpdater { + + // TODO : add statistics for how many URIs are being recieved. + + public NcInventoryUpdater( ) { + } + + public Object updateInventoryFromURIs( Object obj ) { + +// out.println("updateInventoryFromURIs"); + + if( !(obj instanceof DataURINotificationMessage) ){ + NcInventory.logError("Received msg that is not a DataURINotificationMessage? msg is "+ + obj.getClass().getName() ); + return null; + } + + DataURINotificationMessage uriMsg = (DataURINotificationMessage)obj; + + String[] dataURIs = uriMsg.getDataURIs(); + + // loop thru the URIs in the msg and create a map of the + // field/attrib/parameter (whatever we are calling them) values + // + for( String dataURI : dataURIs ) { + // out.println("NcInventory Updating for URI "+ dataURI ); + + Map attrsMap = new HashMap(); + + String[] tokens = dataURI.replaceAll("_", " ").split(DataURI.SEPARATOR); + String pluginName = tokens[1]; + + attrsMap.put( "pluginName", pluginName ); + PluginDataObject pdo = null; + + try { + PluginRegistry reg = PluginRegistry.getInstance(); + PluginProperties props = reg.getRegisteredObject(pluginName); + + if( props != null && props.getRecord() != null) { + pdo = props.getRecord().newInstance(); + } + + if( pdo == null ) { + throw new Exception( "Can't find PDO for plugin."); + } + + for( int i=2 ; i < tokens.length ; i++ ) { + if( !tokens[i].equals("%") && !tokens[i].trim().isEmpty() ) { + String fld = PluginDataObject.getDataURIFieldName( pdo.getClass(), i-2 ); + + if( fld == null ) { + throw new Exception("Unable to get field name"); + } + + Object value = pdo.getDataURIFieldValue( i-2, tokens[i] ); + + attrsMap.put( fld, value ); + } + else if( tokens[i].equals("%") ) { + String fld = PluginDataObject.getDataURIFieldName( pdo.getClass(), i-2 ); + attrsMap.put( fld, "%"); + } + } + + attrsMap.put( "dataURI", dataURI ); + + + // HACK alert! Currently the URI for the radar plugin does not have all the fields + // that we need to maintain in the inventory and so we will use the URI to query + // the record directly and then create the attrsMap from it. + // + if( pluginName.equals("radar") ) { + + TableQuery query; + List recList = new ArrayList(); ; + + try { + query = new TableQuery("metadata", pdo.getClass().getName()); + query.addParameter("dataURI", dataURI ); + recList = (List)query.execute(); + + if( recList.size() != 1 ) { + out.println("??? radar query for "+dataURI+ " returned size of "+ + recList.size() ); + } + else { + RadarRecord radRec = (RadarRecord)recList.get(0); + + String elevNum = radRec.getElevationNumber().toString(); + attrsMap.put("elevationNumber", elevNum ); + + String format = radRec.getFormat().toString(); + attrsMap.put("format", format ); + + // Note : won't need these now but leaving here since it can't hurt. + String operMode = radRec.getOperationalMode().toString(); + attrsMap.put("operationalMode", operMode ); + + String primElevAngle = radRec.getPrimaryElevationAngle().toString(); + attrsMap.put("primaryElevationAngle", primElevAngle ); + } + } + catch ( DataAccessLayerException daex ) { + NcInventory.logError( + "NcInventoryUpdate: Error updating radar plugin. Failed TableQuery to get URI: "+ dataURI+ + "\n errror is: "+ daex.getMessage() ); + continue; + } + } + + // loop thru all of the inventories that apply for this plugin and + // update with the URI + // + List invDescList = NcInventory.getInventoriesForPlugin( pluginName ); + + for( NcInventoryDefinition invDescr : invDescList ) { + NcInventory inv = NcInventory.getInventory(invDescr); + try { + if( inv != null && + inv.updateInventory( attrsMap ) ) { + // add to statistics + } + else { + + } + } catch( Exception e ) { + NcInventory.logError("Failed to update NcInventory. "+e.getMessage() ); + } + } + + } catch ( Exception e ) { + NcInventory.logError("NcInventoryUpdate: Unable to create attr map for URI: "+ dataURI+ + "\n errror is: "+ e.getMessage() ); + continue; + } + } + + return obj; // don't think this returned obj is actually used anywhere? + } + + public void purgePlugin(String message) throws Exception { + + if (message == null) { + NcInventory.logError("NULL message received by Purge Service" ); + return; + } + + NcInventory.reinitInventories( message ); + } + + +} diff --git a/ncep/gov.noaa.nws.ncep.edex.plugin.convsigmet/gov.noaa.nws.ncep.edex.plugin.convsigmet/component-deploy.xml b/ncep/gov.noaa.nws.ncep.edex.plugin.convsigmet/gov.noaa.nws.ncep.edex.plugin.convsigmet/component-deploy.xml index f91531743b..2edb71af52 100644 --- a/ncep/gov.noaa.nws.ncep.edex.plugin.convsigmet/gov.noaa.nws.ncep.edex.plugin.convsigmet/component-deploy.xml +++ b/ncep/gov.noaa.nws.ncep.edex.plugin.convsigmet/gov.noaa.nws.ncep.edex.plugin.convsigmet/component-deploy.xml @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/ncep/gov.noaa.nws.ncep.edex.plugin.ncgrib/NcgribDecoder.py b/ncep/gov.noaa.nws.ncep.edex.plugin.ncgrib/NcgribDecoder.py index e9aa8e274f..faeb0f27c3 100644 --- a/ncep/gov.noaa.nws.ncep.edex.plugin.ncgrib/NcgribDecoder.py +++ b/ncep/gov.noaa.nws.ncep.edex.plugin.ncgrib/NcgribDecoder.py @@ -394,8 +394,10 @@ class NcgribDecoder(): self._createModelName(pdsSectionValues['model'], self.inputFile) modelName = pdsSectionValues['model'].getModelName() - if modelName == "GHMNEST" or modelName == "GHM6TH" or modelName == "HWRFNEST" or modelName == "GFS" or modelName == "NAMFIREWX": - pdsSectionValues['model'].generateId(self.inputFile) + if modelName == "ghmNest" or modelName == "ghm6th" or \ + modelName == "hwrfNest" or modelName == "gfs" or \ + modelName == "fireWxNest" or modelName == "hwrf": + pdsSectionValues['model'].generateId(self.inputFile) else: pdsSectionValues['model'].generateId() @@ -1470,7 +1472,7 @@ class NcgribDecoder(): else: name = "hysplit" NcgribModelLookup.getInstance().setModel(center, subcenter, gridid, process, name) - gridModel = NcgribModelLookup.getInstance().getModel(center, subcenter, gridid, process, filename) + gridModel = NcgribModelLookup.getInstance().getModel(center, subcenter, gridid, process, fileName,model) #name = gridModel.getName() else: name = gridModel.getName() diff --git a/ncep/gov.noaa.nws.ncep.edex.plugin.ncgrib/src/gov/noaa/nws/ncep/edex/plugin/ncgrib/NcgribDecoder.java b/ncep/gov.noaa.nws.ncep.edex.plugin.ncgrib/src/gov/noaa/nws/ncep/edex/plugin/ncgrib/NcgribDecoder.java index a7d003422a..5ca159b5f5 100644 --- a/ncep/gov.noaa.nws.ncep.edex.plugin.ncgrib/src/gov/noaa/nws/ncep/edex/plugin/ncgrib/NcgribDecoder.java +++ b/ncep/gov.noaa.nws.ncep.edex.plugin.ncgrib/src/gov/noaa/nws/ncep/edex/plugin/ncgrib/NcgribDecoder.java @@ -54,6 +54,7 @@ import gov.noaa.nws.ncep.edex.plugin.ncgrib.util.TableTimeStamp; * 3/12/10 4758 bphillip Initial creation * 10/13/10 276 llin Modified for NC GRIB. * 01/19/12 xguo Split large files + * 05/23/12 xguo Split large file to each record file *
* * @author njensen @@ -181,6 +182,34 @@ public class NcgribDecoder { List sizes) throws IOException { FileOutputStream out = null; byte[] transfer = null; + long rdSize=0; + int num = 0; + for (int i = 0; i < sizes.size(); i++) { + if ( rdSize == sizes.get(i).longValue() ) continue; + num ++; + rdSize = sizes.get(i).longValue(); + transfer = new byte[(int) sizes.get(i).longValue()]; + raf.seek(seekRecordStart(raf, raf.length())); + raf.read(transfer); + + try { + out = new FileOutputStream(System.getProperty("edex.home") + + "/data/sbn/ncgrib/" + fileName + "_" + num); + out.write(transfer); + out.close(); + } finally { + if (out != null) { + out.close(); + } + } + + } + } + /* + private void splitFile(String fileName, RandomAccessFile raf, + List sizes) throws IOException { + FileOutputStream out = null; + byte[] transfer = null; long fileSize = 0,seekLoc; int num = 0; for (int i = 0; i < sizes.size(); i++) { @@ -227,6 +256,7 @@ public class NcgribDecoder { } } } + */ /** * Moves the filepointer on the random access file to the beginning of the * next grib record in the file diff --git a/ncep/gov.noaa.nws.ncep.edex.plugin.ncgrib/utility/common_static/base/ncgrid/ncgribModels.xml b/ncep/gov.noaa.nws.ncep.edex.plugin.ncgrib/utility/common_static/base/ncgrid/ncgribModels.xml index 7e6f0f1261..8680a29b4a 100644 --- a/ncep/gov.noaa.nws.ncep.edex.plugin.ncgrib/utility/common_static/base/ncgrid/ncgribModels.xml +++ b/ncep/gov.noaa.nws.ncep.edex.plugin.ncgrib/utility/common_static/base/ncgrid/ncgribModels.xml @@ -444,8 +444,8 @@ - GFS Global 1x1 Degree Analysis - gfsAnl + GFS Global 1x1 Degree Analysis and f00. Grib header issues + gfs
7
0 372 @@ -2045,7 +2045,7 @@ NAM over the contiguous US 16X Resolution(5Km) Lambert Conformal - NAM227 + nam5
7
0 227 @@ -2057,7 +2057,7 @@ NAM Puerto Rico - NAMPR + namPR
7
0 407 @@ -4374,7 +4374,19 @@
6
- + + + RUC13 + ruc13 +
7
+ 8 + 130 + + 105 + +
1
+
+ Aviation AVIATION diff --git a/ncep/gov.noaa.nws.ncep.edex.plugin.nonconvsigmet/gov.noaa.nws.ncep.edex.plugin.nonconvsigmet/component-deploy.xml b/ncep/gov.noaa.nws.ncep.edex.plugin.nonconvsigmet/gov.noaa.nws.ncep.edex.plugin.nonconvsigmet/component-deploy.xml index d57527272f..e20c3a3617 100644 --- a/ncep/gov.noaa.nws.ncep.edex.plugin.nonconvsigmet/gov.noaa.nws.ncep.edex.plugin.nonconvsigmet/component-deploy.xml +++ b/ncep/gov.noaa.nws.ncep.edex.plugin.nonconvsigmet/gov.noaa.nws.ncep.edex.plugin.nonconvsigmet/component-deploy.xml @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/ncep/gov.noaa.nws.ncep.edex.uengine/src/gov/noaa/nws/ncep/edex/uengine/tasks/profile/ObservedSoundingQuery.java b/ncep/gov.noaa.nws.ncep.edex.uengine/src/gov/noaa/nws/ncep/edex/uengine/tasks/profile/ObservedSoundingQuery.java index d4241471c0..38705202be 100644 --- a/ncep/gov.noaa.nws.ncep.edex.uengine/src/gov/noaa/nws/ncep/edex/uengine/tasks/profile/ObservedSoundingQuery.java +++ b/ncep/gov.noaa.nws.ncep.edex.uengine/src/gov/noaa/nws/ncep/edex/uengine/tasks/profile/ObservedSoundingQuery.java @@ -978,13 +978,15 @@ public class ObservedSoundingQuery { } else if(stnIdArray != null){ String stnIdListStr=""; - for ( int i=0; i < stnIdArray.length ; i++) - { - - if(i < stnIdArray.length -1){ - stnIdListStr = stnIdListStr+stnIdArray[i]+","; - } + StringBuilder stringOfStnIds = new StringBuilder(); + for ( String thisStnId : stnIdArray ){ + stringOfStnIds.append(thisStnId); + stringOfStnIds.append(","); } + stnIdListStr = stringOfStnIds.toString(); + //get rid of the last comma + stnIdListStr = stnIdListStr.substring(0, stnIdListStr.length() - 1 ); + request.addParameter("location.stationId",stnIdListStr, "in"); queryByStn= true; } diff --git a/ncep/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1Vcrd/.project b/ncep/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1Vcrd/.project new file mode 100644 index 0000000000..e545c70a90 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1Vcrd/.project @@ -0,0 +1,11 @@ + + + gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1Vcrd + + + + + + + + diff --git a/ncep/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1Vcrd/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1Vcrd.ecl b/ncep/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1Vcrd/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1Vcrd.ecl new file mode 100644 index 0000000000..e69de29bb2 diff --git a/ncep/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1VcrdTable/.project b/ncep/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1VcrdTable/.project new file mode 100644 index 0000000000..cd07ab7253 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1VcrdTable/.project @@ -0,0 +1,11 @@ + + + gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1VcrdTable + + + + + + + + diff --git a/ncep/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1VcrdTable/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1VcrdTable.ecl b/ncep/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1VcrdTable/gov.noaa.nws.ncep.edex.util.grib1vcrd.Grib1VcrdTable.ecl new file mode 100644 index 0000000000..e69de29bb2 diff --git a/ncep/gov.noaa.nws.ncep.staticdataprovider/src/gov/noaa/nws/ncep/staticdataprovider/GreatLakeProvider.java b/ncep/gov.noaa.nws.ncep.staticdataprovider/src/gov/noaa/nws/ncep/staticdataprovider/GreatLakeProvider.java index 1330f8d554..e7c8d550a7 100644 --- a/ncep/gov.noaa.nws.ncep.staticdataprovider/src/gov/noaa/nws/ncep/staticdataprovider/GreatLakeProvider.java +++ b/ncep/gov.noaa.nws.ncep.staticdataprovider/src/gov/noaa/nws/ncep/staticdataprovider/GreatLakeProvider.java @@ -27,6 +27,7 @@ import com.vividsolutions.jts.io.WKBReader; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * 02/12 ? B. Yin Initial Creation. + * 05/12 ? B. Yin Changed column 'area' to 'name in SQL string * * * @@ -59,7 +60,7 @@ public class GreatLakeProvider { if ( !greatLakesLoaded ) { greatLakes = new ArrayList(); - String sql = "select bid, area, ctrloc, numblocks,id,AsBinary(the_geom) from " + "bounds.greatlakesbnds"; + String sql = "select bid, name, ctrloc, numblocks,id,AsBinary(the_geom) from " + "bounds.greatlakesbnds"; List results; try { diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/BigNsharp/Sndglib/basics_old.cold b/ncep/gov.noaa.nws.ncep.ui.nsharp/BigNsharp/Sndglib/basics_old.cold new file mode 100644 index 0000000000..c772aa9716 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/BigNsharp/Sndglib/basics_old.cold @@ -0,0 +1,911 @@ +/***************************************************************/ +/* SHARP-95 */ +/* Advanced Interactive Sounding Analysis Program */ +/* */ +/* Basic Interpolation and Conversion Routines */ +/* */ +/* John A. Hart */ +/* National Severe Storms Forecast Center */ +/* Kansas City, Missouri */ +/* -------------------------------------------------- */ +/* List of Routines in this module: */ +/* */ +/* I_TEMP */ +/* I_DWPT */ +/* I_PRES */ +/* I_HGHT */ +/* I_VTMP */ +/* I_WDIR */ +/* I_WSPD */ +/* I_WNDU */ +/* I_WNDV */ +/* I_OMEG */ +/* VIRTEMP */ +/* SFC */ +/* TOP_PRES */ +/* QC */ +/* QC2 */ +/* MTOF */ +/* FTOM */ +/* FTOC */ +/* CTOF */ +/* AGL */ +/* MSL */ +/* KT_TO_MPS */ +/***************************************************************/ + +#include +#include +#include +#include +#include "basics.h" +#include "sndglib.h" + +/* + * General interpolation routine + * + * var is a variable name (TEMP, DWPT, etc.) in your data set + * var may also be SPED for wind speed or DRCT for wind direction + * + * Right now no other interpolation is done for derived parameters + * + * level is the level you wish to interpolate to + * itype is the interpolation type. Valid types are + * I_PRES for pressure + * I_HGHT for height + * + */ +float i_var(char *var, float level, short itype) +{ + short idx1, idx2, idx3, idxabove1, idxbelow1, idxabove2, idxbelow2, levidx; + float u, v, dir, spd; + int debugx; + + debugx=0; + if (!strcasecmp(var, "U")) + { + debugx = 0; + /* printf( "Interpolating %s\n", var); */ + } + + /* Make sure we don't work on NULL pointers */ + if (!sndg) + return RMISSD; + + /* Catch stupid stuff */ + if ((!strcasecmp(var, "PRES") && itype == I_PRES) || (!strcasecmp(var, "HGHT") && itype == I_HGHT)) + return level; + + levidx = -1; + if (itype == I_PRES) + { levidx = getParmIndex("PRES"); } + else if (itype == I_HGHT) + { levidx = getParmIndex("HGHT"); } + + if (levidx == -1) return RMISSD; + + /* Handle wind speed and direction separately from the basic + parameters such as temp, dwpt, hght, etc. */ + if (!strcasecmp(var, "DRCT") || !strcasecmp(var, "SPED")) + { + idx1 = getParmIndex("DRCT"); + idx2 = getParmIndex("SPED"); + if (idx1 == -1 || idx2 == -1) return RMISSD; + + /* Get the array indices in the vertical for this data */ + idxabove1 = getlevelindex(idx1, level, ABOVE, itype); + idxabove2 = getlevelindex(idx2, level, ABOVE, itype); + idxbelow1 = getlevelindex(idx1, level, BELOW, itype); + idxbelow2 = getlevelindex(idx2, level, BELOW, itype); + + if (idxabove1 == -1 || idxbelow1 == -1) return RMISSD; + + /* if they are the same return the data at that level */ + if (idxabove1 == idxbelow1) + { + u = ucomp(sndg[idxabove1][idx1], sndg[idxabove1][idx2]); + v = vcomp(sndg[idxabove1][idx1], sndg[idxabove1][idx2]); + } + else + { + /* begin 12/04/06 edit by RLT to fix interpolation bug */ + /*dir = interp_gen(sndg[idxabove1][idx1], sndg[idxbelow1][idx1], + level, sndg[idxabove1][levidx], + sndg[idxbelow1][levidx], itype); + spd = interp_gen(sndg[idxabove2][idx2], sndg[idxbelow2][idx2], + level, sndg[idxabove2][levidx], + sndg[idxbelow2][levidx], itype); + u = ucomp(dir, spd); + v = vcomp(dir, spd);*/ + + u = interp_gen(ucomp(sndg[idxabove1][idx1], sndg[idxabove1][idx2]), + ucomp(sndg[idxbelow1][idx1], sndg[idxbelow1][idx2]), + level, sndg[idxabove1][levidx], + sndg[idxbelow1][levidx], itype); + + v = interp_gen(vcomp(sndg[idxabove1][idx1], sndg[idxabove1][idx2]), + vcomp(sndg[idxbelow1][idx1], sndg[idxbelow1][idx2]), + level, sndg[idxabove1][levidx], + sndg[idxbelow1][levidx], itype); + + /* end 12/04/06 edit */ + } + + if (!strcasecmp(var, "DRCT")) + { return angle(u, v); } + else + { return sqrt((u * u) + (v * v)); } + } + else if (!strcasecmp(var, "PRES") && itype == I_HGHT) + { return i_pres(level); } + else if (!strcasecmp(var, "U") || !strcasecmp(var, "V")) + { + + idx1 = getParmIndex("DRCT"); + idx2 = getParmIndex("SPED"); + idx3 = getParmIndex("PRES"); + if (idx1 == -1 || idx2 == -1) return RMISSD; + + /* Get the array indices in the vertical for this data */ + idxabove1 = getlevelindex(idx1, level, ABOVE, itype); + idxabove2 = getlevelindex(idx2, level, ABOVE, itype); + idxbelow1 = getlevelindex(idx1, level, BELOW, itype); + idxbelow2 = getlevelindex(idx2, level, BELOW, itype); + + if (idxabove1 == -1 || idxbelow1 == -1) return RMISSD; + + /* if they are the same return the data at that level */ + if (idxabove1 == idxbelow1) + { + if (!strcasecmp(var, "U")) + { return ucomp(sndg[idxabove1][idx1], sndg[idxabove1][idx2]); } + else + { return vcomp(sndg[idxabove1][idx1], sndg[idxabove1][idx2]); } + } + else + { + dir = interp_gen(sndg[idxabove1][idx1], sndg[idxbelow1][idx1], + level, sndg[idxabove1][levidx], + sndg[idxbelow1][levidx], itype); + spd = interp_gen(sndg[idxabove2][idx2], sndg[idxbelow2][idx2], + level, sndg[idxabove2][levidx], + sndg[idxbelow2][levidx], itype); + + if (debugx) + { printf (" ABOVE: %7.1f %7.1f %7.1f\n ANSWER:%7.1f %7.1f %7.1f\n BELOW: %7.1f %7.1f %7.1f\n", + sndg[idxabove1][idx3], sndg[idxabove1][idx1], sndg[idxabove1][idx2], + level , dir , spd, + sndg[idxbelow1][idx3], sndg[idxbelow1][idx1], sndg[idxbelow1][idx2]); + } + + if (!strcasecmp(var, "U")) + { return ucomp(sndg[idxabove1][idx1], sndg[idxabove1][idx2]); } + else + { return vcomp(sndg[idxabove1][idx1], sndg[idxabove1][idx2]); } + } + } + else + { + idx1 = getParmIndex(var); + if (idx1 == -1) return RMISSD; + + /* Get the array indices in the vertical for this data */ + idxabove1 = getlevelindex(idx1, level, ABOVE, itype); + idxbelow1 = getlevelindex(idx1, level, BELOW, itype); + + if (idxabove1 == -1 || idxbelow1 == -1) return RMISSD; + + if (idxabove1 == idxbelow1) return sndg[idxabove1][idx1]; + + return interp_gen(sndg[idxabove1][idx1], sndg[idxbelow1][idx1], + level, sndg[idxabove1][levidx], + sndg[idxbelow1][levidx], itype); + } + return RMISSD; +} + +/* + * getlevelindex + * + * Helper routine for i_var() which finds the first level above + * or below the specified level + * + * + * Inputs: + * parmIndex - the index in the sndg array for the parameter of + * interest + * level - the baseline level you're interested in + * direction -above (1) or below (1) the baseline level. valid values + * are ABOVE and BELOW + * itype - Is this pressure or height you're talking about. values are + * I_PRES or I_HGHT + */ + +short getlevelindex(short parmIndex, float level, short direction, short itype) +{ + short i, idx, ok; + + /* Make sure we don't work on NULL pointers */ + if (!sndg) + return -1; + + ok = 0; + if (itype == I_PRES) { + idx = getParmIndex("PRES"); + if (idx == -1) return -1; + if (direction == ABOVE) { + /* Above the level */ + for (i=0; i < numlvl; i++) { + if ((sndg[i][idx] <= level) && (qc(sndg[i][parmIndex]))) + return i; + } + } + else { + /* Below the level */ + for (i=numlvl-1; i >= 0; i--) { + if ((sndg[i][idx] >= level) && (qc(sndg[i][parmIndex]))) + return i; + } + } + } + else if (itype == I_HGHT) { + idx = getParmIndex("HGHT"); + if (idx == -1) return -1; + if (direction == ABOVE) { + /* Above the level */ + for (i=0; i < numlvl; i++) { + if ((sndg[i][idx] >= level) && (qc(sndg[i][parmIndex]))) + return i; + } + } + else { + /* Below the level */ + for (i=numlvl-1; i >= 0; i--) { + if ((sndg[i][idx] <= level) && (qc(sndg[i][parmIndex]))) + return i; + } + } + } + + return -1; +} + +/* + * General interpolation routine + */ +float interp_gen(float valueabove, float valuebelow, float level, + float levelabove, float levelbelow, short itype) +{ + float nm1, nm2, nm3, val; + + if (!qc(valueabove) || !qc(valuebelow) || !qc(levelabove) || + !qc(levelbelow)) + return RMISSD; + + val = RMISSD; + + if (itype == I_PRES) { + nm1 = valueabove - valuebelow; + nm2 = log(levelbelow / levelabove); + nm3 = log(levelbelow / level); + val = valuebelow + ((nm3 / nm2) * nm1); + } + else if (itype == I_HGHT) { + nm1 = level - levelbelow; + nm2 = levelabove - levelbelow; + val = valuebelow + ((nm1 / nm2) * (valueabove - valuebelow)); + } + + return val; +} + + +float i_pres(float hght) + /*************************************************************/ + /* I_PRES */ + /* John Hart NSSFC KCMO */ + /* */ + /* Interpolates the given data to calculate a pressure(mb) */ + /* at height (hght). */ + /* */ + /* hght - Height(m) of level */ + /*************************************************************/ +{ + short below, above, i, idxp, idxz, ok; + double nm1, nm2, nm3; + + below = 0; + above = 0; + + /* Make sure we don't work on NULL pointers */ + if (!sndg) + return RMISSD; + + idxp = getParmIndex("PRES"); + idxz = getParmIndex("HGHT"); + + if (idxz == -1 || idxp == -1) + return RMISSD; + + /* ----- Find Pressure Immediately Above level ----- */ + ok = 0; + for (i=0; i < numlvl; i++) { + if ((sndg[i][idxz] >= hght) && qc(sndg[i][idxp])) { + above = i; + ok=1; + break; + } + } + if (!ok) + return RMISSD; + + /* ----- Find Pressure Below level ----- */ + ok = 0; + for (i=numlvl-1; i > -1; i--) { + if ((sndg[i][idxz] <= hght) && qc(sndg[i][idxp])) { + below = i; + ok=1; + break; + } + } + if (!ok) + return RMISSD; + + /* ----- If both levels are the same, return them ---- */ + if (above == below) + return sndg[above][idxp]; + + /* ----- Now we need to interpolate to get the Pressure ----- */ + nm1 = hght - sndg[below][idxz]; + nm2 = sndg[above][idxz] - sndg[below][idxz]; + nm3 = log(sndg[above][idxp] / sndg[below][idxp]); + return (float)(sndg[below][idxp] * exp((nm1 / nm2) * nm3)); +} + + +short sfc(void) + /*************************************************************/ + /* SFC */ + /* John Hart NSSFC KCMO */ + /* */ + /* Returns the array pointer to the Surface Level. */ + /*************************************************************/ +{ + short i, j; + + /* Make sure we don't work on NULL pointers */ + if (!sndg) + return RMISSD; + + /* Note: we qc on U and not on other fields. */ + + j = getParmIndex("TEMP"); + if (j == -1) + return 0; + + for (i=0; i < numlvl; i++) + if (qc(sndg[i][j])) + return i; + + return 0; +} + + + /*NP*/ +float top_pres(void) + /*************************************************************/ + /* TOP_PRES */ + /* John Hart NSSFC KCMO */ + /* */ + /* Returns the pressure(mb) of highest level in sounding. */ + /*************************************************************/ +{ + short i, idx; + + /* Make sure we don't work on NULL pointers */ + if (!sndg) + return RMISSD; + + idx = getParmIndex("PRES"); + if (idx == -1) + return RMISSD; + + for( i=numlvl-1; i>0; i--) { + if (qc(sndg[i][idx])) + return sndg[i][idx]; + } + return RMISSD; +} + + + /*NP*/ +short qc(float value) + /*************************************************************/ + /* QC */ + /* John Hart NSSFC KCMO */ + /* */ + /* Quality control of sndg data. Searches for missing */ + /* data (-999) and returns (1 = OK), (0 = missing) */ + /*************************************************************/ +{ + if (value < -998.0 || value > 2.0E+05) + return 0; + + return 1; +} + + +char *qc2(float value, char *label, short prec) + /*************************************************************/ + /* QC2 */ + /* John Hart NSSFC KCMO */ + /* */ + /* Quality control of sndg data. Searches for missing */ + /* data (-999) and returns (char = OK), (M = missing) */ + /* Returns real numbers with (prec) decimal points. */ + /*************************************************************/ +{ + char fmt[10], st2[10]; + static char st1[40]; + + if (!qc(value)) { + strcpy(st1, "M"); + } + else { + itoa(prec, st2, 10); + strcpy(fmt, "%."); + strcat(fmt, st2); + strcat(fmt, "f%s"); + sprintf(st1, fmt, value, label); + } + return st1; +} + + +float ctof(float value) + /*************************************************************/ + /* CTOF */ + /* John Hart NSSFC KCMO */ + /* */ + /* Converts given temperature (c) to (f). */ + /*************************************************************/ +{ + if (!qc(value)) + return RMISSD; + else + return ((1.8 * value) + 32.0); +} + + +float ftoc(float value) + /*************************************************************/ + /* FTOC */ + /* John Hart NSSFC KCMO */ + /* */ + /* Converts given temperature (f) to (c). */ + /*************************************************************/ +{ + if (!qc(value)) + return RMISSD; + else + return ((5.0/9.0) * (value - 32.0)); +} + + +float mtof(float value) + /*************************************************************/ + /* MTOF */ + /* John Hart NSSFC KCMO */ + /* */ + /* Converts given distance (m) to (ft). */ + /*************************************************************/ +{ + if (!qc(value)) + return RMISSD; + else + return (value / 0.3049); +} + + +float ftom(float value) + /*************************************************************/ + /* FTOM */ + /* John Hart NSSFC KCMO */ + /* */ + /* Converts given distance (ft) to (m). */ + /*************************************************************/ +{ + if (!qc(value)) + return RMISSD; + else + return (value * .3049); +} + + + +float agl(float height) + /*************************************************************/ + /* AGL */ + /* John Hart NSSFC KCMO */ + /* */ + /* Converts height (meters) MSL to AGL. */ + /*************************************************************/ +{ + short idx; + + if (!sndg) + return RMISSD; + + if (!qc(height)) + return RMISSD; + else { + idx = getParmIndex("HGHT"); + if (idx == -1) + return RMISSD; + else + return (height - sndg[sfc()][idx]); + } +} + + +float msl(float height) + /*************************************************************/ + /* MSL */ + /* John Hart NSSFC KCMO */ + /* */ + /* Converts height (meters) AGL to MSL. */ + /*************************************************************/ +{ + short idx; + + if (!sndg) + return RMISSD; + + if (!qc(height)) + return RMISSD; + else { + idx = getParmIndex("HGHT"); + if (idx == -1) + return RMISSD; + else + return (sndg[sfc()][idx] + height); + } +} + + +float kt_to_mps(float spd) + /*************************************************************/ + /* KT_TO_MPS */ + /* John Hart NSSFC KCMO */ + /* */ + /* Converts speed (knots) to meters per second. */ + /*************************************************************/ +{ + if (!qc(spd)) + return RMISSD; + else + return (spd * 0.51479); +} + + +char *itoa(int value, char *st, int radx) + /*************************************************************/ + /* ITOA */ + /*************************************************************/ +{ + sprintf(st, "%d", value); + return st; +} + + +void xtnd_sndg(void) + /*************************************************************/ + /* XTND_SNDG */ + /* John Hart NSSFC KCMO */ + /* */ + /* This routine will extend a sounding to 50mb, if the */ + /* sounding made it at least to 150mb. */ + /* */ + /* An isothermal/hydrostatic layer is assumed above the */ + /* last observed level. */ + /*************************************************************/ +{ + short i, p, above, below, idxp, idxz; + double nm1, nm2, nm4; + + /* Make sure we don't work on NULL pointers */ + if (!sndg || numlvl < 1) + return; + + return; + + /* + * If we don't have pressure data in the sounding then it + * makes no sense to extend it in this manner! + */ + idxp = getParmIndex("PRES"); + idxz = getParmIndex("HGHT"); + if (idxp == -1 || idxz == -1) + return; + + /* Is the top level between 150 and 100 mb? */ + if (sndg[numlvl-1][idxp] <= 150.0 && sndg[numlvl-1][idxp] >= 100.0) { + + for (p=75; p >= 50; p-=25) { + + sndg[numlvl][idxp] = (float)p; + + /* Interpolate everything but pressure and height */ + for (i=0; i< ndsetparms; i++) { + if (!strcasecmp(dsetparms[i], "PRES") || + !strcasecmp(dsetparms[i], "HGHT")) + continue; + sndg[numlvl][i] = i_var(dsetparms[i], 150.0, I_PRES); + } + + /* + * Compute height + * + * We have to do this separately as an extrapolation. + * That's why it's not in the loop above with the + * other parameters + */ + + idxz = getParmIndex("HGHT"); + if (idxz != -1) { + above = numlvl-1; + below = numlvl-2; + + sndg[numlvl][idxz] = interp_gen(sndg[above][idxz], + sndg[below][idxz], sndg[numlvl][idxp], + sndg[above][idxp], sndg[below][idxp], I_PRES); + } + numlvl++; + } + } +} + + +void interp_sndg(void) + /*************************************************************/ + /* INTERP_SNDG */ + /* John Hart NSSFC KCMO */ + /* */ + /* This routine take the current sounding array and */ + /* interpolate it to 25mb increments. */ + /*************************************************************/ +{ + +/* printf( "\nCurrent Parcel begin interp_sndg (Sndglib/basics.c): %d\n", lplvals.flag); +*/ float **newsndg = NULL; + float nsndg[200][7], sfclvl, pres, cint, p1; + short newnum, i, j, k, idx; + + /* Make sure we don't work on NULL pointers */ + if (!sndg || numlvl < 1) + return; + + idx = getParmIndex("PRES"); + if (idx == -1) + return; + + /* + * Allocate space for new sounding. Let's assume the top of + * the sounding will be 25mb at most, and the bottom is 1050mb + * Let's add 2 as a bufr as well + */ + cint = 25.0; + i = (short)((1050.0 - 25.0) / cint) + 2; + + newsndg = (float **)malloc(i * sizeof(float *)); + if (!newsndg) + return; + + newnum = 0; + newsndg[newnum] = (float *)malloc(ndsetparms * sizeof(float)); + if (!newsndg[newnum]) + return; + + /* ----- Copy surface conditions to new array ----- */ + sfclvl = sndg[sfc()][idx]; + + newsndg[newnum][idx] = sfclvl; + + /* Copy everything but pressure */ + for (j=0; j < ndsetparms; j++) { + if (strcasecmp(dsetparms[j], "PRES")) { + newsndg[newnum][j] = i_var(dsetparms[j], sfclvl, I_PRES); + } + } + + /* ----- Determine first interpolated level above surface ----- */ + pres = (float)((short)((sfclvl / cint) + 0) * cint); + if (pres == sfclvl) + pres -= cint; + + /* ----- Interpolate NSNDG array to prescribed increments ----- */ + for (p1=pres; p1 >= sndg[numlvl-1][idx]; p1-=cint) { + newnum++; + newsndg[newnum] = (float *)malloc(ndsetparms * sizeof(float)); + if (!newsndg[newnum]) + break; + + newsndg[newnum][idx] = p1; + for (j=0; j < ndsetparms; j++) { + if (strcasecmp(dsetparms[j], "PRES")) { + newsndg[newnum][j] = i_var(dsetparms[j], p1, I_PRES); + } + } + } + + /* ----- Copy NSNDG to SNDG array ----- */ + for (i=0;inlev;i++) + free(globalsndg->data[i]); + free(globalsndg->data); + + numlvl = newnum; + globalsndg->nlev = numlvl; + globalsndg->data = newsndg; + sndg = globalsndg->data; +} + +void check_data() + /***********************************************************/ + /* CHECK_DATA */ + /* Routine to check the data array for "out of order" data */ + /* or other items that might lead to a crash. */ + /***********************************************************/ + { + int idx_p, idx_h, idx_t, idx_td, idx_ws, idx_wd, idx_uv; + int i, j, i0, i1, ok; + float tmp, p0, p1; + + printf ("Beginning CHECK_DATA\n"); + + idx_p = getParmIndex("PRES"); + idx_h = getParmIndex("HGHT"); + idx_t = getParmIndex("TEMP"); + idx_td = getParmIndex("DWPT"); + idx_ws = getParmIndex("SPED"); + idx_wd = getParmIndex("DRCT"); + idx_uv = getParmIndex("OMEG"); + + /* Fix bad height at 1000mb */ + for(i=1; i 5000)) sndg[i][idx_h] = -9999.0; + break; + } + } + + /* Check to make sure array is in ascending order */ + /* Continue to loop through array until no swaps are required. */ + ok=1; + while(ok==1) + { + p0 = sndg[0][idx_p]; + i0 = 0; + ok = 0; + for(i=1; i p0) + { + ok = 1; + printf("Order error between item %d and item %d. Items swapped.\n", i0, i1); + printf("I0 = %d %7.2f %7.2f\n", i0, sndg[i0][idx_p], sndg[i0][idx_h]); + printf("I1 = %d %7.2f %7.2f\n", i1, sndg[i1][idx_p], sndg[i1][idx_h]); + for(j=0;j<7;j++) + { + tmp = sndg[i0][j]; + sndg[i0][j] = sndg[i1][j]; + sndg[i1][j] = tmp; + } + break; + } + p0=p1; + i0=i1; + } + printf ("Finished one loop\n"); + } + + /* Next, fill all levels that have missing data */ + for(i=1; inlev = numlvl; + globalsndg->data = sndg; + } + + + +float i_temp(float level, short itype) +{ + return i_var("TEMP", level, itype); +} + +float i_dwpt(float level, short itype) +{ + return i_var("DWPT", level, itype); +} + +float i_hght(float level, short itype) +{ + return i_var("HGHT", level, itype); +} + +float i_wndu(float level, short itype) +{ + return i_var("U", level, itype); +} + +float i_wndv(float level, short itype) +{ + return i_var("V", level, itype); +} + +float i_omeg(float level, short itype) +{ + return i_var("OMEG", level, itype); +} + +float i_wdir(float level, short itype) +{ + return i_var("DRCT", level, itype); +} + +float i_wspd(float level, short itype) +{ + return i_var("SPED", level, itype); +} + +float i_vtmp(float level, short itype) +{ + double cta, eps, tk, w; + float t, td, pres; + + pres = level; + t = i_temp(level, itype); + td = i_dwpt(level, itype); + + /* + * Return temperature in those cases when we can't get the + * dewpoint temp + */ + if (!qc(td)) + { + if (!qc(t)) + { return RMISSD; } + else + { return t; } + } + + cta = 273.15; + eps = 0.62197; + + /* + * Note that if we're working with height data we need to + * compute the pressure at this height for use in the mixing + * ratio routine. + */ + + /* if (itype == I_HGHT) pres = i_pres(level); */ + + if (!qc(pres)) return RMISSD; + + tk = t + cta; + w = 0.001 * (double)mixratio(pres, td); + return (float)(tk * (1.0 + w / eps) / (1.0 + w) - cta); +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/BigNsharp/Sndglib/basics_old.hold b/ncep/gov.noaa.nws.ncep.ui.nsharp/BigNsharp/Sndglib/basics_old.hold new file mode 100644 index 0000000000..94a402044f --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/BigNsharp/Sndglib/basics_old.hold @@ -0,0 +1,45 @@ +#ifndef _BASICS_H +#define _BASICS_H + +/* Constants defining interpolation type */ +#define I_PRES 0 +#define I_HGHT 1 + +#define ABOVE 1 +#define BELOW 0 + +/* BASICS Function Prototypes */ + +/* General interpolation functions */ +float i_var(char *var, float level, short itype); +float interp_gen(float valueabove, float valuebelow, float level, + float levelabove, float levelbelow, short itype); +short getlevelindex(short parmIndex, float level, short direction, short itype); + +float i_temp(float pres, short itype); +float i_dwpt(float pres, short itype); +float i_hght(float pres, short itype); +float i_vtmp(float pres, short itype); +float i_wdir(float pres, short itype); +float i_wspd(float pres, short itype); +float i_wndu(float pres, short itype); +float i_wndv(float pres, short itype); +float i_pres(float hght); +float i_omeg(float pres, short itype); +short sfc(void); +float top_pres(void); +short qc(float value); +char *qc2(float value, char *label, short prec); +float ftom(float value); +float mtof(float value); +float ftoc(float value); +float ctof(float value); +float agl(float height); +float msl(float height); +float kt_to_mps(float spd); +char *itoa(int value, char *st, int radx); +void xtnd_sndg(void); +void interp_sndg(void); +void check_data(); + +#endif /* _BASICS_H */ diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/BigNsharp/Sndglib/skparams_12july05.co b/ncep/gov.noaa.nws.ncep.ui.nsharp/BigNsharp/Sndglib/skparams_12july05.co new file mode 100644 index 0000000000..77c4634f7a --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/BigNsharp/Sndglib/skparams_12july05.co @@ -0,0 +1,3087 @@ +/***************************************************************/ +/* SHARP-95 */ +/* Advanced Interactive Sounding Analysis Program */ +/* */ +/* Thermodynamic Parameter Calculations */ +/* */ +/* John A. Hart */ +/* National Severe Storms Forecast Center */ +/* Kansas City, Missouri */ +/* */ +/***************************************************************/ + +#include +#include +#include +#include "sndglib.h" +#include "skparams.h" + +/* Global for this file only */ +float dcape_entrain=ENTRAIN_DEFAULT; + +/* define_parcel() Modifies global var lplvals */ + +void define_parcel(short flag, float pres) + /*************************************************************/ + /* DEFINE_PARCEL */ + /* John Hart NSSFC KCMO */ + /* */ + /* Chooses LPL, and assigns values to LPLVALS struct. */ + /* */ + /* flag - Parcel selection. */ + /* -1 = Use Previous Selection */ + /* 1 = Observed sfc parcel */ + /* 2 = Fcst sfc parcel */ + /* 3 = Most unstable parcel */ + /* 4 = Mean mixlyr parcel */ + /* 5 = User defined parcel */ + /* 6 = Mean Effective Layer parcel */ + /* */ + /* pres - Variable pressure level (mb) */ + /*************************************************************/ +{ + short idxt, idxtd, idxp, i; + float mmr, mtha, ix1 = 0, p_top, p_bot; + + /* Initialize lplvals to no definition */ + lplvals.flag = (int)RMISSD; + lplvals.temp = RMISSD; + lplvals.dwpt = RMISSD; + lplvals.pres = RMISSD; + + if (!sndg || numlvl < 1) return; + + idxt = getParmIndex("TEMP"); + idxtd = getParmIndex("DWPT"); + idxp = getParmIndex("PRES"); + + if (idxt == -1 || idxtd == -1 || idxp == -1) return; + + if (flag == -1) flag = lplvals.flag; + + switch (flag) { + case 1: + strcpy(lplvals.desc, "SFC PARCEL"); + i = sfc(); + lplvals.temp = sndg[i][idxt]; + lplvals.dwpt = sndg[i][idxtd]; + lplvals.pres = sndg[i][idxp]; + break; + + case 2: + strcpy(lplvals.desc, "FCST SFC PARCEL"); + lplvals.temp = max_temp(&ix1, -1); + mmr = mean_mixratio(&ix1, -1, -1); + lplvals.dwpt = temp_at_mixrat(mmr, sndg[sfc()][idxp]); + lplvals.pres = sndg[sfc()][idxp]; + break; + + case 3: + ix1 = unstbl_lvl(&ix1, -1, sndg[sfc()][idxp]-pres); + sprintf(lplvals.desc, "MU PARCEL IN LOWEST %dmb", (short)pres); + lplvals.pres = ix1; + lplvals.temp = i_temp(ix1, I_PRES); + lplvals.dwpt = i_dwpt(ix1, I_PRES); + break; + + case 4: + sprintf(lplvals.desc, "%dmb MIXED LAYER PARCEL", (short)pres); + mtha = mean_theta(&ix1, -1, sndg[sfc()][idxp]-pres); + lplvals.temp = theta(1000.0, mtha, sndg[sfc()][idxp]); + mmr = mean_mixratio(&ix1, -1, sndg[sfc()][idxp]-pres); + lplvals.dwpt = temp_at_mixrat(mmr, sndg[sfc()][idxp]); + lplvals.pres = sndg[sfc()][idxp]; + break; + + case 5: + sprintf(lplvals.desc, "%d mb %s", (short)pres, "PARCEL"); + lplvals.pres = pres; + lplvals.temp = i_temp(pres, I_PRES); + lplvals.dwpt = i_dwpt(pres, I_PRES); + break; + + case 6: +/* printf( "Setting Effective Layer Parcel\n"); */ + effective_inflow_layer(100,-250, &p_bot, &p_top); + if (p_bot > 0) { + sprintf(lplvals.desc, "%dmb MEAN EFFECTIVE LAYER PARCEL", (int)(p_bot - p_top)); + mtha = mean_theta(&ix1, p_bot, p_top); + lplvals.temp = theta(1000.0, mtha, (p_top + p_bot) / 2); + mmr = mean_mixratio(&ix1, p_bot, p_top); + lplvals.dwpt = temp_at_mixrat(mmr, (p_top + p_bot) / 2); + lplvals.pres = (p_top + p_bot) / 2; } + else { + i = sfc(); + lplvals.temp = sndg[i][idxt]; + lplvals.dwpt = sndg[i][idxtd]; + lplvals.pres = sndg[i][idxp]; } + break; + } + + lplvals.flag = flag; + lplvals.presval = pres; +} + + +float k_index(float *param) + /*************************************************************/ + /* K_INDEX */ + /* John Hart NSSFC KCMO */ + /* */ + /* Calculates the K-Index from data in SNDG array. */ + /* Value is returned both as (param) and as a RETURN;. */ + /*************************************************************/ +{ + float t8, t5, t7, td7, td8; + + t8 = i_temp(850.0, I_PRES); + t7 = i_temp(700.0, I_PRES); + t5 = i_temp(500.0, I_PRES); + td7 = i_dwpt(700.0, I_PRES); + td8 = i_dwpt(850.0, I_PRES); + + if (!qc(t8) || !qc(td8) || !qc(t7) || !qc(td7) || !qc(t5)) + *param = RMISSD; + else + *param = t8 - t5 + td8 - (t7 - td7); + + return *param; +} + + +float t_totals(float *param, float *ct, float *vt) + /*************************************************************/ + /* T_TOTALS */ + /* John Hart NSSFC KCMO */ + /* */ + /* Calculates the Total Totals index from data in */ + /* SNDG array. Value is returned both as (param) and as */ + /* a RETURN;. Cross Totals (ct) and Vertical Totals(vt) */ + /* are also returned. */ + /*************************************************************/ +{ + float t8, t5, td8; + + t8 = i_temp(850.0, I_PRES); + t5 = i_temp(500.0, I_PRES); + td8 = i_dwpt(850.0, I_PRES); + + if (!qc(t8) || !qc(t5) || !qc(td8)) { + *param = RMISSD; + *vt = RMISSD; + *ct = RMISSD; + } + else { + *vt = t8 - t5; + *ct = td8 - t5; + *param = *vt + *ct; + } + + return *param; +} + + +float precip_water(float *param, float lower, float upper) + /*************************************************************/ + /* PRECIP_WATER */ + /* John Hart NSSFC KCMO */ + /* */ + /* Calculates the Precipitable Water from data in */ + /* SNDG array within specified layer. */ + /* Value is returned both as (param) and as a RETURN;. */ + /* */ + /* *param = Returned precipitable water value (in) */ + /* lower = Bottom level of layer (mb) [ -1=SFC] */ + /* upper = Top level of layer (mb) [ -1=400] */ + /*************************************************************/ +{ + short i, okl, oku, lptr, uptr, idxp, idxtd; + float d1, p1, d2, p2, tot, w1, w2, wbar; + + *param = RMISSD; + + if (!sndg || numlvl < 1) + return RMISSD; + + if (lower == RMISSD) return RMISSD; + + idxp = getParmIndex("PRES"); + idxtd = getParmIndex("DWPT"); + + if (idxp == -1 || idxtd == -1) + return RMISSD; + + /* ----- See if default layer is specified ----- */ + if (lower == -1) + lower = sndg[sfc()][idxp]; + if (upper == -1) + upper = 400.0; + + /* ----- Make sure this is a valid layer ----- */ + while (!qc(i_dwpt(upper, I_PRES)) && upper < 800.0) + upper += 50.0; + if (!qc(i_temp(lower, I_PRES))) + lower = i_pres(sfc()); + + /* Make sure our sounding isn't too shallow + if (upper > 700.0) { + *param = RMISSD; + return *param; + } + */ + + /* ----- Find lowest observation in layer ----- */ + i = 0; + while (sndg[i][idxp] > lower) + i++; + while (!qc(sndg[i][idxtd])) + i++; + lptr = i; + if (sndg[i][idxp] == lower) + lptr++; + + /* ----- Find highest observation in layer ----- */ + i=numlvl-1; + while (sndg[i][idxp] < upper) + i--; + uptr = i; + if (sndg[i][idxp] == upper) + uptr--; + + /* ----- Start with interpolated bottom layer ----- */ + d1 = i_dwpt(lower, I_PRES); + p1 = lower; + + tot = 0; + for (i = lptr; i <= uptr; i++) { + if (qc(sndg[i][idxtd])) { + /* ----- Calculate every level that reports a dwpt ----- */ + d2 = sndg[i][idxtd]; + p2 = sndg[i][idxp]; + w1 = mixratio(p1, d1); + w2 = mixratio(p2, d2); + wbar = (w1 + w2) / 2; + tot = tot + wbar * (p1 - p2); + d1 = d2; + p1 = p2; + } + } + + /* ----- Finish with interpolated top layer ----- */ + d2 = i_dwpt(upper, I_PRES); + p2 = upper; + w1 = mixratio(p1, d1); + w2 = mixratio(p2, d2); + wbar = (w1 + w2) / 2.0; + tot = tot + wbar * (p1 - p2); + + /* ----- Convert to inches (from g*mb/kg) ----- */ + *param = tot * 0.00040173; + + return *param; +} + +/* Mike hack */ +float parcelx(float lower, float upper, float pres, float temp, + float dwpt, Parcel *pcl) +{ + return parcel(lower, upper, pres, temp, dwpt, pcl); +} + +float parcel(float lower, float upper, float pres, float temp, + float dwpt, Parcel *pcl) + /*************************************************************/ + /* PARCEL */ + /* John Hart NSSFC KCMO */ + /* */ + /* Lifts specified parcel, calculating various levels and */ + /* parameters from data in SNDG array. B+/B- are */ + /* calculated based on layer (lower-upper). Bplus is */ + /* returned value and in structure. */ + /* */ + /* All calculations use the virtual temperature correction. */ + /* */ + /* lower = Bottom level of layer (mb) [ -1=SFC] */ + /* upper = Top level of layer (mb) [ -1=TOP] */ + /* pres = LPL pressure (mb) */ + /* temp = LPL temperature (c) */ + /* dwpt = LPL dew point (c) */ + /* pcl = returned _parcel structure */ + /*************************************************************/ +{ + short i, idxp, idxz, idxt, idxtd; + short lptr, uptr; + float te1, pe1, te2, pe2, h1, h2, lyre, tdef1, tdef2, totp, totn; + float te3, pe3, h3, tp1, tp2, tp3, tdef3, lyrf, lyrlast, pelast; + float tote, totx, ls1, cap_strength, li_max, li_maxpres, blupper; + float cap_strengthpres, tpx, ix1, hgt10c, pp, pp1,pp2, dz,dpt,det; + float bltheta, blmr; + float theta_parcel, tv_env_bot, tv_env_top; + + /* ----- Initialize PCL values ----- */ + pcl->lplpres = pres; + pcl->lpltemp = temp; + pcl->lpldwpt = dwpt; + pcl->blayer = lower; + pcl->tlayer = upper; + pcl->entrain = 0; + pcl->lclpres = RMISSD; + pcl->lfcpres = RMISSD; + pcl->elpres = RMISSD; + pcl->mplpres = RMISSD; + pcl->bplus = RMISSD; + pcl->bminus = RMISSD; + pcl->bfzl = RMISSD; + pcl->cape3km = RMISSD; + pcl->wm10c = RMISSD; + pcl->li5 = RMISSD; + pcl->li3 = RMISSD; + pcl->brn = RMISSD; + pcl->limax = RMISSD; + pcl->limaxpres = RMISSD; + pcl->cap = RMISSD; + pcl->cappres = RMISSD; + + lyre = -1; + cap_strength = RMISSD; + cap_strengthpres = RMISSD; + li_max = RMISSD; + li_maxpres = RMISSD; + totp = 0; + totn = 0; + + /* Don't work on NULL pointers */ + if (!sndg || numlvl < 1) + return RMISSD; + + idxp = getParmIndex("PRES"); + idxz = getParmIndex("HGHT"); + idxt = getParmIndex("TEMP"); + idxtd = getParmIndex("DWPT"); + + if (idxp == -1 || idxt == -1 || idxtd == -1 || idxz == -1) + return RMISSD; + + /* ----- See if default layer is specified ----- */ + if (lower == -1) { + lower = sndg[sfc()][idxp]; + pcl->blayer = lower; + } + if (upper == -1) { + upper = sndg[numlvl-1][idxp]; + pcl->tlayer = upper; + } + + /* ----- Make sure this is a valid layer ----- */ + if (lower > pres) { + lower = pres; + pcl->blayer = lower; + } + + if (!qc(i_vtmp(upper, I_PRES)) || + !qc(i_vtmp(lower, I_PRES))) { + return RMISSD; + } + + /* ----- Begin with Mixing Layer (LPL-LCL) ----- */ + te1 = i_vtmp(pres, I_PRES); + pe1 = lower; + h1 = i_hght(pe1, I_PRES); + tp1 = virtemp(pres, temp, dwpt); + + /* lift parcel and return LCL pres (mb) and LCL temp (C) */ + drylift(pres, temp, dwpt, &pe2, &tp2); + /* define top of layer as LCL pres */ + blupper = pe2; + h2 = i_hght(pe2, I_PRES); + te2 = i_vtmp(pe2, I_PRES); + pcl->lclpres = pe2; + + /* calculate lifted parcel theta for use in iterative CINH loop below */ + /* recall that lifted parcel theta is CONSTANT from LPL to LCL */ + theta_parcel = theta(pe2, tp2, 1000.0); + + /* environmental theta and mixing ratio at LPL */ + bltheta = theta(pres, i_temp(pres, I_PRES), 1000.0); + blmr = mixratio(pres, dwpt); + + /* ----- Accumulate CINH in mixing layer below the LCL ----- */ + /* This will be done in 10mb increments, and will use the */ + /* virtual temperature correction where possible. */ + + /* initialize negative area to zero and iterate from LPL to LCL in 10mb increments */ + totn=0; + for (pp=lower; pp > blupper; pp-=10.0) { + pp1 = pp; + pp2 = pp-10.0; + if (pp2 < blupper) + pp2=blupper; + + dz = i_hght(pp2, I_PRES) - i_hght(pp1, I_PRES); + +/* + tp1 = theta(1000.0, bltheta, pp1); + tp2 = theta(1000.0, bltheta, pp2); +*/ + /* calculate difference between Tv_parcel and Tv_environment at top and bottom of 10mb layers */ + /* make use of constant lifted parcel theta and mixr from LPL to LCL */ + tv_env_bot = virtemp(pp1, theta(pp1, i_temp(pp1, I_PRES), 1000.0), i_dwpt(pp1, I_PRES)); + tdef1 = ((virtemp(pp1, theta_parcel, temp_at_mixrat(blmr, pp1))) - tv_env_bot) / + (tv_env_bot + 273.13); + +/* tdef2 = (virtemp(pp2, theta_parcel, temp_at_mixrat(blmr, pp2)) - + i_vtmp(pp2, I_PRES)) / (i_vtmp(pp2, I_PRES) + 273.15); +*/ + tv_env_top = virtemp(pp2, theta(pp2, i_temp(pp2, I_PRES), 1000.0), i_dwpt(pp2, I_PRES)); + tdef2 = ((virtemp(pp2, theta_parcel, temp_at_mixrat(blmr, pp2))) - tv_env_top) / + (tv_env_top + 273.15); + + lyre = 9.8 * (tdef1 + tdef2) / 2.0 * dz; + if (lyre < 0) + totn+=lyre; + } + + if (lower > pe2) { + lower = pe2; + pcl->blayer = lower; + } + + te1 = i_vtmp(pres, I_PRES); + pe1 = lower; + h1 = i_hght(pe1, I_PRES); + tp1 = virtemp(pres, temp, dwpt); + + drylift(pres, temp, dwpt, &pe2, &tp2); + h2 = i_hght(pe2, I_PRES); + te2 = i_vtmp(pe2, I_PRES); + + /* ----- Calculate height of -10c level ----- */ + hgt10c = i_hght(temp_lvl( -10.0, &ix1), I_PRES); + + /* ----- Find lowest observation in layer ----- */ + i = 0; + while (sndg[i][idxp] > lower) { + if (i == numlvl-1) { + break; + } + i++; + } + while (!qc(sndg[i][idxtd])) { + if (i == numlvl-1) { + break; + } + i++; + } + lptr = i; + if (sndg[i][idxp] == lower) { + if (i != numlvl-1) { + lptr++; + } + } + + /* ----- Find highest observation in layer ----- */ + i=numlvl-1; + while (sndg[i][idxp] < upper) { + if (i == 0) { + break; + } + i--; + } + uptr = i; + if (sndg[i][idxp] == upper) { + if (i > 0) { + uptr--; + } + } + + /* ----- Start with interpolated bottom layer ----- */ + /* begin moist ascent from lifted parcel LCL (pe2, tp2) */ + pe1 = lower; + h1 = i_hght(pe1, I_PRES); + te1 = i_vtmp(pe1, I_PRES); + tp1 = wetlift(pe2, tp2, pe1); + + totp = 0; + lyre = 0; + for (i = lptr; i < numlvl; i++) { + if (qc(sndg[i][idxt])) { + /* ----- Calculate every level that reports a temp ----- */ + pe2 = sndg[i][idxp]; + h2 = sndg[i][idxz]; + te2 = i_vtmp(pe2, I_PRES); + tp2 = wetlift(pe1, tp1, pe2); + tdef1 = (virtemp(pe1, tp1, tp1) - te1) / (te1 + 273.15); + tdef2 = (virtemp(pe2, tp2, tp2) - te2) / (te2 + 273.15); + lyrlast = lyre; + lyre = 9.8 * (tdef1 + tdef2) / 2.0 * (h2 - h1); + + /* ----- Check for Max LI ----- */ + if ((virtemp(pe2, tp2, tp2) - te2) > li_max) { + li_max = virtemp(pe2, tp2, tp2) - te2; + li_maxpres = pe2; + } + + /* ----- Check for Max Cap Strength ----- */ + if ((te2 - virtemp(pe2, tp2, tp2)) > cap_strength) { + cap_strength = te2 - virtemp(pe2, tp2, tp2); + cap_strengthpres = pe2; + } + + /* add layer energy to total positive if lyre > 0 */ + if (lyre > 0) + totp += lyre; + /* add layer energy to total negative if lyre < 0, only up to 500 mb */ + else + if (pe2 > 500.0) + totn += lyre; + + tote += lyre; + pelast = pe1; + pe1 = pe2; + h1 = h2; + te1 = te2; + tp1 = tp2; + + /* ----- Is this the top of given layer ----- */ + if ((i >= uptr) && (!qc(pcl->bplus))) { + pe3 = pe1; + h3 = h1; + te3 = te1; + tp3 = tp1; + lyrf = lyre; + + if (lyrf > 0.0) { + pcl->bplus = totp - lyrf; + pcl->bminus = totn; + } + else { + pcl->bplus = totp; + if (pe2 > 500.0) + pcl->bminus = totn + lyrf; + else + pcl->bminus = totn; + } + + pe2 = upper; + h2 = i_hght(pe2, I_PRES); + te2 = i_vtmp(pe2, I_PRES); + tp2 = wetlift(pe3, tp3, pe2); + tdef3 = (virtemp(pe3, tp3, tp3) - te3) / (te3 + 273.15); + tdef2 = (virtemp(pe2, tp2, tp2) - te2) / (te2 + 273.15); + lyrf = 9.8 * (tdef3 + tdef2) / 2.0 * (h2 - h3); + if (lyrf > 0.0) + pcl->bplus += lyrf; + else + if (pe2 > 600.0) + pcl->bminus += lyrf; + + if (pcl->bplus == 0.0) + pcl->bminus = 0.0; + } + + /* ----- Is this the freezing level ----- */ + if ((te2 <= 0.0) && (!qc(pcl->bfzl))) { + pe3 = pelast; + h3 = i_hght(pe3, I_PRES); + te3 = i_vtmp(pe3, I_PRES); + tp3 = wetlift(pe1, tp1, pe3); + lyrf = lyre; + + if (lyrf > 0.0) + pcl->bfzl = totp - lyrf; + else + pcl->bfzl = totp; + + if (qc(pe2 = temp_lvl(0, &pe2))) { + h2 = i_hght(pe2, I_PRES); + te2 = i_vtmp(pe2, I_PRES); + tp2 = wetlift(pe3, tp3, pe2); + tdef3 = (virtemp(pe3, tp3, tp3) - te3) / + (te3 + 273.15); + tdef2 = (virtemp(pe2, tp2, tp2) - te2) / + (te2 + 273.15); + lyrf = 9.8 * (tdef3 + tdef2) / 2.0 * (h2 - h3); + if (lyrf > 0.0) + pcl->bfzl += lyrf; + } + } + + /* ----- Is this the -10c level ----- */ + if ((te2 <= -10.0) && (!qc(pcl->wm10c))) { + pe3 = pelast; + h3 = i_hght(pe3, I_PRES); + te3 = i_vtmp(pe3, I_PRES); + tp3 = wetlift(pe1, tp1, pe3); + lyrf = lyre; + + if (lyrf > 0.0) + pcl->wm10c = totp - lyrf; + else + pcl->wm10c = totp; + + if (qc(pe2 = temp_lvl( -10.0, &pe2))) { + h2 = i_hght(pe2, I_PRES); + te2 = i_vtmp(pe2, I_PRES); + tp2 = wetlift(pe3, tp3, pe2); + tdef3 = (virtemp(pe3, tp3, tp3) - te3) / + (te3 + 273.15); + tdef2 = (virtemp(pe2, tp2, tp2) - te2) / + (te2 + 273.15); + lyrf = 9.8 * (tdef3 + tdef2) / 2.0 * (h2 - h3); + if (lyrf > 0.0) + pcl->wm10c += lyrf; + } + } + + /* ----- Is this the 3km level ----- */ + if ((agl(i_hght(pe2, I_PRES)) >= 3000.0) && (!qc(pcl->cape3km))) { + pe3 = pelast; + h3 = i_hght(pe3, I_PRES); + te3 = i_vtmp(pe3, I_PRES); + tp3 = wetlift(pe1, tp1, pe3); + lyrf = lyre; + + if (lyrf > 0.0) + pcl->cape3km = totp - lyrf; + else + pcl->cape3km = totp; + + pe2 = i_pres(msl(3000)); + if (qc(pe2)) { + h2 = msl(3000.0); + te2 = i_vtmp(pe2, I_PRES); + tp2 = wetlift(pe3, tp3, pe2); + tdef3 = (virtemp(pe3, tp3, tp3) - te3) / (te3 + 273.15); + tdef2 = (virtemp(pe2, tp2, tp2) - te2) / (te2 + 273.15); + lyrf = 9.8 * (tdef3 + tdef2) / 2.0 * (h2 - h3); + if (lyrf > 0.0) + pcl->cape3km += lyrf; + } + } + + /* ----- LFC Possibility ----- */ + if ((lyre >= 0) && (lyrlast <= 0)) + { + tp3 = tp1; + te3 = te1; + pe2 = pe1; + pe3 = pelast; + while (i_vtmp(pe3, I_PRES) > virtemp(pe3, wetlift(pe2, tp3, pe3), wetlift(pe2, tp3, pe3))) + { + pe3 -= 5; + } + + pcl->lfcpres = pe3; + + tote = 0; + pcl->elpres = RMISSD; + + li_max = RMISSD; + + if (cap_strength < 0.0) cap_strength = 0.0; + pcl->cap = cap_strength; + pcl->cappres = cap_strengthpres; + } + + /* ----- EL Possibility ----- */ + if ((lyre <= 0.0) && (lyrlast >= 0.0)) { + tp3 = tp1; + te3 = te1; + pe2 = pe1; + pe3 = pelast; + while (i_vtmp(pe3, I_PRES) < + virtemp(pe3, wetlift(pe2, tp3, pe3), wetlift(pe2, tp3, pe3))) + pe3 -= 5.0; + + pcl->elpres = pe3; + pcl->mplpres = RMISSD; + pcl->limax = -li_max; + pcl->limaxpres = li_maxpres; + } + + /* ----- MPL Possibility ----- */ + if (((tote <= 0.0) && (!qc(pcl->mplpres)) && (qc(pcl->elpres)))) { + pe3 = pelast; + h3 = i_hght(pe3, I_PRES); + te3 = i_vtmp(pe3, I_PRES); + tp3 = wetlift(pe1, tp1, pe3); + totx = tote - lyre; + + pe2 = pelast; + while (totx > 0.0) { + pe2 -= 1; + te2 = i_vtmp(pe2, I_PRES); + tp2 = wetlift(pe3, tp3, pe2); + h2 = i_hght(pe2, I_PRES); + tdef3 = (virtemp(pe3, tp3, tp3) - te3) / (te3 + 273.15); + tdef2 = (virtemp(pe2, tp2, tp2) - te2) / (te2 + 273.15); + lyrf = 9.8 * (tdef3 + tdef2) / 2.0 * (h2 - h3); + totx += lyrf; + + tp3 = tp2; + te3 = te2; + pe3 = pe2; + } + pcl->mplpres = pe2; + } + + /* ----- 500mb Lifted Index ----- */ + if(( sndg[i][idxp] <= 500 ) && (pcl->li5 == RMISSD)) + { pcl->li5 = i_vtmp(500, I_PRES) - virtemp(500, wetlift(pe1, tp1, 500), wetlift(pe1, tp1, 500)); } + + /* ----- 300mb Lifted Index ----- */ + if(( sndg[i][idxp] <= 300 ) && (pcl->li3 == RMISSD)) + { pcl->li3 = i_vtmp(300, I_PRES) - virtemp(300, wetlift(pe1, tp1, 300), wetlift(pe1, tp1, 300)); } + + } + } /* for() */ + + /* ----- Calculate BRN if available ----- */ + pcl->brn = bulk_rich(*pcl, &ix1); + + return pcl->bplus; +} + + +float temp_lvl(float temp, float *param) + /*************************************************************/ + /* TEMP_LVL */ + /* John Hart NSSFC KCMO */ + /* */ + /* Calculates the level (mb) of the first occurrence of */ + /* (temp) in the environment. */ + /* */ + /* *param = Returned level (mb). */ + /* temp = Temperature (c) to search for. */ + /*************************************************************/ +{ + short i, idxt, idxp; + float p0; + double nm1, nm2, nm3; + + *param = RMISSD; + + if (!sndg) + return RMISSD; + + idxt = getParmIndex("TEMP"); + idxp = getParmIndex("PRES"); + if (idxt == -1 || idxp == -1) + return RMISSD; + + for (i=0; i < numlvl; i++) { + if ((qc(sndg[i][idxt])) && (sndg[i][idxt] <= temp)) { + if (i == 0) + return RMISSD; + if (sndg[i][idxt] == temp) + return sndg[i][idxp]; + + p0 = sndg[i-1][idxp]; + nm1 = temp - i_temp(p0, I_PRES); + nm2 = sndg[i][idxt] - i_temp(p0, I_PRES); + nm3 = log(sndg[i][idxp] / p0); + *param = (float)(p0 * exp((nm1 / nm2) * nm3)); + return *param; + } + } + return RMISSD; +} + + +float wb_lvl(float temp, float *param) + /*************************************************************/ + /* WB_LVL */ + /* John Hart NSSFC KCMO */ + /* */ + /* Calculates the level (mb) of the given Wet-bulb */ + /* temperature. */ + /* */ + /* *param = Returned level (mb). */ + /* temp = Wet-bulb temperature (c) to search for. */ + /*************************************************************/ +{ + short i, idxt, idxtd, idxp; + float p0; + double nm1, nm2, nm3, wb1, wb0; + + *param = RMISSD; + + if (!sndg) + return RMISSD; + + idxt = getParmIndex("TEMP"); + idxtd = getParmIndex("DWPT"); + idxp = getParmIndex("PRES"); + + if (idxp == -1 || idxt == -1 || idxtd == -1) + return RMISSD; + + for (i=0; i < numlvl; i++) { + if ((qc(sndg[i][idxt])) && (qc(sndg[i][idxtd]))) { + wb1 = wetbulb(sndg[i][idxp], sndg[i][idxt], sndg[i][idxtd]); + if (wb1 < temp) { + if (i == 0) + return RMISSD; + if (wb1 == temp) + return sndg[i][idxp]; + + p0 = sndg[i-1][idxp]; + wb0 = wetbulb(p0, i_temp(p0, I_PRES), i_dwpt(p0, I_PRES)); + nm1 = temp - wb0; + nm2 = wb1 - wb0; + nm3 = log(sndg[i][idxp] / p0); + + *param = (float)(p0 * exp(( nm1 / nm2) * nm3)); + return *param; + } + } + } + return RMISSD; +} + + +float top_moistlyr(float *param) + /*************************************************************/ + /* TOP_MOISTLYR */ + /* John Hart NSSFC KCMO */ + /* */ + /* Determines the top of the moist layer of a given */ + /* environment. Criteria: 50% dcrs in q in 50mb. */ + /* Value is returned both as (param) and as a RETURN;. */ + /* */ + /* *param = Returned top of moist layer (mb) */ + /*************************************************************/ +{ + short i, idxp, idxt, idxtd; + float num, p1, p2, q1, q2, mq1, mq2, mh1, mh2, dqdz, dz; + + *param = RMISSD; + + if (!sndg) + return RMISSD; + + idxp = getParmIndex("PRES"); + idxt = getParmIndex("TEMP"); + idxtd = getParmIndex("DWPT"); + + q1 = mixratio(sndg[sfc()][idxp], sndg[sfc()][idxtd]); + p1 = sndg[sfc()][idxp]; + mq1 = q1; + mh1 = i_hght(p1, I_PRES); + for (i = sfc() + 1; i < numlvl; i++) { + if (qc(sndg[i][idxtd]) && qc(sndg[i][idxt])) { + /* ----- Calculate every level that reports a dwpt ----- */ + p2 = sndg[i][idxp]; + q2 = mixratio(p2, sndg[i][idxtd]); + + mq2 = (q1 + q2) / 2.0; + mh2 = (i_hght(p2, I_PRES) + i_hght(p1, I_PRES)) / 2.0; + dz = mh2 - mh1; + if (dz == 0.0) + dz = 0.001; + dqdz = (mq2 - mq1) / dz; + if ((dqdz < -0.01) && (i > sfc()+1) && (sndg[i][idxp] >= 500.0)) { + *param = p1; + return *param; + } + q1 = q2; + p1 = p2; + mq1 = mq2; + mh1 = mh2; + num += 1; + } + *param = RMISSD; + } + + return *param; +} + + +float max_temp(float *param, float mixlyr) + /*************************************************************/ + /* MAX_TEMP */ + /* John Hart NSSFC KCMO */ + /* */ + /* Calculates a maximum temperature forecast based on */ + /* depth of mixing level and low level temperatures. */ + /* Value is returned both as (param) and as a RETURN;. */ + /* */ + /* *param = Returned max temp (c) */ + /* mixlyr = Assumed depth of mixing layer [-1=100mb] */ + /*************************************************************/ +{ + short idxp; + float t1, temp, sfcpres; + + *param = RMISSD; + + if (!sndg) + return RMISSD; + + idxp = getParmIndex("PRES"); + if (idxp == -1) + return RMISSD; + + /* ----- See if default layer is specified ----- */ + if (mixlyr == -1) + mixlyr = sndg[sfc()][idxp] - 100.0; + + temp = i_temp(mixlyr, I_PRES) + 273.15 + 2.0; + sfcpres = sndg[sfc()][idxp]; + *param = (temp * pow( sfcpres / mixlyr , ROCP)) - 273.15; + + return *param; +} + + +float delta_t(float *param) + /*************************************************************/ + /* DELTA-T */ + /* John Hart NSSFC KCMO */ + /* */ + /* Calculates the delta-t index from data in SNDG array. */ + /* Value is returned both as (param) and as a RETURN;. */ + /*************************************************************/ +{ + if (!qc(i_temp(700.0, I_PRES)) || !qc( i_temp(500.0, I_PRES))) + *param = RMISSD; + else + *param = i_temp(700.0, I_PRES) - i_temp(500.0, I_PRES); + return *param; +} + + +float vert_tot(float *param) + /*************************************************************/ + /* VERT_TOT */ + /* John Hart NSSFC KCMO */ + /* */ + /* Calculates the vertical totals from data in SNDG array. */ + /* Value is returned both as (param) and as a RETURN;. */ + /*************************************************************/ +{ + if (!qc(i_vtmp(850.0, I_PRES)) || !qc(i_vtmp(500.0, I_PRES))) + *param = RMISSD; + else + *param = i_vtmp(850.0, I_PRES) - i_vtmp(500.0, I_PRES); + return *param; +} + + +float lapse_rate(float *param, float lower, float upper) + /*************************************************************/ + /* LAPSE_RATE */ + /* John Hart NSSFC KCMO */ + /* */ + /* Calculates the lapse rate (C/km) from SNDG array. */ + /* Value is returned both as (param) and as a RETURN. */ + /*************************************************************/ +{ + float dt, dz, lr; + + if (!qc(i_vtmp(lower, I_PRES)) || !qc(i_vtmp(upper, I_PRES))) + *param = RMISSD; + else { + dt = i_vtmp(upper , I_PRES) - i_vtmp(lower , I_PRES); + dz = i_hght(upper , I_PRES) - i_hght(lower , I_PRES); + *param = (dt / dz) * -1000.0; + } + return *param; +} + + +float bulk_rich(Parcel pcl, float *brnshear) + /*************************************************************/ + /* BRN */ + /* John Hart NSSFC KCMO */ + /* */ + /* Calculates the Bulk Richardson Number for given parcel. */ + /* Value is returned from function. BRN shear as returned */ + /* in argument. */ + /*************************************************************/ +{ + short idxp; + float ptop, pbot, x1, y1, x2, y2, z1, z2, dx, dy; + + *brnshear = RMISSD; + + if (!sndg) + return RMISSD; + + idxp = getParmIndex("PRES"); + if (idxp == -1) + return RMISSD; + + /* Make sure they've initialized a parcel here */ + if (lplvals.flag == (int)RMISSD) { + return RMISSD; + } + else if (lplvals.flag > 0 && lplvals.flag < 4) { + ptop = i_pres(msl(6000.0)); + pbot = sndg[sfc()][idxp]; + } + else { + pbot = i_pres(i_hght(pcl.lplpres, I_PRES) - 500.0); + if (!qc(pbot)) + pbot = sndg[sfc()][idxp]; + ptop = i_pres(i_hght(pbot, I_PRES) + 6000.0); + } + + /* ----- First, calculate lowest 500m mean wind ----- */ + mean_wind(pbot, i_pres(i_hght(pbot, I_PRES)+500.0), &x1, &y1, &z1, &z2); + + /* ----- Next, calculate 6000m mean wind ----- */ + mean_wind(pbot, ptop, &x2, &y2, &z1, &z2); + + /* ----- Check to make sure CAPE and SHEAR are avbl ----- */ + if (!qc(pcl.bplus) || !qc(x1) || !qc(x2)) + return RMISSD; + + /* ----- Calculate shear between winds ----- */ + dx = x2 - x1; + dy = y2 - y1; + *brnshear = (float)(sqrt((dx * dx) + (dy * dy))) * 0.51479; + *brnshear = *brnshear * *brnshear / 2.0; + + /* ----- Calculate and return BRN ----- */ + return pcl.bplus / *brnshear; +} + + +float cnvtv_temp(float *param, float mincinh) + /*************************************************************/ + /* CNVTV_TEMP */ + /* John Hart NSSFC KCMO */ + /* */ + /* Computes convective temperature, assuming no change in */ + /* moisture profile. Parcels are iteratively lifted until */ + /* only (mincinh) j/kg are left as a cap. The first guess */ + /* is the observed surface temperature. */ + /*************************************************************/ +/* +-mkay added default -50.0 for mincinh if mincinh == -1 +*/ +{ + short idxp, idxt; + float mmr, ix1, pres, te, tm, sfcpres, sfctemp, sfcdwpt, hct, hcd; + Parcel pcl; + + *param = RMISSD; + + if (!sndg) + return RMISSD; + + idxp = getParmIndex("PRES"); + idxt = getParmIndex("TEMP"); + + if (idxp == -1 || idxt == -1) + return RMISSD; + + if ((int)mincinh == -1) + mincinh = -50.0; + + mmr = mean_mixratio(&ix1, -1, -1); + sfcpres = sndg[sfc()][idxp]; + sfctemp = sndg[sfc()][idxt]; + sfcdwpt = temp_at_mixrat( mmr, sfcpres); + + ix1 = parcel(-1, -1, sfcpres, sfctemp, sfcdwpt, &pcl); + + /* + * Do a quick search to find whether to continue. + * If you need to heat up more that 15C, don't compute. + */ + ix1 = parcel(-1, -1, sfcpres, sfctemp+15, sfcdwpt, &pcl); + if (pcl.bminus < mincinh) { + *param = RMISSD; + return *param; + } + + ix1 = parcel( -1, -1, sfcpres, sfctemp, sfcdwpt, &pcl); + while ((pcl.bminus < mincinh ) && (ix1 != RMISSD)) { + if((mincinh - pcl.bminus) > 100.0) { + sfctemp += 2.0; + } + else { + sfctemp += 1.0; + } + ix1 = parcel(-1, -1, sfcpres, sfctemp, sfcdwpt, &pcl); + } + + if (ix1 == RMISSD) + *param = RMISSD; + else + *param = sfctemp; + return *param; +} + + +float sweat_index(float *param) + /*************************************************************/ + /* SWEAT_INDEX */ + /* John Hart NSSFC KCMO */ + /* */ + /* Calculates the SWEAT-Index from data in SNDG array. */ + /* Value is returned both as (param) and as a RETURN;. */ + /*************************************************************/ +{ + float ix1, ix2, ix3, d8, tt, wsp8, wsp5, sw, wd8, wd5, sinw, angl; + + d8 = i_dwpt(850.0, I_PRES); + tt = t_totals(&ix1, &ix2, &ix3); + wsp8 = i_wspd(850.0, I_PRES); + wsp5 = i_wspd(500.0, I_PRES); + wd8 = i_wdir(850.0, I_PRES); + wd5 = i_wdir(500.0, I_PRES); + + if (!qc(d8) || !qc(tt) || !qc(wsp8) || !qc(wsp5) || !qc(wd8) + || !qc(wd5)) { + *param = RMISSD; + return *param; + } + + sinw = 0; + + if (d8 > 0.0) + sw = 12.0 * d8; + if (tt > 49.0) + sw = sw + (20.0 * (tt - 49.0)); + sw = sw + (2.0 * wsp8) + wsp5; + + if ((wd8 >= 130.0) && (wd8 <= 250.0)) { + if ((wd5 >= 210.0) && (wd5 <= 310.0)) { + if (wd5 > wd8) { + angl = (wd5 - wd8) * (PI / 180.0); + sinw = (float)sin(angl); + } + } + } + if (sinw > 0.0) + sw = sw + (125.0 * (sinw + 0.2)); + *param = sw; + + return *param; +} + + +float old_cnvtv_temp(float *param) + /*************************************************************/ + /* OLD_CNVTV_TEMP */ + /* John Hart NSSFC KCMO */ + /* */ + /* Computes convective temperature, assuming no change in */ + /* moisture profile. Intersection of mixing ratio line and */ + /* temperature profile is found, then the dry adiabat is */ + /* followed back to the surface pressure. */ + /*************************************************************/ +{ + short idxp; + float mmr, ix1, pres, te, tm; + + *param = RMISSD; + + if (!sndg || numlvl < 1) + return RMISSD; + + idxp = getParmIndex("PRES"); + if (idxp == -1) + return RMISSD; + + /* ----- Compute Historical Convective Temperature ----- */ + mmr = mean_mixratio(&ix1, -1, -1); + for (pres = sndg[sfc()][idxp]; pres > sndg[numlvl-1][idxp]; pres -= 5.0) + { + te = i_temp(pres, I_PRES); + tm = temp_at_mixrat(mmr, pres); + if(tm >= te) { + te += 273.15; + *param = (te * pow( sndg[sfc()][idxp] / pres , ROCP)) - 273.15; + return *param; + } + } + *param = RMISSD; + return *param; +} + + +float unstbl_lvl(float *param, float lower, float upper) + /*************************************************************/ + /* UNSTBL_LVL */ + /* John Hart NSSFC KCMO */ + /* */ + /* Finds the most unstable level between levels upper and */ + /* lower. */ + /* */ + /* *param = Returned most unstable level (mb) */ + /* lower = Bottom level of layer (mb) [ -1=SFC] */ + /* upper = Top level of layer (mb) [ -1=low 300mb]*/ + /*************************************************************/ +{ + short i, okl, oku, lptr, uptr, idxp, idxt, idxtd; + float t1, p2, t2, tmax, pmax, pres, temp, dwpt; + + *param = RMISSD; + + if (!sndg) + return RMISSD; + + idxp = getParmIndex("PRES"); + idxt = getParmIndex("TEMP"); + idxtd = getParmIndex("DWPT"); + if (idxp == -1 || idxt == -1 || idxtd == -1) + return RMISSD; + + /* ----- See if default layer is specified ----- */ + if (lower == -1) { lower = sndg[sfc()][idxp]; } + if (upper == -1) { upper = sndg[sfc()][idxp] - 300.0; } + + /* ----- Make sure this is a valid layer ----- */ + while (!qc(i_dwpt(upper, I_PRES))) { upper += 50.0; } + if (!qc(i_temp(lower, I_PRES))) { lower = i_pres(sfc()); } + + /* Find lowest observation in layer ----- */ + i = 0; + while(sndg[i][idxp] > lower) { i++; } + while (!qc(sndg[i][idxt])) { i++; } + lptr = i; + if( sndg[i][idxp] == lower ) { lptr++; } + + /* ----- Find highest observation in layer ----- */ + i=numlvl-1; + while( sndg[i][idxp] < upper) { i--;} + uptr = i; + if( sndg[i][idxp] == upper ) { uptr--; } + + /* ----- Start with interpolated bottom layer ----- */ + drylift( lower, i_temp(lower, I_PRES), i_dwpt(lower, I_PRES), &p2, &t2); + tmax = wetlift( p2, t2, 1000.0); + pmax = lower; + + for ( i = lptr; i <= uptr; i++) { + if (qc(sndg[i][idxtd])) { + /* ----- Calculate every level that reports a dwpt ----- */ + pres = sndg[i][idxp]; + temp = sndg[i][idxt]; + dwpt = sndg[i][idxtd]; + drylift(pres, temp, dwpt, &p2, &t2); + t1 = wetlift(p2, t2, 1000.0); + if (t1 > tmax) { + tmax = t1; + pmax = pres; + } + } + } + + /* ----- Finish with interpolated top layer ----- */ + drylift(upper, i_temp(upper, I_PRES), i_dwpt(upper, I_PRES), &p2, &t2); + t1 = wetlift( p2, t2, 1000); + if (t1 > tmax) + pmax = sndg[i][idxp]; + + *param = pmax; + + return *param; +} + + +float ehi(float cape, float hel) + /*************************************************************/ + /* EHI */ + /* John Hart NSSFC KCMO */ + /* */ + /* Calculates the Energy-Helicity Index. */ + /*************************************************************/ +{ + float param; + + if (!qc(cape) || !qc(hel)) + return RMISSD; + + return ((cape * hel) / 160000.0); +} + + +float ThetaE_diff(float *param) + /*************************************************************/ + /* THETAE_DIFF */ + /* John Hart NSSFC KCMO */ + /* */ + /* Finds the maximum and minimum theta-e values in the */ + /* sounding below 500mb, and returns the difference. */ + /* */ + /* lower = Bottom level of layer (mb) [ -1=SFC] */ + /* upper = Top level of layer (mb) [ -1=TOP] */ + /*************************************************************/ +{ + short i, idxt, idxtd, idxp; + float maxe = -999.0, mine = 999.0, the; + + *param = RMISSD; + + if (!sndg) + return RMISSD; + + idxp = getParmIndex("PRES"); + idxtd = getParmIndex("DWPT"); + idxt = getParmIndex("TEMP"); + + if (idxp == -1 || idxt == -1 || idxtd == -1) + return RMISSD; + + for (i = sfc()+1; i < numlvl; i++) { + if (qc(sndg[i][idxtd]) && qc(sndg[i][idxt])) { + the = thetae(sndg[i][idxp], sndg[i][idxt], sndg[i][idxtd]); + if (the > maxe) + maxe = the; + if (the < mine) + mine = the; + if (sndg[i][idxp] < 500.0) + break; + } + } + + return (maxe - mine); +} + + +float Rogash_QPF(float *param) + /*************************************************************/ + /* Rogash_Rate */ + /* John Hart SPC Norman OK */ + /* */ + /* Computes an approximate cellular convective precipitation*/ + /* rate (expressed in inches per hour). */ + /* Based on research by Joe Rogash. */ + /* */ + /* *param = 1 hour rain rate (in/hr) */ + /*************************************************************/ +{ + short idxp; + float q1, q2, q3, q4, q5, x1=0; + float sfcpres, sfctemp, sfcdwpt; + float rog_updraft, rog_water; + Parcel pcl; + + *param = RMISSD; + + if (!sndg) + return RMISSD; + + idxp = getParmIndex("PRES"); + if (idxp == -1) + return RMISSD; + + /* Lift a MOST UNSTABLE Parcel */ + sfcpres = unstbl_lvl( &sfcpres, sndg[sfc()][idxp], -1 ); + sfctemp = i_temp(sfcpres, I_PRES); + sfcdwpt = i_dwpt(sfcpres, I_PRES); + x1 = parcel(-1, -1, sfcpres, sfctemp, sfcdwpt, &pcl); + + if (pcl.bplus <= 0) + return 0.0; + + /* Begin by determining theoretical updraft strength */ + rog_updraft = sqrt(2*pcl.bplus); + + /* Modulate updraft strength by shear */ + /* wind_shear( -1, i_pres(msl(6000)), &q2, &q3, &q4, &q5); */ + /* rog_updraft *= (kt_to_mps(q5) / 10) * .25; */ + rog_updraft *= 0.25; + + /* Now calculate PW density */ + rog_water = precip_water( &x1, -1, pcl.lfcpres ); + rog_water /= (i_hght(pcl.elpres, I_PRES) - i_hght(pcl.lfcpres, I_PRES)); + + *param = rog_updraft * rog_water * 3600.0; + + return *param; +} + +void setdcape_entrain(float value) +{ + dcape_entrain = value; +} + +float getdcape_entrain(void) +{ + return dcape_entrain; +} + +float dcape(float *level, float *drtemp) + /*************************************************************/ + /* DCAPE */ + /* John Hart SPC Norman OK */ + /* */ + /* Computes downdraft instability using a modified */ + /* DCAPE routine. Method determines the min ThetaE */ + /* in the lowest 400mb, and descends the parcel dry- */ + /* adiabatically to the surface. Resulting value in */ + /* J/kg. */ + /* */ + /* Input is entrainment value (-1=default) */ + /* (.2 would be 20% per km) */ + /* */ + /* Returns value (J/kg). */ + /* level = pressure (mb) of layer being descended. */ + /* drtemp = Downrush temperature at surface (C). */ + /* */ + /*************************************************************/ +{ + short i, lptr, uptr, p5, idxt, idxtd, idxp, idxz; + float te1, pe1, te2, pe2, h1, h2, lyre, tdef1, tdef2; + float te3, pe3, h3, tp1, tp2, tp3, lyrlast, upper; + float tote, ix1, mine, minep, ent2; + + if (!sndg) + return RMISSD; + + *level = RMISSD; + *drtemp = RMISSD; + + idxp = getParmIndex("PRES"); + idxz = getParmIndex("HGHT"); + idxtd = getParmIndex("DWPT"); + idxt = getParmIndex("TEMP"); + + if (idxp == -1 || idxz == -1 || idxt == -1 || idxtd == -1) + return RMISSD; + + if ((int)dcape_entrain == -1) + dcape_entrain = ENTRAIN_DEFAULT; + + /* ----- Find highest observation in layer ----- */ + i=numlvl-1; + while(sndg[i][idxp] < sndg[sfc()][idxp]-400.0) { i--;} + p5 = i; + if (sndg[i][idxp] == sndg[sfc()][idxp]-400.0) { p5--; } + + /* ----- Find min ThetaE layer ----- */ + mine=1000.0; minep=-999.0; + for(i=0;i=sfc();i--) { + pe2 = sndg[i][idxp]; + te2 = sndg[i][idxt]; + h2 = sndg[i][idxz]; + tp2 = wetlift(pe1, tp1, pe2); + + /* Account for Entrainment */ + /* dcape_entrain is global var - (.2 would be 20% per km) */ + ent2 = dcape_entrain * ((h1 - h2) / 1000.0); + tp2 = tp2 + ((te2 - tp2) * ent2); + + if(qc(te1) && qc(te2)) { + tdef1 = (tp1 - te1) / (te1 + 273.15); + tdef2 = (tp2 - te2) / (te2 + 273.15); + lyrlast = lyre; + lyre = 9.8 * (tdef1 + tdef2) / 2.0 * (h2 - h1); + tote += lyre; + } + + pe1 = pe2; + te1 = te2; + h1 = h2; + tp1 = tp2; + } + + *drtemp = tp2; + *level = upper; + return tote; +} + + +float mean_mixratio(float *param, float lower, float upper) + /*************************************************************/ + /* MEAN_MIXRATIO */ + /* John Hart NSSFC KCMO */ + /* */ + /* Calculates the Mean Mixing Ratio from data in */ + /* SNDG array within specified layer. */ + /* Value is returned both as (param) and as a RETURN;. */ + /* */ + /* *param = Returned mean mixing ratio (g/kg) */ + /* lower = Bottom level of layer (mb) [ -1=SFC] */ + /* upper = Top level of layer (mb) [ -1=SFC-100mb]*/ + /*************************************************************/ +{ + short i, okl, oku, lptr, uptr; + float num, dp1, dp2, totd, dbar, p1, p2, pbar, totp; + short pIndex, tdIndex; + + *param = RMISSD; + + pIndex = getParmIndex("PRES"); + tdIndex = getParmIndex("DWPT"); + + if (!sndg || pIndex == -1 || tdIndex == -1) + return RMISSD; + + /* ----- See if default layer is specified ----- */ + if (lower == -1) + lower = sndg[sfc()][pIndex]; + if (upper == -1) + upper = sndg[sfc()][pIndex] - 100.0; + + /* ----- Make sure this is a valid layer ----- */ + if (!qc(i_temp(upper, I_PRES))) + *param = RMISSD; + if (!qc(i_temp(lower, I_PRES))) + lower = i_pres(sfc()); + + /* ----- Find lowest observation in layer ----- */ + i = 0; + while (sndg[i][pIndex] > lower) + i++; + while (!qc(sndg[i][tdIndex])) + i++; + lptr = i; + if (sndg[i][pIndex] == lower) + lptr++; + + /* ----- Find highest observation in layer ----- */ + i=numlvl-1; + while (sndg[i][pIndex] < upper) + i--; + uptr = i; + if (sndg[i][pIndex] == upper) + uptr--; + + /* ----- Start with interpolated bottom layer ----- */ + dp1 = i_dwpt(lower, I_PRES); + p1 = lower; + num = 1; + + totd = 0; + totp = 0; + for (i=lptr; i <= uptr; i++) { + if (qc(sndg[i][tdIndex])) { + /* ----- Calculate every level that reports a dwpt ----- */ + dp2 = sndg[i][tdIndex]; + p2 = sndg[i][pIndex]; + dbar = (dp1 + dp2) / 2.0; + pbar = (p1 + p2) / 2.0; + totd = totd + dbar; + totp = totp + pbar; + dp1 = dp2; + p1 = p2; + num++; + } + } + + /* ----- Finish with interpolated top layer ----- */ + dp2 = i_dwpt(upper, I_PRES); + p2 = upper; + dbar = (dp1 + dp2) / 2.0; + pbar = (p1 + p2) / 2.0; + totd = totd + dbar; + totp = totp + pbar; + *param = mixratio(totp/num, totd/num); + + return *param; +} + + +float mean_relhum(float *param, float lower, float upper) + /*************************************************************/ + /* MEAN_RELHUM */ + /* John Hart NSSFC KCMO */ + /* */ + /* Calculates the Mean Relative Humidity from data in */ + /* SNDG array within specified layer. */ + /* Value is returned both as (param) and as a RETURN;. */ + /* */ + /* *param = Returned mean relative Humidity (%) */ + /* lower = Bottom level of layer (mb) [ -1=SFC] */ + /* upper = Top level of layer (mb) [ -1=TOP] */ + /*************************************************************/ +{ + short i, okl, oku, lptr, uptr; + float num, dp1, dp2, totd, dbar, p1, p2, pbar, totp; + float t1, t2, tbar, tott, dum; + short pIndex, tIndex, tdIndex; + + *param = RMISSD; + + pIndex = getParmIndex("PRES"); + tdIndex = getParmIndex("DWPT"); + tIndex = getParmIndex("TEMP"); + + if (!sndg || numlvl < 1 || pIndex == -1 || tdIndex == -1) + return RMISSD; + + /* ----- See if default layer is specified ----- */ + if (lower == -1) + lower = sndg[sfc()][pIndex]; + if (upper == -1) + upper = sndg[numlvl - 1][pIndex]; + + /* ----- Make sure this is a valid layer ----- */ + while (!qc(i_dwpt(upper, I_PRES)) && (upper < lower)) + upper += 50.0; + if (!qc(i_temp(lower, I_PRES))) + lower = i_pres(sfc()); + + if (upper >= lower) { + *param = RMISSD; + return *param; + } + + /* ----- Find lowest observation in layer ----- */ + i = 0; + while (sndg[i][pIndex] > lower) + i++; + while (!qc(sndg[i][tdIndex])) + i++; + lptr = i; + if (sndg[i][pIndex] == lower) + lptr++; + + /* ----- Find highest observation in layer ----- */ + i=numlvl-1; + while (sndg[i][pIndex] < upper) + i--; + uptr = i; + if (sndg[i][pIndex] == upper) + uptr--; + + /* ----- Start with interpolated bottom layer ----- */ + t1 = i_temp(lower, I_PRES); + dp1 = i_dwpt(lower, I_PRES); + p1 = lower; + num = 1; + + totd = 0; + totp = 0; + tott = 0; + for (i=lptr; i <= uptr; i++) { + if (qc(sndg[i][tdIndex])) { + /* ----- Calculate every level that reports a dwpt ----- */ + dp2 = sndg[i][tdIndex]; + t2 = sndg[i][tIndex]; + p2 = sndg[i][pIndex]; + tbar = (t1 + t2) / 2.0; + dbar = (dp1 + dp2) / 2.0; + pbar = (p1 + p2) / 2.0; + totd += dbar; + totp += pbar; + tott += tbar; + dp1 = dp2; + p1 = p2; + t1 = t2; + num++; + } + } + + /* ----- Finish with interpolated top layer ----- */ + if (qc(i_dwpt(upper, I_PRES))) { + dp2 = i_dwpt(upper, I_PRES); + t2 = i_temp(upper, I_PRES); + p2 = upper; + tbar = (t1 + t2) / 2.0; + dbar = (dp1 + dp2) / 2.0; + pbar = (p1 + p2) / 2.0; + tott += tbar; + totd += dbar; + totp += pbar; + } + + *param = 100.0 * mixratio(totp/num, totd/num) / + mixratio(totp/num, tott/num); + + return *param; +} + + +float mean_dwpt(float *param, float lower, float upper) + /*************************************************************/ + /* MEAN_DWPT */ + /* John Hart NSSFC KCMO */ + /* */ + /* Calculates the Mean Dew Point from data in */ + /* SNDG array within specified layer. */ + /* Value is returned both as (param) and as a RETURN;. */ + /* */ + /* *param = Returned mean dew point (c) */ + /* lower = Bottom level of layer (mb) [ -1=SFC] */ + /* upper = Top level of layer (mb) [ -1=SFC-100mb]*/ + /*************************************************************/ +{ + short i, okl, oku, lptr, uptr; + float num, dp1, dp2, totd, dbar, p1, p2, pbar, totp; + short pIndex, tdIndex; + + *param = RMISSD; + + pIndex = getParmIndex("PRES"); + tdIndex = getParmIndex("DWPT"); + + if (!sndg || numlvl < 1 || pIndex == -1 || tdIndex == -1) + return RMISSD; + + /* ----- See if default layer is specified ----- */ + if( lower == -1) { lower = sndg[sfc()][pIndex]; } + if( upper == -1) { upper = sndg[sfc()][pIndex] - 100; } + + /* ----- Make sure this is a valid layer ----- */ + if( !qc( i_temp(upper, I_PRES))) { *param = RMISSD; } + if( !qc( i_temp(lower, I_PRES))) { lower = i_pres( sfc() ); } + + /* ----- Find lowest observation in layer ----- */ + i = 0; + while( sndg[i][pIndex] > lower) { i++; } + while ( !qc(sndg[i][tdIndex]) ) { i++; } + lptr = i; + if( sndg[i][pIndex] == lower ) { lptr++; } + + /* ----- Find highest observation in layer ----- */ + i=numlvl-1; + while( sndg[i][pIndex] < upper) { i--;} + uptr = i; + if( sndg[i][pIndex] == upper ) { uptr--; } + + /* ----- Start with interpolated bottom layer ----- */ + dp1 = i_dwpt(lower, I_PRES); + p1 = lower; + num = 1; + + totd = 0; + totp = 0; + for( i = lptr; i <= uptr; i++) + { + if( qc(sndg[i][tdIndex]) ) + { + /* ----- Calculate every level that reports a dwpt ----- */ + dp2 = sndg[i][tdIndex]; + p2 = sndg[i][pIndex]; + dbar = (dp1 + dp2) / 2; + pbar = (p1 + p2)/2; + totd = totd + dbar; + totp = totp + pbar; + dp1 = dp2; + p1 = p2; + num += 1; + } + } + + /* ----- Finish with interpolated top layer ----- */ + dp2 = i_dwpt(upper, I_PRES); + p2 = upper; + dbar = (dp1 + dp2) / 2; + pbar = (p1 + p2) / 2; + totd = totd + dbar; + totp = totp + pbar; + *param = totd/num; + + return *param; +} + + +float mean_theta(float *param, float lower, float upper) + /*************************************************************/ + /* MEAN_THETA */ + /* John Hart NSSFC KCMO */ + /* */ + /* Calculates the Mean Potential temperature of the */ + /* SNDG array within specified layer. */ + /* Value is returned both as (param) and as a RETURN;. */ + /* */ + /* *param = Returned mean theta (c) */ + /* lower = Bottom level of layer (mb) [ -1=SFC] */ + /* upper = Top level of layer (mb) [ -1=SFC-100mb]*/ + /*************************************************************/ +{ + short i, okl, oku, lptr, uptr; + float num, dp1, dp2, totd, dbar, p1, p2, pbar, totp; + short pIndex, tIndex; + + *param = RMISSD; + + pIndex = getParmIndex("PRES"); + tIndex = getParmIndex("TEMP"); + + if (!sndg || numlvl < 1 || pIndex == -1 || tIndex == -1) + return RMISSD; + + /* ----- See if default layer is specified ----- */ + if (lower == -1) { lower = sndg[sfc()][pIndex]; } + if (upper == -1) { upper = sndg[sfc()][pIndex] - 100.0; } + /* ----- Make sure this is a valid layer ----- */ + if (!qc(i_temp(upper, I_PRES))) { *param = RMISSD; } + if (!qc(i_temp(lower, I_PRES))) { lower = i_pres(sfc()); } + + /* ----- Find lowest observation in layer ----- */ + i = 0; + while (sndg[i][pIndex] > lower) { i++; } + while (!qc(sndg[i][tIndex]) ) { i++; } + lptr = i; + if (sndg[i][pIndex] == lower ) { lptr++; } + + /* ----- Find highest observation in layer ----- */ + i=numlvl-1; + while (sndg[i][pIndex] < upper) { i--;} + uptr = i; + if (sndg[i][pIndex] == upper) { uptr--; } + + /* ----- Start with interpolated bottom layer ----- */ + dp1 = theta( lower, i_temp(lower, I_PRES), 1000.0); + p1 = lower; + num = 1; + + totd = 0; + totp = 0; + for( i = lptr; i <= uptr; i++) { + if( qc(sndg[i][tIndex]) ) { + /* ----- Calculate every level that reports a temp ----- */ + dp2 = theta( sndg[i][pIndex], sndg[i][tIndex], 1000.0); + p2 = sndg[i][pIndex]; + dbar = (dp1 + dp2) / 2.0; + pbar = (p1 + p2)/2.0; + totd = totd + dbar; + totp = totp + pbar; + dp1 = dp2; + p1 = p2; + num++; + } + } + + /* ----- Finish with interpolated top layer ----- */ + dp2 = theta(upper, i_temp(upper, I_PRES), 1000.0); + p2 = upper; + dbar = (dp1 + dp2) / 2.0; + pbar = (p1 + p2) / 2.0; + totd = totd + dbar; + totp = totp + pbar; + *param = totd/num; + + return *param; +} + + +float Mean_WBtemp(float *param, float lower, float upper) + /*************************************************************/ + /* MEAN_WBTEMP */ + /* John Hart NSSFC KCMO */ + /* */ + /* Computes the average Wetbulb temperature between the */ + /* two given levels (lower,upper) */ + /* */ + /* lower = Bottom level of layer (mb) [ -1=SFC] */ + /* upper = Top level of layer (mb) [ -1=WBZ] */ + /*************************************************************/ +{ + short i, okl, oku, lptr, uptr; + float num, dp1, dp2, totd, dbar, p1, p2, pbar, totp, ix1; + short pIndex, tIndex, tdIndex; + + *param = RMISSD; + + pIndex = getParmIndex("PRES"); + tIndex = getParmIndex("TEMP"); + tdIndex = getParmIndex("DWPT"); + + if (!sndg || numlvl < 1 || pIndex == -1 || tIndex == -1 || + tdIndex == -1) + return RMISSD; + + /* ----- See if default layer is specified ----- */ + if ( lower == -1) { lower = sndg[sfc()][pIndex]; } + if ( upper == -1) { upper = wb_lvl(0, &ix1); } + + /* ----- Make sure this is a valid layer ----- */ + if ( !qc(i_dwpt(upper, I_PRES))) { *param = RMISSD; } + if ( !qc(i_dwpt(lower, I_PRES))) { lower = i_pres( sfc() ); } + + + /* ----- Find lowest observation in layer ----- */ + i = 0; + while( sndg[i][pIndex] > lower) { i++; } + while ( !qc(sndg[i][tIndex]) ) { i++; } + lptr = i; + if( sndg[i][pIndex] == lower ) { lptr++; } + + /* ----- Find highest observation in layer ----- */ + i=numlvl-1; + while( sndg[i][pIndex] < upper) { i--;} + uptr = i; + if( sndg[i][pIndex] == upper ) { uptr--; } + + /* ----- Start with interpolated bottom layer ----- */ + dp1 = wetbulb(lower, i_temp(lower, I_PRES), i_dwpt(lower, I_PRES)); + p1 = lower; + num = 1; + + totd = 0; + totp = 0; + for( i = lptr; i <= uptr; i++) { + if( qc(sndg[i][tdIndex]) ) { + /* ----- Calculate every level that reports a temp ----- */ + dp2 = wetbulb(sndg[i][pIndex], sndg[i][tIndex], + sndg[i][tdIndex]); + p2 = sndg[i][pIndex]; + dbar = (dp1 + dp2) / 2.0; + pbar = (p1 + p2)/2.0; + totd = totd + dbar; + totp = totp + pbar; + dp1 = dp2; + p1 = p2; + num++; + } + } + + /* ----- Finish with interpolated top layer ----- */ + dp2 = wetbulb( upper, i_temp(upper, I_PRES), i_dwpt(upper, I_PRES)); + p2 = upper; + dbar = (dp1 + dp2) / 2.0; + pbar = (p1 + p2) / 2.0; + totd = totd + dbar; + totp = totp + pbar; + *param = totd/num; + + return *param; +} + + +float Mean_thetae(float *param, float lower, float upper) + /*************************************************************/ + /* MEAN_THETAE */ + /* John Hart NSSFC KCMO */ + /* */ + /* Computes the average ThetaE temperature between the */ + /* two given levels (lower,upper) */ + /* */ + /* lower = Bottom level of layer (mb) [ -1=WBZ+50] */ + /* upper = Top level of layer (mb) [ -1=WBZ-50] */ + /*************************************************************/ +{ + short i, okl, oku, lptr, uptr; + float num, dp1, dp2, totd, dbar, p1, p2, pbar, totp, ix1; + short pIndex, tIndex, tdIndex; + + *param = RMISSD; + + pIndex = getParmIndex("PRES"); + tIndex = getParmIndex("TEMP"); + tdIndex = getParmIndex("DWPT"); + + if (!sndg || numlvl < 1 || pIndex == -1 || tIndex == -1 || + tdIndex == -1) + return RMISSD; + + /* ----- See if default layer is specified ----- */ + if (lower == -1) { lower = wb_lvl(0, &ix1)+50.0; } + if (upper == -1) { upper = wb_lvl(0, &ix1)-50.0; } + + /* ----- Make sure this is a valid layer ----- */ + if (!qc( i_dwpt(upper, I_PRES))) { *param = RMISSD; } + if (!qc( i_dwpt(lower, I_PRES))) { lower = i_pres(sfc()); } + + /* ----- Find lowest observation in layer ----- */ + i = 0; + while( sndg[i][pIndex] > lower) { i++; } + while ( !qc(sndg[i][tIndex]) ) { i++; } + lptr = i; + if( sndg[i][pIndex] == lower ) { lptr++; } + + /* ----- Find highest observation in layer ----- */ + i=numlvl-1; + while( sndg[i][pIndex] < upper) { i--;} + uptr = i; + if( sndg[i][pIndex] == upper ) { uptr--; } + + /* ----- Start with interpolated bottom layer ----- */ + dp1 = thetae(lower, i_temp(lower, I_PRES), i_dwpt(lower, I_PRES)); + p1 = lower; + num = 1; + + totd = 0; + totp = 0; + for( i = lptr; i <= uptr; i++) + { + if( qc(sndg[i][tdIndex]) ) + { + /* ----- Calculate every level that reports a temp ----- */ + dp2 = thetae(sndg[i][pIndex], sndg[i][tIndex], + sndg[i][tdIndex]); + p2 = sndg[i][pIndex]; + dbar = (dp1 + dp2) / 2.0; + pbar = (p1 + p2) / 2.0; + totd = totd + dbar; + totp = totp + pbar; + dp1 = dp2; + p1 = p2; + num++; + } + } + + /* ----- Finish with interpolated top layer ----- */ + dp2 = thetae( upper, i_temp(upper, I_PRES), i_dwpt(upper, I_PRES)); + p2 = upper; + dbar = (dp1 + dp2) / 2.0; + pbar = (p1 + p2) / 2.0; + totd = totd + dbar; + totp = totp + pbar; + *param = totd/num; + + return *param; +} + + +float mean_temp(float *param, float lower, float upper) + /*************************************************************/ + /* MEAN_TEMP */ + /* John Hart NSSFC KCMO */ + /* */ + /* Calculates the Mean Temperature from data in */ + /* SNDG array within specified layer. */ + /* Value is returned both as (param) and as a RETURN;. */ + /* */ + /* *param = Returned mean temp (c) */ + /* lower = Bottom level of layer (mb) [ -1=SFC] */ + /* upper = Top level of layer (mb) [ -1=SFC-100mb]*/ + /*************************************************************/ +{ + short i, okl, oku, lptr, uptr; + float num, dp1, dp2, totd, dbar, p1, p2, pbar, totp; + short pIndex, tIndex; + + *param = RMISSD; + + pIndex = getParmIndex("PRES"); + tIndex = getParmIndex("TEMP"); + + if (!sndg || numlvl < 1 || pIndex == -1 || tIndex == -1) + return RMISSD; + + /* ----- See if default layer is specified ----- */ + if ( lower == -1) { lower = sndg[sfc()][pIndex]; } + if ( upper == -1) { upper = sndg[sfc()][pIndex] - 100.0; } + + /* ----- Make sure this is a valid layer ----- */ + if ( !qc(i_temp(upper, I_PRES))) { *param = RMISSD; } + if ( !qc(i_temp(lower, I_PRES))) { lower = i_pres( sfc() ); } + + /* ----- Find lowest observation in layer ----- */ + i = 0; + while( sndg[i][pIndex] > lower) { i++; } + while ( !qc(sndg[i][tIndex]) ) { i++; } + lptr = i; + if( sndg[i][pIndex] == lower ) { lptr++; } + + /* ----- Find highest observation in layer ----- */ + i=numlvl-1; + while( sndg[i][pIndex] < upper) { i--;} + uptr = i; + if( sndg[i][pIndex] == upper ) { uptr--; } + + /* ----- Start with interpolated bottom layer ----- */ + dp1 = i_temp(lower, I_PRES); + p1 = lower; + num = 1; + + totd = 0; + totp = 0; + for( i = lptr; i <= uptr; i++) { + if( qc(sndg[i][tIndex]) ) { + /* ----- Calculate every level that reports a temp ----- */ + dp2 = sndg[i][tIndex]; + p2 = sndg[i][pIndex]; + dbar = (dp1 + dp2) / 2.0; + pbar = (p1 + p2) / 2.0; + totd = totd + dbar; + totp = totp + pbar; + dp1 = dp2; + p1 = p2; + num++; + } + } + + /* ----- Finish with interpolated top layer ----- */ + dp2 = i_temp(upper, I_PRES); + p2 = upper; + dbar = (dp1 + dp2) / 2.0; + pbar = (p1 + p2) / 2.0; + totd = totd + dbar; + totp = totp + pbar; + *param = totd/num; + + return *param; +} + + +/* +THIS ROUTINE DOES NOT LOOK FINISHED + +I guess it is though. It's being used. +*/ + +float uncapped_cape(float *param, float *level, float maxcin) + /*************************************************************/ + /* UNCAPPED_CAPE */ + /* John Hart SPC OUN */ + /* */ + /* Computes the cape at the most unstable level below 500mb */ + /* that is not capped greater that maxcin */ + /* */ + /* maxcin = Convective inhibition threshold (j/kg) */ + /* level = Level of max CAPE (mb) */ + /* *param = Returned CAPE (j/kg) */ + /*************************************************************/ +{ + int i; + float maxcape, maxcapelevel, ix1, t5; + Parcel pcl; + short pIndex, tIndex, tdIndex; + + *param = RMISSD; + + pIndex = getParmIndex("PRES"); + tIndex = getParmIndex("TEMP"); + tdIndex = getParmIndex("DWPT"); + + if (!sndg || pIndex == -1 || tIndex == -1 || tdIndex == -1) + return RMISSD; + + maxcape = 0; + maxcapelevel = 0; + /* Loop through each layer below 500mb and compute CAPE */ + /* If 500mb T is missing (i.e. a short sounding) then */ + /* return uncapped_cape as missing */ + + if ( !qc(t5)) { + *param = RMISSD; +/* printf( "Missing 500mb Temp, not computing uncapped_cape\n"); */ + } + else { + for (i=1; sndg[i][pIndex]>500.0; i++) { + ix1 = parcel(-1, -1, sndg[i][pIndex], sndg[i][tIndex], + sndg[i][tdIndex], &pcl); + if (pcl.bplus > maxcape) { + if ((pcl.bminus >= maxcin) && + ((sndg[i][tIndex] - sndg[i][tdIndex]) <= 5)) { + maxcape = pcl.bplus; + maxcapelevel = pcl.lplpres; + } + } + } + } +} + + +/* + * Routine to find the lowest observation in a sounding + * + * bottom - minimum level to search to (mb for pressure, meters for height) + * itype - I_PRES for pressure and I_HGHT for height + * idx - the index of the variable you're looking for + * + * -mkay + */ +short findlowobindex(float bottom, short itype, short idx) +{ + short i=0, j, lptr=-1; + + if (!sndg || idx >= ndsetparms || idx == -1 || !qc(bottom)) + return -1; + + if (itype == I_PRES) { + j = getParmIndex("PRES"); + if (j == -1) + return -1; + + /* + * Find the first pressure level above the bottom + */ + while(sndg[i][j] > bottom) { + i++; + if (i == (numlvl-1)) { + fprintf(stderr, "Warning: findlowobindex: Breaking out early.\n"); + break; + } + } + /* + * Now we start from that level and find the first level where + * we have valid data + */ + while(!qc(sndg[i][idx])) { + i++; + if (i >= numlvl) { + fprintf(stderr, "Warning: findlowobindex: No good data found.\n"); + return -1; + } + } + lptr = i; + + if (sndg[i][j] == bottom) + lptr++; + } + else if (itype == I_HGHT) { + j = getParmIndex("HGHT"); + if (j == -1) + return -1; + + while(sndg[i][j] < bottom) { + i++; + if (i == (numlvl-1)) { + fprintf(stderr, "Warning: findlowobindex: Breaking out early.\n"); + break; + } + } + while(!qc(sndg[i][idx])) { + i++; + if (i >= numlvl) { + fprintf(stderr, "Warning: findlowobindex: No good data found.\n"); + return -1; + } + } + lptr = i; + + if (sndg[i][j] == bottom) + lptr++; + } + + return lptr; +} + + +/* + * Routine to find the highest observation in a sounding + * + * top - maximum level to search to (mb for pressure, meters for height) + * itype - I_PRES for pressure and I_HGHT for height + * idx - the index of the variable you're looking for + * + * -mkay + */ +short findhighobindex(float top, short itype, short idx) +{ + short i, j, uptr=-1; + + if (!sndg || idx >= ndsetparms || idx == -1 || !qc(top)) + return -1; + + if (itype == I_PRES) { + j = getParmIndex("PRES"); + if (j == -1) + return -1; + + i=numlvl-1; + while(sndg[i][j] < top) { + i--; + if (i == 0) { + fprintf(stderr, + "Warning: findhighobindex: Breaking out early.\n"); + break; + } + } + while(!qc(sndg[i][idx])) { + i--; + if (i <= 0) { + fprintf(stderr, + "Warning: findhighobindex: Breaking out early.\n"); + return -1; + } + } + uptr = i; + + if (sndg[i][j] == top) + uptr--; + } + else if (itype == I_HGHT) { + j = getParmIndex("HGHT"); + if (j == -1) + return -1; + + i=numlvl-1; + while(sndg[i][j] > top) { + i--; + if (i <= 0) { + fprintf(stderr, + "Warning: findhighobindex: Breaking out early.\n"); + break; + } + } + while(!qc(sndg[i][idx])) { + i--; + if (i <= 0) { + fprintf(stderr, + "Warning: findhighobindex: Breaking out early.\n"); + return -1; + } + } + uptr = i; + + if (sndg[i][j] == top) + uptr--; + } + + return uptr; +} + + +float scp(float stdir, float stspd) +/***************************************************************/ +/* */ +/* Computes the Supercell Composite Parameter */ +/* Updated to 2005 WAF version - RLT 1/17/05 */ +/* */ +/***************************************************************/ + { + float ix1, ix2, ix3, ix4, lpl, el, depth, eshear, esrh, ebot, etop, fudge, cape, scp_new; + float eshear40, eshear50, eshear60; + int idxp; + struct _parcel pcl; + + idxp = getParmIndex("PRES"); + + /* How likely are supercell storms? */ + /* scp = 6km Shear * 3keh * mucp / 6000000 */ + /* scp > 1 indicates some supercell threat. scp > 3 is a strong signal */ + + ix1 = parcel( -1, -1, lplvals.pres, lplvals.temp, lplvals.dwpt, &pcl); + + lpl = agl(i_hght(pcl.lplpres, I_PRES)); + el = agl(i_hght(pcl.elpres, I_PRES)); + depth = (el - lpl); + + wind_shear(pcl.lplpres, i_pres(msl(lpl + (depth * 0.4))), &ix1, &ix2, &ix3, &ix4); + eshear40 = ix4; + wind_shear(pcl.lplpres, i_pres(msl(lpl + (depth * 0.5))), &ix1, &ix2, &ix3, &ix4); + eshear50 = ix4; + wind_shear(pcl.lplpres, i_pres(msl(lpl + (depth * 0.6))), &ix1, &ix2, &ix3, &ix4); + eshear60 = ix4; + + if ((eshear40 >= eshear50) && (eshear40 >= eshear60)) eshear=eshear40; + else if ((eshear50 >= eshear40) && (eshear50 >= eshear60)) eshear=eshear50; + else if ((eshear60 >= eshear40) && (eshear60 >= eshear50)) eshear=eshear60; + + if (eshear < 0) { + wind_shear( i_pres(msl(0)), i_pres(msl(6000)), &ix1, &ix2, &ix3, &ix4); + eshear = ix4; + } + +/* printf("\neshear (for SCP) = %.1f\n", eshear); */ + + effective_inflow_layer( 100, -250, &ix1, &ix2); + ebot = ix1; + etop = ix2; + + esrh = helicity( agl(i_hght(ebot, I_PRES)), agl(i_hght(etop, I_PRES)), stdir, stspd, &ix2, &ix3); +/* printf("\nesrh = %.1f\n", esrh); */ + + cape = pcl.bplus; +/* printf("\ncape = %.1f\n", cape); */ + + if (!qc(cape)) return -9999; + + if (eshear < 20 ) eshear = 0; + if (eshear > 40 ) eshear = 1; + else + eshear = (eshear / 40 ); + if (esrh < -998) esrh = 0; + + scp_new = (eshear * (esrh/50) * (cape/1000)); +/* printf("\nscp_new = %.1f\n", scp_new); */ + return scp_new; + } + +float sigtorn(float stdir, float stspd) +/***************************************************************/ +/* */ +/* WAF 2005 Significant Tornado Parameter */ +/* Rich Thompson SPC OUN */ +/* */ +/***************************************************************/ + { + float ix1, ix2, ix3, ix4, eshear, esrh, mlcape, lclh, stp, cape3km, lpl, el, depth, ebot, etop; + float eshear40, eshear50, eshear60; + int idxp; + struct _parcel pcl; + + idxp = getParmIndex("PRES"); + + /* How likely are significant tornadoes? */ + /* scp = (6km Shear/40) * (1keh/150) * (mucp/1000) * (lcl hgt / 2000m) * (cin / 100) *(3kmcape / 75) */ + + ix1 = parcel( -1, -1, lplvals.pres, lplvals.temp, lplvals.dwpt, &pcl); + + lpl = agl(i_hght(pcl.lplpres, I_PRES)); + el = agl(i_hght(pcl.elpres, I_PRES)); + depth = (el - lpl); + + wind_shear(pcl.lplpres, i_pres(msl(lpl + (depth * 0.4))), &ix1, &ix2, &ix3, &ix4); + eshear40 = ix4; + wind_shear(pcl.lplpres, i_pres(msl(lpl + (depth * 0.5))), &ix1, &ix2, &ix3, &ix4); + eshear50 = ix4; + wind_shear(pcl.lplpres, i_pres(msl(lpl + (depth * 0.6))), &ix1, &ix2, &ix3, &ix4); + eshear60 = ix4; + + if ((eshear40 >= eshear50) && (eshear40 >= eshear60)) eshear=eshear40; + else if ((eshear50 >= eshear40) && (eshear50 >= eshear60)) eshear=eshear50; + else if ((eshear60 >= eshear40) && (eshear60 >= eshear50)) eshear=eshear60; + + if (el < 0) { + wind_shear( i_pres(msl(0)), i_pres(msl(6000)), &ix1, &ix2, &ix3, &ix4); + eshear = ix4; + } + + effective_inflow_layer( 100, -250, &ix1, &ix2); + ebot = ix1; + etop = ix2; + + esrh = helicity( agl(i_hght(ebot, I_PRES)), agl(i_hght(etop, I_PRES)), stdir, stspd, &ix2, &ix3); + + mlcape = pcl.bplus; + + cape3km = pcl.cape3km; + + /* cinh = 150 + pcl.bminus; */ + + if (!qc(mlcape)) return -9999; + + lclh = agl(i_hght(pcl.lclpres, I_PRES)); + + if (lclh > 2000) lclh = 0; + else + if (lclh <= 1000) lclh = 1; + else + lclh = ((2000-lclh)/1000); + + printf("\nlcl_term = %.1f\n", lclh); + + if (eshear < 25 ) eshear = 0; + else + if (eshear >= 60) eshear = 1.5; + else + eshear = (eshear/40); + + if (esrh < -9998) esrh = 0; + + /* stp = (shr6/40) * (eh1km/100) * (cape/1000) * (cinh/125) * (lclh/1750); */ + stp = (eshear) * (esrh/150) * (mlcape/1500) * (lclh); + if (stp < 0) stp = 0; + return stp; + } + +float sigtorn_cin(float stdir, float stspd) +/***************************************************************/ +/* */ +/* WAF 2005 Significant Tornado Parameter (with CIN) */ +/* Rich Thompson SPC OUN */ +/* */ +/***************************************************************/ + { + float ix1, ix2, ix3, ix4, eshear, esrh, mlcape, mlcinh, lclh, stp_cin, lpl, el, depth, ebot, etop; + float eshear40, eshear50, eshear60; + int idxp; + struct _parcel pcl; + + idxp = getParmIndex("PRES"); + + /* How likely are significant tornadoes? */ + /* scp = (6km Shear/40) * (1keh/150) * (mucp/1000) * (lcl hgt / 2000m) * (cin / 100) *(3kmcape / 75) */ + + ix1 = parcel( -1, -1, lplvals.pres, lplvals.temp, lplvals.dwpt, &pcl); + + lpl = agl(i_hght(pcl.lplpres, I_PRES)); + el = agl(i_hght(pcl.elpres, I_PRES)); + depth = (el - lpl); + + wind_shear(pcl.lplpres, i_pres(msl(lpl + (depth * 0.4))), &ix1, &ix2, &ix3, &ix4); + eshear40 = ix4; + wind_shear(pcl.lplpres, i_pres(msl(lpl + (depth * 0.5))), &ix1, &ix2, &ix3, &ix4); + eshear50 = ix4; + wind_shear(pcl.lplpres, i_pres(msl(lpl + (depth * 0.6))), &ix1, &ix2, &ix3, &ix4); + eshear60 = ix4; + + if ((eshear40 >= eshear50) && (eshear40 >= eshear60)) eshear=eshear40; + else if ((eshear50 >= eshear40) && (eshear50 >= eshear60)) eshear=eshear50; + else if ((eshear60 >= eshear40) && (eshear60 >= eshear50)) eshear=eshear60; + + if (el < 0) { + wind_shear( i_pres(msl(0)), i_pres(msl(6000)), &ix1, &ix2, &ix3, &ix4); + eshear = ix4; + } + + effective_inflow_layer( 100, -250, &ix1, &ix2); + ebot = ix1; + etop = ix2; + + esrh = helicity( agl(i_hght(ebot, I_PRES)), agl(i_hght(etop, I_PRES)), stdir, stspd, &ix2, &ix3); + + mlcape = pcl.bplus; + + mlcinh = pcl.bminus; + + /* cinh = 150 + pcl.bminus; */ + + if (!qc(mlcape)) return -9999; + + if (mlcinh >= -50 ) mlcinh=1; + else + if (mlcinh < -200 ) mlcinh=0; + else + mlcinh = ((200 + mlcinh)/150); + + lclh = agl(i_hght(pcl.lclpres, I_PRES)); + + if (lclh > 2000) lclh = 0; + else + if (lclh <= 1000) lclh = 1; + else + lclh = ((2000-lclh)/1000); + + if (eshear < 25 ) eshear = 0; + else + if (eshear >= 60) eshear = 1.5; + else + eshear = (eshear/40); + + if (esrh < -9998) esrh = 0; + + /* stp = (shr6/40) * (eh1km/100) * (cape/1000) * (cinh/125) * (lclh/1750); */ + stp_cin = (eshear) * (esrh/150) * (mlcape/1500) * (lclh) * (mlcinh); + +/* printf( "mlcape=%f\nmlcinh=%f\nlclh=%f\neshear=%f\nesrh=%f\nstp_new_cin=%f\n", mlcape, mlcinh, lclh, eshear, esrh, stp_cin); +*/ + if (stp_cin < 0) stp_cin = 0; + return stp_cin; + } + +#ifdef BLAMMO +float parcelx(float lower, float upper, float pres, float temp, + float dwpt, Parcel *pcl) + /*************************************************************/ + /* PARCELX */ + /* John Hart NSSFC KCMO */ + /* */ + /* Lifts specified parcel, calculating various levels and */ + /* parameters from data in SNDG array. B+/B- are */ + /* calculated based on layer (lower-upper). Bplus is */ + /* returned value and in structure. */ + /* */ + /* No virtual corrections are used. */ + /* */ + /* lower = Bottom level of layer (mb) [ -1=SFC] */ + /* upper = Top level of layer (mb) [ -1=TOP] */ + /* pres = LPL pressure (mb) */ + /* temp = LPL temperature (c) */ + /* dwpt = LPL dew point (c) */ + /* pcl = returned _parcel structure */ + /*************************************************************/ + { + short i, lptr, uptr; + float te1, pe1, te2, pe2, h1, h2, lyre, tdef1, tdef2, totp, totn; + float te3, pe3, h3, tp1, tp2, tp3, tdef3, lyrf, lyrlast, pelast; + float tote, totx, ls1, cap_strength, li_max, li_maxpres, bltheta, pp; + float cap_strengthpres, tpx, ix1, blupper, pp1, pp2, dz, blmr; + + /* ----- Initialize PCL values ----- */ + pcl->lplpres = pres; + pcl->lpltemp = temp; + pcl->lpldwpt = dwpt; + pcl->blayer = lower; + pcl->tlayer = upper; + pcl->entrain = 0; + pcl->lclpres = -999; + pcl->lfcpres = -999; + pcl->elpres = -999; + pcl->mplpres = -999; + pcl->bplus = -999; + pcl->bminus = -999; + pcl->bfzl = -999; + pcl->li5 = -999; + pcl->li3 = -999; + pcl->brn = -999; + pcl->limax = -999; + pcl->limaxpres = -999; + pcl->cap = -999; + pcl->cappres = -999; + + lyre = -1; + cap_strength = -999; + cap_strengthpres = -999; + li_max = -999; + li_maxpres = -999; + totp = 0; + totn = 0; + + if (!sndg || numlvl < 1) + return RMISSD; + + /* ----- See if default layer is specified ----- */ + if( lower == -1) + { + lower = sndg[sfc()][1]; + pcl->blayer = lower; + } + if( upper == -1) + { + upper = sndg[numlvl-1][1]; + pcl->tlayer = upper; + } + + /* ----- Make sure this is a valid layer ----- */ + if( lower > pres ) + { + lower = pres; + pcl->blayer = lower; + } + if( !qc( i_temp( upper ))) { return -999; } + if( !qc( i_temp( lower ))) { return -999; } + + /* ----- Begin with Mixing Layer (LPL-LCL) ----- */ + te1 = i_temp( pres ); + pe1 = lower; + h1 = i_hght( pe1 ); + tp1 = temp; + + drylift(pres, temp, dwpt, &pe2, &tp2); + blupper=pe2; + h2 = i_hght( pe2 ); + te2 = i_temp( pe2 ); + pcl->lclpres = pe2; + + bltheta = theta(pres, i_temp(pres), 1000); + blmr = mixratio(pres, dwpt); + + /* ----- Accumulate CINH in mixing layer below the LCL ----- */ + /* This will be done in 10mb increments, and will use the */ + /* virtual temperature correction where possible. */ + + totn=0; + for(pp=lower;pp>blupper;pp-=10) + { + pp1 = pp; + pp2 = pp-10; + if (pp2 pe2 ) + { + lower = pe2; + pcl->blayer = lower; + } + + /* ----- Find lowest observation in layer ----- */ + i = 0; + while( sndg[i][1] > lower) { i++; } + while ( !qc(sndg[i][4]) ) { i++; } + lptr = i; + if( sndg[i][1] == lower ) { lptr++; } + + /* ----- Find highest observation in layer ----- */ + i=numlvl-1; + while(sndg[i][1] < upper) { i--; } + uptr = i; + if( sndg[i][1] == upper ) { uptr--; } + + /* ----- Start with interpolated bottom layer ----- */ + pe1 = lower; + h1 = i_hght( pe1 ); + te1 = i_temp( pe1 ); + tp1 = wetlift(pe2, tp2, pe1); + + totp = 0; + for( i = lptr; i < numlvl; i++) + { + if( qc(sndg[i][3]) ) + { + /* ----- Calculate every level that reports a temp ----- */ + pe2 = sndg[i][1]; + h2 = sndg[i][2]; + te2 = i_temp( pe2 ); + tp2 = wetlift(pe1, tp1, pe2); + tdef1 = (tp1 - te1) / (te1 + 273.15); + tdef2 = (tp2 - te2) / (te2 + 273.15); + lyrlast = lyre; + lyre = 9.8F * (tdef1 + tdef2) / 2.0F * (h2 - h1); + + /* ----- Check for Max LI ----- */ + if ((tp2 - te2) > li_max) + { + li_max = tp2 - te2; + li_maxpres = pe2; + } + + /* ----- Check for Max Cap Strength ----- */ + if ((te2 - tp2) > cap_strength) + { + cap_strength = te2 - tp2; + cap_strengthpres = pe2; + } + + if( lyre > 0 ) + { totp += lyre; } + else + { + if(pe2 > 500) { totn += lyre; } + } + + tote += lyre; + pelast = pe1; + pe1 = pe2; + h1 = h2; + te1 = te2; + tp1 = tp2; + + /* ----- Is this the top of given layer ----- */ + if((i >= uptr) && ( !qc(pcl->bplus))) + { + pe3 = pe1; + h3 = h1; + te3 = te1; + tp3 = tp1; + lyrf = lyre; + + if( lyrf > 0 ) + { + pcl->bplus = totp - lyrf; + pcl->bminus = totn; + } + else + { + pcl->bplus = totp; + if(pe2 > 500) + { pcl->bminus = totn - lyrf; } + else + { pcl->bminus = totn; } + } + + pe2 = upper; + h2 = i_hght( pe2 ); + te2 = i_temp( pe2 ); + tp2 = wetlift(pe3, tp3, pe2); + tdef3 = (tp3 - te3) / (te3 + 273.15); + tdef2 = (tp2 - te2) / (te2 + 273.15); + lyrf = 9.8F * (tdef3 + tdef2) / 2.0F * (h2 - h3); + if( lyrf > 0 ) + { pcl->bplus += lyrf; } + else + { if(pe2 > 500) { pcl->bminus += lyrf; } } + + if( pcl->bplus == 0 ) { pcl->bminus = 0; } + } + + /* ----- Is this the freezing level ----- */ + if((te2 <= 0) && ( !qc(pcl->bfzl))) + { + pe3 = pelast; + h3 = i_hght( pe3 ); + te3 = i_temp( pe3 ); + tp3 = wetlift(pe1, tp1, pe3); + lyrf = lyre; + + if( lyrf > 0 ) + { pcl->bfzl = totp - lyrf; } + else + { pcl->bfzl = totp; } + + pe2 = temp_lvl( 0, &pe2); + h2 = i_hght( pe2 ); + te2 = i_temp( pe2 ); + tp2 = wetlift(pe3, tp3, pe2); + tdef3 = (tp3 - te3) / (te3 + 273.15); + tdef2 = (tp2 - te2) / (te2 + 273.15); + lyrf = 9.8F * (tdef3 + tdef2) / 2.0F * (h2 - h3); + if( lyrf > 0 ) + { pcl->bfzl += lyrf; } + } + + /* ----- LFC Possibility ----- */ + if(( lyre >= 0 ) && ( lyrlast < 0 )) + { + tp3 = tp1; + te3 = te1; + pe2 = pe1; + pe3 = pelast; + while( i_temp( pe3 ) > wetlift(pe2, tp3, pe3) ) { pe3 -= 5; } + pcl->lfcpres = pe3; + + tote = 0; + pcl->elpres = -999; + + li_max = -999; + + pcl->cap = cap_strength; + pcl->cappres = cap_strengthpres; + } + + /* ----- EL Possibility ----- */ + if(( lyre <= 0 ) && ( lyrlast > 0 )) + { + tp3 = tp1; + te3 = te1; + pe2 = pe1; + pe3 = pelast; + while ( i_temp( pe3 ) < wetlift(pe2, tp3, pe3) ) { pe3 -= 5; } + pcl->elpres = pe3; + pcl->mplpres = -999; + pcl->limax = -li_max; + pcl->limaxpres = li_maxpres; + } + + /* ----- MPL Possibility ----- */ + if(( (tote <= 0) && ( !qc( pcl->mplpres ) ) && ( qc( pcl->elpres )))) + { + pe3 = pelast; + h3 = i_hght( pe3 ); + te3 = i_temp( pe3 ); + tp3 = wetlift(pe1, tp1, pe3); + totx = tote - lyre; + + pe2 = pelast; + while( totx > 0 ) + { + pe2 -= 1; + te2 = i_temp( pe2 ); + tp2 = wetlift(pe3, tp3, pe2); + h2 = i_hght( pe2 ); + tdef3 = (tp3 - te3) / (te3 + 273.15); + tdef2 = (tp2 - te2) / (te2 + 273.15); + lyrf = 9.8F * (tdef3 + tdef2) / 2.0F * (h2 - h3); + totx += lyrf; + + tp3 = tp2; + te3 = te2; + pe3 = pe2; + } + pcl->mplpres = pe2; + } + + /* ----- 500mb Lifted Index ----- */ + if( sndg[i][1] == 500 ) + { + pcl->li5 = sndg[i][3] - tp1; + } + + /* ----- 300mb Lifted Index ----- */ + if( sndg[i][1] == 300 ) + { + pcl->li3 = sndg[i][3] - tp1; + } + } + } + /* ----- Calculate BRN if available ----- */ + pcl->brn = bulk_rich( *pcl, &ix1 ); + return pcl->bplus; + } +#endif /* BLAMMO */ + +float CB_sigtor(void) +/********************************************************************/ +/* Craven&Brooks SigTorn */ +/********************************************************************/ + { + float ix1, ix2, ix3, ix4, shr6, shr1, cape, lclh, cbt, dcapeval; + short idxp; + struct _parcel pcl; + struct _lplvalues lpl2; + + /* How likely are significant tornadoes? */ + /* CBT = (6ksh * 1ksh * mlcp) / (mllcl hgt * dcape) */ + /* units are m/s2 */ + + idxp = getParmIndex("PRES"); + + lpl2 = lplvals; + + /* lift a mixed parcel */ + define_parcel(4, 100); + ix1 = parcel( -1, -1, lplvals.pres, lplvals.temp, lplvals.dwpt, &pcl); + lplvals = lpl2; + + wind_shear(sndg[sfc()][idxp], i_pres(msl(6000)), &ix1, &ix2, &ix3, &ix4); + shr6 = ix4 *.514; + + wind_shear(sndg[sfc()][idxp], i_pres(msl(1000)), &ix1, &ix2, &ix3, &ix4); + shr1 = ix4 *.514; + + cape = pcl.bplus; + + dcapeval = dcape(&ix1, &ix2); + + lclh = agl( i_hght(pcl.lclpres, I_PRES) ); + + if (!qc(cape)) return -9999; + + cbt = (cape * shr6 * shr1) / (dcapeval * lclh); + if (cbt > 5) cbt = -999; + + return cbt; + } + +float mean_omeg(float *param, float lower, float upper) + /*************************************************************/ + /* MEAN_OMEG */ + /* John Hart NSSFC KCMO */ + /* */ + /* Calculates the Mean omega from data in */ + /* SNDG array within specified layer. */ + /* Value is returned both as (param) and as a RETURN;. */ + /* */ + /* *param = Returned mean omega (microb/s) */ + /* lower = Bottom level of layer (mb) [ -1=700mb] */ + /* upper = Top level of layer (mb) [ -1=500mb] */ + /*************************************************************/ +{ + short i, okl, oku, lptr, uptr; + float num, dp1, dp2, totd, dbar, p1, p2, pbar, totp; + short pIndex, oIndex; + + *param = RMISSD; + + pIndex = getParmIndex("PRES"); + oIndex = getParmIndex("OMEG"); + + if (!sndg || numlvl < 1 || pIndex == -1 || oIndex == -1) return RMISSD; + + /* ----- See if default layer is specified ----- */ + if( lower == -1) { lower = 700; } + if( upper == -1) { upper = 500; } + + /* ----- Make sure this is a valid layer ----- */ + if( !qc( i_temp(upper, I_PRES))) { *param = RMISSD; } + if( !qc( i_temp(lower, I_PRES))) { lower = i_pres( sfc() ); } + + /* ----- Find lowest observation in layer ----- */ + i = 0; + while( sndg[i][pIndex] > lower) { i++; } + while ( !qc(sndg[i][oIndex]) ) { i++; } + lptr = i; + if( sndg[i][pIndex] == lower ) { lptr++; } + + /* ----- Find highest observation in layer ----- */ + i=numlvl-1; + while( sndg[i][pIndex] < upper) { i--;} + uptr = i; + if( sndg[i][pIndex] == upper ) { uptr--; } + + /* ----- Start with interpolated bottom layer ----- */ + dp1 = i_omeg(lower, I_PRES); + p1 = lower; + num = 1; + + totd = 0; + totp = 0; + for( i = lptr; i <= uptr; i++) + { + if( qc(sndg[i][oIndex]) ) + { + /* ----- Calculate every level that reports omeg ----- */ + dp2 = sndg[i][oIndex]; + p2 = sndg[i][pIndex]; + dbar = (dp1 + dp2) / 2; + pbar = (p1 + p2)/2; + totd = totd + dbar; + totp = totp + pbar; + dp1 = dp2; + p1 = p2; + num += 1; + } + } + + /* ----- Finish with interpolated top layer ----- */ + dp2 = i_omeg(upper, I_PRES); + p2 = upper; + dbar = (dp1 + dp2) / 2; + pbar = (p1 + p2) / 2; + totd = totd + dbar; + totp = totp + pbar; + *param = totd/num; + + return *param; +} + + +float advection_layer(float *param, float lower, float upper) + /*************************************************************/ + /* ADVECTION_LAYER */ + /* John Hart SPC OUN */ + /* */ + /* lower = lower end of layer (mb) */ + /* upper = upper end of layer (mb) */ + /* *param = Returned value (C/hr) */ + /*************************************************************/ +{ + int i; + float mw_u, mw_v, mw_drct, mw_sped, dpth; + float sh_u, sh_v, sh_drct, sh_sped, mean_t; + float ix1, advt, term1, term2, term3, con1; + Parcel pcl; + short pIndex, tIndex, wsIndex, wdIndex; + + *param = RMISSD; + + pIndex = getParmIndex("PRES"); + tIndex = getParmIndex("TEMP"); + wsIndex = getParmIndex("SPED"); + wdIndex = getParmIndex("DRCT"); + + if (!sndg || pIndex == -1 || tIndex == -1 || wsIndex == -1 || wdIndex == -1) return RMISSD; + + /* Mean wind through the layer */ + mean_wind(lower, upper, &mw_u, &mw_v, &mw_drct, &mw_sped); + if (mw_drct < -999) return RMISSD; + + /* Mean temperature through the layer */ + mean_t = mean_temp(&ix1, lower, upper) + 273.15; + if (mean_t < -999) return RMISSD; + + /* Shear through the layer */ + wind_shear(lower, upper, &sh_u, &sh_v, &sh_drct, &sh_sped); + if (sh_drct < -999) return RMISSD; + + /* Depth of the layer */ + dpth = i_hght(upper, I_PRES) - i_hght(lower, I_PRES); + if (dpth < -999) return RMISSD; + + term1 = kt_to_mps(mw_v) * (kt_to_mps(sh_u)/dpth); + term2 = kt_to_mps(mw_u) * (kt_to_mps(sh_v)/dpth); + con1 = (.0004 / 9.81); /* -f/g */ + term3 = con1 * mean_t * (term1 - term2) * 3600; + + *param = term3; + return term3; +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/BigNsharp/caveNsharp.c b/ncep/gov.noaa.nws.ncep.ui.nsharp/BigNsharp/caveNsharp.c index ecfea3fc0b..6bab833935 100644 --- a/ncep/gov.noaa.nws.ncep.ui.nsharp/BigNsharp/caveNsharp.c +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/BigNsharp/caveNsharp.c @@ -187,7 +187,11 @@ int populateSndgDataStatic(CaveSndgParms snDataArray[], int arraySize, int data /* Reset levels in sounding since the global var numlvl is updated in xtnd_sndg() */ s->nlev = numlvl; s->noriglev = numlvl; - + /* Chin:: + * the following is copy from load_sounding() in xwvid6.c. This is how BigNsharp decide storm motion when it loads a + * new sounding data. st_dir and st_spd are globals and used to store current storm motion wind direction and speed. + * Calling bunkers_storm_motion() to set them. + */ /* First guess at storm motion. User can modify on hodograph */ bunkers_storm_motion(&ix1, &ix2, &st_dir, &st_spd); //st_dir = winDir; diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/BigNsharp/flipflop.c b/ncep/gov.noaa.nws.ncep.ui.nsharp/BigNsharp/flipflop.c index 17a1030896..58b006e599 100644 --- a/ncep/gov.noaa.nws.ncep.ui.nsharp/BigNsharp/flipflop.c +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/BigNsharp/flipflop.c @@ -10,22 +10,22 @@ */ void flipflopsounding(float **inoutsndg, int nlev) { - float tmpsndg[MAXLEV][NPARM]; - int i, j; + //float tmpsndg[MAXLEV][NPARM]; + //int i, j; - if (nlev >= MAXLEV) { - fprintf(stderr, " flipflopsounding. nlev >= MAXLEV\n"); - } + //if (nlev >= MAXLEV) { + // fprintf(stderr, " flipflopsounding. nlev >= MAXLEV\n"); + //} /* First copy stuff into temporary array */ - for (i=0;i + point="org.eclipse.ui.editors"> - + + + + + @@ -69,4 +81,13 @@ extensionFilter=".xml"> + + + + diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/ElementStateProperty.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/ElementStateProperty.java new file mode 100644 index 0000000000..b7cf6095d9 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/ElementStateProperty.java @@ -0,0 +1,45 @@ +/** + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/23/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp; + +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants.State; + +public class ElementStateProperty { + String elementDescription; + State elementState; + NsharpStationInfo stnInfo; + public NsharpStationInfo getStnInfo() { + return stnInfo; + } + public void setStnInfo(NsharpStationInfo stnInfo) { + this.stnInfo = stnInfo; + } + public String getElementDescription() { + return elementDescription; + } + public State getElementState() { + return elementState; + } + public void setElementDescription(String elementDescription) { + this.elementDescription = elementDescription; + } + public void setElementState(State elementState) { + this.elementState = elementState; + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpConfigManager.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpConfigManager.java index 99e8cafa12..4785f5a438 100644 --- a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpConfigManager.java +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpConfigManager.java @@ -22,8 +22,7 @@ */ package gov.noaa.nws.ncep.ui.nsharp; -import gov.noaa.nws.ncep.ui.nsharp.palette.NsharpParametersSelectionConfigDialog; -import gov.noaa.nws.ncep.ui.nsharp.palette.NsharpDataDisplayConfigDialog; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpNativeConstants; import gov.noaa.nws.ncep.viz.localization.NcPathManager.NcPathConstants; import java.io.File; @@ -34,9 +33,9 @@ import java.util.Map; import com.raytheon.uf.common.localization.IPathManager; import com.raytheon.uf.common.localization.LocalizationContext; -import com.raytheon.uf.common.localization.LocalizationFile; import com.raytheon.uf.common.localization.LocalizationContext.LocalizationLevel; 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.common.localization.exception.LocalizationOpFailedException; import com.raytheon.uf.common.serialization.SerializationException; @@ -120,13 +119,11 @@ public class NsharpConfigManager { } } } - if(nsharpConfigStore== null){ // could not find configuration nsharpConfig.xml file nsharpConfigStore = new NsharpConfigStore(); - nsharpConfigStore = NsharpParametersSelectionConfigDialog.setDefaultGraphConfig(nsharpConfigStore); - nsharpConfigStore=NsharpDataDisplayConfigDialog.setDefaultLineConfig(nsharpConfigStore); - } + + } return nsharpConfigStore; } //save to file system diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpConfigStore.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpConfigStore.java index 6ce304b30b..d2dc1e486e 100644 --- a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpConfigStore.java +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpConfigStore.java @@ -33,27 +33,28 @@ import com.raytheon.uf.common.serialization.ISerializableObject; @XmlAccessorType(XmlAccessType.NONE) public class NsharpConfigStore implements ISerializableObject{ - //@XmlElement(name = "NsharpLineProperty", required = true) - //private NsharpLineProperty lp; - //public NsharpLineProperty getLp() { - // return lp; - //} + public NsharpConfigStore() { + super(); + //set linePropertyMap default values + int i =0; + for(String lnName: NsharpConstants.lineNameArray){ + NsharpLineProperty lp = NsharpConstants.defaultLineProperty[i]; + linePropertyMap.put(lnName, lp); + i++; + } + } - //public void setLp(NsharpLineProperty lp) { - // this.lp = lp; - //} - @XmlElement private NsharpGraphProperty graphProperty = new NsharpGraphProperty(); @XmlElement - //@XmlJavaTypeAdapter(NsharpConfigHashMapAdaptor.class) @XmlJavaTypeAdapter(value = NsharpConfigHashMapAdaptor.class) private HashMap linePropertyMap = new HashMap(); - + @XmlElement + NsharpDataPageProperty dataPageProperty = new NsharpDataPageProperty(); public HashMap getLinePropertyMap() { return linePropertyMap; @@ -72,6 +73,12 @@ public class NsharpConfigStore implements ISerializableObject{ public void setGraphProperty(NsharpGraphProperty graphProperty) { this.graphProperty = graphProperty; } - - + + public NsharpDataPageProperty getDataPageProperty() { + return dataPageProperty; + } + + public void setDataPageProperty(NsharpDataPageProperty dataPageProperty) { + this.dataPageProperty = dataPageProperty; + } } diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpConstants.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpConstants.java index 710d3d30a3..11dbbc9784 100644 --- a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpConstants.java +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpConstants.java @@ -18,6 +18,7 @@ package gov.noaa.nws.ncep.ui.nsharp; * @author Chin Chen * @version 1.0 */ + import gov.noaa.nws.ncep.viz.localization.NcPathManager; import gov.noaa.nws.ncep.viz.localization.NcPathManager.NcPathConstants; @@ -36,7 +37,6 @@ public class NsharpConstants { public static final int DEFAULT_CANVAS_HEIGHT=700; public static final int DEFAULT_CANVAS_WIDTH=1100; //public static double TEMPERATURE_MIN = -115.0; - public static float KnotsToMetersPerSecond = 0.5144444F; public static final UnitConverter kelvinToCelsius = SI.KELVIN .getConverterTo(SI.CELSIUS); @@ -58,15 +58,16 @@ public class NsharpConstants { public static double PRESSURE_MAX = 973.0; - + public static final double MAX_PRESSURE = 1050; + public static final double MIN_PRESSURE = 100; // horizontal pressure line that will be drawn. - public static final double[] PRESSURE_MAIN_LEVELS = { 1050, 1000, 850, - 700, 500, 300, 200, 100 }; - public static final double[] PRESSURE_MARK_LEVELS = { 1050, 1000, 950, 900, 850, 800, + public static final double[] PRESSURE_MAIN_LEVELS = { MAX_PRESSURE, 1000, 850, + 700, 500, 300, 200,150, MIN_PRESSURE }; + public static final double[] PRESSURE_MARK_LEVELS = { MAX_PRESSURE, 1000, 950, 900, 850, 800, 750, 700, 650, 600, 550, 500, 450, 400, 350, 300, 250, 200, 150, - 100 }; + MIN_PRESSURE }; public static final double[] PRESSURE_NUMBERING_LEVELS = { 1000, 850, - 700, 500, 300, 200, 100 }; + 700, 500, 300, 200, 150 }; //Icing pressure level 1000, 900,800,700,600, 500,400, 300 public static final double ICING_PRESSURE_LEVEL_BOTTOM = 1000; @@ -171,9 +172,9 @@ public class NsharpConstants { public static double height = top - bottom; - public static double left = -height*0.35;//(-height / 2) - 1; + public static double left = -height*0.45;//(-height / 2) - 1; - public static double right = height*0.65;//(height / 2) + 1; + public static double right = height*0.55;//(height / 2) + 1; public static double center = (left + right) / 2; @@ -211,6 +212,13 @@ public class NsharpConstants { public static final int[] HEIGHT_LEVEL_METERS = {/*16000,*/ 15000, 12000, 9000, 6000, 3000, 2000 }; public static final int[] HEIGHT_LEVEL_FEET = {50000, 45000, 40000, 35000, 30000, 25000, 20000, 15000, 10000, 5000, 2500 }; + /*** + * Chin: this implementation will be obsoleted when D2D changes its D2D Nsharp implementation to use + * multiple panes design. + * SINGLE PANE IMPLEMENTATIONS start + * Obsoleting implementation + * + ****/ public static final int OMEGA_X_TOP = -40; public static final int OMEGA_Y_TOP = 200;//225; public static final int SKEWT_REC_X_ORIG = OMEGA_X_TOP + 160; @@ -251,10 +259,9 @@ public class NsharpConstants { public static final int HODO_REC_WIDTH = SKEWT_REC_WIDTH;//750;//1000; public static final int HODO_REC_HEIGHT = SKEWT_REC_HEIGHT;///3 * 2; public static final int HODO_VIEW_X_END = HODO_REC_X_ORIG + HODO_REC_WIDTH; - public static final int HODO_VIEW_Y_END = HODO_REC_Y_ORIG + HODO_REC_HEIGHT; + //public static final int HODO_VIEW_Y_END = HODO_REC_Y_ORIG + HODO_REC_HEIGHT; public static final float HODO_CENTER_X = HODO_REC_X_ORIG + (float)(5.00/12.00) * HODO_REC_WIDTH; public static final float HODO_CENTER_Y = HODO_REC_Y_ORIG + (float)(1.00/2.00) * HODO_REC_HEIGHT; - public static final int WIND_MOTION_REC_X_ORIG = HODO_REC_X_ORIG; public static final int WIND_MOTION_REC_Y_ORIG = HODO_REC_Y_ORIG; public static final int WIND_MOTION_REC_WIDTH = 175; @@ -270,7 +277,7 @@ public class NsharpConstants { public static final int DATA_TIMELINE_VIEW_Y_END = DATA_TIMELINE_REC_Y_ORIG+DATA_TIMELINE_REC_HEIGHT; public static final int DATA_TIMELINE_NEXT_PAGE_END = DATA_TIMELINE_REC_Y_ORIG+ 30; public static final int DATA_TIMELINE_NOTATION_Y_START = DATA_TIMELINE_VIEW_Y_END;//- 100; - public static final int DATA_TIMELINE_SORT_X_START = DATA_TIMELINE_REC_X_ORIG+(7*DATA_TIMELINE_REC_WIDTH/18); + //public static final int DATA_TIMELINE_SORT_X_START = DATA_TIMELINE_REC_X_ORIG+(7*DATA_TIMELINE_REC_WIDTH/18); public static final int STATION_ID_REC_X_ORIG = DATA_TIMELINE_VIEW_X_END; public static final int STATION_ID_REC_Y_ORIG = DATA_TIMELINE_REC_Y_ORIG; public static final int STATION_ID_REC_WIDTH = 300; @@ -285,6 +292,7 @@ public class NsharpConstants { public static final int COLOR_NOTATION_VIEW_X_END = COLOR_NOTATION_REC_X_ORIG+COLOR_NOTATION_REC_WIDTH; public static final int COLOR_NOTATION_VIEW_Y_END = COLOR_NOTATION_REC_Y_ORIG+COLOR_NOTATION_REC_HEIGHT; + public static final int DATAPANEL1_REC_X_ORIG = OMEGA_X_TOP+150; public static final int DATAPANEL1_REC_Y_ORIG = SKEWT_VIEW_Y_END + 50; @@ -359,6 +367,166 @@ public class NsharpConstants { public static final int SRWINDVTRS_VIEW_Y_END = SRWINDVTRS_REC_Y_ORIG+SRWINDVTRS_REC_HEIGHT; public static final int CHAR_HEIGHT = 25; + /**** + * SINGLE PANE IMPLEMENTATIONS end + * + ******/ + + + /*** + * + * MULTIPLE PANES IMPLEMENTATIONS start + * + * + ****/ + public static final int DISPLAY_SKEWT=0; + public static final int DISPLAY_WITO= DISPLAY_SKEWT+1; //Wind box + InferredTemp + Omega + public static final int DISPLAY_INSET= DISPLAY_WITO+1; + public static final int DISPLAY_HODO= DISPLAY_INSET+1; + public static final int DISPLAY_TIMESTN= DISPLAY_HODO+1; + public static final int DISPLAY_DATA=DISPLAY_TIMESTN+1; + public static final int DISPLAY_TOTAL= DISPLAY_DATA+1; + public static final int CHAR_HEIGHT_ = 15; + + //note: dimensions are used as reference for its components inside its pane and only relative within its own pane. + //Sizes defined here have no significant meaning between two different panes. + public static final int DISPLAY_WIDTH= 1600; + public static final int DISPLAY_HEIGHT= 820; + public static final int SKEWT_PANE_REC_WIDTH = DISPLAY_WIDTH/2 * 11 /16; //800 *11/16=550 + public static final int SKEWT_PANE_REC_HEIGHT = DISPLAY_HEIGHT * 8 /10; // 820*0.8 =656; + public static final int WITO_PANE_REC_WIDTH = DISPLAY_WIDTH/2 - SKEWT_PANE_REC_WIDTH; //800-550=250 + public static final int WITO_PANE_REC_HEIGHT = DISPLAY_HEIGHT * 8 /10; // 820*0.8 =656; + public static final int HODO_PANE_REC_WIDTH = (DISPLAY_WIDTH/2) * 13/20;//800x0.65=520;; + public static final int HODO_PANE_REC_HEIGHT = DISPLAY_HEIGHT * 7 /10; // 820*0.7 =574; + public static final int TIMESTN_PANE_REC_WIDTH = DISPLAY_WIDTH/2 - HODO_PANE_REC_WIDTH;//800-520=280 + public static final int TIMESTN_PANE_REC_HEIGHT = HODO_PANE_REC_HEIGHT; //574 + public static final int INSET_PANE_REC_WIDTH = DISPLAY_WIDTH/2; + public static final int INSET_PANE_REC_HEIGHT = DISPLAY_HEIGHT * 2 /10; // 820*0.2 =164; + public static final int DATA_PANE_REC_WIDTH = DISPLAY_WIDTH/2; //800 + public static final int DATA_PANE_REC_HEIGHT = DISPLAY_HEIGHT * 3 /10; // 820*0.3 =246; + public static Rectangle SKEWT_DISPLAY_REC = new Rectangle(0, 0, SKEWT_PANE_REC_WIDTH, SKEWT_PANE_REC_HEIGHT); + public static Rectangle WITO_DISPLAY_REC = new Rectangle(0, 0, WITO_PANE_REC_WIDTH, WITO_PANE_REC_HEIGHT); + public static Rectangle HODO_DISPLAY_REC = new Rectangle(0, 0, HODO_PANE_REC_WIDTH, HODO_PANE_REC_HEIGHT); + public static Rectangle TIMESTN_DISPLAY_REC = new Rectangle(0, 0, TIMESTN_PANE_REC_WIDTH, TIMESTN_PANE_REC_HEIGHT); + public static Rectangle DATA_DISPLAY_REC = new Rectangle(0, 0, DATA_PANE_REC_WIDTH, DATA_PANE_REC_HEIGHT); + public static Rectangle INSET_DISPLAY_REC = new Rectangle(0, 0, INSET_PANE_REC_WIDTH, INSET_PANE_REC_HEIGHT); + public static final int SKEWT_WIDTH = SKEWT_PANE_REC_WIDTH;//=550 + public static final int SKEWT_HEIGHT = SKEWT_PANE_REC_HEIGHT;//570 + public static final int SKEWT_X_ORIG = 0; + public static final int SKEWT_Y_ORIG = 0;//70; + public static final int SKEWT_X_END = SKEWT_X_ORIG + SKEWT_WIDTH; + public static final int SKEWT_Y_END = SKEWT_Y_ORIG + SKEWT_HEIGHT; + public static final int ICING_X_ORIG =SKEWT_X_ORIG; + public static final int ICING_Y_ORIG = SKEWT_Y_ORIG; + public static final int ICING_WIDTH = SKEWT_WIDTH; + public static final int ICING_HEIGHT = SKEWT_HEIGHT-25; + public static final int ICING_X_END = ICING_X_ORIG + ICING_WIDTH; + public static final int ICING_Y_END = ICING_Y_ORIG + ICING_HEIGHT; + public static final int TURB_X_ORIG =SKEWT_X_ORIG; + public static final int TURB_Y_ORIG = SKEWT_Y_ORIG ; + public static final int TURB_WIDTH = SKEWT_WIDTH; + public static final int TURB_HEIGHT = SKEWT_HEIGHT -25; + public static final int TURB_X_END = TURB_X_ORIG + TURB_WIDTH; + public static final int TURB_Y_END = TURB_Y_ORIG + TURB_HEIGHT; + public static final int WIND_BX_WIDTH = WITO_PANE_REC_WIDTH/3;; + public static final int WIND_BX_HEIGHT = SKEWT_HEIGHT; + public static final int WIND_BX_X_ORIG = 0; + public static final int WIND_BX_Y_ORIG = SKEWT_Y_ORIG; + public static final int VRTCAL_WIND_WIDTH = WITO_PANE_REC_WIDTH/3;; + public static final int VRTCAL_WIND_HEIGHT = SKEWT_HEIGHT; + public static final int VRTCAL_WIND_X_ORIG = WIND_BX_X_ORIG+ WIND_BX_WIDTH; + public static final int VRTCAL_WIND_Y_ORIG = SKEWT_Y_ORIG; + public static final int VRTCAL_WIND_X_END = VRTCAL_WIND_X_ORIG + VRTCAL_WIND_WIDTH; + public static final int VRTCAL_WIND_Y_END = VRTCAL_WIND_Y_ORIG + VRTCAL_WIND_HEIGHT; + public static final int OMEGA_X_ORIG = VRTCAL_WIND_X_END; + public static final int OMEGA_Y_ORIG = SKEWT_Y_ORIG; + public static final int OMEGA_WIDTH = WITO_PANE_REC_WIDTH/3; + public static final int OMEGA_HEIGHT = SKEWT_HEIGHT; + public static final int OMEGA_Y_END = SKEWT_Y_END; + public static final int OMEGA_MAGNIFICATION_FACTOR = 35; + public static final int HODO_X_ORIG = 0; + public static final int HODO_Y_ORIG = 0;//40; + public static final int HODO_WIDTH = HODO_PANE_REC_WIDTH; + public static final int HODO_HEIGHT = HODO_PANE_REC_HEIGHT - HODO_Y_ORIG; + public static final int HODO_X_END = HODO_X_ORIG + HODO_WIDTH; + public static final float HODO_CENTER_X_ = HODO_X_ORIG + (float)(5.00/12.00) * HODO_WIDTH; + public static final float HODO_CENTER_Y_ = HODO_Y_ORIG + (float)(1.00/2.00) * HODO_HEIGHT; + public static final int DATA_TIMELINE_X_ORIG = 0; + public static final int DATA_TIMELINE_Y_ORIG = 40; + public static final int DATA_TIMELINE_WIDTH = TIMESTN_PANE_REC_WIDTH/2; + public static final int COLOR_NOTATION_HEIGHT = 110; + public static final int DATA_TIMELINE_HEIGHT = TIMESTN_PANE_REC_HEIGHT-DATA_TIMELINE_Y_ORIG-COLOR_NOTATION_HEIGHT; + public static final int DATA_TIMELINE_X_END = DATA_TIMELINE_X_ORIG+DATA_TIMELINE_WIDTH; + public static final int DATA_TIMELINE_Y_END = DATA_TIMELINE_Y_ORIG+DATA_TIMELINE_HEIGHT; + public static final int DATA_TIMELINE_NEXT_PAGE_END_ = DATA_TIMELINE_Y_ORIG+ CHAR_HEIGHT_; + public static final int STATION_ID_X_ORIG = DATA_TIMELINE_X_END; + public static final int STATION_ID_Y_ORIG = DATA_TIMELINE_Y_ORIG; + public static final int STATION_ID_WIDTH = DATA_TIMELINE_WIDTH; + public static final int STATION_ID_HEIGHT = DATA_TIMELINE_HEIGHT; + public static final int STATION_ID_X_END = STATION_ID_X_ORIG+STATION_ID_WIDTH; + public static final int STATION_ID_Y_END = STATION_ID_Y_ORIG+STATION_ID_HEIGHT; + public static final int COLOR_NOTATION_X_ORIG = DATA_TIMELINE_X_ORIG; + public static final int COLOR_NOTATION_Y_ORIG = DATA_TIMELINE_Y_END; + public static final int COLOR_NOTATION_WIDTH = DATA_TIMELINE_WIDTH+STATION_ID_WIDTH; + public static final int COLOR_NOTATION_X_END = COLOR_NOTATION_X_ORIG+COLOR_NOTATION_WIDTH; + public static final int COLOR_NOTATION_Y_END = COLOR_NOTATION_Y_ORIG+COLOR_NOTATION_HEIGHT; + public static final int DATAPANEL1_X_ORIG = 0; + public static final int DATAPANEL1_Y_ORIG = 0; + public static final int DATAPANEL1_WIDTH = DATA_PANE_REC_WIDTH/2; + public static final int DATAPANEL1_HEIGHT = DATA_PANE_REC_HEIGHT; + public static final int DATAPANEL1_X_END = DATAPANEL1_X_ORIG+DATAPANEL1_WIDTH; + public static final int DATAPANEL1_Y_END = DATAPANEL1_Y_ORIG+DATAPANEL1_HEIGHT; + public static final int DATAPANEL2_X_ORIG = DATAPANEL1_X_END; + public static final int DATAPANEL2_Y_ORIG = DATAPANEL1_Y_ORIG; + public static final int DATAPANEL2_WIDTH = DATAPANEL1_WIDTH; + public static final int DATAPANEL2_HEIGHT = DATAPANEL1_HEIGHT; + public static final int DATAPANEL2_X_END = DATAPANEL2_X_ORIG+DATAPANEL2_WIDTH; + public static final int DATAPANEL2_Y_END = DATAPANEL2_Y_ORIG+DATAPANEL2_HEIGHT; + public static final int INSET_X_ORIG = 0; + public static final int INSET_Y_ORIG = 0; + public static final int INSET_WIDTH = INSET_PANE_REC_WIDTH/4; + public static final int INSET_HEIGHT = INSET_PANE_REC_HEIGHT; + + public static final int SRWINDS_X_ORIG = INSET_X_ORIG; + public static final int SRWINDS_Y_ORIG = INSET_Y_ORIG; + public static final int SRWINDS_X_END = SRWINDS_X_ORIG+INSET_WIDTH; + public static final int SRWINDS_Y_END = SRWINDS_Y_ORIG+INSET_HEIGHT; + + public static final int STORMSLINKY_X_ORIG = SRWINDS_X_END; + public static final int STORMSLINKY_Y_ORIG = SRWINDS_Y_ORIG; + public static final int STORMSLINKY_X_END = STORMSLINKY_X_ORIG+INSET_WIDTH; + public static final int STORMSLINKY_Y_END = STORMSLINKY_Y_ORIG+INSET_HEIGHT; + + public static final int THETAP_X_ORIG = STORMSLINKY_X_END; + public static final int THETAP_Y_ORIG = STORMSLINKY_Y_ORIG; + public static final int THETAP_X_END = THETAP_X_ORIG+INSET_WIDTH; + public static final int THETAP_Y_END = THETAP_Y_ORIG+INSET_HEIGHT; + + //same position as THETAP + public static final int THETAH_X_ORIG = STORMSLINKY_X_END; + public static final int THETAH_Y_ORIG = STORMSLINKY_Y_ORIG; + public static final int THETAH_X_END = THETAH_X_ORIG+INSET_WIDTH; + public static final int THETAH_Y_END = THETAH_Y_ORIG+INSET_HEIGHT; + + public static final int PSBLWATCH_X_ORIG = THETAP_X_END; + public static final int PSBLWATCH_Y_ORIG = THETAP_Y_ORIG; + public static final int PSBLWATCH_X_END = PSBLWATCH_X_ORIG+INSET_WIDTH; + public static final int PSBLWATCH_Y_END = PSBLWATCH_Y_ORIG+INSET_HEIGHT; + + //same position as PSBLWATCH + public static final int SRWINDVTRS_X_ORIG = THETAP_X_END; + public static final int SRWINDVTRS_Y_ORIG = THETAP_Y_ORIG; + public static final int SRWINDVTRS_X_END = SRWINDVTRS_X_ORIG+INSET_WIDTH; + public static final int SRWINDVTRS_Y_END = SRWINDVTRS_Y_ORIG+INSET_HEIGHT; + + /*** + * + * MULTIPLE PANES IMPLEMENTATIONS end + * + * + ****/ + + //Dialog //public static final int dialogX = 300; public static int btnWidth = 120; @@ -441,4 +609,34 @@ public class NsharpConstants { new NsharpLineProperty(LineStyle.SOLID, 2,new RGB (255, 174, 185) ) }; + //data page name and its plotting function key definitions + public final static int PAGE_SUMMARY1 = 1; + public final static int PAGE_SUMMARY2 = 2; + public final static int PAGE_PARCEL_DATA = 3; + public final static int PAGE_THERMODYNAMIC_DATA = 4; + public final static int PAGE_OPC_DATA = 5; + public final static int PAGE_MIXING_HEIGHT = 6; + public final static int PAGE_STORM_RELATIVE = 7; + public final static int PAGE_MEAN_WIND = 8; + public final static int PAGE_CONVECTIVE_INITIATION = 9; + public final static int PAGE_SEVERE_POTENTIAL = 10; + public final static int PAGE_MAX_NUMBER = PAGE_SEVERE_POTENTIAL; + public static String[] PAGE_NAME_ARRAY = { + "", //a dummy one + "Summary 1 Page", + "Summary 2 Page", + "Parcel Data Page", + "Thermodynamic Data Page", + "Opc Low Level Stability Page", + "Mixing Height Page", + "Storm Relative Page", + "Mean Wind Page", + "Convective Initiation Page", + "Severe Potential Page" + }; + public enum State { + CURRENT, ACTIVE, INACTIVE,NOTAVAIL ,OVERLAY, AVAIL//was , DISABLED + } + + } diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpDataPageProperty.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpDataPageProperty.java new file mode 100644 index 0000000000..35fbd9088b --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpDataPageProperty.java @@ -0,0 +1,140 @@ +package gov.noaa.nws.ncep.ui.nsharp; +/** + * + * gov.noaa.nws.ncep.ui.nsharp.NsharpDataPageProperty + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 06/13/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlRootElement; + +import com.raytheon.uf.common.serialization.ISerializableObject; +@XmlRootElement(name = "NsharpDataPageProperty") +@XmlAccessorType(XmlAccessType.NONE) +public class NsharpDataPageProperty implements ISerializableObject{ + @XmlAttribute + private int summary1Page=NsharpConstants.PAGE_SUMMARY1; + + @XmlAttribute + private int summary2Page=NsharpConstants.PAGE_SUMMARY2; + + @XmlAttribute + private int parcelDataPage=NsharpConstants.PAGE_PARCEL_DATA; + + @XmlAttribute + private int thermodynamicDataPage=NsharpConstants.PAGE_THERMODYNAMIC_DATA; + + @XmlAttribute + private int opcDataPage=NsharpConstants.PAGE_OPC_DATA; + + @XmlAttribute + private int mixingHeightPage=NsharpConstants.PAGE_MIXING_HEIGHT; + + @XmlAttribute + private int stormRelativePage=NsharpConstants.PAGE_STORM_RELATIVE; + + @XmlAttribute + private int meanWindPage=NsharpConstants.PAGE_MEAN_WIND; + + @XmlAttribute + private int convectiveInitiationPage=NsharpConstants.PAGE_CONVECTIVE_INITIATION; + + @XmlAttribute + private int severePotentialPage=NsharpConstants.PAGE_SEVERE_POTENTIAL; + + public int getSummary1Page() { + return summary1Page; + } + + public void setSummary1Page(int summary1Page) { + this.summary1Page = summary1Page; + } + + public int getSummary2Page() { + return summary2Page; + } + + public void setSummary2Page(int summary2Page) { + this.summary2Page = summary2Page; + } + + public int getParcelDataPage() { + return parcelDataPage; + } + + public void setParcelDataPage(int parcelDataPage) { + this.parcelDataPage = parcelDataPage; + } + + public int getThermodynamicDataPage() { + return thermodynamicDataPage; + } + + public void setThermodynamicDataPage(int thermodynamicDataPage) { + this.thermodynamicDataPage = thermodynamicDataPage; + } + + public int getOpcDataPage() { + return opcDataPage; + } + + public void setOpcDataPage(int opcDataPage) { + this.opcDataPage = opcDataPage; + } + + public int getMixingHeightPage() { + return mixingHeightPage; + } + + public void setMixingHeightPage(int mixingHeightPage) { + this.mixingHeightPage = mixingHeightPage; + } + + public int getStormRelativePage() { + return stormRelativePage; + } + + public void setStormRelativePage(int stormRelativePage) { + this.stormRelativePage = stormRelativePage; + } + + public int getMeanWindPage() { + return meanWindPage; + } + + public void setMeanWindPage(int meanWindPage) { + this.meanWindPage = meanWindPage; + } + + public int getConvectiveInitiationPage() { + return convectiveInitiationPage; + } + + public void setConvectiveInitiationPage(int convectiveInitiationPage) { + this.convectiveInitiationPage = convectiveInitiationPage; + } + + public int getSeverePotentialPage() { + return severePotentialPage; + } + + public void setSeverePotentialPage(int severePotentialPage) { + this.severePotentialPage = severePotentialPage; + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpGraphProperty.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpGraphProperty.java index 2dc631b04c..7decc47ed4 100644 --- a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpGraphProperty.java +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpGraphProperty.java @@ -28,67 +28,67 @@ import com.raytheon.uf.common.serialization.ISerializableObject; @XmlAccessorType(XmlAccessType.NONE) public class NsharpGraphProperty implements ISerializableObject{ @XmlAttribute - private boolean temp; + private boolean temp=true; @XmlAttribute - private boolean dewp; + private boolean dewp=true; @XmlAttribute - private boolean parcel; + private boolean parcel=true; @XmlAttribute - private boolean VTemp; + private boolean VTemp=true; @XmlAttribute - private boolean wetBulb; + private boolean wetBulb=true; @XmlAttribute - private boolean mixratio; + private boolean mixratio=false; @XmlAttribute - private boolean dryAdiabat; + private boolean dryAdiabat=true; @XmlAttribute - private boolean moistAdiabat; + private boolean moistAdiabat=false; @XmlAttribute - private boolean effLayer; + private boolean effLayer=true; @XmlAttribute - private boolean cloud; + private boolean cloud=false; @XmlAttribute - private boolean hodo; + private boolean hodo=true; @XmlAttribute - private boolean meanWind; + private boolean meanWind=true; @XmlAttribute - private boolean smv3075; + private boolean smv3075=false; @XmlAttribute - private boolean smv1585; + private boolean smv1585=false; @XmlAttribute - private boolean smvBunkersR; + private boolean smvBunkersR=true; @XmlAttribute - private boolean smvBunkersL; + private boolean smvBunkersL=true; @XmlAttribute - private boolean omega; + private boolean omega=true; @XmlAttribute - private boolean corfidiV; + private boolean corfidiV=false; @XmlAttribute - private boolean windBarb; + private boolean windBarb=true; @XmlAttribute - private int windBarbDistance; + private int windBarbDistance=400; @XmlAttribute - private int tempOffset; + private int tempOffset=0; public boolean isTemp() { diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpShapeAndLineProperty.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpShapeAndLineProperty.java new file mode 100644 index 0000000000..4ec63431ff --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpShapeAndLineProperty.java @@ -0,0 +1,42 @@ +package gov.noaa.nws.ncep.ui.nsharp; +/** + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/23/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + +import com.raytheon.uf.viz.core.drawables.IWireframeShape; + +public class NsharpShapeAndLineProperty { + private IWireframeShape shape; + private NsharpLineProperty lp; + public NsharpShapeAndLineProperty() { + super(); + lp = new NsharpLineProperty(); + } + public IWireframeShape getShape() { + return shape; + } + public void setShape(IWireframeShape shape) { + this.shape = shape; + } + public NsharpLineProperty getLp() { + return lp; + } + public void setLp(NsharpLineProperty lp) { + this.lp = lp; + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/rsc/NsharpSoundingElementStateProperty.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpSoundingElementStateProperty.java similarity index 81% rename from ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/rsc/NsharpSoundingElementStateProperty.java rename to ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpSoundingElementStateProperty.java index ba930a529b..f1f774a70f 100644 --- a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/rsc/NsharpSoundingElementStateProperty.java +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpSoundingElementStateProperty.java @@ -1,4 +1,6 @@ -package gov.noaa.nws.ncep.ui.nsharp.skewt.rsc; +package gov.noaa.nws.ncep.ui.nsharp; + + /** * * gov.noaa.nws.ncep.ui.nsharp.skewt.rsc.NsharpSoundingElementStateProperty @@ -18,18 +20,16 @@ package gov.noaa.nws.ncep.ui.nsharp.skewt.rsc; * @author Chin Chen * @version 1.0 */ -import gov.noaa.nws.ncep.ui.nsharp.NsharpStationInfo; -import gov.noaa.nws.ncep.ui.nsharp.skewt.rsc.NsharpSkewTResource.State; public class NsharpSoundingElementStateProperty { - String elementDescription; - State elementState; // possible values are AVAIL,NOTAVAIL + public String elementDescription; + public NsharpConstants.State elementState; // possible values are AVAIL,NOTAVAIL // NOTAVAIL is set when there is no sounding data loaded for this stn at this time line. - String stnDescription; - String timeDescription; - NsharpStationInfo stnInfo; + public String stnDescription; + public String timeDescription; + public NsharpStationInfo stnInfo; public NsharpSoundingElementStateProperty(String elementDescription, - State elementState, String stnDescription, + NsharpConstants.State elementState, String stnDescription, String timeDescription, NsharpStationInfo stnInfo) { super(); this.elementDescription = elementDescription; @@ -50,10 +50,10 @@ public class NsharpSoundingElementStateProperty { public void setElementDescription(String elementDescription) { this.elementDescription = elementDescription; } - public State getElementState() { + public NsharpConstants.State getElementState() { return elementState; } - public void setElementState(State elementState) { + public void setElementState(NsharpConstants.State elementState) { this.elementState = elementState; } public String getStnDescription() { diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/rsc/NsharpStationStateProperty.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpStationStateProperty.java similarity index 69% rename from ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/rsc/NsharpStationStateProperty.java rename to ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpStationStateProperty.java index 1fdac2b7a9..d73fb4397c 100644 --- a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/rsc/NsharpStationStateProperty.java +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpStationStateProperty.java @@ -1,4 +1,6 @@ -package gov.noaa.nws.ncep.ui.nsharp.skewt.rsc; +package gov.noaa.nws.ncep.ui.nsharp; + + /** * * gov.noaa.nws.ncep.ui.nsharp.skewt.rsc.NsharpStationStateProperty @@ -19,15 +21,13 @@ package gov.noaa.nws.ncep.ui.nsharp.skewt.rsc; * @version 1.0 */ -import gov.noaa.nws.ncep.ui.nsharp.NsharpStationInfo; -import gov.noaa.nws.ncep.ui.nsharp.skewt.rsc.NsharpSkewTResource.State; public class NsharpStationStateProperty { - String stnDescription; - State stnState; //possible values are ACTIVE, INACTIVE. set by User. Default is Active - NsharpStationInfo stnInfo; + public String stnDescription; + public NsharpConstants.State stnState; //possible values are ACTIVE, INACTIVE. set by User. Default is Active + public NsharpStationInfo stnInfo; public NsharpStationStateProperty(String stnDescription, - State stnState, NsharpStationInfo stnInfo) { + NsharpConstants.State stnState, NsharpStationInfo stnInfo) { super(); this.stnDescription = stnDescription; this.stnState = stnState; @@ -39,10 +39,10 @@ public class NsharpStationStateProperty { public void setStnDescription(String stnDescription) { this.stnDescription = stnDescription; } - public State getStnState() { + public NsharpConstants.State getStnState() { return stnState; } - public void setStnState(State stnState) { + public void setStnState(NsharpConstants.State stnState) { this.stnState = stnState; } public NsharpStationInfo getStnInfo() { diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/rsc/NsharpTimeLineStateProperty.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpTimeLineStateProperty.java similarity index 66% rename from ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/rsc/NsharpTimeLineStateProperty.java rename to ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpTimeLineStateProperty.java index 96277c93c0..2d99be98f3 100644 --- a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/rsc/NsharpTimeLineStateProperty.java +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpTimeLineStateProperty.java @@ -1,4 +1,6 @@ -package gov.noaa.nws.ncep.ui.nsharp.skewt.rsc; +package gov.noaa.nws.ncep.ui.nsharp; + + /** * * gov.noaa.nws.ncep.ui.nsharp.skewt.rsc.NsharpTimeLineStateProperty @@ -19,12 +21,11 @@ package gov.noaa.nws.ncep.ui.nsharp.skewt.rsc; * @version 1.0 */ -import gov.noaa.nws.ncep.ui.nsharp.skewt.rsc.NsharpSkewTResource.State; public class NsharpTimeLineStateProperty { - String timeDescription; - State timeState;//possible values are ACTIVE, INACTIVE. set by User. Default is Active - public NsharpTimeLineStateProperty(String timeDescription, State timeState) { + public String timeDescription; + public NsharpConstants.State timeState;//possible values are ACTIVE, INACTIVE. set by User. Default is Active + public NsharpTimeLineStateProperty(String timeDescription, NsharpConstants.State timeState) { super(); this.timeDescription = timeDescription; this.timeState = timeState; @@ -35,10 +36,10 @@ public class NsharpTimeLineStateProperty { public void setTimeDescription(String timeDescription) { this.timeDescription = timeDescription; } - public State getTimeState() { + public NsharpConstants.State getTimeState() { return timeState; } - public void setTimeState(State timeState) { + public void setTimeState(NsharpConstants.State timeState) { this.timeState = timeState; } diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpWxMath.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpWxMath.java index 94e6995f26..2ebec15ce9 100644 --- a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpWxMath.java +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/NsharpWxMath.java @@ -66,5 +66,13 @@ public class NsharpWxMath { return tempPressure; } - + + /* + * Get pressure Y coordinate from available temp and temp's X coordinate + */ + public static double getPressureYFromTemp(double temp, double tempX) { + double pressureY; + pressureY = (tempX - (temp * 0.54))/0.90692; + return pressureY; + } } diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/background/NsharpGenericPaneBackground.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/background/NsharpGenericPaneBackground.java new file mode 100644 index 0000000000..7eb8f585a2 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/background/NsharpGenericPaneBackground.java @@ -0,0 +1,198 @@ +/** + * + * gov.noaa.nws.ncep.ui.nsharp.background.NsharpGenericPaneBackground + * + * This java class performs the NSHARP NsharpSkewTPaneBackground functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 05/02/2012	229			Chin Chen	Initial coding for multiple display panes implementation
+ * 									    
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.background; + +import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingLayer; +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpAbstractPaneDescriptor; + +import java.util.HashMap; +import java.util.List; + +import org.eclipse.swt.graphics.Rectangle; + +import com.raytheon.uf.viz.core.IExtent; +import com.raytheon.uf.viz.core.IGraphicsTarget; +import com.raytheon.uf.viz.core.PixelExtent; +import com.raytheon.uf.viz.core.drawables.IFont; +import com.raytheon.uf.viz.core.drawables.IRenderable; +import com.raytheon.uf.viz.core.drawables.PaintProperties; +import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.viz.core.graphing.WGraphics; +import com.vividsolutions.jts.geom.Coordinate; + +public class NsharpGenericPaneBackground implements IRenderable { + protected Rectangle rectangle; + protected NsharpAbstractPaneDescriptor desc; + protected WGraphics world; + protected IGraphicsTarget target; + protected IFont smallFont=null; + protected PixelExtent pe; + //private double currentZoomLevel=1; + //private int currentFontSize= 10; + public NsharpGenericPaneBackground() { + super(); + // TODO Auto-generated constructor stub + } + public NsharpGenericPaneBackground(Rectangle rect) { + super(); + this.rectangle = rect; + world = new WGraphics(this.rectangle); + + world.setWorldCoordinates(rectangle.x,rectangle.y, + rectangle.x + rectangle.width, rectangle.y+rectangle.height); + } + public double toLogScale (double j) { + return(Math.log(j)/Math.log(1000)*1000); + } + public double reverseLogScale (double j) { + return(Math.exp(Math.log(1000)*j/1000)); + } + public PixelExtent getPe() { + return pe; + } + public void setCurrentFont(float currentFontSize) { + //this.currentFontSize = currentFontSize; + if(smallFont!=null){ + smallFont.dispose(); + } + smallFont = target.initializeFont( + target.getDefaultFont().getFontName(), currentFontSize, null); + } + + + public void magnifyFont(double currentZoomLevel) { + float magFactor = 1.0f / (float)currentZoomLevel; + if(smallFont!= null) + smallFont.setMagnification(magFactor); + } + + + /** + * Find a point on the background + * + * @param c + * @return + */ + public boolean contains(Coordinate c) { + return this.rectangle.contains((int) c.x, (int) c.y); + } + + + public Rectangle getRectangle() { + return this.rectangle; + } + + public WGraphics getWorld() { + return this.world; + } + + /* + * (non-Javadoc) + * + * @see + * com.raytheon.uf.viz.core.drawables.IRenderable#paint(com.raytheon.uf. + * viz.core.IGraphicsTarget, + * com.raytheon.uf.viz.core.drawables.PaintProperties) + */ + @Override + public void paint(IGraphicsTarget target, PaintProperties paintProps) + throws VizException { + /*double zoomLevel = paintProps.getZoomLevel(); + if(zoomLevel != currentZoomLevel){ + float magFactor = 1.0f / (float)zoomLevel; + if(smallFont!= null) + smallFont.setMagnification(magFactor); + }*/ + paintInternal(target, paintProps); + + + } + public synchronized void initInternal(IGraphicsTarget target){ + this.target = target; + smallFont = target.initializeFont( + target.getDefaultFont().getFontName(), 10, null); + } + protected void paintInternal(IGraphicsTarget target, + PaintProperties paintProps) throws VizException { + PixelExtent pixExt = new PixelExtent(this.rectangle); + target.setupClippingPlane(pixExt); + + target.drawRect(pixExt, NsharpConstants.backgroundColor, 1.0f, 1.0f); + + target.clearClippingPlane(); + + } + public void disposeInternal(){ + if(smallFont != null) + smallFont.dispose(); + } + + + protected WGraphics computeWorld(){ + return world; + } + public class ViewablePressureContainer{ + float maxVIewablePressure; + float minVIewablePressure; + //Map: key :: double pressure; + // value::double yPositionRatio; // between 0 to 1, 0=at ymin and 1= at ymax + HashMappyMap = new HashMap(); + public float getMaxVIewablePressure() { + return maxVIewablePressure; + } + public float getMinVIewablePressure() { + return minVIewablePressure; + } + public HashMap getPyMap() { + return pyMap; + } + + } + + public double getViewableMaxPressure() { + return 0; + } + public double getViewableMinPressure() { + return 0; + } + public double getYPositionRatioByPressure(double pressure) { + return 0; + } + public ViewablePressureContainer getViewablePressureContainer( + List soundingLys) { + return null; + } + public ViewablePressureContainer getViewablePressureLinesContainer(){ + return null; + } + public void handleResize(Rectangle rectangle){ + if(target==null) + return; + this.rectangle = rectangle; + pe = new PixelExtent(this.rectangle); + //desc.setNewPe(pe); + world = new WGraphics(this.rectangle); + world.setWorldCoordinates(rectangle.x,rectangle.y, + rectangle.x + rectangle.width, rectangle.y+rectangle.height); + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/background/NsharpHodoPaneBackground.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/background/NsharpHodoPaneBackground.java new file mode 100644 index 0000000000..e6c3bac968 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/background/NsharpHodoPaneBackground.java @@ -0,0 +1,243 @@ +/** + * + * gov.noaa.nws.ncep.ui.nsharp.background.NsharpHodoPaneBackground + * + * This java class performs the NSHARP NsharpSkewTPaneBackground functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 05/02/2012	229			Chin Chen	Initial coding for multiple display panes implementation
+ * 									    
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.background; + +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpHodoPaneDescriptor; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.GC; +import org.eclipse.swt.graphics.Rectangle; + +import com.raytheon.uf.common.sounding.WxMath; +import com.raytheon.uf.viz.core.IExtent; +import com.raytheon.uf.viz.core.IGraphicsTarget; +import com.raytheon.uf.viz.core.IGraphicsTarget.LineStyle; +import com.raytheon.uf.viz.core.PixelExtent; +import com.raytheon.uf.viz.core.drawables.IWireframeShape; +import com.raytheon.uf.viz.core.drawables.PaintProperties; +import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.viz.core.graphing.WGraphics; +import com.vividsolutions.jts.geom.Coordinate; + +public class NsharpHodoPaneBackground extends NsharpGenericPaneBackground { + private IWireframeShape hodoShape=null; + //private NsharpHodoPaneDescriptor desc; + /** + * Public constructor + * + * @param target + * @param world + * @param paintProps + * @throws VizException + */ + public NsharpHodoPaneBackground(NsharpHodoPaneDescriptor desc) { + super(); + this.rectangle = new Rectangle(NsharpConstants.HODO_X_ORIG, NsharpConstants.HODO_Y_ORIG, + NsharpConstants.HODO_WIDTH, NsharpConstants.HODO_HEIGHT); + pe = new PixelExtent(this.rectangle); + world = new WGraphics(this.rectangle); + world.setWorldCoordinates(-50,75,90,-95);//(-50, 90, 90, -50); + + //System.out.println("NsharpHodoPaneBackground constructed"); + this.desc = desc; + } + @Override + public void disposeInternal(){ + super.disposeInternal(); + if(hodoShape!=null){ + hodoShape.dispose(); + hodoShape=null; + } + } + private void createHodoShape(){ + //Create wireframe shape here + hodoShape = this.target.createWireframeShape(false,desc ); + if(hodoShape==null) + return; + hodoShape.allocate(7200); + Coordinate c = new Coordinate(world.mapX(0), world.mapY(0)); + // rings are offset to left of center of hodograph. + // in D2-D this is offset so the 45 knots ring touches the + // left side of the display and the 90 knots touches the right side of + // the display. We adjust our display to mimic this. + // draw the spokes. + //System.out.println("paintInternal Begin"); + for (double angle = 0; angle < 2 * Math.PI; angle += Math.PI / 2) { + double x = 200 * Math.cos(angle); + double y = 200 * Math.sin(angle); + /*target.drawLine(c.x, c.y, 0.0, world.mapX(x), world.mapY( + y), 0.0, NsharpConstants.degreeSpokeColor, 1, + LineStyle.DOTTED);*/ + double [][] lines = {{c.x, c.y},{world.mapX(x), world.mapY( + y)}}; + hodoShape.addLineSegment(lines); + //System.out.println("c.x="+ c.x + "C.Y="+c.y + " x= " + x + " y= " + y +" world.mapX(x)="+ getWorld().mapX(x)); + + } + // draw circles + for (int spd = 10; spd <= 120; spd += 10) { + + Coordinate c0, c1; + c0 = WxMath.uvComp(spd, 0); + for (int dir = 1; dir <= 360; dir += 1) { + c1 = WxMath.uvComp(spd, dir); + double [][] lines = {{getWorld().mapX(c0.x), getWorld().mapY(c0.y)},{getWorld().mapX(c1.x), getWorld().mapY(c1.y)}}; + hodoShape.addLineSegment(lines); + + c0 = c1; + } + //plot speed mark at 270 degree + Coordinate uv = WxMath.uvComp(spd, 270); + if (spd != 0) { + + double [] lblXys= { getWorld().mapX(uv.x), + getWorld().mapY(uv.y)}; + hodoShape.addLabel("" + spd, lblXys); + } + //plot speed mark at 90 degree + uv = WxMath.uvComp(spd, 90); + if (spd != 0) { + + double [] lblXys= { getWorld().mapX(uv.x), + getWorld().mapY(uv.y)}; + hodoShape.addLabel("" + spd, lblXys); + } + //plot speed mark at 180 degree + uv = WxMath.uvComp(spd, 180); + if (spd != 0) { + + double [] lblXys= { getWorld().mapX(uv.x), + getWorld().mapY(uv.y)}; + hodoShape.addLabel("" + spd, lblXys); + } + //plot speed mark at 360 degree + uv = WxMath.uvComp(spd, 360); + if (spd != 0) { + + double [] lblXys= { getWorld().mapX(uv.x), + getWorld().mapY(uv.y)}; + hodoShape.addLabel("" + spd, lblXys); + } + } + hodoShape.compile(); + } + @Override + public void initInternal(IGraphicsTarget target){ + super.initInternal(target); + createHodoShape(); + } + + @Override + public void paintInternal(IGraphicsTarget target, PaintProperties paintProps) + throws VizException { + target.setupClippingPlane(pe); + this.smallFont.setSmoothing(false); + this.smallFont.setScaleFont(false); + target.drawWireframeShape(hodoShape, NsharpConstants.backgroundColor, 1, LineStyle.SOLID,smallFont); + + target.drawRect(pe, NsharpConstants.backgroundColor, 1.0f, 1.0f); + + target.clearClippingPlane(); + + } + //this function is used for printing + public void paintForPrint( WGraphics world, GC gc){ + Coordinate c = new Coordinate(world.mapX(0), world.mapY(0)); + // label the spokes + gc.drawString( "180" + NsharpConstants.DEGREE_SYMBOL,(int) c.x, + (int) world.mapY(world.getWorldYmin())+5, false); + + gc.drawString( "360" + NsharpConstants.DEGREE_SYMBOL,(int) c.x, + (int) world.mapY(world.getWorldYmax())+1, false); + + gc.drawString( "270" + NsharpConstants.DEGREE_SYMBOL,(int) world.mapX(world.getWorldXmax())-20, + (int) c.y,false); + + gc.drawString( "90" + NsharpConstants.DEGREE_SYMBOL,(int) world.mapX(world.getWorldXmin())+5, + (int) c.y,false); + + + gc.setClipping((int)world.getViewXmin(), (int)world.getViewYmin(), + (int)world.getViewXmax()-(int)world.getViewXmin(), (int)world.getViewYmax()-(int)world.getViewYmin()); + gc.setLineWidth(1); + //System.out.println(" line width = "+gc.getLineWidth()); + // draw the spokes. + for (double angle = 0; angle < 2 * Math.PI; angle += Math.PI / 2) { + double x = 200 * Math.cos(angle); + double y = 200 * Math.sin(angle); + gc.drawLine((int)c.x, (int)c.y, (int)world.mapX(x), (int)world.mapY(y)); + //System.out.println("c.x="+ c.x + "C.Y="+c.y + " x= " + x + " y= " + y +" world.mapX(x)="+ world.mapX(x)); + + } + + // draw circles + gc.setLineStyle(SWT.LINE_DOT); + for (int spd = 10; spd <= 100; spd += 10) { + //Coordinate c1; + //c1 = WxMath.uvComp(spd, 0); + //System.out.println("c1.x="+ c1.x + "C1.Y="+c1.y +" world.mapX(c1.x)="+ world.mapX(c1.x)+" world.mapY(c1.y)="+ world.mapY(c1.y)); + int dist = (int)(world.mapX(spd)-c.x); + gc.drawOval((int)c.x-dist, (int)c.y-dist, 2* dist, 2* dist); + + if (spd%30 == 0) { + Coordinate uv = WxMath.uvComp(spd, 240); + + gc.drawString("" + spd, (int)world.mapX(uv.x), + (int)world.mapY(uv.y), false); + } + } + + + +} + + /* + * (non-Javadoc) + * + * @see com.raytheon.viz.skewt.ui.AbstractSkewTBackground#computeWorld() + */ + @Override + public WGraphics computeWorld() { + + + //set coordinate from -50 to 90 knots on both x and y + + return world; + } + /* + * Called from handleResize() in hodoPaneResource only + */ + public void handleResize(IExtent ext){ + this.rectangle = new Rectangle((int)ext.getMinX(), (int) ext.getMinY(), + (int) ext.getWidth(), (int) ext.getHeight()); + pe = new PixelExtent(this.rectangle); + desc.setNewPe(pe); + world = new WGraphics(this.rectangle); + world.setWorldCoordinates(-50,75,90,-95); + if(hodoShape!=null){ + hodoShape.dispose(); + hodoShape=null; + } + createHodoShape(); + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/background/NsharpIcingPaneBackground.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/background/NsharpIcingPaneBackground.java new file mode 100644 index 0000000000..957ded21fe --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/background/NsharpIcingPaneBackground.java @@ -0,0 +1,379 @@ +/** + * + * gov.noaa.nws.ncep.ui.nsharp.background.NsharpIcingPaneBackground + * + * This java class performs the NSHARP NsharpSkewTPaneBackground functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 05/02/2012	229			Chin Chen	Initial coding for multiple display panes implementation
+ * 									    
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.background; + +import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingLayer; +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.NsharpLineProperty; +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpSkewTPaneDescriptor; + +import java.util.HashMap; +import java.util.List; + +import org.eclipse.swt.graphics.Rectangle; + +import com.raytheon.uf.viz.core.IExtent; +import com.raytheon.uf.viz.core.IGraphicsTarget; +import com.raytheon.uf.viz.core.IGraphicsTarget.LineStyle; +import com.raytheon.uf.viz.core.PixelExtent; +import com.raytheon.uf.viz.core.drawables.IWireframeShape; +import com.raytheon.uf.viz.core.drawables.PaintProperties; +import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.viz.core.graphing.WGraphics; +import com.vividsolutions.jts.geom.Coordinate; + +public class NsharpIcingPaneBackground extends NsharpGenericPaneBackground { + //private NsharpSkewTPaneDescriptor desc; + + private IWireframeShape linesNumbersShape; + private IWireframeShape RHLabelShape; + private IWireframeShape tempLabelShape; + private IWireframeShape EPILabelShape;//Equivalent Potential Instability + private double currentZoomLevel=1; + private final float defaultLabelSpace = 50; + private float labelSpace = defaultLabelSpace; + private int iceXOrig=NsharpConstants.ICING_X_ORIG; + private int iceYOrig=NsharpConstants.ICING_Y_ORIG+(int)labelSpace; + private int iceXEnd=NsharpConstants.ICING_X_END; + private int iceWidth=NsharpConstants.ICING_WIDTH; + private int iceYEnd=iceYOrig+NsharpConstants.ICING_HEIGHT; + private int paneHeight = NsharpConstants.SKEWT_HEIGHT; + private float yMagFactor=1; + private float xMagFactor=1; + public NsharpIcingPaneBackground(NsharpSkewTPaneDescriptor desc) { + super(); + + this.rectangle = new Rectangle(iceXOrig, iceYOrig, + iceWidth, NsharpConstants.ICING_HEIGHT); + pe = new PixelExtent(this.rectangle); + world = new WGraphics(this.rectangle); + + + //System.out.println("NsharpIcingPaneBackground created"); + this.desc = desc; + } + + + @Override + protected WGraphics computeWorld() { + // TODO Auto-generated method stub + return null; + } + + private void createAllShapes(){ + IExtent ext = desc.getRenderableDisplay().getExtent(); + double xmin = ext.getMinX(); //Extent's viewable envelope min x and y + double ymax = ext.getMaxY(); + double ymin = ext.getMinY(); + double dispX,pX=0; + double dispY, pY=0; + String s = ""; + linesNumbersShape = target.createWireframeShape(false,desc ); + tempLabelShape = target.createWireframeShape(false,desc ); + RHLabelShape = target.createWireframeShape(false,desc ); + EPILabelShape = target.createWireframeShape(false,desc ); + linesNumbersShape.allocate(100); + tempLabelShape.allocate(20); + RHLabelShape.allocate(20); + EPILabelShape.allocate(4); + //set world based on pressure/RH + world.setWorldCoordinates(NsharpConstants.ICING_RELATIVE_HUMIDITY_LEFT, toLogScale(NsharpConstants.ICING_PRESSURE_LEVEL_TOP), + NsharpConstants.ICING_RELATIVE_HUMIDITY_RIGHT, toLogScale(NsharpConstants.ICING_PRESSURE_LEVEL_BOTTOM)); + pX= world.mapX( NsharpConstants.ICING_RELATIVE_HUMIDITY_LEFT); + if(pX < xmin) + dispX = xmin + 20 * currentZoomLevel*xMagFactor; + else + dispX = pX + 20 * currentZoomLevel*xMagFactor; + + //pressure lines and labels + for (double i = NsharpConstants.ICING_PRESSURE_LEVEL_TOP; i <= NsharpConstants.ICING_PRESSURE_LEVEL_BOTTOM; i=i+ NsharpConstants.ICING_PRESSURE_LEVEL_INC) { + //Pressure lines + double [][] lines = {{iceXOrig, world.mapY(toLogScale(i))},{iceXEnd, world.mapY(toLogScale(i))}}; + linesNumbersShape.addLineSegment(lines); + s = NsharpConstants.pressFormat.format(i); + //pressure labels + dispY = world.mapY(toLogScale(i))+5; + double [] lblXy = {dispX,dispY}; + linesNumbersShape.addLabel(s, lblXy); + } + //RHLabel + //double [] lblRhXy = {iceXOrig+ iceWidth/2, iceYOrig-45}; + //RHLabelShape.addLabel("*****ICING Display*****", lblRhXy); + double [] lblRhXy1 = {iceXOrig+iceWidth/2,iceYOrig-35*yMagFactor}; + RHLabelShape.addLabel("*****ICING Display***** RELATIVE HUMIDITY", lblRhXy1); + double [][] lineRH = {{0,0},{0,0}}; + RHLabelShape.addLineSegment(lineRH);//add dummy line + pY = world.mapY(toLogScale(NsharpConstants.ICING_PRESSURE_LEVEL_TOP)); + if(ymin < pY) + dispY = pY + 20 * currentZoomLevel*yMagFactor; + else + dispY = ymin + 20 * currentZoomLevel*yMagFactor; + for (double i = NsharpConstants.ICING_RELATIVE_HUMIDITY_LEFT; i <= NsharpConstants.ICING_RELATIVE_HUMIDITY_RIGHT; i= i+NsharpConstants.ICING_RELATIVE_HUMIDITY_INC) { + // temperature/humidity vertical lines + double [][] lines = {{world.mapX(i), iceYOrig},{world.mapX(i), iceYEnd}}; + linesNumbersShape.addLineSegment(lines); + //RH label + s = NsharpConstants.pressFormat.format(i); + + double [] lblXy = {world.mapX(i), dispY}; + RHLabelShape.addLabel(s, lblXy); + } + //temperature label + double [] lblTXy = {iceXOrig+ iceWidth/2, iceYEnd+20*yMagFactor}; + tempLabelShape.addLabel("TEMPERATURE (C)", lblTXy); + double [][] lineT = {{0,0},{0,0}}; + tempLabelShape.addLineSegment(lineT);//add dummy line + //set world based on pressure/twmp + world.setWorldCoordinates(NsharpConstants.ICING_TEMPERATURE_LEFT, toLogScale(NsharpConstants.ICING_PRESSURE_LEVEL_TOP), + NsharpConstants.ICING_TEMPERATURE_RIGHT, toLogScale(NsharpConstants.ICING_PRESSURE_LEVEL_BOTTOM)); + pY = world.mapY(toLogScale(NsharpConstants.ICING_PRESSURE_LEVEL_BOTTOM)); + if(ymax > pY) + dispY = pY - 10 * currentZoomLevel*yMagFactor; + else + dispY = ymax - 10 * currentZoomLevel*yMagFactor; + for (double i = NsharpConstants.ICING_TEMPERATURE_LEFT; i <= NsharpConstants.ICING_TEMPERATURE_RIGHT; i= i+NsharpConstants.ICING_TEMPERATURE_INC) { + // temperature label + s = NsharpConstants.pressFormat.format(i); + + double [] lblXy = {world.mapX(i),dispY};// iceYEnd+10}; + tempLabelShape.addLabel(s, lblXy); + } + //EPI label + double [] lblEPIXy = {iceXOrig+ iceWidth/2, iceYEnd+35*yMagFactor}; + EPILabelShape.addLabel("EQUIVALENT POTENTIAL INSTABILITY x 1E-3 K/m", lblEPIXy); + double [][] lineE = {{0,0},{0,0}}; + EPILabelShape.addLineSegment(lineE);//add dummy line + linesNumbersShape.compile(); + RHLabelShape.compile(); + tempLabelShape.compile(); + EPILabelShape.compile(); + } + @Override + public synchronized void initInternal(IGraphicsTarget target) { + // TODO Auto-generated method stub + super.initInternal(target); + createAllShapes(); + } + + @Override + protected void paintInternal(IGraphicsTarget target, + PaintProperties paintProps) throws VizException { + // TODO Auto-generated method stub + //super.paintInternal(target, paintProps); + target.setupClippingPlane(pe); + target.drawRect(pe, NsharpConstants.backgroundColor, 1.0f, 1.0f); + target.clearClippingPlane(); + double zoomLevel = paintProps.getZoomLevel(); + if(zoomLevel != currentZoomLevel) + { + currentZoomLevel = zoomLevel; + if(linesNumbersShape!= null){ + linesNumbersShape.dispose(); + } + if(RHLabelShape!= null){ + RHLabelShape.dispose(); + } + if(tempLabelShape!= null){ + tempLabelShape.dispose(); + } + if(EPILabelShape!= null){ + EPILabelShape.dispose(); + } + createAllShapes(); + } + this.smallFont.setSmoothing(false); + this.smallFont.setScaleFont(false); + target.drawWireframeShape(linesNumbersShape, NsharpConstants.pressureColor, 1, LineStyle.SOLID,smallFont); + HashMap lpMap = ((NsharpSkewTPaneDescriptor)desc).getSkewtResource().getLinePropertyMap(); + if(lpMap!=null){ + NsharpLineProperty lp =lpMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_ICING_RH]); + target.drawWireframeShape(RHLabelShape, lp.getLineColor(), 1, LineStyle.SOLID,smallFont); + lp =lpMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_ICING_TEMP]); + target.drawWireframeShape(tempLabelShape,lp.getLineColor(), 1, LineStyle.SOLID,smallFont); + lp =lpMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_ICING_EPI]); + target.drawWireframeShape(EPILabelShape, lp.getLineColor(), 1, LineStyle.SOLID,smallFont); + } + else { + target.drawWireframeShape(RHLabelShape, NsharpConstants.color_green, 1, LineStyle.SOLID,smallFont); + target.drawWireframeShape(tempLabelShape, NsharpConstants.color_red, 1, LineStyle.SOLID,smallFont); + target.drawWireframeShape(EPILabelShape, NsharpConstants.color_violet_red, 1, LineStyle.SOLID,smallFont); + } + + } + @Override + public void disposeInternal() { + // TODO Auto-generated method stub + super.disposeInternal(); + if(linesNumbersShape!= null){ + linesNumbersShape.dispose(); + } + if(RHLabelShape!= null){ + RHLabelShape.dispose(); + } + if(tempLabelShape!= null){ + tempLabelShape.dispose(); + } + if(EPILabelShape!= null){ + EPILabelShape.dispose(); + } + } + @Override + public double getViewableMaxPressure(){ + IExtent ext = desc.getRenderableDisplay().getExtent(); + double ymax = ext.getMaxY(); + double xmin = ext.getMinX(); + world.setWorldCoordinates(NsharpConstants.ICING_RELATIVE_HUMIDITY_LEFT, toLogScale(NsharpConstants.ICING_PRESSURE_LEVEL_TOP), + NsharpConstants.ICING_RELATIVE_HUMIDITY_RIGHT, toLogScale(NsharpConstants.ICING_PRESSURE_LEVEL_BOTTOM)); + Coordinate c = world.unMap(xmin, ymax); + double viewablePmax = reverseLogScale(world.unMap(xmin, ymax).y); + return viewablePmax; + } + @Override + public double getViewableMinPressure(){ + IExtent ext = desc.getRenderableDisplay().getExtent(); + double ymin = ext.getMinY(); + double xmin = ext.getMinX(); + world.setWorldCoordinates(NsharpConstants.ICING_RELATIVE_HUMIDITY_LEFT, toLogScale(NsharpConstants.ICING_PRESSURE_LEVEL_TOP), + NsharpConstants.ICING_RELATIVE_HUMIDITY_RIGHT, toLogScale(NsharpConstants.ICING_PRESSURE_LEVEL_BOTTOM)); + double viewablePmin = reverseLogScale(world.unMap(xmin, ymin).y); + return viewablePmin; + } + @Override + public double getYPositionRatioByPressure(double pressure){ + double pY= world.mapY(toLogScale(pressure)); + IExtent ext = desc.getRenderableDisplay().getExtent(); + double ymin = ext.getMinY(); + double ymax = ext.getMaxY(); + double ratio = (pY-ymin) / (ymax-ymin); + //System.out.println("ratio="+ratio+ "rtP="+rtP+" maxP="+maxP+" minP="+minP); + return ratio; + } + @Override + public ViewablePressureContainer getViewablePressureLinesContainer(){ + ViewablePressureContainer vpc = new ViewablePressureContainer(); + IExtent ext = desc.getRenderableDisplay().getExtent(); + float ymax = (float)ext.getMaxY(); + float ymin =(float) ext.getMinY(); + double vPmax = getViewableMaxPressure(); + double vPmin = getViewableMinPressure(); + vpc.maxVIewablePressure = (float)vPmax; + vpc.minVIewablePressure = (float)vPmin; + for (float pressure = 300; pressure <= 1000;pressure= pressure+100) { + if(pressure >= vPmin &&pressure <= vPmax){ + double pY= world.mapY(toLogScale(pressure)); + float ratio = (float) (pY-ymin) / (ymax-ymin); + vpc.pyMap.put(pressure, ratio); + //System.out.println("Icing press="+pressure+" ratio="+ratio+ " pY="+pY+" maxPy="+ymax+" minPy="+ymin); + } + } + return vpc; + } + @Override + public ViewablePressureContainer getViewablePressureContainer(List soundingLys){ + world.setWorldCoordinates(NsharpConstants.ICING_RELATIVE_HUMIDITY_LEFT, toLogScale(NsharpConstants.ICING_PRESSURE_LEVEL_TOP), + NsharpConstants.ICING_RELATIVE_HUMIDITY_RIGHT, toLogScale(NsharpConstants.ICING_PRESSURE_LEVEL_BOTTOM)); + ViewablePressureContainer vpc = new ViewablePressureContainer(); + IExtent ext = desc.getRenderableDisplay().getExtent(); + float ymax = (float)ext.getMaxY(); + float ymin =(float) ext.getMinY(); + double vPmax = getViewableMaxPressure(); + double vPmin = getViewableMinPressure(); + vpc.maxVIewablePressure = (float)vPmax; + vpc.minVIewablePressure = (float)vPmin; + for(NcSoundingLayer ly: soundingLys){ + float pressure = ly.getPressure(); + if(pressure >= vPmin &&pressure <= vPmax){ + double pY= world.mapY(toLogScale(pressure)); + float ratio = (float) (pY-ymin) / (ymax-ymin); + vpc.pyMap.put(pressure, ratio); + //System.out.println("Icing press="+pressure+" ratio="+ratio+ " pY="+pY+" maxPy="+ymax+" minPy="+ymin); + } + } + return vpc; + } + /* + * Called from handleResize() in skewTPaneResource only + */ + public void handleResize(IExtent ext){ + if(target==null) + return; + //IExtent ext = desc.getRenderableDisplay().getExtent(); + //ext.reset(); + float prevHeight = paneHeight; + float prevWidth = iceWidth; + paneHeight = (int) (ext.getHeight()); + yMagFactor = yMagFactor*((float)paneHeight/prevHeight); + labelSpace = defaultLabelSpace * yMagFactor; + iceXOrig=(int) (ext.getMinX()); + iceYOrig=(int) (ext.getMinY())+ (int)labelSpace; + iceXEnd=iceXOrig+(int) (ext.getWidth()); + iceYEnd=iceYOrig+(int) (ext.getHeight()) - 2*(int)labelSpace; + iceWidth = (int) (ext.getWidth()); + xMagFactor = xMagFactor* ((float)iceWidth/prevWidth); + this.rectangle = new Rectangle(iceXOrig, iceYOrig, + iceWidth, (int) ext.getHeight()-2*(int)labelSpace); + pe = new PixelExtent(this.rectangle); + desc.setNewPe(pe); + world = new WGraphics(this.rectangle); + + if(linesNumbersShape!= null){ + linesNumbersShape.dispose(); + } + if(RHLabelShape!= null){ + RHLabelShape.dispose(); + } + if(tempLabelShape!= null){ + tempLabelShape.dispose(); + } + if(EPILabelShape!= null){ + EPILabelShape.dispose(); + } + createAllShapes(); + } + public void handleZooming(){ + if(linesNumbersShape!= null){ + linesNumbersShape.dispose(); + } + if(RHLabelShape!= null){ + RHLabelShape.dispose(); + } + if(tempLabelShape!= null){ + tempLabelShape.dispose(); + } + if(EPILabelShape!= null){ + EPILabelShape.dispose(); + } + createAllShapes(); + } + public double getWindBarbXPosition(){ + IExtent ext = desc.getRenderableDisplay().getExtent(); + double xmax = ext.getMaxX(); //Extent's viewable envelope min x and y + double ymax = ext.getMaxY(); + double pX= world.mapX( NsharpConstants.ICING_RELATIVE_HUMIDITY_RIGHT); + if(pX < xmax) + xmax = pX; + double dispX = xmax - 30 * currentZoomLevel * xMagFactor; + + Coordinate cumap = world.unMap(dispX,ymax); + + return cumap.x; + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/background/NsharpSkewTPaneBackground.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/background/NsharpSkewTPaneBackground.java new file mode 100644 index 0000000000..8aee4e2303 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/background/NsharpSkewTPaneBackground.java @@ -0,0 +1,714 @@ +/** + * + * gov.noaa.nws.ncep.ui.nsharp.background.NsharpSkewTPaneBackground + * + * This java class performs the NSHARP NsharpSkewTPaneBackground functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 05/02/2012	229			Chin Chen	Initial coding for multiple display panes implementation
+ * 									    
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.background; + +import static java.lang.Math.pow; +import static java.lang.Math.signum; +import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingLayer; +import gov.noaa.nws.ncep.ui.nsharp.NsharpConfigManager; +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.NsharpGraphProperty; +import gov.noaa.nws.ncep.ui.nsharp.NsharpWxMath; +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpSkewTPaneDescriptor; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpResourceHandler; + +import java.awt.geom.Line2D; +import java.awt.geom.Point2D; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.GC; +import org.eclipse.swt.graphics.Rectangle; + +import com.raytheon.edex.util.Equations; +import com.raytheon.edex.util.UAPoint; +import com.raytheon.uf.viz.core.IExtent; +import com.raytheon.uf.viz.core.IGraphicsTarget; +import com.raytheon.uf.viz.core.IGraphicsTarget.LineStyle; +import com.raytheon.uf.viz.core.PixelExtent; +import com.raytheon.uf.viz.core.drawables.IWireframeShape; +import com.raytheon.uf.viz.core.drawables.PaintProperties; +import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.viz.core.graphing.WGraphics; +import com.vividsolutions.jts.geom.Coordinate; + +public class NsharpSkewTPaneBackground extends NsharpGenericPaneBackground { + //private NsharpSkewTPaneDescriptor desc; + private IWireframeShape mixRatioShape; + private IWireframeShape dryAdiabatsShape; + private IWireframeShape moistAdiabatsShape; + private IWireframeShape temperatureLineShape; + private IWireframeShape presslinesNumbersShape; + private IWireframeShape tempNumbersShape; + private double currentZoomLevel=1; + private int skewtWidth=NsharpConstants.SKEWT_WIDTH; + private float xRatio=1; + private float[]mixingRatios = + { .5f, 1, 2, 5, 10, 20/*, 50 */}; + + private static List> saturatedPoints = Equations + .getSaturatedAdiabats(1000, 100, 20, -60, 60, 5); + + private static List> dryPoints = getDryAdiabats( + 1000, 100, 10, -40, 273, 20); + + private static final double Rd = 0.2870586d; + private NsharpGraphProperty graphConfigProperty; + private int tempOffset = 0; + public NsharpSkewTPaneBackground(NsharpSkewTPaneDescriptor desc) { + super(); + + this.rectangle = new Rectangle(NsharpConstants.SKEWT_X_ORIG, NsharpConstants.SKEWT_Y_ORIG, + NsharpConstants.SKEWT_WIDTH, NsharpConstants.SKEWT_HEIGHT); + //this.rectangle = new Rectangle(-700, 250, 690, 690); + //this.rectangle = new Rectangle(10,10, 690,690); + pe = new PixelExtent(this.rectangle); + world = new WGraphics(this.rectangle); + + world.setWorldCoordinates(NsharpConstants.left, NsharpConstants.top, + NsharpConstants.right, NsharpConstants.bottom); + //System.out.println("NsharpSkewTPaneBackground created"); + this.desc = desc; + NsharpConfigManager configMgr = NsharpConfigManager.getInstance(); + graphConfigProperty = configMgr.retrieveNsharpConfigStoreFromFs().getGraphProperty(); + } + + + + private static double poisson(double startPressure, double stopPressure, + double temperature) { + return temperature * pow((startPressure / stopPressure), Rd); + } + + private static List> getDryAdiabats(double startPressure, + double stopPressure, double increment, double startTemp, + double endTemp, double tempDist) { + List> dryAdiabats = new ArrayList>(); + + for (double t = startTemp; t < 100; t += tempDist) { + dryAdiabats.add(dryAdiabats(1000, 100, /*20*/increment, t + 273.15)); + } + return dryAdiabats; + } + + /** + * + * @param startPressure + * @param stopPressure + * @param increment + * @param adiabat + * @return + */ + private static List dryAdiabats(double startPressure, + double stopPressure, double increment, double adiabat) { + ArrayList adiabats = null; + if (startPressure != stopPressure) { + if (increment > 0) { + adiabats = new ArrayList(); + + double delta = signum(stopPressure - startPressure) * increment; + + double basePressure = startPressure; + // int i = 0; + for (; startPressure >= stopPressure; startPressure += delta) { + UAPoint point = new UAPoint(); + point.pressure = startPressure; + point.temperature = poisson(startPressure, basePressure, + adiabat); + adiabats.add(point); + } + } + } + return adiabats; + } + + private void printDryAdiabats(WGraphics world, GC gc) throws VizException { + for (Iterator> iterator = dryPoints + .iterator(); iterator.hasNext();) { + List points = iterator.next(); + UAPoint firstPoint = points.get(0); + Coordinate startCoor = NsharpWxMath.getSkewTXY(firstPoint.pressure, + NsharpConstants.kelvinToCelsius.convert(firstPoint.temperature)); + //System.out.println("List size ="+points.size()); + //System.out.println("First pt pre=" + firstPoint.pressure+ " temp="+ firstPoint.temperature); + for (Iterator iter = points.iterator(); iter.hasNext();) { + UAPoint p = iter.next(); + //System.out.println("pt pre=" + p.pressure+ " temp="+ p.temperature); + Coordinate endCoor = NsharpWxMath.getSkewTXY(p.pressure, + NsharpConstants.kelvinToCelsius.convert(p.temperature)); + + gc.drawLine((int)world.mapX(startCoor.x), (int)world.mapY( + startCoor.y), (int)world.mapX(endCoor.x), + (int)world.mapY(endCoor.y)); + + startCoor = endCoor; + } + } + } + + /** + * Print the temperature lines. + * + * @throws VizException + */ + private void printTempLines(WGraphics world, GC gc) throws VizException { + for (int i = 70; i > -200; i -= 10) { + Coordinate coorStart = NsharpWxMath.getSkewTXY(1050, i); + Coordinate coorEnd = NsharpWxMath.getSkewTXY(100, i); + gc.drawLine((int)world.mapX(coorStart.x), (int)world.mapY( + coorStart.y), (int)world.mapX(coorEnd.x), (int)world + .mapY(coorEnd.y)); + } + } + + + + + /** + * Returns the point that two lines instersect, or null if they do not. + * + * @param l1 + * @param l2 + * @return + */ + private Point2D.Double getLineIntersection(Line2D.Double l1, + Line2D.Double l2) { + if (!l1.intersectsLine(l2)) { + return null; + } + + Point2D.Double intersection = new Point2D.Double(); + double x1 = l1.getX1(), y1 = l1.getY1(), x2 = l1.getX2(), y2 = l1 + .getY2(), x3 = l2.getX1(), y3 = l2.getY1(), x4 = l2.getX2(), y4 = l2 + .getY2(); + + intersection.x = det(det(x1, y1, x2, y2), x1 - x2, det(x3, y3, x4, y4), + x3 - x4) + / det(x1 - x2, y1 - y2, x3 - x4, y3 - y4); + intersection.y = det(det(x1, y1, x2, y2), y1 - y2, det(x3, y3, x4, y4), + y3 - y4) + / det(x1 - x2, y1 - y2, x3 - x4, y3 - y4); + + return intersection; + } + + private double det(double a, double b, double c, double d) { + return a * d - b * c; + } + + + @Override + public void disposeInternal(){ + super.disposeInternal(); + if(mixRatioShape!=null) + mixRatioShape.dispose(); + if(dryAdiabatsShape!=null) + dryAdiabatsShape.dispose(); + if(moistAdiabatsShape!= null) + moistAdiabatsShape.dispose(); + if(temperatureLineShape!=null) + temperatureLineShape.dispose(); + if(presslinesNumbersShape!=null) + presslinesNumbersShape.dispose(); + if(tempNumbersShape!=null) + tempNumbersShape.dispose(); + } + @Override + public void initInternal(IGraphicsTarget target){ + super.initInternal(target); + //createTempLineShape(); + createMoistAdiabatsShape(); + createDryAdiabatsShape(); + createMixingRatioShape(); + createPressureLineNumberShape(); + createTempNumberAndLineShape(); + } + private void createPressureLineNumberShape(){ + //pressureLineNumberShape + if(target==null) + return; + String s = ""; + presslinesNumbersShape = target.createWireframeShape(false,desc ); + presslinesNumbersShape.allocate(150); + // System.out.println("NsharpConstants.left="+NsharpConstants.left+"NsharpConstants.right"+NsharpConstants.right+" top="+NsharpConstants.top + " bot="+ NsharpConstants.bottom); + // System.out.println("MAIN*******************"); + /* Chin::::Note::: + * move this out to draw them in paintInternal() to fix a bug that will not draw pressure line above 800 after resizing screen. + * Does not know why this happened. All pressure lines below 800 are still drew but not for those above 800. + * Mark lines also have same problem, but do not move to paintInternal as they are not as important as pressure lines. + for (int i = 0; i < NsharpConstants.PRESSURE_MAIN_LEVELS.length; i++) { + //we only care about pressure for this case, temp is no important when calling getSkewTXY + Coordinate coor = NsharpWxMath.getSkewTXY(NsharpConstants.PRESSURE_MAIN_LEVELS[i],0); + + double [][] lines = {{world.mapX(NsharpConstants.left), world.mapY(coor.y)},{world.mapX(NsharpConstants.right), + world.mapY(coor.y)}}; + presslinesNumbersShape.addLineSegment(lines); + //System.out.println("coor.x="+coor.x+"coor.y="+coor.y); + //System.out.println("x1="+world.mapX(NsharpConstants.left)+"y1=" +world.mapY(coor.y)+"x2="+world.mapX(NsharpConstants.right)+"y2="+ + // world.mapY(coor.y)); + }*/ + //System.out.println("MARK*******************"); + for (int i = 0; i < NsharpConstants.PRESSURE_MARK_LEVELS.length; i++) { + //we only care about pressure for this case, temp is no important when calling getSkewTXY + Coordinate coor = NsharpWxMath.getSkewTXY(NsharpConstants.PRESSURE_MARK_LEVELS[i],0); + + double [][] lines = {{world.mapX(NsharpConstants.left), world.mapY(coor.y)},{ world.mapX(NsharpConstants.left)+25* currentZoomLevel*xRatio, + world.mapY(coor.y)}}; + presslinesNumbersShape.addLineSegment(lines); + //System.out.println("coor.x="+coor.x+"coor.y="+coor.y); + //System.out.println("x1="+world.mapX(NsharpConstants.left)+"y1=" +world.mapY(coor.y)+"x2="+world.mapX(NsharpConstants.right)+"y2="+ + // world.mapY(coor.y)); + } + IExtent ext = desc.getRenderableDisplay().getExtent(); + double xmin = ext.getMinX(); //Extent's viewable envelope min x and y + double xDefault = world.mapX(NsharpConstants.left); + if(xmin = NsharpConstants.TURBULENCE_LN_RICHARDSON_NUMBER_RIGHT; i= i+NsharpConstants.TURBULENCE_LN_RICHARDSON_NUMBER_INC) { + // temperature/LN vertical lines + double [][] lines = {{world.mapX(i), turbYOrig},{world.mapX(i), turbYEnd}}; + linesNumbersShape.addLineSegment(lines); + //RH label + s = NsharpConstants.pressFormat.format(i); + double [] lblXy = {world.mapX(i),dispY}; + lNLabelShape.addLabel(s, lblXy); + } + //wind shear label + double [] lblTXy = {turbXOrig+ 0.5*turbWidth, turbYEnd+35*yMagFactor}; + windShearLabelShape.addLabel("WIND SHEAR TKE PRODUCTION x 1E3 joules/sec", lblTXy); + double [][] lineT = {{0,0},{0,0}}; + windShearLabelShape.addLineSegment(lineT);//add dummy line + //set world based on pressure/windShear + world.setWorldCoordinates(NsharpConstants.TURBULENCE_WIND_SHEAR_TKE_LEFT, toLogScale(NsharpConstants.TURBULENCE_PRESSURE_LEVEL_TOP), + NsharpConstants.TURBULENCE_WIND_SHEAR_TKE_RIGHT, toLogScale(NsharpConstants.TURBULENCE_PRESSURE_LEVEL_BOTTOM)); + pY = world.mapY(toLogScale(NsharpConstants.TURBULENCE_PRESSURE_LEVEL_BOTTOM)); + if(ymax > pY) + dispY = pY - 10 * currentZoomLevel*yMagFactor; + else + dispY = ymax - 10 * currentZoomLevel*yMagFactor; + + for (double i = NsharpConstants.TURBULENCE_WIND_SHEAR_TKE_LEFT; i <= NsharpConstants.TURBULENCE_WIND_SHEAR_TKE_RIGHT; i= i+NsharpConstants.TURBULENCE_WIND_SHEAR_TKE_INC) { + // temperature label + s = NsharpConstants.pressFormat.format(i); + double [] lblXy = {world.mapX(i),dispY}; + windShearLabelShape.addLabel(s, lblXy); + } + linesNumbersShape.compile(); + lNLabelShape.compile(); + windShearLabelShape.compile(); + + } + + @Override + public synchronized void initInternal(IGraphicsTarget target) { + // TODO Auto-generated method stub + super.initInternal(target); + createAllShapes(); + } + + @Override + protected void paintInternal(IGraphicsTarget target, + PaintProperties paintProps) throws VizException { + // TODO Auto-generated method stub + //super.paintInternal(target, paintProps); + target.setupClippingPlane(pe); + target.drawRect(pe, NsharpConstants.backgroundColor, 1.0f, 1.0f); + target.clearClippingPlane(); + double zoomLevel = paintProps.getZoomLevel(); + if(zoomLevel != currentZoomLevel) + { + currentZoomLevel = zoomLevel; + if(linesNumbersShape!= null){ + linesNumbersShape.dispose(); + } + if(lNLabelShape!= null){ + lNLabelShape.dispose(); + } + if(windShearLabelShape!= null){ + windShearLabelShape.dispose(); + } + createAllShapes(); + } + this.smallFont.setSmoothing(false); + this.smallFont.setScaleFont(false); + target.drawWireframeShape(linesNumbersShape, NsharpConstants.pressureColor, 1, LineStyle.SOLID,smallFont); + HashMap lpMap = ((NsharpSkewTPaneDescriptor)desc).getSkewtResource().getLinePropertyMap(); + if(lpMap!=null){ + NsharpLineProperty lp =lpMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_TURBULENCE_LN]); + target.drawWireframeShape(lNLabelShape,lp.getLineColor(), 1, LineStyle.SOLID,smallFont); + lp =lpMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_TURBULENCE_WS]); + target.drawWireframeShape(windShearLabelShape, lp.getLineColor(), 1, LineStyle.SOLID,smallFont); + } + else{ + target.drawWireframeShape(lNLabelShape, NsharpConstants.color_violet_red, 1, LineStyle.SOLID,smallFont); + target.drawWireframeShape(windShearLabelShape, NsharpConstants.color_pink, 1, LineStyle.SOLID,smallFont); + } + } + @Override + public void disposeInternal() { + // TODO Auto-generated method stub + super.disposeInternal(); + if(linesNumbersShape!= null){ + linesNumbersShape.dispose(); + } + if(lNLabelShape!= null){ + lNLabelShape.dispose(); + } + if(windShearLabelShape!= null){ + windShearLabelShape.dispose(); + } + } + @Override + public double getViewableMaxPressure(){ + IExtent ext = desc.getRenderableDisplay().getExtent(); + double ymax = ext.getMaxY(); + double xmin = ext.getMinX(); + world.setWorldCoordinates(NsharpConstants.TURBULENCE_LN_RICHARDSON_NUMBER_LEFT, toLogScale(NsharpConstants.TURBULENCE_PRESSURE_LEVEL_TOP), + NsharpConstants.TURBULENCE_LN_RICHARDSON_NUMBER_RIGHT, toLogScale(NsharpConstants.TURBULENCE_PRESSURE_LEVEL_BOTTOM)); + double viewablePmax = reverseLogScale(world.unMap(xmin, ymax).y); + return viewablePmax; + } + @Override + public double getViewableMinPressure(){ + IExtent ext = desc.getRenderableDisplay().getExtent(); + double ymin = ext.getMinY(); + double xmin = ext.getMinX(); + world.setWorldCoordinates(NsharpConstants.TURBULENCE_LN_RICHARDSON_NUMBER_LEFT, toLogScale(NsharpConstants.TURBULENCE_PRESSURE_LEVEL_TOP), + NsharpConstants.TURBULENCE_LN_RICHARDSON_NUMBER_RIGHT, toLogScale(NsharpConstants.TURBULENCE_PRESSURE_LEVEL_BOTTOM)); + double viewablePmin = reverseLogScale(world.unMap(xmin, ymin).y); + return viewablePmin; + } + @Override + public double getYPositionRatioByPressure(double pressure){ + double pY= world.mapY(toLogScale(pressure)); + IExtent ext = desc.getRenderableDisplay().getExtent(); + double ymin = ext.getMinY(); + double ymax = ext.getMaxY(); + double ratio = (pY-ymin) / (ymax-ymin); + //System.out.println("ratio="+ratio+ "rtP="+rtP+" maxP="+maxP+" minP="+minP); + return ratio; + } + @Override + public ViewablePressureContainer getViewablePressureContainer(List soundingLys){ + world.setWorldCoordinates(NsharpConstants.TURBULENCE_LN_RICHARDSON_NUMBER_LEFT, toLogScale(NsharpConstants.TURBULENCE_PRESSURE_LEVEL_TOP), + NsharpConstants.TURBULENCE_LN_RICHARDSON_NUMBER_RIGHT, toLogScale(NsharpConstants.TURBULENCE_PRESSURE_LEVEL_BOTTOM)); + ViewablePressureContainer vpc = new ViewablePressureContainer(); + IExtent ext = desc.getRenderableDisplay().getExtent(); + float ymax = (float)ext.getMaxY(); + float ymin =(float) ext.getMinY(); + double vPmax = getViewableMaxPressure(); + double vPmin = getViewableMinPressure(); + vpc.maxVIewablePressure = (float)vPmax; + vpc.minVIewablePressure = (float)vPmin; + for(NcSoundingLayer ly: soundingLys){ + float pressure = ly.getPressure(); + if(pressure >= vPmin &&pressure <= vPmax){ + double pY= world.mapY(toLogScale(pressure)); + float ratio = (float) (pY-ymin) / (ymax-ymin); + vpc.pyMap.put(pressure, ratio); + //System.out.println("Turb press="+pressure+" ratio="+ratio+ " pY="+pY+" maxPy="+ymax+" minPy="+ymin); + } + } + return vpc; + } + @Override + public ViewablePressureContainer getViewablePressureLinesContainer(){ + ViewablePressureContainer vpc = new ViewablePressureContainer(); + IExtent ext = desc.getRenderableDisplay().getExtent(); + float ymax = (float)ext.getMaxY(); + float ymin =(float) ext.getMinY(); + double vPmax = getViewableMaxPressure(); + double vPmin = getViewableMinPressure(); + vpc.maxVIewablePressure = (float)vPmax; + vpc.minVIewablePressure = (float)vPmin; + for (float pressure = 100; pressure <= 1000;pressure= pressure+100) { + /*if(pressure >= vPmin &&pressure <= vPmax)*/{ + double pY= world.mapY(toLogScale(pressure)); + float ratio = (float) (pY-ymin) / (ymax-ymin); + vpc.pyMap.put(pressure, ratio); + //System.out.println("Icing press="+pressure+" ratio="+ratio+ " pY="+pY+" maxPy="+ymax+" minPy="+ymin); + } + } + return vpc; + } + + /* + * Called from handleResize() in skewTPaneResource only + */ + public void handleResize(IExtent ext){ + if(target==null) + return; + //IExtent ext = desc.getRenderableDisplay().getExtent(); + //ext.reset(); + float prevHeight = paneHeight; + paneHeight = (int) (ext.getHeight()); + yMagFactor = yMagFactor * ((float)paneHeight/prevHeight); + labelSpace = defaultLabelSpace * yMagFactor; + turbXOrig=(int) (ext.getMinX()); + turbYOrig=(int) (ext.getMinY())+ (int)labelSpace; + turbXEnd=turbXOrig+(int) (ext.getWidth()); + turbYEnd=turbYOrig+(int) (ext.getHeight()) - 2*(int)labelSpace; + float prevWidth = turbWidth; + turbWidth = (int) (ext.getWidth()); + xMagFactor = xMagFactor* ((float)turbWidth/prevWidth); + this.rectangle = new Rectangle(turbXOrig, turbYOrig, + turbWidth, (int) ext.getHeight()-2*(int)labelSpace); + pe = new PixelExtent(this.rectangle); + desc.setNewPe(pe); + world = new WGraphics(this.rectangle); + + if(linesNumbersShape!= null){ + linesNumbersShape.dispose(); + } + if(lNLabelShape!= null){ + lNLabelShape.dispose(); + } + if(windShearLabelShape!= null){ + windShearLabelShape.dispose(); + } + createAllShapes(); + } + public void handleZooming(){ + if(linesNumbersShape!= null){ + linesNumbersShape.dispose(); + } + if(lNLabelShape!= null){ + lNLabelShape.dispose(); + } + if(windShearLabelShape!= null){ + windShearLabelShape.dispose(); + } + createAllShapes(); + } + public double getWindBarbXPosition(){ + IExtent ext = desc.getRenderableDisplay().getExtent(); + double xmax = ext.getMaxX(); //Extent's viewable envelope min x and y + double ymax = ext.getMaxY(); + //Chin:NOTE: LN Richardson number is plotted with positive number at left and negative number to its right side. + // Therefore,its world X coordinate maximum is at TURBULENCE_LN_RICHARDSON_NUMBER_LEFT when plotting wind barb + + double pX= world.mapX( NsharpConstants.TURBULENCE_LN_RICHARDSON_NUMBER_LEFT); + if(pX < xmax) + xmax = pX; + double dispX = xmax - 50 * currentZoomLevel * xMagFactor; + + Coordinate cumap = world.unMap(dispX,ymax); + + return cumap.x; + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpAbstractMouseHandler.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpAbstractMouseHandler.java new file mode 100644 index 0000000000..c3ebdcccbd --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpAbstractMouseHandler.java @@ -0,0 +1,305 @@ +package gov.noaa.nws.ncep.ui.nsharp.display; +/** + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/23/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + +import gov.noaa.nws.ncep.ui.nsharp.display.map.NsharpMapResource; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpAbstractPaneResource; +import gov.noaa.nws.ncep.ui.pgen.tools.InputHandlerDefaultImpl; + +import java.io.IOException; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; + +import com.raytheon.uf.common.status.UFStatus; +import com.raytheon.uf.common.status.UFStatus.Priority; +import com.raytheon.uf.viz.core.IDisplayPane; +import com.raytheon.uf.viz.core.IExtent; +import com.raytheon.uf.viz.core.IView; +import com.raytheon.uf.viz.core.drawables.IDescriptor.FrameChangeMode; +import com.raytheon.uf.viz.core.drawables.IDescriptor.FrameChangeOperation; +import com.raytheon.uf.viz.core.localization.HierarchicalPreferenceStore; +import com.raytheon.viz.ui.UiPlugin; +import com.raytheon.viz.ui.input.preferences.MousePreferenceManager; +import com.raytheon.viz.ui.panes.VizDisplayPane; + +@SuppressWarnings("deprecation") +public class NsharpAbstractMouseHandler extends InputHandlerDefaultImpl{//implements IInputHandler { + + protected enum Mode { + CREATE, SKEWT_DOWN, HODO_DOWN, HODO_DOWN_MOVE, TIMELINE_DOWN, STATIONID_DOWN, PARCELLINE_DOWN, HODO_WIND_MOTION_DOWN + }; + protected Display display; + protected NsharpEditor editor; + public void setEditor(NsharpEditor editor) { + this.editor = editor; + } + protected Mode mode = Mode.CREATE; + protected boolean cursorInPane=false; + protected double[] anchorPointxy; + protected VizDisplayPane currentPane; + protected MousePreferenceManager prefManager = MousePreferenceManager.getInstance(); + protected static final String PAN_PREF = "com.raytheon.viz.ui.input.pan"; + protected static final String PAN_PERCENTAGE = "panningPercentage"; + protected static final String ZOOMIN_PREF = "com.raytheon.viz.ui.input.zoomin"; + protected static final String ZOOMOUT_PREF = "com.raytheon.viz.ui.input.zoomout"; + protected static final String CLEAR_PREF = "com.raytheon.viz.ui.clear"; + protected float theLastMouseX = 0; + protected float theLastMouseY = 0; + protected Double panningPercentage = null; + protected boolean shiftDown=false; + protected boolean zDownWhileShiftDown=false; + protected int KEY_Z= 122; + + protected double getPanningPercentage() { + if (panningPercentage == null) { + HierarchicalPreferenceStore store = UiPlugin.getDefault() + .getPreferenceStore(); + panningPercentage = UiPlugin.getDefault().getPreferenceStore() + .getDouble(PAN_PERCENTAGE); + + if (panningPercentage < 0.0 || panningPercentage > 1.0) { + // bad value set, reset and store + panningPercentage = panningPercentage < 0.0 ? 0.0 : 1.0; + + store.setValue(PAN_PERCENTAGE, panningPercentage.doubleValue()); + try { + store.save(); + } catch (IOException e) { + UFStatus.getHandler().handle(Priority.PROBLEM, "Error saving panning percentage preference", e); + } + } + } + return panningPercentage.doubleValue(); + } + public NsharpAbstractMouseHandler(NsharpEditor editor, IDisplayPane pane) { + this.editor = editor; + display = Display.getCurrent(); + currentPane = (VizDisplayPane)pane; + } + /* + * (non-Javadoc) + * + * @see com.raytheon.viz.ui.input.IInputHandler#handleMouseWheel(int, int) + */ + public boolean handleMouseWheel(Event event, int x, int y) { + if(editor == null || cursorInPane == false) { + return false; + } + //if set to false, preempt other handler, so zooming is disabled in SkewT editor. + com.raytheon.viz.ui.input.preferences.MouseEvent SCROLL_FORWARD = com.raytheon.viz.ui.input.preferences.MouseEvent.SCROLL_FORWARD; + com.raytheon.viz.ui.input.preferences.MouseEvent SCROLL_BACK = com.raytheon.viz.ui.input.preferences.MouseEvent.SCROLL_BACK; + if ((event.stateMask & SWT.SHIFT) == 0 + && editor.translateClick(x, y) != null && currentPane != null) { + if ((event.count < 0 && prefManager.handleEvent(ZOOMIN_PREF, + SCROLL_FORWARD)) + || (event.count > 0 && prefManager.handleEvent( + ZOOMOUT_PREF, SCROLL_BACK))) { + currentPane.zoom(event.count, event.x, event.y); + return true; + } else if ((event.count > 0 && prefManager.handleEvent( + ZOOMOUT_PREF, SCROLL_FORWARD)) + || (event.count < 0 && prefManager.handleEvent(ZOOMIN_PREF, + SCROLL_BACK))) { + currentPane.zoom(-event.count, event.x, event.y); + return true; + } else if ((event.count > 0 && prefManager.handleEvent(CLEAR_PREF, + SCROLL_FORWARD)) + || (event.count < 0 && prefManager.handleEvent(CLEAR_PREF, + SCROLL_BACK))) { + currentPane.clear(); + return true; + } + } + return false; + } + + @Override + public boolean handleDoubleClick(int x, int y, int button) { + return false; + } + + + @Override + public boolean handleKeyUp(int keyCode) { + //String s = "key up="+(char)keyCode; + //System.out.println(s+ " code ="+keyCode); + if (getPaneDisplay() == null) { + return false; + } + NsharpAbstractPaneResource paneRsc = getDescriptor().getPaneResource(); + if (keyCode == SWT.ARROW_DOWN) { + paneRsc.getRscHandler().setSteppingStnIdList(FrameChangeOperation.NEXT) ; + return true; + }else if (keyCode == SWT.ARROW_UP) { + //System.out.println("Arrow up"); + paneRsc.getRscHandler().setSteppingStnIdList(FrameChangeOperation.PREVIOUS) ; + return true; + }else if (keyCode == SWT.ARROW_LEFT) { + //System.out.println("Arrow left"); + paneRsc.getRscHandler().setSteppingTimeLine(FrameChangeOperation.PREVIOUS, FrameChangeMode.TIME_ONLY) ; + return true; + }else if (keyCode == SWT.ARROW_RIGHT) { + //System.out.println("Arrow right"); + paneRsc.getRscHandler().setSteppingTimeLine(FrameChangeOperation.NEXT, FrameChangeMode.TIME_ONLY) ; + return true; + } + return false; + } + + @Override + public boolean handleMouseDown(int x, int y, int mouseButton) { + if(editor != null && mouseButton== 1) { + //editor.setFocus(); + editor.setSelectedPane(currentPane); + } + cursorInPane=true; + + if (!prefManager.handleDrag(PAN_PREF, mouseButton) + && !prefManager.handleClick(ZOOMIN_PREF, mouseButton) + && !prefManager.handleClick(ZOOMOUT_PREF, mouseButton)) + return false; + + theLastMouseX = x; + theLastMouseY = y; + return false; + } + @Override + public boolean handleMouseDownMove(int aX, int aY, int button) { + if (getPaneDisplay() == null || editor == null) { + return false; + } + else if (button == 1) { + if (prefManager.handleLongClick(ZOOMIN_PREF, button) + || prefManager.handleLongClick(ZOOMOUT_PREF, button)) { + theLastMouseX = aX; + theLastMouseY = aY; + } + //VizDisplayPane currentPane=((NsharpEditor)editor).getSelectedPane(); + if ((!prefManager.handleDrag(PAN_PREF, button)) || currentPane == null) + return false; + IView tmpView = (IView)currentPane.getRenderableDisplay().getView().clone(); + tmpView.shiftExtent(new double[] { aX, aY }, new double[] { + theLastMouseX, theLastMouseY },currentPane.getTarget()); + IExtent tmpExtent = tmpView.getExtent(); + double percentage = getPanningPercentage(); + double xMinThreshold = tmpExtent.getMinX() + + (tmpExtent.getMaxX() - tmpExtent.getMinX()) * percentage; + double xMaxThreshold = tmpExtent.getMinX() + + (tmpExtent.getMaxX() - tmpExtent.getMinX()) + * (1.0 - percentage); + double yMinThreshold = tmpExtent.getMinY() + + (tmpExtent.getMaxY() - tmpExtent.getMinY()) * percentage; + double yMaxThreshold = tmpExtent.getMinY() + + (tmpExtent.getMaxY() - tmpExtent.getMinY()) + * (1.0 - percentage); + + double height = currentPane.getRenderableDisplay().getWorldHeight(); + double width = currentPane.getRenderableDisplay().getWorldWidth(); + + int aX2 = aX, aY2 = aY; + + if ((0 <= xMinThreshold && width >= xMaxThreshold) == false) { + if (((width < xMaxThreshold && theLastMouseX < aX) || (0 > xMinThreshold && theLastMouseX > aX)) == false) { + aX2 = (int) theLastMouseX; + } + } + + if ((0 <= yMinThreshold && height >= yMaxThreshold) == false) { + if (((height < yMaxThreshold && theLastMouseY < aY) || (0 > yMinThreshold && theLastMouseY > aY)) == false) { + aY2 = (int) theLastMouseY; + } + } + + if (aX2 != theLastMouseX || aY2 != theLastMouseY) { + currentPane.shiftExtent(new double[] { aX2, aY2 }, new double[] { + theLastMouseX, theLastMouseY }); + } + theLastMouseX = aX; + theLastMouseY = aY; + return true; + + } + return false; + } + + @Override + public boolean handleMouseHover(int x, int y) { + //System.out.println("mouseHandler handleMouseHover"); + if(editor != null) { + editor.setFocus(); + } + return true; + } + @Override + public boolean handleMouseUp(int x, int y, int mouseButton) { + if (getPaneDisplay() == null) { + return false; + } + if(editor!=null){ + // button 1 is left mouse button + if(mouseButton == 3){ + //right mouse button + //System.out.println("skewtRsc handleMouseUp right button"); + NsharpMapResource.bringMapEditorToTop(); + } + editor.refresh(); + } + return false; + } + + @Override + public boolean handleMouseMove(int x, int y) { + return false; + } + + @Override + public boolean handleMouseExit(Event event) { + //System.out.println("handleMouseExit pane="+ getPaneDisplay().getPaneName()); + cursorInPane=false; + return false; + } + @Override + public boolean handleMouseEnter(Event event) { + //System.out.println("handleMouseEnter pane="+ getPaneDisplay().getPaneName()); + if(editor != null ) { + editor.setFocus(); + editor.setSelectedPane(currentPane); + } + cursorInPane=true; + return false; + } + + //private void notifyResourceMiddleClicked(int x, int y) { + //} + + /** + * Gets the display you are using + * + * @return SkewTDisplay + */ + public NsharpAbstractPaneDisplay getPaneDisplay() { + return((NsharpAbstractPaneDisplay) currentPane.getRenderableDisplay()); + } + + public NsharpAbstractPaneDescriptor getDescriptor() { + return((NsharpAbstractPaneDescriptor) currentPane.getDescriptor()); + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpAbstractPaneDescriptor.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpAbstractPaneDescriptor.java new file mode 100644 index 0000000000..edd7b06832 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpAbstractPaneDescriptor.java @@ -0,0 +1,100 @@ +/** + * + * ggov.noaa.nws.ncep.ui.nsharp.display.NsharpAbstractPaneDescriptor + * + * This java class performs the NSHARP NsharpAbstractPaneDescriptor functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 05/02/2012	229			Chin Chen	Initial coding for multiple display panes implementation
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.display; + +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpAbstractPaneResource; + +import java.util.List; + +import org.geotools.referencing.crs.DefaultEngineeringCRS; + +import com.raytheon.uf.viz.core.PixelExtent; +import com.raytheon.uf.viz.core.datastructure.LoopProperties; +import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.viz.core.graphing.GraphDescriptor; + +public class NsharpAbstractPaneDescriptor extends GraphDescriptor { + protected int paneNumber; + + public int getPaneNumber() { + return paneNumber; + } + + public void setPaneNumber(int paneNumber) { + this.paneNumber = paneNumber; + } + + public NsharpAbstractPaneDescriptor(PixelExtent pe) { + super(pe); + //System.out.println("NsharpAbstractPaneDescriptor created " + this.toString()); + } + public NsharpAbstractPaneDescriptor(PixelExtent pe, int paneNumber) { + super(pe); + this.paneNumber = paneNumber; + //System.out.println("NsharpAbstractPaneDescriptor created " + this.toString()); + } + @SuppressWarnings("deprecation") + @Override + public void changeFrame(FrameChangeOperation operation, FrameChangeMode mode) { + synchronized (this) { + //From stepping commands + //System.out.println("NsharpAbstractPaneDescriptor changeFrame called pane= "+paneNumber); + } + } + @SuppressWarnings("deprecation") + @Override + public void checkDrawTime(LoopProperties loopProperties) { + super.checkDrawTime(loopProperties); + //System.out.println("NsharpAbstractPaneDescriptor checkDrawTime called pane= "+paneNumber); + //handleDataTimeIndex is no longer available since 11.5 + //called from DrawCoordinatedPane + //Chin: 11.11 note: it is now called from NsharpSkewTDisplay.paint() when animation is started. + //System.out.println("NsharpAbstractPaneDescriptor checkDrawTime called "); + if (loopProperties == null || getFrames() == null) { + //System.out.println("NsharpAbstractPaneDescriptor checkDrawTime called but jump "); + return; + } + if (loopProperties.isLooping() && loopProperties.isShouldDraw()) { + //System.out.println("NsharpAbstractPaneDescriptor checkDrawTime with looping called pane= "+paneNumber); + NsharpEditor editor = NsharpEditor.getActiveNsharpEditor() ; + if(editor!= null){ + + editor.getRscHandler().setLoopingDataTimeLine(loopProperties); + } + } + } + + public NsharpAbstractPaneResource getPaneResource() { + List list = resourceList + .getResourcesByTypeAsType(NsharpAbstractPaneResource.class); + if (list != null && !list.isEmpty()) { + return list.get(0); + } + return null; + } + public void setNewPe(PixelExtent anExtent){ + try { + setGridGeometry(createGridGeometry(anExtent, DefaultEngineeringCRS.CARTESIAN_2D)); + } catch (VizException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpAbstractPaneDisplay.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpAbstractPaneDisplay.java new file mode 100644 index 0000000000..57ceddbf82 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpAbstractPaneDisplay.java @@ -0,0 +1,121 @@ +/** + * + * gov.noaa.nws.ncep.ui.nsharp.display.NsharpAbstractPaneDisplay + * + * This java class performs the NSHARP NsharpAbstractPaneDisplay functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/30/2012	229			Chin Chen	Initial coding for multiple display panes implementation
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.display; + +import gov.noaa.nws.ncep.viz.common.EditorManager; + +import java.util.ArrayList; +import com.raytheon.uf.viz.core.IGraphicsTarget; +import com.raytheon.uf.viz.core.PixelExtent; +import com.raytheon.uf.viz.core.drawables.AbstractRenderableDisplay; +import com.raytheon.uf.viz.core.drawables.PaintProperties; +import com.raytheon.uf.viz.core.drawables.ResourcePair; +import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.uf.viz.core.rsc.AbstractVizResource; +import com.raytheon.uf.viz.core.rsc.AbstractVizResource.ResourceStatus; +import com.vividsolutions.jts.geom.GeometryFactory; + +public class NsharpAbstractPaneDisplay extends AbstractRenderableDisplay { + public static GeometryFactory gf = new GeometryFactory(); + protected int paneNum =0; + protected int editorNum =0; + protected String paneName; + public int getEditorNum() { + return editorNum; + } + + public void setEditorNum(int editorNum) { + this.editorNum = editorNum; + //System.out.println("NsharpAbstractPaneDisplay setEditorNnum " + editorNum ); + + } + + public NsharpAbstractPaneDisplay(PixelExtent pixelExtent,int paneNumber, String name, NsharpAbstractPaneDescriptor desc) { + super(pixelExtent, desc); + paneNum = paneNumber; + paneName = name; + } + + @Override + public void dispose() { + + int editorInstanceNum = EditorManager.getNumOfEditorInstance(editorNum); + //System.out.println("NsharpAbstractPaneDisplay disposed editor num " + editorNum +" instance "+ editorInstanceNum); + if (this.descriptor != null && editorInstanceNum <= 1) { + super.dispose(); + } + } + @Override + public NsharpAbstractPaneDescriptor getDescriptor() { + return (NsharpAbstractPaneDescriptor) super.getDescriptor(); + } + + @Override + public void paint(IGraphicsTarget target, PaintProperties paintProps) + throws VizException { + super.paint(target, paintProps); + + //this.target = target; + //this.paintProps = paintProps; + + //Chin:: 11.5 changes, DrawCoordinatedPane() will call checkDrawTime(), + // so we dont have to call it from here. + //Chin: 11.11 change: however, DrawCoordinatedPane() does not call checkDrawTime() any more + // since 11.11. So, to make looping work, we call it from here AGAIN. Any other good work from Raytheon. + descriptor.checkDrawTime(paintProps.getLoopProperties()); + + drawTheData(target, paintProps); + } + + /** + * Draws the data on the screen. + * + * @throws VizException + */ + protected void drawTheData(IGraphicsTarget target, + PaintProperties paintProps) throws VizException { + ArrayList resourceList = new ArrayList( + descriptor.getResourceList()); + + PaintProperties myProps = new PaintProperties(paintProps); + for (ResourcePair pair : resourceList) { + if (pair.getProperties().isVisible()) { + AbstractVizResource rsc = pair.getResource(); + if ((rsc != null) && (rsc.getStatus()!= ResourceStatus.DISPOSED)) { + myProps = calcPaintDataTime(myProps, rsc); + rsc.paint(target, myProps); + } + } + } + } + public GeometryFactory getGeometry() { + return gf; + } + + public int getPaneNum() { + return paneNum; + } + + public String getPaneName() { + return paneName; + } + + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpDataPaneDisplay.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpDataPaneDisplay.java new file mode 100644 index 0000000000..b3eb661dcb --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpDataPaneDisplay.java @@ -0,0 +1,64 @@ +/** + * + * gov.noaa.nws.ncep.ui.nsharp.display.NsharpDataPaneDisplay + * + * This java class performs the NSHARP NsharpDataPaneDisplay functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/30/2012	229			Chin Chen	Initial coding for multiple display panes implementation
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.display; + +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpDataPaneResourceData; +import com.raytheon.uf.viz.core.PixelExtent; +import com.raytheon.uf.viz.core.drawables.ResourcePair; +import com.raytheon.uf.viz.core.rsc.AbstractResourceData; +import com.raytheon.uf.viz.core.rsc.LoadProperties; +import com.raytheon.uf.viz.core.rsc.ResourceList; +import com.raytheon.uf.viz.core.rsc.ResourceProperties; +import com.raytheon.uf.viz.core.rsc.capabilities.ColorableCapability; + +public class NsharpDataPaneDisplay extends NsharpAbstractPaneDisplay { + public NsharpDataPaneDisplay(PixelExtent pixelExtent,int paneNumber) { + super(pixelExtent,paneNumber, "DataPane",(NsharpAbstractPaneDescriptor)( new NsharpAbstractPaneDescriptor(pixelExtent, paneNumber))); + } + + @Override + public NsharpAbstractPaneDescriptor getDescriptor() { + return (NsharpAbstractPaneDescriptor) super.getDescriptor(); + } + + @Override + protected void customizeResourceList(ResourceList resourceList) { + AbstractResourceData resourceData = new NsharpDataPaneResourceData(); + // get a load properties + LoadProperties loadProperties = new LoadProperties(); + ColorableCapability colorableCapability = new ColorableCapability(); + colorableCapability.setColor(NsharpConstants.backgroundColor); + loadProperties.getCapabilities().addCapability(colorableCapability); + // get some resource properties + ResourceProperties resourceProperties = new ResourceProperties(); + resourceProperties.setVisible(true); + resourceProperties.setMapLayer(true); + resourceProperties.setSystemResource(true); + // Make a resource pair + ResourcePair resourcePair = new ResourcePair(); + resourcePair.setResourceData(resourceData); + resourcePair.setLoadProperties(loadProperties); + resourcePair.setProperties(resourceProperties); + // add it to the resource list. + resourceList.add(resourcePair); + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpDataPaneMouseHandler.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpDataPaneMouseHandler.java new file mode 100644 index 0000000000..5b6ba39b46 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpDataPaneMouseHandler.java @@ -0,0 +1,89 @@ +/** + * + * gov.noaa.nws.ncep.ui.nsharp.skewt.rsc.NsharpDataPaneMouseHandler + * + * This java class performs the NSHARP NsharpDataPaneMouseHandler functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 03/23/2010	229			Chin Chen	Initial coding
+ * 03/09/2011               Chin Chen   Updated for R1G2-9
+ * 06/14/2011   11-5        Chin Chen   migration
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.display; + + +import gov.noaa.nws.ncep.ui.nsharp.display.map.NsharpMapResource; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpDataPaneResource; + +import com.raytheon.uf.viz.core.IDisplayPane; +import com.vividsolutions.jts.geom.Coordinate; + +public class NsharpDataPaneMouseHandler extends NsharpAbstractMouseHandler{ + + + public NsharpDataPaneMouseHandler(NsharpEditor editor, IDisplayPane pane) { + super(editor,pane); + } + + + + @Override + public boolean handleMouseDown(int x, int y, int mouseButton) { + theLastMouseX = x; + theLastMouseY = y; + if (getPaneDisplay() == null) { + return false; + } + else if (mouseButton == 1) { + //System.out.println("handleMouseDown"); + this.mode = Mode.CREATE; + Coordinate c = editor.translateClick(x, y); + NsharpDataPaneResource rsc = (NsharpDataPaneResource)getDescriptor().getPaneResource(); + if((rsc.getDataPanel1Background().contains(c) == true || rsc.getDataPanel2Background().contains(c) == true) && rsc.isSumP1Visible() == true) { + this.mode = Mode.PARCELLINE_DOWN; + //changeMouse(this.mode); + } + editor.refresh(); + } + + return false; + } + + + @Override + public boolean handleMouseUp(int x, int y, int mouseButton) { + //System.out.println("skewtRsc handleMouseUp"); + if (getPaneDisplay() == null) { + return false; + } + if(editor!=null){ + // button 1 is left mouse button + if (mouseButton == 1 ){ + Coordinate c = editor.translateClick(x, y); + NsharpDataPaneResource rsc = (NsharpDataPaneResource)getDescriptor().getPaneResource(); + if((rsc.getDataPanel1Background().contains(c) == true || rsc.getDataPanel2Background().contains(c) == true )&& this.mode == Mode.PARCELLINE_DOWN) { + //System.out.println("skewtRsc handleMouseUp panels"); + rsc.setUserPickedParcelLine(c); + + } + this.mode = Mode.CREATE; + } else if(mouseButton == 3){ + //right mouse button + //System.out.println("skewtRsc handleMouseUp right button"); + NsharpMapResource.bringMapEditorToTop(); + } + editor.refresh(); + } + return false; + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpEditor.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpEditor.java new file mode 100644 index 0000000000..89029a288a --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpEditor.java @@ -0,0 +1,828 @@ +package gov.noaa.nws.ncep.ui.nsharp.display; +/** + * + * gov.noaa.nws.ncep.ui.nsharp.skewt.NsharpEditor + * + * This java class performs the NSHARP NsharpEditor functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 03/23/2010	229			Chin Chen	Initial coding
+ * 										Reused some software from com.raytheon.viz.skewt
+ * 03/24/2011   R1G2-9      Chin Chen   migration
+ * 06/14/2011   11-5        Chin Chen   migration
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpAbstractPaneResource; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpDataPaneResource; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpHodoPaneResource; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpInsetPaneResource; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpResourceHandler; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpSkewTPaneResource; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpTimeStnPaneResource; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpWitoPaneResource; +import gov.noaa.nws.ncep.ui.pgen.tools.InputHandlerDefaultImpl; +import gov.noaa.nws.ncep.viz.common.AbstractNcEditor; +import gov.noaa.nws.ncep.viz.common.EditorManager; +import gov.noaa.nws.ncep.viz.ui.display.NCLoopProperties; + +import org.eclipse.core.runtime.Status; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IEditorReference; +import org.eclipse.ui.IEditorSite; +import org.eclipse.ui.IViewPart; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.commands.ICommandService; + +import com.raytheon.uf.common.status.UFStatus; +import com.raytheon.uf.common.status.UFStatus.Priority; +import com.raytheon.uf.viz.core.IDisplayPane; +import com.raytheon.uf.viz.core.PixelExtent; +import com.raytheon.uf.viz.core.datastructure.LoopProperties; +import com.raytheon.uf.viz.core.drawables.IRenderableDisplay; +import com.raytheon.uf.viz.core.drawables.ResourcePair; +import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.uf.viz.core.rsc.IInputHandler; +import com.raytheon.uf.viz.core.rsc.ResourceList.AddListener; +import com.raytheon.uf.viz.core.rsc.ResourceList.RemoveListener; +import com.raytheon.viz.ui.EditorUtil; +import com.raytheon.viz.ui.UiPlugin; +import com.raytheon.viz.ui.editor.AbstractEditor; +import com.raytheon.viz.ui.editor.EditorInput; +import com.raytheon.viz.ui.input.InputManager; +import com.raytheon.viz.ui.panes.PaneManager; +import com.raytheon.viz.ui.panes.VizDisplayPane; +import com.vividsolutions.jts.geom.Coordinate; + +public class NsharpEditor extends AbstractEditor implements AddListener, + RemoveListener, AbstractNcEditor { + + public static final String EDITOR_ID = "gov.noaa.nws.ncep.ui.nsharp.skewt.NsharpEditor"; + private int editorNum=0; + private static NsharpResourceHandler rscHandler; + private int baseWidth; + private int baseHeight; + private static IRenderableDisplay[] displayArray; + + public NsharpResourceHandler getRscHandler() { + return rscHandler; + } + public int getEditorNum() { + return editorNum; + } + + private Composite[] nsharpComp = new Composite[NsharpConstants.DISPLAY_TOTAL]; + private Composite baseComposite; + private Group rightTopGp, leftTopGp; + /** The map input manager */ + protected InputManager skewtInputManager; + //protected InputManager witoInputManager; + protected InputManager hodoInputManager; + protected InputManager timeStnInputManager; + protected InputManager dataInputManager; + protected InputManager insetInputManager; + + /** The activated context, else null if not activated. */ + //protected IContextActivation contextActivation; + + private NsharpSkewTPaneMouseHandler skewtPaneMouseHandler = null; + //private NsharpAbstractMouseHandler witoPaneMouseHandler = null; + private NsharpHodoPaneMouseHandler hodoPaneMouseHandler = null; + private NsharpTimeStnPaneMouseHandler timeStnPaneMouseHandler = null; + private NsharpDataPaneMouseHandler dataPaneMouseHandler = null; + private NsharpAbstractMouseHandler insetPaneMouseHandler = null; + + protected VizDisplayPane displayPane[]= new VizDisplayPane[NsharpConstants.DISPLAY_TOTAL]; + protected VizDisplayPane selectedPane = displayPane[0]; + public static NsharpEditor getActiveNsharpEditor() { + IEditorPart ep = EditorUtil.getActiveEditor(); + if (ep instanceof NsharpEditor) { + //System.out.println("getActiveNsharpEditor return ep from EditorUtil.getActiveEditor()"); + return (NsharpEditor) ep; + } + + // It might be desirable to stop here so that we only have an "active" + // editor if it really is active. + if(PlatformUI.getWorkbench()==null || PlatformUI.getWorkbench().getActiveWorkbenchWindow() ==null ) + return null; + IWorkbenchPage activePage = PlatformUI.getWorkbench() + .getActiveWorkbenchWindow().getActivePage(); + IEditorReference[] references = new IEditorReference[0]; + if (activePage != null) { + references = activePage.getEditorReferences(); + } + + for (IEditorReference ref : references) { + ep = ref.getEditor(false); + if (ep instanceof NsharpEditor) { + //System.out.println("getActiveNsharpEditor return ep from IEditorReference.getEditor"); + return (NsharpEditor) ep; + } + } + return null; + } + /* + * (non-Javadoc) + * + * @see + * org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets + * .Composite) + */ + @Override + public void createPartControl(Composite comp) { + //System.out.println("NsharpEditor createPartControl called"); + baseComposite = comp;// new Composite(comp, SWT.NONE); + final GridLayout mainGL = new GridLayout(2, true); + mainGL.horizontalSpacing = 0; + mainGL.marginHeight = 0; + baseComposite.setLayout(mainGL); + //System.out.println("createPartControl...baseComposite w= " + baseComposite.getBounds().width + " h= "+ baseComposite.getBounds().height); + baseHeight = baseComposite.getSize().y; + baseWidth = baseComposite.getSize().x; + baseComposite.addListener(SWT.Resize, new Listener() { + @Override + public void handleEvent(Event event) { + //System.out.println("Before resizing...baseComposite w= " + baseComposite.getBounds().width + " h= "+ baseComposite.getBounds().height); + //System.out.println("Before resizing...nsharpComp[0] w= " + nsharpComp[0].getBounds().width + " h= "+ nsharpComp[0].getBounds().height); + //System.out.println("Before resizing...nsharpComp[1] w= " + nsharpComp[1].getBounds().width + " h= "+ nsharpComp[1].getBounds().height); + //System.out.println("Before resizing...nsharpComp[2] w= " + nsharpComp[2].getBounds().width + " h= "+ nsharpComp[2].getBounds().height); + //System.out.println("Before resizing...nsharpComp[3] w= " + nsharpComp[3].getBounds().width + " h= "+ nsharpComp[3].getBounds().height); + baseHeight = baseComposite.getSize().y; + baseWidth = baseComposite.getSize().x; + GridData skewtGd = new GridData(SWT.FILL, SWT.FILL, true, + true); + skewtGd.heightHint = (int)(baseHeight*0.8); + skewtGd.widthHint = (int)(baseWidth*0.5*0.6875);//width is 11:5 between skewTComp and witoComp + nsharpComp[NsharpConstants.DISPLAY_SKEWT].setLayoutData(skewtGd); + GridData witoGd = new GridData(SWT.END, SWT.FILL, false, + true); + witoGd.heightHint = (int)(baseHeight*0.8); + witoGd.widthHint = (int)(baseWidth*0.5*0.3125);//width is 11:5 between skewTComp and witoComp + nsharpComp[NsharpConstants.DISPLAY_WITO].setLayoutData(witoGd); + nsharpComp[NsharpConstants.DISPLAY_WITO].setSize((int)(baseWidth*0.5*0.3125),(int)(baseHeight*0.8)); + GridData insetGd = new GridData(SWT.FILL, SWT.END, true, + false); + insetGd.heightHint = (int)(baseHeight*0.2); + insetGd.widthHint = (int)(baseWidth*0.5); + nsharpComp[NsharpConstants.DISPLAY_INSET].setLayoutData(insetGd); + + + GridData hodoGd = new GridData(SWT.FILL, SWT.FILL, true, + true); + hodoGd.widthHint = (int)(baseWidth*0.5*0.65);//width is 65:35 between hodoComp and timeStnComp + nsharpComp[NsharpConstants.DISPLAY_HODO].setLayoutData(hodoGd); + + GridData timeStnGd = new GridData(SWT.END, SWT.FILL, false, + true); + timeStnGd.widthHint = (int)(baseWidth*0.5*0.35);//width is 65:35 between hodoComp and timeStnComp + nsharpComp[NsharpConstants.DISPLAY_TIMESTN].setLayoutData(timeStnGd); + + GridData dataGd = new GridData(SWT.FILL, SWT.END, true, + false); + dataGd.heightHint = (int)(baseHeight*0.3); + dataGd.widthHint = (int)(baseWidth*0.5); + nsharpComp[NsharpConstants.DISPLAY_DATA].setLayoutData(dataGd); + + for(int i=0; i< NsharpConstants.DISPLAY_TOTAL; i++){ + ResourcePair rscPair = displayArray[i].getDescriptor().getResourceList().get(0); + if (rscPair.getResource() instanceof NsharpAbstractPaneResource){ + NsharpAbstractPaneResource paneRsc = (NsharpAbstractPaneResource)rscPair.getResource() ; + paneRsc.setResize(true); + } + } + //System.out.println("After resizing...nsharpComp[0] w= " + nsharpComp[0].getBounds().width + " h= "+ nsharpComp[0].getBounds().height); + //System.out.println("After resizing...nsharpComp[1] w= " + nsharpComp[1].getBounds().width + " h= "+ nsharpComp[1].getBounds().height); + + } + }); + + Group leftGp = new Group(baseComposite, SWT.NONE); + GridData leftGpGd = new GridData(SWT.FILL, SWT.FILL, true, + true); + leftGp.setLayoutData(leftGpGd); + GridLayout leftGpLayout = new GridLayout(1, true); + leftGpLayout.marginWidth = 0; + leftGpLayout.marginHeight = 0; + leftGpLayout.verticalSpacing = 0; + leftGp.setLayout(leftGpLayout); + + //left-top group : upper part of left group + leftTopGp = new Group(leftGp, SWT.NONE); + GridData leftTopGpGd = new GridData(SWT.FILL, SWT.FILL, true, + true); + leftTopGpGd.heightHint = 4;//height is 4:1 between leftTopGp and leftBotGp( only insetComp for now) + leftTopGp.setLayoutData(leftTopGpGd); + GridLayout leftTopGpLayout = new GridLayout(2, false); + leftTopGpLayout.marginWidth = 0; + leftTopGpLayout.marginHeight = 0; + leftTopGpLayout.verticalSpacing=0; + leftTopGp.setLayout(leftTopGpLayout); + + // skewt composite + Composite skewtComp = new Composite(leftTopGp, SWT.NONE); + GridData skewtGd = new GridData(SWT.FILL, SWT.FILL, true, + true); + //skewtGd.heightHint = 4; //Height is 4:1 between skewtComp and insetComp + skewtComp.setLayoutData(skewtGd); + GridLayout skewtLayout = new GridLayout(1, true); + skewtLayout.marginWidth = 0; + skewtLayout.marginHeight = 0; + skewtLayout.verticalSpacing = 0; + skewtComp.setLayout(skewtLayout); + nsharpComp[NsharpConstants.DISPLAY_SKEWT] = skewtComp; + + // wito composite + Composite witoComp = new Composite(leftTopGp, SWT.NONE); + GridData witoGd = new GridData(SWT.END, SWT.FILL, false, + true); + witoGd.widthHint = NsharpConstants.WITO_PANE_REC_WIDTH; + witoComp.setLayoutData(witoGd); + GridLayout witoLayout = new GridLayout(1, true); + witoLayout.marginWidth = 0; + witoLayout.marginHeight = 0; + witoLayout.verticalSpacing = 0; + witoComp.setLayout(witoLayout); + nsharpComp[NsharpConstants.DISPLAY_WITO] = witoComp; + + //inset composite + Composite insetComp = new Composite(leftGp, SWT.NONE); + GridData insetGd = new GridData(SWT.FILL, SWT.FILL, true, + false); + insetGd.heightHint = 1; + insetComp.setLayoutData(insetGd); + GridLayout insetLayout = new GridLayout(1, true); + insetLayout.marginHeight = 0; + insetLayout.marginWidth = 0; + insetComp.setLayout(insetLayout); + nsharpComp[NsharpConstants.DISPLAY_INSET] = insetComp; + + //right group + Group rightGp = new Group(baseComposite, SWT.NONE); + GridData rightGpGd = new GridData(SWT.FILL, SWT.FILL, true, + true); + rightGp.setLayoutData(rightGpGd); + GridLayout rightGpLayout = new GridLayout(1, true); + rightGpLayout.marginWidth = 0; + rightGpLayout.marginHeight = 0; + rightGpLayout.verticalSpacing=0; + rightGp.setLayout(rightGpLayout); + + //right-top group : upper part of right group + rightTopGp = new Group(rightGp, SWT.NONE); + GridData rightTopGpGd = new GridData(SWT.FILL, SWT.FILL, true, + true); + rightTopGpGd.heightHint = 7;//height is 7:3 between rightTopGp and rightBotGp( only dataComp for now) + rightTopGp.setLayoutData(rightTopGpGd); + GridLayout rightTopGpLayout = new GridLayout(2, false); + rightTopGpLayout.marginWidth = 0; + rightTopGpLayout.marginHeight = 0; + rightTopGpLayout.verticalSpacing=0; + rightTopGp.setLayout(rightTopGpLayout); + //hodo composite + Composite hodoComp = new Composite(rightTopGp, SWT.NONE); + GridData hodoGd = new GridData(SWT.FILL, SWT.FILL, true, + true); + //hodoGd.widthHint = NsharpConstants.HODO_PANE_REC_WIDTH;//width is 65:35 between hodoComp and timeStnComp + hodoComp.setLayoutData(hodoGd); + GridLayout hodoLayout = new GridLayout(1, true); + hodoLayout.marginHeight =0; + hodoLayout.marginWidth=0; + hodoLayout.verticalSpacing=0; + hodoComp.setLayout(hodoLayout); + nsharpComp[NsharpConstants.DISPLAY_HODO] = hodoComp; + + //time-stn composite + Composite timeStnComp = new Composite(rightTopGp, SWT.NONE); + GridData timeStnGd = new GridData(SWT.END, SWT.FILL, false, + true); + timeStnGd.widthHint = NsharpConstants.TIMESTN_PANE_REC_WIDTH;//width is 65:35 between hodoComp and timeStnComp + timeStnComp.setLayoutData(timeStnGd); + GridLayout timeStnLayout = new GridLayout(1, true); + timeStnLayout.marginHeight =0; + timeStnLayout.marginWidth=0; + timeStnLayout.verticalSpacing=0; + timeStnComp.setLayout(timeStnLayout); + nsharpComp[NsharpConstants.DISPLAY_TIMESTN] = timeStnComp; + + //data composite + Composite dataComp = new Composite(rightGp, SWT.NONE); + GridData dataGd = new GridData(SWT.FILL, SWT.FILL, true, + false); + dataGd.heightHint = 3; + dataComp.setLayoutData(dataGd); + GridLayout dataLayout = new GridLayout(1, true); + dataLayout.marginHeight = 2; + dataLayout.marginWidth=0; + dataComp.setLayout(dataLayout); + nsharpComp[NsharpConstants.DISPLAY_DATA] = dataComp; + + skewtInputManager = new InputManager(this); + //witoInputManager = new InputManager(this); + timeStnInputManager = new InputManager(this); + hodoInputManager = new InputManager(this); + dataInputManager = new InputManager(this); + insetInputManager = new InputManager(this); + try { + for(int i=0; i < displayPane.length; i++){ + if (displayPane[i] == null ) { + displayPane[i] = new VizDisplayPane(this, nsharpComp[i], + displaysToLoad[i]); + + + displayPane[i].setRenderableDisplay(displaysToLoad[i]); + registerListener(displayPane[i]); + } + } + registerHandlers(); + + displayPane[NsharpConstants.DISPLAY_SKEWT].addListener( SWT.MouseEnter, new Listener() { + @Override + public void handleEvent(Event e) { + if ( e.button==0 ) { + selectedPane = displayPane[NsharpConstants.DISPLAY_SKEWT]; + //System.out.println("selectedPane =skewt"); + } + } + }); + displayPane[NsharpConstants.DISPLAY_WITO].addListener(SWT.MouseEnter, new Listener() { + @Override + public void handleEvent(Event e) { + if (e.button==0 ) { + selectedPane = displayPane[NsharpConstants.DISPLAY_WITO]; + //System.out.println("selectedPane =date"); + } + } + }); + displayPane[NsharpConstants.DISPLAY_HODO].addListener( SWT.MouseEnter, new Listener() { + @Override + public void handleEvent(Event e) { + if ( e.button==0 ) { + selectedPane = displayPane[NsharpConstants.DISPLAY_HODO]; + //System.out.println("selectedPane =hodo"); + } + } + }); + displayPane[NsharpConstants.DISPLAY_TIMESTN].addListener( SWT.MouseEnter, new Listener() { + @Override + public void handleEvent(Event e) { + if ( e.button==0 ) { + selectedPane = displayPane[NsharpConstants.DISPLAY_TIMESTN]; + //System.out.println("selectedPane =hodo"); + } + } + }); + displayPane[NsharpConstants.DISPLAY_DATA].addListener(SWT.MouseEnter, new Listener() { + @Override + public void handleEvent(Event e) { + if (e.button==0 ) { + selectedPane = displayPane[NsharpConstants.DISPLAY_DATA]; + //System.out.println("selectedPane =date"); + } + } + }); + displayPane[NsharpConstants.DISPLAY_INSET].addListener( SWT.MouseEnter, new Listener() { + @Override + public void handleEvent(Event e) { + if ( e.button==0 ) { + selectedPane = displayPane[NsharpConstants.DISPLAY_INSET]; + //System.out.println("selectedPane =inset"); + } + } + }); + + } + catch (Exception e) { + final String errMsg = "Error setting up NsharpEditor"; + UFStatus.getHandler().handle(Priority.SIGNIFICANT, errMsg, e); + } + contributePerspectiveActions(); + } + + protected void registerHandlers() { + for(int i=0; i < displayPane.length; i++){ + IDisplayPane pane = displayPane[i]; + InputHandlerDefaultImpl mouseHandler=null; + InputManager inputMgr; + // Enable the mouse inspect adapter + switch(i){ + case NsharpConstants.DISPLAY_SKEWT: + default: + skewtPaneMouseHandler = new NsharpSkewTPaneMouseHandler(this, pane); + mouseHandler = skewtPaneMouseHandler; + inputMgr = skewtInputManager; + break; + case NsharpConstants.DISPLAY_WITO: + /*witoPaneMouseHandler = new NsharpAbstractMouseHandler(this,pane); + mouseHandler =witoPaneMouseHandler; + inputMgr =witoInputManager;*/ + continue; + case NsharpConstants.DISPLAY_HODO: + hodoPaneMouseHandler = new NsharpHodoPaneMouseHandler(this,pane); + mouseHandler =hodoPaneMouseHandler; + inputMgr =hodoInputManager; + break; + case NsharpConstants.DISPLAY_TIMESTN: + timeStnPaneMouseHandler = new NsharpTimeStnPaneMouseHandler(this,pane); + mouseHandler =timeStnPaneMouseHandler; + inputMgr =timeStnInputManager; + break; + case NsharpConstants.DISPLAY_INSET: + insetPaneMouseHandler = new NsharpAbstractMouseHandler(this,pane); + mouseHandler =insetPaneMouseHandler; + inputMgr =insetInputManager; + break; + case NsharpConstants.DISPLAY_DATA: + dataPaneMouseHandler = new NsharpDataPaneMouseHandler(this,pane); + mouseHandler =dataPaneMouseHandler; + inputMgr =dataInputManager; + break; + + } + + inputMgr.registerMouseHandler(mouseHandler); + + pane.addListener(SWT.MouseUp, inputMgr); + pane.addListener(SWT.MouseDown, inputMgr); + pane.addListener(SWT.MouseMove, inputMgr); + pane.addListener(SWT.MouseWheel, inputMgr); + pane.addListener(SWT.MouseHover, inputMgr); + pane.addListener(SWT.MouseEnter, inputMgr); + pane.addListener(SWT.MouseExit, inputMgr); + pane.addListener(SWT.MenuDetect, inputMgr); + pane.addListener(SWT.KeyUp, inputMgr); + pane.addListener(SWT.KeyDown, inputMgr); + } + } + + + @Override + public void init(IEditorSite site, IEditorInput input) + throws PartInitException { + super.init(site, input); + EditorInput editorInput = (EditorInput) input; + if (input instanceof EditorInput) { + displaysToLoad = editorInput.getRenderableDisplays(); + } + //System.out.println("SkewtEditor title " + this.getTitle() ); + if (editorNum == 0 ){ + editorNum = EditorManager.getEditorNumber(); + + } + // a new instance, do the registration + EditorManager.registerEditorNumber(editorNum); + this.setTabTitle(editorNum+"-NsharpEditor"); + } + + + /* + * (non-Javadoc) + * + * @see org.eclipse.ui.part.WorkbenchPart#setFocus() + */ + @Override + public void setFocus() { + if(selectedPane!= null) + selectedPane.setFocus(); + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ui.part.WorkbenchPart#dispose() + */ + @Override + public void dispose() { + //System.out.println("NsharpEditor disposed!! " ); + if (EditorManager.unregisterEditorNumber(editorNum) ==0 ){ + super.dispose(); + synchronized (this) { + if (skewtPaneMouseHandler != null && skewtInputManager != null) { + skewtPaneMouseHandler.setEditor(null); + skewtInputManager.unregisterMouseHandler(skewtPaneMouseHandler); + skewtPaneMouseHandler = null; + skewtInputManager = null; + } + if (hodoPaneMouseHandler != null && hodoInputManager != null) { + hodoPaneMouseHandler.setEditor(null); + hodoInputManager.unregisterMouseHandler(hodoPaneMouseHandler); + hodoPaneMouseHandler = null; + hodoInputManager = null; + } + if (dataPaneMouseHandler != null && dataInputManager != null) { + dataPaneMouseHandler.setEditor(null); + dataInputManager.unregisterMouseHandler(dataPaneMouseHandler); + dataPaneMouseHandler = null; + dataInputManager = null; + } + if (insetPaneMouseHandler != null && insetInputManager != null) { + insetPaneMouseHandler.setEditor(null); + insetInputManager.unregisterMouseHandler(insetPaneMouseHandler); + insetPaneMouseHandler = null; + insetInputManager = null; + } + /*if (witoPaneMouseHandler != null && witoInputManager != null) { + witoPaneMouseHandler.setEditor(null); + witoInputManager.unregisterMouseHandler(witoPaneMouseHandler); + witoPaneMouseHandler = null; + witoInputManager = null; + }*/ + if (timeStnPaneMouseHandler != null && timeStnInputManager != null) { + timeStnPaneMouseHandler.setEditor(null); + timeStnInputManager.unregisterMouseHandler(timeStnPaneMouseHandler); + timeStnPaneMouseHandler = null; + timeStnInputManager = null; + } + + editorNum=0; + if(rscHandler!=null) + rscHandler.disposeInternal(); + } + } + try{ + IWorkbenchPage wpage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); + IViewPart vpart = wpage.findView( "gov.noaa.nws.ncep.ui.nsharp" ); + wpage.hideView(vpart); + } + catch(Exception e){ + + } + + + } + + /** + * Perform a refresh asynchronously + * + */ + @Override + public void refresh() { + for (IDisplayPane pane : displayPane) { + pane.refresh(); + } + //System.out.println("NsharpEditor refresh called"); + } + @Override + public Coordinate translateClick(double x, double y) { + double[] grid = getActiveDisplayPane().screenToGrid(x, y, 0); + + return new Coordinate(grid[0], grid[1], grid[2]); + } + + @Override + public double[] translateInverseClick(Coordinate c) { + + if (Double.isNaN(c.z)) { + c.z = 0.0; + } + return getActiveDisplayPane().gridToScreen( + new double[] { c.x, c.y, c.z }); + } + + public void resetGraph(){ + for(int i=0; i < NsharpConstants.DISPLAY_TOTAL; i++){ + displayPane[i].getRenderableDisplay().getExtent().reset(); + displayPane[i].getRenderableDisplay().zoom(1); + displayPane[i].getRenderableDisplay().refresh(); + } + if(rscHandler!=null && rscHandler.getWitoPaneRsc()!=null) + rscHandler.getWitoPaneRsc().createAllWireFrameShapes(); + } + public void registerMouseHandler(IInputHandler handler, IInputHandler.InputPriority priority) { + skewtInputManager.registerMouseHandler(handler, priority); + } + + /** + * Register a mouse handler to a map + * + * @param handler + * the handler to register + */ + @Override + public void registerMouseHandler(IInputHandler handler) { + skewtInputManager.registerMouseHandler(handler); + } + + /** + * Unregister a mouse handler to a map + * + * @param handler + * the handler to unregister + */ + @Override + public void unregisterMouseHandler(IInputHandler handler) { + // already unregistered + if (skewtInputManager != null) { + skewtInputManager.unregisterMouseHandler(handler); + } + } + @Override + public IDisplayPane[] getDisplayPanes() { + //System.out.println("SkewtEditor getDisplayPanes called"); + return this.displayPane; + } + + + + /** + * Returns the mouse manager + * + * @return + */ + public InputManager getMouseManager() { + return skewtInputManager; + } + + /* + * (non-Javadoc) + * + * @see com.raytheon.viz.ui.editor.AbstractEditor#getActiveDisplayPane() + */ + @Override + public IDisplayPane getActiveDisplayPane() { + return selectedPane; + //return this.displayPane[0]; + } + + /** + * Add the listenerList + * + * @param main + */ + private void registerListener(VizDisplayPane pane) { + synchronized (this) { + if (pane != null) { + try { + // add the Editor as a resource listener + pane.getRenderableDisplay().getDescriptor() + .getResourceList().addPostAddListener(this); + pane.getRenderableDisplay().getDescriptor() + .getResourceList().addPostRemoveListener(this); + } catch (Exception e) { + UFStatus.getHandler() + .handle( + Priority.PROBLEM, + "Error recovering Resource, Can't add listenerList", + e); + } + } + } + } + + @Override + public void notifyAdd(ResourcePair rp) throws VizException { + } + + @Override + public void notifyRemove(ResourcePair rp) throws VizException { + // + } + + + + @Override + public NCLoopProperties getLoopProperties(){ + // bsteffen added check for type and force it to NCLoopProperties + LoopProperties loopProperties = this.editorInput.getLoopProperties(); + if(!(loopProperties instanceof NCLoopProperties)) { + this.editorInput.setLoopProperties(new NCLoopProperties()); + } + return (NCLoopProperties)this.editorInput.getLoopProperties(); + } + + @Override + protected PaneManager getNewPaneManager() { + + return null; + } + + + public static NsharpEditor createOrOpenEditor( ) { + NsharpEditor editor = getActiveNsharpEditor(); + if (editor != null) { + //System.out.println("createOrOpenSkewTEditor return editor from getActiveNsharpEditor"); + //PlatformUI.getWorkbench().getActiveWorkbenchWindow() + // .getActivePage().bringToTop(editor); + return editor; + } else { + //System.out.println("createOrOpenSkewTEditor....... "); + try { + displayArray = new IRenderableDisplay[NsharpConstants.DISPLAY_TOTAL]; + displayArray[NsharpConstants.DISPLAY_SKEWT]= new NsharpSkewTPaneDisplay(new PixelExtent(NsharpConstants.SKEWT_DISPLAY_REC),NsharpConstants.DISPLAY_SKEWT); + displayArray[NsharpConstants.DISPLAY_WITO]= new NsharpWitoPaneDisplay(new PixelExtent(NsharpConstants.WITO_DISPLAY_REC),NsharpConstants.DISPLAY_WITO); + displayArray[NsharpConstants.DISPLAY_HODO]= new NsharpHodoPaneDisplay(new PixelExtent(NsharpConstants.HODO_DISPLAY_REC),NsharpConstants.DISPLAY_HODO); + displayArray[NsharpConstants.DISPLAY_TIMESTN]= new NsharpTimeStnPaneDisplay(new PixelExtent(NsharpConstants.TIMESTN_DISPLAY_REC),NsharpConstants.DISPLAY_TIMESTN); + displayArray[NsharpConstants.DISPLAY_DATA]= new NsharpDataPaneDisplay(new PixelExtent(NsharpConstants.DATA_DISPLAY_REC),NsharpConstants.DISPLAY_DATA); + displayArray[NsharpConstants.DISPLAY_INSET]= new NsharpInsetPaneDisplay(new PixelExtent(NsharpConstants.INSET_DISPLAY_REC),NsharpConstants.DISPLAY_INSET); + + EditorInput edInput = new EditorInput(new NCLoopProperties(), + displayArray); + + //System.out.println("createOrOpenEditor creating new one"); + editor = (NsharpEditor) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage() + .openEditor(edInput, EDITOR_ID); + //Note: NsharpResourceHandler should be created after editor is created, so all display pane properties and + // pane resource are also constructed + rscHandler = new NsharpResourceHandler(displayArray); + ResourcePair skewtRscPair = displayArray[NsharpConstants.DISPLAY_SKEWT].getDescriptor().getResourceList().get(0); + if (skewtRscPair.getResource() instanceof NsharpSkewTPaneResource){ + NsharpSkewTPaneResource skewtPaneRsc = (NsharpSkewTPaneResource)skewtRscPair.getResource() ; + skewtPaneRsc.setRscHandler(rscHandler); + } + ResourcePair witoRscPair = displayArray[NsharpConstants.DISPLAY_WITO].getDescriptor().getResourceList().get(0); + if (witoRscPair.getResource() instanceof NsharpWitoPaneResource){ + NsharpWitoPaneResource witoPaneRsc = (NsharpWitoPaneResource)witoRscPair.getResource() ; + witoPaneRsc.setRscHandler(rscHandler); + } + ResourcePair hodoRscPair = displayArray[NsharpConstants.DISPLAY_HODO].getDescriptor().getResourceList().get(0); + if (hodoRscPair.getResource() instanceof NsharpHodoPaneResource){ + NsharpHodoPaneResource hodoPaneRsc = (NsharpHodoPaneResource)hodoRscPair.getResource() ; + hodoPaneRsc.setRscHandler(rscHandler); + } + ResourcePair timeStnRscPair = displayArray[NsharpConstants.DISPLAY_TIMESTN].getDescriptor().getResourceList().get(0); + if (timeStnRscPair.getResource() instanceof NsharpTimeStnPaneResource){ + NsharpTimeStnPaneResource timeStnPaneRsc = (NsharpTimeStnPaneResource)timeStnRscPair.getResource() ; + timeStnPaneRsc.setRscHandler(rscHandler); + } + ResourcePair dataRscPair = displayArray[NsharpConstants.DISPLAY_DATA].getDescriptor().getResourceList().get(0); + if (dataRscPair.getResource() instanceof NsharpDataPaneResource){ + NsharpDataPaneResource dataPaneRsc = (NsharpDataPaneResource)dataRscPair.getResource() ; + dataPaneRsc.setRscHandler(rscHandler); + } + ResourcePair insetRscPair = displayArray[NsharpConstants.DISPLAY_INSET].getDescriptor().getResourceList().get(0); + if (insetRscPair.getResource() instanceof NsharpInsetPaneResource){ + NsharpInsetPaneResource insetPaneRsc = (NsharpInsetPaneResource)insetRscPair.getResource() ; + insetPaneRsc.setRscHandler(rscHandler); + } + return editor; + } catch (PartInitException e) { + UiPlugin.getDefault() + .getLog() + .log(new Status(Status.ERROR, UiPlugin.PLUGIN_ID, + "Error constituting NsharpEditor", e)); + } + } + return null; + } + public static void bringEditorToTop( ) { + NsharpEditor editor = getActiveNsharpEditor(); + if (editor != null) { + PlatformUI.getWorkbench().getActiveWorkbenchWindow() + .getActivePage().bringToTop(editor); + + } + } + public void refreshGUIElements() { + ICommandService service = (ICommandService) getSite().getService( + ICommandService.class); + String[] guiUpdateElementCommands = { + // "gov.noaa.nws.ncep.viz.tools.pan", + "gov.noaa.nws.ncep.viz.ui.options.SyncPanes", + "gov.noaa.nws.ncep.viz.ui.actions.loopBackward", + "gov.noaa.nws.ncep.viz.ui.actions.loopForward", + "gov.noaa.nws.ncep.viz.ui.actions.rock", + "gov.noaa.nws.ncep.viz.ui.actions.frameTool", + "gov.noaa.nws.ncep.viz.ui.autoUpdate", + "gov.noaa.nws.ncep.viz.ui.actions.hideFrames" }; + + // Update the GUI elements on the menus and toolbars + for (String toolbarID : guiUpdateElementCommands) { + service.refreshElements(toolbarID, null); + } + + } + + public VizDisplayPane getSelectedPane() { + return selectedPane; + } + public void setSelectedPane(VizDisplayPane selectedPane) { + this.selectedPane = selectedPane; + } + + public int getBaseWidth() { + return baseWidth; + } + public int getBaseHeight() { + return baseHeight; + } + +} \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpHodoPaneDescriptor.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpHodoPaneDescriptor.java new file mode 100644 index 0000000000..6b96e9d569 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpHodoPaneDescriptor.java @@ -0,0 +1,46 @@ +/** + * + * ggov.noaa.nws.ncep.ui.nsharp.display.NsharpHodoPaneDescriptor + * + * This java class performs the NSHARP NsharpHodoPaneDescriptor functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 05/02/2012	229			Chin Chen	Initial coding for multiple display panes implementation
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.display; + +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpHodoPaneResource; + +import java.util.List; + +import com.raytheon.uf.viz.core.PixelExtent; + +public class NsharpHodoPaneDescriptor extends NsharpAbstractPaneDescriptor { + + public NsharpHodoPaneDescriptor(PixelExtent pe) { + super(pe); + //System.out.println("NsharpHodoPaneDescriptor created " + this.toString()); + } + public NsharpHodoPaneDescriptor(PixelExtent pe, int paneNumber) { + super(pe, paneNumber); + } + public NsharpHodoPaneResource getHodoResource() { + List list = resourceList + .getResourcesByTypeAsType(NsharpHodoPaneResource.class); + if (list != null && !list.isEmpty()) { + return list.get(0); + } + return null; + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpHodoPaneDisplay.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpHodoPaneDisplay.java new file mode 100644 index 0000000000..288a2d7229 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpHodoPaneDisplay.java @@ -0,0 +1,72 @@ +/** + * + * gov.noaa.nws.ncep.ui.nsharp.display.NsharpHodoPaneDisplay + * + * This java class performs the NSHARP NsharpHodoPaneDisplay functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/30/2012	229			Chin Chen	Initial coding for multiple display panes implementation
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.display; + +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpHodoPaneResourceData; + +import com.raytheon.uf.viz.core.IGraphicsTarget; +import com.raytheon.uf.viz.core.PixelExtent; +import com.raytheon.uf.viz.core.drawables.PaintProperties; +import com.raytheon.uf.viz.core.drawables.ResourcePair; +import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.uf.viz.core.rsc.AbstractResourceData; +import com.raytheon.uf.viz.core.rsc.LoadProperties; +import com.raytheon.uf.viz.core.rsc.ResourceList; +import com.raytheon.uf.viz.core.rsc.ResourceProperties; +import com.raytheon.uf.viz.core.rsc.capabilities.ColorableCapability; + +public class NsharpHodoPaneDisplay extends NsharpAbstractPaneDisplay { + public NsharpHodoPaneDisplay(PixelExtent pixelExtent,int paneNumber) { + super(pixelExtent,paneNumber, "HodoPane",(NsharpAbstractPaneDescriptor)( new NsharpHodoPaneDescriptor(pixelExtent, paneNumber))); + } + @Override + public NsharpHodoPaneDescriptor getDescriptor() { + return (NsharpHodoPaneDescriptor) super.getDescriptor(); + } + @Override + public void paint(IGraphicsTarget target, PaintProperties paintProps) + throws VizException { + super.paint(target, paintProps); + } + + @Override + protected void customizeResourceList(ResourceList resourceList) { + AbstractResourceData resourceData = new NsharpHodoPaneResourceData(); + // get a load properties + LoadProperties loadProperties = new LoadProperties(); + ColorableCapability colorableCapability = new ColorableCapability(); + colorableCapability.setColor(NsharpConstants.backgroundColor); + loadProperties.getCapabilities().addCapability(colorableCapability); + // get some resource properties + ResourceProperties resourceProperties = new ResourceProperties(); + resourceProperties.setVisible(true); + resourceProperties.setMapLayer(true); + resourceProperties.setSystemResource(true); + // Make a resource pair + ResourcePair resourcePair = new ResourcePair(); + resourcePair.setResourceData(resourceData); + resourcePair.setLoadProperties(loadProperties); + resourcePair.setProperties(resourceProperties); + // add it to the resource list. + resourceList.add(resourcePair); + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpHodoPaneMouseHandler.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpHodoPaneMouseHandler.java new file mode 100644 index 0000000000..0e43cdf12b --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpHodoPaneMouseHandler.java @@ -0,0 +1,245 @@ +package gov.noaa.nws.ncep.ui.nsharp.display; +/** + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/23/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + +import gov.noaa.nws.ncep.ui.nsharp.display.map.NsharpMapResource; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpHodoPaneResource; +import gov.noaa.nws.ncep.ui.nsharp.palette.NsharpShowTextDialog; + +import org.eclipse.swt.graphics.Point; + +import com.raytheon.uf.viz.core.IDisplayPane; +import com.raytheon.uf.viz.core.IExtent; +import com.raytheon.uf.viz.core.IView; +import com.raytheon.uf.viz.core.exception.VizException; +import com.vividsolutions.jts.geom.Coordinate; + +public class NsharpHodoPaneMouseHandler extends NsharpAbstractMouseHandler{ + private boolean cursorInHodo = false; + + public NsharpHodoPaneMouseHandler(NsharpEditor editor, IDisplayPane pane) { + super(editor,pane); + } + + @Override + public boolean handleMouseDown(int x, int y, int mouseButton) { + theLastMouseX = x; + theLastMouseY = y; + if (getPaneDisplay() == null) { + return false; + } + else if (mouseButton == 1) { + //System.out.println("handleMouseDown"); + this.mode = Mode.CREATE; + // changeMouse(this.mode); + //System.out.println("current cursor x " + display.getCursorLocation().x + " y "+ display.getCursorLocation().y); + //System.out.println("picked pt before translate x " + x + " y "+ y); + Coordinate c = editor.translateClick(x, y); + NsharpHodoPaneResource hodoRsc = (NsharpHodoPaneResource)getDescriptor().getPaneResource(); + boolean graphEditOn = hodoRsc.getRscHandler().isEditGraphOn(); + if(hodoRsc.getHodoBackground().contains(c) == true) { + + if(graphEditOn){ + Point curPoint = display.getCursorLocation(); + int xdiff = x- curPoint.x; + int ydiff = y- curPoint.y; + Coordinate anchoredPtC = hodoRsc.getRscHandler().getClosestHodoPoint(c); + if(anchoredPtC.x != 0 && anchoredPtC.y !=0){ + anchorPointxy = editor.translateInverseClick(anchoredPtC); + display.setCursorLocation((int)anchorPointxy[0]-xdiff,(int)anchorPointxy[1]-ydiff); + this.mode = Mode.HODO_DOWN_MOVE; + } + } + else{ + this.mode = Mode.HODO_DOWN; + } + //changeMouse(this.mode); + } + + /* else if(hodoRsc.getTimeLineRectangle().contains((int) c.x, (int) c.y)== true) { + this.mode = Mode.TIMELINE_DOWN; + //changeMouse(this.mode); + } + else if(hodoRsc.getStnIdRectangle().contains((int) c.x, (int) c.y) == true) { + this.mode = Mode.STATIONID_DOWN; + //changeMouse(this.mode); + }*/ + editor.refresh(); + } + + return false; + } + @Override + public boolean handleMouseDownMove(int aX, int aY, int button) { + + if (getPaneDisplay() == null) { + return false; + } + else if (button == 1) { + + Coordinate c = editor.translateClick(aX, aY); + //make sure it is clicked within skewt area + NsharpHodoPaneResource hodoRsc = (NsharpHodoPaneResource)getDescriptor().getPaneResource(); + boolean graphEditOn = hodoRsc.getRscHandler().isEditGraphOn(); + if(this.mode == Mode.HODO_DOWN_MOVE && graphEditOn){ + if(hodoRsc.getHodoBackground().contains(c) == true ) { + c = editor.translateClick(aX, aY); + hodoRsc.getRscHandler().setInteractiveHodoPointCoordinate(c); + editor.refresh(); + + } + return false; + } + if (prefManager.handleLongClick(ZOOMIN_PREF, button) + || prefManager.handleLongClick(ZOOMOUT_PREF, button)) { + theLastMouseX = aX; + theLastMouseY = aY; + } + if ((!prefManager.handleDrag(PAN_PREF, button)) || currentPane == null) + return false; + IView tmpView = (IView)currentPane.getRenderableDisplay().getView().clone(); + tmpView.shiftExtent(new double[] { aX, aY }, new double[] { + theLastMouseX, theLastMouseY },currentPane.getTarget()); + IExtent tmpExtent = tmpView.getExtent(); + double percentage = getPanningPercentage(); + double xMinThreshold = tmpExtent.getMinX() + + (tmpExtent.getMaxX() - tmpExtent.getMinX()) * percentage; + double xMaxThreshold = tmpExtent.getMinX() + + (tmpExtent.getMaxX() - tmpExtent.getMinX()) + * (1.0 - percentage); + double yMinThreshold = tmpExtent.getMinY() + + (tmpExtent.getMaxY() - tmpExtent.getMinY()) * percentage; + double yMaxThreshold = tmpExtent.getMinY() + + (tmpExtent.getMaxY() - tmpExtent.getMinY()) + * (1.0 - percentage); + + double height = currentPane.getRenderableDisplay().getWorldHeight(); + double width = currentPane.getRenderableDisplay().getWorldWidth(); + + int aX2 = aX, aY2 = aY; + + if ((0 <= xMinThreshold && width >= xMaxThreshold) == false) { + if (((width < xMaxThreshold && theLastMouseX < aX) || (0 > xMinThreshold && theLastMouseX > aX)) == false) { + aX2 = (int) theLastMouseX; + } + } + + if ((0 <= yMinThreshold && height >= yMaxThreshold) == false) { + if (((height < yMaxThreshold && theLastMouseY < aY) || (0 > yMinThreshold && theLastMouseY > aY)) == false) { + aY2 = (int) theLastMouseY; + } + } + + if (aX2 != theLastMouseX || aY2 != theLastMouseY) { + currentPane.shiftExtent(new double[] { aX2, aY2 }, new double[] { + theLastMouseX, theLastMouseY }); + } + theLastMouseX = aX; + theLastMouseY = aY; + return true; + } + return false; + } + + @Override + public boolean handleMouseMove(int x, int y) { + //System.out.println("hodoPanemouseHandler " + this+" handleMouseMove with editor"+editor); + if(editor != null) { + editor.setFocus(); + } + if (getPaneDisplay() == null) { + return false; + } + //System.out.println("mouseHandler " + this+" handleMouseMove with editor"+editor); + this.mode = Mode.CREATE; + //changeMouse(); + if(editor != null) { + Coordinate c = editor.translateClick(x, y); + //System.out.println(" Hodo-handleMouseMove! x="+x+" y="+y+" C.x="+c.x + " c.y="+c.y); + NsharpHodoPaneResource hodoRsc = (NsharpHodoPaneResource)getDescriptor().getPaneResource(); + if (hodoRsc.getHodoBackground().contains(c)){ + cursorInHodo=true; + hodoRsc.setCursorInHodo(true); + try { + hodoRsc.updateDynamicData(c); + editor.refresh(); + } catch (VizException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + else { + if(cursorInHodo== true){ + cursorInHodo=false; + hodoRsc.setCursorInHodo(false); + } + } + } + return false; + } + + @Override + public boolean handleMouseUp(int x, int y, int mouseButton) { + //System.out.println("hodo handleMouseUp"); + if (getPaneDisplay() == null) { + return false; + } + if(editor!=null){ + // button 1 is left mouse button + if (mouseButton == 1 ){ + NsharpHodoPaneResource hodoRsc = (NsharpHodoPaneResource)getDescriptor().getPaneResource(); + Coordinate c = editor.translateClick(x, y); + if(hodoRsc.getHodoBackground().contains(c) == true ) { + //make sure it is clicked within hodo area + boolean graphEditOn = hodoRsc.getRscHandler().isEditGraphOn(); + if(graphEditOn && this.mode == Mode.HODO_DOWN_MOVE){ + NsharpShowTextDialog osDia = NsharpShowTextDialog.getAccess( ); + if(osDia != null) + osDia.refreshTextData(); + }else if (this.mode == Mode.HODO_DOWN){ + hodoRsc.getRscHandler().setHodoHouseC(c); + } + } + /*else if(hodoRsc.getTimeLineRectangle().contains((int) c.x, (int) c.y) == true && this.mode == Mode.TIMELINE_DOWN) { + //data time line has been touched, and may be changed + hodoRsc.getRscHandler().handleUserClickOnTimeLine(c); + handleMouseMove(x,y); + + NsharpShowTextDialog textarea = NsharpShowTextDialog.getAccess(); + if(textarea != null){ + textarea.refreshTextData(); + } + + } + else if(hodoRsc.getStnIdRectangle().contains((int) c.x, (int) c.y) == true && this.mode == Mode.STATIONID_DOWN) { + //stn id line has been touched, and may be changed + hodoRsc.getRscHandler().handleUserClickOnStationId(c); + handleMouseMove(x,y); + }*/ + + this.mode = Mode.CREATE; + } else if(mouseButton == 3){ + //right mouse button + System.out.println("hodo handleMouseUp right button"); + NsharpMapResource.bringMapEditorToTop(); + } + editor.refresh(); + } + return false; + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpInsetPaneDisplay.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpInsetPaneDisplay.java new file mode 100644 index 0000000000..c9f0043fc4 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpInsetPaneDisplay.java @@ -0,0 +1,65 @@ +/** + * + * gov.noaa.nws.ncep.ui.nsharp.display.NsharpInsetPaneDisplay + * + * This java class performs the NSHARP NsharpInsetPaneDisplay functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/30/2012	229			Chin Chen	Initial coding for multiple display panes implementation
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.display; + +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpInsetPaneResourceData; + +import com.raytheon.uf.viz.core.PixelExtent; +import com.raytheon.uf.viz.core.drawables.ResourcePair; +import com.raytheon.uf.viz.core.rsc.AbstractResourceData; +import com.raytheon.uf.viz.core.rsc.LoadProperties; +import com.raytheon.uf.viz.core.rsc.ResourceList; +import com.raytheon.uf.viz.core.rsc.ResourceProperties; +import com.raytheon.uf.viz.core.rsc.capabilities.ColorableCapability; + +public class NsharpInsetPaneDisplay extends NsharpAbstractPaneDisplay { + public NsharpInsetPaneDisplay(PixelExtent pixelExtent,int paneNumber) { + super(pixelExtent,paneNumber, "InsetPane", new NsharpAbstractPaneDescriptor(pixelExtent, paneNumber)); + } + @Override + public NsharpAbstractPaneDescriptor getDescriptor() { + return (NsharpAbstractPaneDescriptor) super.getDescriptor(); + } + + + @Override + protected void customizeResourceList(ResourceList resourceList) { + AbstractResourceData resourceData = new NsharpInsetPaneResourceData(); + // get a load properties + LoadProperties loadProperties = new LoadProperties(); + ColorableCapability colorableCapability = new ColorableCapability(); + colorableCapability.setColor(NsharpConstants.backgroundColor); + loadProperties.getCapabilities().addCapability(colorableCapability); + // get some resource properties + ResourceProperties resourceProperties = new ResourceProperties(); + resourceProperties.setVisible(true); + resourceProperties.setMapLayer(true); + resourceProperties.setSystemResource(true); + // Make a resource pair + ResourcePair resourcePair = new ResourcePair(); + resourcePair.setResourceData(resourceData); + resourcePair.setLoadProperties(loadProperties); + resourcePair.setProperties(resourceProperties); + // add it to the resource list. + resourceList.add(resourcePair); + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpSkewTPaneDescriptor.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpSkewTPaneDescriptor.java new file mode 100644 index 0000000000..37ba9b271e --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpSkewTPaneDescriptor.java @@ -0,0 +1,70 @@ +/** + * + * ggov.noaa.nws.ncep.ui.nsharp.display.NsharpSkewTPaneDescriptor + * + * This java class performs the NSHARP NsharpSkewTPaneDescriptor functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 05/02/2012	229			Chin Chen	Initial coding for multiple display panes implementation
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.display; + +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpSkewTPaneResource; + +import java.util.List; + +import com.raytheon.uf.viz.core.PixelExtent; + +public class NsharpSkewTPaneDescriptor extends NsharpAbstractPaneDescriptor { + public NsharpSkewTPaneDescriptor(PixelExtent pe) { + super(pe); + //System.out.println("NsharpSkewTPaneDescriptor created " + this.toString()); + } + public NsharpSkewTPaneDescriptor(PixelExtent pe, int paneNumber) { + super(pe, paneNumber); + } + + public NsharpSkewTPaneResource getSkewtResource() { + List list = resourceList + .getResourcesByTypeAsType(NsharpSkewTPaneResource.class); + if (list != null && !list.isEmpty()) { + return list.get(0); + } + return null; + } + @Override + public void changeFrame(FrameChangeOperation operation, FrameChangeMode mode) { + synchronized (this) { + //Chin Note: there are multiple (4) panes. + //However, we only need to step once. Therefore, only handle stepping by skewt pane. + //From stepping commands + //System.out.println("NsharpAbstractPaneDescriptor changeFrame called pane= "+paneNumber); + /*if( VizPerspectiveListener.getCurrentPerspectiveManager()!= null){ + System.out.println("changeFrame: current perspective ="+VizPerspectiveListener.getCurrentPerspectiveManager().getPerspectiveId()); + if(!VizPerspectiveListener.getCurrentPerspectiveManager().getPerspectiveId().equals(NmapCommon.NatlCntrsPerspectiveID)){ + if(mode != FrameChangeMode.TIME_AND_SPACE) + //Chin NOTE: for D2D perspective, it will call this function with mode of TIME_ONLY or SPACE_ONLY when Arrow Keys (up/down/left/right) + //hit by users. Since Nsharp implementation uses Arrow Keys for time line and station box operations, + //We have to disable this function when in D2D for Arrow keys. Otherwise, the following setSteppingTimeLine() function will + // be called 2 times when Arrow Keys hit in D2D. + //Therefore, only when TIME_AND_SPACE mode is allowed when in D2D. + return; + } + }*/ + NsharpEditor editor = NsharpEditor.getActiveNsharpEditor() ; + if(editor!= null && editor.getRscHandler()!=null){ + editor.getRscHandler().setSteppingTimeLine(operation, mode); + } + } + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpSkewTPaneDisplay.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpSkewTPaneDisplay.java new file mode 100644 index 0000000000..917db1cecd --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpSkewTPaneDisplay.java @@ -0,0 +1,65 @@ +/** + * + * gov.noaa.nws.ncep.ui.nsharp.display.NsharpSkewTPaneDisplay + * + * This java class performs the NSHARP NsharpSkewTPaneDisplay functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/30/2012	229			Chin Chen	Initial coding for multiple display panes implementation
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.display; + +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpSkewTPaneResourceData; + +import com.raytheon.uf.viz.core.PixelExtent; +import com.raytheon.uf.viz.core.drawables.ResourcePair; +import com.raytheon.uf.viz.core.rsc.AbstractResourceData; +import com.raytheon.uf.viz.core.rsc.LoadProperties; +import com.raytheon.uf.viz.core.rsc.ResourceList; +import com.raytheon.uf.viz.core.rsc.ResourceProperties; +import com.raytheon.uf.viz.core.rsc.capabilities.ColorableCapability; + +public class NsharpSkewTPaneDisplay extends NsharpAbstractPaneDisplay { + public NsharpSkewTPaneDisplay(PixelExtent pixelExtent,int paneNumber) { + super(pixelExtent,paneNumber, "SkewTPane",(NsharpAbstractPaneDescriptor)( new NsharpSkewTPaneDescriptor(pixelExtent, paneNumber))); + } + @Override + public NsharpSkewTPaneDescriptor getDescriptor() { + return (NsharpSkewTPaneDescriptor) super.getDescriptor(); + } + + + @Override + protected void customizeResourceList(ResourceList resourceList) { + AbstractResourceData resourceData = new NsharpSkewTPaneResourceData(); + // get a load properties + LoadProperties loadProperties = new LoadProperties(); + ColorableCapability colorableCapability = new ColorableCapability(); + colorableCapability.setColor(NsharpConstants.backgroundColor); + loadProperties.getCapabilities().addCapability(colorableCapability); + // get some resource properties + ResourceProperties resourceProperties = new ResourceProperties(); + resourceProperties.setVisible(true); + resourceProperties.setMapLayer(true); + resourceProperties.setSystemResource(true); + // Make a resource pair + ResourcePair resourcePair = new ResourcePair(); + resourcePair.setResourceData(resourceData); + resourcePair.setLoadProperties(loadProperties); + resourcePair.setProperties(resourceProperties); + // add it to the resource list. + resourceList.add(resourcePair); + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpSkewTPaneMouseHandler.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpSkewTPaneMouseHandler.java new file mode 100644 index 0000000000..c6060820f8 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpSkewTPaneMouseHandler.java @@ -0,0 +1,285 @@ +package gov.noaa.nws.ncep.ui.nsharp.display; +/** + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/23/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + +import gov.noaa.nws.ncep.ui.nsharp.display.map.NsharpMapResource; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpSkewTPaneResource; +import gov.noaa.nws.ncep.ui.nsharp.view.NsharpShowTextDialog; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.widgets.Event; + +import com.raytheon.uf.viz.core.IDisplayPane; +import com.raytheon.uf.viz.core.IExtent; +import com.raytheon.uf.viz.core.IView; +import com.raytheon.uf.viz.core.drawables.IDescriptor.FrameChangeMode; +import com.raytheon.uf.viz.core.drawables.IDescriptor.FrameChangeOperation; +import com.raytheon.uf.viz.core.exception.VizException; +import com.vividsolutions.jts.geom.Coordinate; + +public class NsharpSkewTPaneMouseHandler extends NsharpAbstractMouseHandler{ + private boolean cursorInSkewT = false; + public NsharpSkewTPaneMouseHandler(NsharpEditor editor, IDisplayPane pane) { + super(editor,pane); + } + @Override + public boolean handleKeyDown(int keyCode) { + //System.out.println("key down="+(char)keyCode+ " code ="+keyCode); + if ((keyCode & SWT.SHIFT) != 0) { + shiftDown = true; + //System.out.println("shift pressed"); + return true; + } else if (shiftDown && keyCode == KEY_Z ) { + zDownWhileShiftDown=true; + return true; + } + return false; + } + + @Override + public boolean handleKeyUp(int keyCode) { + //String s = "key up="+(char)keyCode; + //System.out.println(s+ " code ="+keyCode); + if (getPaneDisplay() == null) { + return false; + } + NsharpSkewTPaneResource skewRsc = (NsharpSkewTPaneResource)getDescriptor().getPaneResource(); + if (keyCode == SWT.ARROW_DOWN) { + skewRsc.getRscHandler().setSteppingStnIdList(FrameChangeOperation.NEXT) ; + return true; + }else if (keyCode == SWT.ARROW_UP) { + //System.out.println("Arrow up"); + skewRsc.getRscHandler().setSteppingStnIdList(FrameChangeOperation.PREVIOUS) ; + return true; + }else if (keyCode == SWT.ARROW_LEFT) { + //System.out.println("Arrow left"); + skewRsc.getRscHandler().setSteppingTimeLine(FrameChangeOperation.PREVIOUS, FrameChangeMode.TIME_ONLY) ; + return true; + }else if (keyCode == SWT.ARROW_RIGHT) { + //System.out.println("Arrow right"); + skewRsc.getRscHandler().setSteppingTimeLine(FrameChangeOperation.NEXT, FrameChangeMode.TIME_ONLY) ; + return true; + } else if (keyCode == SWT.SHIFT) { + shiftDown = false; + return true; + }else if (zDownWhileShiftDown && keyCode == KEY_Z ) { + //System.out.println("Shift+Z is entered"); + zDownWhileShiftDown = false; + skewRsc.toggleCurseDisplay(); + return true; + } + return false; + } + + @Override + public boolean handleMouseDown(int x, int y, int mouseButton) { + theLastMouseX = x; + theLastMouseY = y; + if (getPaneDisplay() == null) { + return false; + } + else if (editor != null && mouseButton == 1) { + //System.out.println("handleMouseDown"); + + this.mode = Mode.CREATE; + // changeMouse(this.mode); + //System.out.println("current cursor x " + display.getCursorLocation().x + " y "+ display.getCursorLocation().y); + //System.out.println("picked pt before translate x " + x + " y "+ y); + Coordinate c = editor.translateClick(x, y); + NsharpSkewTPaneResource skewRsc = (NsharpSkewTPaneResource)getDescriptor().getPaneResource(); + boolean graphEditOn = skewRsc.getRscHandler().isEditGraphOn(); + if(skewRsc.getSkewTBackground().contains(c) == true && graphEditOn) { + //make sure it is clicked within skewt area + //save current cursor coordinate difference between display and view point + Point curPoint = display.getCursorLocation(); + int xdiff = x- curPoint.x; + int ydiff = y- curPoint.y; + Coordinate anchoredPtC; + anchoredPtC= skewRsc.getPickedTempPoint(c); + skewRsc.getRscHandler().setInteractiveTempPointCoordinate(anchoredPtC); + //System.out.println("returned pt before reverse translate x " + anchoredPtC.x + " y "+ anchoredPtC.y); + + //Translate world screen coordinate to screen (x,y) coordinate + anchorPointxy = editor.translateInverseClick(anchoredPtC); + + //System.out.println("returned pt after reverse translate x " + (int)anchorPointxy[0] + " y "+ (int)anchorPointxy[1]); + + display.setCursorLocation((int)anchorPointxy[0]-xdiff,(int)anchorPointxy[1]-ydiff); + this.mode = Mode.SKEWT_DOWN; + //changeMouse(this.mode); + + //System.out.println("handleMouseDown x "+((int)pointxy[0]-xdiff)+ " y "+((int)pointxy[1]-ydiff)); + } + editor.refresh(); + } + + return false; + } + @Override + public boolean handleMouseDownMove(int aX, int aY, int button) { + + if (getPaneDisplay() == null || editor == null) { + return false; + } + else if (button == 1) { + + Coordinate c = editor.translateClick(aX, aY); + //make sure it is clicked within skewt area + NsharpSkewTPaneResource skewRsc = (NsharpSkewTPaneResource)getDescriptor().getPaneResource(); + if(skewRsc==null) + return false; + boolean graphEditOn =skewRsc.getRscHandler().isEditGraphOn(); + if(this.mode == Mode.SKEWT_DOWN && graphEditOn){ + if(skewRsc.getSkewTBackground().contains(c) == true) { + //NOTE::::keep y axis un-changed when moving mouse cursor + c = editor.translateClick(aX, anchorPointxy[1]); + skewRsc.getRscHandler().setInteractiveTempPointCoordinate(c); + editor.refresh(); + } + return false; + } + if (prefManager.handleLongClick(ZOOMIN_PREF, button) + || prefManager.handleLongClick(ZOOMOUT_PREF, button)) { + theLastMouseX = aX; + theLastMouseY = aY; + } + //VizDisplayPane currentPane=((NsharpEditor)editor).getSelectedPane(); + if ((!prefManager.handleDrag(PAN_PREF, button)) || currentPane == null) + return false; + IView tmpView = (IView)currentPane.getRenderableDisplay().getView().clone(); + tmpView.shiftExtent(new double[] { aX, aY }, new double[] { + theLastMouseX, theLastMouseY },currentPane.getTarget()); + IExtent tmpExtent = tmpView.getExtent(); + double percentage = getPanningPercentage(); + double xMinThreshold = tmpExtent.getMinX() + + (tmpExtent.getMaxX() - tmpExtent.getMinX()) * percentage; + double xMaxThreshold = tmpExtent.getMinX() + + (tmpExtent.getMaxX() - tmpExtent.getMinX()) + * (1.0 - percentage); + double yMinThreshold = tmpExtent.getMinY() + + (tmpExtent.getMaxY() - tmpExtent.getMinY()) * percentage; + double yMaxThreshold = tmpExtent.getMinY() + + (tmpExtent.getMaxY() - tmpExtent.getMinY()) + * (1.0 - percentage); + + double height = currentPane.getRenderableDisplay().getWorldHeight(); + double width = currentPane.getRenderableDisplay().getWorldWidth(); + + int aX2 = aX, aY2 = aY; + + if ((0 <= xMinThreshold && width >= xMaxThreshold) == false) { + if (((width < xMaxThreshold && theLastMouseX < aX) || (0 > xMinThreshold && theLastMouseX > aX)) == false) { + aX2 = (int) theLastMouseX; + } + } + + if ((0 <= yMinThreshold && height >= yMaxThreshold) == false) { + if (((height < yMaxThreshold && theLastMouseY < aY) || (0 > yMinThreshold && theLastMouseY > aY)) == false) { + aY2 = (int) theLastMouseY; + } + } + + if (aX2 != theLastMouseX || aY2 != theLastMouseY) { + currentPane.shiftExtent(new double[] { aX2, aY2 }, new double[] { + theLastMouseX, theLastMouseY }); + } + theLastMouseX = aX; + theLastMouseY = aY; + + skewRsc.getRscHandler().getWitoPaneRsc().createAllWireFrameShapes(); + return true; + + } + return false; + } + + + @Override + public boolean handleMouseMove(int x, int y) { + if(editor != null) { + editor.setFocus(); + } + if (getPaneDisplay() == null) { + return false; + } + //System.out.println("skewtPanemouseHandler " + this+" handleMouseMove with editor"+editor); + this.mode = Mode.CREATE; + NsharpSkewTPaneResource skewRsc = (NsharpSkewTPaneResource)getDescriptor().getPaneResource(); + if(editor != null && skewRsc !=null) { + Coordinate c = editor.translateClick(x, y); + //System.out.println(" skewt-handleMouseMove! x="+x+" y="+y+" C.x="+c.x + " c.y="+c.y); + if (skewRsc.getSkewTBackground().contains(c)){ + //always update coordinate C to SkewT editor + cursorInSkewT=true; + skewRsc.setCursorInSkewT(true); + try { + skewRsc.updateDynamicData(c); + editor.refresh(); + } catch (VizException e) { + e.printStackTrace(); + } + } + else{ + skewRsc.setCursorInSkewT(false); + cursorInSkewT=false; + } + } + return false; + } + + @Override + public boolean handleMouseUp(int x, int y, int mouseButton) { + //System.out.println("skewtRsc handleMouseUp"); + if (getPaneDisplay() == null) { + return false; + } + if(editor!=null){ + NsharpSkewTPaneResource skewRsc = (NsharpSkewTPaneResource)getDescriptor().getPaneResource(); + // button 1 is left mouse button + if (mouseButton == 1 ){ + Coordinate c = editor.translateClick(x, y); + if(skewRsc.getSkewTBackground().contains(c) == true && this.mode == Mode.SKEWT_DOWN) {// && mouseDownMove == true) { + skewRsc.getRscHandler().setPlotInteractiveTemp(false); + skewRsc.getRscHandler().applyInteractiveTempPoint(); + //System.out.println("skewtRsc handleMouseUp MOVE_POINT"); + NsharpShowTextDialog osDia = NsharpShowTextDialog.getAccess( ); + if(osDia != null) + osDia.refreshTextData(); + } + this.mode = Mode.CREATE; + } else if(mouseButton == 3){ + //right mouse button + //System.out.println("skewtRsc handleMouseUp right button"); + NsharpMapResource.bringMapEditorToTop(); + } + editor.refresh(); + } + return false; + } + + + @Override + public boolean handleMouseExit(Event event) { + //System.out.println("skewtRsc handleMouseExit"); + cursorInPane=false; + NsharpSkewTPaneResource skewRsc = (NsharpSkewTPaneResource)getDescriptor().getPaneResource(); + skewRsc.setCursorInSkewT(false); + return false; + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpTimeStnPaneDisplay.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpTimeStnPaneDisplay.java new file mode 100644 index 0000000000..2194202e2b --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpTimeStnPaneDisplay.java @@ -0,0 +1,65 @@ +/** + * + * gov.noaa.nws.ncep.ui.nsharp.display.NsharpTimeStnPaneDisplay + * + * This java class performs the NSHARP NsharpTimeStnPaneDisplay functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 05/22/2012	229			Chin Chen	Initial coding for multiple display panes implementation
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.display; + +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpTimeStnPaneResourceData; + +import com.raytheon.uf.viz.core.PixelExtent; +import com.raytheon.uf.viz.core.drawables.ResourcePair; +import com.raytheon.uf.viz.core.rsc.AbstractResourceData; +import com.raytheon.uf.viz.core.rsc.LoadProperties; +import com.raytheon.uf.viz.core.rsc.ResourceList; +import com.raytheon.uf.viz.core.rsc.ResourceProperties; +import com.raytheon.uf.viz.core.rsc.capabilities.ColorableCapability; + +public class NsharpTimeStnPaneDisplay extends NsharpAbstractPaneDisplay { + public NsharpTimeStnPaneDisplay(PixelExtent pixelExtent,int paneNumber) { + super(pixelExtent,paneNumber, "TimeStnPane", new NsharpAbstractPaneDescriptor(pixelExtent, paneNumber)); + } + @Override + public NsharpAbstractPaneDescriptor getDescriptor() { + return (NsharpAbstractPaneDescriptor) super.getDescriptor(); + } + + + @Override + protected void customizeResourceList(ResourceList resourceList) { + AbstractResourceData resourceData = new NsharpTimeStnPaneResourceData(); + // get a load properties + LoadProperties loadProperties = new LoadProperties(); + ColorableCapability colorableCapability = new ColorableCapability(); + colorableCapability.setColor(NsharpConstants.backgroundColor); + loadProperties.getCapabilities().addCapability(colorableCapability); + // get some resource properties + ResourceProperties resourceProperties = new ResourceProperties(); + resourceProperties.setVisible(true); + resourceProperties.setMapLayer(true); + resourceProperties.setSystemResource(true); + // Make a resource pair + ResourcePair resourcePair = new ResourcePair(); + resourcePair.setResourceData(resourceData); + resourcePair.setLoadProperties(loadProperties); + resourcePair.setProperties(resourceProperties); + // add it to the resource list. + resourceList.add(resourcePair); + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpTimeStnPaneMouseHandler.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpTimeStnPaneMouseHandler.java new file mode 100644 index 0000000000..be2c1ee056 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpTimeStnPaneMouseHandler.java @@ -0,0 +1,107 @@ +/** + * + * gov.noaa.nws.ncep.ui.nsharp.skewt.rsc.NsharpTimeStnPaneMouseHandler + * + * This java class performs the NSHARP NsharpTimeStnPaneMouseHandler functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 05/22/2012	229			Chin Chen	Initial coding for multiple Panes implementations
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.display; + + +import org.eclipse.swt.widgets.Event; + +import gov.noaa.nws.ncep.ui.nsharp.display.map.NsharpMapResource; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpTimeStnPaneResource; +import gov.noaa.nws.ncep.ui.nsharp.palette.NsharpShowTextDialog; + +import com.raytheon.uf.viz.core.IDisplayPane; +import com.vividsolutions.jts.geom.Coordinate; + +public class NsharpTimeStnPaneMouseHandler extends NsharpAbstractMouseHandler{ + + + public NsharpTimeStnPaneMouseHandler(NsharpEditor editor, IDisplayPane pane) { + super(editor,pane); + } + + + + @Override + public boolean handleMouseDown(int x, int y, int mouseButton) { + theLastMouseX = x; + theLastMouseY = y; + if (getPaneDisplay() == null) { + return false; + } + else if (mouseButton == 1) { + //System.out.println("handleMouseDown"); + this.mode = Mode.CREATE; + Coordinate c = editor.translateClick(x, y); + NsharpTimeStnPaneResource timeStnRsc = (NsharpTimeStnPaneResource)getDescriptor().getPaneResource(); + if(timeStnRsc.getTimeLineRectangle().contains((int) c.x, (int) c.y)== true) { + this.mode = Mode.TIMELINE_DOWN; + //changeMouse(this.mode); + } + else if(timeStnRsc.getStnIdRectangle().contains((int) c.x, (int) c.y) == true) { + this.mode = Mode.STATIONID_DOWN; + //changeMouse(this.mode); + } + editor.refresh(); + } + + return false; + } + + + @Override + public boolean handleMouseUp(int x, int y, int mouseButton) { + if (getPaneDisplay() == null) { + return false; + } + if(editor!=null){ + // button 1 is left mouse button + if (mouseButton == 1 ){ + NsharpTimeStnPaneResource timeStnRsc = (NsharpTimeStnPaneResource)getDescriptor().getPaneResource(); + Coordinate c = editor.translateClick(x, y); + if(timeStnRsc.getTimeLineRectangle().contains((int) c.x, (int) c.y) == true && this.mode == Mode.TIMELINE_DOWN) { + //data time line has been touched, and may be changed + timeStnRsc.getRscHandler().handleUserClickOnTimeLine(c); + handleMouseMove(x,y); + + NsharpShowTextDialog textarea = NsharpShowTextDialog.getAccess(); + if(textarea != null){ + textarea.refreshTextData(); + } + + } + else if(timeStnRsc.getStnIdRectangle().contains((int) c.x, (int) c.y) == true && this.mode == Mode.STATIONID_DOWN) { + //stn id line has been touched, and may be changed + timeStnRsc.getRscHandler().handleUserClickOnStationId(c); + handleMouseMove(x,y); + } + + this.mode = Mode.CREATE; + } else if(mouseButton == 3){ + //right mouse button + //System.out.println("hodo handleMouseUp right button"); + NsharpMapResource.bringMapEditorToTop(); + } + editor.refresh(); + } + return false; + } + + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpWitoPaneDisplay.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpWitoPaneDisplay.java new file mode 100644 index 0000000000..9e9b5fa3cd --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/NsharpWitoPaneDisplay.java @@ -0,0 +1,65 @@ +/** + * + * gov.noaa.nws.ncep.ui.nsharp.display.NsharpWitoPaneDisplay + * + * This java class performs the NSHARP NsharpWitoPaneDisplay functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/30/2012	229			Chin Chen	Initial coding for multiple display panes implementation
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.display; + +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpWitoPaneResourceData; + +import com.raytheon.uf.viz.core.PixelExtent; +import com.raytheon.uf.viz.core.drawables.ResourcePair; +import com.raytheon.uf.viz.core.rsc.AbstractResourceData; +import com.raytheon.uf.viz.core.rsc.LoadProperties; +import com.raytheon.uf.viz.core.rsc.ResourceList; +import com.raytheon.uf.viz.core.rsc.ResourceProperties; +import com.raytheon.uf.viz.core.rsc.capabilities.ColorableCapability; + +public class NsharpWitoPaneDisplay extends NsharpAbstractPaneDisplay { + public NsharpWitoPaneDisplay(PixelExtent pixelExtent,int paneNumber) { + super(pixelExtent,paneNumber, "witoPane", new NsharpAbstractPaneDescriptor(pixelExtent, paneNumber)); + } + @Override + public NsharpAbstractPaneDescriptor getDescriptor() { + return (NsharpAbstractPaneDescriptor) super.getDescriptor(); + } + + + @Override + protected void customizeResourceList(ResourceList resourceList) { + AbstractResourceData resourceData = new NsharpWitoPaneResourceData(); + // get a load properties + LoadProperties loadProperties = new LoadProperties(); + ColorableCapability colorableCapability = new ColorableCapability(); + colorableCapability.setColor(NsharpConstants.backgroundColor); + loadProperties.getCapabilities().addCapability(colorableCapability); + // get some resource properties + ResourceProperties resourceProperties = new ResourceProperties(); + resourceProperties.setVisible(true); + resourceProperties.setMapLayer(true); + resourceProperties.setSystemResource(true); + // Make a resource pair + ResourcePair resourcePair = new ResourcePair(); + resourcePair.setResourceData(resourceData); + resourcePair.setLoadProperties(loadProperties); + resourcePair.setProperties(resourceProperties); + // add it to the resource list. + resourceList.add(resourcePair); + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/map/NsharpMapMouseHandler.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/map/NsharpMapMouseHandler.java new file mode 100644 index 0000000000..ba3c05a831 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/map/NsharpMapMouseHandler.java @@ -0,0 +1,319 @@ +/** + * + * gov.noaa.nws.ncep.ui.nsharp.display.map.NsharpMapMouseHandler + * + * This java class performs the NSHARP Modal functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 03/23/2010	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.display.map; + + +import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingLayer; +import gov.noaa.nws.ncep.ui.nsharp.NsharpStationInfo; +import gov.noaa.nws.ncep.ui.nsharp.SurfaceStationPointData; +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.view.ModelSoundingDialogContents; +import gov.noaa.nws.ncep.ui.nsharp.view.NsharpLoadDialog; +import gov.noaa.nws.ncep.ui.pgen.tools.InputHandlerDefaultImpl; +import gov.noaa.nws.ncep.viz.ui.display.NCMapEditor; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.MessageBox; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.progress.UIJob; +import org.geotools.referencing.GeodeticCalculator; + +import com.raytheon.uf.viz.core.map.IMapDescriptor; +import com.vividsolutions.jts.geom.Coordinate; + + +//@SuppressWarnings("unchecked") +public class NsharpMapMouseHandler extends InputHandlerDefaultImpl { + + public NsharpMapMouseHandler() { + instance = this; + } + //private NsharpSkewTDisplay renderableDisplay=null; + + private static final double NctextuiPointMinDistance = 45000; + //private int prevMouseX, prevMouseY; + private static NsharpMapMouseHandler instance; + + private double lat, lon; + + + public double getLat() { + return lat; + } + + + public double getLon() { + return lon; + } + + public static NsharpMapMouseHandler getAccess(){ + return instance; + } + + /* + * (non-Javadoc) + * + * @see com.raytheon.viz.ui.input.IInputHandler#handleMouseDown(int, + * int, int) + */ + @Override + public boolean handleMouseDown(int x, int y, int button) { + //System.out.println("nsharp map mouse down"); + //prevMouseX = x; + //prevMouseY = y; + return false; + } + + /* + * (non-Javadoc) + * + * @see com.raytheon.viz.ui.input.IInputHandler#handleMouseDownMove(int, + * int, int) + * handle left button, so user be able to shift map while it is down + */ + @Override + public boolean handleMouseDownMove(int x, int y, int button) { + return false; + + } + @Override + public boolean handleMouseMove(int x, int y) { + // TODO Auto-generated method stub + return false; + } + /* + * (non-Javadoc) + * + * @see com.raytheon.viz.ui.input.IInputHandler#handleMouseUp(int, int, + * int) + * handle right button, so user be able to pick stn and print text report + */ + @Override + public boolean handleMouseUp(int x, int y, int button) { + //System.out.println("NsharpMapMouseHandler handleMouseUp called"); + // button 1 is left mouse button + if (button == 1 ){ + NCMapEditor mapEditor = NsharpMapResource.getMapEditor(); + if(mapEditor != null){ + //for(int i=0; i< mapEditor.getDescriptor().getResourceList().size(); i++) + // System.out.println( "C resourcename="+mapEditor.getDescriptor().getResourceList().get(i).getResource().getName()); + + // Check if mouse is in geographic extent + Coordinate loc = mapEditor.translateClick(x, y); + if ( loc == null ) + return false; + NsharpLoadDialog loadDia = NsharpLoadDialog.getAccess(); + if(loadDia!=null){ + if(loadDia.getActiveLoadSoundingType() == NsharpLoadDialog.MODEL_SND && loadDia.getMdlDialog()!=null&& loadDia.getMdlDialog().getLocationText()!=null){ + + if(loadDia.getMdlDialog().getCurrentLocType() == ModelSoundingDialogContents.LocationType.STATION){ + //System.out.println("mouse up 1 loc.x "+ loc.x+ " loc.y="+ loc.y); + String stnName = SurfaceStationPointData.calculateNearestPoint(loc); + //System.out.println("mouse up 2 loc.x "+ loc.x+ " loc.y="+ loc.y); + //System.out.println("stn name = "+ stnName); + if(stnName == null) + stnName = ""; + loadDia.getMdlDialog().getLocationText().setText(stnName); + } + else { + String latLonStr = String.format("%6.2f;%7.2f",loc.y,loc.x); + //System.out.println("mouse up 2 loc.x "+ loc.x+ " loc.y="+ loc.y + " latlonStr=" +latLonStr); + loadDia.getMdlDialog().getLocationText().setText(latLonStr); + } + + } + else { + //get the stn (point) list + int activeLoadType = loadDia.getActiveLoadSoundingType(); + List points = NsharpMapResource.getOrCreateNsharpMapResource().getPoints();//loadDia.getNsharpMapResource().getPoints(); + if(points.isEmpty() == false){ + // create an editor NsharpEditor + NsharpEditor skewtEdt = NsharpEditor.createOrOpenEditor(); + + //get the stn close to loc "enough" and retrieve report for it + // Note::One stn may have more than one dataLine, if user picked multiple data time lines + List stnPtDataLineLst = getPtWithinMinDist(points, loc); + if(stnPtDataLineLst!= null && stnPtDataLineLst.size() > 0){ + //System.out.println("MapMouseHandler creating NsharpSkewTDisplay"); + //hash map, use stn display info as key + Map> soundingLysLstMap = new HashMap>(); + + //String soundingType; + if(activeLoadType == NsharpLoadDialog.OBSER_SND){ + NsharpMapResource.startWaitCursor(); + NsharpObservedSoundingQuery.getObservedSndData(stnPtDataLineLst,loadDia.getObsDialog().isRawData(),soundingLysLstMap); + NsharpMapResource.stopWaitCursor(); + } + else if (activeLoadType == NsharpLoadDialog.PFC_SND){ + NsharpMapResource.startWaitCursor(); + NsharpPfcSoundingQuery.getPfcSndDataBySndTmRange(stnPtDataLineLst,soundingLysLstMap); + NsharpMapResource.stopWaitCursor(); + } + else + return false; + //System.out.println("MAP size/" +soundingLysLstMap.size()); + if(soundingLysLstMap.size() <=0){ + //win.setAndOpenMb("Invalid sounding data returned from DB for this station!"); + Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + MessageBox mb = new MessageBox(shell, SWT.ICON_WARNING + | SWT.OK); + mb.setMessage("Invalid sounding data returned from DB for this station!!"); + mb.open(); + loadDia.closeDiaOnly(); + return false; + } + loadDia.closeDiaOnly(); + + //NsharpResourceHandler skewRsc = skewtEdt.getRscHandler(); + //skewRsc.addRsc(soundingLysLstMap, stnPtDataLineLst.get(0)); + loadDataToNsharpResources(soundingLysLstMap, stnPtDataLineLst.get(0)); + mapEditor = NsharpMapResource.getMapEditor(); + if (mapEditor != null) { + mapEditor.refresh(); + } + bringSkewTEdToTop(); + } + else + { + //System.out.println("Mouse point too far from stn"); + } + } + else + { //debug + //System.out.println("points is null"); + } + } + } + } + + + } + else if(button == 3){ + //NsharpEditor.bringSkewTEditorToTop(); + bringSkewTEdToTop(); + } + + return false; + } + /* + * Chin Note: If calling NsharpEditor.bringSkewTEditorToTop() directly in mouse handler API, e.g. + * handleMouseUp(), then handleMouseUp() will be called one more time by System. Do not know the root cause of it. + * To avoid handling such event twice (e.g. query sounding data twice), we will call NsharpEditor.bringSkewTEditorToTop() + * from another Job (thread). + */ + private void bringSkewTEdToTop(){ + Job uijob = new UIJob("clear source selection"){ //$NON-NLS-1$ + public IStatus runInUIThread( + IProgressMonitor monitor) { + NsharpEditor.bringEditorToTop(); + return Status.OK_STATUS; + } + + }; + uijob.setSystem(true); + uijob.schedule(); + } + /* + * Same reason to use UIJob as bringSkewTEdToTop() + */ + private void loadDataToNsharpResources(final Map> soundMap, final NsharpStationInfo stnInfo){ + Job uijob = new UIJob("clear source selection"){ //$NON-NLS-1$ + public IStatus runInUIThread( + IProgressMonitor monitor) { + NsharpResourceHandler rscHdr = NsharpEditor.createOrOpenEditor().getRscHandler(); + rscHdr.addRsc(soundMap, stnInfo); + return Status.OK_STATUS; + } + + }; + uijob.setSystem(true); + uijob.schedule(); + } + /** + * Gets the nearest point of an selected element to the input point + * @param el element + * @param pt input point + * @return + */ + private List getPtWithinMinDist( List points , Coordinate pt ){ + + NsharpStationInfo thePoint = null; + double minDistance = NctextuiPointMinDistance; + GeodeticCalculator gc; + List thePoints = new ArrayList(); + NCMapEditor mapEditor = NsharpMapResource.getMapEditor(); + if(mapEditor != null){ + IMapDescriptor desc = (IMapDescriptor) mapEditor.getActiveDisplayPane().getRenderableDisplay().getDescriptor(); + gc = new GeodeticCalculator(desc.getCRS()); + gc.setStartingGeographicPoint(pt.x, pt.y); + //int textDispIndex = 1;//debug + for ( NsharpStationInfo point : points){ + + gc.setDestinationGeographicPoint( point.getLongitude(),point.getLatitude()); + double dist; + try{ + dist = gc.getOrthodromicDistance(); + //System.out.println("dist to point " + textDispIndex++ + " is " + dist); + if ( dist < minDistance ) { + + minDistance = dist; + thePoint = point; + } + } + catch (Exception e) { + + //e.printStackTrace(); + //System.out.println("getOrthodromicDistance exception happened!"); + } + + + } + // Chin, there may be more than one point for a selected stn. As user may selected more than one data time, + // For same stn, each data time will have one point to represent it. So, a stn may have more than one points + if(thePoint != null){ + for ( NsharpStationInfo point : points){ + if ((thePoint.getLatitude() == point.getLatitude())&& (thePoint.getLongitude() == point.getLongitude())){ + thePoints.add(point); + } + } + + //marked X on selected point + NsharpMapResource.getOrCreateNsharpMapResource().setPickedPoint(thePoint); + + } + + } + return thePoints; + + } + +} + diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/map/NsharpMapResource.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/map/NsharpMapResource.java new file mode 100644 index 0000000000..b4021d2896 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/map/NsharpMapResource.java @@ -0,0 +1,552 @@ +/** + * + * gov.noaa.nws.ncep.ui.nsharp.display.map.NsharpMapResource + * + * This java class performs the NSHARP Resource functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 03/23/2010	229			Chin Chen	Initial coding
+ * 
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.display.map; + + +import java.awt.Color; +import java.io.File; +import java.util.List; +import java.util.ArrayList; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Cursor; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IViewPart; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.PlatformUI; +import org.opengis.referencing.crs.CoordinateReferenceSystem; + +import com.vividsolutions.jts.geom.Coordinate; +import com.raytheon.uf.viz.core.IGraphicsTarget; +import com.raytheon.uf.viz.core.PixelExtent; +import com.raytheon.uf.viz.core.VizApp; +import com.raytheon.uf.viz.core.drawables.PaintProperties; +import com.raytheon.uf.viz.core.drawables.ResourcePair; +import com.raytheon.uf.viz.core.map.IMapDescriptor; +import com.raytheon.uf.viz.core.map.MapDescriptor; +import com.raytheon.uf.viz.core.rsc.AbstractVizResource; +import com.raytheon.uf.viz.core.rsc.IInputHandler; +import com.raytheon.uf.viz.core.rsc.LoadProperties; +import com.raytheon.uf.viz.core.rsc.ResourceProperties; +import com.raytheon.uf.viz.core.rsc.ResourceList.RemoveListener; +import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.viz.ui.EditorUtil; + +import gov.noaa.nws.ncep.viz.localization.NcPathManager; +import gov.noaa.nws.ncep.viz.localization.NcPathManager.NcPathConstants; +import gov.noaa.nws.ncep.viz.resources.manager.RbdBundle; +import gov.noaa.nws.ncep.viz.resources.manager.ResourceBndlLoader; + +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.NsharpStationInfo; +import gov.noaa.nws.ncep.ui.nsharp.view.NsharpPaletteWindow; +import gov.noaa.nws.ncep.ui.pgen.display.DisplayElementFactory; +import gov.noaa.nws.ncep.ui.pgen.display.IDisplayable; +import gov.noaa.nws.ncep.ui.pgen.elements.SymbolLocationSet; +import gov.noaa.nws.ncep.viz.ui.display.NCMapEditor; +import gov.noaa.nws.ncep.viz.ui.display.NmapUiUtils; + + +public class NsharpMapResource extends AbstractVizResource + implements RemoveListener{ + private static NsharpMapResource mapRsc=null; + private static NCMapEditor mapEditor=null; + private static NsharpMapMouseHandler mouseHandler; + private static Cursor waitCursor=null; + private static Control cursorControl; + private static boolean mouseHandlerRegistered=false; + public static void bringMapEditorToTop(){ + try{ + if(mapEditor!=null&& PlatformUI.getWorkbench()!=null && PlatformUI.getWorkbench().getActiveWorkbenchWindow()!=null + && PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()!=null){ + PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().bringToTop(mapEditor); + mapEditor.refresh(); + } + } + catch (Exception e) { + } + + } + public static NCMapEditor getMapEditor() { + return mapEditor; + } + + public static NsharpMapResource getMapRsc() { + return mapRsc; + } + private NsharpMapResourceData nsharpMapResourceData; + /** The set of symbols with similar attributes across many locations */ + private SymbolLocationSet symbolSet = null; + private SymbolLocationSet symbolToMark = null; + private List points = new ArrayList(); + private List pickedPoint = new ArrayList(); + public void setPickedPoint(NsharpStationInfo point) { + this.pickedPoint.add(point); + } + public List getPoints() { + return points; + } + + public void setPoints(List points) { + if (points == null){ + this.pickedPoint.clear(); + symbolToMark= null; + symbolSet=null; + this.points.clear(); + } + else{ + this.points = points; + } + } + + public void addPoint(NsharpStationInfo point) { + points.add(point); + } + + /** + * Default constructor + */ + protected NsharpMapResource(NsharpMapResourceData resourceData, + LoadProperties loadProperties) { + super(resourceData, loadProperties); + this.nsharpMapResourceData = resourceData; + //System.out.println("NsharpMapResource constructed"); + + } + public static void startWaitCursor(){ + waitCursor = new Cursor( Display.getCurrent(), SWT.CURSOR_WAIT); + cursorControl = Display.getCurrent().getCursorControl(); + if(cursorControl!=null && waitCursor!=null) + cursorControl.setCursor(waitCursor); + } + public static void stopWaitCursor(){ + if(cursorControl!=null&& waitCursor!=null){ + cursorControl.setCursor(null); + } + if(waitCursor!=null){ + waitCursor.dispose(); + waitCursor= null; + } + } + private static void createMapEditor(){ + // create an editor MapEditor + File rbdFile = NcPathManager.getInstance().getStaticFile( + NcPathConstants.DFLT_RBD ); + try { + + IEditorPart ep = EditorUtil.getActiveEditor(); + if (ep instanceof NCMapEditor) { + mapEditor= (NCMapEditor) ep; + }else { + mapEditor = NmapUiUtils.createNatlCntrsEditor("BasicWX-US","NSHARP" ); + } + + + for(int i=0; i< mapEditor.getDescriptor().getResourceList().size(); i++) + System.out.println( "A resourcename="+mapEditor.getDescriptor().getResourceList().get(i).getResource().getName()); + RbdBundle rbd = RbdBundle.unmarshalRBD( rbdFile, null ); + ResourceBndlLoader rbdLoader = new ResourceBndlLoader("DefaultMap"); + rbdLoader.addRBD( rbd, mapEditor ); + VizApp.runSync( rbdLoader ); + //System.out.println("NsharpMapResource create editor "+ mapEditor.toString()); + for(int i=0; i< mapEditor.getDescriptor().getResourceList().size(); i++) + System.out.println( "B resourcename="+mapEditor.getDescriptor().getResourceList().get(i).getResource().getName()); + + } + catch ( Exception ve ) { + System.out.println("NsharpMapResource Could not load initial editor: " + ve.getMessage()); + ve.printStackTrace(); + } + } + private static void createMapEditorTest(){ + // create an editor MapEditor + File rbdFile = NcPathManager.getInstance().getStaticFile( + NcPathConstants.DFLT_RBD ); + try { + + IEditorPart ep = EditorUtil.getActiveEditor(); + if (ep instanceof NCMapEditor) { + mapEditor= (NCMapEditor) ep; + //System.out.println("NsharpMapResource using existing editor "); + }else { + mapEditor = NmapUiUtils.createNatlCntrsEditor("BasicWX-US","NSHARP" ); + + + RbdBundle rbd = RbdBundle.unmarshalRBD( rbdFile, null ); + ResourceBndlLoader rbdLoader = new ResourceBndlLoader("DefaultMap"); + rbdLoader.addRBD( rbd, mapEditor ); + VizApp.runSync( rbdLoader ); + //System.out.println("NsharpMapResource create new editor "+ mapEditor.toString()); + } + + //for(int i=0; i< mapEditor.getDescriptor().getResourceList().size(); i++) + //System.out.println( "Editor resource "+ i+" name="+mapEditor.getDescriptor().getResourceList().get(i).getResource().getName()); + + } + catch ( Exception ve ) { + System.out.println("NsharpMapResource Could not load initial editor: " + ve.getMessage()); + ve.printStackTrace(); + } + + } + public static void registerMouseHandler(){ + if(mouseHandlerRegistered) + return; + + mouseHandler = getMouseHandler(); + if(mapEditor!=null && mouseHandler!=null){ + mapEditor.registerMouseHandler((IInputHandler) mouseHandler ); + mouseHandlerRegistered = true; + } + } + public static void unregisterMouseHandler(){ + if(!mouseHandlerRegistered) + return; + mouseHandler = getMouseHandler(); + if(mapEditor!=null && mouseHandler!=null){ + mapEditor.unregisterMouseHandler((IInputHandler) mouseHandler ); + mouseHandlerRegistered= false; + } + } + /** + * Create a new MapResource and add it to the current editor. + * @return the MapResource + */ + public static NsharpMapResource getOrCreateNsharpMapResource() { + if(mapRsc == null ){ + if(mapEditor == null){ + createMapEditorTest();//createMapEditor(); + + } + if(mapEditor!=null){ + IMapDescriptor desc = (IMapDescriptor) mapEditor.getActiveDisplayPane().getRenderableDisplay().getDescriptor(); + try { + mapRsc = new NsharpMapResourceData().construct(new LoadProperties(), desc); + desc.getResourceList().add( mapRsc ); + mapRsc.init( mapEditor.getActiveDisplayPane().getTarget()); + + //register mouse handler + mouseHandler = getMouseHandler(); + mapEditor.registerMouseHandler((IInputHandler) mouseHandler ); + + + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + return mapRsc; + } + + public static void deleteNsharpMapResource() { + //System.out.println("NsharpMapResource:deleteNsharpMapResource "); + if(mapRsc != null ){ + mapRsc.dispose(); + mapRsc = null; + } + } + + /** + * Called when resource is disposed + * @see com.raytheon.viz.core.rsc.IVizResource#dispose() + */ + @Override + public void disposeInternal() { + //System.out.println("NsharpMapResource:disposeInternal "+ this.toString()); + + if(mapEditor != null ){ + mapEditor.unregisterMouseHandler( mouseHandler ); + mouseHandler = null; + //close editor + /*if((PlatformUI.getWorkbench()!= null)&&(PlatformUI.getWorkbench().getActiveWorkbenchWindow()!= null) + && (PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()!=null)) + PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().closeEditor(mapEditor, false);*/ + mapEditor = null; + + } + pickedPoint = null; + points = null; + symbolSet = null; + symbolToMark = null; + mapRsc = null; + if(waitCursor!=null) + waitCursor.dispose(); + waitCursor=null; + mouseHandlerRegistered= false; + } + + + /* (non-Javadoc) + * @see com.raytheon.viz.core.rsc.IVizResource#getCoordinateReferenceSystem() + */ + public CoordinateReferenceSystem getCoordinateReferenceSystem() { + + if (descriptor == null) + return null; + + return descriptor.getCRS(); + + } + + /* (non-Javadoc) + * @see com.raytheon.viz.core.rsc.IVizResource#getName() + */ + @Override + public String getName() { + + return "NSHARP Resource"; + + } + + + /* (non-Javadoc) + * @see com.raytheon.viz.core.rsc.IVizResource#getShortName() + */ + public String getShortName() { + + return null; + + } + + /* (non-Javadoc) + * @see com.raytheon.viz.core.rsc.IVizResource#init(com.raytheon.viz.core.IGraphicsTarget) + */ + @Override + public void initInternal(IGraphicsTarget target) throws VizException { + //System.out.println("NsharpMapResource:initInternal called"); + //mapfont = target.initializeFont("Monospace", + // (float) (12 * nsharpMapResourceData.getMarkerTextSize().getSoftwareSize()), null); + } + + /* (non-Javadoc) + * @see com.raytheon.viz.core.rsc.IVizResource#isApplicable(com.raytheon.viz.core.PixelExtent) + */ + public boolean isApplicable(PixelExtent extent) { + + return true; + + } + + private void generateSymbolForDrawing() + { + String type; + float lineWidth = nsharpMapResourceData.getMarkerWidth(); + Boolean clear= false;; + String category = new String("Marker"); + double sizeScale = nsharpMapResourceData.getMarkerSize(); + + + if (points.isEmpty() == true) { + symbolSet = null; + } + else { + // SymbolLocationSet constructor requires a positive-length array of Coordinate + Coordinate[] locations = new Coordinate[points.size()]; + Color[] colors = new Color[] {new Color(NsharpConstants.color_green.red, + NsharpConstants.color_green.green, + NsharpConstants.color_green.blue)}; + //System.out.println( "generateSymbolSet: size ="+ points.size()); + int i = 0; + for (NsharpStationInfo p : points) { + double lon, lat; + lon = p.getLongitude(); + lat = p.getLatitude(); + locations[i++] = new Coordinate(lon,lat); + } + type = nsharpMapResourceData.getMarkerType().toString(); + //System.out.println( "generateSymbolSet done size ="+ i); + symbolSet = new SymbolLocationSet ( + null, + colors, + lineWidth, + sizeScale, + clear, + locations, + category, + type); + + + } + //generate symbol for picked stn to mark X + if(pickedPoint!= null && pickedPoint.size()>0){ + Coordinate[] locations = new Coordinate[pickedPoint.size()]; + int i = 0; + for (NsharpStationInfo p : pickedPoint) { + double lon, lat; + lon = p.getLongitude(); + lat = p.getLatitude(); + locations[i++] = new Coordinate(lon,lat); + } + type = nsharpMapResourceData.getStnMarkerType().toString(); + Color[] colors = new Color[] {new Color(NsharpConstants.color_red.red, + NsharpConstants.color_red.green, + NsharpConstants.color_red.blue)}; + symbolToMark = new SymbolLocationSet(null, + colors, + lineWidth, + sizeScale*2, + clear, + locations, + category, + type); + } + else + symbolToMark= null; + } + + /* (non-Javadoc) + * @see com.raytheon.viz.core.drawables.IRenderable#paint(com.raytheon.viz.core.IGraphicsTarget, com.raytheon.viz.core.drawables.PaintProperties) + */ + @Override + public void paintInternal(IGraphicsTarget target, PaintProperties paintProps) + throws VizException { + //System.out.println("paintInternal called!"); + //IFont font = target.initializeFont("Monospace", + // (float) (12 * nsharpMapResourceData.getMarkerTextSize().getSoftwareSize()), null); + + generateSymbolForDrawing(); + DisplayElementFactory df = new DisplayElementFactory (target, this.descriptor); + if (symbolSet != null) + { + ArrayList elements = df.createDisplayElements(symbolSet, paintProps); + for (IDisplayable each : elements) + { + try { + each.draw(target); + each.dispose(); + } + catch (Exception e) { + e.printStackTrace(); + //System.out.println("paintInternal caught draw exception!"); + } + } + } + if(symbolToMark != null){ + ArrayList elements = df.createDisplayElements(symbolToMark, paintProps); + for (IDisplayable each : elements) + { + try { + each.draw(target); + each.dispose(); + } + catch (Exception e) { + e.printStackTrace(); + //System.out.println("paintInternal caught draw exception!"); + } + } + } + //font.dispose(); + } + + + + + /* (non-Javadoc) + * @see com.raytheon.viz.core.rsc.capabilities.IProjectableResource#isProjectable(org.opengis.referencing.crs.CoordinateReferenceSystem) + */ + public boolean isProjectable(CoordinateReferenceSystem mapData) { + + return true; + + } + + /* (non-Javadoc) + * @see com.raytheon.viz.core.rsc.capabilities.IProjectableResource#project(org.opengis.referencing.crs.CoordinateReferenceSystem) + */ + @Override + public void project(CoordinateReferenceSystem mapData) throws VizException { + //System.out.println("NctextuiResource: project "); + } + + /** + * Returns the current mouse handler. + * @return + */ + private static NsharpMapMouseHandler getMouseHandler() { + + if ( mouseHandler == null ) { + + mouseHandler = new NsharpMapMouseHandler(); + + } + + return mouseHandler; + + } + + @Override + public boolean okToUnload() { + /* + * DisAllow unloading of Resource + */ + + return false; + + + } + @Override + public void notifyRemove(ResourcePair rp) throws VizException { + // TODO Auto-generated method stub + + } + @Override + public void propertiesChanged(ResourceProperties updatedProps) { + if ( updatedProps.isVisible() ) { + reopenTextView (); + } + else { + hideTextView (); + } + } + + private void hideTextView () { + IWorkbenchPage wpage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); + + IViewPart vpart = wpage.findView( "gov.noaa.nws.ncep.ui.nsharp" ); + if ( wpage.isPartVisible(vpart) ) { + NsharpPaletteWindow paletteWin = NsharpPaletteWindow.getInstance(); + if(paletteWin!=null){ + paletteWin.setEditorVisible(false); + wpage.hideView(vpart); + } + } + } + + private void reopenTextView () { + IWorkbenchPage wpage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); + + IViewPart vpart = wpage.findView( "gov.noaa.nws.ncep.ui.nsharp" ); + if ( !wpage.isPartVisible(vpart) ) { + NsharpPaletteWindow paletteWin = NsharpPaletteWindow.getInstance(); + if(paletteWin!=null){ + paletteWin.setEditorVisible(true); + try { + vpart = wpage.showView( "gov.noaa.nws.ncep.ui.nsharp" ); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } +} + diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/map/NsharpMapResourceData.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/map/NsharpMapResourceData.java new file mode 100644 index 0000000000..e0850d021a --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/map/NsharpMapResourceData.java @@ -0,0 +1,118 @@ +/** + * + * gov.noaa.nws.ncep.ui.nsharp.display.map.NsharpMapResourceData + * + * This java class performs the NSHARP ResourceData functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 03/23/2010	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.display.map; + +import gov.noaa.nws.ncep.viz.overlays.IPointOverlayResourceData.*; +import com.raytheon.uf.viz.core.drawables.IDescriptor; +import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.uf.viz.core.rsc.AbstractResourceData; +import com.raytheon.uf.viz.core.rsc.LoadProperties; + +public class NsharpMapResourceData extends AbstractResourceData { + + private MarkerState markerState = MarkerState.MARKER_ONLY; + private MarkerType markerType = MarkerType.DIAMOND; + private Float markerSize = 1f; + private Integer markerWidth = 2; + private MarkerTextSize markerTextSize = MarkerTextSize.MEDIUM; + private String mapName = "NSHARP"; + private MarkerType stnMarkerType = MarkerType.LARGE_X; + + public MarkerType getStnMarkerType() { + return stnMarkerType; + } + + public NsharpMapResourceData() { + super(); + } + + /* (non-Javadoc) + * @see com.raytheon.uf.viz.core.rsc.AbstractResourceData#construct(com.raytheon.uf.viz.core.comm.LoadProperties, com.raytheon.uf.viz.core.drawables.IDescriptor) + */ + @Override + public NsharpMapResource construct(LoadProperties loadProperties, + IDescriptor descriptor) throws VizException { + // TODO Auto-generated method stub + return new NsharpMapResource(this, loadProperties); + } + + /* (non-Javadoc) + * @see com.raytheon.uf.viz.core.rsc.AbstractResourceData#update(java.lang.Object) + */ + @Override + public void update(Object updateData) { + // TODO Auto-generated method stub + + } + + @Override + public boolean equals(Object obj) { + // TODO Auto-generated method stub + return false; + } + + public MarkerState getMarkerState() { + return markerState; + } + + public void setMarkerState(MarkerState markerState) { + this.markerState = markerState; + } + + public MarkerType getMarkerType() { + return markerType; + } + + public void setMarkerType(MarkerType markerType) { + this.markerType = markerType; + } + + public Float getMarkerSize() { + return markerSize; + } + + public void setMarkerSize(Float markerSize) { + this.markerSize = markerSize; + } + + public Integer getMarkerWidth() { + return markerWidth; + } + + public void setMarkerWidth(Integer markerWidth) { + this.markerWidth = markerWidth; + } + + public MarkerTextSize getMarkerTextSize() { + return markerTextSize; + } + + public void setMarkerTextSize(MarkerTextSize markerTextSize) { + this.markerTextSize = markerTextSize; + } + + public String getMapName() { + return mapName; + } + + public void setMapName(String mapName) { + this.mapName = mapName; + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/map/NsharpObservedSoundingQuery.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/map/NsharpObservedSoundingQuery.java new file mode 100644 index 0000000000..11c5d22f96 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/map/NsharpObservedSoundingQuery.java @@ -0,0 +1,121 @@ +package gov.noaa.nws.ncep.ui.nsharp.display.map; +/** + * + * gov.noaa.nws.ncep.ui.nsharp.display.map.NsharpObservedSoundingQuery + * + * This java class performs the NSHARP observed sounding data query functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 11/1/2010	362			Chin Chen	Initial coding
+ * 12/16/2010   362         Chin Chen   add support of BUFRUA observed sounding and PFC (NAM and GFS) model sounding data
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + +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.NsharpStationInfo; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpDataHandling; +import gov.noaa.nws.ncep.viz.common.soundingQuery.NcSoundingQuery; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +//Chin-T import com.raytheon.uf.common.sounding.SoundingLayer; + +import com.vividsolutions.jts.geom.Coordinate; + +public class NsharpObservedSoundingQuery { + + //Chin-T public static void getObservedSndData(List stnPtDataLineLst, Map> soundingLysLstMap) { + //Chin: note that Nsharp currently GUI only allow user pick one stn at one time, but could be many refTimes. + public static void getObservedSndData(List stnPtDataLineLst, boolean rawData, Map> soundingLysLstMap) { + //String pickedStnInfo = ""; + List coords= new ArrayList(); + List refTimeLst = new ArrayList(); + //create refTime array and lat/lon array + for(NsharpStationInfo StnPt : stnPtDataLineLst){ + //one StnPt represent one data time line + //List Ids = StnPt.getDbId(); + System.out.println("stn lat ="+StnPt.getLatitude()+ " lon="+StnPt.getLongitude()); + boolean exist = false; + for(Coordinate c: coords){ + if(c.x == StnPt.getLongitude() && c.y == StnPt.getLatitude()){ + exist= true; + break; + } + } + if(exist==false) { + Coordinate coord = new Coordinate(StnPt.getLongitude(),StnPt.getLatitude()); + coords.add(coord); + } + exist = false; + for(long t: refTimeLst){ + if(t == StnPt.getReftime().getTime()){ + exist= true; + break; + } + } + if(exist==false) { + refTimeLst.add(StnPt.getReftime().getTime()); + } + + + } + double[][] latLon = new double[coords.size()][2]; + for (int i=0; i< coords.size(); i++){ + latLon[i][0]= coords.get(i).y; //lat + latLon[i][1]= coords.get(i).x; //lon + } + NcSoundingCube cube = NcSoundingQuery.uaGenericSoundingQuery(refTimeLst.toArray(new Long[0]), latLon, stnPtDataLineLst.get(0).getSndType(), + NcSoundingLayer.DataType.ALLDATA, !rawData, "-1"); + //NcSoundingCube cube = NcSoundingQuery.soundingQueryByLatLon(stnPtDataLineLst.get(0).getReftime().getTime(), coords, stnPtDataLineLst.get(0).getSndType(), + // NcSoundingLayer.DataType.ALLDATA, !rawData, "-1"); + if(cube != null && cube.getSoundingProfileList().size()>0 && cube.getRtnStatus()==NcSoundingCube.QueryStatus.OK){ + for(NcSoundingProfile sndPf : cube.getSoundingProfileList()){ + List rtnSndLst = sndPf.getSoundingLyLst(); + //if(rtnSndLst != null && rtnSndLst.size() > 0){ + + //NcSoundingProfile sndPf = cube.getSoundingProfileList().get(0); + //System.out.println("size of profile = "+ cube.getSoundingProfileList().size()); + //debug + //for(NcSoundingProfile pf: cube.getSoundingProfileList()){ + // System.out.println("sounding profile: lat="+pf.getStationLatitude()+" lon="+pf.getStationLongitude()+ " stnId="+ pf.getStationId() ); + //} + //List rtnSndLst = sndPf.getSoundingLyLst(); + // Chin-T List sndLyList = NsharpSoundingQueryCommon.convertToSoundingLayerList(rtnSndLst); + if(rtnSndLst != null && rtnSndLst.size() > 0){ + //update sounding data so they can be used by Skewt Resource and PalletWindow + if(rawData) + rtnSndLst = NsharpDataHandling.sortObsSoundingDataForShow(rtnSndLst, sndPf.getStationElevation()); + else + rtnSndLst = NsharpDataHandling.organizeSoundingDataForShow(rtnSndLst, sndPf.getStationElevation()); + //minimum rtnSndList size will be 2 (50 & 75 mb layers), but that is not enough + // We need at least 2 regular layers for plotting + if(rtnSndLst != null && rtnSndLst.size() > 4){ + String dispInfo=""; + for(NsharpStationInfo StnPt : stnPtDataLineLst){ + if(StnPt.getReftime().getTime() == sndPf.getFcsTime()){ + dispInfo = StnPt.getStnDisplayInfo(); + break; + } + } + soundingLysLstMap.put(dispInfo, rtnSndLst); + } + } + } + //} + } + + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/map/NsharpPfcSoundingQuery.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/map/NsharpPfcSoundingQuery.java new file mode 100644 index 0000000000..9e42dfa7df --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/map/NsharpPfcSoundingQuery.java @@ -0,0 +1,148 @@ +package gov.noaa.nws.ncep.ui.nsharp.display.map; +/** + * + * gov.noaa.nws.ncep.ui.nsharp.display.map.NsharpPfcSoundingQuery + * + * This java class performs the NSHARP pfc sounding data query functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 11/1/2010	362			Chin Chen	Initial coding
+ * 12/16/2010   362         Chin Chen   add support of BUFRUA observed sounding and PFC (NAM and GFS) model sounding data
+ * 02/15/2012               Chin Chen   add  PFC sounding query algorithm for better performance getPfcSndDataBySndTmRange()
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + +import gov.noaa.nws.ncep.ui.nsharp.NsharpStationInfo; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpDataHandling; +import gov.noaa.nws.ncep.viz.common.soundingQuery.NcSoundingQuery; +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 java.util.List; +import java.util.Map; +import java.sql.Timestamp; + + +// Chin-T import com.raytheon.uf.common.sounding.SoundingLayer; + +public class NsharpPfcSoundingQuery { + /* + * Create python script to query data from edex + */ + /* + private static String scriptCreator( double lat, double lon, Timestamp refTime, Timestamp validTime, NcSoundingProfile.PfcSndType sndType) { + + StringBuilder query = new StringBuilder(); + query.append("import NcSoundingDataRequest\n"); + query.append("sndRq = NcSoundingDataRequest.NcSoundingDataRequest()\n"); + //query.append("sndRq.setLat(" +lat+ ")\n"); + //query.append("sndRq.setLon(" + lon + ")\n"); + query.append("sndRq.setRefTime(" +refTime.getTime() + "L)\n"); + query.append("sndRq.setValidTime(" +validTime.getTime() + "L)\n"); + query.append("sndRq.setSndType('" +sndType + "')\n"); + //query.append("return sndRq.execute()"); + query.append("return sndRq.getSoundingDataByLatLonArray([["+lat+","+lon+"]])"); + System.out.println(query.toString()); + return query.toString(); + } */ + + //Chin-T public static void getPfcSndData(List stnPtDataLineLst, Map> soundingLysLstMap) { + /*public static void getPfcSndData(List stnPtDataLineLst, Map> soundingLysLstMap) { + for(NsharpStationInfo StnPt : stnPtDataLineLst){ + //one StnPt represent one data time line + //NcSoundingProfile sndPf= PfcSoundingQuery.getPfcSndData(StnPt.getDatauri(),(float)StnPt.getLatitude(), (float)StnPt.getLongitude(), StnPt.getReftime(), + // StnPt.getRangestarttime(), PfcSoundingQuery.PfcSndType.NAMSND); + + //query using NcSoundingQuery class + double[][] latLon = {{StnPt.getLatitude(), StnPt.getLongitude()}}; + for(NsharpStationInfo.timeLineSpecific tmlinSpc: StnPt.getTimeLineSpList() ){ + Timestamp rangeTime = tmlinSpc.getTiemLine(); + String stnDispInfo = tmlinSpc.getDisplayInfo(); + NcSoundingCube cube = NcSoundingQuery.pfcSoundingQueryByLatLon(StnPt.getReftime().getTime(),rangeTime.getTime(), latLon, StnPt.getSndType(), NcSoundingLayer.DataType.ALLDATA, false, "-1"); + //System.out.println(stnDispInfo + " "+ rangeTime); + if(cube != null&& cube.getSoundingProfileList().size()>0){ + NcSoundingProfile sndPf = cube.getSoundingProfileList().get(0); + + List rtnSndLst = sndPf.getSoundingLyLst(); + // Chin-T List sndLyList = NsharpSoundingQueryCommon.convertToSoundingLayerList(rtnSndLst); + if(rtnSndLst != null && rtnSndLst.size() > 0){ + //update sounding data so they can be used by Skewt Resource and PalletWindow + //we should not have to do this, if EDEX has done this correctly.... + //sndLyList = NsharpDataHandling.updateObsSoundingDataForShow(sndLyList, (float)StnPt.getElevation()); + + //Remove sounding layers that not used by NSHARP + rtnSndLst = NsharpDataHandling.organizeSoundingDataForShow(rtnSndLst, sndPf.getStationElevation()); + //minimum rtnSndList size will be 2 (50 & 75 mb layers), but that is not enough + // We need at least 2 regular layers for plotting + if(rtnSndLst != null && rtnSndLst.size() > 4) + //TBD soundingLysLstMap.put(StnPt.getStnDisplayInfo(), rtnSndLst); + soundingLysLstMap.put(stnDispInfo, rtnSndLst); + //System.out.println(stnDispInfo + " with sound layer size of "+ rtnSndLst.size()); + } + } + } + } + }*/ + /* + * Chin, use sounding time range array to query. + * 2/14/2012 + */ + public static void getPfcSndDataBySndTmRange(List stnPtDataLineLst, Map> soundingLysLstMap) { + String stnDispInfo = ""; + NcSoundingCube cube; + for(NsharpStationInfo StnPt : stnPtDataLineLst){ + //one StnPt represent one data time line + //NcSoundingProfile sndPf= PfcSoundingQuery.getPfcSndData(StnPt.getDatauri(),(float)StnPt.getLatitude(), (float)StnPt.getLongitude(), StnPt.getReftime(), + // StnPt.getRangestarttime(), PfcSoundingQuery.PfcSndType.NAMSND); + + long[] rangeTimeArray = new long[StnPt.getTimeLineSpList().size()]; + int i=0; + for(NsharpStationInfo.timeLineSpecific tmlinSpc: StnPt.getTimeLineSpList() ){ + Timestamp rangeTime = tmlinSpc.getTiemLine(); + rangeTimeArray[i]=rangeTime.getTime(); + i++; + } + //chin for testing pfcSoundingQueryByLatLon() + //double[][] latLon = new double [1][2]; + //latLon[0][0]=StnPt.getLatitude(); + //latLon[0][1]=StnPt.getLongitude(); + //cube = NcSoundingQuery.pfcSoundingQueryByLatLon(StnPt.getReftime().getTime(), rangeTimeArray[0],latLon , StnPt.getSndType(), NcSoundingLayer.DataType.ALLDATA, false, "-1"); + //end test + cube = NcSoundingQuery.pfcSoundingQueryByRangeTimeArray(StnPt.getReftime().getTime(), + rangeTimeArray, StnPt.getLatitude(),StnPt.getLongitude(), StnPt.getSndType(), NcSoundingLayer.DataType.ALLDATA, false, "-1"); + if(cube != null&& cube.getSoundingProfileList().size()>0){ + for(NcSoundingProfile sndPf : cube.getSoundingProfileList()){ + List rtnSndLst = sndPf.getSoundingLyLst(); + if(rtnSndLst != null && rtnSndLst.size() > 0){ + rtnSndLst = NsharpDataHandling.organizeSoundingDataForShow(rtnSndLst, sndPf.getStationElevation()); + //minimum rtnSndList size will be 2 (50 & 75 mb layers), but that is not enough + // We need at least 2 regular layers for plotting + if(rtnSndLst != null && rtnSndLst.size() > 4){ + stnDispInfo="NA"; + for(int j=0; j < StnPt.getTimeLineSpList().size(); j++ ){ + NsharpStationInfo.timeLineSpecific tmlinSpcj = StnPt.getTimeLineSpList().get(j); + //System.out.println("rtnSndTIme="+ sndPf.getFcsTime() + " requestTime"+j+"="+tmlinSpcj.getTiemLine().getTime()); + if(tmlinSpcj.getTiemLine().getTime()== sndPf.getFcsTime()){ + stnDispInfo = tmlinSpcj.getDisplayInfo(); + break; + } + } + soundingLysLstMap.put(stnDispInfo, rtnSndLst); + + //System.out.println(stnDispInfo + " with sound layer size of "+ rtnSndLst.size()); + } + } + } + } + } + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/map/NsharpSoundingQueryCommon.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/map/NsharpSoundingQueryCommon.java new file mode 100644 index 0000000000..e6bbc0a61b --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/map/NsharpSoundingQueryCommon.java @@ -0,0 +1,46 @@ +package gov.noaa.nws.ncep.ui.nsharp.display.map; +/** + * + * gov.noaa.nws.ncep.ui.nsharp.display.map.NsharpSoundingQueryCommon + * + * This java class performs the NSHARP Modal functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 10/2010	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingLayer; + +import java.util.ArrayList; +import java.util.List; + +import com.raytheon.uf.common.sounding.SoundingLayer; + +public class NsharpSoundingQueryCommon { + public static List convertToSoundingLayerList(List sndLst){ + List newLst = new ArrayList(); + for(NcSoundingLayer inLayer: sndLst){ + SoundingLayer outLayer = new SoundingLayer(); + outLayer.setDewpoint(inLayer.getDewpoint()); + outLayer.setTemperature(inLayer.getTemperature()); + outLayer.setPressure(inLayer.getPressure()); + outLayer.setGeoHeight(inLayer.getGeoHeight()); + outLayer.setWindDirection(inLayer.getWindDirection()); + outLayer.setWindSpeed(inLayer.getWindSpeed()); + outLayer.setOmega(inLayer.getOmega()); + + newLst.add(outLayer); + } + return newLst; + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpAbstractPaneResource.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpAbstractPaneResource.java new file mode 100644 index 0000000000..634e1e0817 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpAbstractPaneResource.java @@ -0,0 +1,289 @@ +package gov.noaa.nws.ncep.ui.nsharp.display.rsc; +/** + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/23/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + +import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingLayer; +import gov.noaa.nws.ncep.ui.nsharp.NsharpGraphProperty; +import gov.noaa.nws.ncep.ui.nsharp.NsharpLineProperty; +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpAbstractPaneDescriptor; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpNative; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpNativeConstants; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import javax.measure.converter.UnitConverter; +import javax.measure.unit.NonSI; +import javax.measure.unit.SI; + +import org.eclipse.swt.graphics.RGB; +import org.eclipse.swt.graphics.Rectangle; + +import com.raytheon.uf.common.time.DataTime; +import com.raytheon.uf.viz.core.IExtent; +import com.raytheon.uf.viz.core.IGraphicsTarget; +import com.raytheon.uf.viz.core.IGraphicsTarget.LineStyle; +import com.raytheon.uf.viz.core.PixelExtent; +import com.raytheon.uf.viz.core.drawables.IFont; +import com.raytheon.uf.viz.core.drawables.PaintProperties; +import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.uf.viz.core.rsc.AbstractResourceData; +import com.raytheon.uf.viz.core.rsc.AbstractVizResource; +import com.raytheon.uf.viz.core.rsc.LoadProperties; +import com.raytheon.uf.viz.core.rsc.capabilities.ColorableCapability; +import com.raytheon.uf.viz.core.rsc.capabilities.OutlineCapability; +import com.raytheon.viz.core.ColorUtil; +import com.raytheon.viz.core.graphing.WGraphics; +import com.vividsolutions.jts.geom.Coordinate; + +public class NsharpAbstractPaneResource extends AbstractVizResource{ + NsharpNative nsharpNative=null; + protected IGraphicsTarget target=null; + protected Rectangle rectangle; + protected WGraphics world; + protected PixelExtent pe; + protected static final UnitConverter celciusToFahrenheit = SI.CELSIUS.getConverterTo(NonSI.FAHRENHEIT); + protected static final UnitConverter celciusToKelvin = SI.CELSIUS.getConverterTo(SI.KELVIN); + protected List soundingLys = null; + protected List previousSoundingLys = null; + protected NsharpResourceHandler rscHandler=null; + protected NsharpGraphProperty graphConfigProperty=null; + protected HashMap linePropertyMap=null; + protected int currentSoundingLayerIndex =0; + protected IFont font9=null; + protected IFont font10=null; + protected IFont font11=null; + protected IFont font12=null; + protected float currentFont10Size=10; + protected int commonLinewidth; + protected LineStyle commonLineStyle; + protected Coordinate interactiveTempPointCoordinate; + protected double currentZoomLevel=1; + protected int currentCanvasBoundWidth;//= NsharpConstants.DEFAULT_CANVAS_WIDTH; + protected int currentCanvasBoundHeight; //= NsharpConstants.DEFAULT_CANVAS_HEIGHT; + protected int myDefaultCanvasHeight;// = NsharpConstants.DEFAULT_CANVAS_HEIGHT*4/5; + protected int myDefaultCanvasWidth;//= NsharpConstants.DEFAULT_CANVAS_WIDTH/2; + protected double zoomLevel; + protected boolean resize=false; + public static final float INVALID_DATA = NsharpNativeConstants.NSHARP_NATIVE_INVALID_DATA; + protected Coordinate cursorCor; + + + public NsharpAbstractPaneResource(AbstractResourceData resourceData, + LoadProperties loadProperties, NsharpAbstractPaneDescriptor desc) { + super(resourceData, loadProperties); + descriptor = desc; + this.dataTimes = new ArrayList(); + + } + + @Override + protected void disposeInternal() { + if(font9!=null){ + font9.dispose(); + font9=null; + } + if(font10!=null){ + font10.dispose(); + font10=null; + } + if(font11!=null){ + font11.dispose(); + font11=null; + } + if(font12!=null){ + font12.dispose(); + font12=null; + } + this.target.dispose(); + } + + + @Override + protected void paintInternal(IGraphicsTarget target, + PaintProperties paintProps) throws VizException { + if(rscHandler== null) + return; + zoomLevel = paintProps.getZoomLevel(); + if( currentCanvasBoundWidth!= paintProps.getCanvasBounds().width || currentCanvasBoundHeight!=paintProps.getCanvasBounds().height){ + + currentCanvasBoundWidth= paintProps.getCanvasBounds().width; + currentCanvasBoundHeight=paintProps.getCanvasBounds().height; + adjustFontSize(currentCanvasBoundWidth,currentCanvasBoundHeight); + } + + if(zoomLevel != currentZoomLevel ){ + currentZoomLevel = zoomLevel; + handleZooming(); + + } + if(this.resize==true ){ + handleResize(); + } + } + + @Override + protected void initInternal(IGraphicsTarget target) throws VizException { + this.target = target; + this.font9 = target.initializeFont("Monospace", 9, null); + this.font10 = target.initializeFont("Monospace", 10, null); + this.font11 = target.initializeFont("Monospace", 11, null); + IFont.Style[] style = {IFont.Style.BOLD}; + this.font12 = target.initializeFont("Monospace", 12, style); + this.font9.setSmoothing(false); + this.font9.setScaleFont(false); + this.font10.setSmoothing(false); + this.font10.setScaleFont(false); + this.font11.setSmoothing(false); + this.font11.setScaleFont(false); + this.font12.setSmoothing(false); + this.font12.setScaleFont(false); + commonLinewidth = getCapability(OutlineCapability.class).getOutlineWidth(); + commonLineStyle = getCapability(OutlineCapability.class) + .getLineStyle(); + //nsharpNative = new NsharpNative(); + //System.out.println("NsharpDefaultPaneResource ::: initInternal with native "+ nsharpNative.toString()); + } + + @SuppressWarnings("deprecation") + public void resetData(List soundingLys, List prevsoundingLys){ + this.soundingLys = soundingLys; + this.previousSoundingLys = prevsoundingLys; + descriptor.setFrame(0); + } + + public WGraphics getWorld() { + return world; + } + + + protected void adjustFontSize(int canvasW, int canvasH ) { + float font9Size,font10Size,font11Size,font12Size; + + float fontAdjusted=0; + float fontBaseH=90f; //Chin: why 70 & 100? After many "try and error" experiments... + float fontBaseW=120f; + if(canvasH < myDefaultCanvasHeight && canvasW< myDefaultCanvasWidth){ + //both width and height are smaller than default + float wAdjust = (float)(myDefaultCanvasWidth-canvasW)/fontBaseW; + float hAdjust = (float)(myDefaultCanvasHeight-canvasH)/fontBaseH; + fontAdjusted = Math.max(wAdjust,hAdjust); + } + else if(canvasW< myDefaultCanvasWidth){ + // only width smaller than default + fontAdjusted = (float)(myDefaultCanvasWidth-canvasW)/fontBaseW; + } + else if(canvasH < myDefaultCanvasHeight ){ + // only height smaller than default + fontAdjusted = (float)(myDefaultCanvasHeight-canvasH)/fontBaseH; + } + //Chin: Can not bigger than 9, otherwise, fint9 size willbe negative. + //Why 8.8 ? After many "try and error" experiments... + if(fontAdjusted > 8.8) + fontAdjusted=8.8f; + + font9Size = 9-fontAdjusted; + font10Size = 10-fontAdjusted; + font11Size =11-fontAdjusted; + font12Size = 12-fontAdjusted; + + if(font9!=null){ + font9.dispose(); + } + font9 = target.initializeFont("Monospace", font9Size, null); + + if(font10!=null){ + font10.dispose(); + } + font10 = target.initializeFont("Monospace", font10Size, null); + if(font11!=null){ + font11.dispose(); + } + font11 = target.initializeFont("Monospace", font11Size, null); + if(font12!=null){ + font12.dispose(); + } + IFont.Style[] style = {IFont.Style.BOLD}; + font12 = target.initializeFont("Monospace", font12Size, style); + currentFont10Size = font10Size; + //System.out.println(descriptor.getPaneNumber()+": adjusted font10 size ="+currentFont10Size); + } + protected void magnifyFont(double zoomLevel) { + float magFactor = 1.0f / (float)zoomLevel; + font9.setMagnification(magFactor); + font10.setMagnification(magFactor); + font11.setMagnification(magFactor); + font12.setMagnification(magFactor); + } + @Override + public void setDescriptor(NsharpAbstractPaneDescriptor descriptor) { + super.setDescriptor(descriptor); + RGB rgb = ColorUtil.getNewColor(descriptor); + getCapability(ColorableCapability.class).setColor(rgb); + //System.out.println("screwT Rsc setDescriptor called"); + } + + public void setSoundingLys(List soundingLys) { + this.soundingLys = soundingLys; + } + + public HashMap getLinePropertyMap() { + return linePropertyMap; + } + + public void setLinePropertyMap( + HashMap linePropertyMap) { + this.linePropertyMap = linePropertyMap; + + } + + public NsharpGraphProperty getGraphConfigProperty() { + return graphConfigProperty; + } + + public void setGraphConfigProperty(NsharpGraphProperty graphConfigProperty) { + this.graphConfigProperty = graphConfigProperty; + } + + public NsharpResourceHandler getRscHandler() { + return rscHandler; + } + + public int getCurrentSoundingLayerIndex() { + return currentSoundingLayerIndex; + } + + public void setRscHandler(NsharpResourceHandler rscHandler) { + this.rscHandler = rscHandler; + } + + public void setNsharpNative(NsharpNative nsharpNative) { + this.nsharpNative = nsharpNative; + } + public void handleResize(){ + this.resize=false; + + } + public void setResize(boolean resize) { + this.resize = resize; + } + public void handleZooming(){ + + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpDataPaneResource.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpDataPaneResource.java new file mode 100644 index 0000000000..23d3e0edd5 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpDataPaneResource.java @@ -0,0 +1,3179 @@ +package gov.noaa.nws.ncep.ui.nsharp.display.rsc; +/** + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/23/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.background.NsharpGenericPaneBackground; +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpAbstractPaneDescriptor; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpNative.NsharpLibrary._lplvalues; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpNative.NsharpLibrary._parcel; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpNativeConstants; +import gov.noaa.nws.ncep.ui.nsharp.palette.NsharpParcelDialog; + +import java.util.List; + +import org.eclipse.swt.graphics.Rectangle; + +import com.raytheon.uf.viz.core.IExtent; +import com.raytheon.uf.viz.core.IGraphicsTarget; +import com.raytheon.uf.viz.core.IGraphicsTarget.HorizontalAlignment; +import com.raytheon.uf.viz.core.IGraphicsTarget.TextStyle; +import com.raytheon.uf.viz.core.IGraphicsTarget.VerticalAlignment; +import com.raytheon.uf.viz.core.PixelExtent; +import com.raytheon.uf.viz.core.drawables.PaintProperties; +import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.uf.viz.core.rsc.AbstractResourceData; +import com.raytheon.uf.viz.core.rsc.LoadProperties; +import com.raytheon.viz.core.graphing.LineStroke; +import com.raytheon.viz.core.graphing.WindBarbFactory; +import com.sun.jna.ptr.FloatByReference; +import com.vividsolutions.jts.geom.Coordinate; + +public class NsharpDataPaneResource extends NsharpAbstractPaneResource{ + private int currentTextChapter= 1; + private int[] pageDisplayOrderNumberArray; //index is the real page defined in NsharpConstants to be shown, value is the order number of this page. index 0 point to a dummy. + private static final String NO_DATA = "NO VALID DATA AVAILABLE"; + private double charHeight = NsharpConstants.CHAR_HEIGHT_; + private double curY; + private double parcelLineYStart, parcelLineYEnd; + private double firstToken, secondToken, thirdToken, forthToken, fifthToken, sixthToken; + private FloatByReference fValue= new FloatByReference(0); + private FloatByReference fValue1= new FloatByReference(0); + private FloatByReference fValue2= new FloatByReference(0); + private FloatByReference fValue3= new FloatByReference(0); + private FloatByReference fValue4= new FloatByReference(0); + private FloatByReference fValue5= new FloatByReference(0); + private FloatByReference fValue6= new FloatByReference(0); + private FloatByReference fValue7= new FloatByReference(0); + private FloatByReference fValue8= new FloatByReference(0); + private PixelExtent extent; + // physical number of panel in editor display + // total software defined panels to be displayed + private Rectangle[] panelRectArray= new Rectangle[NsharpConstants.dsiplayPanelSize] ; + + private NsharpGenericPaneBackground dataPanel1Background; + private NsharpGenericPaneBackground dataPanel2Background; + private int dataPaneWidth= NsharpConstants.DATA_PANE_REC_WIDTH; + private int dataPaneHeight= NsharpConstants.DATA_PANE_REC_HEIGHT; + //private int dataWidth = NsharpConstants.DATAPANEL1_WIDTH; + //private int dataHeight = NsharpConstants.DATAPANEL1_HEIGHT; + private int dp1XOrig = NsharpConstants.DATAPANEL1_X_ORIG; + private int dp1YOrig = NsharpConstants.DATAPANEL1_Y_ORIG; + private int dp2XOrig = NsharpConstants.DATAPANEL2_X_ORIG; + private int dp2YOrig = NsharpConstants.DATAPANEL2_Y_ORIG; + private float xRatio=1; + private float yRatio=1; + + private short currentParcel= NsharpNativeConstants.PARCELTYPE_MOST_UNSTABLE;; + //private int parcelLinesInPhysicalPanelNumber; + private boolean sumP1Visible = false; + public NsharpDataPaneResource(AbstractResourceData resourceData, + LoadProperties loadProperties, NsharpAbstractPaneDescriptor desc) { + super(resourceData, loadProperties, desc); + dataPanel1Background = new NsharpGenericPaneBackground(new Rectangle(NsharpConstants.DATAPANEL1_X_ORIG,NsharpConstants.DATAPANEL1_Y_ORIG, + NsharpConstants.DATAPANEL1_WIDTH,NsharpConstants.DATAPANEL1_HEIGHT)); + dataPanel2Background = new NsharpGenericPaneBackground(new Rectangle(NsharpConstants.DATAPANEL2_X_ORIG,NsharpConstants.DATAPANEL2_Y_ORIG, + NsharpConstants.DATAPANEL2_WIDTH,NsharpConstants.DATAPANEL2_HEIGHT)); + } + + + @Override + protected void paintInternal(IGraphicsTarget target, + PaintProperties paintProps) throws VizException { + super.paintInternal(target, paintProps); + dataPanel1Background.paint(target, paintProps); + dataPanel2Background.paint(target, paintProps); + if(rscHandler== null) + return; + + if((soundingLys != null) && (soundingLys.size()>= 4)) + { + this.font10.setSmoothing(false); + this.font10.setScaleFont(false); + // write to panels + //Chin: Note: + // Current display algorithm is: One chapter = 2 pages. show 2 pages at one time. + // i.e. show current page and its next page with 2 physical panels. + // currently, we have total of 10 "pages" to display on 2 "physical + // display panels per design. + sumP1Visible = false; + currentTextChapter = rscHandler.getCurrentTextChapter(); + for (int i = currentTextChapter*2 -1, physicalPanelNum = 1; i < currentTextChapter*2 + (NsharpConstants.dsiplayPanelSize-1); i++, physicalPanelNum++){ + int pageNum = i%10; + if (pageNum==0) + pageNum=10; + + drawPanel(target,pageNum,physicalPanelNum); + //System.out.println("current chapter="+currentTextChapter+" page num="+pageNum+ " disPanel="+physicalPanelNum); + } + + } + } + @Override + protected void initInternal(IGraphicsTarget target) throws VizException { + super.initInternal(target); + currentCanvasBoundWidth = NsharpConstants.DATA_PANE_REC_WIDTH; + currentCanvasBoundHeight = NsharpConstants.DATA_PANE_REC_HEIGHT; + myDefaultCanvasWidth = NsharpConstants.DATA_PANE_REC_WIDTH; + myDefaultCanvasHeight = NsharpConstants.DATA_PANE_REC_HEIGHT; + panelRectArray[0] = dataPanel1Background.getRectangle(); + panelRectArray[1] = dataPanel2Background.getRectangle(); + dataPanel1Background.initInternal(target); + dataPanel2Background.initInternal(target); + } + + public void setCurrentParcel(short currentParcel) { + this.currentParcel = currentParcel; + } + + public short getCurrentParcel() { + return currentParcel; + } + public void resetCurrentParcel() { + currentParcel= NsharpNativeConstants.PARCELTYPE_MOST_UNSTABLE; + } + + private void drawPanel(IGraphicsTarget target, int pageOrderNumber, int dsiplayPanelNumber + ) throws VizException { + if(pageOrderNumber > NsharpConstants.PAGE_MAX_NUMBER || dsiplayPanelNumber > NsharpConstants.dsiplayPanelSize) + return; + int physicalPanelNumber = dsiplayPanelNumber -1; + int displayPageNumber=0; + // find a page with its order number equal to pageOrderNumber + for(int i=1; i <= NsharpConstants.PAGE_MAX_NUMBER; i++){ + if(pageDisplayOrderNumberArray[i]==pageOrderNumber) + displayPageNumber =i; // array index is the page number and value is the order number + } + switch(displayPageNumber){ + case NsharpConstants.PAGE_SUMMARY1: + drawPanel1(target, panelRectArray[physicalPanelNumber]); + break; + case NsharpConstants.PAGE_SUMMARY2: + drawPanel2(target, panelRectArray[physicalPanelNumber]); + break; + case NsharpConstants.PAGE_PARCEL_DATA: + drawPanel3(target, panelRectArray[physicalPanelNumber]); + break; + case NsharpConstants.PAGE_THERMODYNAMIC_DATA: + drawPanel4(target, panelRectArray[physicalPanelNumber]); + break; + case NsharpConstants.PAGE_OPC_DATA: + drawPanel5(target, panelRectArray[physicalPanelNumber]); + break; + case NsharpConstants.PAGE_MIXING_HEIGHT: + drawPanel6(target, panelRectArray[physicalPanelNumber]); + break; + case NsharpConstants.PAGE_STORM_RELATIVE: + drawPanel7(target, panelRectArray[physicalPanelNumber]); + break; + case NsharpConstants.PAGE_MEAN_WIND: + drawPanel8(target, panelRectArray[physicalPanelNumber]); + break; + case NsharpConstants.PAGE_CONVECTIVE_INITIATION: + drawPanel9(target, panelRectArray[physicalPanelNumber]); + break; + case NsharpConstants.PAGE_SEVERE_POTENTIAL: + drawPanel10(target, panelRectArray[physicalPanelNumber]); + break; + default: + break; + } + } + public void setUserPickedParcelLine(Coordinate c) { + //make sure is in virtualPanel 1 as Parcel Line is defined in it. + if(rscHandler != null){ + if(!sumP1Visible) + return; + } + else + return; + //System.out.println("setUserPickedParcelLine c.y="+ c.y+ " parcelLineYStart="+ parcelLineYStart+" parcelLineYEnd="+parcelLineYEnd); + //make sure within parcel line area + if(c.y >= parcelLineYStart && c.y <=parcelLineYEnd){ + int index =((int)(c.y - parcelLineYStart))/ (int)charHeight; + if( index < NsharpNativeConstants.PARCEL_MAX){ + currentParcel = (short) (index + 1); + //System.out.println("setUserPickedParcelLine at "+ currentParcel); + //notify skewtRsc + rscHandler.updateParcelFromPanel(currentParcel); + } + } + } + @SuppressWarnings("deprecation") + private void drawPanel1(IGraphicsTarget target, Rectangle rect + ) throws VizException { + sumP1Visible =true; + + extent = new PixelExtent(rect); + target.setupClippingPlane(extent); + //font10 = target.initializeFont(fontName, 10, null); + /* + * Chin's NOTE:::: + * This pages based on newer version nsharp from SPC. We dont have source code as of 7/8/2010. + * Therefore, coding is purly based on a captured screen shot given by SPC's John Hart. + * This function is coded based on native nsharp codes which can be found + * in other pages's show functions. + * + * + */ + //if we can not Interpolates a temp with 700 mb pressure, then we dont have enough raw data + if ((nsharpNative.nsharpLib.qc(nsharpNative.nsharpLib.itemp(700.0F)) == 0)) + { + target.drawString(font10, " " +NO_DATA, rect.x, rect.y, 0.0, + TextStyle.NORMAL, NsharpConstants.color_cyan, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + return; + } + + //call get_topBotPres to set p_top and p_bot + FloatByReference topPF= new FloatByReference(0); + FloatByReference botPF= new FloatByReference(0); + nsharpNative.nsharpLib.get_effectLayertopBotPres(topPF, botPF); + + String textStr, CAPE3Str="3CAPE= M", NCAPEStr = "NCAPE= M"; + curY=rect.y; + + // + // Start with Parcel Data + // + double widthGap = (rect.width-100*xRatio)/6; + firstToken=rect.x+100.0*xRatio; + secondToken=firstToken+widthGap; + thirdToken=secondToken+widthGap; + forthToken=thirdToken+widthGap; + fifthToken = forthToken+widthGap; + sixthToken = fifthToken+widthGap; + target.drawString(font10, "Summary P1", rect.x, rect.y , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + target.drawString(font10, "CAPE", firstToken, rect.y , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + target.drawString(font10, "CINH", secondToken, rect.y , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + target.drawString(font10, "LCL", thirdToken, rect.y , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + target.drawString(font10, "LI", forthToken, rect.y , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + target.drawString(font10, "LFC", fifthToken, rect.y , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + target.drawString(font10, "EL", sixthToken, rect.y , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY+charHeight; + target.drawLine(rect.x, curY, 0.0, rect.x+rect.width, curY, 0.0, NsharpConstants.color_white, 1); + parcelLineYStart = curY; + float layerPressure = 0; + + + //get current parcel type here to use it later + //if(NsharpParcelDialog.getAccess() != null){ + + //currentParcel = NsharpParcelDialog.getAccess().getCurrentParcel(); + //if(currentParcel == NsharpNativeConstants.PARCELTYPE_USER_DEFINED) + // layerPressure = NsharpParcelDialog.getAccess().getUserDefdParcelMb(); + //else + //layerPressure = NsharpNativeConstants.parcelToLayerMap.get(currentParcel); + //} + + //else {//default - use mU + // currentParcel = NsharpNativeConstants.PARCELTYPE_MOST_UNSTABLE; + // layerPressure = NsharpNativeConstants.parcelToLayerMap.get(currentParcel); + //} + //get user selected parcel type + _lplvalues lpvls; + _parcel pcl; + for (short parcelNumber=1; parcelNumber <= NsharpNativeConstants.PARCEL_MAX ; parcelNumber++){ + if(parcelNumber == currentParcel ){ + PixelExtent pixExt = new PixelExtent(rect.x, rect.x+ rect.width,curY, curY+charHeight); + //target.setupClippingPlane(pixExt); + target.drawRect(pixExt, NsharpConstants.color_gold, 1.0f, 1.0f); + } + //call native define_parcel() with parcel type and user defined pressure (if user defined it) + textStr = NsharpNativeConstants.parcelToTypeStrMap.get(parcelNumber); + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + float layerPressure1 = NsharpNativeConstants.parcelToLayerMap.get(parcelNumber); + if(parcelNumber == NsharpNativeConstants.PARCELTYPE_USER_DEFINED){ + //get user selected parcel type, if available + if(NsharpParcelDialog.getAccess() != null){ + layerPressure1 = NsharpParcelDialog.getAccess().getUserDefdParcelMb(); + } + } + //System.out.println("drawPanel1-1 called define_parcel pType="+parcelNumber+" pre="+ layerPressure1); + + nsharpNative.nsharpLib.define_parcel(parcelNumber,layerPressure1); + + lpvls = new _lplvalues(); + nsharpNative.nsharpLib.get_lpvaluesData(lpvls); + + float sfctemp, sfcdwpt, sfcpres; + sfctemp = lpvls.temp; + sfcdwpt = lpvls.dwpt; + sfcpres = lpvls.pres; + // get parcel data by calling native nsharp parcel() API. value is returned in pcl + pcl = new _parcel(); + nsharpNative.nsharpLib.parcel( -1.0F, -1.0F, sfcpres, sfctemp, sfcdwpt, pcl); + //draw parcel name + //draw CAPE + if(pcl.bplus != NsharpNativeConstants.NSHARP_LEGACY_LIB_INVALID_DATA) + target.drawString(font10, String.format( "%.0f", pcl.bplus), firstToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + else + target.drawString(font10, "M", firstToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + //draw CINH + if(pcl.bminus != NsharpNativeConstants.NSHARP_LEGACY_LIB_INVALID_DATA) + target.drawString(font10, String.format("%.0f", pcl.bminus), secondToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + else + target.drawString(font10, "M", secondToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + //draw LCL + float lcl = nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.lclpres )); + if(lcl != NsharpNativeConstants.NSHARP_LEGACY_LIB_INVALID_DATA) + target.drawString(font10, String.format("%.0fm", lcl), thirdToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + else + target.drawString(font10, "M", thirdToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + //draw LI + if(pcl.li5 != NsharpNativeConstants.NSHARP_LEGACY_LIB_INVALID_DATA) + target.drawString(font10, String.format("%5.0f", pcl.li5), forthToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + else + target.drawString(font10, "M", forthToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + //draw LFC + float lfc = nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.lfcpres )); + if(lfc != NsharpNativeConstants.NSHARP_LEGACY_LIB_INVALID_DATA) + target.drawString(font10, String.format("%.0fm", lfc), fifthToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + else + target.drawString(font10, "M", fifthToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + // draw EL + float el = nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.elpres )); + if(el != NsharpNativeConstants.NSHARP_LEGACY_LIB_INVALID_DATA) + target.drawString(font10, String.format("%.0f'", NsharpConstants.metersToFeet.convert(el)), sixthToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + else + target.drawString(font10, "M", sixthToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + curY = curY+charHeight; + //get 3CAPE value for later to use + if(parcelNumber == NsharpNativeConstants.PARCELTYPE_MEAN_MIXING){ + if(nsharpNative.nsharpLib.qc(pcl.cape3km)==1) { + CAPE3Str = String.format("3CAPE=%.0fJ/kg", pcl.cape3km); + } + else { + CAPE3Str = "3CAPE= M"; + } + }//get NCAPE value for later to use + else if(parcelNumber == NsharpNativeConstants.PARCELTYPE_MOST_UNSTABLE){ + float j1 = pcl.bplus; + float j2 = nsharpNative.nsharpLib.ihght(pcl.elpres) - nsharpNative.nsharpLib.ihght(pcl.lfcpres); + if(nsharpNative.nsharpLib.qc(j1/j2)==1) { + NCAPEStr = String.format("NCAPE=%.2f",j1/j2); + } + else { + NCAPEStr = "NCAPE= M"; + } + } + } + target.drawLine(rect.x, curY, 0.0, rect.x+rect.width, curY, 0.0, NsharpConstants.color_white, 1); + parcelLineYEnd= curY; + if(currentParcel == NsharpNativeConstants.PARCELTYPE_USER_DEFINED){ + if(NsharpParcelDialog.getAccess() != null){ + layerPressure = NsharpParcelDialog.getAccess().getUserDefdParcelMb(); + } + else + layerPressure = NsharpNativeConstants.parcelToLayerMap.get(currentParcel); + } + else + layerPressure = NsharpNativeConstants.parcelToLayerMap.get(currentParcel); + //System.out.println("drawPanel1-2 called define_parcel pType="+currentParcel+" pre="+ layerPressure); + + //reset and define current parcel + nsharpNative.nsharpLib.define_parcel(currentParcel,layerPressure); + lpvls = new _lplvalues(); + nsharpNative.nsharpLib.get_lpvaluesData(lpvls); + + float sfctemp, sfcdwpt, sfcpres; + sfctemp = lpvls.temp; + sfcdwpt = lpvls.dwpt; + sfcpres = lpvls.pres; + // get parcel data by calling native nsharp parcel() API. value is returned in pcl + pcl = new _parcel(); + nsharpNative.nsharpLib.parcel( -1.0F, -1.0F, sfcpres, sfctemp, sfcdwpt, pcl); + // + // THERMO DYNAMIC DATA + // + firstToken = rect.x + rect.width/48*11*xRatio; + secondToken = rect.x + rect.width/48*27*xRatio; + thirdToken = rect.x + rect.width/48*38*xRatio; + + fValue.setValue(0); + nsharpNative.nsharpLib.precip_water(fValue, -1.0F, -1.0F); + if(nsharpNative.nsharpLib.qc(fValue.getValue())==1) { + textStr = String.format("PW=%.2f in", fValue.getValue()); + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + else { + target.drawString(font10, "PW=M", rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + //3CAPE...value was retrieved earlier + target.drawString(font10, CAPE3Str, firstToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + fValue.setValue(0); + float wbzft = nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(nsharpNative.nsharpLib.wb_lvl( 0, fValue )))); + if(nsharpNative.nsharpLib.qc(wbzft)==1) { + textStr = String.format("WBZ=%.0f'",wbzft); + } + else { + textStr = "WBZ= M"; + } + target.drawString(font10, textStr, secondToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + //WNDG + float wndg = nsharpNative.nsharpLib.damaging_wind(); + if(nsharpNative.nsharpLib.qc(wndg)==1) { + textStr = String.format("WNDG=%.2f",wndg); + } + else { + textStr = "WNDG= M"; + } + + target.drawString(font10, textStr, thirdToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + + curY = curY+charHeight; //move to new line + + fValue.setValue(0); + nsharpNative.nsharpLib.k_index(fValue); + if(nsharpNative.nsharpLib.qc(fValue.getValue())==1) { + textStr = String.format("K=%.0f",fValue.getValue()); + } + else { + textStr = "K= M"; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + //DCAPE + //fValue1 will be used for DownT to use + float dcape= nsharpNative.nsharpLib.dcape(fValue, fValue1); + float downT = fValue1.getValue(); + if(nsharpNative.nsharpLib.qc(dcape)==1) { + textStr = String.format("DCAPE=%.0fJ/kg",dcape); + } + else { + textStr = "DCAPE= M"; + } + target.drawString(font10, textStr, firstToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + //FZL + fValue.setValue(0); + float fgzft = nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(nsharpNative.nsharpLib.temp_lvl( 0, fValue )))); + if(nsharpNative.nsharpLib.qc(fgzft)==1) { + textStr = String.format("FZL=%.0f'",fgzft); + } + else { + textStr = "FZL= M"; + } + target.drawString(font10, textStr, secondToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + //ESP + float esp= nsharpNative.nsharpLib.esp(); + if(nsharpNative.nsharpLib.qc(esp)==1) { + textStr = String.format("ESP=%.2f",esp); + } + else { + textStr = "ESP= M"; + } + target.drawString(font10, textStr, thirdToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + curY = curY+charHeight; //move to new line + + fValue.setValue(0); + //MidRH + nsharpNative.nsharpLib.get_surface(fValue1, fValue2, fValue3); //fValue 2 and fValue3 are not of concern here + nsharpNative.nsharpLib.mean_relhum( fValue, fValue1.getValue() - 150, fValue1.getValue() - 350 ); + if(nsharpNative.nsharpLib.qc(fValue.getValue())==1) { + textStr = String.format("MidRH=%.0f%c",fValue.getValue(),NsharpConstants.PERCENT_SYMBOL); + } + else { + textStr = "MidRH = M"; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + //DownT + downT = nsharpNative.nsharpLib.ctof(downT) ; //convert to F + if(nsharpNative.nsharpLib.qc( downT)==1) { + textStr = String.format("DownT=%.0fF",downT); + } + else { + textStr = "DownT= M"; + } + target.drawString(font10, textStr, firstToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + //ConvT + fValue.setValue(0); + float conTempF = nsharpNative.nsharpLib.ctof(nsharpNative.nsharpLib.cnvtv_temp( fValue, -1)); + + if(nsharpNative.nsharpLib.qc( conTempF )==1) { + textStr = String.format("ConvT=%.0fF",conTempF); + } + else { + textStr = "ConvT = M"; + } + target.drawString(font10, textStr, secondToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + //MMP: Coniglio MCS Maintenance Parameter + float mmp = nsharpNative.nsharpLib.coniglio1(); + if(nsharpNative.nsharpLib.qc( mmp )==1) { + textStr = String.format("MMP=%.2f",mmp); + } + else { + textStr = "MMP= M"; + } + target.drawString(font10, textStr, thirdToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + + curY = curY+charHeight; //move to new line + + fValue.setValue(0); + fValue1.setValue(0); + // get surface pressure (fValue1) before getting mean LRH value + nsharpNative.nsharpLib.get_surface(fValue1, fValue2, fValue3); //fValue 2 and fValue3 are not of concern here + nsharpNative.nsharpLib.mean_relhum( fValue, -1.0F, fValue1.getValue() - 150 ); + if(nsharpNative.nsharpLib.qc(fValue.getValue())==1) { + //textStr = NsharpNativeConstants.THERMO_MEANLRH_LINE; + textStr = String.format("LowRH=%.0f%c",fValue.getValue(),NsharpConstants.PERCENT_SYMBOL); + } + else { + textStr = "LowRH = M"; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + + fValue.setValue(0); + nsharpNative.nsharpLib.mean_mixratio(fValue, -1.0F, -1.0F); + if(nsharpNative.nsharpLib.qc(fValue.getValue())==1) { + textStr = String.format("MeanW=%.1fg/kg",fValue.getValue()); + } + else { + textStr = "MeanW = M"; + } + target.drawString(font10, textStr, firstToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + + fValue.setValue(0); + float maxT= nsharpNative.nsharpLib.ctof(nsharpNative.nsharpLib.max_temp( fValue, -1)); + if(nsharpNative.nsharpLib.qc(maxT)==1) { + textStr = String.format("MaxT=%.0fF",maxT); + } + else { + textStr = "MaxT= M"; + } + target.drawString(font10, textStr, secondToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + //NCAPE + /*float j1 = pcl.bplus; + float j2 = nsharpNative.nsharpLib.ihght(pcl.elpres) - nsharpNative.nsharpLib.ihght(pcl.lfcpres); + if(nsharpNative.nsharpLib.qc(j1/j2)==1) { + textStr = String.format("NCAPE=%.2f",j1/j2); + } + else { + textStr = "NCAPE= M"; + } */ + target.drawString(font10, NCAPEStr, thirdToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + curY = curY+charHeight; //move to new line + target.drawLine(rect.x, curY, 0.0, rect.x+rect.width, curY, 0.0, NsharpConstants.color_white, 1); + + //draw a vertical line from 2/3 of x axis + firstToken = rect.x + (rect.width/3*2+ 25)*xRatio; + target.drawLine(firstToken-10*xRatio, curY, 0.0, firstToken-10*xRatio, rect.y+rect.height, 0.0, NsharpConstants.color_white, 1); + + // more thermodynamic data + // the following follow show_parcel_new() at xwvid.c of bigNsharp implementation + // sfc-3km Lapse rate + // + float htsfc =0; + float tDelta = nsharpNative.nsharpLib.aglT(0, 3000); + fValue.setValue(0); + // get surface pressure (fValue) + nsharpNative.nsharpLib.get_surface(fValue, fValue1, fValue2); + if(nsharpNative.nsharpLib.qc(fValue.getValue())==1) { + htsfc = nsharpNative.nsharpLib.ihght(fValue.getValue()); + // get sfc to (sfc+ 3 km) pressure (fValue) + float threekmPre = nsharpNative.nsharpLib.ipres(htsfc+3000); + fValue1.setValue(0); + nsharpNative.nsharpLib.lapse_rate( fValue1, fValue.getValue(), threekmPre ); + if(nsharpNative.nsharpLib.qc(fValue1.getValue())==1) { + textStr = String.format("sfc-3km AglLapseRate=%.0fC/%.1fC/km", tDelta, fValue1.getValue()); + } + else { + textStr = "sfc-3km AglLapseRate= M"; + } + } + else { + textStr = "sfc-3km AglLapseRate= M"; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + + //"Supercell" + float smdir = rscHandler.getSmWindDir();//bkRsc.getSmDir(); #10438 + float smspd = rscHandler.getSmWindSpd();//bkRsc.getSmSpd(); + float superCell = nsharpNative.nsharpLib.scp(smdir, smspd); + if(nsharpNative.nsharpLib.qc(superCell)==1) { + textStr = String.format("Supercell=%.1f",superCell); + } + else { + textStr = "Supercell = M"; + } + target.drawString(font10, textStr, firstToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_yellow, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + curY = curY+charHeight; //move to new line + + // 3km-6km Lapse rate + fValue.setValue(0); + fValue1.setValue(0); + tDelta = nsharpNative.nsharpLib.aglT(3000, 6000); + // get 3 and 6km pressure (fValue) + float threekmPre = nsharpNative.nsharpLib.ipres(htsfc+3000); + float sixkmPre = nsharpNative.nsharpLib.ipres(htsfc+6000); + fValue1.setValue(0); + nsharpNative.nsharpLib.lapse_rate( fValue1, threekmPre,sixkmPre ); + if(nsharpNative.nsharpLib.qc(fValue1.getValue())==1) { + textStr = String.format("3-6km AglLapseRate=%.0fC/%.1fC/km", tDelta, fValue1.getValue()); + + } + else { + textStr = "3-6km AglLapseRate = M"; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + // "STP (CIN)" + float cin = nsharpNative.nsharpLib.sigtorn_cin(smdir, smspd); + if(nsharpNative.nsharpLib.qc(cin)==1) { + textStr = String.format("STP(CIN)=%.1f",cin); + } + else { + textStr = "STP(CIN) = M"; + } + target.drawString(font10, textStr, firstToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + curY = curY+charHeight; //move to new line + + + fValue.setValue(0); + fValue1.setValue(0); + //nsharpNative.nsharpLib.vert_tot(fValue); + float delta= nsharpNative.nsharpLib.itemp(850) - nsharpNative.nsharpLib.itemp(500); + nsharpNative.nsharpLib.lapse_rate( fValue1, 850.0F, 500.0F ); + if(nsharpNative.nsharpLib.qc(delta)==1 && nsharpNative.nsharpLib.qc(fValue1.getValue())==1) { + textStr = String.format("850-500mb LapseRate=%3.0fC/%3.1fC/km",delta, fValue1.getValue()); + } + else { + textStr = "850-500mb LapseRate = M"; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + // "STP(fixed)" + float fixedStp = nsharpNative.nsharpLib.sigtorn_fixed(smdir, smspd); + if(nsharpNative.nsharpLib.qc(fixedStp)==1) { + textStr = String.format("STP(fixed)=%.1f",fixedStp); + } + else { + textStr = "STP(fixed) = M"; + } + target.drawString(font10, textStr, firstToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + curY = curY+charHeight; //move to new line + + fValue.setValue(0); + fValue1.setValue(0); + //nsharpNative.nsharpLib.delta_t(fValue); + nsharpNative.nsharpLib.lapse_rate( fValue1, 700.0F, 500.0F ); + delta= nsharpNative.nsharpLib.itemp(700) - nsharpNative.nsharpLib.itemp(500); + if(nsharpNative.nsharpLib.qc(/*fValue.getValue())*/delta)==1 && nsharpNative.nsharpLib.qc(fValue1.getValue())==1) { + textStr = String.format("700-500mb LapseRate=%3.0fC/%3.1fC/km",delta/*fValue.getValue()*/, fValue1.getValue()); + } + else { + textStr = "700-500mb LapseRate = M"; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + // "SHIP" + float ship = nsharpNative.nsharpLib.cave_ship(); + if(nsharpNative.nsharpLib.qc(ship)==1) { + textStr = String.format("SHIP=%4.1f",ship); + } + else + textStr = "SHIP = M"; + target.drawString(font10, textStr, firstToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_red, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + //System.out.println("shop="+ship); + //font10.dispose(); + } + @SuppressWarnings("deprecation") + private void drawPanel2(IGraphicsTarget target, Rectangle rect) + throws VizException { + /* + * Chin's NOTE:::: + * This pages based on BigNsharp + * show_shear_new() at xwvid3.c + * + */ + extent = new PixelExtent(rect); + target.setupClippingPlane(extent); + //font10 = target.initializeFont(fontName, 10, null); + curY= rect.y; + String textStr; + + //if we can not Interpolates a temp with 700 mb pressure, then we dont have enough raw data + if (nsharpNative.nsharpLib.qc(nsharpNative.nsharpLib.itemp(700.0F)) == 0) + { + target.drawString(font10, " " +NO_DATA, rect.x, rect.y, 0.0, + TextStyle.NORMAL, NsharpConstants.color_cyan, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + return; + } + + // + // Start with Header SRH(m%c/s%c) Shear(kt) MnWind SRW + // + /*firstToken=rect.x+80.0; + secondToken=firstToken+80; + thirdToken=secondToken+80; + forthToken=thirdToken+80;*/ + double widthGap = (rect.width)/5; + firstToken=rect.x+widthGap; + secondToken=firstToken+widthGap; + thirdToken=secondToken+widthGap; + forthToken=thirdToken+widthGap; + target.drawString(font10, "Summary P2", rect.x, rect.y , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + textStr = String.format("SRH(m%c/s%c)",NsharpConstants.SQUARE_SYMBOL, NsharpConstants.SQUARE_SYMBOL); + target.drawString(font10, textStr, firstToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + target.drawString(font10, "Shear(kt)", secondToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + target.drawString(font10, "MnWind", thirdToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + target.drawString(font10, "SRW", forthToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY+charHeight; //move to new line + target.drawLine(rect.x, curY, 0.0, rect.x+rect.width, curY, 0.0, NsharpConstants.color_white, 1); + + FloatByReference smdir=new FloatByReference(0), smspd = new FloatByReference(0); + nsharpNative.nsharpLib.get_storm(smspd, smdir); + FloatByReference topPF= new FloatByReference(0); + FloatByReference botPF= new FloatByReference(0); + nsharpNative.nsharpLib.get_effectLayertopBotPres(topPF, botPF); + //System.out.println("top="+topPF.getValue()+" bot="+botPF.getValue()); + for (int i =0; i< NsharpNativeConstants.STORM_MOTION_TYPE_STR1.length; i++){ + float h1, h2; + if(NsharpNativeConstants.STORM_MOTION_TYPE_STR1[i].equals("Eff Inflow Layer")){ + + if(botPF.getValue()>0){ + h1 = nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(botPF.getValue())); + h2 = nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(topPF.getValue())); + } + else{ + h1=-999; + h2=-999; + } + } + else { + h1 = NsharpNativeConstants.STORM_MOTION_HEIGHT1[i][0]; + h2 = NsharpNativeConstants.STORM_MOTION_HEIGHT1[i][1]; + } + //h1 = NsharpNativeConstants.STORM_MOTION_HEIGHT1[i][0]; + //h2 = NsharpNativeConstants.STORM_MOTION_HEIGHT1[i][1]; + if(h1!=-999&& h2!=-999){ + //SRH + //calculate helicity + + float totHeli = nsharpNative.nsharpLib.helicity( h1, + h2, smdir.getValue(), smspd.getValue(), fValue, fValue1); + target.drawString(font10, NsharpNativeConstants.STORM_MOTION_TYPE_STR1[i], rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + //gc.drawText(NsharpNativeConstants.STORM_MOTION_TYPE_STR[i],0, textLineNumber*textHeight + graphLineNumber); + if(nsharpNative.nsharpLib.qc(fValue.getValue())==1&&nsharpNative.nsharpLib.qc(fValue1.getValue())==1) { + //textStr = NsharpNativeConstants.STORM_MOTION_TYPE_STR[i]+" %.0f"; + textStr = String.format("%.0f", totHeli); + } + else { + textStr = "M"; + } + target.drawString(font10, textStr, firstToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + //Calculate wind shear + //Note: -1 as first parameter indicating bottom layer is surface layer, see wind.c for wind_shear() source code + nsharpNative.nsharpLib.wind_shear( nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(h1))/*-1*/, nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(h2)), + fValue, fValue1,fValue2, fValue3); + if(nsharpNative.nsharpLib.qc(fValue3.getValue())==1) { + textStr = String.format("%.0f",fValue3.getValue()); + + } + else { + textStr = "M"; + } + target.drawString(font10, textStr, secondToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + //Calculate mean wind + nsharpNative.nsharpLib.mean_wind( nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(h1)), nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(h2)), fValue, fValue1,fValue2, fValue3); + if(nsharpNative.nsharpLib.qc(fValue2.getValue())==1&&nsharpNative.nsharpLib.qc(fValue3.getValue())==1) { + textStr = String.format("%.0f/%.0f",fValue2.getValue(), fValue3.getValue()); + } + else { + textStr = "M"; + } + target.drawString(font10, textStr, thirdToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + //calculate pressure-weighted SR mean wind + nsharpNative.nsharpLib.sr_wind( nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(h1)), + nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(h2)), smdir.getValue(), smspd.getValue(), + fValue, fValue1,fValue2, fValue3); + if(nsharpNative.nsharpLib.qc(fValue2.getValue())==1) { + textStr = String.format("%.0f/%.0f",fValue2.getValue(), fValue3.getValue()); + } + else { + textStr = "M"; + } + target.drawString(font10, textStr, forthToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + if(NsharpNativeConstants.STORM_MOTION_TYPE_STR1[i].equals("Eff Inflow Layer")){ + //draw bax around it + Rectangle rectangle = new Rectangle(rect.x,(int)curY,rect.width,(int)charHeight); + //System.out.println("rect.x="+ rectangle.x+ " y="+ rectangle.y+" w="+rectangle.width+ " h="+rectangle.height); + PixelExtent pixExt = new PixelExtent(rectangle); + target.drawRect(pixExt,NsharpConstants.color_gold, 1.0f, 1.0f); + } + } + curY = curY+charHeight; //move to new line + + } + float pres=0; + short oldlplchoice=3; + float sfctemp, sfcdwpt, sfcpres; + _lplvalues lpvls; + _parcel pcl; + lpvls = new _lplvalues(); + //nsharpNative.nsharpLib.get_lpvaluesData(lpvls); + //sfctemp = lpvls.temp; + //sfcdwpt = lpvls.dwpt; + //sfcpres = lpvls.pres; + // get parcel data by calling native nsharp parcel() API. value is returned in pcl + pcl = new _parcel(); + for (int i =0; i< NsharpNativeConstants.STORM_MOTION_TYPE_STR2.length; i++){ + float h1, h2; + + h1=-999; + h2=-999; + nsharpNative.nsharpLib.get_lpvaluesData(lpvls); + if(NsharpNativeConstants.STORM_MOTION_TYPE_STR2[i].equals("LCL-EL(Cloud Layer)")){ + sfctemp = lpvls.temp; + sfcdwpt = lpvls.dwpt; + sfcpres = lpvls.pres; + nsharpNative.nsharpLib.parcel( -1.0F, -1.0F, sfcpres, sfctemp, sfcdwpt, pcl); + if (pcl.bplus > 0) + { + h1 = nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.lclpres)); + h2 = nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.elpres)); + } + } + else if (NsharpNativeConstants.STORM_MOTION_TYPE_STR2[i].equals("Lower Half Storm Depth")){ + oldlplchoice = lpvls.flag; + nsharpNative.nsharpLib.define_parcel(NsharpNativeConstants.PARCELTYPE_MOST_UNSTABLE, NsharpNativeConstants.MU_LAYER); + nsharpNative.nsharpLib.get_lpvaluesData(lpvls);//regain lpvls value after defined parcel + sfctemp = lpvls.temp; + sfcdwpt = lpvls.dwpt; + sfcpres = lpvls.pres; + nsharpNative.nsharpLib.parcel( -1.0F, -1.0F, sfcpres, sfctemp, sfcdwpt, pcl); + float el = nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.elpres)); + if (pcl.bplus >= 100.0) + { + + float base = nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(botPF.getValue())); + float depth = (el - base); + h1 = base; + h2 = base + (depth * 0.5f); + + nsharpNative.nsharpLib.get_lpvaluesData(lpvls); + } + // set parcel back to user selection + if (oldlplchoice == 1) + pres = 0; + else if (oldlplchoice == 2) + pres = 0; + else if (oldlplchoice == 3) + pres = NsharpNativeConstants.MU_LAYER; + else if (oldlplchoice == 4) + pres = NsharpNativeConstants.MML_LAYER; + else if (oldlplchoice == 5) + pres = NsharpNativeConstants.USER_LAYER; + else if (oldlplchoice == 6) + pres = NsharpNativeConstants.MU_LAYER; + //System.out.println("drawPanel2-2 called define_parcel pType="+oldlplchoice+" pre="+ pres); + + nsharpNative.nsharpLib.define_parcel(oldlplchoice, pres); + } + else { + h1 = NsharpNativeConstants.STORM_MOTION_HEIGHT2[i][0]; + h2 = NsharpNativeConstants.STORM_MOTION_HEIGHT2[i][1]; + } + if(h1!=-999&& h2!=-999){ + //SRH + //calculate helicity + float totHeli = nsharpNative.nsharpLib.helicity( h1, + h2, smdir.getValue(), smspd.getValue(), fValue, fValue1); + target.drawString(font10, NsharpNativeConstants.STORM_MOTION_TYPE_STR2[i], rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + //gc.drawText(NsharpNativeConstants.STORM_MOTION_TYPE_STR[i],0, textLineNumber*textHeight + graphLineNumber); + if(nsharpNative.nsharpLib.qc(fValue.getValue())==1&&nsharpNative.nsharpLib.qc(fValue1.getValue())==1) { + //textStr = NsharpNativeConstants.STORM_MOTION_TYPE_STR[i]+" %.0f"; + textStr = String.format("%.0f", totHeli); + } + else { + textStr = "M"; + } + // SR Helicity is not shown for these 4 storm motions, see oroginal BigNsharp show_shear_new() + //target.drawString(font10, textStr, firstToken, curY , 0.0, + // TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + // VerticalAlignment.TOP, null); + + //Calculate wind shear + //Note: -1 as first parameter indicating bottom layer is surface layer, see wind.c for wind_shear() source code + nsharpNative.nsharpLib.wind_shear( nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(h1)), nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(h2)), + fValue, fValue1,fValue2, fValue3); + if(nsharpNative.nsharpLib.qc(fValue3.getValue())==1) { + textStr = String.format("%.0f",fValue3.getValue()); + + } + else { + textStr = "M"; + } + target.drawString(font10, textStr, secondToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + //Calculate mean wind + nsharpNative.nsharpLib.mean_wind( nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(h1)), nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(h2)), fValue, fValue1,fValue2, fValue3); + if(nsharpNative.nsharpLib.qc(fValue2.getValue())==1&&nsharpNative.nsharpLib.qc(fValue3.getValue())==1) { + textStr = String.format("%.0f/%.0f",fValue2.getValue(), fValue3.getValue()); + } + else { + textStr = "M"; + } + target.drawString(font10, textStr, thirdToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + //calculate pressure-weighted SR mean wind + nsharpNative.nsharpLib.sr_wind( nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(h1)), + nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(h2)), smdir.getValue(), smspd.getValue(), + fValue, fValue1,fValue2, fValue3); + if(nsharpNative.nsharpLib.qc(fValue2.getValue())==1) { + textStr = String.format("%.0f/%.0f",fValue2.getValue(), fValue3.getValue()); + } + else { + textStr = "M"; + } + target.drawString(font10, textStr, forthToken, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + if (NsharpNativeConstants.STORM_MOTION_TYPE_STR2[i].equals("Lower Half Storm Depth")){ + //draw bax around it + Rectangle rectangle = new Rectangle(rect.x,(int)curY,rect.width,(int)charHeight); + //System.out.println("rect.x="+ rectangle.x+ " y="+ rectangle.y+" w="+rectangle.width+ " h="+rectangle.height); + PixelExtent pixExt = new PixelExtent(rectangle); + target.drawRect(pixExt,NsharpConstants.color_gold, 1.0f, 1.0f); + } + } + curY = curY+charHeight; //move to new line + + + } + + //target.drawLine(rect.x, curY, 0.0, rect.x+rect.width, curY, 0.0, NsharpConstants.color_white, 1); + + //BRN Shear + // get parcel data by calling native nsharp parcel() API. value is returned in pcl + // current parcel is reset earlief already we dont have to call define_parcel() again. + nsharpNative.nsharpLib.get_lpvaluesData(lpvls); + sfctemp = lpvls.temp; + sfcdwpt = lpvls.dwpt; + sfcpres = lpvls.pres; + nsharpNative.nsharpLib.parcel( -1.0F, -1.0F, sfcpres, sfctemp, sfcdwpt, pcl); + + nsharpNative.nsharpLib.cave_bulk_rich2( fValue ); + if(nsharpNative.nsharpLib.qc(fValue.getValue())==1) + textStr = String.format("BRN Shear = %.0f m%c/s%c",fValue.getValue(),NsharpConstants.SQUARE_SYMBOL, NsharpConstants.SQUARE_SYMBOL); + else + textStr = "BRN Shear = M"; + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY+charHeight; //move to new line + //4-6km srw + nsharpNative.nsharpLib.sr_wind( nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(4000)), + nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(6000)), smdir.getValue(), smspd.getValue(), + fValue, fValue1,fValue2, fValue3); + if(nsharpNative.nsharpLib.qc(fValue2.getValue())==1) { + textStr = String.format("4-6km SR Wind = %.0f/%.0f kt",fValue2.getValue(), fValue3.getValue()); + } + else { + textStr = "4-6km SR Wind = M"; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY+charHeight; //move to new line + + //Corfidi Downshear, we use fValue3, fValue4 only by calling corfidi_MCS_motion + nsharpNative.nsharpLib.corfidi_MCS_motion(fValue1, fValue2, fValue3, fValue4, fValue5, fValue6, fValue7, fValue8); + textStr = String.format("Corfidi Downshear = %4.0f/%.0f kt",fValue3.getValue(), fValue4.getValue()); + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY+charHeight; //move to new line + + //Corfidi Upshear, we use fValue7, fValue8 only by calling corfidi_MCS_motion + textStr = String.format("Corfidi Upshear = %4.0f/%.0f kt",fValue7.getValue(), fValue8.getValue()); + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY+charHeight; //move to new line + + //Bunkers Right + nsharpNative.nsharpLib.bunkers_storm_motion(fValue1, fValue2, fValue3, fValue4); + textStr = String.format("Bunkers Right = %4.0f/%.0f kt",fValue3.getValue(), fValue4.getValue()); + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_red, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + textStr = "1km"; + target.drawString(font10, textStr, rect.x+230, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_red, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + textStr = " & "; + target.drawString(font10, textStr, rect.x+260, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + textStr = "6km"; + target.drawString(font10, textStr, rect.x+275, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_cyan, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + textStr = " AGL Wind Barb"; + target.drawString(font10, textStr, rect.x+300, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY+charHeight; //move to new line + //Bunkers Left + nsharpNative.nsharpLib.bunkers_left_motion(fValue1, fValue2, fValue3, fValue4); + textStr = String.format("Bunkers Left = %4.0f/%.0f kt",fValue3.getValue(), fValue4.getValue()); + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_cyan, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY+charHeight; //move to new line + + // STPC(test) - test STP using cape6km + //Chin Note: BigNsharp sigtorn_test always return -9999..a bug + float stpTest = nsharpNative.nsharpLib.sigtorn_test(smdir.getValue(), smspd.getValue()); + //System.out.println("smdir="+smdir.getValue()+"smspd="+ smspd.getValue()+"stpTest="+stpTest+ + // "p_bot="+botPF.getValue()+"p_top="+topPF.getValue()); + if(nsharpNative.nsharpLib.qc(stpTest)==1) + textStr = String.format("STPC(test) = %4.1f", stpTest); + else + textStr = "STPC(test) = M"; + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + + //1 km wind barb + firstToken = rect.x+ rect.width * 3/4; + double yOri = curY-60; + double barbScaleF= 12; + List barb = WindBarbFactory.getWindGraphics( + (double)nsharpNative.nsharpLib.iwspd(nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(1000))), + (double)nsharpNative.nsharpLib.iwdir(nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(1000)))); + if (barb != null) { + WindBarbFactory.scaleBarb(barb, barbScaleF); + + double cur0X=firstToken, cur0Y=yOri, cur1X=firstToken, cur1Y=yOri,newY=0; + WindBarbFactory.translateBarb(barb,cur0X ,yOri ); + + for (LineStroke stroke : barb) { + Coordinate point = stroke.getPoint(); + // Chin NOte; when using WindBarbFactory.getWindGraphics() to create barb, the Y axis is growing + // upwards. However, on this canvas, Y axis is growing downwards. Therefore, the following Y coordinate + // adjustment is necessary. + // + newY = yOri - (point.y - yOri ); + // Note: stroke.render(gc, relativeX, relativeY) is not working here. Therefore, need to + // draw wind barb ourself. + if(stroke.getType() == "M"){ + cur0X = point.x; + cur0Y = newY; + } + else if(stroke.getType() == "D"){ + cur1X = point.x; + cur1Y = newY; + target.drawLine(cur0X,cur0Y, 0.0, cur1X, cur1Y,0.0, NsharpConstants.color_red, 1); + // bsteffen added these two lines to fix 50 kts wind barbs + cur0X = cur1X; + cur0Y = cur1Y; + } + } + } + //6 km wind barb + barb.clear(); + barb = WindBarbFactory.getWindGraphics( + (double)nsharpNative.nsharpLib.iwspd(nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(6000))), + (double)nsharpNative.nsharpLib.iwdir(nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(6000)))); + if (barb != null) { + WindBarbFactory.scaleBarb(barb, barbScaleF); + + double cur0X=firstToken, cur0Y=yOri, cur1X=firstToken, cur1Y=yOri,newY=0; + WindBarbFactory.translateBarb(barb,cur0X ,yOri ); + + for (LineStroke stroke : barb) { + Coordinate point = stroke.getPoint(); + // Chin NOte; when using WindBarbFactory.getWindGraphics() to create barb, the Y axis is growing + // upwards. However, on this canvas, Y axis is growing downwards. Therefore, the following Y coordinate + // adjustment is necessary. + newY = yOri - (point.y - yOri ); + // + // Note: stroke.render(gc, relativeX, relativeY) is not working here. Therefore, need to + // draw wind barb ourself. + if(stroke.getType() == "M"){ + cur0X = point.x; + cur0Y = newY; + } + else if(stroke.getType() == "D"){ + cur1X = point.x; + cur1Y = newY; + target.drawLine(cur0X,cur0Y, 0.0, cur1X, cur1Y,0.0, NsharpConstants.color_cyan, 1); + // bsteffen added these two lines to fix 50 kts wind barbs + cur0X = cur1X; + cur0Y = cur1Y; + } + } + } + //font10.dispose(); + } + @SuppressWarnings("deprecation") + private void drawPanel3(IGraphicsTarget target,Rectangle rect) + throws VizException { + extent = new PixelExtent(rect); + target.setupClippingPlane(extent); + //font10 = target.initializeFont(fontName, fontSize, null); + String splitedStr[]; + String textStr; + curY = rect.y; + //Chin's NOTE::::this function is coded based on native nsharp show_parcel() in xwvid3.c + // moved from NsharpPaletteWindow.showParcelData() + + + //if we can not Interpolates a temp with 700 mb pressure, then we dont have enough raw data + if (nsharpNative.nsharpLib.qc(nsharpNative.nsharpLib.itemp(700.0F)) == 0) + return; + String title = NsharpNativeConstants.PARCEL_DATA_STR; + + target.drawString(font10, title, rect.x + rect.width /3, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_cyan, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + + String hdrStr; + //short currentParcel; + float layerPressure = 0;; + //get user selected parcel type + hdrStr = NsharpNativeConstants.parcelToHdrStrMap.get(currentParcel); + layerPressure = NsharpNativeConstants.parcelToLayerMap.get(currentParcel); + if(currentParcel == NsharpNativeConstants.PARCELTYPE_USER_DEFINED ){ + if(NsharpParcelDialog.getAccess() != null){ + layerPressure = NsharpParcelDialog.getAccess().getUserDefdParcelMb(); + } + + hdrStr = String.format(hdrStr, layerPressure); + } + curY = curY + charHeight; + target.drawString(font10, hdrStr, rect.x + rect.width /4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_yellow, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + + //call native define_parcel() with parcel type and user defined pressure (if user defined it) + nsharpNative.nsharpLib.define_parcel(currentParcel,layerPressure); + + _lplvalues lpvls = new _lplvalues(); + nsharpNative.nsharpLib.get_lpvaluesData(lpvls); + + float sfctemp, sfcdwpt, sfcpres; + sfctemp = lpvls.temp; + sfcdwpt = lpvls.dwpt; + sfcpres = lpvls.pres; + + // get parcel data by calling native nsharp parcel() API. value is returned in pcl + _parcel pcl = new _parcel(); + nsharpNative.nsharpLib.parcel( -1.0F, -1.0F, sfcpres, sfctemp, sfcdwpt, pcl); + textStr = NsharpNativeConstants.PARCEL_LPL_LINE_; + textStr = String.format(textStr, (int)pcl.lplpres,(int)pcl.lpltemp,(int)pcl.lpldwpt, + (int)nsharpNative.nsharpLib.ctof(pcl.lpltemp),(int)nsharpNative.nsharpLib.ctof(pcl.lpldwpt)); + // Chin: note: target.drawString does NOT handle formatted string. For example, "ABC\tabc" will be printed + // as "ABCabc" So, we have to add '_' to separate each value when formatting String. + // Then, use String.split() to have each value in a sub-string. + + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + + curY = curY + 2*charHeight; + + if(nsharpNative.nsharpLib.qc(pcl.bplus)==1){ + textStr = NsharpNativeConstants.PARCEL_CAPE_LINE; + textStr = String.format(textStr,pcl.bplus); + } + else { + textStr = NsharpNativeConstants.PARCEL_CAPE_MISSING; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + if(nsharpNative.nsharpLib.qc(pcl.li5)==1){ + textStr = NsharpNativeConstants.PARCEL_LI_LINE; + textStr = String.format(textStr,pcl.li5); + } + else { + textStr = NsharpNativeConstants.PARCEL_LI_MISSING; + } + target.drawString(font10, textStr, rect.x+rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + if(nsharpNative.nsharpLib.qc(pcl.bfzl)==1){ + textStr = NsharpNativeConstants.PARCEL_BFZL_LINE; + textStr = String.format(textStr,pcl.bfzl); + } + else{ + textStr = NsharpNativeConstants.PARCEL_BFZL_MISSING; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + if(nsharpNative.nsharpLib.qc(pcl.limax)==1){ + textStr = NsharpNativeConstants.PARCEL_LIMIN_LINE; + textStr = String.format(textStr,pcl.limax,pcl.limaxpres); + } + else{ + textStr = NsharpNativeConstants.PARCEL_LIMIN_MISSING; + } + target.drawString(font10, textStr, rect.x+rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + if(nsharpNative.nsharpLib.qc(pcl.bminus)==1){ + textStr = NsharpNativeConstants.PARCEL_CINH_LINE; + textStr = String.format(textStr,pcl.bminus); + } + else { + textStr = NsharpNativeConstants.PARCEL_CINH_MISSING; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + if(nsharpNative.nsharpLib.qc(pcl.cap)==1){ + textStr = NsharpNativeConstants.PARCEL_CAP_LINE; + textStr = String.format(textStr, pcl.cap, pcl.cappres); + } + else { + textStr = NsharpNativeConstants.PARCEL_CAP_MISSING; + } + target.drawString(font10, textStr, rect.x+rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + 2* charHeight; + + + textStr = NsharpNativeConstants.PARCEL_LEVEL_LINE_; + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + target.drawLine(rect.x, curY, 0.0, rect.x+rect.width, curY, 0.0, NsharpConstants.color_white, 1); + + if(nsharpNative.nsharpLib.qc(pcl.lclpres)==1&& + nsharpNative.nsharpLib.qc(nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.lclpres ))))==1 ) + { + textStr = NsharpNativeConstants.PARCEL_LCL_LINE_; + textStr = String.format(textStr,pcl.lclpres, nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.lclpres )))); + } + else { + textStr = NsharpNativeConstants.PARCEL_LCL_MISSING_; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + if(nsharpNative.nsharpLib.qc(pcl.lfcpres)==1 && + nsharpNative.nsharpLib.qc(nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.lfcpres ))))==1 && + nsharpNative.nsharpLib.qc(nsharpNative.nsharpLib.itemp(pcl.lfcpres ))==1) + { + textStr = NsharpNativeConstants.PARCEL_LFC_LINE_; + textStr = String.format(textStr,pcl.lfcpres, nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.lfcpres ))), + nsharpNative.nsharpLib.itemp(pcl.lfcpres )); + } + else { + textStr = NsharpNativeConstants.PARCEL_LFC_MISSING_; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + if(nsharpNative.nsharpLib.qc(pcl.elpres) ==1&& + nsharpNative.nsharpLib.qc(nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.elpres )))) ==1&& + nsharpNative.nsharpLib.qc(nsharpNative.nsharpLib.itemp(pcl.elpres ))==1) + { + textStr = NsharpNativeConstants.PARCEL_EL_LINE_; + textStr = String.format(textStr,pcl.elpres, nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.elpres ))), + nsharpNative.nsharpLib.itemp(pcl.elpres )); + } + else { + textStr = NsharpNativeConstants.PARCEL_EL_MISSING_; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + if(nsharpNative.nsharpLib.qc(pcl.mplpres)==1 && + nsharpNative.nsharpLib.qc(nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.mplpres ))))==1 ) + { + textStr = NsharpNativeConstants.PARCEL_MPL_LINE_; + textStr = String.format(textStr,pcl.mplpres, nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.mplpres )))); + } + else { + textStr = NsharpNativeConstants.PARCEL_MPL_MISSING_; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + //font10.dispose(); + } + @SuppressWarnings("deprecation") + private void drawPanel4(IGraphicsTarget target,Rectangle rect) + throws VizException { + extent = new PixelExtent(rect); + target.setupClippingPlane(extent); + //font10 = target.initializeFont(fontName, fontSize, null); + String textStr; + curY = rect.y; + + /* + * Chin's NOTE::::this function is coded based on legacy native nsharp software show_thermoparms(), + * show_moisture(),show_instability() in xwvid3.c + * + * Moved from NsharpPaletteWindow.showThermoparms() + */ + + target.drawString(font10, NsharpNativeConstants.THERMO_DATA_STR, rect.x + rect.width /3, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_cyan, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + target.drawString(font10, NsharpNativeConstants.THERMO_MOISTURE_STR, rect.x + rect.width /4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_yellow, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + + fValue.setValue(0); + nsharpNative.nsharpLib.precip_water(fValue, -1.0F, -1.0F); + if(nsharpNative.nsharpLib.qc(fValue.getValue())==1) { + textStr = NsharpNativeConstants.THERMO_PWATER_LINE; + textStr = String.format(textStr,fValue.getValue()); + } + else { + textStr = NsharpNativeConstants.THERMO_PWATER_MISSING; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + fValue.setValue(0); + nsharpNative.nsharpLib.mean_relhum(fValue, -1.0F, -1.0F); + if(nsharpNative.nsharpLib.qc(fValue.getValue())==1) { + textStr = NsharpNativeConstants.THERMO_MEANRH_LINE; + textStr = String.format(textStr,fValue.getValue(),NsharpConstants.PERCENT_SYMBOL); + } + else { + textStr = NsharpNativeConstants.THERMO_MEANRH_MISSING; + } + target.drawString(font10, textStr, rect.x + rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + + fValue.setValue(0); + nsharpNative.nsharpLib.mean_mixratio(fValue, -1.0F, -1.0F); + if(nsharpNative.nsharpLib.qc(fValue.getValue())==1) { + textStr = NsharpNativeConstants.THERMO_MEANW_LINE; + textStr = String.format(textStr,fValue.getValue()); + } + else { + textStr = NsharpNativeConstants.THERMO_MEANW_MISSING; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + fValue.setValue(0); + fValue1.setValue(0); + // get surface pressure (fValue1) before getting mean LRH value + nsharpNative.nsharpLib.get_surface(fValue1, fValue2, fValue3); //fValue 2 and fValue3 are not of concern here + nsharpNative.nsharpLib.mean_relhum( fValue, -1.0F, fValue1.getValue() - 150 ); + if(nsharpNative.nsharpLib.qc(fValue.getValue())==1) { + textStr = NsharpNativeConstants.THERMO_MEANLRH_LINE; + textStr = String.format(textStr,fValue.getValue(),NsharpConstants.PERCENT_SYMBOL); + } + else { + textStr = NsharpNativeConstants.THERMO_MEANLRH_MISSING; + } + target.drawString(font10, textStr, rect.x + rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + + fValue.setValue(0); + nsharpNative.nsharpLib.top_moistlyr(fValue); + if(nsharpNative.nsharpLib.qc(fValue.getValue())==1) { + textStr = NsharpNativeConstants.THERMO_TOP_LINE; + textStr = String.format(textStr,fValue.getValue(),nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(fValue.getValue())))); + } + else { + textStr = NsharpNativeConstants.THERMO_TOP_MISSING; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + + //instability data--------------// + //yellow and bold for parcel header + target.drawString(font10, NsharpNativeConstants.THERMO_INSTABILITY_STR, rect.x + rect.width /4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_yellow, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + curY = curY + charHeight; + + + fValue.setValue(0); + fValue1.setValue(0); + + nsharpNative.nsharpLib.delta_t(fValue); + nsharpNative.nsharpLib.lapse_rate( fValue1, 700.0F, 500.0F ); + + if(nsharpNative.nsharpLib.qc(fValue.getValue())==1 && nsharpNative.nsharpLib.qc(fValue1.getValue())==1) { + textStr = NsharpNativeConstants.THERMO_700500mb_LINE; + textStr = String.format(textStr,fValue.getValue(), fValue1.getValue()); + } + else { + textStr = NsharpNativeConstants.THERMO_700500mb_MISSING; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + + fValue.setValue(0); + fValue1.setValue(0); + + nsharpNative.nsharpLib.vert_tot(fValue); + nsharpNative.nsharpLib.lapse_rate( fValue1, 850.0F, 500.0F ); + + if(nsharpNative.nsharpLib.qc(fValue.getValue())==1 && nsharpNative.nsharpLib.qc(fValue1.getValue())==1) { + textStr = NsharpNativeConstants.THERMO_850500mb_LINE; + textStr = String.format(textStr,fValue.getValue(), fValue1.getValue()); + } + else { + textStr = NsharpNativeConstants.THERMO_850500mb_MISSING; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + + //misc parameters data--------------// + target.drawString(font10, NsharpNativeConstants.THERMO_MISC_PARMS_STR, rect.x + rect.width /4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_yellow, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + fValue.setValue(0); + fValue1.setValue(0); + fValue2.setValue(0); + nsharpNative.nsharpLib.t_totals(fValue, fValue1, fValue2); + if(nsharpNative.nsharpLib.qc(fValue.getValue())==1) { + textStr = NsharpNativeConstants.THERMO_TOTAL_LINE; + textStr = String.format(textStr,fValue.getValue()); + } + else { + textStr = NsharpNativeConstants.THERMO_TOTAL_MISSING; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + fValue.setValue(0); + nsharpNative.nsharpLib.k_index(fValue); + if(nsharpNative.nsharpLib.qc(fValue.getValue())==1) { + textStr = NsharpNativeConstants.THERMO_KINDEX_LINE; + textStr = String.format(textStr,fValue.getValue()); + } + else { + textStr = NsharpNativeConstants.THERMO_KINDEX_MISSING; + } + target.drawString(font10, textStr, rect.x + rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + + fValue.setValue(0); + nsharpNative.nsharpLib.sweat_index(fValue); + if(nsharpNative.nsharpLib.qc(fValue.getValue())==1) { + textStr = NsharpNativeConstants.THERMO_SWEAT_LINE; + textStr = String.format(textStr,fValue.getValue()); + } + else { + textStr = NsharpNativeConstants.THERMO_SWEAT_MISSING; + } + + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + fValue.setValue(0); + float maxTempF = nsharpNative.nsharpLib.ctof(nsharpNative.nsharpLib.max_temp( fValue, -1)); + if(nsharpNative.nsharpLib.qc(maxTempF)==1) { + textStr = NsharpNativeConstants.THERMO_MAXT_LINE; + textStr = String.format(textStr,maxTempF); + } + else { + textStr = NsharpNativeConstants.THERMO_MAXT_MISSING; + } + target.drawString(font10, textStr, rect.x + rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + + fValue.setValue(0); + float theDiff = nsharpNative.nsharpLib.ThetaE_diff( fValue); + if(nsharpNative.nsharpLib.qc(theDiff)==1) { + textStr = NsharpNativeConstants.THERMO_THETAE_LINE; + textStr = String.format(textStr,theDiff); + } + else { + textStr = NsharpNativeConstants.THERMO_THETAE_MISSING; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + fValue.setValue(0); + float conTempF = nsharpNative.nsharpLib.ctof(nsharpNative.nsharpLib.cnvtv_temp( fValue, -1)); + if(nsharpNative.nsharpLib.qc(conTempF)==1) { + textStr = NsharpNativeConstants.THERMO_CONVT_LINE; + textStr = String.format(textStr,conTempF); + } + else { + textStr = NsharpNativeConstants.THERMO_CONVT_MISSING; + } + target.drawString(font10, textStr, rect.x + rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + fValue.setValue(0); + float wbzft = nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(nsharpNative.nsharpLib.wb_lvl( 0, fValue )))); + if(nsharpNative.nsharpLib.qc(wbzft)==1) { + textStr = NsharpNativeConstants.THERMO_WBZ_LINE; + textStr = String.format(textStr,wbzft); + } + else { + textStr = NsharpNativeConstants.THERMO_WBZ_MISSING; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + fValue.setValue(0); + float fgzft = nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(nsharpNative.nsharpLib.temp_lvl( 0, fValue )))); + if(nsharpNative.nsharpLib.qc(fgzft)==1) { + textStr = NsharpNativeConstants.THERMO_FGZ_LINE; + textStr = String.format(textStr,fgzft); + } + else { + textStr = NsharpNativeConstants.THERMO_FGZ_MISSING; + } + target.drawString(font10, textStr, rect.x + rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + //font10.dispose(); + } + @SuppressWarnings("deprecation") + private void drawPanel5(IGraphicsTarget target,Rectangle rect) + throws VizException { + extent = new PixelExtent(rect); + target.setupClippingPlane(extent); + //font10 = target.initializeFont(fontName, fontSize, null); + String splitedStr[]; + String textStr; + curY = rect.y; + + /* + * Chin's NOTE::::this function is coded based on legacy nsharp software + * show_gradient() + * in xwvid3.c + */ + FloatByReference Surfpressure= new FloatByReference(0); + FloatByReference surfTemp= new FloatByReference(0); + FloatByReference surfDewpt= new FloatByReference(0); + target.drawString(font10, NsharpNativeConstants.OPC_LOW_LEVEL_STR, rect.x + rect.width /3, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_cyan, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + target.drawString(font10, NsharpNativeConstants.OPC_SURFACE975_STR, rect.x + rect.width /4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_yellow, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + + textStr = NsharpNativeConstants.OPC_LEVEL_LINE_; + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + target.drawLine(rect.x, curY, 0.0, rect.x+rect.width, curY, 0.0, NsharpConstants.color_white, 1); + + + float ht = nsharpNative.nsharpLib.ihght(975); + if(ht == NsharpNativeConstants.NSHARP_LEGACY_LIB_INVALID_DATA) + textStr = NsharpNativeConstants.OPC_975_LINE_MISSING_; + else{ + textStr = NsharpNativeConstants.OPC_975_LINE_; + textStr = String.format(textStr, nsharpNative.nsharpLib.ihght(975), nsharpNative.nsharpLib.itemp(975)); + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + ht=0; + // get surface pressure (fValue1), Surface_temp (fValue2) + nsharpNative.nsharpLib.get_surface(Surfpressure, surfTemp, surfDewpt); + if(nsharpNative.nsharpLib.qc(Surfpressure.getValue())==1) + ht = nsharpNative.nsharpLib.ihght( Surfpressure.getValue() ); + if(nsharpNative.nsharpLib.qc(Surfpressure.getValue())==1 && nsharpNative.nsharpLib.qc(surfTemp.getValue())==1) { + textStr = NsharpNativeConstants.OPC_SURFACE_LINE_; + textStr = String.format(textStr,Surfpressure.getValue(), ht,surfTemp.getValue()); + } + else { + textStr = NsharpNativeConstants.OPC_SURFACE_MISSING_; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + /* ----- Sfc-975 Grad ----- */ + /* make sure both 975mb layer and surface layer temperatures are available */ + if(nsharpNative.nsharpLib.qc(nsharpNative.nsharpLib.itemp(975))==1 && nsharpNative.nsharpLib.qc(surfTemp.getValue())==1){ + textStr = NsharpNativeConstants.OPC_975_SURFACE_LINE; + textStr = String.format(textStr,nsharpNative.nsharpLib.itemp(975)-surfTemp.getValue()); + } + else { + textStr = NsharpNativeConstants.OPC_975_SURFACE_MISSING; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + /* + * Chin's NOTE::::this function is coded based on legacy nsharp software + * show_inversion() + * in xwvid3.c + * + * inv_mb - Pressure of inversion level (mb) + * inv_dC - Change in temperature (C) + * + */ + FloatByReference inv_mb= new FloatByReference(0); + FloatByReference inv_dC= new FloatByReference(0); + ; + //yellow and bold for parcel header + target.drawString(font10, NsharpNativeConstants.OPC_LOWEST_INV_STR, rect.x + rect.width /4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_yellow, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + 2* charHeight; + nsharpNative.nsharpLib.low_inv(inv_mb, inv_dC); + if(nsharpNative.nsharpLib.qc(nsharpNative.nsharpLib.ihght(inv_mb.getValue()))==1) { + textStr = NsharpNativeConstants.OPC_BASEHEIGHT_LINE; + textStr = String.format(textStr,nsharpNative.nsharpLib.ihght(inv_mb.getValue())); + } + else { + textStr = NsharpNativeConstants.OPC_BASEHEIGHT_MISSING; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + if(nsharpNative.nsharpLib.qc(inv_mb.getValue())==1) { + textStr = NsharpNativeConstants.OPC_BASEPRESSURE_LINE; + textStr = String.format(textStr,inv_mb.getValue()); + } + else { + textStr = NsharpNativeConstants.OPC_BASEPRESSURE_MISSING; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + if(nsharpNative.nsharpLib.qc(inv_dC.getValue())==1) { + textStr = NsharpNativeConstants.OPC_CHANGE_IN_TEMP_LINE; + textStr = String.format(textStr,inv_dC.getValue()); + } + else { + textStr = NsharpNativeConstants.OPC_CHANGE_IN_TEMP_MISSING; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + + //font10.dispose(); + } + @SuppressWarnings("deprecation") + private void drawPanel6(IGraphicsTarget target,Rectangle rect) + throws VizException { + extent = new PixelExtent(rect); + target.setupClippingPlane(extent); + //font10 = target.initializeFont(fontName, fontSize, null); + String splitedStr[]; + String textStr; + curY = rect.y; + + /* + * Chin's NOTE::::this function is coded based on legacy nsharp software + * show_mixheight() + * in xwvid3.c + * Calculates the mixing height using legacy mix_height() + * + * void mix_height ( float *mh_mb, float *mh_drct, float *mh_sped, + * float *mh_dC, float *mh_lr, float *mh_drct_max, + * float *mh_sped_max, short flag ) + * + * Where: + * flag = 0 Surface-based lapse rate + * flag = 1 Layer-based lapse rate + * + * mh_mb - Pressure at mixing height (mb) + * mh_drct - Wind direction at mixing height (deg) + * mh_sped - Wind speed at mixing height (kt) + * mh_dC - Layer change in temperature (C) + * mh_lr - Layer lapse rate (C/km) + * mh_drct_max - Layer maximum wind direction (deg) + * mh_sped_max - Layer maximum wind speed (kt) + */ + FloatByReference mh_mb= new FloatByReference(0); + FloatByReference mh_drct= new FloatByReference(0); + FloatByReference mh_sped= new FloatByReference(0); + FloatByReference mh_dC= new FloatByReference(0); + FloatByReference mh_lr= new FloatByReference(0); + FloatByReference mh_drct_max= new FloatByReference(0); + FloatByReference mh_sped_max= new FloatByReference(0); + short flag; + + //yellow and bold for parcel header + target.drawString(font10, NsharpNativeConstants.OPC_MIXING_HGT_STR, rect.x + rect.width /10, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_yellow, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + textStr = NsharpNativeConstants.OPC_DRY_AD_LINE; + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + textStr = NsharpNativeConstants.OPC_THRESH_LAPSE_LINE; + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + // Cyan color for Layer Based string + target.drawString(font10, NsharpNativeConstants.OPC_LAYER_BASED_STR, rect.x + rect.width /3, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_cyan, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + // calculate Layer-based lapse rate data + flag = 1; + nsharpNative.nsharpLib.mix_height(mh_mb,mh_drct,mh_sped,mh_dC,mh_lr,mh_drct_max,mh_sped_max,flag); + + if(nsharpNative.nsharpLib.qc(nsharpNative.nsharpLib.ihght(mh_mb.getValue()))==1) { + textStr = NsharpNativeConstants.OPC_MIXINGHEIGHT_LINE; + textStr = String.format(textStr,nsharpNative.nsharpLib.ihght(mh_mb.getValue())); + } + else { + textStr = NsharpNativeConstants.OPC_MIXINGHEIGHT_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + if(nsharpNative.nsharpLib.qc(mh_mb.getValue())==1) { + textStr = NsharpNativeConstants.OPC_MIXINGPRESSURE_LINE; + textStr = String.format(textStr,mh_mb.getValue()); + } + else { + textStr = NsharpNativeConstants.OPC_MIXINGPRESSURE_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + if(nsharpNative.nsharpLib.qc(mh_drct.getValue())==1 && nsharpNative.nsharpLib.qc(mh_sped.getValue())==1) { + textStr = NsharpNativeConstants.OPC_TOPMIXLAYER_LINE; + //System.out.println("speed = " + mh_sped.getValue()); + textStr = String.format(textStr,(int)mh_drct.getValue(),NsharpConstants.DEGREE_SYMBOL,(int)(mh_sped.getValue())); + } + else { + textStr = NsharpNativeConstants.OPC_TOPMIXLAYER_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + if(nsharpNative.nsharpLib.qc(mh_drct_max.getValue()) ==1 && nsharpNative.nsharpLib.qc(mh_sped_max.getValue())==1) { + textStr = NsharpNativeConstants.OPC_MIXLAYERMAX_LINE; + textStr = String.format(textStr,(int)mh_drct_max.getValue(),NsharpConstants.DEGREE_SYMBOL,(int)mh_sped_max.getValue()); + } + else { + textStr = NsharpNativeConstants.OPC_MIXLAYERMAX_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + if(nsharpNative.nsharpLib.qc(mh_dC.getValue()) ==1 && nsharpNative.nsharpLib.qc(mh_lr.getValue())==1) { + textStr = NsharpNativeConstants.OPC_LAYER_LAPSE_LINE; + textStr = String.format(textStr,mh_dC.getValue(),mh_lr.getValue()); + } + else { + textStr = NsharpNativeConstants.OPC_LAYER_LAPSE_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + + // Purple color for Layer Based string + target.drawString(font10, NsharpNativeConstants.OPC_SURFACE_BASED_STR, rect.x + rect.width /3, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_violet, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + // calculate Surface-based lapse rate data + flag = 0; + mh_mb.setValue(0); + mh_drct.setValue(0); + mh_sped.setValue(0); + mh_dC.setValue(0); + mh_lr.setValue(0); + mh_drct_max.setValue(0); + mh_sped_max.setValue(0);; + nsharpNative.nsharpLib.mix_height(mh_mb,mh_drct,mh_sped,mh_dC,mh_lr,mh_drct_max,mh_sped_max,flag); + + //white color for text + if(nsharpNative.nsharpLib.qc(nsharpNative.nsharpLib.ihght(mh_mb.getValue()))==1) { + textStr = NsharpNativeConstants.OPC_MIXINGHEIGHT_LINE; + textStr = String.format(textStr,nsharpNative.nsharpLib.ihght(mh_mb.getValue())); + } + else { + textStr = NsharpNativeConstants.OPC_MIXINGHEIGHT_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + if(nsharpNative.nsharpLib.qc(mh_mb.getValue())==1) { + textStr = NsharpNativeConstants.OPC_MIXINGPRESSURE_LINE; + textStr = String.format(textStr,mh_mb.getValue()); + } + else { + textStr = NsharpNativeConstants.OPC_MIXINGPRESSURE_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + if(nsharpNative.nsharpLib.qc(mh_drct.getValue()) == 1 && nsharpNative.nsharpLib.qc(mh_sped.getValue())==1) { + textStr = NsharpNativeConstants.OPC_TOPMIXLAYER_LINE; + textStr = String.format(textStr,(int)mh_drct.getValue(),NsharpConstants.DEGREE_SYMBOL,(int)mh_sped.getValue()); + } + else { + textStr = NsharpNativeConstants.OPC_TOPMIXLAYER_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + if(nsharpNative.nsharpLib.qc(mh_drct_max.getValue()) ==1 && nsharpNative.nsharpLib.qc(mh_sped_max.getValue())==1) { + textStr = NsharpNativeConstants.OPC_MIXLAYERMAX_LINE; + textStr = String.format(textStr,(int)mh_drct_max.getValue(),NsharpConstants.DEGREE_SYMBOL,(int)mh_sped_max.getValue()); + } + else { + textStr = NsharpNativeConstants.OPC_MIXLAYERMAX_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + if(nsharpNative.nsharpLib.qc(mh_dC.getValue())==1 && nsharpNative.nsharpLib.qc(mh_lr.getValue())==1) { + textStr = NsharpNativeConstants.OPC_LAYER_LAPSE_LINE; + textStr = String.format(textStr,mh_dC.getValue(),mh_lr.getValue()); + } + else { + textStr = NsharpNativeConstants.OPC_LAYER_LAPSE_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + //font10.dispose(); + } + @SuppressWarnings("deprecation") + private void drawPanel7(IGraphicsTarget target,Rectangle rect) + throws VizException { + extent = new PixelExtent(rect); + target.setupClippingPlane(extent); + //font10 = target.initializeFont(fontName, fontSize, null); + String splitedStr[]; + String textStr; + curY = rect.y; + /* + * Chin's NOTE::::this function is coded based on legacy nsharp software + * show_srdata() in xwvid3.c. + * Hard coded numerical numbers are directly copied from it. + * + * float helicity ( float lower, float upper, float sdir, float sspd, + * float *phel, float *nhel ) + * Calculates the storm-relative helicity (m2/s2) of a + * layer from LOWER(m, agl) to UPPER(m, agl). Uses the + * storm motion vector (sdir, sspd). + * + * lower - Bottom level of layer (m, AGL)[-1=LPL] + * upper - Top level of layer (m, AGL) [-1=LFC] + * sdir - Storm motion direction (degrees) + * sspd - Storm motion speed (kt) + * phel - Positive helicity in layer (m2/s2) + * nhel - Negative helicity in layer (m2/s2) + * RETURN VALUE - Total helicity (m2/s2) + * + * void sr_wind ( float pbot, float ptop, float sdir, float sspd, + * float *mnu, float *mnv, float *wdir, float *wspd ) + * Calculates a pressure-weighted SR mean wind thru the + * layer (pbot-ptop). Default layer is LFC-EL. + * pbot - Bottom level of layer (mb) + * ptop - Top level of layer (mb) + * sdir - Storm motion dirction (deg) + * sspd - Storm motion speed (kt) + * mnu - U-Component of mean wind (kt) + * mnv - V-Component of mean wind (kt) / + */ + + //FloatByReference sspd= new FloatByReference(0); + //FloatByReference sdir= new FloatByReference(0); + FloatByReference phel= new FloatByReference(0); + FloatByReference nhel= new FloatByReference(0); + FloatByReference mnu= new FloatByReference(0); + FloatByReference mnv= new FloatByReference(0); + FloatByReference smdir= new FloatByReference(0); + FloatByReference smspd= new FloatByReference(0); + FloatByReference wdir= new FloatByReference(0); + FloatByReference wspd= new FloatByReference(0); + float totHeli; + + target.drawString(font10, NsharpNativeConstants.STORM_RELATIVE_STR, rect.x + rect.width /3, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_cyan, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + nsharpNative.nsharpLib.get_storm(smspd, smdir); + + if(nsharpNative.nsharpLib.qc(smspd.getValue()) == 1 && nsharpNative.nsharpLib.qc(smdir.getValue())==1) { + textStr = NsharpNativeConstants.STORM_MOTION_LINE; + textStr = String.format(textStr,smdir.getValue(),NsharpConstants.DEGREE_SYMBOL, + smspd.getValue(), nsharpNative.nsharpLib.kt_to_mps(smspd.getValue())); + } + else { + textStr = NsharpNativeConstants.STORM_MOTION_MISSING; + } + target.drawString(font10, textStr, rect.x + rect.width /4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + //yellow and bold for parcel header + target.drawString(font10, NsharpNativeConstants.STORM_HELICITY_STR, rect.x + rect.width /4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_yellow, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + textStr = NsharpNativeConstants.STORM_LAYER_POS_STR; + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + target.drawLine(rect.x, curY, 0.0, rect.x+rect.width, curY, 0.0, NsharpConstants.color_white, 1); + + //calculate helicity for sfc-2 km + totHeli = nsharpNative.nsharpLib.helicity( (float)0, (float)2000, smdir.getValue(), smspd.getValue(), phel, nhel); + if(nsharpNative.nsharpLib.qc(phel.getValue()) ==1 && nsharpNative.nsharpLib.qc(nhel.getValue())==1) { + textStr = NsharpNativeConstants.STORM_SFC2KM_LINE; + textStr = String.format(textStr,phel.getValue(), nhel.getValue(), totHeli, + NsharpConstants.SQUARE_SYMBOL, NsharpConstants.SQUARE_SYMBOL); + + } + else { + textStr = NsharpNativeConstants.STORM_SFC2KM_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + //calculate helicity for sfc-3 km + totHeli = nsharpNative.nsharpLib.helicity( (float)0, (float)3000, smdir.getValue(), smspd.getValue(), phel, nhel); + if(nsharpNative.nsharpLib.qc(phel.getValue()) == 1 && nsharpNative.nsharpLib.qc(nhel.getValue())==1) { + textStr = NsharpNativeConstants.STORM_SFC3KM_LINE; + textStr = String.format(textStr,phel.getValue(), nhel.getValue(), totHeli, + NsharpConstants.SQUARE_SYMBOL, NsharpConstants.SQUARE_SYMBOL); + } + else { + textStr = NsharpNativeConstants.STORM_SFC3KM_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + //calculate helicity for LPL - LFC + totHeli = nsharpNative.nsharpLib.helicity( (float)-1, (float)-1, smdir.getValue(), smspd.getValue(), phel, nhel); + if(nsharpNative.nsharpLib.qc(phel.getValue())==1 && nsharpNative.nsharpLib.qc(nhel.getValue())==1) { + textStr = NsharpNativeConstants.STORM_LPL_LFC_LINE; + textStr = String.format(textStr,phel.getValue(), nhel.getValue(), totHeli, + NsharpConstants.SQUARE_SYMBOL, NsharpConstants.SQUARE_SYMBOL); + } + else { + textStr = NsharpNativeConstants.STORM_LPL_LFC_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + //yellow and bold for header + target.drawString(font10, NsharpNativeConstants.STORM_WIND_STR, rect.x + rect.width /4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_yellow, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + 2* charHeight; + textStr = NsharpNativeConstants.STORM_LAYER_VECTOR_STR; + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + target.drawLine(rect.x, curY, 0.0, rect.x+rect.width, curY, 0.0, NsharpConstants.color_white, 1); + + //calculate pressure-weighted SR mean wind at sfc-2 km + nsharpNative.nsharpLib.sr_wind( nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(0)), + nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(2000)), smdir.getValue(), smspd.getValue(), + mnu, mnv, wdir, wspd); + if(nsharpNative.nsharpLib.qc(wdir.getValue())==1) { + textStr = NsharpNativeConstants.STORM_SFC2KM_VECT_LINE; + textStr = String.format(textStr,wdir.getValue(), wspd.getValue(), nsharpNative.nsharpLib.kt_to_mps(wspd.getValue())); + } + else { + textStr = NsharpNativeConstants.STORM_SFC2KM_VECT_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + //calculate pressure-weighted SR mean wind at 4-6 km + //System.out.println("msl(4000))="+ nsharpNative.nsharpLib.msl(4000) + "i_pres(msl(4000))" + nsharpNative.nsharpLib.i_pres(nsharpNative.nsharpLib.msl(4000))); + //System.out.println("msl(6000))="+ nsharpNative.nsharpLib.msl(6000) + "i_pres(msl(6000))" + nsharpNative.nsharpLib.i_pres(nsharpNative.nsharpLib.msl(6000))); + //System.out.println("dir "+ smdir.getValue()+ " spd " + smspd.getValue()); + nsharpNative.nsharpLib.sr_wind( nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(4000)), + nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(6000)), smdir.getValue(), smspd.getValue(), + mnu, mnv, wdir, wspd); + if(nsharpNative.nsharpLib.qc(wdir.getValue()) == 1) { + textStr = NsharpNativeConstants.STORM_4_6KM_VECT_LINE; + //System.out.println("wdir "+ wdir.getValue() + " widSp " + wspd.getValue()); + textStr = String.format(textStr,wdir.getValue(), wspd.getValue(), nsharpNative.nsharpLib.kt_to_mps(wspd.getValue())); + } + else { + textStr = NsharpNativeConstants.STORM_4_6KM_VECT_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + //calculate pressure-weighted SR mean wind at 9-11 km + nsharpNative.nsharpLib.sr_wind( nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(9000)), + nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(11000)), smdir.getValue(), smspd.getValue(), + mnu, mnv, wdir, wspd); + if(nsharpNative.nsharpLib.qc(wdir.getValue())==1) { + textStr = NsharpNativeConstants.STORM_9_11KM_VECT_LINE; + textStr = String.format(textStr,wdir.getValue(), wspd.getValue(), nsharpNative.nsharpLib.kt_to_mps(wspd.getValue())); + } + else { + textStr = NsharpNativeConstants.STORM_9_11KM_VECT_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + + //font10.dispose(); + } + @SuppressWarnings("deprecation") + private void drawPanel8(IGraphicsTarget target,Rectangle rect) + throws VizException { + extent = new PixelExtent(rect); + target.setupClippingPlane(extent); + //font10 = target.initializeFont(fontName, fontSize, null); + String splitedStr[]; + String textStr; + curY = rect.y; + /* + * Chin's NOTE::::this function is coded based on legacy nsharp software + * show_meanwind() + * in xwvid3.c + * + * void mean_wind ( float pbot, float ptop, float *mnu, float *mnv, + * float *wdir, float *wspd ) + * Calculates a pressure-weighted mean wind thru the + * layer (pbot-ptop). Default layer is LFC-EL. + * + * pbot - Bottom level of layer (mb) + * ptop - Top level of layer (mb) + * mnu - U-Component of mean wind (kt) + * mnv - V-Component of mean wind (kt) + */ + FloatByReference mnu= new FloatByReference(0); + FloatByReference mnv= new FloatByReference(0); + FloatByReference wdir= new FloatByReference(0); + FloatByReference wspd= new FloatByReference(0); + target.drawString(font10, NsharpNativeConstants.MEAN_WIND_STR, rect.x + rect.width*0.4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_cyan, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + //Calculate mean wind at 0-6 km + nsharpNative.nsharpLib.mean_wind( -1, nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.agl(6000)), mnu, mnv, wdir, wspd); + //System.out.println("wsp ="+ wspd.getValue()+ " wdir "+ wdir.getValue() + " agl(6000)="+nsharpNative.nsharpLib.agl(6000)+ " preAt6000="+nsharpNative.nsharpLib.i_pres(nsharpNative.nsharpLib.agl(6000))); + if(nsharpNative.nsharpLib.qc(wdir.getValue()) == 1 && nsharpNative.nsharpLib.qc(wspd.getValue())== 1) { + textStr = NsharpNativeConstants.MEANWIND_SFC6KM_LINE; + textStr = String.format(textStr,(wdir.getValue()), wspd.getValue(), + nsharpNative.nsharpLib.kt_to_mps(wspd.getValue())); + } + else { + textStr = NsharpNativeConstants.MEANWIND_SFC6KM_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + //Calculate mean wind at LFC-EL + nsharpNative.nsharpLib.mean_wind( -1, -1, mnu, mnv, wdir, wspd); + if(nsharpNative.nsharpLib.qc(wdir.getValue())==1 && nsharpNative.nsharpLib.qc(wspd.getValue())==1) { + textStr = NsharpNativeConstants.MEANWIND_LFC_EL_LINE; + textStr = String.format(textStr,wdir.getValue(), wspd.getValue(), + nsharpNative.nsharpLib.kt_to_mps(wspd.getValue())); + } + else { + textStr = NsharpNativeConstants.MEANWIND_LFC_EL_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + //Calculate mean wind at 850-200 mb + nsharpNative.nsharpLib.mean_wind( 850,200, mnu, mnv, wdir, wspd); + if(nsharpNative.nsharpLib.qc(wdir.getValue()) ==1 && nsharpNative.nsharpLib.qc(wspd.getValue())==1) { + textStr = NsharpNativeConstants.MEANWIND_850_200MB_LINE; + textStr = String.format(textStr,wdir.getValue(), wspd.getValue(), + nsharpNative.nsharpLib.kt_to_mps(wspd.getValue())); + } + else { + textStr = NsharpNativeConstants.MEANWIND_850_200MB_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + /* + * Chin's NOTE::::this function is coded based on legacy nsharp software + * show_shear() + * in xwvid3.c + * + * void wind_shear ( float pbot, float ptop, float *shu, float *shv, + * float *sdir, float *smag ) + * + * Calculates the shear between the wind at (pbot) and + * (ptop). Default lower wind is a 1km mean wind, while + * the default upper layer is 3km. + * + * pbot - Bottom level of layer (mb) + * ptop - Top level of layer (mb) + * shu - U-Component of shear (m/s) + * shv - V-Component of shear (m/s) + * sdir - Direction of shear vector (degrees) + * smag - Magnitude of shear vector (m/s) + */ + FloatByReference shu= new FloatByReference(0); + FloatByReference shv= new FloatByReference(0); + FloatByReference sdir= new FloatByReference(0); + FloatByReference smag= new FloatByReference(0); + target.drawString(font10, NsharpNativeConstants.ENVIRONMENTAL_SHEAR_STR, rect.x + rect.width/3, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_cyan, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + + textStr = NsharpNativeConstants.SHEAR_LAYER_DELTA_STR; + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/3, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + target.drawLine(rect.x, curY, 0.0, rect.x+rect.width, curY, 0.0, NsharpConstants.color_white, 1); + + //Calculate wind shear at Low - 3 km + nsharpNative.nsharpLib.wind_shear( -1, nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(3000)), + shu,shv,sdir,smag); + if(nsharpNative.nsharpLib.qc(smag.getValue())==1) { + textStr = NsharpNativeConstants.SHEAR_LOW_3KM_LINE; + textStr = String.format(textStr,smag.getValue(), + nsharpNative.nsharpLib.kt_to_mps(smag.getValue()), + nsharpNative.nsharpLib.kt_to_mps(smag.getValue())/.3F); + //System.out.println("from cave "+smag.getValue() + " kt, " + nsharpNative.nsharpLib.kt_to_mps(smag.getValue())+ " m/s, Tot="+ nsharpNative.nsharpLib.kt_to_mps(smag.getValue())/.3F); + } + else { + textStr = NsharpNativeConstants.SHEAR_LOW_3KM_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/3, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + //Calculate wind shear at Sfc - 2 km + nsharpNative.nsharpLib.wind_shear( -1, nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(2000)), + shu,shv,sdir,smag); + if(nsharpNative.nsharpLib.qc(smag.getValue())==1) { + textStr = NsharpNativeConstants.SHEAR_SFC_2KM_LINE; + textStr = String.format(textStr,smag.getValue(), + nsharpNative.nsharpLib.kt_to_mps(smag.getValue()), + nsharpNative.nsharpLib.kt_to_mps(smag.getValue())/.2F); + } + else { + textStr = NsharpNativeConstants.SHEAR_SFC_2KM_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/3, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + //Calculate wind shear at Sfc - 6 km + nsharpNative.nsharpLib.wind_shear( -1, nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(6000)), + shu,shv,sdir,smag); + if(nsharpNative.nsharpLib.qc(smag.getValue())==1) { + textStr = NsharpNativeConstants.SHEAR_SFC_6KM_LINE; + textStr = String.format(textStr,smag.getValue(), + nsharpNative.nsharpLib.kt_to_mps(smag.getValue()), + nsharpNative.nsharpLib.kt_to_mps(smag.getValue())/.6F); + } + else { + textStr = NsharpNativeConstants.SHEAR_SFC_6KM_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/3, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + //Calculate wind shear at Sfc - 12 km + nsharpNative.nsharpLib.wind_shear( -1, nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(12000)), + shu,shv,sdir,smag); + if(nsharpNative.nsharpLib.qc(smag.getValue())==1) { + textStr = NsharpNativeConstants.SHEAR_SFC_12KM_LINE; + textStr = String.format(textStr,smag.getValue(), + nsharpNative.nsharpLib.kt_to_mps(smag.getValue()), + nsharpNative.nsharpLib.kt_to_mps(smag.getValue())/1.2F); + } + else { + textStr = NsharpNativeConstants.SHEAR_SFC_12KM_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/3, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + //font10.dispose(); + } + @SuppressWarnings("deprecation") + private void drawPanel9(IGraphicsTarget target,Rectangle rect) + throws VizException { + extent = new PixelExtent(rect); + target.setupClippingPlane(extent); + //font10 = target.initializeFont(fontName, fontSize, null); + String splitedStr[]; + String textStr; + curY = rect.y; + /* + * Chin's NOTE::::this function is coded based on legacy nsharp software + * show_initiation(): Displays thunderstorm initiation parameters, + * show_heavypcpn(), show_preciptype() and show_stormtype() + * in xwvid3.c + * + */ + FloatByReference fvalue2= new FloatByReference(0); + FloatByReference fvalue3= new FloatByReference(0); + FloatByReference wdir= new FloatByReference(0); + FloatByReference wspd= new FloatByReference(0); + FloatByReference fvalue= new FloatByReference(0); + FloatByReference fvalue1= new FloatByReference(0); + // get parcel data by calling native nsharp parcel() API. value is returned in pcl + // current parcel is already decided when page 1 is displyed. Note that page 1 is always + // displayed before this page (page 4). Therefore, we dont have to call define_parcel() again. + // set default + //short currentParcel; + float layerPressure; + if(currentParcel == NsharpNativeConstants.PARCELTYPE_USER_DEFINED && NsharpParcelDialog.getAccess() != null){ + layerPressure = NsharpParcelDialog.getAccess().getUserDefdParcelMb(); + } + else + layerPressure = NsharpNativeConstants.parcelToLayerMap.get(currentParcel); + nsharpNative.nsharpLib.define_parcel(currentParcel,layerPressure); + + + _parcel pcl = new _parcel();; + _lplvalues lpvls = new _lplvalues(); + nsharpNative.nsharpLib.get_lpvaluesData(lpvls); + float sfctemp, sfcdwpt, sfcpres; + sfctemp = lpvls.temp; + sfcdwpt = lpvls.dwpt; + sfcpres = lpvls.pres; + nsharpNative.nsharpLib.parcel( -1.0F, -1.0F, sfcpres, sfctemp, sfcdwpt, pcl); + //_parcel.ByValue pcl_byvalue = new _parcel.ByValue(); + //nsharpNative.nsharpLib.parcel( -1.0F, -1.0F, sfcpres, sfctemp, sfcdwpt, pcl_byvalue); + + + //CONVECTIVE_INITIATION + target.drawString(font10, NsharpNativeConstants.CONVECTIVE_INITIATION_STR, rect.x + rect.width/3, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_cyan, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + //CINH + if(nsharpNative.nsharpLib.qc(pcl.bminus)==1) { + textStr = NsharpNativeConstants.CONVECTIVE_CINH_LINE; + textStr = String.format(textStr,pcl.bminus); + } + else { + textStr = NsharpNativeConstants.CONVECTIVE_CINH_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + + //cap + if(nsharpNative.nsharpLib.qc(pcl.cap)==1 && nsharpNative.nsharpLib.qc(pcl.cappres)==1) { + textStr = NsharpNativeConstants.CONVECTIVE_CAP_LINE; + textStr = String.format(textStr,pcl.cap, pcl.cappres); + } + else { + textStr = NsharpNativeConstants.CONVECTIVE_CAP_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + rect.width/2+ i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + //K-index + nsharpNative.nsharpLib.k_index(fvalue); + if(nsharpNative.nsharpLib.qc(fvalue.getValue())==1) { + textStr = NsharpNativeConstants.CONVECTIVE_KINDEX_LINE; + textStr = String.format(textStr,fvalue.getValue()); + } + else { + textStr = NsharpNativeConstants.CONVECTIVE_KINDEX_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + + //Mean RH + nsharpNative.nsharpLib.mean_relhum(fvalue, -1, -1); + if(nsharpNative.nsharpLib.qc(fvalue.getValue())==1) { + textStr = NsharpNativeConstants.CONVECTIVE_MEANRH_LINE; + textStr = String.format(textStr,fvalue.getValue(), NsharpConstants.PERCENT_SYMBOL); + } + else { + textStr = NsharpNativeConstants.CONVECTIVE_MEANRH_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + rect.width/2+ i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + 2*charHeight; + + //Top of M layer + nsharpNative.nsharpLib.top_moistlyr(fvalue); + //System.out.println("top_moistlyr=" + fvalue.getValue() ); + + if(nsharpNative.nsharpLib.qc(fvalue.getValue())==1) { + float ht = + nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(fvalue.getValue()))); + if(nsharpNative.nsharpLib.qc(ht)==1){ + textStr = NsharpNativeConstants.CONVECTIVE_TOP_LINE; + textStr = String.format(textStr,fvalue.getValue(),ht); + } + else { + textStr = NsharpNativeConstants.CONVECTIVE_TOP_MISSING; + } + } + else { + textStr = NsharpNativeConstants.CONVECTIVE_TOP_MISSING; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + //LFC height + if(nsharpNative.nsharpLib.qc(pcl.lfcpres)==1) { + float ht = + nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.lfcpres))); + if(nsharpNative.nsharpLib.qc(ht)==1){ + textStr = NsharpNativeConstants.CONVECTIVE_LFC_LINE; + textStr = String.format(textStr,pcl.lfcpres,ht); + } + else { + textStr = NsharpNativeConstants.CONVECTIVE_LFC_MISSING; + } + } + else { + textStr = NsharpNativeConstants.CONVECTIVE_LFC_MISSING; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + //STORM TYPE + target.drawString(font10, NsharpNativeConstants.STORM_TYPE_STR, rect.x + rect.width/3, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_cyan, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + //CAPE + if(nsharpNative.nsharpLib.qc(pcl.bplus)==1) { + textStr = NsharpNativeConstants.STORM_TYPE_CAPE_LINE; + textStr = String.format(textStr,pcl.bplus); + } + else { + textStr = NsharpNativeConstants.STORM_TYPE_CAPE_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + + //EFF. SREH + float hel=0; + nsharpNative.nsharpLib.get_storm(wspd,wdir); + if(nsharpNative.nsharpLib.qc(wdir.getValue()) ==1 && nsharpNative.nsharpLib.qc(wspd.getValue())==1) { + hel = + nsharpNative.nsharpLib.helicity( -1.0F, -1.0F, wdir.getValue(), wspd.getValue(), fvalue, fvalue1); + if(nsharpNative.nsharpLib.qc(hel)==1){ + textStr = NsharpNativeConstants.STORM_TYPE_EFF_LINE; + textStr = String.format(textStr,hel,NsharpConstants.SQUARE_SYMBOL,NsharpConstants.SQUARE_SYMBOL); + } + else { + textStr = NsharpNativeConstants.STORM_TYPE_EFF_MISSING; + } + } + else { + textStr = NsharpNativeConstants.STORM_TYPE_EFF_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + rect.width/2+ i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + //EHI + if(nsharpNative.nsharpLib.qc(pcl.bplus)==1) { + float ehi = + nsharpNative.nsharpLib.ehi( pcl.bplus, hel); + if(nsharpNative.nsharpLib.qc(ehi)==1){ + textStr = NsharpNativeConstants.STORM_TYPE_EHI_LINE; + textStr = String.format(textStr,ehi); + } + else { + textStr = NsharpNativeConstants.STORM_TYPE_EHI_MISSING; + } + } + else { + textStr = NsharpNativeConstants.STORM_TYPE_EHI_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + + //3km Shear + nsharpNative.nsharpLib.wind_shear( -1, -1, fvalue, fvalue1,fvalue2,fvalue3); + if(nsharpNative.nsharpLib.qc(fvalue3.getValue())==1) { + textStr = NsharpNativeConstants.STORM_TYPE_3KM_LINE; + textStr = String.format(textStr,nsharpNative.nsharpLib.kt_to_mps(fvalue3.getValue())); + } + else { + textStr = NsharpNativeConstants.STORM_TYPE_3KM_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + rect.width/2+ i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + //BRN + if(nsharpNative.nsharpLib.qc(pcl.brn)==1) { + textStr = NsharpNativeConstants.STORM_TYPE_BRN_LINE; + textStr = String.format(textStr,pcl.brn); + } + else { + textStr = NsharpNativeConstants.STORM_TYPE_BRN_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + + //BRN Shear + //nsharpNative.nsharpLib.cave_bulk_rich(pcl.lplpres, pcl.bplus, fvalue ); + //System.out.println("bulk_rich fvalue = "+ fvalue.getValue()); + nsharpNative.nsharpLib.cave_bulk_rich2(fvalue ); + if(nsharpNative.nsharpLib.qc(fvalue.getValue())==1) { + textStr = NsharpNativeConstants.STORM_TYPE_BRNSHEAR_LINE; + textStr = String.format(textStr,fvalue.getValue(),NsharpConstants.SQUARE_SYMBOL, NsharpConstants.SQUARE_SYMBOL); + } + else + textStr = NsharpNativeConstants.STORM_TYPE_BRNSHEAR_MISSING; + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + rect.width/2+ i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + //PRECIPITATION_TYPE + target.drawString(font10, NsharpNativeConstants.PRECIPITATION_TYPE_STR, rect.x + rect.width/3, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_cyan, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + //Melting Level + float web = nsharpNative.nsharpLib.wb_lvl( 0, fvalue ); + if(nsharpNative.nsharpLib.qc(web)==1) { + + float aglft = nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(web))); + if(nsharpNative.nsharpLib.qc(aglft)==1){ + textStr = NsharpNativeConstants.PRECIPITATION_MELTING_LINE; + textStr = String.format(textStr,aglft, web); + } + else + textStr = NsharpNativeConstants.PRECIPITATION_MELTING_MISSING; + } + else { + textStr = NsharpNativeConstants.PRECIPITATION_MELTING_MISSING; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + //HEAVY_RAINFAL + target.drawString(font10, NsharpNativeConstants.HEAVY_RAINFALL_STR, rect.x + rect.width/3, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_cyan, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + //Rogash_QPF, Chin: note: BigNsharp has different implementation of Rogash_QPF() + // We are using bigNsharp now. + nsharpNative.nsharpLib.Rogash_QPF(fvalue); + if(nsharpNative.nsharpLib.qc(fvalue.getValue())==1) { + textStr = NsharpNativeConstants.HEAVY_ROGASH_LINE; + textStr = String.format(textStr,fvalue.getValue()); + } + else { + textStr = NsharpNativeConstants.HEAVY_ROGASH_MISSING; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + // font10.dispose(); + } + @SuppressWarnings("deprecation") + private void drawPanel10(IGraphicsTarget target,Rectangle rect) + throws VizException { + extent = new PixelExtent(rect); + target.setupClippingPlane(extent); + //font10 = target.initializeFont(fontName, fontSize, null); + String splitedStr[]; + String textStr; + curY = rect.y; + /* + * Chin's NOTE::::this function is coded based on legacy nsharp software + * show_hailpot(), show_torpot() + * in xwvid3.c + * + */ + FloatByReference fvalue2= new FloatByReference(0); + FloatByReference fvalue3= new FloatByReference(0); + FloatByReference wdir= new FloatByReference(0); + FloatByReference wspd= new FloatByReference(0); + FloatByReference fvalue= new FloatByReference(0); + FloatByReference fvalue1= new FloatByReference(0); + + target.drawString(font10, NsharpNativeConstants.SEVERE_POTENTIAL_STR, rect.x + rect.width/3, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_cyan, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + target.drawString(font10, NsharpNativeConstants.SEVERE_HAIL_POTENTIAL_STR, rect.x + rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_yellow, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + _parcel pcl = new _parcel();; + _lplvalues lpvls = new _lplvalues(); + nsharpNative.nsharpLib.get_lpvaluesData(lpvls); + float sfctemp, sfcdwpt, sfcpres; + sfctemp = lpvls.temp; + sfcdwpt = lpvls.dwpt; + sfcpres = lpvls.pres; + nsharpNative.nsharpLib.parcel( -1.0F, -1.0F, sfcpres, sfctemp, sfcdwpt, pcl); + //CAPE + if(nsharpNative.nsharpLib.qc(pcl.bplus)==1) { + textStr = NsharpNativeConstants.SEVERE_CAPE_LINE; + textStr = String.format(textStr,pcl.bplus); + } + else { + textStr = NsharpNativeConstants.SEVERE_CAPE_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + + // WBZ level + float wbzft = nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(nsharpNative.nsharpLib.wb_lvl( 0, fvalue )))); + if(nsharpNative.nsharpLib.qc(wbzft)==1) { + textStr = NsharpNativeConstants.SEVERE_WBZ_LINE; + textStr = String.format(textStr,wbzft); + } + else { + textStr = NsharpNativeConstants.SEVERE_WBZ_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + rect.width/2+ i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + //Mid Level RH + nsharpNative.nsharpLib.mean_relhum( fvalue, 700, 500); + if(nsharpNative.nsharpLib.qc(fvalue.getValue())==1) { + textStr = NsharpNativeConstants.SEVERE_MIDRH_LINE; + textStr = String.format(textStr,fvalue.getValue(),NsharpConstants.PERCENT_SYMBOL); + } + else { + textStr = NsharpNativeConstants.SEVERE_MIDSRW_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + + //FZG level + float fgzft = nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(nsharpNative.nsharpLib.temp_lvl( 0, fvalue )))); + if(nsharpNative.nsharpLib.qc(fgzft)==1) { + textStr = NsharpNativeConstants.SEVERE_FGZ_LINE; + textStr = String.format(textStr,fgzft); + } + else { + textStr = NsharpNativeConstants.SEVERE_FGZ_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + rect.width/2+ i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + //EL Storm + nsharpNative.nsharpLib.get_storm(wspd,wdir); + nsharpNative.nsharpLib.sr_wind( pcl.elpres+25, pcl.elpres-25,wdir.getValue(), wspd.getValue(), fvalue,fvalue1,fvalue2,fvalue3); + if(nsharpNative.nsharpLib.qc(fvalue3.getValue())==1) { + textStr = NsharpNativeConstants.SEVERE_ELSTORM_LINE; + textStr = String.format(textStr,fvalue3.getValue()); + } + else { + textStr = NsharpNativeConstants.SEVERE_ELSTORM_MISSING; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + // CHI1 + //_parcel.ByValue pcl_byvalue = new _parcel.ByValue(); + // pr = nsharpNative.nsharpLib.parcel( -1.0F, -1.0F, sfcpres, sfctemp, sfcdwpt, pcl_byvalue); + //Assigne values that needed for bulk_rich() + //pcl_byvalue.lplpres = sfcpres; + //pcl_byvalue.bplus = pcl.bplus; + nsharpNative.nsharpLib.cave_bulk_rich2( fvalue ); + float rtn = (pcl.bplus * fvalue.getValue()) / nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(nsharpNative.nsharpLib.wb_lvl( 0, fvalue1 ))); + if(nsharpNative.nsharpLib.qc(rtn)==1) { + textStr = NsharpNativeConstants.SEVERE_CHI1_LINE; + textStr = String.format(textStr,rtn); + } + else { + textStr = NsharpNativeConstants.SEVERE_CHI1_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + //CHI2 + nsharpNative.nsharpLib.Mean_WBtemp( fvalue2, -1, -1); + if(nsharpNative.nsharpLib.qc(rtn/fvalue2.getValue())==1) { + textStr = NsharpNativeConstants.SEVERE_CHI2_LINE; + textStr = String.format(textStr,rtn/fvalue2.getValue()); + } + else { + textStr = NsharpNativeConstants.SEVERE_CHI2_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + rect.width/2+ i*rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + //Avg BL + nsharpNative.nsharpLib.Mean_WBtemp( fvalue, -1, -1); + if(nsharpNative.nsharpLib.qc(fvalue.getValue())==1) { + textStr = NsharpNativeConstants.SEVERE_AVGBL_LINE; + textStr = String.format(textStr,fvalue.getValue(),NsharpConstants.DEGREE_SYMBOL); + } + else { + textStr = NsharpNativeConstants.SEVERE_AVGBL_MISSING; + } + target.drawString(font10, textStr, rect.x, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + //TORNADO_POTENTIAL + target.drawString(font10, NsharpNativeConstants.SEVERE_TORNADO_POTENTIAL_STR, rect.x + rect.width/4, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_yellow, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + curY = curY + charHeight; + + //Low SRW Sfc + float blyr = nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(0)); + float tlyr = pcl.lfcpres; + if(tlyr > 0){ + nsharpNative.nsharpLib.sr_wind( blyr, tlyr, wdir.getValue(), wspd.getValue(), fvalue,fvalue1,fvalue2,fvalue3); + if(nsharpNative.nsharpLib.qc(fvalue3.getValue())==1) { + textStr = NsharpNativeConstants.SEVERE_LOWSRWSFC_LINE; + textStr = String.format(textStr,fvalue3.getValue()); + } + else { + textStr = NsharpNativeConstants.SEVERE_LOWSRWSFC_MISSING; + } + } + else { + textStr = NsharpNativeConstants.SEVERE_LOWSRWSFC_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + blyr = pcl.lfcpres; + tlyr = nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.ihght(pcl.lfcpres) + 4000); + if((tlyr > 0)&&(blyr > 0)) { + nsharpNative.nsharpLib.sr_wind( blyr, tlyr, wdir.getValue(), wspd.getValue(), fvalue,fvalue1,fvalue2,fvalue3); + if(nsharpNative.nsharpLib.qc(fvalue3.getValue())==1) { + textStr = NsharpNativeConstants.SEVERE_MIDSRW_LINE; + textStr = String.format(textStr,fvalue3.getValue()); + } + else { + textStr = NsharpNativeConstants.SEVERE_MIDSRW_MISSING; + } + + } + else { + textStr = NsharpNativeConstants.SEVERE_MIDSRW_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + curY = curY + charHeight; + + blyr = nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.ihght(pcl.elpres) - 4000); + tlyr = pcl.elpres; + if((tlyr > 0)&&(blyr > 0)) { + nsharpNative.nsharpLib.sr_wind( blyr, tlyr, wdir.getValue(), wspd.getValue(), fvalue,fvalue1,fvalue2,fvalue3); + if(nsharpNative.nsharpLib.qc(fvalue3.getValue())==1) { + textStr = NsharpNativeConstants.SEVERE_LOWSRWEL_LINE; + textStr = String.format(textStr,fvalue3.getValue()); + } + else { + textStr = NsharpNativeConstants.SEVERE_LOWSRWEL_MISSING; + } + + } + else { + textStr = NsharpNativeConstants.SEVERE_LOWSRWEL_MISSING; + } + splitedStr = textStr.split("_", -1); + for (int i =0; i < splitedStr.length; i++){ + target.drawString(font10, splitedStr[i], rect.x + i*rect.width/2, curY , 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + + //font10.dispose(); + } + + + public boolean isSumP1Visible() { + return sumP1Visible; + } + + + public NsharpGenericPaneBackground getDataPanel1Background() { + return dataPanel1Background; + } + + + public NsharpGenericPaneBackground getDataPanel2Background() { + return dataPanel2Background; + } + + public void setPageDisplayOrderNumberArray(int[] pageDisplayOrderNumberArray) { + this.pageDisplayOrderNumberArray = pageDisplayOrderNumberArray; + } + + + @Override + public void handleResize(){ + super.handleResize(); + IExtent ext = getDescriptor().getRenderableDisplay().getExtent(); + ext.reset(); + float prevHeight = dataPaneHeight; + float prevWidth = dataPaneWidth; + dataPaneWidth= (int) (ext.getWidth()/2); + dataPaneHeight= (int) ext.getHeight(); + xRatio = xRatio* dataPaneWidth/prevWidth; + xRatio=1; + yRatio = yRatio* dataPaneHeight/prevHeight; + yRatio=1; + charHeight = charHeight * yRatio; + dp1XOrig = (int) (ext.getMinX()); + dp1YOrig = (int) (ext.getMinY()); + dp2XOrig = dp1XOrig+ dataPaneWidth; + dp2YOrig = dp1YOrig; + Rectangle rectangle = new Rectangle(dp1XOrig, dp1YOrig,dataPaneWidth,dataPaneHeight); + dataPanel1Background.handleResize(rectangle); + rectangle = new Rectangle(dp2XOrig, dp2YOrig,dataPaneWidth,dataPaneHeight); + dataPanel2Background.handleResize(rectangle); + panelRectArray[0] = dataPanel1Background.getRectangle(); + panelRectArray[1] = dataPanel2Background.getRectangle(); + //System.out.println("Data: handle resize w="+dataPaneWidth+ " h="+ dataPaneHeight); + + } + @Override + public void handleZooming(){ + magnifyFont(currentZoomLevel); + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpDataPaneResourceData.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpDataPaneResourceData.java new file mode 100644 index 0000000000..0cce4bb442 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpDataPaneResourceData.java @@ -0,0 +1,51 @@ +package gov.noaa.nws.ncep.ui.nsharp.display.rsc; +/** + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/23/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpAbstractPaneDescriptor; + +import com.raytheon.uf.viz.core.drawables.IDescriptor; +import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.uf.viz.core.rsc.AbstractResourceData; +import com.raytheon.uf.viz.core.rsc.AbstractVizResource; +import com.raytheon.uf.viz.core.rsc.LoadProperties; + +public class NsharpDataPaneResourceData extends AbstractResourceData { + + @Override + public AbstractVizResource construct(LoadProperties loadProperties, + IDescriptor descriptor) throws VizException { + NsharpAbstractPaneDescriptor desc=(NsharpAbstractPaneDescriptor)descriptor; + //System.out.println("NsharpDataPaneResourceData construct called Panes="+desc.getPaneNumber()); + return new NsharpDataPaneResource(this, loadProperties, desc); + + } + + @Override + public void update(Object updateData) { + // TODO Auto-generated method stub + + } + + @Override + public boolean equals(Object obj) { + // TODO Auto-generated method stub + return false; + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpHodoPaneResource.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpHodoPaneResource.java new file mode 100644 index 0000000000..b41eb326f3 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpHodoPaneResource.java @@ -0,0 +1,684 @@ +package gov.noaa.nws.ncep.ui.nsharp.display.rsc; +/** + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/23/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + +import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingLayer; +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.NsharpShapeAndLineProperty; +import gov.noaa.nws.ncep.ui.nsharp.NsharpSoundingElementStateProperty; +import gov.noaa.nws.ncep.ui.nsharp.NsharpStationStateProperty; +import gov.noaa.nws.ncep.ui.nsharp.NsharpTimeLineStateProperty; +import gov.noaa.nws.ncep.ui.nsharp.background.NsharpHodoPaneBackground; +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpHodoPaneDescriptor; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import org.eclipse.swt.graphics.GC; +import org.eclipse.swt.graphics.RGB; +import org.eclipse.swt.graphics.Rectangle; + +import com.raytheon.uf.common.sounding.WxMath; +import com.raytheon.uf.common.status.UFStatus; +import com.raytheon.uf.common.status.UFStatus.Priority; +import com.raytheon.uf.viz.core.IExtent; +import com.raytheon.uf.viz.core.IGraphicsTarget; +import com.raytheon.uf.viz.core.IGraphicsTarget.HorizontalAlignment; +import com.raytheon.uf.viz.core.IGraphicsTarget.PointStyle; +import com.raytheon.uf.viz.core.IGraphicsTarget.TextStyle; +import com.raytheon.uf.viz.core.IGraphicsTarget.VerticalAlignment; +import com.raytheon.uf.viz.core.PixelExtent; +import com.raytheon.uf.viz.core.drawables.IFont; +import com.raytheon.uf.viz.core.drawables.IWireframeShape; +import com.raytheon.uf.viz.core.drawables.PaintProperties; +import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.uf.viz.core.rsc.AbstractResourceData; +import com.raytheon.uf.viz.core.rsc.LoadProperties; +import com.raytheon.viz.core.graphing.WGraphics; +import com.sun.jna.ptr.FloatByReference; +import com.vividsolutions.jts.geom.Coordinate; + +public class NsharpHodoPaneResource extends NsharpAbstractPaneResource{ + private static final int HODO_NORMAL = 0; + //private static int HODO_EFFECTIVE= 1; not used in BigNsharp source code + private static final int HODO_STORMRELATIVE= 2; + private static final int HODO_BNDRY= 3; + private static final int HODO_MEANWIND= 4; + private int currentHodoWindMode = HODO_MEANWIND; + private NsharpHodoPaneBackground hodoBackground=null; + private String sWindSpeed =""; + private String sWindDirection=""; + private ListhodoWindRscShapeList = new ArrayList(); + private IWireframeShape hodoWindMotionBoxShape = null; + private boolean cursorInHodo=false; + private Integer markerWidth = 1; + private List timeLineStateList; + private List stnStateList; + private IFont fixedFont; + private int hodoWidth = NsharpConstants.HODO_WIDTH; + private int hodoHeight = NsharpConstants.HODO_HEIGHT; + private int hodoXOrig = NsharpConstants.HODO_X_ORIG; + private int hodoYOrig = NsharpConstants.HODO_Y_ORIG; + private int hodoXEnd = NsharpConstants.HODO_X_END; + private int hodoYEnd = NsharpConstants.HODO_Y_ORIG+ NsharpConstants.HODO_HEIGHT; + private Coordinate hodoHouseC = new Coordinate(NsharpConstants.HODO_CENTER_X_, NsharpConstants.HODO_CENTER_Y_); + private float xRatio=1; + private float yRatio=1; + public NsharpHodoPaneResource(AbstractResourceData resourceData, + LoadProperties loadProperties, NsharpHodoPaneDescriptor desc) { + super(resourceData, loadProperties, desc); + + hodoBackground = new NsharpHodoPaneBackground((NsharpHodoPaneDescriptor)descriptor); + } + + private void createRscHodoWindShape(WGraphics world, List soundingLays, RGB incolor){ + + Coordinate c0 = null; + Coordinate c1; + NsharpShapeAndLineProperty shNcolor; + IWireframeShape shapeR=null, shapeG=null, shapeY=null, shapeC=null, shapeV=null, shapeIn=null; + if(incolor == null){ + //creating regular Hodo shape with 5 colors + shNcolor = new NsharpShapeAndLineProperty(); + shapeR = target.createWireframeShape(false,descriptor ); + shNcolor.setShape(shapeR); + shapeR.allocate(soundingLays.size()*2); + shNcolor.getLp().setLineColor(NsharpConstants.color_red); + hodoWindRscShapeList.add(shNcolor); + shNcolor = new NsharpShapeAndLineProperty(); + shapeG= target.createWireframeShape(false,descriptor ); + shNcolor.setShape(shapeG); + shapeG.allocate(soundingLays.size()*2); + shNcolor.getLp().setLineColor(NsharpConstants.color_green); + hodoWindRscShapeList.add(shNcolor); + shNcolor = new NsharpShapeAndLineProperty(); + shapeY= target.createWireframeShape(false,descriptor ); + shNcolor.setShape(shapeY); + shapeY.allocate(soundingLays.size()*2); + shNcolor.getLp().setLineColor(NsharpConstants.color_yellow); + hodoWindRscShapeList.add(shNcolor); + shNcolor = new NsharpShapeAndLineProperty(); + shapeC= target.createWireframeShape(false,descriptor ); + shNcolor.setShape(shapeC); + shapeC.allocate(soundingLays.size()*2); + shNcolor.getLp().setLineColor(NsharpConstants.color_cyan); + hodoWindRscShapeList.add(shNcolor); + shNcolor = new NsharpShapeAndLineProperty(); + shapeV = target.createWireframeShape(false,descriptor ); + shNcolor.setShape(shapeV); + shapeV.allocate(soundingLays.size()*2); + shNcolor.getLp().setLineColor(NsharpConstants.color_violet); + hodoWindRscShapeList.add(shNcolor); + } + else{ + shNcolor = new NsharpShapeAndLineProperty(); + shapeIn = target.createWireframeShape(false,descriptor ); + shNcolor.setShape(shapeIn); + shapeIn.allocate(soundingLays.size()*2); + shNcolor.getLp().setLineColor(incolor); + hodoWindRscShapeList.add(shNcolor); + } + + + for (NcSoundingLayer layer : soundingLays){ + if(layer.getPressure() < 100 || layer.getWindSpeed() <0) + continue; + float wspd = layer.getWindSpeed(); + float wdir = layer.getWindDirection(); + c1 = WxMath.uvComp(wspd, wdir); + if (c0 != null) { + double [][] lines = {{world.mapX(c0.x), world.mapY(c0.y)},{world + .mapX(c1.x), world.mapY(c1.y)}}; + if(incolor == null){ + if(layer.getGeoHeight() 0){ + for(NsharpShapeAndLineProperty shapeColor: hodoWindRscShapeList){ + shapeColor.getShape().dispose(); + } + hodoWindRscShapeList.clear(); + } + world = hodoBackground.computeWorld(); + boolean compareStnIsOn = rscHandler.isCompareStnIsOn(); + int currentTimeLineStateListIndex = rscHandler.getCurrentTimeLineStateListIndex(); + boolean compareTmIsOn = rscHandler.isCompareTmIsOn(); + boolean overlayIsOn = rscHandler.isOverlayIsOn(); + int currentStnStateListIndex = rscHandler.getCurrentStnStateListIndex(); + stnStateList = rscHandler.getStnStateList(); + timeLineStateList = rscHandler.getTimeLineStateList(); + List> stnTimeTable = rscHandler.getStnTimeTable(); + HashMap> dataTimelineSndLysListMap = rscHandler.getDataTimelineSndLysListMap(); + if(compareStnIsOn && currentTimeLineStateListIndex >=0){ + int colorIndex =NsharpConstants.LINE_COMP1; + for(NsharpStationStateProperty elm: stnStateList) { + if(elm.stnState == NsharpConstants.State.ACTIVE && + stnTimeTable.get(stnStateList.indexOf(elm)).get(currentTimeLineStateListIndex).elementState == NsharpConstants.State.AVAIL){ + List soundingLayeys = dataTimelineSndLysListMap.get(stnTimeTable.get(stnStateList.indexOf(elm)).get(currentTimeLineStateListIndex).elementDescription); + RGB color = linePropertyMap.get(NsharpConstants.lineNameArray[colorIndex]).getLineColor(); + colorIndex++; + if(colorIndex > NsharpConstants.LINE_COMP10) + colorIndex =NsharpConstants.LINE_COMP1; + createRscHodoWindShape(world, soundingLayeys, color); + } + } + } + else if(compareTmIsOn && currentStnStateListIndex >=0 ){ + int colorIndex =NsharpConstants.LINE_COMP1; + for(NsharpTimeLineStateProperty elm: timeLineStateList) { + if(elm.timeState == NsharpConstants.State.ACTIVE && + stnTimeTable.get(currentStnStateListIndex).get(timeLineStateList.indexOf(elm)).elementState == NsharpConstants.State.AVAIL){ + List soundingLayeys = dataTimelineSndLysListMap.get(stnTimeTable.get(currentStnStateListIndex).get(timeLineStateList.indexOf(elm)).elementDescription); + RGB color = linePropertyMap.get(NsharpConstants.lineNameArray[colorIndex]).getLineColor(); + colorIndex++; + if(colorIndex > NsharpConstants.LINE_COMP10) + colorIndex =NsharpConstants.LINE_COMP1; + createRscHodoWindShape(world, soundingLayeys, color); + } + } + } + else if(overlayIsOn == true ){ + previousSoundingLys = rscHandler.getPreviousSoundingLys(); + createRscHodoWindShape(world, this.soundingLys, linePropertyMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_OVERLAY1]).getLineColor()); + if(previousSoundingLys!=null && !soundingLys.equals( previousSoundingLys)) + createRscHodoWindShape(world, this.previousSoundingLys, linePropertyMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_OVERLAY2]).getLineColor()); + } + else { + createRscHodoWindShape(world, this.soundingLys, null); + } + + //for future createHodoWindMotionBoxShape(); + + } + private void createHodoWindMotionBoxShape(/*WGraphics world*/){ + hodoWindMotionBoxShape = target.createWireframeShape(false,descriptor ); + hodoWindMotionBoxShape.allocate(12); + double xOri = NsharpConstants.WIND_MOTION_REC_X_ORIG; + double yOri = NsharpConstants.WIND_MOTION_REC_Y_ORIG; + double xEnd= NsharpConstants.WIND_MOTION_REC_X_ORIG + NsharpConstants.WIND_MOTION_REC_WIDTH; + double yEnd = NsharpConstants.WIND_MOTION_REC_Y_ORIG + NsharpConstants.WIND_MOTION_REC_HEIGHT; + double ygap = NsharpConstants.WIND_MOTION_REC_HEIGHT/3; + double [][] lines1 = {{xOri, yOri},{xEnd, yOri}}; + hodoWindMotionBoxShape.addLineSegment(lines1); + double [][] lines2 = {{xOri, yOri+ygap},{xEnd, yOri+ygap}}; + hodoWindMotionBoxShape.addLineSegment(lines2); + double [][] lines3 = {{xOri, yOri+2*ygap},{xEnd, yOri+2*ygap}}; + hodoWindMotionBoxShape.addLineSegment(lines3); + double [][] lines4 = {{xOri, yEnd},{xEnd, yEnd}}; + hodoWindMotionBoxShape.addLineSegment(lines4); + double [][] lines5 = {{xOri, yOri},{xOri, yEnd}}; + hodoWindMotionBoxShape.addLineSegment(lines5); + double [][] lines6 = {{xEnd, yOri},{xEnd, yEnd}}; + hodoWindMotionBoxShape.addLineSegment(lines6); + } + private void plotHodoEditPoints(IGraphicsTarget target, + RGB color) throws VizException { + + Coordinate c1; + for (NcSoundingLayer layer : this.soundingLys){ + if(layer.getPressure() < 100 || layer.getWindSpeed() <0) + continue; + float wspd = layer.getWindSpeed(); + float wdir = layer.getWindDirection(); + c1 = WxMath.uvComp(wspd, wdir); + target.drawPoint(world + .mapX(c1.x), world.mapY(c1.y), 0.0, color, PointStyle.CIRCLE); + + + } + } + /* + * smvtype: 1: small circle, 2 large circle, 3: square + */ + @SuppressWarnings("deprecation") + public void plotNsharpHodoVectors(IGraphicsTarget target, double zoomLevel, + GC gc, boolean printEvent) throws VizException { + double radiusUnit = 5* xRatio; + //System.out.println("radiusUnit="+radiusUnit+" xRatio="+xRatio+ " zoomLevel="+zoomLevel); + //NsharpParametersSelectionConfigDialog configD = NsharpParametersSelectionConfigDialog.getAccess(); + Coordinate c; + FloatByReference value1= new FloatByReference(-999); + FloatByReference value2= new FloatByReference(-999); + FloatByReference wdir= new FloatByReference(-999); + FloatByReference wspd= new FloatByReference(-999); + FloatByReference Surfpressure = new FloatByReference(-999); + String textStr; + + //plot Mean Wind Vector, yellow square, by default plot it + if(((graphConfigProperty != null ) && (graphConfigProperty.isMeanWind()))||(graphConfigProperty == null)){ + nsharpNative.nsharpLib.mean_wind( -1, -1, value1, value2, wdir, wspd); + if( nsharpNative.nsharpLib.qc(wdir.getValue())==1 && nsharpNative.nsharpLib.qc(wspd.getValue())==1) { + c = WxMath.uvComp(wspd.getValue(),wdir.getValue()); + c= world.map(c); + if(printEvent== true){ + gc.setLineWidth(1); + gc.drawRectangle((int) (c.x-radiusUnit), (int)( c.y-radiusUnit), (int)(2*radiusUnit), (int)(2*radiusUnit)); + } + else { + PixelExtent pe = new PixelExtent( c.x-radiusUnit, c.x+radiusUnit, c.y-radiusUnit, c.y+radiusUnit ); + target.drawRect(pe, NsharpConstants.color_yellow, markerWidth*2, 1.0f); + textStr= String.format("%.0f/%.0f MW",wdir.getValue(),wspd.getValue()); + target.drawString(font10, textStr, c.x-radiusUnit, c.y+radiusUnit+5, 0.0, + TextStyle.NORMAL, NsharpConstants.color_yellow, HorizontalAlignment.LEFT, + VerticalAlignment.TOP, null); + } + } + } + //plot 15/85 and/or 30/75 SMV, by default dont plot it + if((graphConfigProperty != null ) && (graphConfigProperty.isSmv1585() || graphConfigProperty.isSmv3075())){ + nsharpNative.nsharpLib.get_surface(Surfpressure, value1, value2); + if(nsharpNative.nsharpLib.qc(Surfpressure.getValue()) == 1) { + nsharpNative.nsharpLib.mean_wind(Surfpressure.getValue(), nsharpNative.nsharpLib.ipres (nsharpNative.nsharpLib.msl (6000.0F)),value1, value2, wdir, wspd); + if( nsharpNative.nsharpLib.qc(wdir.getValue())==1 && nsharpNative.nsharpLib.qc(wspd.getValue())==1) { + // ----- Plot 30/75 Storm Motion Vector -----small red circle + if(graphConfigProperty.isSmv3075()){ + //System.out.println("Plot 30/75 Storm Motion Vector 2"); + float dir = (wdir.getValue() + 30.0f)%360; + float spd = wspd.getValue() * 0.75f; + //System.out.println(spd + " "+ wspd.getValue()); + c = WxMath.uvComp(spd,dir); + c= world.map(c); + if(printEvent== true){ + gc.drawOval((int) (c.x-radiusUnit), (int)( c.y-radiusUnit), (int)(2*radiusUnit), (int)(2*radiusUnit)); + gc.drawLine((int) (c.x - radiusUnit/2), (int)c.y,(int) ( c.x + radiusUnit/2),(int) c.y); + gc.drawLine((int) (c.x), (int)(c.y - radiusUnit/2),(int) ( c.x ),(int) (c.y + radiusUnit/2)); + } + else { + RGB color = NsharpConstants.color_red; + target.drawCircle(c.x, c.y, 0, radiusUnit,color, markerWidth*2); + target.drawLine(c.x - radiusUnit/2, c.y, 0.0,c.x + radiusUnit/2, c.y, 0.0, color, + markerWidth); + target.drawLine(c.x, c.y- radiusUnit/2, 0.0,c.x, c.y + radiusUnit/2, 0.0, color, + markerWidth); + } + } + //----- Plot 15/85 Storm Motion Vector ----- small green color circle + if(graphConfigProperty.isSmv1585()){ + float dir = (wdir.getValue() + 15.0f)%360; + float spd = wspd.getValue() * 0.85f; + //System.out.println(spd + " "+ wspd.getValue()); + c = WxMath.uvComp(spd,dir); + c= world.map(c); + if(printEvent== true){ + gc.drawOval((int) (c.x-radiusUnit), (int)( c.y-radiusUnit), (int)(2*radiusUnit), (int)(2*radiusUnit)); + gc.drawLine((int) (c.x - radiusUnit/2), (int)c.y,(int) ( c.x + radiusUnit/2),(int) c.y); + gc.drawLine((int) (c.x), (int)(c.y - radiusUnit/2),(int) ( c.x ),(int) (c.y + radiusUnit/2)); + } + else { + RGB color = NsharpConstants.color_green; + target.drawCircle(c.x, c.y, 0, radiusUnit,color, markerWidth*2); + target.drawLine(c.x - radiusUnit/2, c.y, 0.0,c.x + radiusUnit/2, c.y, 0.0, color, + markerWidth); + target.drawLine(c.x, c.y- radiusUnit/2, 0.0,c.x, c.y + radiusUnit/2, 0.0, color, + markerWidth); + } + } + } + } + } + //plot Corfidi Vectors, color_stellblue small circles, by default Not plot it + if((graphConfigProperty != null ) && graphConfigProperty.isCorfidiV()){ + //Upwind-Propagating MCS motion vector + FloatByReference upwdir= new FloatByReference(-999); + FloatByReference upwspd= new FloatByReference(-999); + //Downwind-Propagating MCS motion vector + FloatByReference dpwdir= new FloatByReference(-999); + FloatByReference dpwspd= new FloatByReference(-999); + FloatByReference value5= new FloatByReference(-999); + FloatByReference value6= new FloatByReference(-999); + + nsharpNative.nsharpLib.corfidi_MCS_motion(value1, value2, dpwdir, dpwspd, value5, value6, upwdir, upwspd); + c = WxMath.uvComp(dpwspd.getValue(),dpwdir.getValue()); + c= world.map(c); + RGB color = NsharpConstants.color_lightblue; + target.drawCircle(c.x, c.y, 0, radiusUnit/2,color, markerWidth); + //target.drawLine(c.x - radiusUnit/2, c.y, 0.0,c.x + radiusUnit/2, c.y, 0.0, color, + // markerWidth); + //target.drawLine(c.x, c.y- radiusUnit/2, 0.0,c.x, c.y + radiusUnit/2, 0.0, color, + // markerWidth); + textStr = String.format("DP= %.0f/%.0f",dpwdir.getValue(), dpwspd.getValue()); + target.drawString(font10, textStr, c.x, c.y+10*zoomLevel*yRatio, 0.0, + TextStyle.NORMAL, color, HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + + c = WxMath.uvComp(upwspd.getValue(),upwdir.getValue()); + c= world.map(c); + target.drawCircle(c.x, c.y, 0, radiusUnit/2,color, markerWidth); + //target.drawLine(c.x - radiusUnit/2, c.y, 0.0,c.x + radiusUnit/2, c.y, 0.0, color, + // markerWidth); + //target.drawLine(c.x, c.y- radiusUnit/2, 0.0,c.x, c.y + radiusUnit/2, 0.0, color, + // markerWidth); + textStr = String.format("UP= %.0f/%.0f",upwdir.getValue(), upwspd.getValue()); + target.drawString(font10, textStr, c.x, c.y+10*zoomLevel*yRatio, 0.0, + TextStyle.NORMAL, color, HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + } + //plot Bunkers Vector,by default plot them + if(((graphConfigProperty != null ) && graphConfigProperty.isSmvBunkersR())||(graphConfigProperty == null)){ + FloatByReference bwdir= new FloatByReference(-999); + FloatByReference bwspd= new FloatByReference(-999); + nsharpNative.nsharpLib.bunkers_storm_motion(value1, value2, bwdir, bwspd); + c = WxMath.uvComp(bwspd.getValue(),bwdir.getValue()); + c= world.map(c); + RGB color = NsharpConstants.color_firebrick; + target.drawCircle(c.x, c.y, 0, radiusUnit,color, markerWidth); + target.drawLine(c.x - radiusUnit, c.y, 0.0,c.x + radiusUnit, c.y, 0.0, color, + markerWidth); + target.drawLine(c.x, c.y- radiusUnit, 0.0,c.x, c.y + radiusUnit, 0.0, color, + markerWidth); + textStr = String.format("%.0f/%.0f RM",bwdir.getValue(), bwspd.getValue()); + target.drawString(font10, textStr, c.x, c.y+10*zoomLevel*yRatio, 0.0, + TextStyle.NORMAL, color, HorizontalAlignment.RIGHT, + VerticalAlignment.TOP, null); + } + if(((graphConfigProperty != null ) && graphConfigProperty.isSmvBunkersL())||(graphConfigProperty == null)){ + FloatByReference bwdir= new FloatByReference(-999); + FloatByReference bwspd= new FloatByReference(-999); + nsharpNative.nsharpLib.bunkers_left_motion(value1, value2, bwdir, bwspd); + c = WxMath.uvComp(bwspd.getValue(),bwdir.getValue()); + c= world.map(c); + RGB color = NsharpConstants.color_skyblue; + target.drawCircle(c.x, c.y, 0, radiusUnit,color, markerWidth); + target.drawLine(c.x - radiusUnit, c.y, 0.0,c.x + radiusUnit, c.y, 0.0, color, + markerWidth); + target.drawLine(c.x, c.y- radiusUnit, 0.0,c.x, c.y + radiusUnit, 0.0, color, + markerWidth); + textStr = String.format("%.0f/%.0f LM",bwdir.getValue(), bwspd.getValue()); + target.drawString(font10, textStr, c.x, c.y-10*zoomLevel*yRatio, 0.0, + TextStyle.NORMAL, color, HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + } + + //plot current storm motion vector (mouse click) marker + target.drawCircle(hodoHouseC.x, hodoHouseC.y, 0, radiusUnit, + NsharpConstants.color_white, markerWidth); + target.drawLine(hodoHouseC.x - radiusUnit, hodoHouseC.y, 0.0,hodoHouseC.x + radiusUnit, hodoHouseC.y, 0.0, NsharpConstants.color_white, + markerWidth); + target.drawLine(hodoHouseC.x, hodoHouseC.y- radiusUnit, 0.0,hodoHouseC.x, hodoHouseC.y + radiusUnit, 0.0, NsharpConstants.color_white, + markerWidth); + textStr = String.format("%.0f/%.0f",rscHandler.getSmWindDir(), rscHandler.getSmWindSpd()); + target.drawString(font10, textStr, hodoHouseC.x,hodoHouseC.y+radiusUnit*2, 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.CENTER, + VerticalAlignment.TOP, null); + + + //draw lines from storm motion to top and bottom of effective layer + FloatByReference topPF= new FloatByReference(0); + FloatByReference botPF= new FloatByReference(0); + nsharpNative.nsharpLib.get_effectLayertopBotPres(topPF, botPF); + if(botPF.getValue() >=1 ){ + // interpolate wind direction and speed at top and bottom of effective layer + float bot_spd = nsharpNative.nsharpLib.iwspd(botPF.getValue()); + float bot_dir = nsharpNative.nsharpLib.iwdir(botPF.getValue()); + float top_spd = nsharpNative.nsharpLib.iwspd(topPF.getValue()); + float top_dir = nsharpNative.nsharpLib.iwdir(topPF.getValue()); + c = WxMath.uvComp(bot_spd,bot_dir); + c= world.map(c); + target.drawLine(hodoHouseC.x, hodoHouseC.y, 0.0,c.x, c.y, 0.0, NsharpConstants.color_skyblue, + markerWidth); + c = WxMath.uvComp(top_spd,top_dir); + c= world.map(c); + target.drawLine(hodoHouseC.x, hodoHouseC.y, 0.0,c.x, c.y, 0.0, NsharpConstants.color_skyblue, + markerWidth); + } + } + + @SuppressWarnings("deprecation") + private void drawHodoDynamicData(IGraphicsTarget target, double zoomLevel) throws VizException { + // draw running temp, theta, height etc data at window palette bottom + double dispX, xmin; + double dispY, ymin, ymax; + //display wind direction, speed in m/s and knots + //Line 1 - wind direction, speed + IExtent ext = getDescriptor().getRenderableDisplay().getExtent(); + xmin = ext.getMinX(); //Extent's viewable envelope min x and y + ymin = ext.getMinY(); + dispX = xmin + 20 * zoomLevel * xRatio; + dispY = ymin + 40 * zoomLevel * yRatio; + target.drawString(fixedFont, sWindDirection+ " "+ sWindSpeed, dispX, dispY, 0.0, + TextStyle.NORMAL, NsharpConstants.color_cyan, HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + //plot critical angel + float ca = nsharpNative.nsharpLib.cave_criticalAngel(); + if(ca != -9999){ + ymax = ext.getMaxY(); + dispY = ymax - 20 * zoomLevel; + String textStr = String.format("Critical Angel = %.0f",ca); + target.drawString(fixedFont, textStr, dispX,dispY, 0.0, + TextStyle.NORMAL, NsharpConstants.color_cyan, HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + } + } + //To be used later... + @SuppressWarnings("unused") + private void drawHodoWindMotionBox(IGraphicsTarget target, Rectangle rect) throws VizException { + target.drawShadedRect(new PixelExtent(rect.x, rect.x+rect.width, rect.y, rect.y+rect.height), NsharpConstants.color_black, 1.0, null); + target.drawWireframeShape(hodoWindMotionBoxShape, NsharpConstants.color_cyan, commonLinewidth,commonLineStyle,font10); + RGB colorN, colorS, colorM; + switch(currentHodoWindMode){ + case HODO_NORMAL: + colorN = NsharpConstants.color_white; + colorS = NsharpConstants.color_cyan; + colorM = NsharpConstants.color_cyan; + break; + case HODO_STORMRELATIVE: + colorN = NsharpConstants.color_cyan; + colorS = NsharpConstants.color_white; + colorM = NsharpConstants.color_cyan; + break; + case HODO_BNDRY: + colorN = NsharpConstants.color_cyan; + colorS = NsharpConstants.color_cyan; + colorM = NsharpConstants.color_cyan; + break; + case HODO_MEANWIND: + default: + colorN = NsharpConstants.color_cyan; + colorS = NsharpConstants.color_cyan; + colorM = NsharpConstants.color_white; + break; + } + double xOri = NsharpConstants.WIND_MOTION_REC_X_ORIG; + double yOri = NsharpConstants.WIND_MOTION_REC_Y_ORIG; + target.drawString(font10, "NORMAL ", xOri+ NsharpConstants.WIND_MOTION_REC_WIDTH/2, + yOri+NsharpConstants.WIND_MOTION_REC_HEIGHT/3, 0.0, + IGraphicsTarget.TextStyle.NORMAL, + colorN, + HorizontalAlignment.CENTER, + VerticalAlignment.BOTTOM, null); + target.drawString(font10, "STORMREL ", xOri+ NsharpConstants.WIND_MOTION_REC_WIDTH/2, + yOri+ 2* NsharpConstants.WIND_MOTION_REC_HEIGHT/3, 0.0, + IGraphicsTarget.TextStyle.NORMAL, + colorS, + HorizontalAlignment.CENTER, + VerticalAlignment.BOTTOM, null); + target.drawString(font10, "MEAN WIND", xOri+ NsharpConstants.WIND_MOTION_REC_WIDTH/2, + yOri+ NsharpConstants.WIND_MOTION_REC_HEIGHT, 0.0, + IGraphicsTarget.TextStyle.NORMAL, + colorM, + HorizontalAlignment.CENTER, + VerticalAlignment.BOTTOM, null); + } + + @Override + protected void paintInternal(IGraphicsTarget target, + PaintProperties paintProps) throws VizException { + super.paintInternal(target, paintProps); + if(rscHandler==null) + return; + + timeLineStateList = rscHandler.getTimeLineStateList(); //System.out.println("NsharpHodoPaneResource "+ descriptor.getPaneNumber()); + stnStateList = rscHandler.getStnStateList(); + hodoBackground.paintInternal(target, paintProps); + if((soundingLys != null) && (soundingLys.size()>= 4)) + { + this.font10.setSmoothing(false); + this.font10.setScaleFont(false); + this.font9.setSmoothing(false); + this.font9.setScaleFont(false); + this.font12.setSmoothing(false); + this.font12.setScaleFont(false); + fixedFont.setSmoothing(false); + fixedFont.setScaleFont(false); + //plot HODO + PixelExtent extent = new PixelExtent(hodoBackground.getRectangle()); + target.setupClippingPlane(extent); + if(((graphConfigProperty != null )&& graphConfigProperty.isHodo())|| (graphConfigProperty == null)){ + for(NsharpShapeAndLineProperty shapeNColor: hodoWindRscShapeList){ + target.drawWireframeShape(shapeNColor.getShape(), shapeNColor.getLp().getLineColor(), commonLinewidth*2,commonLineStyle,font10); + } + } + boolean compareStnIsOn = rscHandler.isCompareStnIsOn(); + boolean editGraphOn= rscHandler.isEditGraphOn(); + if(editGraphOn && !compareStnIsOn) + plotHodoEditPoints( target,NsharpConstants.color_white); + if(!compareStnIsOn){ + plotNsharpHodoVectors(target, currentZoomLevel, null, false); + } + target.clearClippingPlane(); + if(cursorInHodo){ + + drawHodoDynamicData(target, currentZoomLevel); + } + + + } + + } + + @Override + protected void initInternal(IGraphicsTarget target) throws VizException { + super.initInternal(target); + currentCanvasBoundWidth = NsharpConstants.HODO_PANE_REC_WIDTH; + currentCanvasBoundHeight = NsharpConstants.HODO_PANE_REC_HEIGHT; + myDefaultCanvasWidth = NsharpConstants.HODO_PANE_REC_WIDTH; + myDefaultCanvasHeight = NsharpConstants.HODO_PANE_REC_HEIGHT; + hodoBackground.initInternal(target); + createRscHodoWindShapeAll(); + IFont.Style[] style = {IFont.Style.BOLD}; + fixedFont = target.initializeFont("Monospace", 12, style); + + } + @Override + protected void disposeInternal() { + if(hodoWindRscShapeList.size()>0){ + for(NsharpShapeAndLineProperty shapeColor: hodoWindRscShapeList){ + shapeColor.getShape().dispose(); + } + hodoWindRscShapeList.clear(); + hodoWindRscShapeList=null; + } + if(hodoBackground != null) + { + hodoBackground.disposeInternal(); + hodoBackground = null; + } + if(hodoWindMotionBoxShape!=null) + hodoWindMotionBoxShape.dispose(); + super.disposeInternal(); + } + public String updateDynamicData(Coordinate c) throws VizException { + + try { + //System.out.println(" updateDynamicData entered!!!!!C.x="+c.x + " c.y="+c.y); + if (hodoBackground.contains(c)) { + + c = hodoBackground.getWorld().unMap(c.x, c.y); + c = WxMath.speedDir((float) c.x, (float) c.y); + + + sWindDirection = String.format("%.0f%c", c.y, NsharpConstants.DEGREE_SYMBOL); + sWindSpeed = String.format("%.0f Knots (%.0f m/s)",c.x, c.x * NsharpConstants.KnotsToMetersPerSecond /*metersPerSecondToKnots.convert(c.x)*/); + + //#10438 smSpd = (float) c.x; + //smDir = (float) c.y; + } + + + } catch (Exception e) { + UFStatus.getHandler().handle(Priority.PROBLEM, "Exception translating coordinate", e); + } + return ""; + } + + public void setCursorInHodo(boolean cursorInHodo) { + this.cursorInHodo = cursorInHodo; + + } + public NsharpHodoPaneBackground getHodoBackground() { + return hodoBackground; + } + public void setHodoHouseC(Coordinate hodoHouseC) { + this.hodoHouseC = hodoHouseC; + + } + @Override + public void handleResize() { + + super.handleResize(); + IExtent ext = getDescriptor().getRenderableDisplay().getExtent(); + ext.reset(); + //System.out.println("skewtPane: handleResize"); + float prevHeight = hodoHeight; + float prevWidth = hodoWidth; + hodoXOrig = (int) (ext.getMinX()); + hodoYOrig = (int) ext.getMinY(); + hodoWidth = (int) (ext.getWidth()); + hodoHeight = (int) ext.getHeight(); + hodoXEnd = hodoXOrig+ hodoWidth; + hodoYEnd = hodoYOrig+ hodoHeight; + xRatio = xRatio* hodoWidth/prevWidth; + yRatio = yRatio* hodoHeight/prevHeight; + hodoBackground.handleResize(ext); + + createRscHodoWindShapeAll(); + + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpHodoPaneResourceData.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpHodoPaneResourceData.java new file mode 100644 index 0000000000..8e976efd52 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpHodoPaneResourceData.java @@ -0,0 +1,51 @@ +package gov.noaa.nws.ncep.ui.nsharp.display.rsc; +/** + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/23/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpHodoPaneDescriptor; + +import com.raytheon.uf.viz.core.drawables.IDescriptor; +import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.uf.viz.core.rsc.AbstractResourceData; +import com.raytheon.uf.viz.core.rsc.AbstractVizResource; +import com.raytheon.uf.viz.core.rsc.LoadProperties; + +public class NsharpHodoPaneResourceData extends AbstractResourceData { + + @Override + public AbstractVizResource construct(LoadProperties loadProperties, + IDescriptor descriptor) throws VizException { + NsharpHodoPaneDescriptor desc=(NsharpHodoPaneDescriptor)descriptor; + //System.out.println("NsharpHodoPaneResourceData construct called Panes="+desc.getPaneNumber()); + return new NsharpHodoPaneResource(this, loadProperties, desc); + + } + + @Override + public void update(Object updateData) { + // TODO Auto-generated method stub + + } + + @Override + public boolean equals(Object obj) { + // TODO Auto-generated method stub + return false; + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpInsetPaneResource.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpInsetPaneResource.java new file mode 100644 index 0000000000..ab991ac188 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpInsetPaneResource.java @@ -0,0 +1,1136 @@ +package gov.noaa.nws.ncep.ui.nsharp.display.rsc; +/** + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/23/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + +import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingLayer; +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.background.NsharpGenericPaneBackground; +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpAbstractPaneDescriptor; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpNative; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpNative.NsharpLibrary._lplvalues; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpNative.NsharpLibrary._parcel; + +import java.util.HashMap; + +import org.eclipse.swt.graphics.RGB; +import org.eclipse.swt.graphics.Rectangle; + +import com.raytheon.uf.viz.core.IExtent; +import com.raytheon.uf.viz.core.IGraphicsTarget; +import com.raytheon.uf.viz.core.IGraphicsTarget.HorizontalAlignment; +import com.raytheon.uf.viz.core.IGraphicsTarget.LineStyle; +import com.raytheon.uf.viz.core.IGraphicsTarget.TextStyle; +import com.raytheon.uf.viz.core.IGraphicsTarget.VerticalAlignment; +import com.raytheon.uf.viz.core.PixelExtent; +import com.raytheon.uf.viz.core.drawables.IWireframeShape; +import com.raytheon.uf.viz.core.drawables.PaintProperties; +import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.uf.viz.core.rsc.AbstractResourceData; +import com.raytheon.uf.viz.core.rsc.LoadProperties; +import com.raytheon.uf.viz.core.rsc.capabilities.OutlineCapability; +import com.raytheon.viz.core.graphing.WGraphics; +import com.sun.jna.ptr.FloatByReference; + +public class NsharpInsetPaneResource extends NsharpAbstractPaneResource{ + private int currentInsetPage= 1; + private Integer markerWidth = 1; + private IWireframeShape thetaEPressureYRscShape = null; + private IWireframeShape thetaEPressureWRscShape = null; + private IWireframeShape thetaEPressureRRscShape = null; + private IWireframeShape thetaEHeightYRscShape = null; + private IWireframeShape thetaEHeightWRscShape = null; + private IWireframeShape thetaEHeightRRscShape = null; + private IWireframeShape srWindBRscShape = null; + private IWireframeShape srWindWRscShape = null; + private IWireframeShape srWindRRscShape = null; + private IWireframeShape srWindGRscShape = null; + private IWireframeShape srWindMRscShape = null; + private IWireframeShape psblWatchTypeBkgShape = null; + private RGB wwTypeColor; + private NsharpGenericPaneBackground thetaEHeightBackground; + private NsharpGenericPaneBackground srWindsBackground; + private NsharpGenericPaneBackground stormSlinkyBackground; + private NsharpGenericPaneBackground srWindVectorBackground; + private NsharpGenericPaneBackground thetaEPresureBackground; + private NsharpGenericPaneBackground psblWatchTypeBackground; + private int insetPaneWidth= NsharpConstants.INSET_PANE_REC_WIDTH; + private int insetPaneHeight= NsharpConstants.INSET_PANE_REC_HEIGHT; + private float xRatio=1; + private float yRatio=1; + private int insetWidth = NsharpConstants.INSET_WIDTH; + private int insetHeight = NsharpConstants.INSET_HEIGHT; + private int thetahXOrig = NsharpConstants.THETAH_X_ORIG; + private int thetahYOrig = NsharpConstants.THETAH_Y_ORIG; + private int thetapXOrig = NsharpConstants.THETAP_X_ORIG; + private int thetapYOrig = NsharpConstants.THETAP_Y_ORIG; + private int srwindsXOrig = NsharpConstants.SRWINDS_X_ORIG; + private int srwindsYOrig = NsharpConstants.SRWINDS_Y_ORIG; + private int stormSlinkXOrig = NsharpConstants.STORMSLINKY_X_ORIG; + private int stormSlinkYOrig = NsharpConstants.STORMSLINKY_Y_ORIG; + private int srwindvtrXOrig = NsharpConstants.SRWINDVTRS_X_ORIG; + private int srwindvtrYOrig = NsharpConstants.SRWINDVTRS_Y_ORIG; + private int psbWatchXOrig = NsharpConstants.PSBLWATCH_X_ORIG; + private int psbWatchYOrig = NsharpConstants.PSBLWATCH_Y_ORIG; + private HashMap stormSlinkyColorMap = new HashMap(); + public NsharpInsetPaneResource(AbstractResourceData resourceData, + LoadProperties loadProperties, NsharpAbstractPaneDescriptor desc) { + super(resourceData, loadProperties, desc); + + thetaEHeightBackground = new NsharpGenericPaneBackground(new Rectangle(NsharpConstants.THETAH_X_ORIG,NsharpConstants.THETAH_Y_ORIG, + NsharpConstants.INSET_WIDTH,NsharpConstants.INSET_HEIGHT)); + srWindsBackground = new NsharpGenericPaneBackground(new Rectangle(NsharpConstants.SRWINDS_X_ORIG,NsharpConstants.SRWINDS_Y_ORIG, + NsharpConstants.INSET_WIDTH,NsharpConstants.INSET_HEIGHT)); + stormSlinkyBackground = new NsharpGenericPaneBackground(new Rectangle(NsharpConstants.STORMSLINKY_X_ORIG,NsharpConstants.STORMSLINKY_Y_ORIG, + NsharpConstants.INSET_WIDTH,NsharpConstants.INSET_HEIGHT)); + srWindVectorBackground = new NsharpGenericPaneBackground(new Rectangle(NsharpConstants.SRWINDVTRS_X_ORIG,NsharpConstants.SRWINDVTRS_Y_ORIG, + NsharpConstants.INSET_WIDTH,NsharpConstants.INSET_HEIGHT)); + psblWatchTypeBackground = new NsharpGenericPaneBackground(new Rectangle(NsharpConstants.PSBLWATCH_X_ORIG,NsharpConstants.PSBLWATCH_Y_ORIG, + NsharpConstants.INSET_WIDTH,NsharpConstants.INSET_HEIGHT));//NsharpPsblWatchTypeBackground(); + thetaEPresureBackground = new NsharpGenericPaneBackground(new Rectangle(NsharpConstants.THETAP_X_ORIG,NsharpConstants.THETAP_Y_ORIG, + NsharpConstants.INSET_WIDTH,NsharpConstants.INSET_HEIGHT)); + //based on BigNsharp storm slinky color used and gempak color definition + stormSlinkyColorMap.put(new Integer(3),NsharpConstants.color_green); //green + stormSlinkyColorMap.put(new Integer(7),NsharpConstants.color_magenta); + stormSlinkyColorMap.put(new Integer(6),NsharpConstants.color_cyan); + stormSlinkyColorMap.put(new Integer(13),NsharpConstants.color_violet_md); + stormSlinkyColorMap.put(new Integer(20),NsharpConstants.color_yellow_DK); + stormSlinkyColorMap.put(new Integer(27),NsharpConstants.color_cyan_md); + } + + + @Override + protected synchronized void initInternal(IGraphicsTarget target) throws VizException { + super.initInternal(target); + currentCanvasBoundWidth = NsharpConstants.INSET_PANE_REC_WIDTH; + currentCanvasBoundHeight = NsharpConstants.INSET_PANE_REC_HEIGHT; + myDefaultCanvasWidth = NsharpConstants.INSET_PANE_REC_WIDTH; + myDefaultCanvasHeight = NsharpConstants.INSET_PANE_REC_HEIGHT; + thetaEHeightBackground.initInternal(target); + stormSlinkyBackground.initInternal(target); + srWindsBackground.initInternal(target); + srWindVectorBackground.initInternal(target); + psblWatchTypeBackground.initInternal(target); + thetaEPresureBackground.initInternal(target); + createInsetWireFrameShapes(); + } + @Override + protected void disposeInternal() { + disposeInsetWireFrameShapes(); + if(thetaEPresureBackground != null) + { + thetaEPresureBackground.disposeInternal(); + thetaEPresureBackground = null; + } + if(psblWatchTypeBackground != null) + { + psblWatchTypeBackground.disposeInternal(); + psblWatchTypeBackground = null; + } + if(srWindVectorBackground != null) + { + srWindVectorBackground.disposeInternal(); + srWindVectorBackground = null; + } + if(srWindsBackground != null) + { + srWindsBackground.disposeInternal(); + srWindsBackground = null; + } + if(stormSlinkyBackground != null) + { + stormSlinkyBackground.disposeInternal(); + stormSlinkyBackground = null; + } + if(thetaEPresureBackground != null) + { + thetaEPresureBackground.disposeInternal(); + thetaEPresureBackground = null; + } + super.disposeInternal(); + } + @Override + protected void paintInternal(IGraphicsTarget target, + PaintProperties paintProps) throws VizException { + super.paintInternal(target, paintProps); + if(rscHandler== null) + return; + if(zoomLevel != currentZoomLevel) + { + magnifyFont(zoomLevel); + } + thetaEHeightBackground.paint(target, paintProps); + srWindsBackground.paint(target, paintProps); + stormSlinkyBackground.paint(target, paintProps); + srWindVectorBackground.paint(target, paintProps); + //Chin, since we only display 4 insets and their backgrounds have same size, only draws 4 backgrounds. + //psblWatchTypeBackground.paint(target, paintProps); + //thetaEPresureBackground.paint(target, paintProps); + if((soundingLys != null) && (soundingLys.size()>= 4)) + { + this.font10.setSmoothing(false); + this.font10.setScaleFont(false); + this.font12.setSmoothing(false); + this.font12.setScaleFont(false); + //plot SRWinds- currently always on page 1 and page 2 + PixelExtent extent = new PixelExtent(srWindsBackground.getRectangle()); + target.setupClippingPlane(extent); + target.drawWireframeShape(srWindBRscShape, NsharpConstants.color_cyan, commonLinewidth, LineStyle.SOLID,font10); + target.drawWireframeShape(srWindWRscShape, NsharpConstants.color_white, commonLinewidth, LineStyle.SOLID,font12); + target.drawWireframeShape(srWindRRscShape, NsharpConstants.color_red, commonLinewidth, LineStyle.SOLID,font10); + target.drawWireframeShape(srWindGRscShape, NsharpConstants.color_green, commonLinewidth, LineStyle.SOLID,font10); + target.drawWireframeShape(srWindMRscShape, NsharpConstants.color_magenta, commonLinewidth, LineStyle.SOLID,font10); + target.clearClippingPlane(); + //plot storm slinky - currently always on page 1 and page 2 + WGraphics plotWorld = stormSlinkyBackground.getWorld(); + plotNsharpStormSlinky(target, currentZoomLevel, plotWorld, stormSlinkyBackground.getRectangle()); + currentInsetPage = rscHandler.getCurrentInsetPage(); + if(currentInsetPage == 1){ + //plot ThetaE-Pressure + extent = new PixelExtent(thetaEPresureBackground.getRectangle()); + target.setupClippingPlane(extent); + target.drawWireframeShape(thetaEPressureYRscShape, NsharpConstants.color_yellow, commonLinewidth, LineStyle.SOLID,font12); + target.drawWireframeShape(thetaEPressureWRscShape, NsharpConstants.color_white, commonLinewidth, LineStyle.SOLID,font12); + target.drawWireframeShape(thetaEPressureRRscShape, NsharpConstants.color_red, commonLinewidth, LineStyle.SOLID,font12); + target.clearClippingPlane(); + //plot possibleWatchType + if(psblWatchTypeBkgShape==null){ + WGraphics WGc = psblWatchTypeBackground.getWorld(); + createBkgPsblWatchShape(WGc); + } + + extent = new PixelExtent(psblWatchTypeBackground.getRectangle()); + target.setupClippingPlane(extent); + target.drawWireframeShape(psblWatchTypeBkgShape, wwTypeColor, commonLinewidth, LineStyle.SOLID,font12); + //plotWorld = psblWatchTypeBackground.getWorld(); + //plotPsblWatchShape(target, currentZoomLevel, plotWorld, psblWatchTypeBackground.getRectangle()); + target.clearClippingPlane(); + + } + else if(currentInsetPage == 2){ + //plot ThetaE-Height + extent = new PixelExtent(thetaEHeightBackground.getRectangle()); + target.setupClippingPlane(extent); + target.drawWireframeShape(thetaEHeightYRscShape, NsharpConstants.color_yellow, commonLinewidth, LineStyle.SOLID,font12); + target.drawWireframeShape(thetaEHeightWRscShape, NsharpConstants.color_white, commonLinewidth, LineStyle.SOLID,font10); + target.drawWireframeShape(thetaEHeightRRscShape, NsharpConstants.color_red, commonLinewidth, LineStyle.SOLID,font10); + target.clearClippingPlane(); + //plot SR Wind Vectors + plotWorld = srWindVectorBackground.getWorld(); + plotNsharpSRWindVectors(target, currentZoomLevel, plotWorld, srWindVectorBackground.getRectangle()); + } + + } + + } + private void disposeInsetWireFrameShapes(){ + if(thetaEPressureYRscShape!=null){ + thetaEPressureYRscShape.dispose(); + thetaEPressureYRscShape=null; + } + if(thetaEPressureRRscShape!=null){ + thetaEPressureRRscShape.dispose(); + thetaEPressureRRscShape=null; + } + if(thetaEPressureWRscShape!=null){ + thetaEPressureWRscShape.dispose(); + thetaEPressureWRscShape=null; + } + if(thetaEHeightYRscShape!=null){ + thetaEHeightYRscShape.dispose(); + thetaEHeightYRscShape=null; + } + if(thetaEHeightWRscShape!=null){ + thetaEHeightWRscShape.dispose(); + thetaEHeightWRscShape=null; + } + if(thetaEHeightRRscShape!=null){ + thetaEHeightRRscShape.dispose(); + thetaEHeightRRscShape=null; + } + if(srWindBRscShape!=null){ + srWindBRscShape.dispose(); + srWindBRscShape=null; + } + if(srWindWRscShape!=null){ + srWindWRscShape.dispose(); + srWindWRscShape=null; + } + if(srWindRRscShape!=null){ + srWindRRscShape.dispose(); + srWindRRscShape=null; + } + if(srWindGRscShape!=null){ + srWindGRscShape.dispose(); + srWindGRscShape=null; + } + if(srWindMRscShape!=null){ + srWindMRscShape.dispose(); + srWindMRscShape=null; + } + if(psblWatchTypeBkgShape!=null){ + psblWatchTypeBkgShape.dispose(); + psblWatchTypeBkgShape=null; + } + } + public void createInsetWireFrameShapes(){ + if(target == null) + return; + //System.out.println("createRscWireFrameShapes called"); + disposeInsetWireFrameShapes(); + if(soundingLys != null){ + + WGraphics WGc= thetaEPresureBackground.getWorld(); + createRscThetaEPressureShape(WGc); + WGc= thetaEHeightBackground.getWorld(); + createRscThetaEHeightShape(WGc); + WGc= srWindsBackground.getWorld(); + createRscSrWindShape(WGc); + + // Chin: Note: delay create possible watch type to when first time paintInterl() called. + // To fix an initial watch type not correct issue: TTR6191. + //WGc = bkRsc.getPsblWatchTypeBackground().getWorld(); + //createBkgPsblWatchShape(WGc); + if(psblWatchTypeBkgShape != null){ + psblWatchTypeBkgShape.dispose(); + psblWatchTypeBkgShape = null; + } + + } + } + private void plotPsblWatchShape(IGraphicsTarget target, double zoomLevel, + WGraphics world, Rectangle rect) throws VizException { + String wwtypeStr; + + double dispX, dispY; + //int width = getCapability(OutlineCapability.class).getOutlineWidth(); + /* ----- Plot Label ----- */ + dispX = world.getViewXmin()+ 100 ; + dispY = world.getViewYmin()+15; + System.out.println("plotPsblWatchShape called w="+insetWidth+ " h="+insetHeight+" psbWatchXOrig="+psbWatchXOrig+ " psbWatchYOrig=" + psbWatchYOrig+ " dispX="+dispX+" dispY="+dispY); + + + if(soundingLys == null){ + wwtypeStr = "NONE"; + wwTypeColor = NsharpConstants.color_gold; + } + else { + int wwtype = nsharpNative.nsharpLib.cave_ww_type(); + + //System.out.println("ww type="+ wwtype); + //See nsharpNative.nsharpLib.cave_ww_type() for returned wwtype definitions + switch(wwtype){ + case 1: + wwtypeStr = "MRGL SVR"; + wwTypeColor = NsharpConstants.color_skyblue; + break; + case 2: + wwtypeStr = "SVR"; + wwTypeColor = NsharpConstants.color_cyan; + break; + case 3: + wwtypeStr = "MRGL TOR"; + wwTypeColor = NsharpConstants.color_red; + break; + case 4: + wwtypeStr = "TOR"; + wwTypeColor = NsharpConstants.color_red; + break; + case 5: + wwtypeStr = "PDS TOR"; + wwTypeColor = NsharpConstants.color_magenta; + break; + default: + wwtypeStr = "NONE"; + wwTypeColor = NsharpConstants.color_gold; + break; + } + } + + target.drawString(font12, "Psbl Watch Type", dispX, dispY, 0.0, + TextStyle.NORMAL, wwTypeColor, HorizontalAlignment.CENTER, + VerticalAlignment.MIDDLE, null); + + target.drawString(font12, wwtypeStr, dispX, dispY+75, 0.0, + TextStyle.NORMAL, wwTypeColor, HorizontalAlignment.CENTER, + VerticalAlignment.MIDDLE, null); + target.drawLine(world.getViewXmin() , dispY+10, 0.0, world.getViewXmax(),dispY+10, 0.0, wwTypeColor, + commonLinewidth); + } + + public void createBkgPsblWatchShape(WGraphics world){ + String wwtypeStr; + + double dispX, dispY; + //int width = getCapability(OutlineCapability.class).getOutlineWidth(); + /* ----- Plot Label ----- */ + dispX = world.getViewXmin()+ 100 *xRatio; + dispY = world.getViewYmin()+15* yRatio; + //System.out.println("createBkgPsblWatchShape called w="+insetWidth+ " h="+insetHeight+" psbWatchXOrig="+psbWatchXOrig+ " psbWatchYOrig=" + psbWatchYOrig+ " dispX="+dispX+" dispY="+dispY); + + if(psblWatchTypeBkgShape!=null){ + psblWatchTypeBkgShape.dispose(); + psblWatchTypeBkgShape = null; + } + psblWatchTypeBkgShape = target.createWireframeShape(false,descriptor ); + psblWatchTypeBkgShape.allocate(4); + double [] lblXy = { dispX, dispY}; + psblWatchTypeBkgShape.addLabel("Psbl Watch Type", lblXy); + double [] lblXy1 = {dispX, dispY+75*yRatio}; + if(soundingLys == null){ + wwtypeStr = "NONE"; + wwTypeColor = NsharpConstants.color_gold; + } + else { + int wwtype = nsharpNative.nsharpLib.cave_ww_type(); + + //System.out.println("ww type="+ wwtype); + //See nsharpNative.nsharpLib.cave_ww_type() for returned wwtype definitions + switch(wwtype){ + case 1: + wwtypeStr = "MRGL SVR"; + wwTypeColor = NsharpConstants.color_skyblue; + break; + case 2: + wwtypeStr = "SVR"; + wwTypeColor = NsharpConstants.color_cyan; + break; + case 3: + wwtypeStr = "MRGL TOR"; + wwTypeColor = NsharpConstants.color_red; + break; + case 4: + wwtypeStr = "TOR"; + wwTypeColor = NsharpConstants.color_red; + break; + case 5: + wwtypeStr = "PDS TOR"; + wwTypeColor = NsharpConstants.color_magenta; + break; + default: + wwtypeStr = "NONE"; + wwTypeColor = NsharpConstants.color_gold; + break; + } + } + psblWatchTypeBkgShape.addLabel(wwtypeStr, lblXy1); + double [][] lines = {{world.getViewXmin(), dispY+30 *yRatio},{world.getViewXmax(), dispY+30 *yRatio}}; + psblWatchTypeBkgShape.addLineSegment(lines); + psblWatchTypeBkgShape.compile(); + } + public void createRscSrWindShape(WGraphics world){ + /* + * Chin:: NOTE::: + * + * This plotting function is based on the algorithm of plot_vertsrw() at xwvid5.c of native nsharp source code + * + */ + double dispX, dispY, dispX1, dispY1; + double xScaleAdjustRatio, yScaleAdjustRatio; + double bothgt,tophgt; + double vyMax = world.getViewYmax(); + double vyMin = world.getViewYmin(); + double vxMax = world.getViewXmax(); + double vxMin = world.getViewXmin(); + + /* ----- Set Layer (AGL) ----- */ + bothgt = 0; + tophgt = 16000; + if(srWindBRscShape!=null) + srWindBRscShape.dispose(); + if(srWindWRscShape!=null) + srWindWRscShape.dispose(); + if(srWindRRscShape!=null) + srWindRRscShape.dispose(); + if(srWindGRscShape!=null) + srWindGRscShape.dispose(); + if(srWindMRscShape!=null) + srWindMRscShape.dispose(); + srWindBRscShape = target.createWireframeShape(false,descriptor ); + srWindBRscShape.allocate(2); + srWindRRscShape = target.createWireframeShape(false,descriptor ); + srWindRRscShape.allocate(250); + srWindWRscShape= target.createWireframeShape(false,descriptor ); + srWindWRscShape.allocate(250); + srWindGRscShape = target.createWireframeShape(false,descriptor ); + srWindGRscShape.allocate(2); + srWindMRscShape= target.createWireframeShape(false,descriptor ); + srWindMRscShape.allocate(250); + /* ----- Plot Label ----- */ + dispX = vxMin + 25*xRatio; + dispY = vyMin+15*yRatio; + double [] lblXy = { vxMin + (vxMax-vxMin)/2, dispY}; + srWindWRscShape.addLabel("SR Winds (kt) vs Height", lblXy); + + /* ----- Plot height legend ----- */ + // 2 = 2000 m + int yNum = 0; + for(double h=0; h<=vyMax-vyMin; h += (vyMax-vyMin)/8) + { + dispY = vyMax - h ; + dispX = vxMin; + double [][] lines = {{dispX, dispY},{dispX+10*xRatio,dispY}}; + srWindWRscShape.addLineSegment(lines); + if(h> 0 && h0 && h = 500) && (nsharpNative.nsharpLib.qc(lys.getDewpoint()) !=0 )){ + thetaE = nsharpNative.nsharpLib.thetae( lys.getPressure(), lys.getTemperature(),lys.getDewpoint())-cthe; + dispX = xAxisCenter + ( thetaE * xScaleAdjustRatio ); + dispY = vyMax - (nsharpNative.nsharpLib.agl(lys.getGeoHeight()) * yScaleAdjustRatio ) ; + + if(dispX1 == -999) { + dispX1 = dispX; + dispY1 = dispY; + } + double [][] lines1 = {{dispX, dispY},{dispX1,dispY1}}; + thetaEHeightRRscShape.addLineSegment(lines1); + dispX1 = dispX; + dispY1 = dispY; + + } + } + /* ----- Plot Vertical Legend ----- */ + dispX = vxMin; + for(float pres=1000; pres > 500; pres -= 100) + { + int iPres; + dispY = vyMax - (nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pres)) * yScaleAdjustRatio ) ; + double [][] lines1 = {{dispX, dispY},{dispX+10* xRatio,dispY}}; + thetaEHeightWRscShape.addLineSegment(lines1); + iPres = (((int)nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pres)))/100)*100; + double [] lblXy1 = { dispX+20* xRatio, dispY}; + thetaEHeightYRscShape.addLabel(String.valueOf(iPres), lblXy1); + } + thetaEHeightYRscShape.compile(); + thetaEHeightWRscShape.compile(); + thetaEHeightRRscShape.compile(); + + } + private void createRscThetaEPressureShape(WGraphics world){ + /* + * Chin:: NOTE::: + * This plotting function is based on the algorithm of plot_thetae() at xwvid5.c of native nsharp source code + * + */ + thetaEPressureYRscShape = target.createWireframeShape(false,descriptor ); + thetaEPressureYRscShape.allocate(2); + thetaEPressureRRscShape = target.createWireframeShape(false,descriptor ); + thetaEPressureRRscShape.allocate(soundingLys.size() * 2); + thetaEPressureWRscShape = target.createWireframeShape(false,descriptor ); + thetaEPressureWRscShape.allocate(100); + double dispX, dispY, dispX1, dispY1; + double xAxisCenter, xScaleAdjustRatio, thetaEDispWidth; + double yScaleAdjustRatio; + float t700, t850, d700, d850, ct1, ct2, ct3, cthe, nct; + double vyMax = world.getViewYmax(); + double vyMin = world.getViewYmin(); + double vxMax = world.getViewXmax(); + double vxMin = world.getViewXmin(); + + // add a virtual line to make wire fram shape worked when only strings are added to shape + double [][] lines = {{0, 0},{0,0}}; + thetaEPressureYRscShape.addLineSegment(lines); + /* ----- Set Layer (AGL) ----- */ + + //----- Plot Label ----- + dispX = vxMin + 20* xRatio ; + dispY = vyMin+30 * yRatio; + + double [] lblXy = { dispX+ 80* xRatio, dispY-10* yRatio}; + thetaEPressureYRscShape.addLabel("Theta-E vs Pressure", lblXy); + + //plot theta E difference + double [] lblXy2= {dispX+50* xRatio,dispY+60* yRatio}; + FloatByReference tempF= new FloatByReference(0); + @SuppressWarnings("deprecation") + float thetaEDiff= nsharpNative.nsharpLib.ThetaE_diff(tempF); + if(nsharpNative.nsharpLib.qc(thetaEDiff) == 1){ + String thetaDiffStr = String.format("TEI = %.0f", thetaEDiff); + thetaEPressureYRscShape.addLabel(thetaDiffStr, lblXy2); + } + // ----- Plot horizontal legend ----- + + FloatByReference surfpressure= new FloatByReference(0); + FloatByReference surfTemp= new FloatByReference(0); + FloatByReference surfDewpt= new FloatByReference(0); + t700 = nsharpNative.nsharpLib.itemp(700.0F); + if (nsharpNative.nsharpLib.qc(t700) == 0) + return; + t850 = nsharpNative.nsharpLib.itemp(850.0F); + if (nsharpNative.nsharpLib.qc(t850) == 0) + return; + d700 = nsharpNative.nsharpLib.idwpt(700.0F); + if (nsharpNative.nsharpLib.qc(d700) == 0) + return; + d850 = nsharpNative.nsharpLib.idwpt(850.0F); + if (nsharpNative.nsharpLib.qc(d850) == 0) + return; + ct1 = nsharpNative.nsharpLib.thetae( 850.0F, t850, d850); + ct2 = nsharpNative.nsharpLib.thetae( 700.0F, t700, d700); + nsharpNative.nsharpLib.get_surface(surfpressure, surfTemp, surfDewpt); + ct3 = nsharpNative.nsharpLib.thetae( surfpressure.getValue(), surfTemp.getValue(), surfDewpt.getValue() ); + cthe = 0.0F; nct = 0.0F; + if(nsharpNative.nsharpLib.qc(ct1) != 0) + { + cthe = cthe + ct1; + nct++; + } + if(nsharpNative.nsharpLib.qc(ct2) != 0) + { + cthe = cthe + ct2; + nct++; + } + if(nsharpNative.nsharpLib.qc(ct3)!= 0) + { + cthe = cthe + ct3; + nct++; + } + if(nct < 1.0F) return; + cthe = cthe / nct; + //Adjust Theta-E axis scale with real view X scale + thetaEDispWidth = 60; + xAxisCenter = ((vxMax-vxMin ) / 2 ) + vxMin; + xScaleAdjustRatio = (vxMax-vxMin)/thetaEDispWidth; + for(double h= -(thetaEDispWidth/2); h<=(thetaEDispWidth/2); h += 10.0F) + { + int iThetaE = (int)(h+cthe); //cthe sits in the middle of x-axis + dispX = xAxisCenter + (h* xScaleAdjustRatio) ; + dispY = vyMax; + //System.out.println("cthe = " + cthe+"xmax = " + vxMax + ", Ymax = " +vyMax + " x1 ="+ x1 + "y1 = " + y1 + " h = " + h ); + double [][] lines1 = {{dispX, dispY},{dispX,dispY-20* yRatio}}; + thetaEPressureWRscShape.addLineSegment(lines1); + if((h != -(thetaEDispWidth/2))&&(h != (thetaEDispWidth/2)) ){ + //draw scale with kelvin degree + double [] lblXy1= { dispX+1, dispY-20* yRatio}; + thetaEPressureYRscShape.addLabel(String.valueOf(iThetaE+273), lblXy1); + } + + } + + // ----- Plot vertical theta-e profile ----- + //use soundingLys directly + float thetaE, highPressure=1000; + dispX1 = dispY1 = -999; + //find highest pressure available on sounding data. But should be <= 1000 and > 500 + for( NcSoundingLayer lys:soundingLys) + { + if((lys.getPressure() >= 500) && (lys.getPressure() <= 1000)){ + highPressure = lys.getPressure(); + break; + } + } + yScaleAdjustRatio = (vyMax-vyMin)/(highPressure-500); + for( NcSoundingLayer lys:soundingLys) + { //plot only at pressure greater than or equal to 500 + if((lys.getPressure() >= 500) && (lys.getPressure() <= 1000) && (nsharpNative.nsharpLib.qc(lys.getDewpoint()) !=0 )){ + thetaE = nsharpNative.nsharpLib.thetae( lys.getPressure(), lys.getTemperature(),lys.getDewpoint())-cthe; + dispX = xAxisCenter + ( thetaE * xScaleAdjustRatio ); + dispY = vyMin + (lys.getPressure()-500) * yScaleAdjustRatio ; + + if(dispX1 == -999) { + dispX1 = dispX; + dispY1 = dispY; + } + //System.out.println("dispX="+dispX+" dispY="+dispY+" geoH="+lys.getGeoHeight()); + double [][] lines1 = {{dispX, dispY},{dispX1,dispY1}}; + thetaEPressureRRscShape.addLineSegment(lines1); + dispX1 = dispX; + dispY1 = dispY; + + } + } + /* ----- Plot Vertical (pressure) Legend ----- */ + dispX = vxMin; + for(int pres=900; pres > 500; pres -= 100) + { + dispY = vyMin +(pres-500) * yScaleAdjustRatio ; + double [][] lines1 = {{dispX, dispY},{dispX+20* xRatio,dispY}}; + thetaEPressureWRscShape.addLineSegment(lines1); + double [] lblXy1= { dispX+25* xRatio, dispY}; + thetaEPressureYRscShape.addLabel(String.valueOf(pres), lblXy1); + } + thetaEPressureYRscShape.compile(); + thetaEPressureWRscShape.compile(); + thetaEPressureRRscShape.compile(); + } + @SuppressWarnings("deprecation") + private void plotNsharpStormSlinky(IGraphicsTarget target, double zoomLevel, + WGraphics world, Rectangle rect) throws VizException { + /* + * Chin:: NOTE::: + * + * This plotting function is based on the algorithm of plot_vis(),visual1(), vis_xy() + * at xwvid5.c of legacy nsharp source code + * + * This function is dynamically chnaged when user change "storm relative" + * (by click on Hodo graph). Also it uses target.drawCircle. + * With these 2 reasons, wire frame shape is not used. + */ + double dispX, dispY, dispX1, dispY1; + double vyMax = world.getViewYmax(); + double vyMin = world.getViewYmin(); + double vxMax = world.getViewXmax(); + double vxMin = world.getViewXmin(); + + PixelExtent extent = new PixelExtent(rect); + target.setupClippingPlane(extent); + /* ----- Plot Label ----- */ + dispX = vxMin + 15 * xRatio; + dispY = vyMax -20* yRatio; + target.drawString(font12, "Storm Slinky", dispX, dispY, 0.0, + TextStyle.NORMAL, NsharpConstants.color_yellow, HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + //plot X axis + //xScaleAdjustRatio = (world.getViewXmax()-vxMin)/50; + dispY = vyMin + (vyMax - vyMin )/2; + target.drawLine(vxMin , dispY, 0.0, vxMax,dispY, 0.0, NsharpConstants.color_stellblue, + commonLinewidth/4F); + //plot Y axis + dispX = vxMin + (vxMax - vxMin )/2; + target.drawLine(dispX, vyMax, 0.0, dispX,vyMin, 0.0, NsharpConstants.color_stellblue, + commonLinewidth/4F); + + + // ----- Plot storm motion - white line ----- + dispX = vxMin + (vxMax - vxMin )/2; + dispY = vyMin + (vyMax - vyMin )/2; + FloatByReference smdir=new FloatByReference(0), smspd = new FloatByReference(0); + nsharpNative.nsharpLib.get_storm(smspd, smdir); + //System.out.println("Slinky Wind Spd " + smspd.getValue() + " dir " + smdir.getValue()+ " lib="+nsharpNative.toString() ); + dispX1 = dispX + nsharpNative.nsharpLib.ucomp( smdir.getValue(), 30.0F) * 1 * xRatio; + dispY1 = dispY - nsharpNative.nsharpLib.vcomp( smdir.getValue(), 30.0F) * 1 * yRatio; + target.drawLine(dispX, dispY, 0.0, dispX1,dispY1, 0.0, NsharpConstants.color_white, + commonLinewidth*2); + + /// ----- Calculate Parcel Data ----- + _lplvalues lpvls = new _lplvalues(); + nsharpNative.nsharpLib.get_lpvaluesData(lpvls); + float sfctemp, sfcdwpt, sfcpres; + sfctemp = lpvls.temp; + sfcdwpt = lpvls.dwpt; + sfcpres = lpvls.pres; + // get parcel data by calling native nsharp parcel() API. value is returned in pcl + _parcel pcl = new _parcel(); + nsharpNative.nsharpLib.parcel( -1.0F, -1.0F, sfcpres, sfctemp, sfcdwpt, pcl); + /* ----- Run Visualization Routine to plot storm ----- */ + NsharpNative.NsharpLibrary.StormSlinkyStr stmSky = new NsharpNative.NsharpLibrary.StormSlinkyStr(); + //call cave_visual1 to get all points that to be plotted + nsharpNative.nsharpLib.cave_visual1( pcl.lfcpres, pcl.elpres, sfcpres, sfctemp, sfcdwpt,stmSky); + //System.out.println(" size = "+ stmSky.getSize()+ " tim ="+ stmSky.getTottim()+ " ang = "+ stmSky.getAngl()); + float tsuv[] = stmSky.getTsuv(); + int colors[] = stmSky.getColor(); + double minRatio = Math.min(xRatio, yRatio); + for(int i=0; i < stmSky.getSize(); i++){ + float xfactor, xs, ys; + + xfactor=.0075f;// was .01F at legacy code + + xs = (float)dispX + (-tsuv[i*2] * xfactor *xRatio); + ys = (float)dispY + (-tsuv[i*2+1] * xfactor * yRatio); + RGB color = stormSlinkyColorMap.get(colors[i]); + + target.drawCircle(xs, ys, 0, 6*minRatio, + color, markerWidth); + } + //write ang and tottim + dispX = vxMin + 15*xRatio; + dispY = vyMin + 30*yRatio; + String s = (int)stmSky.getTottim()+ " s " + (int)stmSky.getAngl() + " deg"; + target.drawString(font12, s, dispX, dispY, 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + } + + @SuppressWarnings("deprecation") + private void plotNsharpSRWindVectors(IGraphicsTarget target, double zoomLevel, + WGraphics world, Rectangle rect) throws VizException { + /* + * Chin:: NOTE::: + * + * This plotting function is based on the algorithm of plot_storminflow() + * at xwvid5.c of legacy nsharp source code + * + * This function is dynamically changed when user change "storm relative" + * (by click on Hodo graph). Also it uses target.drawArc. + * With these 2 reasons, wire frame shape is not used. + */ + double dispX, dispY; + double vyMax = world.getViewYmax(); + double vyMin = world.getViewYmin(); + double vxMax = world.getViewXmax(); + double vxMin = world.getViewXmin(); + int width = getCapability(OutlineCapability.class).getOutlineWidth(); + + PixelExtent extent = new PixelExtent(rect); + target.setupClippingPlane(extent); + /* ----- Plot Label ----- */ + dispX = vxMin + 30* xRatio; + dispY = vyMin + 30* yRatio; + //System.out.println("plotNsharpSRWindVectors called w="+insetWidth+ " h="+insetHeight+" psbWatchXOrig="+psbWatchXOrig+ " psbWatchYOrig=" + psbWatchYOrig+ " dispX="+dispX+" dispY="+dispY); + + target.drawString(font12, "SR Wind Vectors", dispX, dispY, 0.0, + TextStyle.NORMAL, NsharpConstants.color_yellow, HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + //plot X axis + //xScaleAdjustRatio = (world.getViewXmax()-vxMin)/50; + dispY = vyMin + (vyMax - vyMin )/2; + target.drawLine(vxMin , dispY, 0.0, vxMax,dispY, 0.0, NsharpConstants.color_white, + width/3F); + //plot Y axis + dispX = vxMin + (vxMax - vxMin )/2; + target.drawLine(dispX, vyMax, 0.0, dispX,vyMin, 0.0, NsharpConstants.color_white, + width/3F); + + //plot speed rings + double minRatio = Math.min(xRatio, yRatio); + for(int i=20; i<=/*NsharpConstants.INSET_WIDTH*/ insetWidth/2; i+=20) { + double radius = i * minRatio; + target.drawArc(dispX,dispY, 0, radius,NsharpConstants.color_stellblue, markerWidth, 0, 360, LineStyle.DASH_DOTTED, true); + } + + FloatByReference smdir= new FloatByReference(0); + FloatByReference smspd= new FloatByReference(0); + FloatByReference wdir= new FloatByReference(0); + FloatByReference wspd= new FloatByReference(0); + FloatByReference mnu= new FloatByReference(0); + FloatByReference mnv= new FloatByReference(0); + nsharpNative.nsharpLib.get_storm(smspd, smdir); + double xscaleFactor = 0.7 * xRatio; + double yscaleFactor = 0.7* yRatio; + int gap = 10; + /* ----- Plot 0-2km Inflow Vector ----- */ + nsharpNative.nsharpLib.sr_wind( -1, + nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(2000)), smdir.getValue(), smspd.getValue(), + mnu, mnv, wdir, wspd); + target.drawLine(dispX , dispY, 0.0, dispX + mnu.getValue() * xscaleFactor ,dispY- mnv.getValue()* yscaleFactor, 0.0, NsharpConstants.color_red, + width*2); + + target.drawString(font12, "L", dispX+ mnu.getValue()* xscaleFactor, dispY- mnv.getValue()* yscaleFactor+2*gap* yRatio, 0.0, + TextStyle.NORMAL, NsharpConstants.color_red, HorizontalAlignment.CENTER, + VerticalAlignment.MIDDLE, null); + /* ----- Plot 4-6km Inflow Vector ----- */ + nsharpNative.nsharpLib.sr_wind( nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(4000)), + nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(6000)), smdir.getValue(), smspd.getValue(), + mnu, mnv, wdir, wspd); + target.drawLine(dispX , dispY, 0.0, dispX + mnu.getValue()* xscaleFactor,dispY- mnv.getValue()* yscaleFactor, 0.0, NsharpConstants.color_cyan, + width*2); + + target.drawString(font12, "M", dispX+ mnu.getValue()* xscaleFactor, dispY- mnv.getValue()* yscaleFactor+2*gap* yRatio, 0.0, + TextStyle.NORMAL, NsharpConstants.color_cyan, HorizontalAlignment.CENTER, + VerticalAlignment.MIDDLE, null); + /* ----- Plot 9-11km Inflow Vector ----- */ + nsharpNative.nsharpLib.sr_wind( nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(9000)), + nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(11000)), smdir.getValue(), smspd.getValue(), + mnu, mnv, wdir, wspd); + target.drawLine(dispX , dispY, 0.0, dispX + mnu.getValue()* xscaleFactor,dispY- mnv.getValue()* yscaleFactor, 0.0, NsharpConstants.color_hotpink, + width*2); + + target.drawString(font12, "H", dispX+ mnu.getValue()* xscaleFactor, dispY- mnv.getValue()* yscaleFactor+ 2*gap* yRatio, 0.0, + TextStyle.NORMAL, NsharpConstants.color_hotpink, HorizontalAlignment.CENTER, + VerticalAlignment.MIDDLE, null); + + } + + public NsharpGenericPaneBackground getPsblWatchTypeBackground() { + return psblWatchTypeBackground; + } + + + public NsharpGenericPaneBackground getSrWindsBackground() { + return srWindsBackground; + } + @Override + public void handleResize(){ + super.handleResize(); + IExtent ext = getDescriptor().getRenderableDisplay().getExtent(); + ext.reset(); + this.rectangle = new Rectangle((int)ext.getMinX(), (int) ext.getMinY(), + (int) ext.getWidth(), (int) ext.getHeight()); + pe = new PixelExtent(this.rectangle); + getDescriptor().setNewPe(pe); + float prevHeight = insetPaneHeight; + float prevWidth = insetPaneWidth; + insetPaneWidth= (int) (ext.getWidth()); + insetPaneHeight= (int) (ext.getHeight()); + xRatio = xRatio* insetPaneWidth/prevWidth; + yRatio = yRatio* insetPaneHeight/prevHeight; + insetWidth = insetPaneWidth/4; + insetHeight = insetPaneHeight; + srwindsXOrig = (int) (ext.getMinX()); + srwindsYOrig = (int) ext.getMinY(); + stormSlinkXOrig = srwindsXOrig+insetWidth; + stormSlinkYOrig = srwindsYOrig; + thetahXOrig = stormSlinkXOrig+insetWidth; + thetahYOrig = srwindsYOrig; + thetapXOrig = stormSlinkXOrig+insetWidth; // same as thetah + thetapYOrig = srwindsYOrig; + srwindvtrXOrig = thetapXOrig+insetWidth; + srwindvtrYOrig = srwindsYOrig; + psbWatchXOrig = thetapXOrig+insetWidth; // same as srwindvtr + psbWatchYOrig = srwindsYOrig; + Rectangle rectangle = new Rectangle(srwindsXOrig, srwindsYOrig,insetWidth,insetHeight); + srWindsBackground.handleResize(rectangle); + rectangle = new Rectangle(stormSlinkXOrig, stormSlinkYOrig,insetWidth,insetHeight); + stormSlinkyBackground.handleResize(rectangle); + rectangle = new Rectangle(thetahXOrig, thetahYOrig,insetWidth,insetHeight); + thetaEHeightBackground.handleResize(rectangle); + rectangle = new Rectangle(thetapXOrig, thetapYOrig,insetWidth,insetHeight); + thetaEPresureBackground.handleResize(rectangle); + rectangle = new Rectangle(srwindvtrXOrig, srwindvtrYOrig,insetWidth,insetHeight); + srWindVectorBackground.handleResize(rectangle); + rectangle = new Rectangle(psbWatchXOrig, psbWatchYOrig,insetWidth,insetHeight); + psblWatchTypeBackground.handleResize(rectangle); + createInsetWireFrameShapes(); + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpInsetPaneResourceData.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpInsetPaneResourceData.java new file mode 100644 index 0000000000..7a63622054 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpInsetPaneResourceData.java @@ -0,0 +1,51 @@ +package gov.noaa.nws.ncep.ui.nsharp.display.rsc; +/** + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/23/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpAbstractPaneDescriptor; + +import com.raytheon.uf.viz.core.drawables.IDescriptor; +import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.uf.viz.core.rsc.AbstractResourceData; +import com.raytheon.uf.viz.core.rsc.AbstractVizResource; +import com.raytheon.uf.viz.core.rsc.LoadProperties; + +public class NsharpInsetPaneResourceData extends AbstractResourceData { + + @Override + public AbstractVizResource construct(LoadProperties loadProperties, + IDescriptor descriptor) throws VizException { + NsharpAbstractPaneDescriptor desc=(NsharpAbstractPaneDescriptor)descriptor; + //System.out.println("NsharpInsetPaneResourceData construct called Panes="+desc.getPaneNumber()); + return new NsharpInsetPaneResource(this, loadProperties, desc); + + } + + @Override + public void update(Object updateData) { + // TODO Auto-generated method stub + + } + + @Override + public boolean equals(Object obj) { + // TODO Auto-generated method stub + return false; + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpPerspectiveListener.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpPerspectiveListener.java new file mode 100644 index 0000000000..e4bd97a02c --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpPerspectiveListener.java @@ -0,0 +1,95 @@ +package gov.noaa.nws.ncep.ui.nsharp.display.rsc; +/** + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/23/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + +import org.eclipse.ui.IPerspectiveDescriptor; +import org.eclipse.ui.IPerspectiveListener4; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchPartReference; + +public class NsharpPerspectiveListener implements IPerspectiveListener4{ + private NsharpResourceHandler rscHandler; + private String myPerspectiveId; + @Override + public void perspectiveOpened(IWorkbenchPage page, + IPerspectiveDescriptor perspective) { + // TODO Auto-generated method stub + + } + + @Override + public void perspectiveClosed(IWorkbenchPage page, + IPerspectiveDescriptor perspective) { + // TODO Auto-generated method stub + + } + + @Override + public void perspectiveDeactivated(IWorkbenchPage page, + IPerspectiveDescriptor perspective) { + // TODO Auto-generated method stub + + } + + @Override + public void perspectiveSavedAs(IWorkbenchPage page, + IPerspectiveDescriptor oldPerspective, + IPerspectiveDescriptor newPerspective) { + // TODO Auto-generated method stub + + } + + @Override + public void perspectiveChanged(IWorkbenchPage page, + IPerspectiveDescriptor perspective, + IWorkbenchPartReference partRef, String changeId) { + // TODO Auto-generated method stub + + } + + @Override + public void perspectiveActivated(IWorkbenchPage page, + IPerspectiveDescriptor perspective) { + if(perspective.getId().equals(myPerspectiveId)) + rscHandler.repopulateSndgData(); + } + + @Override + public void perspectiveChanged(IWorkbenchPage page, + IPerspectiveDescriptor perspective, String changeId) { + // TODO Auto-generated method stub + + } + + @Override + public void perspectivePreDeactivate(IWorkbenchPage page, + IPerspectiveDescriptor perspective) { + // TODO Auto-generated method stub + + } + + public void setRscHandler(NsharpResourceHandler rscHandler) { + this.rscHandler = rscHandler; + } + + public void setMyPerspectiveId(String myPerspectiveId) { + this.myPerspectiveId = myPerspectiveId; + } + + +} \ No newline at end of file diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpResourceHandler.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpResourceHandler.java new file mode 100644 index 0000000000..51759eb7c6 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpResourceHandler.java @@ -0,0 +1,2917 @@ +/** + * + * gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpResourceHandler + * + * This java class performs the NSHARP NsharpSkewTResource functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/30/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.display.rsc; + +import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingLayer; +import gov.noaa.nws.ncep.ui.nsharp.ElementStateProperty; +import gov.noaa.nws.ncep.ui.nsharp.NsharpConfigManager; +import gov.noaa.nws.ncep.ui.nsharp.NsharpConfigStore; +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.NsharpDataPageProperty; +import gov.noaa.nws.ncep.ui.nsharp.NsharpGraphProperty; +import gov.noaa.nws.ncep.ui.nsharp.NsharpLineProperty; +import gov.noaa.nws.ncep.ui.nsharp.NsharpSoundingElementStateProperty; +import gov.noaa.nws.ncep.ui.nsharp.NsharpStationInfo; +import gov.noaa.nws.ncep.ui.nsharp.NsharpStationStateProperty; +import gov.noaa.nws.ncep.ui.nsharp.NsharpTimeLineStateProperty; +import gov.noaa.nws.ncep.ui.nsharp.NsharpWxMath; +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpEditor; +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpSkewTPaneDisplay; +import gov.noaa.nws.ncep.ui.nsharp.display.map.NsharpMapResource; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpDataHandling; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpNative; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpNative.NsharpLibrary._lplvalues; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpNativeConstants; +import gov.noaa.nws.ncep.ui.nsharp.view.NsharpPaletteWindow; +import gov.noaa.nws.ncep.ui.nsharp.view.NsharpParcelDialog; +import gov.noaa.nws.ncep.ui.nsharp.view.NsharpShowTextDialog; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.StringTokenizer; + +import org.eclipse.core.runtime.ListenerList; +import org.eclipse.swt.graphics.GC; +import org.eclipse.swt.graphics.RGB; +import org.eclipse.ui.PlatformUI; + +import com.raytheon.uf.common.sounding.WxMath; +import com.raytheon.uf.common.time.DataTime; +import com.raytheon.uf.viz.core.IDisplayPaneContainer; +import com.raytheon.uf.viz.core.datastructure.LoopProperties; +import com.raytheon.uf.viz.core.drawables.IDescriptor.FrameChangeMode; +import com.raytheon.uf.viz.core.drawables.IDescriptor.FrameChangeOperation; +import com.raytheon.uf.viz.core.drawables.IRenderableDisplay; +import com.raytheon.uf.viz.core.drawables.IWireframeShape; +import com.raytheon.uf.viz.core.drawables.ResourcePair; +import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.uf.viz.sounding.SoundingParams; +import com.raytheon.viz.core.graphing.LineStroke; +import com.raytheon.viz.core.graphing.WGraphics; +import com.raytheon.viz.core.graphing.WindBarbFactory; +import com.raytheon.viz.ui.perspectives.VizPerspectiveListener; +import com.sun.jna.ptr.FloatByReference; +import com.vividsolutions.jts.geom.Coordinate; +@SuppressWarnings("deprecation") +public class NsharpResourceHandler { + private IRenderableDisplay[] displayArray=null; + private NsharpPerspectiveListener pspLsner; + private NsharpSkewTPaneResource skewtPaneRsc; + private NsharpWitoPaneResource witoPaneRsc; + private NsharpHodoPaneResource hodoPaneRsc; + private NsharpTimeStnPaneResource timeStnPaneRsc; + private NsharpInsetPaneResource insetPaneRsc; + private NsharpDataPaneResource dataPaneRsc; + NsharpNative nsharpNative=null; + private static final int DATAPAGEMAX = NsharpConstants.PAGE_MAX_NUMBER/ 2; + private static final int INSETPAGEMAX =2; + private int currentTextChapter= 1; + private int currentInsetPage= 1; + private int cnYOrig = NsharpConstants.COLOR_NOTATION_Y_ORIG; + private int dtNextPageEnd = NsharpConstants.DATA_TIMELINE_NEXT_PAGE_END_; + private int charHeight = NsharpConstants.CHAR_HEIGHT_; + private int dtYOrig = NsharpConstants.DATA_TIMELINE_Y_ORIG; + /* Hodograph Modes - definition is based on definitions in globals_xw.h of BigNsharp */ + private static final int HODO_NORMAL = 0; + //private static int HODO_EFFECTIVE= 1; not used in BigNsharp source code + private static final int HODO_STORMRELATIVE= 2; + private static final int HODO_BNDRY= 3; + private static final int HODO_MEANWIND= 4; + private int currentHodoWindMode = HODO_MEANWIND; + private NsharpConfigManager configMgr; + private NsharpConfigStore configStore; + private NsharpGraphProperty graphConfigProperty; + private HashMap linePropertyMap; + private NsharpDataPageProperty dataPageProperty; + private int[] pageDisplayOrderNumberArray = new int[NsharpConstants.PAGE_MAX_NUMBER+1]; //index is the real page defined in NsharpConstants to be shown, value is the order number of this page. index 0 point to a dummy. + private boolean overlayIsOn = false; + private boolean interpolateIsOn = false; + private boolean compareStnIsOn = false; + private boolean compareTmIsOn = false; + private boolean editGraphOn=false; + private boolean getTimeMatcher=false; + public int TEMP_TYPE = 1; + public int DEWPOINT_TYPE = 2; + private int currentTempCurveType; + private int currentSoundingLayerIndex =0; + private int hodoEditingSoundingLayerIndex =0; + private boolean plotInteractiveTemp= false; + private Coordinate interactiveTempPointCoordinate; + private List intpSndLst = new ArrayList(); + public static final float INVALID_DATA = NsharpNativeConstants.NSHARP_NATIVE_INVALID_DATA; + protected static final double BARB_LENGTH = 3.5; + private String soundingType= null; + + protected Map soundingMap; + + protected DataTime displayedSounding; + + private int currentGraphMode= NsharpConstants.GRAPH_SKEWT; + + protected ListenerList listenerList = new ListenerList(); + + private List> soundingLysList = null; + + //current active sounding layer list + private List soundingLys = null; + private List previousSoundingLys = null; + private String pickedStnInfoStr; // current picked stn info with time line, e.g. "ATLH 2010-12-12 12:00:00" + private NsharpStationInfo pickedStnInfo = null; + private FrameChangeOperation currentOpDirection = FrameChangeOperation.NEXT; // next =forward + + + private HashMap stormSlinkyColorMap = new HashMap(); + //list of sounding layer list for each data time line + private HashMap> dataTimelineSndLysListMap = new HashMap>(); + private HashMap> originalDataTimelineSndLysListMap= new HashMap>(); + + //dataTimelineList: time line selected by user, but is updated based on available time line at DB at setRsc() + // this is derived from dataTimelineSndLysListMap. It has stn info + sounding time line info + // used field is used to identify if this time line is picked by user. user could pick multiple time lines for comparison + private List dataTimelineList= new ArrayList(); + public List getDataTimelineList() { + System.out.println("getDataTimelineList called"); + for(List stnList: stnTimeTable){ + for(NsharpSoundingElementStateProperty sndProp: stnList){ + ElementStateProperty elm = new ElementStateProperty(); + elm.setElementDescription(sndProp.getElementDescription()); + elm.setStnInfo(sndProp.getStnInfo()); + elm.setElementState(sndProp.getElementState()); + dataTimelineList.add(elm); + } + } + Collections.sort(dataTimelineList, new ElementComparatorNameTime()); + return dataTimelineList; + } + + + // Chin Note: Store all sounding profiles property for GUI display control + // 1st index points to stnId and 2nd index points to time line. + // IN other words, the outer list is listed by stnId and inner list is listed by time line. + // It is same as [][] 2D matrix. When a new Stn with a time line loaded, + // We create a new stn list (in outer list) and fill in all (currently available) time lines (in inner list), even only one element is loaded. + // All unloaded element is marked as "NOTAVAIL" state. Only when user load new sounding at this stn at this time line, then change + // this element state out of "NOTAVAIL". + // stn1---> stn2--->stn3->... + // | | | + // V V V + // T1 T1 T1 + // | | | + // V V V + // T2 T2 T2 + // | | | + // V V V + // T3 T3 T3 + // | | | + // V V V + // Its outer list index should be in sync with stnStateList, and its inner list index should be in sync with timeLineStateList + // elementState should be AVAIL or NOTAVAIL only + private List>stnTimeTable = new ArrayList< List >(); + //timeLineStateList store time line administration state. Active, Inactive + private List timeLineStateList = new ArrayList(); + //stnStateList store stn administration states, Active, Inactive And stn info + private List stnStateList = new ArrayList(); + private NsharpSoundingElementStateProperty curSndProfileProp = null; + private NsharpSoundingElementStateProperty preSndProfileProp = null; + private int curTimeLinePage=1; + private int totalTimeLinePage=1; + private int curStnIdPage=1; + private int totalStnIdPage=1; + private int currentStnStateListIndex; + private int currentTimeLineStateListIndex; + private int previousTimeLineStateListIndex; + + public List> getStnTimeTable() { + return stnTimeTable; + } + + + public List getTimeLineStateList() { + return timeLineStateList; + } + + public List getStnStateList() { + return stnStateList; + } + + + private HashMap elementColorMap = new HashMap(); + + + //TBD private NsharpDrawPanels drawPanel; + + public class ParcelData{ + short parcelType; + float parcelLayerPressure; + + public short getParcelType() { + return parcelType; + } + public void setParcelType(short parcelType) { + this.parcelType = parcelType; + } + public float getParcelLayerPressure() { + return parcelLayerPressure; + } + public void setParcelLayerPressure(float parcelLayerPressure) { + this.parcelLayerPressure = parcelLayerPressure; + } + + + }; + private List parcelList = new ArrayList(); + private short currentParcel = NsharpNativeConstants.PARCELTYPE_MOST_UNSTABLE; + private float currentParcelLayerPressure = NsharpNativeConstants.MU_LAYER; + //private Coordinate hodoHouseC = new Coordinate(NsharpConstants.HODO_CENTER_X, NsharpConstants.HODO_CENTER_Y); + private float smWindDir, smWindSpd; + //shape and color storage + public class ShapeAndLineProperty { + IWireframeShape shape; + NsharpLineProperty lp; + public ShapeAndLineProperty() { + super(); + lp = new NsharpLineProperty(); + } + + } + public HashMap getLinePropertyMap() { + return linePropertyMap; + } + + + + public boolean isCompareStnIsOn() { + return compareStnIsOn; + } + public boolean isCompareTmIsOn() { + return compareTmIsOn; + } + + public boolean isOverlayIsOn() { + return overlayIsOn; + } + + + public NsharpNative getNsharpNative() { + return nsharpNative; + } + + + + public void setNextTextChapter(){ + if(currentTextChapter == DATAPAGEMAX){ + currentTextChapter = 1; + } + else + currentTextChapter++; + } + public void setNextInsetPage(){ + if(currentInsetPage == INSETPAGEMAX){ + currentInsetPage = 1; + } + else + currentInsetPage++; + } + + + public void setOverlayIsOn(boolean overlay) { + previousSoundingLys=null; + previousTimeLineStateListIndex=-1; + preSndProfileProp = null; + this.overlayIsOn = overlay; + + hodoPaneRsc.createRscHodoWindShapeAll(); + skewtPaneRsc.createRscPressTempCurveShapeAll(); + } + public void setInterpolateIsOn(boolean interpolateIsOn) { + this.interpolateIsOn = interpolateIsOn; + + } + + + public boolean isInterpolateIsOn() { + return interpolateIsOn; + } + public void setCompareStnIsOn(boolean compareIsOn) { + this.compareStnIsOn = compareIsOn; + /*if(compareStnIsOn){ + currentTimeLineStateListIndexBackup = currentTimeLineStateListIndex; + currentStnStateListIndexBackup = currentStnStateListIndex; + } + else{ + currentTimeLineStateListIndex = currentTimeLineStateListIndexBackup; + currentStnStateListIndex = currentStnStateListIndexBackup; + }*/ + //make sure soundingLys is not null + if(soundingLys==null && compareIsOn && currentTimeLineStateListIndex>=0){ + //find a new available stn for current time line + boolean found = false; + for(int i =0; i< stnStateList.size(); i++){ + if(stnStateList.get(i).getStnState() == NsharpConstants.State.ACTIVE + && stnTimeTable.get(i).get(currentTimeLineStateListIndex).getElementState() == NsharpConstants.State.AVAIL){ + found = true; + currentStnStateListIndex = i; + } + if(found) + break; + } + } + int numTimeLinePerPage = (cnYOrig-dtNextPageEnd)/charHeight; + curStnIdPage = totalStnIdPage/numTimeLinePerPage + 1; + setCurSndProfileProp(); + setCurrentSoundingLayerInfo(); + resetData(); + if(soundingLys!=null){ + hodoPaneRsc.createRscHodoWindShapeAll(); + skewtPaneRsc.createRscPressTempCurveShapeAll(); + } + } + public void setCompareTmIsOn(boolean compareIsOn) { + this.compareTmIsOn = compareIsOn; + //make sure soundingLys is not null + if(soundingLys==null && compareIsOn){ + //find a new available time line for current stn + boolean found = false; + for(int i =0; i< timeLineStateList.size(); i++){ + if(timeLineStateList.get(i).getTimeState() == NsharpConstants.State.ACTIVE + && stnTimeTable.get(currentStnStateListIndex).get(i).getElementState() == NsharpConstants.State.AVAIL){ + found = true; + previousTimeLineStateListIndex = currentTimeLineStateListIndex; + currentTimeLineStateListIndex = i; + } + if(found) + break; + } + } + int numTimeLinePerPage = (cnYOrig-dtNextPageEnd)/charHeight; + curTimeLinePage = currentTimeLineStateListIndex/numTimeLinePerPage + 1; + setCurSndProfileProp(); + setCurrentSoundingLayerInfo(); + resetData(); + if(soundingLys!=null){ + hodoPaneRsc.createRscHodoWindShapeAll(); + skewtPaneRsc.createRscPressTempCurveShapeAll(); + } + } + + public void setEditGraphOn(boolean editGraphOn) { + this.editGraphOn = editGraphOn; + } + + public boolean isEditGraphOn() { + return editGraphOn; + } + + + public int getCurrentGraphMode() { + return currentGraphMode; + } + + public void setCurrentGraphMode(int currentGraphMode) { + this.currentGraphMode = currentGraphMode; + skewtPaneRsc.setCurrentGraphMode(currentGraphMode); + + /*NsharpEditor editor = NsharpEditor.getActiveNsharpEditor(); + //getWitoPaneRsc().recreateShapes(); + if (editor != null) { + editor.refresh(); + }*/ + refreshPane(); + } + + + public short getCurrentParcel() { + return currentParcel; + } + + //native nsharp c/fortran lib + //NsharpNative is native nsharp lib awips/lib/libnsharp.so wrapper class + + public float getSmWindDir() { + return smWindDir; + } + public float getSmWindSpd() { + return smWindSpd; + } + + public void setCurrentHodoWindMode(int cursorPositionIndex) { + switch(cursorPositionIndex){ + case 0: + this.currentHodoWindMode = HODO_NORMAL; + break; + case 1: + this.currentHodoWindMode = HODO_STORMRELATIVE; + break; + case 2: + default: + this.currentHodoWindMode = HODO_MEANWIND; + break; + } + } + + public NsharpStationInfo getPickedStnInfo() { + return pickedStnInfo; + } + public String getSoundingType() { + return soundingType; + } + + + public void setSoundingType(String soundingType) { + this.soundingType = soundingType; + } + + /*public static NsharpSkewTResource createSkewtResource() { + LoadProperties loadProperties1 = new LoadProperties(); + ColorableCapability colorable1 = new ColorableCapability(); + colorable1.setColor(NsharpConstants.backgroundColor); + loadProperties1.getCapabilities().addCapability(colorable1); + return new NsharpSkewTResource(new NsharpSkewTResourceData(), + loadProperties1); + }*/ + + public List> getSoundingLysList() { + return soundingLysList; + } + + public void setCurrentParcel(short currentParcel) { + this.currentParcel = currentParcel; + currentParcelLayerPressure=NsharpNativeConstants.parcelToLayerMap.get(currentParcel); + //inform draw panel as well + if(dataPaneRsc!=null){ + dataPaneRsc.setCurrentParcel(currentParcel); + } + } + /* + * NOTE:::ONly one parcel will be in parcel list as current design changed to only show one configured parcel + * This is how BigNsharp does. + * Todo: replace List with just one ParcelData + */ + public void setParcelList(List parcelList) { + this.parcelList = parcelList; + skewtPaneRsc.createParcelShapes(parcelList); + } + public void updateParcelFromPanel(short currentParcel){ + this.currentParcel = currentParcel; + currentParcelLayerPressure=NsharpNativeConstants.parcelToLayerMap.get(currentParcel); + //update parcel shape + List parcelList = new ArrayList(); + ParcelData pd= new ParcelData(); + pd.setParcelType(currentParcel); + pd.setParcelLayerPressure(currentParcelLayerPressure); + parcelList.add(pd); + setParcelList(parcelList); + } + /* + * NOTE:::when called, it assumed that this new element is current parcel. Therefore caller has to make sure of this. + * + public void addParcelToList(ParcelData parceldata) { + boolean addToList = true; + for(ParcelData pdata : parcelList){ + if((pdata.parcelType == parceldata.parcelType) && (pdata.parcelLayerPressure == parceldata.parcelLayerPressure)){ + addToList= false; + break; + } + } + if(addToList== true) + this.parcelList.add(parceldata); + + currentParcel = parceldata.getParcelType(); + currentParcelLayerPressure = parceldata.getParcelLayerPressure(); + NsharpBackgroundResource bkRsc = descriptor.getSkewTBkGResource(); + WGraphics WGc = bkRsc.getSkewTBackground().getWorld(); + createRscParcelTraceShape( WGc, parceldata.parcelType,parceldata.parcelLayerPressure); + + }*/ + + + public void setSoundingLysList(List> soundingLysList) { + this.soundingLysList = soundingLysList; + } + public void setHodoHouseC(Coordinate hodoHouseC) { + hodoPaneRsc.setHodoHouseC(hodoHouseC); + Coordinate c = hodoPaneRsc.getHodoBackground().getWorld().unMap(hodoHouseC.x, hodoHouseC.y); + c = WxMath.speedDir((float) c.x, (float) c.y); + smWindDir = (float) c.y; + smWindSpd = (float)c.x; + nsharpNative.nsharpLib.set_storm(smWindSpd, smWindDir); + + WGraphics WGc = insetPaneRsc.getPsblWatchTypeBackground().getWorld(); + insetPaneRsc.createBkgPsblWatchShape(WGc); + //Sr wind vs Height graph shape need to recreate + WGc= insetPaneRsc.getSrWindsBackground().getWorld(); + insetPaneRsc.createRscSrWindShape(WGc); + + } + + //This function is called only when interpolation "on/off" is changed by user + public void resetInfoOnInterpolate(boolean interpolateIsOn) throws CloneNotSupportedException{ + //We dont want to assume previous interpolation on/off state. So, reset soundingLys any how. + this.interpolateIsOn = interpolateIsOn; + if(interpolateIsOn==false){ + //System.out.println(" interpolate is off "); + soundingLys = dataTimelineSndLysListMap.get(pickedStnInfoStr); + + } + else{ + //interpolation is on + //we dont want to change original raw data, so use a deep copy + //List intpSndLst = new ArrayList(); + intpSndLst.removeAll(intpSndLst); + for(NcSoundingLayer layer: dataTimelineSndLysListMap.get(pickedStnInfoStr)){ + intpSndLst.add((NcSoundingLayer) layer.clone()); + } + + // interpolation + intpSndLst = performInterpolation(intpSndLst); + + soundingLys = intpSndLst; + + } + + + nsharpNative.populateSndgData(soundingLys); + skewtPaneRsc.resetData(soundingLys,previousSoundingLys); + hodoPaneRsc.resetData(soundingLys,previousSoundingLys); + witoPaneRsc.resetData(soundingLys, previousSoundingLys); + dataPaneRsc.resetData(soundingLys, previousSoundingLys); + insetPaneRsc.resetData(soundingLys, previousSoundingLys); + + //re-create shape + skewtPaneRsc.createRscWireFrameShapes(); + hodoPaneRsc.createRscHodoWindShapeAll(); + insetPaneRsc.createInsetWireFrameShapes(); + witoPaneRsc.createRscWireFrameShapes(); + insetPaneRsc.createInsetWireFrameShapes(); + + } + + private void deepCopyDataMap(HashMap> src, HashMap> dest) { + dest.clear(); + Set keySet = src.keySet(); + for (String key: keySet){ + List oriLys = src.get(key); + List lys = new ArrayList(oriLys.size()); + for(NcSoundingLayer ly : oriLys){ + try { + lys.add((NcSoundingLayer)ly.clone()); + } catch (CloneNotSupportedException e) { + e.printStackTrace(); + } + } + dest.put(key, lys); + } + } + public void resetRsc() { + //System.out.println("resetRsc called"); + this.dataTimelineSndLysListMap.clear(); + //this.dataTimelineSndLysListMap = new HashMap>(); + deepCopyDataMap(this.originalDataTimelineSndLysListMap,this.dataTimelineSndLysListMap); + this.soundingLys = this.dataTimelineSndLysListMap.get(pickedStnInfoStr); + //Set default parcel trace data + parcelList.clear(); + ParcelData defParcel = new ParcelData(); + defParcel.setParcelType(NsharpNativeConstants.PARCELTYPE_MOST_UNSTABLE ); + defParcel.setParcelLayerPressure(NsharpNativeConstants.MU_LAYER); + parcelList.add(defParcel); + setParcelList(parcelList); + setSoundingInfo(dataTimelineSndLysListMap.get(pickedStnInfoStr)); + currentTextChapter = 1; + overlayIsOn = false; + interpolateIsOn = false; + compareStnIsOn = false; + editGraphOn = false; + resetData(); + + } + private synchronized void resetData(){ + //System.out.println("resetData called"); + + //update active sounding layer and picked stn info + //re-populate snd data to nsharp native code lib for later calculating + nsharpNative.populateSndgData(soundingLys); + + skewtPaneRsc.resetData(soundingLys,previousSoundingLys); + hodoPaneRsc.resetData(soundingLys,previousSoundingLys); + insetPaneRsc.resetData(soundingLys, previousSoundingLys); + dataPaneRsc.resetData(soundingLys, previousSoundingLys); + witoPaneRsc.resetData(soundingLys, previousSoundingLys); + + NsharpShowTextDialog textarea = NsharpShowTextDialog.getAccess(); + if(textarea != null){ + textarea.refreshTextData(); + } + //if soundingLys is null, then we stop here, after reset data. + if(soundingLys == null) + return; + if(soundingLys.size() >0){ + //set initial hodohouseC + + // ----- set hodo circle at Bunkers Right, Chin according to TTR6065 or RaytheonTicket#10438 + FloatByReference dummy1= new FloatByReference(-999); + FloatByReference dummy2= new FloatByReference(-999); + FloatByReference bwdir= new FloatByReference(-999); + FloatByReference bwspd= new FloatByReference(-999); + nsharpNative.nsharpLib.bunkers_storm_motion(dummy1, dummy2, bwdir, bwspd); + Coordinate c = WxMath.uvComp(bwspd.getValue(),bwdir.getValue()); + Coordinate hodoHouseC= hodoPaneRsc.getHodoBackground().getWorld().map(c); + hodoPaneRsc.setHodoHouseC(hodoHouseC); + smWindSpd = bwspd.getValue(); + smWindDir = bwdir.getValue(); + nsharpNative.nsharpLib.set_storm(smWindSpd, smWindDir); + + //reset parcel + currentParcel = NsharpNativeConstants.PARCELTYPE_MOST_UNSTABLE; + currentParcelLayerPressure = NsharpNativeConstants.MU_LAYER; + //reset parcel dialog as well + if(NsharpParcelDialog.getAccess()!=null){ + NsharpParcelDialog.getAccess().resetUserDefParcel(); + } + /* TBD + //reset draw panel as well + if(drawPanel!=null){ + drawPanel.resetCurrentParcel(); + }*/ + } + skewtPaneRsc.handleResize(); + hodoPaneRsc.createRscHodoWindShapeAll(); + insetPaneRsc.createInsetWireFrameShapes(); + witoPaneRsc.createAllWireFrameShapes(); + } + //NOTE: this comparator is coded only for dataTimelineList and stationIdList to use + //Typical time line string: e.g. KNJX 110810/00V000 (NAMS) meaning stnId=KNJX date=2011/Aug/10 Hour:00 + // we dont care about string after "V" + //compare station name first, then day/hour + //if only sta name available, then just compare sta name + //e.g. stationIdList only contain stn name in its element + public class ElementComparatorNameTime implements Comparator{ + @Override + public int compare(ElementStateProperty o1, ElementStateProperty o2) { + + String s1tok1="", s1tok2="";//, s1tok3=""; + String s2tok1="", s2tok2="";//, s2tok3=""; + StringTokenizer st1 = new StringTokenizer(o1.getElementDescription()); + int tkCount1 = st1.countTokens(); + //System.out.println("ElementComparatorNDH o1="+o1.elementDescription+"c1 = "+tkCount1); + if(tkCount1 < 2) + { + //stationIdList only contain stn name in its element + s1tok1 = st1.nextToken(); //stn name + } + else{ + s1tok1 = st1.nextToken(); //stn name + s1tok2 = st1.nextToken(); //date/hour + //int end = Math.min(9,s1tok2.length()); + //s1tok2 = s1tok2.substring(0,end); // get rind of Vxxx part if there is one + + } + //System.out.println("t1="+s1tok1+" t2="+s1tok2); + StringTokenizer st2 = new StringTokenizer(o2.getElementDescription()); + int tkCount2 = st2.countTokens(); + //System.out.println("ElementComparatorNDH o2="+o2.elementDescription+"c2 = "+tkCount2); + if(tkCount2 < 2) + { + s2tok1 = st2.nextToken(); //stn name + } + else{ + s2tok1 = st2.nextToken(); //stn name + s2tok2 = st2.nextToken(); //date/Hour + //int end = Math.min(9,s2tok2.length()); + //s2tok2 = s2tok2.substring(0,end);// get rind of Vxxx part if there is one + } + //System.out.println("t1="+s2tok1+" t2="+s2tok2); + if(s1tok1.compareTo(s2tok1) == 0){ + //same station name + if(s1tok2.compareTo(s2tok2) == 0){ + //same day + return 0; + }else if (s1tok2.compareTo(s2tok2) < 0){ + return 1; + } else if (s1tok2.compareTo(s2tok2) > 0) { + return -1; + } + + } else if (s1tok1.compareTo(s2tok1) < 0){ + return -1; + } else if (s1tok1.compareTo(s2tok1) > 0) { + return 1; + } + return 0; + } + } + public class SndPropElementComparatorStnId implements Comparator>{ + @Override + public int compare(List o1, List o2) { + + String s1tok1=""; + String s2tok1=""; + StringTokenizer st1 = new StringTokenizer(o1.get(0).getStnDescription()); + int tkCount1 = st1.countTokens(); + //System.out.println("ElementComparatorNDH o1="+o1.elementDescription+"c1 = "+tkCount1); + if(tkCount1 < 2) + { + //stationIdList only contain stn name in its element + s1tok1 = st1.nextToken(); //stn name + } + else{ + return 0; + } + //System.out.println("t1="+s1tok1+" t2="+s1tok2); + StringTokenizer st2 = new StringTokenizer(o2.get(0).getStnDescription()); + int tkCount2 = st2.countTokens(); + //System.out.println("ElementComparatorNDH o2="+o2.elementDescription+"c2 = "+tkCount2); + if(tkCount2 < 2) + { + s2tok1 = st2.nextToken(); //stn name + } + else{ + return 0; + } + //System.out.println("t1="+s2tok1+" t2="+s2tok2); + if(s1tok1.compareTo(s2tok1) == 0){ + //same station name + return 0; + + } else if (s1tok1.compareTo(s2tok1) < 0){ + return -1; + } else if (s1tok1.compareTo(s2tok1) > 0) { + return 1; + } + return 0; + } + } + public class StationStatePropertyComparator implements Comparator{ + @Override + public int compare(NsharpStationStateProperty o1, NsharpStationStateProperty o2) { + + String s1tok1=""; + String s2tok1=""; + StringTokenizer st1 = new StringTokenizer(o1.getStnDescription()); + int tkCount1 = st1.countTokens(); + //System.out.println("ElementComparatorNDH o1="+o1.elementDescription+"c1 = "+tkCount1); + if(tkCount1 < 2) + { + //stationIdList only contain stn name in its element + s1tok1 = st1.nextToken(); //stn name + } + else{ + return 0; + } + //System.out.println("t1="+s1tok1+" t2="+s1tok2); + StringTokenizer st2 = new StringTokenizer(o2.getStnDescription()); + int tkCount2 = st2.countTokens(); + //System.out.println("ElementComparatorNDH o2="+o2.elementDescription+"c2 = "+tkCount2); + if(tkCount2 < 2) + { + s2tok1 = st2.nextToken(); //stn name + } + else{ + return 0; + } + //System.out.println("t1="+s2tok1+" t2="+s2tok2); + if(s1tok1.compareTo(s2tok1) == 0){ + //same station name + return 0; + + } else if (s1tok1.compareTo(s2tok1) < 0){ + return -1; + } else if (s1tok1.compareTo(s2tok1) > 0) { + return 1; + } + return 0; + } + } + //NOTE: this comparator is coded only for dataTimelineList to use + //compare day/hour, then station name + //Typical time line string: e.g. KNJX 110810/00V000 (NAMS) + /*public class ElementComparatorTimeName implements Comparator{ + @Override + public int compare(T o1, T o2) { + + String s1tok1="", s1tok2=""; + String s2tok1="", s2tok2=""; + StringTokenizer st1 = new StringTokenizer(o1.elementDescription); + int tkCount1 = st1.countTokens(); + //System.out.println("ElementComparatorDHN o1="+o1.elementDescription+"c1 = "+tkCount1); + if(tkCount1 < 2) + { + if(tkCount1==0) + s1tok1= o2.elementDescription; + else + s1tok1 = st1.nextToken(); + } + else{ + s1tok1 = st1.nextToken(); //stn name + s1tok2 = st1.nextToken(); // + + + } + //System.out.println("t1="+s1tok1+" t2="+s1tok2); + StringTokenizer st2 = new StringTokenizer(o2.elementDescription); + int tkCount2 = st2.countTokens(); + //System.out.println("ElementComparatorDHN o2="+o2.elementDescription+"c2 = "+tkCount2); + if(tkCount2 < 2) + { + //return -1; + if(tkCount2==0) + s2tok1= o2.elementDescription; + else + s2tok1 = st2.nextToken(); + } + else{ + s2tok1 = st2.nextToken(); //stn name + s2tok2 = st2.nextToken(); // + + + } + //System.out.println("t1="+s2tok1+" t2="+s2tok2); + if(s1tok2.compareTo(s2tok2) == 0){ //compare day/hour + //same + if(s1tok1.compareTo(s2tok1) == 0){//compare stn + return 0; + }else if (s1tok1.compareTo(s2tok1) < 0){ + return -1; + } else if (s1tok1.compareTo(s2tok1) > 0) { + return 1; + } + + } else if (s1tok2.compareTo(s2tok2) < 0){ + return 1; + } else if (s1tok2.compareTo(s2tok2) > 0) { + return -1; + } + return 0; + } + }*/ + //NOTE: this comparator is coded only for curAggregateTimeLineList to use + //compare day/hour at first tokne only + //Typical time line string: e.g. 110810/00V000 (NAMS) + public class ElementComparatorTimeLine implements Comparator{ + @Override + public int compare(ElementStateProperty o1, ElementStateProperty o2) { + + String s1tok1="";//, s1tok2=""; + String s2tok1="";//, s2tok2=""; + StringTokenizer st1 = new StringTokenizer(o1.getElementDescription()); + int tkCount1 = st1.countTokens(); + //System.out.println("ElementComparatorTimeLine o1="+o1.elementDescription+"c1 = "+tkCount1); + if(tkCount1 >= 1) + { + s1tok1 = st1.nextToken(); + } + else{ + return 0; + + } + //System.out.println("t1="+s1tok1+" t2="+s1tok2); + StringTokenizer st2 = new StringTokenizer(o2.getElementDescription()); + int tkCount2 = st2.countTokens(); + //System.out.println("ElementComparatorTimeLine o2="+o2.elementDescription+"c2 = "+tkCount2); + if(tkCount2 >= 1) + { + s2tok1 = st2.nextToken(); + } + else{ + return 0; + + } + //System.out.println("t1="+s2tok1+" t2="+s2tok2); + if(s1tok1.compareTo(s2tok1) == 0){ + return 0; + }else if (s1tok1.compareTo(s2tok1) < 0){ + return 1; + } else if (s1tok1.compareTo(s2tok1) > 0) { + return -1; + } + return 0; + } + } + public class SndPropElementComparatorTimeLine implements Comparator{ + @Override + public int compare(NsharpSoundingElementStateProperty o1, NsharpSoundingElementStateProperty o2) { + + String s1tok1="";//, s1tok2=""; + String s2tok1="";//, s2tok2=""; + StringTokenizer st1 = new StringTokenizer(o1.getTimeDescription()); + int tkCount1 = st1.countTokens(); + //System.out.println("ElementComparatorTimeLine o1="+o1.elementDescription+"c1 = "+tkCount1); + if(tkCount1 >= 1) + { + s1tok1 = st1.nextToken(); + } + else{ + return 0; + + } + //System.out.println("t1="+s1tok1+" t2="+s1tok2); + StringTokenizer st2 = new StringTokenizer(o2.getTimeDescription()); + int tkCount2 = st2.countTokens(); + //System.out.println("ElementComparatorTimeLine o2="+o2.elementDescription+"c2 = "+tkCount2); + if(tkCount2 >= 1) + { + s2tok1 = st2.nextToken(); + } + else{ + return 0; + + } + //System.out.println("t1="+s2tok1+" t2="+s2tok2); + if(s1tok1.compareTo(s2tok1) == 0){ + return 0; + }else if (s1tok1.compareTo(s2tok1) < 0){ + return 1; + } else if (s1tok1.compareTo(s2tok1) > 0) { + return -1; + } + return 0; + } + } + public class TimeLineStateComparator implements Comparator{ + @Override + public int compare(NsharpTimeLineStateProperty o1, NsharpTimeLineStateProperty o2) { + + String s1tok1="";//, s1tok2=""; + String s2tok1="";//, s2tok2=""; + StringTokenizer st1 = new StringTokenizer(o1.getTimeDescription()); + int tkCount1 = st1.countTokens(); + //System.out.println("ElementComparatorTimeLine o1="+o1.elementDescription+"c1 = "+tkCount1); + if(tkCount1 >= 1) + { + s1tok1 = st1.nextToken(); + } + else{ + return 0; + + } + //System.out.println("t1="+s1tok1+" t2="+s1tok2); + StringTokenizer st2 = new StringTokenizer(o2.getTimeDescription()); + int tkCount2 = st2.countTokens(); + //System.out.println("ElementComparatorTimeLine o2="+o2.elementDescription+"c2 = "+tkCount2); + if(tkCount2 >= 1) + { + s2tok1 = st2.nextToken(); + } + else{ + return 0; + + } + //System.out.println("t1="+s2tok1+" t2="+s2tok2); + if(s1tok1.compareTo(s2tok1) == 0){ + return 0; + }else if (s1tok1.compareTo(s2tok1) < 0){ + return 1; + } else if (s1tok1.compareTo(s2tok1) > 0) { + return -1; + } + return 0; + } + } + + private int getTmLineIndexFromTimeLineStateList(String tmLine){ + for(NsharpTimeLineStateProperty sndProp: timeLineStateList){ + if(sndProp.getTimeDescription().equals(tmLine) ) + return timeLineStateList.indexOf(sndProp); + } + + return -1; + } + private int getStnIndexFromStnStateList(String stnId){ + for(NsharpStationStateProperty sndProp: stnStateList){ + if(sndProp.getStnDescription().equals(stnId) ) + return stnStateList.indexOf(sndProp); + + } + return -1; + } + private void setCurrentTimeLineStateIndexForCurrentState(){ + boolean found = false; + for(NsharpTimeLineStateProperty tl:timeLineStateList){ + if(tl.getTimeState() == NsharpConstants.State.ACTIVE && + stnTimeTable.get(currentStnStateListIndex).get(timeLineStateList.indexOf(tl)).getElementState() == NsharpConstants.State.AVAIL){ + currentTimeLineStateListIndex = timeLineStateList.indexOf(tl); + found = true; + break; // find a good time line state index + } + } + if(!found) + currentTimeLineStateListIndex = -1; + } + private void setCurrentStnStateIndexForCurrentTime(){ + boolean found = false; + for(NsharpStationStateProperty tl:stnStateList){ + if(tl.getStnState() == NsharpConstants.State.ACTIVE && + stnTimeTable.get(stnStateList.indexOf(tl)).get(currentTimeLineStateListIndex).getElementState() == NsharpConstants.State.AVAIL){ + currentStnStateListIndex = stnStateList.indexOf(tl); + found = true; + break; // find a good stn state index + } + } + if(!found) + currentStnStateListIndex=-1; + } + + private void findCurrentElementIndexesAfterConfig(){ + if(stnStateList.size()<=0 || timeLineStateList.size() <=0){ + currentTimeLineStateListIndex=-1; + currentStnStateListIndex=-1; + return; + } + if(currentTimeLineStateListIndex <0 || currentTimeLineStateListIndex>=timeLineStateList.size()){ + //reset it + currentTimeLineStateListIndex = 0; + } + if(currentStnStateListIndex < 0 || currentStnStateListIndex >= stnStateList.size()){ + currentStnStateListIndex = 0; + } + if(timeLineStateList.get(currentTimeLineStateListIndex).getTimeState() == NsharpConstants.State.ACTIVE && + stnStateList.get(currentStnStateListIndex).getStnState() == NsharpConstants.State.ACTIVE ) + return; + else if(timeLineStateList.get(currentTimeLineStateListIndex).getTimeState() == NsharpConstants.State.INACTIVE && + stnStateList.get(currentStnStateListIndex).getStnState() == NsharpConstants.State.ACTIVE ){ + //find first active time line from list + for(NsharpTimeLineStateProperty sndProp: timeLineStateList){ + if(sndProp.getTimeState() == NsharpConstants.State.ACTIVE ){ + currentTimeLineStateListIndex = timeLineStateList.indexOf(sndProp); + //current stn may not be available for this time line + if(stnTimeTable.get(currentStnStateListIndex).get(currentTimeLineStateListIndex).getElementState() == + NsharpConstants.State.AVAIL) + return; + else { + //need to find an available time line for this time line + setCurrentStnStateIndexForCurrentTime(); + return; + } + } + } + //come to here means nothing found, + currentTimeLineStateListIndex = -1; + } + else if(timeLineStateList.get(currentTimeLineStateListIndex).getTimeState() == NsharpConstants.State.ACTIVE && + stnStateList.get(currentStnStateListIndex).getStnState() == NsharpConstants.State.INACTIVE ){ + for(NsharpStationStateProperty sndProp: stnStateList){ + if(sndProp.getStnState() == NsharpConstants.State.ACTIVE) { + currentStnStateListIndex = stnStateList.indexOf(sndProp); + //current time line may not be available for this stn + if(stnTimeTable.get(currentStnStateListIndex).get(currentTimeLineStateListIndex).getElementState() == + NsharpConstants.State.AVAIL) + return; + else { + //need to find an available time line for this stn + setCurrentTimeLineStateIndexForCurrentState(); + return; + } + } + } + //come to here means nothing found + currentStnStateListIndex = -1; + } + else{ + boolean found = false; + for(NsharpTimeLineStateProperty sndProp: timeLineStateList){ + if(sndProp.getTimeState() == NsharpConstants.State.ACTIVE ){ + currentTimeLineStateListIndex = timeLineStateList.indexOf(sndProp); + found = true; + break; + } + if(!found) + currentTimeLineStateListIndex = -1; + } + for(NsharpStationStateProperty sndProp: stnStateList){ + if(sndProp.getStnState() == NsharpConstants.State.ACTIVE) { + currentStnStateListIndex = stnStateList.indexOf(sndProp); + return; + } + } + //come to here means nothing found + currentStnStateListIndex = -1; + } + + + } + //NEW CODE + private void findCurrentElementIndexesAfterDelete(){ + //find new indexes + for(NsharpTimeLineStateProperty tl:timeLineStateList){ + if(tl.getTimeState() == NsharpConstants.State.ACTIVE){ + for(NsharpStationStateProperty stn: stnStateList){ + if(stn.getStnState() == NsharpConstants.State.ACTIVE && + stnTimeTable.get(stnStateList.indexOf(stn)).get(timeLineStateList.indexOf(tl)).getElementState() == + NsharpConstants.State.AVAIL){ + currentStnStateListIndex = stnStateList.indexOf(stn); + currentTimeLineStateListIndex = timeLineStateList.indexOf(tl); + return; + } + } + } + } + currentStnStateListIndex = -1; + currentTimeLineStateListIndex = -1; + + } + + private void addElementToTableAndLists(String elementDesc,String stnId, String tmLine, NsharpStationInfo stnInfo){ + //System.out.println("stn to be added "+ stnId + " timeline "+tmLine); + NsharpSoundingElementStateProperty newSndPropElem=null; + NsharpSoundingElementStateProperty dummySndPropElem=null; + int tmIndex = getTmLineIndexFromTimeLineStateList(tmLine);//getTmLineIndexByTimeLine(tmLine); + int stnIndex = getStnIndexFromStnStateList(stnId);//getStnIndexByStnId(stnId); + if(tmIndex>=0 && stnIndex>=0){ + if(stnTimeTable.get(stnIndex).get(tmIndex).getElementState() == NsharpConstants.State.AVAIL) + // this sounding element is already loaded + return; + else { + // this element is previous created but marked as NOTAVAIL state. + newSndPropElem = stnTimeTable.get(stnIndex).get(tmIndex); + newSndPropElem.setElementState(NsharpConstants.State.AVAIL); + newSndPropElem.setElementDescription(elementDesc); + currentTimeLineStateListIndex = tmIndex; + currentStnStateListIndex = stnIndex; + } + } + else if (tmIndex >=0 && stnIndex < 0){ + // a new stnId with existing time line + // Based on our design rules, we will create a new stn with a time line list same as timeLineStateList + // All time lines will marked as "NOTAVAIL" except this been loaded one + // need a new stn time line list in stnTimeTable + List newList = new ArrayList(); + for(NsharpTimeLineStateProperty sndProp: timeLineStateList){ + if(tmLine.equals(sndProp.getTimeDescription())){ + //stnId state should be active, but time line state should based on its peer in other stn + newSndPropElem = + new NsharpSoundingElementStateProperty(elementDesc, NsharpConstants.State.AVAIL,stnId, tmLine, stnInfo); + + newList.add(newSndPropElem); + } + else{ + //create time line for not avail sounding profiles + String elmDes= stnId+" "+sndProp.getTimeDescription(); + dummySndPropElem = + new NsharpSoundingElementStateProperty(elmDes, NsharpConstants.State.NOTAVAIL,stnId, sndProp.getTimeDescription(), stnInfo); + newList.add(dummySndPropElem); + } + + } + //finally, add this new stn list to table + stnTimeTable.add(newList); + //newList is created according to existing list, so, sorting on time line is not necessary. + //However, we have to sort stnId in stnTimeTable (outer list) + Collections.sort(stnTimeTable, new SndPropElementComparatorStnId()); + //add new stn to stnStateList + NsharpStationStateProperty stn = new NsharpStationStateProperty(stnId,NsharpConstants.State.ACTIVE,stnInfo); + stnStateList.add(stn); + Collections.sort(stnStateList, new StationStatePropertyComparator()); + currentStnStateListIndex = stnStateList.indexOf(stn); + currentTimeLineStateListIndex = tmIndex; + }else if (tmIndex < 0 && stnIndex >= 0){ + // a new time line with existing stnId + // Based on our design rules, we will add a new time line to each existing stns' time line list + // Time line element added to a stn which is not the new "coming stn" will marked as "NOTAVAIL" + for(List stnList: stnTimeTable){ + for(NsharpSoundingElementStateProperty sndProp: stnList){ + if(sndProp.getStnDescription().equals(stnId) ){ + //time line state should be active, but stnId state should based on its peer in other time line + newSndPropElem = + new NsharpSoundingElementStateProperty(elementDesc, NsharpConstants.State.AVAIL,stnId, tmLine, stnInfo); + //newSndPropElem.getElementState() = decideNewLoadElementState(newSndPropElem); + stnList.add(newSndPropElem); + } + else{ + String elmDes= sndProp.getStnDescription()+" "+tmLine; + dummySndPropElem = + new NsharpSoundingElementStateProperty(elmDes, NsharpConstants.State.NOTAVAIL,sndProp.getStnDescription(), tmLine, sndProp.getStnInfo()); + stnList.add(dummySndPropElem); + } + + break; // only add one element for each list, break out of here. + } + // we have to sort time line + Collections.sort(stnList, new SndPropElementComparatorTimeLine()); + + } + //add new time line to NsharpTimeLineStateProperty + NsharpTimeLineStateProperty tl = new NsharpTimeLineStateProperty(tmLine, NsharpConstants.State.ACTIVE); + timeLineStateList.add(tl); + Collections.sort(timeLineStateList, new TimeLineStateComparator()); + currentTimeLineStateListIndex = timeLineStateList.indexOf(tl); + currentStnStateListIndex = stnIndex; + } else { + // an element with new time line and new stnId + // need to do both cases above + //add new time line to NsharpTimeLineStateProperty + NsharpTimeLineStateProperty tl = new NsharpTimeLineStateProperty(tmLine, NsharpConstants.State.ACTIVE); + timeLineStateList.add(tl); + Collections.sort(timeLineStateList, new TimeLineStateComparator()); + currentTimeLineStateListIndex = timeLineStateList.indexOf(tl); + //add new stn to stnStateList + NsharpStationStateProperty stn = new NsharpStationStateProperty(stnId,NsharpConstants.State.ACTIVE,stnInfo); + stnStateList.add(stn); + Collections.sort(stnStateList, new StationStatePropertyComparator()); + currentStnStateListIndex = stnStateList.indexOf(stn); + + // need a new stn time line list to stnTimeTable + List newList = new ArrayList(); + if(stnTimeTable.size()>0){ + // do new stn id case first, add element for each existing time line + for(NsharpTimeLineStateProperty sndProp: timeLineStateList){ + if(tmLine.equals(sndProp.getTimeDescription())){ + //stnId state should be active, but time line state should based on its peer in other stn + newSndPropElem = + new NsharpSoundingElementStateProperty(elementDesc, NsharpConstants.State.AVAIL,stnId, tmLine, stnInfo); + + newList.add(newSndPropElem); + } + else{ + //create time line for not avail sounding profiles + String elmDes= stnId+" "+sndProp.getTimeDescription(); + dummySndPropElem = + new NsharpSoundingElementStateProperty(elmDes, NsharpConstants.State.NOTAVAIL,stnId, sndProp.getTimeDescription(), stnInfo); + newList.add(dummySndPropElem); + } + + } + // we do not have to sort time line as we add it according to newly sorted timeLineStateList + //now add new time line element for each existing stns, except the new one, + //Note that we have NOT add "newList" to stnTimeTable yet, so just loop through "current" table. + for(List stnList: stnTimeTable){ + for(NsharpSoundingElementStateProperty sndProp: stnList){ + String elmDes= sndProp.getStnDescription()+" "+tmLine; + dummySndPropElem = + new NsharpSoundingElementStateProperty(elmDes, NsharpConstants.State.NOTAVAIL,sndProp.getStnDescription(), tmLine, sndProp.getStnInfo()); + stnList.add(dummySndPropElem); + break; // only add one element for each list, break out of here. + } + // we have to sort time line + Collections.sort(stnList, new SndPropElementComparatorTimeLine()); + } + //finally, add this new stn list to table + stnTimeTable.add(newList); + //we have to sort stnId in stnTimeTable (outer list) + Collections.sort(stnTimeTable, new SndPropElementComparatorStnId()); + } + else{ + //this is the case, we are adding first element to stnTimeTable + newSndPropElem = + new NsharpSoundingElementStateProperty(elementDesc, NsharpConstants.State.AVAIL,stnId, tmLine,stnInfo); + newList.add(newSndPropElem); + stnTimeTable.add(newList); + curSndProfileProp=newSndPropElem; + return; + } + } + findCurrentElementIndexesAfterConfig(); + setCurSndProfileProp(); + } + private void updateStnTimeTableAndList(){ + List removeIntLst = new ArrayList(); + if(stnTimeTable.size() > 0 && stnTimeTable.get(0).size()>0){ + + int timeLinePerStn = stnTimeTable.get(0).size(); + for(int i=0; i< timeLinePerStn; i++){ + boolean found =false; + for(List stnList: stnTimeTable){ + NsharpSoundingElementStateProperty elm= stnList.get(i); + if(elm.getElementState() !=NsharpConstants.State.NOTAVAIL){ + found = true; + break; + } + } + if(!found){ + //remove this time line from all stns' time list + removeIntLst.add(i); + } + } + //remove timeline backward from list + for(int i = removeIntLst.size()-1; i >=0; i--){ + for(List stnTimeList: stnTimeTable){ + stnTimeList.remove(stnTimeList.get(removeIntLst.get(i))); + + } + //update timeLineStateList as well + timeLineStateList.remove(timeLineStateList.get(removeIntLst.get(i))); + } + } + removeIntLst.clear(); + //List> removeLst = new ArrayList> (); + for(List stnList: stnTimeTable){ + if(stnList.size() <=0 ){ + //after remove time line above, it is possible that stn does not have any time line + //removeLst.add(stnList); + removeIntLst.add(stnTimeTable.indexOf(stnList)); + continue; + } + boolean found =false; + for(NsharpSoundingElementStateProperty elm: stnList){ + if(elm.getElementState() !=NsharpConstants.State.NOTAVAIL){ + found = true; + break; + } + } + if(!found){ + //all stns time lines are unloaded, remove this stn + //removeLst.add(stnList); + removeIntLst.add(stnTimeTable.indexOf(stnList)); + } + } + for(int i = removeIntLst.size()-1; i >=0; i--){ + stnTimeTable.remove(stnTimeTable.get(removeIntLst.get(i))); + //update stnStateList as well + stnStateList.remove(stnStateList.get(removeIntLst.get(i))); + + } + } + + private void setCurSndProfileProp() { + if(currentTimeLineStateListIndex <0 || currentTimeLineStateListIndex >= timeLineStateList.size()|| + currentStnStateListIndex < 0 || currentStnStateListIndex >= stnStateList.size()){ + curSndProfileProp = null; + preSndProfileProp = null; + } + else { + preSndProfileProp = curSndProfileProp; + curSndProfileProp = stnTimeTable.get(currentStnStateListIndex).get(currentTimeLineStateListIndex); + } + } + /* + * Note: each deletingTimeList's element (a String) is used to mapped to elementDescription (a String) + * of dataTimelineList's elements, which has same value as key (a String) of dataTimelineSndLysListMap + */ + public boolean deleteRsc(List deletingDataTimeList){ + boolean curSndDeleted = false; + for(String dataTmLine: deletingDataTimeList){ + if(curSndProfileProp.getElementDescription().equals(dataTmLine)){ + curSndDeleted = true; + } + dataTimelineSndLysListMap.remove(dataTmLine); + //set state to NOTAVAIL from stnTimeTable + boolean setdone = false; + for(List stnList: stnTimeTable){ + for(NsharpSoundingElementStateProperty elm: stnList){ + if(dataTmLine.equals(elm.getElementDescription())){ + elm.setElementState(NsharpConstants.State.NOTAVAIL); + updateStnTimeTableAndList(); + setdone = true; + break; + } + } + if(setdone) + break; + } + } + if(curSndDeleted || soundingLys == null){ + //this is the case that we are deleting current snd, so, a new current snd should be selected + curSndProfileProp = null; + findCurrentElementIndexesAfterDelete(); + setCurSndProfileProp(); + } + else{ + // currentTimeLineStateListIndex and currentStnStateListIndex may be not point to right element + //after some elements are deleted. + // re-find them + currentStnStateListIndex = -1; + currentTimeLineStateListIndex = -1; + if(curSndProfileProp!= null){ + for(List stnList: stnTimeTable){ + for(NsharpSoundingElementStateProperty elm: stnList){ + if( curSndProfileProp.getElementDescription().equals(elm.getElementDescription())){ + currentTimeLineStateListIndex = stnList.indexOf(elm); + currentStnStateListIndex = stnTimeTable.indexOf(stnList); + break; + } + } + } + } + } + + setCurrentSoundingLayerInfo(); + resetData(); + return curSndDeleted; + // anything more to do? + } + public void deleteRscAll(){ + NsharpMapResource nsharpMapResource = NsharpMapResource.getOrCreateNsharpMapResource(); + nsharpMapResource.setPoints(null); + cleanUpRsc(); + //System.out.println("NsharpSkewTResource deleteRscAll() called"); + } + + private void setCurrentSoundingLayerInfo() { + if(currentTimeLineStateListIndex >=0 && currentStnStateListIndex>=0 ){ + pickedStnInfoStr = stnTimeTable.get( currentStnStateListIndex).get( currentTimeLineStateListIndex).getElementDescription(); + pickedStnInfo = stnTimeTable.get( currentStnStateListIndex).get( currentTimeLineStateListIndex).getStnInfo(); + + if(stnTimeTable.get( currentStnStateListIndex).get( currentTimeLineStateListIndex).getElementState() == NsharpConstants.State.AVAIL){ + + if(overlayIsOn){ + previousSoundingLys = soundingLys; + } + else { + previousSoundingLys = null; + } + + if(interpolateIsOn == true){ + //we dont want to change original raw data, so use a new copy + NcSoundingLayer newLayer; + List mySndLst = new ArrayList(); + for(NcSoundingLayer layer: dataTimelineSndLysListMap.get(pickedStnInfoStr)){ + newLayer = new NcSoundingLayer(); + try { + newLayer = (NcSoundingLayer) layer.clone(); + + } catch (CloneNotSupportedException e) { + e.printStackTrace(); + } //here a shallowCopy is enough + mySndLst.add(newLayer); + } + // interpolation + mySndLst = performInterpolation(mySndLst); + + soundingLys = mySndLst; + } + else { + soundingLys = dataTimelineSndLysListMap.get(pickedStnInfoStr); + + } + + } + else{ + previousSoundingLys = null; + soundingLys = null; + } + } + else{ + pickedStnInfoStr= null; + previousSoundingLys = null; + soundingLys = null; + pickedStnInfo= null; + } + } + public void addRsc(Map> soundMap, NsharpStationInfo stnInfo){ + //make sure not adding duplicated sounding data + //System.out.println("NsharpSkewTResource addRsc called"); + Set duplicateKeys = new HashSet(); + for(String key: soundMap.keySet()) { + if(dataTimelineSndLysListMap.containsKey(key)==true) + duplicateKeys.add(key); + } + for(String key: duplicateKeys) { + soundMap.remove(key); + } + if(soundMap.size() <=0){ + return; + } + //add new data + dataTimelineSndLysListMap.putAll(soundMap); + Set dataTimelineSet = soundMap.keySet(); + String[] tempTimeLineArr = dataTimelineSet.toArray(new String[dataTimelineSet.size()]); + Arrays.sort(tempTimeLineArr); + // ADD new time line(s) to dataTimelineList, stationIdList,curAggregateTimeLineList + for (int i=0; i< tempTimeLineArr.length; i++){ + //System.out.println(newElm.elementDescription); + String elmDesc = tempTimeLineArr[i].toString(); + String stnId = elmDesc.substring(0,elmDesc.indexOf(" ")); + String timeLine= elmDesc.substring(elmDesc.indexOf(" ")+1); + //add time line to stnTimeTable and set its index + addElementToTableAndLists(elmDesc,stnId,timeLine,stnInfo); + } + //Set default parcel trace data + parcelList.clear(); + ParcelData defParcel = new ParcelData(); + defParcel.setParcelType(NsharpNativeConstants.PARCELTYPE_MOST_UNSTABLE ); + defParcel.setParcelLayerPressure(NsharpNativeConstants.MU_LAYER); + parcelList.add(defParcel); + setCurrentSoundingLayerInfo(); + resetData(); + + //set total time line group and stn id list page number + int numTimeLinePerPage = (cnYOrig-dtNextPageEnd)/charHeight; + + totalTimeLinePage = timeLineStateList.size()/numTimeLinePerPage + 1; //NEW CODE + curTimeLinePage = currentTimeLineStateListIndex/numTimeLinePerPage + 1; //NEW CODE + totalStnIdPage = stnStateList.size()/numTimeLinePerPage + 1; //NEW CODE + curStnIdPage= currentStnStateListIndex/numTimeLinePerPage + 1; //NEW CODE + + //System.out.println("totalTimeGroupPage ="+totalTimeGroupPage+ " curTimeGroupPage:"+ this.curTimeGroupPage); + NsharpSkewTPaneDisplay renderableDisplay = (NsharpSkewTPaneDisplay) skewtPaneRsc.getDescriptor().getRenderableDisplay(); + if(renderableDisplay != null) { + IDisplayPaneContainer editor = renderableDisplay.getContainer(); + if(editor instanceof NsharpEditor) { + int editorNum = ((NsharpEditor) editor).getEditorNum(); + renderableDisplay.setEditorNum(editorNum); + } + } + //set data time to descriptor + //this is necessary for looping + if (( skewtPaneRsc.getDescriptor().getTimeMatcher() == null || skewtPaneRsc.getDescriptor().getTimeMatcher().getTimeMatchBasis() == null)&& !getTimeMatcher) { + //DataTime[] dataTimes = new DataTime[dataTimelineList.size()]; + //Chin Note: we just have to do this once and set dataTimes size bigger than 1. + //Nsharp handles changing frame itself. It just need system to send change frame notice. + //That is happened at NsharpSkewTDescriptor.checkDrawTime(). + DataTime[] dataTimes = new DataTime[2/*stnTimeTable.size()*/]; + Date now = new Date(); + for(int k =0; k < 2/*stnTimeTable.size()*/ ; k++){ + dataTimes[k]= new DataTime(now, k); + } + //no need to get a descriptor from a renderableDispaly since we have a descriptor + skewtPaneRsc.getDescriptor().setDataTimes(dataTimes); + getTimeMatcher=true; + } + + NsharpShowTextDialog textarea = NsharpShowTextDialog.getAccess(); + if(textarea != null){ + textarea.refreshTextData(); + } + currentGraphMode=NsharpPaletteWindow.getCurrentGraphMode(); + + deepCopyDataMap(this.dataTimelineSndLysListMap,this.originalDataTimelineSndLysListMap); + /*NsharpEditor editor = NsharpEditor.getActiveNsharpEditor(); + if (editor != null) { + editor.refresh(); + }*/ + refreshPane(); + + } + + public String getPickedStnInfoStr() { + return pickedStnInfoStr; + } + + + public void handleUserClickOnStationId(Coordinate c) { + int numStnIdPerPage = (cnYOrig-dtNextPageEnd)/charHeight; + //first to find if it is for change to next page, or change sorting + //System.out.println("numTimeLinePerPage="+numTimeLinePerPage+"gap="+(cnYOrig-dtNextPageEnd)); + int index =((int)(c.y - dtYOrig))/ charHeight; + if(index == 0 ){ + if( totalStnIdPage == 1) + return; + + curStnIdPage++; + if(curStnIdPage>totalStnIdPage) + curStnIdPage=1; + + return; + } + // recalculate index for time line + index =((int)(c.y - dtNextPageEnd))/ charHeight + + (curStnIdPage-1)* numStnIdPerPage ; + + if( index < this.stnStateList.size() ){ + switch(stnStateList.get(index).getStnState()){ + + case INACTIVE: + stnStateList.get(index).setStnState( NsharpConstants.State.ACTIVE); + break; + case ACTIVE: + stnStateList.get(index).setStnState( NsharpConstants.State.INACTIVE); + + break; + default: + return; + } + findCurrentElementIndexesAfterConfig(); + setCurSndProfileProp(); + setCurrentSoundingLayerInfo(); + resetData(); + + } + } + + public void handleUserClickOnTimeLine(Coordinate c) { + int numTimeLinePerPage = (cnYOrig-dtNextPageEnd)/charHeight; + //first to find if it is for change to next page, or change sorting + //System.out.println("numTimeLinePerPage="+numTimeLinePerPage+"gap="+(cnYOrig-dtNextPageEnd)); + int index =((int)(c.y - dtYOrig))/ charHeight; + if(index == 0 ){ + if( totalTimeLinePage == 1) // + return; + + curTimeLinePage++; + if(curTimeLinePage>totalTimeLinePage) + curTimeLinePage=1; + return; + } + // recalculate index for time line + index =((int)(c.y - dtNextPageEnd))/ charHeight + + (curTimeLinePage-1)* numTimeLinePerPage ; + + if( index < timeLineStateList.size() ){ + switch(timeLineStateList.get(index).getTimeState()){ + case INACTIVE: + timeLineStateList.get(index).setTimeState( NsharpConstants.State.ACTIVE); + break; + case ACTIVE: + timeLineStateList.get(index).setTimeState( NsharpConstants.State.INACTIVE); + break; + default: + return; + + } + + findCurrentElementIndexesAfterConfig(); + setCurSndProfileProp(); + setCurrentSoundingLayerInfo(); + resetData(); + + if(compareStnIsOn){ + hodoPaneRsc.createRscHodoWindShapeAll(); + skewtPaneRsc.createRscPressTempCurveShapeAll(); + } + } + } + + + private void moveTimeLineIndexBackward(){ + previousTimeLineStateListIndex = currentTimeLineStateListIndex; + int counter=0; + while(true){ + currentTimeLineStateListIndex++; + currentTimeLineStateListIndex = currentTimeLineStateListIndex % this.timeLineStateList.size(); + counter++; + if(counter > timeLineStateList.size()) + break; + if(timeLineStateList.get(currentTimeLineStateListIndex).getTimeState() == NsharpConstants.State.ACTIVE && + stnTimeTable.get(currentStnStateListIndex).get(currentTimeLineStateListIndex).getElementState() == NsharpConstants.State.AVAIL){ + break;//out of while loop + } + + } + } + private void moveTimeLineIndexForward (){ + previousTimeLineStateListIndex = currentTimeLineStateListIndex; + int counter=0; + while(true){ + currentTimeLineStateListIndex= currentTimeLineStateListIndex + this.timeLineStateList.size();// so, we wont get a negative number + currentTimeLineStateListIndex--; + currentTimeLineStateListIndex = currentTimeLineStateListIndex % this.timeLineStateList.size(); + counter++; + if(counter > timeLineStateList.size()) + break; + if(timeLineStateList.get(currentTimeLineStateListIndex).getTimeState() == NsharpConstants.State.ACTIVE && + stnTimeTable.get(currentStnStateListIndex).get(currentTimeLineStateListIndex).getElementState() == NsharpConstants.State.AVAIL){ + break;//out of while loop + } + } + //System.out.println("timeline="+timeLineStateList.get(pickedTimeGroupIndex).getElementDescription()); + } + private void moveTimeLineIndexCycle (){ + previousTimeLineStateListIndex = currentTimeLineStateListIndex; + //Note: direction should only be NEXT or PREVIOUS + int counter=0; + while(true){ + counter++; + if(counter > timeLineStateList.size()){ + currentTimeLineStateListIndex = previousTimeLineStateListIndex; + break; + } + if(currentOpDirection == FrameChangeOperation.NEXT ){ + currentTimeLineStateListIndex--; + if(currentTimeLineStateListIndex <= 0){ + //the end of forward direction, change direction to backward + currentOpDirection = FrameChangeOperation.PREVIOUS; + currentTimeLineStateListIndex=0; + } + + } + else{ // direction is FrameChangeOperation.PREVIOUS + currentTimeLineStateListIndex++; + if(currentTimeLineStateListIndex >= timeLineStateList.size()-1){ + //the end of backward direction, change direction to forward + currentOpDirection = FrameChangeOperation.NEXT; + currentTimeLineStateListIndex = timeLineStateList.size()-1; + } + } + if(timeLineStateList.get(currentTimeLineStateListIndex).getTimeState() == NsharpConstants.State.ACTIVE && + stnTimeTable.get(currentStnStateListIndex).get(currentTimeLineStateListIndex).getElementState() == NsharpConstants.State.AVAIL){ + break;//out of while loop + } + } + + } + /* + * Note: looping only apply to curAggregateTimeLineList NOT stationIdList + */ + public void setLoopingDataTimeLine(LoopProperties loopProperties) { + //System.out.println("setLoopingDataTimeLine loopmode ="+loopProperties.getMode().toString()); + if( this.timeLineStateList.size()>0) { + switch(loopProperties.getMode()){ + case Forward: + moveTimeLineIndexForward(); + break; + case Backward: + moveTimeLineIndexBackward(); + break; + case Cycle: + moveTimeLineIndexCycle(); + + break; + } + + int numTimeLinePerPage = (cnYOrig-dtNextPageEnd)/charHeight; + curTimeLinePage = currentTimeLineStateListIndex/numTimeLinePerPage + 1; + setCurSndProfileProp(); + setCurrentSoundingLayerInfo(); + resetData(); + /*NsharpEditor editor = NsharpEditor.getActiveNsharpEditor(); + if (editor != null) { + editor.refresh(); + }*/ + refreshPane(); + } + + } + public enum LoopMode { + Forward, Backward, Cycle + }; + + private int getActiveTimeLineNumber(){ + int n=0; + for (NsharpTimeLineStateProperty tm:timeLineStateList){ + if(tm.getTimeState() == NsharpConstants.State.ACTIVE){ + n++; + } + } + return n; + } + private int getActiveStnNumber(){ + int n=0; + for (NsharpStationStateProperty stn:stnStateList){ + if(stn.getStnState() == NsharpConstants.State.ACTIVE){ + n++; + } + } + return n; + } + public void setSteppingTimeLine(FrameChangeOperation operation, FrameChangeMode mode) { + if( this.timeLineStateList.size() > 0 && getActiveTimeLineNumber()>1/* && getAvailTimeLineNumber(currentStnStateListIndex)>1*/) { + int targetIndex = currentTimeLineStateListIndex; + //previousTimeLineStateListIndex = currentTimeLineStateListIndex; + //preset index for LAST and FIRST operation + switch(operation){ + case LAST: //the future-est time, at top of time line shown. set to -1, so in while loop, it starts from 0 + targetIndex=-1;// + break; + case FIRST: //the oldest time, set to dataTimelineList.length, so in while loop, it starts from dataTimelineList.length-1 + targetIndex = timeLineStateList.size(); + break; + } + + int counter=0; + while(true){ + switch(operation){ + case LAST: //the future-est time, at top of time line shown + targetIndex++; + break; + case FIRST: //the oldest time + targetIndex--; + break; + case PREVIOUS: + targetIndex++; + targetIndex = targetIndex % this.timeLineStateList.size(); + break; + case NEXT: + // so, we wont get a negative number + targetIndex= targetIndex + this.timeLineStateList.size(); + targetIndex--; + targetIndex = targetIndex % this.timeLineStateList.size(); + break; + } + counter++; + if(counter >= timeLineStateList.size()) + return; // looped through whole list already, and index back to original + if(timeLineStateList.get(targetIndex).getTimeState() == NsharpConstants.State.ACTIVE) { + if(compareTmIsOn + && stnTimeTable.get(currentStnStateListIndex).get(targetIndex).getElementState() == NsharpConstants.State.NOTAVAIL){ + continue; + } + else if(compareStnIsOn){ + boolean found = false; + //find an active and available stn for this timeline and set is as current + for (int i=0; i < stnStateList.size(); i++){ + if(stnStateList.get(i).getStnState()==NsharpConstants.State.ACTIVE && + stnTimeTable.get(i).get(targetIndex).getElementState() == NsharpConstants.State.AVAIL){ + currentStnStateListIndex = i; + found = true; + break; + } + } + if(!found){ + currentStnStateListIndex = -1; + } + //no matter we find current stn or not + //we should get out of here + break; + } + else{ + break; + } + } + } + previousTimeLineStateListIndex = currentTimeLineStateListIndex; + currentTimeLineStateListIndex = targetIndex; + int numTimeLinePerPage = (cnYOrig-dtNextPageEnd)/charHeight; + curTimeLinePage = currentTimeLineStateListIndex/numTimeLinePerPage + 1; + setCurSndProfileProp(); + setCurrentSoundingLayerInfo(); + resetData(); + + /*NsharpEditor editor = NsharpEditor.getActiveNsharpEditor(); + if (editor != null) { + editor.refresh(); + }*/ + refreshPane(); + } + } + + /* + * Stn index stepping is only controlled by up/down arrow keys, down key = NEXT operation, up key = PREVIOUS operation + */ + public void setSteppingStnIdList(FrameChangeOperation operation) { + if( this.stnStateList.size() > 0 && getActiveStnNumber()>1/* && getAvailStnNumber(currentTimeLineStateListIndex) > 1*/){ + + int counter=0; + while(true){ + switch(operation){ + case PREVIOUS: + currentStnStateListIndex= currentStnStateListIndex + this.stnStateList.size(); + currentStnStateListIndex--; + currentStnStateListIndex = currentStnStateListIndex % this.stnStateList.size(); + break; + case NEXT: + // so, we wont get a negative number + currentStnStateListIndex++; + currentStnStateListIndex = currentStnStateListIndex % this.stnStateList.size(); + break; + } + counter++; + //System.out.println("counter = "+ counter); + if(counter >= stnStateList.size()) + return; // looped through whole list already, and index back to original + if(stnStateList.get(currentStnStateListIndex).getStnState() == NsharpConstants.State.ACTIVE){ + if (compareStnIsOn + && stnTimeTable.get(currentStnStateListIndex).get(currentTimeLineStateListIndex).getElementState() == NsharpConstants.State.NOTAVAIL){ + continue; + } + else if(compareTmIsOn){ + boolean found = false; + //find an active and available timeline for this stn and set is as current + for (int i=0; i < timeLineStateList.size(); i++){ + if(timeLineStateList.get(i).getTimeState()==NsharpConstants.State.ACTIVE && + stnTimeTable.get(currentStnStateListIndex).get(i).getElementState() == NsharpConstants.State.AVAIL){ + currentTimeLineStateListIndex = i; + found = true; + break; + } + } + if(!found){ + currentTimeLineStateListIndex = -1; + } + //no matter we find current time line for this stn or not + //we should get out of here + break; + } + else + break; + } + } + int numTimeLinePerPage = (cnYOrig-dtNextPageEnd)/charHeight; + curStnIdPage = currentStnStateListIndex/numTimeLinePerPage + 1; + setCurSndProfileProp(); + setCurrentSoundingLayerInfo(); + resetData(); + + /*NsharpEditor editor = NsharpEditor.getActiveNsharpEditor(); + if (editor != null) { + editor.refresh(); + }*/ + refreshPane(); + } + + } + //used for sorting + public class tempPoint implements Comparable{ + double diff; + double temp; + double pressure; + int type; //1= temp, 2 = dewpoint + tempPoint(double diff,double temp,double pressure, int type){ + this.diff = diff; + this.temp = temp; + this.pressure = pressure; + this.type = type; + } + + @Override + public int compareTo(tempPoint o) { + if(this.diff >= o.diff) + return 1; + else + return 0; + } + } + /* + * Return the closest point to the input point on Hodo graph + * + */ + public Coordinate getClosestHodoPoint(Coordinate inputC){ + //System.out.println("picked pt CX "+ inputC.x + " CY "+ inputC.y); + + Coordinate closeptC = new Coordinate(); + double curSmallestDist=10000; // picked a impossible big number to start with + double distance; + boolean ptFound = false; + NcSoundingLayer layer; + // + // Note: soundingLys list sorted with highest pressure as first element + // + for (int i=0; i< this.soundingLys.size(); i++) { + layer = this.soundingLys.get(i); + double curS, curD; + curS = layer.getWindSpeed(); + curD = layer.getWindDirection(); + closeptC = WxMath.uvComp((float)curS, (float)curD); + closeptC = hodoPaneRsc.getHodoBackground().getWorld().map(closeptC); + //System.out.println("closeptCx " + closeptC.x+ " closeptCy "+ closeptC.y); + distance = inputC.distance(closeptC); + //System.out.println("closeptCx " + closeptC.x+ " closeptCy "+ closeptC.y+" distance "+ distance + " curSmallestDist " +curSmallestDist); + if(distance < curSmallestDist){ + curSmallestDist = distance; + hodoEditingSoundingLayerIndex = i; + ptFound = true; + } + } + if(ptFound == false){ + closeptC.x=closeptC.y=0; + } else{ + layer = this.soundingLys.get(hodoEditingSoundingLayerIndex); + closeptC = WxMath.uvComp((float)layer.getWindSpeed(), (float)layer.getWindDirection()); + closeptC = hodoPaneRsc.getHodoBackground().getWorld().map(closeptC); + } + + //System.out.println("picked closeptCx " + closeptC.x+ " closeptCy "+ closeptC.y); + return closeptC; + } + + public List getSoundingLys() { + return soundingLys; + } + + public List getPreviousSoundingLys() { + return previousSoundingLys; + } + + + /* + * This interpolation is to smooth data out with a pressure gap of 25 mb per layer and also keep + * original lowest and highest layers. + */ + private List performInterpolation(List rawSndLysLst){ + NcSoundingLayer newLayer= new NcSoundingLayer(); + //System.out.println(" performInterpolation"); + nsharpNative.populateSndgData(rawSndLysLst); + + List mySndLst = new ArrayList(); + // add top layer + try { + //here a shallowCopy is enough + newLayer = (NcSoundingLayer) rawSndLysLst.get(0).clone(); + mySndLst.add(newLayer); + } catch (CloneNotSupportedException e) { + e.printStackTrace(); + } + // The first layer has highest pressure + // get a pressure value below first layer and can be divided by 25 exactly + int p =(int) (rawSndLysLst.get(0).getPressure()/25) * 25; + float interpolatedValue; + if ( p == (int)rawSndLysLst.get(0).getPressure()) + { // if p is same as first layer, then this layer is added already, start from 2nd layer + p = p-25; + } + for (; p >= 50 ; p = p-25){ + newLayer= new NcSoundingLayer(); + newLayer.setPressure(p); + interpolatedValue = nsharpNative.nsharpLib.itemp(p); + if(interpolatedValue ==NsharpNativeConstants.NSHARP_LEGACY_LIB_INVALID_DATA) + //this is not good layer data, usually happened when lowest layer pressure is + // more than 50, then when interpolate layer for pressure 50, will return unvalid value + continue; + newLayer.setTemperature(interpolatedValue); + interpolatedValue = nsharpNative.nsharpLib.idwpt(p); + newLayer.setDewpoint(interpolatedValue); + interpolatedValue = nsharpNative.nsharpLib.iwdir(p); + newLayer.setWindDirection(interpolatedValue); + interpolatedValue = nsharpNative.nsharpLib.iwspd(p); + newLayer.setWindSpeed(interpolatedValue); + interpolatedValue = nsharpNative.nsharpLib.ihght(p); + newLayer.setGeoHeight(interpolatedValue); + interpolatedValue = nsharpNative.nsharpLib.iomeg(p); + newLayer.setOmega(interpolatedValue); + + mySndLst.add(newLayer); + } + return mySndLst; + } + + + private void setSoundingInfo(List sndLys) { + if(overlayIsOn){ + previousSoundingLys = soundingLys; + } + else { + previousSoundingLys = null; + } + + if(interpolateIsOn == true){ + //we dont want to change original raw data, so use a new copy + NcSoundingLayer newLayer; + List mySndLst = new ArrayList(); + for(NcSoundingLayer layer: dataTimelineSndLysListMap.get(pickedStnInfoStr)){ + newLayer = new NcSoundingLayer(); + try { + newLayer = (NcSoundingLayer) layer.clone(); + + } catch (CloneNotSupportedException e) { + e.printStackTrace(); + } //here a shallowCopy is enough + mySndLst.add(newLayer); + } + // interpolation + mySndLst = performInterpolation(mySndLst); + + soundingLys = mySndLst; + } + else { + soundingLys = sndLys; + + } + } + public NsharpResourceHandler(IRenderableDisplay[] displayArray) { + //System.out.println("NsharpResourceHandler constructed"); + this.soundingMap = new HashMap(); + elementColorMap.put(NsharpConstants.State.CURRENT,NsharpConstants.color_green); //green + elementColorMap.put(NsharpConstants.State.ACTIVE,NsharpConstants.color_yellow);//cyan + elementColorMap.put(NsharpConstants.State.INACTIVE,NsharpConstants.color_white);//white + elementColorMap.put(NsharpConstants.State.NOTAVAIL,NsharpConstants.color_red);//white + elementColorMap.put(NsharpConstants.State.OVERLAY,NsharpConstants.color_red);//red + elementColorMap.put(NsharpConstants.State.AVAIL,NsharpConstants.color_yellow);//white + nsharpNative = new NsharpNative(); + //based on BigNsharp storm slinky color used and gempak color definition + stormSlinkyColorMap.put(new Integer(3),NsharpConstants.color_green); //green + stormSlinkyColorMap.put(new Integer(7),NsharpConstants.color_magenta); + stormSlinkyColorMap.put(new Integer(6),NsharpConstants.color_cyan); + stormSlinkyColorMap.put(new Integer(13),NsharpConstants.color_violet_md); + stormSlinkyColorMap.put(new Integer(20),NsharpConstants.color_yellow_DK); + stormSlinkyColorMap.put(new Integer(27),NsharpConstants.color_cyan_md); + currentGraphMode=NsharpPaletteWindow.getCurrentGraphMode(); + + // new for configMgr + configMgr = NsharpConfigManager.getInstance(); + configStore = configMgr.retrieveNsharpConfigStoreFromFs(); + graphConfigProperty = configStore.getGraphProperty(); + int tempOffset = graphConfigProperty.getTempOffset(); + NsharpWxMath.setTempOffset(tempOffset); + linePropertyMap = configStore.getLinePropertyMap(); + dataPageProperty = configStore.getDataPageProperty(); + updatePageOrderArray(); + ResourcePair skewtRscPair = displayArray[NsharpConstants.DISPLAY_SKEWT].getDescriptor().getResourceList().get(0); + if (skewtRscPair.getResource() instanceof NsharpSkewTPaneResource){ + skewtPaneRsc = (NsharpSkewTPaneResource)skewtRscPair.getResource() ; + skewtPaneRsc.setLinePropertyMap(linePropertyMap); + skewtPaneRsc.setGraphConfigProperty(graphConfigProperty); + skewtPaneRsc.setNsharpNative(nsharpNative); + } + ResourcePair hodoRscPair = displayArray[NsharpConstants.DISPLAY_HODO].getDescriptor().getResourceList().get(0); + if (hodoRscPair.getResource() instanceof NsharpHodoPaneResource){ + hodoPaneRsc = (NsharpHodoPaneResource)hodoRscPair.getResource() ; + hodoPaneRsc.setLinePropertyMap(linePropertyMap); + hodoPaneRsc.setGraphConfigProperty(graphConfigProperty); + hodoPaneRsc.setNsharpNative(nsharpNative); + } + ResourcePair witoRscPair = displayArray[NsharpConstants.DISPLAY_WITO].getDescriptor().getResourceList().get(0); + if (witoRscPair.getResource() instanceof NsharpWitoPaneResource){ + witoPaneRsc = (NsharpWitoPaneResource)witoRscPair.getResource() ; + witoPaneRsc.setLinePropertyMap(linePropertyMap); + witoPaneRsc.setGraphConfigProperty(graphConfigProperty); + witoPaneRsc.setNsharpNative(nsharpNative); + } + ResourcePair timeStnRscPair = displayArray[NsharpConstants.DISPLAY_TIMESTN].getDescriptor().getResourceList().get(0); + if (timeStnRscPair.getResource() instanceof NsharpTimeStnPaneResource){ + timeStnPaneRsc = (NsharpTimeStnPaneResource)timeStnRscPair.getResource() ; + timeStnPaneRsc.setLinePropertyMap(linePropertyMap); + timeStnPaneRsc.setGraphConfigProperty(graphConfigProperty); + timeStnPaneRsc.setNsharpNative(nsharpNative); + } + ResourcePair insetRscPair = displayArray[NsharpConstants.DISPLAY_INSET].getDescriptor().getResourceList().get(0); + if (insetRscPair.getResource() instanceof NsharpInsetPaneResource){ + insetPaneRsc = (NsharpInsetPaneResource)insetRscPair.getResource() ; + insetPaneRsc.setLinePropertyMap(linePropertyMap); + insetPaneRsc.setGraphConfigProperty(graphConfigProperty); + insetPaneRsc.setNsharpNative(nsharpNative); + } + ResourcePair dataRscPair = displayArray[NsharpConstants.DISPLAY_DATA].getDescriptor().getResourceList().get(0); + if (dataRscPair.getResource() instanceof NsharpDataPaneResource){ + dataPaneRsc = (NsharpDataPaneResource)dataRscPair.getResource() ; + dataPaneRsc.setLinePropertyMap(linePropertyMap); + dataPaneRsc.setGraphConfigProperty(graphConfigProperty); + dataPaneRsc.setNsharpNative(nsharpNative); + dataPaneRsc.setPageDisplayOrderNumberArray(pageDisplayOrderNumberArray); + } + this.displayArray = displayArray; + pspLsner = new NsharpPerspectiveListener(); + pspLsner.setRscHandler(this); + pspLsner.setMyPerspectiveId(VizPerspectiveListener.getCurrentPerspectiveManager().getPerspectiveId()); + //System.out.println("perspective id = " + VizPerspectiveListener.getCurrentPerspectiveManager().getPerspectiveId()); + PlatformUI.getWorkbench().getActiveWorkbenchWindow().addPerspectiveListener(pspLsner); + } + public void cleanUpRsc(){ + if(dataTimelineSndLysListMap!= null) + dataTimelineSndLysListMap.clear(); + if(originalDataTimelineSndLysListMap!=null) + originalDataTimelineSndLysListMap.clear(); + if(soundingLysList!=null) + soundingLysList.clear(); + if(soundingLys!=null){ + soundingLys.clear(); + soundingLys=null; + } + if(previousSoundingLys!=null){ + previousSoundingLys.clear(); + previousSoundingLys = null; + } + if(intpSndLst!= null) + intpSndLst.clear(); + if(stnTimeTable != null){ + for(List stnList: stnTimeTable){ + stnList.clear(); + } + stnTimeTable.clear(); + } + if(timeLineStateList != null) + timeLineStateList.clear(); + if(stnStateList != null) + stnStateList.clear(); + curSndProfileProp = null; + preSndProfileProp = null; + currentTextChapter = 1; + currentInsetPage = 1; + currentParcel = NsharpNativeConstants.PARCELTYPE_MOST_UNSTABLE; + currentParcelLayerPressure = NsharpNativeConstants.MU_LAYER; + resetData(); + } + public void disposeInternal() { + //System.out.println("NsharpSkewTResource disposeInternal called"); + soundingMap= null; + parcelList= null; + listenerList=null; + soundingLysList=null; + soundingLys = null; + previousSoundingLys = null; + dataTimelineSndLysListMap = null; + originalDataTimelineSndLysListMap= null; + intpSndLst = null; + stormSlinkyColorMap = null; + elementColorMap= null; + + + if(NsharpParcelDialog.getAccess()!= null){ + NsharpParcelDialog.getAccess().reset(); + } + + nsharpNative = null; + PlatformUI.getWorkbench().getActiveWorkbenchWindow().removePerspectiveListener(pspLsner); + pspLsner = null; + } + + + + + public void printHeightMark(WGraphics world, GC gc) throws VizException{ + //print feet scales... + double vyMax = world.getViewYmax(); + double vyMin = world.getViewYmin(); + double vxMax = world.getViewXmax(); + for (int j = 0; j < NsharpConstants.HEIGHT_LEVEL_FEET.length; j++) { + float meters = (float)NsharpConstants.feetToMeters.convert(NsharpConstants.HEIGHT_LEVEL_FEET[j]); + + double pressure = nsharpNative.nsharpLib.ipres(meters); + double y = world.mapY(NsharpWxMath.getSkewTXY(pressure, -50).y); + + gc.drawString( Integer.toString(NsharpConstants.HEIGHT_LEVEL_FEET[j]/1000), (int)vxMax + 40, + (int)y,false); + + + gc.drawLine( (int)vxMax + 50,(int) y, (int) vxMax + 45,(int) y); + } + //print meter scales... + for (int j = 0; j < NsharpConstants.HEIGHT_LEVEL_METERS.length; j++) { + int meters = NsharpConstants.HEIGHT_LEVEL_METERS[j]; + + double pressure = nsharpNative.nsharpLib.ipres(meters); + double y = world.mapY(NsharpWxMath.getSkewTXY(pressure, -50).y); + + gc.drawString( Integer.toString(meters/1000), (int)vxMax + 52, + (int)y,false); + + + gc.drawLine( (int)vxMax + 50,(int) y, (int) vxMax + 55,(int) y); + } + // print surface level mark + double y = world.mapY(NsharpWxMath.getSkewTXY(soundingLys.get(0).getPressure(), -50).y); + gc.drawString("SFC("+Integer.toString((int)(soundingLys.get(0).getGeoHeight()))+"m)", (int)vxMax+ 50, + (int)y, false); + gc.drawLine((int) vxMax+ 50, (int)y, (int) vxMax + 55,(int) y); + // top level mark at 100 mbar + y = world.mapY(NsharpWxMath.getSkewTXY(100, -50).y); + float hgt = nsharpNative.nsharpLib.ihght(100); + gc.drawString(Float.toString(hgt/1000F), (int)vxMax+ 50,(int)y, false); + gc.drawString("Kft Km", (int) vxMax+35, (int)y -8); + gc.drawString("MSL", (int) vxMax+45, (int)y -15); + gc.drawLine((int) vxMax+40, (int)y, (int) vxMax + 60,(int) y); + + gc.drawLine((int) vxMax+50, (int)vyMin, (int) vxMax + 50,(int)vyMax); + + } + + /** + * Prints the pressure lines number at left side out of skewT bkgd for printing job + * + * @throws VizException + */ + public void printNsharpPressureLinesNumber(WGraphics world, GC gc) throws VizException { + String s = null; + double vxMax = world.getViewXmax(); + double vxMin = world.getViewXmin(); + for (int i = 0; i < NsharpConstants.PRESSURE_MAIN_LEVELS.length; i++) { + //we only care about pressure for this case, temp is no important when calling getSkewTXY + Coordinate coor = NsharpWxMath.getSkewTXY(NsharpConstants.PRESSURE_MAIN_LEVELS[i],0); + + gc.drawLine((int)vxMin, (int)world.mapY(coor.y), + (int)vxMax, + (int)world.mapY(coor.y)); + + } + for (int i = 0; i < NsharpConstants.PRESSURE_MARK_LEVELS.length; i++) { + //we only care about pressure for this case, temp is no important when calling getSkewTXY + Coordinate coor = NsharpWxMath.getSkewTXY(NsharpConstants.PRESSURE_MARK_LEVELS[i],0); + + gc.drawLine((int)vxMin, (int)world.mapY(coor.y), + (int)vxMin+10, + (int)world.mapY(coor.y)); + + } + for (int i = 0; i < NsharpConstants.PRESSURE_NUMBERING_LEVELS.length; i++) { + s = NsharpConstants.pressFormat.format(NsharpConstants.PRESSURE_NUMBERING_LEVELS[i]); + //we only care about pressure for this case, temp is no important when calling getSkewTXY + Coordinate coor = NsharpWxMath.getSkewTXY(NsharpConstants.PRESSURE_NUMBERING_LEVELS[i],0); + + gc.drawString( s, (int)vxMin-20, + (int)world.mapY(coor.y), false); + } + } + + /** + * Print the temp number at bottom out of skewT bkgd for printing job + * + * @throws VizException + */ + public void printNsharpTempNumber(WGraphics world, GC gc) throws VizException { + for (int i = 40; i > -50; i -= 10) { + Coordinate coorStart = NsharpWxMath.getSkewTXY(1050, i); + double startX = world.mapX(coorStart.x); + double startY = world.mapY(coorStart.y); + + gc.drawString( Integer.toString(i), (int)startX,(int)startY+5,false); + } + for (int i = -60; i > -120; i -= 10) { + Coordinate coorEnd = NsharpWxMath.getSkewTXY(100, i); + + //System.out.println("X = "+ startX + " Y = "+ startY); + double endX = world.mapX(coorEnd.x); + double endY = world.mapY(coorEnd.y); + + + gc.drawString( Integer.toString(i),(int) endX,(int)endY-10,false); + } + } + /** + * + * Print Wind barb for printing job + * This function followed algorithm in plot_barbs (void) at xwvid1.c + * to choose wind bulb for drawing around every 400m + * + */ + public void printNsharpWind(WGraphics world, GC gc)throws VizException { + ArrayList> windList = new ArrayList>(); + + double windX = world.getViewXmax() + 6*BARB_LENGTH; + //System.out.println("windX="+windX); + float lastHeight = -999; + double windY; + for (NcSoundingLayer layer : soundingLys) { + float pressure = layer.getPressure(); + float spd = layer.getWindSpeed(); + float dir = layer.getWindDirection(); + + + if ( pressure < 100) { + continue; + } + + if ((layer.getGeoHeight() - lastHeight) < 400){ + + continue; + } + + // Get the vertical ordinate. + windY = world.mapY(NsharpWxMath.getSkewTXY(pressure, 0).y); + + List barb = WindBarbFactory.getWindGraphics( + /*metersPerSecondToKnots.convert*/(double) (spd), (double) dir); + if (barb != null) { + WindBarbFactory.scaleBarb(barb, -7); + WindBarbFactory.translateBarb(barb, windX, windY); + windList.add(barb); + } + + lastHeight = layer.getGeoHeight(); + } + Coordinate pt1=new Coordinate(0,0), pt2; + for (List barb : windList) { + for (LineStroke stroke : barb) { + //stroke render: rewrite stroke.render() for our printing purpose + if(stroke.getType()=="M") { + pt1 = stroke.getPoint(); + //change X coordinate by mirroring x coordinate at windX axis. AS we scaleBarb with -5 time. + // It is easier to mirror at x-axis for this case. + pt1.x = windX - (pt1.x-windX); + //System.out.print("Myp1x="+(int)pt1.x+" p1y="+(int)pt1.y); + + } + else if(stroke.getType()=="D"){ + pt2 = stroke.getPoint(); + pt2.x = windX - (pt2.x-windX); + //System.out.println( " p2x="+(int)pt2.x+" p2y="+ (int)pt2.y); + gc.drawLine((int)pt1.x, (int)pt1.y, (int)pt2.x, (int)pt2.y); + } + } + } + gc.drawLine((int)windX,(int)world.mapY(NsharpWxMath.getSkewTXY(100, 0).y), + (int)windX,(int)world.mapY(NsharpWxMath.getSkewTXY(1000, 0).y)); + } + + /** + * + * Print the wetbulb trace curve + * + * @throws VizException + */ + public void printNsharpWetbulbTraceCurve( + WGraphics world, GC gc) throws VizException { + if((soundingLys == null) || (soundingLys.size()==0)) + return; + float t1; + + Coordinate c2 = null; + Coordinate c1; + // print trace + for (NcSoundingLayer layer : this.soundingLys) { + if (layer.getDewpoint() > -200){ + t1 = nsharpNative.nsharpLib.wetbulb(layer.getPressure(), layer.getTemperature(), + layer.getDewpoint()); + + c1 = NsharpWxMath.getSkewTXY(layer.getPressure(), t1); + c1.x = world.mapX(c1.x); + c1.y = world.mapY(c1.y); + if(c2!= null){ + gc.drawLine((int)c1.x, (int)c1.y, (int)c2.x, (int)c2.y); + } + c2 = c1; + } + } + + } + + public void printNsharpParcelTraceCurve(WGraphics world, GC gc) throws VizException{ + if(soundingLys.size() > 0){ + for (ParcelData parData: parcelList){ + //plotNsharpParcelTraceCurve(null, 0, world, NsharpConstants.color_white,parData.parcelType, parData.userPressure, gc, true); + nsharpNative.nsharpLib.define_parcel(parData.parcelType, parData.parcelLayerPressure); + + _lplvalues lpvls = new _lplvalues(); + nsharpNative.nsharpLib.get_lpvaluesData(lpvls); + + float sfctemp, sfcdwpt, sfcpres; + sfctemp = lpvls.temp; + sfcdwpt = lpvls.dwpt; + sfcpres = lpvls.pres; + + float vtemp = nsharpNative.nsharpLib.virtemp (sfcpres, sfctemp, sfcdwpt); + Coordinate c1 = NsharpWxMath.getSkewTXY(sfcpres, vtemp); + c1.x = world.mapX(c1.x); + c1.y = world.mapY(c1.y); + FloatByReference p2 = new FloatByReference(0), t2 = new FloatByReference(0);; + nsharpNative.nsharpLib.drylift (sfcpres, sfctemp, sfcdwpt, p2, t2); + vtemp = nsharpNative.nsharpLib.virtemp (p2.getValue(), t2.getValue(), t2.getValue()); + Coordinate c2 = NsharpWxMath.getSkewTXY(p2.getValue(), vtemp); + c2.x = world.mapX(c2.x); + c2.y = world.mapY(c2.y); + + gc.drawLine((int)c1.x, (int)c1.y, (int)c2.x, (int)c2.y); + c1 = c2; + + + float t3; + for (float i = p2.getValue() - 50; i >= 100; i = i - 50) + { + t3 = nsharpNative.nsharpLib.wetlift (p2.getValue(), t2.getValue(), i); + vtemp = nsharpNative.nsharpLib.virtemp (i, t3, t3); + c2 = NsharpWxMath.getSkewTXY(i, vtemp); + c2.x = world.mapX(c2.x); + c2.y = world.mapY(c2.y); + + gc.drawLine((int)c1.x, (int)c1.y, (int)c2.x, (int)c2.y); + c1 = c2; + } + + t3 = nsharpNative.nsharpLib.wetlift (p2.getValue(), t2.getValue(), 100); + vtemp = nsharpNative.nsharpLib.virtemp (100, t3, t3); + c2 = NsharpWxMath.getSkewTXY(100, vtemp); + c2.x = world.mapX(c2.x); + c2.y = world.mapY(c2.y); + + gc.drawLine((int)c1.x, (int)c1.y, (int)c2.x, (int)c2.y); + } + } + } + /** + * + * Print the temperature curve when during overlap or compare mode + * + * @throws VizException + */ + + public void printNsharpPressureTempCurve(WGraphics world, int type, GC gc,List soundingLys) throws VizException { + if((soundingLys == null) || (soundingLys.size()==0)) + return; + + double maxPressure = NsharpWxMath.reverseSkewTXY(new Coordinate(0, world + .getWorldYmax())).y; + double minPressure = NsharpWxMath.reverseSkewTXY(new Coordinate(0, world + .getWorldYmin())).y; + Coordinate c0 = null; + for (NcSoundingLayer layer : soundingLys) { + double t; + if(type == TEMP_TYPE) + t = layer.getTemperature(); + else if (type == DEWPOINT_TYPE) + t = layer.getDewpoint(); + else + break; + double pressure = layer.getPressure(); + if (t != INVALID_DATA && pressure >= minPressure + && pressure <= maxPressure) { + + Coordinate c1 = NsharpWxMath.getSkewTXY(pressure, t); + + c1.x = world.mapX(c1.x); + c1.y = world.mapY(c1.y); + //System.out.println("C.x "+ c1.x + " C.y "+ c1.y); + if (c0 != null) { + gc.drawLine((int)c0.x, (int)c0.y, (int)c1.x, (int)c1.y); + } + c0 = c1; + } + } + + } + + + /** + * + * Print the HODO + * + * + * @throws VizException + */ + + public void printNsharpHodoWind(WGraphics world, GC gc, List soundingLays) throws VizException { + Coordinate c0 = null; + Coordinate c1; + for (NcSoundingLayer layer : soundingLays){ + if(layer.getPressure() < 100 || layer.getWindSpeed() <0) + continue; + float wspd = layer.getWindSpeed(); + float wdir = layer.getWindDirection(); + c1 = WxMath.uvComp(wspd, wdir); + if (c0 != null) { + gc.setLineWidth(1); + gc.drawLine((int)world.mapX(c0.x),(int) world.mapY(c0.y),(int) world + .mapX(c1.x),(int) world.mapY(c1.y)); + } + c0 = c1; + } + + + } + + + public boolean isPlotInteractiveTemp() { + return plotInteractiveTemp; + } + + + public void setPlotInteractiveTemp(boolean plotInteractiveTemp) { + this.plotInteractiveTemp = plotInteractiveTemp; + skewtPaneRsc.setPlotInteractiveTemp(plotInteractiveTemp); + } + public void setInteractiveTempPointCoordinate( + Coordinate interactiveTempPointCoordinate) { + System.out.println("setInteractiveTempPointCoordinate called"); + this.interactiveTempPointCoordinate = interactiveTempPointCoordinate; + plotInteractiveTemp = true; + skewtPaneRsc.setPlotInteractiveTemp(plotInteractiveTemp); + skewtPaneRsc.setInteractiveTempPointCoordinate(interactiveTempPointCoordinate); + } + public void setInteractiveHodoPointCoordinate(Coordinate c){ + try { + NcSoundingLayer hodoLayer = soundingLys.get(hodoEditingSoundingLayerIndex); + if(hodoLayer != null){ + //TTR575 + this.dataTimelineSndLysListMap.put(pickedStnInfoStr, this.soundingLys); + nsharpNative.populateSndgData(soundingLys); + //end TTR575 + Coordinate c1 = hodoPaneRsc.getHodoBackground().getWorld().unMap(c.x, c.y); + //System.out.println("picked pt after unmap CX "+ c1.x + " CY "+ c1.y); + c1 = WxMath.speedDir((float) c1.x, (float) c1.y); + hodoLayer.setWindSpeed((float)c1.x); + hodoLayer.setWindDirection((float)c1.y); + hodoPaneRsc.createRscHodoWindShapeAll(); + witoPaneRsc.createAllWireFrameShapes(); + insetPaneRsc.createInsetWireFrameShapes(); + skewtPaneRsc.createRscWireFrameShapes(); + } + } + catch(Exception e) { + + } + } + public void applyInteractiveTempPoint(){ + Coordinate inC = NsharpWxMath.reverseSkewTXY(skewtPaneRsc.getWorld().unMap(interactiveTempPointCoordinate)); + double inTemp = inC.x; + currentSoundingLayerIndex = skewtPaneRsc.getCurrentSoundingLayerIndex(); + NcSoundingLayer layer = this.soundingLys.get(currentSoundingLayerIndex); + currentTempCurveType = skewtPaneRsc.getCurrentTempCurveType(); + System.out.println("applyInteractiveTempPoint called pressure " + inC.y + " temp "+ inTemp + + " currentTempCurveType " + currentTempCurveType ); + + if(currentTempCurveType == TEMP_TYPE){ + if(inTemp < layer.getDewpoint()) + // temp can not be lower than dew point + layer.setTemperature(layer.getDewpoint()); + else + layer.setTemperature((float)inTemp); + } + else{ + if(inTemp > layer.getTemperature()) + // dew point can not be higher than temp + layer.setDewpoint(layer.getTemperature()); + else + layer.setDewpoint((float)inTemp); + } + + + this.dataTimelineSndLysListMap.put(pickedStnInfoStr, this.soundingLys); + //re-populate snd data to nsharp native code lib for later calculating + nsharpNative.populateSndgData(soundingLys); + //get storm motion wind data after populate sounding from NsharpLib + skewtPaneRsc.setSoundingLys(soundingLys); + skewtPaneRsc.createRscPressTempCurveShapeAll(); + skewtPaneRsc.createRscwetBulbTraceShape(); + skewtPaneRsc.createRscVTempTraceShape(); + skewtPaneRsc.createParcelShapes(parcelList); + + hodoPaneRsc.setSoundingLys(soundingLys); + hodoPaneRsc.createRscHodoWindShapeAll(); + } + + public void applySfcEditing(float tp, float dp, float ws, float wd, float pressure){ + //NsharpBackgroundResource bkRsc = descriptor.getSkewTBkGResource(); + + currentSoundingLayerIndex =nsharpNative.nsharpLib.sfc(); + NcSoundingLayer layer = this.soundingLys.get(currentSoundingLayerIndex); + layer.setTemperature(tp); + layer.setDewpoint(dp); + layer.setWindDirection(wd); + layer.setWindSpeed(ws); + layer.setPressure(pressure); + this.dataTimelineSndLysListMap.put(pickedStnInfoStr, this.soundingLys); + //re-populate snd data to nsharp native code lib for later calculating + nsharpNative.populateSndgData(soundingLys); + skewtPaneRsc.setSoundingLys(soundingLys); + hodoPaneRsc.setSoundingLys(soundingLys); + insetPaneRsc.setSoundingLys(soundingLys); + witoPaneRsc.setSoundingLys(soundingLys); + dataPaneRsc.setSoundingLys(soundingLys); + } + public void updateLayer(int layerIndex, float tp, float dp, float ws, float wd, float pressure){ + if(layerIndex <0 || layerIndex >= soundingLys.size()) + return; + //NsharpBackgroundResource bkRsc = descriptor.getSkewTBkGResource(); + + currentSoundingLayerIndex =layerIndex; + NcSoundingLayer layer = soundingLys.get(currentSoundingLayerIndex); + layer.setGeoHeight(nsharpNative.nsharpLib.ihght(pressure)); + layer.setTemperature(tp); + layer.setDewpoint(dp); + layer.setWindDirection(wd); + layer.setWindSpeed(ws); + layer.setPressure(pressure); + this.dataTimelineSndLysListMap.put(pickedStnInfoStr, soundingLys); + //re-populate snd data to nsharp native code lib for later calculating + Collections.sort(soundingLys,NsharpDataHandling.reversePressureHeightWindComparator()); + nsharpNative.populateSndgData(soundingLys); + //get storm motion wind data after populate sounding from NsharpLib + //refresh test area if it is shown now + NsharpShowTextDialog textarea = NsharpShowTextDialog.getAccess(); + if(textarea != null){ + textarea.refreshTextData(); + } + skewtPaneRsc.setSoundingLys(soundingLys); + skewtPaneRsc.createRscWireFrameShapes(); + hodoPaneRsc.setSoundingLys(soundingLys); + hodoPaneRsc.createRscHodoWindShapeAll(); + insetPaneRsc.setSoundingLys(soundingLys); + insetPaneRsc.createInsetWireFrameShapes(); + witoPaneRsc.setSoundingLys(soundingLys); + witoPaneRsc.createAllWireFrameShapes(); + dataPaneRsc.setSoundingLys(soundingLys); + } + public void addNewLayer(float tp, float dp, float ws, float wd, float pressure){ + //NsharpBackgroundResource bkRsc = descriptor.getSkewTBkGResource(); + //currentSoundingLayer =layerIndex; + NcSoundingLayer layer = new NcSoundingLayer(); + layer.setGeoHeight(nsharpNative.nsharpLib.ihght(pressure)); + layer.setTemperature(tp); + layer.setDewpoint(dp); + layer.setWindDirection(wd); + layer.setWindSpeed(ws); + layer.setPressure(pressure); + soundingLys.add(layer); + this.dataTimelineSndLysListMap.put(pickedStnInfoStr, soundingLys); + //re-populate snd data to nsharp native code lib for later calculating + Collections.sort(soundingLys,NsharpDataHandling.reversePressureHeightWindComparator()); + nsharpNative.populateSndgData(soundingLys); + //get storm motion wind data after populate sounding from NsharpLib + //refresh text area if it is shown now + NsharpShowTextDialog textarea = NsharpShowTextDialog.getAccess(); + if(textarea != null){ + textarea.refreshTextData(); + } + skewtPaneRsc.setSoundingLys(soundingLys); + skewtPaneRsc.createRscWireFrameShapes(); + hodoPaneRsc.setSoundingLys(soundingLys); + hodoPaneRsc.createRscHodoWindShapeAll(); + insetPaneRsc.setSoundingLys(soundingLys); + insetPaneRsc.createInsetWireFrameShapes(); + witoPaneRsc.setSoundingLys(soundingLys); + witoPaneRsc.createAllWireFrameShapes(); + dataPaneRsc.setSoundingLys(soundingLys); + } + + + + + public void setGraphConfigProperty(NsharpGraphProperty graphConfigProperty) { + this.graphConfigProperty = graphConfigProperty; + int tempOffset = graphConfigProperty.getTempOffset(); + NsharpWxMath.setTempOffset(tempOffset); + skewtPaneRsc.setGraphConfigProperty(graphConfigProperty); + skewtPaneRsc.createRscWireFrameShapes(); + skewtPaneRsc.getSkewTBackground().setGraphConfigProperty(graphConfigProperty); + hodoPaneRsc.setGraphConfigProperty(graphConfigProperty); + hodoPaneRsc.createRscHodoWindShapeAll(); + witoPaneRsc.setGraphConfigProperty(graphConfigProperty); + witoPaneRsc.createAllWireFrameShapes(); + insetPaneRsc.setGraphConfigProperty(graphConfigProperty); + insetPaneRsc.createInsetWireFrameShapes(); + } + + + public NsharpGraphProperty getGraphConfigProperty() { + return graphConfigProperty; + } + + + public void setLinePropertyMap( + HashMap linePropertyMap) { + this.linePropertyMap = linePropertyMap; + skewtPaneRsc.setLinePropertyMap(linePropertyMap); + skewtPaneRsc.createRscPressTempCurveShapeAll(); + hodoPaneRsc.setLinePropertyMap(linePropertyMap); + hodoPaneRsc.createRscHodoWindShapeAll(); + timeStnPaneRsc.setLinePropertyMap(linePropertyMap); + } + private void updatePageOrderArray(){ + pageDisplayOrderNumberArray[NsharpConstants.PAGE_SUMMARY1 ] = dataPageProperty.getSummary1Page(); + pageDisplayOrderNumberArray[NsharpConstants.PAGE_SUMMARY2 ] = dataPageProperty.getSummary2Page(); + pageDisplayOrderNumberArray[NsharpConstants.PAGE_PARCEL_DATA ] = dataPageProperty.getParcelDataPage(); + pageDisplayOrderNumberArray[NsharpConstants.PAGE_THERMODYNAMIC_DATA ] = dataPageProperty.getThermodynamicDataPage(); + pageDisplayOrderNumberArray[NsharpConstants.PAGE_OPC_DATA ] = dataPageProperty.getOpcDataPage(); + pageDisplayOrderNumberArray[NsharpConstants.PAGE_MIXING_HEIGHT] = dataPageProperty.getMixingHeightPage(); + pageDisplayOrderNumberArray[NsharpConstants.PAGE_STORM_RELATIVE ] = dataPageProperty.getStormRelativePage(); + pageDisplayOrderNumberArray[NsharpConstants.PAGE_MEAN_WIND ] = dataPageProperty.getMeanWindPage(); + pageDisplayOrderNumberArray[NsharpConstants.PAGE_CONVECTIVE_INITIATION ] = dataPageProperty.getConvectiveInitiationPage(); + pageDisplayOrderNumberArray[NsharpConstants.PAGE_SEVERE_POTENTIAL ] = dataPageProperty.getSeverePotentialPage(); + } + public void setDataPageProperty(NsharpDataPageProperty dataPageProperty) { + this.dataPageProperty = dataPageProperty; + updatePageOrderArray(); + dataPaneRsc.setPageDisplayOrderNumberArray(pageDisplayOrderNumberArray); + } + + + public void handleTimeLineActConfig(List tlList, NsharpConstants.State actSt){ + for(String tlStr: tlList){ + for(NsharpTimeLineStateProperty tl: timeLineStateList){ + if(tlStr.equals(tl.getTimeDescription())){ + tl.setTimeState( actSt); + break; + } + } + } + findCurrentElementIndexesAfterConfig(); + setCurSndProfileProp(); + setCurrentSoundingLayerInfo(); + resetData(); + if(compareStnIsOn){ + hodoPaneRsc.createRscHodoWindShapeAll(); + skewtPaneRsc.createRscPressTempCurveShapeAll(); + } + } + public void handleStationActConfig(List stnList, NsharpConstants.State actSt){ + for(String tlStr: stnList){ + for(NsharpStationStateProperty stn: stnStateList){ + if(tlStr.equals(stn.getStnDescription())){ + stn.setStnState( actSt); + break; + } + } + } + findCurrentElementIndexesAfterConfig(); + setCurSndProfileProp(); + setCurrentSoundingLayerInfo(); + resetData(); + } + + + public int getCurrentTextChapter() { + return currentTextChapter; + } + + + public int getCurrentTimeLineStateListIndex() { + return currentTimeLineStateListIndex; + } + + + public int getCurrentStnStateListIndex() { + return currentStnStateListIndex; + } + + + public HashMap> getDataTimelineSndLysListMap() { + return dataTimelineSndLysListMap; + } + + + public List getParcelList() { + return parcelList; + } + + + public float getCurrentParcelLayerPressure() { + return currentParcelLayerPressure; + } + + + public NsharpSkewTPaneResource getSkewtPaneRsc() { + return skewtPaneRsc; + } + + + public NsharpHodoPaneResource getHodoPaneRsc() { + return hodoPaneRsc; + } + + + public NsharpSoundingElementStateProperty getPreSndProfileProp() { + return preSndProfileProp; + } + + + + + public int getCurTimeLinePage() { + return curTimeLinePage; + } + + + public int getCurrentInsetPage() { + return currentInsetPage; + } + + + public int getCurrentSoundingLayerIndex() { + return currentSoundingLayerIndex; + } + + + public FrameChangeOperation getCurrentOpDirection() { + return currentOpDirection; + } + + + public NsharpSoundingElementStateProperty getCurSndProfileProp() { + return curSndProfileProp; + } + + + public int getCurStnIdPage() { + return curStnIdPage; + } + + + public HashMap getElementColorMap() { + return elementColorMap; + } + + + public int getTotalTimeLinePage() { + return totalTimeLinePage; + } + + + public int getTotalStnIdPage() { + return totalStnIdPage; + } + + public void repopulateSndgData(){ + nsharpNative.populateSndgData(soundingLys); + } + + + public NsharpWitoPaneResource getWitoPaneRsc() { + return witoPaneRsc; + } + + + public void setCnYOrig(int cnYOrig) { + this.cnYOrig = cnYOrig; + } + + + public void setDtNextPageEnd(int dtNextPage_end) { + this.dtNextPageEnd = dtNextPage_end; + } + + + public void setDtYOrig(int dtYOrig) { + this.dtYOrig = dtYOrig; + } + + + public void setCharHeight(int charHeight) { + this.charHeight = charHeight; + } + public void refreshPane(){ + for(int i =0; i< NsharpConstants.DISPLAY_TOTAL; i++){ + displayArray[i].refresh(); + } + } + +} + diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpSkewTPaneResource.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpSkewTPaneResource.java new file mode 100644 index 0000000000..36f568e81c --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpSkewTPaneResource.java @@ -0,0 +1,1809 @@ +package gov.noaa.nws.ncep.ui.nsharp.display.rsc; +/** + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/23/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + +import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingLayer; +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.NsharpLineProperty; +import gov.noaa.nws.ncep.ui.nsharp.NsharpShapeAndLineProperty; +import gov.noaa.nws.ncep.ui.nsharp.NsharpSoundingElementStateProperty; +import gov.noaa.nws.ncep.ui.nsharp.NsharpStationInfo; +import gov.noaa.nws.ncep.ui.nsharp.NsharpStationStateProperty; +import gov.noaa.nws.ncep.ui.nsharp.NsharpTimeLineStateProperty; +import gov.noaa.nws.ncep.ui.nsharp.NsharpWxMath; +import gov.noaa.nws.ncep.ui.nsharp.background.NsharpGenericPaneBackground; +import gov.noaa.nws.ncep.ui.nsharp.background.NsharpIcingPaneBackground; +import gov.noaa.nws.ncep.ui.nsharp.background.NsharpSkewTPaneBackground; +import gov.noaa.nws.ncep.ui.nsharp.background.NsharpTurbulencePaneBackground; +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpEditor; +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpSkewTPaneDescriptor; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpResourceHandler.ParcelData; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpNative; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpNative.NsharpLibrary._lplvalues; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpNative.NsharpLibrary._parcel; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpNativeConstants; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import org.eclipse.swt.graphics.RGB; +import org.eclipse.swt.graphics.Rectangle; + +import com.raytheon.uf.common.sounding.WxMath; +import com.raytheon.uf.common.status.UFStatus; +import com.raytheon.uf.common.status.UFStatus.Priority; +import com.raytheon.uf.common.time.DataTime; +import com.raytheon.uf.viz.core.IExtent; +import com.raytheon.uf.viz.core.IGraphicsTarget; +import com.raytheon.uf.viz.core.IGraphicsTarget.HorizontalAlignment; +import com.raytheon.uf.viz.core.IGraphicsTarget.LineStyle; +import com.raytheon.uf.viz.core.IGraphicsTarget.PointStyle; +import com.raytheon.uf.viz.core.IGraphicsTarget.TextStyle; +import com.raytheon.uf.viz.core.IGraphicsTarget.VerticalAlignment; +import com.raytheon.uf.viz.core.PixelExtent; +import com.raytheon.uf.viz.core.drawables.IFont; +import com.raytheon.uf.viz.core.drawables.IShadedShape; +import com.raytheon.uf.viz.core.drawables.IWireframeShape; +import com.raytheon.uf.viz.core.drawables.PaintProperties; +import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.uf.viz.core.rsc.AbstractResourceData; +import com.raytheon.uf.viz.core.rsc.LoadProperties; +import com.raytheon.viz.core.graphing.LineStroke; +import com.raytheon.viz.core.graphing.WGraphics; +import com.raytheon.viz.core.graphing.WindBarbFactory; +import com.sun.jna.ptr.FloatByReference; +import com.vividsolutions.jts.geom.Coordinate; +import com.vividsolutions.jts.geom.GeometryFactory; +import com.vividsolutions.jts.geom.LineString; + +public class NsharpSkewTPaneResource extends NsharpAbstractPaneResource{ + private NsharpSkewTPaneBackground skewTBackground; + private NsharpIcingPaneBackground icingBackground; + private NsharpTurbulencePaneBackground turbBackground; + private int currentGraphMode= NsharpConstants.GRAPH_SKEWT; + private int skewtWidth = NsharpConstants.SKEWT_WIDTH; + private int skewtHeight = NsharpConstants.SKEWT_HEIGHT; + private int skewtXOrig = NsharpConstants.SKEWT_X_ORIG; + private int skewtYOrig = NsharpConstants.SKEWT_Y_ORIG; + private int skewtXEnd = NsharpConstants.SKEWT_X_END; + private int skewtYEnd = NsharpConstants.SKEWT_Y_END; + private float xRatio=1; + private float yRatio=1; + private String sTemperatureC= ""; + private String sTemperatureF = ""; + private String sThetaInK = ""; + private String sWThetaInK = ""; + private String sEThetaInK=""; + private String sMixingRatio = ""; + private String sPressure = ""; + private double dPressure; + private IWireframeShape heightMarkRscShape=null; + private IWireframeShape wetBulbTraceRscShape = null; + private IWireframeShape vtempTraceCurveRscShape = null; + private IShadedShape cloudFMShape = null; + private IWireframeShape cloudFMLabelShape = null; + private IShadedShape cloudCEShape = null; + private List parcelTraceRscShapeList = new ArrayList(); + private ListpressureTempRscShapeList = new ArrayList(); + //ICING wireframe shape + private IWireframeShape icingTempShape = null; + private IWireframeShape icingRHShape = null; + private IWireframeShape icingEPIShape = null; + //Turbulence wireframe shape + private IWireframeShape turbLnShape = null; + private IWireframeShape turbWindShearShape = null; + public int TEMP_TYPE = 1; + public int DEWPOINT_TYPE = 2; + private int currentTempCurveType; + private Coordinate interactiveTempPointCoordinate; + private boolean plotInteractiveTemp= false; + //private double mycurrentZoomLevel=1; + private boolean cursorInSkewT = false; + private static int CURSER_FONT_INC_STEP = 3; + private static int CURSER_FONT_10 =10; + private static int CURSER_STRING_OFF =CURSER_FONT_10+ 5*CURSER_FONT_INC_STEP; + private int curseToggledFontLevel= CURSER_FONT_10; //0:default 1:large 2:turn off display + public NsharpSkewTPaneResource(AbstractResourceData resourceData, + LoadProperties loadProperties, NsharpSkewTPaneDescriptor desc) { + super(resourceData, loadProperties, desc); + skewTBackground = new NsharpSkewTPaneBackground((NsharpSkewTPaneDescriptor)descriptor); + icingBackground = new NsharpIcingPaneBackground((NsharpSkewTPaneDescriptor)descriptor); + turbBackground = new NsharpTurbulencePaneBackground((NsharpSkewTPaneDescriptor)descriptor); + //verticalWindBackground = new NsharpSKEWTBackground(descriptor); + this.dataTimes = new ArrayList(); + } + + @Override + protected void disposeInternal() { + skewTBackground.disposeInternal(); + icingBackground.disposeInternal(); + turbBackground.disposeInternal(); + skewTBackground = null; + icingBackground = null; + turbBackground = null; + disposeRscWireFrameShapes(); + pressureTempRscShapeList=null; + parcelTraceRscShapeList = null; + super.disposeInternal(); + } + private void plotPressureTempEditPoints(IGraphicsTarget target, + WGraphics world, RGB color, int type, List soundingLys) throws VizException { + double maxPressure = NsharpWxMath.reverseSkewTXY(new Coordinate(0, world + .getWorldYmax())).y; + double minPressure = NsharpWxMath.reverseSkewTXY(new Coordinate(0, world + .getWorldYmin())).y; + PointStyle ps = PointStyle.CIRCLE; + for (NcSoundingLayer layer : soundingLys) { + double t; + if(type == TEMP_TYPE) + t = layer.getTemperature(); + else if (type == DEWPOINT_TYPE) + t = layer.getDewpoint(); + else + break; + double pressure = layer.getPressure(); + if (t != INVALID_DATA && pressure >= minPressure + && pressure <= maxPressure) { + + Coordinate c1 = NsharpWxMath.getSkewTXY(pressure, t); + + c1.x = world.mapX(c1.x); + c1.y = world.mapY(c1.y); + + target.drawPoint(c1.x, c1.y, 0.0, color, ps); + + } + } + } + /* + * This function mostly follow display_effective_layer() of xwvid1.c */ + @SuppressWarnings("deprecation") + private void drawEffectiveLayerLines(IGraphicsTarget target) throws VizException{ + + FloatByReference topPF= new FloatByReference(0); + FloatByReference botPF= new FloatByReference(0); + nsharpNative.nsharpLib.get_effectLayertopBotPres(topPF, botPF); + if(botPF.getValue() < 1 ) return; + double dispX0; + double dispX1; + double dispX2; + double dispX3; + IExtent ext = getDescriptor().getRenderableDisplay().getExtent(); + dispX0 = ext.getMinX() + ext.getWidth()/5; + dispX1 = dispX0+ 20 * zoomLevel* xRatio; + dispX2 = dispX1+ 20 * zoomLevel* xRatio; + dispX3 = dispX2+ 20 * zoomLevel* xRatio; + String botStr, topStr; + float aglTop, aglBot; + aglTop = nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(topPF.getValue())); + aglBot = nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(botPF.getValue())); + // Draw effective sfc level + if (aglBot < 1) + { + botStr = "SFC"; + } + else + { + botStr = String.format( "%.0fm", aglBot); + } + double y = world.mapY(NsharpWxMath.getSkewTXY(botPF.getValue(), 10).y); + target.drawLine( dispX1, y, 0.0, dispX3, y, 0.0, + NsharpConstants.color_cyan_md, 2); + target.drawString(font10,botStr, dispX3, + y, 0.0, TextStyle.NORMAL, + NsharpConstants.color_cyan_md, HorizontalAlignment.LEFT, + VerticalAlignment.MIDDLE, null); + // Draw effective top level + topStr = String.format( "%.0fm", aglTop); + double y1 = world.mapY(NsharpWxMath.getSkewTXY(topPF.getValue(), 10).y); + target.drawLine( dispX1, y1, 0.0, dispX3, y1, 0.0, + NsharpConstants.color_cyan_md, 2); + if(aglTop > aglBot){ + target.drawString(font10,topStr, dispX3, + y1, 0.0, TextStyle.NORMAL, + NsharpConstants.color_cyan_md, HorizontalAlignment.LEFT, + VerticalAlignment.MIDDLE, null); + //System.out.println("aglbot="+aglBot+" agltop="+aglTop); + } + + // Draw connecting line + target.drawLine( dispX2, y, 0.0, dispX2, y1, 0.0, + NsharpConstants.color_cyan_md, 2); + // Compute and display effective helicity + topPF.setValue(0); // just a placeholder + botPF.setValue(0); + float helicity = nsharpNative.nsharpLib.helicity(aglBot,aglTop, rscHandler.getSmWindDir(),rscHandler.getSmWindSpd(), topPF, botPF); + String helicityStr = String.format("%4.0f m%cs%c", helicity,NsharpConstants.SQUARE_SYMBOL, NsharpConstants.SQUARE_SYMBOL); + + //draw kelicity + target.drawString(font10,helicityStr, dispX0, + y1-10*yRatio, 0.0, TextStyle.NORMAL, + NsharpConstants.color_cyan_md, HorizontalAlignment.LEFT, + VerticalAlignment.MIDDLE, null); + } + + @SuppressWarnings("deprecation") + private void drawLclLine(IGraphicsTarget target) throws VizException{ + //System.out.println("drawLclLine called define_parcel pType="+currentParcel+" pre="+ currentParcelLayerPressure); + double dispX1; + double dispX2; + IExtent ext = getDescriptor().getRenderableDisplay().getExtent(); + dispX1 = ext.getMaxX() -ext.getWidth()/3; + dispX2 = dispX1+ 40 * zoomLevel* xRatio; + nsharpNative.nsharpLib.define_parcel(rscHandler.getCurrentParcel(), rscHandler.getCurrentParcelLayerPressure()); + _lplvalues lpvls = new _lplvalues(); + nsharpNative.nsharpLib.get_lpvaluesData(lpvls); + + float sfctemp, sfcdwpt, sfcpres; + sfctemp = lpvls.temp; + sfcdwpt = lpvls.dwpt; + sfcpres = lpvls.pres; + // get parcel data by calling native nsharp parcel() API. value is returned in pcl + _parcel pcl = new _parcel(); + nsharpNative.nsharpLib.parcel( -1.0F, -1.0F, sfcpres, sfctemp, sfcdwpt, pcl); + //draw LCL line + float lcl = nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.lclpres )); + if(lcl != NsharpNativeConstants.NSHARP_LEGACY_LIB_INVALID_DATA){ + double pressure = nsharpNative.nsharpLib.ipres(lcl+(int)(soundingLys.get(0).getGeoHeight())); + //System.out.println("lcl= " + lcl + " lclpres ="+pcl.lclpres +" pressure="+ pressure); + double y = world.mapY(NsharpWxMath.getSkewTXY(pressure, 10).y); + target.drawLine( dispX1/*world.mapX(NsharpConstants.right)-220 */, y, 0.0,dispX2/* world.mapX(NsharpConstants.right) -180*/, y, 0.0, + NsharpConstants.color_green, 2); + target.drawString(font10, "LCL",dispX1 /*world.mapX(NsharpConstants.right)-220*/, + y+5*yRatio, 0.0, TextStyle.NORMAL, + NsharpConstants.color_green, HorizontalAlignment.LEFT, + VerticalAlignment.MIDDLE, null); + } + //draw LFC line + if(pcl.lclpres!=pcl.lfcpres){ + float lfc = nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.lfcpres )); + if(lfc != NsharpNativeConstants.NSHARP_LEGACY_LIB_INVALID_DATA){ + double pressure = nsharpNative.nsharpLib.ipres(lfc+(int)(soundingLys.get(0).getGeoHeight())); + //System.out.println("lfcpres ="+pcl.lfcpres +" pressure="+ pressure); + double y = world.mapY(NsharpWxMath.getSkewTXY(pressure, 10).y); + target.drawLine( dispX1, y, 0.0, dispX2, y, 0.0, + NsharpConstants.color_yellow, 2); + target.drawString(font10, "LFC", dispX1, + y, 0.0, TextStyle.NORMAL, + NsharpConstants.color_yellow, HorizontalAlignment.RIGHT, + VerticalAlignment.MIDDLE, null); + } + } + // draw EL line + if(pcl.lclpres!=pcl.elpres && pcl.elpres!=pcl.lfcpres){ + float el = nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.elpres )); + if(el != NsharpNativeConstants.NSHARP_LEGACY_LIB_INVALID_DATA){ + double pressure = nsharpNative.nsharpLib.ipres(el+(int)(soundingLys.get(0).getGeoHeight())); + //System.out.println("elpres ="+pcl.elpres +" pressure="+ pressure); + double y = world.mapY(NsharpWxMath.getSkewTXY(pressure, 10).y); + target.drawLine( dispX1, y, 0.0, dispX2, y, 0.0, + NsharpConstants.color_red, 2); + target.drawString(font10, "EL", dispX1, + y-10*yRatio, 0.0, TextStyle.NORMAL, + NsharpConstants.color_red, HorizontalAlignment.LEFT, + VerticalAlignment.MIDDLE, null); + } + } + // draw FGZ line + FloatByReference fValue= new FloatByReference(0); + float fgzm = nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(nsharpNative.nsharpLib.temp_lvl( 0, fValue ))); + float fgzft = nsharpNative.nsharpLib.mtof(fgzm); + if(nsharpNative.nsharpLib.qc(fgzft)==1) { + double pressure = nsharpNative.nsharpLib.ipres(fgzm+(int)(soundingLys.get(0).getGeoHeight())); + //System.out.println("elpres ="+pcl.elpres +" pressure="+ pressure); + double y = world.mapY(NsharpWxMath.getSkewTXY(pressure, 10).y); + target.drawLine( dispX1, y, 0.0, dispX2, y, 0.0, + NsharpConstants.color_cyan, 2); + String textStr = "FGZ= %.0f'"; + textStr = String.format(textStr,fgzft); + target.drawString(font10, textStr, dispX1, + y-10*yRatio, 0.0, TextStyle.NORMAL, + NsharpConstants.color_cyan, HorizontalAlignment.LEFT, + VerticalAlignment.MIDDLE, null); + } + // draw -20Cline + float h20m = nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(nsharpNative.nsharpLib.temp_lvl( -20, fValue ))); + float h20ft = nsharpNative.nsharpLib.mtof(h20m); + if(nsharpNative.nsharpLib.qc(h20ft)==1) { + double pressure = nsharpNative.nsharpLib.ipres(h20m+(int)(soundingLys.get(0).getGeoHeight())); + //System.out.println("elpres ="+pcl.elpres +" pressure="+ pressure); + double y = world.mapY(NsharpWxMath.getSkewTXY(pressure, -20).y); + //double x = world.mapX(NsharpWxMath.getSkewTXY(pressure, -20).x); + target.drawLine( dispX1, y, 0.0, dispX2, y, 0.0, + NsharpConstants.color_cyan, 2); + String textStr = "-20C= %.0f'"; + textStr = String.format(textStr,h20ft); + target.drawString(font10, textStr, dispX1, + y-10*yRatio, 0.0, TextStyle.NORMAL, + NsharpConstants.color_cyan, HorizontalAlignment.LEFT, + VerticalAlignment.MIDDLE, null); + } + // draw -30Cline + float h30m = nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(nsharpNative.nsharpLib.temp_lvl( -30, fValue ))); + float h30ft = nsharpNative.nsharpLib.mtof(h30m); + if(nsharpNative.nsharpLib.qc(h30ft)==1) { + double pressure = nsharpNative.nsharpLib.ipres(h30m+(int)(soundingLys.get(0).getGeoHeight())); + //System.out.println("elpres ="+pcl.elpres +" pressure="+ pressure); + double y = world.mapY(NsharpWxMath.getSkewTXY(pressure, 10).y); + target.drawLine( dispX1, y, 0.0, dispX2, y, 0.0, + NsharpConstants.color_cyan, 2); + String textStr = "-30C= %.0f'"; + textStr = String.format(textStr,h30ft); + target.drawString(font10, textStr, dispX1, + y-10*yRatio, 0.0, TextStyle.NORMAL, + NsharpConstants.color_cyan, HorizontalAlignment.LEFT, + VerticalAlignment.MIDDLE, null); + } + } + @SuppressWarnings("deprecation") + private void plotNsharpInteractiveTemp(IGraphicsTarget target, double zoomLevel, + WGraphics world, RGB color) throws VizException { + if(soundingLys.size() < 4) + return; + //double inPressure = soundingLys.get(currentSoundingLayerIndex).getPressure(); + double aboveLayerPressure, belowLayerPressure; + double aboveLayerT=0, aboveLayerD=0, belowLayerT=0, belowLayerD=0; + int aboveLayerIndex, belowLayerIndex; + double plotAboveT, plotBelowT; + if(currentSoundingLayerIndex ==0){ + aboveLayerIndex = currentSoundingLayerIndex; + belowLayerIndex = currentSoundingLayerIndex+1; + } + else if(currentSoundingLayerIndex == soundingLys.size()-1 ){ + belowLayerIndex = currentSoundingLayerIndex; + aboveLayerIndex = currentSoundingLayerIndex-1; + } + else{ + belowLayerIndex = currentSoundingLayerIndex + 1; + aboveLayerIndex = currentSoundingLayerIndex - 1; + } + aboveLayerPressure = soundingLys.get(aboveLayerIndex).getPressure(); + aboveLayerT = soundingLys.get(aboveLayerIndex).getTemperature(); + aboveLayerD = soundingLys.get(aboveLayerIndex).getDewpoint(); + belowLayerPressure = soundingLys.get(belowLayerIndex).getPressure(); + belowLayerT = soundingLys.get(belowLayerIndex).getTemperature(); + belowLayerD = soundingLys.get(belowLayerIndex).getDewpoint(); + + if(currentTempCurveType == TEMP_TYPE){ + plotAboveT = aboveLayerT; + plotBelowT = belowLayerT; + + } + else{ + plotAboveT = aboveLayerD; + plotBelowT = belowLayerD; + + } + Coordinate c1 = NsharpWxMath.getSkewTXY(aboveLayerPressure, plotAboveT); + c1.x = world.mapX(c1.x); + c1.y = world.mapY(c1.y); + target.drawLine(c1.x, c1.y, 0.0, interactiveTempPointCoordinate.x, interactiveTempPointCoordinate.y, 0.0, color, + commonLinewidth, LineStyle.DASHED); + c1 = NsharpWxMath.getSkewTXY(belowLayerPressure,plotBelowT); + c1.x = world.mapX(c1.x); + c1.y = world.mapY(c1.y); + target.drawLine(c1.x, c1.y, 0.0, interactiveTempPointCoordinate.x, interactiveTempPointCoordinate.y, 0.0, color, + commonLinewidth, LineStyle.DASHED); + //System.out.println("In pressure="+ inPressure+ " above P="+aboveLayerPressure+ " below P="+belowLayerPressure); + } + /** + * + * Draws Wind barb and wind speed vs height into box + * This function followed algorithm in plot_barbs (void) at xwvid1.c + * to choose wind bulb for drawing around every 400m + * + */ + private void drawNsharpWindBarb(IGraphicsTarget target, double zoomLevel, + WGraphics world, RGB icolor, List sndLys, double xPosition, double botPress)throws VizException { + ArrayList> windList = new ArrayList>(); + + double windX = xPosition; + float lastHeight = -999; + double windY=0; + double barbScaleFactorx=1, barbScaleFactory=1; + //System.out.println("zoom="+zoomLevel +"world viewYmin="+world.getViewYmin()+" viewYmax="+world.getViewYmax()+" wolrdYmin="+ world.getWorldYmin()+" wolrdYmax="+ world.getWorldYmax() + // +"world viewXmin="+world.getViewXmin()+" viewXmax="+world.getViewXmax()+" wolrdXmin="+ world.getWorldXmin()+" wolrdXmax="+ world.getWorldXmax()); + for (NcSoundingLayer layer : sndLys) { + float pressure = layer.getPressure(); + float spd = layer.getWindSpeed(); + float dir = layer.getWindDirection(); + if ( pressure < botPress || spd < 0 ) { + continue; + } + if(spd > 140) + spd = 140; + if ((layer.getGeoHeight() - lastHeight) < graphConfigProperty.getWindBarbDistance()*zoomLevel){ + + continue; + } + + // Get the vertical ordinate. + if(currentGraphMode== NsharpConstants.GRAPH_SKEWT) + windY = NsharpWxMath.getSkewTXY(pressure, 0).y; + else if(currentGraphMode== NsharpConstants.GRAPH_ICING ){ + //Chin:Y axis (pressure) is scaled using log scale and increaing downward + //WorldYmin= at pressure 1000,its value actually is 1000 (max), wolrdYmax = at pressure 300, its value is 825 (min) + windY = world.getWorldYmax() + (world.getWorldYmin()-icingBackground.toLogScale(pressure)); + barbScaleFactorx = 2.5; + barbScaleFactory= 3.5;//experimental value: depends on the world coordinate size set + }else if( currentGraphMode== NsharpConstants.GRAPH_TURB){ + //Chin:Y axis (pressure) is scaled using log scale and increaing downward + //WorldYmin= at pressure 1000,its value actually is 1000 (max), wolrdYmax = at pressure 300, its value is 825 (min) + windY = world.getWorldYmax() + (world.getWorldYmin()-turbBackground.toLogScale(pressure)); + barbScaleFactorx = .23;//experimental value: depends on the world coordinate size set + barbScaleFactory=5.5; + } + else + continue; + + List barb = WindBarbFactory.getWindGraphics((double) (spd), (double) dir); + if (barb != null) { + // WindBarbFactory.scaleBarb(barb, zoomLevel*barbScaleFactor); + for (LineStroke stroke : barb) { + stroke.scale(barbScaleFactorx, barbScaleFactory); + } + //System.out.println("pressure="+pressure+" windX="+windX+" windY="+windY); + WindBarbFactory.translateBarb(barb, windX, windY); + windList.add(barb); + } + lastHeight = layer.getGeoHeight(); + } + + for (List barb : windList) { + //System.out.println("barb"); + for (LineStroke stroke : barb) { + //System.out.println("p1x="+(int)stroke.getPoint().x+" p1y="+(int)stroke.getPoint().y); + stroke.render(target, world, icolor); + } + } + } + @SuppressWarnings("deprecation") + private void drawNsharpSkewtCursorData(IGraphicsTarget target) throws VizException{ + IFont myFont; + myFont = target.initializeFont("Monospace", curseToggledFontLevel, null); + myFont.setSmoothing(false); + myFont.setScaleFont(false); + + Coordinate c = NsharpWxMath.reverseSkewTXY(world.unMap(cursorCor.x, cursorCor.y)); + //System.out.println("Cusrso.x="+cursorCor.x+" Cusrso.y="+cursorCor.y); + //System.out.println("Skewt.x="+c.x+" Skewt.y="+c.y); + double p_mb = c.y; + double temp = c.x; + float htFt, htM, relh=-1; + String curStrFormat, curStrFormat1; + String curStr, curStr1;//, curStr2,curStr3; + VerticalAlignment vAli; + HorizontalAlignment hAli; + + //curStr3 = rscHandler.getPickedStnInfoStr()+"\n"; + + htM = nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght((float)p_mb)); + htFt= nsharpNative.nsharpLib.mtof(htM); + if (nsharpNative.nsharpLib.itemp((float)p_mb) > -9998.0 && nsharpNative.nsharpLib.idwpt((float)p_mb) > -9998.0){ + FloatByReference parm= new FloatByReference(0); + relh= nsharpNative.nsharpLib.relh((float)p_mb, parm); + curStrFormat= "%4.0fmb %5.0fft/%.0fm agl %2.0f%%\n"; + curStr = String.format(curStrFormat, p_mb,htFt,htM,relh); + } + else{ + curStrFormat= "%4.0fmb %5.0fft/%.0fm agl\n"; + curStr = String.format(curStrFormat, p_mb,htFt,htM); + } + curStrFormat1 = "%s/%s %4.1f/%4.1f%cC %4.0f/%.0f kt\n"; + curStr1 = String.format(curStrFormat1,sTemperatureC,sTemperatureF, nsharpNative.nsharpLib.itemp((float)p_mb), + nsharpNative.nsharpLib.idwpt((float)p_mb),NsharpConstants.DEGREE_SYMBOL, nsharpNative.nsharpLib.iwdir((float)p_mb), + nsharpNative.nsharpLib.iwspd((float)p_mb)); + + //String tempS= String.format("%5.1f%cC ",temp,NsharpConstants.DEGREE_SYMBOL); + //curStr2 =sThetaInK+" "+sWThetaInK+" "+sEThetaInK+"\n"; + + //Adjust string plotting position + if(cursorCor.x < skewtXOrig + (200/currentZoomLevel)*xRatio){ + hAli = HorizontalAlignment.LEFT; + } + else { + hAli = HorizontalAlignment.RIGHT; + } + if(cursorCor.y > skewtYOrig + (50/currentZoomLevel)*yRatio){ + vAli = VerticalAlignment.BOTTOM; + } + else { + vAli = VerticalAlignment.TOP; + } + //vAli = VerticalAlignment.BOTTOM; + target.drawString(myFont,curStr+curStr1/*+curStr2+curStr3*/, cursorCor.x, + cursorCor.y, 0.0, TextStyle.NORMAL, + NsharpConstants.color_yellow, hAli, + vAli, null); + myFont.dispose(); + } + + @SuppressWarnings("deprecation") + private void drawNsharpSkewtDynamicData(IGraphicsTarget target, double zoomLevel, + WGraphics world) throws VizException { + double dispX; + double dispY; + IExtent ext = getDescriptor().getRenderableDisplay().getExtent(); + dispX = ext.getMinX() + 20 * zoomLevel* xRatio; + dispY = ext.getMinY() + 70 * zoomLevel* yRatio; + //Column 1: pressure, C and F + target.drawString(font10, sPressure, dispX, dispY, 0.0, + TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + + target.drawString(font10, sTemperatureC, dispX, dispY+15* zoomLevel* yRatio, 0.0, + TextStyle.NORMAL, NsharpConstants.color_red, HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + target.drawString(font10, sTemperatureF, dispX, dispY+30* zoomLevel* yRatio, 0.0, + TextStyle.NORMAL, NsharpConstants.color_red, HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + //column 2: m, ft, mixing ratio + float heightM = nsharpNative.nsharpLib.ihght((float)dPressure); + String sHeightM = String.format("%.0fm",heightM); + target.drawString(font10, sHeightM, dispX+60* zoomLevel* xRatio, dispY, 0.0, + TextStyle.NORMAL, NsharpConstants.color_cyan, HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + String sHeightFt = String.format("%.0fft",NsharpConstants.metersToFeet.convert(heightM)); + target.drawString(font10, sHeightFt, dispX+60* zoomLevel* xRatio, dispY+15* zoomLevel* yRatio, 0.0, + TextStyle.NORMAL, NsharpConstants.color_cyan, HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + target.drawString(font10, sMixingRatio, dispX+60* zoomLevel* xRatio, dispY+30* zoomLevel* yRatio, 0.0, + TextStyle.NORMAL, NsharpConstants.color_green, HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + //column 3: Theta, ThetaW, ThetaE + target.drawString(font10, sThetaInK, dispX+120* zoomLevel* xRatio, dispY, 0.0, + TextStyle.NORMAL, NsharpConstants.color_yellow, HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + target.drawString(font10, sWThetaInK, dispX+120* zoomLevel* xRatio, dispY+15* zoomLevel* yRatio, 0.0, + TextStyle.NORMAL, NsharpConstants.color_yellow, HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + target.drawString(font10, sEThetaInK, dispX+120* zoomLevel* xRatio, dispY+30* zoomLevel* yRatio, 0.0, + TextStyle.NORMAL, NsharpConstants.color_yellow, HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + + } + private void paintIcing(double zoomLevel,IGraphicsTarget target) throws VizException{ + WGraphics plotWorld = icingBackground.getWorld(); + target.setupClippingPlane(icingBackground.getPe()); + try { + + if((graphConfigProperty!=null && graphConfigProperty.isWindBarb() == true) || graphConfigProperty== null) { + plotWorld.setWorldCoordinates(NsharpConstants.ICING_RELATIVE_HUMIDITY_LEFT, icingBackground.toLogScale(NsharpConstants.ICING_PRESSURE_LEVEL_BOTTOM), + NsharpConstants.ICING_RELATIVE_HUMIDITY_RIGHT, icingBackground.toLogScale(NsharpConstants.ICING_PRESSURE_LEVEL_TOP)); + NsharpLineProperty lp =linePropertyMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_WIND_BARB]); + double xPos = icingBackground.getWindBarbXPosition();//90;// + //System.out.println("ice wind x pos="+xPos); + drawNsharpWindBarb(target, zoomLevel, plotWorld,lp.getLineColor(), this.soundingLys,xPos, NsharpConstants.ICING_PRESSURE_LEVEL_TOP); + } + } catch (VizException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + //Chin NOTE: icining wireframeshapes are created dynamically ONLY when icing display is to be shown + //However, Skewt wireframeshapes are created when new sounding is loaded. + if(icingRHShape==null){ + // current WorldCoordinates for RH already loaded + plotWorld.setWorldCoordinates(NsharpConstants.ICING_RELATIVE_HUMIDITY_LEFT, icingBackground.toLogScale(NsharpConstants.ICING_PRESSURE_LEVEL_TOP), + NsharpConstants.ICING_RELATIVE_HUMIDITY_RIGHT, icingBackground.toLogScale(NsharpConstants.ICING_PRESSURE_LEVEL_BOTTOM)); + + createIcingRHShape(plotWorld); + } + if(icingRHShape != null){ + NsharpLineProperty lp =linePropertyMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_ICING_RH]); + target.drawWireframeShape(icingRHShape,lp.getLineColor(), lp.getLineWidth(),lp.getLineStyle(),font10); + } + if(icingTempShape==null){ + plotWorld.setWorldCoordinates(NsharpConstants.ICING_TEMPERATURE_LEFT, icingBackground.toLogScale(NsharpConstants.ICING_PRESSURE_LEVEL_TOP), + NsharpConstants.ICING_TEMPERATURE_RIGHT, icingBackground.toLogScale(NsharpConstants.ICING_PRESSURE_LEVEL_BOTTOM)); + createIcingTempShape(plotWorld); + } + if(icingTempShape != null){ + NsharpLineProperty lp =linePropertyMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_ICING_TEMP]); + target.drawWireframeShape(icingTempShape,lp.getLineColor(), lp.getLineWidth(),lp.getLineStyle(),font10); + } + if(icingEPIShape==null){ + plotWorld.setWorldCoordinates(NsharpConstants.ICING_TEMPERATURE_LEFT, icingBackground.toLogScale(NsharpConstants.ICING_PRESSURE_LEVEL_TOP), + NsharpConstants.ICING_TEMPERATURE_RIGHT, icingBackground.toLogScale(NsharpConstants.ICING_PRESSURE_LEVEL_BOTTOM)); + createIcingEPIShape(plotWorld); + } + if(icingEPIShape != null){ + NsharpLineProperty lp =linePropertyMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_ICING_EPI]); + target.drawWireframeShape(icingEPIShape,lp.getLineColor(), lp.getLineWidth(),lp.getLineStyle(),font10); + } + + target.clearClippingPlane(); + + + } + private void paintTurbulence(double zoomLevel,IGraphicsTarget target) throws VizException{ + WGraphics plotWorld = turbBackground.getWorld(); + target.setupClippingPlane(turbBackground.getPe()); + //Chin NOTE: turbulence wireframeshapes are created dynamically ONLY when turbulence display is to be shown + //However, Skewt wireframeshapes are created when new sounding is loaded. + try { + //Chin:NOTE: LN Richardson number is plotted with positive number increase to left and netagive number decrease to its right side. + // Therefore, we have to set its world X coordintion in a reverse way as plotting Icing wind barb. + if((graphConfigProperty!=null && graphConfigProperty.isWindBarb() == true) || graphConfigProperty== null) { + plotWorld.setWorldCoordinates(NsharpConstants.TURBULENCE_LN_RICHARDSON_NUMBER_RIGHT, turbBackground.toLogScale(NsharpConstants.TURBULENCE_PRESSURE_LEVEL_BOTTOM), + NsharpConstants.TURBULENCE_LN_RICHARDSON_NUMBER_LEFT, turbBackground.toLogScale(NsharpConstants.TURBULENCE_PRESSURE_LEVEL_TOP)); + NsharpLineProperty lp =linePropertyMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_WIND_BARB]); + double xPos = turbBackground.getWindBarbXPosition(); + //System.out.println("turb wind x pos="+xPos); + drawNsharpWindBarb(target, zoomLevel, plotWorld, lp.getLineColor(), this.soundingLys, xPos/*7*/, NsharpConstants.TURBULENCE_PRESSURE_LEVEL_TOP); + } + }catch (VizException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + if(turbLnShape==null || turbWindShearShape==null){ + createTurbulenceShapes(plotWorld); + } + if(turbLnShape != null){ + NsharpLineProperty lp =linePropertyMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_TURBULENCE_LN]); + target.drawWireframeShape(turbLnShape, lp.getLineColor(), lp.getLineWidth(),lp.getLineStyle(),font10); + + } + if(turbWindShearShape != null){ + NsharpLineProperty lp =linePropertyMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_TURBULENCE_WS]); + target.drawWireframeShape(turbWindShearShape, lp.getLineColor(), lp.getLineWidth(),lp.getLineStyle(),font10); + } + + target.clearClippingPlane(); + + } + @SuppressWarnings("deprecation") + private void drawNsharpDataFilelabel(IGraphicsTarget target, double zoomLevel) + throws VizException { + double dispX, xmin; + double dispY, ymin; + IExtent ext = getDescriptor().getRenderableDisplay().getExtent(); + xmin = ext.getMinX(); //Extent's viewable envelope min x and y + ymin = ext.getMinY(); + dispX = xmin + 20 * zoomLevel* xRatio; + dispY = ymin + 35 * zoomLevel* yRatio; + //System.out.println("zoomLevel="+zoomLevel+" xmin="+xmin+" dispX="+dispX); + RGB pickedStnColor = NsharpConstants.color_green; + String pickedStnInfoStr=""; + String latlonStr=""; + if(rscHandler.isOverlayIsOn()){ + NsharpSoundingElementStateProperty preSndProfileProp= rscHandler.getPreSndProfileProp(); + if(preSndProfileProp!= null){ + pickedStnColor = linePropertyMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_OVERLAY2]).getLineColor(); + String stnInfoStr = preSndProfileProp.elementDescription; + latlonStr = Math.rint(preSndProfileProp.stnInfo.getLatitude()*100)/100 + "," + Math.rint(preSndProfileProp.stnInfo.getLongitude()*100)/100; + target.drawString(font10, stnInfoStr+" "+latlonStr, dispX + 300 * zoomLevel* xRatio, dispY, 0.0, + TextStyle.NORMAL, pickedStnColor, HorizontalAlignment.LEFT, + VerticalAlignment.MIDDLE, null); + } + pickedStnColor = linePropertyMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_OVERLAY1]).getLineColor(); + } + //dispX = skewtXOrig+20; + pickedStnInfoStr = rscHandler.getPickedStnInfoStr(); + //Also draw stn lat/lon info string and sounding type string + NsharpStationInfo pickedStnInfo = rscHandler.getPickedStnInfo(); + if(pickedStnInfo != null){ + latlonStr = Math.rint(pickedStnInfo.getLatitude()*100)/100 + "," + Math.rint(pickedStnInfo.getLongitude()*100)/100; + } + target.drawString(font10, pickedStnInfoStr+" "+latlonStr, dispX, dispY, 0.0, + TextStyle.NORMAL, pickedStnColor, HorizontalAlignment.LEFT, + VerticalAlignment.MIDDLE, null); + + } + + @SuppressWarnings("deprecation") + @Override + protected void paintInternal(IGraphicsTarget target, + PaintProperties paintProps) throws VizException { + //System.out.println("NsharpSkewTPaneResource paintInternal called! I am pane #"+ descriptor.getPaneNumber()); + //double X = NsharpConstants.WIND_BX_X_ORIG; + //double Y = 80; + super.paintInternal(target, paintProps); + //System.out.println("skew paintInternal zoomL="+currentZoomLevel); + if(rscHandler== null) + return; + /*if(mycurrentZoomLevel != currentZoomLevel){ + mycurrentZoomLevel = currentZoomLevel; + if(heightMarkRscShape!=null) + heightMarkRscShape.dispose(); + createRscHeightMarkShape(); + rscHandler.getWitoPaneRsc().handleZooming(); + }*/ + /* Chin : turn it off for now + skewTBackground.setCurrentFont(currentFont10Size); + icingBackground.setCurrentFont(currentFont10Size); + skewTBackground.magnifyFont(currentZoomLevel); + icingBackground.magnifyFont(currentZoomLevel);*/ + + if(currentGraphMode== NsharpConstants.GRAPH_SKEWT) + skewTBackground.paint(target, paintProps); + else if(currentGraphMode == NsharpConstants.GRAPH_ICING) + icingBackground.paint(target, paintProps); + else if(currentGraphMode == NsharpConstants.GRAPH_TURB) + turbBackground.paint(target, paintProps); + else + //default + skewTBackground.paint(target, paintProps); + + if(soundingLys!= null){ + this.font10.setSmoothing(false); + this.font10.setScaleFont(false); + this.font9.setSmoothing(false); + this.font9.setScaleFont(false); + this.font12.setSmoothing(false); + this.font12.setScaleFont(false); + //nsharpNative.populateSndgData(soundingLys); + if(currentGraphMode== NsharpConstants.GRAPH_SKEWT){ + target.setupClippingPlane(pe); + //plot temp curve, when constructing pressureTempRscShapeList, it already considered + // comparison, overlay, etc..so, just draw it. + for(NsharpShapeAndLineProperty shapeNColor: pressureTempRscShapeList){ + target.drawWireframeShape(shapeNColor.getShape(), shapeNColor.getLp().getLineColor(), shapeNColor.getLp().getLineWidth(), shapeNColor.getLp().getLineStyle(),font10);//commonLinewidth*2,commonLineStyle,font10); + } + boolean compareStnIsOn = rscHandler.isCompareStnIsOn(); + boolean compareTmIsOn = rscHandler.isCompareTmIsOn(); + boolean editGraphOn= rscHandler.isEditGraphOn(); + boolean overlayIsOn = rscHandler.isOverlayIsOn(); + if(graphConfigProperty != null ){ + if(graphConfigProperty.isTemp() == true && !compareStnIsOn && !compareTmIsOn){ + if(editGraphOn) + plotPressureTempEditPoints(target, world, NsharpConstants.color_red, TEMP_TYPE, this.soundingLys); + } + // dew point curve + if(graphConfigProperty.isDewp() == true && !compareStnIsOn && !compareTmIsOn){ + if(editGraphOn) + plotPressureTempEditPoints(target, world, NsharpConstants.color_green, DEWPOINT_TYPE, this.soundingLys); + } + //plot wetbulb trace + if(graphConfigProperty.isWetBulb() == true && !compareStnIsOn && !compareTmIsOn){ + NsharpLineProperty lp =linePropertyMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_WETBULB]); + target.drawWireframeShape(wetBulbTraceRscShape, lp.getLineColor(),lp.getLineWidth(),lp.getLineStyle(),font10);//NsharpConstants.color_cyan, commonLinewidth,commonLineStyle,font10); + } + //plot virtual temp trace + if(graphConfigProperty.isVTemp() == true && !compareStnIsOn && !compareTmIsOn){ + NsharpLineProperty lp =linePropertyMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_VIRTUAL_TEMP]); + target.drawWireframeShape(vtempTraceCurveRscShape,lp.getLineColor(),lp.getLineWidth(),lp.getLineStyle(),font10);//NsharpConstants.color_red, commonLinewidth*2, LineStyle.DASHED,font10); + } + // parcel trace curve + if(graphConfigProperty.isParcel() == true && !compareStnIsOn && !compareTmIsOn){ + if(soundingLys.size() > 0){ + for (IWireframeShape shape: parcelTraceRscShapeList){ + NsharpLineProperty lp =linePropertyMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_PARCEL]); + target.drawWireframeShape(shape, lp.getLineColor(),lp.getLineWidth(),lp.getLineStyle(),font10);//NsharpConstants.color_white, commonLinewidth,LineStyle.DASHED,font10); + } + } + } + if(graphConfigProperty.isEffLayer() == true && !compareStnIsOn && !compareTmIsOn) + //draw effective layer lines + drawEffectiveLayerLines(target); + + //cloud + if(graphConfigProperty.isCloud() == true && !compareStnIsOn && !compareTmIsOn){ + if(cloudFMShape!= null) + target.drawShadedShape(cloudFMShape, 1f); + if(cloudFMLabelShape!= null) + target.drawWireframeShape(cloudFMLabelShape, NsharpConstants.color_chocolate, commonLinewidth*3, + commonLineStyle,font9); + if(cloudCEShape!= null) + target.drawShadedShape(cloudCEShape, 1f); + } + } + else{ + //by default, draw everything + if(!compareStnIsOn && !compareTmIsOn){ + if(editGraphOn) + plotPressureTempEditPoints(target, world, NsharpConstants.color_red, TEMP_TYPE, this.soundingLys); + // dew point curve + if(editGraphOn) + plotPressureTempEditPoints(target, world, NsharpConstants.color_green, DEWPOINT_TYPE, this.soundingLys); + //plot wetbulb trace + NsharpLineProperty lp =linePropertyMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_WETBULB]); + target.drawWireframeShape(wetBulbTraceRscShape, lp.getLineColor(),lp.getLineWidth(),lp.getLineStyle(),font10);//NsharpConstants.color_cyan, commonLinewidth,commonLineStyle,font10); + //plot virtual temp trace + lp =linePropertyMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_VIRTUAL_TEMP]); + target.drawWireframeShape(vtempTraceCurveRscShape,lp.getLineColor(),lp.getLineWidth(),lp.getLineStyle(),font10);//NsharpConstants.color_red, commonLinewidth*2, LineStyle.DASHED,font10); + + // parcel trace curve + if(soundingLys.size() > 0){ + for (IWireframeShape shape: parcelTraceRscShapeList){ + lp =linePropertyMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_PARCEL]); + target.drawWireframeShape(shape, lp.getLineColor(),lp.getLineWidth(),lp.getLineStyle(),font10);//NsharpConstants.color_white, commonLinewidth,LineStyle.DASHED,font10); + } + } + //draw effective layer lines + drawEffectiveLayerLines(target); + } + } + if(plotInteractiveTemp == true ){ + plotNsharpInteractiveTemp( target, currentZoomLevel, + world, NsharpConstants.color_white); + } + target.clearClippingPlane(); + + + // Wind Barb + if((graphConfigProperty!=null && graphConfigProperty.isWindBarb() == true) || graphConfigProperty== null) { + double xPos = skewTBackground.getWindBarbXPosition(); + if(overlayIsOn == true && this.previousSoundingLys!=null){ + drawNsharpWindBarb(target, currentZoomLevel, world, linePropertyMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_OVERLAY1]).getLineColor(), this.soundingLys, xPos,100); + if(!previousSoundingLys.equals(soundingLys)) + drawNsharpWindBarb(target, currentZoomLevel, world, linePropertyMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_OVERLAY2]).getLineColor(), this.previousSoundingLys, xPos - NsharpResourceHandler.BARB_LENGTH,100); + } + else{ + if(!compareStnIsOn && !compareTmIsOn){ + NsharpLineProperty lp =linePropertyMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_WIND_BARB]); + drawNsharpWindBarb(target, currentZoomLevel, world, lp.getLineColor()/*NsharpConstants.color_yellow*/, this.soundingLys, xPos,100); + } + } + //System.out.println("x1 pos"+xPos+ " x2 pos="+ (xPos - NsharpResourceHandler.BARB_LENGTH)); + } + + target.drawWireframeShape(heightMarkRscShape, NsharpConstants.color_red, 1, LineStyle.SOLID, font10); + + //if(!compareStnIsOn){ + //draw EL, LFC, LCL, FZL, -20C, -30C lines + drawLclLine(target); + + // draw cursor data + if(cursorInSkewT== true){ + if(curseToggledFontLevel < CURSER_STRING_OFF) + drawNsharpSkewtCursorData(target); + //draw dynamic temp, theta, height + drawNsharpSkewtDynamicData(target, currentZoomLevel, world); + + } + //} + + }// end of currentGraphMode= NsharpConstants.GRAPH_SKEWT + else if(currentGraphMode == NsharpConstants.GRAPH_ICING){ + paintIcing( currentZoomLevel, target); + } + else if(currentGraphMode == NsharpConstants.GRAPH_TURB){ + paintTurbulence( currentZoomLevel, target); + } + drawNsharpDataFilelabel(target, currentZoomLevel); + } + } + + @Override + protected void initInternal(IGraphicsTarget target) throws VizException { + super.initInternal(target); + currentCanvasBoundWidth = NsharpConstants.SKEWT_PANE_REC_WIDTH; + currentCanvasBoundHeight = NsharpConstants.SKEWT_PANE_REC_HEIGHT; + myDefaultCanvasWidth = NsharpConstants.SKEWT_PANE_REC_WIDTH; + myDefaultCanvasHeight = NsharpConstants.SKEWT_PANE_REC_HEIGHT; + //System.out.print("NsharpSkewTPaneResource ::: initInternal entered!!!!!\n"); + this.rectangle = new Rectangle(skewtXOrig, skewtYOrig, + skewtWidth, skewtHeight); + pe = new PixelExtent(this.rectangle); + world = new WGraphics(this.rectangle); + + world.setWorldCoordinates(NsharpConstants.left, NsharpConstants.top, + NsharpConstants.right, NsharpConstants.bottom); + skewTBackground.initInternal(target); + icingBackground.initInternal(target); + turbBackground.initInternal(target); + createRscWireFrameShapes(); + } + + public String updateDynamicData(Coordinate c) throws VizException { + this.cursorCor = c; + try { + //System.out.println(" updateDynamicData entered!!!!!C.x="+c.x + " c.y="+c.y); + + if (skewTBackground.contains(c)) { + c = NsharpWxMath.reverseSkewTXY(skewTBackground.getWorld() + .unMap(c.x, c.y)); + double p_mb = c.y; + double t_C = c.x; // Celsius + double t_F = celciusToFahrenheit.convert(c.x); + double theta = celciusToKelvin.convert(WxMath.theta(p_mb, t_C, + 1000)); + double wtheta = celciusToKelvin.convert(WxMath.thetaw(p_mb, + t_C, t_C)); + double etheta = celciusToKelvin.convert(WxMath.thetae(p_mb, + t_C, t_C)); + double mixRatio = WxMath.mixingRatio(p_mb, t_C); + dPressure = p_mb; + + sPressure = String.format( + "%.0f mb",p_mb, NsharpConstants.THETA_SYMBOL); + sTemperatureC = String.format("%.1f%cC", + t_C, NsharpConstants.DEGREE_SYMBOL); + sTemperatureF = String.format("%.1f%cF", + t_F,NsharpConstants.DEGREE_SYMBOL); + + sThetaInK = String.format("%c=%.0fK", + NsharpConstants.THETA_SYMBOL,theta); + sWThetaInK = String.format("%cw=%.0fK", + NsharpConstants.THETA_SYMBOL,wtheta); + sEThetaInK = String.format("%ce=%.0fK", + NsharpConstants.THETA_SYMBOL,etheta); + sMixingRatio = String.format("%.0fg/Kg",mixRatio); + } + } catch (Exception e) { + UFStatus.getHandler().handle(Priority.PROBLEM, "Exception translating coordinate", e); + } + return ""; + } + private void createRscParcelTraceShape( short parcelType, float userPre){ + //System.out.println("createRscParcelTraceShape called defoine_parcel pType="+parcelType+" pre="+ userPre); + IWireframeShape shape = target.createWireframeShape(false,descriptor ); + shape.allocate(40); + //call native define_parcel() with parcel type and user defined pressure (if user defined it) + nsharpNative.nsharpLib.define_parcel(parcelType,userPre); + + _lplvalues lpvls = new _lplvalues(); + nsharpNative.nsharpLib.get_lpvaluesData(lpvls); + + float sfctemp, sfcdwpt, sfcpres; + sfctemp = lpvls.temp; + sfcdwpt = lpvls.dwpt; + sfcpres = lpvls.pres; + + float vtemp = nsharpNative.nsharpLib.virtemp (sfcpres, sfctemp, sfcdwpt); + Coordinate c1 = NsharpWxMath.getSkewTXY(sfcpres, vtemp); + c1.x = world.mapX(c1.x); + c1.y = world.mapY(c1.y); + FloatByReference p2 = new FloatByReference(0), t2 = new FloatByReference(0);; + nsharpNative.nsharpLib.drylift (sfcpres, sfctemp, sfcdwpt, p2, t2); + vtemp = nsharpNative.nsharpLib.virtemp (p2.getValue(), t2.getValue(), t2.getValue()); + Coordinate c2 = NsharpWxMath.getSkewTXY(p2.getValue(), vtemp); + c2.x = world.mapX(c2.x); + c2.y = world.mapY(c2.y); + + double [][] lines = {{c1.x, c1.y},{c2.x, c2.y}}; + shape.addLineSegment(lines); + + c1 = c2; + + + float t3; + for (float i = p2.getValue() - 50; i >= 100; i = i - 50) + { + t3 = nsharpNative.nsharpLib.wetlift (p2.getValue(), t2.getValue(), i); + vtemp = nsharpNative.nsharpLib.virtemp (i, t3, t3); + c2 = NsharpWxMath.getSkewTXY(i, vtemp); + c2.x = world.mapX(c2.x); + c2.y = world.mapY(c2.y); + + double [][] lines1 = {{c1.x, c1.y},{c2.x, c2.y}}; + shape.addLineSegment(lines1); + + c1 = c2; + } + + t3 = nsharpNative.nsharpLib.wetlift (p2.getValue(), t2.getValue(), 100); + vtemp = nsharpNative.nsharpLib.virtemp (100, t3, t3); + c2 = NsharpWxMath.getSkewTXY(100, vtemp); + c2.x = world.mapX(c2.x); + c2.y = world.mapY(c2.y); + + double [][] lines2 = {{c1.x, c1.y},{c2.x, c2.y}}; + shape.addLineSegment(lines2); + + shape.compile(); + + parcelTraceRscShapeList.add(shape); + + } + public void createParcelShapes(List parcelList) { + + if(parcelTraceRscShapeList.size()>0){ + for(IWireframeShape shape: parcelTraceRscShapeList){ + shape.dispose(); + } + parcelTraceRscShapeList.clear(); + } + + + for (ParcelData parData: parcelList){ + createRscParcelTraceShape( parData.parcelType,parData.parcelLayerPressure); + } + } + private void createRscHeightMarkShape(){ + + heightMarkRscShape = target.createWireframeShape(false,descriptor ); + heightMarkRscShape.allocate(20); + //plot meter scales... + IExtent ext = descriptor.getRenderableDisplay().getExtent(); + double xmin = ext.getMinX(); //Extent's viewable envelope min x and y + double xDefault = world.mapX(NsharpConstants.left); + if(xmin -200 && layer.getPressure() >= 100){ + t1 = nsharpNative.nsharpLib.wetbulb(layer.getPressure(), layer.getTemperature(), + layer.getDewpoint()); + + c1 = NsharpWxMath.getSkewTXY(layer.getPressure(), t1); + c1.x = world.mapX(c1.x); + c1.y = world.mapY(c1.y); + if(c2!= null){ + + double [][] lines = {{c1.x, c1.y},{c2.x, c2.y}}; + wetBulbTraceRscShape.addLineSegment(lines); + + } + c2 = c1; + } + } + wetBulbTraceRscShape.compile(); + } + private void createTurbulenceShapes(WGraphics world){ + if(turbLnShape!=null) + turbLnShape.dispose(); + turbLnShape = target.createWireframeShape(false,descriptor ); + + turbLnShape.allocate(this.soundingLys.size() * 2); + turbWindShearShape = target.createWireframeShape(false,descriptor ); + turbWindShearShape.allocate(this.soundingLys.size() * 2); + Coordinate pointALn = null; + Coordinate pointBLn=null; + Coordinate pointAWsh = null; + Coordinate pointBWsh=null; + double g= 9.8f, Ri; + double t0,t1,v0,v1, u0,u1, windshear0, windshearsqrd,tke_windshear_prod; + double pressure0=0, pressure1,midpressure0, p, high0=0,high1; + double theta1=0, theta0=0,dthetadz0,meanTheta; + boolean first=true; + NcSoundingLayer layer0, layer1; + for (int i=0; i< soundingLys.size()-1; i++) { + layer0 = soundingLys.get(i); + pressure0= layer0.getPressure(); + t0= layer0.getTemperature(); + high0= layer0.getGeoHeight(); + layer1 = soundingLys.get(i+1); + t1= layer1.getTemperature(); + high1= layer1.getGeoHeight(); + if( t0<= NsharpNativeConstants.NSHARP_NATIVE_INVALID_DATA || t1<= NsharpNativeConstants.NSHARP_NATIVE_INVALID_DATA|| + pressure0 <= NsharpConstants.TURBULENCE_PRESSURE_LEVEL_TOP ) + continue; + pressure1= layer1.getPressure(); + v0=nsharpNative.nsharpLib.iwndv((float)pressure0); + v1=nsharpNative.nsharpLib.iwndv((float)pressure1); + u0=nsharpNative.nsharpLib.iwndu((float)pressure0); + u1=nsharpNative.nsharpLib.iwndu((float)pressure1); + windshear0=Math.sqrt((u1-u0)*(u1-u0)+(v1-v0)*(v1-v0))*.51479/(high1-high0); + midpressure0 = (pressure1+pressure0)/2; + theta0=WxMath.theta(pressure0,t0, 1000)+273.15; + theta1=WxMath.theta(pressure1,t1, 1000)+273.15; + meanTheta=(theta1+theta0)/2.0f; + dthetadz0=(theta1-theta0)/(high1-high0); + if (windshear0 != 0.0 ) { + windshearsqrd=(windshear0*windshear0); + Ri=(g/meanTheta)*(dthetadz0/windshearsqrd); + world.setWorldCoordinates(NsharpConstants.TURBULENCE_LN_RICHARDSON_NUMBER_LEFT, turbBackground.toLogScale(NsharpConstants.TURBULENCE_PRESSURE_LEVEL_TOP), + NsharpConstants.TURBULENCE_LN_RICHARDSON_NUMBER_RIGHT, turbBackground.toLogScale(NsharpConstants.TURBULENCE_PRESSURE_LEVEL_BOTTOM)); + //System.out.println("world viewYmin="+world.getViewYmin()+" viewYmax="+world.getViewYmax()+" wolrdYmin="+ world.getWorldYmin()+" wolrdYmax="+ world.getWorldYmax() + // +" viewXmin="+world.getViewXmin()+" viewXmax="+world.getViewXmax()+" wolrdXmin="+ world.getWorldXmin()+" wolrdXmax="+ world.getWorldXmax()); + + pointALn = new Coordinate(); + p = turbBackground.toLogScale(midpressure0); + pointALn.x = world.mapX(Math.log(Ri)); + pointALn.y = world.mapY(p); + world.setWorldCoordinates(NsharpConstants.TURBULENCE_WIND_SHEAR_TKE_LEFT, turbBackground.toLogScale(NsharpConstants.TURBULENCE_PRESSURE_LEVEL_TOP), + NsharpConstants.TURBULENCE_WIND_SHEAR_TKE_RIGHT, turbBackground.toLogScale(NsharpConstants.TURBULENCE_PRESSURE_LEVEL_BOTTOM)); + pointAWsh = new Coordinate(); + tke_windshear_prod=0.54*(high1-high0)*windshearsqrd; + pointAWsh.x = world.mapX( tke_windshear_prod*100); + pointAWsh.y = world.mapY(p); + //System.out.println("P0="+pressure0+" dthetadz0="+dthetadz0+" theta0="+theta0+" log(Ri)="+Math.log(Ri)+ " pointAx="+pointALn.x+ " y="+pointALn.y); + if (! first) { + double [][] linesLn = {{pointALn.x, pointALn.y},{pointBLn.x, pointBLn.y}}; + double [][] linesWsh = {{pointAWsh.x, pointAWsh.y},{pointBWsh.x, pointBWsh.y}}; + turbLnShape.addLineSegment(linesLn); + turbWindShearShape.addLineSegment(linesWsh); + + } + else{ + first=false; + } + pointBLn = pointALn; + pointBWsh = pointAWsh; + } + } + + turbLnShape.compile(); + turbWindShearShape.compile(); + } + + /* + * Chin:: NOTE::: + * This plotting function is based on the algorithm of draw_ICG() at xwvid1.c of AWC Nsharp source code + * by LARRY J. HINSON AWC/KCMO + * + */ + private void createIcingRHShape(WGraphics world){ + //System.out.println("world viewYmin="+world.getViewYmin()+" viewYmax="+world.getViewYmax()+" wolrdYmin="+ world.getWorldYmin()+" wolrdYmax="+ world.getWorldYmax() + // +" viewXmin="+world.getViewXmin()+" viewXmax="+world.getViewXmax()+" wolrdXmin="+ world.getWorldXmin()+" wolrdXmax="+ world.getWorldXmax()); + + + icingRHShape = target.createWireframeShape(false,descriptor ); + icingRHShape.allocate(this.soundingLys.size() * 2); + Coordinate c0 = null; + + for (NcSoundingLayer layer : soundingLys) { + double pressure = layer.getPressure(); + if (pressure >= NsharpConstants.ICING_PRESSURE_LEVEL_TOP + && pressure <= NsharpConstants.ICING_PRESSURE_LEVEL_BOTTOM) { + + FloatByReference parm= new FloatByReference(0); + float relh= nsharpNative.nsharpLib.relh((float)pressure, parm); + Coordinate c1 = new Coordinate(); + double p = icingBackground.toLogScale(pressure); + c1.x = world.mapX(relh); + c1.y = world.mapY(p); + //System.out.println("RH="+relh+ " p="+pressure+ " x="+c1.x+ " y="+c1.y); + if (c0 != null) { + double [][] lines = {{c0.x, c0.y},{c1.x, c1.y}}; + icingRHShape.addLineSegment(lines); + } + c0 = c1; + } + } + + icingRHShape.compile(); + } + + private void createIcingEPIShape(WGraphics world){ + //System.out.println("world viewYmin="+world.getViewYmin()+" viewYmax="+world.getViewYmax()+" wolrdYmin="+ world.getWorldYmin()+" wolrdYmax="+ world.getWorldYmax() + // +" viewXmin="+world.getViewXmin()+" viewXmax="+world.getViewXmax()+" wolrdXmin="+ world.getWorldXmin()+" wolrdXmax="+ world.getWorldXmax()); + + + icingEPIShape = target.createWireframeShape(false,descriptor ); + icingEPIShape.allocate(this.soundingLys.size() * 2); + Coordinate pointA = null; + Coordinate pointB=null; + boolean firstround=true; + double t0,t1; + double pressure0=0, pressure1,midpressure0, p, high0=0,high1; + double const1=2500000.0/1004.0; + double theta1=0,thetase1, theta0=0,thetase0=0,mixratio0,mixratio1,dthetasedz0; + NcSoundingLayer layer0, layer1; + for (int i=0; i< soundingLys.size()-1; i++) { + layer0 = soundingLys.get(i); + layer1 = soundingLys.get(i+1); + t0= layer0.getTemperature(); + t1= layer1.getTemperature(); + pressure0 = layer0.getPressure(); + pressure1 = layer1.getPressure(); + if( t0<= NsharpNativeConstants.NSHARP_NATIVE_INVALID_DATA || t1<= NsharpNativeConstants.NSHARP_NATIVE_INVALID_DATA|| + (pressure0 < NsharpConstants.ICING_PRESSURE_LEVEL_TOP && pressure1 < NsharpConstants.ICING_PRESSURE_LEVEL_TOP)) + continue; + theta1=WxMath.theta(pressure1,t1, 1000)+273.15; + mixratio1 = WxMath.mixingRatio(pressure1, t1); + thetase1 = theta1*Math.exp(const1*mixratio1*.001/(t1+273.15)); + high1= layer1.getGeoHeight(); + theta0=WxMath.theta(pressure0,t0, 1000)+273.15; + mixratio0 = WxMath.mixingRatio(pressure0, t0); + thetase0 = theta0*Math.exp(const1*mixratio0*.001/(t0+273.15)); + high0= layer0.getGeoHeight(); + //Do D-Theta-se/dz + dthetasedz0=(thetase1-thetase0)/(high1-high0)*1E3; + midpressure0 = (pressure1+pressure0)/2; + pointA = new Coordinate(); + p = icingBackground.toLogScale(midpressure0); + pointA.x = world.mapX(dthetasedz0); + pointA.y = world.mapY(p); + if(!firstround){ + //System.out.println("Temp="+t0+ " p="+pressure0+ "pointAx="+pointA.x+ " y="+pointA.y+ " pointBx="+pointB.x+ " y="+pointB.y); + double [][] lines = {{pointA.x, pointA.y},{pointB.x, pointB.y}}; + icingEPIShape.addLineSegment(lines); + + } + else + {//this is first round, we need two pints for a line segment. We only have first point now. + firstround= false; + } + pointB = pointA; + + } + icingEPIShape.compile(); + } + /* + * Chin:: NOTE::: + * This plotting function is based on the algorithm of draw_ICG() at xwvid1.c of AWC Nsharp source code + * by LARRY J. HINSON AWC/KCMO + * + */ + private void createIcingTempShape(WGraphics world){ + //System.out.println("world viewYmin="+world.getViewYmin()+" viewYmax="+world.getViewYmax()+" wolrdYmin="+ world.getWorldYmin()+" wolrdYmax="+ world.getWorldYmax() + // +" viewXmin="+world.getViewXmin()+" viewXmax="+world.getViewXmax()+" wolrdXmin="+ world.getWorldXmin()+" wolrdXmax="+ world.getWorldXmax()); + + + icingTempShape = target.createWireframeShape(false,descriptor ); + icingTempShape.allocate(this.soundingLys.size() * 2); + Coordinate c0 = null; + + for (NcSoundingLayer layer : soundingLys) { + double t= layer.getTemperature(); + //if( t > NsharpConstants.ICING_TEMPERATURE_RIGHT || t< NsharpConstants.ICING_TEMPERATURE_LEFT) + // continue; + double pressure = layer.getPressure(); + if (pressure >= NsharpConstants.ICING_PRESSURE_LEVEL_TOP + && pressure <= NsharpConstants.ICING_PRESSURE_LEVEL_BOTTOM) { + + Coordinate c1 = new Coordinate(); + double p = icingBackground.toLogScale(pressure); + c1.x = world.mapX(t); + c1.y = world.mapY(p); + //System.out.println("Temp="+t+ " p="+pressure+ " x="+c1.x+ " y="+c1.y); + if (c0 != null) { + double [][] lines = {{c0.x, c0.y},{c1.x, c1.y}}; + icingTempShape.addLineSegment(lines); + } + c0 = c1; + } + } + + icingTempShape.compile(); + } + private void createRscPressTempCurveShape(WGraphics WGc, List soundingLays, NsharpLineProperty lineP){ + IWireframeShape shapeT = target.createWireframeShape(false,descriptor ); + shapeT.allocate(soundingLays.size() * 2); + IWireframeShape shapeD = target.createWireframeShape(false,descriptor ); + shapeD.allocate(soundingLays.size() * 2); + NsharpShapeAndLineProperty shNcolorT = new NsharpShapeAndLineProperty(); + NsharpShapeAndLineProperty shNcolorD = new NsharpShapeAndLineProperty(); + double maxPressure = NsharpWxMath.reverseSkewTXY(new Coordinate(0, WGc + .getWorldYmax())).y; + double minPressure = NsharpWxMath.reverseSkewTXY(new Coordinate(0, WGc + .getWorldYmin())).y; + boolean drawTemp=true, drawDew=true; + //NsharpParametersSelectionConfigDialog configD = NsharpParametersSelectionConfigDialog.getAccess(); + graphConfigProperty = rscHandler.getGraphConfigProperty(); + if(graphConfigProperty!=null){ + drawTemp = graphConfigProperty.isTemp(); + drawDew = graphConfigProperty.isDewp(); + } + Coordinate c0 = null, c01=null; + for (NcSoundingLayer layer : soundingLays) { + double t, d; + t = layer.getTemperature(); + d = layer.getDewpoint(); + + double pressure = layer.getPressure(); + if (t != NsharpNativeConstants.NSHARP_NATIVE_INVALID_DATA && pressure >= minPressure + && pressure <= maxPressure) { + + Coordinate c1 = NsharpWxMath.getSkewTXY(pressure, t); + + c1.x = WGc.mapX(c1.x); + c1.y = WGc.mapY(c1.y); + if (c0 != null) { + double [][] lines = {{c0.x, c0.y},{c1.x, c1.y}}; + shapeT.addLineSegment(lines); + } + c0 = c1; + } + if (d > -999 && pressure >= minPressure + && pressure <= maxPressure) { + + Coordinate c11 = NsharpWxMath.getSkewTXY(pressure, d); + + c11.x = WGc.mapX(c11.x); + c11.y = WGc.mapY(c11.y); + if (c01 != null) { + double [][] lines = {{c01.x, c01.y},{c11.x, c11.y}}; + shapeD.addLineSegment(lines); + } + c01 = c11; + } + } + + shapeT.compile(); + shapeD.compile(); + + shNcolorT.setShape(shapeT); + shNcolorD.setShape(shapeD); + if(!rscHandler.isOverlayIsOn() && !rscHandler.isCompareStnIsOn() && !rscHandler.isCompareTmIsOn()){ + //use default color + + if(linePropertyMap!=null){ + shNcolorT.setLp( linePropertyMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_TEMP]));//chin new config NsharpConstants.color_red; + shNcolorD.setLp( linePropertyMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_DEWP]));//NsharpConstants.color_green; + } + } + else + { + shNcolorT.setLp( lineP); + shNcolorD.setLp( lineP); + } + //check draw temp and dew here. It is easier to do this way, otherwise, we have to check it every wghere + if(drawTemp) + pressureTempRscShapeList.add(shNcolorT); + else + shNcolorT.getShape().dispose(); + if(drawDew) + pressureTempRscShapeList.add(shNcolorD); + else + shNcolorD.getShape().dispose(); + } + public void createRscPressTempCurveShapeAll(){ + if(pressureTempRscShapeList.size()>0){ + for(NsharpShapeAndLineProperty shapeColor: pressureTempRscShapeList){ + shapeColor.getShape().dispose(); + } + pressureTempRscShapeList.clear(); + } + + int currentTimeLineStateListIndex = rscHandler.getCurrentTimeLineStateListIndex(); + int currentStnStateListIndex = rscHandler.getCurrentStnStateListIndex(); + List stnStateList = rscHandler.getStnStateList(); + List timeLineStateList = rscHandler.getTimeLineStateList(); + List> stnTimeTable = rscHandler.getStnTimeTable(); + HashMap> dataTimelineSndLysListMap = rscHandler.getDataTimelineSndLysListMap(); + if(rscHandler.isCompareStnIsOn() && currentTimeLineStateListIndex >=0){ + int colorIndex =NsharpConstants.LINE_COMP1; + for(NsharpStationStateProperty elm: stnStateList) { + if(elm.getStnState() == NsharpConstants.State.ACTIVE && + stnTimeTable.get(stnStateList.indexOf(elm)).get(currentTimeLineStateListIndex).getElementState() == NsharpConstants.State.AVAIL){ + List soundingLayeys = dataTimelineSndLysListMap.get(stnTimeTable.get(stnStateList.indexOf(elm)).get(currentTimeLineStateListIndex).getElementDescription()); + NsharpLineProperty lp = linePropertyMap.get(NsharpConstants.lineNameArray[colorIndex]); + colorIndex++; + if(colorIndex > NsharpConstants.LINE_COMP10) + colorIndex =NsharpConstants.LINE_COMP1; + createRscPressTempCurveShape(world, soundingLayeys, lp); + } + } + } + else if(rscHandler.isCompareTmIsOn() && currentStnStateListIndex >=0 ){ + int colorIndex =NsharpConstants.LINE_COMP1; + for(NsharpTimeLineStateProperty elm: timeLineStateList) { + if(elm.getTimeState() == NsharpConstants.State.ACTIVE && + stnTimeTable.get(currentStnStateListIndex).get(timeLineStateList.indexOf(elm)).getElementState() == NsharpConstants.State.AVAIL){ + List soundingLayeys = dataTimelineSndLysListMap.get(stnTimeTable.get(currentStnStateListIndex).get(timeLineStateList.indexOf(elm)).getElementDescription()); + NsharpLineProperty lp = linePropertyMap.get(NsharpConstants.lineNameArray[colorIndex]); + colorIndex++; + if(colorIndex > NsharpConstants.LINE_COMP10) + colorIndex =NsharpConstants.LINE_COMP1; + createRscPressTempCurveShape(world, soundingLayeys, lp); + } + } + } + else if(rscHandler.isOverlayIsOn() == true ){ + + previousSoundingLys = rscHandler.getPreviousSoundingLys(); + createRscPressTempCurveShape(world, this.soundingLys, linePropertyMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_OVERLAY1])); + if(this.previousSoundingLys!=null && !previousSoundingLys.equals(soundingLys)){ + createRscPressTempCurveShape(world, this.previousSoundingLys, linePropertyMap.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_OVERLAY2])); + } + + } + else { + + createRscPressTempCurveShape(world, this.soundingLys, null); + } + } + + public void createRscVTempTraceShape(){ + + if((soundingLys == null) || (soundingLys.size()==0)) + return; + float t1; + if(vtempTraceCurveRscShape!=null){ + vtempTraceCurveRscShape.dispose(); + vtempTraceCurveRscShape=null; + } + + Coordinate c2 = null; + Coordinate c1; + // draw trace + vtempTraceCurveRscShape = target.createWireframeShape(false,descriptor ); + vtempTraceCurveRscShape.allocate(this.soundingLys.size() * 2); + for (NcSoundingLayer layer : this.soundingLys) { + if ((layer.getTemperature() != NsharpNativeConstants.NSHARP_NATIVE_INVALID_DATA) && (layer.getDewpoint() != NsharpNativeConstants.NSHARP_NATIVE_INVALID_DATA) && layer.getPressure()>= 100){ + t1 = nsharpNative.nsharpLib.ivtmp(layer.getPressure()); + + c1 = NsharpWxMath.getSkewTXY(layer.getPressure(), t1); + c1.x = world.mapX(c1.x); + c1.y = world.mapY(c1.y); + if(c2!= null){ + //target.drawLine(c1.x, c1.y, 0.0, c2.x, c2.y, 0.0, color, + // lineWidth, LineStyle.DASHED); + double [][] lines = {{c1.x, c1.y},{c2.x, c2.y}}; + vtempTraceCurveRscShape.addLineSegment(lines); + } + c2 = c1; + } + } + vtempTraceCurveRscShape.compile(); + } + /* + * Chin:: NOTE::: + * This plotting function is based on the algorithm of draw_Clouds() at xwvid1.c of AWC Nsharp source code + * Using Fred Mosher's Algorithm & Chernykh and Eskridge Algorithm + * + */ + private void createCloudsShape() { + NsharpNative.NsharpLibrary.CloudInfoStr cloudInfo = new NsharpNative.NsharpLibrary.CloudInfoStr(); + nsharpNative.nsharpLib.draw_Clouds(cloudInfo); + // draw FM model: Fred Mosher's Algorithm + if(cloudInfo.getSizeFM() > 0){ + cloudFMShape = target.createShadedShape(false, descriptor, false); + cloudFMLabelShape = target.createWireframeShape(false,descriptor ); + cloudFMLabelShape.allocate(2); + double [][] lines = {{0, 0},{0,0}}; + cloudFMLabelShape.addLineSegment(lines); + for (int i=0; i < cloudInfo.getSizeFM() ; i++){ + double lowY = world.mapY(NsharpWxMath.getSkewTXY(cloudInfo.getPreStartFM()[i], -50).y); + double highY = world.mapY(NsharpWxMath.getSkewTXY(cloudInfo.getPreEndFM()[i], -50).y); + Coordinate[] coords = new Coordinate[4]; + coords[0] = new Coordinate(skewtXOrig+150, lowY); + coords[1] = new Coordinate(skewtXOrig+200, lowY); + coords[2] = new Coordinate(skewtXOrig+200, highY); + coords[3] = new Coordinate(skewtXOrig+150, highY); + + /* + * Create LineString[] from Coordinates[] + */ + GeometryFactory gf = new GeometryFactory(); + LineString[] ls = new LineString[] { gf.createLineString(coords) }; + + cloudFMShape.addPolygonPixelSpace(ls, NsharpConstants.color_yellow); + double [] lblXy = { skewtXOrig+175, (lowY+highY)/2}; + cloudFMLabelShape.addLabel(NsharpNative.NsharpLibrary.CLOUD_TYPE[cloudInfo.cloudTypeFM[i]], lblXy); + } + cloudFMShape.compile(); + cloudFMLabelShape.compile(); + } + // draw CE model : Chernykh and Eskridge Algorithm + if(cloudInfo.getSizeCE() > 0){ + cloudCEShape = target.createShadedShape(false, descriptor, false); + + for (int i=0; i < cloudInfo.getSizeCE() ; i++){ + double lowY = world.mapY(NsharpWxMath.getSkewTXY(cloudInfo.getPreStartCE()[i], -50).y); + double highY = world.mapY(NsharpWxMath.getSkewTXY(cloudInfo.getPreEndCE()[i], -50).y); + Coordinate[] coords = new Coordinate[4]; + coords[0] = new Coordinate(skewtXOrig+100, lowY); + coords[1] = new Coordinate(skewtXOrig+150, lowY); + coords[2] = new Coordinate(skewtXOrig+150, highY); + coords[3] = new Coordinate(skewtXOrig+100, highY); + + /* + * Create LineString[] from Coordinates[] + */ + GeometryFactory gf = new GeometryFactory(); + LineString[] ls = new LineString[] { gf.createLineString(coords) }; + + cloudCEShape.addPolygonPixelSpace(ls, NsharpConstants.color_red); + + } + cloudCEShape.compile(); + + } + } + + /** + * Create all wire frame shapes at one place. + * Should be used only when a new resource is becoming Current active resource to be displayed. + * + */ + + public void createRscWireFrameShapes(){ + //System.out.println("createRscWireFrameShapes called"); + if(target!=null){ + disposeRscWireFrameShapes(); + if(soundingLys != null){ + createRscHeightMarkShape(); + createRscwetBulbTraceShape(); + createRscPressTempCurveShapeAll(); + createRscVTempTraceShape(); + List parcelList = rscHandler.getParcelList(); + for (ParcelData parData: parcelList){ + createRscParcelTraceShape( parData.parcelType,parData.parcelLayerPressure); + } + createCloudsShape(); + } + } + } + + public void disposeRscWireFrameShapes(){ + if(heightMarkRscShape!=null){ + heightMarkRscShape.dispose(); + heightMarkRscShape=null; + } + if(wetBulbTraceRscShape!=null){ + wetBulbTraceRscShape.dispose(); + wetBulbTraceRscShape=null; + } + if(vtempTraceCurveRscShape!=null){ + vtempTraceCurveRscShape.dispose(); + vtempTraceCurveRscShape=null; + } + if(cloudFMShape!=null){ + cloudFMShape.dispose(); + cloudFMShape=null; + } + if(cloudCEShape!=null){ + cloudCEShape.dispose(); + cloudCEShape=null; + } + if(cloudFMLabelShape!=null){ + cloudFMLabelShape.dispose(); + cloudFMLabelShape=null; + } + if(icingTempShape!=null){ + icingTempShape.dispose(); + icingTempShape= null; + } + if(icingRHShape!=null){ + icingRHShape.dispose(); + icingRHShape=null; + } + if(icingEPIShape!=null){ + icingEPIShape.dispose(); + icingEPIShape=null; + } + if(turbWindShearShape!=null){ + turbWindShearShape.dispose(); + turbWindShearShape=null; + } + if(turbLnShape!=null){ + turbLnShape.dispose(); + turbLnShape=null; + } + if(parcelTraceRscShapeList.size()>0){ + for(IWireframeShape shape: parcelTraceRscShapeList){ + shape.dispose(); + } + parcelTraceRscShapeList.clear(); + + } + + if(pressureTempRscShapeList.size()>0){ + for(NsharpShapeAndLineProperty shapeColor: pressureTempRscShapeList){ + shapeColor.getShape().dispose(); + } + pressureTempRscShapeList.clear(); + + } + } + /* + * Return the closest point to the input point on either Temp or Dewpoint trace line + * Also set currentSoundingLayerIndex for plotting later + */ + public Coordinate getPickedTempPoint(Coordinate c){ + + //System.out.println("picked pt X "+ x + " Y "+ y); + //System.out.println("picked pt CX "+ c.x + " CY "+ c.y); + + + Coordinate inC = NsharpWxMath.reverseSkewTXY(world.unMap(c)); + double inPressure = inC.y; + double inTemp = inC.x; + //System.out.println("user inout pt pressure "+ inPressure+ " temp "+inTemp ); + double prevPressure=1000; + double prevT=0, prevD=0; + Coordinate closeptC = new Coordinate(1,1,0); + boolean firstPrevPicked= false; + + /* + * Note: soundingLys list sorted with highest pressure as first element + */ + + for (NcSoundingLayer layer : this.soundingLys) { + double t, d; + t = layer.getTemperature(); + d = layer.getDewpoint(); + double pressure = layer.getPressure(); + if(firstPrevPicked==false){ + // this is to handle the case, if picked point has same pressure (largest pressure) as first layer + firstPrevPicked = true; + prevPressure = pressure; + prevT = t; + prevD = d; + } + //System.out.println(" pressure "+ pressure ); + if( pressure >= 100 && pressure <= inPressure){ + // decide which pressure (layer) should be used. current one or previous one + double disCurrentP = Math.abs(pressure -inPressure ); + double disPreviousP = Math.abs(prevPressure -inPressure ); + double pickedPressure, pickedTemp, pickedDewpoint; + if(disPreviousP <= disCurrentP){ + pickedPressure = prevPressure; + pickedTemp = prevT; + pickedDewpoint = prevD; + if(this.soundingLys.indexOf(layer) == 0) + currentSoundingLayerIndex = this.soundingLys.indexOf(layer); + else + currentSoundingLayerIndex = this.soundingLys.indexOf(layer)-1; + } + else { + pickedPressure = pressure; + pickedTemp = t; + pickedDewpoint = d; + currentSoundingLayerIndex = this.soundingLys.indexOf(layer); + } + //decide which line, temp or dewpoint, closer to user picked point + double disTemp = Math.abs(pickedTemp- inTemp); + double disDew = Math.abs(pickedDewpoint- inTemp); + if(disTemp <= disDew){ + closeptC = NsharpWxMath.getSkewTXY(pickedPressure, pickedTemp); + closeptC = world.map(closeptC); + currentTempCurveType = TEMP_TYPE; + //System.out.println("picked pressure "+ pickedPressure + " temp " +pickedTemp); + } + else { + closeptC = NsharpWxMath.getSkewTXY(pickedPressure, pickedDewpoint); + closeptC = world.map(closeptC); + currentTempCurveType = DEWPOINT_TYPE; + //System.out.println("picked pressure "+ pickedPressure + " dewpoint " +pickedDewpoint); + } + + //System.out.println("currentSoundingLayerIndex P = "+ this.soundingLys.get(currentSoundingLayerIndex).getPressure()); + break; + } + prevPressure = pressure; + prevT = t; + prevD = d; + } + + return closeptC; + } + public void setCursorInSkewT(boolean cursorInSkewT) { + this.cursorInSkewT = cursorInSkewT; + } + public void toggleCurseDisplay() { + curseToggledFontLevel = curseToggledFontLevel + CURSER_FONT_INC_STEP; + if(curseToggledFontLevel > CURSER_STRING_OFF) + curseToggledFontLevel = CURSER_FONT_10; + /*NsharpEditor editor = NsharpEditor.getActiveNsharpEditor(); + if (editor != null) { + editor.refresh(); + }*/ + rscHandler.refreshPane(); + } + + public NsharpSkewTPaneBackground getSkewTBackground() { + return skewTBackground; + } + + public NsharpIcingPaneBackground getIcingBackground() { + return icingBackground; + } + + public NsharpTurbulencePaneBackground getTurbBackground() { + return turbBackground; + } + public NsharpGenericPaneBackground getActiveBackground(){ + if(currentGraphMode == NsharpConstants.GRAPH_SKEWT){ + return skewTBackground; + } + else if(currentGraphMode == NsharpConstants.GRAPH_ICING){ + return icingBackground; + } + else if(currentGraphMode == NsharpConstants.GRAPH_TURB){ + return turbBackground; + } + return null; + } + public void setCurrentGraphMode(int currentGraphMode) { + this.currentGraphMode = currentGraphMode; + rscHandler.getWitoPaneRsc().handleResize(); + } + + public void setPlotInteractiveTemp(boolean plotInteractiveTemp) { + this.plotInteractiveTemp = plotInteractiveTemp; + } + + public void setInteractiveTempPointCoordinate( + Coordinate interactiveTempPointCoordinate) { + this.interactiveTempPointCoordinate = interactiveTempPointCoordinate; + } + + public int getCurrentTempCurveType() { + return currentTempCurveType; + } + + @Override + public void handleResize() { + + super.handleResize(); + IExtent ext = getDescriptor().getRenderableDisplay().getExtent(); + ext.reset(); + //System.out.println("skewtPane: handleResize"); + this.rectangle = new Rectangle((int)ext.getMinX(), (int) ext.getMinY(), + (int) ext.getWidth(), (int) ext.getHeight()); + pe = new PixelExtent(this.rectangle); + getDescriptor().setNewPe(pe); + world = new WGraphics(this.rectangle); + world.setWorldCoordinates(NsharpConstants.left, NsharpConstants.top, + NsharpConstants.right, NsharpConstants.bottom); + float prevHeight = skewtHeight; + float prevWidth = skewtWidth; + skewtXOrig = (int) (ext.getMinX()); + skewtYOrig = (int) ext.getMinY(); + skewtWidth = (int) (ext.getWidth()); + skewtHeight = (int) ext.getHeight(); + skewtXEnd = skewtXOrig+ skewtWidth; + skewtYEnd = skewtYOrig+ skewtHeight; + xRatio = xRatio* skewtWidth/prevWidth; + yRatio = yRatio* skewtHeight/prevHeight; + createRscWireFrameShapes(); + skewTBackground.handleResize(ext); + turbBackground.handleResize(ext); + icingBackground.handleResize(ext); + //System.out.println(descriptor.getPaneNumber()+":calling wito handle resize"); + rscHandler.getWitoPaneRsc().handleResize(); + } + + @Override + public void handleZooming() { + if(heightMarkRscShape!=null) + heightMarkRscShape.dispose(); + createRscHeightMarkShape(); + skewTBackground.handleZooming(); + turbBackground.handleZooming(); + icingBackground.handleZooming(); + rscHandler.getWitoPaneRsc().handleZooming(); + + } + + @Override + protected void adjustFontSize(int canvasW, int canvasH) { + // TODO Auto-generated method stub + super.adjustFontSize(canvasW, canvasH); + //make a bit bigger font10 size for skewT + float font10Size=10; + if(font10!=null){ + font10Size = font10.getFontSize()+1; + font10.dispose(); + } + font10 = target.initializeFont("Monospace", font10Size, null); + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpSkewTPaneResourceData.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpSkewTPaneResourceData.java new file mode 100644 index 0000000000..e4687a432e --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpSkewTPaneResourceData.java @@ -0,0 +1,50 @@ +package gov.noaa.nws.ncep.ui.nsharp.display.rsc; +/** + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/23/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpSkewTPaneDescriptor; + +import com.raytheon.uf.viz.core.drawables.IDescriptor; +import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.uf.viz.core.rsc.AbstractResourceData; +import com.raytheon.uf.viz.core.rsc.AbstractVizResource; +import com.raytheon.uf.viz.core.rsc.LoadProperties; + +public class NsharpSkewTPaneResourceData extends AbstractResourceData { + private NsharpSkewTPaneResource skewtPaneRsc; + @Override + public AbstractVizResource construct(LoadProperties loadProperties, + IDescriptor descriptor) throws VizException { + NsharpSkewTPaneDescriptor desc=(NsharpSkewTPaneDescriptor)descriptor; + //System.out.println("NsharpSkewTPaneResourceData construct called Panes="+desc.getPaneNumber()); + skewtPaneRsc = new NsharpSkewTPaneResource(this, loadProperties, desc); + return skewtPaneRsc; + } + + @Override + public void update(Object updateData) { + // TODO Auto-generated method stub + + } + + @Override + public boolean equals(Object obj) { + // TODO Auto-generated method stub + return false; + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpTimeStnPaneResource.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpTimeStnPaneResource.java new file mode 100644 index 0000000000..2fa9bbc7a9 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpTimeStnPaneResource.java @@ -0,0 +1,499 @@ +package gov.noaa.nws.ncep.ui.nsharp.display.rsc; +/** + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/23/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.NsharpStationStateProperty; +import gov.noaa.nws.ncep.ui.nsharp.NsharpTimeLineStateProperty; +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpAbstractPaneDescriptor; + +import java.awt.geom.Rectangle2D; +import java.util.List; + +import org.eclipse.swt.graphics.RGB; +import org.eclipse.swt.graphics.Rectangle; + +import com.raytheon.uf.viz.core.IExtent; +import com.raytheon.uf.viz.core.IGraphicsTarget; +import com.raytheon.uf.viz.core.IGraphicsTarget.HorizontalAlignment; +import com.raytheon.uf.viz.core.IGraphicsTarget.LineStyle; +import com.raytheon.uf.viz.core.IGraphicsTarget.VerticalAlignment; +import com.raytheon.uf.viz.core.PixelExtent; +import com.raytheon.uf.viz.core.drawables.PaintProperties; +import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.uf.viz.core.rsc.AbstractResourceData; +import com.raytheon.uf.viz.core.rsc.LoadProperties; + +public class NsharpTimeStnPaneResource extends NsharpAbstractPaneResource{ + private Rectangle timeLineRectangle; + private Rectangle stnIdRectangle; + private Rectangle colorNoteRectangle; + private List timeLineStateList; + private List stnStateList; + private int curTimeLinePage=1; + private int curStnIdPage=1; + private int totalTimeLinePage=1; + private int totalStnIdPage=1; + private int paneWidth = NsharpConstants.TIMESTN_PANE_REC_WIDTH; + private int paneHeight = NsharpConstants.TIMESTN_PANE_REC_HEIGHT; + private int dtXOrig = NsharpConstants.DATA_TIMELINE_X_ORIG; + private int dtYOrig = NsharpConstants.DATA_TIMELINE_Y_ORIG; + private int dtXEnd = NsharpConstants.DATA_TIMELINE_X_END; + private int dtWidth = NsharpConstants.DATA_TIMELINE_WIDTH; + private int dtHeight = NsharpConstants.DATA_TIMELINE_HEIGHT; + private int dtNextPageEnd = NsharpConstants.DATA_TIMELINE_NEXT_PAGE_END_; + private int charHeight = NsharpConstants.CHAR_HEIGHT_; + private int stnXOrig = NsharpConstants.STATION_ID_X_ORIG; + private int stnYOrig = NsharpConstants.STATION_ID_Y_ORIG; + private int stnXEnd = NsharpConstants.STATION_ID_X_END; + private int stnWidth = NsharpConstants.STATION_ID_WIDTH; + private int stnHeight = NsharpConstants.STATION_ID_HEIGHT; + private int cnXOrig = NsharpConstants.COLOR_NOTATION_X_ORIG; + private int cnYOrig = NsharpConstants.COLOR_NOTATION_Y_ORIG; + private int cnXEnd = NsharpConstants.COLOR_NOTATION_X_END; + private int cnWidth = NsharpConstants.COLOR_NOTATION_WIDTH; + private int cnHeight = NsharpConstants.COLOR_NOTATION_HEIGHT; + private float xRatio=1; + private float yRatio=1; + public NsharpTimeStnPaneResource(AbstractResourceData resourceData, + LoadProperties loadProperties, NsharpAbstractPaneDescriptor desc) { + super(resourceData, loadProperties, desc); + + timeLineRectangle = new Rectangle(dtXOrig,dtYOrig, + dtWidth,dtHeight); + stnIdRectangle = new Rectangle(stnXOrig,stnYOrig, + stnWidth,stnHeight); + colorNoteRectangle = new Rectangle(cnXOrig,cnYOrig, + cnWidth,cnHeight); + } + + + + @SuppressWarnings("deprecation") + private void drawNsharpTimelineTitle(IGraphicsTarget target) throws VizException { + String s = timeLineStateList.size() + " time lines"; + double x = dtXOrig; + double y = dtYOrig-25*yRatio; + + target.drawString(font10, s, x, + y, 0.0, + IGraphicsTarget.TextStyle.NORMAL, + NsharpConstants.color_white, + HorizontalAlignment.LEFT, + VerticalAlignment.MIDDLE, null); + y = y+charHeight; + s = "page " + curTimeLinePage+"/"+totalTimeLinePage; + target.drawString(font10, s, x, + y, 0.0, + IGraphicsTarget.TextStyle.NORMAL, + NsharpConstants.color_green, + HorizontalAlignment.LEFT, + VerticalAlignment.MIDDLE, null); + } + @SuppressWarnings("deprecation") + private void drawNsharpStationIdTitle(IGraphicsTarget target) throws VizException { + //darw title first + String s; + s = stnStateList.size() + " stations"; + double x = stnXOrig; + double y = stnYOrig - 25*yRatio; + + target.drawString(font10, s, x, + y, 0.0, + IGraphicsTarget.TextStyle.NORMAL, + NsharpConstants.color_white, + HorizontalAlignment.LEFT, + VerticalAlignment.MIDDLE, null); + y = y+charHeight; + s = "page " + curStnIdPage+"/"+totalStnIdPage; + target.drawString(font10, s, x, + y, 0.0, + IGraphicsTarget.TextStyle.NORMAL, + NsharpConstants.color_green, + HorizontalAlignment.LEFT, + VerticalAlignment.MIDDLE, null); + + } + + @SuppressWarnings("deprecation") + private void drawNsharpColorNotation(IGraphicsTarget target, Rectangle rect) throws VizException { + PixelExtent extent = new PixelExtent(rect); + RGB color; + target.setupClippingPlane(extent); + target.drawRect(extent,NsharpConstants.backgroundColor, 1.0f, 1.0f); + //plot notations: + + double x = cnXOrig+5*xRatio; + double y = cnYOrig+charHeight; + double xGap = paneWidth/3*xRatio; + color = NsharpConstants.color_white; + target.drawString(font10, "TimeLine/Station State Color Notations:", x, + y, 0.0, + IGraphicsTarget.TextStyle.NORMAL, + color, + HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + + y=y+charHeight; + color = NsharpConstants.color_green; + target.drawString(font10, "Current:green", x, + y, 0.0, + IGraphicsTarget.TextStyle.NORMAL, + color, + HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + + //x = x+xGap; + y=y+charHeight; + color = NsharpConstants.color_yellow; + target.drawString(font10, "Active:yellow", x, + y, 0.0, + IGraphicsTarget.TextStyle.NORMAL, + color, + HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + + + //x = x+xGap; + y=y+charHeight; + color = NsharpConstants.color_white; + target.drawString(font10, "InActive:white", x, + y, 0.0, + IGraphicsTarget.TextStyle.NORMAL, + color, + HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + + //x = cnXOrig+5*xRatio; + //y=y+25*yRatio; + y=y+charHeight; + color = NsharpConstants.color_white; + target.drawString(font10, "TimeLine/Station Data Loading Status:", x, + y, 0.0, + IGraphicsTarget.TextStyle.NORMAL, + color, + HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + + //x = cnXOrig+5*xRatio; + y=y+charHeight; + color = NsharpConstants.color_red; + target.drawString(font10, "* :Data Loaded", x, + y, 0.0, + IGraphicsTarget.TextStyle.NORMAL, + color, + HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + + y=y+charHeight; + color = NsharpConstants.color_cyan; + target.drawString(font10, "* :Data Not Loaded", x, + y, 0.0, + IGraphicsTarget.TextStyle.NORMAL, + color, + HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + + target.clearClippingPlane(); + + } + @SuppressWarnings("deprecation") + private void drawNsharpTimelinBox(IGraphicsTarget target, Rectangle rect) throws VizException { + PixelExtent extent = new PixelExtent(rect); + target.setupClippingPlane(extent); + target.drawRect(extent,NsharpConstants.backgroundColor, 1.0f, 1.0f); + //System.out.println("drawNsharpDataTimelines picked stn info: "+ pickedStnInfoStr); + double x = dtXOrig + 5;//, x1 ; + double nextPageY = dtNextPageEnd;//DATA_TIMELINE_Y_ORIG + charHeight; + RGB color = NsharpConstants.color_yellow; + String s = "nextPage"; + target.drawString(font10, s, x, + nextPageY, 0.0, + IGraphicsTarget.TextStyle.NORMAL, + color, + HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + target.drawLine(dtXOrig, nextPageY, 0.0, + dtXEnd , nextPageY, 0.0, + NsharpConstants.color_white,1, LineStyle.SOLID); + + + int numTimeLineToShowPerPage = (cnYOrig-dtNextPageEnd)/charHeight; + int startIndex = (curTimeLinePage-1) * numTimeLineToShowPerPage; + int i = 1; + if(timeLineStateList!= null){ + int compIndex= 1; + int colorIndex; + boolean compareTmIsOn = rscHandler.isCompareTmIsOn(); + int currentStnStateListIndex = rscHandler.getCurrentStnStateListIndex(); + int currentTimeLineStateListIndex = rscHandler.getCurrentTimeLineStateListIndex(); + for (int j = startIndex; j< timeLineStateList.size(); j++) + { + boolean avail=false; + NsharpTimeLineStateProperty elm = timeLineStateList.get(j); + NsharpConstants.State sta = elm.getTimeState(); + double ly = dtNextPageEnd + charHeight * i; + if(sta == NsharpConstants.State.ACTIVE && j == currentTimeLineStateListIndex) + sta = NsharpConstants.State.CURRENT; + if(currentStnStateListIndex>=0){ + + + if ( rscHandler.getStnTimeTable().get(currentStnStateListIndex).get(j).elementState == NsharpConstants.State.AVAIL ){ + avail = true; + } + if(avail){ + color = NsharpConstants.color_red; + s = "*"; + } + else { + color = NsharpConstants.color_cyan; + s = "*"; + } + //System.out.println("selectedTimeList: "+ s); + + target.drawString(font10, s, x, + ly, 0.0, + IGraphicsTarget.TextStyle.NORMAL, + color, + HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + } + + color = rscHandler.getElementColorMap().get(sta); + s = elm.timeDescription; + target.drawString(font10, s, x+10, + ly, 0.0, + IGraphicsTarget.TextStyle.NORMAL, + color, + HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + Rectangle2D bd = target.getStringBounds(font10, s); + i++; + if(compareTmIsOn && elm.timeState == NsharpConstants.State.ACTIVE && avail){ + colorIndex = (compIndex-1)%(NsharpConstants.LINE_COMP10-NsharpConstants.LINE_COMP1+1)+ NsharpConstants.LINE_COMP1; + s ="Cp "+ compIndex; + target.drawString(font10,s, x+bd.getWidth()+15, + ly, 0.0, + IGraphicsTarget.TextStyle.NORMAL, + linePropertyMap.get(NsharpConstants.lineNameArray[colorIndex]).getLineColor(), + HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + compIndex++; + } + if (ly >= cnYOrig-charHeight) + //we dont show time line that extends below time line box + break; + } + } + + + } + @SuppressWarnings("deprecation") + private void drawNsharpStationIdBox(IGraphicsTarget target, Rectangle rect) throws VizException { + PixelExtent extent = new PixelExtent(rect); + target.setupClippingPlane(extent); + target.drawRect(extent,NsharpConstants.backgroundColor, 1.0f, 1.0f); + double x= stnXOrig + 5; + double nextPageY = dtNextPageEnd; + RGB color = NsharpConstants.color_yellow; + String s = "nextPage"; + target.drawString(font10, s, x, + nextPageY, 0.0, + IGraphicsTarget.TextStyle.NORMAL, + color, + HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + target.drawLine(stnXOrig, nextPageY, 0.0, + stnXEnd , nextPageY, 0.0, + NsharpConstants.color_white,1, LineStyle.SOLID); + + + int numStnToShow = (cnYOrig-dtNextPageEnd)/charHeight; + int startIndex = (rscHandler.getCurStnIdPage()-1) * numStnToShow; + int i = 1; + int compIndex= 1; + int colorIndex; + boolean compareStnIsOn = rscHandler.isCompareStnIsOn(); + int currentStnStateListIndex = rscHandler.getCurrentStnStateListIndex(); + int currentTimeLineStateListIndex = rscHandler.getCurrentTimeLineStateListIndex(); + + for (int j = startIndex; j< stnStateList.size(); j++) + { + boolean avail=false; + NsharpStationStateProperty elm = stnStateList.get(j); + NsharpConstants.State sta ; + if(elm.stnState == NsharpConstants.State.ACTIVE && j == currentStnStateListIndex) + sta = NsharpConstants.State.CURRENT; + else + sta = elm.stnState; // set its state based on stn state + + double ly = dtNextPageEnd + charHeight * i; + if (currentTimeLineStateListIndex>=0){ + if(rscHandler.getStnTimeTable().get(j).get(currentTimeLineStateListIndex).elementState == NsharpConstants.State.AVAIL ){ + avail =true; + } + if(avail){ + color = NsharpConstants.color_red; + s = "*"; + } + else { + color = NsharpConstants.color_cyan; + s = "*"; + } + //System.out.println("selectedTimeList: "+ s); + + target.drawString(font10, s, x, + ly, 0.0, + IGraphicsTarget.TextStyle.NORMAL, + color, + HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + } + + String stnId = elm.stnDescription; + + color = rscHandler.getElementColorMap().get(sta); + target.drawString(font10, stnId, x+10, + ly, 0.0, + IGraphicsTarget.TextStyle.NORMAL, + color, + HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + if(compareStnIsOn && elm.stnState == NsharpConstants.State.ACTIVE && avail){ + Rectangle2D bd = target.getStringBounds(font10, stnId); + colorIndex = (compIndex-1)%(NsharpConstants.LINE_COMP10-NsharpConstants.LINE_COMP1+1)+ NsharpConstants.LINE_COMP1; + s ="Cp "+ compIndex; + target.drawString(font10,s, x+bd.getWidth()+25, + ly, 0.0, + IGraphicsTarget.TextStyle.NORMAL, + linePropertyMap.get(NsharpConstants.lineNameArray[colorIndex]).getLineColor(), + HorizontalAlignment.LEFT, + VerticalAlignment.BOTTOM, null); + compIndex++; + + }//else if(compareTmIsOn){ + //anything to do? + //} + + + i++; + if (ly >= cnYOrig-charHeight) + //we dont show stn id that extends below box + break; + } + } + + @Override + protected void paintInternal(IGraphicsTarget target, + PaintProperties paintProps) throws VizException { + super.paintInternal(target, paintProps); + if(rscHandler== null) + return; + timeLineStateList = rscHandler.getTimeLineStateList(); //System.out.println("NsharpTimeStnPaneResource "+ descriptor.getPaneNumber()); + stnStateList = rscHandler.getStnStateList(); + curTimeLinePage = rscHandler.getCurTimeLinePage(); + curStnIdPage = rscHandler.getCurStnIdPage(); + totalTimeLinePage = rscHandler.getTotalTimeLinePage(); + totalStnIdPage = rscHandler.getTotalStnIdPage(); + this.font10.setSmoothing(false); + this.font10.setScaleFont(false); + this.font9.setSmoothing(false); + this.font9.setScaleFont(false); + this.font12.setSmoothing(false); + this.font12.setScaleFont(false); + + //data time title + drawNsharpTimelineTitle(target); + drawNsharpStationIdTitle(target); + + + //plot data time line + drawNsharpTimelinBox(target, timeLineRectangle); + + //plot station id + drawNsharpStationIdBox(target, stnIdRectangle); + + //plot color notations + drawNsharpColorNotation(target, colorNoteRectangle ); + + } + + @Override + protected void initInternal(IGraphicsTarget target) throws VizException { + super.initInternal(target); + currentCanvasBoundWidth = NsharpConstants.TIMESTN_PANE_REC_WIDTH; + currentCanvasBoundHeight = NsharpConstants.TIMESTN_PANE_REC_HEIGHT; + myDefaultCanvasWidth = NsharpConstants.TIMESTN_PANE_REC_WIDTH; + myDefaultCanvasHeight = NsharpConstants.TIMESTN_PANE_REC_HEIGHT; + } + @Override + protected void disposeInternal() { + + super.disposeInternal(); + } + public Rectangle getTimeLineRectangle() { + return timeLineRectangle; + } + public Rectangle getStnIdRectangle() { + return stnIdRectangle; + } + public Rectangle getColorNoteRectangle() { + return colorNoteRectangle; + } + @Override + public void handleResize() { + + super.handleResize(); + IExtent ext = getDescriptor().getRenderableDisplay().getExtent(); + ext.reset(); + float prevHeight = paneHeight; + float prevWidth = paneWidth; + paneHeight = (int) ext.getHeight(); + paneWidth = (int) (ext.getWidth()); + xRatio = xRatio* paneWidth/prevWidth; + yRatio = yRatio* paneHeight/prevHeight; + charHeight = (int)(NsharpConstants.CHAR_HEIGHT_*yRatio); + dtXOrig = (int) (ext.getMinX()); + dtYOrig = (int) ext.getMinY()+(int)( NsharpConstants.DATA_TIMELINE_Y_ORIG*yRatio); + dtWidth = paneWidth/2; + dtXEnd = dtXOrig + dtWidth; + cnHeight = (int)(NsharpConstants.COLOR_NOTATION_HEIGHT*yRatio); + dtHeight = paneHeight-dtYOrig-cnHeight; + dtNextPageEnd = dtYOrig+ charHeight; + stnXOrig = dtXEnd; + stnYOrig = dtYOrig; + stnWidth = dtWidth; + stnXEnd = stnXOrig+ stnWidth; + stnHeight = dtHeight; + cnXOrig = dtXOrig; + cnYOrig = dtYOrig+ dtHeight; + cnWidth = paneWidth; + cnXEnd = cnXOrig+cnWidth; + timeLineRectangle = new Rectangle(dtXOrig,dtYOrig, + dtWidth,dtHeight); + stnIdRectangle = new Rectangle(stnXOrig,stnYOrig, + stnWidth,stnHeight); + colorNoteRectangle = new Rectangle(cnXOrig,cnYOrig, + cnWidth,cnHeight); + rscHandler.setDtNextPageEnd(dtNextPageEnd); + rscHandler.setDtYOrig(dtYOrig); + rscHandler.setCnYOrig(cnYOrig); + rscHandler.setCharHeight(charHeight); + + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpTimeStnPaneResourceData.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpTimeStnPaneResourceData.java new file mode 100644 index 0000000000..3aa4075e63 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpTimeStnPaneResourceData.java @@ -0,0 +1,51 @@ +package gov.noaa.nws.ncep.ui.nsharp.display.rsc; +/** + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/23/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpAbstractPaneDescriptor; + +import com.raytheon.uf.viz.core.drawables.IDescriptor; +import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.uf.viz.core.rsc.AbstractResourceData; +import com.raytheon.uf.viz.core.rsc.AbstractVizResource; +import com.raytheon.uf.viz.core.rsc.LoadProperties; + +public class NsharpTimeStnPaneResourceData extends AbstractResourceData { + + @Override + public AbstractVizResource construct(LoadProperties loadProperties, + IDescriptor descriptor) throws VizException { + NsharpAbstractPaneDescriptor desc=(NsharpAbstractPaneDescriptor)descriptor; + //System.out.println("NsharpTimeStnPaneResourceData construct called Panes="+desc.getPaneNumber()); + return new NsharpTimeStnPaneResource(this, loadProperties, desc); + + } + + @Override + public void update(Object updateData) { + // TODO Auto-generated method stub + + } + + @Override + public boolean equals(Object obj) { + // TODO Auto-generated method stub + return false; + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpWitoPaneResource.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpWitoPaneResource.java new file mode 100644 index 0000000000..3e838e78b5 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpWitoPaneResource.java @@ -0,0 +1,554 @@ +package gov.noaa.nws.ncep.ui.nsharp.display.rsc; +/** + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/23/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + +import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingLayer; +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.NsharpShapeAndLineProperty; +import gov.noaa.nws.ncep.ui.nsharp.background.NsharpGenericPaneBackground; +import gov.noaa.nws.ncep.ui.nsharp.background.NsharpGenericPaneBackground.ViewablePressureContainer; +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpAbstractPaneDescriptor; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpNativeConstants; +import gov.noaa.nws.ncep.ui.nsharp.view.NsharpLoadDialog; + +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.swt.graphics.Rectangle; + +import com.raytheon.uf.common.time.DataTime; +import com.raytheon.uf.viz.core.IExtent; +import com.raytheon.uf.viz.core.IGraphicsTarget; +import com.raytheon.uf.viz.core.IGraphicsTarget.LineStyle; +import com.raytheon.uf.viz.core.PixelExtent; +import com.raytheon.uf.viz.core.drawables.IWireframeShape; +import com.raytheon.uf.viz.core.drawables.PaintProperties; +import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.uf.viz.core.rsc.AbstractResourceData; +import com.raytheon.uf.viz.core.rsc.LoadProperties; +import com.raytheon.viz.core.graphing.WGraphics; +import com.sun.jna.ptr.FloatByReference; + +public class NsharpWitoPaneResource extends NsharpAbstractPaneResource{ + private float xMagFactor=1.0f; + private float yMagFactor=1.0f; + private int omegaXOrig = NsharpConstants.OMEGA_X_ORIG; + private int omegaYOrig = NsharpConstants.OMEGA_Y_ORIG; + private int omegaWidth = NsharpConstants.OMEGA_WIDTH; + private int omegaHeight = NsharpConstants.OMEGA_HEIGHT; + private int omegaYEnd = NsharpConstants.OMEGA_Y_END; + private int omegaMF = NsharpConstants.OMEGA_MAGNIFICATION_FACTOR; + private int windBoxXOrig = NsharpConstants.WIND_BX_X_ORIG; + private int windBoxYOrig = NsharpConstants.WIND_BX_Y_ORIG; + private int windBoxWidth = NsharpConstants.WIND_BX_WIDTH; + private int windBoxHeight = NsharpConstants.WIND_BX_HEIGHT; + private int windBoxYEnd = windBoxYOrig + windBoxHeight; + private int verticalWindXOrig = NsharpConstants.VRTCAL_WIND_X_ORIG; + private int verticalWindYOrig = NsharpConstants.VRTCAL_WIND_Y_ORIG; + private int verticalWindWidth = NsharpConstants.VRTCAL_WIND_WIDTH; + private int verticalWindHeight = NsharpConstants.VRTCAL_WIND_HEIGHT; + private int verticalWindYEnd = NsharpConstants.VRTCAL_WIND_Y_END; + private int witoPanewidth = NsharpConstants.WITO_PANE_REC_WIDTH; + private int witoPaneHeight = NsharpConstants.WITO_PANE_REC_HEIGHT; + private IWireframeShape omegaBkgShape = null; + private IWireframeShape windBoxBkgShape = null; + private IWireframeShape omegaRscShape=null; + private IWireframeShape verticalWindLabelShape = null; + private IWireframeShape verticalWindSbShape = null; + private IWireframeShape verticalWindRShape = null; + private ListwindBoxWindRscShapeList = new ArrayList(); + private ViewablePressureContainer vpc=null; + private ViewablePressureContainer vplc=null; + public NsharpWitoPaneResource(AbstractResourceData resourceData, + LoadProperties loadProperties, NsharpAbstractPaneDescriptor desc) { + super(resourceData, loadProperties, desc); + this.dataTimes = new ArrayList(); + } + + @Override + protected void disposeInternal() { + disposeAllWireFrameShapes(); + windBoxWindRscShapeList=null; + super.disposeInternal(); + } + @SuppressWarnings("deprecation") + @Override + protected void paintInternal(IGraphicsTarget target, + PaintProperties paintProps) throws VizException { + //System.out.println("NsharpWitoPaneResource paintInternal called! I am pane #"+ descriptor.getPaneNumber()); + //double X = windBoxXOrig; + //double Y = 80; + super.paintInternal(target, paintProps); + if(rscHandler== null) + return; + if(soundingLys!= null){ + + this.font10.setSmoothing(false); + this.font10.setScaleFont(false); + this.font9.setSmoothing(false); + this.font9.setScaleFont(false); + this.font12.setSmoothing(false); + this.font12.setScaleFont(false); + PixelExtent extent = new PixelExtent(new Rectangle(omegaXOrig,omegaYOrig, + omegaWidth,omegaHeight)); + + target.drawRect(extent, NsharpConstants.backgroundColor, 1.0f, 1.0f); + target.drawWireframeShape(omegaBkgShape, NsharpConstants.color_violet_red, commonLinewidth, + LineStyle.DASHED,font10); + if(graphConfigProperty != null ){ + + if(graphConfigProperty.isOmega() == true){ + if(NsharpLoadDialog.getAccess()!= null && + (NsharpLoadDialog.getAccess().getActiveLoadSoundingType()== NsharpLoadDialog.MODEL_SND || + NsharpLoadDialog.getAccess().getActiveLoadSoundingType()== NsharpLoadDialog.PFC_SND )){ + //plot omega + target.drawWireframeShape(omegaRscShape, NsharpConstants.color_cyan, commonLinewidth, + commonLineStyle,font10); + } + } + } + else{ + //by default, draw everything + if(NsharpLoadDialog.getAccess()!= null && + (NsharpLoadDialog.getAccess().getActiveLoadSoundingType()== NsharpLoadDialog.MODEL_SND || + NsharpLoadDialog.getAccess().getActiveLoadSoundingType()== NsharpLoadDialog.PFC_SND )){ + //plot omega + target.drawWireframeShape(omegaRscShape, NsharpConstants.color_cyan, commonLinewidth, + commonLineStyle,font10); + } + } + //target.clearClippingPlane(); + + //wind box background and wind + + extent = new PixelExtent(new Rectangle(windBoxXOrig,windBoxYOrig, + windBoxWidth,windBoxHeight)); + //target.setupClippingPlane(extent); + target.drawRect(extent, NsharpConstants.backgroundColor, 1.0f, 1.0f); + target.drawWireframeShape(windBoxBkgShape, NsharpConstants.color_white, + 0.5F, LineStyle.DOTS, font10); + for(NsharpShapeAndLineProperty shapeNColor: windBoxWindRscShapeList){ + target.drawWireframeShape(shapeNColor.getShape(), shapeNColor.getLp().getLineColor(), commonLinewidth,commonLineStyle,font10); + } + + //plot vertical wind profile (advection layer) + + extent = new PixelExtent(new Rectangle(verticalWindXOrig,verticalWindYOrig, + verticalWindWidth,verticalWindHeight)); + target.setupClippingPlane(extent); + target.drawRect(extent, NsharpConstants.backgroundColor, 1.0f, 1.0f); + float x1 = verticalWindXOrig+ (verticalWindWidth/2); + target.drawLine(x1, verticalWindYOrig, 0, x1, verticalWindYOrig+verticalWindHeight, 0, + NsharpConstants.color_white, 1, LineStyle.DASHED); + target.drawWireframeShape(verticalWindLabelShape, NsharpConstants.color_white, + 0.3F, commonLineStyle,font10); + target.drawWireframeShape(verticalWindRShape, NsharpConstants.color_red, + 0.3F, commonLineStyle,font10); + target.drawWireframeShape(verticalWindSbShape, NsharpConstants.color_skyblue, + 0.3F, commonLineStyle,font10); + target.clearClippingPlane(); + } + } + + @Override + protected void initInternal(IGraphicsTarget target) throws VizException { + super.initInternal(target); + currentCanvasBoundWidth = witoPanewidth; + currentCanvasBoundHeight = witoPaneHeight; + myDefaultCanvasWidth = witoPanewidth; + myDefaultCanvasHeight = witoPaneHeight; + //System.out.print("NsharpWitoPaneResource ::: initInternal entered!!!!!\n"); + this.rectangle = new Rectangle(windBoxXOrig, windBoxYOrig, + witoPanewidth, witoPaneHeight); + pe = new PixelExtent(this.rectangle); + world = new WGraphics(this.rectangle); + + world.setWorldCoordinates(NsharpConstants.left, NsharpConstants.top, + NsharpConstants.right, NsharpConstants.bottom); + + + createAllWireFrameShapes(); + } + + private void createBkgWindBoxShape(){ + windBoxBkgShape = target.createWireframeShape(false,descriptor ); + windBoxBkgShape.allocate(30); + double xOri = windBoxXOrig; + double yOri = windBoxYOrig; + //int tickLength = 5; + //double [][] lines = {{xOri - tickLength, yOri},{xOri+windBoxWidth, yOri}}; + double [][] lines = {{0,0},{0,0}}; + windBoxBkgShape.addLineSegment(lines); + //double [][] lines1 = {{xOri - tickLength, yOri + windBoxHeight},{xOri+windBoxWidth, yOri+ windBoxHeight}}; + //windBoxBkgShape.addLineSegment(lines1); + double [] lblXy = {xOri+windBoxWidth/2, yOri+20*yMagFactor}; + windBoxBkgShape.addLabel("wind(kt) ", lblXy); + double [] lblXy1 = {xOri+windBoxWidth/2, yOri+35*yMagFactor}; + windBoxBkgShape.addLabel("vs Ht ", lblXy1); + // draw wind speed vs height box + double xtemp; + for (int i = 20; i < 140 ; i= i+20){ + xtemp = xOri + (windBoxWidth/7.0f) * (i /20); + double [][] lines2 = {{xtemp, yOri},{xtemp, yOri+windBoxHeight-2}}; + windBoxBkgShape.addLineSegment(lines2); + if( (i==20) || (i==60) || (i==100)){ + double [] lblXy2 = {xtemp, yOri+windBoxHeight-2}; + windBoxBkgShape.addLabel(String.format("%d",i), lblXy2); + } + + } + windBoxBkgShape.compile(); + } + private void createBkgOmegaShape(){ + //draw label and vertical lines + omegaBkgShape = target.createWireframeShape(false,descriptor ); + + omegaBkgShape.allocate(6); + //we dont really care about temp, as we use pressure for Y axis. + // For X-axis, we will convert it proportionally. + //left dash line, +1 omega line (distance from center line = -1* omegaMF) + double [][] lines = {{omegaXOrig+omegaWidth/2-omegaMF, omegaYOrig},{omegaXOrig+omegaWidth/2-omegaMF, omegaYEnd}}; + omegaBkgShape.addLineSegment(lines); + //center line + double [][] lines1 = {{omegaXOrig+omegaWidth/2, omegaYOrig},{omegaXOrig+omegaWidth/2, omegaYEnd}}; + omegaBkgShape.addLineSegment(lines1); + //right dash line, -1 omega line (distance from center line = +1* omegaMF) + double [][] lines2 = {{omegaXOrig+omegaWidth/2+omegaMF, omegaYOrig},{omegaXOrig+omegaWidth/2+omegaMF, omegaYEnd}}; + omegaBkgShape.addLineSegment(lines2); + double [] lblXy = {omegaXOrig+omegaWidth/2, omegaYOrig+10*yMagFactor}; + omegaBkgShape.addLabel("+1 OMEGA -1", lblXy); + //double [] lblXy1 = {omegaXOrig+15*xMagFactor, omegaYOrig+20*yMagFactor}; + //omegaBkgShape.addLabel("+1", lblXy1); + //double [] lblXy2 = {omegaXOrig+(omegaWidth/3)*xMagFactor, omegaYOrig+20*yMagFactor}; + //omegaBkgShape.addLabel("-1", lblXy2); + omegaBkgShape.compile(); + + } + private void createRscOmegaShape(){ + + omegaRscShape = target.createWireframeShape(false,descriptor ); + omegaRscShape.allocate(soundingLys.size() * 2); + float p, omega; + double myYViewRange = omegaYEnd- omegaYOrig; + for (NcSoundingLayer layer : this.soundingLys) { + p = layer.getPressure(); + if(vpc!=null && vpc.getPyMap().get(p)!= null && layer.getOmega() > -999){ + omega = layer.getOmega()* -omegaMF; + //axis is for negative omega, therefore, times "-" sign. + float yRatio = vpc.getPyMap().get(p); + double omegaY = myYViewRange * yRatio + omegaYOrig; + double [][] lines = {{omegaXOrig+omegaWidth/2, omegaY},{omegaXOrig+omegaWidth/2 + omega, omegaY}}; + omegaRscShape.addLineSegment(lines); + } + } + omegaRscShape.compile(); + } + private void createRscWindBoxWindShape(){ + double windBoxX = windBoxXOrig; + double windBoxY; + float xRatio = ((float)windBoxWidth) / 140.00F; + NsharpShapeAndLineProperty shNcolor = new NsharpShapeAndLineProperty(); + shNcolor.setShape(target.createWireframeShape(false,descriptor )); + IWireframeShape shapeR = shNcolor.getShape(); + shapeR.allocate(soundingLys.size()*2); + shNcolor.getLp().setLineColor(NsharpConstants.color_red); + windBoxWindRscShapeList.add(shNcolor); + shNcolor = new NsharpShapeAndLineProperty(); + shNcolor.setShape(target.createWireframeShape(false,descriptor) ); + IWireframeShape shapeG= shNcolor.getShape(); + shapeG.allocate(soundingLys.size()*2); + shNcolor.getLp().setLineColor(NsharpConstants.color_green); + windBoxWindRscShapeList.add(shNcolor); + shNcolor = new NsharpShapeAndLineProperty(); + shNcolor.setShape(target.createWireframeShape(false,descriptor) ); + IWireframeShape shapeY= shNcolor.getShape(); + shapeY.allocate(soundingLys.size()*2); + shNcolor.getLp().setLineColor(NsharpConstants.color_yellow); + windBoxWindRscShapeList.add(shNcolor); + shNcolor = new NsharpShapeAndLineProperty(); + shNcolor.setShape(target.createWireframeShape(false,descriptor) ); + IWireframeShape shapeC= shNcolor.getShape(); + shapeC.allocate(soundingLys.size()*2); + shNcolor.getLp().setLineColor(NsharpConstants.color_cyan); + windBoxWindRscShapeList.add(shNcolor); + shNcolor = new NsharpShapeAndLineProperty(); + shNcolor.setShape(target.createWireframeShape(false,descriptor) ); + IWireframeShape shapeV = shNcolor.getShape(); + shapeV.allocate(soundingLys.size()*2); + shNcolor.getLp().setLineColor(NsharpConstants.color_violet); + windBoxWindRscShapeList.add(shNcolor); + + shNcolor = new NsharpShapeAndLineProperty(); + shNcolor.setShape(target.createWireframeShape(true,descriptor) ); + IWireframeShape shapePline= shNcolor.getShape(); + shapePline.allocate(NsharpConstants.PRESSURE_MARK_LEVELS.length*2); + shNcolor.getLp().setLineColor(NsharpConstants.pressureColor); + windBoxWindRscShapeList.add(shNcolor); + + //System.out.println("my wolrd minvY="+ myYViewMin+ " maxVY="+myYViewMax+ " YRange="+myYViewRange); + for (NcSoundingLayer layer : soundingLys) { + float pressure = layer.getPressure(); + if(vpc!=null && vpc.getPyMap().get(pressure)!= null){ + float spd = layer.getWindSpeed(); + if ( spd < 0 ) { + continue; + } + if(spd > 140) + spd = 140; + + float yRatio = vpc.getPyMap().get(pressure); + windBoxY = windBoxHeight * yRatio + windBoxYOrig; + //System.out.println("Wind p="+pressure+" yP="+ windBoxY+ " ratio="+yRatio); + float geoHt = layer.getGeoHeight(); + double [][] lines = {{windBoxX, windBoxY},{windBoxX + (spd) * xRatio,windBoxY}}; + if(geoHt 140) + spd = 140; + } + } + for (float pressure = (float)NsharpConstants.MIN_PRESSURE+100;pressure <= (float)NsharpConstants.MAX_PRESSURE; pressure=pressure+100) { + + if(vplc!=null && vplc.getPyMap().get(pressure)!= null){ + float yRatio = vplc.getPyMap().get(pressure); + windBoxY = windBoxHeight * yRatio + windBoxYOrig; + double [][] lines = {{windBoxX, windBoxY},{windBoxX + witoPanewidth,windBoxY}}; + shapePline.addLineSegment(lines); + //System.out.println("Line p="+pressure+" yP="+ windBoxY+ " ratio="+yRatio + " ymin="+windBoxYOrig+ " yend="+windBoxYEnd); + } + } + shapeR.compile(); + shapeG.compile(); + shapeY.compile(); + shapeV.compile(); + shapeC.compile(); + shapePline.compile(); + } + /* + * Chin:: NOTE::: + * This plotting function is based on the algorithm of plot_advectionprofile() at xwvid5.c of Bignsharp source code + * + */ + private void createRscVerticalWindShape(){ + //double origX = verticalWindXOrig; + double y1, y2, x1,x2;//,origY; + //float xRatio = ((float)windBoxWidth) / 140.00F; + verticalWindLabelShape = target.createWireframeShape(false,descriptor ); + verticalWindLabelShape.allocate(2); + // add a virtual line to make wire frame shape worked when there is only strings in shape + double [][] lines = {{0, 0},{0,0}}; + verticalWindLabelShape.addLineSegment(lines); + double [] lblXy = { verticalWindXOrig+verticalWindWidth/2, verticalWindYOrig+20*yMagFactor}; + verticalWindLabelShape.addLabel("Inferred Temp", lblXy); + double [] lblXy1 = { verticalWindXOrig+verticalWindWidth/2, verticalWindYOrig+35*yMagFactor}; + verticalWindLabelShape.addLabel("Advection", lblXy1); + double [] lblXy2 = { verticalWindXOrig+verticalWindWidth/2, verticalWindYOrig+55*yMagFactor}; + verticalWindLabelShape.addLabel("(C/hr)", lblXy2); + + verticalWindSbShape = target.createWireframeShape(false,descriptor ); + verticalWindSbShape.allocate(72); + verticalWindRShape = target.createWireframeShape(false,descriptor ); + verticalWindRShape.allocate(72); + FloatByReference dummy1= new FloatByReference(-999); + FloatByReference dummy2= new FloatByReference(-999); + FloatByReference Surfpressure = new FloatByReference(-999); + nsharpNative.nsharpLib.get_surface(Surfpressure, dummy1, dummy2); + NsharpGenericPaneBackground skewtBgd = rscHandler.getSkewtPaneRsc().getActiveBackground(); + if(skewtBgd!=null){ + //float vpMax = (float)skewtBgd.getViewableMaxPressure(); + float vpMin = (float)skewtBgd.getViewableMinPressure(); + + if(nsharpNative.nsharpLib.qc(Surfpressure.getValue()) == 1) { + float advt; + x1 = verticalWindXOrig+ (verticalWindWidth/2); + double myYViewMin = verticalWindYOrig; + double myYViewMax = verticalWindYEnd; + double myYViewRange = myYViewMax- myYViewMin; + for (float pressure=Surfpressure.getValue(); pressure>=200; pressure-=100) { + advt = nsharpNative.nsharpLib.advection_layer(dummy1, pressure, pressure - 100); + //System.out.println("advt="+advt); + if(advt <= NsharpNativeConstants.NSHARP_LEGACY_LIB_INVALID_DATA) + continue; + double pYRatio1 = skewtBgd.getYPositionRatioByPressure(pressure); + float p2 = pressure-100; + if(p2 < vpMin) + p2 = vpMin; + double pYRatio2 = skewtBgd.getYPositionRatioByPressure(p2); + y1 = myYViewRange * pYRatio1 + myYViewMin; + y2 = myYViewRange * pYRatio2 + myYViewMin; + + x2 = x1+advt*3*xMagFactor; + double [][] lines1 = {{x1,y1},{x1,y2}}; + double [][] lines2 = {{x1,y1},{x2,y1}}; + double [][] lines3 = {{x2,y2},{x1,y2}}; + double [][] lines4 = {{x2,y2},{x2,y1}}; + String advtStr = String.format( "%.1f", advt); + if(advt > 0.0f){ + verticalWindRShape.addLineSegment(lines1); + verticalWindRShape.addLineSegment(lines2); + verticalWindRShape.addLineSegment(lines3); + verticalWindRShape.addLineSegment(lines4); + double [] advtLblXy = { x1+20*xMagFactor, y2+ (y1-y2)/2}; + verticalWindRShape.addLabel(advtStr, advtLblXy); + } + else { + verticalWindSbShape.addLineSegment(lines1); + verticalWindSbShape.addLineSegment(lines2); + verticalWindSbShape.addLineSegment(lines3); + verticalWindSbShape.addLineSegment(lines4); + double [] advtLblXy = { x1-20*xMagFactor,y2+ (y1-y2)/2}; + verticalWindSbShape.addLabel(advtStr, advtLblXy); + } + } + } + } + verticalWindSbShape.compile(); + verticalWindRShape.compile(); + verticalWindLabelShape.compile(); + + } + + /** + * Create all wire frame shapes at one place. + * Should be used only when a new resource is becoming Current active resource to be displayed. + * + */ + public void createAllWireFrameShapes(){ + //System.out.println("createAllWireFrameShapes called"); + if(target!=null){ + disposeAllWireFrameShapes(); + createRscWireFrameShapes();; + //create static shape + createBkgOmegaShape(); + createBkgWindBoxShape(); + } + } + public void createRscWireFrameShapes(){ + //System.out.println("createRscWireFrameShapes called"); + if(target!=null){ + disposeRscWireFrameShapes(); + if(soundingLys != null){ + NsharpGenericPaneBackground skewtBgd = rscHandler.getSkewtPaneRsc().getActiveBackground(); + if(skewtBgd!=null){ + vpc = skewtBgd.getViewablePressureContainer(soundingLys); + vplc = skewtBgd.getViewablePressureLinesContainer(); + } + createRscOmegaShape(); + createRscWindBoxWindShape(); + createRscVerticalWindShape(); + } + } + } + public void disposeAllWireFrameShapes(){ + disposeRscWireFrameShapes(); + //also dispose static background shpae + if(omegaBkgShape!=null) + omegaBkgShape.dispose(); + + if(windBoxBkgShape!=null) + windBoxBkgShape.dispose(); + + } + public void disposeRscWireFrameShapes(){ + if(omegaRscShape!=null){ + omegaRscShape.dispose(); + omegaRscShape=null; + } + if(verticalWindSbShape!=null){ + verticalWindSbShape.dispose(); + verticalWindSbShape=null; + } + if(verticalWindLabelShape!=null){ + verticalWindLabelShape.dispose(); + verticalWindLabelShape=null; + } + if(verticalWindRShape!=null){ + verticalWindRShape.dispose(); + verticalWindRShape=null; + } + if(windBoxWindRscShapeList.size()>0){ + for(NsharpShapeAndLineProperty shapeColor: windBoxWindRscShapeList){ + shapeColor.getShape().dispose(); + } + windBoxWindRscShapeList.clear(); + + } + } + + + /* + * (non-Javadoc) + * @see gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpAbstractPaneResource#handleResize() + * Does not override parent's handleResize() but only called from skewtPaneResource to be in sync + * with it (skewtPaneResource). + */ + public void handleResize() { + super.handleResize(); + IExtent ext = getDescriptor().getRenderableDisplay().getExtent(); + ext.reset(); + this.rectangle = new Rectangle((int)ext.getMinX(), (int) ext.getMinY(), + (int) ext.getWidth(), (int) ext.getHeight()); + world = new WGraphics(this.rectangle); + + /*world.setWorldCoordinates(NsharpConstants.left, NsharpConstants.top, + NsharpConstants.right, NsharpConstants.bottom);*/ + world.setWorldCoordinates(rectangle.x,rectangle.y, + rectangle.x + rectangle.width, rectangle.y+rectangle.height); + pe = new PixelExtent(this.rectangle); + getDescriptor().setNewPe(pe); + float prevWidth= witoPanewidth; + float prevHeight= witoPaneHeight; + witoPanewidth = (int)ext.getWidth(); + witoPaneHeight = (int)ext.getHeight(); + xMagFactor = xMagFactor * ((float)witoPanewidth/prevWidth); + yMagFactor = yMagFactor * ((float)witoPaneHeight/prevHeight); + omegaMF = (int)((float)witoPanewidth/prevWidth * (float)omegaMF); + omegaXOrig = (int) (ext.getMinX()+ witoPanewidth*2/3); + omegaYOrig = (int) ext.getMinY(); + omegaWidth = (int) (witoPanewidth/3); + omegaHeight = (int) ext.getHeight(); + omegaYEnd = omegaYOrig + omegaHeight; + windBoxXOrig = (int) (ext.getMinX()); + windBoxYOrig = (int) ext.getMinY(); + windBoxWidth = (int) (witoPanewidth/3); + windBoxHeight = (int) ext.getHeight(); + windBoxYEnd = windBoxYOrig + windBoxHeight; + verticalWindXOrig = (int) (ext.getMinX()+witoPanewidth/3); + verticalWindYOrig = (int) ext.getMinY(); + verticalWindWidth = (int) (witoPanewidth/3); + verticalWindHeight = (int) ext.getHeight(); + verticalWindYEnd = verticalWindYOrig + verticalWindHeight; + //System.out.println("Wito: handle resize w="+witoPanewidth+ " h="+ witoPaneHeight); + createAllWireFrameShapes(); + } + + @Override + public void handleZooming() { + createAllWireFrameShapes(); + } + + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpWitoPaneResourceData.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpWitoPaneResourceData.java new file mode 100644 index 0000000000..7c4ac2e484 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/display/rsc/NsharpWitoPaneResourceData.java @@ -0,0 +1,50 @@ +package gov.noaa.nws.ncep.ui.nsharp.display.rsc; +/** + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/23/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpAbstractPaneDescriptor; + +import com.raytheon.uf.viz.core.drawables.IDescriptor; +import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.uf.viz.core.rsc.AbstractResourceData; +import com.raytheon.uf.viz.core.rsc.AbstractVizResource; +import com.raytheon.uf.viz.core.rsc.LoadProperties; + +public class NsharpWitoPaneResourceData extends AbstractResourceData { + private NsharpWitoPaneResource witoPaneRsc; + @Override + public AbstractVizResource construct(LoadProperties loadProperties, + IDescriptor descriptor) throws VizException { + NsharpAbstractPaneDescriptor desc=(NsharpAbstractPaneDescriptor)descriptor; + //System.out.println("NsharpWitoPaneResourceData construct called Panes="+desc.getPaneNumber()); + witoPaneRsc = new NsharpWitoPaneResource(this, loadProperties, desc); + return witoPaneRsc; + } + + @Override + public void update(Object updateData) { + // TODO Auto-generated method stub + + } + + @Override + public boolean equals(Object obj) { + // TODO Auto-generated method stub + return false; + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/menu/NsharpUnloadDialog.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/menu/NsharpUnloadDialog.java index 2b29ce5346..25c1ba4c23 100644 --- a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/menu/NsharpUnloadDialog.java +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/menu/NsharpUnloadDialog.java @@ -23,9 +23,10 @@ import java.util.ArrayList; import java.util.List; import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.NsharpSoundingElementStateProperty; import gov.noaa.nws.ncep.ui.nsharp.skewt.NsharpSkewTEditor; import gov.noaa.nws.ncep.ui.nsharp.skewt.rsc.NsharpSkewTResource; -import gov.noaa.nws.ncep.ui.nsharp.skewt.rsc.NsharpSoundingElementStateProperty; + import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.swt.SWT; @@ -195,7 +196,7 @@ public class NsharpUnloadDialog extends Dialog { //} for(List stnTmList: stnTmTable){ for(NsharpSoundingElementStateProperty tm: stnTmList){ - if(tm.getElementState() != NsharpSkewTResource.State.NOTAVAIL){ + if(tm.getElementState() != NsharpConstants.State.NOTAVAIL){ sndTimeList.add(tm.getElementDescription()); } } diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/natives/NsharpNative.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/natives/NsharpNative.java index d6d20ad106..363f0ab22e 100644 --- a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/natives/NsharpNative.java +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/natives/NsharpNative.java @@ -11,6 +11,8 @@ * Date Ticket# Engineer Description * ------- ------- -------- ----------- * 03/23/2010 229 Chin Chen Initial coding + * 5/2012 736 T. Lee Added cave_ccl, cave_soar, cave_dmpi, + * cave_wmax, cave_mdpi_windex, nc_mix_height * * * @@ -46,7 +48,8 @@ public class NsharpNative { public NsharpNative() { super(); - nsharpLib = NsharpLibrary.INSTANCE; + //nsharpLib = NsharpLibrary.INSTANCE; + nsharpLib = (NsharpLibrary) Native.loadLibrary("bignsharp", NsharpLibrary.class); nsharpLib.initStaticGlobalsMem(); } @@ -111,6 +114,7 @@ public class NsharpNative { public interface NsharpLibrary extends Library { //library name is libbignsharp.so. but only use "bignsharp" as lib name when loading NsharpLibrary INSTANCE = (NsharpLibrary) Native.loadLibrary("bignsharp", NsharpLibrary.class); + /// native declaration : line 1 public static class _lplvalues extends Structure { /// C type : char[40] @@ -366,6 +370,12 @@ public class NsharpNative { int cave_ww_type(); float cave_criticalAngel(); void get_effectLayertopBotPres(FloatByReference topP, FloatByReference botP); + void nc_mix_height(FloatByReference pres, FloatByReference drct, FloatByReference sped, FloatByReference del_t, FloatByReference lr, FloatByReference drct_mean, FloatByReference sped_mean, FloatByReference drct_max, FloatByReference sped_max, short flag); + float cave_mdpi_windex (FloatByReference windex); + int cave_dmpi(); + void cave_ccl (float mixr, FloatByReference pccl, FloatByReference tccl, FloatByReference zccl); + void cave_soar (float slev, FloatByReference ctax, FloatByReference zconv, FloatByReference tconv, FloatByReference zthrm, FloatByReference tthrm, FloatByReference soar, FloatByReference ttrig); + float cave_wmax (float[] vvel); //void printSfcInfo(); //void showSndgData(); //From basic.h diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/palette/NsharpStnConfigDialog.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/palette/NsharpStnConfigDialog.java index e0a40ee37d..93fb14e100 100644 --- a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/palette/NsharpStnConfigDialog.java +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/palette/NsharpStnConfigDialog.java @@ -19,9 +19,9 @@ package gov.noaa.nws.ncep.ui.nsharp.palette; * @version 1.0 */ import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.NsharpStationStateProperty; import gov.noaa.nws.ncep.ui.nsharp.skewt.NsharpSkewTEditor; import gov.noaa.nws.ncep.ui.nsharp.skewt.rsc.NsharpSkewTResource; -import gov.noaa.nws.ncep.ui.nsharp.skewt.rsc.NsharpStationStateProperty; import java.util.ArrayList; import java.util.List; @@ -139,7 +139,7 @@ public class NsharpStnConfigDialog extends Dialog { activateBtn.addListener( SWT.MouseUp, new Listener() { public void handleEvent(Event event) { NsharpSkewTResource rsc = NsharpSkewTEditor.getActiveNsharpEditor().getNsharpSkewTDescriptor().getSkewtResource(); - rsc.handleStationActConfig(selectedStnList, NsharpSkewTResource.State.ACTIVE); + rsc.handleStationActConfig(selectedStnList, NsharpConstants.State.ACTIVE); selectedStnList.clear(); close(); } @@ -152,7 +152,7 @@ public class NsharpStnConfigDialog extends Dialog { public void handleEvent(Event event) { //System.out.println("Unload Selected"); NsharpSkewTResource rsc = NsharpSkewTEditor.getActiveNsharpEditor().getNsharpSkewTDescriptor().getSkewtResource(); - rsc.handleStationActConfig(selectedStnList, NsharpSkewTResource.State.INACTIVE); + rsc.handleStationActConfig(selectedStnList, NsharpConstants.State.INACTIVE); selectedStnList.clear(); close(); } @@ -178,7 +178,7 @@ public class NsharpStnConfigDialog extends Dialog { List stnStList = rsc.getStnStateList(); for(NsharpStationStateProperty stn: stnStList){ String s; - if(stn.getStnState() == NsharpSkewTResource.State.INACTIVE) + if(stn.getStnState() == NsharpConstants.State.INACTIVE) s = "--(InActive)"; else s="--(Active)"; diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/palette/NsharpTimeLineConfigDialog.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/palette/NsharpTimeLineConfigDialog.java index 22a0e2cd14..d94902ef85 100644 --- a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/palette/NsharpTimeLineConfigDialog.java +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/palette/NsharpTimeLineConfigDialog.java @@ -19,9 +19,9 @@ package gov.noaa.nws.ncep.ui.nsharp.palette; * @version 1.0 */ import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.NsharpTimeLineStateProperty; import gov.noaa.nws.ncep.ui.nsharp.skewt.NsharpSkewTEditor; import gov.noaa.nws.ncep.ui.nsharp.skewt.rsc.NsharpSkewTResource; -import gov.noaa.nws.ncep.ui.nsharp.skewt.rsc.NsharpTimeLineStateProperty; import java.util.ArrayList; import java.util.List; @@ -139,7 +139,7 @@ public class NsharpTimeLineConfigDialog extends Dialog { activateBtn.addListener( SWT.MouseUp, new Listener() { public void handleEvent(Event event) { NsharpSkewTResource rsc = NsharpSkewTEditor.getActiveNsharpEditor().getNsharpSkewTDescriptor().getSkewtResource(); - rsc.handleTimeLineActConfig(selectedTimeList, NsharpSkewTResource.State.ACTIVE); + rsc.handleTimeLineActConfig(selectedTimeList, NsharpConstants.State.ACTIVE); selectedTimeList.clear(); close(); } @@ -152,7 +152,7 @@ public class NsharpTimeLineConfigDialog extends Dialog { public void handleEvent(Event event) { //System.out.println("Unload Selected"); NsharpSkewTResource rsc = NsharpSkewTEditor.getActiveNsharpEditor().getNsharpSkewTDescriptor().getSkewtResource(); - rsc.handleTimeLineActConfig(selectedTimeList, NsharpSkewTResource.State.INACTIVE); + rsc.handleTimeLineActConfig(selectedTimeList, NsharpConstants.State.INACTIVE); selectedTimeList.clear(); close(); } @@ -178,7 +178,7 @@ public class NsharpTimeLineConfigDialog extends Dialog { List tlList = rsc.getTimeLineStateList(); for(NsharpTimeLineStateProperty tl: tlList){ String s; - if(tl.getTimeState() == NsharpSkewTResource.State.INACTIVE) + if(tl.getTimeState() == NsharpConstants.State.INACTIVE) s = "--(InActive)"; else s="--(Active)"; diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/NsharpSkewTEditor.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/NsharpSkewTEditor.java index 554b183c32..4270970cd8 100644 --- a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/NsharpSkewTEditor.java +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/NsharpSkewTEditor.java @@ -98,12 +98,16 @@ public class NsharpSkewTEditor extends AbstractEditor implements AddListener, // It might be desirable to stop here so that we only have an "active" // editor if it really is active. + if(PlatformUI.getWorkbench()== null || PlatformUI.getWorkbench() + .getActiveWorkbenchWindow() == null) + return null; IWorkbenchPage activePage = PlatformUI.getWorkbench() .getActiveWorkbenchWindow().getActivePage(); IEditorReference[] references = new IEditorReference[0]; if (activePage != null) { references = activePage.getEditorReferences(); } + for (IEditorReference ref : references) { ep = ref.getEditor(false); diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/rsc/NsharpDrawPanels.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/rsc/NsharpDrawPanels.java index 1671519590..0918ea7fd7 100644 --- a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/rsc/NsharpDrawPanels.java +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/rsc/NsharpDrawPanels.java @@ -1973,6 +1973,20 @@ public class NsharpDrawPanels { TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, VerticalAlignment.TOP, null); } + + /* + * Compute CCL (TL) + */ + /* + FloatByReference pccl = new FloatByReference(0); + FloatByReference tccl = new FloatByReference(0); + FloatByReference zccl = new FloatByReference(0); + nsharpNative.nsharpLib.cave_ccl (-9999.F, pccl, tccl, zccl); + System.out.println (" \n\n surface-based CCL "); + System.out.println (" pccl (mb): " + pccl.getValue() ); + System.out.println (" tccl (C): " + tccl.getValue() ); + System.out.println (" zccl (m): " + zccl.getValue() ); + */ //myFont.dispose(); } @SuppressWarnings("deprecation") @@ -2451,6 +2465,7 @@ public class NsharpDrawPanels { // calculate Layer-based lapse rate data flag = 1; nsharpNative.nsharpLib.mix_height(mh_mb,mh_drct,mh_sped,mh_dC,mh_lr,mh_drct_max,mh_sped_max,flag); + if(nsharpNative.nsharpLib.qc(nsharpNative.nsharpLib.ihght(mh_mb.getValue()))==1) { textStr = NsharpNativeConstants.OPC_MIXINGHEIGHT_LINE; @@ -2619,6 +2634,48 @@ public class NsharpDrawPanels { TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, VerticalAlignment.TOP, null); } + + /* + * Momentum transfer (TL) + */ + /* + FloatByReference drct_mean = new FloatByReference(-9999.F); + FloatByReference sped_mean = new FloatByReference(-9999.F); + FloatByReference pres = new FloatByReference(-9999.F); + FloatByReference drct = new FloatByReference(-9999.F); + FloatByReference sped = new FloatByReference(-9999.F); + FloatByReference del_t = new FloatByReference(-9999.F); + FloatByReference lr = new FloatByReference(-9999.F); + FloatByReference drct_max = new FloatByReference(-9999.F); + FloatByReference sped_max = new FloatByReference(-9999.F); + + flag = 0; + nsharpNative.nsharpLib.nc_mix_height(pres,drct,sped,del_t,lr,drct_mean, sped_mean, drct_max,sped_max,flag); + System.out.println (" \n\n Surface-based momentum transfer "); + System.out.println (" pressure at mix height: " + pres.getValue() ); + System.out.println (" wind dir at mix height: " + drct.getValue() ); + System.out.println (" wind speed at mix height: " + sped.getValue() ); + System.out.println (" layer change in temp (C): " + del_t.getValue() ); + System.out.println (" Layer lapse rate: " + lr.getValue() ); + System.out.println (" mean wind direction: " + drct_mean.getValue() ); + System.out.println (" mean wind speed: " + sped_mean.getValue() ); + System.out.println (" max wind direction: " + drct_max.getValue() ); + System.out.println (" max wind speed: " + sped_max.getValue() ); + + flag = 1; + nsharpNative.nsharpLib.nc_mix_height(pres,drct,sped,del_t,lr,drct_mean, sped_mean, drct_max,sped_max,flag); + System.out.println (" \n\n Layer-based momentum transfer "); + System.out.println (" pressure at mix height: " + pres.getValue() ); + System.out.println (" wind dir at mix height: " + drct.getValue() ); + System.out.println (" wind speed at mix height: " + sped.getValue() ); + System.out.println (" layer change in temp (C): " + del_t.getValue() ); + System.out.println (" Layer lapse rate: " + lr.getValue() ); + System.out.println (" mean wind direction: " + drct_mean.getValue() ); + System.out.println (" mean wind speed: " + sped_mean.getValue() ); + System.out.println (" max wind direction: " + drct_max.getValue() ); + System.out.println (" max wind speed: " + sped_max.getValue() ); + */ + //myFont.dispose(); } @SuppressWarnings("deprecation") @@ -3363,6 +3420,49 @@ public class NsharpDrawPanels { target.drawString(myFont, textStr, rect.x, curY , 0.0, TextStyle.NORMAL, NsharpConstants.color_white, HorizontalAlignment.LEFT, VerticalAlignment.TOP, null); + + /* + * Compute MDPI_WINDEX (TL) + */ + /* + FloatByReference windex = new FloatByReference(0); + float mdpi = nsharpNative.nsharpLib.cave_mdpi_windex(windex); + System.out.println (" \n\n MDPI: Microburst Day Potential Index"); + System.out.println (" MDPI: " + mdpi ); + System.out.println (" Max wind gust: " + windex.getValue() ); + */ + + /* + * Compute DMPI (TL) + */ + /* + int dmpi = nsharpNative.nsharpLib.cave_dmpi(); + System.out.println (" \n\n DMPI: Dry Microburst Potential Index"); + System.out.println (" DMPI: " + dmpi ); + */ + + /* + * Compute Soaring Index (TL) + */ + /* + FloatByReference ctax = new FloatByReference(0); + FloatByReference zconv = new FloatByReference(0); + FloatByReference tconv= new FloatByReference(0); + FloatByReference zthrm = new FloatByReference(0); + FloatByReference tthrm = new FloatByReference(0); + FloatByReference soar = new FloatByReference(0); + FloatByReference ttrig = new FloatByReference(0); + + nsharpNative.nsharpLib.cave_soar ( -9999.F, ctax, zconv,tconv, zthrm, tthrm, soar, ttrig); + System.out.println (" \n\n Soaring Index "); + System.out.println (" potential temp of forecast Tmax (C): " + ctax.getValue() ); + System.out.println (" height of minimum effective convection (m): " + zconv.getValue() ); + System.out.println (" temp of minimum effective convection (C): " + tconv.getValue() ); + System.out.println (" height at thrm altitude (m): " + zthrm.getValue() ); + System.out.println (" temperature at thrm altitude (C): " + tthrm.getValue() ); + System.out.println (" soaring index (ft/min): " + soar.getValue() ); + System.out.println (" triggering temp (C): " + ttrig.getValue() ); + */ // myFont.dispose(); } @SuppressWarnings("deprecation") @@ -3613,6 +3713,21 @@ public class NsharpDrawPanels { VerticalAlignment.TOP, null); } + /* + * Compute vertical motion stemming from thermal buoyancy. (TL) + */ + /* + float [] vvel = null; + vvel = new float[150]; + float wmax = nsharpNative.nsharpLib.cave_wmax (vvel); + System.out.println (" \n\n Thermodynamic buoyancy "); + for (int i = 0; i < vvel.length; i++ ) { + if ( vvel[i] > 0. ) { + System.out.print ( " W [" + i +"]" + " = " + vvel[i] + "\n"); + } + } + System.out.println (" Max vertical motions: " + wmax ); + */ //myFont.dispose(); } diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/rsc/NsharpSkewTResource.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/rsc/NsharpSkewTResource.java index 3b00132ed0..67859100b1 100644 --- a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/rsc/NsharpSkewTResource.java +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/skewt/rsc/NsharpSkewTResource.java @@ -35,6 +35,10 @@ import java.util.Map; import java.util.Set; import java.util.StringTokenizer; +import javax.measure.converter.UnitConverter; +import javax.measure.unit.NonSI; +import javax.measure.unit.SI; + import org.eclipse.core.runtime.ListenerList; import org.eclipse.swt.graphics.GC; import org.eclipse.swt.graphics.RGB; @@ -46,7 +50,10 @@ import gov.noaa.nws.ncep.ui.nsharp.NsharpConfigStore; import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; import gov.noaa.nws.ncep.ui.nsharp.NsharpGraphProperty; import gov.noaa.nws.ncep.ui.nsharp.NsharpLineProperty; +import gov.noaa.nws.ncep.ui.nsharp.NsharpSoundingElementStateProperty; import gov.noaa.nws.ncep.ui.nsharp.NsharpStationInfo; +import gov.noaa.nws.ncep.ui.nsharp.NsharpStationStateProperty; +import gov.noaa.nws.ncep.ui.nsharp.NsharpTimeLineStateProperty; import gov.noaa.nws.ncep.ui.nsharp.NsharpWxMath; import gov.noaa.nws.ncep.ui.nsharp.maprsc.NsharpMapMouseHandler; import gov.noaa.nws.ncep.ui.nsharp.maprsc.NsharpMapResource; @@ -179,9 +186,9 @@ public class NsharpSkewTResource extends AbstractVizResource> dataTimelineSndLysListMap = new HashMap>(); private HashMap> originalDataTimelineSndLysListMap= new HashMap>(); - public enum State { - CURRENT, ACTIVE, INACTIVE,NOTAVAIL ,OVERLAY, AVAIL//was , DISABLED - } + //public enum State { + // CURRENT, ACTIVE, INACTIVE,NOTAVAIL ,OVERLAY, AVAIL//was , DISABLED + //} //dataTimelineList: time line selected by user, but is updated based on available time line at DB at setRsc() // this is derived from dataTimelineSndLysListMap. It has stn info + sounding time line info // used field is used to identify if this time line is picked by user. user could pick multiple time lines for comparison @@ -252,10 +259,10 @@ public class NsharpSkewTResource extends AbstractVizResource elementColorMap = new HashMap(); + private HashMap elementColorMap = new HashMap(); public class ElementStateProperty { String elementDescription; - State elementState; + NsharpConstants.State elementState; NsharpStationInfo stnInfo; public NsharpStationInfo getStnInfo() { return stnInfo; @@ -266,7 +273,7 @@ public class NsharpSkewTResource extends AbstractVizResource stnList: stnTimeTable){ NsharpSoundingElementStateProperty elm= stnList.get(i); - if(elm.getElementState() !=State.NOTAVAIL){ + if(elm.getElementState() !=NsharpConstants.State.NOTAVAIL){ found = true; break; } @@ -1465,7 +1471,7 @@ public class NsharpSkewTResource extends AbstractVizResource stnList: stnTimeTable){ for(NsharpSoundingElementStateProperty elm: stnList){ if(dataTmLine.equals(elm.elementDescription)){ - elm.setElementState(State.NOTAVAIL); + elm.setElementState(NsharpConstants.State.NOTAVAIL); updateStnTimeTableAndList(); setdone = true; break; @@ -1562,7 +1568,7 @@ public class NsharpSkewTResource extends AbstractVizResource> soundMap, NsharpStationInfo stnInfo){ //make sure not adding duplicated sounding data - //System.out.println("NsharpSkewTResource addRsc called"); + System.out.println("NsharpSkewTResource addRsc called"); Set duplicateKeys = new HashSet(); for(String key: soundMap.keySet()) { if(dataTimelineSndLysListMap.containsKey(key)==true) @@ -1723,10 +1729,10 @@ public class NsharpSkewTResource extends AbstractVizResource timeLineStateList.size()) break; - if(timeLineStateList.get(currentTimeLineStateListIndex).getTimeState() == State.ACTIVE && - stnTimeTable.get(currentStnStateListIndex).get(currentTimeLineStateListIndex).elementState == State.AVAIL){ + if(timeLineStateList.get(currentTimeLineStateListIndex).getTimeState() == NsharpConstants.State.ACTIVE && + stnTimeTable.get(currentStnStateListIndex).get(currentTimeLineStateListIndex).elementState == NsharpConstants.State.AVAIL){ break;//out of while loop } @@ -1810,8 +1816,8 @@ public class NsharpSkewTResource extends AbstractVizResource timeLineStateList.size()) break; - if(timeLineStateList.get(currentTimeLineStateListIndex).getTimeState() == State.ACTIVE && - stnTimeTable.get(currentStnStateListIndex).get(currentTimeLineStateListIndex).elementState == State.AVAIL){ + if(timeLineStateList.get(currentTimeLineStateListIndex).getTimeState() == NsharpConstants.State.ACTIVE && + stnTimeTable.get(currentStnStateListIndex).get(currentTimeLineStateListIndex).elementState == NsharpConstants.State.AVAIL){ break;//out of while loop } } @@ -1844,8 +1850,8 @@ public class NsharpSkewTResource extends AbstractVizResource= timeLineStateList.size()) return; // looped through whole list already, and index back to original - if(timeLineStateList.get(targetIndex).getTimeState() == State.ACTIVE) { + if(timeLineStateList.get(targetIndex).getTimeState() == NsharpConstants.State.ACTIVE) { if(compareTmIsOn - && stnTimeTable.get(currentStnStateListIndex).get(targetIndex).elementState == State.NOTAVAIL){ + && stnTimeTable.get(currentStnStateListIndex).get(targetIndex).elementState == NsharpConstants.State.NOTAVAIL){ continue; } else if(compareStnIsOn){ boolean found = false; //find an active and available stn for this timeline and set is as current for (int i=0; i < stnStateList.size(); i++){ - if(stnStateList.get(i).stnState==State.ACTIVE && - stnTimeTable.get(i).get(targetIndex).elementState == State.AVAIL){ + if(stnStateList.get(i).stnState==NsharpConstants.State.ACTIVE && + stnTimeTable.get(i).get(targetIndex).elementState == NsharpConstants.State.AVAIL){ currentStnStateListIndex = i; found = true; break; @@ -2008,17 +2015,17 @@ public class NsharpSkewTResource extends AbstractVizResource(); this.soundingMap = new HashMap(); - elementColorMap.put(State.CURRENT,NsharpConstants.color_green); //green - elementColorMap.put(State.ACTIVE,NsharpConstants.color_yellow);//cyan - elementColorMap.put(State.INACTIVE,NsharpConstants.color_white);//white - elementColorMap.put(State.NOTAVAIL,NsharpConstants.color_red);//white - elementColorMap.put(State.OVERLAY,NsharpConstants.color_red);//red - elementColorMap.put(State.AVAIL,NsharpConstants.color_yellow);//white + elementColorMap.put(NsharpConstants.State.CURRENT,NsharpConstants.color_green); //green + elementColorMap.put(NsharpConstants.State.ACTIVE,NsharpConstants.color_yellow);//cyan + elementColorMap.put(NsharpConstants.State.INACTIVE,NsharpConstants.color_white);//white + elementColorMap.put(NsharpConstants.State.NOTAVAIL,NsharpConstants.color_red);//white + elementColorMap.put(NsharpConstants.State.OVERLAY,NsharpConstants.color_red);//red + elementColorMap.put(NsharpConstants.State.AVAIL,NsharpConstants.color_yellow);//white nsharpNative = new NsharpNative(); //based on BigNsharp storm slinky color used and gempak color definition stormSlinkyColorMap.put(new Integer(3),NsharpConstants.color_green); //green @@ -2443,7 +2450,7 @@ public class NsharpSkewTResource extends AbstractVizResource -9998.0 && nsharpNative.nsharpLib.idwpt((float)p_mb) > -9998.0){ FloatByReference parm= new FloatByReference(0); relh= nsharpNative.nsharpLib.relh((float)p_mb, parm); - curStrFormat= "%4.0fmb %5.0fft/%.0fm agl %2.0f%%\n"; - curStr = String.format(curStrFormat, p_mb,htFt,htM,relh); + curStrFormat= "%4.0f/%.0fkt %4.0fmb %5.0fft/%.0fm agl %2.0f%%\n"; + curStr = String.format(curStrFormat, nsharpNative.nsharpLib.iwdir((float)p_mb), + nsharpNative.nsharpLib.iwspd((float)p_mb),p_mb,htFt,htM,relh); } else{ - curStrFormat= "%4.0fmb %5.0fft/%.0fm agl\n"; - curStr = String.format(curStrFormat, p_mb,htFt,htM); + curStrFormat= "%4.0f/%.0fkt %4.0fmb %5.0fft/%.0fm agl\n"; + curStr = String.format(curStrFormat,nsharpNative.nsharpLib.iwdir((float)p_mb), + nsharpNative.nsharpLib.iwspd((float)p_mb), p_mb,htFt,htM); } - curStrFormat1 = "%4.1f %4.1f/%4.1f%cC %4.0f/%.0f kt\n"; + /*curStrFormat1 = "%4.1f %4.1f/%4.1f%cC %4.0f/%.0f kt\n"; curStr1 = String.format(curStrFormat1,temp, nsharpNative.nsharpLib.itemp((float)p_mb), nsharpNative.nsharpLib.idwpt((float)p_mb),NsharpConstants.DEGREE_SYMBOL, nsharpNative.nsharpLib.iwdir((float)p_mb), - nsharpNative.nsharpLib.iwspd((float)p_mb)); + nsharpNative.nsharpLib.iwspd((float)p_mb));*/ + curStrFormat1 = "%s(%s) %4.1f/%4.1f%cF(%4.1f/%4.1f%cC)\n"; + temp = nsharpNative.nsharpLib.itemp((float)p_mb); + UnitConverter celciusToFahrenheit = SI.CELSIUS.getConverterTo(NonSI.FAHRENHEIT); + double tempF= celciusToFahrenheit.convert(temp); + double dp = nsharpNative.nsharpLib.idwpt((float)p_mb); + double dpF= celciusToFahrenheit.convert(dp); + curStr1 = String.format(curStrFormat1,bkRsc.getSTemperatureF(),bkRsc.getSTemperatureC(), tempF,dpF, NsharpConstants.DEGREE_SYMBOL,temp, + dp,NsharpConstants.DEGREE_SYMBOL); + //String tempS= String.format("%5.1f%cC ",temp,NsharpConstants.DEGREE_SYMBOL); - curStr2 =bkRsc.getSThetaInK()+" "+bkRsc.getSWThetaInK()+" "+bkRsc.getSEThetaInK()+"\n"; + //curStr2 =bkRsc.getSThetaInK()+" "+bkRsc.getSWThetaInK()+" "+bkRsc.getSEThetaInK()+"\n"; //Adjust string plotting position if(cursorCor.x < NsharpConstants.SKEWT_REC_X_ORIG + 200){ hAli = HorizontalAlignment.LEFT; } - else if(cursorCor.x > NsharpConstants.SKEWT_VIEW_X_END - 200){ + //else if(cursorCor.x > NsharpConstants.SKEWT_VIEW_X_END - 200){ + // hAli = HorizontalAlignment.RIGHT; + //} + else { hAli = HorizontalAlignment.RIGHT; } - else { - hAli = HorizontalAlignment.CENTER; - } vAli = VerticalAlignment.BOTTOM; - target.drawString(myFont,curStr+curStr1+curStr2+curStr3, cursorCor.x, + target.drawString(myFont,curStr+curStr1+curStr3, cursorCor.x, cursorCor.y, 0.0, TextStyle.NORMAL, NsharpConstants.color_yellow, hAli, vAli, null); @@ -3481,15 +3500,15 @@ public class NsharpSkewTResource extends AbstractVizResource=0){ - if(stnTimeTable.get(j).get(currentTimeLineStateListIndex).elementState == State.AVAIL ){ + if(stnTimeTable.get(j).get(currentTimeLineStateListIndex).elementState == NsharpConstants.State.AVAIL ){ avail =true; } if(avail){ @@ -3519,7 +3538,7 @@ public class NsharpSkewTResource extends AbstractVizResource=0){ - if ( stnTimeTable.get(currentStnStateListIndex).get(j).elementState == State.AVAIL ){ + if ( stnTimeTable.get(currentStnStateListIndex).get(j).elementState == NsharpConstants.State.AVAIL ){ avail = true; } if(avail){ @@ -3694,7 +3713,7 @@ public class NsharpSkewTResource extends AbstractVizResource NsharpConstants.LINE_COMP10)//COLOR_ARRAY.length-1) colorIndex =NsharpConstants.LINE_COMP1;//1; } - if(elm.elementState == State.PICKED){ + if(elm.elementState == NsharpConstants.State.PICKED){ pickedStnColor = color; } @@ -5468,8 +5487,8 @@ public class NsharpSkewTResource extends AbstractVizResource=0){ int colorIndex =NsharpConstants.LINE_COMP1; for(NsharpStationStateProperty elm: stnStateList) { - if(elm.stnState == State.ACTIVE && - stnTimeTable.get(stnStateList.indexOf(elm)).get(currentTimeLineStateListIndex).elementState == State.AVAIL){ + if(elm.stnState == NsharpConstants.State.ACTIVE && + stnTimeTable.get(stnStateList.indexOf(elm)).get(currentTimeLineStateListIndex).elementState == NsharpConstants.State.AVAIL){ List soundingLayeys = dataTimelineSndLysListMap.get(stnTimeTable.get(stnStateList.indexOf(elm)).get(currentTimeLineStateListIndex).elementDescription); NsharpLineProperty lp = linePropertyMap.get(NsharpConstants.lineNameArray[colorIndex]); colorIndex++; @@ -5482,8 +5501,8 @@ public class NsharpSkewTResource extends AbstractVizResource=0 ){ int colorIndex =NsharpConstants.LINE_COMP1; for(NsharpTimeLineStateProperty elm: timeLineStateList) { - if(elm.timeState == State.ACTIVE && - stnTimeTable.get(currentStnStateListIndex).get(timeLineStateList.indexOf(elm)).elementState == State.AVAIL){ + if(elm.timeState == NsharpConstants.State.ACTIVE && + stnTimeTable.get(currentStnStateListIndex).get(timeLineStateList.indexOf(elm)).elementState == NsharpConstants.State.AVAIL){ List soundingLayeys = dataTimelineSndLysListMap.get(stnTimeTable.get(currentStnStateListIndex).get(timeLineStateList.indexOf(elm)).elementDescription); NsharpLineProperty lp = linePropertyMap.get(NsharpConstants.lineNameArray[colorIndex]); colorIndex++; @@ -5517,8 +5536,8 @@ public class NsharpSkewTResource extends AbstractVizResource=0){ int colorIndex =NsharpConstants.LINE_COMP1; for(NsharpStationStateProperty elm: stnStateList) { - if(elm.stnState == State.ACTIVE && - stnTimeTable.get(stnStateList.indexOf(elm)).get(currentTimeLineStateListIndex).elementState == State.AVAIL){ + if(elm.stnState == NsharpConstants.State.ACTIVE && + stnTimeTable.get(stnStateList.indexOf(elm)).get(currentTimeLineStateListIndex).elementState == NsharpConstants.State.AVAIL){ List soundingLayeys = dataTimelineSndLysListMap.get(stnTimeTable.get(stnStateList.indexOf(elm)).get(currentTimeLineStateListIndex).elementDescription); RGB color = linePropertyMap.get(NsharpConstants.lineNameArray[colorIndex]).getLineColor(); colorIndex++; @@ -5531,8 +5550,8 @@ public class NsharpSkewTResource extends AbstractVizResource=0 ){ int colorIndex =NsharpConstants.LINE_COMP1; for(NsharpTimeLineStateProperty elm: timeLineStateList) { - if(elm.timeState == State.ACTIVE && - stnTimeTable.get(currentStnStateListIndex).get(timeLineStateList.indexOf(elm)).elementState == State.AVAIL){ + if(elm.timeState == NsharpConstants.State.ACTIVE && + stnTimeTable.get(currentStnStateListIndex).get(timeLineStateList.indexOf(elm)).elementState == NsharpConstants.State.AVAIL){ List soundingLayeys = dataTimelineSndLysListMap.get(stnTimeTable.get(currentStnStateListIndex).get(timeLineStateList.indexOf(elm)).elementDescription); RGB color = linePropertyMap.get(NsharpConstants.lineNameArray[colorIndex]).getLineColor(); colorIndex++; @@ -6738,7 +6757,7 @@ public class NsharpSkewTResource extends AbstractVizResource tlList, State actSt){ + public void handleTimeLineActConfig(List tlList, NsharpConstants.State actSt){ for(String tlStr: tlList){ for(NsharpTimeLineStateProperty tl: timeLineStateList){ if(tlStr.equals(tl.timeDescription)){ @@ -6756,7 +6775,7 @@ public class NsharpSkewTResource extends AbstractVizResource stnList, State actSt){ + public void handleStationActConfig(List stnList, NsharpConstants.State actSt){ for(String tlStr: stnList){ for(NsharpStationStateProperty stn: stnStateList){ if(tlStr.equals(stn.stnDescription)){ diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/ModelSoundingDialogContents.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/ModelSoundingDialogContents.java new file mode 100644 index 0000000000..204058bc8c --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/ModelSoundingDialogContents.java @@ -0,0 +1,725 @@ +/** + * + * gov.noaa.nws.ncep.ui.nsharp.view.ModelSoundingDialogContents + * + * This java class performs the NSHARP NsharpLoadDialog functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 01/2011	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.view; + +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.NcSoundingModel; +import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingProfile; +import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingTimeLines; +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.NsharpStationInfo; +import gov.noaa.nws.ncep.ui.nsharp.SurfaceStationPointData; +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.display.map.NsharpMapResource; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpDataHandling; +import gov.noaa.nws.ncep.viz.common.soundingQuery.NcSoundingQuery; +import gov.noaa.nws.ncep.viz.common.ui.NmapCommon; + +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.TimeZone; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Font; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Text; + +import com.raytheon.viz.ui.perspectives.VizPerspectiveListener; +import com.vividsolutions.jts.geom.Coordinate; + +public class ModelSoundingDialogContents { + private Composite parent; + private org.eclipse.swt.widgets.List modelTypeList=null, availableFileList=null, sndTimeList=null; + //timeLineToFileMap maps time line (rangeStart time in sndTimeList) to available file (reftime in availableFileList) + private Map timeLineToFileMap = new HashMap(); + //soundingLysLstMap maps "lat;lon timeline" string to its queried sounding layer list + private Map> soundingLysLstMap = new HashMap> (); + private Group modelTypeGp, bottomGp, availableFileGp, sndTimeListGp, topGp, locationMainGp; + private Button timeBtn, latlonBtn, stationBtn, loadBtn; + private Text locationText; + private Label locationLbl; + private boolean timeLimit = false; + private NsharpLoadDialog ldDia; + private Font newFont; + private List selectedFileList = new ArrayList(); + private List selectedTimeList = new ArrayList(); + //private NcSoundingProfile.MdlSndType currentSndType = NcSoundingProfile.MdlSndType.NONE; + private float lat, lon; + private String stnStr=""; + private final String GOOD_LATLON_STR = " A good input looked like this:\n 38.95;-77.45 or 38.95,-77.45"; + private final String GOOD_STN_STR = " A good input looked like this:\n GAI or gai"; + String gribDecoderName = NcSoundingQuery.NCGRIB_PLUGIN_NAME; + private String selectedModel=null; + private DBType currentDb = DBType.NCGRIB; + + public enum LocationType { + LATLON, STATION + } + public enum DBType { + GRIB, NCGRIB + } + private LocationType currentLocType=LocationType.LATLON; + + public LocationType getCurrentLocType() { + return currentLocType; + } + + public Text getLocationText() { + return locationText; + } + + + public ModelSoundingDialogContents (Composite parent) { + this.parent = parent; + ldDia = NsharpLoadDialog.getAccess(); + newFont = ldDia.getNewFont(); + if( VizPerspectiveListener.getCurrentPerspectiveManager()!= null){ + if(VizPerspectiveListener.getCurrentPerspectiveManager().getPerspectiveId().equals(NmapCommon.NatlCntrsPerspectiveID)) + gribDecoderName = NcSoundingQuery.NCGRIB_PLUGIN_NAME; + else + gribDecoderName = NcSoundingQuery.GRIB_PLUGIN_NAME; + + + //for testing + //gribDecoderName = NcSoundingQuery.GRIB_PLUGIN_NAME; + //System.out.println("perspective id = " + VizPerspectiveListener.getCurrentPerspectiveManager().getPerspectiveId()); + } + } + private void createMDLAvailableFileList() { + if(sndTimeList!=null) + sndTimeList.removeAll(); + if(availableFileList!=null) + availableFileList.removeAll(); + + //query using NcSoundingQuery class to query + NcSoundingTimeLines timeLines = NcSoundingQuery.mdlSoundingTimeLineQuery(selectedModel, gribDecoderName); + if(timeLines!= null && timeLines.getTimeLines() != null){ + ldDia.startWaitCursor(); + for(Object timeLine : timeLines.getTimeLines()){ + Timestamp reftime = (Timestamp)timeLine; + if(reftime != null){ + //need to format reftime to GMT time string. Timestamp.toString produce a local time Not GMT time + Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT")); + cal.setTimeInMillis(reftime.getTime()); + String gmtTimeStr = String.format("%1$tY-%1$tm-%1$td %1$tH", cal); + //System.out.println("GMT time " + gmtTimeStr); + availableFileList.add(gmtTimeStr); + + } + + } + ldDia.stopWaitCursor(); + } + else + System.out.println("SQL: query return null"); + } + private void createMDLSndTimeList(List selectedFlLst) { + if(selectedFlLst.size() <=0 ) + return; + if(sndTimeList!=null) + sndTimeList.removeAll(); + if(timeLineToFileMap!=null) + timeLineToFileMap.clear(); + int nameLen= Math.min(4, selectedModel.length()); + String modelName= selectedModel.substring(0,nameLen); + //query using NcSoundingQuery to query + ldDia.startWaitCursor(); + for(int i=0; i< selectedFlLst.size(); i++){ + String fl = selectedFlLst.get(i); + long reftimeMs= NcSoundingQuery.convertRefTimeStr(fl); + NcSoundingTimeLines timeLines = NcSoundingQuery.mdlSoundingRangeTimeLineQuery(selectedModel, fl, gribDecoderName); + if(timeLines != null && timeLines.getTimeLines().length >0) { + for(Object obj : timeLines.getTimeLines()){ + Timestamp rangestart = (Timestamp)obj; + + //need to format rangestart to GMT time string. Timestamp.toString produce a local time Not GMT time + Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT")); + cal.setTimeInMillis(rangestart.getTime()); + long vHour = (cal.getTimeInMillis()- reftimeMs)/3600000; + String gmtTimeStr = String.format("%1$ty%1$tm%1$td/%1$tHV%2$03d %3$s", cal, vHour,modelName); + //String gmtTimeStr = String.format("%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS", cal); + if(sndTimeList.indexOf(gmtTimeStr) != -1){ + // this indicate that gmtTimeStr is laready in the sndTimeList, then we dont need to add it to list again. + continue; + } + + //System.out.println("GMT time " + gmtTimeStr); + if(!timeLimit){ + sndTimeList.add(gmtTimeStr); + timeLineToFileMap.put(gmtTimeStr, fl); + } + else { + int hour = cal.get(Calendar.HOUR_OF_DAY); + if((hour == 0) || (hour == 12)){ + sndTimeList.add(gmtTimeStr); + timeLineToFileMap.put(gmtTimeStr, fl); + } + } + + } + } + } + ldDia.stopWaitCursor(); + } + + private void queryAndLoadData(boolean stnQuery) { + soundingLysLstMap.clear(); + ldDia.startWaitCursor(); + //Chin Note: Since NcGrib/Grib HDF5 data file is created based on a forecast time line, we can not query + // more than one time line at one time as Edex server just could not support such query at one shot. + //This is not the case of PFC sounding (modelsounding db). It has all time lines of one forecast report + // saved in one file. Therefore, PFC query is much faster. + for(String timeLine: selectedTimeList){ + // avail file, ie. its refTime + String selectedFileStr = timeLineToFileMap.get(timeLine); + String rangeStartStr = NcSoundingQuery.convertSoundTimeDispStringToRangeStartTimeFormat(timeLine); + float[][] latLon = {{lat, lon}}; + NcSoundingCube cube = NcSoundingQuery.mdlSoundingQueryByLatLon(selectedFileStr+":00:00",rangeStartStr, latLon, gribDecoderName,selectedModel, false, "-1"); + if(cube != null && cube.getRtnStatus()== NcSoundingCube.QueryStatus.OK){ + //System.out.println("mdlSoundingQueryByLatLon returnd ok"); + + NcSoundingProfile sndPf = cube.getSoundingProfileList().get(0); + + List rtnSndLst = sndPf.getSoundingLyLst(); + if(rtnSndLst != null && rtnSndLst.size() > 1){ + //Remove sounding layers that not used by NSHARP + //System.out.println("numbe of layer returned from query ="+ rtnSndLst.size()); + rtnSndLst = NsharpDataHandling.organizeSoundingDataForShow(rtnSndLst, sndPf.getStationElevation()); + //minimum rtnSndList size will be 2 (50 & 75 mb layers), but that is not enough + // We need at least 2 regular layers for plotting + if(rtnSndLst != null && rtnSndLst.size() > 4) + { //after organized, if size is still good + if(!stnQuery){ + soundingLysLstMap.put(lat+";"+lon+" "+timeLine, rtnSndLst); + //System.out.println(lat+";"+lon+" "+timeLine); + } + else{ + soundingLysLstMap.put(stnStr+" "+timeLine, rtnSndLst); + //System.out.println(stnStr+" "+timeLine); + } + continue; + } + + } + //code to this point means query result is not good + NsharpLoadDialog ldDia = NsharpLoadDialog.getAccess(); + if(!stnQuery){ + ldDia.setAndOpenMb("Sounding query with lat/lon ("+lat+"/"+lon+") at "+timeLine+": Returned\n But without vlaid data"); + } + else{ + ldDia.setAndOpenMb("Sounding query with stn "+ stnStr+ "at lat/lon ("+lat+"/"+lon+") at "+timeLine+": Returned\n But without vlaid data"); + } + //return; + } + else + { + if(!stnQuery){ + System.out.println("mdlsoundingQueryByLatLon failed"); + NsharpLoadDialog ldDia = NsharpLoadDialog.getAccess(); + if(cube != null) + ldDia.setAndOpenMb("Sounding query with lat/lon ("+lat+"/"+lon+") at "+timeLine+": failed\nError status:"+ cube.getRtnStatus().toString()); + else + ldDia.setAndOpenMb("Sounding query with lat/lon ("+lat+"/"+lon+") at "+timeLine+": failed\nError status: NULL returned"); + } + else{ + System.out.println("mdlsoundingQueryByStn failed"); + NsharpLoadDialog ldDia = NsharpLoadDialog.getAccess(); + if(cube != null) + ldDia.setAndOpenMb("Sounding query with stn "+ stnStr+ "at lat/lon ("+lat+"/"+lon+") at "+timeLine+": failed\nError status:"+ cube.getRtnStatus().toString()); + else + ldDia.setAndOpenMb("Sounding query with stn "+ stnStr+ "at lat/lon ("+lat+"/"+lon+") at "+timeLine+": failed\nError status: NULL returned"); + } + //return; + } + } + ldDia.stopWaitCursor(); + NsharpEditor skewtEdt = NsharpEditor.createOrOpenEditor(); + NsharpResourceHandler skewRsc = skewtEdt.getRscHandler(); + //create station info structure + NsharpStationInfo stnInfo = new NsharpStationInfo(); + stnInfo.setSndType(selectedModel); + stnInfo.setLatitude(lat); + stnInfo.setLongitude(lon); + skewRsc.addRsc(soundingLysLstMap, stnInfo); + skewRsc.setSoundingType(selectedModel); + NsharpEditor.bringEditorToTop(); + } + private void createModelTypeList(){ + if(modelTypeList!=null) + modelTypeList.removeAll(); + if(sndTimeList!=null) + sndTimeList.removeAll(); + if(availableFileList!=null) + availableFileList.removeAll(); + ldDia.startWaitCursor(); + NcSoundingModel mdlNames = NcSoundingQuery.soundingModelNameQuery(gribDecoderName); + //System.out.println("return from NcSoundingQuery "); + if(mdlNames != null) + for(String MdlStr: mdlNames.getMdlList()){ + //System.out.println("model name:"+MdlStr); + modelTypeList.add(MdlStr); + } + ldDia.stopWaitCursor(); + } + /* + private void createModelTypeListOld(){ + if(modelTypeList!=null) + modelTypeList.removeAll(); + if(sndTimeList!=null) + sndTimeList.removeAll(); + if(availableFileList!=null) + availableFileList.removeAll(); + ldDia.startWaitCursor(); + Object[] mdlNames = NcSoundingQuery.soundingModelNameQueryOld(gribDecoderName); + //System.out.println("return from NcSoundingQuery "); + if(mdlNames != null) + for(Object MdlStr: mdlNames){ + //System.out.println("model name:"+MdlStr); + modelTypeList.add((String)MdlStr); + } + ldDia.stopWaitCursor(); + }*/ + public void createMdlDialogContents(){ + selectedFileList.clear(); + topGp = new Group(parent,SWT.SHADOW_ETCHED_IN); + topGp.setLayout( new GridLayout( 2, false ) ); + + ldDia.createSndTypeList(topGp); + + modelTypeGp = new Group(topGp, SWT.SHADOW_ETCHED_IN); + modelTypeGp.setText("Model Type"); + modelTypeGp.setFont(newFont); + modelTypeList = new org.eclipse.swt.widgets.List(modelTypeGp, SWT.BORDER | SWT.MULTI| SWT.V_SCROLL ); + modelTypeList.setBounds(modelTypeGp.getBounds().x, modelTypeGp.getBounds().y + NsharpConstants.labelGap , NsharpConstants.filelistWidth, NsharpConstants.listHeight ); + //query to get and add available sounding models from DB + modelTypeList.setFont(newFont); + createModelTypeList(); + /* + Object[] mdlNames = NcSoundingQuery.soundingModelNameQuery(gribDecoderName); + //System.out.println("return from NcSoundingQuery "); + if(mdlNames != null) + for(Object MdlStr: mdlNames){ + //System.out.println("model name:"+MdlStr); + modelTypeList.add((String)MdlStr); + }*/ + //create a selection listener to handle user's selection on list + modelTypeList.addListener ( SWT.Selection, new Listener () { + public void handleEvent (Event e) { + if (modelTypeList.getSelectionCount() > 0 ) { + selectedModel = modelTypeList.getSelection()[0]; + //System.out.println("selected sounding model is " + selectedModel); + createMDLAvailableFileList(); + } + } + } ); + Group gribGp = new Group(topGp, SWT.SHADOW_ETCHED_IN); + gribGp.setText("Database"); + gribGp.setFont(newFont); + gribGp.setLayout( new GridLayout( 2, false ) ); + Button ncgribBtn = new Button(gribGp, SWT.RADIO | SWT.BORDER); + ncgribBtn.setText("NCGrib"); + ncgribBtn.setEnabled( true ); + if(currentDb == DBType.NCGRIB) + ncgribBtn.setSelection(true); + ncgribBtn.setFont(newFont); + ncgribBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + gribDecoderName = NcSoundingQuery.NCGRIB_PLUGIN_NAME; + //query to get and add available sounding models from DB + currentDb = DBType.NCGRIB; + createModelTypeList(); + } + } ); + Button gribBtn = new Button(gribGp, SWT.RADIO | SWT.BORDER); + gribBtn.setText("Grib"); + gribBtn.setFont(newFont); + gribBtn.setEnabled( true ); + if(currentDb == DBType.GRIB) + gribBtn.setSelection(true); + gribBtn.setBounds(modelTypeGp.getBounds().x+ NsharpConstants.btnGapX, ncgribBtn.getBounds().y + ncgribBtn.getBounds().height+ NsharpConstants.btnGapY, NsharpConstants.btnWidth,NsharpConstants.btnHeight); + gribBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + gribDecoderName = NcSoundingQuery.GRIB_PLUGIN_NAME; + //query to get and add available sounding models from DB + currentDb = DBType.GRIB; + createModelTypeList(); + + } + } ); + /* + Button ncgribTestBtn = new Button(gribGp, SWT.RADIO | SWT.BORDER); + ncgribTestBtn.setText("NCGribTest"); + ncgribTestBtn.setEnabled( true ); + ncgribTestBtn.setSelection(false); + ncgribTestBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + gribDecoderName = NcSoundingQuery.NCGRIB_PLUGIN_NAME; + //query to get and add available sounding models from DB + createModelTypeListOld(); + } + } ); */ + timeBtn = new Button(topGp, SWT.CHECK | SWT.BORDER); + timeBtn.setText("00Z and 12Z only"); + timeBtn.setEnabled( true ); + timeBtn.setFont(newFont); + //timeBtn.setBounds(modelTypeGp.getBounds().x+ NsharpConstants.btnGapX, modelTypeGp.getBounds().y + modelTypeGp.getBounds().height+ NsharpConstants.btnGapY, NsharpConstants.btnWidth,NsharpConstants.btnHeight); + + timeBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(timeLimit) + timeLimit = false; + else + timeLimit = true; + + //refresh sounding list if file type is selected already + if(selectedModel!=null && selectedFileList.size() > 0){ + createMDLSndTimeList(selectedFileList); + } + + } + } ); + + //bottomGp = new Group(topGp,SWT.SHADOW_ETCHED_IN); + //bottomGp.setLayout( new GridLayout( 2, false ) ); + + availableFileGp = new Group(topGp,SWT.SHADOW_ETCHED_IN); + availableFileGp.setText("Available Grid files:"); + availableFileGp.setFont(newFont); + availableFileList = new org.eclipse.swt.widgets.List(availableFileGp, SWT.BORDER | SWT.MULTI| SWT.V_SCROLL ); + availableFileList.setBounds(availableFileGp.getBounds().x, availableFileGp.getBounds().y + NsharpConstants.labelGap , NsharpConstants.filelistWidth, NsharpConstants.listHeight*32/5 ); + availableFileList.setFont(newFont); + //create a selection listener to handle user's selection on list + availableFileList.addListener ( SWT.Selection, new Listener () { + private String selectedFile=null; + + public void handleEvent (Event e) { + if (availableFileList.getSelectionCount() > 0 ) { + selectedFileList.clear(); + for(int i=0; i < availableFileList.getSelectionCount(); i++) { + selectedFile = availableFileList.getSelection()[i]; + //System.out.println("selected sounding file is " + selectedFile); + selectedFileList.add(selectedFile); + } + createMDLSndTimeList(selectedFileList); + } + } + } ); + + //create Sounding Times widget list + sndTimeListGp = new Group(topGp,SWT.SHADOW_ETCHED_IN); + sndTimeListGp.setText("Sounding Times:"); + sndTimeListGp.setFont(newFont); + sndTimeList = new org.eclipse.swt.widgets.List(sndTimeListGp, SWT.BORDER | SWT.MULTI| SWT.V_SCROLL ); + sndTimeList.removeAll(); + sndTimeList.setFont(newFont); + sndTimeList.setBounds(sndTimeListGp.getBounds().x, sndTimeListGp.getBounds().y + NsharpConstants.labelGap, NsharpConstants.listWidth, NsharpConstants.listHeight *32/5); + sndTimeList.addListener ( SWT.Selection, new Listener () { + private String selectedSndTime=null; + public void handleEvent (Event e) { + if (sndTimeList.getSelectionCount() > 0 ) { + + selectedTimeList.clear(); + for(int i=0; i < sndTimeList.getSelectionCount(); i++) { + selectedSndTime = sndTimeList.getSelection()[i]; + //System.out.println("selected sounding time is " + selectedSndTime); + selectedTimeList.add(selectedSndTime); + } + NsharpMapResource.bringMapEditorToTop(); + } + } + }); + locationMainGp= new Group(parent,SWT.SHADOW_ETCHED_IN); + locationMainGp.setLayout( new GridLayout( 5, false ) ); + locationMainGp.setText("Location"); + locationMainGp.setFont(newFont); + latlonBtn = new Button(locationMainGp, SWT.RADIO | SWT.BORDER); + latlonBtn.setText("Lat/Lon"); + latlonBtn.setFont(newFont); + latlonBtn.setEnabled(true); + //latlonBtn.setBounds(locationMainGp.getBounds().x+ NsharpConstants.btnGapX, locationMainGp.getBounds().y + NsharpConstants.labelGap, 10, NsharpConstants.btnHeight); + latlonBtn.setSelection(true); + latlonBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + currentLocType = LocationType.LATLON; + locationText.setText(""); + } + } ); + stationBtn = new Button(locationMainGp, SWT.RADIO | SWT.BORDER); + stationBtn.setText("Station"); + stationBtn.setEnabled(true); + stationBtn.setFont(newFont); + stationBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + currentLocType = LocationType.STATION; + locationText.setText(""); + } + } ); + //locationInputGp = new Group(locationMainGp,SWT.SHADOW_ETCHED_IN); + locationLbl = new Label(locationMainGp, SWT.NONE | SWT.BORDER); + //locationLbl.setBounds(latlonBtn.getBounds().x, latlonBtn.getBounds().y + latlonBtn.getBounds().height+ NsharpConstants.btnGapY, bottomGp.getBounds().width/2,NsharpConstants.btnHeight); + locationLbl.setText("Location:"); + locationLbl.setFont(newFont); + locationText = new Text(locationMainGp, SWT.BORDER | SWT.SINGLE); + GridData data1 = new GridData (SWT.FILL,SWT.FILL, true, true); + locationText.setLayoutData (data1); + //locationText.setBounds(stationBtn.getBounds().x, locationLbl.getBounds().y,450,NsharpConstants.btnHeight); + locationText.setTextLimit(15); + locationText.setFont(newFont); + locationText.addListener (SWT.Verify, new Listener () { + public void handleEvent (Event e) { + String userInputStr = e.text; + if(userInputStr.length()>0){ + + if(currentLocType == LocationType.LATLON){ + //to make sure user enter digits and separated by ";" or ","only, if lat/lon is used + //System.out.println("user input str" + userInputStr); + if(userInputStr.length() ==1){ + char inputChar = userInputStr.charAt(0); + if (!('0' <= inputChar && inputChar <= '9') && inputChar != ';' && inputChar != ',' && inputChar != '-'&& inputChar != '.') { + e.doit = false; + return; + } + } + } else { + //do nothing when station type + + } + } + } + }); + + loadBtn = new Button(locationMainGp, SWT.PUSH); + loadBtn.setText("Load "); + loadBtn.setFont(newFont); + loadBtn.setEnabled( true ); + loadBtn.setBounds(locationMainGp.getBounds().x+ NsharpConstants.btnGapX, locationLbl.getBounds().y + locationLbl.getBounds().height+ NsharpConstants.btnGapY, NsharpConstants.btnWidth,NsharpConstants.btnHeight); + loadBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + NsharpLoadDialog ldDia = NsharpLoadDialog.getAccess(); + if(selectedTimeList != null && selectedTimeList.size() == 0){ + ldDia.setAndOpenMb("Time line(s) is not selected!\n Can not load data!"); + return; + } + String textStr = locationText.getText(); + if((textStr != null) && !(textStr.isEmpty())){ + //textStr = textStr.trim(); + if(currentLocType == LocationType.LATLON){ + //to make sure user enter digits and separated by ";" or ","only, if lat/lon is used + int dividerIndex = textStr.indexOf(';'); + boolean indexFound = false; + if(dividerIndex != -1 ) + indexFound = true; + if(indexFound == false){ + dividerIndex = textStr.indexOf(','); + if(dividerIndex != -1 ) + indexFound = true; + } + if(indexFound == true) { + try{ + lat = Float.parseFloat(textStr.substring(0, dividerIndex)); + lon = Float.parseFloat(textStr.substring(dividerIndex+1)); + if(lat >90 || lat < -90 || lon >180 || lon <-180){ + //System.out.println("bad lat/lon entered =" + textStr); + ldDia.setAndOpenMb("lat/lon out of range ("+textStr+") entered!\n"+GOOD_LATLON_STR); + locationText.setText(""); + return; + } + //System.out.println("user enter lat " + lat+ " lon " + lon); + queryAndLoadData(false); + + } catch (Exception e) { + System.out.println("queryAndLoadData failed at " + textStr); + //ldDia.setAndOpenMb("Bad lat/lon ("+textStr+") entered!\n"+GOOD_LATLON_STR); + //locationText.setText(""); + return; + } + + } + else { + //System.out.println("2 bad lat/lon entered =" + textStr); + ldDia.setAndOpenMb("Bad lat/lon ("+textStr+") entered!\n"+GOOD_LATLON_STR); + locationText.setText(""); + return; + } + } else if(currentLocType == LocationType.STATION){ + //query station lat /lon + textStr = textStr.trim(); // user may start with a space before enter a station id + stnStr = textStr.toUpperCase(Locale.getDefault()); + Coordinate co = SurfaceStationPointData.getStnCoordinate(stnStr); + lat = (float) co.y; + lon = (float) co.x; + //System.out.println("user enter station ="+ stnStr+" length="+ stnStr.length()+" lat " + lat+ " lon " + lon); + if(lat == SurfaceStationPointData.DEFAULT_LATLON){ + //System.out.println("bad stn id entered =" + textStr); + ldDia.setAndOpenMb("Bad station id ("+textStr+") entered!\n"+GOOD_STN_STR); + locationText.setText(""); + return; + } + queryAndLoadData(true); + } + + //ldDia.close(); + } + } + } ); + /*newTabBtn = new Button(parent, SWT.CHECK | SWT.BORDER); + newTabBtn.setText("new skewT editor"); + newTabBtn.setEnabled( true ); + //newTabBtn.setBounds(btnGp.getBounds().x+ NsharpConstants.btnGapX, browseBtn.getBounds().y + browseBtn.getBounds().height+ NsharpConstants.btnGapY, NsharpConstants.btnWidth,NsharpConstants.btnHeight); + newTabBtn.setFont(newFont); + newTabBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(newTabBtn.getSelection()) + newtab = true; + else + newtab = false; + + } + } ); + */ + } + + public void cleanup(){ + /* + if(gfsBtn != null){ + gfsBtn.removeListener(SWT.MouseUp, gfsBtn.getListeners(SWT.MouseUp)[0]); + gfsBtn.dispose(); + gfsBtn = null; + } + if(namBtn != null){ + namBtn.removeListener(SWT.MouseUp, namBtn.getListeners(SWT.MouseUp)[0]); + namBtn.dispose(); + namBtn = null; + } + if(ngmBtn != null){ + ngmBtn.removeListener(SWT.MouseUp, ngmBtn.getListeners(SWT.MouseUp)[0]); + ngmBtn.dispose(); + ngmBtn = null; + } + if(ruc2Btn != null){ + ruc2Btn.removeListener(SWT.MouseUp, ruc2Btn.getListeners(SWT.MouseUp)[0]); + ruc2Btn.dispose(); + ruc2Btn = null; + } + if(ukmetBtn != null){ + ukmetBtn.removeListener(SWT.MouseUp, ukmetBtn.getListeners(SWT.MouseUp)[0]); + ukmetBtn.dispose(); + ukmetBtn = null; + } */ + if(modelTypeList!=null){ + modelTypeList.removeListener(SWT.Selection, modelTypeList.getListeners(SWT.Selection)[0]); + modelTypeList.dispose(); + modelTypeList = null; + } + if(modelTypeGp!= null){ + modelTypeGp.dispose(); + modelTypeGp = null; + } + if(timeBtn != null){ + timeBtn.removeListener(SWT.MouseUp, timeBtn.getListeners(SWT.MouseUp)[0]); + timeBtn.dispose(); + timeBtn = null; + } + + NsharpLoadDialog ldDia = NsharpLoadDialog.getAccess(); + ldDia.cleanSndTypeList(); + + + + + if(availableFileList!= null){ + availableFileList.removeListener(SWT.Selection, availableFileList.getListeners(SWT.Selection)[0]); + availableFileList.dispose(); + availableFileList = null; + } + + if(availableFileGp!= null){ + availableFileGp.dispose(); + availableFileGp = null; + } + if(sndTimeList!= null){ + sndTimeList.removeListener(SWT.Selection, sndTimeList.getListeners(SWT.Selection)[0]); + sndTimeList.dispose(); + sndTimeList = null; + } + if(sndTimeListGp!= null){ + sndTimeListGp.dispose(); + sndTimeListGp = null; + } + if(bottomGp!= null){ + bottomGp.dispose(); + bottomGp = null; + } + if(topGp!= null){ + topGp.dispose(); + topGp = null; + } + + if(loadBtn != null){ + loadBtn.removeListener(SWT.MouseUp, loadBtn.getListeners(SWT.MouseUp)[0]); + loadBtn.dispose(); + loadBtn = null; + } + if(stationBtn != null){ + stationBtn.removeListener(SWT.MouseUp, stationBtn.getListeners(SWT.MouseUp)[0]); + stationBtn.dispose(); + stationBtn = null; + } + if(latlonBtn != null){ + latlonBtn.removeListener(SWT.MouseUp, latlonBtn.getListeners(SWT.MouseUp)[0]); + latlonBtn.dispose(); + latlonBtn = null; + } + if(locationText != null){ + locationText.removeListener(SWT.Verify, locationText.getListeners(SWT.Verify)[0]); + locationText.dispose(); + locationText = null; + } + + if(locationLbl!= null){ + locationLbl.dispose(); + locationLbl = null; + } + if(locationMainGp!= null){ + locationMainGp.dispose(); + locationMainGp = null; + } + /*if(newTabBtn != null){ + newTabBtn.removeListener(SWT.MouseUp, newTabBtn.getListeners(SWT.MouseUp)[0]); + newTabBtn.dispose(); + newTabBtn = null; + }*/ + + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpBoundaryMotionDialog.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpBoundaryMotionDialog.java new file mode 100644 index 0000000000..c3bde8774d --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpBoundaryMotionDialog.java @@ -0,0 +1,62 @@ +package gov.noaa.nws.ncep.ui.nsharp.view; +/** + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/23/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + +import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Shell; + +public class NsharpBoundaryMotionDialog extends Dialog { + private static NsharpBoundaryMotionDialog thisDialog = null; + public static NsharpBoundaryMotionDialog getAccess() { + return thisDialog; + } + protected NsharpBoundaryMotionDialog(Shell parentShell) { + super(parentShell); + thisDialog = this; + } + @Override + protected Control createDialogArea(Composite parent) { + Composite top; + top = (Composite) super.createDialogArea(parent); + + // Create the main layout for the shell. + GridLayout mainLayout = new GridLayout(2, false); + mainLayout.marginHeight = 3; + mainLayout.marginWidth = 3; + top.setLayout(mainLayout); + + // Initialize all of the menus, controls, and layouts + //createDialogContents(top); + + return top; + } + @Override + public boolean close() { + // TODO Auto-generated method stub + return super.close(); + } + @Override + public int open() { + // TODO Auto-generated method stub + return super.open(); + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpConfigDialog.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpConfigDialog.java new file mode 100644 index 0000000000..b942a0366b --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpConfigDialog.java @@ -0,0 +1,217 @@ +package gov.noaa.nws.ncep.ui.nsharp.view; +/** + * + * gov.noaa.nws.ncep.ui.nsharp.palette.NsharpConfigDialog + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 03/21/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + + +import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.jface.window.IShellProvider; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.PlatformUI; + + +public class NsharpConfigDialog extends Dialog { + private Button parameterBtn, dataDisplayBtn,dataPageBtn, timeLineBtn, stnBtn; + private static NsharpConfigDialog thisDialog=null; + private static NsharpParametersSelectionConfigDialog parameterSelDialog = null; + private static NsharpDataDisplayConfigDialog dataDislpayDialog = null; + private static NsharpDataPageConfigDialog dataPageDialog = null; + private static NsharpTimeLineConfigDialog timelineDialog = null; + private static NsharpStnConfigDialog stnDialog = null; + public NsharpConfigDialog(Shell parentShell) { + super(parentShell); + // TODO Auto-generated constructor stub + } + + public NsharpConfigDialog(IShellProvider parentShell) { + super(parentShell); + // TODO Auto-generated constructor stub + } + public static NsharpConfigDialog getInstance( Shell parShell){ + + if ( thisDialog == null ){ + thisDialog = new NsharpConfigDialog( parShell ); + } + + return thisDialog; + + } + + public void createDialogContents(Composite parent){ + parameterBtn = new Button(parent, SWT.PUSH); + parameterBtn.setText("Parameters Selection"); + parameterBtn.setEnabled( true ); + //graphBtn.setSize(btnWidth,pushbtnHeight); + parameterBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + parameterSelDialog = NsharpParametersSelectionConfigDialog.getInstance(shell); + if ( parameterSelDialog != null ) { + timeLineBtn.setEnabled( false ); + dataDisplayBtn.setEnabled(false); + stnBtn.setEnabled( false ); + dataPageBtn.setEnabled( false ); + parameterSelDialog.open(); + dataDisplayBtn.setEnabled(true); + timeLineBtn.setEnabled( true ); + stnBtn.setEnabled( true ); + dataPageBtn.setEnabled( true ); + } + } + } ); + dataDisplayBtn = new Button(parent, SWT.PUSH); + dataDisplayBtn.setText("Data Display"); + dataDisplayBtn.setEnabled( true ); + //lineBtn.setSize(btnWidth,pushbtnHeight); + dataDisplayBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + dataDislpayDialog = NsharpDataDisplayConfigDialog.getInstance(shell); + if ( dataDislpayDialog != null ) { + timeLineBtn.setEnabled( false ); + parameterBtn.setEnabled(false); + stnBtn.setEnabled( false ); + dataPageBtn.setEnabled( false ); + dataDislpayDialog.open(); + parameterBtn.setEnabled(true); + timeLineBtn.setEnabled( true ); + stnBtn.setEnabled( true ); + dataPageBtn.setEnabled( true ); + } + } + } ); + dataPageBtn = new Button(parent, SWT.PUSH); + dataPageBtn.setText("Data Page"); + dataPageBtn.setEnabled( true ); + //lineBtn.setSize(btnWidth,pushbtnHeight); + dataPageBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + dataPageDialog = NsharpDataPageConfigDialog.getInstance(shell); + if ( dataPageDialog != null ) { + timeLineBtn.setEnabled( false ); + parameterBtn.setEnabled(false); + stnBtn.setEnabled( false ); + dataDisplayBtn.setEnabled(false); + dataPageDialog.open(); + parameterBtn.setEnabled(true); + timeLineBtn.setEnabled( true ); + stnBtn.setEnabled( true ); + dataDisplayBtn.setEnabled(true); + } + } + } ); + timeLineBtn = new Button(parent, SWT.PUSH); + timeLineBtn.setText("Time Line Activation"); + timeLineBtn.setEnabled( true ); + //lineBtn.setSize(btnWidth,pushbtnHeight); + timeLineBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + timelineDialog = NsharpTimeLineConfigDialog.getInstance(shell); + if ( timelineDialog != null ) { + dataDisplayBtn.setEnabled(false); + parameterBtn.setEnabled(false); + stnBtn.setEnabled( false ); + dataPageBtn.setEnabled( false ); + timelineDialog.open(); + parameterBtn.setEnabled(true); + dataDisplayBtn.setEnabled(true); + stnBtn.setEnabled( true ); + dataPageBtn.setEnabled( true ); + } + } + } ); + stnBtn = new Button(parent, SWT.PUSH); + stnBtn.setText("Station Activation"); + stnBtn.setEnabled( true ); + //lineBtn.setSize(btnWidth,pushbtnHeight); + stnBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + stnDialog = NsharpStnConfigDialog.getInstance(shell); + if ( stnDialog != null ) { + dataDisplayBtn.setEnabled(false); + parameterBtn.setEnabled(false); + timeLineBtn.setEnabled( false ); + dataPageBtn.setEnabled( false ); + stnDialog.open(); + parameterBtn.setEnabled(true); + dataDisplayBtn.setEnabled(true); + timeLineBtn.setEnabled( true ); + dataPageBtn.setEnabled( true ); + } + } + } ); + } + @Override + public Control createDialogArea(Composite parent) { + Composite top; + top = (Composite) super.createDialogArea(parent); + + // Create the main layout for the shell. + GridLayout mainLayout = new GridLayout(1, true); + mainLayout.marginHeight = 3; + mainLayout.marginWidth = 3; + top.setLayout(mainLayout); + + // Initialize all of the menus, controls, and layouts + createDialogContents(top); + + return top; + } + + @Override + public void createButtonsForButtonBar(Composite parent) { + Button closeBtn = createButton(parent, IDialogConstants.CLOSE_ID, IDialogConstants.CLOSE_LABEL, + true); + closeBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + //System.out.println("OK listener is called"); + //NsharpSkewTResource skewtRsc = NsharpSkewTEditor.getActiveNsharpEditor().getNsharpSkewTDescriptor().getSkewtResource(); + close(); + } + } ); + + } + @Override + protected void configureShell( Shell shell ) { + super.configureShell( shell ); + shell.setText( "Nsharp Configuration" ); + shell.setSize(250, 300); + } + @Override + public int open( ) { + if ( this.getShell() == null ){ + this.create(); + } + this.getShell().setLocation(this.getShell().getParent().getLocation().x+1100, + this.getShell().getParent().getLocation().y+200); + return super.open(); + + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpDataDisplayConfigDialog.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpDataDisplayConfigDialog.java new file mode 100644 index 0000000000..9b2315496f --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpDataDisplayConfigDialog.java @@ -0,0 +1,573 @@ +package gov.noaa.nws.ncep.ui.nsharp.view; +/** + * + * gov.noaa.nws.ncep.ui.nsharp.palette.NsharpDataDisplayConfigDialog + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 03/21/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + +import gov.noaa.nws.ncep.ui.nsharp.NsharpConfigManager; +import gov.noaa.nws.ncep.ui.nsharp.NsharpConfigStore; +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.NsharpLineProperty; +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpEditor; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpResourceHandler; +import gov.noaa.nws.ncep.viz.common.ui.color.ColorMatrixSelector; + +import java.util.ArrayList; +import java.util.EnumMap; +import java.util.HashMap; +import java.util.Map; + + +import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.jface.util.IPropertyChangeListener; +import org.eclipse.jface.util.PropertyChangeEvent; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.PaintEvent; +import org.eclipse.swt.events.PaintListener; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.GC; +import org.eclipse.swt.graphics.RGB; +import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.layout.FormAttachment; +import org.eclipse.swt.layout.FormData; +import org.eclipse.swt.layout.FormLayout; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Canvas; +import org.eclipse.swt.widgets.Combo; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Shell; + +import com.raytheon.uf.viz.core.IGraphicsTarget.LineStyle; +import com.raytheon.uf.viz.core.exception.VizException; + +public class NsharpDataDisplayConfigDialog extends Dialog { + private Map styleMap = new EnumMap(LineStyle.class); + private LineStyle curLineStyle=LineStyle.SOLID; + private int curLineWidth=1; + private RGB curLineColor=null; + private NsharpLineProperty curLineProperty; + private static NsharpDataDisplayConfigDialog instance=null; + private ArrayList availLine = new ArrayList(); + private Combo selLineCombo; + private String seldLineName= ""; + private NsharpConfigStore configStore=null; + private Canvas currentLineAreaCanvas; + private Canvas linePreviewAreaCanvas; + private ColorMatrixSelector cms; + + public static NsharpDataDisplayConfigDialog getInstance(Shell parentShell) { + if(instance == null) + instance = new NsharpDataDisplayConfigDialog(parentShell); + return instance; + } + + public NsharpDataDisplayConfigDialog(Shell parentShell) { + super(parentShell); + styleMap.put(LineStyle.SOLID, new int[] { 4 }); // GEMPAK line type 1 + styleMap.put(LineStyle.SHORT_DASHED, new int[] { 4, 4 }); // GEMPAK line type 2 + styleMap.put(LineStyle.MEDIUM_DASHED, new int[] { 8, 8 }); // GEMPAK line type 3 + styleMap.put(LineStyle.LONG_DASH_SHORT_DASH, new int[] { 16, 8, 4, 8 }); // GEMPAK line type 4 + styleMap.put(LineStyle.LONG_DASHED, new int[] { 16, 8 }); // GEMPAK line type 5 + styleMap.put(LineStyle.LONG_DASH_THREE_SHORT_DASHES, new int[] { 16, 8, 4, 8, 4, 8, 4, 8 }); // GEMPAK line type 6 + styleMap.put(LineStyle.LONG_DASH_DOT, new int[] { 16, 8, 2, 8 }); // GEMPAK line type 7 + styleMap.put(LineStyle.LONG_DASH_THREE_DOTS, new int[] { 16, 8, 2, 8, 2, 8, 2, 8 }); // GEMPAK line type 8 + styleMap.put(LineStyle.MEDIUM_DASH_DOT, new int[] { 8, 8, 2, 8 }); // GEMPAK line type 9 + styleMap.put(LineStyle.DOTS, new int[] { 2, 4 }); // GEMPAK line type 10 + + instance = this; + for(int i=0; i < NsharpConstants.lineNameArray.length; i++) + availLine.add(NsharpConstants.lineNameArray[i]); + + NsharpConfigManager mgr =NsharpConfigManager.getInstance(); + configStore = mgr.retrieveNsharpConfigStoreFromFs(); + /*if (configStore== null) { + configStore = new NsharpConfigStore(); + configStore = setDefaultLineConfig(configStore); + configStore=NsharpParametersSelectionConfigDialog.setDefaultGraphConfig(configStore); + } + else if( configStore.getLinePropertyMap().size() == 0){ + configStore = setDefaultLineConfig(configStore); + }*/ + curLineProperty = configStore.getLinePropertyMap().get(availLine.get(0)); + curLineStyle =curLineProperty.getLineStyle(); + curLineWidth = curLineProperty.getLineWidth(); + curLineColor = curLineProperty.getLineColor(); + //curLineName = availLine.get(0); + } + + + public LineStyle getLineStyle() { + return curLineStyle; + } + + + public int getLineWidth() { + return curLineWidth; + } + + + public RGB getLineColor() { + return curLineColor; + } + + + + + private Composite createDialog(Composite composite) { + final Display display = composite.getDisplay(); + + FormLayout layout0 = new FormLayout(); + composite.setLayout(layout0); + + + // Lay out the various groups within the dialog + + Group linePreviewAreaGroup = new Group ( composite, SWT.SHADOW_NONE ); + linePreviewAreaGroup.setLayout(new FillLayout()); + + FormData formData0 = new FormData(); + formData0.top = new FormAttachment(5,0); + formData0.left = new FormAttachment(2,0); + formData0.width = 196; + formData0.height = 30; + linePreviewAreaGroup.setLayoutData(formData0); + + Group selectLineWidthGroup = new Group ( composite, SWT.SHADOW_NONE ); + selectLineWidthGroup.setText("Width"); + GridLayout lineWidthGridLayout = new GridLayout(); + lineWidthGridLayout.numColumns = 2; + lineWidthGridLayout.marginHeight = 18; + lineWidthGridLayout.marginWidth = 18; + lineWidthGridLayout.horizontalSpacing = 8; + lineWidthGridLayout.verticalSpacing = 8; + selectLineWidthGroup.setLayout(lineWidthGridLayout); + + FormData formData1 = new FormData(); + formData1.top = new FormAttachment(linePreviewAreaGroup, 16); + formData1.left = new FormAttachment(2,0); + selectLineWidthGroup.setLayoutData(formData1); + + Group selectLineStyleGroup = new Group ( composite, SWT.SHADOW_NONE ); + selectLineStyleGroup.setText("Style"); + GridLayout lineStyleGridLayout = new GridLayout(); + lineStyleGridLayout.numColumns = 2; + lineStyleGridLayout.marginHeight = 18; + lineStyleGridLayout.marginWidth = 18; + lineStyleGridLayout.horizontalSpacing = 8; + lineStyleGridLayout.verticalSpacing = 8; + selectLineStyleGroup.setLayout(lineStyleGridLayout); + + FormData formData2 = new FormData(); + formData2.top = new FormAttachment(selectLineWidthGroup, 16); + formData2.left = new FormAttachment(2,0); + selectLineStyleGroup.setLayoutData(formData2); + + Group selectLineColorGroup = new Group ( composite, SWT.SHADOW_NONE ); + selectLineColorGroup.setText("Color"); + + FormData formData5 = new FormData(); + formData5.top = new FormAttachment(5,0); + formData5.left = new FormAttachment(selectLineWidthGroup, 10); + formData5.right = new FormAttachment(98, 0); + formData5.height = 300; + selectLineColorGroup.setLayoutData(formData5); + + + final Color black = composite.getDisplay().getSystemColor(SWT.COLOR_BLACK); + final Color white = composite.getDisplay().getSystemColor(SWT.COLOR_WHITE); + + // Associate with each line style a list of segment lengths (in pixels) + // of the repeating pattern. Numbers are pixels on, pixels off, on, off, ... + // (Derived from similar structure in NMAP NxmLineA.c) + // CAUTION: Duplication (of a sort). This governs only local display of + // line patterns in this dialog (preview and line style selector buttons). + // Actual drawing of lines with these styles is up to the implementation + // of IGraphicsTarget being used. + + + // Line Preview Area + + linePreviewAreaCanvas = new Canvas(linePreviewAreaGroup, SWT.NONE); + + final int previewLineXmin = 16; + final int previewLineXmax = 180; + final int previewLineYctr = 16; + + linePreviewAreaCanvas.addPaintListener(new PaintListener() { + public void paintControl(PaintEvent event) { + GC gc = event.gc; + gc.setLineWidth(curLineWidth); + gc.setForeground(new Color(display, curLineColor)); + linePreviewAreaCanvas.setBackground( + curLineColor.getHSB()[2] > 0.2 ? black : white); + int x1 = previewLineXmin; + int x2 = previewLineXmin; + int [] segLengths = styleMap.get(curLineStyle); + while (x2 < previewLineXmax) + { + boolean draw = true; + for (int i : segLengths) + { + x2 = Math.min(x1 + i, previewLineXmax); + if (draw) + { + gc.drawLine(x1, previewLineYctr, x2, previewLineYctr); + } + if (x2 >= previewLineXmax) + { + break; + } + draw = !draw; + x1 = x2; + } + } + } + }); + + + // Parameters to give a uniform look to all line width/style buttons + + final int lineButtonHeight = 75; + final int lineButtonWidth = 15; + final int buttonLineXmin = 8; + final int buttonLineXmax = 68; + final int buttonLineYctr = 7; + + + // Line Width + + final Button[] selectLineWidthButtons = new Button[4]; + final int[] lineWidthButtonSequence = {0, 2, // ...for 2-column grid layout + 1, 3}; + for (int i : lineWidthButtonSequence) + { + selectLineWidthButtons[i] = new Button(selectLineWidthGroup, SWT.TOGGLE); + GridData gridData = new GridData(); + gridData.heightHint = lineButtonWidth; + gridData.widthHint = lineButtonHeight; + selectLineWidthButtons[i].setLayoutData(gridData); + selectLineWidthButtons[i].setData(i+1); + selectLineWidthButtons[i].setToolTipText("Width " + (i+1)); + selectLineWidthButtons[i].addPaintListener(new PaintListener() { + public void paintControl(PaintEvent event) { + GC gc = event.gc; + int width = (Integer) event.widget.getData(); + gc.setLineWidth(width); + gc.setForeground(black); + gc.drawLine(buttonLineXmin,buttonLineYctr,buttonLineXmax,buttonLineYctr); + } + }); + selectLineWidthButtons[i].addSelectionListener(new SelectionListener() + { + public void widgetSelected(SelectionEvent event) + { + selectLineWidthButtons[curLineWidth-1].setSelection(false); + curLineWidth= (Integer)event.widget.getData(); + linePreviewAreaCanvas.redraw(); + linePreviewAreaCanvas.update(); + } + public void widgetDefaultSelected(SelectionEvent event) + { + } + }); + } + selectLineWidthButtons[curLineWidth-1].setSelection(true); // set initial state + + // Line Style + + final Map lineStyleButtonMap = new EnumMap(LineStyle.class); + + final LineStyle [] lineStyleButtonSequence = { // ...for 2-column grid layout + LineStyle.DOTS, LineStyle.LONG_DASHED, + LineStyle.SOLID, LineStyle.LONG_DASH_THREE_SHORT_DASHES, + LineStyle.SHORT_DASHED, LineStyle.LONG_DASH_DOT, + LineStyle.MEDIUM_DASHED, LineStyle.LONG_DASH_THREE_DOTS, + LineStyle.LONG_DASH_SHORT_DASH, LineStyle.MEDIUM_DASH_DOT, + }; + + for (LineStyle ls : lineStyleButtonSequence) + { + Button lineStyleButton = new Button(selectLineStyleGroup, SWT.TOGGLE); + lineStyleButtonMap.put(ls, lineStyleButton); + GridData gridData = new GridData(); + gridData.heightHint = lineButtonWidth; + gridData.widthHint = lineButtonHeight; + lineStyleButton.setLayoutData(gridData); + lineStyleButton.setData(ls); + lineStyleButton.setToolTipText(ls.name()); + lineStyleButton.addPaintListener(new PaintListener() { + public void paintControl(PaintEvent event) { + GC gc = event.gc; + gc.setLineWidth(1); + gc.setForeground(black); + LineStyle ls = (LineStyle) event.widget.getData(); + int [] segLengths = styleMap.get(ls); + int x1 = buttonLineXmin; + int x2 = buttonLineXmin; + while (x2 < buttonLineXmax) + { + boolean draw = true; + for (int i : segLengths) + { + x2 = Math.min(x1 + i, buttonLineXmax); + if (draw) + { + gc.drawLine(x1, buttonLineYctr, x2, buttonLineYctr); + } + if (x2 >= buttonLineXmax) + { + break; + } + draw = !draw; + x1 = x2; + } + } + } + }); + lineStyleButton.addSelectionListener(new SelectionListener() + { + public void widgetSelected(SelectionEvent event) + { + lineStyleButtonMap.get(curLineStyle).setSelection(false); + curLineStyle=( (LineStyle)event.widget.getData() ); + linePreviewAreaCanvas.redraw(); + linePreviewAreaCanvas.update(); + } + public void widgetDefaultSelected(SelectionEvent event) + { + } + }); + } + lineStyleButtonMap.get( curLineStyle).setSelection(true); // set initial state + + + // Line Color + + cms = new ColorMatrixSelector(selectLineColorGroup, false, false, + 28, 92, 18, 22, 28, 80, 4, 8, 5); + cms.setColorValue(curLineColor); + cms.addListener(new IPropertyChangeListener() { + public void propertyChange(PropertyChangeEvent event) { + curLineColor = cms.getColorValue() ; + linePreviewAreaCanvas.redraw(); + linePreviewAreaCanvas.update(); + } + }); + return composite; + } + @Override + protected void configureShell( Shell shell ) { + super.configureShell( shell ); + shell.setText( "Nsharp Data Display" ); + + } + @Override + public Control createDialogArea(Composite parent) { + Composite top; + top = (Composite) super.createDialogArea(parent); + + GridLayout mainLayout = new GridLayout(1, true); + mainLayout.marginHeight = 1; + mainLayout.marginWidth = 1; + top.setLayout(mainLayout); + + Composite lineComp = new Composite(top, SWT.NONE); + GridLayout gl = new GridLayout(2, false); + gl.horizontalSpacing = 10; + lineComp.setLayout(gl); + GridData gd = new GridData(GridData.FILL_HORIZONTAL); + lineComp.setLayoutData(gd); + + //Label selCmapLbl = new Label( lineComp, SWT.None ); + //selCmapLbl.setText("Nsharp Trace Lines:"); + selLineCombo = new Combo( lineComp, SWT.DROP_DOWN ); + selLineCombo.setItems( availLine.toArray(new String[0] ) ); + selLineCombo.select(0); + + selLineCombo.addSelectionListener( new SelectionAdapter() { + public void widgetSelected(SelectionEvent event) { + String seldLine = selLineCombo.getText(); + if( seldLine.equals( seldLineName ) ) { + return; + } + + seldLineName = seldLine; + curLineProperty = configStore.getLinePropertyMap().get(seldLineName); + if(curLineProperty == null){ + //this only happened when configuration xml does not have this line property + curLineProperty = new NsharpLineProperty(); + configStore.getLinePropertyMap().put(seldLineName, curLineProperty); + } + curLineStyle =curLineProperty.getLineStyle(); + curLineWidth = curLineProperty.getLineWidth(); + curLineColor = curLineProperty.getLineColor(); + //curLineName = seldLineName; + linePreviewAreaCanvas.redraw(); + linePreviewAreaCanvas.update(); + currentLineAreaCanvas.redraw(); + currentLineAreaCanvas.update(); + cms.setColorValue(curLineColor); + } + }); + Composite currentLineComp = new Composite( lineComp, SWT.NONE ); + FormLayout layout0 = new FormLayout(); + currentLineComp.setLayout(layout0); + Group currentLineAreaGroup = new Group ( currentLineComp, SWT.SHADOW_NONE ); + currentLineAreaGroup.setLayout(new FillLayout()); + + FormData formData0 = new FormData(); + formData0.top = new FormAttachment(5,0); + formData0.left = new FormAttachment(2,0); + formData0.width = 130; + formData0.height = 30; + currentLineAreaGroup.setLayoutData(formData0); + currentLineAreaCanvas = new Canvas(currentLineAreaGroup, SWT.NONE); + + final int previewLineXmin = 10;//16; + final int previewLineXmax = 120;//180; + final int previewLineYctr = 16; + final Display display = top.getDisplay(); + final Color black = display.getSystemColor(SWT.COLOR_BLACK); + final Color white = display.getSystemColor(SWT.COLOR_WHITE); + currentLineAreaCanvas.addPaintListener(new PaintListener() { + public void paintControl(PaintEvent event) { + GC gc = event.gc; + gc.setLineWidth(curLineWidth); + gc.setForeground(new Color(display, curLineColor)); + currentLineAreaCanvas.setBackground( + curLineColor.getHSB()[2] > 0.2 ? black : white); + int x1 = previewLineXmin; + int x2 = previewLineXmin; + int [] segLengths = styleMap.get(curLineStyle); + while (x2 < previewLineXmax) + { + boolean draw = true; + for (int i : segLengths) + { + x2 = Math.min(x1 + i, previewLineXmax); + if (draw) + { + gc.drawLine(x1, previewLineYctr, x2, previewLineYctr); + } + if (x2 >= previewLineXmax) + { + break; + } + draw = !draw; + x1 = x2; + } + } + } + }); + + Composite lineEditComp = new Composite( top, SWT.NONE ); + createDialog(lineEditComp); + + //top.pack(); + + return null; + } + @Override + public int open() { + if ( this.getShell() == null ){ + this.create(); + } + + return super.open(); + } + private void notifyEditor(){ + NsharpEditor editor = NsharpEditor.getActiveNsharpEditor(); + if (editor != null) { + NsharpResourceHandler rsc = editor.getRscHandler(); + //rsc.setWindBarbDistance(windBarbDistance); + rsc.setLinePropertyMap(configStore.getLinePropertyMap()); + editor.refresh(); + } + } + @Override + public void createButtonsForButtonBar(Composite parent) { + Button appBtn = createButton(parent, IDialogConstants.INTERNAL_ID, + "Apply", false); + appBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + //System.out.println("appBtn listener is called"); + curLineProperty.setLineColor(curLineColor); + curLineProperty.setLineStyle(curLineStyle); + curLineProperty.setLineWidth(curLineWidth); + currentLineAreaCanvas.redraw(); + currentLineAreaCanvas.update(); + //configStore.getLinePropertyMap().put(curLineName, curLineProperty); + notifyEditor(); + } + } ); + Button saveBtn = createButton(parent, IDialogConstants.INTERNAL_ID, + "Save", false); + saveBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + //System.out.println("saveBtn listener is called"); + curLineProperty.setLineColor(curLineColor); + curLineProperty.setLineStyle(curLineStyle); + curLineProperty.setLineWidth(curLineWidth); + currentLineAreaCanvas.redraw(); + currentLineAreaCanvas.update(); + //configStore.getLinePropertyMap().put(curLineName, curLineProperty); + notifyEditor(); + NsharpConfigManager mgr =NsharpConfigManager.getInstance(); + /* for testing + NsharpConfigStore st = configStore; + HashMap linePropertyMap = new HashMap(); + for(int i=0; i < NsharpConstants.lineNameArray.length; i++){ + NsharpLineProperty tempLine = new NsharpLineProperty(); + tempLine.setLineWidth(1); + tempLine.setLineStyle(LineStyle.SOLID); + tempLine.setLineColor(new RGB(155,0,220)); + linePropertyMap.put(NsharpConstants.lineNameArray[i], tempLine); + } + st.setLinePropertyMap(linePropertyMap);*/ + try { + mgr.saveConfigStoreToFs(configStore); + } catch (VizException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } ); + Button closeBtn = createButton(parent, IDialogConstants.CLOSE_ID, IDialogConstants.CLOSE_LABEL, + true); + closeBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + close(); + instance=null; + + } + } ); + + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpDataPageConfigDialog.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpDataPageConfigDialog.java new file mode 100644 index 0000000000..8758676c12 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpDataPageConfigDialog.java @@ -0,0 +1,296 @@ +package gov.noaa.nws.ncep.ui.nsharp.view; + +import gov.noaa.nws.ncep.ui.nsharp.NsharpConfigManager; +import gov.noaa.nws.ncep.ui.nsharp.NsharpConfigStore; +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.NsharpDataPageProperty; +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpEditor; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpResourceHandler; + +import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.MessageBox; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Text; + +import com.raytheon.uf.viz.core.exception.VizException; + +public class NsharpDataPageConfigDialog extends Dialog { + private MessageBox mb; + private NsharpConfigStore configStore=null; + private NsharpConfigManager mgr; + private NsharpDataPageProperty dpp; + private NsharpDataPageProperty editingDpp; + private static NsharpDataPageConfigDialog instance=null; + //this array is used to store page display "order" + private int[] pageOrderNumberArray = new int[NsharpConstants.PAGE_MAX_NUMBER+1];//element 0 is dummy one + private int[] editingOrderNumberArray = new int[NsharpConstants.PAGE_MAX_NUMBER+1];//element 0 is dummy one + + private int lblWidth = 200; + private int lblHeight = 20; + private int textWidth = 80; + private Label curLbl; + private Text newText; + private Text[] newOrderTextArray= new Text[NsharpConstants.PAGE_MAX_NUMBER+1];//element 0 is dummy one + private Label[] curOrderLblArray = new Label[NsharpConstants.PAGE_MAX_NUMBER+1];//element 0 is dummy one + private Label[] pageNameLblArray = new Label[NsharpConstants.PAGE_MAX_NUMBER+1];//element 0 is dummy one + public static NsharpDataPageConfigDialog getInstance(Shell parentShell) { + if(instance == null) + instance = new NsharpDataPageConfigDialog(parentShell); + return instance; + } + protected NsharpDataPageConfigDialog(Shell parentShell) { + super(parentShell); + instance = this; + mgr =NsharpConfigManager.getInstance(); + configStore = mgr.retrieveNsharpConfigStoreFromFs(); + dpp = configStore.getDataPageProperty(); + pageOrderNumberArray[NsharpConstants.PAGE_SUMMARY1 ] = dpp.getSummary1Page(); + pageOrderNumberArray[NsharpConstants.PAGE_SUMMARY2 ] = dpp.getSummary2Page(); + pageOrderNumberArray[NsharpConstants.PAGE_PARCEL_DATA ] = dpp.getParcelDataPage(); + pageOrderNumberArray[NsharpConstants.PAGE_THERMODYNAMIC_DATA ] = dpp.getThermodynamicDataPage(); + pageOrderNumberArray[NsharpConstants.PAGE_OPC_DATA ] = dpp.getOpcDataPage(); + pageOrderNumberArray[NsharpConstants.PAGE_MIXING_HEIGHT] = dpp.getMixingHeightPage(); + pageOrderNumberArray[NsharpConstants.PAGE_STORM_RELATIVE ] = dpp.getStormRelativePage(); + pageOrderNumberArray[NsharpConstants.PAGE_MEAN_WIND ] = dpp.getMeanWindPage(); + pageOrderNumberArray[NsharpConstants.PAGE_CONVECTIVE_INITIATION ] = dpp.getConvectiveInitiationPage(); + pageOrderNumberArray[NsharpConstants.PAGE_SEVERE_POTENTIAL ] = dpp.getSeverePotentialPage(); + editingOrderNumberArray = pageOrderNumberArray.clone(); + mb = new MessageBox(parentShell, SWT.ICON_WARNING + | SWT.OK ); + + } + /* + * (non-Javadoc) + * + * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell) + */ + @Override + protected void configureShell( Shell shell ) { + super.configureShell( shell ); + shell.setText( "Data Page Display Order Configuration" ); + + } + @Override + public int open( ) { + if ( this.getShell() == null ){ + this.create(); + } + this.getShell().setLocation(this.getShell().getParent().getLocation().x+1100, + this.getShell().getParent().getLocation().y+200); + return super.open(); + + } + @Override + public void createButtonsForButtonBar(Composite parent) { + // create OK button but using Apply label for applying user entered data + //Chin note: when "apply" button is selected or Return key is entered, + // okPressed() will be called. So, handle event at one place, ie.e at okPressed(). + createButton(parent, IDialogConstants.OK_ID, + "Apply", + true); + + Button saveBtn = createButton(parent, IDialogConstants.INTERNAL_ID, + "Save",false); + saveBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + //System.out.println("save listener is called, also apply changes"); + if(sanityCheck()== false){ + System.out.println("sanity check failed"); + return; + } + applyChange(); + dpp.setSummary1Page(pageOrderNumberArray[NsharpConstants.PAGE_SUMMARY1 ]); + dpp.setSummary2Page(pageOrderNumberArray[NsharpConstants.PAGE_SUMMARY2 ]); + dpp.setParcelDataPage(pageOrderNumberArray[NsharpConstants.PAGE_PARCEL_DATA ]); + dpp.setThermodynamicDataPage(pageOrderNumberArray[NsharpConstants.PAGE_THERMODYNAMIC_DATA ] ); + dpp.setOpcDataPage(pageOrderNumberArray[NsharpConstants.PAGE_OPC_DATA ]); + dpp.setMixingHeightPage(pageOrderNumberArray[NsharpConstants.PAGE_MIXING_HEIGHT]); + dpp.setStormRelativePage(pageOrderNumberArray[NsharpConstants.PAGE_STORM_RELATIVE ] ); + dpp.setMeanWindPage(pageOrderNumberArray[NsharpConstants.PAGE_MEAN_WIND ] ); + dpp.setConvectiveInitiationPage(pageOrderNumberArray[NsharpConstants.PAGE_CONVECTIVE_INITIATION ] ); + dpp.setSeverePotentialPage(pageOrderNumberArray[NsharpConstants.PAGE_SEVERE_POTENTIAL ] ); + try { + //save to xml + mgr.saveConfigStoreToFs(configStore); + } catch (VizException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + + } + } ); + + Button canBtn = createButton(parent, IDialogConstants.CLOSE_ID, + IDialogConstants.CLOSE_LABEL, false); + canBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + //System.out.println("close listener is called"); + close(); + } + } ); + } + /* + * To make sure user does not configure same page order number for different page. + */ + private boolean sanityCheck(){ + for(int i=1; i <= NsharpConstants.PAGE_MAX_NUMBER; i++){ + String textStr = newOrderTextArray[i ].getText(); + if((textStr != null) && !(textStr.isEmpty())){ + if(!textStr.contains("-") || textStr.length() > 1){ + int pnum = Integer.decode(textStr); + if(pnum >=1 && pnum <= NsharpConstants.PAGE_MAX_NUMBER) + editingOrderNumberArray[i]= pnum; + else{ + System.out.println("wrong order ="+pnum); + mb.setMessage( "Wrong Configuration! Order number should be within [1-10]"); + mb.open(); + return false; + } + } + } + } + for(int i=1; i<= NsharpConstants.PAGE_MAX_NUMBER; i++){ + for(int j=1; j< NsharpConstants.PAGE_MAX_NUMBER; j++){ + if((i!=j) && editingOrderNumberArray[i]==editingOrderNumberArray[j]){ + mb.setMessage( "Wrong Configuration! Multiple pages with same order."); + mb.open(); + return false; + } + } + } + return true; + } + private void applyChange(){ + pageOrderNumberArray = editingOrderNumberArray.clone(); + for(int i=1; i <= NsharpConstants.PAGE_MAX_NUMBER; i++){ + curOrderLblArray[i].setText(Integer.toString(pageOrderNumberArray[i])); + } + NsharpEditor editor = NsharpEditor.getActiveNsharpEditor(); + if (editor != null) { + NsharpResourceHandler rsc = editor.getRscHandler(); + editingDpp = new NsharpDataPageProperty(); + editingDpp.setSummary1Page(pageOrderNumberArray[NsharpConstants.PAGE_SUMMARY1 ]); + editingDpp.setSummary2Page(pageOrderNumberArray[NsharpConstants.PAGE_SUMMARY2 ]); + editingDpp.setParcelDataPage(pageOrderNumberArray[NsharpConstants.PAGE_PARCEL_DATA ]); + editingDpp.setThermodynamicDataPage(pageOrderNumberArray[NsharpConstants.PAGE_THERMODYNAMIC_DATA ] ); + editingDpp.setOpcDataPage(pageOrderNumberArray[NsharpConstants.PAGE_OPC_DATA ]); + editingDpp.setMixingHeightPage(pageOrderNumberArray[NsharpConstants.PAGE_MIXING_HEIGHT]); + editingDpp.setStormRelativePage(pageOrderNumberArray[NsharpConstants.PAGE_STORM_RELATIVE ] ); + editingDpp.setMeanWindPage(pageOrderNumberArray[NsharpConstants.PAGE_MEAN_WIND ] ); + editingDpp.setConvectiveInitiationPage(pageOrderNumberArray[NsharpConstants.PAGE_CONVECTIVE_INITIATION ] ); + editingDpp.setSeverePotentialPage(pageOrderNumberArray[NsharpConstants.PAGE_SEVERE_POTENTIAL ] ); + rsc.setDataPageProperty(editingDpp); + editor.refresh(); + } + } + private void setDisplay(){ + int pageIndex = 0; + for(int orderNum=1; orderNum <= NsharpConstants.PAGE_MAX_NUMBER; orderNum++){ + for(int j=1; j <= NsharpConstants.PAGE_MAX_NUMBER; j++){ + //find the page with order number equal to orderNum + if(orderNum == pageOrderNumberArray[j]){ + pageIndex = j; + break; + } + } + curOrderLblArray[orderNum].setText(Integer.toString(pageOrderNumberArray[pageIndex])); + newOrderTextArray[orderNum].setText(Integer.toString(pageOrderNumberArray[pageIndex])); + pageNameLblArray[orderNum].setText(NsharpConstants.PAGE_NAME_ARRAY[pageIndex]); + } + } + @Override + public void okPressed() { + //"Enter" key is pressed, or "Apply" button is pressed. + //Chin: handle user entered configuration, sanity checking and apply its changes. + //System.out.println("CR is pressed"); + setReturnCode(OK); + if(sanityCheck()== false){ + System.out.println("sanity check failed"); + return; + } + applyChange(); + } + + @Override + protected Control createDialogArea(Composite parent) { + Composite top; + top = (Composite) super.createDialogArea(parent); + // Create the main layout for the shell. + GridLayout mainLayout = new GridLayout(1, false); + mainLayout.marginHeight = 3; + mainLayout.marginWidth = 3; + top.setLayout(mainLayout); + Group configGp = new Group(top, SWT.SHADOW_ETCHED_IN | SWT.NO_RADIO_GROUP); + Label nameLbl = new Label(configGp, SWT.BORDER ); + nameLbl.setText(" Page Name"); + nameLbl.setBounds(configGp.getBounds().x, configGp.getBounds().y, lblWidth,lblHeight); + Label curOrderLbl = new Label(configGp, SWT.BORDER ); + curOrderLbl.setText("Current"); + curOrderLbl.setBounds(nameLbl.getBounds().x+nameLbl.getBounds().width, nameLbl.getBounds().y,textWidth,lblHeight); + Label newOrderLbl =new Label(configGp, SWT.BORDER ); + //newOrderLbl.setText(Integer.toString(summary1Page)); + newOrderLbl.setBounds(curOrderLbl.getBounds().x+curOrderLbl.getBounds().width, nameLbl.getBounds().y,textWidth,lblHeight); + newOrderLbl.setText("New Order"); + Label prevLbl = nameLbl; + Label pageLbl; + for(int i=1; i <= NsharpConstants.PAGE_MAX_NUMBER; i++){ + pageLbl = pageNameLblArray[i] = new Label(configGp, SWT.BORDER ); + pageLbl.setText(NsharpConstants.PAGE_NAME_ARRAY[i]); + pageLbl.setBounds(configGp.getBounds().x, prevLbl.getBounds().y+lblHeight, lblWidth,lblHeight); + curLbl = curOrderLblArray[i] =new Label(configGp, SWT.BORDER ); + curLbl.setText(Integer.toString(pageOrderNumberArray[i])); + curLbl.setBounds(pageLbl.getBounds().x+pageLbl.getBounds().width, pageLbl.getBounds().y,textWidth,lblHeight); + newText = newOrderTextArray[i] = new Text(configGp, SWT.BORDER | SWT.SINGLE); + newText.setBounds(curLbl.getBounds().x+curLbl.getBounds().width, pageLbl.getBounds().y,textWidth,lblHeight); + newText.setEditable(true); + newText.setText(Integer.toString(pageOrderNumberArray[i])); + //to make sure user enter digits only + newText.addListener (SWT.Verify, new EditListener (newText) ); + prevLbl = pageLbl; + } + return top; + } + public class EditListener implements Listener { + Text newOrderText; + public void handleEvent (Event e) { + String string = e.text; + char [] chars = new char [string.length ()]; + string.getChars (0, chars.length, chars, 0); + //System.out.println("entered s="+ string); + //Chin note: when "Delete", "Backspace" entered, this handler will be called, but + // its chars.length = 0 + if(chars.length == 1 && newOrderText!=null){ + if(chars [0] == '-' ){ + //if "-" is not first char + String textStr = newOrderText.getText(); + if((textStr != null) && (textStr.length() >= 1) && (textStr.contains("-"))){ + e.doit = false; + return; + } + }else if (!('0' <= chars [0] && chars [0] <= '9')) { + e.doit = false; + return; + } + + } + } + + public EditListener(Text newOrderText) { + super(); + this.newOrderText = newOrderText; + } + + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpEditDataDialog.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpEditDataDialog.java new file mode 100644 index 0000000000..d78e9f1181 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpEditDataDialog.java @@ -0,0 +1,492 @@ +/** + * + * gov.noaa.nws.ncep.ui.nsharp.palette.NsharpEditDataDialog + * + * This java class performs the NSHARP NsharpLoadDialog functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/26/2011	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.view; + +import java.util.List; + +import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingLayer; +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpEditor; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpResourceHandler; + +import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.jface.window.IShellProvider; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.FormAttachment; +import org.eclipse.swt.layout.FormData; +import org.eclipse.swt.layout.FormLayout; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.MessageBox; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Text; +import org.eclipse.ui.PlatformUI; + +public class NsharpEditDataDialog extends Dialog { + //private NcepLogger logger = NcepLoggerManager.getNcepCaveLogger(this.getClass()); + private List curSoundingLayerList; + private Text curTempText, newTempText, curDewText, newDewText, curWSpText, newWSpText, curWDirText, newWDirText, + curPressText, newPressText;//curHeightText, newHeightText; + private static NsharpEditDataDialog thisDialog=null; + private org.eclipse.swt.widgets.List pressureList; + private String tempStr="",dewStr="", wspStr="", wdirStr=""; + private org.eclipse.swt.graphics.Color lightGrey = new org.eclipse.swt.graphics.Color(Display.getDefault(), 211,211,211); + private enum EditType { + SELECTED_LEVEL, NEW_LEVEL + } + private EditType currentEditType; + private int selIndex=-1; + + protected Composite top; + public NsharpEditDataDialog(Shell parentShell) { + super(parentShell); + // TODO Auto-generated constructor stub + } + + public NsharpEditDataDialog(IShellProvider parentShell) { + super(parentShell); + // TODO Auto-generated constructor stub + } + + public static NsharpEditDataDialog getInstance( Shell parShell){ + + if ( thisDialog == null ){ + thisDialog = new NsharpEditDataDialog( parShell ); + //System.out.println("new parcel dialog INSTANCE created"); + + } + else { + //System.out.println("current load dialog INSTANCE returned!"); + } + + return thisDialog; + + } + + private void createDialogContents( Composite parent) { + top = parent;//(Composite) super.createDialogArea(parent); + + // Create the main layout for the shell. + GridLayout mainLayout = new GridLayout(1, false); + mainLayout.marginHeight = 3; + mainLayout.marginWidth = 3; + top.setLayout(mainLayout); + + Group topGp = new Group(top,SWT.SHADOW_OUT); + topGp.setLayout( new GridLayout(2, false) ); + + Group pressureListGp = new Group(topGp,SWT.SHADOW_ETCHED_IN); + pressureListGp.setText("Pressure Level:"); + pressureList = new org.eclipse.swt.widgets.List(pressureListGp, SWT.BORDER | SWT.V_SCROLL ); + pressureList.setBounds(pressureListGp.getBounds().x,pressureListGp.getBounds().y+ NsharpConstants.labelGap, NsharpConstants.listWidth, NsharpConstants.listHeight ); + NsharpResourceHandler rsc=null; + if(NsharpEditor.getActiveNsharpEditor()!= null) + rsc = NsharpEditor.getActiveNsharpEditor().getRscHandler(); + if (rsc != null && rsc.getSoundingLys() !=null) { + curSoundingLayerList = rsc.getSoundingLys(); + for(NcSoundingLayer layer: curSoundingLayerList){ + pressureList.add(Float.toString(layer.getPressure())); + } + } + //create a selection listener to handle user's selection on list + pressureList.addListener ( SWT.Selection, new Listener () { + public void handleEvent (Event e) { + selIndex = pressureList.getSelectionIndex(); + } + }); + Group buttonGp = new Group(topGp,SWT.SHADOW_OUT); + buttonGp.setLayout( new GridLayout(1, false) ); + buttonGp.setText("Edit Option:"); + Button useSelectedBtn = new Button(buttonGp, SWT.PUSH); + useSelectedBtn.setText(" Edit Selected Level "); + useSelectedBtn.setEnabled( true ); + useSelectedBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + currentEditType = EditType.SELECTED_LEVEL; + if(selIndex != -1){ + NcSoundingLayer selLevelSounding = curSoundingLayerList.get(selIndex); + curTempText.setText( ""+selLevelSounding.getTemperature()); + curDewText.setText("" + selLevelSounding.getDewpoint()); + curWSpText.setText("" + selLevelSounding.getWindSpeed()); + curWDirText.setText("" + selLevelSounding.getWindDirection()); + curPressText.setText(""+selLevelSounding.getPressure()); + newTempText.setText( ""+selLevelSounding.getTemperature()); + newDewText.setText("" + selLevelSounding.getDewpoint()); + newWSpText.setText("" + selLevelSounding.getWindSpeed()); + newWDirText.setText("" + selLevelSounding.getWindDirection()); + newPressText.setText(""+selLevelSounding.getPressure()); + } + } + } ); + Button addNewLevelBtn = new Button(buttonGp, SWT.PUSH); + addNewLevelBtn.setText(" Add New Level "); + addNewLevelBtn.setEnabled( true ); + addNewLevelBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + currentEditType = EditType.NEW_LEVEL; + curTempText.setText( " N/A "); + curDewText.setText(" N/A " ); + curWSpText.setText(" N/A " ); + curWDirText.setText(" N/A "); + curPressText.setText(" N/A "); + newTempText.setText( ""); + newDewText.setText("" ); + newWSpText.setText(""); + newWDirText.setText(""); + newPressText.setText(""); + } + } ); + + + Group top_form = new Group(top,SWT.SHADOW_ETCHED_IN); + FormLayout formlayout = new FormLayout() ; + formlayout.marginRight = 20; + formlayout.marginLeft = 20; + top_form.setLayout( formlayout ); + + Listener positiveNumberListeener = new Listener() { + public void handleEvent(Event e) { + String string = e.text; + char [] chars = new char [string.length()]; + string.getChars (0, chars.length, chars, 0); + //to make sure user enter digits only + for (int i=0; i tp) || winDir >= 360.0 ){ + Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + MessageBox mb = new MessageBox(shell, SWT.ICON_WARNING + | SWT.OK); + + mb.setMessage( "Invalid Data! (Dew Point > Temperature or Wind direction > 360)"); + mb.open(); + } + else { + NsharpEditor editor = NsharpEditor.getActiveNsharpEditor(); + if(editor != null){ + NsharpResourceHandler rscHandler = editor.getRscHandler(); + switch(currentEditType) { + case NEW_LEVEL: + rscHandler.addNewLayer(tp, dp, winSpd, winDir, press); + break; + case SELECTED_LEVEL: + rscHandler.updateLayer(selIndex,tp, dp, winSpd, winDir, press); + break; + default: + return; + } + editor.refresh(); + } + } + } + catch (Exception e) { + //System.out.println("bad input entered " ); + return; + } + } + private boolean verifyNewlevelInput() { + + if((newWDirText.getText().isEmpty()) || curWDirText.getText().isEmpty() + || curWSpText.getText().isEmpty() || curDewText.getText().isEmpty() + || curTempText.getText().isEmpty()){ + return false; + } + return true; + } + @Override + public void createButtonsForButtonBar(Composite parent) { + // create Apply and Close buttons by default + Button okBtn = createButton(parent, IDialogConstants.CLIENT_ID, "Apply", true); + okBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + //System.out.println("OK listener is called"); + if(currentEditType == EditType.NEW_LEVEL && verifyNewlevelInput()== false){ + Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + MessageBox mb = new MessageBox(shell, SWT.ICON_WARNING + | SWT.OK); + + mb.setMessage( "Missing input data! Should fill up all 5 entries!"); + mb.open(); + return; + } + handleEditing(); + //move close from okPressed() to here + //close(); + } + } ); + + Button canBtn = createButton(parent, IDialogConstants.CANCEL_ID, + IDialogConstants.CLOSE_LABEL, false); + canBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + //currentParcel = prevParcel ; + } + } ); + } + + + //@Override + //This function name is miss leading.... + //This function is called when CR is preseed, but NOT "ok" button. + //Override this and move close() from here to OK button Listener + //So, we only close when "OK" is pressed, not "CR". + //public void okPressed() { + //System.out.println("CR is pressed"); + // setReturnCode(OK); + //close(); + //} + + @Override + public int open( ) { + //System.out.println("parcel dialog opened"); + if ( this.getShell() == null ){ + this.create(); + } + return super.open(); + + } + + @Override + public boolean close() { + + thisDialog=null; + return super.close(); + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpHandleArchiveFile.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpHandleArchiveFile.java new file mode 100644 index 0000000000..a084a8bb37 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpHandleArchiveFile.java @@ -0,0 +1,262 @@ +package gov.noaa.nws.ncep.ui.nsharp.view; +/** + * + * gov.noaa.nws.ncep.ui.nsharp.view.NsharpHandleArchiveFile + * + * This java class performs the NSHARP loading archived files functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 12/23/2010	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingLayer; +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.natives.NsharpNativeConstants; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.StringTokenizer; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.FileDialog; +import org.eclipse.swt.widgets.MessageBox; +import org.eclipse.swt.widgets.Shell; + +public class NsharpHandleArchiveFile { + public static void openArchiveFile(Shell shell){ + /* + * A typical saved file contents is as following.... + * PFC NAMSND KSWF 2010-12-12 11:00:00 LAT=41.52 LON=-74.19 + * PRESSURE HGHT TEMP DWPT WDIR WSPD OMEG + * 997.500000 129.000000 -3.250006 -3.381190 10.619656 1.627882 0.000000 + * ........ + */ + FileDialog fd = new FileDialog(shell, SWT.MULTI);//SWT.OPEN); + fd.setText("Open"); + fd.setFilterPath("C:/"); + String[] filterExt = { "*.nsp", "*","*.txt", "*.doc", ".rtf", "*.*" }; + fd.setFilterExtensions(filterExt); + String selected; + String code= fd.open(); + if(code == null){ + return; + } + String [] selecteds = fd.getFileNames(); + + //if(selected!= null){ + if(selecteds!= null && selecteds.length > 0){ + Map> soundingLysLstMap = new HashMap>(); + //List timeList = new ArrayList(); + String timeLine ; + String stnDispInfoStr; + //read in archive file + InputStream is = null; + NsharpStationInfo stninfo = new NsharpStationInfo(); + String sndType="N/A"; + try { + for( int j = 0; j < selecteds.length; j++){ + selected = ""; + StringBuilder strContent = new StringBuilder(""); + selected = selected + fd.getFilterPath(); + if (selected.charAt(selected.length() - 1) != File.separatorChar) { + selected = selected + (File.separatorChar); + } + selected = selected + selecteds[j]; + //System.out.println(selected); + + is = new FileInputStream(selected); + int byteread; + while((byteread = is.read()) != -1){ + strContent.append((char)byteread); + //System.out.println((char)byteread); + } + //System.out.println(strContent); + + //hash map, use stn display info as key + //Chin-T Map> soundingLysLstMap = new HashMap>(); + timeLine = new String(""); + stnDispInfoStr = new String(""); + List sndLyList = new ArrayList(); + NcSoundingLayer sndLy = null; + StringTokenizer st = new StringTokenizer(strContent.toString()); + int i =0; + int loadSndTypeIndex = 1; + int sndTypeIndex = 2; + int dataStartIndex = 15; + int stnInfoIndexEnd = 5; + int stnLatIndex = 6; + int stnLonIndex = 7; + int latlonTokenHdrLength = 4; // either "LAT=" or "LON=" + int dataCycleLength = 7; + while (st.hasMoreTokens()) { + i++; + //System.out.println(st.nextToken()); + //Chin's NOTE: Our input file should have the same format as the text information shown with "Show Text" + // button. The "Save" Button will save text data in same format as well. + //first token is stn display info string, + //2nd and 3rd token are time line. + //4th and 5th tokens are LAT=xxx, LON=xxx of stn + //token 6 to 12 are PRESSURE, HGHT, TEMP, DWPT, WDIR, WSPD, OMEG words. We don't need to read them. + //From token 13, we have pressure, height, temp,..., omega, pressure, height,..omega. + //These weather data will be repeated every 7 tokens. + String tok = st.nextToken(); + if(i == loadSndTypeIndex){ + if(NsharpLoadDialog.getAccess()!= null ){ + if(tok.equals("PFC")) + NsharpLoadDialog.getAccess().setActiveLoadSoundingType(NsharpLoadDialog.PFC_SND); + else if(tok.equals("MDL")) + NsharpLoadDialog.getAccess().setActiveLoadSoundingType(NsharpLoadDialog.MODEL_SND); + else + NsharpLoadDialog.getAccess().setActiveLoadSoundingType(NsharpLoadDialog.OBSER_SND); + } + //System.out.println("loadsnd type "+ tok); + } + else if(i == sndTypeIndex){ + sndType = tok; + stninfo.setSndType(sndType); + //System.out.println("snd type "+ sndType); + } + else if (i > sndTypeIndex && i<= stnInfoIndexEnd){ + + //stn display info + stnDispInfoStr = stnDispInfoStr + tok + " "; + if( i >=3){ + //time line + timeLine = timeLine + tok + " "; + } + } else if (i == stnLatIndex){ + float lat=0; + if(tok.length() > latlonTokenHdrLength) { + lat = Float.parseFloat(tok.substring(latlonTokenHdrLength)); + } + stninfo.setLatitude(lat); + } else if (i == stnLonIndex){ + float lon=0; + if(tok.length() > latlonTokenHdrLength) { + lon = Float.parseFloat(tok.substring(latlonTokenHdrLength)); + } + stninfo.setLongitude(lon); + } else if (i >=dataStartIndex){ + + if((i-dataStartIndex)%dataCycleLength ==0){ + sndLy = new NcSoundingLayer(); + sndLyList.add(sndLy); + if( Float.isNaN(Float.parseFloat(tok) )) + sndLy.setPressure(NsharpNativeConstants.NSHARP_NATIVE_INVALID_DATA); + else + sndLy.setPressure(Float.parseFloat(tok)); + + }else if((i-dataStartIndex)%dataCycleLength ==1){ + if( Float.isNaN(Float.parseFloat(tok) )) + sndLy.setGeoHeight(NsharpNativeConstants.NSHARP_NATIVE_INVALID_DATA); + else + sndLy.setGeoHeight(Float.parseFloat(tok)); + }else if((i-dataStartIndex)%dataCycleLength ==2){ + if( Float.isNaN(Float.parseFloat(tok) )) + sndLy.setTemperature(NsharpNativeConstants.NSHARP_NATIVE_INVALID_DATA); + else + sndLy.setTemperature(Float.parseFloat(tok)); + }else if((i-dataStartIndex)%dataCycleLength ==3){ + if( Float.isNaN(Float.parseFloat(tok) )) + sndLy.setDewpoint(NsharpNativeConstants.NSHARP_NATIVE_INVALID_DATA); + else + sndLy.setDewpoint(Float.parseFloat(tok)); + }else if((i-dataStartIndex)%dataCycleLength ==4){ + if( Float.isNaN(Float.parseFloat(tok) )) + sndLy.setWindDirection(NsharpNativeConstants.NSHARP_NATIVE_INVALID_DATA); + else + sndLy.setWindDirection(Float.parseFloat(tok)); + }else if((i-dataStartIndex)%dataCycleLength ==5){ + if( Float.isNaN(Float.parseFloat(tok) )) + sndLy.setWindSpeed(NsharpNativeConstants.NSHARP_NATIVE_INVALID_DATA); + else + sndLy.setWindSpeed(Float.parseFloat(tok)); + }else if((i-dataStartIndex)%dataCycleLength ==6){ + if( Float.isNaN(Float.parseFloat(tok) )) + sndLy.setOmega(NsharpNativeConstants.NSHARP_NATIVE_INVALID_DATA); + else + sndLy.setOmega(Float.parseFloat(tok)); + + } + + } + //System.out.println("line " + i + "="+ tok); + + } + //System.out.println("total line " + i); + //System.out.println("time line " + timeLine + " stn disp info = " + stnDispInfo); + if(sndLyList.size()> 0) + //Remove sounding layers that not used by NSHARP, and assume first layer is sfc layer from input data + sndLyList = NsharpDataHandling.organizeSoundingDataForShow(sndLyList, sndLyList.get(0).getGeoHeight()); + //minimum rtnSndList size will be 2 (50 & 75 mb layers), but that is not enough + // We need at least 2 regular layers for plotting + if(sndLyList != null && sndLyList.size() > 4) + soundingLysLstMap.put(stnDispInfoStr, sndLyList); + } + if(soundingLysLstMap.size()>0){ + // create an editor NsharpSkewTEditor + NsharpEditor editor = NsharpEditor.createOrOpenEditor(); + NsharpResourceHandler rsc = editor.getRscHandler(); + rsc.addRsc(soundingLysLstMap, stninfo); + rsc.setSoundingType(sndType); + NsharpEditor.bringEditorToTop(); + } + else { + //Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + MessageBox mb = new MessageBox(shell, SWT.ICON_WARNING + | SWT.OK); + mb.setMessage("Invalid sounding data retrieved from archive file!!"); + mb.open(); + } + //test + //textToShow=""; + //for (NcSoundingLayer layer: sndLyList){ + // tempText = String.format("%7.2f\t%8.2f %7.2f %7.2f %6.2f %6.2f %9.6f\n", layer.getPressure(), + // layer.getGeoHeight(),layer.getTemperature(),layer.getDewpoint(), layer.getWindDirection(), + // layer.getWindSpeed(), layer.getOmega()); + // textToShow = textToShow + tempText; + //} + //System.out.println("Endof openArchiveFile"); + //end test + } catch (FileNotFoundException e) { + + e.printStackTrace(); + } catch (IOException e) { + + e.printStackTrace(); + } catch (NumberFormatException e) { + System.out.println("number format exception happened"); + e.printStackTrace(); + } + finally { + if (is != null) { + try { + is.close(); + } catch (IOException ioe) { + System.out.println("Could not close input file "); + } + } + } + } + + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpLoadDialog.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpLoadDialog.java new file mode 100644 index 0000000000..9048826b90 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpLoadDialog.java @@ -0,0 +1,430 @@ +/** + * + * gov.noaa.nws.ncep.ui.nsharp.view.NsharpLoadDialog + * + * This java class performs the NSHARP NsharpLoadDialog functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 03/23/2010	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.view; + + +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +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.display.map.NsharpMapResource; +import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Cursor; +import org.eclipse.swt.graphics.Font; +import org.eclipse.swt.graphics.FontData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.MessageBox; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Text; +import com.raytheon.uf.viz.core.exception.VizException; + +public class NsharpLoadDialog extends Dialog { + + private final static int DIALOG_WIDTH = 350; + private final static int DIALOG_HEIGHT = 920; + + protected Composite top; + private static Composite dialogParent; + private static NsharpLoadDialog INSTANCE = null; + private static Shell shell; + private org.eclipse.swt.widgets.List soundingTypeList; + public static final String[] soundingTypeStringArray = { + "Observed Soundings" , "Model Soundings", "PFC Soundings", "Archive Files","ACARS Soundings" + }; + // define index to loadStringArray + public static final int OBSER_SND = 0; + public static final int MODEL_SND = 1; + public static final int PFC_SND = 2; + public static final int ARCHIVE = 3; + public static final int ACARS_SND = 4; + private ObservedSoundingDialogContents obsDialog; + private PfcSoundingDialogContents pfcDialog; + private ModelSoundingDialogContents mdlDialog; + private Group soundingTypeGp, acarsGp; + private int activeLoadSoundingType; + private Text text1; + private MessageBox mb; + private Cursor waitCursor=null; + private Font newFont; + + public Font getNewFont() { + return newFont; + } + public ObservedSoundingDialogContents getObsDialog() { + return obsDialog; + } + public PfcSoundingDialogContents getPfcDialog() { + return pfcDialog; + } + public void setAndOpenMb(String msg) { + if (mb != null) { + mb.setMessage(msg); + try { + mb.open(); + }catch (Exception e) { + mb = new MessageBox(shell, SWT.ICON_WARNING + | SWT.OK); + mb.setMessage(msg); + mb.open(); + //e.printStackTrace(); + } + } + } + public ModelSoundingDialogContents getMdlDialog() { + return mdlDialog; + } + public void createSndTypeList(Group TopLoadGp) { + soundingTypeGp = new Group(TopLoadGp,SWT.SHADOW_ETCHED_IN); + soundingTypeGp.setText("Sounding Type"); + soundingTypeGp.setFont(newFont); + soundingTypeList = new org.eclipse.swt.widgets.List(soundingTypeGp, SWT.SINGLE | SWT.V_SCROLL ); + soundingTypeList.setBounds(soundingTypeGp.getBounds().x + NsharpConstants.btnGapX, soundingTypeGp.getBounds().y +NsharpConstants.labelGap, NsharpConstants.filelistWidth, NsharpConstants.listHeight); + soundingTypeList.setFont(newFont); + for(String loadStr : soundingTypeStringArray){ + soundingTypeList.add( loadStr ); + } + //create a selection listener to handle user's selection on list + soundingTypeList.addListener ( SWT.Selection, new Listener () { + private String selectedProduct=null; + public void handleEvent (Event e) { + if (soundingTypeList.getSelectionCount() > 0 ) { + + selectedProduct = soundingTypeList.getSelection()[0]; + NsharpMapResource nsharpMapResource = NsharpMapResource.getOrCreateNsharpMapResource();//NsharpLoadDialog.getAccess().getNsharpMapResource(); + nsharpMapResource.setPoints(null); + NsharpEditor editor = NsharpEditor.getActiveNsharpEditor(); + if(editor!=null) + editor.refresh(); + //shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + + if(selectedProduct.equals(soundingTypeStringArray[OBSER_SND])){ + //System.out.println("OBSER_SND enter"); + + if(activeLoadSoundingType != OBSER_SND){ + cleanupDialog(activeLoadSoundingType); //clean up before resetting activeLoadType + activeLoadSoundingType = OBSER_SND; + obsDialog.createObsvdDialogContents(); + //shell.setSize(DIALOG_WIDTH, DIALOG_HEIGHT); + dialogParent.pack(); + dialogParent.layout(true); + dialogParent.redraw(); + soundingTypeList.setSelection(OBSER_SND); + } + } + else if(selectedProduct.equals(soundingTypeStringArray[MODEL_SND])){ + //System.out.println("MODEL_SND enter"); + if(activeLoadSoundingType != MODEL_SND) { + cleanupDialog(activeLoadSoundingType);//clean up before resetting activeLoadType + activeLoadSoundingType = MODEL_SND; + mdlDialog.createMdlDialogContents(); + dialogParent.pack(); + dialogParent.layout(true); + dialogParent.redraw(); + soundingTypeList.setSelection(MODEL_SND); + + } + } + else if(selectedProduct.equals(soundingTypeStringArray[PFC_SND])){ + //System.out.println("PFC_SND enter"); + if(activeLoadSoundingType != PFC_SND){ + cleanupDialog(activeLoadSoundingType); //clean up before resetting activeLoadType + activeLoadSoundingType = PFC_SND; + pfcDialog.createPfcDialogContents(); + dialogParent.pack(); + dialogParent.layout(true); + dialogParent.redraw(); + soundingTypeList.setSelection(PFC_SND); + + } + + } + else if(selectedProduct.equals(soundingTypeStringArray[ARCHIVE])){ + //System.out.println("ARCHIVE enter"); + + if(activeLoadSoundingType != ARCHIVE) { + cleanupDialog(activeLoadSoundingType);//clean up before resetting activeLoadType + activeLoadSoundingType = ARCHIVE; + NsharpHandleArchiveFile.openArchiveFile(shell); + close(); + } + + } + else if(selectedProduct.equals(soundingTypeStringArray[ACARS_SND])){ + //System.out.println("ACARS_SND enter"); + if(activeLoadSoundingType != ACARS_SND) { + cleanupDialog(activeLoadSoundingType);//clean up before resetting activeLoadType + activeLoadSoundingType = ACARS_SND; + //setShellSize(false); + acarsGp = new Group(dialogParent,SWT.SHADOW_ETCHED_IN); + acarsGp.setLayout( new GridLayout( 1, false ) ); + createSndTypeList(acarsGp); + text1 = new Text(acarsGp, SWT.MULTI | SWT.BORDER | SWT.WRAP ); + text1.setText("Acars Soundings\nis still under\ndevelopment!"); + dialogParent.pack(); + dialogParent.layout(true); + dialogParent.redraw(); + soundingTypeList.setSelection(ACARS_SND); + + } + } + } + } + }); + } + public void cleanSndTypeList(){ + if(soundingTypeList!= null){ + soundingTypeList.removeListener(SWT.Selection, soundingTypeList.getListeners(SWT.Selection)[0]); + soundingTypeList.dispose(); + soundingTypeList = null; + } + if(soundingTypeGp!=null){ + soundingTypeGp.dispose(); + soundingTypeGp=null; + } + } + + private void cleanSelf(){ + + if(text1 != null){ + text1.dispose(); + text1 = null; + } + } + + private void cleanupDialog(int activeLoadType){ + switch (activeLoadType) { + case OBSER_SND: + obsDialog.cleanup(); + break; + case MODEL_SND: + mdlDialog.cleanup(); + break; + case PFC_SND: + pfcDialog.cleanup(); + break; + case ACARS_SND: + if(text1 != null){ + text1.dispose(); + text1 = null; + } + if(acarsGp!= null){ + acarsGp.dispose(); + acarsGp = null; + } + break; + case ARCHIVE: + break; + default: + break; + } + + } + + public void setActiveLoadSoundingType(int activeLoadSoundingType) { + this.activeLoadSoundingType = activeLoadSoundingType; + } + public int getActiveLoadSoundingType() { + return activeLoadSoundingType; + } + + + + static int count = 0; + + public static NsharpLoadDialog getAccess() { + return INSTANCE; + } + + public NsharpLoadDialog(Shell parentShell)throws VizException { + super(parentShell); + // set modeless, so mouse button can be used by others + this.setShellStyle(SWT.TITLE | SWT.MODELESS | SWT.CLOSE ); + + //System.out.println("loadDia constructed"); + activeLoadSoundingType = OBSER_SND; + + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell) + */ + @Override + protected void configureShell( Shell shell ) { + super.configureShell( shell ); + NsharpLoadDialog.shell = shell; + shell.setSize(DIALOG_WIDTH, DIALOG_HEIGHT); + shell.setText( "Load" ); + mb = new MessageBox(shell, SWT.ICON_WARNING + | SWT.OK); + + mb.setMessage( "User Input Error!"); + Font font = shell.getFont(); + FontData[] fontData = font.getFontData(); + for (int i = 0; i < fontData.length; i++) { + fontData[i].setHeight(7); + //fontData[i].setName("courier"); + } + newFont = new Font(font.getDevice(), fontData); + shell.setFont(newFont); + } + + private void createLoadContents(Composite parent) { + NsharpMapResource nsharpMapResource = NsharpMapResource.getOrCreateNsharpMapResource();//NsharpLoadDialog.getAccess().getNsharpMapResource(); + nsharpMapResource.setPoints(null); + NsharpEditor editor = NsharpEditor.getActiveNsharpEditor(); + if (editor != null) { + NsharpResourceHandler rsc = editor.getRscHandler(); + rsc.cleanUpRsc(); + editor.refresh(); + } + dialogParent = parent; + obsDialog = new ObservedSoundingDialogContents(dialogParent); + pfcDialog = new PfcSoundingDialogContents(dialogParent); + mdlDialog = new ModelSoundingDialogContents(dialogParent); + switch(activeLoadSoundingType){ + case MODEL_SND: + mdlDialog.createMdlDialogContents(); + break; + case PFC_SND: + pfcDialog.createPfcDialogContents(); + break; + default: //OBSER_SND is default for all other cases, also set activeLoadSoundingType to OBSER_SND + obsDialog.createObsvdDialogContents(); + activeLoadSoundingType = OBSER_SND; + break; + } + + soundingTypeList.setSelection(activeLoadSoundingType); + + } + + /** + * Creates the dialog area + */ + @Override + public Control createDialogArea(Composite parent) { + + top = (Composite) super.createDialogArea(parent); + + // Create the main layout for the shell. + GridLayout mainLayout = new GridLayout(1, false); + mainLayout.marginHeight = 3; + mainLayout.marginWidth = 3; + + //top.setLayout(mainLayout); + //System.out.println("createDialogArea called"); + // Initialize all of the menus, controls, and layouts + createLoadContents(top); + shell.setSize(DIALOG_WIDTH, DIALOG_HEIGHT); + if(waitCursor==null) + waitCursor = new Cursor( top.getDisplay(), SWT.CURSOR_WAIT); + return top; + } + + + @Override + public int open( ) { + //System.out.println("loadDia opened"); + + if ( this.getShell() == null ){ + this.create(); + } + this.getShell().setLocation(this.getShell().getParent().getLocation().x+1100, + this.getShell().getParent().getLocation().y+200); + NsharpMapResource.bringMapEditorToTop(); + return super.open(); + + } + @Override + public boolean close() { + NsharpMapResource nsharpMapResource = NsharpMapResource.getMapRsc(); + if(nsharpMapResource!=null) + nsharpMapResource.setPoints(null); + //System.out.println("loadDia closed"); + cleanSelf(); + cleanupDialog(activeLoadSoundingType); + //INSTANCE = null; + if(waitCursor!=null) + waitCursor.dispose(); + waitCursor=null; + newFont.dispose(); + return (super.close()); + } + + public boolean closeDiaOnly() { + cleanSelf(); + return (super.close()); + } + + //Only use Cancel button but NOT ok button + @Override + public void createButtonsForButtonBar(Composite parent) { + + // create Cancel buttons by default, but use close label + Button cancelBtn = createButton(parent, IDialogConstants.CANCEL_ID, + IDialogConstants.CLOSE_LABEL, false); + + + //cancelBtn.setBounds(cancelBtn.getBounds().x, cancelBtn.getBounds().y+DIALOG_HEIGHT, 20, 10); + //System.out.println("createButtonsForButtonBar cancelBtn bound"+cancelBtn.getBounds()); + } + + + + public static NsharpLoadDialog getInstance( Shell parShell){ + //System.out.println("getInstance called"); + if ( INSTANCE == null ){ + try { + INSTANCE = new NsharpLoadDialog( parShell ); + //System.out.println("new load dialog INSTANCE created"); + } catch (VizException e) { + e.printStackTrace(); + } + + } + return INSTANCE; + + } + + //public void setShellSize(boolean big){ + // if(big == true) { + + // } + // else { + // shell.setSize(DIALOG_WIDTH, DIALOG_HEIGHT-100); + // } + //} + public void startWaitCursor(){ + if(waitCursor!=null) + top.setCursor(waitCursor); + } + public void stopWaitCursor(){ + top.setCursor(null); + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpPaletteAction.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpPaletteAction.java new file mode 100644 index 0000000000..2e1ba1284d --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpPaletteAction.java @@ -0,0 +1,73 @@ +/** + * + * gov.noaa.nws.ncep.ui.nsharp.palette.NsharpPaletteAction + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 03/23/2010	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.view; + + + +import gov.noaa.nws.ncep.ui.nsharp.display.map.NsharpMapResource; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.ui.IViewPart; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.PlatformUI; + +public class NsharpPaletteAction extends AbstractHandler { + + @Override + public Object execute(ExecutionEvent arg0) throws ExecutionException { + + /* + * The viewID string is in the XML file for NSHARP extension point. + */ + + IWorkbenchPage wpage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); + + IViewPart vpart = wpage.findView( "gov.noaa.nws.ncep.ui.nsharp" ); + + try { + + if ( vpart == null ){ + + vpart = wpage.showView( "gov.noaa.nws.ncep.ui.nsharp" ); + //Chin MERGE moved this here from the NsharpPaletteWindow so we can open the view without an editor. + if (PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage() != null) { + NsharpMapResource nsharpMapResource = NsharpMapResource.getOrCreateNsharpMapResource(); + nsharpMapResource.setPoints(null); + } + + } + else { + + if ( ! wpage.isPartVisible(vpart) ) vpart = wpage.showView( "gov.noaa.nws.ncep.ui.nsharp" ); + + } + } + catch (Exception e) { + + e.printStackTrace(); + + } + + return null; + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpPaletteWindow.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpPaletteWindow.java new file mode 100644 index 0000000000..a3806bf7ab --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpPaletteWindow.java @@ -0,0 +1,812 @@ +/** + * + * gov.noaa.nws.ncep.ui.nsharp.palette.NsharpPaletteWindow + * + * This java class performs the NSHARP GUI construction. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 03/16/2010	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.view; + +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +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.display.map.NsharpMapResource; +import gov.noaa.nws.ncep.ui.nsharp.view.NsharpLoadDialog; +import gov.noaa.nws.ncep.ui.nsharp.view.NsharpUnloadDialog; +import gov.noaa.nws.ncep.viz.ui.display.NCMapEditor; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.DisposeEvent; +import org.eclipse.swt.events.DisposeListener; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.Font; +import org.eclipse.swt.graphics.FontData; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +//import org.eclipse.swt.layout.RowData; +import org.eclipse.swt.layout.RowLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.MessageBox; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IPartListener; +import org.eclipse.ui.IViewSite; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.part.ViewPart; + +//import com.raytheon.uf.viz.core.drawables.IFont; +import com.raytheon.uf.viz.core.drawables.IRenderableDisplay; +import com.raytheon.uf.viz.core.drawables.ResourcePair; +import com.raytheon.viz.ui.UiUtil; + + +public class NsharpPaletteWindow extends ViewPart implements SelectionListener, +DisposeListener, IPartListener{ + private MessageBox mb ; + protected Button loadBtn, unloadBtn, overlayBtn, interpBtn,dataEditBtn, compareStnBtn,compareTmBtn, graphEditBtn,graphModeBtnSkew, graphModeBtnIcing,graphModeBtnTurb; + private Shell shell; + private boolean overlayIsOn=false, compareStnIsOn=false, compareTmIsOn=false; + protected boolean interpolateIsOn=false, editGraphOn=false; + private static String INTP_OFF = " Interp(off) "; + private static String INTP_ON = " Interp(on) "; + private static String COMP_STN_OFF= "CompStn(off)"; + private static String COMP_STN_ON= "CompStn(on) "; + private static String COMP_TM_OFF= "CompTm(off)"; + private static String COMP_TM_ON= "CompTm(on) "; + private static String OVLY_OFF= "Ovrlay2(off) "; + private static String OVLY_ON= "Ovrlay2(on) "; + protected static String EDIT_GRAPH_OFF= "EditGraph(off)"; + protected static String EDIT_GRAPH_ON= "EditGraph(on) "; + private IWorkbenchPage page; + private NsharpPrintHandle printHandle; + private Font newFont ; + private boolean isEditorVisible=true; + private static NsharpPaletteWindow instance; + private static int currentGraphMode= NsharpConstants.GRAPH_SKEWT; + + public static NsharpPaletteWindow getInstance() { + return instance; + } + public static int getCurrentGraphMode() { + return currentGraphMode; + } + private Color colorGrey = new Color(Display.getDefault(), 211,211,211); + private Color colorButtonOriginalBg; + + public void setAndOpenMb(String msg) { + if (mb != null) { + mb.setMessage(msg); + try { + mb.open(); + }catch (Exception e) { + + //e.printStackTrace(); + } + } + } + public NsharpPaletteWindow() { + super(); + instance = this; + //System.out.println("NsharpPaletteWindow condtructed!!"); + printHandle = NsharpPrintHandle.getPrintHandle(); + shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + + mb = new MessageBox(shell, SWT.ICON_WARNING + | SWT.OK ); + mb.setMessage( "Data is not loaded yet!"); + } + + /** + * Invoked by the workbench to initialize this View. + */ + public void init( IViewSite site ) { + //System.out.println("NsharpPaletteWindow inited!!"); + try { + + super.init( site ); + + } catch ( PartInitException pie ) { + + pie.printStackTrace(); + + } + + page = site.getPage(); + page.addPartListener(this); + + NsharpMapResource.registerMouseHandler(); + //Chin : to fix Ticket#11034:::: + //get several control information back from SkewT resource, in the case that + //NsharpPaletteWindow view was disposed and re-constructed while SkewT resource is still alive. + //This case applied to D2D implementation. + NsharpResourceHandler rsc = getRscHandler(); + if(rsc!= null) { + interpolateIsOn = rsc.isInterpolateIsOn(); + overlayIsOn = rsc.isOverlayIsOn(); + compareStnIsOn = rsc.isCompareStnIsOn(); + editGraphOn = rsc.isEditGraphOn(); + } + + } + + /** + * Disposes resource. invoked by the workbench + */ + public void dispose() { + //System.out.println("NsharpPaletteWindow dispose() called!! isEditorVisible="+ isEditorVisible); + if ( ! isEditorVisible ) { + NsharpMapResource.unregisterMouseHandler(); + return; + } + else { + super.dispose(); + currentGraphMode= NsharpConstants.GRAPH_SKEWT; + isEditorVisible = false; + NCMapEditor editor = NsharpMapResource.getMapEditor(); + if(editor!=null){ + for ( IRenderableDisplay display : UiUtil.getDisplaysFromContainer(editor) ) { + //System.out.println("display " + display.toString()); + for ( ResourcePair rp : display.getDescriptor().getResourceList() ) { + if ( rp.getResource() instanceof NsharpMapResource ) { + NsharpMapResource rsc = (NsharpMapResource)rp.getResource(); + rsc.unload(); + display.getDescriptor().getResourceList().removePreRemoveListener(rsc); + + } + } + } + } + if(newFont!= null){ + newFont.dispose(); + newFont=null; + } /* + * remove the workbench part listener + */ + page.removePartListener(this); + + try{ + if(NsharpLoadDialog.getAccess()!= null){ + NsharpLoadDialog.getAccess().close(); + } + }catch (Exception e) { + + } + instance= null; + } + } + protected boolean checkLoadedData() { + NsharpEditor editor = NsharpEditor.getActiveNsharpEditor(); + if (editor == null) { + mb.open(); + return false; + } + NsharpResourceHandler rsc = editor.getRscHandler(); + if (rsc == null ) { + mb.open(); + return false; + } + return true; + } + protected NsharpResourceHandler getRscHandler(){ + NsharpEditor editor = NsharpEditor.getActiveNsharpEditor(); + if (editor == null) { + + return null; + } + NsharpResourceHandler rsc = editor.getRscHandler(); + if (rsc == null) + return null; + + return rsc; + } + + public void createDataControlGp(Composite parent){ + Group textModeGp = new Group(parent,SWT.SHADOW_OUT); + textModeGp.setLayout( new RowLayout(SWT.HORIZONTAL) ); + textModeGp.setLayoutData( new GridData(GridData.FILL_HORIZONTAL) ); + Font font = textModeGp.getFont(); + FontData[] fontData = font.getFontData(); + for (int i = 0; i < fontData.length; i++) { + fontData[i].setHeight(7); + //fontData[i].setName("courier"); + } + newFont = new Font(font.getDevice(), fontData); + + loadBtn = new Button(textModeGp, SWT.PUSH); + loadBtn.setFont(newFont); + loadBtn.setText(" Load "); + loadBtn.setEnabled( true ); + //loadBtn.setSize(btnWidth,pushbtnHeight); + loadBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + + NsharpLoadDialog loadDia = NsharpLoadDialog.getInstance(shell); + + if ( loadDia != null ) { + //System.out.println("Load Button is calling dialog open()"); + loadDia.open(); + } + } + } ); + + unloadBtn = new Button(textModeGp, SWT.PUSH); + unloadBtn.setFont(newFont); + unloadBtn.setText(" UnLoad "); + unloadBtn.setEnabled( true ); + //loadBtn.setSize(btnWidth,pushbtnHeight); + unloadBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(checkLoadedData()) { + Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + + NsharpUnloadDialog unloadDia = NsharpUnloadDialog.getInstance(shell); + + if ( unloadDia != null ) { + //System.out.println("Load Button is calling dialog open()"); + unloadDia.open(); + + } + } + } + } ); + // Push buttons for SAVE + Button saveBtn = new Button(textModeGp, SWT.PUSH); + saveBtn.setFont(newFont); + saveBtn.setText(" Save "); + saveBtn.setEnabled( true ); + //saveBtn.setSize(btnWidth,pushbtnHeight); + saveBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + + if(checkLoadedData()) { + // Action to save text report + NsharpSaveHandle.saveFile(shell); + } + } + + } ); + + // Push buttons for CONFIGURE + Button cfgBtn = new Button(textModeGp, SWT.PUSH); + cfgBtn.setFont(newFont); + cfgBtn.setText(" Configure "); + cfgBtn.setEnabled(true); + //cfgBtn.setSize(btnWidth,pushbtnHeight); + cfgBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + //CHin, new develop if(checkLoadedData()) { + //NsharpParametersSelectionConfigDialog dia = NsharpParametersSelectionConfigDialog.getInstance(shell); + NsharpConfigDialog dia = NsharpConfigDialog.getInstance(shell); + if ( dia != null ) { + dia.open(); + } + //} + + } + } ); + + Button resetBtn = new Button(textModeGp, SWT.PUSH); + resetBtn.setFont(newFont); + resetBtn.setText(" Reset "); + resetBtn.setEnabled( true ); + resetBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + //RESET should turn off everything... + shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + + overlayIsOn = false; + overlayBtn.setText(OVLY_OFF); + overlayBtn.setEnabled(true); + compareStnIsOn = false; + compareStnBtn.setText(COMP_STN_OFF); + compareStnBtn.setEnabled(true); + compareTmIsOn = false; + compareTmBtn.setText(COMP_TM_OFF); + compareTmBtn.setEnabled(true); + interpolateIsOn = false; + interpBtn.setText(INTP_OFF); + editGraphOn = false; + graphModeBtnIcing.setEnabled(true); + graphModeBtnTurb.setEnabled(true); + graphEditBtn.setText(EDIT_GRAPH_OFF); + currentGraphMode= NsharpConstants.GRAPH_SKEWT; + NsharpEditor editor = NsharpEditor.getActiveNsharpEditor(); + if(editor != null){ + //note: resetRsc will reset currentPage, overlay, compare, interpolate flag in Resource + editor.getRscHandler().resetRsc(); + //editor.getNsharpSkewTDescriptor().getSkewtResource().resetRsc();// need to called it twice to make refresh worked...dont know why + //know that current editor is NsharpSkewT editor, refresh it. + editor.refresh(); + NsharpShowTextDialog textarea = NsharpShowTextDialog.getAccess(); + if(textarea != null){ + textarea.refreshTextData(); + } + } + if(NsharpParcelDialog.getAccess() != null){ + NsharpParcelDialog.getAccess().resetUserDefParcel(); + } + } + } ); + Button resetGfBtn = new Button(textModeGp, SWT.PUSH); + resetGfBtn.setFont(newFont); + resetGfBtn.setText("Reset Display"); + resetGfBtn.setEnabled( true ); + resetGfBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + NsharpEditor editor = NsharpEditor.getActiveNsharpEditor(); + editor.resetGraph(); + } + }); + + Button parcelBtn = new Button(textModeGp, SWT.PUSH); + parcelBtn.setFont(newFont); + parcelBtn.setText(" Parcel "); + parcelBtn.setEnabled( true ); + //parcelBtn.setSize(btnWidth,pushbtnHeight); + parcelBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + if(checkLoadedData()) { + NsharpParcelDialog parcelDia = NsharpParcelDialog.getInstance(shell); + + if ( parcelDia != null ) { + //System.out.println("calling parcel dialog open()"); + parcelDia.open(); + + } + } + } + } ); + + // Push buttons for NEXT PAGE info + Button nextpageBtn = new Button(textModeGp, SWT.PUSH); + nextpageBtn.setFont(newFont); + nextpageBtn.setText(" Next Data "); + nextpageBtn.setEnabled(true); + nextpageBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + if(checkLoadedData()) { + NsharpResourceHandler rsc = getRscHandler(); + if(rsc!= null){ + rsc.setNextTextChapter(); + rsc.refreshPane(); + } + } + } + } ); + + // Push buttons for NEXT INSET PAGE info + Button nextInsetBtn = new Button(textModeGp, SWT.PUSH); + nextInsetBtn.setFont(newFont); + nextInsetBtn.setText(" Next Inset "); + nextInsetBtn.setEnabled(true); + nextInsetBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + if(checkLoadedData()) { + NsharpResourceHandler rsc = getRscHandler(); + if(rsc!= null){ + rsc.setNextInsetPage(); + rsc.refreshPane(); + } + } + } + } ); + + + // Push buttons for interpolate + interpBtn = new Button(textModeGp, SWT.PUSH); + interpBtn.setFont(newFont); + interpBtn.setEnabled( true ); + if(interpolateIsOn) { + interpBtn.setText(INTP_ON); + } + else{ + interpBtn.setText(INTP_OFF); + } + interpBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + if(checkLoadedData()) { + + if(interpolateIsOn == false){ + interpolateIsOn = true; + interpBtn.setText(INTP_ON); + } + else { + interpolateIsOn = false; + interpBtn.setText(INTP_OFF); + } + //note:call resetInfoOnInterpolate() and pass interpolate flag to Resource + NsharpEditor editor = NsharpEditor.getActiveNsharpEditor(); + if(editor != null){ + try { + editor.getRscHandler().resetInfoOnInterpolate(interpolateIsOn); + } catch (CloneNotSupportedException e) { + e.printStackTrace(); + } + //know that current editor is NsharpSkewT editor, refresh it. + editor.refresh(); + + NsharpShowTextDialog textarea = NsharpShowTextDialog.getAccess(); + if(textarea != null){ + textarea.refreshTextData(); + } + } + } + } + } ); + + NsharpResourceHandler rsc = getRscHandler(); + + // Push buttons for OVERLAY info + overlayBtn = new Button(textModeGp, SWT.PUSH); + overlayBtn.setFont(newFont); + if(overlayIsOn){ + overlayBtn.setText(OVLY_ON); + overlayBtn.setEnabled( true ); + } + else{ + overlayBtn.setText(OVLY_OFF); + //comparison and overlay is mutual exclusive + if((rsc!= null) && (rsc.isCompareStnIsOn() || rsc.isCompareTmIsOn())) + overlayBtn.setEnabled( false ); + else + overlayBtn.setEnabled( true ); + } + overlayBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + if(overlayIsOn == false){ + + overlayIsOn = true; + overlayBtn.setText(OVLY_ON); + compareStnBtn.setEnabled(false); + compareTmBtn.setEnabled(false); + } + else { + overlayIsOn = false; + overlayBtn.setText(OVLY_OFF); + compareStnBtn.setEnabled(true); + compareTmBtn.setEnabled(true); + } + NsharpResourceHandler rsc = getRscHandler(); + if(rsc!= null){ + rsc.setOverlayIsOn(overlayIsOn); + rsc.refreshPane(); + } + } + } ); + // Push buttons for CompByStn info + compareStnBtn = new Button(textModeGp, SWT.PUSH); + compareStnBtn.setFont(newFont); + if(compareStnIsOn){ + compareStnBtn.setText(COMP_STN_ON); + compareStnBtn.setEnabled( true ); + } + else{ + //comparison and overlay is mutual exclusive + compareStnBtn.setText(COMP_STN_OFF); + if((rsc!= null) && (rsc.isOverlayIsOn() || rsc.isCompareTmIsOn())) + compareStnBtn.setEnabled( false ); + else + compareStnBtn.setEnabled( true ); + } + compareStnBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + if(compareStnIsOn == false){ + + compareStnIsOn = true; + compareStnBtn.setText(COMP_STN_ON); + overlayBtn.setEnabled(false); + compareTmBtn.setEnabled( false ); + } + else { + compareStnIsOn = false; + compareStnBtn.setText(COMP_STN_OFF); + overlayBtn.setEnabled(true); + compareTmBtn.setEnabled( true ); + } + NsharpResourceHandler rsc = getRscHandler(); + if(rsc!= null){ + rsc.setCompareStnIsOn(compareStnIsOn); + rsc.refreshPane(); + } + + } + } ); + // Push buttons for CompByTm info + compareTmBtn = new Button(textModeGp, SWT.PUSH); + compareTmBtn.setFont(newFont); + if(compareTmIsOn){ + compareTmBtn.setText(COMP_TM_ON); + compareTmBtn.setEnabled( true ); + } + else{ + //comparison and overlay is mutual exclusive + compareTmBtn.setText(COMP_TM_OFF); + if((rsc!= null) && (rsc.isOverlayIsOn() || rsc.isCompareStnIsOn())) + compareTmBtn.setEnabled( false ); + else + compareTmBtn.setEnabled( true ); + } + compareTmBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + if(compareTmIsOn == false){ + + compareTmIsOn = true; + compareTmBtn.setText(COMP_TM_ON); + overlayBtn.setEnabled(false); + compareStnBtn.setEnabled( false ); + } + else { + compareTmIsOn = false; + compareTmBtn.setText(COMP_TM_OFF); + overlayBtn.setEnabled(true); + compareStnBtn.setEnabled( true ); + } + NsharpResourceHandler rsc = getRscHandler(); + if(rsc!= null){ + rsc.setCompareTmIsOn(compareTmIsOn); + rsc.refreshPane(); + } + + } + } ); + dataEditBtn = new Button(textModeGp, SWT.PUSH); + dataEditBtn.setFont(newFont); + dataEditBtn.setText(" Edit Data "); + dataEditBtn.setEnabled( true ); + dataEditBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(checkLoadedData()) { + Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + NsharpEditDataDialog editDia = NsharpEditDataDialog.getInstance(shell); + if ( editDia != null ) { + editDia.open(); + } + } + } + } ); + + graphEditBtn = new Button(textModeGp, SWT.PUSH); + graphEditBtn.setFont(newFont); + graphEditBtn.setEnabled( true ); + if(editGraphOn) { + graphEditBtn.setText(EDIT_GRAPH_ON); + } + else{ + graphEditBtn.setText(EDIT_GRAPH_OFF); + } + graphEditBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(checkLoadedData()) { + if(editGraphOn){ + editGraphOn=false; + graphEditBtn.setText(EDIT_GRAPH_OFF); + graphModeBtnIcing.setEnabled(true); + graphModeBtnTurb.setEnabled(true); + + } + else{ + editGraphOn= true; + graphEditBtn.setText(EDIT_GRAPH_ON); + graphModeBtnIcing.setEnabled(false); + graphModeBtnTurb.setEnabled(false); + + } + NsharpResourceHandler rsc = getRscHandler(); + if(rsc!= null) { + rsc.setEditGraphOn(editGraphOn); + rsc.refreshPane(); + } + } + } + } ); + /*Button bndryMotionBtn = new Button(textModeGp, SWT.PUSH); + bndryMotionBtn.setText("BoundaryMotion"); + bndryMotionBtn.setEnabled( true ); + bndryMotionBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + if(checkLoadedData()) { + NsharpShowTextDialog osDia = NsharpShowTextDialog.getInstance( shell ); + if(osDia != null) + osDia.open(); + } + } + } );*/ + + // Push buttons for show text info + Button showtextBtn = new Button(textModeGp, SWT.PUSH); + showtextBtn.setFont(newFont); + showtextBtn.setText(" Show Text "); + showtextBtn.setEnabled( true ); + showtextBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + if(checkLoadedData()) { + NsharpShowTextDialog osDia = NsharpShowTextDialog.getInstance( shell ); + if(osDia != null) + osDia.open(); + } + } + } ); + Group graphModeGp = new Group(textModeGp,SWT.SHADOW_ETCHED_IN); + graphModeGp.setLayout(new RowLayout(SWT.HORIZONTAL) );//new GridLayout( 2, false ) ); + + // Push buttons for graphMode + graphModeBtnSkew = new Button(graphModeGp, SWT.PUSH ); + graphModeBtnSkew.setFont(newFont); + graphModeBtnSkew.setText("S"); + graphModeBtnSkew.setEnabled( true ); + colorButtonOriginalBg= graphModeBtnSkew.getBackground(); + rsc = getRscHandler(); + if(rsc!= null ){ + currentGraphMode = rsc.getCurrentGraphMode(); + } + graphModeBtnSkew.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + currentGraphMode= NsharpConstants.GRAPH_SKEWT; + graphModeBtnSkew.setBackground(colorGrey); + graphModeBtnTurb.setBackground(colorButtonOriginalBg); + graphModeBtnIcing.setBackground(colorButtonOriginalBg); + graphEditBtn.setEnabled(true); + dataEditBtn.setEnabled(true); + NsharpResourceHandler rsc = getRscHandler(); + if(rsc!= null ) { + rsc.setCurrentGraphMode(currentGraphMode); + } + } + } ); + graphModeBtnTurb = new Button(graphModeGp, SWT.PUSH); + graphModeBtnTurb.setFont(newFont); + graphModeBtnTurb.setText("T"); + graphModeBtnTurb.setEnabled( true ); + graphModeBtnTurb.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + currentGraphMode= NsharpConstants.GRAPH_TURB; + graphModeBtnTurb.setBackground(colorGrey); + graphModeBtnSkew.setBackground(colorButtonOriginalBg); + graphModeBtnIcing.setBackground(colorButtonOriginalBg); + graphEditBtn.setEnabled(false); + dataEditBtn.setEnabled(false); + NsharpResourceHandler rsc = getRscHandler(); + if(rsc!= null ) { + rsc.setCurrentGraphMode(currentGraphMode); + } + } + } ); + graphModeBtnIcing = new Button(graphModeGp, SWT.PUSH); + graphModeBtnIcing.setFont(newFont); + graphModeBtnIcing.setText("I"); + graphModeBtnIcing.setEnabled( true ); + graphModeBtnIcing.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + currentGraphMode= NsharpConstants.GRAPH_ICING; + graphModeBtnIcing.setBackground(colorGrey); + graphModeBtnSkew.setBackground(colorButtonOriginalBg); + graphModeBtnTurb.setBackground(colorButtonOriginalBg); + graphEditBtn.setEnabled(false); + dataEditBtn.setEnabled(false); + NsharpResourceHandler rsc = getRscHandler(); + if(rsc!= null ) { + rsc.setCurrentGraphMode(currentGraphMode); + } + } + } ); + if(currentGraphMode== NsharpConstants.GRAPH_SKEWT){ + graphModeBtnSkew.setBackground(colorGrey); + } + else if(currentGraphMode== NsharpConstants.GRAPH_TURB){ + graphModeBtnTurb.setBackground(colorGrey); + } + else if(currentGraphMode== NsharpConstants.GRAPH_ICING){ + graphModeBtnIcing.setBackground(colorGrey); + } + + // Push buttons for Print + Button printBtn = new Button(textModeGp, SWT.PUSH); + printBtn.setFont(newFont); + printBtn.setText(" Print "); + printBtn.setEnabled( true ); + printBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + //12.7.1 testing if(checkLoadedData()) { + if(true){ + printHandle.handlePrint(""); + } + } + } ); + textModeGp.redraw(); + + } + + public boolean isEditorVisible() { + return isEditorVisible; + } + public void setEditorVisible(boolean isEditorVisible) { + this.isEditorVisible = isEditorVisible; + } + /** + * Invoked by the workbench, this method sets up the SWT controls for the nsharp palette + */ + + @Override + public void createPartControl(Composite parent) { + //System.out.println("nlist @"+NsharpConstants.getNlistFile()); + parent.setLayout( new GridLayout( 1, true ) ); + createDataControlGp(parent); + } + + @Override + public void widgetDefaultSelected(SelectionEvent e) { + // TODO Auto-generated method stub + + } + @Override + public void widgetSelected(SelectionEvent e) { + // TODO Auto-generated method stub + + } + @Override + public void widgetDisposed(DisposeEvent e) { + + + } + @Override + public void partActivated(IWorkbenchPart part) { + // TODO Auto-generated method stub + + } + @Override + public void partBroughtToTop(IWorkbenchPart part) { + // TODO Auto-generated method stub + + } + @Override + public void partClosed(IWorkbenchPart part) { + } + @Override + public void partDeactivated(IWorkbenchPart part) { + // TODO Auto-generated method stub + + } + @Override + public void partOpened(IWorkbenchPart part) { + // TODO Auto-generated method stub + + } + @Override + public void setFocus() { + // TODO Auto-generated method stub + + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpParametersSelectionConfigDialog.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpParametersSelectionConfigDialog.java new file mode 100644 index 0000000000..ce663e399b --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpParametersSelectionConfigDialog.java @@ -0,0 +1,765 @@ +package gov.noaa.nws.ncep.ui.nsharp.view; +/** + * + * gov.noaa.nws.ncep.ui.nsharp.palette.NsharpParametersSelectionConfigDialog + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 03/23/2010	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + +import gov.noaa.nws.ncep.ui.nsharp.NsharpConfigManager; +import gov.noaa.nws.ncep.ui.nsharp.NsharpConfigStore; +import gov.noaa.nws.ncep.ui.nsharp.NsharpGraphProperty; +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.view.NsharpLoadDialog; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpNativeConstants; + +import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Text; + +import com.raytheon.uf.viz.core.exception.VizException; + +public class NsharpParametersSelectionConfigDialog extends Dialog { + private static NsharpParametersSelectionConfigDialog thisDialog=null; + private NsharpConfigStore configStore=null; + private NsharpGraphProperty graphProperty=null; + private NsharpConfigManager mgr; + private int btnWidth = 300; + private int btnHeight = 20; + private int labelGap = 20; + private int btnGapX = 5; + private int btnGapY = 5; + private Button tempBtn, dewpBtn, parcelBtn, vTempBtn, wetBulbBtn, mixingRatioBtn, + dryAdiabatBtn,moisAdiabatBtn,omegaBtn, meanWindVectorBtn, stormMVector3075Btn, stormMVector1585Btn, + stormMVectorBunkersRightBtn,stormMVectorBunkersLeftBtn, corfidiVectorBtn, hodoBtn, efflayerBtn, cloudBtn, windBarbBtn; + private Text windBarbText, tempOffsetText; + //default value for button initial setup + private boolean temp=true, dewp=true, parcel=true, vTemp=true, wetBulb=true, hodo=true, + mixratio=false, dryAdiabat=true, moistAdiabat=false, omega=true, meanWind=true, + smv3075=false, smv1585=false, smvBunkersR=true, smvBunkersL=true,corfidiV=false, effLayer=true, cloud=false, windBarb=true; + private int windBarbDistance=NsharpNativeConstants.WINDBARB_DISTANCE_DEFAULT; + private int tempOffset = 0; + private void updateGraphProperty(){ + if(graphProperty != null){ + graphProperty.setTemp(temp); + graphProperty.setDewp(dewp); + graphProperty.setParcel(parcel); + graphProperty.setVTemp(vTemp); + graphProperty.setWetBulb(wetBulb); + graphProperty.setHodo(hodo); + graphProperty.setMixratio(mixratio); + graphProperty.setDryAdiabat(dryAdiabat); + graphProperty.setMoistAdiabat(moistAdiabat); + graphProperty.setOmega(omega); + graphProperty.setMeanWind(meanWind); + graphProperty.setSmv3075(smv3075); + graphProperty.setSmv1585(smv1585); + graphProperty.setSmvBunkersR(smvBunkersR); + graphProperty.setSmvBunkersL(smvBunkersL); + graphProperty.setCloud(cloud); + graphProperty.setCorfidiV(corfidiV); + graphProperty.setEffLayer(effLayer); + graphProperty.setWindBarb(windBarb); + graphProperty.setWindBarbDistance(windBarbDistance); + graphProperty.setTempOffset(tempOffset); + } + } + public boolean isCloud() { + return cloud; + } + + + public boolean isEffLayer() { + return effLayer; + } + + + public boolean isHodo() { + return hodo; + } + + + public boolean isMeanWind() { + return meanWind; + } + + + public boolean isSmv3075() { + return smv3075; + } + + + public boolean isSmv1585() { + return smv1585; + } + + + public boolean isSmvBunkersR() { + return smvBunkersR; + } + + + public boolean isSmvBunkersL() { + return smvBunkersL; + } + + + public boolean isCorfidiV() { + return corfidiV; + } + + + public boolean isOmega() { + return omega; + } + + + public boolean isDryAdiabat() { + return dryAdiabat; + } + + public boolean isMoistAdiabat() { + return moistAdiabat; + } + + public boolean isMixratio() { + return mixratio; + } + + public boolean isTemp() { + return temp; + } + + public boolean isDewp() { + return dewp; + } + + public boolean isParcel() { + return parcel; + } + + public boolean isVTemp() { + return vTemp; + } + + public boolean isWetBulb() { + return wetBulb; + } + + + public boolean isWindBarb() { + return windBarb; + } + + + public int getWindBarbDistance() { + return windBarbDistance; + } + + + public static NsharpParametersSelectionConfigDialog getInstance( Shell parShell){ + + if ( thisDialog == null ){ + try { + thisDialog = new NsharpParametersSelectionConfigDialog( parShell ); + + } catch (VizException e) { + e.printStackTrace(); + } + + } + + return thisDialog; + + } + + public static NsharpParametersSelectionConfigDialog getAccess() { + return thisDialog; + } + + public NsharpParametersSelectionConfigDialog(Shell parentShell) throws VizException { + super(parentShell); + thisDialog = this; + mgr =NsharpConfigManager.getInstance(); + configStore = mgr.retrieveNsharpConfigStoreFromFs(); + //if(configStore== null){ + // configStore = new NsharpConfigStore(); + // configStore = setDefaultGraphConfig(configStore); + // configStore=NsharpDataDisplayConfigDialog.setDefaultLineConfig(configStore); + //} + graphProperty = configStore.getGraphProperty(); + if(graphProperty != null){ + temp=graphProperty.isTemp(); + dewp=graphProperty.isDewp(); + parcel=graphProperty.isParcel(); + vTemp=graphProperty.isVTemp(); + wetBulb=graphProperty.isWetBulb(); + hodo=graphProperty.isHodo(); + mixratio=graphProperty.isMixratio(); + dryAdiabat=graphProperty.isDryAdiabat(); + moistAdiabat=graphProperty.isMoistAdiabat(); + omega=graphProperty.isOmega(); + meanWind=graphProperty.isMeanWind(); + smv3075=graphProperty.isSmv3075(); + smv1585=graphProperty.isSmv1585(); + smvBunkersR=graphProperty.isSmvBunkersR(); + smvBunkersL=graphProperty.isSmvBunkersL(); + corfidiV=graphProperty.isCorfidiV(); + effLayer=graphProperty.isEffLayer(); + cloud=graphProperty.isCloud(); + windBarb=graphProperty.isWindBarb(); + windBarbDistance = graphProperty.getWindBarbDistance(); + tempOffset = graphProperty.getTempOffset(); + } + + } + private void createDialogContents(Composite parent){ + + Group btnGp = new Group(parent, SWT.SHADOW_ETCHED_IN | SWT.NO_RADIO_GROUP); + + tempBtn = new Button(btnGp, SWT.RADIO | SWT.BORDER); + tempBtn.setText(NsharpNativeConstants.TEMP_TRACE); + tempBtn.setEnabled( true ); + tempBtn.setBounds(btnGp.getBounds().x+ btnGapX, btnGp.getBounds().y + labelGap, btnWidth,btnHeight); + if(temp == true) + tempBtn.setSelection(true); + else + tempBtn.setSelection(false); + tempBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(temp == true) + temp=false; + else + temp=true; + applyChange(); + } + } ); + dewpBtn = new Button(btnGp, SWT.RADIO | SWT.BORDER); + dewpBtn.setText(NsharpNativeConstants.DEWP_TRACE); + dewpBtn.setEnabled( true ); + dewpBtn.setBounds(btnGp.getBounds().x+ btnGapX, tempBtn.getBounds().y + tempBtn.getBounds().height+ btnGapY, btnWidth,btnHeight); + if(dewp == true) + dewpBtn.setSelection(true); + else + dewpBtn.setSelection(false); + dewpBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(dewp == true) + dewp=false; + else + dewp=true; + applyChange(); + } + } ); + parcelBtn = new Button(btnGp, SWT.RADIO | SWT.BORDER); + parcelBtn.setText(NsharpNativeConstants.PARCEL_TRACE); + parcelBtn.setEnabled( true ); + parcelBtn.setBounds(btnGp.getBounds().x+ btnGapX, dewpBtn.getBounds().y + dewpBtn.getBounds().height+ btnGapY, btnWidth,btnHeight); + if(parcel == true) + parcelBtn.setSelection(true); + else + parcelBtn.setSelection(false); + parcelBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(parcel == true) + parcel=false; + else + parcel=true; + applyChange(); + } + } ); + vTempBtn = new Button(btnGp, SWT.RADIO | SWT.BORDER); + vTempBtn.setText(NsharpNativeConstants.VTEMP_TRACE); + vTempBtn.setEnabled( true ); + vTempBtn.setBounds(btnGp.getBounds().x+ btnGapX, parcelBtn.getBounds().y + parcelBtn.getBounds().height+ btnGapY, btnWidth,btnHeight); + if(vTemp == true) + vTempBtn.setSelection(true); + else + vTempBtn.setSelection(false); + vTempBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(vTemp == true) + vTemp=false; + else + vTemp=true; + applyChange(); + } + } ); + + wetBulbBtn = new Button(btnGp, SWT.RADIO | SWT.BORDER); + wetBulbBtn.setText(NsharpNativeConstants.WETBULB_TRACE); + wetBulbBtn.setEnabled( true ); + wetBulbBtn.setBounds(btnGp.getBounds().x+ btnGapX, vTempBtn.getBounds().y + vTempBtn.getBounds().height+ btnGapY, btnWidth,btnHeight); + if(wetBulb == true) + wetBulbBtn.setSelection(true); + else + wetBulbBtn.setSelection(false); + wetBulbBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(wetBulb == true) + wetBulb=false; + else + wetBulb=true; + applyChange(); + } + } ); + + mixingRatioBtn = new Button(btnGp, SWT.RADIO | SWT.BORDER); + mixingRatioBtn.setText(NsharpNativeConstants.MIXING_RATIO); + mixingRatioBtn.setEnabled( true ); + mixingRatioBtn.setBounds(btnGp.getBounds().x+ btnGapX, wetBulbBtn.getBounds().y + wetBulbBtn.getBounds().height+ btnGapY, btnWidth,btnHeight); + if(mixratio == true) + mixingRatioBtn.setSelection(true); + else + mixingRatioBtn.setSelection(false); + mixingRatioBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(mixratio == true) + mixratio=false; + else + mixratio=true; + applyChange(); + } + } ); + dryAdiabatBtn = new Button(btnGp, SWT.RADIO | SWT.BORDER); + dryAdiabatBtn.setText(NsharpNativeConstants.DRY_ADIABAT); + dryAdiabatBtn.setEnabled( true ); + dryAdiabatBtn.setBounds(btnGp.getBounds().x+ btnGapX, mixingRatioBtn.getBounds().y + mixingRatioBtn.getBounds().height+ btnGapY, btnWidth,btnHeight); + if(dryAdiabat == true) + dryAdiabatBtn.setSelection(true); + else + dryAdiabatBtn.setSelection(false); + dryAdiabatBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(dryAdiabat == true) + dryAdiabat=false; + else + dryAdiabat=true; + applyChange(); + } + } ); + + moisAdiabatBtn = new Button(btnGp, SWT.RADIO | SWT.BORDER); + moisAdiabatBtn.setText(NsharpNativeConstants.MOIST_ADIABAT); + moisAdiabatBtn.setEnabled( true ); + moisAdiabatBtn.setBounds(btnGp.getBounds().x+ btnGapX, dryAdiabatBtn.getBounds().y + dryAdiabatBtn.getBounds().height+ btnGapY, btnWidth,btnHeight); + if(moistAdiabat == true) + moisAdiabatBtn.setSelection(true); + else + moisAdiabatBtn.setSelection(false); + moisAdiabatBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(moistAdiabat == true) + moistAdiabat=false; + else + moistAdiabat=true; + applyChange(); + } + } ); + efflayerBtn = new Button(btnGp, SWT.RADIO | SWT.BORDER); + efflayerBtn.setText(NsharpNativeConstants.EFFECTIVE_LAYER); + efflayerBtn.setEnabled( true ); + efflayerBtn.setBounds(btnGp.getBounds().x+ btnGapX, moisAdiabatBtn.getBounds().y + moisAdiabatBtn.getBounds().height+ btnGapY, btnWidth,btnHeight); + if(effLayer == true) + efflayerBtn.setSelection(true); + else + efflayerBtn.setSelection(false); + efflayerBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(effLayer == true) + effLayer=false; + else + effLayer=true; + applyChange(); + } + } ); + cloudBtn = new Button(btnGp, SWT.RADIO | SWT.BORDER); + cloudBtn.setText(NsharpNativeConstants.CLOUD); + cloudBtn.setEnabled( true ); + cloudBtn.setBounds(btnGp.getBounds().x+ btnGapX, efflayerBtn.getBounds().y + efflayerBtn.getBounds().height+ btnGapY, btnWidth,btnHeight); + if(cloud == true) + cloudBtn.setSelection(true); + else + cloudBtn.setSelection(false); + cloudBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(cloud == true) + cloud=false; + else + cloud=true; + applyChange(); + } + } ); + hodoBtn = new Button(btnGp, SWT.RADIO | SWT.BORDER); + hodoBtn.setText(NsharpNativeConstants.HODOGRAPH); + hodoBtn.setEnabled( true ); + hodoBtn.setBounds(btnGp.getBounds().x+ btnGapX, cloudBtn.getBounds().y + cloudBtn.getBounds().height+ btnGapY, btnWidth,btnHeight); + if(hodo == true) + hodoBtn.setSelection(true); + else + hodoBtn.setSelection(false); + hodoBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(hodo == true) + hodo=false; + else + hodo=true; + applyChange(); + } + } ); + meanWindVectorBtn = new Button(btnGp, SWT.RADIO | SWT.BORDER); + meanWindVectorBtn.setText(NsharpNativeConstants.MEAN_WIND_VECTOR); + meanWindVectorBtn.setEnabled( true ); + meanWindVectorBtn.setBounds(btnGp.getBounds().x+ btnGapX, hodoBtn.getBounds().y + hodoBtn.getBounds().height+ btnGapY, btnWidth,btnHeight); + if(meanWind == true) + meanWindVectorBtn.setSelection(true); + else + meanWindVectorBtn.setSelection(false); + meanWindVectorBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(meanWind == true) + meanWind=false; + else + meanWind=true; + applyChange(); + } + } ); + stormMVector3075Btn = new Button(btnGp, SWT.RADIO | SWT.BORDER); + stormMVector3075Btn.setText(NsharpNativeConstants.STORM_MOTION_VECTOR_3075); + stormMVector3075Btn.setEnabled( true ); + stormMVector3075Btn.setBounds(btnGp.getBounds().x+ btnGapX, meanWindVectorBtn.getBounds().y + meanWindVectorBtn.getBounds().height+ btnGapY, btnWidth,btnHeight); + if(smv3075 == true) + stormMVector3075Btn.setSelection(true); + else + stormMVector3075Btn.setSelection(false); + stormMVector3075Btn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(smv3075 == true) + smv3075=false; + else + smv3075=true; + applyChange(); + } + } ); + stormMVector1585Btn = new Button(btnGp, SWT.RADIO | SWT.BORDER); + stormMVector1585Btn.setText(NsharpNativeConstants.STORM_MOTION_VECTOR_1585); + stormMVector1585Btn.setEnabled( true ); + stormMVector1585Btn.setBounds(btnGp.getBounds().x+ btnGapX, stormMVector3075Btn.getBounds().y + stormMVector3075Btn.getBounds().height+ btnGapY, btnWidth,btnHeight); + if(smv1585 == true) + stormMVector1585Btn.setSelection(true); + else + stormMVector1585Btn.setSelection(false); + stormMVector1585Btn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(smv1585 == true) + smv1585=false; + else + smv1585=true; + applyChange(); + } + } ); + stormMVectorBunkersRightBtn = new Button(btnGp, SWT.RADIO | SWT.BORDER); + stormMVectorBunkersRightBtn.setText(NsharpNativeConstants.STORM_MOTION_VECTOR_BUNKERS_R); + stormMVectorBunkersRightBtn.setEnabled( true ); + stormMVectorBunkersRightBtn.setBounds(btnGp.getBounds().x+ btnGapX, stormMVector1585Btn.getBounds().y + stormMVector1585Btn.getBounds().height+ btnGapY, btnWidth,btnHeight); + if(smvBunkersR == true) + stormMVectorBunkersRightBtn.setSelection(true); + else + stormMVectorBunkersRightBtn.setSelection(false); + stormMVectorBunkersRightBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(smvBunkersR == true) + smvBunkersR=false; + else + smvBunkersR=true; + applyChange(); + } + } ); + stormMVectorBunkersLeftBtn = new Button(btnGp, SWT.RADIO | SWT.BORDER); + stormMVectorBunkersLeftBtn.setText(NsharpNativeConstants.STORM_MOTION_VECTOR_BUNKERS_L); + stormMVectorBunkersLeftBtn.setEnabled( true ); + stormMVectorBunkersLeftBtn.setBounds(btnGp.getBounds().x+ btnGapX, stormMVectorBunkersRightBtn.getBounds().y + stormMVectorBunkersRightBtn.getBounds().height+ btnGapY, btnWidth,btnHeight); + if(smvBunkersL == true) + stormMVectorBunkersLeftBtn.setSelection(true); + else + stormMVectorBunkersLeftBtn.setSelection(false); + stormMVectorBunkersLeftBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(smvBunkersL == true) + smvBunkersL=false; + else + smvBunkersL=true; + applyChange(); + } + } ); + + corfidiVectorBtn = new Button(btnGp, SWT.RADIO | SWT.BORDER); + corfidiVectorBtn.setText(NsharpNativeConstants.CORFIDI_VECTORS); + corfidiVectorBtn.setEnabled( true ); + corfidiVectorBtn.setBounds(btnGp.getBounds().x+ btnGapX, stormMVectorBunkersLeftBtn.getBounds().y + stormMVectorBunkersLeftBtn.getBounds().height+ btnGapY, btnWidth,btnHeight); + if(corfidiV == true) + corfidiVectorBtn.setSelection(true); + else + corfidiVectorBtn.setSelection(false); + corfidiVectorBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(corfidiV == true) + corfidiV=false; + else + corfidiV=true; + applyChange(); + } + } ); + windBarbBtn= new Button(btnGp, SWT.RADIO | SWT.BORDER); + windBarbBtn.setText(NsharpNativeConstants.WINDBARB); + windBarbBtn.setEnabled(true); + windBarbBtn.setBounds(btnGp.getBounds().x+ btnGapX, corfidiVectorBtn.getBounds().y + corfidiVectorBtn.getBounds().height+ btnGapY, btnWidth,btnHeight); + if(windBarb == true) + windBarbBtn.setSelection(true); + else + windBarbBtn.setSelection(false); + windBarbBtn.addListener(SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(windBarb == true) + windBarb=false; + else + windBarb=true; + applyChange(); + } + } ); + windBarbText = new Text(btnGp, SWT.BORDER | SWT.SINGLE); + windBarbText.setText(Integer.toString(windBarbDistance)); + windBarbText.setBounds(windBarbBtn.getBounds().x+windBarbBtn.getBounds().width, windBarbBtn.getBounds().y,btnWidth/4,btnHeight); + windBarbText.setEditable(true); + windBarbText.setVisible(true); + //to make sure user enter digits only + windBarbText.addListener (SWT.Verify, new Listener () { + public void handleEvent (Event e) { + String string = e.text; + char [] chars = new char [string.length ()]; + string.getChars (0, chars.length, chars, 0); + //System.out.println("entered "+ string); + + for (int i=0; i= 1) && (textStr.contains("-"))){ + e.doit = false; + return; + } + }else if (!('0' <= chars [0] && chars [0] <= '9')) { + e.doit = false; + return; + } + + } + } + }); + if(NsharpLoadDialog.getAccess()!= null && + (NsharpLoadDialog.getAccess().getActiveLoadSoundingType()== NsharpLoadDialog.MODEL_SND || + NsharpLoadDialog.getAccess().getActiveLoadSoundingType()== NsharpLoadDialog.PFC_SND )){ + omegaBtn = new Button(btnGp, SWT.RADIO | SWT.BORDER); + omegaBtn.setText(NsharpNativeConstants.OMEGA); + omegaBtn.setEnabled( true ); + omegaBtn.setBounds(btnGp.getBounds().x+ btnGapX, tempOffsetLbl.getBounds().y + tempOffsetLbl.getBounds().height+ btnGapY, btnWidth,btnHeight); + if(omega == true) + omegaBtn.setSelection(true); + else + omegaBtn.setSelection(false); + omegaBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(omega == true) + omega=false; + else + omega=true; + applyChange(); + } + } ); + } + + } + + @Override + public void createButtonsForButtonBar(Composite parent) { + // create OK button but using Apply label for applying user entered data + //Chin note: when "apply" button is selected or Return key is entered, + // okPressed() will be called. So, handle event at one place, ie.e at okPressed(). + Button appBtn = createButton(parent, IDialogConstants.OK_ID, + "Apply", + true); + + /*appBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + //System.out.println("App listener is called"); + //String textStr = windBarbText.getText(); + //if((textStr != null) && !(textStr.isEmpty())){ + // windBarbDistance = Integer.decode(textStr); + //} + //applyChange(); + + } + } ); */ + Button saveBtn = createButton(parent, IDialogConstants.INTERNAL_ID, + "Save",false); + saveBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + //System.out.println("save listener is called, also apply changes"); + okPressed(); + try { + //save to xml + mgr.saveConfigStoreToFs(configStore); + } catch (VizException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + + } + } ); + + Button canBtn = createButton(parent, IDialogConstants.CLOSE_ID, + IDialogConstants.CLOSE_LABEL, false); + canBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + //System.out.println("close listener is called"); + close(); + } + } ); + } + + + @Override + public void okPressed() { + //"Enter" key is pressed, or "Apply" button is pressed. + //Chin: handle user entered data and apply its changes. + //System.out.println("CR is pressed"); + String textStr = windBarbText.getText(); + if((textStr != null) && !(textStr.isEmpty())){ + windBarbDistance = Integer.decode(textStr); + } + textStr = tempOffsetText.getText(); + if((textStr != null) && !(textStr.isEmpty())){ + if(!textStr.contains("-") || textStr.length() > 1){ + tempOffset = Integer.decode(textStr); + //System.out.println("temp offset is ="+tempOffset); + } + } + applyChange(); + setReturnCode(OK); + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell) + */ + @Override + protected void configureShell( Shell shell ) { + super.configureShell( shell ); + shell.setText( "Nsharp Parameters Selection" ); + + } + @Override + public Control createDialogArea(Composite parent) { + Composite top; + top = (Composite) super.createDialogArea(parent); + + // Create the main layout for the shell. + GridLayout mainLayout = new GridLayout(1, false); + mainLayout.marginHeight = 3; + mainLayout.marginWidth = 3; + top.setLayout(mainLayout); + + // Initialize all of the menus, controls, and layouts + createDialogContents(top); + + return top; + } + + + @Override + public int open( ) { + if ( this.getShell() == null ){ + this.create(); + } + this.getShell().setLocation(this.getShell().getParent().getLocation().x+1100, + this.getShell().getParent().getLocation().y+200); + return super.open(); + + } + @Override + public boolean close() { + tempBtn= dewpBtn= parcelBtn= vTempBtn= wetBulbBtn= mixingRatioBtn= + dryAdiabatBtn=moisAdiabatBtn=efflayerBtn=omegaBtn= meanWindVectorBtn= stormMVector3075Btn= stormMVector1585Btn= + stormMVectorBunkersRightBtn=stormMVectorBunkersLeftBtn= corfidiVectorBtn= hodoBtn=windBarbBtn=null; + //thisDialog= null; + return (super.close()); + } + + public void reset(){ + windBarbDistance=NsharpNativeConstants.WINDBARB_DISTANCE_DEFAULT; + tempOffset=0; + } + + private void applyChange(){ + updateGraphProperty(); + NsharpEditor editor = NsharpEditor.getActiveNsharpEditor(); + if (editor != null) { + NsharpResourceHandler rsc = editor.getRscHandler(); + rsc.setGraphConfigProperty(graphProperty); + editor.refresh(); + } + } + +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpParcelDialog.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpParcelDialog.java new file mode 100644 index 0000000000..99ac9a9c65 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpParcelDialog.java @@ -0,0 +1,545 @@ +package gov.noaa.nws.ncep.ui.nsharp.view; +/** + * + * gov.noaa.nws.ncep.ui.nsharp.palette.NsharpParcelDialog + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 03/23/2010	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + + +import java.util.ArrayList; +import java.util.List; + +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.display.rsc.NsharpResourceHandler.ParcelData; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpNativeConstants; +import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Text; +import com.raytheon.uf.viz.core.exception.VizException; + +public class NsharpParcelDialog extends Dialog { + private static NsharpParcelDialog thisDialog=null; + private String CUR_SFC = "Current Surface"; + private String FRCST_SFC = "Forecast Surface"; + private String MML= "Mean Mixing Layer"; + private String MUP = "Most Unstable Parcel"; + private String UDL= "User Defined Level"; + private String EFF = "Mean Effective Layer"; + //private boolean surface=false, forcast=false, mml=false, mup=true, udl=false, eff=false; + ParcelData surfacePar=null, forcastPar=null, mmlPar=null, mupPar=null, udlPar=null, effPar=null; + //private static short currentParcel = NsharpNativeConstants.PARCELTYPE_MOST_UNSTABLE; + //private static short prevParcel = currentParcel; + private int userDefdParcelMb = 850; //default value + private int btnWidth = 300; + private int btnHeight = 20; + private int labelGap = 20; + private int btnGapX = 5; + private int btnGapY = 5; + private Button curSfcBtn,frcstBtn,effBtn,mmlBtn, mupBtn,udlBtn; + private Text userDefdMbtext; + private List parcelList = new ArrayList(); + public int getUserDefdParcelMb() { + return userDefdParcelMb; + } + + + public void resetUserDefParcel(){ + userDefdParcelMb = 850; + } + public void reset(){ + parcelList.clear(); + addParcelToList(mupPar); + userDefdParcelMb = 850; + //mup=true; + //surface= forcast=mml= udl= eff=false; + } + /* + public void setCurrentParcelButton(int parcelType){ + switch(parcelType){ + case NsharpNativeConstants.PARCELTYPE_OBS_SFC: + curSfcBtn.setSelection(true); + break; + case NsharpNativeConstants.PARCELTYPE_EFF: + effBtn.setSelection(true); + break; + case NsharpNativeConstants.PARCELTYPE_FCST_SFC: + frcstBtn.setSelection(true); + break; + case NsharpNativeConstants.PARCELTYPE_MEAN_MIXING: + mmlBtn.setSelection(true); + break; + case NsharpNativeConstants.PARCELTYPE_MOST_UNSTABLE: + mupBtn.setSelection(true); + break; + case NsharpNativeConstants.PARCELTYPE_USER_DEFINED: + udlBtn.setSelection(true); + break; + default: + break; + } + }*/ + public static NsharpParcelDialog getInstance( Shell parShell){ + + if ( thisDialog == null ){ + try { + thisDialog = new NsharpParcelDialog( parShell ); + //System.out.println("new parcel dialog INSTANCE created"); + } catch (VizException e) { + e.printStackTrace(); + } + + } + else { + //System.out.println("current load dialog INSTANCE returned!"); + } + + return thisDialog; + + } + + public static NsharpParcelDialog getAccess() { + return thisDialog; + } + protected NsharpParcelDialog(Shell parentShell) throws VizException { + super(parentShell); + thisDialog = this; + NsharpResourceHandler skewtRsc = NsharpEditor.getActiveNsharpEditor().getRscHandler(); + if(skewtRsc!=null){ + surfacePar = skewtRsc.new ParcelData(); + surfacePar.setParcelLayerPressure(NsharpNativeConstants.OBS_LAYER); + surfacePar.setParcelType(NsharpNativeConstants.PARCELTYPE_OBS_SFC); + forcastPar = skewtRsc.new ParcelData(); + forcastPar.setParcelLayerPressure(NsharpNativeConstants.FCST_LAYER); + forcastPar.setParcelType(NsharpNativeConstants.PARCELTYPE_FCST_SFC); + mmlPar = skewtRsc.new ParcelData(); + mmlPar.setParcelLayerPressure(NsharpNativeConstants.MML_LAYER); + mmlPar.setParcelType(NsharpNativeConstants.PARCELTYPE_MEAN_MIXING); + mupPar = skewtRsc.new ParcelData(); + mupPar.setParcelLayerPressure(NsharpNativeConstants.MU_LAYER); + mupPar.setParcelType(NsharpNativeConstants.PARCELTYPE_MOST_UNSTABLE); + udlPar = skewtRsc.new ParcelData(); + udlPar.setParcelLayerPressure(NsharpNativeConstants.USER_LAYER); + udlPar.setParcelType(NsharpNativeConstants.PARCELTYPE_USER_DEFINED); + effPar = skewtRsc.new ParcelData(); + effPar.setParcelLayerPressure(NsharpNativeConstants.EFF_LAYER); + effPar.setParcelType(NsharpNativeConstants.PARCELTYPE_EFF); + + //addParcelToList(mupPar); + + } + } + private void addParcelToList(ParcelData parcel){ + if(parcel!=null){ + parcelList.add(parcel); + } + } + /*private void deleteParcelFromList(ParcelData parceldata){ + if( parceldata!=null){ + parcelList.remove(parceldata); + } + }*/ + + private void createDialogContents(Composite parent){ + + final Group btnGp = new Group(parent, SWT.SHADOW_ETCHED_IN ); + + Listener radioGpLsner = new Listener() { + public void handleEvent(Event event) { + Control [] children = btnGp.getChildren(); + for (int j=0; j + * SOFTWARE HISTORY + * + * Date Ticket# Engineer Description + * ------- ------- -------- ----------- + * 03/23/2010 229 Chin Chen Initial coding + * + * + * + * @author Chin Chen + * @version 1.0 + */ +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +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.NsharpNative; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpNative.NsharpLibrary._lplvalues; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpNative.NsharpLibrary._parcel; +import gov.noaa.nws.ncep.ui.nsharp.natives.NsharpNativeConstants; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.Font; +import org.eclipse.swt.graphics.GC; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.graphics.RGB; +import org.eclipse.swt.graphics.Rectangle; +import org.eclipse.swt.graphics.Transform; +import org.eclipse.swt.printing.PrintDialog; +import org.eclipse.swt.printing.Printer; +import org.eclipse.swt.printing.PrinterData; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.progress.UIJob; + +import com.raytheon.uf.viz.core.exception.VizException; +import com.raytheon.viz.core.graphing.WGraphics; +import com.sun.jna.ptr.FloatByReference; + +public class NsharpPrintHandle { + private Printer printer; + private StringBuffer wordBuffer; + private int lineHeight = 0; + private int tabWidth = 0; + private int leftMargin, rightMargin, topMargin, bottomMargin; + private GC gc; + private NsharpNative nsharpNative=null; + private static int SKEWT_X_ORIG= 0; + private static int SKEWT_HEIGHT= 375; + private static int SKEWT_WIDTH= 420; + private static int HODO_X_ORIG= SKEWT_X_ORIG + SKEWT_WIDTH-130; + private static int HODO_HEIGHT= 130; + private static int HODO_WIDTH= HODO_HEIGHT; + private Font printerFont; + private Color printerForegroundColor, printerBackgroundColor; + private Transform transform; + + private static NsharpPrintHandle printHandle=null; + public static NsharpPrintHandle getPrintHandle() { + if(printHandle==null) + printHandle = new NsharpPrintHandle(); + return printHandle; + } + public void handlePrint(String intext) { + /* Do the printing in a background thread so that spooling does not freeze the UI. */ + /* + * Chin:NOTE:::the following is from http://www.eclipse.org/swt/faq.php + * To allow background threads to perform operations on objects belonging to the UI-thread, + * the methods syncExec(Runnable runnable) and asyncExec(Runnable runnable) of Display are used. + * These are the only methods in SWT that can be called from any thread. + * They allow a runnable to be executed by the UI-thread, either synchronously, + * causing the background thread to wait for the runnable to finish, + * or asynchronously allowing the background thread to continue execution without waiting for the result. + * A runnable that is executed using syncExec() most closely matches the equivalent direct call to the UI + * operation because a Java method call always waits for the result before proceeding, + * just like syncExec(). + */ + + /*Chin:NOTE::: This code does not work when run in 5th floor FIT lab. CAVE display will freeze after hit "Print" + * button. + Display display = Display.getCurrent(); + display.asyncExec( + new Runnable() { + public void run(){ + Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + PrintDialog dialog = new PrintDialog(shell, SWT.NULL); + PrinterData data = dialog.open(); + + if (data == null) return; + if (data.printToFile) { + + //System.out.println("Prnit to file with file name="+data.fileName); + String fileName = data.fileName; + int i = fileName.indexOf("///"); + if(i!=-1) //to fix a bug that add extra "//" at front of file path + data.fileName = fileName.substring(0, i)+fileName.substring(i+2); + //System.out.println("Prnit to file with file name="+data.fileName); + } + + // Do the printing in a background thread so that spooling does not freeze the UI. + printer = new Printer(data); + + print(printer); + printer.dispose(); + } + }); +*/ + + + + //Chin: Note: now try use UIJOB to see if it works in 5th floor fit lab.. + Job uijob = new UIJob("clear source selection"){ //$NON-NLS-1$ + public IStatus runInUIThread( + IProgressMonitor monitor) { + Shell shell =PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + PrintDialog dialog = new PrintDialog(shell, SWT.NULL); + PrinterData data = dialog.open(); + + if (data == null) return Status.CANCEL_STATUS; + if (data.printToFile) { + + //System.out.println("Prnit to file with file name="+data.fileName); + String fileName = data.fileName; + int i = fileName.indexOf("///"); + if(i!=-1) //to fix a bug that add extra "//" at front of file path + data.fileName = fileName.substring(0, i)+fileName.substring(i+2); + //System.out.println("Prnit to file with file name="+data.fileName); + } + try{ + // Do the printing in a background thread so that spooling does not freeze the UI. + createPrinter(data); + if (startJob()) { + printPage(); + endJob(); + } + disposePrinter(); + } + catch (Exception e) { + + e.printStackTrace(); + } + return Status.OK_STATUS; + } + + }; + uijob.setSystem(true); + uijob.schedule(); + + + } + + public void createPrinter(PrinterData data){ + this.printer = new Printer(data); + } + + public boolean startJob(){ + String tabs; + if (printer.startJob("NSHARP")) { // the string is the job name - shows up in the printer's job list + Rectangle clientArea = printer.getClientArea(); + Rectangle trim = printer.computeTrim(0, 0, 0, 0); + Point dpi = printer.getDPI(); + + float dpiScaleX = dpi.x/72f; + float dpiScaleY = dpi.y/72f; + + transform = new Transform(printer); + transform.scale(dpiScaleX, dpiScaleY); + + leftMargin = 72 + trim.x; // one inch from left side of paper + rightMargin = clientArea.width - 72 + trim.x + trim.width; // one inch from right side of paper + topMargin = 72 + trim.y; // one inch from top edge of paper + bottomMargin = clientArea.height - 72 + trim.y + trim.height; // one inch from bottom edge of paper + //System.out.println("leftMargin="+leftMargin+"rightMargin="+rightMargin+"topMargin"+topMargin+"bottomMargin"+bottomMargin); + //leftMargin=54rightMargin=521topMargin54bottomMargin701 + /* Create a buffer for computing tab width. */ + int tabSize = 4; // is tab width a user setting in your UI? + StringBuffer tabBuffer = new StringBuffer(tabSize); + for (int i = 0; i < tabSize; i++) tabBuffer.append(' '); + tabs = tabBuffer.toString(); + + /* Create printer GC, and create and set the printer font & foreground color. */ + gc = new GC(printer); + int fontSize = (int) Math.round(5/dpiScaleY); + fontSize = Math.max(1, fontSize); + printerFont = new Font(printer, "Courier", fontSize, SWT.NORMAL); + gc.setFont(printerFont); + tabWidth = gc.stringExtent(tabs).x; + lineHeight = gc.getFontMetrics().getHeight(); + + RGB rgb = new RGB(0,0,0);//Black + printerForegroundColor = new Color(printer, rgb); + gc.setForeground(printerForegroundColor); + rgb = new RGB(255,255,255);//white + printerBackgroundColor = new Color(printer, rgb); + gc.setBackground(printerBackgroundColor); + gc.setTransform(transform); + return true; + } + return false; + } + + public void printPage(){ + NsharpEditor editor = NsharpEditor.getActiveNsharpEditor(); + if( editor != null) { + NsharpResourceHandler rsc = editor.getRscHandler(); + if(rsc != null){ + printer.startPage(); + // Print SkewT square + gc.drawRectangle(leftMargin+SKEWT_X_ORIG, topMargin, SKEWT_WIDTH, SKEWT_HEIGHT); + // set view dimension + WGraphics world = new WGraphics(leftMargin+SKEWT_X_ORIG, topMargin, leftMargin+SKEWT_X_ORIG+SKEWT_WIDTH, topMargin+SKEWT_HEIGHT); + //set SKEWT virtual world coordinate. + world.setWorldCoordinates(NsharpConstants.left, NsharpConstants.top, + NsharpConstants.right, NsharpConstants.bottom); + gc.setLineWidth(1); + + try { + + gc.setClipping(leftMargin-30, topMargin-30, rightMargin+30, bottomMargin); + gc.drawString(rsc.getPickedStnInfoStr(),leftMargin+SKEWT_X_ORIG, topMargin-20); + rsc.printNsharpPressureLinesNumber(world, gc); + rsc.printNsharpTempNumber(world, gc); + rsc.printHeightMark(world, gc); + rsc.printNsharpWind(world, gc); + //set clipping + gc.setClipping(leftMargin+SKEWT_X_ORIG, topMargin, SKEWT_WIDTH, SKEWT_HEIGHT); + //print skewt background + rsc.getSkewtPaneRsc().getSkewTBackground().paintForPrint(world, gc); + gc.setLineWidth(2); + gc.setLineStyle(SWT.LINE_SOLID); + rsc.printNsharpPressureTempCurve( world, rsc.TEMP_TYPE, gc, rsc.getSoundingLys()); + rsc.printNsharpPressureTempCurve( world, rsc.DEWPOINT_TYPE, gc,rsc.getSoundingLys()); + + gc.setLineStyle(SWT.LINE_DASH); + rsc.printNsharpWetbulbTraceCurve(world, gc); + gc.setLineStyle(SWT.LINE_DASHDOTDOT); + rsc.printNsharpParcelTraceCurve(world, gc); + gc.setLineStyle(SWT.LINE_SOLID); + //fill/cover this skewt area to be used by Hodo + gc.fillRectangle(leftMargin+HODO_X_ORIG, topMargin, HODO_WIDTH, HODO_HEIGHT); + + + } catch (VizException e) { + e.printStackTrace(); + } + gc.setLineWidth(2); + // Print Hodo square + gc.drawRectangle(leftMargin+HODO_X_ORIG, topMargin, HODO_WIDTH, HODO_HEIGHT); + + //set HODO view world + world = new WGraphics(leftMargin+HODO_X_ORIG, topMargin, leftMargin+HODO_X_ORIG+HODO_WIDTH, topMargin+HODO_HEIGHT); + //set HODO real world coordinate. + world.setWorldCoordinates(-50, 90, 90, -50); + + gc.setLineWidth(1); + //print hodo background + rsc.getHodoPaneRsc().getHodoBackground().paintForPrint(world, gc); + try { + //print hodo + gc.setLineStyle(SWT.LINE_SOLID); + + rsc.printNsharpHodoWind(world, gc, rsc.getSoundingLys()); + } catch (VizException e) { + e.printStackTrace(); + } + nsharpNative = getNsharpNativePtr(); + //reset clipping + gc.setClipping(leftMargin-15, topMargin+SKEWT_HEIGHT, rightMargin-leftMargin+30,bottomMargin-topMargin+30); + + gc.setLineWidth(2); + //print thermodynamic data title and its box + gc.drawString("THERMODYNAMIC PARAMETERS",leftMargin+50, topMargin+SKEWT_HEIGHT+20); + //gc.drawRectangle(leftMargin-15, topMargin+SKEWT_HEIGHT+30, 220,280); + gc.drawLine(leftMargin-15, topMargin+SKEWT_HEIGHT+30, leftMargin+205,topMargin+SKEWT_HEIGHT+30); + //set clipping + //gc.setClipping(leftMargin-16, topMargin+SKEWT_HEIGHT+30, 222,280); + String textStr = printThermodynamicParametersBox1(); + //System.out.println(textStr); + int curY= printText(textStr,leftMargin-12, topMargin+SKEWT_HEIGHT+35, leftMargin+205,topMargin+SKEWT_HEIGHT+295); + gc.drawLine(leftMargin-15, curY, leftMargin+205,curY); + gc.drawLine(leftMargin-15, curY, leftMargin-15,topMargin+SKEWT_HEIGHT+30); + gc.drawLine(leftMargin+205, curY, leftMargin+205,topMargin+SKEWT_HEIGHT+30); + String str1="", str2="", str3=""; + textStr = printThermodynamicParametersBox2(); + int gapIndex1 = textStr.indexOf("BOXLINE"); + str1= textStr.substring(0, gapIndex1); + int gapIndex2 = textStr.indexOf("BOXLINE",gapIndex1+1); + str2= textStr.substring( gapIndex1+("BOXLINE".length()),gapIndex2); + str3= textStr.substring( gapIndex2+("BOXLINE".length())); + int preY= curY; + curY= printText(str1,leftMargin-12, curY+1, leftMargin+205,topMargin+SKEWT_HEIGHT+295); + gc.drawLine(leftMargin-15, curY, leftMargin+205,curY); + gc.drawLine(leftMargin-15, curY, leftMargin-15,preY); + gc.drawLine(leftMargin+205, curY, leftMargin+205,preY); + preY= curY; + curY= printText(str2,leftMargin-12, curY+1, leftMargin+205,topMargin+SKEWT_HEIGHT+295); + gc.drawLine(leftMargin-15, curY, leftMargin+205,curY); + gc.drawLine(leftMargin-15, curY, leftMargin-15,preY); + gc.drawLine(leftMargin+205, curY, leftMargin+205,preY); + preY= curY; + curY= printText(str3,leftMargin-12, curY+1, leftMargin+205,topMargin+SKEWT_HEIGHT+295); + gc.drawLine(leftMargin-15, curY, leftMargin+205,curY); + gc.drawLine(leftMargin-15, curY, leftMargin-15,preY); + gc.drawLine(leftMargin+205, curY, leftMargin+205,preY); + + textStr = "Output produced by: NCO-SIB AWIPS2 NSHARP\nNational SkewT-Hodograph Analysis and Research Program\n"; + printText(textStr,leftMargin-12, curY+100, leftMargin+300,curY+120); + + + //print kinematic data title and its box + gc.drawString("KINEMATIC PARAMETERS",leftMargin+280, topMargin+SKEWT_HEIGHT+20); + gc.drawLine(leftMargin+225, topMargin+SKEWT_HEIGHT+30, leftMargin+445,topMargin+SKEWT_HEIGHT+30); + textStr = printKinematicParametersBox(); + curY= printText(textStr,leftMargin+228,topMargin+SKEWT_HEIGHT+35, leftMargin+444,topMargin+SKEWT_HEIGHT+295); + //System.out.println("curreny y = "+ curY); + gc.drawLine(leftMargin+225, curY, leftMargin+445,curY); + gc.drawLine(leftMargin+225, curY, leftMargin+225,topMargin+SKEWT_HEIGHT+30); + gc.drawLine(leftMargin+445, curY, leftMargin+445,topMargin+SKEWT_HEIGHT+30); + + // print STORM STRUCTURE PARAMETERS + gc.drawString("STORM STRUCTURE PARAMETERS",leftMargin+280, curY+20); + gc.drawLine(leftMargin+225, curY+30, leftMargin+445,curY+30); + textStr = printStormStructureParametersBox(); + preY = curY+30; + curY= printText(textStr,leftMargin+228,curY+35, leftMargin+444,topMargin+SKEWT_HEIGHT+295); + gc.drawLine(leftMargin+225, curY, leftMargin+445,curY); + gc.drawLine(leftMargin+225, curY, leftMargin+225,preY); + gc.drawLine(leftMargin+445, curY, leftMargin+445,preY); + + printer.endPage(); + } + } + } + + public void endJob(){ + printer.endJob(); + + /* Cleanup graphics resources used in printing */ + printerFont.dispose(); + printerForegroundColor.dispose(); + printerBackgroundColor.dispose(); + transform.dispose(); + gc.dispose(); + } + + public void disposePrinter(){ + printer.dispose(); + } + + private int x, y; + private int index, end; + + private int printText(String textToPrint, int xmin, int ymin, int xmax,int ymax) { + + wordBuffer = new StringBuffer(); + x = xmin; + y = ymin; + index = 0; + end = textToPrint.length(); + while (index < end) { + char c = textToPrint.charAt(index); + index++; + if (c != 0) { + if (c == 0x0a || c == 0x0d) { + if (c == 0x0d && index < end && textToPrint.charAt(index) == 0x0a) { + index++; // if this is cr-lf, skip the lf + } + printWordBuffer(xmin, ymin, xmax, ymax); + newline(xmin, ymin, xmax, ymax); + } else { + if (c != '\t') { + wordBuffer.append(c); + } + if (Character.isWhitespace(c)) { + printWordBuffer(xmin, ymin, xmax, ymax); + if (c == '\t') { + x += tabWidth; + } + } + } + } + } + return y; + } + + void printWordBuffer(int xmin, int ymin, int xmax,int ymax) { + if (wordBuffer.length() > 0) { + String word = wordBuffer.toString(); + int wordWidth = gc.stringExtent(word).x; + if (x + wordWidth > xmax) { + /* word doesn't fit on current line, so wrap */ + System.out.println("word doesn't fit on current line, so wrap "); + newline(xmin, ymin, xmax, ymax); + } + gc.drawString(word, x, y, false); + + x += wordWidth; + wordBuffer = new StringBuffer(); + } + } + + void newline(int xmin, int ymin, int xmax,int ymax) { + x = xmin; + y += lineHeight; + } + + protected WGraphics computeWorld(int x1, int y1, int x2, int y2) { + WGraphics world = new WGraphics(x1, y1, x1, y1); + world.setWorldCoordinates(-50, 90, 90, -50); + return world; + } + private NsharpNative getNsharpNativePtr(){ + NsharpNative nsharpNative=null; + NsharpEditor editor = NsharpEditor.getActiveNsharpEditor(); + if( editor != null) { + NsharpResourceHandler rsc = editor.getRscHandler(); + if(rsc != null){ + nsharpNative = rsc.getNsharpNative(); + } + } + return nsharpNative; + } + private boolean qc ( float value ) + /*************************************************************/ + /* */ + /* Quality control of sndg data. Searches for missing */ + /* data (-999) and returns (1 = OK), (0 = missing) */ + /*************************************************************/ + { + if( value < -998.0F ) { return false; } + if( value > 2.0E+05F ) { return false; } + return true; + } + private String printKinematicParametersBox(){ + /* + * Chin's NOTE::::this function is for printing and coded based on legacy nsharp software + * show_meanwind() + * in xwvid3.c + * + * void mean_wind ( float pbot, float ptop, float *mnu, float *mnv, + * float *wdir, float *wspd ) + * Calculates a pressure-weighted mean wind thru the + * layer (pbot-ptop). Default layer is LFC-EL. + * + * pbot - Bottom level of layer (mb) + * ptop - Top level of layer (mb) + * mnu - U-Component of mean wind (kt) + * mnv - V-Component of mean wind (kt) + */ + + + if(nsharpNative != null){ + FloatByReference mnu= new FloatByReference(0); + FloatByReference mnv= new FloatByReference(0); + FloatByReference wdir= new FloatByReference(0); + FloatByReference wspd= new FloatByReference(0); + String textStr, finalTextStr="\t"; + finalTextStr = finalTextStr+ NsharpNativeConstants.MEAN_WIND_STR; + + //Calculate mean wind at 0-6 km + nsharpNative.nsharpLib.mean_wind( -1, nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.agl(6000)), mnu, mnv, wdir, wspd); + if(qc(wdir.getValue())&&qc(wspd.getValue())) { + textStr = NsharpNativeConstants.MEANWIND_SFC6KM_LINE; + textStr = String.format(textStr,wdir.getValue(), wspd.getValue(), + nsharpNative.nsharpLib.kt_to_mps(wspd.getValue())); + } + else { + textStr = NsharpNativeConstants.MEANWIND_SFC6KM_MISSING; + } + finalTextStr = finalTextStr + textStr; + //Calculate mean wind at LFC-EL + nsharpNative.nsharpLib.mean_wind( -1, -1, mnu, mnv, wdir, wspd); + if(qc(wdir.getValue())&&qc(wspd.getValue())) { + textStr = NsharpNativeConstants.MEANWIND_LFC_EL_LINE; + textStr = String.format(textStr,wdir.getValue(), wspd.getValue(), + nsharpNative.nsharpLib.kt_to_mps(wspd.getValue())); + } + else { + textStr = NsharpNativeConstants.MEANWIND_LFC_EL_MISSING; + } + finalTextStr = finalTextStr + textStr; + //Calculate mean wind at 850-200 mb + nsharpNative.nsharpLib.mean_wind( 850,200, mnu, mnv, wdir, wspd); + if(qc(wdir.getValue())&&qc(wspd.getValue())) { + textStr = NsharpNativeConstants.MEANWIND_850_200MB_LINE; + textStr = String.format(textStr,wdir.getValue(), wspd.getValue(), + nsharpNative.nsharpLib.kt_to_mps(wspd.getValue())); + } + else { + textStr = NsharpNativeConstants.MEANWIND_850_200MB_MISSING; + } + finalTextStr = finalTextStr + textStr + "\n"; + + /* + * Chin's NOTE::::the following function is for pritning and coded based on legacy nsharp software + * show_shear() + * in xwvid3.c + * + * void wind_shear ( float pbot, float ptop, float *shu, float *shv, + * float *sdir, float *smag ) + * + * Calculates the shear between the wind at (pbot) and + * (ptop). Default lower wind is a 1km mean wind, while + * the default upper layer is 3km. + * + * pbot - Bottom level of layer (mb) + * ptop - Top level of layer (mb) + * shu - U-Component of shear (m/s) + * shv - V-Component of shear (m/s) + * sdir - Direction of shear vector (degrees) + * smag - Magnitude of shear vector (m/s) + */ + FloatByReference shu= new FloatByReference(0); + FloatByReference shv= new FloatByReference(0); + FloatByReference sdir= new FloatByReference(0); + FloatByReference smag= new FloatByReference(0); + finalTextStr = finalTextStr + NsharpNativeConstants.ENVIRONMENTAL_SHEAR_STR; + + finalTextStr = finalTextStr + NsharpNativeConstants.SHEAR_LAYER_DELTA_STR; + + //Calculate wind shear at Low - 3 km + nsharpNative.nsharpLib.wind_shear( -1, nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(3000)), + shu,shv,sdir,smag); + if(qc(smag.getValue())) { + textStr = NsharpNativeConstants.SHEAR_LOW_3KM_LINE; + textStr = String.format(textStr,smag.getValue(), + nsharpNative.nsharpLib.kt_to_mps(smag.getValue()), + nsharpNative.nsharpLib.kt_to_mps(smag.getValue())/.3F); + } + else { + textStr = NsharpNativeConstants.SHEAR_LOW_3KM_MISSING; + } + finalTextStr = finalTextStr + textStr; + + //Calculate wind shear at Sfc - 2 km + nsharpNative.nsharpLib.wind_shear( -1, nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(2000)), + shu,shv,sdir,smag); + if(qc(smag.getValue())) { + textStr = NsharpNativeConstants.SHEAR_SFC_2KM_LINE; + textStr = String.format(textStr,smag.getValue(), + nsharpNative.nsharpLib.kt_to_mps(smag.getValue()), + nsharpNative.nsharpLib.kt_to_mps(smag.getValue())/.2F); + } + else { + textStr = NsharpNativeConstants.SHEAR_SFC_2KM_MISSING; + } + finalTextStr = finalTextStr + textStr; + + //Calculate wind shear at Sfc - 6 km + nsharpNative.nsharpLib.wind_shear( -1, nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(6000)), + shu,shv,sdir,smag); + if(qc(smag.getValue())) { + textStr = NsharpNativeConstants.SHEAR_SFC_6KM_LINE; + textStr = String.format(textStr,smag.getValue(), + nsharpNative.nsharpLib.kt_to_mps(smag.getValue()), + nsharpNative.nsharpLib.kt_to_mps(smag.getValue())/.6F); + } + else { + textStr = NsharpNativeConstants.SHEAR_SFC_6KM_MISSING; + } + finalTextStr = finalTextStr + textStr; + + //Calculate wind shear at Sfc - 12 km + nsharpNative.nsharpLib.wind_shear( -1, nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(12000)), + shu,shv,sdir,smag); + if(qc(smag.getValue())) { + textStr = NsharpNativeConstants.SHEAR_SFC_12KM_LINE; + textStr = String.format(textStr,smag.getValue(), + nsharpNative.nsharpLib.kt_to_mps(smag.getValue()), + nsharpNative.nsharpLib.kt_to_mps(smag.getValue())/1.2F); + } + else { + textStr = NsharpNativeConstants.SHEAR_SFC_12KM_MISSING; + } + finalTextStr = finalTextStr + textStr; + + //BRN Shear + /*_lplvalues lpvls = new _lplvalues(); + nsharpNative.nsharpLib.get_lpvaluesData(lpvls); + float sfctemp, sfcdwpt, sfcpres; + sfctemp = lpvls.temp; + sfcdwpt = lpvls.dwpt; + sfcpres = lpvls.pres; + _parcel pcl= new _parcel(); + nsharpNative.nsharpLib.parcel( -1.0F, -1.0F, sfcpres, sfctemp, sfcdwpt, pcl);*/ + FloatByReference fvalue= new FloatByReference(0); + nsharpNative.nsharpLib.cave_bulk_rich2( fvalue ); + if(qc(fvalue.getValue())) { + textStr = NsharpNativeConstants.STORM_TYPE_BRNSHEAR_LINE; + textStr = String.format(textStr,fvalue.getValue(),NsharpConstants.SQUARE_SYMBOL, NsharpConstants.SQUARE_SYMBOL); + } + else + textStr = NsharpNativeConstants.STORM_TYPE_BRNSHEAR_MISSING; + finalTextStr = finalTextStr + textStr; + + return finalTextStr; + } + + return ""; + } + private String printThermodynamicParametersBox1(){ + //Chin's NOTE::::this function is coded based on native nsharp show_parcel() in xwvid3.c + //if we can not Interpolates a temp with 700 mb pressure, then we dont have enough raw data + //This function is called to construct text string for printing + + if(nsharpNative != null){ + if (nsharpNative.nsharpLib.qc(nsharpNative.nsharpLib.itemp(700.0F)) == 0) + return null; + String finalTextStr = ""; + // set default + short currentParcel = NsharpNativeConstants.PARCELTYPE_MOST_UNSTABLE; + String hdrStr = NsharpNativeConstants.parcelToHdrStrMap.get(currentParcel); + float layerPressure = NsharpNativeConstants.MU_LAYER; + //get user selected parcel type + /*TBD + if(NsharpDrawPanels.getInstance() != null){ + currentParcel = NsharpDrawPanels.getInstance().getCurrentParcel(); + hdrStr = NsharpNativeConstants.parcelToHdrStrMap.get(currentParcel); + layerPressure = NsharpNativeConstants.parcelToLayerMap.get(currentParcel); + + }*/ + finalTextStr= finalTextStr+hdrStr; + + //call native define_parcel() with parcel type and user defined pressure (if user defined it) + nsharpNative.nsharpLib.define_parcel(currentParcel,layerPressure); + + _lplvalues lpvls = new _lplvalues(); + nsharpNative.nsharpLib.get_lpvaluesData(lpvls); + + float sfctemp, sfcdwpt, sfcpres; + sfctemp = lpvls.temp; + sfcdwpt = lpvls.dwpt; + sfcpres = lpvls.pres; + + // get parcel data by calling native nsharp parcel() API. value is returned in pcl + _parcel pcl = new _parcel(); + nsharpNative.nsharpLib.parcel( -1.0F, -1.0F, sfcpres, sfctemp, sfcdwpt, pcl); + + + String textStr = NsharpNativeConstants.PARCEL_LPL_LINE; + textStr = String.format(textStr, (int)pcl.lplpres,(int)pcl.lpltemp,(int)pcl.lpldwpt, + (int)nsharpNative.nsharpLib.ctof(pcl.lpltemp),(int)nsharpNative.nsharpLib.ctof(pcl.lpldwpt)); + //text.append(textStr); + finalTextStr = finalTextStr+textStr; + + if(qc(pcl.bplus)){ + textStr = NsharpNativeConstants.PARCEL_CAPE_LINE; + textStr = String.format(textStr,pcl.bplus); + } + else { + textStr = NsharpNativeConstants.PARCEL_CAPE_MISSING; + } + finalTextStr = finalTextStr + textStr; + + if(qc(pcl.li5)){ + textStr = NsharpNativeConstants.PARCEL_LI_LINE; + textStr = String.format(textStr,pcl.li5); + } + else { + textStr = NsharpNativeConstants.PARCEL_LI_MISSING; + } + finalTextStr = finalTextStr + textStr; + + if(qc(pcl.bfzl)){ + textStr = NsharpNativeConstants.PARCEL_BFZL_LINE; + textStr = String.format(textStr,pcl.bfzl); + } + else{ + textStr = NsharpNativeConstants.PARCEL_BFZL_MISSING; + } + finalTextStr = finalTextStr + textStr; + + if(qc(pcl.limax)){ + textStr = NsharpNativeConstants.PARCEL_LIMIN_LINE; + textStr = String.format(textStr,pcl.limax,pcl.limaxpres); + } + else{ + textStr = NsharpNativeConstants.PARCEL_LIMIN_MISSING; + } + finalTextStr = finalTextStr + textStr; + + if(qc(pcl.bminus)){ + textStr = NsharpNativeConstants.PARCEL_CINH_LINE; + textStr = String.format(textStr,pcl.bminus); + } + else { + textStr = NsharpNativeConstants.PARCEL_CINH_MISSING; + } + finalTextStr = finalTextStr + textStr; + + if(qc(pcl.cap)){ + textStr = NsharpNativeConstants.PARCEL_CAP_LINE; + textStr = String.format(textStr, pcl.cap, pcl.cappres); + } + else { + textStr = NsharpNativeConstants.PARCEL_CAP_MISSING; + } + finalTextStr = finalTextStr + textStr; + + textStr = NsharpNativeConstants.PARCEL_LEVEL_LINE; + finalTextStr = finalTextStr + textStr; + + if(qc(pcl.lclpres)&& + qc(nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.lclpres )))) ) + { + textStr = NsharpNativeConstants.PARCEL_LCL_LINE; + textStr = String.format(textStr,pcl.lclpres, nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.lclpres )))); + } + else { + textStr = NsharpNativeConstants.PARCEL_LCL_MISSING; + } + finalTextStr = finalTextStr + textStr; + + if(qc(pcl.lfcpres) && + qc(nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.lfcpres )))) && + qc(nsharpNative.nsharpLib.itemp(pcl.lfcpres ))) + { + textStr = NsharpNativeConstants.PARCEL_LFC_LINE; + textStr = String.format(textStr,pcl.lfcpres, nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.lfcpres ))), + nsharpNative.nsharpLib.itemp(pcl.lfcpres )); + } + else { + textStr = NsharpNativeConstants.PARCEL_LFC_MISSING; + } + finalTextStr = finalTextStr + textStr; + + if(qc(pcl.elpres) && + qc(nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.elpres )))) && + qc(nsharpNative.nsharpLib.itemp(pcl.elpres ))) + { + textStr = NsharpNativeConstants.PARCEL_EL_LINE; + textStr = String.format(textStr,pcl.elpres, nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.elpres ))), + nsharpNative.nsharpLib.itemp(pcl.elpres )); + } + else { + textStr = NsharpNativeConstants.PARCEL_EL_MISSING; + } + finalTextStr = finalTextStr + textStr; + + if(qc(pcl.mplpres) && + qc(nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.mplpres )))) ) + { + textStr = NsharpNativeConstants.PARCEL_MPL_LINE; + textStr = String.format(textStr,pcl.mplpres, nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(pcl.mplpres )))); + } + else { + textStr = NsharpNativeConstants.PARCEL_MPL_MISSING; + } + finalTextStr = finalTextStr + textStr; + + return finalTextStr; + + } + + return ""; + } + + @SuppressWarnings("deprecation") + public String printThermodynamicParametersBox2(){ + /* + * Chin's NOTE::::this function is coded based on legacy native nsharp software show_thermoparms(), + * show_moisture(),show_instability() in xwvid3.c + * This function is called to construct text string for printing + */ + + if(nsharpNative != null){ + String finalTextStr=""; + FloatByReference fValue= new FloatByReference(0); + FloatByReference fValue1= new FloatByReference(0); + FloatByReference fValue2= new FloatByReference(0); + FloatByReference fValue3= new FloatByReference(0); + //thermo data--------------// + //moisture data--------------// + String textStr; + + fValue.setValue(0); + nsharpNative.nsharpLib.precip_water(fValue, -1.0F, -1.0F); + if(qc(fValue.getValue())) { + textStr = NsharpNativeConstants.THERMO_PWATER_LINE; + textStr = String.format(textStr,fValue.getValue()); + } + else { + textStr = NsharpNativeConstants.THERMO_PWATER_MISSING; + } + finalTextStr = finalTextStr + textStr; + + fValue.setValue(0); + nsharpNative.nsharpLib.mean_relhum(fValue, -1.0F, -1.0F); + if(qc(fValue.getValue())) { + textStr = NsharpNativeConstants.THERMO_MEANRH_LINE; + textStr = String.format(textStr,fValue.getValue(),NsharpConstants.PERCENT_SYMBOL); + } + else { + textStr = NsharpNativeConstants.THERMO_MEANRH_MISSING; + } + finalTextStr = finalTextStr + textStr; + + fValue.setValue(0); + nsharpNative.nsharpLib.mean_mixratio(fValue, -1.0F, -1.0F); + if(qc(fValue.getValue())) { + textStr = NsharpNativeConstants.THERMO_MEANW_LINE; + textStr = String.format(textStr,fValue.getValue()); + } + else { + textStr = NsharpNativeConstants.THERMO_MEANW_MISSING; + } + finalTextStr = finalTextStr + textStr; + + fValue.setValue(0); + fValue1.setValue(0); + // get surface pressure (fValue1) before getting mean LRH value + nsharpNative.nsharpLib.get_surface(fValue1, fValue2, fValue3); //fValue 2 and fValue3 are not of concern here + nsharpNative.nsharpLib.mean_relhum( fValue, -1.0F, fValue1.getValue() - 150 ); + if(qc(fValue.getValue())) { + textStr = NsharpNativeConstants.THERMO_MEANLRH_LINE; + textStr = String.format(textStr,fValue.getValue(),NsharpConstants.PERCENT_SYMBOL); + } + else { + textStr = NsharpNativeConstants.THERMO_MEANLRH_MISSING; + } + finalTextStr = finalTextStr + textStr; + + fValue.setValue(0); + nsharpNative.nsharpLib.top_moistlyr(fValue); + if(qc(fValue.getValue())) { + textStr = NsharpNativeConstants.THERMO_TOP_LINE; + textStr = String.format(textStr,fValue.getValue(),nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(fValue.getValue())))); + } + else { + textStr = NsharpNativeConstants.THERMO_TOP_MISSING; + } + finalTextStr = finalTextStr + textStr; + //System.out.println(finalTextStr); + finalTextStr = finalTextStr + "BOXLINE"; + + //instability data--------------// + //finalTextStr=""; // reset str + + fValue.setValue(0); + fValue1.setValue(0); + + nsharpNative.nsharpLib.delta_t(fValue); + nsharpNative.nsharpLib.lapse_rate( fValue1, 700.0F, 500.0F ); + + if(qc(fValue.getValue()) && qc(fValue1.getValue())) { + textStr = NsharpNativeConstants.THERMO_700500mb_LINE; + textStr = String.format(textStr,fValue.getValue(), fValue1.getValue()); + } + else { + textStr = NsharpNativeConstants.THERMO_700500mb_MISSING; + } + finalTextStr = finalTextStr + textStr; + + fValue.setValue(0); + fValue1.setValue(0); + + nsharpNative.nsharpLib.vert_tot(fValue); + nsharpNative.nsharpLib.lapse_rate( fValue1, 850.0F, 500.0F ); + + if(qc(fValue.getValue()) && qc(fValue1.getValue())) { + textStr = NsharpNativeConstants.THERMO_850500mb_LINE; + textStr = String.format(textStr,fValue.getValue(), fValue1.getValue()); + } + else { + textStr = NsharpNativeConstants.THERMO_850500mb_MISSING; + } + finalTextStr = finalTextStr + textStr; + finalTextStr = finalTextStr + "BOXLINE"; + + //misc parameters data--------------// + //finalTextStr=""; // reset str + fValue.setValue(0); + fValue1.setValue(0); + fValue2.setValue(0); + nsharpNative.nsharpLib.t_totals(fValue, fValue1, fValue2); + if(qc(fValue.getValue())) { + textStr = NsharpNativeConstants.THERMO_TOTAL_LINE; + textStr = String.format(textStr,fValue.getValue()); + } + else { + textStr = NsharpNativeConstants.THERMO_TOTAL_MISSING; + } + finalTextStr = finalTextStr + textStr; + + fValue.setValue(0); + nsharpNative.nsharpLib.k_index(fValue); + if(qc(fValue.getValue())) { + textStr = NsharpNativeConstants.THERMO_KINDEX_LINE; + textStr = String.format(textStr,fValue.getValue()); + } + else { + textStr = NsharpNativeConstants.THERMO_KINDEX_MISSING; + } + finalTextStr = finalTextStr + textStr; + + fValue.setValue(0); + nsharpNative.nsharpLib.sweat_index(fValue); + if(qc(fValue.getValue())) { + textStr = NsharpNativeConstants.THERMO_SWEAT_LINE; + textStr = String.format(textStr,fValue.getValue()); + } + else { + textStr = NsharpNativeConstants.THERMO_SWEAT_MISSING; + } + finalTextStr = finalTextStr + textStr; + + fValue.setValue(0); + float maxTempF = nsharpNative.nsharpLib.ctof(nsharpNative.nsharpLib.max_temp( fValue, -1)); + if(qc(maxTempF)) { + textStr = NsharpNativeConstants.THERMO_MAXT_LINE; + textStr = String.format(textStr,maxTempF); + } + else { + textStr = NsharpNativeConstants.THERMO_MAXT_MISSING; + } + finalTextStr = finalTextStr + textStr; + + fValue.setValue(0); + float theDiff = nsharpNative.nsharpLib.ThetaE_diff( fValue); + if(qc(theDiff)) { + textStr = NsharpNativeConstants.THERMO_THETAE_LINE; + textStr = String.format(textStr,theDiff); + } + else { + textStr = NsharpNativeConstants.THERMO_THETAE_MISSING; + } + finalTextStr = finalTextStr + textStr; + + fValue.setValue(0); + float conTempF = nsharpNative.nsharpLib.ctof(nsharpNative.nsharpLib.cnvtv_temp( fValue, -50)); + if(qc(conTempF)) { + textStr = NsharpNativeConstants.THERMO_CONVT_LINE; + textStr = String.format(textStr,conTempF); + } + else { + textStr = NsharpNativeConstants.THERMO_CONVT_MISSING; + } + finalTextStr = finalTextStr + textStr; + + fValue.setValue(0); + float wbzft = nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(nsharpNative.nsharpLib.wb_lvl( 0, fValue )))); + if(qc(wbzft)) { + textStr = NsharpNativeConstants.THERMO_WBZ_LINE; + textStr = String.format(textStr,wbzft); + } + else { + textStr = NsharpNativeConstants.THERMO_WBZ_MISSING; + } + finalTextStr = finalTextStr + textStr; + + fValue.setValue(0); + float fgzft = nsharpNative.nsharpLib.mtof(nsharpNative.nsharpLib.agl(nsharpNative.nsharpLib.ihght(nsharpNative.nsharpLib.temp_lvl( 0, fValue )))); + if(qc(fgzft)) { + textStr = NsharpNativeConstants.THERMO_FGZ_LINE; + textStr = String.format(textStr,fgzft); + } + else { + textStr = NsharpNativeConstants.THERMO_FGZ_MISSING; + } + finalTextStr = finalTextStr + textStr; + + return finalTextStr; + } + return""; + } + public String printStormStructureParametersBox(){ + if(nsharpNative != null){ + FloatByReference smdir= new FloatByReference(0); + FloatByReference smspd= new FloatByReference(0); + FloatByReference wdir= new FloatByReference(0); + FloatByReference wspd= new FloatByReference(0); + FloatByReference mnu= new FloatByReference(0); + FloatByReference mnv= new FloatByReference(0); + FloatByReference phel= new FloatByReference(0); + FloatByReference nhel= new FloatByReference(0); + String textStr, finalTextStr=""; + nsharpNative.nsharpLib.get_storm(smspd, smdir); + //calculate helicity for sfc-3 km + float totHeli = nsharpNative.nsharpLib.helicity( (float)0, (float)3000, smdir.getValue(), smspd.getValue(), phel, nhel); + if(qc(phel.getValue())&&qc(nhel.getValue())) { + textStr = "Sfc - 3km SREH =\t\t%.0f m%c/s%c\r\n"; + textStr = String.format(textStr, totHeli, + NsharpConstants.SQUARE_SYMBOL, NsharpConstants.SQUARE_SYMBOL); + } + else { + textStr = "Sfc - 3km SREH =\t\tM"; + } + finalTextStr = finalTextStr + textStr; + //EFF. SREH + //nsharpNative.nsharpLib.get_storm(wspd,wdir); + if(qc(smdir.getValue())&&qc(smspd.getValue())) { + totHeli = + nsharpNative.nsharpLib.helicity( -1.0F, -1.0F, smdir.getValue(), smspd.getValue(), phel, nhel); + if(qc(totHeli)){ + textStr = NsharpNativeConstants.STORM_TYPE_EFF_LINE; + textStr = String.format(textStr,totHeli,NsharpConstants.SQUARE_SYMBOL,NsharpConstants.SQUARE_SYMBOL); + } + else { + textStr = NsharpNativeConstants.STORM_TYPE_EFF_MISSING; + } + } + else { + textStr = NsharpNativeConstants.STORM_TYPE_EFF_MISSING; + } + finalTextStr = finalTextStr + textStr; + //EHI + _parcel pcl = new _parcel();; + _lplvalues lpvls = new _lplvalues(); + nsharpNative.nsharpLib.get_lpvaluesData(lpvls); + float sfctemp, sfcdwpt, sfcpres; + sfctemp = lpvls.temp; + sfcdwpt = lpvls.dwpt; + sfcpres = lpvls.pres; + nsharpNative.nsharpLib.parcel( -1.0F, -1.0F, sfcpres, sfctemp, sfcdwpt, pcl); + if(qc(pcl.bplus)) { + float ehi = + nsharpNative.nsharpLib.ehi( pcl.bplus, totHeli); + if(qc(ehi)){ + textStr = NsharpNativeConstants.STORM_TYPE_EHI_LINE; + textStr = String.format(textStr,ehi); + } + else { + textStr = NsharpNativeConstants.STORM_TYPE_EHI_MISSING; + } + } + else { + textStr = NsharpNativeConstants.STORM_TYPE_EHI_MISSING; + } + finalTextStr = finalTextStr + textStr; + + //BRN + if(qc(pcl.brn)) { + textStr = NsharpNativeConstants.STORM_TYPE_BRN_LINE; + textStr = String.format(textStr,pcl.brn); + } + else { + textStr = NsharpNativeConstants.STORM_TYPE_BRN_MISSING; + } + finalTextStr = finalTextStr + textStr; + + //Strom wind + finalTextStr = finalTextStr +NsharpNativeConstants.STORM_WIND_STR; + finalTextStr = finalTextStr + NsharpNativeConstants.STORM_LAYER_VECTOR_STR; + //calculate pressure-weighted SR mean wind at sfc-2 km + nsharpNative.nsharpLib.sr_wind( nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(0)), + nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(2000)), smdir.getValue(), smspd.getValue(), + mnu, mnv, wdir, wspd); + if(qc(wdir.getValue())) { + textStr = NsharpNativeConstants.STORM_SFC2KM_VECT_LINE; + textStr = String.format(textStr,wdir.getValue(), wspd.getValue(), nsharpNative.nsharpLib.kt_to_mps(wspd.getValue())); + } + else { + textStr = NsharpNativeConstants.STORM_SFC2KM_VECT_MISSING; + } + finalTextStr = finalTextStr + textStr; + + //calculate pressure-weighted SR mean wind at 4-6 km + nsharpNative.nsharpLib.sr_wind( nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(4000)), + nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(6000)), smdir.getValue(), smspd.getValue(), + mnu, mnv, wdir, wspd); + if(qc(wdir.getValue())) { + textStr = NsharpNativeConstants.STORM_4_6KM_VECT_LINE; + textStr = String.format(textStr,wdir.getValue(), wspd.getValue(), nsharpNative.nsharpLib.kt_to_mps(wspd.getValue())); + } + else { + textStr = NsharpNativeConstants.STORM_4_6KM_VECT_MISSING; + } + finalTextStr = finalTextStr + textStr; + + //calculate pressure-weighted SR mean wind at 9-11 km + nsharpNative.nsharpLib.sr_wind( nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(9000)), + nsharpNative.nsharpLib.ipres(nsharpNative.nsharpLib.msl(11000)), smdir.getValue(), smspd.getValue(), + mnu, mnv, wdir, wspd); + if(qc(wdir.getValue())) { + textStr = NsharpNativeConstants.STORM_9_11KM_VECT_LINE; + textStr = String.format(textStr,wdir.getValue(), wspd.getValue(), nsharpNative.nsharpLib.kt_to_mps(wspd.getValue())); + } + else { + textStr = NsharpNativeConstants.STORM_9_11KM_VECT_MISSING; + } + finalTextStr = finalTextStr + textStr; + + return finalTextStr; + } + return""; + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpSaveHandle.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpSaveHandle.java new file mode 100644 index 0000000000..b6cd54ac7f --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpSaveHandle.java @@ -0,0 +1,168 @@ +package gov.noaa.nws.ncep.ui.nsharp.view; +/** + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/23/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + +import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingLayer; +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.view.NsharpLoadDialog; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileWriter; +import java.util.List; +import java.util.StringTokenizer; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.FileDialog; +import org.eclipse.swt.widgets.MessageBox; +import org.eclipse.swt.widgets.Shell; + +public class NsharpSaveHandle { + public static void saveFile(Shell shell) { + FileDialog dlg = new FileDialog(shell, SWT.SAVE); + String fileName = null; + + // The user has finished when one of the + // following happens: + // 1) The user dismisses the dialog by pressing Cancel + // 2) The selected file name does not exist + // 3) The user agrees to overwrite existing file + boolean done = false; + boolean saveFile = false; + NsharpResourceHandler rsc = NsharpEditor.getActiveNsharpEditor().getRscHandler(); + + if(rsc != null ){ + while (!done ) { + // Open the File Dialog + dlg.setText("Save Text Data"); + String[] filterExt = { "*.nsp", "*","*.txt","*.doc", ".rtf", "*.*"}; + dlg.setFilterExtensions(filterExt); + if( rsc.getPickedStnInfoStr()!= null && rsc.getPickedStnInfoStr().length() >0){ + StringTokenizer st = new StringTokenizer(rsc.getPickedStnInfoStr(), " \t\n\r\f/"); + int i =0; + + if(st.hasMoreTokens()== true){ + fileName = ""; + while (st.hasMoreTokens()) { + //i++; + //if(i > 3){ + // break; + //} + String tok = st.nextToken(); + //if(i ==3) { + // if(tok.length() >= 5) + // tok = " " + tok.substring(0, 5); + // else + // tok = " " + tok; + //} + fileName = fileName + tok; + + } + fileName = fileName + ".nsp"; + } + else + fileName= "nsharp.nsp"; + dlg.setFileName(fileName); + } + else + dlg.setFileName("nsharp.nsp"); + fileName = dlg.open(); + //System.out.println("file name = "+ fileName); + if (fileName == null) { + // User has cancelled, so quit and return + done = true; + } else { + // User has selected a file; see if it already exists + File file = new File(fileName); + if (file.exists()) { + // The file already exists; asks for confirmation + MessageBox mb = new MessageBox(dlg.getParent(), SWT.ICON_WARNING + | SWT.YES | SWT.NO); + + // We really should read this string from a + // resource bundle + mb.setMessage(fileName + " already exists. Do you want to replace it?"); + + // If they click Yes, we're done and we drop out. If + // they click No, we redisplay the File Dialog + done = mb.open() == SWT.YES; + if(done == true) + saveFile = true; + } else { + // File does not exist, so drop out + done = true; + saveFile = true; + } + } + } + if(saveFile == true) { + try{ + // Create file + FileWriter fstream = new FileWriter(fileName); + BufferedWriter out = new BufferedWriter(fstream); + String textToSave = new String(""); + + if(rsc!=null && rsc.getSoundingLys()!= null){ + List soundLyList = rsc.getSoundingLys(); + String latlonstr; + NsharpStationInfo stnInfo=rsc.getPickedStnInfo(); + if( stnInfo!= null){ + latlonstr = " LAT=" + stnInfo.getLatitude() + " LON="+ stnInfo.getLongitude(); + } + else { + latlonstr = " LAT= LON= "; + } + int loadsoundingType= NsharpLoadDialog.OBSER_SND; + String loadsoundingTypeStr= "OBS";; + if(NsharpLoadDialog.getAccess()!= null ){ + loadsoundingType = NsharpLoadDialog.getAccess().getActiveLoadSoundingType(); + switch(loadsoundingType ){ + case NsharpLoadDialog.PFC_SND: + loadsoundingTypeStr = "PFC"; + break; + case NsharpLoadDialog.MODEL_SND: + loadsoundingTypeStr = "MDL"; + break; + case NsharpLoadDialog.OBSER_SND: + default: + loadsoundingTypeStr = "OBS"; + break; + } + } + textToSave = loadsoundingTypeStr+ " "+rsc.getPickedStnInfo().getSndType() +" "+rsc.getPickedStnInfoStr() + latlonstr + + "\n" + "PRESSURE HGHT\t TEMP\t DWPT WDIR WSPD OMEG\n"; + String tempText=""; + for (NcSoundingLayer layer: soundLyList){ + tempText = String.format("%f %f %f %f %f %f %f\n", layer.getPressure(), + layer.getGeoHeight(),layer.getTemperature(),layer.getDewpoint(), layer.getWindDirection(), + layer.getWindSpeed(), layer.getOmega()); + textToSave = textToSave + tempText; + } + } + out.write(textToSave); + //Close the output stream + out.close(); + }catch (Exception e){//Catch exception if any + System.err.println("Error: " + e.getMessage()); + } + } + } + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpShowTextDialog.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpShowTextDialog.java new file mode 100644 index 0000000000..31904c61e8 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpShowTextDialog.java @@ -0,0 +1,323 @@ +package gov.noaa.nws.ncep.ui.nsharp.view; +/** + * + * gov.noaa.nws.ncep.ui.nsharp.palette.NsharpShowTextDialog + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 03/23/2010	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ + + +import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingLayer; + +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 java.util.List; + +import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.swt.SWT; +import org.eclipse.swt.SWTException; +import org.eclipse.swt.graphics.Font; +import org.eclipse.swt.graphics.FontData; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Text; +import com.raytheon.uf.viz.core.exception.VizException; + +public class NsharpShowTextDialog extends Dialog { + private static NsharpShowTextDialog INSTANCE = null; + protected Composite top; + private Shell shell; + private Text text=null; + private Group textGp; + private Font newFont ; + private static boolean iAmClosed; + private static String textToSave=""; + public Text getText() { + return text; + } + + protected NsharpShowTextDialog(Shell parentShell) throws VizException { + super(parentShell); + this.setShellStyle(SWT.TITLE | SWT.MODELESS | SWT.CLOSE ); + shell = parentShell; + // TODO Auto-generated constructor stub + } + + private void createShowtextDialogContents(Composite parent){ + textGp = new Group(parent,SWT.SHADOW_OUT); + textGp.setLayout( new GridLayout() ); + textGp.setText("Sounding Text"); + GridData data = new GridData (SWT.FILL, SWT.FILL, true, true); + textGp.setLayoutData (data); + text = new Text(textGp, SWT.V_SCROLL| SWT.H_SCROLL); + + GridData data1 = new GridData (SWT.FILL,SWT.FILL, true, true); + text.setLayoutData (data1); + text.setEditable(false); + Font font = text.getFont(); + FontData[] fontData = font.getFontData(); + for (int i = 0; i < fontData.length; i++) { + fontData[i].setHeight(12); + fontData[i].setName("courier"); + } + newFont = new Font(font.getDevice(), fontData); + text.setFont(newFont); + + } + + /*private String createDefaultSaveFileName() { + StringTokenizer st = new StringTokenizer(text.getText()); + int i =0; + String fileName; + if(st.hasMoreTokens()== true){ + fileName = ""; + //text header are the first 2,3,4 tokens. use them as default file name + while (st.hasMoreTokens()) { + i++; + String tok = st.nextToken(); + //System.out.println("tok "+ i + " ="+ tok); + if(i==1) + continue; + if(i > 4){ + break; + } + + if(i ==4) { + if(tok.length() >= 5) + tok = " " + tok.substring(0, 5); + else + tok = " " + tok; + } + fileName = fileName + tok; + + } + fileName = fileName + ".nsp"; + } + else + fileName= "nsharp.nsp"; + + return fileName; + }*/ + @Override + public void createButtonsForButtonBar(Composite parent) { + // create buttons with "CLOSE" label but with cancel function + createButton(parent, IDialogConstants.CANCEL_ID, + IDialogConstants.CLOSE_LABEL, false); + + // Push buttons for SAVE + Button saveBtn = createButton(parent, IDialogConstants.CLIENT_ID, + "SAVE", false); + saveBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + // Action to save text report + NsharpSaveHandle.saveFile(shell); + /*FileDialog dlg = new FileDialog(shell, SWT.SAVE); + String fileName = null; + + // The user has finished when one of the + // following happens: + // 1) The user dismisses the dialog by pressing Cancel + // 2) The selected file name does not exist + // 3) The user agrees to overwrite existing file + boolean done = false; + boolean saveFile = false; + while (!done) { + // Open the File Dialog + dlg.setText("Save"); + String[] filterExt = {"*.nsp"}; + dlg.setFilterExtensions(filterExt); + dlg.setFileName(createDefaultSaveFileName()); + fileName = dlg.open(); + //System.out.println("file name = "+ fileName); + if (fileName == null) { + // User has cancelled, so quit and return + done = true; + } else { + // User has selected a file; see if it already exists + File file = new File(fileName); + if (file.exists()) { + // The file already exists; asks for confirmation + MessageBox mb = new MessageBox(dlg.getParent(), SWT.ICON_WARNING + | SWT.YES | SWT.NO); + + // We really should read this string from a + // resource bundle + mb.setMessage(fileName + " already exists. Do you want to replace it?"); + + // If they click Yes, we're done and we drop out. If + // they click No, we redisplay the File Dialog + done = mb.open() == SWT.YES; + if(done == true) + saveFile = true; + } else { + // File does not exist, so drop out + done = true; + saveFile = true; + } + } + } + if(saveFile == true) { + try{ + // Create file + FileWriter fstream = new FileWriter(fileName); + BufferedWriter out = new BufferedWriter(fstream); + out.write(textToSave); + //Close the output stream + out.close(); + }catch (Exception e){//Catch exception if any + System.err.println("Error: " + e.getMessage()); + } + }*/ + } + } ); + } + /** + * Creates the dialog area + */ + @Override + public Control createDialogArea(Composite parent) { + + top = (Composite) super.createDialogArea(parent); + + // Create the main layout for the shell. + GridLayout mainLayout = new GridLayout(1, false); + mainLayout.marginHeight = 13; + mainLayout.marginWidth = 13; + top.setLayout(mainLayout); + + // Initialize all of the menus, controls, and layouts + createShowtextDialogContents(top); + + refreshTextData(); + return top; + } + + //@Override + public int open() { + //System.out.println("ShowText Dialog opened"); + + if ( this.getShell() == null ){ + this.create(); + } + this.getShell().setLocation(this.getShell().getParent().getLocation().x+700, + this.getShell().getParent().getLocation().y+200); + + iAmClosed = false; + return super.open(); + + } + @Override + public boolean close() { + + //System.out.println("ShowText close called"); + iAmClosed = true; + if(newFont!= null){ + newFont.dispose(); + newFont=null; + } + return (super.close()); + } + public static NsharpShowTextDialog getInstance( Shell parShell){ + + if ( INSTANCE == null ){ + try { + INSTANCE = new NsharpShowTextDialog( parShell ); + //System.out.println("new showtext dialog INSTANCE created"); + } catch (VizException e) { + e.printStackTrace(); + } + + } + else { + //System.out.println("current showtext dialog INSTANCE returned!"); + } + + return INSTANCE; + + } + public static NsharpShowTextDialog getAccess() { + if(iAmClosed == true) + return null; + + return INSTANCE; + } + public static NsharpShowTextDialog getAccess(boolean force) { + if(force == true) + return INSTANCE; + else + return getAccess(); + } + + public void refreshTextData() { + NsharpResourceHandler rsc = NsharpEditor.getActiveNsharpEditor().getRscHandler(); + if(rsc!=null && rsc.getSoundingLys()!= null && !text.isDisposed() && text!=null){ + String hdr; + List soundLyList = rsc.getSoundingLys(); + hdr = "PRESSURE HGHT\t TEMP\t DWPT WDIR WSPD OMEG\n"; + String latlonstr; + NsharpStationInfo stnInfo=rsc.getPickedStnInfo(); + if( stnInfo!= null){ + latlonstr = " LAT=" + stnInfo.getLatitude() + " LON="+ stnInfo.getLongitude(); + } + else { + latlonstr = " LAT= LON= "; + } + String textToShow = rsc.getPickedStnInfo().getSndType() +" "+rsc.getPickedStnInfoStr() + latlonstr+ "\n" + hdr; + textToSave = rsc.getPickedStnInfo().getSndType() +" "+rsc.getPickedStnInfoStr() + latlonstr + "\n" + hdr; + String tempText="", tempSaveText=""; + for (NcSoundingLayer layer: soundLyList){ + tempText = String.format("%7.2f\t%8.2f %7.2f %7.2f %6.2f %6.2f %9.6f\n", layer.getPressure(), + layer.getGeoHeight(),layer.getTemperature(),layer.getDewpoint(), layer.getWindDirection(), + layer.getWindSpeed(), layer.getOmega()); + tempSaveText = String.format("%f %f %f %f %f %f %f\n", layer.getPressure(), + layer.getGeoHeight(),layer.getTemperature(),layer.getDewpoint(), layer.getWindDirection(), + layer.getWindSpeed(), layer.getOmega()); + textToShow = textToShow + tempText; + textToSave = textToSave + tempSaveText; + } + + text.setText(textToShow); + + //System.out.println(textToShow); + textGp.layout(); + } + } + + + //Need use asyncExec to handle update text request from other thread (worker thread) + public void updateTextFromWorkerThread(){ + try{ + Display.getDefault().asyncExec(new Runnable(){ + public void run(){ + refreshTextData(); + } + }); + }catch(SWTException e){ + System.out.println("updateTextFromWorkerThread: can not run asyncExec()"); + } + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpStnConfigDialog.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpStnConfigDialog.java new file mode 100644 index 0000000000..ccb5d82536 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpStnConfigDialog.java @@ -0,0 +1,187 @@ +package gov.noaa.nws.ncep.ui.nsharp.view; +/** + * + * gov.noaa.nws.ncep.ui.nsharp.palette.NsharpStnConfigDialog + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/23/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.NsharpStationStateProperty; +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpEditor; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpResourceHandler; + +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Shell; + +public class NsharpStnConfigDialog extends Dialog { + private static NsharpStnConfigDialog INSTANCE = null; + private org.eclipse.swt.widgets.List stnList; + private List selectedStnList = new ArrayList(); + protected Composite top; + protected NsharpStnConfigDialog(Shell parentShell) { + super(parentShell); + } + public static NsharpStnConfigDialog getInstance( Shell parShell){ + + if ( INSTANCE == null ){ + INSTANCE = new NsharpStnConfigDialog( parShell ); + + } + return INSTANCE; + + } + + @Override + public int open() { + return super.open(); + } + @Override + public boolean close() { + + if(stnList!=null){ + stnList.removeListener(SWT.Selection, stnList.getListeners(SWT.Selection)[0]); + stnList.dispose(); + stnList = null; + } + if(selectedStnList!= null){ + selectedStnList.clear(); + selectedStnList = null; + } + INSTANCE = null; + return super.close(); + } + + @Override + protected void configureShell( Shell shell ) { + super.configureShell( shell ); + shell.setText( "Station Configuration" ); + } + @Override + protected void createButtonsForButtonBar(Composite parent) { + createButton(parent, IDialogConstants.CANCEL_ID, + IDialogConstants.CANCEL_LABEL, false); + + } + + + @Override + protected Control createDialogArea(Composite parent) { + top = (Composite) super.createDialogArea(parent); + + // Create the main layout for the shell. + GridLayout mainLayout = new GridLayout(1, false); + mainLayout.marginHeight = 3; + mainLayout.marginWidth = 3; + + top.setLayout(mainLayout); + + // Initialize all of the menus, controls, and layouts + createDiaContents(top); + + return top; + } + + + private void createDiaContents(Composite parent) { + //create file widget list + Group stnListGp = new Group(parent,SWT.SHADOW_ETCHED_IN); + stnList = new org.eclipse.swt.widgets.List(stnListGp, SWT.BORDER | SWT.MULTI| SWT.V_SCROLL ); + stnList.setBounds(0,0, 2*NsharpConstants.listWidth, NsharpConstants.listHeight * 8); + createStnList(); + //create a selection listener to handle user's selection on list + stnList.addListener ( SWT.Selection, new Listener () { + private String selectedSndTime=null; + public void handleEvent (Event e) { + if (stnList.getSelectionCount() > 0 ) { + selectedStnList.clear(); + for(int i=0; i < stnList.getSelectionCount(); i++) { + selectedSndTime = stnList.getSelection()[i]; + //remove "--InActive" or "--Active" from string + selectedSndTime= selectedSndTime.substring(0, selectedSndTime.indexOf('-')); + selectedStnList.add(selectedSndTime); + } + + } + } + }); + + Group buttonGp = new Group(parent,SWT.SHADOW_OUT); + buttonGp.setLayout( new GridLayout(2, false) ); + + Button activateBtn = new Button(buttonGp, SWT.PUSH); + activateBtn.setText("Activate"); + activateBtn.setEnabled( true ); + activateBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + NsharpResourceHandler rsc = NsharpEditor.getActiveNsharpEditor().getRscHandler(); + rsc.handleStationActConfig(selectedStnList, NsharpConstants.State.ACTIVE); + selectedStnList.clear(); + close(); + } + + } ); + Button deactivateBtn = new Button(buttonGp, SWT.PUSH); + deactivateBtn.setText("DeActivate"); + deactivateBtn.setEnabled( true ); + deactivateBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + //System.out.println("Unload Selected"); + NsharpResourceHandler rsc = NsharpEditor.getActiveNsharpEditor().getRscHandler(); + rsc.handleStationActConfig(selectedStnList, NsharpConstants.State.INACTIVE); + selectedStnList.clear(); + close(); + } + } ); + } + private boolean checkLoadedRsc() { + NsharpEditor editor = NsharpEditor.getActiveNsharpEditor(); + if (editor == null) { + return false; + } + NsharpResourceHandler rsc = editor.getRscHandler(); + if (rsc == null) { + return false; + } + return true; + } + private void createStnList(){ + if(checkLoadedRsc()== false) + return; + //after checking, rsc is not null guaranteed. + NsharpResourceHandler rsc = NsharpEditor.getActiveNsharpEditor().getRscHandler(); + List stnStList = rsc.getStnStateList(); + for(NsharpStationStateProperty stn: stnStList){ + String s; + if(stn.getStnState() == NsharpConstants.State.INACTIVE) + s = "--(InActive)"; + else + s="--(Active)"; + stnList.add(stn.getStnDescription() +s); + } + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpTimeLineConfigDialog.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpTimeLineConfigDialog.java new file mode 100644 index 0000000000..4e7bfdc36c --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpTimeLineConfigDialog.java @@ -0,0 +1,187 @@ +package gov.noaa.nws.ncep.ui.nsharp.view; +/** + * + * gov.noaa.nws.ncep.ui.nsharp.palette.NsharpTimeLineConfigDialog + * + * + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/23/2012	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.NsharpTimeLineStateProperty; +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpEditor; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpResourceHandler; + +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Shell; + +public class NsharpTimeLineConfigDialog extends Dialog { + private static NsharpTimeLineConfigDialog INSTANCE = null; + private org.eclipse.swt.widgets.List timeLineList; + private List selectedTimeList = new ArrayList(); + protected Composite top; + protected NsharpTimeLineConfigDialog(Shell parentShell) { + super(parentShell); + } + public static NsharpTimeLineConfigDialog getInstance( Shell parShell){ + + if ( INSTANCE == null ){ + INSTANCE = new NsharpTimeLineConfigDialog( parShell ); //System.out.println("new unload dialog INSTANCE created"); + + } + return INSTANCE; + + } + + @Override + public int open() { + return super.open(); + } + @Override + public boolean close() { + + if(timeLineList!=null){ + timeLineList.removeListener(SWT.Selection, timeLineList.getListeners(SWT.Selection)[0]); + timeLineList.dispose(); + timeLineList = null; + } + if(selectedTimeList!= null){ + selectedTimeList.clear(); + selectedTimeList = null; + } + INSTANCE = null; + return super.close(); + } + + @Override + protected void configureShell( Shell shell ) { + super.configureShell( shell ); + shell.setText( "Time Line Configuration" ); + } + @Override + protected void createButtonsForButtonBar(Composite parent) { + createButton(parent, IDialogConstants.CANCEL_ID, + IDialogConstants.CANCEL_LABEL, false); + + } + + + @Override + protected Control createDialogArea(Composite parent) { + top = (Composite) super.createDialogArea(parent); + + // Create the main layout for the shell. + GridLayout mainLayout = new GridLayout(1, false); + mainLayout.marginHeight = 3; + mainLayout.marginWidth = 3; + + top.setLayout(mainLayout); + + // Initialize all of the menus, controls, and layouts + createDiaContents(top); + + return top; + } + + + private void createDiaContents(Composite parent) { + //create file widget list + Group sndTimeListGp = new Group(parent,SWT.SHADOW_ETCHED_IN); + timeLineList = new org.eclipse.swt.widgets.List(sndTimeListGp, SWT.BORDER | SWT.MULTI| SWT.V_SCROLL ); + timeLineList.setBounds(0,0, 2*NsharpConstants.listWidth, NsharpConstants.listHeight * 8); + createSndList(); + //create a selection listener to handle user's selection on list + timeLineList.addListener ( SWT.Selection, new Listener () { + private String selectedSndTime=null; + public void handleEvent (Event e) { + if (timeLineList.getSelectionCount() > 0 ) { + selectedTimeList.clear(); + for(int i=0; i < timeLineList.getSelectionCount(); i++) { + selectedSndTime = timeLineList.getSelection()[i]; + //remove "--InActive" or "--Active" + selectedSndTime= selectedSndTime.substring(0, selectedSndTime.indexOf('-')); + selectedTimeList.add(selectedSndTime); + } + + } + } + }); + + Group buttonGp = new Group(parent,SWT.SHADOW_OUT); + buttonGp.setLayout( new GridLayout(2, false) ); + + Button activateBtn = new Button(buttonGp, SWT.PUSH); + activateBtn.setText("Activate"); + activateBtn.setEnabled( true ); + activateBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + NsharpResourceHandler rsc = NsharpEditor.getActiveNsharpEditor().getRscHandler(); + rsc.handleTimeLineActConfig(selectedTimeList, NsharpConstants.State.ACTIVE); + selectedTimeList.clear(); + close(); + } + + } ); + Button deactivateBtn = new Button(buttonGp, SWT.PUSH); + deactivateBtn.setText("DeActivate"); + deactivateBtn.setEnabled( true ); + deactivateBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + //System.out.println("Unload Selected"); + NsharpResourceHandler rsc = NsharpEditor.getActiveNsharpEditor().getRscHandler(); + rsc.handleTimeLineActConfig(selectedTimeList, NsharpConstants.State.INACTIVE); + selectedTimeList.clear(); + close(); + } + } ); + } + private boolean checkLoadedRsc() { + NsharpEditor editor = NsharpEditor.getActiveNsharpEditor(); + if (editor == null) { + return false; + } + NsharpResourceHandler rsc = editor.getRscHandler(); + if (rsc == null) { + return false; + } + return true; + } + private void createSndList(){ + if(checkLoadedRsc()== false) + return; + //after checking, rsc is not null guaranteed. + NsharpResourceHandler rsc = NsharpEditor.getActiveNsharpEditor().getRscHandler(); + List tlList = rsc.getTimeLineStateList(); + for(NsharpTimeLineStateProperty tl: tlList){ + String s; + if(tl.getTimeState() == NsharpConstants.State.INACTIVE) + s = "--(InActive)"; + else + s="--(Active)"; + timeLineList.add(tl.getTimeDescription() +s); + } + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpUnloadDialog.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpUnloadDialog.java new file mode 100644 index 0000000000..e65db0b3b3 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/NsharpUnloadDialog.java @@ -0,0 +1,204 @@ +/** + * + * gov.noaa.nws.ncep.ui.nsharp.view.NsharpUnloadDialog + * + * This java class performs the NSHARP NsharpLoadDialog functions. + * This code is developed by NCEP-SIB for AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 04/21/2011	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.view; + +import java.util.ArrayList; +import java.util.List; + +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.NsharpSoundingElementStateProperty; +import gov.noaa.nws.ncep.ui.nsharp.display.NsharpEditor; +import gov.noaa.nws.ncep.ui.nsharp.display.rsc.NsharpResourceHandler; + +import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.MessageBox; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.PlatformUI; + +public class NsharpUnloadDialog extends Dialog { + private static NsharpUnloadDialog INSTANCE = null; + private org.eclipse.swt.widgets.List sndTimeList; + private List selectedTimeList = new ArrayList(); + protected Composite top; + protected NsharpUnloadDialog(Shell parentShell) { + super(parentShell); + } + public static NsharpUnloadDialog getInstance( Shell parShell){ + + if ( INSTANCE == null ){ + INSTANCE = new NsharpUnloadDialog( parShell ); //System.out.println("new unload dialog INSTANCE created"); + + } + return INSTANCE; + + } + + @Override + public int open() { + return super.open(); + } + @Override + public boolean close() { + + if(sndTimeList!=null){ + sndTimeList.removeListener(SWT.Selection, sndTimeList.getListeners(SWT.Selection)[0]); + sndTimeList.dispose(); + sndTimeList = null; + } + if(selectedTimeList!= null){ + selectedTimeList.clear(); + selectedTimeList = null; + } + INSTANCE = null; + return super.close(); + } + + @Override + protected void configureShell( Shell shell ) { + super.configureShell( shell ); + shell.setText( "Unload" ); + } + @Override + protected void createButtonsForButtonBar(Composite parent) { + createButton(parent, IDialogConstants.CANCEL_ID, + IDialogConstants.CANCEL_LABEL, false); + + } + + + @Override + protected Control createDialogArea(Composite parent) { + top = (Composite) super.createDialogArea(parent); + + // Create the main layout for the shell. + GridLayout mainLayout = new GridLayout(1, false); + mainLayout.marginHeight = 3; + mainLayout.marginWidth = 3; + + top.setLayout(mainLayout); + + // Initialize all of the menus, controls, and layouts + createDiaContents(top); + + return top; + } + + + private void createDiaContents(Composite parent) { + //create file widget list + Group sndTimeListGp = new Group(parent,SWT.SHADOW_ETCHED_IN); + //sndTimeListGp.setText("Loaded Sounding Times:"); + sndTimeList = new org.eclipse.swt.widgets.List(sndTimeListGp, SWT.BORDER | SWT.MULTI| SWT.V_SCROLL ); + sndTimeList.setBounds(0,0, 2*NsharpConstants.listWidth, NsharpConstants.listHeight * 8); + createSndList(); + //create a selection listener to handle user's selection on list + sndTimeList.addListener ( SWT.Selection, new Listener () { + private String selectedSndTime=null; + public void handleEvent (Event e) { + if (sndTimeList.getSelectionCount() > 0 ) { + selectedTimeList.clear(); + for(int i=0; i < sndTimeList.getSelectionCount(); i++) { + selectedSndTime = sndTimeList.getSelection()[i]; + selectedTimeList.add(selectedSndTime); + } + + } + } + }); + + Group buttonGp = new Group(parent,SWT.SHADOW_OUT); + buttonGp.setLayout( new GridLayout(2, false) ); + + Button unloadAllBtn = new Button(buttonGp, SWT.PUSH); + unloadAllBtn.setText(" Unload All "); + unloadAllBtn.setEnabled( true ); + unloadAllBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + MessageBox messageBox = new MessageBox(shell, SWT.ICON_WARNING | SWT.YES | SWT.NO); + messageBox.setText("Warning"); + messageBox.setMessage("Unloading ALL sounding data?"); + int response = messageBox.open(); + if(response == SWT.YES) { + NsharpResourceHandler rsc = NsharpEditor.getActiveNsharpEditor().getRscHandler(); + rsc.deleteRscAll(); + selectedTimeList.clear(); + close(); + } + + } + + } ); + Button unloadSelectedBtn = new Button(buttonGp, SWT.PUSH); + unloadSelectedBtn.setText("Unload Selected"); + unloadSelectedBtn.setEnabled( true ); + unloadSelectedBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + //System.out.println("Unload Selected"); + NsharpResourceHandler rsc = NsharpEditor.getActiveNsharpEditor().getRscHandler(); + if(selectedTimeList.size() == sndTimeList.getItemCount()){ + rsc.deleteRscAll(); + }else { + rsc.deleteRsc(selectedTimeList); + } + selectedTimeList.clear(); + close(); + } + } ); + } + private boolean checkLoadedRsc() { + NsharpEditor editor = NsharpEditor.getActiveNsharpEditor(); + if (editor == null) { + return false; + } + NsharpResourceHandler rsc = editor.getRscHandler(); + if (rsc == null) { + return false; + } + return true; + } + private void createSndList(){ + if(checkLoadedRsc()== false) + return; + //after checking, rsc is not null guaranteed. + NsharpResourceHandler rsc = NsharpEditor.getActiveNsharpEditor().getRscHandler(); + //List timeLineElementList = rsc.getDataTimelineList(); + List> stnTmTable = rsc.getStnTimeTable(); + //for(ElementStateProperty elm: timeLineElementList){ + // sndTimeList.add(elm.getElementDescription()); + //} + for(List stnTmList: stnTmTable){ + for(NsharpSoundingElementStateProperty tm: stnTmList){ + if(tm.getElementState() != NsharpConstants.State.NOTAVAIL){ + sndTimeList.add(tm.getElementDescription()); + } + } + } + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/ObservedSoundingDialogContents.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/ObservedSoundingDialogContents.java new file mode 100644 index 0000000000..130bae1914 --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/ObservedSoundingDialogContents.java @@ -0,0 +1,393 @@ +/** + * + * gov.noaa.nws.ncep.ui.nsharp.view.ObservedSoundingDialogContents + * + * This java class performs the NSHARP NsharpLoadDialog functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 01/2011	    229			Chin Chen	Initial coding
+ * 09/14/2011   457         S. Gurung   Renamed H5UAIR to NCUAIR
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.view; + +import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingProfile; +import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingStnInfo; +import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingStnInfoCollection; +import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingTimeLines; +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.NsharpStationInfo; +import gov.noaa.nws.ncep.ui.nsharp.display.map.NsharpMapResource; +import gov.noaa.nws.ncep.viz.common.soundingQuery.NcSoundingQuery; + +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; +import java.util.TimeZone; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Font; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Listener; + +public class ObservedSoundingDialogContents { + private Composite parent; + private org.eclipse.swt.widgets.List sndTimeList; + private Group btnGp, sndTimeListGp, topGp, midGp; + private boolean timeLimit = false; + private boolean rawData = false; + private Button timeBtn, bufruaBtn, uairBtn, rawBtn; + private String FILE_UAIR = "UAIR"; + private String FILE_BUFRUA = "BUFRUA"; + //private String FILE_DROP = "DROP"; + private NcSoundingProfile.ObsSndType currentSndType = NcSoundingProfile.ObsSndType.NONE; + private NsharpLoadDialog ldDia; + private List selectedTimeList = new ArrayList(); + private Font newFont; + public boolean isRawData() { + return rawData; + } + public NcSoundingProfile.ObsSndType getCurrentSndType() { + return currentSndType; + } + public ObservedSoundingDialogContents(Composite parent) { + this.parent = parent; + ldDia = NsharpLoadDialog.getAccess(); + newFont = ldDia.getNewFont(); + } + private void createObsvdSndUairList() { + sndTimeList.removeAll(); + + // use NcSoundingQuery to query + NcSoundingTimeLines timeLines = NcSoundingQuery.soundingTimeLineQuery(currentSndType.toString()); + + if(timeLines!= null && timeLines.getTimeLines() != null){ + ldDia.startWaitCursor(); + for(Object timeLine : timeLines.getTimeLines()){ + Timestamp synoptictime = (Timestamp)timeLine; + if(synoptictime != null){ + //need to format synoptictime to GMT time string. Timestamp.toString produce a local time Not GMT time + Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT")); + cal.setTimeInMillis(synoptictime.getTime()); + String gmtTimeStr = String.format("%1$ty%1$tm%1$td/%1$tH %2$s", cal, currentSndType.toString()); + //String gmtTimeStr = String.format("%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS", cal); + //System.out.println("GMT time " + gmtTimeStr + " msec="+ synoptictime.getTime() + " local time "+synoptictime.toString()); + if(!timeLimit){ + //System.out.println("not 00z and 12z only"); + sndTimeList.add(gmtTimeStr); + } + else { + int hour = cal.get(Calendar.HOUR_OF_DAY); + //System.out.println("00z and 12z only hour = "+ hour); + if((hour == 0) || (hour == 12)) + sndTimeList.add(gmtTimeStr); + } + } + } + ldDia.stopWaitCursor(); + } + else + System.out.println("EDEX timeline query return null"); + + } + private void queryAndMarkStn(String selectedSndTime) { + String selectTimetr = NcSoundingQuery.convertSoundTimeDispStringToRangeStartTimeFormat(selectedSndTime); + NsharpMapResource nsharpMapResource = NsharpMapResource.getOrCreateNsharpMapResource(); + //Chin float lat, lon; + double lat, lon; + String stnInfoStr; + + //use NcSoundingQuery to query stn info + NcSoundingStnInfoCollection sndStnInfoCol = NcSoundingQuery.soundingStnInfoQuery(currentSndType.toString(),selectTimetr); + if(sndStnInfoCol != null && sndStnInfoCol.getStationInfo() != null){ + + NcSoundingStnInfo[] stnInfoAry = sndStnInfoCol.getStationInfo(); + //System.out.println("queryAndMarkStn called mapresource = "+ nsharpMapResource.toString()); + //Note: A same station may have many reports + for(int i=0; i < stnInfoAry.length; i++){ + NcSoundingStnInfo stnInfo = stnInfoAry[i]; + Timestamp synoptictime=null; + stnInfoStr= stnInfo.getStnId(); + if(stnInfoStr== null || stnInfoStr.length() < 1) + stnInfoStr = "*"; + lat = stnInfo.getStationLatitude(); + lon = stnInfo.getStationLongitude(); + //elv = stnInfo.getStationElevation(); + synoptictime = (Timestamp)stnInfo.getSynopTime(); + + //convert to Nsharp's own station info struct + NsharpStationInfo stn = new NsharpStationInfo(); + stn.setStnDisplayInfo(stnInfoStr + " " + selectedSndTime+ " "+currentSndType.toString()); + stn.setLongitude(lon); + stn.setLatitude(lat); + //stn.setElevation(elv); + stn.setReftime(synoptictime); + stn.setRangestarttime(synoptictime); + stn.setSndType(currentSndType.toString()); + //System.out.println("sndType= "+currentSndType); + //System.out.println("stn lat ="+stn.getLatitude() + " lon="+stn.getLongitude()); + nsharpMapResource.addPoint(stn); + } + + NsharpMapResource.bringMapEditorToTop(); + /* Chin test if(NsharpMapResource.getMapEditor() != null){ + + //NmapUiUtils.getActiveNatlCntrsEditor().refresh(); + NsharpMapResource.getMapEditor().refresh(); + PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().bringToTop(NsharpMapResource.getMapEditor()); + } + else{ + //bring the MAP editor back to top + PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().bringToTop(NmapUiUtils.findDisplayByName("Map")); + + }*/ + } + //NsharpMapModalTool.setModal(); + } + public void createObsvdDialogContents(){ + currentSndType = NcSoundingProfile.ObsSndType.NONE; + timeLimit =false; + rawData = false; + topGp = new Group(parent,SWT.SHADOW_ETCHED_IN); + topGp.setLayout( new GridLayout( 2, false ) ); + + //ldDia.setShellSize(false); + ldDia.createSndTypeList(topGp); + + btnGp = new Group(topGp, SWT.SHADOW_ETCHED_IN); + btnGp.setText("File Type"); + btnGp.setFont(newFont); + uairBtn = new Button(btnGp, SWT.RADIO | SWT.BORDER); + uairBtn.setText(FILE_UAIR); + uairBtn.setEnabled( true ); + uairBtn.setBounds(btnGp.getBounds().x+ NsharpConstants.btnGapX, btnGp.getBounds().y + NsharpConstants.labelGap, NsharpConstants.btnWidth,NsharpConstants.btnHeight); + uairBtn.setFont(newFont); + uairBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + sndTimeList.removeAll(); + currentSndType = NcSoundingProfile.ObsSndType.NCUAIR; + createObsvdSndUairList(); + //System.out.println("new obvSnd dialog uair btn"); + } + } ); + + bufruaBtn = new Button(btnGp, SWT.RADIO | SWT.BORDER); + bufruaBtn.setText(FILE_BUFRUA); + bufruaBtn.setEnabled( true ); + bufruaBtn.setBounds(btnGp.getBounds().x+ NsharpConstants.btnGapX, uairBtn.getBounds().y + uairBtn.getBounds().height+ NsharpConstants.btnGapY, NsharpConstants.btnWidth,NsharpConstants.btnHeight); + bufruaBtn.setFont(newFont); + bufruaBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + sndTimeList.removeAll(); + currentSndType = NcSoundingProfile.ObsSndType.BUFRUA; + createObsvdSndUairList(); + } + } ); + /*/NCUAIR + ncuairBtn = new Button(btnGp, SWT.RADIO | SWT.BORDER); + ncuairBtn.setText("NCUAIR"); + ncuairBtn.setEnabled( true ); + ncuairBtn.setBounds(btnGp.getBounds().x+ NsharpConstants.btnGapX, bufruaBtn.getBounds().y + bufruaBtn.getBounds().height+ NsharpConstants.btnGapY, NsharpConstants.btnWidth,NsharpConstants.btnHeight); + + ncuairBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + sndTimeList.removeAll(); + //CHIN HDF5 test + currentSndType = NcSoundingProfile.ObsSndType.NCUAIR; + createObsvdSndUairList(); + //System.out.println("new obvSnd dialog uair btn"); + } + } ); + + dropBtn = new Button(btnGp, SWT.RADIO | SWT.BORDER); + dropBtn.setText(FILE_DROP); + dropBtn.setEnabled( false ); + dropBtn.setBounds(btnGp.getBounds().x+ NsharpConstants.btnGapX, bufruaBtn.getBounds().y + bufruaBtn.getBounds().height+ NsharpConstants.btnGapY, NsharpConstants.btnWidth,NsharpConstants.btnHeight); + + dropBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + sndTimeList.removeAll(); + currentSndType = NcSoundingProfile.ObsSndType.DROP; + } + } ); + tamBtn = new Button(btnGp, SWT.RADIO | SWT.BORDER); + tamBtn.setText(FILE_TAMDAR); + tamBtn.setEnabled( false ); + tamBtn.setBounds(btnGp.getBounds().x+ NsharpConstants.btnGapX, bufruaBtn.getBounds().y + bufruaBtn.getBounds().height+ NsharpConstants.btnGapY, NsharpConstants.btnWidth,NsharpConstants.btnHeight); + //tamBtn.setBounds(btnGp.getBounds().x+ NsharpConstants.btnGapX, ncuairBtn.getBounds().y + ncuairBtn.getBounds().height+ NsharpConstants.btnGapY, NsharpConstants.btnWidth,NsharpConstants.btnHeight); + tamBtn.setFont(newFont); + tamBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + sndTimeList.removeAll(); + currentSndType = NcSoundingProfile.ObsSndType.TAMDAR; + } + } ); + browseBtn = new Button(btnGp, SWT.RADIO | SWT.BORDER); + browseBtn.setText(FILE_BROWSE); + browseBtn.setEnabled( false ); + browseBtn.setBounds(btnGp.getBounds().x+ NsharpConstants.btnGapX, tamBtn.getBounds().y + tamBtn.getBounds().height+ NsharpConstants.btnGapY, NsharpConstants.btnWidth,NsharpConstants.btnHeight); + browseBtn.setFont(newFont); + browseBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + sndTimeList.removeAll(); + currentSndType = NcSoundingProfile.ObsSndType.BROWSE; + } + } ); */ + midGp = new Group(parent,SWT.SHADOW_ETCHED_IN); + midGp.setLayout( new GridLayout( 2, false ) ); + timeBtn = new Button(midGp, SWT.CHECK | SWT.BORDER); + timeBtn.setText("00Z and 12Z only"); + timeBtn.setEnabled( true ); + //timeBtn.setBounds(btnGp.getBounds().x+ NsharpConstants.btnGapX, browseBtn.getBounds().y + browseBtn.getBounds().height+ NsharpConstants.btnGapY, NsharpConstants.btnWidth,NsharpConstants.btnHeight); + timeBtn.setFont(newFont); + timeBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(timeBtn.getSelection()) + timeLimit = true; + else + timeLimit = false; + + //refresh sounding list if file type is selected already + if(currentSndType== NcSoundingProfile.ObsSndType.NCUAIR /*|| currentSndType == NcSoundingProfile.ObsSndType.UAIR*/|| currentSndType == NcSoundingProfile.ObsSndType.BUFRUA){ + createObsvdSndUairList(); + } + + + } + } ); + rawBtn = new Button(midGp, SWT.CHECK | SWT.BORDER); + rawBtn.setText("raw data"); + rawBtn.setEnabled( true ); + rawBtn.setBounds(timeBtn.getBounds().x+timeBtn.getBounds().width, timeBtn.getBounds().y, + timeBtn.getBounds().width, timeBtn.getBounds().height); + rawBtn.setFont(newFont); + rawBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(rawBtn.getSelection()) + rawData = true; + else + rawData = false;; + } + } ); + //create file widget list + sndTimeListGp = new Group(parent,SWT.SHADOW_ETCHED_IN); + sndTimeListGp.setText("Sounding Times:"); + sndTimeListGp.setFont(newFont); + sndTimeList = new org.eclipse.swt.widgets.List(sndTimeListGp, SWT.BORDER | SWT.MULTI| SWT.V_SCROLL ); + sndTimeList.setBounds(btnGp.getBounds().x+ NsharpConstants.btnGapX, sndTimeListGp.getBounds().y + NsharpConstants.labelGap, NsharpConstants.listWidth, NsharpConstants.listHeight*7 ); + sndTimeList.setFont(newFont); + //create a selection listener to handle user's selection on list + sndTimeList.addListener ( SWT.Selection, new Listener () { + private String selectedSndTime=null; + public void handleEvent (Event e) { + if (sndTimeList.getSelectionCount() > 0 ) { + NsharpMapResource nsharpMapResource = NsharpMapResource.getOrCreateNsharpMapResource();//NsharpLoadDialog.getAccess().getNsharpMapResource(); + nsharpMapResource.setPoints(null); + selectedTimeList.clear(); + ldDia.startWaitCursor(); + for(int i=0; i < sndTimeList.getSelectionCount(); i++) { + selectedSndTime = sndTimeList.getSelection()[i]; + //System.out.println("selected sounding time is " + selectedSndTime); + int endIndex = selectedSndTime.indexOf(" "); + selectedSndTime = selectedSndTime.substring(0, endIndex); + queryAndMarkStn(selectedSndTime); + selectedTimeList.add(selectedSndTime); + } + ldDia.stopWaitCursor(); + + //NsharpMapMouseHandler.getAccess().setSelectedTimeList(selectedTimeList); + } + } + }); + /*newTabBtn = new Button(parent, SWT.CHECK | SWT.BORDER); + newTabBtn.setText("new skewT editor"); + newTabBtn.setEnabled( true ); + //newTabBtn.setBounds(btnGp.getBounds().x+ NsharpConstants.btnGapX, browseBtn.getBounds().y + browseBtn.getBounds().height+ NsharpConstants.btnGapY, NsharpConstants.btnWidth,NsharpConstants.btnHeight); + newTabBtn.setFont(newFont); + newTabBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(newTabBtn.getSelection()) + newtab = true; + else + newtab = false; + } + } ); */ + } + public void cleanup(){ + if(sndTimeList != null){ + sndTimeList.removeListener(SWT.Selection, sndTimeList.getListeners(SWT.Selection)[0]); + sndTimeList.dispose(); + sndTimeList = null; + } + if(sndTimeListGp!= null){ + sndTimeListGp.dispose(); + sndTimeListGp = null; + } + if(timeBtn != null){ + timeBtn.removeListener(SWT.MouseUp, timeBtn.getListeners(SWT.MouseUp)[0]); + timeBtn.dispose(); + timeBtn= null; + } + if(rawBtn != null){ + rawBtn.removeListener(SWT.MouseUp, rawBtn.getListeners(SWT.MouseUp)[0]); + rawBtn.dispose(); + rawBtn= null; + } + if(midGp!= null){ + midGp.dispose(); + midGp = null; + } + /*if(browseBtn != null){ + browseBtn.removeListener(SWT.MouseUp, browseBtn.getListeners(SWT.MouseUp)[0]); + browseBtn.dispose(); + browseBtn = null; + } + + + if(tamBtn != null){ + tamBtn.removeListener(SWT.MouseUp, tamBtn.getListeners(SWT.MouseUp)[0]); + tamBtn.dispose(); + tamBtn = null; + } + */ + if(bufruaBtn != null){ + bufruaBtn.removeListener(SWT.MouseUp, bufruaBtn.getListeners(SWT.MouseUp)[0]); + bufruaBtn.dispose(); + bufruaBtn = null; + } + if(uairBtn != null){ + uairBtn.removeListener(SWT.MouseUp, uairBtn.getListeners(SWT.MouseUp)[0]); + uairBtn.dispose(); + uairBtn = null; + } + if(btnGp!= null){ + btnGp.dispose(); + btnGp = null; + } + /*if(newTabBtn != null){ + newTabBtn.removeListener(SWT.MouseUp, newTabBtn.getListeners(SWT.MouseUp)[0]); + newTabBtn.dispose(); + newTabBtn = null; + }*/ + NsharpLoadDialog ldDia = NsharpLoadDialog.getAccess(); + ldDia.cleanSndTypeList(); + if(topGp!= null){ + topGp.dispose(); + topGp = null; + } + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/PfcSoundingDialogContents.java b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/PfcSoundingDialogContents.java new file mode 100644 index 0000000000..35dde7d5ac --- /dev/null +++ b/ncep/gov.noaa.nws.ncep.ui.nsharp/src/gov/noaa/nws/ncep/ui/nsharp/view/PfcSoundingDialogContents.java @@ -0,0 +1,437 @@ +/** + * + * gov.noaa.nws.ncep.ui.nsharp.view.PfcSoundingDialogContents + * + * This java class performs the NSHARP NsharpLoadDialog functions. + * This code has been developed by the NCEP-SIB for use in the AWIPS2 system. + * + *
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    	Engineer    Description
+ * -------		------- 	-------- 	-----------
+ * 01/2011	229			Chin Chen	Initial coding
+ *
+ * 
+ * + * @author Chin Chen + * @version 1.0 + */ +package gov.noaa.nws.ncep.ui.nsharp.view; + +import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingProfile; +import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingStnInfo; +import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingStnInfoCollection; +import gov.noaa.nws.ncep.edex.common.sounding.NcSoundingTimeLines; +import gov.noaa.nws.ncep.ui.nsharp.NsharpConstants; +import gov.noaa.nws.ncep.ui.nsharp.NsharpStationInfo; +import gov.noaa.nws.ncep.ui.nsharp.display.map.NsharpMapResource; +import gov.noaa.nws.ncep.viz.common.soundingQuery.NcSoundingQuery; + +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; +import java.util.TimeZone; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Font; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Listener; + +public class PfcSoundingDialogContents { + private Composite parent; + private org.eclipse.swt.widgets.List availablefileList, sndTimeList; + private Group topGp, fileTypeGp, bottomGp, availableFileGp, sndTimeListGp; + private Button namBtn, gfsBtn, timeBtn; + private boolean timeLimit = false; + private List selectedFileList = new ArrayList(); + private List queriedTimeList = new ArrayList(); + private List stnPoints = new ArrayList(); + private NcSoundingProfile.PfcSndType currentSndType = NcSoundingProfile.PfcSndType.NONE; + private NsharpLoadDialog ldDia; + private Font newFont; + public NcSoundingProfile.PfcSndType getCurrentSndType() { + return currentSndType; + } + public PfcSoundingDialogContents() { + } + public PfcSoundingDialogContents (Composite parent) { + this.parent = parent; + ldDia = NsharpLoadDialog.getAccess(); + newFont = ldDia.getNewFont(); + } + private void createPFCAvailableFileList() { + sndTimeList.removeAll();; + availablefileList.removeAll(); + //query using NcSoundingQuery class to query + NcSoundingTimeLines timeLines = NcSoundingQuery.soundingTimeLineQuery(currentSndType.toString()); + if(timeLines!= null && timeLines.getTimeLines() != null){ + ldDia.startWaitCursor(); + for(Object timeLine : timeLines.getTimeLines()){ + Timestamp reftime = (Timestamp)timeLine; + if(reftime != null){ + //need to format reftime to GMT time string. Timestamp.toString produce a local time Not GMT time + Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT")); + cal.setTimeInMillis(reftime.getTime()); + String gmtTimeStr = String.format("%1$tY-%1$tm-%1$td %1$tH", cal); + //System.out.println("GMT time " + gmtTimeStr); + availablefileList.add(gmtTimeStr); + + } + + } + ldDia.stopWaitCursor(); + } + else + System.out.println("SQL: query return null"); + } + private void createPFCSndTimeList(List selectedFlLst) { + if(selectedFlLst.size() <=0 ) + return; + //currentDBTblName = MODELSOUNDING_TBL_NAME; + sndTimeList.removeAll(); + //query using NcSoundingQuery to query + ldDia.startWaitCursor(); + String sndStr = currentSndType.toString(); + int endIndex= Math.min(3, sndStr.length()); + String dispSndStr = sndStr.substring(0, endIndex); + for(int i=0; i< selectedFlLst.size(); i++){ + String fl = selectedFlLst.get(i); + long reftimeMs= NcSoundingQuery.convertRefTimeStr(fl); + //System.out.println("reftime="+fl + " in ms="+reftimeMs); + NcSoundingTimeLines timeLines = NcSoundingQuery.soundingRangeTimeLineQuery(sndStr, fl); + if(timeLines != null && timeLines.getTimeLines().length >0) { + for(Object obj : timeLines.getTimeLines()){ + Timestamp rangestart = (Timestamp)obj; + + //need to format rangestart to GMT time string. Timestamp.toString produce a local time Not GMT time + Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT")); + cal.setTimeInMillis(rangestart.getTime()); + long vHour = (cal.getTimeInMillis()- reftimeMs)/3600000; + //String sndType = currentSndType.toString().substring(0, 3); //use max of 3 char for sounding type + //String gmtTimeStr = String.format("%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS", cal); + String gmtTimeStr = String.format("%1$ty%1$tm%1$td/%1$tHV%2$03d %3$s", cal, vHour,dispSndStr); + //gmtTimeStr = gmtTimeStr+ String.format("V%03d", vHour); + if(sndTimeList.indexOf(gmtTimeStr) != -1){ + // this indicate that gmtTimeStr is already in the sndTimeList, then we dont need to add it to list again. + continue; + } + + //System.out.println("GMT time " + gmtTimeStr); + if(!timeLimit) + sndTimeList.add(gmtTimeStr); + else { + int hour = cal.get(Calendar.HOUR_OF_DAY); + if((hour == 0) || (hour == 12)) + sndTimeList.add(gmtTimeStr); + } + + } + } + } + ldDia.stopWaitCursor(); + } + public void createPfcDialogContents(){ + selectedFileList.clear(); + topGp = new Group(parent,SWT.SHADOW_ETCHED_IN); + topGp.setLayout( new GridLayout( 2, false ) ); + + //ldDia.setShellSize(false); + ldDia.createSndTypeList(topGp); + + fileTypeGp = new Group(topGp, SWT.SHADOW_ETCHED_IN); + fileTypeGp.setText("File Type"); + fileTypeGp.setFont(newFont); + namBtn = new Button(fileTypeGp, SWT.RADIO | SWT.BORDER); + namBtn.setText("NAMSND"); + namBtn.setEnabled( true ); + namBtn.setBounds(fileTypeGp.getBounds().x+ NsharpConstants.btnGapX, fileTypeGp.getBounds().y + NsharpConstants.labelGap, NsharpConstants.btnWidth,NsharpConstants.btnHeight); + namBtn.setFont(newFont); + namBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + currentSndType = NcSoundingProfile.PfcSndType.NAMSND; + createPFCAvailableFileList(); + } + } ); + gfsBtn = new Button(fileTypeGp, SWT.RADIO | SWT.BORDER); + gfsBtn.setText("GFSSND"); + gfsBtn.setEnabled( true ); + gfsBtn.setBounds(fileTypeGp.getBounds().x+ NsharpConstants.btnGapX, namBtn.getBounds().y + namBtn.getBounds().height+ NsharpConstants.btnGapY, NsharpConstants.btnWidth,NsharpConstants.btnHeight); + gfsBtn.setFont(newFont); + gfsBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + currentSndType = NcSoundingProfile.PfcSndType.GFSSND; + createPFCAvailableFileList(); + } + } ); + /* + ruc2Btn = new Button(fileTypeGp, SWT.RADIO | SWT.BORDER); + ruc2Btn.setText("RUC2SND"); + ruc2Btn.setEnabled( false ); + ruc2Btn.setBounds(fileTypeGp.getBounds().x+ NsharpConstants.btnGapX, gfsBtn.getBounds().y + gfsBtn.getBounds().height+ NsharpConstants.btnGapY, NsharpConstants.btnWidth,NsharpConstants.btnHeight); + ruc2Btn.setFont(newFont); + ruc2Btn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + currentSndType = NcSoundingProfile.PfcSndType.RUC2SND; + createPFCAvailableFileList(); + } + } ); + rucpBtn = new Button(fileTypeGp, SWT.RADIO | SWT.BORDER); + rucpBtn.setText("RUCPTYPSND"); + rucpBtn.setEnabled( false ); + rucpBtn.setBounds(fileTypeGp.getBounds().x+ NsharpConstants.btnGapX, ruc2Btn.getBounds().y + ruc2Btn.getBounds().height+ NsharpConstants.btnGapY, NsharpConstants.btnWidth,NsharpConstants.btnHeight); + rucpBtn.setFont(newFont); + rucpBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + currentSndType = NcSoundingProfile.PfcSndType.RUCPTYPSND; + createPFCAvailableFileList(); + } + } ); + browseBtn = new Button(fileTypeGp, SWT.RADIO | SWT.BORDER); + browseBtn.setText("BROWSE"); + browseBtn.setEnabled( false ); + browseBtn.setBounds(fileTypeGp.getBounds().x+ NsharpConstants.btnGapX, rucpBtn.getBounds().y + rucpBtn.getBounds().height+ NsharpConstants.btnGapY, NsharpConstants.btnWidth,NsharpConstants.btnHeight); + browseBtn.setFont(newFont); + browseBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + currentSndType = NcSoundingProfile.PfcSndType.BROWSE; + } + } ); */ + + + timeBtn = new Button(parent, SWT.CHECK | SWT.BORDER); + timeBtn.setText("00Z and 12Z only"); + timeBtn.setEnabled( true ); + //timeBtn.setBounds(fileTypeGp.getBounds().x+ NsharpConstants.btnGapX, browseBtn.getBounds().y + browseBtn.getBounds().height+ NsharpConstants.btnGapY, NsharpConstants.btnWidth,NsharpConstants.btnHeight); + timeBtn.setFont(newFont); + timeBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(timeLimit) + timeLimit = false; + else + timeLimit = true; + + //refresh sounding list if file type is selected already + if(!currentSndType.equals("NA") && selectedFileList.size() > 0 ){ + createPFCSndTimeList(selectedFileList); + } + + } + } ); + + bottomGp = new Group(parent,SWT.SHADOW_ETCHED_IN); + bottomGp.setLayout( new GridLayout( 2, false ) ); + + availableFileGp = new Group(bottomGp,SWT.SHADOW_ETCHED_IN); + availableFileGp.setText("Available PFC files:"); + availableFileGp.setFont(newFont); + availablefileList = new org.eclipse.swt.widgets.List(availableFileGp, SWT.BORDER | SWT.MULTI| SWT.V_SCROLL ); + availablefileList.setBounds(availableFileGp.getBounds().x, availableFileGp.getBounds().y + NsharpConstants.labelGap , NsharpConstants.filelistWidth, NsharpConstants.listHeight *36/5); + //create a selection listener to handle user's selection on list + availablefileList.setFont(newFont); + availablefileList.addListener ( SWT.Selection, new Listener () { + private String selectedFile=null; + + public void handleEvent (Event e) { + if (availablefileList.getSelectionCount() > 0 ) { + selectedFileList.clear(); + for(int i=0; i < availablefileList.getSelectionCount(); i++) { + selectedFile = availablefileList.getSelection()[i]; + //System.out.println("selected sounding file is " + selectedFile); + selectedFileList.add(selectedFile); + } + createPFCSndTimeList(selectedFileList); + } + } + } ); + + //create Sounding Times widget list + sndTimeListGp = new Group(bottomGp,SWT.SHADOW_ETCHED_IN); + sndTimeListGp.setText("Sounding Times:"); + sndTimeListGp.setFont(newFont); + sndTimeList = new org.eclipse.swt.widgets.List(sndTimeListGp, SWT.BORDER | SWT.MULTI| SWT.V_SCROLL ); + sndTimeList.removeAll(); + sndTimeList.setFont(newFont); + sndTimeList.setBounds(sndTimeListGp.getBounds().x, sndTimeListGp.getBounds().y + NsharpConstants.labelGap, NsharpConstants.listWidth, NsharpConstants.listHeight*36/5 ); + sndTimeList.addListener ( SWT.Selection, new Listener () { + private String selectedSndTime=null; + public void handleEvent (Event e) { + if (sndTimeList.getSelectionCount() > 0 ) { + NsharpMapResource nsharpMapResource = NsharpMapResource.getOrCreateNsharpMapResource();//NsharpLoadDialog.getAccess().getNsharpMapResource(); + nsharpMapResource.setPoints(null); + //.clear(); + ldDia.startWaitCursor(); + queriedTimeList.clear(); + for(int i=0; i < sndTimeList.getSelectionCount(); i++) { + selectedSndTime = sndTimeList.getSelection()[i]; + int endIndex = selectedSndTime.indexOf(" "); + selectedSndTime = selectedSndTime.substring(0, endIndex); + //System.out.println("selected sounding time is " + selectedSndTime); + //refTimeStr is same as "PFC file" name in Load dialog display + String refTimeStr=NcSoundingQuery.convertSoundTimeDispStringToRefTime(selectedSndTime); + //while rangeStartStr is same as "sounding Times + String rangeStartStr = NcSoundingQuery.convertSoundTimeDispStringToRangeStartTimeFormat(selectedSndTime); + if(queriedTimeList.contains(refTimeStr)== true){ + addStnPtWithoutQuery(refTimeStr,rangeStartStr,selectedSndTime); + } + else { + queriedTimeList.add(refTimeStr); + queryAndMarkStn(refTimeStr,rangeStartStr,selectedSndTime); + } + } + + ldDia.stopWaitCursor(); + + nsharpMapResource.setPoints(stnPoints); + NsharpMapResource.bringMapEditorToTop(); + } + } + }); + /* + newTabBtn = new Button(parent, SWT.CHECK | SWT.BORDER); + newTabBtn.setText("new skewT editor"); + newTabBtn.setEnabled( true ); + //newTabBtn.setBounds(btnGp.getBounds().x+ NsharpConstants.btnGapX, browseBtn.getBounds().y + browseBtn.getBounds().height+ NsharpConstants.btnGapY, NsharpConstants.btnWidth,NsharpConstants.btnHeight); + newTabBtn.setFont(newFont); + newTabBtn.addListener( SWT.MouseUp, new Listener() { + public void handleEvent(Event event) { + if(newTabBtn.getSelection()) + newtab = true; + else + newtab = false; + + } + } );*/ + } + + private void addStnPtWithoutQuery(String refTimeStr,String rangeStartStr, String selectedSndTime) { + long reftimeMs= NcSoundingQuery.convertRefTimeStr(refTimeStr); + Timestamp refTime = new Timestamp(reftimeMs); + for(NsharpStationInfo stn: stnPoints){ + if(refTime.equals(stn.getReftime())== true){ + long rangetimeMs= NcSoundingQuery.convertRefTimeStr(rangeStartStr); + Timestamp rangeStartTime = new Timestamp(rangetimeMs); + NsharpStationInfo.timeLineSpecific timeLinsSpc = stn.new timeLineSpecific(); + String sndTypeStr = currentSndType.toString(); + int endIndex= Math.min(4, sndTypeStr.length()); + String dispInfo = stn.getStnId()+ " " + selectedSndTime+" "+sndTypeStr.substring(0,endIndex); + timeLinsSpc.setDisplayInfo(dispInfo); + timeLinsSpc.setTiemLine(rangeStartTime); + stn.addToTimeLineSpList(timeLinsSpc); + } + } + //System.out.println("addStnPtWithoutQuery stn num ="+ stnPoints.size()+ " for pfc refTime(file) "+refTimeStr); + } + private void queryAndMarkStn(String refTimeStr,String rangeStartStr, String selectedSndTime) { + //use NcSoundingQuery to query stn info + String sndTypeStr = currentSndType.toString(); + NcSoundingStnInfoCollection sndStnInfoCol = NcSoundingQuery.soundingStnInfoQuery(sndTypeStr,rangeStartStr, refTimeStr); + if(sndStnInfoCol != null && sndStnInfoCol.getStationInfo() != null){ + + NcSoundingStnInfo[] stnInfoAry = sndStnInfoCol.getStationInfo(); + //System.out.println("queryAndMarkStn stn num ="+ stnInfoAry.length+ " for pfc refTime(file) "+refTimeStr); + for(int i=0; i < stnInfoAry.length; i++){ + NcSoundingStnInfo stnInfo = stnInfoAry[i]; + NsharpStationInfo stn = new NsharpStationInfo(); + NsharpStationInfo.timeLineSpecific timeLinsSpc = stn.new timeLineSpecific(); + + int endIndex= Math.min(4, sndTypeStr.length()); + String dispInfo = stnInfo.getStnId() + " " + selectedSndTime+" "+sndTypeStr.substring(0,endIndex); + timeLinsSpc.setDisplayInfo(dispInfo); + timeLinsSpc.setTiemLine(stnInfo.getRangeStartTime()); + stn.addToTimeLineSpList(timeLinsSpc); + stn.setLongitude(stnInfo.getStationLongitude()); + stn.setLatitude(stnInfo.getStationLatitude()); + stn.setReftime(stnInfo.getSynopTime()); + stn.setStnId(stnInfo.getStnId()); + stn.setSndType(sndTypeStr); + //if(i <10) + // System.out.println( "disP="+dispInfo+" refT= "+stnInfo.getSynopTime()+ " rangSt="+stnInfo.getRangeStartTime()); + stnPoints.add(stn); + ; + } + + + } + } + public void cleanup(){ + if(namBtn != null&& namBtn.isDisposed()== false){ + namBtn.removeListener(SWT.MouseUp, namBtn.getListeners(SWT.MouseUp)[0]); + namBtn.dispose(); + namBtn = null; + } + if(gfsBtn != null){ + gfsBtn.removeListener(SWT.MouseUp, gfsBtn.getListeners(SWT.MouseUp)[0]); + gfsBtn.dispose(); + gfsBtn = null; + } + /*if(ruc2Btn != null){ + ruc2Btn.removeListener(SWT.MouseUp, ruc2Btn.getListeners(SWT.MouseUp)[0]); + ruc2Btn.dispose(); + ruc2Btn = null; + } + if(rucpBtn != null){ + rucpBtn.removeListener(SWT.MouseUp, rucpBtn.getListeners(SWT.MouseUp)[0]); + rucpBtn.dispose(); + rucpBtn = null; + } + if(browseBtn != null){ + browseBtn.removeListener(SWT.MouseUp, browseBtn.getListeners(SWT.MouseUp)[0]); + browseBtn.dispose(); + browseBtn = null; + + } */ + NsharpLoadDialog ldDia = NsharpLoadDialog.getAccess(); + ldDia.cleanSndTypeList(); + if(topGp!= null){ + topGp.dispose(); + topGp = null; + } + + if(timeBtn != null){ + timeBtn.removeListener(SWT.MouseUp, timeBtn.getListeners(SWT.MouseUp)[0]); + timeBtn.dispose(); + timeBtn = null; + } + + if(fileTypeGp!= null){ + fileTypeGp.dispose(); + fileTypeGp = null; + } + + if(availablefileList!= null){ + availablefileList.removeListener(SWT.Selection, availablefileList.getListeners(SWT.Selection)[0]); + availablefileList.dispose(); + availablefileList = null; + } + + + if(availableFileGp!= null){ + availableFileGp.dispose(); + availableFileGp = null; + } + if(sndTimeList!= null){ + sndTimeList.removeListener(SWT.Selection, sndTimeList.getListeners(SWT.Selection)[0]); + sndTimeList.dispose(); + sndTimeList = null; + } + if(sndTimeListGp!= null){ + sndTimeListGp.dispose(); + sndTimeListGp = null; + } + if(bottomGp!= null){ + bottomGp.dispose(); + bottomGp = null; + } + /*if(newTabBtn != null){ + newTabBtn.removeListener(SWT.MouseUp, newTabBtn.getListeners(SWT.MouseUp)[0]); + newTabBtn.dispose(); + newTabBtn = null; + }*/ + } +} diff --git a/ncep/gov.noaa.nws.ncep.ui.pgen/localization/ncep/pgen/outlooksettings.xml b/ncep/gov.noaa.nws.ncep.ui.pgen/localization/ncep/pgen/outlooksettings.xml index 63a01d9d06..0559a85535 100644 --- a/ncep/gov.noaa.nws.ncep.ui.pgen/localization/ncep/pgen/outlooksettings.xml +++ b/ncep/gov.noaa.nws.ncep.ui.pgen/localization/ncep/pgen/outlooksettings.xml @@ -22,17 +22,17 @@ - HAILOTLK + HAIL - TORNOTLK + TORN - WINDOTLK + WIND @@ -47,7 +47,7 @@ - CATG_SVR + CATG @@ -488,7 +488,7 @@ - + @@ -602,7 +602,7 @@ - + @@ -732,7 +732,7 @@ - + @@ -978,7 +978,7 @@ - + diff --git a/ncep/gov.noaa.nws.ncep.ui.pgen/localization/ncep/pgen/outlooktype.xml b/ncep/gov.noaa.nws.ncep.ui.pgen/localization/ncep/pgen/outlooktype.xml index da51d4df4a..7b942053b0 100644 --- a/ncep/gov.noaa.nws.ncep.ui.pgen/localization/ncep/pgen/outlooktype.xml +++ b/ncep/gov.noaa.nws.ncep.ui.pgen/localization/ncep/pgen/outlooktype.xml @@ -56,7 +56,7 @@