Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PR: Plot GLUE results only when needed and allow the window where the figures are displayed to be maximized. #206

Merged
merged 7 commits into from
May 9, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 17 additions & 27 deletions gwhat/gwrecharge/gwrecharge_gui.py
Original file line number Diff line number Diff line change
Expand Up @@ -208,39 +208,31 @@ def setup_toolbar(self):
return toolbar

def set_wldset(self, wldset):
"""
Set the namespace for the water level dataset and plot the last
results saved in the project.
"""
"""Set the namespace for the water level dataset."""
self.wldset = wldset
if wldset is not None and self.wldset.glue_count():
gluedf = self.wldset.get_glue(self.wldset.glue_idnums()[-1])
self.figstack.plot_results(gluedf)
self._setup_ranges_from_wldset()
self.btn_save_glue.set_model(gluedf)
else:
self.figstack.clear_figures()
self.btn_save_glue.set_model(None)
gluedf = None if wldset is None else wldset.get_glue_at(-1)
self._setup_ranges_from_wldset(gluedf)
self.figstack.set_gluedf(gluedf)
self.btn_save_glue.set_model(gluedf)

def _setup_ranges_from_wldset(self):
def _setup_ranges_from_wldset(self, gluedf):
"""
Set the parameter range values from the last values that were used
to produce the last GLUE results saved into the project.
"""
gluedf = self.wldset.get_glue(self.wldset.glue_idnums()[-1])
if gluedf is not None:
self.QSy_min.setValue(min(gluedf['ranges']['Sy']))
self.QSy_max.setValue(max(gluedf['ranges']['Sy']))

self.QSy_min.setValue(min(gluedf['ranges']['Sy']))
self.QSy_max.setValue(max(gluedf['ranges']['Sy']))
self.CRO_min.setValue(min(gluedf['ranges']['Cro']))
self.CRO_max.setValue(max(gluedf['ranges']['Cro']))

self.CRO_min.setValue(min(gluedf['ranges']['Cro']))
self.CRO_max.setValue(max(gluedf['ranges']['Cro']))
self.QRAS_min.setValue(min(gluedf['ranges']['RASmax']))
self.QRAS_max.setValue(max(gluedf['ranges']['RASmax']))

self.QRAS_min.setValue(min(gluedf['ranges']['RASmax']))
self.QRAS_max.setValue(max(gluedf['ranges']['RASmax']))

self._Tmelt.setValue(gluedf['params']['tmelt'])
self._CM.setValue(gluedf['params']['CM'])
self._deltaT.setValue(gluedf['params']['deltat'])
self._Tmelt.setValue(gluedf['params']['tmelt'])
self._CM.setValue(gluedf['params']['CM'])
self._deltaT.setValue(gluedf['params']['deltat'])

def get_Range(self, name):
if name == 'Sy':
Expand Down Expand Up @@ -327,9 +319,7 @@ def receive_glue_calcul(self, glue_dataframe):
self.sig_new_gluedf.emit(glue_dataframe)

self.btn_save_glue.set_model(glue_dataframe)

self.figstack.plot_results(glue_dataframe)
self.figstack.show()
self.figstack.set_gluedf(glue_dataframe)


class ExportGLUEButton(ExportDataButton):
Expand Down
46 changes: 39 additions & 7 deletions gwhat/gwrecharge/gwrecharge_plot_results.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,7 @@ def __init__(self, parent=None):
super(FigureStackManager, self).__init__(parent)
self.setMinimumSize(1250, 650)
self.setWindowTitle('Recharge Results')
self.setWindowFlags(Qt.Window |
Qt.CustomizeWindowHint |
Qt.WindowMinimizeButtonHint |
Qt.WindowCloseButtonHint)
self.setWindowFlags(Qt.Window)
self.setWindowIcon(icons.get_icon('master'))
self.figmanagers = []
self.setup()
Expand Down Expand Up @@ -98,22 +95,57 @@ def setup_stack(self):

self.figmanagers = [fig_rechg_glue, fig_watbudg_glue,
fig_avg_yearly_budg, fig_avg_monthly_budg]
self.__plot_results_pending = [True] * len(self.figmanagers)

