[ncl-talk] Core dump with ARPEGE Resolution 40 grib file

Dennis Shea shea at ucar.edu
Sat Jul 18 19:30:45 MDT 2015


The file has GRIB 'complex packing' which NCL doe not currently support.
See attached. Sorry.
---
'wgrib' (another tool) reads the header info but does not unpack the data.
---
A request (NCL-2249)  has been made to support GRIB complex packing.

--
Note: the file can be read with the ECMWF grib_api if this is available to you.

Regards

On Sat, Jul 18, 2015 at 12:05 PM, Nicolas GASNIER <ngprod41 at gmail.com> wrote:
> Hello NCL users,
>
> I'm trying to plot Meteo France's free resolution 40 ARPEGE grib files with
> NCL but get some trouble.
>
> The data resolution is 2.5deg and there is one file per variable every 24
> hours.
> I can get file information with ncl_filedump (see example output at the end
> of this mail).
>
> If I try to read the variable (eg PRMSL_GDS0_MSL) in the file, NCL crash
> with a core dump :
>
> begin
>     fin_pres = addfile("24_PRESSURE_REDUCED_TO_MSL_.gr","r")
>     prmsl = fin_pres->PRMSL_GDS0_MSL ; this line core dump
> end
>
> It crashes only when reading the gridded variable, I have no problem with
> coordinate variables (eg g0_lat_0).
>
> I tried with NCL 6.2.0 and the latest 6.3.0 with same issue. I'm working on
> ubuntu 14.04. Seems not a ressource problem, as I can work with much bigger
> files without having any issue.
>
> I joined an example file and very basic script.
> Maybe the file is corrupt in some way, or is there a bug in NCL ?
>
> Thank you for any advice.
>
> Dear regards
>
> Nicolas Gasnier
>
>
> Example output of ncl_filedump :
>
> Variable: f
> Type: file
> filename:    24_PRESSURE_REDUCED_TO_MSL_
> path:    24_PRESSURE_REDUCED_TO_MSL_.gr
>    file global attributes:
>    dimensions:
>       g0_lat_0 = 73
>       g0_lon_1 = 144
>    variables:
>       float PRMSL_GDS0_MSL ( g0_lat_0, g0_lon_1 )
>          center :    French Weather Service - Toulouse
>          long_name :    Pressure reduced to MSL
>          units :    Pa
>          _FillValue :    1e+20
>          level_indicator :    102
>          gds_grid_type :    0
>          parameter_table_version :    1
>          parameter_number :    2
>          forecast_time :    24
>          forecast_time_units :    hours
>          initial_time :    07/18/2015 (00:00)
>
>       float g0_lat_0 ( g0_lat_0 )
>          long_name :    latitude
>          GridType :    Cylindrical Equidistant Projection Grid
>          units :    degrees_north
>          Dj :    2.5
>          Di :    2.5
>          Lo2 :    357.5
>          La2 :    -90
>          Lo1 :     0
>          La1 :    90
>
>       float g0_lon_1 ( g0_lon_1 )
>          long_name :    longitude
>          GridType :    Cylindrical Equidistant Projection Grid
>          units :    degrees_east
>          Dj :    2.5
>          Di :    2.5
>          Lo2 :    357.5
>          La2 :    -90
>          Lo1 :     0
>          La1 :    90
>
>
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at ucar.edu
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
-------------- next part --------------
***** FILE: 24_PRESSURE_REDUCED_TO_MSL_.gr 
#==============   MESSAGE 1 ( length=7300 )                ==============
GRIB {
  editionNumber = 1;
  table2Version = 1;
  # French Weather Service - Toulouse (grib1/0.table)  
  centre = 85;
  generatingProcessIdentifier = 211;
  # MSL Mean sea level pressure Pa (grib1/2.0.1.table)  
  indicatorOfParameter = 2;
  # Mean sea level 0 0 (grib1/3.table)  
  indicatorOfTypeOfLevel = 102;
  level = 0;
  # Forecast product valid at reference time + P1  (P1>0)  (grib1/5.table)  
  timeRangeIndicator = 0;
  # Unknown code table entry ()  
  subCentre = 0;
  paramId = 151;
  #-READ ONLY- units = Pa;
  #-READ ONLY- nameECMF = Mean sea level pressure;
  #-READ ONLY- name = Mean sea level pressure;
  decimalScaleFactor = 0;
  dataDate = 20150718;
  dataTime = 0;
  # Hour (stepUnits.table)  
  stepUnits = 1;
  stepRange = 24;
  startStep = 24;
  endStep = 24;
  #-READ ONLY- marsParam = 2.1;
  shortName = msl;
  GDSPresent = 1;
  bitmapPresent = 0;
  numberOfVerticalCoordinateValues = 0;
  Ni = 144;
  Nj = 73;
  latitudeOfFirstGridPointInDegrees = 90;
  longitudeOfFirstGridPointInDegrees = 0;
  earthIsOblate = 0;
  uvRelativeToGrid = 0;
  latitudeOfLastGridPointInDegrees = -90;
  longitudeOfLastGridPointInDegrees = 357.5;
  iScansNegatively = 0;
  jScansPositively = 0;
  jPointsAreConsecutive = 0;
  #-READ ONLY- alternativeRowScanning = 0;
  jDirectionIncrementInDegrees = 2.5;
  iDirectionIncrementInDegrees = 2.5;
  #-READ ONLY- numberOfDataPoints = 10512;
  #-READ ONLY- numberOfValues = 10512;
  missingValue = 9999;
  #-READ ONLY- binaryScaleFactor = 4;
  #-READ ONLY- referenceValue = 94808.9;
  sphericalHarmonics = 0;
  complexPacking = 1;
  integerPointValues = 0;
  additionalFlagPresent = 1;
  widthOfFirstOrderValues = 8;
  matrixOfValues = 0;
  secondaryBitmapPresent = 0;
  secondOrderOfDifferentWidth = 1;
  generalExtended2ordr = 1;
  boustrophedonicOrdering = 1;
  twoOrdersOfSPD = 1;
  plusOneinOrdersOfSPD = 0;
  packingType = grid_second_order;
  N2 = 1101;
  numberOfSecondOrderPackedValues = 10510;
  widthOfWidths = 4;
  widthOfLengths = 6;
  NL = 269;
  values(10512) =  {
  1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 
  1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 
  1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 
  1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 
  1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 
  1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 
  1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 
  1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 
  1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 
  1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 
  1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 
  1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 
  1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 
  1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 
  1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 
  1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 
  1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 
  1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 
  1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 
  1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05, 1.0213687500e+05
  ... 10412 more values
  } 
  #-READ ONLY- maximum = 104089;
  #-READ ONLY- minimum = 94808.9;
  #-READ ONLY- average = 100895;
  #-READ ONLY- numberOfMissing = 0;
  #-READ ONLY- standardDeviation = 1447.17;
  #-READ ONLY- skewness = 3.87586e+13;
  #-READ ONLY- kurtosis = 2.03406e+17;
  #-READ ONLY- isConstant = 0;
  gridType = regular_ll;
  #-READ ONLY- getNumberOfValues = 10512;
}


More information about the ncl-talk mailing list