Skip to main content

Interactive N-dimensional numpy array viewer with FFT support

Project description

ndslice

Quick interactive visualization for N-dimensional NumPy arrays

A python package for browsing slices, applying FFTs, and inspecting data.

Quickly checking multi-dimensional data usually means writing the same matplotlib boilerplate over and over. This tool lets you just call ndslice(data) and interactively explore what you've got.

Usage

from ndslice import ndslice
import numpy as np

# Create some data
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
z = np.linspace(-5, 5, 50)
X, Y, Z = np.meshgrid(x, y, z, indexing='ij')

mag = np.exp(-(X**2 + Y**2 + Z**2) / 10)
pha = np.pi/4 * (X + Y + Z)
complex_data = mag * np.exp(1j * pha)

ndslice(complex_data, title='3D Complex Gaussian')

Showcase

Command Line

ndslice data.npy # Numpy file
ndslice --help   # Show all options

HDF5 support (requires pip install h5py):

ndslice data.h5 

The CLI automatically detects and loads the largest multidimensional dataset in HDF5 files Handles both real and complex data (including compound dtypes with real/imag fields).

Features

Data slicing and dimension selection should be intuitive: click the two dimensions you want to show and slice using the spinboxes.

Centered FFT - Click dimension labels to apply centered 1D FFT transforms. Useful for checking k-space data in MRI reconstructions or analyzing frequency content. FFT

Line plot - See 1D slices through your data. Shift+scroll for Y zoom, Ctrl+scroll for X zoom:

Line plot

Scaling

Log scaling is often good for k-space visualization. Symmetric log scaling is an extension of the log scale which supports negative values.

Colormap Change colormap:

  • Ctrl+1 Grayscale
  • Ctrl+2 Viridis
  • Ctrl+3 Plasma
  • Ctrl+4 Rainbow

Non-blocking windows

By default, windows open in separate processes, allowing multiple simultaneous views:

ndslice(data1)
ndslice(data2) # Both windows appear

Use block=True to wait for the window to close before continuing:

ndslice(data1, block=True)  # Script pauses here
ndslice(data2)  # Shown after first closes

Installation

From PyPI

pip install ndslice
pip install h5py # Optional for HDF5 CLI support

From source

git clone https://github.com/henricryden/ndslice.git
cd ndslice

# Use directly without installing
python -m ndslice data.npy

pip install -e .

Requirements

  • Python >= 3.8
  • NumPy >= 1.20.0
  • PyQtGraph >= 0.12.0
  • PyQt5 >= 5.15.0
  • h5py >= 3.0.0 (for HDF5 file support in CLI)

License

MIT License - see LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Acknowledgments

Built with PyQtGraph for high-performance visualization.


Henric Rydén

Karolinska University Hospital

Stockholm, Sweden

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

ndslice-0.2.0.tar.gz (19.1 kB view details)

Uploaded Source

Built Distribution

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

ndslice-0.2.0-py3-none-any.whl (18.2 kB view details)

Uploaded Python 3

File details

Details for the file ndslice-0.2.0.tar.gz.

File metadata

  • Download URL: ndslice-0.2.0.tar.gz
  • Upload date:
  • Size: 19.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.18

File hashes

Hashes for ndslice-0.2.0.tar.gz
Algorithm Hash digest
SHA256 7376872f245048aeb95f02e67e15b0e40abbf9b88026ef50a1e05d43cebfffc0
MD5 e5e3ed6661e2d5779ba3ce65d14ade13
BLAKE2b-256 bd3655af9f59bccbf8895e92c8dd81ddba49bd730bc3c4b59be1c0aa2418ea2d

See more details on using hashes here.

File details

Details for the file ndslice-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: ndslice-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 18.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.18

File hashes

Hashes for ndslice-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9c100068d778fa1e36c9154b7985e05699d1ff52a7b9088636e6b243e4441e7a
MD5 1539b1ac68bead674db09d716035364e
BLAKE2b-256 a620617851f959f618b82a5a9192c25023084975c04b1c39cc861e6cda1998b7

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