From 7665cb67399a5e68bfb6070ef4a8d6f7feae2efb Mon Sep 17 00:00:00 2001 From: Sebastien Jourdain Date: Fri, 17 Jul 2026 17:25:30 -0600 Subject: [PATCH] feat: building pages --- pyproject.toml | 20 +- src/e3sm_siteview/analysis/__init__.py | 37 + src/e3sm_siteview/analysis/viz3d.py | 67 ++ src/e3sm_siteview/app.py | 42 +- src/e3sm_siteview/cli.py | 20 + .../components/field_selection.py | 115 +++ .../components/site_selection.py | 174 ++++ src/e3sm_siteview/components/tools.py | 2 +- src/e3sm_siteview/components/view_drawer.py | 25 +- src/e3sm_siteview/constants.py | 205 +++++ src/e3sm_siteview/module/__init__.py | 15 + .../serve/Equirectangular-projection.jpg | Bin 0 -> 231511 bytes src/e3sm_siteview/module/serve/script.js | 13 + src/e3sm_siteview/module/serve/style.css | 126 +++ src/e3sm_siteview/pages/__init__.py | 9 + src/e3sm_siteview/pages/field_selection.py | 29 + src/e3sm_siteview/pages/site_selection.html | 849 ++++++++++++++++++ src/e3sm_siteview/pages/site_selection.py | 29 + src/e3sm_siteview/pages/visualization.py | 40 + src/e3sm_siteview/plugins/reader.py | 847 +++++++++++++++++ src/e3sm_siteview/viewer.py | 33 + 21 files changed, 2674 insertions(+), 23 deletions(-) create mode 100644 src/e3sm_siteview/analysis/__init__.py create mode 100644 src/e3sm_siteview/analysis/viz3d.py create mode 100644 src/e3sm_siteview/cli.py create mode 100644 src/e3sm_siteview/components/field_selection.py create mode 100644 src/e3sm_siteview/components/site_selection.py create mode 100644 src/e3sm_siteview/constants.py create mode 100644 src/e3sm_siteview/module/__init__.py create mode 100644 src/e3sm_siteview/module/serve/Equirectangular-projection.jpg create mode 100644 src/e3sm_siteview/module/serve/script.js create mode 100644 src/e3sm_siteview/module/serve/style.css create mode 100644 src/e3sm_siteview/pages/__init__.py create mode 100644 src/e3sm_siteview/pages/field_selection.py create mode 100644 src/e3sm_siteview/pages/site_selection.html create mode 100644 src/e3sm_siteview/pages/site_selection.py create mode 100644 src/e3sm_siteview/pages/visualization.py create mode 100644 src/e3sm_siteview/plugins/reader.py create mode 100644 src/e3sm_siteview/viewer.py diff --git a/pyproject.toml b/pyproject.toml index 3d20f99..004ca78 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,10 +6,14 @@ authors = [ {name = "Kitware Inc."}, ] dependencies = [ - "trame>=3.12", + "trame>=3.13.2", "trame-vuetify", - "trame-rca", + "trame-rca[turbo]>=2.6", "trame-dockview", + "trame-dataclass >=2.1.3", + "pyproj>=3.6.1", + "netCDF4>=1.6.5", + "vtk>=9.6", ] requires-python = ">=3.12" readme = "README.rst" @@ -94,7 +98,17 @@ isort.required-imports = [] [tool.ruff.lint.per-file-ignores] "tests/**" = ["T20", "PLC0415"] "noxfile.py" = ["T20"] -"src/**" = ["SIM117"] +"src/**" = ["SIM117", "T"] +"src/e3sm_siteview/plugins/**" = [ + "PLW", + "ARG", + "RET", + "PLC", + "SIM", + "EM", + "PGH", + "T", +] [tool.semantic_release] version_toml = [ diff --git a/src/e3sm_siteview/analysis/__init__.py b/src/e3sm_siteview/analysis/__init__.py new file mode 100644 index 0000000..7a2232b --- /dev/null +++ b/src/e3sm_siteview/analysis/__init__.py @@ -0,0 +1,37 @@ +import importlib.util +from pathlib import Path + +REGISTRY = {} + + +def create_analysis(type, server, reader): + klass = REGISTRY.get(type) + if klass: + return klass(server, reader) + return None + + +def register_analysis(type, klass): + REGISTRY[type] = klass + + +def create_id_generator(): + count = 0 + while True: + count += 1 + yield f"analysis_{count}" + + +def load_all_analysis(): + for module_path in Path(__file__).parent.glob("*.py"): + if module_path.stem[0] == "_": + continue + name = module_path.stem + spec = importlib.util.spec_from_file_location(name, module_path) + module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + + +ANALYSIS_ID = create_id_generator() + +__all__ = ["ANALYSIS_ID", "create_analysis", "load_all_analysis", "register_analysis"] diff --git a/src/e3sm_siteview/analysis/viz3d.py b/src/e3sm_siteview/analysis/viz3d.py new file mode 100644 index 0000000..8de47c6 --- /dev/null +++ b/src/e3sm_siteview/analysis/viz3d.py @@ -0,0 +1,67 @@ +import vtkmodules.vtkRenderingOpenGL2 # noqa: F401 +from trame.app import TrameComponent +from trame.ui.html import DivLayout +from trame.widgets import html +from trame.widgets import vtk as vtk_widgets + +# VTK factory initialization +from vtkmodules.vtkInteractionStyle import vtkInteractorStyleSwitch # noqa: F401 +from vtkmodules.vtkRenderingCore import ( + vtkActor, + vtkDataSetMapper, + vtkRenderer, + vtkRenderWindow, + vtkRenderWindowInteractor, +) + +from e3sm_siteview.analysis import ANALYSIS_ID, register_analysis + +NAME = "viz" + + +class Viz3D(TrameComponent): + def __init__(self, server, reader): + super().__init__(server) + self._id = next(ANALYSIS_ID) + self._reader = reader + self._setup_vtk(reader) + self._build_ui() + + @property + def name(self): + return self._id + + def _setup_vtk(self, reader): + mapper = vtkDataSetMapper() + actor = vtkActor(mapper=mapper) + reader >> mapper + + renderer = vtkRenderer() + render_window = vtkRenderWindow() + render_window.AddRenderer(renderer) + render_window.OffScreenRenderingOn() + + renderWindowInteractor = vtkRenderWindowInteractor() + renderWindowInteractor.SetRenderWindow(render_window) + renderWindowInteractor.GetInteractorStyle().SetCurrentStyleToTrackballCamera() + + renderer.AddActor(actor) + renderer.ResetCamera() + + self.actor = actor + self.mapper = mapper + self.renderer = renderer + self.render_window = render_window + + def _build_ui(self): + with DivLayout(self.server, self.name, classes="h-100") as self.ui: + with html.Div( + style="position:absolute;top:0;left:0;width:100%;height:100%;" + ): + self.view = vtk_widgets.VtkRemoteView( + self.render_window, + interactive_ratio=1, + ) + + +register_analysis(NAME, Viz3D) diff --git a/src/e3sm_siteview/app.py b/src/e3sm_siteview/app.py index 0ef65a6..459b318 100644 --- a/src/e3sm_siteview/app.py +++ b/src/e3sm_siteview/app.py @@ -1,28 +1,44 @@ +from pathlib import Path +from types import SimpleNamespace + from trame.app import TrameApp -from trame.ui.vuetify3 import VAppLayout -from trame.widgets import dockview -from trame.widgets import vuetify3 as v3 -from e3sm_siteview import components as sv_ui +from e3sm_siteview import pages +from e3sm_siteview.analysis import load_all_analysis +from e3sm_siteview.cli import configure_and_parse +from e3sm_siteview.viewer import E3SMAnalyser class E3smSiteView(TrameApp): def __init__(self, server=None): super().__init__(server, client_type="vue3") + # Tab title + self.state.trame__title = "E3SM Site View" + # --hot-reload arg optional logic if self.server.hot_reload: self.server.controller.on_server_reload.add(self._build_ui) - self._build_ui() - - def _build_ui(self, *_args, **_kwargs): - self.state.trame__title = "E3SM Site View" - with VAppLayout(self.server, fill_height=True) as self.ui: - with v3.VLayout(): - sv_ui.View3DTools() - with v3.VMain(): - dockview.DockView(ctx_name="views_container") + args = configure_and_parse(self.server.cli) + load_all_analysis() + self.ctx.viewers = {} + + # debug + connectivity_file = Path(args.cf).resolve() + for data_file in args.df: + viewer = E3SMAnalyser( + self.server, + connectivity_file, + Path(data_file).resolve(), + ) + self.ctx.viewers[viewer.name] = viewer + + self.ctx.pages = SimpleNamespace( + fields=pages.FieldSelectionPage(self.server), + viz=pages.VisualizationPage(self.server), + site=pages.SiteSelectionPage(self.server), + ) def main(server=None, **kwargs): diff --git a/src/e3sm_siteview/cli.py b/src/e3sm_siteview/cli.py new file mode 100644 index 0000000..da74a5d --- /dev/null +++ b/src/e3sm_siteview/cli.py @@ -0,0 +1,20 @@ +def configure_and_parse(parser): + parser.add_argument( + "-cf", + help="the nc file with connnectivity information", + ) + parser.add_argument( + "-df", + nargs="+", + help="the nc file with data/variables", + ) + parser.add_argument( + "--perf", + dest="perf", + action="store_true", + help="Emit performance timing on stderr ([PERF] lines). Used to " + "diagnose where slider-tick cost is going — reader I/O, pipeline, " + "rendering, web layer, etc.", + ) + + return parser.parse_known_args()[0] diff --git a/src/e3sm_siteview/components/field_selection.py b/src/e3sm_siteview/components/field_selection.py new file mode 100644 index 0000000..42dd099 --- /dev/null +++ b/src/e3sm_siteview/components/field_selection.py @@ -0,0 +1,115 @@ +from trame.widgets import html +from trame.widgets import vuetify3 as v3 + +from e3sm_siteview import constants, module + + +class FieldSelection(html.Div): + def __init__(self, next_fn, **_): + super().__init__(classes="step-pane ") + self.server.enable_module(module) + + self.state.field_surface = [ + {**f, "selected": False} for f in constants.FIELDS_METADATA.values() + ] + self.state.field_midpoints = [ + {**f, "selected": False} for f in constants.FIELDS_METADATA.values() + ] + + with self: + with html.Div(classes="px-6 pt-6 d-flex align-center ga-2"): + v3.VTextField( + v_model=("fields_filter", ""), + placeholder="Search fields (name or description)", + prepend_inner_icon="mdi-magnify", + variant="outlined", + density="comfortable", + clearable=True, + hide_details=True, + ) + v3.VBtn( + "Load ({{ 5 }} + {{ 6 }})", + classes="text-none", + variant="flat", + color="primary", + size="large", + append_icon="mdi-chevron-right", + height=48, + click=next_fn, + ) + with html.Div(classes="flex-fill px-6 py-3"): + with v3.VExpansionPanels( + v_model=("fields_open_panels", [0, 1]), + multiple=True, + variant="accordion", + ): + for group in constants.FIELD_GROUPS: + with v3.VExpansionPanel(): + with v3.VExpansionPanelTitle(height="48px", static=True): + v3.VIcon( + icon=group.icon, classes="mr-3", color=group.color + ) + html.Span(group.label, classes="font-weight-medium") + v3.VChip( + "1 / 10", # FIXME + size="x-small", + variant="outlined", + color=group.color, + classes="ml-4", + ) + v3.VSpacer() + v3.VBtn( + "Select all", + variant="text", + v_on_click_stop_prevent=( + self.updateSelection, + f"['{group.key}', true]", + ), + classes="mr-2 text-none", + density="compact", + ) + v3.VBtn( + "Clear", + variant="text", + v_on_click_stop_prevent=( + self.updateSelection, + f"['{group.key}', false]", + ), + classes="mr-2 text-none", + density="compact", + ) + + with v3.VExpansionPanelText(classes="border-t"): + with v3.VRow(dense=True): + with v3.VCol( + v_for=f"field in {group.state_name}", + key="field.name", + cols=12, + sm=6, + md=4, + xl=3, + v_show="utils.e3sm.match(field, fields_filter)", + ): + with v3.VCheckbox( + v_model="field.selected", + density="compact", + hide_details=True, + ): + with v3.Template(v_slot_label=True): + with html.Div(): + with html.Div( + "{{ field.name }}", + classes="font-weight-medium", + ): + html.Span( + "({{ field.units }})", + classes="text-caption text-medium-emphasis", + ) + html.Div( + "{{ field.description }}", + classes="text-caption text-medium-emphasis", + style="line-height:1.2;", + ) + + def updateSelection(self, group_key, select): + print("toggle selection for", group_key, select) diff --git a/src/e3sm_siteview/components/site_selection.py b/src/e3sm_siteview/components/site_selection.py new file mode 100644 index 0000000..ef7b12c --- /dev/null +++ b/src/e3sm_siteview/components/site_selection.py @@ -0,0 +1,174 @@ +import math + +from trame.decorators import change +from trame.widgets import client, html +from trame.widgets import vuetify3 as v3 + +from e3sm_siteview import constants, module + + +class CoordinatePreview(html.Div): + def __init__(self, **_): + super().__init__(classes="coord-preview mt-4") + self.server.enable_module(module) + + self.state.site_marker_x = 0 + self.state.site_marker_y = 0 + self.state.site_marker_diameter = 0 + + with self: + with client.SizeObserver("site_map_size"): + html.Div(classes="coord-equator") + html.Div(classes="coord-meridian") + html.Div( + classes="coord-radius", + style=( + "{ left: site_marker_x + '%', top: site_marker_y + '%', width: site_marker_diameter + 'px', height: site_marker_diameter + 'px' }", + ), + ) + html.Div( + classes="coord-marker", + style=("{ left: site_marker_x + '%', top: site_marker_y + '%' }",), + ) + + @change("site_lat", "site_lon") + def _update_marker(self, site_lat, site_lon, **_): + self.state.site_marker_x = ((site_lon + 180) / 360) * 100 + self.state.site_marker_y = ((90 - site_lat) / 180) * 100 + + @change("site_radius", "site_radius_unit", "site_map_size") + def _update_radius(self, site_radius, site_radius_unit, site_map_size, **_): + if not site_radius: + site_radius = 0 + if site_map_size: + size_width = site_map_size["size"]["width"] + deg2px = float(size_width / 360) + if site_radius_unit == "km": + site_radius = float(site_radius) / 111.111 # convert to degree + + base = min(float(site_radius) * deg2px, size_width / 4) + self.state.site_marker_diameter = int(0.5 + max(2 * base, 8)) + + +class SiteSelection(html.Div): + def __init__(self, next_fn, **_): + super().__init__(classes="step-pane pa-6") + self.server.enable_module(module) + + with self: + with v3.VCol(): + with v3.VSelect( + v_model=("site_selected", None), + items=("site_all", constants.SITES), + item_title="title", + item_value="value", + label="ARM User Facility", + prepend_inner_icon="mdi-domain", + variant="outlined", + density="comfortable", + clearable=True, + ): + with v3.Template(v_slot_item=" {props, item }"): + v3.VListItem( + v_bind="props", + subtitle=( + "utils?.e3sm?.formatCoords(item?.raw?.lat, item?.raw?.lon)", + ), + ) + html.Div( + "Coordinates", + classes="text-overline text-medium-emphasis mb-1", + ) + with v3.VRow(dense=True): + with v3.VCol(cols="6"): + v3.VTextField( + v_model_number=("site_lat", 0), + type="number", + step="0.001", + label="Latitude", + suffix=("site_lat < 0 ? '°S':'°N'",), + variant="outlined", + density="comfortable", + rules=( + "[(v) => (v >= -90 && v <= 90) || 'Latitude must be between -90 and 90']", + ), + ) + with v3.VCol(cols="6"): + v3.VTextField( + v_model_number=("site_lon", 0), + type="number", + step="0.001", + label="Longitude", + suffix=("site_lon < 0 ? '°W':'°E'",), + variant="outlined", + density="comfortable", + rules=( + "[(v) => (v >= -180 && v <= 180) || 'Longitude must be between -180 and 180']", + ), + ) + + html.Div( + "Region of Interest", + classes="text-overline text-medium-emphasis mb-1", + ) + with v3.VRow(dense=True, align="top"): + with v3.VCol(): + v3.VTextField( + v_model_number=("site_radius", 5), + type="number", + step="0.1", + min="0", + label="Radius", + prepend_inner_icon="mdi-radius-outline", + variant="outlined", + density="comfortable", + classes="pr-4", + rules=( + """[ + (v) => (v >= 0) || 'Radius must be greater than or equal to 0', + (v) => (v / (site_radius_unit === 'km' ? 111.111 : 1) < 90) || 'Radius must be smaller than 90° or 10 000 Km' + ]""", + ), + ) + with v3.VBtnToggle( + v_model=("site_radius_unit", "deg"), + color="primary", + variant="outlined", + divided=True, + mandatory=True, + classes="mt-1 pr-4", + size="small", + ): + v3.VBtn("km", value="km", classes="text-none") + v3.VBtn("deg", value="deg", classes="text-none") + + v3.VBtn( + "Validate", + classes="text-none mt-1", + variant="flat", + color="primary", + size="large", + append_icon="mdi-chevron-right", + height=48, + click=next_fn, + ) + + CoordinatePreview() + + @change("site_selected") + def _on_site_selected(self, site_selected, **_): + lat_lon = constants.SITES_LAT_LON.get(site_selected) + if lat_lon: + self.state.site_lat = lat_lon[0] + self.state.site_lon = lat_lon[1] + + @change("site_lat", "site_lon") + def _on_lat_lon(self, site_lat, site_lon, site_selected, **_): + if site_selected: + lat_lon = constants.SITES_LAT_LON.get(site_selected) + if ( + lat_lon is None + or math.fabs(float(site_lat) - lat_lon[0]) > 0.001 + or math.fabs(float(site_lon) - lat_lon[1]) > 0.001 + ): + self.state.site_selected = None diff --git a/src/e3sm_siteview/components/tools.py b/src/e3sm_siteview/components/tools.py index c5bd7d3..64abc05 100644 --- a/src/e3sm_siteview/components/tools.py +++ b/src/e3sm_siteview/components/tools.py @@ -52,7 +52,7 @@ def __init__(self, compact="compact_drawer"): # Clickable tools # ----------------------------------------------------------------------------- class ActionButton(v3.VTooltip): - def __init__(self, compact, title, icon, click, keybinding=None): + def __init__(self, title, icon, click, compact="compact_drawer", keybinding=None): super().__init__(text=title, disabled=(f"!{compact}",)) with self: with v3.Template(v_slot_activator="{ props }"): diff --git a/src/e3sm_siteview/components/view_drawer.py b/src/e3sm_siteview/components/view_drawer.py index 287c7c3..1b9c987 100644 --- a/src/e3sm_siteview/components/view_drawer.py +++ b/src/e3sm_siteview/components/view_drawer.py @@ -26,20 +26,30 @@ def __init__(self, reset_camera=None): ), ): tools.AppLogo() - tools.ResetCamera(click=reset_camera) + tools.ActionButton( + title="Select site", + icon="mdi-target", + click=(self.activate_page, "['site']"), + ) + tools.ActionButton( + title="Load fields", + icon="mdi-list-status", + click=(self.activate_page, "['fields']"), + ) v3.VDivider(classes="my-1") # --------------------- + tools.ResetCamera(click=reset_camera) - tools.StateImportExport() - tools.OpenFile() + # tools.StateImportExport() + # tools.OpenFile() v3.VDivider(classes="my-1") # --------------------- - tools.FieldSelection() - tools.DataSelection() + # tools.FieldSelection() + # tools.DataSelection() tools.Animation() - v3.VDivider(classes="my-1") # --------------------- + # v3.VDivider(classes="my-1") # --------------------- tools.LayoutManagement() tools.MapProjection() @@ -63,3 +73,6 @@ def __init__(self, reset_camera=None): f"{app_version}", classes="text-center text-caption d-block text-wrap", ) + + def activate_page(self, name): + getattr(self.ctx.pages, name).activate() diff --git a/src/e3sm_siteview/constants.py b/src/e3sm_siteview/constants.py new file mode 100644 index 0000000..4f5ed56 --- /dev/null +++ b/src/e3sm_siteview/constants.py @@ -0,0 +1,205 @@ +from types import SimpleNamespace + +FIELD_GROUPS = [ + SimpleNamespace( + key="surface", + label="Surface Fields", + icon="mdi-layers-outline", + color="primary", + state_name="field_surface", + ), + SimpleNamespace( + key="volume", + label="Atmospheric Fields", + icon="mdi-cube-outline", + color="secondary", + state_name="field_midpoints", + ), +] + +FIELDS_METADATA = { + "TS": {"dim": 2, "name": "TS", "units": "K", "description": "Surface temperature"}, + "PS": {"dim": 2, "name": "PS", "units": "Pa", "description": "Surface pressure"}, + "PSL": { + "dim": 2, + "name": "PSL", + "units": "Pa", + "description": "Sea level pressure", + }, + "TREFHT": { + "dim": 2, + "name": "TREFHT", + "units": "K", + "description": "Reference height (2m) temperature", + }, + "QREFHT": { + "dim": 2, + "name": "QREFHT", + "units": "kg/kg", + "description": "Reference height humidity", + }, + "U10": {"dim": 2, "name": "U10", "units": "m/s", "description": "10m wind speed"}, + "PRECT": { + "dim": 2, + "name": "PRECT", + "units": "m/s", + "description": "Total precipitation rate", + }, + "PRECC": { + "dim": 2, + "name": "PRECC", + "units": "m/s", + "description": "Convective precipitation rate", + }, + "TMQ": { + "dim": 2, + "name": "TMQ", + "units": "kg/m²", + "description": "Total precipitable water", + }, + "CLDTOT": { + "dim": 2, + "name": "CLDTOT", + "units": "fraction", + "description": "Total cloud fraction", + }, + "FSNS": { + "dim": 2, + "name": "FSNS", + "units": "W/m²", + "description": "Net solar flux at surface", + }, + "FLNS": { + "dim": 2, + "name": "FLNS", + "units": "W/m²", + "description": "Net longwave flux at surface", + }, + "LHFLX": { + "dim": 2, + "name": "LHFLX", + "units": "W/m²", + "description": "Surface latent heat flux", + }, + "SHFLX": { + "dim": 2, + "name": "SHFLX", + "units": "W/m²", + "description": "Surface sensible heat flux", + }, + "TAUX": { + "dim": 2, + "name": "TAUX", + "units": "N/m²", + "description": "Zonal surface wind stress", + }, + "TAUY": { + "dim": 2, + "name": "TAUY", + "units": "N/m²", + "description": "Meridional surface wind stress", + }, + "T": { + "dim": 3, + "name": "T", + "units": "K", + "description": "Air temperature on model levels", + }, + "U": { + "dim": 3, + "name": "U", + "units": "m/s", + "description": "Zonal wind on model levels", + }, + "V": { + "dim": 3, + "name": "V", + "units": "m/s", + "description": "Meridional wind on model levels", + }, + "Q": { + "dim": 3, + "name": "Q", + "units": "kg/kg", + "description": "Specific humidity on model levels", + }, + "RELHUM": { + "dim": 3, + "name": "RELHUM", + "units": "%", + "description": "Relative humidity on model levels", + }, + "CLOUD": { + "dim": 3, + "name": "CLOUD", + "units": "fraction", + "description": "Cloud fraction on model levels", + }, + "CLDLIQ": { + "dim": 3, + "name": "CLDLIQ", + "units": "kg/kg", + "description": "Cloud liquid water mixing ratio", + }, + "CLDICE": { + "dim": 3, + "name": "CLDICE", + "units": "kg/kg", + "description": "Cloud ice mixing ratio", + }, + "OMEGA": { + "dim": 3, + "name": "OMEGA", + "units": "Pa/s", + "description": "Vertical pressure velocity", + }, + "Z3": {"dim": 3, "name": "Z3", "units": "m", "description": "Geopotential height"}, +} + +SITES = [ + { + "title": "Southern Great Plains (SGP)", + "value": "SGP", + "lat": 36.607, + "lon": 97.488, + }, + { + "title": "North Slope of Alaska (NSA)", + "value": "NSA", + "lat": 71.323, + "lon": 156.609, + }, + { + "title": "Eastern North Atlantic (ENA)", + "value": "ENA", + "lat": 39.091, + "lon": 28.026, + }, +] + +SITES_LAT_LON = {site["value"]: (site["lat"], site["lon"]) for site in SITES} + + +VUETIFY_CONFIG = { + "theme": { + "defaultTheme": "siteviewLight", + "themes": { + "siteviewLight": { + "dark": False, + "colors": { + "primary": "#1f6f8b", + "secondary": "#7d3c98", + "background": "#f4f7f9", + }, + }, + "siteviewDark": { + "dark": True, + "colors": { + "primary": "#6fc3e0", + "secondary": "#c996e6", + "background": "#0f1a20", + }, + }, + }, + }, +} diff --git a/src/e3sm_siteview/module/__init__.py b/src/e3sm_siteview/module/__init__.py new file mode 100644 index 0000000..ba47c42 --- /dev/null +++ b/src/e3sm_siteview/module/__init__.py @@ -0,0 +1,15 @@ +from pathlib import Path + +from e3sm_siteview import __version__ + +__all__ = [ + "serve", + "styles", +] + +base_url = f"__e3sm_siteview_{__version__}" +serve_path = str(Path(__file__).with_name("serve").resolve()) + +serve = {base_url: serve_path} +styles = [f"{base_url}/style.css"] +scripts = [f"{base_url}/script.js"] diff --git a/src/e3sm_siteview/module/serve/Equirectangular-projection.jpg b/src/e3sm_siteview/module/serve/Equirectangular-projection.jpg new file mode 100644 index 0000000000000000000000000000000000000000..395656e7352492513f9ffa7d0de2d4f2b806d7c9 GIT binary patch literal 231511 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

^*KgAB}IYE*I;YTuD0!#EO@q|r# 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 literal 0 HcmV?d00001 diff --git a/src/e3sm_siteview/module/serve/script.js b/src/e3sm_siteview/module/serve/script.js new file mode 100644 index 0000000..cd8eaec --- /dev/null +++ b/src/e3sm_siteview/module/serve/script.js @@ -0,0 +1,13 @@ +window.trame.utils.e3sm = { + formatCoords(lat, lon) { + if (lat === null || lon === null || lat === undefined || lon === undefined) + return ""; + const ns = lat >= 0 ? "N" : "S"; + const ew = lon >= 0 ? "E" : "W"; + return `${Math.abs(lat).toFixed(3)}°${ns}, ${Math.abs(lon).toFixed(3)}°${ew}`; + }, + match(field, query) { + // FIXME enable filtering + return true; + }, +}; diff --git a/src/e3sm_siteview/module/serve/style.css b/src/e3sm_siteview/module/serve/style.css new file mode 100644 index 0000000..a244e8a --- /dev/null +++ b/src/e3sm_siteview/module/serve/style.css @@ -0,0 +1,126 @@ +.main-shell { + height: 100%; + overflow: hidden; +} +.shell-container { + height: 100%; + display: flex; + flex-direction: column; + min-height: 0; +} + +.stepper-card { + display: flex; + flex-direction: column; + flex: 1 1 auto; + min-height: 0; +} +.stepper-card > .v-stepper-header { + flex: 0 0 auto; +} +.stepper-card .v-stepper-window { + flex: 1 1 auto !important; + min-height: 0 !important; + height: auto !important; + margin: 0 !important; + overflow: hidden; +} +.stepper-card .v-window__container { + height: 100% !important; +} +.stepper-card .v-window-item { + height: 100%; +} +.step-pane { + height: 100%; + display: flex; + flex-direction: column; +} + +.step-pane > .flex-fill { + max-height: calc(100% - 72px); + overflow: auto; +} + +.actions-bar { + flex: 0 0 auto; +} + +.coord-preview { + position: relative; + width: 100%; + aspect-ratio: 2 / 1; + border-radius: 12px; + overflow: hidden; + background: url("./Equirectangular-projection.jpg"); + background-size: 100% 100%; + background-position: center; + border: 1px solid rgba(255, 255, 255, 0.12); +} + +.coord-equator { + position: absolute; + left: 0; + right: 0; + top: calc(50% - 2px); + border-top: 4px dashed rgba(255, 0, 0, 0.5); +} + +.coord-meridian { + position: absolute; + top: 0; + bottom: 0; + left: calc(50% - 1px); + border-left: 4px dashed rgba(255, 0, 0, 0.5); +} + +.coord-marker { + position: absolute; + width: 14px; + height: 14px; + margin-left: -7px; + margin-top: -7px; + border-radius: 50%; + background: #ff7043; + box-shadow: + 0 0 0 4px rgba(255, 112, 67, 0.28), + 0 2px 6px rgba(0, 0, 0, 0.4); + transition: + left 0.25s ease, + top 0.25s ease; +} + +.coord-radius { + position: absolute; + border: 2px dashed rgba(255, 213, 79, 0.85); + border-radius: 50%; + transform: translate(-50%, -50%); + transition: + left 0.25s ease, + top 0.25s ease, + width 0.25s ease, + height 0.25s ease; + pointer-events: none; +} + +.field-chip-2d { + background: #26637d22 !important; + color: #26637d !important; +} +.field-chip-3d { + background: #7d3c9822 !important; + color: #7d3c98 !important; +} + +.v-theme--siteviewDark .field-chip-2d { + color: #6fc3e0 !important; + background: #6fc3e022 !important; +} +.v-theme--siteviewDark .field-chip-3d { + color: #c996e6 !important; + background: #c996e622 !important; +} + +.section-card { + border-radius: 16px; +} diff --git a/src/e3sm_siteview/pages/__init__.py b/src/e3sm_siteview/pages/__init__.py new file mode 100644 index 0000000..09114bd --- /dev/null +++ b/src/e3sm_siteview/pages/__init__.py @@ -0,0 +1,9 @@ +from .field_selection import FieldSelectionPage +from .site_selection import SiteSelectionPage +from .visualization import VisualizationPage + +__all__ = [ + "FieldSelectionPage", + "SiteSelectionPage", + "VisualizationPage", +] diff --git a/src/e3sm_siteview/pages/field_selection.py b/src/e3sm_siteview/pages/field_selection.py new file mode 100644 index 0000000..89021af --- /dev/null +++ b/src/e3sm_siteview/pages/field_selection.py @@ -0,0 +1,29 @@ +from trame.app import TrameApp +from trame.ui.vuetify3 import VAppLayout + +from e3sm_siteview.components.field_selection import FieldSelection + + +class FieldSelectionPage(TrameApp): + def __init__(self, server=None): + super().__init__(server) + self._build_ui() + + def _build_ui(self): + with VAppLayout(self.server) as self.ui: + FieldSelection(self.next) + + def next(self): + self.ctx.pages.viz.activate() + + def activate(self): + self._build_ui() + + +def main(): + app = FieldSelectionPage() + app.server.start() + + +if __name__ == "__main__": + main() diff --git a/src/e3sm_siteview/pages/site_selection.html b/src/e3sm_siteview/pages/site_selection.html new file mode 100644 index 0000000..11d27b1 --- /dev/null +++ b/src/e3sm_siteview/pages/site_selection.html @@ -0,0 +1,849 @@ + + + + + + E3SM SiteView — Site Selection + + + + + + + + + +

