/usr/bin/grib_list is in python3-grib 2.0.1-1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #!/usr/bin/python3
import pygrib, sys
pygrib.tolerate_badgrib_on()
if len(sys.argv) < 2:
sys.stdout.write("'grib_list <grib_filename>' to get long listing\n")
sys.stdout.write("'grib_list <grib_filename> -s' to get short listing\n")
sys.stdout.write("'grib_list <grib_filename> -m' to get short listing plus data min/max\n")
sys.exit(1)
fname = sys.argv[1]
short = False
medium = False
if len(sys.argv) > 2:
if sys.argv[2] == '-s': short=True
if sys.argv[2] == '-m': medium=True
grbs = pygrib.open(fname)
if short:
for grb in grbs:
sys.stdout.write(repr(grb)+'\n')
elif medium:
for grb in grbs:
try:
grb.expand_grid(False); data = grb.values
sys.stdout.write(repr(grb)+':min/max=%g/%g'%(data.min(), data.max())+'\n')
except:
sys.stdout.write(repr(grb)+':min/max=NO DATA'+'\n')
else:
for grb in grbs:
sys.stdout.write('------message %d------\n' % grb.messagenumber)
for k in grb.keys():
if k.startswith('mars'): continue
if k in ['values','codedValues','packedValues','unpackedValues']: continue
if grb.is_missing(k) and k not in ['analDate','validDate']:
sys.stdout.write('%s = MISSING\n' % k)
else:
try:
v = getattr(grb,k)
sys.stdout.write('%s = %s\n'%(k,v))
except:
sys.stdout.write('%s = NOT FOUND\n'%k)
sys.stdout.write('packing = %s\n' % grb.packingType)
grbs.close()
|