Merge "Issue #3084 Fix NXxNY in master_grib2_lookup, update and comment master_grib2_lookup entries." into omaha_14.2.1

Former-commit-id: ffa75b13ce [formerly b6befe18a6 [formerly a80d2981ba] [formerly ffa75b13ce [formerly f3e957f70651f4c50693ba5296b633659671cf63]]]
Former-commit-id: b6befe18a6 [formerly a80d2981ba]
Former-commit-id: b6befe18a6
Former-commit-id: cd3b0e9e00
This commit is contained in:
Richard Peter 2014-04-28 16:40:58 -05:00 committed by Gerrit Code Review
commit 145e078d36
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
# grib files.
# 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():
@ -301,6 +302,17 @@ class GribDecoder():
modelName = self._createModelName(gribDict, gridCoverage)
#check if forecast used flag needs to be removed
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
spatialCache = GribSpatialCache.getInstance()
subCoverage = spatialCache.getSubGridCoverage(modelName, gridCoverage)
@ -336,16 +348,6 @@ class GribDecoder():
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
record = GridRecord()
record.setDataTime(dataTime)

View file

@ -40,32 +40,50 @@
// 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
// broadly defined translation from affecting a specific case.
s2s
TP_254E3_T170L42A-NCEP-MDL_1073x689_21600-0 POP6hr
TP_254E3_T170L42A-NCEP-MDL_1073x689_43200-0 POP12hr
// 5km CONUS MOSGuide precip probability
TP0.254mm_T170L42A-NCEP-MDL_1073x689_21600-0 POP6hr
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_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_21600-0 ThP6hr
ThP_T170L42A-NCEP-MDL_1073x689_10800-0 ThP3hr
TP_254E3_T170L42A-NCEP-MDL_1649x1105_21600-0 POP6hr
TP_254E3_T170L42A-NCEP-MDL_1649x1105_43200-0 POP12hr
// 2.5km MOSGuide
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
WS25.722m/s Prob50
WS32.924m/s Prob64
PWS17.491m/s PWS34
PWS25.722m/s PWS50
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_21600-0 MxT6hr
MnT_ECMFMOD-1DEG-ECMF_10800-0 MnT3hr
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
// HPCQPF cumulative precip
// these are unnessecary since A2 always appends duration
TP_HPCQPF-NCEP-HPC_432000-0 TP120hr
TP_HPCQPF-NCEP-HPC_172800-0 TP48hr
// HPCQPF 6 hour cumulative precip
TP_HPCQPF-NCEP-HPC_21600-0 tpHPCndfd
// SREF snowfall statistics
SNOLmean_43200-0 SNOL12mean
SNOLsprd_43200-0 SNOL12sprd
// SREF precip statistics
TPmean_10800-0 TP3mean
TPsprd_10800-0 TP3sprd
TPmean_21600-0 TP6mean
@ -74,30 +92,38 @@ TPmean_43200-0 TP12mean
TPsprd_43200-0 TP12sprd
TPmean_86400-0 TP24mean
TPsprd_86400-0 TP24sprd
// SREF visibility probabilities
Vis1609.0m Visc1
Vis4827.0m Visc2
// SREF Wind Speed probabilities
WS12.89m/s WSc1
WS17.5m/s WSc2
WS25.7m/s WSc3
WS25.0m/s WSc3
WS25.78m/s WSc4
// SREF Height probabilities
GH152.5gpm Cigc1
GH305.0gpm Cigc2
GH914.6gpm Cigc3
// SREF temperature probability
T273.0K Tc1
// SREF CAPE probabilities
CAPE500.0J/kg CAPEc1
CAPE1000.0J/kg CAPEc2
CAPE2000.0J/kg CAPEc3
CAPE3000.0J/kg CAPEc4
CAPE4000.0J/kg CAPEc5
// SREF precip type probabilities
CFRZR1.0 CFRZRc1
CICEP1.0 CICEPc1
CRAIN1.0 CRAINc1
CSNOW1.0 CSNOWc1
// SREF lifted index probabilities
PLI0.0K PLIxc1
PLI-2.0K PLIxc2
PLI-4.0K PLIxc3
PLI-6.0K PLIxc4
PLI-8.0K PLIxc5
// SREF precip probabilities
TP0.25mm_10800-0 tp3c1
TP1.27mm_10800-0 tp3c2
TP2.54mm_10800-0 tp3c3
@ -130,8 +156,9 @@ TP12.7mm_86400-0 tp24c5
TP25.4mm_86400-0 tp24c6
TP38.1mm_86400-0 tp24c7
TP50.8mm_86400-0 tp24c8
// SREF snowfall probabilities
SNOL25.4mm_43200-0 SNOL12c1
SNOL508.0mm_43200-0 SNOL12c2
SNOL50.8mm_43200-0 SNOL12c2
SNOL101.6mm_43200-0 SNOL12c3
SNOL152.4mm_43200-0 SNOL12c4
SNOL190.5mm_43200-0 SNOL12c5
@ -139,41 +166,54 @@ SNOL203.2mm_43200-0 SNOL12c6
SNOL254.0mm_43200-0 SNOL12c7
SNOL304.8mm_43200-0 SNOL12c8
SNOL406.4mm_43200-0 SNOL12c9
SNOL609.6mm_43200-0 SNOL12c10
T_66E2_CPCMANU-NCEP-CPC_1073x689_604800-0 PTAM
T_33E2_CPCMANU-NCEP-CPC_1073x689_604800-0 PTBM
TP_66E2_CPCMANU-NCEP-CPC_1073x689_604800-0 PPAM
TP_33E2_CPCMANU-NCEP-CPC_1073x689_604800-0 PPBM
T_66E2_CPCAUTO-NCEP-CPC_1073x689_172800-0 PTAS
T_33E2_CPCAUTO-NCEP-CPC_1073x689_172800-0 PTBS
TP_66E2_CPCAUTO-NCEP-CPC_1073x689_172800-0 PPAS
TP_33E2_CPCAUTO-NCEP-CPC_1073x689_172800-0 PPBS
T_66E2_CPCMANU-NCEP-CPC_825x553_604800-0 PTAM
T_33E2_CPCMANU-NCEP-CPC_825x553_604800-0 PTBM
TP_66E2_CPCMANU-NCEP-CPC_825x553_604800-0 PPAM
TP_33E2_CPCMANU-NCEP-CPC_825x553_604800-0 PPBM
T_66E2_CPCAUTO-NCEP-CPC_825x553_172800-0 PTAS
T_33E2_CPCAUTO-NCEP-CPC_825x553_172800-0 PTBS
TP_66E2_CPCAUTO-NCEP-CPC_825x553_172800-0 PPAS
TP_33E2_CPCAUTO-NCEP-CPC_825x553_172800-0 PPBS
SNOL609.4mm_43200-0 SNOL12c10
// CPCOutlook Medium CONUS (process 200)
T0.66K_CPCMANU-NCEP-CPC_1073x689_604800-0 PTAM
T0.33K_CPCMANU-NCEP-CPC_1073x689_604800-0 PTBM
TP0.66mm_CPCMANU-NCEP-CPC_1073x689_604800-0 PPAM
TP0.33mm_CPCMANU-NCEP-CPC_1073x689_604800-0 PPBM
// CPCOutlook Short CONUS (process 201)
T0.66K_CPCAUTO-NCEP-CPC_1073x689_172800-0 PTAS
T0.33K_CPCAUTO-NCEP-CPC_1073x689_172800-0 PTBS
TP0.66mm_CPCAUTO-NCEP-CPC_1073x689_172800-0 PPAS
TP0.33mm_CPCAUTO-NCEP-CPC_1073x689_172800-0 PPBS
// CPCOutlook Medium Alaska (process 200)
T0.66K_CPCMANU-NCEP-CPC_825x553_604800-0 PTAM
T0.33K_CPCMANU-NCEP-CPC_825x553_604800-0 PTBM
TP0.66mm_CPCMANU-NCEP-CPC_825x553_604800-0 PPAM
TP0.33mm_CPCMANU-NCEP-CPC_825x553_604800-0 PPBM
// 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_43200-0 MxT12hr
MnT_NMM-NCEP_10800-0 MnT3hr
MnT_NMM-NCEP_43200-0 MnT12hr
// NMM (process 89) prob of precip
POP_NMM-NCEP_10800-0 prcp3hr
POP_NMM-NCEP_21600-0 prcp6hr
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_21600-0 TP6hr
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_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_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
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_10800-0 PWS64
LAVV_32924E3 LAVV
LOUV_25722E3 LOUV
LAUV_17491E3 LAUV
// Unused entries for TPCWindProb because of previously incorrect table entries
// for parameters 198,199 and 200.
LAVV32.924degrees LAVV
LOUV25.722degrees LOUV
LAUV17.491degrees LAUV
// HPCqpfNDFD, this prevents the decoder from appending the duration
PPFFG_75600-0 PPFFG
PPFFG_108000-0 PPFFG
PPFFG_172800-0 PPFFG
PPFFG_259200-0 PPFFG
# SPC
SIGTRNDPROB_254E3 SIGTRNDPROB
HAILPROB_254E3 HAILPROB
SIGHAILPROB_254E3 SIGHAILPROB
WINDPROB_254E3 WINDPROB
SIGWINDPROB_254E3 SIGWINDPROB
PRSVR_254E3 PRSVR
PRSIGSV_254E3 PRSIGSV
// SPCGuide Probability sever weather, strip off the bogus probability
PTOR0.254% PTOR
SIGTRNDPROB0.254% SIGTRNDPROB
HAILPROB0.254% HAILPROB
SIGHAILPROB0.254% SIGHAILPROB
WINDPROB0.254% WINDPROB
SIGWINDPROB0.254% SIGWINDPROB
PRSVR0.254% PRSVR
PRSIGSV0.254% PRSIGSV