+ + + + + + + + + + + + + + + +
+ + + + + + +
+ Coordinates +
+ + + + + + + + + +
+ Region of Interest +
+ + + + + + + km + deg + + + + + +
+ + +
+
+
+
+ Schematic preview (equirectangular, not to scale) +
+
+
+
+
+ + + +
+ + + + + + + {{ group.label }} + {{ group.key === 'surface' ? '2D' : '3D' }} + + + {{ countSelected(group) }} / {{ group.fields.length + }} + + + + +
+ Select all + Clear +
+ + + + + + + +
+
+
+
+
+
+ + + + +
+ + + Back + + Theme + + + +
+ + {{ formatCoords(latitude, longitude) }} · {{ radiusValue }} + {{ radiusUnit === 'km' ? 'km' : 'deg' }} radius +
+
+ + {{ selectedFieldCount }} field{{ selectedFieldCount === 1 ? + '' : 's' }} selected +
+ + + +
+
+
+
+ + + + + + Selection payload + + + + +
+{{ requestJson }}
+
+
+
+ + + Configuration ready — {{ selectedFieldCount }} field(s) over a {{ + radiusValue }}{{ radiusUnit === 'km' ? 'km' : '°' }} region. + +
+
+ + + + + + + diff --git a/src/e3sm_siteview/pages/site_selection.py b/src/e3sm_siteview/pages/site_selection.py new file mode 100644 index 0000000..a37c239 --- /dev/null +++ b/src/e3sm_siteview/pages/site_selection.py @@ -0,0 +1,29 @@ +from trame.app import TrameApp +from trame.ui.vuetify3 import VAppLayout + +from e3sm_siteview.components.site_selection import SiteSelection + + +class SiteSelectionPage(TrameApp): + def __init__(self, server=None): + super().__init__(server) + self._build_ui() + + def _build_ui(self): + with VAppLayout(self.server) as self.ui: + SiteSelection(self.next) + + def next(self): + self.ctx.pages.fields.activate() + + def activate(self): + self._build_ui() + + +def main(): + app = SiteSelectionPage() + app.server.start() + + +if __name__ == "__main__": + main() diff --git a/src/e3sm_siteview/pages/visualization.py b/src/e3sm_siteview/pages/visualization.py new file mode 100644 index 0000000..5b4a345 --- /dev/null +++ b/src/e3sm_siteview/pages/visualization.py @@ -0,0 +1,40 @@ +from trame.app import TrameApp +from trame.ui.vuetify3 import VAppLayout +from trame.widgets import client, dockview, vtk +from trame.widgets import vuetify3 as v3 + +from e3sm_siteview import components as sv_ui + + +class VisualizationPage(TrameApp): + def __init__(self, server=None): + super().__init__(server) + + # Deferred UI initialization + vtk.initialize(self.server) + + self._build_ui() + + def _build_ui(self): + with VAppLayout(self.server, fill_height=True) as self.ui: + client.ClientTriggers(mounted=self._load_layout) + with v3.VLayout(): + sv_ui.View3DTools() + with v3.VMain(): + dockview.DockView(ctx_name="views_container") + + def activate(self): + self._build_ui() + + def _load_layout(self): + for viewer in self.ctx.viewers.values(): + viewer.add_analysis("viz") + + +def main(): + app = VisualizationPage() + app.server.start() + + +if __name__ == "__main__": + main() diff --git a/src/e3sm_siteview/plugins/reader.py b/src/e3sm_siteview/plugins/reader.py new file mode 100644 index 0000000..a8f0025 --- /dev/null +++ b/src/e3sm_siteview/plugins/reader.py @@ -0,0 +1,847 @@ +from vtkmodules.numpy_interface import dataset_adapter as dsa +from vtkmodules.util import numpy_support, vtkConstants +from vtkmodules.util.vtkAlgorithm import VTKPythonAlgorithmBase +from vtkmodules.vtkCommonCore import vtkDataArraySelection, vtkPoints +from vtkmodules.vtkCommonDataModel import vtkCellArray, vtkUnstructuredGrid + +try: + from paraview import print_error, print_warning + from paraview.util.vtkAlgorithm import smproperty, smproxy +except ImportError: + + def noop(obj): + return obj + + class smproxy: + @staticmethod + def reader(*_, **__): + return noop + + @staticmethod + def xml(*_): + return noop + + class smproperty: + @staticmethod + def xml(*_): + return noop + + @staticmethod + def doublevector(*_, **__): + return noop + + @staticmethod + def dataarrayselection(*_, **__): + return noop + + print_error = print + print_warning = print + +try: + import json + + import netCDF4 + import numpy as np + + _has_deps = True +except ImportError as ie: + print_error( + "Missing required Python modules/packages. Algorithms in this module may " + f"not work as expected! \n {ie}" + ) + _has_deps = False + +try: + from e3sm_quickview.utils import perf as _perf +except ImportError: + # Plugin may be loaded by paraview with quickview not on sys.path; fall + # back to a no-op shim so the reader still works. + from contextlib import contextmanager + + class _perf: # type: ignore[no-redef] + @staticmethod + def is_enabled(): + return False + + @staticmethod + @contextmanager + def timed(label): + yield + +# Dimensions will be dynamically determined from connectivity and data files + + +class EAMConstants: + LEV = "lev" + HYAM = "hyam" + HYBM = "hybm" + ILEV = "ilev" + HYAI = "hyai" + HYBI = "hybi" + P0 = 1e5 + PS0 = 1e5 + + +class DimMeta: + """Simple class to store dimension metadata.""" + + def __init__(self, name, size, data=None): + self.name = name + self.size = size + self.long_name = None + self.units = None + self.data = data # Store the actual dimension coordinate values + + def __getitem__(self, key): + """Dict-like access to attributes.""" + return getattr(self, key, None) + + def __setitem__(self, key, value): + """Dict-like setting of attributes.""" + setattr(self, key, value) + + def update_from_variable(self, var_info): + """Update metadata from netCDF variable info - only long_name and units.""" + try: + self.long_name = var_info.getncattr("long_name") + except AttributeError: + pass + + try: + self.units = var_info.getncattr("units") + except AttributeError: + pass + + def __repr__(self): + return f"DimMeta(name='{self.name}', size={self.size}, long_name='{self.long_name}')" + + +class VarMeta: + """Simple class to store variable metadata.""" + + def __init__(self, name, info, horizontal_dim=None): + self.name = name + self.dimensions = info.dimensions # Store dimensions for slicing + self.fillval = np.nan + self.long_name = None + + # Extract metadata from info + self._extract_metadata(info) + + def _extract_metadata(self, info): + """Helper to extract metadata attributes from netCDF variable.""" + # Try to get fill value from either _FillValue or missing_value + for fillattr in ["_FillValue", "missing_value"]: + value = self._get_attr(info, fillattr) + if value is not None: + self.fillval = value + break + + # Get long_name if available + long_name = self._get_attr(info, "long_name") + if long_name is not None: + self.long_name = long_name + + def _get_attr(self, info, attr_name): + """Safely get an attribute from netCDF variable info.""" + try: + return info.getncattr(attr_name) + except (AttributeError, KeyError): + return None + + def __getitem__(self, key): + """Dict-like access to attributes.""" + return getattr(self, key, None) + + def __setitem__(self, key, value): + """Dict-like setting of attributes.""" + setattr(self, key, value) + + def __repr__(self): + return f"VarMeta(name='{self.name}', dimensions={self.dimensions})" + + +def compare(data, arrays, dim): + ref = data[arrays[0]][:].flatten() + if len(ref) != dim: + raise Exception( + "Length of hya_/hyb_ variable does not match the corresponding dimension" + ) + for array in arrays[1:]: + comp = data[array][:].flatten() + if not np.array_equal(ref, comp): + return None + return ref + + +def FindSpecialVariable(data, lev, hya, hyb): + dim = data.dimensions.get(lev, None) + if dim is None: + raise Exception(f"{lev} not found in dimensions") + dim = dim.size + var = np.array(list(data.variables.keys())) + + if lev in var: + lev = data[lev][:].flatten() + return lev + + _hyai = [v for v in var if hya in v] + _hybi = [v for v in var if hyb in v] + if len(_hyai) != len(_hybi): + raise Exception("Unmatched pair of hya and hyb variables found") + + p0 = data["P0"][:].item() if "P0" in var else EAMConstants.P0 + ps0 = EAMConstants.PS0 + + if len(_hyai) == 1: + hyai = data[_hyai[0]][:].flatten() + hybi = data[_hyai[1]][:].flatten() + if not (len(hyai) == dim and len(hybi) == dim): + raise Exception( + "Lengths of arrays for hya_ and hyb_ variables do not match" + ) + ldata = ((hyai * p0) + (hybi * ps0)) / 100.0 + return ldata + hyai = compare(data, _hyai, dim) + hybi = compare(data, _hybi, dim) + if hyai is None or hybi is None: + raise Exception("Values within hya_ and hyb_ arrays do not match") + ldata = ((hyai * p0) + (hybi * ps0)) / 100.0 + return ldata + + +# ------------------------------------------------------------------------------ +# A reader example. +# ------------------------------------------------------------------------------ +def createModifiedCallback(anobject): + import weakref + + weakref_obj = weakref.ref(anobject) + anobject = None + + def _markmodified(*args, **kwars): + o = weakref_obj() + if o is not None: + o.Modified() + + return _markmodified + + +@smproxy.reader( + name="EAMSliceSource", + label="EAM Slice Data Reader", + extensions="nc", + file_description="NETCDF files for EAM", +) +@smproperty.xml("""""") +@smproperty.xml( + """ + + + Specify the NetCDF data file name. + + """ +) +@smproperty.xml( + """ + + + Specify the NetCDF connecticity file name. + + """ +) +@smproperty.xml( + """ + + JSON representing dimension slices (e.g. {"lev": 0, "ilev": 1}) + + """ +) +@smproperty.xml( + """ + + + + If True, the points of the dataset will be float, otherwise they will be float or double depending + on the type of corner_lat and corner_lon variables in the connectivity file. + + + """ +) +class EAMSliceSource(VTKPythonAlgorithmBase): + def __init__(self): + VTKPythonAlgorithmBase.__init__( + self, nInputPorts=0, nOutputPorts=1, outputType="vtkUnstructuredGrid" + ) + self._output = vtkUnstructuredGrid() + + self._DataFileName = None + self._ConnFileName = None + self._ForceFloatPoints = True + self._dirty = False + + # Variables for dimension sliders + self._time = 0 + # Dictionaries to store metadata objects + self._variables = {} # Will store VarMeta objects by name + self._dimensions = {} # Will store DimMeta objects by name + self._timeSteps = [] + # Dictionary to store dimension slices + self._slices = {} + self._changed_dims = set() + + # vtkDataArraySelection to allow users choice for fields + # to fetch from the netCDF data set + self._variable_selection = vtkDataArraySelection() + # Add observers for the selection arrays + self._variable_selection.AddObserver( + "ModifiedEvent", createModifiedCallback(self) + ) + # Flag for area var to calculate averages + self._areavar = None + + # NetCDF file handle caching + self._mesh_dataset = None + self._var_dataset = None + self._cached_mesh_filename = None + self._cached_var_filename = None + + # Geometry caching + self._cached_points = None + self._cached_cells = None + self._cached_cell_types = None + self._cached_offsets = None + self._cached_ncells2D = None + + # Special variable caching + # self._cached_lev = None + # self._cached_ilev = None + self._cached_area = None + + # Dynamic dimension detection + self._horizontal_dim = None + self._data_horizontal_dim = None # Matched in data file + + def __del__(self): + """Clean up NetCDF file handles on deletion.""" + self._close_datasets() + + def _close_datasets(self): + """Close any open NetCDF datasets.""" + if self._mesh_dataset is not None: + try: + self._mesh_dataset.close() + except Exception: + pass + self._mesh_dataset = None + if self._var_dataset is not None: + try: + self._var_dataset.close() + except Exception: + pass + self._var_dataset = None + + def _get_mesh_dataset(self): + """Get cached mesh dataset or open a new one.""" + if ( + self._ConnFileName != self._cached_mesh_filename + or self._mesh_dataset is None + ): + if self._mesh_dataset is not None: + try: + self._mesh_dataset.close() + except Exception: + pass + self._mesh_dataset = netCDF4.Dataset(self._ConnFileName, "r") + self._cached_mesh_filename = self._ConnFileName + return self._mesh_dataset + + def _get_var_dataset(self): + """Get cached variable dataset or open a new one.""" + if self._DataFileName != self._cached_var_filename or self._var_dataset is None: + if self._var_dataset is not None: + try: + self._var_dataset.close() + except Exception: + pass + self._var_dataset = netCDF4.Dataset(self._DataFileName, "r") + self._cached_var_filename = self._DataFileName + return self._var_dataset + + # Method to clear all the variable names + def _clear(self): + self._variables.clear() + + # Clear special variable cache when metadata changes + self._cached_area = None + + # Clear dimension detection + self._data_horizontal_dim = None + + def _identify_horizontal_dimension(self, meshdata, vardata): + """Identify horizontal dimension from connectivity and match with data file.""" + if self._horizontal_dim and self._data_horizontal_dim: + return # Already identified + + # Get first dimension from connectivity file + conn_dims = list(meshdata.dimensions.keys()) + if not conn_dims: + print_error("No dimensions found in connectivity file") + return + + self._horizontal_dim = conn_dims[0] + conn_size = meshdata.dimensions[self._horizontal_dim].size + + # Match dimension in data file by size + for dim_name, dim_obj in vardata.dimensions.items(): + if dim_obj.size == conn_size: + self._data_horizontal_dim = dim_name + return + + print_error( + f"Could not match horizontal dimension size {conn_size} in data file" + ) + + def _clear_geometry_cache(self): + """Clear cached geometry data.""" + self._cached_points = None + self._cached_cells = None + self._cached_cell_types = None + self._cached_offsets = None + self._cached_ncells2D = None + + ''' + Disable the derivation of lev/ilev for the new approach -- the new approach + relies on the identified dimensions from the data file and connectivity files. + We could reintroduce this later if required. + + def _get_cached_lev(self, vardata): + """Get cached lev array or compute and cache it.""" + if self._cached_lev is None: + self._cached_lev = FindSpecialVariable( + vardata, EAMConstants.LEV, EAMConstants.HYAM, EAMConstants.HYBM + ) + return self._cached_lev + + def _get_cached_ilev(self, vardata): + """Get cached ilev array or compute and cache it.""" + if self._cached_ilev is None: + self._cached_ilev = FindSpecialVariable( + vardata, EAMConstants.ILEV, EAMConstants.HYAI, EAMConstants.HYBI + ) + return self._cached_ilev + ''' + + def _get_cached_area(self, vardata): + """Get cached area array or load and cache it.""" + if self._cached_area is None and self._areavar: + data = vardata[self._areavar.name][:].data + # Use reshape instead of flatten to avoid copy + self._cached_area = data.reshape(-1) + # Apply fill value replacement in-place + mask = self._cached_area == self._areavar.fillval + self._cached_area[mask] = np.nan + return self._cached_area + + def _load_variable(self, vardata, varmeta): + """Load variable data with dimension-based slicing.""" + try: + # Build slice tuple based on variable's dimensions and user-selected slices + slice_tuple = [] + for dim in varmeta.dimensions: + if dim == self._data_horizontal_dim: + slice_tuple.append(slice(None)) + else: + # Use all data for unspecified dimensions + slice_tuple.append(self._slices.get(dim, 0)) + + with _perf.timed(f"reader.netcdf_read.{varmeta.name}"): + # Get data with proper slicing + data = vardata[varmeta.name][tuple(slice_tuple)].data.reshape(-1) + if not np.isnan(varmeta.fillval): + with _perf.timed(f"reader.fill_value_scan.{varmeta.name}"): + data = data.copy() + data[data == varmeta.fillval] = np.nan + return data + except Exception as e: + print_error(f"Error loading variable {varmeta.name}: {e}") + # Return empty array on error + return np.array([]) + + def _get_enabled_arrays(self, var_list, selection_obj): + """Get list of enabled variable names from selection object.""" + enabled = [] + for varmeta in var_list: + if selection_obj.ArrayIsEnabled(varmeta.name): + enabled.append(varmeta) + return enabled + + def _build_geometry(self, meshdata): + """Build and cache geometry data from mesh dataset.""" + if self._cached_points is not None: + # Geometry already cached + return + + dims = meshdata.dimensions + mvars = np.array(list(meshdata.variables.keys())) + + # Use the identified horizontal dimension + if not self._horizontal_dim: + print_error("Horizontal dimension not identified in connectivity file") + return + + ncells2D = dims[self._horizontal_dim].size + self._cached_ncells2D = ncells2D + + # Find lat/lon dimensions + latdim = mvars[np.where(np.char.find(mvars, "corner_lat") > -1)][0] + londim = mvars[np.where(np.char.find(mvars, "corner_lon") > -1)][0] + + # Build coordinates + lat = meshdata[latdim][:].data.reshape(-1) + lon = meshdata[londim][:].data.reshape(-1) + + if self._ForceFloatPoints: + points_type = np.float32 + else: + points_type = np.float64 if lat.dtype == np.float64 else np.float32 + coords = np.empty((len(lat), 3), dtype=points_type) + coords[:, 0] = lon + coords[:, 1] = lat + coords[:, 2] = 0.0 + + # Create VTK points + _coords = dsa.numpyTovtkDataArray(coords) + vtk_coords = vtkPoints() + vtk_coords.SetData(_coords) + self._cached_points = vtk_coords + + # Build cell arrays + cellTypes = np.empty(ncells2D, dtype=np.uint8) + cellTypes.fill(vtkConstants.VTK_QUAD) + self._cached_cell_types = numpy_support.numpy_to_vtk( + num_array=cellTypes.ravel(), + deep=True, + array_type=vtkConstants.VTK_UNSIGNED_CHAR, + ) + + offsets = np.arange(0, (4 * ncells2D) + 1, 4, dtype=np.int64) + self._cached_offsets = numpy_support.numpy_to_vtk( + num_array=offsets.ravel(), + deep=True, + array_type=vtkConstants.VTK_ID_TYPE, + ) + + cells = np.arange(ncells2D * 4, dtype=np.int64) + self._cached_cells = numpy_support.numpy_to_vtk( + num_array=cells.ravel(), deep=True, array_type=vtkConstants.VTK_ID_TYPE + ) + + def _populate_variable_metadata(self): + if self._DataFileName is None or self._ConnFileName is None: + return + + meshdata = self._get_mesh_dataset() + vardata = self._get_var_dataset() + + # Identify horizontal dimensions first + self._identify_horizontal_dimension(meshdata, vardata) + + if not self._data_horizontal_dim: + print_error("Could not detect horizontal dimension in data file") + return + + # Clear existing selection arrays BEFORE adding new ones + self._variable_selection.RemoveAllArrays() + + # First pass: collect dimensions used by valid variables + all_dimensions = set() + for name, info in vardata.variables.items(): + dims = set(info.dimensions) + if self._data_horizontal_dim not in dims: + continue + varmeta = VarMeta(name, info, self._data_horizontal_dim) + if len(dims) == 1 and "area" in name.lower(): + self._areavar = varmeta + if len(dims) > 1: + all_dimensions.update(dims) + self._variables[name] = varmeta + self._variable_selection.AddArray(name) + + # Remove the horizontal dimension from sliceable dimensions + all_dimensions.discard(self._data_horizontal_dim) + + # Second pass: only populate _dimensions for dimensions that are: + # 1. Used by at least one valid variable + # 2. Have arity > 1 + self._dimensions.clear() + for dim_name in all_dimensions: + if dim_name in vardata.dimensions: + dim_obj = vardata.dimensions[dim_name] + if dim_obj.size > 1: + dim_meta = DimMeta(dim_name, dim_obj.size) + if dim_name in vardata.variables: + dim_var = vardata.variables[dim_name] + try: + dim_meta.data = vardata[dim_name][:].data + except Exception: + pass + dim_meta.update_from_variable(dim_var) + self._dimensions[dim_name] = dim_meta + + # Initialize slices for relevant dimensions + for dim in self._dimensions: + if dim not in self._slices: + self._slices[dim] = 0 + + self._variable_selection.DisableAllArrays() + + # Clear old timestamps before adding new ones + self._timeSteps.clear() + if "time" in vardata.variables: + timesteps = vardata["time"][:].data.reshape(-1) + self._timeSteps.extend(timesteps) + + def SetDataFileName(self, fname): + if fname is not None and fname != "None": + if fname != self._DataFileName: + self._DataFileName = fname + self._dirty = True + self._clear() + # Close old dataset if filename changed + if self._cached_var_filename != fname and self._var_dataset is not None: + try: + self._var_dataset.close() + except Exception: + pass + self._var_dataset = None + self._populate_variable_metadata() + self.Modified() + + def SetConnFileName(self, fname): + if fname != self._ConnFileName: + self._ConnFileName = fname + self._dirty = True + self._clear() # Clear dimension cache + # Close old dataset if filename changed + if self._cached_mesh_filename != fname and self._mesh_dataset is not None: + try: + self._mesh_dataset.close() + except Exception: + pass + self._mesh_dataset = None + self._clear_geometry_cache() + # Re-populate metadata if data file is already set + if self._DataFileName: + self._populate_variable_metadata() + self.Modified() + + def SetForceFloatPoints(self, forceFloatPoints): + if self._ForceFloatPoints != forceFloatPoints: + self._ForceFloatPoints = forceFloatPoints + self.Modified() + + def SetSlicing(self, slice_str): + # Parse JSON string containing dimension slices and update self._slices + + if slice_str and slice_str.strip(): # Check for non-empty string + try: + slice_dict = json.loads(slice_str) + # Validate and update slices for provided dimensions + invalid_slices = [] + for dim, slice_val in slice_dict.items(): + # Check if dimension exists + if dim in self._dimensions: + dim_meta = self._dimensions[dim] + dim_size = dim_meta.size + # Validate slice index + if isinstance(slice_val, int): + if slice_val < 0 or slice_val >= dim_size: + # Include dimension long name if available + dim_display = f"{dim}" + if dim_meta.long_name: + dim_display += f" ({dim_meta.long_name})" + invalid_slices.append( + f"{dim_display}={slice_val} (valid range: 0-{dim_size - 1})" + ) + else: + if self._slices.get(dim) != slice_val: + self._changed_dims.add(dim) + self._slices[dim] = slice_val + else: + print_error( + f"Slice value for '{dim}' must be an integer, got {type(slice_val).__name__}" + ) + else: + # Store the slice anyway for dimensions we haven't seen yet + # (might be populated later) + self._slices[dim] = slice_val + if self._dimensions: # Only warn if we have dimension info + print_warning(f"Dimension '{dim}' not found in data file") + + if invalid_slices: + print_error(f"Invalid slice indices: {', '.join(invalid_slices)}") + else: + self.Modified() + + except (json.JSONDecodeError, ValueError) as e: + print_error(f"Invalid JSON for slicing: {e}") + except Exception as e: + print_error(f"Error setting slices: {e}") + + def SetCalculateAverages(self, calcavg): + if self._avg != calcavg: + self._avg = calcavg + self.Modified() + + def GetVariables(self): + return self._variables + + def GetDimensions(self): + return self._dimensions + + @smproperty.doublevector( + name="TimestepValues", information_only="1", si_class="vtkSITimeStepsProperty" + ) + def GetTimestepValues(self): + return self._timeSteps + + # Array selection API is typical with readers in VTK + # This is intended to allow ability for users to choose which arrays to + # load. To expose that in ParaView, simply use the + # smproperty.dataarrayselection(). + # This method **must** return a `vtkDataArraySelection` instance. + @smproperty.dataarrayselection(name="Variables") + def GetSurfaceVariables(self): + return self._variable_selection + + def RequestInformation(self, request, inInfo, outInfo): + executive = self.GetExecutive() + port = outInfo.GetInformationObject(0) + port.Remove(executive.TIME_STEPS()) + port.Remove(executive.TIME_RANGE()) + if self._timeSteps is not None and len(self._timeSteps) > 0: + for t in self._timeSteps: + port.Append(executive.TIME_STEPS(), t) + port.Append(executive.TIME_RANGE(), self._timeSteps[0]) + port.Append(executive.TIME_RANGE(), self._timeSteps[-1]) + return 1 + + # TODO : implement request extents + def RequestUpdateExtent(self, request, inInfo, outInfo): + return super().RequestUpdateExtent(request, inInfo, outInfo) + + def get_time_index(self, outInfo, executive, from_port): + timeInfo = outInfo.GetInformationObject(from_port) + timeInd = 0 + if timeInfo.Has(executive.UPDATE_TIME_STEP()) and len(self._timeSteps) > 1: + time = timeInfo.Get(executive.UPDATE_TIME_STEP()) + for t in self._timeSteps: + if time <= t: + break + timeInd = timeInd + 1 + return timeInd + return timeInd + + def RequestData(self, request, inInfo, outInfo): + with _perf.timed("reader.RequestData"): + return self._RequestDataImpl(request, inInfo, outInfo) + + def _RequestDataImpl(self, request, inInfo, outInfo): + if ( + self._ConnFileName is None + or self._ConnFileName == "None" + or self._DataFileName is None + or self._DataFileName == "None" + ): + print_error( + "Either one or both, the data file or connectivity file, are not provided!" + ) + return 0 + global _has_deps + if not _has_deps: + print_error("Required Python module 'netCDF4' or 'numpy' missing!") + return 0 + + meshdata = self._get_mesh_dataset() + vardata = self._get_var_dataset() + + # Ensure dimensions are identified + self._identify_horizontal_dimension(meshdata, vardata) + + if not self._horizontal_dim or not self._data_horizontal_dim: + print_error("Could not identify required dimensions from files") + return 0 + + # Build geometry if not cached + self._build_geometry(meshdata) + + if self._cached_points is None: + print_error("Could not build geometry from connectivity file") + return 0 + + output_mesh = dsa.WrapDataObject(self._output) + + if self._dirty: + self._output = vtkUnstructuredGrid() + output_mesh = dsa.WrapDataObject(self._output) + + # Use cached geometry + output_mesh.SetPoints(self._cached_points) + + # Create cell array from cached data + cellArray = vtkCellArray() + cellArray.SetData(self._cached_offsets, self._cached_cells) + output_mesh.VTKObject.SetCells(self._cached_cell_types, cellArray) + + self._dirty = False + + # Needed to drop arrays from cached VTK Object + to_remove = set() + last_num_arrays = output_mesh.CellData.GetNumberOfArrays() + for i in range(last_num_arrays): + to_remove.add(output_mesh.CellData.GetArrayName(i)) + + changed_dims = self._changed_dims + for name, varmeta in self._variables.items(): + if self._variable_selection.ArrayIsEnabled(name): + if output_mesh.CellData.HasArray(name): + to_remove.remove(name) + if changed_dims and not changed_dims.intersection( + varmeta.dimensions + ): + continue + data = self._load_variable(vardata, varmeta) + output_mesh.CellData.append(data, name) + + self._changed_dims = set() + + area_var_name = "area" + if self._areavar and not output_mesh.CellData.HasArray(area_var_name): + data = self._get_cached_area(vardata) + if data is not None: + output_mesh.CellData.append(data, area_var_name) + if area_var_name in to_remove: + to_remove.remove(area_var_name) + + for var_name in to_remove: + output_mesh.CellData.RemoveArray(var_name) + + output = vtkUnstructuredGrid.GetData(outInfo, 0) + output.ShallowCopy(self._output) + + return 1 diff --git a/src/e3sm_siteview/viewer.py b/src/e3sm_siteview/viewer.py new file mode 100644 index 0000000..7a98569 --- /dev/null +++ b/src/e3sm_siteview/viewer.py @@ -0,0 +1,33 @@ +from pathlib import Path + +from trame.app import TrameComponent, asynchronous + +from e3sm_siteview.analysis import create_analysis +from e3sm_siteview.plugins.reader import EAMSliceSource + + +class E3SMAnalyser(TrameComponent): + def __init__(self, server, connectivity_file, data_file): + super().__init__(server) + self._name = Path(data_file).name + self.reader = EAMSliceSource() + self.reader.SetDataFileName(str(data_file)) + self.reader.SetConnFileName(str(connectivity_file)) + self._analysis = {} + + @property + def name(self): + return self._name + + def add_analysis(self, type="viz"): + analysis = create_analysis(type, self.server, self.reader) + if analysis is None: + msg = f"Invalid analysis type: {type}" + raise ValueError(msg) + self._analysis[type] = analysis + asynchronous.create_task( + self._add_panel(analysis.name, self.name, analysis.name) + ) + + async def _add_panel(self, panel_id, label, template_name): + self.ctx.views_container.add_panel(panel_id, label, template_name)