def update_figure(self): if GlobalMap().get('userdefined') == 'Null_': #检测从自定义对话框传递过来的数据 return if not self.begin: #防止重绘 return self.begin = 0 GlobalMap().set(time_point=self.times, ) self.times += 1 if self.times == 2: self.begin = 1 self.temp0 = NN.main([], [], GlobalMap().get('userdefined')) #传入BP网络预测 return else: temp01 = self.temp0 self.temp0 = NN.main([], [], temp01) imgP = imread('core/map.png', ) self.axes.imshow(imgP, extent=[112.1495, 112.288, 30.308, 30.391], aspect='auto') x = np.array(self.temp0[0]) y = np.array(self.temp0[1]) z = gaussian_kde(self.temp0)(self.temp0) #生成密度颜色 self.axes.hold(True) self.axes.scatter(x, y, marker='.', s=100, c=z, edgecolors='') self.axes.grid(True) self.axes.set_xlim(112.150, 112.284) self.axes.set_ylim(30.309, 30.385) self.axes.set(xlabel="longitude", ylabel="latitude") self.axes.set_title('The ' + str(self.times) + ':00 ’s distribution prediction') self.draw() self.begin = 1 self.axes.hold(False) if self.times >= 2: self.pause()
def run(self): if self.working == True: times = GlobalMap().get('time_point') GlobalMap().set(progress_num=0) lists = [] for i in range(24): lists += [i] GlobalMap().set(progress_num=2) if exists('db/temp/20180515.csv') and exists( 'db/temp/20180516.csv'): temp1 = DataFrame(read_csv('db/temp/20180515.csv', header=0)) temp2 = DataFrame(read_csv('db/temp/20180516.csv', header=0)) else: temp1 = dataclear(20180515).run() temp2 = dataclear(20180516).run() GlobalMap().set(progress_num=5) temp11 = temp1[temp1['time'] == lists[times - 1]] temp12 = temp1[temp1['time'] == lists[times]] temp1112 = merge(temp11, temp12, how='outer', on='id').dropna() temp21 = temp2[temp2['time'] == lists[times - 1]] temp22 = temp2[temp2['time'] == lists[times]] temp2122 = merge(temp21, temp22, how='outer', on='id').dropna() temp000 = np.vstack((temp1112['x_x'], temp1112['y_x'])) temp001 = np.vstack((temp1112['x_y'], temp1112['y_y'])) temp020 = np.vstack((temp2122['x_x'], temp2122['y_x'])) #temp021 = np.vstack((temp2122['x_y'],temp2122['y_y'])) cells_array = np.array(NN.main(temp000, temp001, temp020)) np.save(GlobalMap().get('temp_path') + '/test' + str(times), cells_array) GlobalMap().set(progress_num=100, running_global=0) self.changed2_signal.emit(1)
def run(self): if self.working == True: times = GlobalMap().get('time_point') GlobalMap().set(progress_num=0) lists = [] for i in range(24): lists += [i] GlobalMap().set(progress_num=2) if exists('db/temp/20180515.csv') and exists( 'db/temp/20180516.csv'): temp1 = DataFrame(read_csv('db/temp/20180515.csv', header=0)) temp2 = DataFrame(read_csv('db/temp/20180516.csv', header=0)) else: temp1 = dataclear(20180515).run() temp2 = dataclear(20180516).run() GlobalMap().set(progress_num=5) temp11 = temp1[temp1['time'] == lists[times - 1]] temp12 = temp1[temp1['time'] == lists[times]] temp1112 = merge(temp11, temp12, how='outer', on='id').dropna() '''begin 另一种数据处理方式''' # temp1_x = DataFrame(read_csv('db/temp/20180515-x.csv' ,header=0)) # temp1_y = DataFrame(read_csv('db/temp/20180515-y.csv' ,header=0)) # temp2_x = DataFrame(read_csv('db/temp/20180516-x.csv' ,header=0)) # temp2_y = DataFrame(read_csv('db/temp/20180516-y.csv' ,header=0)) # # temp11_x = temp1_x[str(lists[times])] # temp11_y = temp1_y[str(lists[times])] # temp12_x = temp2_x[str(lists[times])] # temp12_y = temp2_y[str(lists[times])] # # temp21_x = temp1_x[str(lists[times+1])] # temp21_y = temp1_y[str(lists[times+1])] # temp22_x = temp2_x[str(lists[times+1])] # temp22_y = temp2_y[str(lists[times+1])] # # cc01 = np.vstack((temp11_x, temp11_y)) # cc02 = np.vstack((temp21_x, temp21_y)) # cc03 = np.vstack((temp12_x, temp12_y)) # cc04 = np.vstack((temp22_x, temp22_y)) '''end''' temp21 = temp2[temp2['time'] == lists[times - 1]] temp22 = temp2[temp2['time'] == lists[times]] temp2122 = merge(temp21, temp22, how='outer', on='id').dropna() temp000 = np.vstack((temp1112['x_x'], temp1112['y_x'])) temp001 = np.vstack((temp1112['x_y'], temp1112['y_y'])) temp020 = np.vstack((temp2122['x_x'], temp2122['y_x'])) temp021 = np.vstack((temp2122['x_y'], temp2122['y_y'])) #用20180515 T 和 T+1 时刻的训练 来预测 20180516 T 时刻 在 T+1 时刻的分布情况 cells_array = np.array(NN.main(temp000, temp001, temp020)) #cells_array = np.array(NN.main(cc01, cc02, cc03 )) np.save(GlobalMap().get('temp_path') + '/test' + str(times), cells_array) GlobalMap().set(progress_num=100) self.changed_signal.emit(cells_array, temp021)