Моя работа сегодня - взять массив в Numpy и выгрузить его в чистый CDF-файл (.nc) с помощью Scipy. Scipy имеет специальный модуль для этого http://docs.scipy.org/doc/scipy-0.16.0/reference/generated/scipy.io.netcdf.netcdf_file.html, но примеров создания фактического файла netcdf мало.Создание файла netcdf со Scipy?
Вот что данные должны идти в файл:
- широтами (94)
- долгот (192)
- данные о температуре, соответствующей этой матрице, образованной выше
Я уже все 3 из тех, что были сохранены в Numpy, теперь мне нужно использовать Scipy (у меня также есть пакет python NETCDF4, но я не мог понять, используя это), чтобы поместить эти данные в .nc-файл.
Вот мой код до сих пор:
#testing code about difference
f = netcdf.netcdf_file('2m air temperature difference.nc', 'w')
f.history = 'describes the difference in 2m air temperature between the period (1992-2011) to (1961-1981)'
f.createDimension('lons', 192)
f.createDimension('lats', 94)
print 'lons.size', lons.size
print 'lats.size', lats.size
longi = f.createVariable('lons', 'i', 192)
lati = f.createVariable('lats', 'i', 94)
f.createDimension('diff', difference.size)
lons = lons[:]
lats = lats[:]
differ = difference[:]
f.close()
я получил от использования примера по умолчанию, который был предоставлен в SciPy документации, и я только заменил те части, которые были необходимы, чтобы сделать это для моих данных, все остальное такая же, как показано в этом примере.
Однако
Единственная проблема заключается в том, что по какой-то причине я получаю ошибку говорит "Type Error: 'int' object is not iterable"
. Однако приведенный пример использует в качестве типа данных i
и не содержит каких-либо других примеров того, что можно использовать в качестве типа данных в методе createVariable() ...?
Любая помощь приветствуется.
В какую строку входит 'TypeError'? Нам не нравится гадать. Является 'lons' вашим массивом' numpy'? Почему строка 'lons = longs [:]'? – hpaulj
Вы не могли понять, как использовать netcdf4? Потому что это кажется логичным выбором для использования, если вы хотите писать файлы netcdf, тем более, что вы, видимо, не можете использовать scipy для netcdf. – Evert
@Evert Итак, проблема, с которой я столкнулась с пакетом netcdf4, заключалась в том, что я получил бы ошибку RunTimeError: Permission Denied. Вот мой код для этой попытки: http://pastebin.com/Du0sTdGn –