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.10
current_version = 0.1.11
commit = True
tag = True

Expand Down
84 changes: 48 additions & 36 deletions .github/workflows/finalize-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ jobs:
with:
ref: release
lfs: true
fetch-depth: 0 # Fetch all history for changelog generation
fetch-tags: true # Explicitly fetch all tags

- name: Get version from files
run: |
Expand Down Expand Up @@ -91,57 +93,67 @@ jobs:

- name: Generate comprehensive release notes
run: |
# Check if we have any commits
if ! git rev-parse HEAD >/dev/null 2>&1; then
echo "No commits found"
CHANGELOG="- Initial release"
PREV_TAG=""
else
# Get previous release tag (check if any tags exist first)
if git tag -l | grep -q .; then
PREV_TAG=$(git describe --tags --abbrev=0 HEAD~1 2>/dev/null || git describe --tags --abbrev=0 2>/dev/null || echo "")
else
PREV_TAG=""
# Fetch all tags from all branches to ensure we have complete history
git fetch --all --tags

# Get all tags sorted by version
ALL_TAGS=$(git tag -l "v*" --sort=-version:refname)
echo "All tags found: $ALL_TAGS"

# Get the current tag (the one we're creating)
CURRENT_TAG="${{ env.APP_TAG }}"

# Find the previous tag (excluding the current one if it exists)
PREV_TAG=""
for tag in $ALL_TAGS; do
if [ "$tag" != "$CURRENT_TAG" ]; then
PREV_TAG=$tag
break
fi
done

# Generate changelog
if [ -z "$PREV_TAG" ]; then
# No previous tags, get all commits except the version bump
if git rev-parse HEAD~1 >/dev/null 2>&1; then
CHANGELOG=$(git log --oneline --pretty=format:"- %s" HEAD~1)
else
CHANGELOG="- Initial release"
fi
echo "Previous tag: ${PREV_TAG:-none}"
echo "Current tag: $CURRENT_TAG"

# Generate changelog
if [ -z "$PREV_TAG" ]; then
echo "No previous tag found, including all commits"
# For first release, get all commits
CHANGELOG=$(git log --oneline --pretty=format:"- %s" --reverse HEAD 2>/dev/null || echo "- Initial release")
else
echo "Generating changelog from $PREV_TAG to $CURRENT_TAG"
# Since tags are on master, get commits between tags
# Use the current tag if it exists, otherwise use HEAD
if git rev-parse "$CURRENT_TAG" >/dev/null 2>&1; then
CHANGELOG=$(git log --oneline --pretty=format:"- %s" ${PREV_TAG}..${CURRENT_TAG} 2>/dev/null || echo "- Release updates")
else
# Get commits since last tag
CHANGELOG=$(git log --oneline --pretty=format:"- %s" ${PREV_TAG}..HEAD~1 2>/dev/null || echo "- Release updates")
CHANGELOG=$(git log --oneline --pretty=format:"- %s" ${PREV_TAG}..HEAD 2>/dev/null || echo "- Release updates")
fi
fi

# Filter out version bump commits and merge commits
CHANGELOG=$(echo "$CHANGELOG" | grep -v "^- Bump version:" | grep -v "^- Merge" | grep -v "^- \[pre-commit\]" || true)

# If changelog is empty, use a default message
if [ -z "$CHANGELOG" ]; then
CHANGELOG="- Release updates"
fi

echo "Generated changelog:"
echo "$CHANGELOG"

cat > release_notes.md << EOF
## What's New in v${{ env.VERSION }}

${CHANGELOG:-"- Initial release"}
$CHANGELOG

## Downloads

This release includes distributables for the following platforms:

