Adaptive Photothermal Phase Engineering Using a Thermo-Optic Metamaterial
Authors/Creators
Description
vortex_simulations.pkl
This file contains simulated iSCAT contrast data. The file is stored as a Python dictionary serialized with pickle.
The top-level dictionary is indexed by phase-mask configuration, including no_mask and multiple rotated vortex masks, such as vortex_000, vortex_045, ..., vortex_360.
For each mask, the following fields are stored:
angle_deg: vortex mask rotation angle in degreeselapsed_s: computation time for the corresponding simulationcontrast_glass: simulated iSCAT contrast for the glass background onlycontrast_mt: simulated iSCAT contrast for the microtubule onlycontrast_glass_mt: simulated iSCAT contrast for the microtubule on glass background
Each contrast dataset is stored as a 3D NumPy array of shape (nx, ny, n_focus), where nx and ny are the lateral image dimensions and n_focus is the number of simulated focus positions.
The data can be loaded in Python using:
import pickle
with open("vortex_contrast_optimized_results.pkl", "rb") as f:
results = pickle.load(f)
exp_data_MT.npz
This file contains experimentally acquired iSCAT image data of microtubules for multiple focus positions and vortex mask rotations. The data is stored as a compressed NumPy archive (.npz).
The main array:
- data: a 4D NumPy array of shape
(n_focus, n_angles, nx, ny)
where:
n_focusis the number of focus positions (z-stack)n_anglesis the number of phase-mask configurationsnx,nyare the lateral image dimensions after cropping
The second dimension (n_angles) corresponds to:
- index 0 → iSCAT reference (no mask)
- index 1 → vortex mask, 0°
- index 2 → vortex mask, 45°
- index 3 → vortex mask, 90°
- ...
- index 8 → vortex mask, 315°
The corresponding angles are stored in:
- angles_deg: array of length
n_angles, containing rotation angles in degrees
(with-1indicating the iSCAT reference image)
Additional metadata:
- pixel_size_um: pixel size in micrometers
The data can be loaded in Python using:
import numpy as np
d = np.load("exp_data_MT.npz")
data = d["data"]
angles = d["angles_deg"]
pixel_size = d["pixel_size_um"]
exp_data_NP.npz
This file contains experimentally acquired iSCAT image stacks of a nanoparticle for multiple focus positions. The data is stored as a compressed NumPy archive (.npz).
The file contains four image stacks:
iscat_stack: iSCAT images recorded without a phase maskglass_vortex_stack: iSCAT images recorded with a glass vortex maskpt_slm_vortex_stack: iSCAT images recorded with a single PT-SLM vortex mask positionreconstructed_stack: reconstructed iSCAT images obtained from the amplitude extracted using all PT-SLM vortex positions
Each stack is stored as a 3D NumPy array of shape:
(n_focus, nx, ny)where:
n_focusis the number of retained focus positionsnx,nyare the lateral image dimensions
Each stack is centered around the focus plane used for visualization, and includes a window of ±half_window focus positions around that center.
Additional metadata:
pixel_size_um: pixel size in micrometers
The data can be loaded in Python using:
import numpy as np
d = np.load("exp_data_NP.npz")
iscat = d["iscat_stack"]
glass = d["glass_vortex_stack"]
ptslm = d["pt_slm_vortex_stack"]
recon = d["reconstructed_stack"]
pixel_size = d["pixel_size_um"]
fit_vortex_reconstruction.py
This script reconstructs amplitude and phase maps from rotational vortex iSCAT data using a pixel-wise sinusoidal fit of the normalized contrast as a function of vortex angle.
For each pixel, the measured contrast is fitted as:
C(theta_v, x, y) = C0(x, y) + A(x, y) cos(theta_v + phi(x, y))
The fitted amplitude A(x,y) and phase phi(x,y) are saved as reconstructed amplitude and phase maps.
Example using exp_data_MT.npz:
import numpy as np
from fit_vortex_reconstruction import fit_cos_vortex, save_reconstruction_npz
d = np.load("exp_data_MT.npz")
data = d["data"]
angles = d["angles_deg"]
focus_index = 0
contrast_stack = data[focus_index, 1:, :, :]
vortex_angles = angles[1:]
result = fit_cos_vortex(contrast_stack, vortex_angles)
save_reconstruction_npz("MT_reconstruction_focus0.npz", result)
Here, index 0 in exp_data_MT.npz corresponds to the iSCAT reference without a vortex mask and is therefore excluded from the angular fit. The vortex-mask images at 0°, 45°, ..., 315° are used for the reconstruction.
Files
Files
(5.2 GB)
| Name | Size | Download all |
|---|---|---|
|
md5:5033821f660ff14373cd36d9791bd6d0
|
18.7 MB | Download |
|
md5:b22cf54c77e3adeb0fc37ea4d92b7143
|
3.5 MB | Download |
|
md5:dd568465e3912905f4d3a41e0e90c60d
|
6.9 kB | Download |
|
md5:67e6e813dbf86f9073f41000d783b685
|
5.2 GB | Download |
Additional details
Funding
- e-INFRA
- 90254