metpy 抱怨文件是无效数据

metpy complains file is invalid data

我正在尝试使用示例脚本 found here to plot a nexrad level 2 file from here 但我收到无效数据错误。

Traceback (most recent call last):
   File "F:\z0sh\py\NEXRAD_Level_2_File.py", line 28, in <module>
    f = Level2File( filename )
  File "F:\z0bin\python\py38\lib\site-packages\metpy\io\nexrad.py", line 177, in __init__
    self._buffer = IOBuffer.fromfile(fobj)
  File "F:\z0bin\python\py38\lib\site-packages\metpy\io\_tools.py", line 179, in fromfile
    return cls(fobj.read())
  File "bz2.py", line 182, in read
  File "_compression.py", line 103, in read
OSError: Invalid data stream

所以问题在于,虽然来自该站点的文件具有 .bz2 扩展名,但它们不是有效的 bzip2-ed 文件。这是个问题,因为基于扩展名,MetPy 假定它应该将它传递给 Python 的 BZ2File 以打开文件。 MetPy 确实应该 能够从中恢复(只需打开原始文件),但不能——我已经打开 issue 来解决这个问题。

目前,解决方法是重命名文件并删除 .bz2 扩展名。所以这有效:

f = Level2File('KIWX_20200322_164108')