在处理日最高温度数据的时候,写了如下代码,想要输出2014-2019符合高温天的总天数,要得到一共发生了多少天,也要记录每个高温天发生期间的高温站点的比例,以及每个高温站点的温度,这里的高温天是指如果那一天温度大于35的站点数占总站点数的30%以上,那么那一天就是高温天。
我用c表示那天>35度站点的比例,a表示一共有多少高温天,但是最后得到a=6,c也只有6个值。
请问一下大家我是哪里写错了嘛
能拜托你把代码拷贝到 “代码块” 么?
data1 = Dataset(path1)
tmax1 = data1.variables['tmax'] # 温度
tmax1 = tmax1[:]
tmax1 = tmax1.data
year1 = data1.variables['year']
year1 = year1[:]
year1 = year1.data
lon1 = data1.variables['longitude'] # 经度
lon1 = lon1[:]
lon1 = lon1.data
lat1 = data1.variables['latitude'] # 纬度
lat1 = lat1[:]
lat1 = lat1.data
date1 = data1.variables['date']
date1 = date1[:]
date1 = date1.data
lat1_index = np.where((lat1 >= 10) & (lat1 <= 35))[0]
lon1_index = np.where((lon1 >= 105) & (lon1 <= 125))[0]
lon1_lat1_index = lon1_index[np.in1d(lon1_index, lat1_index)]
date1_index = np.where((date1 >= 122) & (date1 <= 305))[0]
tmax_t = tmax1[date1_index, :, :][:, lon1_lat1_index, :]
d_num, l_num, year_num = tmax_t.shape
a=0
for t_i in range(year_num):
tmax_year = tmax_t[:, :, t_i]
tmax_index = np.where(tmax_year > 35)
tmax_35 = tmax_year[tmax_index[0], tmax_index[1]]
ld_num = tmax_35.shape[0] # 大于35°的站点数
c=ld_num / (l_num * d_num)
if ld_num / (l_num * d_num) >= 0.3:
print(c)
a+=1
save_lat = lat1[lon1_lat1_index]
save_lon = lon1[lon1_lat1_index]
save_tmax = tmax_t[:, :, t_i]
save_date = date1[date1_index]
print("{}-{}-{}-{}".format(save_lat,save_lon, save_date, save_tmax))
print(a)