Skip to content

Commit

Permalink
Merge pull request #288 from jnsebgosselin/brf_backward_compat
Browse files Browse the repository at this point in the history
PR: Ensure backward compatibility with previously saved BRF results
  • Loading branch information
jnsebgosselin committed Apr 17, 2019
2 parents c033f3a + bcd92f8 commit 85007d6
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 27 deletions.
35 changes: 22 additions & 13 deletions gwhat/brf_mod/kgs_gui.py
Original file line number Diff line number Diff line change
Expand Up @@ -406,7 +406,7 @@ class BRFViewer(QWidget):

def __init__(self, wldset=None, parent=None):
super(BRFViewer, self).__init__(parent)
self.__save_ddir = osp.dirname(__rootdir__)
self.__save_ddir = None

self.setWindowTitle('BRF Results Viewer')
self.setWindowIcon(icons.get_icon('master'))
Expand Down Expand Up @@ -524,8 +524,20 @@ def __initGUI__(self):

ml.setColumnStretch(1, 100)

# ---- Toolbar Handlers
@property
def savedir(self):
"""Return a path where figures and files are saved by default."""
if self.__save_ddir is None or not osp.exists(self.__save_ddir):
try:
savedir = self.wldset.dirname
except AttributeError:
savedir = osp.dirname(__rootdir__)
finally:
return savedir
else:
return self.__save_ddir

# ---- Toolbar Handlers
def toggle_graphpannel(self):
if self.graph_opt_panel.isVisible() is True:
# Hide the panel.
Expand Down Expand Up @@ -601,15 +613,15 @@ def select_savefig_path(self):
"""
Opens a dialog to select a file path where to save the brf figure.
"""
ddir = osp.join(self.__save_ddir,
'brf_%s' % self.wldset['Well'])
ddir = osp.join(self.savedir, 'brf_%s' % self.wldset['Well'])

dialog = QFileDialog()
fname, ftype = dialog.getSaveFileName(
self, "Save Figure", ddir, '*.pdf;;*.svg')
ftype = ftype.replace('*', '')
if fname:
self.__save_ddir = osp.dirname(fname)
if not osp.samefile(osp.dirname(ddir), osp.dirname(fname)):
self.__save_ddir = osp.dirname(fname)
if not fname.endswith(ftype):
fname = fname + ftype
self.save_brf_fig(fname)
Expand All @@ -632,14 +644,15 @@ def select_export_brfdata_filepath(self):
fname = 'brf_' + self.wldset['Well']
if self.wldset['Well ID']:
fname += '_%s' % self.wldset['Well ID']
ddir = osp.join(self.__save_ddir, fname)
ddir = osp.join(self.savedir, fname)

dialog = QFileDialog()
fname, ftype = dialog.getSaveFileName(
self, "Export Data", ddir, "*.xlsx;;*.xls;;*.csv")
ftype = ftype.replace('*', '')
if fname:
self.__save_ddir = osp.dirname(fname)
if not osp.samefile(osp.dirname(ddir), osp.dirname(fname)):
self.__save_ddir = osp.dirname(fname)
if not fname.endswith(ftype):
fname = fname + ftype
self.export_brf_data(fname)
Expand All @@ -651,10 +664,8 @@ def export_brf_data(self, fname):
# ---- Others
def set_wldset(self, wldset):
self.wldset = wldset
if wldset is None:
self.setEnabled(False)
else:
self.setEnabled(True)
self.setEnabled(wldset is not None)
if wldset is not None:
self.update_brfnavigate_state()

def plot_brf(self):
Expand All @@ -666,8 +677,6 @@ def plot_brf(self):
databrf = self.wldset.get_brf(name)
well = self.wldset['Well']

if self.graph_opt_panel.show_ebar is False:
err = []
msize = self.graph_opt_panel.markersize
draw_line = self.graph_opt_panel.draw_line

Expand Down
39 changes: 25 additions & 14 deletions gwhat/projet/reader_projet.py
Original file line number Diff line number Diff line change
Expand Up @@ -448,6 +448,10 @@ def __getitem__(self, key):
else:
return self.dset[key][...]

@property
def dirname(self):
return os.path.dirname(self.dset.file.filename)

@property
def name(self):
return osp.basename(self.dset.name)
Expand Down Expand Up @@ -677,7 +681,8 @@ def get_brf(self, name):
# Cast the data into a pandas dataframe.
keys = ['Lag', 'A', 'sdA', 'SumA', 'sdSumA', 'B',
'sdB', 'SumB', 'sdSumB']
dataf = pd.DataFrame({key: grp[key][...] for key in keys})
dataf = pd.DataFrame({key: grp[key][...] for key in keys if
key in grp.keys()})
dataf.date_start = datetime.datetime.strptime(
grp.attrs['date start'], "%Y-%m-%dT%H:%M:%S")
dataf.date_end = datetime.datetime.strptime(
Expand Down Expand Up @@ -729,6 +734,13 @@ def export_brf_to_csv(self, filename, index):
databrf = self.get_brf(self.get_brfname_at(index))
databrf.insert(0, 'LagNo', databrf.index.astype(int))

brf_date_start = databrf.date_start.strftime(format='%d/%m/%y %H:%M')
brf_date_end = databrf.date_end.strftime(format='%d/%m/%y %H:%M')

nbr_bp_lags = len(databrf['SumA'].dropna(inplace=False)) - 1
nbr_et_lags = ('N/A' if 'SumB' not in databrf.columns else
len(databrf['SumB'].dropna(inplace=False)) - 1)

fcontent = [
['Well Name :', self['Well']],
['Well ID :', self['Well ID']],
Expand All @@ -738,15 +750,13 @@ def export_brf_to_csv(self, filename, index):
['Municipality :', self['Municipality']],
['Province :', self['Province']],
[],
['BRF Start Time :',
databrf.date_start.strftime(format='%d/%m/%y %H:%M')],
['BRF End Time :',
databrf.date_end.strftime(format='%d/%m/%y %H:%M')],
['Number of BP Lags :', len(databrf['A']) - 1],
['Number of ET Lags :',
len(databrf['B'].dropna(inplace=False)) - 1],
['BRF Start Time :', brf_date_start],
['BRF End Time :', brf_date_end],
['Number of BP Lags :', nbr_bp_lags],
['Number of ET Lags :', nbr_et_lags],
['Developed with detrending :', databrf.detrending],
[]]
[]
]
fcontent.append(list(databrf.columns))
fcontent.extend(nan_as_text_tolist(databrf.values))

Expand Down Expand Up @@ -941,15 +951,16 @@ def load_dict_from_h5grp(h5grp):
FNAME = ("C:\\Users\\User\\gwhat\\Projects\\Example\\Example.gwt")
PROJET = ProjetReader(FNAME)

WLDSET = PROJET.get_wldset('3040002_15min')
print(WLDSET.glue_idnums())
wldset = PROJET.get_wldset('3040002_15min')
print(wldset.glue_idnums())
print(wldset.dirname)

data = WLDSET.data
data = wldset.data

WLDSET.brf_count()
wldset.brf_count()

filename = 'C:/Users/User/Desktop/brf_test.csv'
WLDSET.export_brf_to_csv(filename, 0)
wldset.export_brf_to_csv(filename, 0)
# glue_count = GLUEDF['count']
# dly_glue = GLUEDF['daily budget']

Expand Down

0 comments on commit 85007d6

Please sign in to comment.