From a9c53c47a6281af08edce17d882147f78655e799 Mon Sep 17 00:00:00 2001 From: Ana Rivera Date: Thu, 8 May 2014 16:50:57 +0000 Subject: [PATCH] VLab Issue #3617 - DCS_266 Ingest & Display HRRR Model Data Change-Id: Ic43d3a3f51d70cd41ef8e34ccde9d1f5aee3007b Conflicts: cave/com.raytheon.viz.volumebrowser/localization/volumebrowser/LevelMappingFile.xml Former-commit-id: f6438c81a8363c71cee70f33cf7a1e1962f630e5 [formerly a258f0f812d543a35ccc329b02779a52adbd094b] [formerly cc354742e13a928488fa8df47e2107505ed7da8c] [formerly cc354742e13a928488fa8df47e2107505ed7da8c [formerly a053fd5bad92a758f8af70217aae18ab9904869a]] [formerly 95451b29591b83a1fb98c1835d8afe83e345ffad [formerly cc354742e13a928488fa8df47e2107505ed7da8c [formerly a053fd5bad92a758f8af70217aae18ab9904869a] [formerly 95451b29591b83a1fb98c1835d8afe83e345ffad [formerly d95450f2eebc6b3d10093bd16736b349a1d0b12b]]]] Former-commit-id: 95451b29591b83a1fb98c1835d8afe83e345ffad Former-commit-id: 2f38daa411487134ba1170d9d89015758ac9eec7 [formerly 2a0c828593e8f04fdd99beedce530bd135147e45] [formerly dab9e1379a4cd7e0392b0a66f35206da4aaf7120 [formerly 236a0892978b9a8cb83f2ea221640e6d34a7f83c]] Former-commit-id: dab9e1379a4cd7e0392b0a66f35206da4aaf7120 Former-commit-id: 43956e6672d8d9a246eaa77a683400b8d68a65a0 --- .../derivedParameters/definitions/CCP.xml | 12 + .../derivedParameters/definitions/GVV.xml | 3 + .../derivedParameters/definitions/T.xml | 3 + .../localization/menus/xml/fieldsMenus.xml | 18 + .../menus/xml/planesMenusPlanView.xml | 4 + .../volumebrowser/LevelMappingFile.xml | 17 + .../localization/volumebrowser/VbSources.xml | 1 + .../base/grid/dataset/alias/gfeParamInfo.xml | 1 + .../base/parameter/alias/gfeParamName.xml | 1 + .../base/config/gfe/serverConfig.py | 9 + .../base/grid/parameterInfo/HRRR.xml | 525 ++++++++++++++++++ .../edex_static/base/smartinit/HRRR.py | 184 ++++++ .../grid/datasetInfo/gribDatasets_NCEP-7.xml | 5 + .../base/grib/models/gribModels_NCEP-7.xml | 9 + .../base/grib/subgrids/HRRR-Clip.xml | 11 + .../derivedParameters/definitions/LTNG.xml | 22 + .../derivedParameters/definitions/MXDVV.xml | 26 + .../derivedParameters/definitions/MXREF.xml | 26 + .../derivedParameters/definitions/MXUPHL.xml | 26 + .../derivedParameters/definitions/MXUVV.xml | 26 + .../derivedParameters/definitions/WGS1hr.xml | 10 + .../base/purge/gridPurgeRules.xml | 5 + 22 files changed, 944 insertions(+) create mode 100755 edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/grid/parameterInfo/HRRR.xml create mode 100755 edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/smartinit/HRRR.py create mode 100644 edexOsgi/com.raytheon.edex.plugin.grib/utility/edex_static/base/grib/subgrids/HRRR-Clip.xml create mode 100644 edexOsgi/com.raytheon.uf.common.derivparam/utility/common_static/base/derivedParameters/definitions/LTNG.xml create mode 100644 edexOsgi/com.raytheon.uf.common.derivparam/utility/common_static/base/derivedParameters/definitions/MXDVV.xml create mode 100644 edexOsgi/com.raytheon.uf.common.derivparam/utility/common_static/base/derivedParameters/definitions/MXREF.xml create mode 100644 edexOsgi/com.raytheon.uf.common.derivparam/utility/common_static/base/derivedParameters/definitions/MXUPHL.xml create mode 100644 edexOsgi/com.raytheon.uf.common.derivparam/utility/common_static/base/derivedParameters/definitions/MXUVV.xml create mode 100644 edexOsgi/com.raytheon.uf.common.derivparam/utility/common_static/base/derivedParameters/definitions/WGS1hr.xml diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/CCP.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/CCP.xml index 0286ffc47a..39484d8b80 100644 --- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/CCP.xml +++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/CCP.xml @@ -22,6 +22,18 @@ + + + + + + + + + + + + diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/GVV.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/GVV.xml index ac991eea57..9a46d52244 100644 --- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/GVV.xml +++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/GVV.xml @@ -24,4 +24,7 @@ + + + diff --git a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/T.xml b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/T.xml index 2ca7b78207..7cb5ee8246 100644 --- a/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/T.xml +++ b/cave/com.raytheon.uf.viz.derivparam/localization/derivedParameters/definitions/T.xml @@ -49,6 +49,9 @@ + + + diff --git a/cave/com.raytheon.viz.volumebrowser/localization/menus/xml/fieldsMenus.xml b/cave/com.raytheon.viz.volumebrowser/localization/menus/xml/fieldsMenus.xml index ad6a1c0d0c..e4b2c3db59 100644 --- a/cave/com.raytheon.viz.volumebrowser/localization/menus/xml/fieldsMenus.xml +++ b/cave/com.raytheon.viz.volumebrowser/localization/menus/xml/fieldsMenus.xml @@ -464,6 +464,16 @@ key="VGP" indentText="true" /> + + + + + @@ -1334,6 +1344,14 @@ key="REFD" indentText="true" /> + + + + + @@ -343,6 +344,7 @@ + @@ -355,6 +357,7 @@ + @@ -366,6 +369,7 @@ + diff --git a/cave/com.raytheon.viz.volumebrowser/localization/volumebrowser/LevelMappingFile.xml b/cave/com.raytheon.viz.volumebrowser/localization/volumebrowser/LevelMappingFile.xml index 3c4c6a030b..5f9a0d6db3 100644 --- a/cave/com.raytheon.viz.volumebrowser/localization/volumebrowser/LevelMappingFile.xml +++ b/cave/com.raytheon.viz.volumebrowser/localization/volumebrowser/LevelMappingFile.xml @@ -1146,6 +1146,7 @@ + @@ -1345,4 +1346,20 @@ + + + + + + + + + + + + diff --git a/cave/com.raytheon.viz.volumebrowser/localization/volumebrowser/VbSources.xml b/cave/com.raytheon.viz.volumebrowser/localization/volumebrowser/VbSources.xml index d0bda66730..b48d60ed10 100644 --- a/cave/com.raytheon.viz.volumebrowser/localization/volumebrowser/VbSources.xml +++ b/cave/com.raytheon.viz.volumebrowser/localization/volumebrowser/VbSources.xml @@ -33,6 +33,7 @@ + diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/grid/dataset/alias/gfeParamInfo.xml b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/grid/dataset/alias/gfeParamInfo.xml index 7443be9698..1f58aeb26b 100644 --- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/grid/dataset/alias/gfeParamInfo.xml +++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/grid/dataset/alias/gfeParamInfo.xml @@ -4,6 +4,7 @@ localMPE mosaicMPE localHPE + HRRR localBHPE qpf218 nogaps diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/parameter/alias/gfeParamName.xml b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/parameter/alias/gfeParamName.xml index fd3d0203b7..33f646e190 100644 --- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/parameter/alias/gfeParamName.xml +++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/common_static/base/parameter/alias/gfeParamName.xml @@ -276,6 +276,7 @@ thp6hr tmean totsn + tp1hr tp120hr tp12c1 tp12c2 diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/config/gfe/serverConfig.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/config/gfe/serverConfig.py index 3fee7d340e..dda30ad746 100644 --- a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/config/gfe/serverConfig.py +++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/config/gfe/serverConfig.py @@ -985,6 +985,7 @@ GlobalWave = ('GlobalWave', GRID, '', NO, NO, 2, 0) GLWM = ('GLWM', GRID, '', NO, NO, 2, 0)##########DCS3499 HIRESWarw = ('HIRESWarw', GRID, '', NO, NO, 2, 0)##########DCS3501 HIRESWnmm = ('HIRESWnmm', GRID, '', NO, NO, 2, 0) +HRRR = ("HRRR", GRID, '', NO, NO, 3, 0) #### SPC = ('SPC', GRID, '', NO, NO, 2, 0)###DR20634 WCwave10 = ('WCwave10', GRID, '', NO, NO, 2, 0) WCwave4 = ('WCwave4', GRID, '', NO, NO, 2, 0) @@ -1115,6 +1116,7 @@ elif SID in CONUS_EAST_SITES: D2DMODELS = [('GFS212', 'GFS40'), ('AVN211', 'GFS80'), ('ETA', 'NAM80'), + ('HRRR', 'HRRR'), ('NGM', 'NGM80'), ('MRF', 'gfsLR'), ('RUC130', 'RUC13'), @@ -1431,6 +1433,7 @@ else: "RTMA": ['RTMA'], "NamDNG5" : ["NamDNG5"], "SREF" : ["SREF"], + "HRRR" : ['HRRR'], #########DCS3501 "GLWM" : ["GLWM"], "HIRESWarw" : ["HIRESWarw"], @@ -1466,6 +1469,7 @@ D2DAccumulativeElements= { "GFS80": ["tp", "cp"], "GFS75": ["tp", "cp"], "GFS190": ["tp", "cp"], + "HRRR": ["tp1hr", "crain", "csnow", "cfrzr", "cicep"], "NAM95": ["tp", "cp"], "NAM80": ["tp", "cp"], "NAM40": ["tp", "cp"], @@ -1620,6 +1624,7 @@ if not BASELINE and siteImport('localConfig'): localGLWMParms = getattr(localConfig, 'parmsGLWM', localGLWMParms) #########DCS3499 localHIRESWarwParms = getattr(localConfig, 'parmsHIRESWarw', localHIRESWarwParms) ########DCS3501 localHIRESWnmmParms = getattr(localConfig, 'parmsHIRESWnmm', localHIRESWnmmParms) + localHRRRParms = getattr(localConfig, 'parmsHRRR', localHRRRParms) #DR20634 localSPCParms = getattr(localConfig, 'parmsSPC', localSPCParms) localWNAWAVEParms = getattr(localConfig, 'parmsWNAWAVE', localWNAWAVEParms) localAKWAVEParms = getattr(localConfig, 'parmsAKWAVE', localAKWAVEParms) @@ -1681,6 +1686,8 @@ STD1_MODEL = [([Temp, Td, RH, Wind, Wind20ft, Sky, FzLevel, SnowLevel], TC1), ([MaxT], MaxTTC), ([MinT], MinTTC), ([Wetflag], FireWx1300TC)] +HRRRPARMS = [([Temp, Td, RH, Wind, WindGust, Sky, QPF], TC1)] + # 3 hourly STD3_MODEL = [([Temp, Td, RH, Wind, Wind20ft, Sky, FzLevel, SnowLevel], TC3), ([Haines, MixHgt, FreeWind, TransWind], TC3), @@ -1691,6 +1698,7 @@ STD3_MODEL = [([Temp, Td, RH, Wind, Wind20ft, Sky, FzLevel, SnowLevel], TC3), ([MaxT], MaxTTC), ([MinT], MinTTC), ([Wetflag], FireWx1300TC)] + ######DCS3501 # 3 hourly-HIRESW STD3_MODEL_HIRESW = [([Temp, Td, RH, Wind, FzLevel], TC3), @@ -1861,6 +1869,7 @@ DATABASES = [(Official, OFFICIALDBS + localParms), (GLWM, GLWMPARMS + localGLWMParms), #####DCS3499 (HIRESWarw, STD3_MODEL + localHIRESWarwParms), #####DCS3501 (HIRESWnmm, STD3_MODEL + localHIRESWnmmParms), + (HRRR, HRRRPARMS + localHRRRparms), #DR20634 (SPC, SPCPARMS + localSPCParms), (WCwave10, WAVEPARMS + localWCwave10Parms), (WCwave4, WAVEPARMS + localWCwave4Parms), diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/grid/parameterInfo/HRRR.xml b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/grid/parameterInfo/HRRR.xml new file mode 100755 index 0000000000..31de299811 --- /dev/null +++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/grid/parameterInfo/HRRR.xml @@ -0,0 +1,525 @@ + + + + 0 + 3600 + 7200 + 10800 + 14400 + 18000 + 21600 + 25200 + 28800 + 32400 + 36000 + 39600 + 43200 + 46800 + 50400 + 54000 + + + refc + composite radar reflectivity + dBZ + decibals + Refc + 0.0 + 100000.0 + -99999.0 + 0 + EA + + EA + + + + refd + derived radar reflectivity + dBZ + decibals + Refd + 0.0 + 100000.0 + -99999.0 + 0 + FHAG 1000 HYB 1 + + FHAG1000 + HYB1 + + + + sli + Surface lifted index + K + degree_Kelvin + LftInd + -20.0 + 20.0 + -99999.0 + 0 + MB 0>500 + + MB0500 + + + + cape + Convective Available Potential Energy + J/kg + joule/Kilogram + CAPE + 0.0 + 6000.0 + -99999.0 + 0 + SFC BL 0>180 0>255 + + SFC + BL0180 + BL0255 + + + + staticSpacing + Grid spacing + m + -99999.0 + 0 + + + tp + total precipitation + mm + millimeter + totPrecip + 0.0 + 1000.0 + -99999.0 + 0 + SFC + + SFC + + + + weasd + water equivalent of accumulated snow depth + ml + mil + waterEqvAccSnowDepth + 0.0 + 1000.0 + -99999.0 + 0 + SFC + + SFC + + + + cpozp + Probability of freezing precip + % + percent + FreezePcpProb + 0.0 + 100.0 + -99999.0 + 0 + SFC + + SFC + + + + tcc + Total Cloud Cover + % + percent + totalCldCvr + 0.0 + 100.0 + -99999.0 + 0 + EA + + EA + + + + lcdc + Low-level cloud fraction + % + percent + lowLvlCldFr + 0.0 + 100.0 + -99999.0 + 0 + LCY + + LCY + + + + mcdc + Mid-level cloud fraction + % + percent + midLvlCldFr + 0.0 + 100.0 + -99999.0 + 0 + MCY + + MCY + + + + hcdc + High-level cloud fraction + % + percent + highLvlCldFr + 0.0 + 100.0 + -99999.0 + 0 + HCL + + HCL + + + + crain + Categorical rain + yes=1, no=0 + + CategoricalRain + 0.0 + 1.0 + -99999.0 + 0 + SFC + + SFC + + + + uw + u wind component + m/s + meter/sec + uWind + -150.0 + 150.0 + -99999.0 + 0 + 10 FHAG + + FHAG10 + + + + cin + Convective Inhibition + J/kg + joule/Kilogram + convInhib + -1000.0 + 1000.0 + -99999.0 + 0 + SFC BL 0>255 + + SFC + BL0255 + + + + mmsp + pressure at mean sea level + Pa + pascal + PMSL + 80000.0 + 110000.0 + -99999.0 + 0 + MSL + + MSL + + + + snd + Snow depth + m + meters + snowDepth + 0.0 + 10.0 + -99999.0 + 0 + SFC + + SFC + + + + csnow + Categorical snow + yes=1, no=0 + + CategoricalSnow + 0.0 + 1.0 + -99999.0 + SFC + + SFC + + + + cicep + Categorical ice pellets + yes=1, no=0 + + CategoricalIcePlt + 0.0 + 1.0 + -99999.0 + 0 + SFC + + SFC + + + + bli + Best lifted index + K + degree_Kelvin + bestLftInd + -20.0 + 50.0 + -99999.0 + 0 + BL 0>180 + + BL0180 + + + + staticTopo + Topography + m + -99999.0 + + + wgs + Wind Gust Speed + m/s + meter/sec + windGustSpeed + 0 + 150.0 + -99999.0 + 1 + 10 FHAG + + FHAG10 + + + + wgs1hr + Max 1hr Wind Speed + m/s + meter/sec + maxWindSpeed + 0 + 150.0 + -99999.0 + 1 + 10 FHAG + + FHAG10 + + + + dpt + Dewpoint Temperature + K + degree_Kelvin + Td + 180.0 + 330.0 + -99999.0 + 1 + FHAG 2 + + FHAG2 + + + + heli + helicity sigma + m/s2 + meter/second2 + hel + 0.0 + 1000.0 + -99999.0 + 0 + FHAG 1000 3000 + + FHAG1000 + FHAG3000 + + + + vis + visibility + m + meters + Vis + 0.0 + 100000.0 + -99999.0 + 0 + SFC + + SFC + + + + vw + v wind component + m/s + meter/sec + vWind + -150.0 + 150.0 + -99999.0 + 0 + 10 FHAG + + FHAG10 + + + + t + Temperature + K + degree_Kelvin + T + 180.0 + 330.0 + -99999.0 + 0 + 2 FHAG + + FHAG2 + + + + staticCoriolis + Coriolis parameter + s^-1 + -99999.0 + + + gh + Geopotential height + m + meters + geoPotHt + -2000.0 + 20000.0 + -99999.0 + 0 + CBL CTL + + CBL + CTL + + + + p + pressure + Pa + pascal + atmP + 0.0 + 110000.0 + -99999.0 + 1 + SFC + + SFC + + + + pw + precipitable water + mm + millimeter + precipH2O + 0.0 + 300.0 + -99999.0 + 0 + EA + + EA + + + + cfrzr + Categorical freezing rain + yes=1, no=0 + + CategoricalFrzRain + 0.0 + 1.0 + -99999.0 + 0 + SFC + + SFC + + + + wd + Wind Direction + degreeTrue + degree_True + windDir + 0.0 + 360.0 + -99999.0 + 1 + FHAG 10 + + FHAG10 + + + + mwind + Maximum Wind Speed + m/s + meter/sec + maxWindSpeed + 0 + 150 + -99999.0 + 0 + 10 FHAG + + FHAG10 + + + diff --git a/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/smartinit/HRRR.py b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/smartinit/HRRR.py new file mode 100755 index 0000000000..a358bc59d1 --- /dev/null +++ b/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/smartinit/HRRR.py @@ -0,0 +1,184 @@ +# +from Init import * +##-------------------------------------------------------------------------- +class HRRRForecaster(Forecaster): + def __init__(self): + Forecaster.__init__(self, "HRRR","HRRR") + +# def calcClgHgt(self, cc_CCL): +# ceil = cc_CCL * .03280839 +# ceil = where(less_equal(ceil, 0.0), 250.0, ceil) +# return ceil + + def calcVis(self, vis_SFC): + return (vis_SFC * 3.2808) / 5279.85564 + + def calcT(self, t_FHAG2): + return self.KtoF(t_FHAG2) + + def calcTd(self, dpt_FHAG2): + return self.KtoF(dpt_FHAG2) + +##-------------------------------------------------------------------------- +## Returns the maximum of the specified MaxT and the T grids +##-------------------------------------------------------------------------- +## def calcMaxT(self, T, MaxT): +## if MaxT is None: +## return T +## return maximum(MaxT, T) + +##-------------------------------------------------------------------------- +## Returns the minimum of the specified MinT and T grids +##-------------------------------------------------------------------------- +## def calcMinT(self, T, MinT): +## if MinT is None: +## return T +## return minimum(MinT, T) + + + def calcRH(self, T, Td): + Tc = .556 * (T - 32.0) + Tdc = .556 * (Td - 32.0) + Vt = 6.11 * pow(10, (Tc * 7.5 / (Tc + 237.3))) + Vd = 6.11 * pow(10, (Tdc * 7.5 / (Tdc + 237.3))) + RH = (Vd / Vt) * 100.0 + # return the new value + return RH + + def dewFromTandRH(self,T,RH): + tc=(T-32.0)*(5.0/9.0) + rh=clip(RH,0.001,99.999)/100.0 + x=(log(rh)/17.67)+(tc/(tc+243.5)) + tdc=(243.5*x)/(1.0-x) + td=(tdc*9.0/5.0)+32.0 + return td + +##-------------------------------------------------------------------------- +# Calculates QPF from the total precip field out of the model +##-------------------------------------------------------------------------- + def calcQPF(self, tp_SFC): + return tp_SFC / 25.4 # convert from millimeters to inches + + def calcQPF6(self, QPF, QPF6): + if QPF6 is None: + QPF6=QPF + else: + QPF6=QPF6+QPF + return QPF6 + + def calcQPF12(self, QPF6, QPF12): + if QPF12 is None: + QPF12=QPF6 + else: + QPF12=QPF12+QPF6 + return QPF12 + +##-------------------------------------------------------------------------- +## Converts the lowest available wind level from m/s to knots +##-------------------------------------------------------------------------- + def calcWind(self, wind_FHAG10): + return (wind_FHAG10[0] * 1.94,clip(wind_FHAG10[1], 0, 359.5)) +# +# Return the max of the max wind or wind gust +# + def calcWindGust(self, wgs_FHAG10, wgs1hr_FHAG10): + return (maximum(wgs_FHAG10,wgs1hr_FHAG10) * 1.94) +#========================================================================= +# SnowAmt - simple snow ratio based on surface temperature - multiplied +# times the model QPF amount +#------------------------------------------------------------------------- + + def calcSnowAmt(self,T,QPF): + m1=less(T,9.0) + m2=greater_equal(T,30.0) + snowr=(T*-0.5)+22.5 + snowr=where(m1,20,snowr) + snowr=where(m2,0,snowr) + snowamt=QPF*snowr + return snowamt + +##-------------------------------------------------------------------------- +## Use cloud base and cloud top to get sky cover +##-------------------------------------------------------------------------- + +# def calcSky(self, gh_CBL, gh_CTL): +# depth=gh_CTL-gh_CBL +# c100=greater_equal(depth, 1000) +# partialcloudy=depth/10 +# sky=0 +# sky=where(depth, c100, sky) +## sky=where(depth, partialcloudy, sky) +# return sky + + + def calcSky(self,tcc_EA): + return tcc_EA + +#-------------------------------------------------------------------------- +# PoP - based strongly on QPF (since when model has one inch of precip the +# chance of getting 0.01 is pretty high). However, there is a big +# difference between a place that model has 0.00 precip and is very +# close to precipitating - and those where model has 0.00 and is a +# thousand miles from the nearest cloud. Thus, uses the average +# +# Uses hyperbolic tangent of QPF, so that it rises quickly as model +# QPF increases - but tapers out to nearly 100% as QPF gets high. +# +# Adjustable parameters: +# topQPF is QPF amount that would give 75% PoP if nothing else +# considered at half this amount, PoP is 45%, at double this +# amount PoP is 96%. Default set at 0.40. +# +#-------------------------------------------------------------------------- +# def calcPoP(self, QPF12): +# +# topQPF=0.40 # QPF value where raw PoP would be 75% +# factor=tanh(QPF12*(1.0/topQPF)) +# factor2=tanh(QPF12*(2.0/topQPF)) +# pop=(factor*100.0)+(factor2*100.0) +# pop=clip(pop,0,100) +# return pop + +##-------------------------------------------------------------------------- +## Use sky, reflecivity, qpf, vis, categoricals to get weather +##-------------------------------------------------------------------------- + + def calcWx(self, T, QPF, Vsby, crain_SFC, csnow_SFC, cicep_SFC, bli_BL0180, cfrzr_SFC, refc_EA): + + # Now apply a different algorithm for each type + key = ['::::', + "Wide:S:-::", "Wide:R:-::", + "Wide:S:-::^Wide:R:-::", + 'Wide:ZR:-::', 'Wide:IP:-::', + 'Wide:ZR:-::^Wide:IP:-::', + "Sct:SW:-::", "Sct:RW:-::", + "Sct:SW:-::^Sct:RW:-::", + "Chc:ZR:-::", 'Chc:IP:-::', + 'Chc:ZR:-::^Chc:IP:-::'] + + wx = self._empty + wx = where(logical_and(greater(QPF,0.02),greater(T,35)), 2, wx) + wx = where(equal(crain_SFC, 1), 2, wx) + wx = where(equal(cfrzr_SFC, 1), 4, wx) + wx = where(equal(cicep_SFC, 1), 5, wx) + wx = where(equal(csnow_SFC, 1), 1, wx) + + # Make showers (scattered/Chc) + convecMask = less(refc_EA, 35) + wx = where(logical_and(not_equal(wx, 0), convecMask), wx + 6, wx) + + # Thunder + for i in xrange(len(key)): + tcov = string.split(key[i], ":")[0] + if tcov == "Chc" or tcov == "": + tcov = "Sct" + key.append(key[i] + "^" + tcov + + ":T:::") + wx = where(logical_and(greater_equal(bli_BL0180, -3), greater_equal(refc_EA, 35)), wx + 13, wx) + + # No wx where no qpf + wx = where(less(QPF, 0.01), 0, wx) + return(wx, key) + +def main(): + HRRRForecaster().run() diff --git a/edexOsgi/com.raytheon.edex.plugin.grib/utility/common_static/base/grid/datasetInfo/gribDatasets_NCEP-7.xml b/edexOsgi/com.raytheon.edex.plugin.grib/utility/common_static/base/grid/datasetInfo/gribDatasets_NCEP-7.xml index 516afb5ee1..2c909fd195 100644 --- a/edexOsgi/com.raytheon.edex.plugin.grib/utility/common_static/base/grid/datasetInfo/gribDatasets_NCEP-7.xml +++ b/edexOsgi/com.raytheon.edex.plugin.grib/utility/common_static/base/grid/datasetInfo/gribDatasets_NCEP-7.xml @@ -901,4 +901,9 @@ PROB3HR
3
+ + HRRR + HRRR +
1
+
diff --git a/edexOsgi/com.raytheon.edex.plugin.grib/utility/edex_static/base/grib/models/gribModels_NCEP-7.xml b/edexOsgi/com.raytheon.edex.plugin.grib/utility/edex_static/base/grib/models/gribModels_NCEP-7.xml index 09022b1ea0..87792d2bba 100644 --- a/edexOsgi/com.raytheon.edex.plugin.grib/utility/edex_static/base/grib/models/gribModels_NCEP-7.xml +++ b/edexOsgi/com.raytheon.edex.plugin.grib/utility/edex_static/base/grib/models/gribModels_NCEP-7.xml @@ -41,6 +41,15 @@ + + HRRR +
7
+ 0 + + 83 + +
+ ETA
7
diff --git a/edexOsgi/com.raytheon.edex.plugin.grib/utility/edex_static/base/grib/subgrids/HRRR-Clip.xml b/edexOsgi/com.raytheon.edex.plugin.grib/utility/edex_static/base/grib/subgrids/HRRR-Clip.xml new file mode 100644 index 0000000000..416b202cf5 --- /dev/null +++ b/edexOsgi/com.raytheon.edex.plugin.grib/utility/edex_static/base/grib/subgrids/HRRR-Clip.xml @@ -0,0 +1,11 @@ + + + HRRR + 184 + 500 + 500 + + diff --git a/edexOsgi/com.raytheon.uf.common.derivparam/utility/common_static/base/derivedParameters/definitions/LTNG.xml b/edexOsgi/com.raytheon.uf.common.derivparam/utility/common_static/base/derivedParameters/definitions/LTNG.xml new file mode 100644 index 0000000000..c5c213e0dd --- /dev/null +++ b/edexOsgi/com.raytheon.uf.common.derivparam/utility/common_static/base/derivedParameters/definitions/LTNG.xml @@ -0,0 +1,22 @@ + + + + diff --git a/edexOsgi/com.raytheon.uf.common.derivparam/utility/common_static/base/derivedParameters/definitions/MXDVV.xml b/edexOsgi/com.raytheon.uf.common.derivparam/utility/common_static/base/derivedParameters/definitions/MXDVV.xml new file mode 100644 index 0000000000..978208c8aa --- /dev/null +++ b/edexOsgi/com.raytheon.uf.common.derivparam/utility/common_static/base/derivedParameters/definitions/MXDVV.xml @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/edexOsgi/com.raytheon.uf.common.derivparam/utility/common_static/base/derivedParameters/definitions/MXREF.xml b/edexOsgi/com.raytheon.uf.common.derivparam/utility/common_static/base/derivedParameters/definitions/MXREF.xml new file mode 100644 index 0000000000..1c60a7a8b4 --- /dev/null +++ b/edexOsgi/com.raytheon.uf.common.derivparam/utility/common_static/base/derivedParameters/definitions/MXREF.xml @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/edexOsgi/com.raytheon.uf.common.derivparam/utility/common_static/base/derivedParameters/definitions/MXUPHL.xml b/edexOsgi/com.raytheon.uf.common.derivparam/utility/common_static/base/derivedParameters/definitions/MXUPHL.xml new file mode 100644 index 0000000000..c513704564 --- /dev/null +++ b/edexOsgi/com.raytheon.uf.common.derivparam/utility/common_static/base/derivedParameters/definitions/MXUPHL.xml @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/edexOsgi/com.raytheon.uf.common.derivparam/utility/common_static/base/derivedParameters/definitions/MXUVV.xml b/edexOsgi/com.raytheon.uf.common.derivparam/utility/common_static/base/derivedParameters/definitions/MXUVV.xml new file mode 100644 index 0000000000..b5fc05047f --- /dev/null +++ b/edexOsgi/com.raytheon.uf.common.derivparam/utility/common_static/base/derivedParameters/definitions/MXUVV.xml @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/edexOsgi/com.raytheon.uf.common.derivparam/utility/common_static/base/derivedParameters/definitions/WGS1hr.xml b/edexOsgi/com.raytheon.uf.common.derivparam/utility/common_static/base/derivedParameters/definitions/WGS1hr.xml new file mode 100644 index 0000000000..f9c59fd0dd --- /dev/null +++ b/edexOsgi/com.raytheon.uf.common.derivparam/utility/common_static/base/derivedParameters/definitions/WGS1hr.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/edexOsgi/com.raytheon.uf.edex.plugin.grid/utility/common_static/base/purge/gridPurgeRules.xml b/edexOsgi/com.raytheon.uf.edex.plugin.grid/utility/common_static/base/purge/gridPurgeRules.xml index d0c1625e11..150f27d4c2 100644 --- a/edexOsgi/com.raytheon.uf.edex.plugin.grid/utility/common_static/base/purge/gridPurgeRules.xml +++ b/edexOsgi/com.raytheon.uf.edex.plugin.grid/utility/common_static/base/purge/gridPurgeRules.xml @@ -732,4 +732,9 @@ 5 00-00:15:00 + + + HRRR + 4 +