Unidata / netcdf-java

The Unidata netcdf-java library
https://docs.unidata.ucar.edu/netcdf-java/current/userguide/index.html
BSD 3-Clause "New" or "Revised" License
150 stars 71 forks source link

Problems with Dataset NOAA_GSD/HRRR/CONUS_3km/surface/ #730

Open JohnLCaron opened 3 years ago

JohnLCaron commented 3 years ago

There are ~10 or so unidentified variables in this dataset. So we either have an incomplete or an incorrect table. We should track this down.

Example from cdmUnitTest/tds_index/NOAA_GSD/HRRR/CONUS_3km/surface/HRRR_CONUS_3km_surface_202011230000.grib2.ncx4:

Grib2IdentificationSection
 Center        = (59) The NOAA Forecast Systems Laboratory, Boulder, CO, United States
 SubCenter     = (0) null
 Master Table  = 2
 Local Table   = 1
 RefTimeSignif = 1 (Start of forecast)
 RefTime       = 2020-11-23T00:00Z
 RefTime Fields = 2020-11-23 0:0:0
 ProductionStatus      = 2 (Research products)
 TypeOfProcessedData   = 1 (Forecast products)
    float VAR0-1-192_FROM_59-0--1_surface(time9=118, y=1059, x=1799);
      :long_name = "Unknown Parameter 0-1-192 @ Ground or water surface";
      :units = "";
      :missing_value = NaNf; // float
      :grid_mapping = "LambertConformal_Projection";
      :coordinates = "reftime time9 y x ";
      :Grib_Variable_Id = "VAR_0-1-192_L1";
      :Grib2_Parameter = 0, 1, 192; // int
      :Grib2_Parameter_Discipline = "Meteorological products";
      :Grib2_Parameter_Category = "Moisture";
      :Grib2_Level_Type = 1; // int
      :Grib2_Level_Desc = "Ground or water surface";
      :Grib2_Generating_Process_Type = "Forecast";
      :Grib2_Statistical_Process_Type = "UnknownStatType--1";

    float VAR0-191-0_FROM_59-0--1_height_above_ground(time9=118, height_above_ground3=6, y=1059, x=1799);
      :long_name = "Unknown Parameter 0-191-0 @ Specified height level above ground";
      :units = "";
      :missing_value = NaNf; // float
      :grid_mapping = "LambertConformal_Projection";
      :coordinates = "reftime time9 height_above_ground3 y x ";
      :Grib_Variable_Id = "VAR_0-191-0_L103";
      :Grib2_Parameter = 0, 191, 0; // int
      :Grib2_Parameter_Discipline = "Meteorological products";
      :Grib2_Parameter_Category = "Miscellaneous";
      :Grib2_Level_Type = 103; // int
      :Grib2_Level_Desc = "Specified height level above ground";
      :Grib2_Generating_Process_Type = "Forecast";
      :Grib2_Statistical_Process_Type = "UnknownStatType--1";

    float VAR0-2-194_FROM_59-0--1_height_above_ground_layer(time2=49, height_above_ground_layer1=1, y=1059, x=1799);
      :long_name = "Unknown Parameter 0-2-194 @ Specified height level above ground layer";
      :units = "";
      :missing_value = NaNf; // float
      :grid_mapping = "LambertConformal_Projection";
      :coordinates = "reftime time2 height_above_ground_layer1 y x ";
      :Grib_Variable_Id = "VAR_0-2-194_L103_layer";
      :Grib2_Parameter = 0, 2, 194; // int
      :Grib2_Parameter_Discipline = "Meteorological products";
      :Grib2_Parameter_Category = "Momentum";
      :Grib2_Level_Type = 103; // int
      :Grib2_Level_Desc = "Specified height level above ground";
      :Grib2_Generating_Process_Type = "Forecast";
      :Grib2_Statistical_Process_Type = "UnknownStatType--1";

    float VAR0-2-195_FROM_59-0--1_height_above_ground_layer(time2=49, height_above_ground_layer1=1, y=1059, x=1799);
      :long_name = "Unknown Parameter 0-2-195 @ Specified height level above ground layer";
      :units = "";
      :missing_value = NaNf; // float
      :grid_mapping = "LambertConformal_Projection";
      :coordinates = "reftime time2 height_above_ground_layer1 y x ";
      :Grib_Variable_Id = "VAR_0-2-195_L103_layer";
      :Grib2_Parameter = 0, 2, 195; // int
      :Grib2_Parameter_Discipline = "Meteorological products";
      :Grib2_Parameter_Category = "Momentum";
      :Grib2_Level_Type = 103; // int
      :Grib2_Level_Desc = "Specified height level above ground";
      :Grib2_Generating_Process_Type = "Forecast";
      :Grib2_Statistical_Process_Type = "UnknownStatType--1";

    float VAR0-3-196_FROM_59-0--1_surface(time2=49, y=1059, x=1799);
      :long_name = "Unknown Parameter 0-3-196 @ Ground or water surface";
      :units = "";
      :missing_value = NaNf; // float
      :grid_mapping = "LambertConformal_Projection";
      :coordinates = "reftime time2 y x ";
      :Grib_Variable_Id = "VAR_0-3-196_L1";
      :Grib2_Parameter = 0, 3, 196; // int
      :Grib2_Parameter_Discipline = "Meteorological products";
      :Grib2_Parameter_Category = "Mass";
      :Grib2_Level_Type = 1; // int
      :Grib2_Level_Desc = "Ground or water surface";
      :Grib2_Generating_Process_Type = "Forecast";
      :Grib2_Statistical_Process_Type = "UnknownStatType--1";

    float VAR0-7-192_FROM_59-0--1_isobaric_layer(time2=49, isobaric_layer=1, y=1059, x=1799);
      :long_name = "Unknown Parameter 0-7-192 @ Isobaric surface layer";
      :units = "";
      :missing_value = NaNf; // float
      :grid_mapping = "LambertConformal_Projection";
      :coordinates = "reftime time2 isobaric_layer y x ";
      :Grib_Variable_Id = "VAR_0-7-192_L100_layer";
      :Grib2_Parameter = 0, 7, 192; // int
      :Grib2_Parameter_Discipline = "Meteorological products";
      :Grib2_Parameter_Category = "Thermodynamic stability indices";
      :Grib2_Level_Type = 100; // int
      :Grib2_Level_Desc = "Isobaric surface";
      :Grib2_Generating_Process_Type = "Forecast";
      :Grib2_Statistical_Process_Type = "UnknownStatType--1";

    float VAR1-0-1_FROM_59-0--1_surface_Mixed_intervals_Accumulation(time1=100, y=1059, x=1799);
      :long_name = "Unknown Parameter 1-0-1 (Mixed_intervals Accumulation) @ Ground or water surface";
      :units = "";
      :missing_value = NaNf; // float
      :grid_mapping = "LambertConformal_Projection";
      :coordinates = "reftime time1 y x ";
      :Grib_Statistical_Interval_Type = "Accumulation";
      :Grib_Variable_Id = "VAR_1-0-1_L1_Imixed_S1";
      :Grib2_Parameter = 1, 0, 1; // int
      :Grib2_Parameter_Discipline = "Hydrological products";
      :Grib2_Parameter_Category = "Hydrology basic products";
      :Grib2_Level_Type = 1; // int
      :Grib2_Level_Desc = "Ground or water surface";
      :Grib2_Generating_Process_Type = "Forecast";
      :Grib2_Statistical_Process_Type = "Accumulation";

    float VAR10-0-17_FROM_59-0--1_surface(time2=49, y=1059, x=1799);
      :long_name = "Unknown Parameter 10-0-17 @ Ground or water surface";
      :units = "";
      :missing_value = NaNf; // float
      :grid_mapping = "LambertConformal_Projection";
      :coordinates = "reftime time2 y x ";
      :Grib_Variable_Id = "VAR_10-0-17_L1";
      :Grib2_Parameter = 10, 0, 17; // int
      :Grib2_Parameter_Discipline = "Oceanographic products";
      :Grib2_Parameter_Category = "Waves";
      :Grib2_Level_Type = 1; // int
      :Grib2_Level_Desc = "Ground or water surface";
      :Grib2_Generating_Process_Type = "Forecast";
      :Grib2_Statistical_Process_Type = "UnknownStatType--1";

    float VAR_0_16_201_P0_L10_GLC0_entire_atmosphere(time9=118, y=1059, x=1799);
      :long_name = "VAR_0_16_201_P0_L10_GLC0 @ Entire atmosphere";
      :units = "kg/m2";
      :description = "Hydrometeor-Based Vertically-Integrated Liquid Water";
      :missing_value = NaNf; // float
      :grid_mapping = "LambertConformal_Projection";
      :coordinates = "reftime time9 y x ";
      :Grib_Variable_Id = "VAR_0-16-201_L10";
      :Grib2_Parameter = 0, 16, 201; // int
      :Grib2_Parameter_Discipline = "Meteorological products";
      :Grib2_Parameter_Category = "Forecast radar imagery";
      :Grib2_Parameter_Name = "VAR_0_16_201_P0_L10_GLC0";
      :Grib2_Level_Type = 10; // int
      :Grib2_Level_Desc = "Entire atmosphere";
      :Grib2_Generating_Process_Type = "Forecast";
      :Grib2_Statistical_Process_Type = "UnknownStatType--1";

    float VAR_0_17_1_P0_L103_GLC0_height_above_ground(time2=49, height_above_ground4=2, y=1059, x=1799);
      :long_name = "VAR_0_17_1_P0_L103_GLC0 @ Specified height level above ground";
      :units = "flash/km2/5min";
      :description = "Lightning threat 2 (vert integrated froz hydrometeors)";
      :missing_value = NaNf; // float
      :grid_mapping = "LambertConformal_Projection";
      :coordinates = "reftime time2 height_above_ground4 y x ";
      :Grib_Variable_Id = "VAR_0-17-1_L103";
      :Grib2_Parameter = 0, 17, 1; // int
      :Grib2_Parameter_Discipline = "Meteorological products";
      :Grib2_Parameter_Category = "Electrodynamics";
      :Grib2_Parameter_Name = "VAR_0_17_1_P0_L103_GLC0";
      :Grib2_Level_Type = 103; // int
      :Grib2_Level_Desc = "Specified height level above ground";
      :Grib2_Generating_Process_Type = "Forecast";
      :Grib2_Statistical_Process_Type = "UnknownStatType--1";

    float VAR_0_7_200_P8_2L103_GLC0_min1h_height_above_ground_layer_Mixed_intervals_Minimum(time3=49, height_above_ground_layer5=4, y=1059, x=1799);
      :long_name = "VAR_0_7_200_P8_2L103_GLC0_min1h (Mixed_intervals Minimum) @ Specified height level above ground layer";
      :units = "m2/s2";
      :description = "Hourly Minimum Updraft Helicity";
      :missing_value = NaNf; // float
      :grid_mapping = "LambertConformal_Projection";
      :coordinates = "reftime time3 height_above_ground_layer5 y x ";
      :Grib_Statistical_Interval_Type = "Minimum";
      :Grib_Variable_Id = "VAR_0-7-200_L103_layer_Imixed_S3";
      :Grib2_Parameter = 0, 7, 200; // int
      :Grib2_Parameter_Discipline = "Meteorological products";
      :Grib2_Parameter_Category = "Thermodynamic stability indices";
      :Grib2_Parameter_Name = "VAR_0_7_200_P8_2L103_GLC0_min1h";
      :Grib2_Level_Type = 103; // int
      :Grib2_Level_Desc = "Specified height level above ground";
      :Grib2_Generating_Process_Type = "Forecast";
      :Grib2_Statistical_Process_Type = "Minimum";
JohnLCaron commented 3 years ago

See resources/resources/grib2/noaa_gsd/readme.txt

JohnLCaron commented 3 years ago

DataViewer "Detail Info" for /media/snake/0B681ADF0B681ADF/thredds-test-data/local/thredds-test-data/cdmUnitTest/tds_index/NOAA_GSD/HRRR/CONUS_3km/surface/HRRR_CONUS_3km_surface_202011230000.grib2.ncx4

GribTable Grib2Tables{ class=ucar.nc2.grib.grib2.table.FslHrrrLocalTables, config=Grib2TableConfig{name='FSL HRRR', type=gsd, id=Grib2TablesId{center=59, subCenter=0, masterVersion=2, localVersion=1, genProcessId=-1}, path='resources/grib2/noaa_gsd/Fsl-hrrr4.csv'}}