예제 #1
0
 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()
예제 #2
0
    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)
예제 #3
0
    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)