Merge branch 'master' into compare_results

This commit is contained in:
Theophile Terraz committed 2025-01-29 14:38:36 +01:00
commit c8606cf445
18 files changed
+586 -3500

No files matched your search

+4 -6
View File
@@ -17,7 +17,6 @@
import logging
import numpy as np
import os
import glob
from copy import deepcopy
from datetime import datetime
@@ -41,11 +40,10 @@ class Results(object):
# Keep results creation date
"creation_date": datetime.now(),
}
repertory_results = os.path.join(repertory, "resultats")
self._pollutants_list = [
el.split("/")[-1][0:-4]
for el in glob.glob(repertory_results + "/*.bin")
]
filelist = [f for f in os.listdir(self._repertory)
if os.path.isfile(os.path.join(self._repertory, f))
]
self._pollutants_list = [f[0:-4] for f in filelist if f[-4:] == ".bin"]
self._pollutants_list.insert(0, self._pollutants_list.pop(
self._pollutants_list.index("total_sediment"))
)
+20 -15
View File
@@ -17,7 +17,6 @@
# -*- coding: utf-8 -*-
import os
import glob
import logging
import numpy as np
@@ -620,15 +619,15 @@ class AdisTSwc(AdisTS):
@timer
def read_bin(self, study, repertory, results, qlog=None, name="0"):
repertory_results = os.path.join(repertory, "resultats")
files_bin_names = [el.split("/")[-1]
for el in glob.glob(repertory_results+"/*.bin")]
filelist = [f for f in os.listdir(repertory)
if os.path.isfile(os.path.join(repertory, f))
]
files_bin_names = [f for f in filelist if f[-4:] == ".bin"]
files_bin_names.insert(0, files_bin_names.pop(
files_bin_names.index("total_sediment.bin"))
)
ifilename = os.path.join(repertory_results, files_bin_names[0])
ifilename = os.path.join(repertory, files_bin_names[0])
logger.info(f"read_bin: Start reading '{ifilename}' ...")
@@ -725,7 +724,7 @@ class AdisTSwc(AdisTS):
def ip_to_ri(r, i): return i - reach_offset[r]
path_files = map(lambda file: os.path.join(
repertory_results, file), files_bin_names)
repertory, file), files_bin_names)
data_tmp = {}
@@ -833,8 +832,6 @@ class AdisTSwc(AdisTS):
if name is None:
name = study.name.replace(" ", "_")
print("adist ts results repertory: ", repertory)
results = super(AdisTSwc, self).results(study,
repertory,
qlog,
@@ -852,15 +849,23 @@ class AdisTSwc(AdisTS):
def rm_previous_results(self, study, repertory, qlog):
if "resultats" not in os.listdir(repertory):
if "resultats" in os.listdir(repertory):
repertory_results = os.path.join(repertory, "resultats")
else:
repertory_results = os.path.normpath(repertory)
if not os.path.isdir(repertory_results):
return
repertory_results = os.path.join(repertory, "resultats")
filelist = [f for f in os.listdir(repertory_results)
if os.path.isfile(os.path.join(repertory_results, f))
]
files_bin_names = [f for f in filelist if f[-4:] == ".bin"]
if len(files_bin_names) < 1:
return
files_bin_names = [el.split("/")[-1]
for el in glob.glob(repertory_results+"/*.bin")]
for el in glob.glob(repertory_results+"/*.bin"):
os.remove(el)
for el in files_bin_names:
os.remove(os.path.join(repertory_results, el))
@timer
def export(self, study, repertory, mage_rep, qlog=None, name="0"):
+10 -2
View File
@@ -1705,13 +1705,21 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
if dialog.exec_():
dir_path = dialog.selectedFiles()[0]
dir_list = os.listdir(dir_path)
if "resultats" in dir_list:
dir_path = os.path.join(dir_path, "resultats")
dir_list = os.listdir(dir_path)
bin_list = list(filter(lambda s: "bin" in s, dir_list))
solver_name = dir_path.split("/")[-2]
if len(bin_list) < 1:
# TODO message
return
path = os.path.normpath(dir_path)
solver_name = path.split(os.sep)[-2]
solver_results = next(filter(lambda x: x.name == solver_name,
self.conf.solvers))
solver_results_adists = solver_results.results(
self._study,
repertory=dir_path[:-10], qlog=None) # self._output)
repertory=dir_path, qlog=None) # self._output)
logger.info(f"Select results: {dir_path}")
if len(bin_list) >= 2 and ("total_sediment.bin" in bin_list):
self.open_solver_results_adists(
+12 -10
View File
@@ -99,16 +99,18 @@ class TableModel(PamhyrTableModel):
v = self._lst[row].get_ts_key(
self._timestamp, "pols")[pol_index][0]
return f"{v:.4f}"
if (self._headers[column] == pol + " Mass"
and self._type_pol[pol_index] == 7):
m1 = self._lst[row].get_ts_key(
self._timestamp, "pols")[pol_index][1]
m2 = self._lst[row].get_ts_key(
self._timestamp, "pols")[pol_index][2]
m3 = self._lst[row].get_ts_key(
self._timestamp, "pols")[pol_index][3]
v = m1 + m2 + m3
return f"{v:.4f}"
if self._headers[column] == pol + " Mass":
if self._type_pol[pol_index] == 7:
m1 = self._lst[row].get_ts_key(
self._timestamp, "pols")[pol_index][1]
m2 = self._lst[row].get_ts_key(
self._timestamp, "pols")[pol_index][2]
m3 = self._lst[row].get_ts_key(
self._timestamp, "pols")[pol_index][3]
v = m1 + m2 + m3
return f"{v:.4f}"
else:
return ""
return QVariant()
+21 -8
View File
@@ -496,13 +496,7 @@ class ResultsWindow(PamhyrWindow):
self.update(profile_id=ind)
def _set_current_profile_raw_data(self):
table = self.find(QTableView, f"tableView_raw_data")
indexes = table.selectedIndexes()
if len(indexes) == 0:
return
ind = indexes[0].row()
self.update(profile_id=ind)
return
def _set_current_results(self):
table = self.find(QTableView, f"tableView_solver")
@@ -596,7 +590,26 @@ class ResultsWindow(PamhyrWindow):
tab_widget.setCurrentWidget(widget)
def _copy(self):
logger.info("TODO: copy")
# focus on raw data table
if self.find(QTabWidget, f"tabWidget").currentIndex() == 0:
table = self.find(QTableView, f"tableView_raw_data")
model = self._table["raw_data"]
coltext = []
for index in sorted(table.selectionModel().selectedRows()):
row = index.row()
rowtext = []
for column in range(model.columnCount()):
i = model.createIndex(row, column)
try:
rowtext.append(model.data(i))
except AttributeError:
rowtext.append("")
coltext.append(rowtext)
self.copyTableIntoClipboard(coltext)
else:
logger.info("TODO: copy")
def _paste(self):
logger.info("TODO: paste")
+21 -9
View File
@@ -555,14 +555,7 @@ class ResultsWindowAdisTS(PamhyrWindow):
self.update(pol_id=rows)
def _set_current_profile_raw_data(self):
table = self.find(QTableView, f"tableView_raw_data")
indexes = table.selectedIndexes()
if len(indexes) == 0:
return
ind = indexes[0].row()
self.update(profile_id=ind)
self._slider_profile.setValue(ind)
return
def _set_current_timestamp(self):
timestamp = self._timestamps[self._slider_time.value()]
@@ -598,7 +591,26 @@ class ResultsWindowAdisTS(PamhyrWindow):
self._reload_slider()
def _copy(self):
logger.info("TODO: copy")
# focus on raw data table
if self.find(QTabWidget, f"tabWidget").currentIndex() == 0:
table = self.find(QTableView, f"tableView_raw_data")
model = self._table["raw_data"]
coltext = []
for index in sorted(table.selectionModel().selectedRows()):
row = index.row()
rowtext = []
for column in range(model.columnCount()):
i = model.createIndex(row, column)
try:
rowtext.append(str(model.data(i)))
except AttributeError:
rowtext.append("")
coltext.append(rowtext)
self.copyTableIntoClipboard(coltext)
else:
logger.info("TODO: copy")
def _paste(self):
logger.info("TODO: paste")
+7 -1
View File
@@ -414,9 +414,15 @@ class SolverLogWindowAdisTS(PamhyrWindow):
def results(self):
if self._results is None:
dir_list = os.listdir(self._workdir)
if "resultats" in dir_list:
dir_path = os.path.join(self._workdir, "resultats")
else:
dir_path = self._workdir
def reading_fn():
self._results = self._solver.results(
self._study, self._workdir, qlog=self._output
self._study, dir_path, qlog=self._output
)
dlg = ReadingResultsDialog(reading_fn=reading_fn, parent=self)