mirror of https://gitlab.com/pamhyr/pamhyr2
Compare commits
No commits in common. "2e360943b28fbd16f6c1d1a408ce3907e0c20ae5" and "6e52b1681eaf7650f2342903762914d4a31a9b07" have entirely different histories.
2e360943b2
...
6e52b1681e
|
|
@ -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'],
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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])
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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")
|
||||||
|
|
|
||||||
|
|
@ -93,7 +93,7 @@ class GeoTIFFListWindow(PamhyrWindow):
|
||||||
rows = self.selected_rows()
|
rows = self.selected_rows()
|
||||||
|
|
||||||
for row in rows:
|
for row in rows:
|
||||||
geotiff = self._study.river.geotiff.files[row]
|
geotiff= self._study.river.geotiff.files[row]
|
||||||
|
|
||||||
if self.sub_window_exists(
|
if self.sub_window_exists(
|
||||||
EditGeoTIFFWindow,
|
EditGeoTIFFWindow,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue