@darrenleeweber has reported on #2 a problem that deserves it's own issue:
Thanks, also bumped into this while trying to read a GFS grib2 file, e.g.
import cfgrib
ds = cfgrib.Dataset.frompath('gfs_4_20110807_0000_000.grb2')
# snipped traceback
~/anaconda3/lib/python3.6/site-packages/cfgrib/dataset.py in enforce_unique_attributes(index, attributes_keys)
113 values = index[key]
114 if len(values) > 1:
--> 115 raise ValueError("multiple values for unique attribute %r: %r" % (key, values))
116 if values and values[0] not in ('undef', 'unknown'):
117 attributes['GRIB_' + key] = values[0]
ValueError: multiple values for unique attribute 'typeOfLevel': ['isobaricInhPa', 'tropopause', 'maxWind', 'isothermZero', 'unknown', 'potentialVorticity']
The work around seems to work, but hits another snag for this particular data example, i.e.
ds = cfgrib.Dataset.frompath('gfs_4_20110807_0000_000.grb2', filter_by_keys={'typeOfLevel': 'isobaricInhPa'})
# snipped traceback
~/anaconda3/lib/python3.6/site-packages/cfgrib/dataset.py in build_dataset_components(stream, encode_parameter, encode_time, encode_vertical, encode_geography, filter_by_keys)
374 vars = collections.OrderedDict([(short_name, data_var)])
375 vars.update(coord_vars)
--> 376 dict_merge(dimensions, dims)
377 dict_merge(variables, vars)
378 attributes = enforce_unique_attributes(index, GLOBAL_ATTRIBUTES_KEYS)
~/anaconda3/lib/python3.6/site-packages/cfgrib/dataset.py in dict_merge(master, update)
353 else:
354 raise ValueError("key present and new value is different: "
--> 355 "key=%r value=%r new_value=%r" % (key, master[key], value))
356
357
ValueError: key present and new value is different: key='air_pressure' value=26 new_value=25
It's not easy to figure out if this is cfgrib or the data is not conforming.
@darrenleeweber has reported on #2 a problem that deserves it's own issue:
Thanks, also bumped into this while trying to read a GFS grib2 file, e.g.
The work around seems to work, but hits another snag for this particular data example, i.e.
It's not easy to figure out if this is cfgrib or the data is not conforming.