Skip to main content

A Python Library for VISoR Image.

Project description

visor-py

A Python Library for VISoR Image.

[!NOTE] Since v2025.5.1, we've switched to Zarr v3, are using zarrs to speed up I/O, and have replaced dask since it has not yet optimized its I/O for sharded Zarr.

Usage

Install Module

pip install visor-py

Import Module

import visor.image as vimg

Examples

  • Read .vsr
import visor.image as vimg

# Open .vsr file with read-only ('r') mode
# img is a visor.Image object 
img = vimg.open_vsr('path/to/VISOR001.vsr', 'r')
print(img.info)
  • Read raw image
import visor.image as vimg
img = vimg.open_vsr('path/to/VISOR001.vsr', 'r')

# Read raw image of slice_1_10x from zarr file
# arr is a visor.Array object
arr = img.read(img_type='raw',
               zarr_file='slice_1_10x.zarr',
               resolution=0)
print(arr.info)
  • Read arrays by named visor_stacks or channels
import visor.image as vimg
img = vimg.open_vsr('path/to/VISOR001.vsr', 'r')
arr = img.read(img_type='raw',
               zarr_file='slice_1_10x.zarr',
               resolution=0)

# Read visor_stacks by label
# s1_array is a numpy.ndarray, dimensions: vs=1,ch,z,y,x
s1_array = arr.read(stack='stack_1')
print(f's1_array shape: {s1_array.shape}, dimensions: vs=1,ch,z,y,x')

# Read channel by wavelength
# c488_array is a numpy.ndarray, dimensions: vs,ch=1,z,y,x
c488_array = arr.read(channel='488')
print(f'c488_array shape: {c488_array.shape}, dimensions: vs,ch=1,z,y,x')

# Read visor_stack and channel
# s1c488_array is a numpy.ndarray, dimensions: vs=1,ch=1,z,y,x
s1c488_array = arr.read(stack='stack_1', channel='488')
print(f's1c488_array shape: {s1c488_array.shape}, dimensions: vs=1,ch=1,z,y,x')
  • Read array by index
import visor.image as vimg
img = vimg.open_vsr('path/to/VISOR001.vsr', 'r')
arr = img.read(img_type='raw',
               zarr_file='slice_1_10x.zarr',
               resolution=0)

# Read by index
# the_array is a numpy.ndarray
the_array = arr.array
print(f'the_array shape: {the_array.shape}, dimensions: vs,ch,z,y,x')
# subarr is a numpy.ndarray
subarr = the_array[0,0,:,:,:]
print(f'subarr shape: {subarr.shape}, dimensions: z,y,x')
  • Write .vsr
import visor.image as vimg
import numpy as np

# Open .vsr file with write ('w') mode
# img is a visor.Image object 
img = vimg.open_vsr('path/to/VISOR001.vsr', 'w')

# Generate a random array
# new_arr is a numpy.ndarray
new_arr_shape      = (2,2,4,4,4)
new_arr_shard_size = (1,1,4,4,4)
new_arr_chunk_size = (1,1,2,2,2)

new_arr = np.random.randint(0, 255, size=new_arr_shape, dtype='uint16')

# Metadata
# follow https://visor-tech.github.io/visor-data-schema/
img_info = {}    # info.json
arr_info = {}    # zarr.json['attributes']
selected = {}    # selected.json

# Write array to .vsr
img.write(arr=new_arr,
          img_type='raw',
          file='slice_1_10x',
          resolution=0,
          img_info=img_info,
          arr_info=arr_info,
          chunk_size=new_arr_chunk_size,
          shard_size=new_arr_shard_size,
          selected=selected)

References

VISoR Image Schema

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

visor_py-2025.5.1.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

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

visor_py-2025.5.1-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file visor_py-2025.5.1.tar.gz.

File metadata

  • Download URL: visor_py-2025.5.1.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for visor_py-2025.5.1.tar.gz
Algorithm Hash digest
SHA256 9375a0b1e8a83096f8cfa5750686d018b2aba715a7ecd4555516816a72760bd6
MD5 bbed819911f480856eff237b757b74f6
BLAKE2b-256 275d76b607d7a3f44011a90eef1ee5b16300449747335118e9f3390c114d9ac4

See more details on using hashes here.

File details

Details for the file visor_py-2025.5.1-py3-none-any.whl.

File metadata

  • Download URL: visor_py-2025.5.1-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for visor_py-2025.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 da228479899e2efeb4d86d3a0c02aa8e8688b13d5f043de1af6bfbb71dd5f3db
MD5 76e7d0f1889f9a52333295d73b05cc1e
BLAKE2b-256 b4bea080e560778381a93049758006c85c705a48400e3dd0caaadd5bf101a2a2

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