Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 0.1.12
current_version = 0.1.13
commit = True
tag = True

Expand Down
118 changes: 88 additions & 30 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,49 +3,73 @@
[![Test](https://github.com/ayenpure/QuickView/actions/workflows/test.yml/badge.svg)](https://github.com/ayenpure/QuickView/actions/workflows/test.yml)
[![Package and Release](https://github.com/ayenpure/QuickView/actions/workflows/package-and-release.yml/badge.svg)](https://github.com/ayenpure/QuickView/actions/workflows/package-and-release.yml)

**QuickView** is an interactive visualization tool for atmospheric scientists working with E3SM (Energy Exascale Earth System Model) data. It provides an intuitive interface for exploring atmospheric simulation outputs without the steep learning curve of general-purpose visualization tools.
**QuickView** is an interactive visualization tool for atmospheric scientists
working with E3SM (Energy Exascale Earth System Model) data. It provides an
intuitive interface for exploring atmospheric simulation outputs without the
steep learning curve of general-purpose visualization tools.

![quickview](docs/images/main.png)

## Quick Start

### Prerequisites
- Python 3.13+
- ParaView 5.13.3+ (installed via conda)

### Installation

```bash
# Clone the repository
git clone https://github.com/ayenpure/QuickView.git
cd QuickView
Download the latest release from the
[releases page](https://github.com/ayenpure/QuickView/releases):

# Set up conda environment
conda env create -f quickview-env.yml
conda activate quickview
- **macOS**: `QuickView-{version}.dmg` - Double-click to install
- **Linux**: Coming soon
- **Windows**: Coming soon

# Install QuickView
pip install -e .
```
Pre-built binaries include all dependencies - no Python or ParaView required.

### Running QuickView
## Data

```bash
# With sample data
quickview --data data/aerosol_F2010.eam.h0.2014-12.nc
QuickView works with E3SM Atmosphere Model (EAM) output files in NetCDF format.
Sample data files and their corresponding connectivity files are available at
[Zenodo](https://zenodo.org/records/16895849).

# With your own data
quickview --data /path/to/your/data.nc --conn /path/to/connectivity.nc
```
### Data Files

The application starts a web server at `http://localhost:8080`
QuickView supports EAM output files from different model versions:

- **EAM Version 2**: Standard atmospheric simulation outputs (e.g.,
`EAMv2_ne30pg2_F2010.eam.h0.nc`)
- **EAM Version 4 (interim)**: Newer format outputs (e.g.,
`EAMxx_ne4pg2_202407.nc`)

These files contain atmospheric variables such as temperature, pressure, wind
fields, and other model diagnostics on finite-volume physics grids.

### Connectivity Files

Each data file requires a corresponding connectivity file that describes the
horizontal grid structure:

- Connectivity files follow the naming pattern:
`connectivity_{resolution}_TEMPEST.scrip.nc`
- These files are generated using TempestRemap and contain grid topology
information
- **Important**: The connectivity file resolution must match the data file
resolution for proper visualization

For example:

- Data file: `EAMv2_ne30pg2_F2010.eam.h0.nc`
- Connectivity file: `connectivity_ne30pg2_TEMPEST.scrip.nc`

Both files use the same `ne30pg2` grid resolution and must be loaded together
for the application to function correctly.

## Documentation

- **[Installation Guide](docs/setup/requirements.md)** - Detailed setup instructions
- **[Installation Guide](docs/setup/requirements.md)** - Detailed setup
instructions
- **[User Guide](docs/userguide/launch.md)** - How to use QuickView
- **[Data Requirements](docs/data-requirements.md)** - NetCDF file format specifications
- **[Control Panel Reference](docs/userguide/control_panel.md)** - UI components and features
- **[Data Requirements](docs/data-requirements.md)** - NetCDF file format
specifications
- **[Control Panel Reference](docs/userguide/control_panel.md)** - UI components
and features

## Key Features

Expand All @@ -57,7 +81,33 @@ The application starts a web server at `http://localhost:8080`

## Development

See [CLAUDE.md](CLAUDE.md) for development setup and architecture details.
### Python Development Installation

```bash
# Clone the repository
git clone https://github.com/ayenpure/QuickView.git
cd QuickView

# Set up conda environment
conda env create -f quickview-env.yml
conda activate quickview

# Install QuickView
pip install -e .
```

### Running from Source

```bash
python -m quickview.app --data /path/to/your/data.nc --conn /path/to/connectivity.nc

# Launch server only (no browser popup)
python --server -m quickview.app --data /path/to/your/data.nc --conn /path/to/connectivity.nc
```

The application starts a web server at `http://localhost:8080`

### Development Utilities

```bash
# Run linter
Expand All @@ -72,13 +122,21 @@ bumpversion patch

## About

QuickView is developed by [Kitware, Inc.](https://www.kitware.com/) in collaboration with [Pacific Northwest National Laboratory](https://www.pnnl.gov/), supported by the U.S. Department of Energy's [BER](https://www.energy.gov/science/ber/biological-and-environmental-research) and [ASCR](https://www.energy.gov/science/ascr/advanced-scientific-computing-research) programs via [SciDAC](https://www.scidac.gov/).
QuickView is developed by [Kitware, Inc.](https://www.kitware.com/) in
collaboration with
[Pacific Northwest National Laboratory](https://www.pnnl.gov/), supported by the
U.S. Department of Energy's
[BER](https://www.energy.gov/science/ber/biological-and-environmental-research)
and
[ASCR](https://www.energy.gov/science/ascr/advanced-scientific-computing-research)
programs via [SciDAC](https://www.scidac.gov/).

### Contributors

- **Lead Developer**: Abhishek Yenpure (Kitware, Inc.)
- **Key Contributors**: Berk Geveci, Sebastien Jourdain (Kitware, Inc.); Hui Wan, Kai Zhang (PNNL)
- **Key Contributors**: Berk Geveci, Sebastien Jourdain (Kitware, Inc.); Hui
Wan, Kai Zhang (PNNL)

## License

Apache Software License - see [LICENSE](LICENSE) file for details.
Apache Software License - see [LICENSE](LICENSE) file for details.
Binary file modified app-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
31 changes: 31 additions & 0 deletions docs/data-requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,37 @@ QuickView requires two NetCDF files:
1. **Data File** - Contains the atmospheric variables and time-varying data
2. **Connectivity File** - Contains the mesh geometry and grid structure

## Obtaining Sample Data

Sample E3SM Atmosphere Model (EAM) data files and their corresponding
connectivity files are available at
[Zenodo](https://zenodo.org/records/16895849). The dataset includes:

### Available Data Files

- **EAM Version 2 outputs**:
- `EAMv2_ne120pg2_F2010_spinup.eam.h0.nc` (525.3 MB)
- `EAMv2_ne30pg2_F2010_aermic.eam.h0.nc` (498.3 MB)
- `EAMv2_ne30pg2_F2010_cld.eam.h0.nc` (745.5 MB)
- **EAM Version 4 (interim) outputs**:
- `EAMxx_ne4pg2_202407.nc` (13.2 MB)

### Available Connectivity Files

- `connectivity_ne120pg2_TEMPEST.scrip.nc` (31.8 MB)
- `connectivity_ne30pg2_TEMPEST.scrip.nc` (2.0 MB)
- `connectivity_ne4pg2_TEMPEST.scrip.nc` (48.8 kB)

### Important: File Correspondence

**The connectivity file resolution must match the data file resolution for
proper visualization.** For example:

- Data file: `EAMv2_ne30pg2_F2010.eam.h0.nc`
- Connectivity file: `connectivity_ne30pg2_TEMPEST.scrip.nc`

Both files use the same `ne30pg2` grid resolution and must be loaded together.

## Required Dimensions

The following dimensions must be present in the data files:
Expand Down
13 changes: 13 additions & 0 deletions docs/userguide/launch.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# Launching the QuickView app

## Getting Data Files

Before launching QuickView, you'll need E3SM data files. Sample data files are
available at [Zenodo](https://zenodo.org/records/16895849). Each data file
requires a corresponding connectivity file with matching grid resolution. For
example:

- Data file: `EAMv2_ne30pg2_F2010.eam.h0.nc`
- Connectivity file: `connectivity_ne30pg2_TEMPEST.scrip.nc`

See the [Data Requirements](../data-requirements.md) documentation for detailed
information about file formats and available datasets.

## Usage

Following successful configuration of the application, i.e., satisfying the
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "quickview"
version = "0.1.12"
version = "0.1.13"
description = "An application to explore/analyze data for atmosphere component for E3SM"
authors = [
{name = "Kitware Inc."},
Expand Down
2 changes: 1 addition & 1 deletion quickview/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"""QuickView: Visual Analysis for E3SM Atmosphere Data."""

__version__ = "0.1.12"
__version__ = "0.1.13"
__author__ = "Kitware Inc."
__license__ = "Apache-2.0"
23 changes: 19 additions & 4 deletions quickview/interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@
from quickview.ui.view_settings import ViewProperties, ViewControls
from quickview.ui.toolbar import Toolbar

# Build color cache here
from quickview.view_manager import build_color_information
from quickview.view_manager import ViewManager, ViewContext
# Import view management components
from quickview.view_manager import ViewManager
from quickview.utils.state import ViewContext, build_color_information

from paraview.simple import ImportPresets, GetLookupTableNames

Expand Down Expand Up @@ -144,6 +144,7 @@ def __init__(

self.workdir = workdir
self.server = server

pvWidgets.initialize(server)

self.source = source
Expand Down Expand Up @@ -712,7 +713,21 @@ def ui(self) -> SinglePageWithDrawerLayout:
self._ui = SinglePageWithDrawerLayout(self.server)
with self._ui as layout:
# layout.footer.clear()
layout.title.set_text(f"v{version}")
layout.title.clear()
with layout.title:
with html.Div(
style="display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 4px 8px;",
):
(
html.Img(
src="https://raw.githubusercontent.com/ayenpure/QuickView/master/app-icon.png",
style="height: 32px; width: 32px; border-radius: 4px; margin-bottom: 2px;",
),
)
html.Span(
f"v{version}",
style="font-size: 12px; color: rgba(0, 0, 0, 0.8); font-weight: 700; letter-spacing: 0.3px; line-height: 1;",
)

with layout.toolbar as toolbar:
Toolbar(
Expand Down
Loading
Loading