如何使用 pygrib expand_reduce 功能?
how to use pygrib expand_reduce functionality?
我正在使用 pygrib 打开 GFS 数据,我希望数据为非结构化格式(不是默认选项)。简而言之,如何将 expand_reduce 设置为 False?
grbs = pygrib.open(filename)
print(grbs[1].expand_reduce) # this prints True (default)
在文档 (https://jswhit.github.io/pygrib/api.html) 中说:
@ivar expand_reduced: If True (default), reduced lat/lon and gaussian grids
will be expanded to regular grids when data is accessed via "values" key. If
False, data is kept on unstructured reduced grid, and is returned in a 1-d
array.
看了源码(https://searchcode.com/file/11567389/pygrib.pyx/),发现是私有属性,硬编码在_create_gribmessage方法中
625 cdef _create_gribmessage(grib_handle *gh, object messagenumber):
626 """factory function for creating gribmessage instances"""
627 cdef gribmessage grb = gribmessage.__new__(gribmessage)
628 grb.messagenumber = messagenumber
629 grb.expand_reduced = True ## HERE <---
630 grb._gh = grib_handle_clone(gh)
631 grb._all_keys = grb.keys()
632 grb._ro_keys = grb._read_only_keys()
633 grb._set_projparams() # set projection parameter dict.
634 return setdates(grb)
解决方法是调用expand_grid,这样会修改expand_reduced:
grbs[1].expand_grid(False)
print(grbs[1].expand_reduce) # this now prints False
我正在使用 pygrib 打开 GFS 数据,我希望数据为非结构化格式(不是默认选项)。简而言之,如何将 expand_reduce 设置为 False?
grbs = pygrib.open(filename)
print(grbs[1].expand_reduce) # this prints True (default)
在文档 (https://jswhit.github.io/pygrib/api.html) 中说:
@ivar expand_reduced: If True (default), reduced lat/lon and gaussian grids will be expanded to regular grids when data is accessed via "values" key. If False, data is kept on unstructured reduced grid, and is returned in a 1-d array.
看了源码(https://searchcode.com/file/11567389/pygrib.pyx/),发现是私有属性,硬编码在_create_gribmessage方法中
625 cdef _create_gribmessage(grib_handle *gh, object messagenumber):
626 """factory function for creating gribmessage instances"""
627 cdef gribmessage grb = gribmessage.__new__(gribmessage)
628 grb.messagenumber = messagenumber
629 grb.expand_reduced = True ## HERE <---
630 grb._gh = grib_handle_clone(gh)
631 grb._all_keys = grb.keys()
632 grb._ro_keys = grb._read_only_keys()
633 grb._set_projparams() # set projection parameter dict.
634 return setdates(grb)
解决方法是调用expand_grid,这样会修改expand_reduced:
grbs[1].expand_grid(False)
print(grbs[1].expand_reduce) # this now prints False