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
Contents:
- Installation
- Examples
- contour_boxplot_example
- curve_boxplot_example
- functional_boxplot_example
- probabilistic_marching_cubes_example
- probabilistic_marching_squares_example
- probabilistic_marching_tet_example
- probabilistic_marching_triangles_example
- squid_glyphs_2D_example
- squid_glyphs_3D_example
- uncertainty_lobes_2D_example
- uncertainty_tube_example
- vsup_example
- API