mirror of https://gitlab.com/pamhyr/pamhyr2
GeoTIFF: Integrate to River submodel.
parent
a308af41e0
commit
4c0a12dcf9
|
|
@ -35,6 +35,8 @@ try:
|
||||||
import rasterio.sample
|
import rasterio.sample
|
||||||
import rasterio.vrt
|
import rasterio.vrt
|
||||||
import rasterio._features
|
import rasterio._features
|
||||||
|
|
||||||
|
from rasterio.io import MemoryFile
|
||||||
_rasterio_loaded = True
|
_rasterio_loaded = True
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Module 'rasterio' is not available: {e}")
|
print(f"Module 'rasterio' is not available: {e}")
|
||||||
|
|
@ -153,7 +155,7 @@ class GeoTIFF(SQLSubModel):
|
||||||
if self._file_bytes == b'':
|
if self._file_bytes == b'':
|
||||||
return None
|
return None
|
||||||
|
|
||||||
if self._memfile == None:
|
if self._memfile is None:
|
||||||
self._memfile = MemoryFile()
|
self._memfile = MemoryFile()
|
||||||
self._memfile.write(self._file_bytes)
|
self._memfile.write(self._file_bytes)
|
||||||
|
|
||||||
|
|
@ -202,9 +204,12 @@ class GeoTIFF(SQLSubModel):
|
||||||
def _db_update(cls, execute, version, data=None):
|
def _db_update(cls, execute, version, data=None):
|
||||||
major, minor, release = version.strip().split(".")
|
major, minor, release = version.strip().split(".")
|
||||||
|
|
||||||
if major == "0" and int(minor) <= 2:
|
if major == "0" and int(minor) < 2:
|
||||||
|
cls._db_create(execute)
|
||||||
|
|
||||||
|
if major == "0" and int(minor) == 2:
|
||||||
if int(release) < 3:
|
if int(release) < 3:
|
||||||
cls._create_submodel(execute)
|
cls._db_create(execute)
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
@ -225,43 +230,44 @@ class GeoTIFF(SQLSubModel):
|
||||||
"scenario " +
|
"scenario " +
|
||||||
"FROM geotiff " +
|
"FROM geotiff " +
|
||||||
f"WHERE scenario = {scenario.id} " +
|
f"WHERE scenario = {scenario.id} " +
|
||||||
f"AND pamhyr_id NOT IN ({', '.join(map(str, loaded))})"
|
f"AND pamhyr_id NOT IN ({', '.join(map(str, loaded))})"
|
||||||
)
|
)
|
||||||
|
|
||||||
for row in table:
|
if table is not None:
|
||||||
it = iter(row)
|
for row in table:
|
||||||
|
it = iter(row)
|
||||||
|
|
||||||
id = next(it)
|
id = next(it)
|
||||||
enabled = (next(it) == 1)
|
enabled = (next(it) == 1)
|
||||||
deleted = (next(it) == 1)
|
deleted = (next(it) == 1)
|
||||||
name = next(it)
|
name = next(it)
|
||||||
description = next(it)
|
description = next(it)
|
||||||
file_name = next(it)
|
file_name = next(it)
|
||||||
file_bytes = next(it)
|
file_bytes = next(it)
|
||||||
coordinates_bottom = next(it)
|
coordinates_bottom = next(it)
|
||||||
coordinates_top = next(it)
|
coordinates_top = next(it)
|
||||||
coordinates_left = next(it)
|
coordinates_left = next(it)
|
||||||
coordinates_right = next(it)
|
coordinates_right = next(it)
|
||||||
owner_scenario = next(it)
|
owner_scenario = next(it)
|
||||||
|
|
||||||
f = cls(
|
f = cls(
|
||||||
id=id, enabled=enabled, name=name,
|
id=id, enabled=enabled, name=name,
|
||||||
description=description, coordinates={
|
description=description, coordinates={
|
||||||
"bottom": coordinates_bottom,
|
"bottom": coordinates_bottom,
|
||||||
"top": coordinates_top,
|
"top": coordinates_top,
|
||||||
"left": coordinates_left,
|
"left": coordinates_left,
|
||||||
"right": coordinates_right,
|
"right": coordinates_right,
|
||||||
},
|
},
|
||||||
status=data['status'],
|
status=data['status'],
|
||||||
owner_scenario=owner_scenario
|
owner_scenario=owner_scenario
|
||||||
)
|
)
|
||||||
if deleted:
|
if deleted:
|
||||||
f.set_as_deleted()
|
f.set_as_deleted()
|
||||||
|
|
||||||
f._file_bytes = file_bytes
|
f._file_bytes = file_bytes
|
||||||
|
|
||||||
loaded.add(id)
|
loaded.add(id)
|
||||||
new.append(f)
|
new.append(f)
|
||||||
|
|
||||||
data["scenario"] = scenario.parent
|
data["scenario"] = scenario.parent
|
||||||
new += cls._db_load(execute, data)
|
new += cls._db_load(execute, data)
|
||||||
|
|
@ -287,7 +293,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'],
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ from tools import trace, timer
|
||||||
|
|
||||||
from Model.Except import NotImplementedMethodeError
|
from Model.Except import NotImplementedMethodeError
|
||||||
from Model.Tools.PamhyrListExt import PamhyrModelList
|
from Model.Tools.PamhyrListExt import PamhyrModelList
|
||||||
from Model.AdditionalFile.GeoTIFF import GeoTIFF
|
from Model.GeoTIFF.GeoTIFF import GeoTIFF
|
||||||
|
|
||||||
|
|
||||||
class GeoTIFFList(PamhyrModelList):
|
class GeoTIFFList(PamhyrModelList):
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,7 @@ from Model.LateralContributionsAdisTS.LateralContributionsAdisTSList \
|
||||||
import LateralContributionsAdisTSList
|
import LateralContributionsAdisTSList
|
||||||
from Model.D90AdisTS.D90AdisTSList import D90AdisTSList
|
from Model.D90AdisTS.D90AdisTSList import D90AdisTSList
|
||||||
from Model.DIFAdisTS.DIFAdisTSList import DIFAdisTSList
|
from Model.DIFAdisTS.DIFAdisTSList import DIFAdisTSList
|
||||||
|
from Model.GeoTIFF.GeoTIFFList import GeoTIFFList
|
||||||
from Model.Results.Results import Results
|
from Model.Results.Results import Results
|
||||||
|
|
||||||
logger = logging.getLogger()
|
logger = logging.getLogger()
|
||||||
|
|
@ -468,6 +469,7 @@ class River(Graph):
|
||||||
LateralContributionsAdisTSList,
|
LateralContributionsAdisTSList,
|
||||||
D90AdisTSList,
|
D90AdisTSList,
|
||||||
DIFAdisTSList,
|
DIFAdisTSList,
|
||||||
|
GeoTIFFList,
|
||||||
Results
|
Results
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -505,6 +507,8 @@ class River(Graph):
|
||||||
self._D90AdisTS = D90AdisTSList(status=self._status)
|
self._D90AdisTS = D90AdisTSList(status=self._status)
|
||||||
self._DIFAdisTS = DIFAdisTSList(status=self._status)
|
self._DIFAdisTS = DIFAdisTSList(status=self._status)
|
||||||
|
|
||||||
|
self._geo_tiff = GeoTIFFList(status=self._status)
|
||||||
|
|
||||||
self._results = {}
|
self._results = {}
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
@ -617,6 +621,8 @@ class River(Graph):
|
||||||
|
|
||||||
new._DIFAdisTS = DIFAdisTSList._db_load(execute, data)
|
new._DIFAdisTS = DIFAdisTSList._db_load(execute, data)
|
||||||
|
|
||||||
|
new._geo_tiff = GeoTIFFList._db_load(execute, data)
|
||||||
|
|
||||||
return new
|
return new
|
||||||
|
|
||||||
def _db_load_results(self, execute, data=None):
|
def _db_load_results(self, execute, data=None):
|
||||||
|
|
@ -726,6 +732,7 @@ class River(Graph):
|
||||||
self._BoundaryConditionsAdisTS,
|
self._BoundaryConditionsAdisTS,
|
||||||
self._LateralContributionsAdisTS,
|
self._LateralContributionsAdisTS,
|
||||||
self._D90AdisTS, self._DIFAdisTS,
|
self._D90AdisTS, self._DIFAdisTS,
|
||||||
|
self._geo_tiff,
|
||||||
]
|
]
|
||||||
|
|
||||||
for solver in self._parameters:
|
for solver in self._parameters:
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ logger = logging.getLogger()
|
||||||
|
|
||||||
|
|
||||||
class Study(SQLModel):
|
class Study(SQLModel):
|
||||||
_version = "0.2.2"
|
_version = "0.2.3"
|
||||||
|
|
||||||
_sub_classes = [
|
_sub_classes = [
|
||||||
Scenario,
|
Scenario,
|
||||||
|
|
|
||||||
|
|
@ -1734,11 +1734,11 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
|
||||||
|
|
||||||
if self._last_solver._type == "mage8":
|
if self._last_solver._type == "mage8":
|
||||||
self.open_solver_results(
|
self.open_solver_results(
|
||||||
solver, # self.last_results
|
solver, # self.last_results
|
||||||
)
|
)
|
||||||
elif self._last_solver._type == "adistswc":
|
elif self._last_solver._type == "adistswc":
|
||||||
self.open_solver_results_adists(
|
self.open_solver_results_adists(
|
||||||
solver, # self.last_results
|
solver, # self.last_results
|
||||||
)
|
)
|
||||||
|
|
||||||
def open_results_from_file(self):
|
def open_results_from_file(self):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue