UVisBox (Still in Development)

UVisBox is an open-source Python based toolbox for visulazing uncertainty from scientific data. UVisBox provides a collection of methods for representing and exploring uncertainty in various scientific datasets.

Currently implemented methods include:

  • Uncertainty Tube: For visualizing uncertainty in trajectory data. arxiv

  • Contour Boxplot: For summarizing isocontours. doi

  • Curve Boxplot: For summarizing 2D curves. doi

  • Functional Band Depth: For summarizing functional data. doi

  • VSUP: A colormap designed for uncertain data. link

  • Squid Glyph: A new glyph for visualizing vector field uncertainty. doi

  • Uncertainty Lobes: A glyph for visualizing uncertainty in 2D vector fields. doi

  • Probabilistic Marching Squares: For visualizing uncertainty in 2D scalar fields. doi

  • Probabilistic Marching Triangles: For visualizing uncertainty in 2D scalar fields on triangulated meshes. doi

  • Probabilistic Marching cubes: For visualizing uncertainty in 3D scalar fields. doi

  • Probabilistic Marching Tetrahedra: For visualizing uncertainty in 3D scalar fields on tetrahedral meshes.

  • Uncertainty Tube: For visualizing uncertainty in trajectory data. arxiv

Future plans include the implementation of:

  • Other novel uncertainty visualization methods

The project is built using poetry for dependency management and relies on several scientific Python libraries:

  • numpy: For numerical operations and data structures.

  • scipy: For scientific computing.

  • matplotlib: For plotting and visualization.

  • scikit-learn: For machine learning algorithms.

  • scikit-image: For image processing.

  • pyvista: For 3D visualization and mesh handling.

  • basemap: For geographical plotting. Just required for examples not needed for core functionality.

The codebase is organized into modules, each handling a specific uncertainty visualization technique.:

Project Folder Structure:

UVisBox/
├── Core/
│   ├── Band_Depths/           # For Calculating Band Depths
│   ├── Cells_Crossing_Prob/   # For Computing Cell Crossing Probabilities
│   └── Interpolation/         # For Interpolation Methods
|
├── Modules/
│   ├── Contour_Boxplot/               # For Summarizing Isocontours
│   ├── Curve_Boxplot/                 # For Summarizing Curves
│   ├── Functional_Boxplot/            # For Summarizing Curves
│   ├── Squid_Glyphs/                  # 2D and 3D Vector Field Uncertainty
│   ├── Uncertainty_Lobes/             # 2D Vector Uncertainty Lobes
│   ├── Probabilistic_Marching_Cubes/          # Uncertainty in 3D Scalar Fields
│   ├── Probabilistic_Marching_Tetrahedra/     # Uncertainty in 3D Scalar Fields on Tetrahedral Meshes
│   ├── Probabilistic_Marching_Squares/        # Uncertainty in 2D Scalar Fields
│   └── Probabilistic_Marching_Triangles/      # Uncertainty in 2D Scalar Fields on Triangulated Meshes