我需要处理CSV文件中的每小时天气数据,每列有8,760个值。例如,我需要绘制具有最长相干平静风速的直方图,这意味着小于3米/秒。 我已经创建了一个风速分布的直方图,但这个更难。所以我需要某种字符串来计算连续小时数小于3米/秒并将它们计算在一起并最终绘制。
我的想法是应用一个字符串,询问每个值“小于3?”,如果是,它需要创建一个新的平静并继续直到答案为否,然后完成平静等等。最后它应该有一个小时到大约的平静。 48小时。输出是按频率排序的这些平静的直方图。
答案 0 :(得分:0)
我没想到有人会为我编写代码,对不起,如果它看起来那样。我只是问了一个想法,但我想我几乎得到了它。 这是我到目前为止的代码,它应该为每个平静创建一个向量并将其放入字典中。它工作但每个键都由相同的向量填充,我不知道如何解决这个问题? (矢量本身很好,从=< 3开始计算,直到=> 3)
#read column v_wind
saved_column = df.v_wind
fig, ax = plt.subplots()
#collecting vectors in empty dictionary
# array range 100
vector_coll = {}
a = np.array(range(100))
#for loop create vector
#set calm to zero
#i = calm vectors
#b = empty array
calm = 0
i = -1
b = []
for t in range(0, 8760, 1):
if df.v_wind[t] <= 3:
if calm == 0:
b = []
b = np.append(b, [df.v_wind[t]])
calm = 1
else:
b = np.append(b, [df.v_wind[t]])
else:
calm = False
calm = 0
i = i + 1
for i in np.array(range(100)):
vector_coll[str(a[i])] = b
#print(vector_coll.keys())
#print(vector_coll['1'])
for i in vector_coll.keys():
if vector_coll[i] == []:
print('empty')
else:
print('full')