A julia library to read and display SPM (scanning probe microscopy) images. Currently, Nanonis and GXSM files are supported.
The commands are somewhat similar to the ones in the respective python version imagex.
Install from the Julia package registry:
pkg> add SpmImages
using SpmImages
using Plots # needs to be manually imported for plotting functions
# load an SPM image
ima = load_image("Image_445.sxm")
# Plot a specific image channel directly from the image
plot_channel(ima, "frequency shift")
# Get a channel as 2D data and directly plot it
c = get_channel(ima, "current");
plot_data(c.data, color=:lapaz, title="current", legend=:none)
# Plot using the Images library
using Images
d = get_channel(ima, "current bwd", origin="upper").data
d = d .- minimum(d)
d = d ./ maximum(d)
Gray.(d)
If you want to load GXSM images, use:
# load one channel
ima = load_image("dataset007-Xp-Topo.nc")
# load all channels into one object
fnames = filter(x -> occursin("dataset007-", x), readdir("nc", join=true))
ima = load_image(fnames)
# get the channel data
d1 = get_channel(ima, "Topo", origin="upper").data
d2 = get_channel(ima, "ADC2 bwd", origin="upper").data
Code examples can be found in the example notebook.
Please post issues, suggestions, and pull requests on github. Follow me on twitter for updates and more information about this project:
- SpmImageTycoon.jl: App to organize SPM images and spectra.
- SpmSpectroscopy.jl: Julia library to read and analyze SPM spectra.
- SpmGrids.jl: Julia library to read and analyze SPM grid spectroscopy.
- imagex: Python scripts to analyze scanning probe images.
- gridex: Python scripts to analyze 3D grid data.