mirror of
https://gitlab.com/pamhyr/pamhyr2.git
synced 2026-10-30 03:20:41 +01:00
Merge branch 'master' into compare_results
This commit is contained in:
commit
c8606cf445
18 files changed
+586
-3500
No files matched your search
@@ -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
@@ -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
@@ -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(
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in new issue
Block a user