metpy жалуется на недопустимые данные - PullRequest
1 голос
/ 23 марта 2020

Я пытаюсь использовать пример сценария , найденный здесь , для построения файла nexrad уровня 2 отсюда , но я получаю ошибку недопустимых данных.

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

1 Ответ

1 голос
/ 23 марта 2020

Таким образом, проблема в том, что, хотя файлы с этого сайта имеют расширение .bz2, они не являются действительными файлами bzip2-ed. Это проблема, потому что в соответствии с расширением MetPy предполагает, что он должен передать его Python BZ2File, чтобы открыть файл. MetPy действительно должен быть в состоянии восстановиться после этого (просто открыв raw-файл), но не может - я открыл проблему , чтобы исправить это.

Пока что обходной путь - переименовать файл и удалить расширение .bz2. Так что это работает:

f = Level2File('KIWX_20200322_164108')
...