Skip to content

Commit

Permalink
Adding MRMS GRIB2 tables.
Browse files Browse the repository at this point in the history
This commit provides support for MRMS GRIB2 tables. MRMS uses the
GRIB2 discipline value of 209.  The included UserTable_MRMS_v12.2.csv
contains more information than what is needed, so in time, other
attributes from the table can be added.

This commit references issue #120
  • Loading branch information
EricEngle-NOAA committed Jan 17, 2024
1 parent 93efbdb commit cfc8679
Show file tree
Hide file tree
Showing 4 changed files with 205 additions and 0 deletions.
10 changes: 10 additions & 0 deletions make_grib2_tables/UserTable_MRMS_PrecipFlags.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Flag,Description
-3,no coverage
0,no precipitation
1,warm stratiform rain
3,snow
6,convective rain
7,rain mixed with hail
10,cold stratiform rain
91,tropical/stratiform rain mix
96,tropical/convective rain mix
152 changes: 152 additions & 0 deletions make_grib2_tables/UserTable_MRMS_v12.2.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
Discipline,Category,Parameter,Name,Frequency,Unit,Missing,Range Folded,No Coverage,Description,Notes
209,2,0,NLDN_CG_001min_AvgDensity,1-min,flashes/km^2/min,-1,n/a,-3,CG Average Lightning Density 1-min - NLDN,was NLDN_CG_001min; ConUS only
209,2,1,NLDN_CG_005min_AvgDensity,1-min,flashes/km^2/min,-1,n/a,-3,CG Average Lightning Density 5-min - NLDN,was NLDN_CG_005min; ConUS only
209,2,2,NLDN_CG_015min_AvgDensity,1-min,flashes/km^2/min,-1,n/a,-3,CG Average Lightning Density 15-min - NLDN,was NLDN_CG_015min; ConUS only
209,2,3,NLDN_CG_030min_AvgDensity,1-min,flashes/km^2/min,-1,n/a,-3,CG Average Lightning Density 30-min - NLDN,was NLDN_CG_030min; ConUS only
209,2,5,LightningProbabilityNext30minGrid,2-min,%,0,n/a,0,Lightning Probability 0-30 minutes - NLDN,ConUS Only
209,2,6,LightningProbabilityNext60minGrid,2-min,%,0,n/a,0,Lightning Probability 0-30 minutes - NLDN,ConUS Only
209,2,7,LightningJumpGrid,2-min,non-dim,-99900,n/a,-99903,Rapid lightning increases and decreases ,ConUS Only
209,2,8,LightningJumpGrid_Max_005min,2-min,non-dim,-99900,n/a,-99903,Rapid lightning increases and decreases over 5-minutes ,ConUS Only
209,3,0,MergedAzShear0to2kmAGL,2-min,0.001/s,0,0,0,Azimuth Shear 0-2km AGL,no Alaska product
209,3,1,MergedAzShear3to6kmAGL,2-min,0.001/s,0,0,0,Azimuth Shear 3-6km AGL,no Alaska product
209,3,2,RotationTrack30min,2-min,0.001/s,0,n/a,0,Rotation Track 0-2km AGL 30-min,no Alaska product
209,3,3,RotationTrack60min,2-min,0.001/s,0,n/a,0,Rotation Track 0-2km AGL 60-min,no Alaska product
209,3,4,RotationTrack120min,30-min,0.001/s,0,n/a,0,Rotation Track 0-2km AGL 120-min,no Alaska product
209,3,5,RotationTrack240min,30-min,0.001/s,0,n/a,0,Rotation Track 0-2km AGL 240-min,no Alaska product
209,3,6,RotationTrack360min,30-min,0.001/s,0,n/a,0,Rotation Track 0-2km AGL 360-min,no Alaska product
209,3,7,RotationTrack1440min,30-min,0.001/s,0,n/a,0,Rotation Track 0-2km AGL 1440-min,no Alaska product
209,3,14,RotationTrackML30min,2-min,0.001/s,0,n/a,0,Rotation Track 3-6km AGL 30-min,no Alaska product
209,3,15,RotationTrackML60min,2-min,0.001/s,0,n/a,0,Rotation Track 3-6km AGL 60-min,no Alaska product
209,3,16,RotationTrackML120min,30-min,0.001/s,0,n/a,0,Rotation Track 3-6km AGL 120-min,no Alaska product
209,3,17,RotationTrackML240min,30-min,0.001/s,0,n/a,0,Rotation Track 3-6km AGL 240-min,no Alaska product
209,3,18,RotationTrackML360min,30-min,0.001/s,0,n/a,0,Rotation Track 3-6km AGL 360-min,no Alaska product
209,3,19,RotationTrackML1440min,30-min,0.001/s,0,n/a,0,Rotation Track 3-6km AGL 1440-min,no Alaska product
209,3,26,SHI,2-min,index,-1,n/a,-3,Severe Hail Index,
209,3,27,POSH,2-min,%,-1,n/a,-3,Prob of Severe Hail,
209,3,28,MESH,2-min,mm,-1,n/a,-3,Maximum Estimated Size of Hail (MESH),
209,3,29,MESHMax30min,2-min,mm,-1,n/a,-3,MESH Hail Swath 30-min,
209,3,30,MESHMax60min,2-min,mm,-1,n/a,-3,MESH Hail Swath 60-min,
209,3,31,MESHMax120min,30-min,mm,-1,n/a,-3,MESH Hail Swath 120-min,
209,3,32,MESHMax240min,30-min,mm,-1,n/a,-3,MESH Hail Swath 240-min,
209,3,33,MESHMax360min,30-min,mm,-1,n/a,-3,MESH Hail Swath 360-min,
209,3,34,MESHMax1440min,30-min,mm,-1,n/a,-3,MESH Hail Swath 1440-min,
209,3,37,VIL_Max_120min,30-min,kg/m^2,-1,n/a,-3,VIL Swath 120-min,
209,3,40,VIL_Max_1440min,30-min,kg/m^2,-1,n/a,-3,VIL Swath 1440-min,
209,3,41,VIL,2-min,kg/m^2,-1,n/a,-3,Vertically Integrated Liquid,
209,3,42,VIL_Density,2-min,g/m^3,-1,n/a,-3,Vertically Integrated Liquid Density,
209,3,43,VII,2-min,kg/m^2,-1,n/a,-3,Vertically Integrated Ice,
209,3,44,EchoTop_18,2-min,km MSL,-1,n/a,-3,Echo Top - 18 dBZ,
209,3,45,EchoTop_30,2-min,km MSL,-1,n/a,-3,Echo Top - 30 dBZ,
209,3,46,EchoTop_50,2-min,km MSL,-1,n/a,-3,Echo Top - 50 dBZ,
209,3,47,EchoTop_60,2-min,km MSL,-1,n/a,-3,Echo Top - 60 dBZ,
209,3,48,H50AboveM20C,2-min,km,-99,n/a,-999,Thickness [50 dBZ top - (-20C)],
209,3,49,H50Above0C,2-min,km,-99,n/a,-999,Thickness [50 dBZ top - 0C],
209,3,50,H60AboveM20C,2-min,km,-99,n/a,-999,Thickness [60 dBZ top - (-20C)],
209,3,51,H60Above0C,2-min,km,-99,n/a,-999,Thickness [60 dBZ top - 0C],
209,3,52,Reflectivity_0C,2-min,dBZ,-99,n/a,-999,Isothermal Reflectivity at 0C,
209,3,53,Reflectivity_-5C,2-min,dBZ,-99,n/a,-999,Isothermal Reflectivity at -5C,
209,3,54,Reflectivity_-10C,2-min,dBZ,-99,n/a,-999,Isothermal Reflectivity at -10C,
209,3,55,Reflectivity_-15C,2-min,dBZ,-99,n/a,-999,Isothermal Reflectivity at -15C,
209,3,56,Reflectivity_-20C,2-min,dBZ,-99,n/a,-999,Isothermal Reflectivity at -20C,
209,3,57,ReflectivityAtLowestAltitude,2-min,dBZ,-99,n/a,-999,ReflectivityAtLowestAltitude,
209,3,57,ReflectivityAtLowestAltitude5km,2-min,dBZ,-99,n/a,-999,ReflectivityAtLowestAltitude resampled from 1 to 5km resolution,ConUS only - removed at v12.1
209,3,58,MergedReflectivityAtLowestAltitude,2-min,dBZ,-99,n/a,-999,Non Quality Controlled Reflectivity At Lowest Altitude,
209,6,0,PrecipFlag,2-min,flag,-1,n/a,-3,"Surface Precipitation Type (Convective, Stratiform, Tropical, Hail, Snow)",see flag table
209,6,1,PrecipRate,2-min,mm/hr,-1,n/a,-3,Radar Precipitation Rate,
209,6,2,RadarOnly_QPE_01H,2-min,mm,-1,n/a,-3,Radar precipitation accumulation 1-hour,
209,6,3,RadarOnly_QPE_03H,60-min,mm,-1,n/a,-3,Radar precipitation accumulation 3-hour,
209,6,4,RadarOnly_QPE_06H,60-min,mm,-1,n/a,-3,Radar precipitation accumulation 6-hour,
209,6,5,RadarOnly_QPE_12H,60-min,mm,-1,n/a,-3,Radar precipitation accumulation 12-hour,
209,6,6,RadarOnly_QPE_24H,60-min,mm,-1,n/a,-3,Radar precipitation accumulation 24-hour,
209,6,7,RadarOnly_QPE_48H,60-min,mm,-1,n/a,-3,Radar precipitation accumulation 48-hour,
209,6,8,RadarOnly_QPE_72H,60-min,mm,-1,n/a,-3,Radar precipitation accumulation 72-hour,
209,6,30,MultiSensor_QPE_01H_Pass1,60-min,mm,-1,n/a,-3,Multi-sensor accumulation 1-hour (1-hour latency),
209,6,31,MultiSensor_QPE_03H_Pass1,60-min,mm,-1,n/a,-3,Multi-sensor accumulation 3-hour (1-hour latency),
209,6,32,MultiSensor_QPE_06H_Pass1,60-min,mm,-1,n/a,-3,Multi-sensor accumulation 6-hour (1-hour latency),
209,6,33,MultiSensor_QPE_12H_Pass1,60-min,mm,-1,n/a,-3,Multi-sensor accumulation 12-hour (1-hour latency),
209,6,34,MultiSensor_QPE_24H_Pass1,60-min,mm,-1,n/a,-3,Multi-sensor accumulation 24-hour (1-hour latency),
209,6,35,MultiSensor_QPE_48H_Pass1,60-min,mm,-1,n/a,-3,Multi-sensor accumulation 48-hour (1-hour latency),
209,6,36,MultiSensor_QPE_72H_Pass1,60-min,mm,-1,n/a,-3,Multi-sensor accumulation 72-hour (1-hour latency),
209,6,37,MultiSensor_QPE_01H_Pass2,60-min,mm,-1,n/a,-3,Multi-sensor accumulation 1-hour (2-hour latency),
209,6,38,MultiSensor_QPE_03H_Pass2,60-min,mm,-1,n/a,-3,Multi-sensor accumulation 3-hour (2-hour latency),
209,6,39,MultiSensor_QPE_06H_Pass2,60-min,mm,-1,n/a,-3,Multi-sensor accumulation 6-hour (2-hour latency),
209,6,40,MultiSensor_QPE_12H_Pass2,60-min,mm,-1,n/a,-3,Multi-sensor accumulation 12-hour (2-hour latency),
209,6,41,MultiSensor_QPE_24H_Pass2,60-min,mm,-1,n/a,-3,Multi-sensor accumulation 24-hour (2-hour latency),
209,6,42,MultiSensor_QPE_48H_Pass2,60-min,mm,-1,n/a,-3,Multi-sensor accumulation 48-hour (2-hour latency),
209,6,43,MultiSensor_QPE_72H_Pass2,60-min,mm,-1,n/a,-3,Multi-sensor accumulation 72-hour (2-hour latency),
209,6,44,SyntheticPrecipRateID,2-min,flag,-1,n/a,-3,Method IDs for blended single and dual-pol derived precip rates ,
209,6,45,RadarOnly_QPE_15M,15-min,mm,-1,n/a,-3,Radar precipitation accumulation 15-minute,
209,6,46,RadarOnly_QPE_Since12Z,60-min,mm,-1,n/a,-3,Radar precipitation accumulation since 12Z,
209,7,0,Model_SurfaceTemp,60-min,C,-99,n/a,-999,Model Surface temperature,
209,7,1,Model_WetBulbTemp,60-min,C,-99,n/a,-999,Model Surface wet bulb temperature,
209,7,2,WarmRainProbability,60-min,%,-1,n/a,-3,Probability of warm rain,
209,7,3,Model_0degC_Height,60-min,m MSL,-1,n/a,-3,Model Freezing Level Height,
209,7,4,BrightBandTopHeight,2-min,m AGL,-1,n/a,-3,Brightband Top Height,
209,7,5,BrightBandBottomHeight,2-min,m AGL,-1,n/a,-3,Brightband Bottom Height,
209,8,0,RadarQualityIndex,2-min,non-dim,-1,n/a,-3,Radar Quality Index,
209,8,1,GaugeInflIndex_01H_Pass1,60-min,non-dim,-1,n/a,-3,Gauge Influence Index for 1-hour QPE (1-hour latency),was GaugeInflIndex_01H prior to v12.0
209,8,2,GaugeInflIndex_03H_Pass1,60-min,non-dim,-1,n/a,-3,Gauge Influence Index for 3-hour QPE (1-hour latency),was GaugeInflIndex_03H prior to v12.0
209,8,3,GaugeInflIndex_06H_Pass1,60-min,non-dim,-1,n/a,-3,Gauge Influence Index for 6-hour QPE (1-hour latency),was GaugeInflIndex_06H prior to v12.0
209,8,4,GaugeInflIndex_12H_Pass1,60-min,non-dim,-1,n/a,-3,Gauge Influence Index for 12-hour QPE (1-hour latency),was GaugeInflIndex_12H prior to v12.0
209,8,5,GaugeInflIndex_24H_Pass1,60-min,non-dim,-1,n/a,-3,Gauge Influence Index for 24-hour QPE (1-hour latency),was GaugeInflIndex_24H prior to v12.0
209,8,6,GaugeInflIndex_48H_Pass1,60-min,non-dim,-1,n/a,-3,Gauge Influence Index for 48-hour QPE (1-hour latency),was GaugeInflIndex_48H prior to v12.0
209,8,7,GaugeInflIndex_72H_Pass1,60-min,non-dim,-1,n/a,-3,Gauge Influence Index for 72-hour QPE (1-hour latency),was GaugeInflIndex_72H prior to v12.0
209,8,8,SeamlessHSR,2-min,dBZ,-99,n/a,-999,Seamless Hybrid Scan Reflectivity with VPR correction,
209,8,9,SeamlessHSRHeight,2-min,km AGL,-1,n/a,-3,Height of Seamless Hybrid Scan Reflectivity,
209,8,10,RadarAccumulationQualityIndex_01H,60-min,non-dim,-1,n/a,-3,Radar 1-hour QPE Accumulation Quality,
209,8,11,RadarAccumulationQualityIndex_03H,60-min,non-dim,-1,n/a,-3,Radar 3-hour QPE Accumulation Quality,
209,8,12,RadarAccumulationQualityIndex_06H,60-min,non-dim,-1,n/a,-3,Radar 6-hour QPE Accumulation Quality,
209,8,13,RadarAccumulationQualityIndex_12H,60-min,non-dim,-1,n/a,-3,Radar 12-hour QPE Accumulation Quality,
209,8,14,RadarAccumulationQualityIndex_24H,60-min,non-dim,-1,n/a,-3,Radar 24-hour QPE Accumulation Quality,
209,8,15,RadarAccumulationQualityIndex_48H,60-min,non-dim,-1,n/a,-3,Radar 48-hour QPE Accumulation Quality,
209,8,16,RadarAccumulationQualityIndex_72H,60-min,non-dim,-1,n/a,-3,Radar 72-hour QPE Accumulation Quality,
209,8,17,GaugeInflIndex_01H_Pass2,60-min,non-dim,-1,n/a,-3,Gauge Influence Index for 1-hour QPE (2-hour latency),
209,8,18,GaugeInflIndex_03H_Pass2,60-min,non-dim,-1,n/a,-3,Gauge Influence Index for 3-hour QPE (2-hour latency),
209,8,19,GaugeInflIndex_06H_Pass2,60-min,non-dim,-1,n/a,-3,Gauge Influence Index for 6-hour QPE (2-hour latency),
209,8,20,GaugeInflIndex_12H_Pass2,60-min,non-dim,-1,n/a,-3,Gauge Influence Index for 12-hour QPE (2-hour latency),
209,8,21,GaugeInflIndex_24H_Pass2,60-min,non-dim,-1,n/a,-3,Gauge Influence Index for 24-hour QPE (2-hour latency),
209,8,22,GaugeInflIndex_48H_Pass2,60-min,non-dim,-1,n/a,-3,Gauge Influence Index for 48-hour QPE (2-hour latency),
209,8,23,GaugeInflIndex_72H_Pass2,60-min,non-dim,-1,n/a,-3,Gauge Influence Index for 72-hour QPE (2-hour latency),
209,9,0,MergedReflectivityQC,2-min,dBZ,-99,n/a,-999,3D Reflectivty Mosaic - 33 CAPPIS (500-19000m),33 levels (one file per level)
209,9,3,MergedRhoHV,5-min,non-dim,-99,n/a,-999,3D RhoHV Mosaic - 33 CAPPIS (500-19000m),"33 levels (one file per level), ConUS only"
209,9,4,MergedZdr,5-min,dB,-99,n/a,-999,3D Zdr Mosaic - 33 CAPPIS (500-19000m),"33 levels (one file per level), ConUS only"
209,10,0,MergedReflectivityQCComposite,2-min,dBZ,-99,n/a,-999,Composite Reflectivity Mosaic (optimal method),
209,10,0,MergedReflectivityQCComposite5km,2-min,dBZ,-99,n/a,-999,Composite Reflectivity Mosaic (optimal method) resampled from 1 to 5km,ConUS only - removed at v12.1
209,10,1,HeightCompositeReflectivity,2-min,m MSL,-1,n/a,-3,Height of Composite Reflectivity Mosaic (optimal method),
209,10,2,LowLevelCompositeReflectivity,2-min,dBZ,-99,n/a,-999,Low-Level Composite Reflectivity Mosaic (0-4km),
209,10,3,HeightLowLevelCompositeReflectivity,2-min,m MSL,-1,n/a,-3,Height of Low-Level Composite Reflectivity Mosaic (0-4km),
209,10,4,LayerCompositeReflectivity_Low,2-min,dBZ,-99,n/a,-999,Layer Composite Reflectivity Mosaic 0-24kft (low altitude),
209,10,5,LayerCompositeReflectivity_High,2-min,dBZ,-99,n/a,-999,Layer Composite Reflectivity Mosaic 24-60 kft (highest altitude),
209,10,6,LayerCompositeReflectivity_Super,2-min,dBZ,-99,n/a,-999,Layer Composite Reflectivity Mosaic 33-60 kft (super high altitude),
209,10,7,CREF_1HR_MAX,60-min,dBZ,-99,n/a,-999,Composite Reflectivity Hourly Maximum,
209,10,9,LayerCompositeReflectivity_ANC,2-min,dBZ,-99,n/a,-999,Layer Composite Reflectivity Mosaic (2-4.5km) (for ANC),ConUS only
209,10,10,BREF_1HR_MAX,60-min,dBZ,-99,n/a,-999,Base Reflectivity Hourly Maximum,
209,11,0,MergedBaseReflectivityQC,2-min,dBZ,-99,n/a,-999,Base Reflectivity Mosaic (optimal method),
209,11,1,MergedReflectivityComposite,2-min,dBZ,-99,n/a,-999,Raw Composite Reflectivity Mosaic (max ref),
209,11,2,MergedReflectivityQComposite,2-min,dBZ,-99,n/a,-999,Composite Reflectivity Mosaic (max ref),
209,11,3,MergedBaseReflectivity,2-min,dBZ,-99,n/a,-999,Raw Base Reflectivity Mosaic (optimal method),
209,12,0,FLASH_CREST_MAXUNITSTREAMFLOW,10-min,m^3/s/km^2,-9999,n/a,-9999,FLASH QPE-CREST Unit Streamflow,
209,12,1,FLASH_CREST_MAXSTREAMFLOW,10-min,m^3/s,-9999,n/a,-9999,FLASH QPE-CREST Streamflow,
209,12,2,FLASH_CREST_MAXSOILSAT,10-min,%,-9999,n/a,-9999,FLASH QPE-CREST Soil Saturation,
209,12,4,FLASH_SAC_MAXUNITSTREAMFLOW,10-min,m^3/s/km^2,-9999,n/a,-9999,FLASH QPE-SAC Unit Streamflow,
209,12,5,FLASH_SAC_MAXSTREAMFLOW,10-min,m^3/s,-9999,n/a,-9999,FLASH QPE-SAC Streamflow,
209,12,6,FLASH_SAC_MAXSOILSAT,10-min,%,-9999,n/a,-9999,FLASH QPE-SAC Soil Saturation,
209,12,14,FLASH_QPE_ARI30M,2-min,years,-999,n/a,-999,FLASH QPE Average Recurrence Interval 30-min,
209,12,15,FLASH_QPE_ARI01H,2-min,years,-999,n/a,-999,FLASH QPE Average Recurrence Interval 01H,
209,12,16,FLASH_QPE_ARI03H,2-min,years,-999,n/a,-999,FLASH QPE Average Recurrence Interval 03H,
209,12,17,FLASH_QPE_ARI06H,2-min,years,-999,n/a,-999,FLASH QPE Average Recurrence Interval 06H,
209,12,18,FLASH_QPE_ARI12H,2-min,years,-999,n/a,-999,FLASH QPE Average Recurrence Interval 12H,
209,12,19,FLASH_QPE_ARI24H,2-min,years,-999,n/a,-999,FLASH QPE Average Recurrence Interval 24H,
209,12,20,FLASH_QPE_ARIMAX,2-min,years,-999,n/a,-999,FLASH QPE Average Recurrence Interval Maximum,
209,12,26,FLASH_QPE_FFG01H,2-min,non-dim,-999,n/a,-999,FLASH QPE-to-FFG Ratio 01H,no Alaska product
209,12,27,FLASH_QPE_FFG03H,2-min,non-dim,-999,n/a,-999,FLASH QPE-to-FFG Ratio 03H,no Alaska product
209,12,28,FLASH_QPE_FFG06H,2-min,non-dim,-999,n/a,-999,FLASH QPE-to-FFG Ratio 06H,no Alaska product
209,12,29,FLASH_QPE_FFGMAX,2-min,non-dim,-999,n/a,-999,FLASH QPE-to-FFG Ratio Maximum,no Alaska product
209,12,39,FLASH_HP_MAXUNITSTREAMFLOW,10-min,m^3/s/km^2,-9999,n/a,-9999,FLASH QPE-Hydrophobic Unit Streamflow,
209,12,40,FLASH_HP_MAXSTREAMFLOW,10-min,m^3/s,-9999,n/a,-9999,FLASH QPE-Hydrophobic Streamflow,
209,13,0,ANC_ConvectiveLikelihood,10-min,non-dim,0,n/a,0,Likelihood of convection over the next 01H,ConUS only - discontinued Sept 2023
209,13,1,ANC_FinalForecast,10-min,dBZ,0,n/a,0,01H reflectivity forecast,ConUS only - discontinued Sept 2023
209,14,0,LVL3_HREET,2-min,kft,-1,n/a,-3,Level III High Resolution Enhanced Echo Top mosaic,ConUS only
209,14,1,LVL3_HighResVIL,2-min,kg/m^2,-1,n/a,-3,Level III High Resouion VIL mosaic,ConUS only
Not GRIB2,n/a,n/a,CONVECTPROB (ASCII),2-min,n/a,n/a,n/a,n/a,Prob Severe v1,ConUS only
Not GRIB2,n/a,n/a,PROBSEVERE (JSON),2-min,n/a,n/a,n/a,n/a,Prob Severe v2,ConUS only
38 changes: 38 additions & 0 deletions make_grib2_tables/make-mrms-grib2-sect4-parameters.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#!/usr/bin/env python3

