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))
Beispiel #2
0
    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))
Beispiel #3
0
    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)
Beispiel #4
0
    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)
Beispiel #5
0
    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))