У меня есть сценарий, который использует пакет Py-ART для считывания данных бортового метеорологического радара и последующего контроля качества этих данных.Я отмечу, что я подозреваю , что это не проблема с этим пакетом, в противном случае я бы просто опубликовал проблему в этом репо ...
Запутанный аспект этой проблемы заключается в том, чтокод работает на моем компьютере без ошибок, как в Python 2.x, так и в 3.x, хотя он завершается ошибкой со следующей ошибкой на компьютере коллеги в Python 2.x:
TypeError: cannot concatenate 'str' and 'int' objects
Ошибка возникает при попытке выполнить последнюю строку этого блока кода:
az_raw = radar.azimuth['data'].data
roll = radar.roll['data'].data
azmth = az_raw + roll
azmth[azmth < 0] += 360
Некоторые возможные подсказки, которые я вывел из исследования проблемы:
На моем компьютере, где код работает правильно, переменные az_raw
и roll
считываются как массивы типа float32
, тогда как на компьютере моего коллеги эти переменные имеют тип Buffer
.После добавления содержимого roll
в az_raw
(поэлементно), azmth
остается массивом float32
на моем компьютере и становится массивом str
на другом компьютере.
Py-ART использует пакет netCDF4 для чтения данных из входных файлов netCDF - возможно, здесь есть проблема, связанная с машиной и / или версией?
Проблема сохраняется независимо от входного файла (т. Е. Мы пробовали несколько и из разных периодов / проектов сбора данных с одинаковыми результатами.
Итак, в конечном счете, мой вопрос сводится к тому, что может вызвать TypeError
, как это на одном компьютере, а не на другом, когда все остальное кажется одинаковым? Я полагаю, что может быть разница в версии зависимостиPy-ART, netCDF4 и т. Д.) Между двумя машинами, но мне не ясно, как это могло бы вызвать такую проблему. Кто-нибудь видел что-нибудь подобное раньше?