Issue #3084 Fix NXxNY in master_grib2_lookup, update and comment master_grib2_lookup entries.

Former-commit-id: 9985f518b1 [formerly b75445ffea12040487d57bdf248ff3fd48877d8d]
Former-commit-id: 25e4eee58a
This commit is contained in:
Ben Steffensmeier 2014-04-28 16:22:23 -05:00
parent 066515b7c5
commit 3601d1ff98
2 changed files with 95 additions and 49 deletions

View file

@ -122,6 +122,7 @@ logHandler = UFStatusHandler.UFStatusHandler("com.raytheon.edex.plugin.grib", "E
# Sep 06, 2013 2402 bsteffen Switch to use file extents for multipart # Sep 06, 2013 2402 bsteffen Switch to use file extents for multipart
# grib files. # grib files.
# Feb 11, 2014 2765 bsteffen Better handling of probability parameters. # Feb 11, 2014 2765 bsteffen Better handling of probability parameters.
# Apr 28, 2014 3084 bsteffen Use full grid for looking up parameter aliases.
# #
class GribDecoder(): class GribDecoder():
@ -301,6 +302,17 @@ class GribDecoder():
modelName = self._createModelName(gribDict, gridCoverage) modelName = self._createModelName(gribDict, gridCoverage)
#check if forecast used flag needs to be removed #check if forecast used flag needs to be removed
self._checkForecastFlag(gribDict, gridCoverage, dataTime) self._checkForecastFlag(gribDict, gridCoverage, dataTime)
# check parameter abbreivation mapping
parameterAbbreviation = gribDict['parameterAbbreviation']
newAbbr = GribParamTranslator.getInstance().translateParameter(2, parameterAbbreviation, gribDict['center'], gribDict['subcenter'], gribDict['genprocess'], dataTime, gridCoverage)
if newAbbr is None:
if gribDict['parameterName'] != MISSING and dataTime.getValidPeriod().getDuration() > 0:
parameterAbbreviation = parameterAbbreviation + str(dataTime.getValidPeriod().getDuration() / 3600000) + "hr"
else:
parameterAbbreviation = newAbbr
parameterAbbreviation = parameterAbbreviation.replace('_', '-')
# check sub gridding # check sub gridding
spatialCache = GribSpatialCache.getInstance() spatialCache = GribSpatialCache.getInstance()
subCoverage = spatialCache.getSubGridCoverage(modelName, gridCoverage) subCoverage = spatialCache.getSubGridCoverage(modelName, gridCoverage)
@ -336,16 +348,6 @@ class GribDecoder():
numpyDataArray = numpy.reshape(numpyDataArray, (1, gribDict['ngrdpts'])) numpyDataArray = numpy.reshape(numpyDataArray, (1, gribDict['ngrdpts']))
parameterAbbreviation = gribDict['parameterAbbreviation']
newAbbr = GribParamTranslator.getInstance().translateParameter(2, parameterAbbreviation, gribDict['center'], gribDict['subcenter'], gribDict['genprocess'], dataTime, gridCoverage)
if newAbbr is None:
if gribDict['parameterName'] != MISSING and dataTime.getValidPeriod().getDuration() > 0:
parameterAbbreviation = parameterAbbreviation + str(dataTime.getValidPeriod().getDuration() / 3600000) + "hr"
else:
parameterAbbreviation = newAbbr
parameterAbbreviation = parameterAbbreviation.replace('_', '-')
# Construct the GribRecord # Construct the GribRecord
record = GridRecord() record = GridRecord()
record.setDataTime(dataTime) record.setDataTime(dataTime)

View file

@ -40,32 +40,50 @@
// that of the input hash, one might do this if one only wanted to // that of the input hash, one might do this if one only wanted to
// assign a specific level or change the perturbation, or prevent a more // assign a specific level or change the perturbation, or prevent a more
// broadly defined translation from affecting a specific case. // broadly defined translation from affecting a specific case.
s2s // 5km CONUS MOSGuide precip probability
TP_254E3_T170L42A-NCEP-MDL_1073x689_21600-0 POP6hr TP0.254mm_T170L42A-NCEP-MDL_1073x689_21600-0 POP6hr
TP_254E3_T170L42A-NCEP-MDL_1073x689_43200-0 POP12hr TP0.254mm_T170L42A-NCEP-MDL_1073x689_43200-0 POP12hr
// 5km CONUS MOSGuide cumulative precip
// these are unnessecary since A2 always appends duration
TP_T170L42A-NCEP-MDL_1073x689_21600-0 TP6hr TP_T170L42A-NCEP-MDL_1073x689_21600-0 TP6hr
TP_T170L42A-NCEP-MDL_1073x689_43200-0 TP12hr TP_T170L42A-NCEP-MDL_1073x689_43200-0 TP12hr
// 5km CONUS MOSGuide cumulative thunderstorm probabilities
// these are unnessecary since A2 always appends duration
ThP_T170L42A-NCEP-MDL_1073x689_43200-0 ThP12hr ThP_T170L42A-NCEP-MDL_1073x689_43200-0 ThP12hr
ThP_T170L42A-NCEP-MDL_1073x689_21600-0 ThP6hr ThP_T170L42A-NCEP-MDL_1073x689_21600-0 ThP6hr
ThP_T170L42A-NCEP-MDL_1073x689_10800-0 ThP3hr ThP_T170L42A-NCEP-MDL_1073x689_10800-0 ThP3hr
TP_254E3_T170L42A-NCEP-MDL_1649x1105_21600-0 POP6hr // 2.5km MOSGuide
TP_254E3_T170L42A-NCEP-MDL_1649x1105_43200-0 POP12hr TP0.254mm_T170L42A-NCEP-MDL_2145x1377_21600-0 POP6hr
TP0.254mm_T170L42A-NCEP-MDL_2145x1377_43200-0 POP12hr
// MOSGuide Alaska
TP0.254mm_T170L42A-NCEP-MDL_1649x1105_21600-0 POP6hr
TP0.254mm_T170L42A-NCEP-MDL_1649x1105_43200-0 POP12hr
// TPCWindProb wind speed probabilities
WS17.491m/s Prob34 WS17.491m/s Prob34
WS25.722m/s Prob50 WS25.722m/s Prob50
WS32.924m/s Prob64 WS32.924m/s Prob64
PWS17.491m/s PWS34 PWS17.491m/s PWS34
PWS25.722m/s PWS50 PWS25.722m/s PWS50
PWS32.924m/s PWS64 PWS32.924m/s PWS64
// All European models(center 98) min/max temperature
// these are unnessecary since A2 always appends duration
MxT_ECMFMOD-1DEG-ECMF_10800-0 MxT3hr MxT_ECMFMOD-1DEG-ECMF_10800-0 MxT3hr
MxT_ECMFMOD-1DEG-ECMF_21600-0 MxT6hr MxT_ECMFMOD-1DEG-ECMF_21600-0 MxT6hr
MnT_ECMFMOD-1DEG-ECMF_10800-0 MnT3hr MnT_ECMFMOD-1DEG-ECMF_10800-0 MnT3hr
MnT_ECMFMOD-1DEG-ECMF_21600-0 MnT6hr MnT_ECMFMOD-1DEG-ECMF_21600-0 MnT6hr
// All European models(center 98) precip
// this gets converted to TP-ECMWF for storage.
TP_ECMFMOD-1DEG-ECMF TP_ECMWF TP_ECMFMOD-1DEG-ECMF TP_ECMWF
// HPCQPF cumulative precip
// these are unnessecary since A2 always appends duration
TP_HPCQPF-NCEP-HPC_432000-0 TP120hr TP_HPCQPF-NCEP-HPC_432000-0 TP120hr
TP_HPCQPF-NCEP-HPC_172800-0 TP48hr TP_HPCQPF-NCEP-HPC_172800-0 TP48hr
// HPCQPF 6 hour cumulative precip
TP_HPCQPF-NCEP-HPC_21600-0 tpHPCndfd TP_HPCQPF-NCEP-HPC_21600-0 tpHPCndfd
// SREF snowfall statistics
SNOLmean_43200-0 SNOL12mean SNOLmean_43200-0 SNOL12mean
SNOLsprd_43200-0 SNOL12sprd SNOLsprd_43200-0 SNOL12sprd
// SREF precip statistics
TPmean_10800-0 TP3mean TPmean_10800-0 TP3mean
TPsprd_10800-0 TP3sprd TPsprd_10800-0 TP3sprd
TPmean_21600-0 TP6mean TPmean_21600-0 TP6mean
@ -74,30 +92,38 @@ TPmean_43200-0 TP12mean
TPsprd_43200-0 TP12sprd TPsprd_43200-0 TP12sprd
TPmean_86400-0 TP24mean TPmean_86400-0 TP24mean
TPsprd_86400-0 TP24sprd TPsprd_86400-0 TP24sprd
// SREF visibility probabilities
Vis1609.0m Visc1 Vis1609.0m Visc1
Vis4827.0m Visc2 Vis4827.0m Visc2
// SREF Wind Speed probabilities
WS12.89m/s WSc1 WS12.89m/s WSc1
WS17.5m/s WSc2 WS17.5m/s WSc2
WS25.7m/s WSc3 WS25.0m/s WSc3
WS25.78m/s WSc4 WS25.78m/s WSc4
// SREF Height probabilities
GH152.5gpm Cigc1 GH152.5gpm Cigc1
GH305.0gpm Cigc2 GH305.0gpm Cigc2
GH914.6gpm Cigc3 GH914.6gpm Cigc3
// SREF temperature probability
T273.0K Tc1 T273.0K Tc1
// SREF CAPE probabilities
CAPE500.0J/kg CAPEc1 CAPE500.0J/kg CAPEc1
CAPE1000.0J/kg CAPEc2 CAPE1000.0J/kg CAPEc2
CAPE2000.0J/kg CAPEc3 CAPE2000.0J/kg CAPEc3
CAPE3000.0J/kg CAPEc4 CAPE3000.0J/kg CAPEc4
CAPE4000.0J/kg CAPEc5 CAPE4000.0J/kg CAPEc5
// SREF precip type probabilities
CFRZR1.0 CFRZRc1 CFRZR1.0 CFRZRc1
CICEP1.0 CICEPc1 CICEP1.0 CICEPc1
CRAIN1.0 CRAINc1 CRAIN1.0 CRAINc1
CSNOW1.0 CSNOWc1 CSNOW1.0 CSNOWc1
// SREF lifted index probabilities
PLI0.0K PLIxc1 PLI0.0K PLIxc1
PLI-2.0K PLIxc2 PLI-2.0K PLIxc2
PLI-4.0K PLIxc3 PLI-4.0K PLIxc3
PLI-6.0K PLIxc4 PLI-6.0K PLIxc4
PLI-8.0K PLIxc5 PLI-8.0K PLIxc5
// SREF precip probabilities
TP0.25mm_10800-0 tp3c1 TP0.25mm_10800-0 tp3c1
TP1.27mm_10800-0 tp3c2 TP1.27mm_10800-0 tp3c2
TP2.54mm_10800-0 tp3c3 TP2.54mm_10800-0 tp3c3
@ -130,8 +156,9 @@ TP12.7mm_86400-0 tp24c5
TP25.4mm_86400-0 tp24c6 TP25.4mm_86400-0 tp24c6
TP38.1mm_86400-0 tp24c7 TP38.1mm_86400-0 tp24c7
TP50.8mm_86400-0 tp24c8 TP50.8mm_86400-0 tp24c8
// SREF snowfall probabilities
SNOL25.4mm_43200-0 SNOL12c1 SNOL25.4mm_43200-0 SNOL12c1
SNOL508.0mm_43200-0 SNOL12c2 SNOL50.8mm_43200-0 SNOL12c2
SNOL101.6mm_43200-0 SNOL12c3 SNOL101.6mm_43200-0 SNOL12c3
SNOL152.4mm_43200-0 SNOL12c4 SNOL152.4mm_43200-0 SNOL12c4
SNOL190.5mm_43200-0 SNOL12c5 SNOL190.5mm_43200-0 SNOL12c5
@ -139,41 +166,54 @@ SNOL203.2mm_43200-0 SNOL12c6
SNOL254.0mm_43200-0 SNOL12c7 SNOL254.0mm_43200-0 SNOL12c7
SNOL304.8mm_43200-0 SNOL12c8 SNOL304.8mm_43200-0 SNOL12c8
SNOL406.4mm_43200-0 SNOL12c9 SNOL406.4mm_43200-0 SNOL12c9
SNOL609.6mm_43200-0 SNOL12c10 SNOL609.4mm_43200-0 SNOL12c10
T_66E2_CPCMANU-NCEP-CPC_1073x689_604800-0 PTAM // CPCOutlook Medium CONUS (process 200)
T_33E2_CPCMANU-NCEP-CPC_1073x689_604800-0 PTBM T0.66K_CPCMANU-NCEP-CPC_1073x689_604800-0 PTAM
TP_66E2_CPCMANU-NCEP-CPC_1073x689_604800-0 PPAM T0.33K_CPCMANU-NCEP-CPC_1073x689_604800-0 PTBM
TP_33E2_CPCMANU-NCEP-CPC_1073x689_604800-0 PPBM TP0.66mm_CPCMANU-NCEP-CPC_1073x689_604800-0 PPAM
T_66E2_CPCAUTO-NCEP-CPC_1073x689_172800-0 PTAS TP0.33mm_CPCMANU-NCEP-CPC_1073x689_604800-0 PPBM
T_33E2_CPCAUTO-NCEP-CPC_1073x689_172800-0 PTBS // CPCOutlook Short CONUS (process 201)
TP_66E2_CPCAUTO-NCEP-CPC_1073x689_172800-0 PPAS T0.66K_CPCAUTO-NCEP-CPC_1073x689_172800-0 PTAS
TP_33E2_CPCAUTO-NCEP-CPC_1073x689_172800-0 PPBS T0.33K_CPCAUTO-NCEP-CPC_1073x689_172800-0 PTBS
T_66E2_CPCMANU-NCEP-CPC_825x553_604800-0 PTAM TP0.66mm_CPCAUTO-NCEP-CPC_1073x689_172800-0 PPAS
T_33E2_CPCMANU-NCEP-CPC_825x553_604800-0 PTBM TP0.33mm_CPCAUTO-NCEP-CPC_1073x689_172800-0 PPBS
TP_66E2_CPCMANU-NCEP-CPC_825x553_604800-0 PPAM // CPCOutlook Medium Alaska (process 200)
TP_33E2_CPCMANU-NCEP-CPC_825x553_604800-0 PPBM T0.66K_CPCMANU-NCEP-CPC_825x553_604800-0 PTAM
T_66E2_CPCAUTO-NCEP-CPC_825x553_172800-0 PTAS T0.33K_CPCMANU-NCEP-CPC_825x553_604800-0 PTBM
T_33E2_CPCAUTO-NCEP-CPC_825x553_172800-0 PTBS TP0.66mm_CPCMANU-NCEP-CPC_825x553_604800-0 PPAM
TP_66E2_CPCAUTO-NCEP-CPC_825x553_172800-0 PPAS TP0.33mm_CPCMANU-NCEP-CPC_825x553_604800-0 PPBM
TP_33E2_CPCAUTO-NCEP-CPC_825x553_172800-0 PPBS // CPCOutlook Short Alaska (process 201)
T0.66K_CPCAUTO-NCEP-CPC_825x553_172800-0 PTAS
T0.33K_CPCAUTO-NCEP-CPC_825x553_172800-0 PTBS
TP0.66mm_CPCAUTO-NCEP-CPC_825x553_172800-0 PPAS
TP0.33mm_CPCAUTO-NCEP-CPC_825x553_172800-0 PPBS
// NMM (process 89) Min/Max temp
// these are unnessecary since A2 always appends duration
MxT_NMM-NCEP_10800-0 MxT3hr MxT_NMM-NCEP_10800-0 MxT3hr
MxT_NMM-NCEP_43200-0 MxT12hr MxT_NMM-NCEP_43200-0 MxT12hr
MnT_NMM-NCEP_10800-0 MnT3hr MnT_NMM-NCEP_10800-0 MnT3hr
MnT_NMM-NCEP_43200-0 MnT12hr MnT_NMM-NCEP_43200-0 MnT12hr
// NMM (process 89) prob of precip
POP_NMM-NCEP_10800-0 prcp3hr POP_NMM-NCEP_10800-0 prcp3hr
POP_NMM-NCEP_21600-0 prcp6hr POP_NMM-NCEP_21600-0 prcp6hr
POP_NMM-NCEP_43200-0 prcp12hr POP_NMM-NCEP_43200-0 prcp12hr
// NMM (process 89) precip accumulation
// these are unnessecary since A2 always appends duration
TP_NMM-NCEP_10800-0 TP3hr TP_NMM-NCEP_10800-0 TP3hr
TP_NMM-NCEP_21600-0 TP6hr TP_NMM-NCEP_21600-0 TP6hr
TP_NMM-NCEP_43200-0 TP12hr TP_NMM-NCEP_43200-0 TP12hr
// NMM (process 89) min/max Relative Humidity
// these are unnessecary since A2 always appends duration
MAXRH_NMM-NCEP_10800-0 MAXRH3hr MAXRH_NMM-NCEP_10800-0 MAXRH3hr
MAXRH_NMM-NCEP_43200-0 MAXRH12hr MAXRH_NMM-NCEP_43200-0 MAXRH12hr
SnD_NMM-NCEP_10800-0 snowd3hr
SnD_NMM-NCEP_21600-0 snowd6hr
PTOR_254E3 PTOR
MINRH_NMM-NCEP_10800-0 MINRH3hr MINRH_NMM-NCEP_10800-0 MINRH3hr
MINRH_NMM-NCEP_43200-0 MINRH12hr MINRH_NMM-NCEP_43200-0 MINRH12hr
TP_254E3 POP // NMM (process 89) snowfall
// these are unnessecary since A2 always appends duration
SnD_NMM-NCEP_10800-0 snowd3hr
SnD_NMM-NCEP_21600-0 snowd6hr
// Catchall that always maps probability of precip over 0.245mm(1/100 in) to POP.
TP0.254mm POP
// Throw 1-hr and 2-hr precip on the floor for RUC13 // Throw 1-hr and 2-hr precip on the floor for RUC13
CP_RUC2-NCEP_165x165_7200-0 PWS64 CP_RUC2-NCEP_165x165_7200-0 PWS64
@ -181,20 +221,24 @@ CP_RUC2-NCEP_165x165_10800-0 PWS64
LgSP_RUC2-NCEP_165x165_7200-0 PWS64 LgSP_RUC2-NCEP_165x165_7200-0 PWS64
LgSP_RUC2-NCEP_165x165_10800-0 PWS64 LgSP_RUC2-NCEP_165x165_10800-0 PWS64
LAVV_32924E3 LAVV // Unused entries for TPCWindProb because of previously incorrect table entries
LOUV_25722E3 LOUV // for parameters 198,199 and 200.
LAUV_17491E3 LAUV LAVV32.924degrees LAVV
LOUV25.722degrees LOUV
LAUV17.491degrees LAUV
// HPCqpfNDFD, this prevents the decoder from appending the duration
PPFFG_75600-0 PPFFG PPFFG_75600-0 PPFFG
PPFFG_108000-0 PPFFG PPFFG_108000-0 PPFFG
PPFFG_172800-0 PPFFG PPFFG_172800-0 PPFFG
PPFFG_259200-0 PPFFG PPFFG_259200-0 PPFFG
# SPC // SPCGuide Probability sever weather, strip off the bogus probability
SIGTRNDPROB_254E3 SIGTRNDPROB PTOR0.254% PTOR
HAILPROB_254E3 HAILPROB SIGTRNDPROB0.254% SIGTRNDPROB
SIGHAILPROB_254E3 SIGHAILPROB HAILPROB0.254% HAILPROB
WINDPROB_254E3 WINDPROB SIGHAILPROB0.254% SIGHAILPROB
SIGWINDPROB_254E3 SIGWINDPROB WINDPROB0.254% WINDPROB
PRSVR_254E3 PRSVR SIGWINDPROB0.254% SIGWINDPROB
PRSIGSV_254E3 PRSIGSV PRSVR0.254% PRSVR
PRSIGSV0.254% PRSIGSV