def CreateTerrainImage(self): plt.close() self.ElevDatas = self.ElevDatas.reshape( (self.GridYSize, self.GridXSize)) self.ElevDatas = np.where(self.ElevDatas <= MINIMUM_ELEV, self.MinimumElev, self.ElevDatas) fig, ax = plt.subplots() # ls = LightSource(azdeg = 180, altdeg = 65) # color = ls.shade(self.ElevDatas, plt.get_cmap("rainbow_r")) # cs = ax.imshow(self.ElevDatas, plt.get_cmap("rainbow_r")) # color = ls.shade(self.ElevDatas, plt.get_cmap("gray")) cs = ax.imshow(self.ElevDatas, plt.get_cmap("gray")) # ax.imshow(color) # make_axes = make_axes_locatable(ax) # cax = make_axes.append_axes("right", size = "2%", pad = 0.05) # fig.colorbar(cs, cax) ax.set_xticks([]) ax.set_yticks([]) fig.subplots_adjust(left=0.1, right=0.9, bottom=0.1, top=0.9) canvas = FigureCanvas(fig) canvas.draw() w, h = canvas.get_width_height() self.ItemImage = QImage(canvas.buffer_rgba(), w, h, QImage.Format_ARGB32) self.Canvas.setPixmap(QPixmap(self.ItemImage))
def createTopographicImage(self): try: lat, lon = float(self.latEdit.text()), float(self.lonEdit.text()) except: QMessageBox.information( self, "None file Error", "Can't create map. <br> Please Press lat and lon.", QMessageBox.Ok) return elevs = self.elev(lat, lon) elevs[np.isnan(elevs)] = -9999.0 fig, ax = plt.subplots() elevs = np.flipud(elevs) ls = LightSource(azdeg=180, altdeg=65) color = ls.shade(elevs, cmap.rainbow) cs = ax.imshow(elevs, cmap.rainbow) ax.imshow(color) make_axes = make_axes_locatable(ax) cax = make_axes.append_axes("right", size="2%", pad=0.05) fig.colorbar(cs, cax) ax.set_xticks([]) ax.set_yticks([]) fig.subplots_adjust(left=0.1, right=0.9, bottom=0.1, top=0.9) canvas = FigureCanvas(fig) canvas.draw() w, h = canvas.get_width_height() self.image = QImage(canvas.buffer_rgba(), w, h, QImage.Format_ARGB32) self.canvas.setPixmap(QPixmap(self.image))
def ColourMap(self, img): sp = SubplotParams(left=0., bottom=0., right=1., top=1.) fig = Figure((1, 1), subplotpars=sp) canvas = FigureCanvas(fig) ax = fig.add_subplot(111) ax.imshow(self.img_read) ax.set_axis_off() canvas.draw() size = canvas.size() width, height = size.width(), size.height() im = QImage(canvas.buffer_rgba(), width, height, QImage.Format_ARGB32) return QPixmap(im)
def ColourMap(self, img): sp = SubplotParams(left=0., bottom=0., right=1., top=1.) fig = Figure((1, 1), subplotpars=sp) canvas = FigureCanvas(fig) ax = fig.add_subplot(111) #test = self.numpy2pil(self.y_pred) ax.imshow(self.y_pred[img, img:, img:, 0]) ax.set_axis_off() canvas.draw() size = canvas.size() width, height = size.width(), size.height() #RGB_img = cv2.cvtColor(canvas.buffer_rgba(), cv2.COLOR_BGR2RGB) img = QImage(canvas.buffer_rgba(), width, height, QImage.Format_ARGB32) return QPixmap(img)
def createTopographicImage(self): try: # 緯度、経度をエディタから受け取るよ lat, lon = float(self.LatEdit.text()), float(self.LonEdit.text()) except: # 緯度経度が入力されていなかったらエラーメッセージを表示するよ QMessageBox.information( self, "None file Error", "Can't create map. <br> Please Press lat and lon.", QMessageBox.Ok) return # 大きな画像いやだって人は下のコメントアウト外してね #elevs = self.elev(lat, lon) # ここの端の時の処理思いつかなかったよ;; calc_lon = 0.013 calc_lat = 0.00833333333 elevs1 = self.elev(lat, lon) elevs2 = self.elev(lat, lon + calc_lon) elevs3 = self.elev(lat + calc_lat, lon) elevs4 = self.elev(lat + calc_lat, lon + calc_lon) elevs = np.vstack((np.hstack( (elevs1, elevs2)), np.hstack((elevs3, elevs4)))) # 配列の要素が全部nanだったときに怒られちゃったからここで例外処理をするよ warnings.simplefilter('error') try: # 配列の中のnanを同じ配列の中のnan以外で最小のものにするよ elevs[np.isnan(elevs)] = np.nanmin(elevs) except RuntimeWarning: # 配列の要素が全部nanだったときこっちの処理が動くよ elevs[np.isnan(elevs)] = -9999.0 # 図を表示するときに使うよ fig, ax = plt.subplots() # 配列の反転だよ elevs = np.flipud(elevs) # azdeg: 光源の方位 0 ~ 360 altdeg: 光源の高度 0 ~ 90 # 配列に色や影を追加するよ ls = LightSource(azdeg=180, altdeg=65) # カラーマップのデータを配列と組み合わせるよ color = ls.shade(elevs, cmap.rainbow) cs = ax.imshow(elevs, cmap.rainbow) ax.imshow(color) # 新しいラベルを作るよ make_axes = make_axes_locatable(ax) # 新しく作ったラベルの設定左から位置、ラベルの大きさ、パディングだよ cax = make_axes.append_axes("right", size="2%", pad=0.05) # 図に新しく作ったラベルを追加するよ fig.colorbar(cs, cax) # x軸y軸を消すよ ax.set_xticks([]) ax.set_yticks([]) # 画像の周りの余白をいじるよ fig.subplots_adjust(left=0.1, right=0.9, bottom=0.1, top=0.9) # 画像をキャンバスに追加するよ canvas = FigureCanvas(fig) # キャンバスに描画するよ canvas.draw() # キャンバスの大きさを受け取るよ w, h = canvas.get_width_height() # キャンバスの画像をQImage型にするよ self.Image = QImage(canvas.buffer_rgba(), w, h, QImage.Format_ARGB32) # 地形図を表示するラベルに画像をセットするよ self.Canvas.setPixmap(QPixmap(self.Image))