While reading data in pygrib GRIB2

I am having a problem with a python script that loads the latest weather data from a weather model (GFS) in grib2 format. It worked, but now it is no longer there (i.e. with the latest files to upload to the GFS server). Trying to access data, I get a segmentation error, and I don’t even know where to start. The following are two examples (working and non-working). I am running linux mint cinnamon. I have python-grib and python3-grib installed (version: 1.9.8-1build2, through the program manager).

Any suggestions would be highly appreciated.

Ps: An example of a file that gives me a segmenation error is here: http://www.ftp.ncep.noaa.gov/data/nccf/com/gfs/prod/gfs.2015013000/ filename: gfs.t00z.master. grbf003.10m.uv.grib2

Older files are not stored on this server, I think. For example, here you can find an example: http://grib.virtual-loup-de-mer.org/archives/2014/0130/ filename: gfs.t00z.master.grbf03.10m.uv.grib2

Pps: apologies for so long. I installed pygrib version 2.0, starting with 1.98, and now it works. Arch, it took me a long time to try this (and actually install it correctly). But it is so. In any case, a big "merci" to everyone for all the answers, laetitia

/usr/bin/python3.4 :

 Python 3.4.0 (default, Apr 11 2014, 13:05:11) [GCC 4.8.2] on linux Type "help", "copyright", "credits" or "license" for more information. 

Job script:

 import pygrib grbs = pygrib.open('winddata1.grib2') for grb in grbs: ... grb ... 1:10 metre U wind component:ms**-1 (instant):regular_ll:heightAboveGround:level 10 m:fcst time 0 hrs:from 201411041200 2:10 metre V wind component:ms**-1 (instant):regular_ll:heightAboveGround:level 10 m:fcst time 0 hrs:from 201411041200 grb = grbs.message(1) wind = grb.data(lat1=20,lat2=70,lon1=220,lon2=320) quit() 

/usr/bin/python3.4 :

 Python 3.4.0 (default, Apr 11 2014, 13:05:11) [GCC 4.8.2] on linux Type "help", "copyright", "credits" or "license" for more information. 

Failure script:

 import pygrib grbs = pygrib.open('winddata2.grib2') for grb in grbs: ... grb ... 1:10 metre U wind component:ms**-1 (instant):regular_ll:heightAboveGround:level 10 m:fcst time 0 hrs:from 201501220600 2:10 metre V wind component:ms**-1 (instant):regular_ll:heightAboveGround:level 10 m:fcst time 0 hrs:from 201501220600 grb = grbs.message(1) wind = grb.data(lat1=20,lat2=70,lon1=220,lon2=320) 

Error:

 Segmentation fault 

Edit (hope this makes sense)

running (like script testing.py) gives me:

gdb -ex r --args /usr/bin/python3.4 testing.py

 GNU gdb (Ubuntu 7.7-0ubuntu3) 7.7 Copyright (C) 2014 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from /usr/bin/python3.4...(no debugging symbols found)...done. Starting program: /usr/bin/python3.4 testing.py [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". 1:10 metre U wind component:ms**-1 (instant):regular_ll:heightAboveGround:level 10 m:fcst time 0 hrs:from 201501220600 2:10 metre V wind component:ms**-1 (instant):regular_ll:heightAboveGround:level 10 m:fcst time 0 hrs:from 201501220600 Program received signal SIGSEGV, Segmentation fault. 0x000000000053b684 in PyLong_AsVoidPtr () (gdb) bt #0 0x000000000053b684 in PyLong_AsVoidPtr () #1 0x00007ffff5968da7 in ?? () from /usr/lib/python3/dist-packages/numpy/core/multiarray.cpython-34m-x86_64-linux-gnu.so #2 0x0000000000533cd2 in PyObject_AsReadBuffer () #3 0x00007ffff21c9f00 in ?? () from /usr/lib/python3/dist-packages/g2clib.cpython-34m-x86_64-linux-gnu.so #4 0x000000000057bf33 in PyEval_EvalFrameEx () #5 0x000000000057d3d3 in PyEval_EvalCodeEx () #6 0x000000000057df80 in ?? () #7 0x000000000043810a in PyObject_Call () #8 0x00000000004d3745 in ?? () #9 0x000000000043810a in PyObject_Call () #10 0x00007ffff677669c in ?? () from /usr/lib/python3/dist-packages/pygrib.cpython-34m-x86_64-linux-gnu.so #11 0x000000000043810a in PyObject_Call () #12 0x00007ffff675788a in ?? () from /usr/lib/python3/dist-packages/pygrib.cpython-34m-x86_64-linux-gnu.so #13 0x00007ffff6762ece in ?? () from /usr/lib/python3/dist-packages/pygrib.cpython-34m-x86_64-linux-gnu.so #14 0x000000000057bf33 in PyEval_EvalFrameEx () #15 0x000000000057d3d3 in PyEval_EvalCodeEx () #16 0x000000000060ba83 in PyRun_FileExFlags () #17 0x000000000060bc85 in PyRun_SimpleFileExFlags () #18 0x000000000060d3ac in Py_Main () #19 0x000000000041ec0d in main () 
+5
source share
1 answer

What version of pygrib library are you using? The http://pygrib.googlecode.com/svn/trunk/Changelog release notes describe several cases in which a new version was released to solve a problem that led to a segfault error. I would lower the very last and see if there is still an error.

+2
source

Source: https://habr.com/ru/post/1211741/


All Articles