import pandas as pd

# ----------------------------------------------------------------------------------------
# Some variables.
# ----------------------------------------------------------------------------------------
startdict = '{'
enddict = '}\n'
discipline = 209

# ----------------------------------------------------------------------------------------
# Read the MRMS product table CSV file and remove "n/a" lines.
# ----------------------------------------------------------------------------------------
df = pd.read_csv('UserTable_MRMS_v12.2.csv')
df = df[df['Discipline']==str(discipline)]

# ----------------------------------------------------------------------------------------
# Create a list of unique parameter categories.
# ----------------------------------------------------------------------------------------
parmcats = [int(n) for n in set(list(df.Category.values))]

# ----------------------------------------------------------------------------------------
# Iterate over parameter categories, then rows matching, and create the dictionary entry.
# ----------------------------------------------------------------------------------------
for pc in parmcats:
dictname = f'table_4_2_{discipline}_{pc} = {startdict}'
print(dictname)
df2 = df[df['Category']==float(pc)]
for idx,row in df2.iterrows():
parmcat = int(row['Category'])
parmnum = int(row['Parameter'])
name = row['Name']
unit = row['Unit']
description = row['Description']
line = f'\'{str(parmnum)}\':[\'{description}\',\'{unit}\',\'{name}\'],'
print(line)
print(enddict)
5 changes: 5 additions & 0 deletions make_grib2_tables/make-ncep-grib2-tables.sh
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,11 @@ do
./get-ncep-grib2-sect4-parameters-table.py 20 $table >> section4_discipline20.py
done

# Discipline 209 - MRMS GRIB2 Products
echo " -- Making section4_discipline209.py"
if [ -f section4_discipline209.py ]; then rm -f section4_discipline209.py; fi
./make-mrms-grib2-sect4-parameters.py >> section4_discipline209.py

# ----------------------------------------------------------------------------------------
# Remove "See Note" strings from section 4 discipline files.
# ----------------------------------------------------------------------------------------
Expand Down

0 comments on commit cfc8679

Please sign in to comment.