Compare commits

..

No commits in common. "2e360943b28fbd16f6c1d1a408ce3907e0c20ae5" and "6e52b1681eaf7650f2342903762914d4a31a9b07" have entirely different histories.

5 changed files with 15 additions and 95 deletions

View File

@ -62,14 +62,6 @@ class GeoTIFF(SQLSubModel):
self._description = description self._description = description
self._file_bytes = b'' self._file_bytes = b''
if coordinates is None:
self._coordinates = {
"bottom": 0.0,
"top": 0.0,
"left": 0.0,
"right": 0.0,
}
else:
self._coordinates = coordinates self._coordinates = coordinates
self._file_name = "" self._file_name = ""
@ -356,7 +348,7 @@ class GeoTIFF(SQLSubModel):
self.name, self.name,
self.description, self.description,
self.file_name, self.file_name,
self._file_bytes, self.file_bytes,
self.coordinates['bottom'], self.coordinates['bottom'],
self.coordinates['top'], self.coordinates['top'],
self.coordinates['left'], self.coordinates['left'],

View File

@ -43,8 +43,8 @@ class GeoTIFFList(PamhyrModelList):
f"WHERE scenario = {self._status.scenario_id}" f"WHERE scenario = {self._status.scenario_id}"
) )
for gt in self._lst: for af in self._lst:
ok &= gt._db_save(execute, data) ok &= af._db_save(execute, data)
return ok return ok

View File

@ -656,8 +656,6 @@ class River(Graph):
objs.append(self._D90AdisTS) objs.append(self._D90AdisTS)
objs.append(self._DIFAdisTS) objs.append(self._DIFAdisTS)
objs.append(self._geotiff)
for solv_type in self.results: for solv_type in self.results:
objs.append(self.results[solv_type]) objs.append(self.results[solv_type])

View File

@ -23,7 +23,11 @@ from View.Tools.PamhyrWindow import PamhyrWindow
from PyQt5.QtWidgets import ( from PyQt5.QtWidgets import (
QLabel, QPlainTextEdit, QPushButton, QLabel, QPlainTextEdit, QPushButton,
QCheckBox, QFileDialog, QVBoxLayout, QCheckBox, QFileDialog,
)
from PyQt5.QtGui import (
QPixmap,
) )
from PyQt5.QtCore import ( from PyQt5.QtCore import (
@ -35,23 +39,6 @@ from View.GeoTIFF.UndoCommand import (
SetCommand SetCommand
) )
from View.Tools.Plot.PamhyrCanvas import MplCanvas
from View.PlotXY import PlotXY
try:
import rasterio
import rasterio.control
import rasterio.crs
import rasterio.sample
import rasterio.vrt
import rasterio._features
from rasterio.io import MemoryFile
_rasterio_loaded = True
except Exception as e:
print(f"Module 'rasterio' is not available: {e}")
_rasterio_loaded = False
logger = logging.getLogger() logger = logging.getLogger()
@ -78,31 +65,9 @@ class EditGeoTIFFWindow(PamhyrWindow):
self._undo = undo self._undo = undo
self.setup_graph()
self.setup_values() self.setup_values()
self.setup_connection() self.setup_connection()
def setup_graph(self):
self.canvas = MplCanvas(width=5, height=4, dpi=100)
self.canvas.setObjectName("canvas")
self.plot_layout = self.find(QVBoxLayout, "verticalLayout_geotiff")
self.plot_layout.addWidget(self.canvas)
self.plot = PlotXY(
canvas=self.canvas,
data=self._study.river.enable_edges(),
trad=self._trad,
toolbar=None,
parent=self
)
self.plot.update()
self._plot_img = None
memfile = self._geotiff.memfile
if memfile is not None:
self.draw_geotiff(memfile=memfile)
def setup_values(self): def setup_values(self):
self.set_check_box("checkBox", self._geotiff.enabled) self.set_check_box("checkBox", self._geotiff.enabled)
self.set_line_edit_text("lineEdit_name", self._geotiff.name) self.set_line_edit_text("lineEdit_name", self._geotiff.name)
@ -124,16 +89,6 @@ class EditGeoTIFFWindow(PamhyrWindow):
self.set_line_edit_enable("lineEdit_path", False) self.set_line_edit_enable("lineEdit_path", False)
self.set_plaintext_edit_enable("plainTextEdit", False) self.set_plaintext_edit_enable("plainTextEdit", False)
def _set_values_from_bounds(self, bounds):
self._values = {
"bottom": bounds[0],
"top": bounds[2],
"left": bounds[1],
"right": bounds[3],
}
self._reset_values()
def _reset_values(self): def _reset_values(self):
for key in self._values: for key in self._values:
self._reset_values_key(key) self._reset_values_key(key)
@ -153,34 +108,6 @@ class EditGeoTIFFWindow(PamhyrWindow):
self.find(QPushButton, f"pushButton_{key}")\ self.find(QPushButton, f"pushButton_{key}")\
.clicked.connect(lambda: self._reset_values_key(key)) .clicked.connect(lambda: self._reset_values_key(key))
def draw_geotiff(self, memfile=None):
if not _rasterio_loaded:
return
if memfile is None:
if self._file_name == "":
return
with rasterio.open(self._file_name) as data:
img = data.read()
b = data.bounds[:]
else:
with memfile.open() as gt:
img = gt.read()
b = gt.bounds[:]
if self._plot_img is not None:
self._plot_img.remove()
self._set_values_from_bounds(b)
self._plot_img = self.canvas.axes.imshow(
img.transpose((1, 2, 0)),
extent=[b[0], b[2], b[1], b[3]]
)
self.plot.idle()
def _import(self): def _import(self):
options = QFileDialog.Options() options = QFileDialog.Options()
settings = QSettings(QSettings.IniFormat, settings = QSettings(QSettings.IniFormat,
@ -202,13 +129,16 @@ class EditGeoTIFFWindow(PamhyrWindow):
if filename != "": if filename != "":
self._file_name = filename self._file_name = filename
self. draw_geotiff()
pixmap = QPixmap(filename)
self.find(QLabel, "label_geotiff")\
.setPixmap(pixmap)
def accept(self): def accept(self):
if self._study.is_editable(): if self._study.is_editable():
is_enabled = self.get_check_box("checkBox") is_enabled = self.get_check_box("checkBox")
name = self.get_line_edit_text("lineEdit_name") name = self.get_line_edit_text("lineEdit_name")
description = self.get_line_edit_text("lineEdit_description") path = self.get_line_edit_text("lineEdit_path")
coord_bottom = self.get_double_spin_box("doubleSpinBox_bottom") coord_bottom = self.get_double_spin_box("doubleSpinBox_bottom")
coord_top = self.get_double_spin_box("doubleSpinBox_top") coord_top = self.get_double_spin_box("doubleSpinBox_top")