Я открыл файл netCDF с двумя переменными. Каждая переменная имеет 4 измерения: время, высота, широта и долгота.
Я использую скрипт, который зацикливается на каждом шаге широты (i) и долготы (j) и доставляет данные в формат с плавающей запятой и записывается в мой выходной файл, хотя я получаю эту ошибку:
utemp = float(uwind[i][i][j]) # data
TypeError: only length-1 arrays can be converted to Python scalars
Здесь я даю вам кодировку, которую я использую.
Прочитайте длину:
tstep = range(len(time))
lonstep = range(len(lon))
latstep = range(len(lat))
Установить переменные:
time = ncfile.variables['time']
lat = ncfile.variables['lat']
lon = ncfile.variables['lon']
uwind = ncfile.variables['10u']
Запишите в файл:
for t in tstep:
for i in latstep:
for j in lonstep:
utemp = float(uwind[t][i][j])
windfile.write('%.4f '%utemp)
Может ли кто-нибудь помочь мне преобразовать переменную в правильный формат, не получая ошибки?
Это изменение, которое я сделал, и оно, кажется, записывается в файл непосредственно перед остановкой:
for t in tstep:
windfile.write(header+'\n')
for hts in htstep:
for i in latstep:
for j in lonstep:
utemp = float(uwind[hts][t][i][j]) # data
windfile.write('%.4f '%utemp)
windfile.write('\n')
for hts in htstep:
for i in latstep:
for j in lonstep:
vtemp = float(vwind[hts][t][i][j])
windfile.write('%.4f '%vtemp)
windfile.write('\n')
windfile.close()
От этого я получаю
Traceback (most recent call last):
File "CFSR2SWAN.py", line 52, in <module>
utemp = float(uwind[hts][t][i][j]) # data
IndexError: index out of bounds
Буду признателен, если кто-нибудь заглянет
благодарю вас