Skip to content

Library to parse and process Nanoscope Dimension AFM files.

License

Notifications You must be signed in to change notification settings

jmarini/nanoscope

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NanoScope AFM

image

image

Nanoscope is a library to handle parsing and processing of Veeco Nanoscope Dimension AFM files. Currently hard-coded to only work for version 0x05120130 and 0x09300201 since that is what I have access to for testing, but it will likely work on newer versions.

Features

The current featureset includes:

  • Read raw Nanoscope files and image data (height, amplitude, phase, etc.)
  • Calculate standard summary information (RMS Roughness, Z-range, etc.)
  • Output the image in a Pillow-compatible format for saving
  • Data is cached after individual process steps to avoid unneeded reprocessing

Installation

Nanoscope can be easily installed using pip.

$ pip install nanoscope

Usage

An example of typical usage is shown below, including using Pillow to save the image to png and printing Z-range and RMS data to the console

import nanoscope
from PIL import Image

p = nanoscope.read('./file.000')
p.height.process()
print(p.height.zrange, p.height.rms)
pixels = p.height.colorize()
Image.fromarray(pixels).save('file.png')

Arbitrary image types may also be accessed by name (case sensitive) and the name of all image types may be queried

import nanoscope

p = nanoscope.read('./file.000')
p.image('ZSensor').process()

print(p.image_types())  # List of keys for each image type
print(p.describe_images())  # List of tuples (key, info) for each image type

The various image types can also be looped through using an iterator when processing, and the settings of the processing steps customized

import nanoscope

p = nanoscope.read('./file.000')
for img in p:
    img.process(order=2)  # flatten the image using second-order function
    print(img.type, img.rms)

The processing steps can also be called individually if needed

import nanoscope
p = nanoscope.read('./file.000')
p.height.flatten()  # flatten the image, defaults to first-order flatten
p.height.convert()  # convert the raw data to scaled values

About

Library to parse and process Nanoscope Dimension AFM files.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages