diff --git a/QuickView-app.png b/QuickView-app.png deleted file mode 100644 index 01429e3..0000000 Binary files a/QuickView-app.png and /dev/null differ diff --git a/README.md b/README.md index fc3ec4d..d92593f 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ provides intuitive access to [ParaView](https://www.paraview.org/)'s powerful analysis and visualization capabilities without requiring a steep learning curve. -![Application](https://raw.githubusercontent.com/Kitware/QuickView/master/QuickView-app.png) +![Application](https://raw.githubusercontent.com/Kitware/QuickView/master/docs/public/website_banner.png) ## Key Features diff --git a/docs/.vitepress/config.mjs b/docs/.vitepress/config.mjs index 0fd7034..7cc5c5e 100644 --- a/docs/.vitepress/config.mjs +++ b/docs/.vitepress/config.mjs @@ -3,9 +3,9 @@ import { defineConfig } from "vitepress"; // https://vitepress.dev/reference/site-config export default defineConfig({ base: "/QuickView", - title: "QuickView Family", + title: "The QuickView Family", description: - "How to use the QuickView family of tools to look at your simulation data", + "How to use the QuickView family of tools to look at Earth system simulation data", head: [["link", { rel: "stylesheet", href: "custom.css" }]], themeConfig: { // https://vitepress.dev/reference/default-theme-config diff --git a/docs/guides/quickview/index.md b/docs/guides/quickview/index.md index 3ac6679..d174e60 100644 --- a/docs/guides/quickview/index.md +++ b/docs/guides/quickview/index.md @@ -1,5 +1,7 @@ # What is QuickView? +![QuickView logo](/public/icon-full.png){ width="20%", align=right } + **QuickView** is an open-source, interactive visualization tool designed to help Earth system modelers take a quick look at a collection of physical quantities in their simulation files. @@ -13,7 +15,7 @@ QuickView's Python- and provides intuitive access to [ParaView](https://www.paraview.org/)'s powerful analysis and visualization capabilities without requiring a steep learning curve. -## Useful links: see [Quickstart](./quickstart). +Useful links: see [Quickstart](./quickstart). ## Why QuickView? diff --git a/docs/guides/quickview/miscellaneous.md b/docs/guides/quickview/miscellaneous.md index 687a9c3..7d9da5f 100644 --- a/docs/guides/quickview/miscellaneous.md +++ b/docs/guides/quickview/miscellaneous.md @@ -2,7 +2,7 @@ This page summarizes several additional convenient features in QuickView. -## Choosing map projection and extent +## Choosing map projection and geographical region {#maps} The map projection used for the contour plots can be changed using the mini menu activated by a click on the Earth icon in the vertical tool bar—or by keyboard shortcuts: @@ -14,7 +14,7 @@ activated by a click on the Earth icon in the vertical tool bar—or by keyboard ![lat/lon sliders](./screenshots/latlon_sliders.png){ width="70%", align=right } -The map extent, i.e., the latitude-longitude bounds to be displayed in the contour plots, +The geographical region, i.e., the latitude and longitude bounds to be displayed in the contour plots, can be adjusted using the sliders in the lat/lon cropping panel activated by a click on the Earth grid icon in the vertical toolbar. @@ -29,7 +29,7 @@ or animations for presentations and manuscripts, etc.: ![image download](./screenshots/image_download.png){ width="20%", align=right } - A click on the **camera icon** at the end of the vertical **toolbar** saves the entire - viewport—in its current layout—to the local computer as `FullPanel.png`. + viewport—in its current layout—to the local computer as `Viewport.png`. - A click on the **camera icon** next to the variable name **inside a view panel** saves that single view as a `.png` file. The file name starts with the variable name; diff --git a/docs/guides/quickview/quickstart.md b/docs/guides/quickview/quickstart.md index e48f36d..f393893 100644 --- a/docs/guides/quickview/quickstart.md +++ b/docs/guides/quickview/quickstart.md @@ -1,5 +1,6 @@ # Quickstart + - Install and launch the app [on a personal computer](../install_and_launch) or use it [at NERSC](/nersc/index). - Download [connectivity files](https://doi.org/10.5281/zenodo.16908566) for @@ -12,12 +13,19 @@ - [Simulation files: what is supported?](../simulation_data) - [State files: how to use them?](./file_selection#state-files) + + +![QuickView logo](/public/icon-full.png){ width="20%", align=right } + - How to use QuickView - [The graphical UI](./ui_overview) - [Keyboard shortcuts](./shortcuts) - - [Comprehensive variable-selection capability](./variable_selection) + - [File loading](./file_selection) + - [Variables search and load](./variable_selection) - [Viewport layout options](./viewport_layout) - - [Customization of individual plots](./individual_views) + - [Customization of individual views](./individual_views) + - [Map projections](./miscellaneous#maps) + - [Images/animation export](./miscellaneous#save-vis) - Visit the GitHub [repository](https://github.com/Kitware/QuickView) - Report bugs or request features using [GitHub Issues](https://github.com/Kitware/QuickView/issues) diff --git a/docs/guides/quickview/screenshots/animation_control_panel_and_menu.png b/docs/guides/quickview/screenshots/animation_control_panel_and_menu.png index 34c6e26..20ded2a 100644 Binary files a/docs/guides/quickview/screenshots/animation_control_panel_and_menu.png and b/docs/guides/quickview/screenshots/animation_control_panel_and_menu.png differ diff --git a/docs/guides/quickview/screenshots/animation_download.png b/docs/guides/quickview/screenshots/animation_download.png index 32cab0d..cf26251 100644 Binary files a/docs/guides/quickview/screenshots/animation_download.png and b/docs/guides/quickview/screenshots/animation_download.png differ diff --git a/docs/guides/quickview/screenshots/auto_or_fixed_ranges.png b/docs/guides/quickview/screenshots/auto_or_fixed_ranges.png index e14c951..9e6f4ae 100644 Binary files a/docs/guides/quickview/screenshots/auto_or_fixed_ranges.png and b/docs/guides/quickview/screenshots/auto_or_fixed_ranges.png differ diff --git a/docs/guides/quickview/screenshots/dimension_slider_expanded.png b/docs/guides/quickview/screenshots/dimension_slider_expanded.png new file mode 100644 index 0000000..dd82638 Binary files /dev/null and b/docs/guides/quickview/screenshots/dimension_slider_expanded.png differ diff --git a/docs/guides/quickview/screenshots/file_loaded.png b/docs/guides/quickview/screenshots/file_loaded.png index fa1ed7a..b27b77e 100644 Binary files a/docs/guides/quickview/screenshots/file_loaded.png and b/docs/guides/quickview/screenshots/file_loaded.png differ diff --git a/docs/guides/quickview/screenshots/file_loading_dialogue.png b/docs/guides/quickview/screenshots/file_loading_dialogue.png index 7216b94..1dbe1e4 100644 Binary files a/docs/guides/quickview/screenshots/file_loading_dialogue.png and b/docs/guides/quickview/screenshots/file_loading_dialogue.png differ diff --git a/docs/guides/quickview/screenshots/image_download.png b/docs/guides/quickview/screenshots/image_download.png index cc10ebe..7f08608 100644 Binary files a/docs/guides/quickview/screenshots/image_download.png and b/docs/guides/quickview/screenshots/image_download.png differ diff --git a/docs/guides/quickview/screenshots/latlon_sliders.png b/docs/guides/quickview/screenshots/latlon_sliders.png index 0a3e178..2e348c8 100644 Binary files a/docs/guides/quickview/screenshots/latlon_sliders.png and b/docs/guides/quickview/screenshots/latlon_sliders.png differ diff --git a/docs/guides/quickview/screenshots/main_toolbar_compact_or_expanded.png b/docs/guides/quickview/screenshots/main_toolbar_compact_or_expanded.png deleted file mode 100644 index 3360a06..0000000 Binary files a/docs/guides/quickview/screenshots/main_toolbar_compact_or_expanded.png and /dev/null differ diff --git a/docs/guides/quickview/screenshots/quickview-state_animation_download.json b/docs/guides/quickview/screenshots/quickview-state_animation_download.json index 71d938b..c1de562 100644 --- a/docs/guides/quickview/screenshots/quickview-state_animation_download.json +++ b/docs/guides/quickview/screenshots/quickview-state_animation_download.json @@ -1,7 +1,7 @@ { "origin": { "user": "huiwan", - "created": "2026-04-29 15:22:02.256346", + "created": "2026-05-11 19:51:49.474706", "comment": "" }, "files": { @@ -19,9 +19,31 @@ "grouped": false, "active": "auto_layout", "tools": [ - "adjust-databounds" + "animation-controls" ], - "help": false + "help": false, + "camera": { + "zoom": 9561555.450027756, + "position": [ + 0.0, + 0.0, + 73673405.62958878 + ], + "focal_point": [ + 0.0, + 0.0, + 0.5 + ], + "view_up": [ + 0.0, + 1.0, + 0.0 + ], + "clipping_range": [ + 72461319.21669145, + 75376876.26347312 + ] + } }, "data-selection": { "crop_longitude": [ @@ -33,7 +55,7 @@ 90 ], "projection": [ - "Mollweide" + "Robinson" ], "animation_track": "lev", "lev_idx": 0 @@ -111,11 +133,11 @@ "break_row": false, "override_range": false, "color_range": [ - 37851584.0, - 432790592.0 + 4738292.5, + 4228730624.0 ], - "color_value_min": "37851584.0", - "color_value_max": "432790592.0" + "color_value_min": "4738292.5", + "color_value_max": "4228730624.0" } }, { @@ -138,11 +160,11 @@ "break_row": false, "override_range": false, "color_range": [ - 89625480.0, - 12674042880.0 + 10611544.0, + 15063609344.0 ], - "color_value_min": "89625480.0", - "color_value_max": "12674042880.0" + "color_value_min": "10611544.0", + "color_value_max": "15063609344.0" } } ] diff --git a/docs/guides/quickview/screenshots/quickview-state_image_download.json b/docs/guides/quickview/screenshots/quickview-state_image_download.json new file mode 100644 index 0000000..31a56d0 --- /dev/null +++ b/docs/guides/quickview/screenshots/quickview-state_image_download.json @@ -0,0 +1,171 @@ +{ + "origin": { + "user": "huiwan", + "created": "2026-05-11 20:02:10.134181", + "comment": "" + }, + "files": { + "simulation": "/global/cfs/cdirs/m4359/www/huiwan/vis/202601_group_compare/amicphys_r8_prog.eam.h0.2010_2019.ANN.nc", + "connectivity": "/global/cfs/cdirs/m4359/www/huiwan/vis/202601_group_compare/connectivity_ne30pg2_TEMPEST.scrip.nc" + }, + "variables-selection": [ + "AODALL", + "AODBC", + "num_a1", + "num_a2" + ], + "layout": { + "aspect-ratio": 0.5, + "grouped": false, + "active": "auto_layout", + "tools": [ + "animation-controls" + ], + "help": false, + "camera": { + "zoom": 9561555.450027756, + "position": [ + 0.0, + 0.0, + 73673405.62958878 + ], + "focal_point": [ + 0.0, + 0.0, + 0.5 + ], + "view_up": [ + 0.0, + 1.0, + 0.0 + ], + "clipping_range": [ + 72461319.21669145, + 75376876.26347312 + ] + } + }, + "data-selection": { + "crop_longitude": [ + -180, + 180 + ], + "crop_latitude": [ + -90, + 90 + ], + "projection": [ + "Robinson" + ], + "animation_track": "lev", + "lev_idx": 1 + }, + "views": [ + { + "type": [ + "time", + "ncol" + ], + "name": "AODALL", + "config": { + "preset": "BuGnYl", + "invert": false, + "color_blind": false, + "use_log_scale": "linear", + "discrete_log": false, + "n_discrete_colors": 1, + "order": 1, + "size": 6, + "offset": 0, + "break_row": false, + "override_range": false, + "color_range": [ + 0.01264046598225832, + 1.01161527633667 + ], + "color_value_min": "0.01264046598225832", + "color_value_max": "1.01161527633667" + } + }, + { + "type": [ + "time", + "ncol" + ], + "name": "AODBC", + "config": { + "preset": "BuGnYl", + "invert": false, + "color_blind": false, + "use_log_scale": "linear", + "discrete_log": false, + "n_discrete_colors": 1, + "order": 2, + "size": 6, + "offset": 0, + "break_row": false, + "override_range": false, + "color_range": [ + 0.0006716852076351643, + 0.08890804648399353 + ], + "color_value_min": "0.0006716852076351643", + "color_value_max": "0.08890804648399353" + } + }, + { + "type": [ + "time", + "lev", + "ncol" + ], + "name": "num_a1", + "config": { + "preset": "BuGnYl", + "invert": false, + "color_blind": false, + "use_log_scale": "linear", + "discrete_log": false, + "n_discrete_colors": 1, + "order": 3, + "size": 6, + "offset": 0, + "break_row": false, + "override_range": false, + "color_range": [ + 2050.944091796875, + 30090.498046875 + ], + "color_value_min": "2050.944091796875", + "color_value_max": "30090.498046875" + } + }, + { + "type": [ + "time", + "lev", + "ncol" + ], + "name": "num_a2", + "config": { + "preset": "BuGnYl", + "invert": false, + "color_blind": false, + "use_log_scale": "linear", + "discrete_log": false, + "n_discrete_colors": 1, + "order": 4, + "size": 6, + "offset": 0, + "break_row": false, + "override_range": false, + "color_range": [ + 7832657.0, + 9135130.0 + ], + "color_value_min": "7832657.0", + "color_value_max": "9135130.0" + } + } + ] +} \ No newline at end of file diff --git a/docs/guides/quickview/screenshots/quickview-state_individual_views.json b/docs/guides/quickview/screenshots/quickview-state_individual_views.json new file mode 100644 index 0000000..f451741 --- /dev/null +++ b/docs/guides/quickview/screenshots/quickview-state_individual_views.json @@ -0,0 +1,87 @@ +{ + "origin": { + "user": "huiwan", + "created": "2026-05-11 19:32:05.001618", + "comment": "" + }, + "files": { + "simulation": "/global/cfs/cdirs/m4359/www/huiwan/vis/202604_documentation/v2_F20TR_nc10_ndgAllLevs_pd.eam.h0.2008-01.nc", + "connectivity": "/global/cfs/cdirs/m4359/www/huiwan/vis/202604_documentation/connectivity_ne30pg2_TEMPEST.scrip.nc" + }, + "variables-selection": [ + "ncl_a3" + ], + "layout": { + "aspect-ratio": 0.5, + "grouped": false, + "active": "auto_layout", + "tools": [], + "help": false, + "camera": { + "zoom": 10015307.223792594, + "position": [ + 0.0, + 0.0, + 77928734.37784009 + ], + "focal_point": [ + 0.0, + 0.0, + 0.5 + ], + "view_up": [ + 0.0, + 1.0, + 0.0 + ], + "clipping_range": [ + 76155628.27002007, + 80348677.3302033 + ] + } + }, + "data-selection": { + "crop_longitude": [ + -180, + 180 + ], + "crop_latitude": [ + -90, + 90 + ], + "projection": [ + "Mollweide" + ], + "animation_track": "lev", + "lev_idx": 71 + }, + "views": [ + { + "type": [ + "time", + "lev", + "ncol" + ], + "name": "ncl_a3", + "config": { + "preset": "BuGnYl", + "invert": false, + "color_blind": false, + "use_log_scale": "linear", + "discrete_log": false, + "n_discrete_colors": 4, + "order": 1, + "size": 12, + "offset": 0, + "break_row": false, + "override_range": false, + "color_range": [ + 9.864797347047816e-12, + 1.870906274348272e-08 + ], + "color_value_min": "9.864797347047816e-12", + "color_value_max": "1.870906274348272e-08" + } + } + ] +} \ No newline at end of file diff --git a/docs/guides/quickview/screenshots/quickview-state_latlon_sliders.json b/docs/guides/quickview/screenshots/quickview-state_latlon_sliders.json index dea23b0..d80ed7b 100644 --- a/docs/guides/quickview/screenshots/quickview-state_latlon_sliders.json +++ b/docs/guides/quickview/screenshots/quickview-state_latlon_sliders.json @@ -1,7 +1,7 @@ { "origin": { "user": "huiwan", - "created": "2026-04-29 15:25:40.465295", + "created": "2026-05-11 19:47:37.569618", "comment": "" }, "files": { @@ -21,7 +21,29 @@ "tools": [ "adjust-databounds" ], - "help": false + "help": false, + "camera": { + "zoom": 4777405.644235796, + "position": [ + 5668611.25, + 4312577.5, + 36836702.20333518 + ], + "focal_point": [ + 5668611.25, + 4312577.5, + 0.5 + ], + "view_up": [ + 0.0, + 1.0, + 0.0 + ], + "clipping_range": [ + 35992073.55422117, + 37988766.87002192 + ] + } }, "data-selection": { "crop_longitude": [ @@ -111,11 +133,11 @@ "break_row": false, "override_range": false, "color_range": [ - 89570888.0, - 432790592.0 + 30360974.0, + 4228730624.0 ], - "color_value_min": "89570888.0", - "color_value_max": "432790592.0" + "color_value_min": "30360974.0", + "color_value_max": "4228730624.0" } }, { @@ -138,11 +160,11 @@ "break_row": false, "override_range": false, "color_range": [ - 90726912.0, - 963400576.0 + 13090005.0, + 15063609344.0 ], - "color_value_min": "90726912.0", - "color_value_max": "963400576.0" + "color_value_min": "13090005.0", + "color_value_max": "15063609344.0" } } ] diff --git a/docs/guides/quickview/screenshots/quickview-state_quickview_ui.json b/docs/guides/quickview/screenshots/quickview-state_quickview_ui.json index f9d1bb4..08397ab 100644 --- a/docs/guides/quickview/screenshots/quickview-state_quickview_ui.json +++ b/docs/guides/quickview/screenshots/quickview-state_quickview_ui.json @@ -1,7 +1,7 @@ { "origin": { "user": "huiwan", - "created": "2026-04-29 15:45:55.249432", + "created": "2026-05-11 13:43:44.026889", "comment": "" }, "files": { @@ -15,17 +15,39 @@ "CLDLOW" ], "layout": { - "aspect-ratio": 0.45, + "aspect-ratio": 0.5, "grouped": false, "active": "auto_layout", "tools": [ "select-fields", "select-slice-time", "animation-controls", - "adjust-layout", - "adjust-databounds" + "adjust-databounds", + "adjust-layout" ], - "help": false + "help": false, + "camera": { + "zoom": 9542795.040380873, + "position": [ + 0.0, + 0.0, + 73673405.62958878 + ], + "focal_point": [ + 0.0, + 0.0, + 0.5 + ], + "view_up": [ + 0.0, + 1.0, + 0.0 + ], + "clipping_range": [ + 71987162.971775, + 75973741.28534032 + ] + } }, "data-selection": { "crop_longitude": [ @@ -56,7 +78,7 @@ "color_blind": false, "use_log_scale": "linear", "discrete_log": false, - "n_discrete_colors": 1, + "n_discrete_colors": 4, "order": 7, "size": 6, "offset": 0, @@ -83,7 +105,7 @@ "color_blind": false, "use_log_scale": "linear", "discrete_log": false, - "n_discrete_colors": 1, + "n_discrete_colors": 4, "order": 5, "size": 6, "offset": 0, @@ -110,7 +132,7 @@ "color_blind": false, "use_log_scale": "linear", "discrete_log": false, - "n_discrete_colors": 1, + "n_discrete_colors": 4, "order": 3, "size": 6, "offset": 0, @@ -136,7 +158,7 @@ "color_blind": false, "use_log_scale": "linear", "discrete_log": false, - "n_discrete_colors": 1, + "n_discrete_colors": 4, "order": 2, "size": 6, "offset": 0, diff --git a/docs/guides/quickview/screenshots/quickview-state_state_import_export.json b/docs/guides/quickview/screenshots/quickview-state_state_import_export.json new file mode 100644 index 0000000..ff528d9 --- /dev/null +++ b/docs/guides/quickview/screenshots/quickview-state_state_import_export.json @@ -0,0 +1,113 @@ +{ + "origin": { + "user": "huiwan", + "created": "2026-05-11 14:18:57.149671", + "comment": "" + }, + "files": { + "simulation": "/global/cfs/cdirs/m4359/www/huiwan/vis/202601_ne1024/output.scream.Cess.hourly2DVars.INSTANT.nhours_x1.2019-09-02-03600.nc", + "connectivity": "/global/cfs/cdirs/m4359/www/huiwan/vis/202601_ne1024/connectivity_ne1024pg2_TEMPEST.scrip.nc" + }, + "variables-selection": [ + "LW_flux_up_at_model_top", + "precip_total_surf_mass_flux" + ], + "layout": { + "aspect-ratio": 0.5, + "grouped": true, + "active": "auto_layout", + "tools": [], + "help": false, + "camera": { + "zoom": 3374338.862067296, + "position": [ + -11769607.25, + 337433.8862067296, + 28027417.239626117 + ], + "focal_point": [ + -11769607.25, + 337433.8862067296, + 0.5 + ], + "view_up": [ + 0.0, + 1.0, + 0.0 + ], + "clipping_range": [ + 27225812.404588137, + 29104075.2620484 + ] + } + }, + "data-selection": { + "crop_longitude": [ + -180, + -60 + ], + "crop_latitude": [ + -30, + 30 + ], + "projection": [ + "Mollweide" + ], + "animation_track": "time", + "time_idx": 50 + }, + "views": [ + { + "type": [ + "time", + "ncol" + ], + "name": "LW_flux_up_at_model_top", + "config": { + "preset": "BuGnYl", + "invert": true, + "color_blind": false, + "use_log_scale": "linear", + "discrete_log": false, + "n_discrete_colors": 4, + "order": 1, + "size": 6, + "offset": 0, + "break_row": false, + "override_range": true, + "color_range": [ + 30.0, + 300.0 + ], + "color_value_min": "30", + "color_value_max": "300" + } + }, + { + "type": [ + "time", + "ncol" + ], + "name": "precip_total_surf_mass_flux", + "config": { + "preset": "erdc_iceFire_H", + "invert": false, + "color_blind": false, + "use_log_scale": "log", + "discrete_log": false, + "n_discrete_colors": 4, + "order": 2, + "size": 6, + "offset": 0, + "break_row": false, + "override_range": true, + "color_range": [ + 1e-10, + 1e-05 + ], + "color_value_min": "1e-10", + "color_value_max": "1e-05" + } + } + ] +} \ No newline at end of file diff --git a/docs/guides/quickview/screenshots/quickview-state_viewport_control.json b/docs/guides/quickview/screenshots/quickview-state_viewport_control.json new file mode 100644 index 0000000..dc93201 --- /dev/null +++ b/docs/guides/quickview/screenshots/quickview-state_viewport_control.json @@ -0,0 +1,225 @@ +{ + "origin": { + "user": "huiwan", + "created": "2026-05-11 17:10:40.766001", + "comment": "" + }, + "files": { + "simulation": "/global/cfs/cdirs/m4359/www/huiwan/vis/202604_documentation/v2_F20TR_nc10_ndgAllLevs_pd.eam.h0.2008-01.nc", + "connectivity": "/global/cfs/cdirs/m4359/www/huiwan/vis/202604_documentation/connectivity_ne30pg2_TEMPEST.scrip.nc" + }, + "variables-selection": [ + "area", + "WP2_CLUBB", + "WP3_CLUBB", + "AODALL", + "AODDUST", + "AODBC" + ], + "layout": { + "aspect-ratio": 0.5, + "grouped": true, + "active": "auto_layout", + "tools": [ + "adjust-layout", + "select-fields" + ], + "help": false, + "camera": { + "zoom": 10018444.38132521, + "position": [ + 0.0, + 0.0, + 77928734.37784009 + ], + "focal_point": [ + 0.0, + 0.0, + 0.5 + ], + "view_up": [ + 0.0, + 1.0, + 0.0 + ], + "clipping_range": [ + 77149445.54406169, + 79097666.1385077 + ] + } + }, + "data-selection": { + "crop_longitude": [ + -180, + 180 + ], + "crop_latitude": [ + -90, + 90 + ], + "projection": [ + "Mollweide" + ], + "animation_track": "ilev", + "ilev_idx": 60 + }, + "views": [ + { + "type": [ + "ncol" + ], + "name": "area", + "config": { + "preset": "BuGnYl", + "invert": false, + "color_blind": false, + "use_log_scale": "linear", + "discrete_log": false, + "n_discrete_colors": 4, + "order": 1, + "size": 4, + "offset": 0, + "break_row": false, + "override_range": false, + "color_range": [ + 0.0004909351566060577, + 0.0006852333184023954 + ], + "color_value_min": "0.0004909351566060577", + "color_value_max": "0.0006852333184023954" + } + }, + { + "type": [ + "time", + "ilev", + "ncol" + ], + "name": "WP2_CLUBB", + "config": { + "preset": "BuGnYl", + "invert": false, + "color_blind": false, + "use_log_scale": "linear", + "discrete_log": false, + "n_discrete_colors": 4, + "order": 2, + "size": 4, + "offset": 0, + "break_row": false, + "override_range": true, + "color_range": [ + 0.0, + 0.4 + ], + "color_value_min": "0.", + "color_value_max": "0.4" + } + }, + { + "type": [ + "time", + "ilev", + "ncol" + ], + "name": "WP3_CLUBB", + "config": { + "preset": "BuGnYl", + "invert": false, + "color_blind": false, + "use_log_scale": "linear", + "discrete_log": false, + "n_discrete_colors": 4, + "order": 3, + "size": 4, + "offset": 0, + "break_row": false, + "override_range": true, + "color_range": [ + -0.01, + 0.21146179735660553 + ], + "color_value_min": "-0.01", + "color_value_max": "0.21146179735660553" + } + }, + { + "type": [ + "time", + "ncol" + ], + "name": "AODALL", + "config": { + "preset": "BuGnYl", + "invert": false, + "color_blind": false, + "use_log_scale": "linear", + "discrete_log": false, + "n_discrete_colors": 4, + "order": 4, + "size": 4, + "offset": 0, + "break_row": false, + "override_range": false, + "color_range": [ + 0.003976484294980764, + 0.9792347550392151 + ], + "color_value_min": "0.003976484294980764", + "color_value_max": "0.9792347550392151" + } + }, + { + "type": [ + "time", + "ncol" + ], + "name": "AODDUST", + "config": { + "preset": "BuGnYl", + "invert": false, + "color_blind": false, + "use_log_scale": "linear", + "discrete_log": false, + "n_discrete_colors": 4, + "order": 5, + "size": 4, + "offset": 0, + "break_row": false, + "override_range": false, + "color_range": [ + 0.00033132260432466865, + 0.9041456580162048 + ], + "color_value_min": "0.00033132260432466865", + "color_value_max": "0.9041456580162048" + } + }, + { + "type": [ + "time", + "ncol" + ], + "name": "AODBC", + "config": { + "preset": "BuGnYl", + "invert": false, + "color_blind": false, + "use_log_scale": "linear", + "discrete_log": false, + "n_discrete_colors": 4, + "order": 6, + "size": 4, + "offset": 0, + "break_row": false, + "override_range": false, + "color_range": [ + 0.00016381885507144034, + 0.1280982941389084 + ], + "color_value_min": "0.00016381885507144034", + "color_value_max": "0.1280982941389084" + } + } + ] +} \ No newline at end of file diff --git a/docs/guides/quickview/screenshots/quickview_ui.png b/docs/guides/quickview/screenshots/quickview_ui.png index 71cd741..3fd5f09 100644 Binary files a/docs/guides/quickview/screenshots/quickview_ui.png and b/docs/guides/quickview/screenshots/quickview_ui.png differ diff --git a/docs/guides/quickview/screenshots/shortcuts.png b/docs/guides/quickview/screenshots/shortcuts.png index 3855fbc..8656633 100644 Binary files a/docs/guides/quickview/screenshots/shortcuts.png and b/docs/guides/quickview/screenshots/shortcuts.png differ diff --git a/docs/guides/quickview/screenshots/single_view_pop-up_panel.png b/docs/guides/quickview/screenshots/single_view_pop-up_panel.png index a2ca817..1a85da3 100644 Binary files a/docs/guides/quickview/screenshots/single_view_pop-up_panel.png and b/docs/guides/quickview/screenshots/single_view_pop-up_panel.png differ diff --git a/docs/guides/quickview/screenshots/slice_selection_panel.png b/docs/guides/quickview/screenshots/slice_selection_panel.png index b9a9d47..ae2bd65 100644 Binary files a/docs/guides/quickview/screenshots/slice_selection_panel.png and b/docs/guides/quickview/screenshots/slice_selection_panel.png differ diff --git a/docs/guides/quickview/screenshots/state_export_import.png b/docs/guides/quickview/screenshots/state_export_import.png index b2c51aa..969cbbf 100644 Binary files a/docs/guides/quickview/screenshots/state_export_import.png and b/docs/guides/quickview/screenshots/state_export_import.png differ diff --git a/docs/guides/quickview/screenshots/toolbar_compact_or_expanded.png b/docs/guides/quickview/screenshots/toolbar_compact_or_expanded.png index d7277ae..661a95c 100644 Binary files a/docs/guides/quickview/screenshots/toolbar_compact_or_expanded.png and b/docs/guides/quickview/screenshots/toolbar_compact_or_expanded.png differ diff --git a/docs/guides/quickview/screenshots/variable_list_all_selected.png b/docs/guides/quickview/screenshots/variable_list_all_selected.png index 4b565f6..912e18c 100644 Binary files a/docs/guides/quickview/screenshots/variable_list_all_selected.png and b/docs/guides/quickview/screenshots/variable_list_all_selected.png differ diff --git a/docs/guides/quickview/screenshots/variable_list_none_selected.png b/docs/guides/quickview/screenshots/variable_list_none_selected.png index 5121c18..7aa94fa 100644 Binary files a/docs/guides/quickview/screenshots/variable_list_none_selected.png and b/docs/guides/quickview/screenshots/variable_list_none_selected.png differ diff --git a/docs/guides/quickview/screenshots/variable_selection_in_viewport_when_ungrouped.png b/docs/guides/quickview/screenshots/variable_selection_in_viewport_when_ungrouped.png index 25745e8..a3f9eae 100644 Binary files a/docs/guides/quickview/screenshots/variable_selection_in_viewport_when_ungrouped.png and b/docs/guides/quickview/screenshots/variable_selection_in_viewport_when_ungrouped.png differ diff --git a/docs/guides/quickview/screenshots/variables_none_or_all.png b/docs/guides/quickview/screenshots/variables_none_or_all.png deleted file mode 100644 index bbb6ce9..0000000 Binary files a/docs/guides/quickview/screenshots/variables_none_or_all.png and /dev/null differ diff --git a/docs/guides/quickview/screenshots/viewport_adjustment_toggles_central.png b/docs/guides/quickview/screenshots/viewport_adjustment_toggles_central.png new file mode 100644 index 0000000..5ef6715 Binary files /dev/null and b/docs/guides/quickview/screenshots/viewport_adjustment_toggles_central.png differ diff --git a/docs/guides/quickview/screenshots/viewport_aspect_ratio.png b/docs/guides/quickview/screenshots/viewport_aspect_ratio.png new file mode 100644 index 0000000..3f2f0f7 Binary files /dev/null and b/docs/guides/quickview/screenshots/viewport_aspect_ratio.png differ diff --git a/docs/guides/quickview/screenshots/viewport_pan.png b/docs/guides/quickview/screenshots/viewport_pan.png new file mode 100644 index 0000000..5e8d939 Binary files /dev/null and b/docs/guides/quickview/screenshots/viewport_pan.png differ diff --git a/docs/guides/quickview/screenshots/viewport_with_column_size_menu.png b/docs/guides/quickview/screenshots/viewport_with_column_size_menu.png index 64893bc..9a1f2c0 100644 Binary files a/docs/guides/quickview/screenshots/viewport_with_column_size_menu.png and b/docs/guides/quickview/screenshots/viewport_with_column_size_menu.png differ diff --git a/docs/guides/quickview/screenshots/viewport_zoom_in_out_auto.png b/docs/guides/quickview/screenshots/viewport_zoom_in_out_auto.png new file mode 100644 index 0000000..a7cdfda Binary files /dev/null and b/docs/guides/quickview/screenshots/viewport_zoom_in_out_auto.png differ diff --git a/docs/guides/quickview/slice_selection.md b/docs/guides/quickview/slice_selection.md index ae3a5d2..2aa0f77 100644 --- a/docs/guides/quickview/slice_selection.md +++ b/docs/guides/quickview/slice_selection.md @@ -6,13 +6,26 @@ The variables are shown on global or regional maps. If a variable has additional dimensions such as time, vertical level, etc., QuickView is designed to display one global or regional map at a time for that variable. -To choose the indices to use for the non-horizontal dimensions, +To choose the indices to inspect for the non-horizontal dimensions, the slice selection button in the vertical toolbar can be clicked to bring up the **slice selection control panel**, as shown in -the first screenshot below, which contains sliders for the other dimensions. +the first screenshot below. + +In this example, the selected variables together have six non-horizontal dimensions, +corresponding to the six stadium shapes highlighted in the red box. +The dimension names are shown inside the stadiums. The index values (counting from 0) +corresponding to the images in the viewport are shown in bold within parentheses. +When a dimension has an associated 1D dimension variable, +its value and unit are displayed in italics next to the parentheses. ![](./screenshots/slice_selection_panel.png){ width="100%" } +Each stadium can be clicked to expand the corresponding slice selection controls, +revealing a textbox and a slider for changing the data slice along that dimension. +In the expanded state, the stadium is shown in solid blue. + +![](./screenshots/dimension_slider_expanded.png){ width="100%" } + Alternatively, the **animation control panel** shown in the screenshot below can be used. This panel contains a drop-down menu for choosing a dimension to inspect, a slider and a set of forward and backward buttons for manually stepping through the selected dimension, diff --git a/docs/guides/quickview/ui_overview.md b/docs/guides/quickview/ui_overview.md index 1c48ea2..14120c9 100644 --- a/docs/guides/quickview/ui_overview.md +++ b/docs/guides/quickview/ui_overview.md @@ -7,18 +7,18 @@ QuickView's UI contains three main components. -- **Viewport**: The viewport displays global or regional map plots +- **Viewport**: The viewport displays contour plots on global or regional maps for the user-selected physical quantities (variables in the NetCDF files). - The sequence of the displayed variables and the size of the map plots + The sequence of the displayed variables and the size of the contour plots can be adjusted using the [viewport layout](./viewport_layout.md) control panel. For each variable shown on a map, the colormap, value ranges etc. can be adjusted - individually using the [pop-up menu](./individual_views.md) + individually using the [pop-up panel](./individual_views.md) activated by a click on the colorbar. ![Toolbar compact or expanded](./screenshots/toolbar_compact_or_expanded.png){ width="40%" align=right} -- **Control panels**: Various control panels allow the user to - change properties of all map plots shown in the viewport. +- **Control panels**: QuickView includes various control panels for + changing the properties of contour plots shown in the viewport. The control panels can be collapsed (hidden) or expanded (shown) by clicking on their corresponding icons in the toolbar or by using [keyboard shortcuts](./shortcuts). diff --git a/docs/guides/quickview/viewport_layout.md b/docs/guides/quickview/viewport_layout.md index 104b5d0..9c864a8 100644 --- a/docs/guides/quickview/viewport_layout.md +++ b/docs/guides/quickview/viewport_layout.md @@ -1,8 +1,8 @@ # Customizing Viewport Layout ::: tip Tip for users of QuickView version 1 -QuickView version 1 allowed the user to change the size and sequence -of different views (map plots) in the viewport by drag-and-drop. +QuickView version 1 allowed the user to change the sizes and sequence +of different contour plots in the viewport by drag-and-drop. Users' feedback indicated that arbitrary drag-and-drop can get confusing, and it was inconvenient to not have a way to reapply the same size to all views. With these comments in mind, we have changed the mechanisms for @@ -11,25 +11,24 @@ configuring the viewport in version 2. ## View size -QuickView version 2 supports showing 1, 2, 3, 4, or 6 columns of views (map plots) +QuickView version 2 supports showing 1, 2, 3, 4, or 6 columns of views (contour plots) in the view port. The number of columns can be changed by pressing the corresponding -number keys on the keyboard or using the Viewport Layout control panel, via the "Size" menu +number keys on the keyboard or using the viewport layout control panel, +via the "Column layout" menu on the right of that panel, as shown in the screenshot below. - The viewport is evenly divided into the selected number of columns. When the user changes the width of their browser window, -the individual views (map plots) will be automatically readjusted. +the individual views are automatically readjusted. ![Viewport column size](./screenshots/viewport_with_column_size_menu.png){ width="100%", align=center } ## Grouped or ungrouped views -If the user has selected and loaded variables of different shapes, -then, by default, the viewport will present the map plots in groups. -For each group, a vertical bar, shown in the same color as the group tab -in the Variable Selection control panel, is shown on the left side of -the viewport to distinguish the group. -The screenshot above shows 3 variable groups. +If the selected variables have different shapes, the contour plots are grouped by shape by default. +Each group is identified by a vertical bar on the left side of the viewport, +shown in the same color as the corresponding group tab in +the [variable selection](./variable_selection) control panel. +The screenshot above shows three variable groups. This grouping in the viewport can be canceled (or reapplied) by using the `G` key or a "Grouped" versus "Ungrouped" toggle. @@ -37,16 +36,46 @@ the `G` key or a "Grouped" versus "Ungrouped" toggle. ## Sequence of variables in the viewport In the top-left corner of each individual view, the variable name is shown. -Clicking the text will activate a drop-down menu for the user to replace +A click on the text activates a drop-down menu for the user to replace the current variable by a different one, resulting in the corresponding views to swap contents. -If the plots in the viewport are ungrouped, the drop-down menu will -list all the other variables that have been loaded. See example -in the screenshot below. +- When the plots in the viewport are ungrouped, the drop-down menu + lists all the other variables that have been loaded. See example + in the screenshot below. +- When the plots in the viewport are grouped, the drop-down menu + lists all the other loaded variables *in the same group* that + the user can choose from. + +![Select variable for a view](./screenshots/variable_selection_in_viewport_when_ungrouped.png){ width="90%", align=center } + +## Additional adjustments + +The viewport layout control panel has a few other toggles that, upon click, +reveal additional sliders or buttons for simultaneously +adjusting all views in the viewport, as shown in the screenshots below. + + +![toggles](./screenshots/viewport_adjustment_toggles_central.png){ width="90", align=center } + +### Aspect ratio of view frame + +A slider is provided for adjusting the aspect ratio of the view frames by changing their heights. +This can be useful for controlling the blank spaces, especially for +[regional plots](./miscellaneous#maps). + +![toggles](./screenshots/viewport_aspect_ratio.png){ width="90%", align=center } + +### Plot size relative to view frame + +A pair of zoom-in and zoom-out buttons are provided for changing the plot sizes +with respect to the view frames. A click on the auto-zoom button resets the sizes to fit the frames. + +![toggles](./screenshots/viewport_zoom_in_out_auto.png){ width="90%", align=center } + +### Plot location inside view frame -If the plots in the viewport are grouped, the drop-down menu will -list all the other loaded variables *in the same group* that -the user can choose from. +A set of four buttons is provided for moving the plots left, right, up, or down +with respect to the view frames, an operation commonly referred to as panning in graphical user interfaces. -![Select variable for a view](./screenshots/variable_selection_in_viewport_when_ungrouped.png){ width="95%", align=center } +![toggles](./screenshots/viewport_pan.png){ width="90%", align=center } diff --git a/docs/index.md b/docs/index.md index 427f77a..a2e9213 100644 --- a/docs/index.md +++ b/docs/index.md @@ -7,7 +7,7 @@ hero: text: "for Earth system models" tagline: Efficient, intuitive, and interactive exploration of simulation data. - image: /banner.png + image: /website_banner.png actions: - theme: brand text: Installation @@ -56,5 +56,5 @@ features: details: The QuickView family of tools is developed using funding from the U.S. Department of Energy's SciDAC program. - link: https://www.energy.gov/science/articles/accelerating-scientific-discovery-through-advanced-computing + link: https://www.scidac.gov/ --- diff --git a/docs/public/banner.png b/docs/public/banner.png deleted file mode 100644 index 01429e3..0000000 Binary files a/docs/public/banner.png and /dev/null differ diff --git a/docs/public/icon-full.png b/docs/public/icon-full.png index ba8f15c..f40fe02 100644 Binary files a/docs/public/icon-full.png and b/docs/public/icon-full.png differ diff --git a/docs/gallery/quickview-state_website_main_page_window_shot.json b/docs/public/quickview-state_website_banner.json similarity index 74% rename from docs/gallery/quickview-state_website_main_page_window_shot.json rename to docs/public/quickview-state_website_banner.json index 6e7cff7..65f1b9e 100644 --- a/docs/gallery/quickview-state_website_main_page_window_shot.json +++ b/docs/public/quickview-state_website_banner.json @@ -1,7 +1,7 @@ { "origin": { "user": "huiwan", - "created": "2026-04-27 12:35:35.665126", + "created": "2026-05-11 12:43:47.847886", "comment": "" }, "files": { @@ -15,16 +15,35 @@ "CLDLOW" ], "layout": { - "aspect-ratio": 2, + "aspect-ratio": 0.5, "grouped": false, "active": "auto_layout", "tools": [], - "help": false + "help": false, + "camera": { + "zoom": 9542795.040380873, + "position": [ + 0.0, + 0.0, + 73673405.62958878 + ], + "focal_point": [ + 0.0, + 0.0, + 0.5 + ], + "view_up": [ + 0.0, + 1.0, + 0.0 + ], + "clipping_range": [ + 71987162.971775, + 75973741.28534032 + ] + } }, "data-selection": { - "time_idx": 0, - "midpoint_idx": 0, - "interface_idx": 0, "crop_longitude": [ -180, 180 @@ -35,7 +54,9 @@ ], "projection": [ "Robinson" - ] + ], + "animation_track": "lev", + "lev_idx": 51 }, "views": [ { @@ -48,7 +69,10 @@ "config": { "preset": "Yellow - Gray - Blue", "invert": true, + "color_blind": false, "use_log_scale": "linear", + "discrete_log": false, + "n_discrete_colors": 4, "order": 7, "size": 6, "offset": 0, @@ -72,7 +96,10 @@ "config": { "preset": "batlow", "invert": false, + "color_blind": false, "use_log_scale": "linear", + "discrete_log": false, + "n_discrete_colors": 4, "order": 5, "size": 6, "offset": 0, @@ -96,7 +123,10 @@ "config": { "preset": "Rainbow Desaturated", "invert": false, + "color_blind": false, "use_log_scale": "linear", + "discrete_log": false, + "n_discrete_colors": 4, "order": 3, "size": 6, "offset": 0, @@ -119,7 +149,10 @@ "config": { "preset": "Grayscale", "invert": false, + "color_blind": false, "use_log_scale": "linear", + "discrete_log": false, + "n_discrete_colors": 4, "order": 2, "size": 6, "offset": 0, diff --git a/docs/public/website_banner.png b/docs/public/website_banner.png new file mode 100644 index 0000000..db4a475 Binary files /dev/null and b/docs/public/website_banner.png differ diff --git a/docs/webnews.md b/docs/webnews.md index 8730e37..476ade2 100644 --- a/docs/webnews.md +++ b/docs/webnews.md @@ -1,8 +1,12 @@ +## May 2026 + +QuickView has been updated to version 2.7.4 with refined viewport control, a more compact slice selection panel, and various other small improvments in the UI. + ## April 2026 -QuickView version 2.5.1 is released, providing long-desired features like [image download](/guides/quickview/miscellaneous#save-vis), [symmetric logarithmic scale](/guides/quickview/individual_views#linear-and-log-scales) for colorbars, generalized support for [arbitrarily dimensioned arrays](/guides/simulation_data#nd-vars), and substantially improved performance for [SCREAM output](/gallery/index#scream). +QuickView version 2.6.1 has been released, providing long-desired features like [image download](/guides/quickview/miscellaneous#save-vis), [symmetric logarithmic scale](/guides/quickview/individual_views#linear-and-log-scales) for colorbars, generalized support for [arbitrarily dimensioned arrays](/guides/simulation_data#nd-vars), and substantially improved performance for [SCREAM output](/gallery/index#scream). ## March 2026 -QuickView and QuickCompare are available at [NERSC](https://www.nersc.gov/) through the [JupyterHub](https://jupyter.nersc.gov/). +QuickView and QuickCompare have been deployed to [NERSC](https://www.nersc.gov/) through [JupyterHub](https://jupyter.nersc.gov/) for further development and testing. diff --git a/src/e3sm_quickview/module/serve/utils.js b/src/e3sm_quickview/module/serve/utils.js index 884ae92..d099f4b 100644 --- a/src/e3sm_quickview/module/serve/utils.js +++ b/src/e3sm_quickview/module/serve/utils.js @@ -219,7 +219,7 @@ function findContainerToCapture(varName) { function getFileName(fieldName) { const state = trame.state.state; - const nameTokens = [fieldName || "FullPanel"]; + const nameTokens = [fieldName || "Viewport"]; state.available_animation_tracks.forEach((n) => { nameTokens.push(n); const nDigit = Math.floor(Math.log10(state[n].length) + 1);