def layer_relate(layer1, layer2): """ 两层均温相关度分析 :return: """ barn_name = '上河湾分库_1号罩棚' base2 = Base('127.0.0.2', 'root', '2333333', 'barn3', 3306) times = base2.get_times(barn_name) # 时间序列 layer1_times = base2.barn_times_layer(barn_name, layer=layer1) layer2_times = base2.barn_times_layer(barn_name, layer=layer2) means1 = [] means2 = [] for time in range(0, len(times)): layer1_tem = layer1_times[time, :, :] mean1 = np.mean(layer1_tem) means1.append(mean1) layer2_tem = layer2_times[time, :, :] mean2 = np.mean(layer2_tem) means2.append(mean2) pear = pearson(means1, means2) eucl = euclidean(means1, means2) print("\n{}{}层与{}层pearson相关系数:\n ".format(barn_name, layer1, layer2), pear) print("\n{}{}层与{}层euclidean系数: ".format(barn_name, layer1, layer2), eucl)
def draw_test(): """ 测试绘制时间序列温度散点图 :return: """ base2 = Base('127.0.0.2', 'root', '2333333', 'barn3', 3306) barn_name = '上河湾分库_1号罩棚' barn_name, time, temperature = base2.point_temperate(barn_name, 1, 1, 1) draw1(barn_name, time, temperature)
def barn_times_relate(): """ 测量点于周围点相关性分析 :return: """ barn_name = '上河湾分库_2号库' base2 = Base('127.0.0.2', 'root', '2333333', 'barn3', 3306) barn = base2.barn_times_temperate(barn_name) #print(barn) point = (2, 3, 2) print(point) relevance(barn, point)
def barn_times_slices_test(): """ 时间序列粮仓温度切片测试 barn[列, 行, 层] 行为列索引取值, 列是行索引取值, 层为层索引取值 :return: """ time = "2019_01_31_10_08_33" barn_name = '上河湾分库_1号罩棚' base2 = Base('127.0.0.2', 'root', '2333333', 'barn3', 3306) barn = base2.barn_times_temperate2(barn_name) print(type(barn), np.shape(barn)) print(barn) print("第一行 行x层: \n", barn[0, :, :]) print("第一列 列x层: \n", barn[:, 0, :]) print("第一层 列x行: \n", barn[:, :, 0])
def barn_slices_test(): """ 三维粮仓切片测试 (barn[层, 列, 行] 行为列索引取值, 列是行索引取值, 层为层索引取值 :return: """ time = "2019_01_31_10_08_33" barn_name = '上河湾分库_1号罩棚' base2 = Base('127.0.0.2', 'root', '2333333', 'barn3', 3306) barn = base2.barn_temperate(barn_name, time=time) print(type(barn)) print(barn) print("第一层14x6: \n", barn[0, :, :]) print("第一行3x6: \n", barn[:, 0, :]) print("第一列3x14: \n", barn[:, :, 0])
def barn_std(): """ 整仓某一测量时间标准差 :return: """ time = "2019_01_31_10_08_33" barn_name = '上河湾分库_1号罩棚' base2 = Base('127.0.0.2', 'root', '2333333', 'barn3', 3306) barn = base2.barn_temperate2(barn_name, time=time) print("{}{}整仓标准差:".format(barn_name, time), np.std(barn)) #假设半仓 barn[:, :, 0:1] = barn[:, :, 1:2] a = np.random.rand(14, 6) barn[:, :, 2] = a print("{}{}1/3空仓标准差".format(barn_name, time), np.std(barn))
def combine_test(): """ 测试base :return: """ base1 = Base('127.0.0.2', 'root', '2333333', 'barn', 3306) base2 = Base('127.0.0.2', 'root', '2333333', 'barn3', 3306) barns1_times = base1.get_tables_name() new_table = base1.new_barn(barns1_times) base1.combine(barns1_times, new_table, base2)
def layer_times_25_chart(layers): """ 层标准差走势图 :param layers: :return: """ plt.figure(figsize=(15, 10)) barn_name = '上河湾分库_1号罩棚' base2 = Base('127.0.0.2', 'root', '2333333', 'barn3', 3306) times = base2.get_times(barn_name) # 时间序列 lengend = [] for layer in range(layers): lengend.append('第{}层'.format(layer + 1)) layer_times = base2.barn_times_layer(barn_name, layer=layer) # print(np.shape(layer_times)) means = [] for time in range(0, len(times)): layer_tem = layer_times[time, :, :] mean = np.percentile(layer_tem, 25) # print(time,"均值:", mean) means.append(mean) print(means) plt.plot(range(len(means)), means, linestyle='--', marker='v') # 绘制 # title = "{}{}层均温走势图".format(barn_name, layer) # point_line_chart(title=title, times=times, temperature=means) plt.legend(lengend) plt.xlabel('时间') plt.ylabel('温度') plt.xticks(range(len(times)), times, rotation=45) title = "{}25%百分位数走势图".format(barn_name) plt.title(title) plt.savefig('G:/Python/Laboratory/Grainpy/chart/{}.png'.format(title)) plt.show()