self.stack = QTabWidget()
self.stack.addTab(fig_rechg_glue, 'Recharge')
self.stack.addTab(fig_watbudg_glue, 'Yearly Budget')
self.stack.addTab(fig_avg_yearly_budg, 'Yearly Avg. Budget')
self.stack.addTab(fig_avg_monthly_budg, 'Monthly Avg. Budget')
self.stack.currentChanged.connect(self.plot_results)

def set_gluedf(self, gluedf):
"""Set the namespace for the GLUE results dataset."""
self.gluedf = gluedf
if gluedf is None:
self.__plot_results_pending = [False] * len(self.figmanagers)
self.clear_figures()
else:
self.__plot_results_pending = [True] * len(self.figmanagers)
self.plot_results()

def plot_results(self, glue_df):
for figmanager in self.figmanagers:
figmanager.figcanvas.plot(glue_df)
def plot_results(self):
"""
Plot the results of the figure canvas that is currentlyvisible if
it is not already up-to-date.
"""
if not self.isVisible():
return

index = self.stack.currentIndex()
if self.__plot_results_pending[index] is True:
QApplication.setOverrideCursor(Qt.WaitCursor)
self.__plot_results_pending[index] = False
if self.gluedf is not None:
self.figmanagers[index].figcanvas.plot(self.gluedf)
else:
self.figmanagers[index].figcanvas.clear_figure(silent=False)
QApplication.restoreOverrideCursor()

def clear_figures(self):
"""Clear the figures of all figure canvas of the stack."""
for figmanager in self.figmanagers:
figmanager.figcanvas.clear_figure(silent=False)

def show(self):
"""Qt method override."""
if self.isMinimized():
self.setWindowState(self.windowState() & ~Qt.WindowMinimized)
else:
self.resize(self.size())
super(FigureStackManager, self).show()
self.plot_results()


# ---- Figure setp panels

