[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Fwd: bug in joinExisting problem with these grib files



On 2/24/2011 8:06 AM, Rich Signell wrote:
John,
This message didn't go through to the support list.  Was it because of
the attached zip?
Thanks
Rich

dunno, i dont see a record of it in mailmain


---------- Forwarded message ----------
From: Rich Signell<address@hidden>
Date: Wed, Feb 23, 2011 at 9:03 AM
Subject: bug in joinExisting problem with these grib files
To: address@hidden
Cc: sdalyander<address@hidden>


NJ folks,

There appears to be bug with  aggregation=joinExisting   using the
attached grib files, using the latest netcdf-java (build 2011-2-18).

We have two grib2 files which each have 1 value for "time1" and 2
values for "time".

  If we join these two files along the time1 dimension, we get 4 values
for time1 instead of 2.   The first two values of time1 are correct
times, so it's really just a question of getting rid of these last two
bogus values, I guess.

the problem is that there are two time dimensions, but joinExisting can only operate on one of the them.

if you change to fmrc:

<?xml version="1.0" encoding="UTF-8"?>
<netcdf xmlns="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2";>
<aggregation dimName="time1" type="forecastModelRunCollection">
<scan location="." regExp=".*nam_218_[0-9]{8}_[0-9]{4}_[0-9]{3}\.grb$"/>
</aggregation>
</netcdf>

things work correctly at the cost of an extra run dimension. can you use that?

netcdf fmrc:file:E:/work/signell/nam_agg9/.**/.*nam_218_[0-9]{8}_[0-9]{4}_[0-9]{3}\.grb$ {
 dimensions:
   y = 361;
   x = 351;
   height_above_ground = 1;
   height_above_ground1 = 1;
   bounds_dim = 2;
   run = 1;
   time = 2;
   time1 = 4;
 variables:
   float Total_precipitation(run=1, time1=4, y=361, x=351);
     :units = "kg/m^2";
:long_name = "Total_precipitation_Accumulation (Accumulation for Mixed Intervals) @ surface";
     :cell_methods = "time: sum";
     :missing_value = -9999.0f; // float
     :grid_mapping = "Lambert_Conformal";
     :GRIB_param_name = "Total_precipitation";
     :GRIB_param_short_name = "APCP";
     :GRIB_center_id = 7; // int
     :GRIB_table_id = 2; // int
     :GRIB_param_number = 61; // int
     :GRIB_param_id = 1, 7, 2, 61; // int
     :GRIB_product_definition_type = "Initialized analysis product";
     :GRIB_level_type = 1; // int
     :GRIB_VectorComponentFlag = "gridRelative";
     :coordinates = "run time1 y x ";
   float Total_cloud_cover(run=1, time=2, y=361, x=351);
     :units = "%";
     :long_name = "Total_cloud_cover @ entire_atmosphere";
     :missing_value = -9999.0f; // float
     :grid_mapping = "Lambert_Conformal";
     :GRIB_param_name = "Total_cloud_cover";
     :GRIB_param_short_name = "TCDC";
     :GRIB_center_id = 7; // int
     :GRIB_table_id = 2; // int
     :GRIB_param_number = 71; // int
     :GRIB_param_id = 1, 7, 2, 71; // int
     :GRIB_product_definition_type = "Initialized analysis product";
     :GRIB_level_type = 200; // int
     :GRIB_VectorComponentFlag = "gridRelative";
     :coordinates = "run time y x ";
   float Upward_long_wave_flux(run=1, time=2, y=361, x=351);
     :units = "W/m^2";
     :long_name = "Upward_long_wave_flux @ surface";
     :missing_value = -9999.0f; // float
     :grid_mapping = "Lambert_Conformal";
     :GRIB_param_name = "Upward_long_wave_flux";
     :GRIB_param_short_name = "ULWRF";
     :GRIB_center_id = 7; // int
     :GRIB_table_id = 2; // int
     :GRIB_param_number = 212; // int
     :GRIB_param_id = 1, 7, 2, 212; // int
     :GRIB_product_definition_type = "Initialized analysis product";
     :GRIB_level_type = 1; // int
     :GRIB_VectorComponentFlag = "gridRelative";
     :coordinates = "run time y x ";
   float Upward_short_wave_flux(run=1, time=2, y=361, x=351);
     :units = "W/m^2";
     :long_name = "Upward_short_wave_flux @ surface";
     :missing_value = -9999.0f; // float
     :grid_mapping = "Lambert_Conformal";
     :GRIB_param_name = "Upward_short_wave_flux";
     :GRIB_param_short_name = "USWRF";
     :GRIB_center_id = 7; // int
     :GRIB_table_id = 2; // int
     :GRIB_param_number = 211; // int
     :GRIB_param_id = 1, 7, 2, 211; // int
     :GRIB_product_definition_type = "Initialized analysis product";
     :GRIB_level_type = 1; // int
     :GRIB_VectorComponentFlag = "gridRelative";
     :coordinates = "run time y x ";
float Relative_humidity(run=1, time=2, height_above_ground1=1, y=361, x=351);
     :units = "%";
     :long_name = "Relative_humidity @ height_above_ground";
     :missing_value = -9999.0f; // float
     :grid_mapping = "Lambert_Conformal";
     :GRIB_param_name = "Relative_humidity";
     :GRIB_param_short_name = "RH";
     :GRIB_center_id = 7; // int
     :GRIB_table_id = 2; // int
     :GRIB_param_number = 52; // int
     :GRIB_param_id = 1, 7, 2, 52; // int
     :GRIB_product_definition_type = "Initialized analysis product";
     :GRIB_level_type = 105; // int
     :GRIB_VectorComponentFlag = "gridRelative";
     :coordinates = "run time height_above_ground1 y x ";
   float Pressure(run=1, time=2, y=361, x=351);
     :units = "Pa";
     :long_name = "Pressure @ surface";
     :missing_value = -9999.0f; // float
     :grid_mapping = "Lambert_Conformal";
     :GRIB_param_name = "Pressure";
     :GRIB_param_short_name = "PRES";
     :GRIB_center_id = 7; // int
     :GRIB_table_id = 2; // int
     :GRIB_param_number = 1; // int
     :GRIB_param_id = 1, 7, 2, 1; // int
     :GRIB_product_definition_type = "Initialized analysis product";
     :GRIB_level_type = 1; // int
     :GRIB_VectorComponentFlag = "gridRelative";
     :coordinates = "run time y x ";
   float v_wind(run=1, time=2, height_above_ground=1, y=361, x=351);
     :units = "m/s";
     :long_name = "v_wind @ height_above_ground";
     :missing_value = -9999.0f; // float
     :grid_mapping = "Lambert_Conformal";
     :GRIB_param_name = "v_wind";
     :GRIB_param_short_name = "VGRD";
     :GRIB_center_id = 7; // int
     :GRIB_table_id = 2; // int
     :GRIB_param_number = 34; // int
     :GRIB_param_id = 1, 7, 2, 34; // int
     :GRIB_product_definition_type = "Initialized analysis product";
     :GRIB_level_type = 105; // int
     :GRIB_VectorComponentFlag = "gridRelative";
     :coordinates = "run time height_above_ground y x ";
   float Temperature(run=1, time=2, height_above_ground1=1, y=361, x=351);
     :units = "K";
     :long_name = "Temperature @ height_above_ground";
     :missing_value = -9999.0f; // float
     :grid_mapping = "Lambert_Conformal";
     :GRIB_param_name = "Temperature";
     :GRIB_param_short_name = "TMP";
     :GRIB_center_id = 7; // int
     :GRIB_table_id = 2; // int
     :GRIB_param_number = 11; // int
     :GRIB_param_id = 1, 7, 2, 11; // int
     :GRIB_product_definition_type = "Initialized analysis product";
     :GRIB_level_type = 105; // int
     :GRIB_VectorComponentFlag = "gridRelative";
     :coordinates = "run time height_above_ground1 y x ";
   float Temperature_surface(run=1, time=2, y=361, x=351);
     :units = "K";
     :long_name = "Temperature @ surface";
     :missing_value = -9999.0f; // float
     :grid_mapping = "Lambert_Conformal";
     :GRIB_param_name = "Temperature";
     :GRIB_param_short_name = "TMP";
     :GRIB_center_id = 7; // int
     :GRIB_table_id = 2; // int
     :GRIB_param_number = 11; // int
     :GRIB_param_id = 1, 7, 2, 11; // int
     :GRIB_product_definition_type = "Initialized analysis product";
     :GRIB_level_type = 1; // int
     :GRIB_VectorComponentFlag = "gridRelative";
     :coordinates = "run time y x ";
   float Downward_long_wave_flux(run=1, time=2, y=361, x=351);
     :units = "W/m^2";
     :long_name = "Downward_long_wave_flux @ surface";
     :missing_value = -9999.0f; // float
     :grid_mapping = "Lambert_Conformal";
     :GRIB_param_name = "Downward_long_wave_flux";
     :GRIB_param_short_name = "DLWRF";
     :GRIB_center_id = 7; // int
     :GRIB_table_id = 2; // int
     :GRIB_param_number = 205; // int
     :GRIB_param_id = 1, 7, 2, 205; // int
     :GRIB_product_definition_type = "Initialized analysis product";
     :GRIB_level_type = 1; // int
     :GRIB_VectorComponentFlag = "gridRelative";
     :coordinates = "run time y x ";
   float Downward_short_wave_flux(run=1, time=2, y=361, x=351);
     :units = "W/m^2";
     :long_name = "Downward_short_wave_flux @ surface";
     :missing_value = -9999.0f; // float
     :grid_mapping = "Lambert_Conformal";
     :GRIB_param_name = "Downward_short_wave_flux";
     :GRIB_param_short_name = "DSWRF";
     :GRIB_center_id = 7; // int
     :GRIB_table_id = 2; // int
     :GRIB_param_number = 204; // int
     :GRIB_param_id = 1, 7, 2, 204; // int
     :GRIB_product_definition_type = "Initialized analysis product";
     :GRIB_level_type = 1; // int
     :GRIB_VectorComponentFlag = "gridRelative";
     :coordinates = "run time y x ";
   float u_wind(run=1, time=2, height_above_ground=1, y=361, x=351);
     :units = "m/s";
     :long_name = "u_wind @ height_above_ground";
     :missing_value = -9999.0f; // float
     :grid_mapping = "Lambert_Conformal";
     :GRIB_param_name = "u_wind";
     :GRIB_param_short_name = "UGRD";
     :GRIB_center_id = 7; // int
     :GRIB_table_id = 2; // int
     :GRIB_param_number = 33; // int
     :GRIB_param_id = 1, 7, 2, 33; // int
     :GRIB_product_definition_type = "Initialized analysis product";
     :GRIB_level_type = 105; // int
     :GRIB_VectorComponentFlag = "gridRelative";
     :coordinates = "run time height_above_ground y x ";
   char Lambert_Conformal;
     :long_name = "";
     :grid_mapping_name = "lambert_conformal_conic";
     :standard_parallel = 25.0; // double
     :longitude_of_central_meridian = -95.0; // double
     :latitude_of_projection_origin = 25.0; // double
     :earth_shape = "spherical";
     :earth_radius = 6367.47021484375; // double
     :GRIB_param_Dx = 12191.0; // double
     :GRIB_param_Dy = 12191.0; // double
     :GRIB_param_GDSkey = 1926172536; // int
     :GRIB_param_La1 = 17.213; // double
     :GRIB_param_Latin1 = 25.0; // double
     :GRIB_param_Latin2 = 25.0; // double
     :GRIB_param_Lo1 = -104.523; // double
     :GRIB_param_LoV = -95.0; // double
     :GRIB_param_NpProj = "true";
     :GRIB_param_Nx = 351; // int
     :GRIB_param_Ny = 361; // int
     :GRIB_param_ProjFlag = 0; // int
     :GRIB_param_ResCompFlag = 8; // int
     :GRIB_param_SpLat = 0.0; // double
     :GRIB_param_SpLon = 0.0; // double
     :GRIB_param_VectorComponentFlag = "gridRelative";
     :GRIB_param_Winds = "Relative";
     :GRIB_param_grid_name = "Lambert_Conformal";
     :GRIB_param_grid_radius_spherical_earth = 6367.47; // double
     :GRIB_param_grid_shape = "spherical";
     :GRIB_param_grid_shape_code = 0; // int
     :GRIB_param_grid_type = 3; // int
     :GRIB_param_grid_units = "m";
     :GRIB_param_scanning_mode = 64; // int
     :_CoordinateTransformType = "Projection";
     :_CoordinateAxisTypes = "GeoX GeoY";
   double time1_bounds(run=1, time1=4, bounds_dim=2);
     :long_name = "bounds for time1";
   double y(y=361);
     :units = "km";
     :long_name = "y coordinate of projection";
     :standard_name = "projection_y_coordinate";
     :grid_spacing = "12.191 km";
     :_CoordinateAxisType = "GeoY";
   double x(x=351);
     :units = "km";
     :long_name = "x coordinate of projection";
     :standard_name = "projection_x_coordinate";
     :grid_spacing = "12.191 km";
     :_CoordinateAxisType = "GeoX";
   double height_above_ground(height_above_ground=1);
     :units = "m";
     :long_name = "Specified height level above ground";
     :positive = "up";
     :GRIB_level_type = "105";
     :_CoordinateAxisType = "Height";
     :_CoordinateZisPositive = "up";
   double height_above_ground1(height_above_ground1=1);
     :units = "m";
     :long_name = "Specified height level above ground";
     :positive = "up";
     :GRIB_level_type = "105";
     :_CoordinateAxisType = "Height";
     :_CoordinateZisPositive = "up";
   double run(run=1);
     :long_name = "Run time for ForecastModelRunCollection";
     :standard_name = "forecast_reference_time";
     :units = "hours since 2010-09-19T00:00:00Z";
     :_CoordinateAxisType = "RunTime";
   double time(run=1, time=2);
     :long_name = "Forecast time for ForecastModelRunCollection";
     :standard_name = "time";
     :units = "hours since 2010-09-19T00:00:00Z";
     :missing_value = NaN; // double
     :_CoordinateAxisType = "Time";
   double time1(run=1, time1=4);
     :long_name = "Forecast time for ForecastModelRunCollection";
     :standard_name = "time";
     :units = "hours since 2010-09-19T00:00:00Z";
     :missing_value = NaN; // double
     :_CoordinateAxisType = "Time";
     :bounds = "time1_bounds";

 :Conventions = "CF-1.4, _Coordinates";
 :Originating_center = "US National Weather Service - NCEP(WMC) (7)";
 :Generating_Model = "MESO NAM Model";
 :Product_Type = "Forecast/Uninitialized Analysis/Image Product";
:title = "US National Weather Service - NCEP(WMC) MESO NAM Model Forecast/Uninitialized Analysis/Image Product";
 :institution = "Center US National Weather Service - NCEP(WMC) (7)";
 :source = "Forecast/Uninitialized Analysis/Image Product";
:history = "Direct read of GRIB-1 into NetCDF-Java 4 API ;\nFMRC 2D Dataset";
 :CF:feature_type = "GRID";
 :file_format = "GRIB-1";
:location = "Proto fmrc:file:E:/work/signell/nam_agg9/.**/.*nam_218_[0-9]{8}_[0-9]{4}_[0-9]{3}\\.grb$";
 :cdm_data_type = "GRID";
}