如何计算小于特定数字的相干值?

时间:2016-06-22 12:15:05

标签: python

我需要处理CSV文件中的每小时天气数据,每列有8,760个值。例如,我需要绘制具有最长相干平静风速的直方图,这意味着小于3米/秒。 我已经创建了一个风速分布的直方图,但这个更难。所以我需要某种字符串来计算连续小时数小于3米/秒并将它们计算在一起并最终绘制。

我的想法是应用一个字符串,询问每个值“小于3?”,如果是,它需要创建一个新的平静并继续直到答案为否,然后完成平静等等。最后它应该有一个小时到大约的平静。 48小时。输出是按频率排序的这些平静的直方图。

1 个答案:

答案 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')