From 60d43ef992410719f4e9e4ba82b1f45829152df2 Mon Sep 17 00:00:00 2001 From: Francesco Benincasa Date: Mon, 10 Oct 2022 14:50:55 +0200 Subject: [PATCH 1/8] set dev dates and changed debugging port --- conf/dates.json | 2 +- dash_server.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/dates.json b/conf/dates.json index 8fb17c4..a1a3b83 120000 --- a/conf/dates.json +++ b/conf/dates.json @@ -1 +1 @@ -dates_prod.json \ No newline at end of file +dates_dev.json \ No newline at end of file diff --git a/dash_server.py b/dash_server.py index 6bc839a..7d97375 100755 --- a/dash_server.py +++ b/dash_server.py @@ -186,4 +186,4 @@ obs_callbacks(app, cache=cache, cache_timeout=cache_timeout) if __name__ == '__main__': app.run_server(debug=True, # use_reloader=False, # processes=4, threaded=False, - host='0.0.0.0', port=7778) + host='0.0.0.0', port=7777) -- GitLab From 6f4dd45e9f0f2bb28ea3a9c6efa605ed5b8ce1ad Mon Sep 17 00:00:00 2001 From: Elliott Rose Date: Mon, 10 Oct 2022 16:48:41 +0200 Subject: [PATCH 2/8] Make Eval/Stats map generate with the first selected elements(0 index) from the models and statistics dropdowns. --- tabs/evaluation_callbacks.py | 42 ++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/tabs/evaluation_callbacks.py b/tabs/evaluation_callbacks.py index 22f2c57..01e1709 100644 --- a/tabs/evaluation_callbacks.py +++ b/tabs/evaluation_callbacks.py @@ -174,15 +174,19 @@ def register_callbacks(app, cache, cache_timeout): @app.callback( [Output('scores-map-modalbody', 'figure'), - Output('scores-map-modal', 'is_open')], + Output('scores-map-modal', 'is_open'), + Output('obs-models-dropdown-modal', 'value'), + Output('obs-statistics-dropdown-modal', 'value')], [Input('scores-map-apply', 'n_clicks'), Input('obs-models-dropdown-modal', 'value'), Input('obs-statistics-dropdown-modal', 'value'),], [State('obs-network-dropdown', 'value'), - State('obs-selection-dropdown', 'value')], + State('obs-selection-dropdown', 'value'), + State('obs-models-dropdown', 'value'), + State('obs-statistics-dropdown', 'value')], ) @cache.memoize(timeout=cache_timeout) - def scores_maps_retrieve(n_clicks, model, score, network, selection): + def scores_maps_retrieve(n_clicks, model, score, network, selection, orig_model, orig_stats): """ Read scores tables and plot maps """ from tools import get_scores_figure mb = MODEBAR_LAYOUT_TS @@ -197,22 +201,28 @@ def register_callbacks(app, cache, cache_timeout): if DEBUG: print('::: 1 :::') figure = get_scores_figure(network, model, score, selection) figure.update_layout(mb) - return figure, True - + return figure, True, model, score + raise PreventUpdate if DEBUG: print('::: 2 :::') - figure = get_scores_figure(network, model, score, selection) - figure.update_layout(mb) - return figure, True - - if model is not None and score is not None: - if DEBUG: print('::: 3 :::') - figure = get_scores_figure(network, model, score, selection) - figure.update_layout(mb) - return figure, True - - return dash.no_update, False # PreventUpdate + if orig_model and orig_stats: + figure = get_scores_figure(network, orig_model[0], orig_stats[0], selection) + figure.update_layout(mb) + return figure, True, orig_model[0], orig_stats[0] + else: + print('::: 2.5 :::') + figure = get_scores_figure(network, model, score, selection) + figure.update_layout(mb) + return figure, True, model, score + +# if model is not None and score is not None: +# if DEBUG: print('::: 3 :::') +# figure = get_scores_figure(network, model, score, selection) +# figure.update_layout(mb) +# return figure, True, orig_model[0], orig_stats[0] + + return dash.no_update, False, dash.no_update, dash.no_update # PreventUpdate @app.callback( -- GitLab From 1717ff016044a15ca93e4c8a79ab6019a1b5868d Mon Sep 17 00:00:00 2001 From: Elliott Rose Date: Mon, 10 Oct 2022 17:29:14 +0200 Subject: [PATCH 3/8] Change tabs/stats map title to include network title --- data_handler.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/data_handler.py b/data_handler.py index 4cb58ab..0d59ee4 100644 --- a/data_handler.py +++ b/data_handler.py @@ -1095,9 +1095,11 @@ class ScoresFigureHandler(object): self.sites = pd.read_table(os.path.join('./conf/', OBS[network]['sites']), delimiter=r"\s+", engine='python') self.size = 15 + network_name = 'AERONET' else: self.sites = None self.size = 7 + network_name = 'MODIS' filedir = OBS[network]['path'] filename = "{}_{}.h5".format(selection, statistic) @@ -1108,8 +1110,8 @@ class ScoresFigureHandler(object): months = ' - '.join([datetime.strptime(sel, '%Y%m').strftime("%B %Y") for sel in selection.split('-')]) - self.title = """{model} {score}
{selection}""".format( - score=STATS[statistic], model='{model}', selection=months) + self.title = """{model} - {network_name} {score}
{selection}""".format( + score=STATS[statistic], network_name=network_name, model='{model}', selection=months) self.xlon = np.array([-25, 60]) self.ylat = np.array([0, 65]) self.stat = statistic -- GitLab From dfdb68d7fa35351527d5870accfa8bf536ce2936 Mon Sep 17 00:00:00 2001 From: Francesco Benincasa Date: Tue, 11 Oct 2022 10:51:57 +0200 Subject: [PATCH 4/8] Added geojsions directories --- assets/geojsons/DREAM8-MACC | 1 + assets/geojsons/ECMWF | 1 + assets/geojsons/EMA-RegCM4 | 1 + assets/geojsons/ICON-ART | 1 + assets/geojsons/LOTOS-EUROS | 1 + assets/geojsons/MOCAGE | 1 + assets/geojsons/NASA-GEOS | 1 + assets/geojsons/NCEP-NGAC | 1 + assets/geojsons/NMMB-BSC | 1 + assets/geojsons/NMME-DREAM | 1 + assets/geojsons/SILAM | 1 + assets/geojsons/ZAMG-WRF-CHEM | 1 + assets/geojsons/median | 1 + assets/geojsons/msg-metoffice | 1 + 14 files changed, 14 insertions(+) create mode 120000 assets/geojsons/DREAM8-MACC create mode 120000 assets/geojsons/ECMWF create mode 120000 assets/geojsons/EMA-RegCM4 create mode 120000 assets/geojsons/ICON-ART create mode 120000 assets/geojsons/LOTOS-EUROS create mode 120000 assets/geojsons/MOCAGE create mode 120000 assets/geojsons/NASA-GEOS create mode 120000 assets/geojsons/NCEP-NGAC create mode 120000 assets/geojsons/NMMB-BSC create mode 120000 assets/geojsons/NMME-DREAM create mode 120000 assets/geojsons/SILAM create mode 120000 assets/geojsons/ZAMG-WRF-CHEM create mode 120000 assets/geojsons/median create mode 120000 assets/geojsons/msg-metoffice diff --git a/assets/geojsons/DREAM8-MACC b/assets/geojsons/DREAM8-MACC new file mode 120000 index 0000000..1de1bfa --- /dev/null +++ b/assets/geojsons/DREAM8-MACC @@ -0,0 +1 @@ +/data/thredds/models-repos/DREAM8-MACC \ No newline at end of file diff --git a/assets/geojsons/ECMWF b/assets/geojsons/ECMWF new file mode 120000 index 0000000..8d04d83 --- /dev/null +++ b/assets/geojsons/ECMWF @@ -0,0 +1 @@ +/data/thredds/models-repos/ECMWF \ No newline at end of file diff --git a/assets/geojsons/EMA-RegCM4 b/assets/geojsons/EMA-RegCM4 new file mode 120000 index 0000000..98f0678 --- /dev/null +++ b/assets/geojsons/EMA-RegCM4 @@ -0,0 +1 @@ +/data/thredds/models-repos/EMA-RegCM4 \ No newline at end of file diff --git a/assets/geojsons/ICON-ART b/assets/geojsons/ICON-ART new file mode 120000 index 0000000..d9a34df --- /dev/null +++ b/assets/geojsons/ICON-ART @@ -0,0 +1 @@ +/data/thredds/models-repos/ICON-ART \ No newline at end of file diff --git a/assets/geojsons/LOTOS-EUROS b/assets/geojsons/LOTOS-EUROS new file mode 120000 index 0000000..b9aa514 --- /dev/null +++ b/assets/geojsons/LOTOS-EUROS @@ -0,0 +1 @@ +/data/thredds/models-repos/LOTOS-EUROS \ No newline at end of file diff --git a/assets/geojsons/MOCAGE b/assets/geojsons/MOCAGE new file mode 120000 index 0000000..49e4d46 --- /dev/null +++ b/assets/geojsons/MOCAGE @@ -0,0 +1 @@ +/data/thredds/models-repos/MOCAGE \ No newline at end of file diff --git a/assets/geojsons/NASA-GEOS b/assets/geojsons/NASA-GEOS new file mode 120000 index 0000000..bcfb7eb --- /dev/null +++ b/assets/geojsons/NASA-GEOS @@ -0,0 +1 @@ +/data/thredds/models-repos/NASA-GEOS \ No newline at end of file diff --git a/assets/geojsons/NCEP-NGAC b/assets/geojsons/NCEP-NGAC new file mode 120000 index 0000000..697f1e5 --- /dev/null +++ b/assets/geojsons/NCEP-NGAC @@ -0,0 +1 @@ +/data/thredds/models-repos/NCEP-NGAC \ No newline at end of file diff --git a/assets/geojsons/NMMB-BSC b/assets/geojsons/NMMB-BSC new file mode 120000 index 0000000..18a1d5e --- /dev/null +++ b/assets/geojsons/NMMB-BSC @@ -0,0 +1 @@ +/data/thredds/models-repos/NMMB-BSC \ No newline at end of file diff --git a/assets/geojsons/NMME-DREAM b/assets/geojsons/NMME-DREAM new file mode 120000 index 0000000..f862f1d --- /dev/null +++ b/assets/geojsons/NMME-DREAM @@ -0,0 +1 @@ +/data/thredds/models-repos/NMME-DREAM \ No newline at end of file diff --git a/assets/geojsons/SILAM b/assets/geojsons/SILAM new file mode 120000 index 0000000..b75d9d6 --- /dev/null +++ b/assets/geojsons/SILAM @@ -0,0 +1 @@ +/data/thredds/models-repos/SILAM \ No newline at end of file diff --git a/assets/geojsons/ZAMG-WRF-CHEM b/assets/geojsons/ZAMG-WRF-CHEM new file mode 120000 index 0000000..fd28268 --- /dev/null +++ b/assets/geojsons/ZAMG-WRF-CHEM @@ -0,0 +1 @@ +/data/thredds/models-repos/ZAMG-WRF-CHEM \ No newline at end of file diff --git a/assets/geojsons/median b/assets/geojsons/median new file mode 120000 index 0000000..5df90d3 --- /dev/null +++ b/assets/geojsons/median @@ -0,0 +1 @@ +/data/thredds/models-repos/median \ No newline at end of file diff --git a/assets/geojsons/msg-metoffice b/assets/geojsons/msg-metoffice new file mode 120000 index 0000000..b828044 --- /dev/null +++ b/assets/geojsons/msg-metoffice @@ -0,0 +1 @@ +/data/thredds/models-repos/msg-metoffice \ No newline at end of file -- GitLab From 687816713e01c2ffcb108fc859f23da7ef60a9a9 Mon Sep 17 00:00:00 2001 From: Francesco Benincasa Date: Tue, 11 Oct 2022 10:54:48 +0200 Subject: [PATCH 5/8] Fixed directories --- assets/geojsons/DREAM8-MACC | 2 +- assets/geojsons/ECMWF | 2 +- assets/geojsons/EMA-RegCM4 | 2 +- assets/geojsons/ICON-ART | 2 +- assets/geojsons/LOTOS-EUROS | 2 +- assets/geojsons/MOCAGE | 2 +- assets/geojsons/NASA-GEOS | 2 +- assets/geojsons/NCEP-NGAC | 2 +- assets/geojsons/NMMB-BSC | 2 +- assets/geojsons/NMME-DREAM | 2 +- assets/geojsons/SILAM | 2 +- assets/geojsons/ZAMG-WRF-CHEM | 2 +- assets/geojsons/median | 2 +- assets/geojsons/msg-metoffice | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/assets/geojsons/DREAM8-MACC b/assets/geojsons/DREAM8-MACC index 1de1bfa..0270aa9 120000 --- a/assets/geojsons/DREAM8-MACC +++ b/assets/geojsons/DREAM8-MACC @@ -1 +1 @@ -/data/thredds/models-repos/DREAM8-MACC \ No newline at end of file +/data/products/DREAM8-MACC \ No newline at end of file diff --git a/assets/geojsons/ECMWF b/assets/geojsons/ECMWF index 8d04d83..e7d6adc 120000 --- a/assets/geojsons/ECMWF +++ b/assets/geojsons/ECMWF @@ -1 +1 @@ -/data/thredds/models-repos/ECMWF \ No newline at end of file +/data/products/ECMWF \ No newline at end of file diff --git a/assets/geojsons/EMA-RegCM4 b/assets/geojsons/EMA-RegCM4 index 98f0678..14692ea 120000 --- a/assets/geojsons/EMA-RegCM4 +++ b/assets/geojsons/EMA-RegCM4 @@ -1 +1 @@ -/data/thredds/models-repos/EMA-RegCM4 \ No newline at end of file +/data/products/EMA-RegCM4 \ No newline at end of file diff --git a/assets/geojsons/ICON-ART b/assets/geojsons/ICON-ART index d9a34df..2496b18 120000 --- a/assets/geojsons/ICON-ART +++ b/assets/geojsons/ICON-ART @@ -1 +1 @@ -/data/thredds/models-repos/ICON-ART \ No newline at end of file +/data/products/ICON-ART \ No newline at end of file diff --git a/assets/geojsons/LOTOS-EUROS b/assets/geojsons/LOTOS-EUROS index b9aa514..b3cc3b5 120000 --- a/assets/geojsons/LOTOS-EUROS +++ b/assets/geojsons/LOTOS-EUROS @@ -1 +1 @@ -/data/thredds/models-repos/LOTOS-EUROS \ No newline at end of file +/data/products/LOTOS-EUROS \ No newline at end of file diff --git a/assets/geojsons/MOCAGE b/assets/geojsons/MOCAGE index 49e4d46..37ccee1 120000 --- a/assets/geojsons/MOCAGE +++ b/assets/geojsons/MOCAGE @@ -1 +1 @@ -/data/thredds/models-repos/MOCAGE \ No newline at end of file +/data/products/MOCAGE \ No newline at end of file diff --git a/assets/geojsons/NASA-GEOS b/assets/geojsons/NASA-GEOS index bcfb7eb..71869a0 120000 --- a/assets/geojsons/NASA-GEOS +++ b/assets/geojsons/NASA-GEOS @@ -1 +1 @@ -/data/thredds/models-repos/NASA-GEOS \ No newline at end of file +/data/products/NASA-GEOS \ No newline at end of file diff --git a/assets/geojsons/NCEP-NGAC b/assets/geojsons/NCEP-NGAC index 697f1e5..e787063 120000 --- a/assets/geojsons/NCEP-NGAC +++ b/assets/geojsons/NCEP-NGAC @@ -1 +1 @@ -/data/thredds/models-repos/NCEP-NGAC \ No newline at end of file +/data/products/NCEP-NGAC \ No newline at end of file diff --git a/assets/geojsons/NMMB-BSC b/assets/geojsons/NMMB-BSC index 18a1d5e..6d340c3 120000 --- a/assets/geojsons/NMMB-BSC +++ b/assets/geojsons/NMMB-BSC @@ -1 +1 @@ -/data/thredds/models-repos/NMMB-BSC \ No newline at end of file +/data/products/NMMB-BSC \ No newline at end of file diff --git a/assets/geojsons/NMME-DREAM b/assets/geojsons/NMME-DREAM index f862f1d..05c4af5 120000 --- a/assets/geojsons/NMME-DREAM +++ b/assets/geojsons/NMME-DREAM @@ -1 +1 @@ -/data/thredds/models-repos/NMME-DREAM \ No newline at end of file +/data/products/NMME-DREAM \ No newline at end of file diff --git a/assets/geojsons/SILAM b/assets/geojsons/SILAM index b75d9d6..87258ed 120000 --- a/assets/geojsons/SILAM +++ b/assets/geojsons/SILAM @@ -1 +1 @@ -/data/thredds/models-repos/SILAM \ No newline at end of file +/data/products/SILAM \ No newline at end of file diff --git a/assets/geojsons/ZAMG-WRF-CHEM b/assets/geojsons/ZAMG-WRF-CHEM index fd28268..c9aa903 120000 --- a/assets/geojsons/ZAMG-WRF-CHEM +++ b/assets/geojsons/ZAMG-WRF-CHEM @@ -1 +1 @@ -/data/thredds/models-repos/ZAMG-WRF-CHEM \ No newline at end of file +/data/products/ZAMG-WRF-CHEM \ No newline at end of file diff --git a/assets/geojsons/median b/assets/geojsons/median index 5df90d3..05d4487 120000 --- a/assets/geojsons/median +++ b/assets/geojsons/median @@ -1 +1 @@ -/data/thredds/models-repos/median \ No newline at end of file +/data/products/median \ No newline at end of file diff --git a/assets/geojsons/msg-metoffice b/assets/geojsons/msg-metoffice index b828044..603e5e8 120000 --- a/assets/geojsons/msg-metoffice +++ b/assets/geojsons/msg-metoffice @@ -1 +1 @@ -/data/thredds/models-repos/msg-metoffice \ No newline at end of file +/data/products/msg-metoffice \ No newline at end of file -- GitLab From a765aa13c5acd1b9cd42356219e47528d0599fa2 Mon Sep 17 00:00:00 2001 From: Francesco Benincasa Date: Tue, 11 Oct 2022 13:03:27 +0200 Subject: [PATCH 6/8] Added modis in assets/geojsons --- assets/geojsons/modis | 1 + 1 file changed, 1 insertion(+) create mode 120000 assets/geojsons/modis diff --git a/assets/geojsons/modis b/assets/geojsons/modis new file mode 120000 index 0000000..f869740 --- /dev/null +++ b/assets/geojsons/modis @@ -0,0 +1 @@ +/data/daily_dashboard/obs/modis \ No newline at end of file -- GitLab From a164b3812c0d87961951c5abf8d1298b9ee6c83e Mon Sep 17 00:00:00 2001 From: Francesco Benincasa Date: Tue, 11 Oct 2022 13:05:31 +0200 Subject: [PATCH 7/8] Added prob --- assets/geojsons/prob | 1 + 1 file changed, 1 insertion(+) create mode 120000 assets/geojsons/prob diff --git a/assets/geojsons/prob b/assets/geojsons/prob new file mode 120000 index 0000000..fd58a3e --- /dev/null +++ b/assets/geojsons/prob @@ -0,0 +1 @@ +/data/daily_dashboard/prob \ No newline at end of file -- GitLab From e0010fb3ecf6e2c4343f8bb53fae149b93403a68 Mon Sep 17 00:00:00 2001 From: Francesco Benincasa Date: Tue, 11 Oct 2022 15:31:23 +0200 Subject: [PATCH 8/8] Removed not needed images, updated dash_server and forecast to avoid conflicts with master --- assets/images/AOD.png | Bin 6524 -> 0 bytes assets/images/DryDeposition.png | Bin 4188 -> 0 bytes assets/images/DustLoad.png | Bin 6997 -> 0 bytes assets/images/Prob.png | Bin 7506 -> 0 bytes assets/images/SurfaceConcentration.png | Bin 3943 -> 0 bytes assets/images/SurfaceExtintion.png | Bin 3919 -> 0 bytes assets/images/WetDeposition.png | Bin 4188 -> 0 bytes assets/sidebar.css | 13 ++++++------ dash_server.py | 21 ++++++++----------- data_handler.py | 3 +-- tabs/forecast.py | 2 +- tabs/forecast_callbacks.py | 28 ++++++++++++------------- 12 files changed, 32 insertions(+), 35 deletions(-) delete mode 100644 assets/images/AOD.png delete mode 100644 assets/images/DryDeposition.png delete mode 100644 assets/images/DustLoad.png delete mode 100644 assets/images/Prob.png delete mode 100644 assets/images/SurfaceConcentration.png delete mode 100644 assets/images/SurfaceExtintion.png delete mode 100644 assets/images/WetDeposition.png diff --git a/assets/images/AOD.png b/assets/images/AOD.png deleted file mode 100644 index 7ffc932a8fb281e63f9f09e7a22847c3b469a870..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6524 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 diff --git a/assets/images/DryDeposition.png b/assets/images/DryDeposition.png deleted file mode 100644 index 20907e8ab54061e34066349cf9252695f268bddf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4188 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 diff --git a/assets/images/DustLoad.png b/assets/images/DustLoad.png deleted file mode 100644 index a997e2460c4e46d8b67aa69b7c7e627d506e6193..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6997 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 IHOG7Z0c#nBKL7v# diff --git a/assets/images/Prob.png b/assets/images/Prob.png deleted file mode 100644 index 0a77a755802cca209766cdc3329db36b6466af5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7506 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 bG@C}eYh*%}YZY)w3NpK9akcicOWgkfrQ6P9 diff --git a/assets/images/SurfaceConcentration.png b/assets/images/SurfaceConcentration.png deleted file mode 100644 index 56b6957e2ab09a3efde4c59a007c34e1a7a9182e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3943 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 diff --git a/assets/images/SurfaceExtintion.png b/assets/images/SurfaceExtintion.png deleted file mode 100644 index 3ed2c828e22470970508a438fe13e2fadc46be24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3919 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 diff --git a/assets/sidebar.css b/assets/sidebar.css index 4a68d2e..2c3c663 100644 --- a/assets/sidebar.css +++ b/assets/sidebar.css @@ -84,7 +84,6 @@ .sidebar-first-item .Select-menu-outer { background-color: #F1B545 !important; overflow: hidden; - height: 22rem !important; } .sidebar-dropdown { @@ -201,7 +200,7 @@ /* Info button on the sidebar bottom */ .sidebar-bottom #info-button { - background-image: url("/daily_dashboard/assets/images/Icon_Info.png"); + background-image: url("assets/images/Icon_Info.png"); background-position: center; width: 52px !important; height: 52px !important; @@ -209,7 +208,7 @@ /* Download button on the sidebar bottom */ .sidebar-bottom #download-button { - background-image: url("/daily_dashboard/assets/images/Icon_Download.png"); + background-image: url("assets/images/Icon_Download.png"); background-position: 1rem; background-color: #2B383E; padding-left: 2rem; @@ -246,23 +245,25 @@ span>#was-apply { width: fit-content; } +/* .sidebar-bottom #info-button { - background-image: url("/daily_dashboard/assets/images/Icon_Info.png"); + background-image: url("assets/images/Icon_Info.png"); background-position: center; width: 2.8vw; } .sidebar-bottom #download-button { - background-image: url("/daily_dashboard/assets/images/Icon_Download.png"); + background-image: url("assets/images/Icon_Download.png"); background-position: 1rem; background-color: #2B383E; padding-left: 2rem; width: -webkit-fill-available; width: -moz-available; } +*/ .sidebar-bottom .card-text>.download-section { - background-image: url("/daily_dashboard/assets/images/download.svg"); + background-image: url("assets/images/download.svg"); background-repeat: no-repeat; background-position: 0.5rem; background-color: lightgrey; diff --git a/dash_server.py b/dash_server.py index 7d97375..2a3467b 100755 --- a/dash_server.py +++ b/dash_server.py @@ -35,12 +35,17 @@ from tabs.observations import tab_observations from tabs.observations import sidebar_observations from tabs.observations_callbacks import register_callbacks as obs_callbacks +import uuid import socket -# HOSTNAME = socket.gethostbyname_ex(socket.gethostname())[0] +HOSTNAME = socket.gethostbyname_ex(socket.gethostname())[0] -TIMEOUT = 10 +if HOSTNAME in ('bscesdust03.bsc.es', 'pre-sds-was'): + pathname = '/daily_dashboard/' +else: + pathname = '/dashboard/' +TIMEOUT = 10 fontawesome = 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css' # fontawesome = 'https://use.fontawesome.com/releases/v5.15.4/css/all.css' @@ -52,24 +57,16 @@ app = dash.Dash(__name__, dbc.themes.GRID, fontawesome ], - url_base_pathname='/daily_dashboard/', + url_base_pathname=pathname, server=srv, prevent_initial_callbacks=True ) app.css.config.serve_locally = True app.scripts.config.serve_locally = True -app.config.update({ - # as the proxy server will remove the prefix - #'routes_pathname_prefix': '/', - - # the front-end will prefix this string to the requests - # that are made to the proxy server - #'requests_pathname_prefix': '/daily_dashboard/' -}) app.config.suppress_callback_exceptions = True server = app.server -cache_dir = "/dev/shm" +cache_dir = "/dev/shm/{}".format(str(uuid.uuid1())) Path(cache_dir).mkdir(parents=True, exist_ok=True) cache_config = { diff --git a/data_handler.py b/data_handler.py index 0d59ee4..2141807 100644 --- a/data_handler.py +++ b/data_handler.py @@ -1095,12 +1095,11 @@ class ScoresFigureHandler(object): self.sites = pd.read_table(os.path.join('./conf/', OBS[network]['sites']), delimiter=r"\s+", engine='python') self.size = 15 - network_name = 'AERONET' else: self.sites = None self.size = 7 - network_name = 'MODIS' + network_name = OBS[network]['name'] filedir = OBS[network]['path'] filename = "{}_{}.h5".format(selection, statistic) tab_name = "{}_{}".format(statistic, selection) diff --git a/tabs/forecast.py b/tabs/forecast.py index 308f1c2..61bd0a9 100644 --- a/tabs/forecast.py +++ b/tabs/forecast.py @@ -421,7 +421,7 @@ def sidebar_forecast(variables, default_var, models, default_model): dbc.Card([ dbc.CardHeader(html.H2( dbc.Button("Warning Advisory System", - color="link", id='group-3-toggle', disabled=True) + color="link", id='group-3-toggle', disabled=False) )), dbc.Collapse( id='collapse-3', diff --git a/tabs/forecast_callbacks.py b/tabs/forecast_callbacks.py index bdccd18..5eab722 100644 --- a/tabs/forecast_callbacks.py +++ b/tabs/forecast_callbacks.py @@ -55,7 +55,8 @@ def register_callbacks(app, cache, cache_timeout): Output('collapse-2', 'is_open'), Output('collapse-3', 'is_open'), Output('group-2-toggle', 'disabled'), - Output('group-3-toggle', 'disabled')], + Output('group-3-toggle', 'disabled'), + Output('variable-dropdown-forecast','value')], [Input('group-1-toggle', 'n_clicks'), Input('group-2-toggle', 'n_clicks'), Input('group-3-toggle', 'n_clicks'), @@ -63,7 +64,7 @@ def register_callbacks(app, cache, cache_timeout): [State('collapse-1', 'is_open'), State('collapse-2', 'is_open'), State('collapse-3', 'is_open'),], - prevent_initial_call=False + prevent_initial_call=True ) def render_forecast_tab(modbutton, probbutton, wasbutton, var, modopen, probopen, wasopen): """ Function rendering requested tab """ @@ -74,33 +75,32 @@ def register_callbacks(app, cache, cache_timeout): if button_id == "group-1-toggle" and modbutton: if modopen is True: - return not modopen, False, False, dash.no_update, dash.no_update - return not modopen, False, False, dash.no_update, dash.no_update + return not modopen, False, False, dash.no_update, dash.no_update, dash.no_update + return not modopen, False, False, dash.no_update, dash.no_update, dash.no_update elif button_id == "group-2-toggle" and probbutton: if probopen is True: - return False, not probopen, False, dash.no_update, dash.no_update - return False, not probopen, False, dash.no_update, dash.no_update + return False, not probopen, False, dash.no_update, dash.no_update, dash.no_update + return False, not probopen, False, dash.no_update, dash.no_update, dash.no_update elif button_id == "group-3-toggle" and wasbutton: if wasopen is True: - return False, False, not wasopen, dash.no_update, dash.no_update - return False, False, not wasopen, dash.no_update, dash.no_update + return False, False, not wasopen, dash.no_update, dash.no_update, 'SCONC_DUST' + return False, False, not wasopen, dash.no_update, dash.no_update, 'SCONC_DUST' if var == 'SCONC_DUST': # raise PreventUpdate - return modopen, probopen, wasopen, False, False + return modopen, probopen, wasopen, False, False, dash.no_update elif var == 'OD550_DUST': # only models and prob can be opened if wasopen: - return True, False, False, False, True - return modopen, probopen, wasopen, False, True + return True, False, False, False, True, dash.no_update + return modopen, probopen, wasopen, False, True, dash.no_update else: if modopen: - return True, False, False, True, True - return True, False, False, True, True + return True, False, False, True, True, dash.no_update + return True, False, False, True, True, dash.no_update raise PreventUpdate - @app.callback( [Output('prob-dropdown', 'options'), Output('prob-dropdown', 'value')], -- GitLab