sellonlatbox loses ensemble members in GRIB1 subsetting operation
Added by Chris Bartolomei over 6 years ago
Good evening, I was hoping I could get some assistance. I seem to have a similar problem to this post: (https://code.mpimet.mpg.de/boards/1/topics/1171) ... I have a GRIB file from ECMWF (runoff forecast). Each GRIB file is one time period and in it are the runoff forecasts for the 51 low-res ensemble members. I am trying to drop the southern hemisphere from the dataset and have tried using "cdo -sellonlatbox,-180.0,180.0,0.0,75.0 A1E05210000052312001.grb reduced.grb" ... the command runs fine but when I view the resultant GRIB file, there is only one time period and the information about the 51 ensemble members is gone. The physical file size is about half the original file size so i believe it is spatially subsetted correctly, just the records' details got messed up - the variable "ens" got wiped-out. Here's the key info:
$ cdo -V Climate Data Operators version 1.9.5 (http://mpimet.mpg.de/cdo) System: x86_64-pc-linux-gnu CXX Compiler: g++ -std=gnu++11 -g -O2 -fopenmp CXX version : g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28) C Compiler: gcc -std=gnu99 -g -O2 -fopenmp C version : gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28) F77 Compiler: gfortran -g -O2 F77 version : GNU Fortran (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28) Features: 7GB 4threads C++11 Fortran DATA PTHREADS OpenMP3 NC4/HDF5 OPeNDAP SSE2 Libraries: Filetypes: srv ext ieg grb1 nc1 nc2 nc4 nc4c CDI library version : 1.9.5 CGRIBEX library version : 1.9.1 NetCDF library version : 4.3.3.1 of Dec 10 2015 16:44:18 $ HDF5 library version : 1.8.12 EXSE library version : 1.4.0 FILE library version : 1.8.3
I noticed that the above mentioned thread had a problem with CGRIBEX but I have it installed...
Here's the original GRIB file info (using Panoply)
netcdf file:/H:/HYDRO/apps/GRIB/A1E05210000052312001 { dimensions: lon = 1800; lat = 901; time = 1; ens = 51; variables: int LatLon_Projection; :grid_mapping_name = "latitude_longitude"; :earth_radius = 6367470.0; // double :_CoordinateTransformType = "Projection"; :_CoordinateAxisTypes = "GeoX GeoY"; float Runoff_surface(time=1, ens=51, lat=901, lon=1800); :long_name = "Runoff @ Ground or water surface"; :units = "m"; :missing_value = NaNf; // float :grid_mapping = "LatLon_Projection"; :coordinates = "reftime time ens lat lon "; :Grib_Variable_Id = "VAR_98-0-128-205_L1"; :Grib1_Center = 98; // int :Grib1_Subcenter = 0; // int :Grib1_TableVersion = 128; // int :Grib1_Parameter = 205; // int :Grib1_Parameter_Name = "ro"; :Grib1_Level_Type = 1; // int :Grib1_Level_Desc = "Ground or water surface"; float lat(lat=901); :units = "degrees_north"; :_CoordinateAxisType = "Lat"; float lon(lon=1800); :units = "degrees_east"; :_CoordinateAxisType = "Lon"; double reftime; :units = "Hour since 2018-05-21T00:00:00Z"; :standard_name = "forecast_reference_time"; :long_name = "GRIB reference time"; :calendar = "proleptic_gregorian"; :_CoordinateAxisType = "RunTime"; double time(time=1); :units = "Hour since 2018-05-21T00:00:00Z"; :standard_name = "time"; :long_name = "GRIB forecast or observation time"; :calendar = "proleptic_gregorian"; :_CoordinateAxisType = "Time"; int ens(ens=51); :_CoordinateAxisType = "Ensemble"; // global attributes: :Originating_or_generating_Center = "European Centre for Medium Range Weather Forecasts (ECMWF) (RSMC)"; :Originating_or_generating_Subcenter = "0"; :GRIB_table_version = "0,128"; :file_format = "GRIB-1"; :Conventions = "CF-1.6"; :history = "Read using CDM IOSP GribCollection v3"; :featureType = "GRID"; :_CoordSysBuilder = "ucar.nc2.dataset.conv.CF1Convention";
and the resultant file's info:
netcdf file:/H:/HYDRO/apps/GRIB/reduced.grb { dimensions: lon = 1800; lat = 376; time = 1; variables: int LatLon_Projection; :grid_mapping_name = "latitude_longitude"; :earth_radius = 6367470.0; // double :_CoordinateTransformType = "Projection"; :_CoordinateAxisTypes = "GeoX GeoY"; float Runoff_surface(time=1, lat=376, lon=1800); :long_name = "Runoff @ Ground or water surface"; :units = "m"; :missing_value = NaNf; // float :grid_mapping = "LatLon_Projection"; :coordinates = "reftime time lat lon "; :Grib_Variable_Id = "VAR_98-0-128-205_L1"; :Grib1_Center = 98; // int :Grib1_Subcenter = 0; // int :Grib1_TableVersion = 128; // int :Grib1_Parameter = 205; // int :Grib1_Parameter_Name = "ro"; :Grib1_Level_Type = 1; // int :Grib1_Level_Desc = "Ground or water surface"; float lat(lat=376); :units = "degrees_north"; :_CoordinateAxisType = "Lat"; float lon(lon=1800); :units = "degrees_east"; :_CoordinateAxisType = "Lon"; double reftime; :units = "Hour since 2018-05-21T00:00:00Z"; :standard_name = "forecast_reference_time"; :long_name = "GRIB reference time"; :calendar = "proleptic_gregorian"; :_CoordinateAxisType = "RunTime"; double time(time=1); :units = "Hour since 2018-05-21T00:00:00Z"; :standard_name = "time"; :long_name = "GRIB forecast or observation time"; :calendar = "proleptic_gregorian"; :_CoordinateAxisType = "Time"; // global attributes: :Originating_or_generating_Center = "European Centre for Medium Range Weather Forecasts (ECMWF) (RSMC)"; :Originating_or_generating_Subcenter = "0"; :GRIB_table_version = "0,128"; :file_format = "GRIB-1"; :Conventions = "CF-1.6"; :history = "Read using CDM IOSP GribCollection v3"; :featureType = "GRID"; :_CoordSysBuilder = "ucar.nc2.dataset.conv.CF1Convention"; }
I have installed both the anaconda version of CDO and downloaded/installed it from source in /usr with netCDF support added at the ./configure and I get the same results. :(
If I could get some helpful insight on how to keep my ensemble variable (ens) and associated records from disappearing that would be awesome!
Thank you
:)
Chris
A1E05210000053012001.grb.gz (13.5 MB) A1E05210000053012001.grb.gz | Original GRIB runoff forecast (ECMWF), 51 ensemble members | ||
reduced.grb.gz (9.17 MB) reduced.grb.gz | Spatial subsetted file, only one apparent record |
Replies (1)
RE: sellonlatbox loses ensemble members in GRIB1 subsetting operation - Added by Uwe Schulzweida over 6 years ago
Support for ensemble members is a local extension to the GRIB1 standard from ECMWF. CDO doesn't support local GRIB1 extensions, sorry.