我试图使用for循环绘制最近30天的sst数据。我的代码将在第一个循环中运行正常,但在第二个循环中出现此错误:
Traceback (most recent call last):
File "sstt.py", line 20, in <module>
Temp = Temp[i,:,:]
IndexError: too many indices for array
我开始的指标并不重要,第二个循环总是给出这个错误。如果我在-29开始,那么-28失败。如果我从-28开始,-27失败等等。
代码:
import numpy as np
import math as m
import urllib2
from pydap.client import open_url
from pydap.proxy import ArrayProxy
data_url_mean = 'http://www.esrl.noaa.gov/psd/thredds/dodsC/Datasets/noaa.oisst.v2.highres/sst.day.mean.2015.v2.nc'
dataset1 = open_url(data_url_mean)
# Daily Mean
Temp = dataset1['sst']
timestep = [-29,-28,-27,-26,-25,-24,-23,-22,-21,-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1]
for i in timestep:
# Daily Mean
Temp = Temp[i,:,:]
Temp = Temp.array[:]
Temp = Temp * (9./5.) + 32.
Temp = Temp.squeeze()
print i
答案 0 :(得分:0)
您要将所有值分配给同一个变量。在第一次循环之后,Temp不再等于数据集,并且尝试执行操作,期望它成为数据集失败。
您需要为您为其指定值的变量提供一些新名称。