Expand Down
32 changes: 16 additions & 16 deletions gwhat/tests/test_dwnld_weather_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,19 +108,19 @@ def test_load_stationlist(downloader_bot, mocker):
'45.62', '-73.13', '30.0'],
["MONTREAL/ST-HUBERT A", "5490", "1928", "2015", "QC", "7027320",
'45.52', '-73.42', '27.4'],
["SABREVOIS", "5444", "1975", "2017", "QC", "7026734",
["SABREVOIS", "5444", "1975", "2018", "QC", "7026734",
'45.22', '-73.2', '38.1'],
["ROUGEMONT", "5442", "1956", "1985", "QC", "7026700",
'45.43', '-73.1', '39.9'],
["MONT ST HILAIRE", "5423", "1960", "1969", "QC", "7025330",
'45.55', '-73.08', '173.7'],
["MARIEVILLE", "5406", "1960", "2017", "QC", "7024627",
["MARIEVILLE", "5406", "1960", "2018", "QC", "7024627",
'45.4', '-73.13', '38.0'],
["LAPRAIRIE", "5389", "1963", "2017", "QC", "7024100",
["LAPRAIRIE", "5389", "1963", "2018", "QC", "7024100",
'45.38', '-73.43', '30.0'],
["IBERVILLE", "5376", "1963", "2016", "QC", "7023270",
'45.33', '-73.25', '30.5'],
["FARNHAM", "5358", "1917", "2017", "QC", "7022320",
["FARNHAM", "5358", "1917", "2018", "QC", "7022320",
'45.3', '-72.9', '68.0']
]

Expand Down Expand Up @@ -167,15 +167,15 @@ def test_delete_add_stations(downloader_bot, mocker):
'45.29', '-73.35', '43.8'],
["STE MADELEINE", "5501", "1979", "2016", "QC", "7027517",
'45.62', '-73.13', '30.0'],
["SABREVOIS", "5444", "1975", "2017", "QC", "7026734",
["SABREVOIS", "5444", "1975", "2018", "QC", "7026734",
'45.22', '-73.2', '38.1'],
["MARIEVILLE", "5406", "1960", "2017", "QC", "7024627",
["MARIEVILLE", "5406", "1960", "2018", "QC", "7024627",
'45.4', '-73.13', '38.0'],
["LAPRAIRIE", "5389", "1963", "2017", "QC", "7024100",
["LAPRAIRIE", "5389", "1963", "2018", "QC", "7024100",
'45.38', '-73.43', '30.0'],
["IBERVILLE", "5376", "1963", "2016", "QC", "7023270",
'45.33', '-73.25', '30.5'],
["FARNHAM", "5358", "1917", "2017", "QC", "7022320",
["FARNHAM", "5358", "1917", "2018", "QC", "7022320",
'45.3', '-72.9', '68.0']
]

Expand All @@ -199,15 +199,15 @@ def test_delete_add_stations(downloader_bot, mocker):
'45.29', '-73.35', '43.8'],
["STE MADELEINE", "5501", "1979", "2016", "QC", "7027517",
'45.62', '-73.13', '30.0'],
["SABREVOIS", "5444", "1975", "2017", "QC", "7026734",
["SABREVOIS", "5444", "1975", "2018", "QC", "7026734",
'45.22', '-73.2', '38.1'],
["MARIEVILLE", "5406", "1960", "2017", "QC", "7024627",
["MARIEVILLE", "5406", "1960", "2018", "QC", "7024627",
'45.4', '-73.13', '38.0'],
["LAPRAIRIE", "5389", "1963", "2017", "QC", "7024100",
["LAPRAIRIE", "5389", "1963", "2018", "QC", "7024100",
'45.38', '-73.43', '30.0'],
["IBERVILLE", "5376", "1963", "2016", "QC", "7023270",
'45.33', '-73.25', '30.5'],
["FARNHAM", "5358", "1917", "2017", "QC", "7022320",
["FARNHAM", "5358", "1917", "2018", "QC", "7022320",
'45.3', '-72.9', '68.0'],
["MONTREAL/ST-HUBERT A", "5490", "1928", "2015", "QC", "7027320",
'45.52', '-73.42', '27.4'],
Expand Down Expand Up @@ -248,15 +248,15 @@ def test_download_data(downloader_bot, mocker):
'45.29', '-73.35', '43.8'],
["STE MADELEINE", "5501", "1979", "2016", "QC", "7027517",
'45.62', '-73.13', '30.0'],
["SABREVOIS", "5444", "1975", "2017", "QC", "7026734",
["SABREVOIS", "5444", "1975", "2018", "QC", "7026734",
'45.22', '-73.2', '38.1'],
["MARIEVILLE", "5406", "1960", "2017", "QC", "7024627",
["MARIEVILLE", "5406", "1960", "2018", "QC", "7024627",
'45.4', '-73.13', '38.0'],
["LAPRAIRIE", "5389", "1963", "2017", "QC", "7024100",
["LAPRAIRIE", "5389", "1963", "2018", "QC", "7024100",
'45.38', '-73.43', '30.0'],
["IBERVILLE", "5376", "1963", "2016", "QC", "7023270",
'45.33', '-73.25', '30.5'],
["FARNHAM", "5358", "1917", "2017", "QC", "7022320",
["FARNHAM", "5358", "1917", "2018", "QC", "7022320",
'45.3', '-72.9', '68.0']
]

Expand Down
8 changes: 4 additions & 4 deletions gwhat/tests/test_search_weather_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,19 +50,19 @@ def station_finder_bot(qtbot):
'45.62', '-73.13', '30.0'],
["MONTREAL/ST-HUBERT A", "5490", "1928", "2015", "QC", "7027320",
'45.52', '-73.42', '27.4'],
["SABREVOIS", "5444", "1975", "2017", "QC", "7026734",
["SABREVOIS", "5444", "1975", "2018", "QC", "7026734",
'45.22', '-73.2', '38.1'],
["ROUGEMONT", "5442", "1956", "1985", "QC", "7026700",
'45.43', '-73.1', '39.9'],
["MONT ST HILAIRE", "5423", "1960", "1969", "QC", "7025330",
'45.55', '-73.08', '173.7'],
["MARIEVILLE", "5406", "1960", "2017", "QC", "7024627",
["MARIEVILLE", "5406", "1960", "2018", "QC", "7024627",
'45.4', '-73.13', '38.0'],
["LAPRAIRIE", "5389", "1963", "2017", "QC", "7024100",
["LAPRAIRIE", "5389", "1963", "2018", "QC", "7024100",
'45.38', '-73.43', '30.0'],
["IBERVILLE", "5376", "1963", "2016", "QC", "7023270",
'45.33', '-73.25', '30.5'],
["FARNHAM", "5358", "1917", "2017", "QC", "7022320",
["FARNHAM", "5358", "1917", "2018", "QC", "7022320",
'45.3', '-72.9', '68.0']
]

Expand Down