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

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

From source

git clone https://github.com/henricryden/ndslice.git
cd ndslice
pip install -e .

Requirements

  • Python >= 3.8
  • NumPy >= 1.20.0
  • PyQtGraph >= 0.12.0
  • PyQt5 >= 5.15.0

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.1.4.tar.gz (17.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.1.4-py3-none-any.whl (15.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ndslice-0.1.4.tar.gz
  • Upload date:
  • Size: 17.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.1.4.tar.gz
Algorithm Hash digest
SHA256 595fe851dfcf398d8aebc5700b7d264d7198d6199acca8887c1b6103054e0ff6
MD5 d5292a1130cc71e3578a9e01c386245e
BLAKE2b-256 388e0588295381551a9e558bb30d87f7fbb84afef6d57cf035a4ec81cbd893a8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ndslice-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 15.9 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.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 899cd09f7e981964c8c88d9f765127c00b147464ebdbec1d7ac6056a4d0d861a
MD5 5f31296b96a8c937e8404c391867e5af
BLAKE2b-256 e49cd9cf9e041e08a16a55c3ebfdd098e41218f7476730082b39302014069caf

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