Skip to main content

SPIEPy (Scanning Probe Image Enchanter using Python) is a Python library to improve automatic processing of SPM images.

Project description

Python is a great language to use for automatic processing of scientific data. Scanning probe microscopes (SPM) produce scientific data in the form of images, images of surfaces that can have atomic or molecular resolutions. The microscope produces surfaces that are not level. Before you can analyse the surface, the surface must first be levelled (flattened). This Python library provides routines to flatten the surface and to generate statistical data on surface structures. Surfaces with contaminations, step edges and atomic or molecular resolution can be handled.

SPIEPy and SPIW - MATLAB Toolbox [source] are related projects. SPIEPy uses many algorithms originally designed by the SPIW project. The performance of these algorithms is discussed in REVIEW OF SCIENTIFIC INSTRUMENTS 84, 113701 (2013) [DOI].

The library SPIEPy has the packages spiepy with the modules for the tasks described above and spiepy.demo to generate sample data. With this sample data, you can familiarize yourself with SPIEPy.

Dependencies

SPIEPy requires the NumPy library (http://www.numpy.org), SciPy library (http://scipy.org) and the Matplotlib library (http://matplotlib.org).

Installation

Using pip:

> pip install SPIEPy

CLASSES

Im

SPIEPy_image_structure, set attribute data with a 2D ndarray of image data, set all other attributes with the metadata of the image.

FUNCTIONS

Flattening functions:

  • flatten_by_iterate_mask

  • flatten_by_peaks

  • flatten_poly_xy

  • flatten_xy

Locating functions:

  • locate_masked_points_and_remove

  • locate_regions

  • locate_steps

  • locate_troughs_and_peaks

Masking functions:

  • mask_by_mean

  • mask_by_troughs_and_peaks

  • mask_tidy

Measuring functions:

  • measure_feature_properties

Demo functions:

  • list_demo_files

  • load_demo_file

DATA

NANOMAP

Colormap which is the standard orange colormap used my most SPM software.

Help

On the interpreter console use the built-in help function to get the help page of the module, function, …

>>> import spiepy, spiepy.demo
>>> help(spiepy)
...
>>> help(spiepy.demo)
...
>>> help(spiepy.flatten_by_iterate_mask)
...

Documentation: https://webspace.science.uu.nl/~zeven101/SPIEPy/

Example usage

# -*- coding: utf-8 -*-
#
#   Copyright © 2014 - 2017 Stephan Zevenhuizen
#   Flattening terrace image, (09-10-2017).
#

import spiepy, spiepy.demo
import matplotlib.pyplot as plt
import numpy as np

im = spiepy.Im()
demos = spiepy.demo.list_demo_files()
print(demos)
im.data = spiepy.demo.load_demo_file(demos[1])

plt.imshow(im.data, cmap = spiepy.NANOMAP, origin = 'lower')
print('Original image.')
plt.show()

im_out, _ = spiepy.flatten_xy(im)
plt.imshow(im_out.data, cmap = spiepy.NANOMAP, origin = 'lower')
print('Preflattened image.')
plt.show()

mask = spiepy.locate_steps(im_out, 4)
plot_image = np.ma.array(im_out.data, mask = mask)
palette = spiepy.NANOMAP
palette.set_bad('#00ff00', 1.0)
plt.imshow(plot_image, cmap = palette, origin = 'lower')
print('Preflattened image, mask.')
plt.show()

im_final, _ = spiepy.flatten_xy(im, mask)
plt.imshow(im_final.data, cmap = spiepy.NANOMAP, origin = 'lower')
print('Flattened image.')
plt.show()

y, x = np.histogram(im_out.data, bins = 200)
ys, xs = np.histogram(im_final.data, bins = 200)
fig, ax = plt.subplots()
ax.plot(x[:-1], y, '-b', label = 'Standard plane flattening')
ax.plot(xs[:-1], ys, '-r', label = 'SPIEPy stepped plane flattening')
ax.legend(loc = 2, fancybox = True, framealpha = 0.2)
ax.set_xlabel('z (nm)')
ax.set_ylabel('count')
plt.show()

Authors & affiliations

Stephan J. M. Zevenhuizen [1]

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

SPIEPy-0.2.1.tar.gz (4.4 MB view details)

Uploaded Source

Built Distribution

SPIEPy-0.2.1-py3-none-any.whl (4.4 MB view details)

Uploaded Python 3

File details

Details for the file SPIEPy-0.2.1.tar.gz.

File metadata

  • Download URL: SPIEPy-0.2.1.tar.gz
  • Upload date:
  • Size: 4.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.0

File hashes

Hashes for SPIEPy-0.2.1.tar.gz
Algorithm Hash digest
SHA256 a0fd399b838e6b408dab5e4e29e8bfabec19a68187bc770ab28c62b5ebe4b0f8
MD5 2e7d307b1c9b882b2abf74251b7b4e18
BLAKE2b-256 b6722645ff6cb4cc3838060926cc6edb3d17e95938ec148b1c8f8d59c4dbd13a

See more details on using hashes here.

File details

Details for the file SPIEPy-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: SPIEPy-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 4.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.0

File hashes

Hashes for SPIEPy-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d7149766915440165518a3e9312cc219bcc7c7f6c29239017fbf20b21052b2e7
MD5 4ed5a9e13ff5def0292caf6a239cb36e
BLAKE2b-256 7581714b8fe36d24278954e185a6e98045d2bac1e9533ba2e08b8640fc40c4c6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page