Skip to main content

A tool for evaluating and visualising how well a parameter space has been explored

Project description

ParaScout

ParaScout is a tool for evaluating and visualising how well a parameter space has been explored.

Simulation campaigns often involve running models across a high-dimensional parameter space. As the number of parameters increases, it becomes difficult to determine which regions have been densely sampled, which regions remain unexplored, and where future simulations would provide the greatest benefit.

ParaScout aims to provide a lightweight framework for:

  • Loading parameter-space data from simulation campaigns
  • Automatically identifying the dimensionality of the parameter space
  • Generating appropriate visualisations for the data
  • Exploring parameter-space coverage through 1D, 2D, and 3D projections
  • Providing the foundations for future gap-finding and coverage metrics

Installation

git clone https://github.com/sohinixcvii/ParaScout.git
cd ParaScout
pip install -e .

Dependencies

  • numpy — array handling
  • plotly — interactive visualisations
  • scipy — Gaussian KDE for density estimation

Quick Start

import numpy as np
from parascout import visualise

# Each array in the list is one parameter-space projection
rng = np.random.default_rng(0)
data = rng.random((100, 3))          # (N, 3): x, y, size

figs = visualise([data, data], labels=("x", "y", "z"))
figs[0].show()

Package Structure

visualiser/
├── parascout/                    # Installable Python package
│   ├── __init__.py               # Public API and visualise() wrapper
│   ├── dispatcher.py             # Routes arrays to plotting functions
│   └── plotting_functions.py     # plot_bubble_map, plot_volumetric_density
├── data/                         # Place input data files here
├── dev_tests/                    # Developer notebooks
├── test_data_multi_dimension/    # Sample 1D–5D test datasets
├── pyproject.toml                # Build configuration and metadata
└── README.md

Public API

visualise(data_list, labels=None)

Top-level entry point. Accepts a list of NumPy arrays and dispatches each to the appropriate plotting function based on its shape.

from parascout import visualise

figs = visualise(data_list, labels=("param_a", "param_b", "param_c"))
Array shape Routed to
1-D or (N, 1) plot_1d (planned)
(N, 2) plot_2d (planned)
(N, 3+) plot_bubble_map

data_list must contain between 2 and 5 arrays.


plot_bubble_map(params, labels=("x", "y", "size"), ...)

Create a 2D bubble map from an (N, 3) parameter array. Bubble position is set by the first two columns; bubble size is proportional to the third column.

from parascout import plot_bubble_map

fig = plot_bubble_map(params, labels=("alpha", "beta", "gamma"))
fig.show()

plot_volumetric_density(params, labels=("x", "y", "z"), ...)

Create an interactive 3D volumetric density field from an (N, 3) parameter array using Gaussian KDE.

from parascout import plot_volumetric_density

fig = plot_volumetric_density(params, labels=("T", "rho", "Z"))
fig.show()

plot_dispatcher(data_list, labels=None)

Low-level dispatcher called internally by visualise(). Can be used directly if finer control is needed.


Project Workflow

The current development plan consists of four stages.

1. Data Discovery and Loading

ParaScout scans the data/ directory and automatically identifies supported data files.

Tasks:

  • Search the data/ directory
  • Identify file type
  • Load supported file formats
  • Extract parameter labels
  • Store parameter values in a standard internal format

Supported file formats:

  • Text files (.txt, .csv, .dat)
  • HDF5 files (.h5, .hdf5)

2. Parameter-Space Analysis

Once the data are loaded, ParaScout determines the dimensionality of the parameter space.

Number of Parameters Action
1 Create 1D visualisations
2 Create 2D visualisations
3 Create 3D visualisations
>3 Create sets of parameter combinations containing at most three parameters

3. Plot Selection

ParaScout automatically determines which visualisation methods are appropriate for the dimensionality of the data.

Possible plot types include:

1D

  • Kernel density estimates

2D

  • Joint scatter plots
  • Hexbin plots

3D

  • Volumetric density fields
  • Bubble maps
  • Interactive parameter-space visualisations

4. Plot Generation

The plotting module generates visualisations using the selected plotting strategy.

Responsibilities include:

  • Axis labelling
  • Parameter scaling
  • Density estimation
  • Interactive visualisation generation
  • Figure export

Generated plots are saved to the output directory and may also be displayed interactively.


User Instructions

Supported File Types

Input files must be one of the following formats:

  • .txt
  • .csv
  • .dat
  • .h5
  • .hdf5

Parameter Labels

The first row of the input file must contain parameter labels.

These labels will be used automatically for axis titles and plot annotations.

Data Location

All input files should be placed inside the data/ directory:

visualiser/
├── data/
│   ├── runs.csv
│   ├── simulations.txt
│   └── parameter_space.h5
├── parascout/
├── dev_tests/
└── README.md

ParaScout will automatically scan the directory and identify compatible files.


Motivation

As simulation campaigns continue to grow in size and complexity, understanding where simulations have already been performed becomes increasingly important. ParaScout is designed to provide a simple and extensible framework for exploring parameter-space coverage and identifying regions that may benefit from additional sampling.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

parascout-0.1.1.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

parascout-0.1.1-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file parascout-0.1.1.tar.gz.

File metadata

  • Download URL: parascout-0.1.1.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.20

File hashes

Hashes for parascout-0.1.1.tar.gz
Algorithm Hash digest
SHA256 238625a9d14c628dd097c4f13ea94454aab320e444f1821cd256dd76c783f378
MD5 1feeae06681ba32ab576f69a57cac19a
BLAKE2b-256 8bfb6f5ab66daee991af0ef1c823cbd2c4a9d1c3056ee74075dc6d38cf6652b2

See more details on using hashes here.

File details

Details for the file parascout-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: parascout-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.20

File hashes

Hashes for parascout-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 92bbb189fdbb1e527843856c42c70e6de3881778d034dfc71e6e37ee6ed185aa
MD5 38321ae228ae611ef4a83a2134a3e9c7
BLAKE2b-256 85a3436d050d7ac675141c8df83df06e212e7fe4e194d53821abd4984f58fe31

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page