### macOS
- **Apple Silicon (M1/M2/M3)**: Download the \`aarch64-apple-darwin\` version
- **Intel Macs**: Download the \`x86_64-apple-darwin\` version

## Installation Instructions

### macOS
1. Download the appropriate \`.dmg\` file for your Mac architecture
2. Open the downloaded \`.dmg\` file
3. Drag the app to your Applications folder
4. Launch the app from Applications

## System Requirements

- **macOS**: 10.15 (Catalina) or later
- **Apple Silicon (M1/M2/M3)**: Download the \`aarch64\` version
- **Intel Macs**: Download the \`x64\` version

## Support

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/package-and-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ jobs:
shell: bash -l {0}
- name: Package using PyInstaller
run: |
chmod +x setup_tauri.sh
./setup_tauri.sh
chmod +x scripts/setup_tauri.sh
./scripts/setup_tauri.sh
shell: bash -l {0}
- name: setup node
uses: actions/setup-node@v4
Expand Down
56 changes: 0 additions & 56 deletions CHANGELOG.md

This file was deleted.

141 changes: 41 additions & 100 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,141 +3,82 @@
[![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 designed specifically for
atmospheric scientists working with E3SM (Energy Exascale Earth System Model)
data. Built on ParaView and Trame, 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)

## Why QuickView?
## Quick Start

Traditional visualization tools like ParaView and VisIt, while powerful, often
require significant time investment to master their complex interfaces and may
lack atmospheric science-specific features out of the box. QuickView addresses
these challenges by:
### Prerequisites
- Python 3.13+
- ParaView 5.13.3+ (installed via conda)

- **Reducing the learning curve** - Atmospheric scientists can start visualizing
their data immediately
- **Eliminating "last-mile" effort** - No need to write custom scripts or
plugins for common tasks
- **Accelerating insights** - Focus on science, not software configuration
- **Building on proven technology** - Leverages ParaView's robust data
processing with a tailored interface

## Installation

### Using Conda (Recommended)

1. Create and activate a conda environment:

```bash
conda env create -f quickview-env.yml
conda activate quickview
```

2. Install QuickView:

```bash
pip install .
```

### Requirements

- Python 3.13
- ParaView 5.13.3 (installed automatically with conda environment)
- Trame and other dependencies (installed automatically)

## Getting the Code

### Clone from GitHub
### Installation

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

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

```bash
wget https://github.com/ayenpure/QuickView/archive/main.tar.gz
tar -xvzf main.tar.gz
cd QuickView-main
# Install QuickView
pip install -e .
```

## Running the Application

To run QuickView with a data file:
### Running QuickView

```bash
python -m quickview.app --data data/aerosol_F2010.eam.h0.2014-12.nc
```

### Command Line Options

- `--data`: Path to the NetCDF data file (required)
- `--conn`: Path to the connectivity file (optional)
- `--port`: Server port (default: 8080)
- `--host`: Server host (default: localhost)
# With sample data
quickview --data data/aerosol_F2010.eam.h0.2014-12.nc

### Example with Custom Files

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

The application will start a Trame web server. Open your browser and navigate
to:
The application starts a web server at `http://localhost:8080`

```
http://localhost:8080
```
## Documentation

## Sample Data
- **[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

The repository includes sample data files in the `data/` directory for testing:
## Key Features

- `aerosol_F2010.eam.h0.2014-12.nc` - Sample atmospheric data
- Default connectivity file is automatically loaded
- Clean, minimalist interface tailored for atmospheric modeling
- Multi-variable visualization with drag-and-drop layout
- Geographic projections (Plate Carrée, Robinson, etc.)
- Persistent sessions - pick up where you left off
- Support for EAM v2, v3, and upcoming v4 data formats

## Development

For development setup and contribution guidelines, please see
[CONTRIBUTING.md](CONTRIBUTING.md).
See [CLAUDE.md](CLAUDE.md) for development setup and architecture details.

## Documentation
```bash
# Run linter
ruff check quickview/

Comprehensive documentation is available in the [docs/](docs/) directory,
including:
# Run tests
python -m quickview.app --help

- [User Guide](docs/userguide/launch.md) - Detailed usage instructions
- [Control Panel Guide](docs/userguide/control_panel.md) - Interface overview
- [Viewport Customization](docs/userguide/viewport.md) - Working with multiple
variables
- [Data Requirements](docs/data-requirements.md) - NetCDF file format and
required variables
# Bump version
bumpversion patch
```

## About

QuickView is developed by [Kitware, Inc.](https://www.kitware.com/) in
collaboration with
[Pacific Northwest National Laboratory](https://www.pnnl.gov/). It is supported
by the U.S. Department of Energy's
[Biological and Environmental Research (BER)](https://www.energy.gov/science/ber/biological-and-environmental-research)
and
[Advanced Scientific Computing Research (ASCR)](https://www.energy.gov/science/ascr/advanced-scientific-computing-research)
programs via the
[Scientific Discovery through Advanced Computing (SciDAC)](https://www.scidac.gov/)
program.
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

This project is licensed under the Apache Software License - see the
[LICENSE](LICENSE) file for details.
Apache Software License - see [LICENSE](LICENSE) file for details.
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.10"
version = "0.1.11"
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.10"
__version__ = "0.1.11"
__author__ = "Kitware Inc."
__license__ = "Apache-2.0"
Loading
Loading