diff --git a/requirements.txt b/requirements.txt index a4393842..4a747d38 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,3 +12,5 @@ shapely>=2.0.1 lxml>=4.9.3 platformdirs>=4.2.0 pyshp>=2.3.1 +rasterio==1.3.11 +#fortranformat==2.0.3 diff --git a/src/View/Results/Window.py b/src/View/Results/Window.py index f7c342fa..e2d389b7 100644 --- a/src/View/Results/Window.py +++ b/src/View/Results/Window.py @@ -19,6 +19,7 @@ import os import csv import logging +import rasterio from numpy import sqrt @@ -35,6 +36,7 @@ from PyQt5.QtCore import ( Qt, QVariant, QAbstractTableModel, QCoreApplication, QModelIndex, pyqtSlot, QItemSelectionModel, QTimer, + QSettings ) from PyQt5.QtWidgets import ( @@ -334,6 +336,7 @@ class ResultsWindow(PamhyrWindow): "action_add": self._add_custom_plot, "action_export": self._export, # "action_export": self.export_current, + "action_Geo_tiff": self.import_geotiff } if len(self._results) > 1: @@ -1162,3 +1165,39 @@ class ResultsWindow(PamhyrWindow): profile_id = self._get_current_profile() self.update_table_selection_profile(profile_id) + def import_geotiff(self): + options = QFileDialog.Options() + settings = QSettings(QSettings.IniFormat, + QSettings.UserScope, 'MyOrg', ) + options |= QFileDialog.DontUseNativeDialog + + file_types = [ + self._trad["file_geotiff"], + self._trad["file_all"], + ] + + filename, _ = QFileDialog.getOpenFileName( + self, + self._trad["open_file"], + "", + ";; ".join(file_types), + options=options + ) + + if filename != "": + with rasterio.open(filename) as data: + img = data.read() + b = data.bounds[:] + # b[0] left + # b[1] bottom + # b[2] right + # b[3] top + if b[2] < b[0] and b[1] < b[3]: + self.canvas.axes.imshow(img.transpose((1, 2, 0)), extent=[b[0], b[2], b[1], b[3]]) + else: + x = self.canvas.axes.get_xlim() + y = self.canvas.axes.get_ylim() + self.canvas.axes.imshow(img.transpose((1, 2, 0)), extent=[x[0], x[1], y[0], y[1]]) + self.plot_xy.idle() + + diff --git a/src/View/Results/translate.py b/src/View/Results/translate.py index 834369dc..e7fe830d 100644 --- a/src/View/Results/translate.py +++ b/src/View/Results/translate.py @@ -53,6 +53,9 @@ class ResultsTranslate(MainTranslate): "Results", "Max water elevation" ) + self._dict["file_all"] = _translate("GeoTIFF", "All files (*)") + self._dict["file_geotiff"] = _translate( + "GeoTIFF", "GeoTIFF file (*.tiff *.tif)") self._sub_dict["table_headers_reach"] = { "name": _translate("Results", "Reach name"), diff --git a/src/View/ui/Results.ui b/src/View/ui/Results.ui index 1e507a01..4a0befc5 100644 --- a/src/View/ui/Results.ui +++ b/src/View/ui/Results.ui @@ -238,6 +238,7 @@ + @@ -275,6 +276,14 @@ Ctrl+E + + + Geo tiff + + + <html><head/><body><p>Import Geo tiff image</p></body></html> + +