Skip to main content

Python library for Bruker AFMi Nanoscope files

Project description

Nanoscope

PyPI download month PyPI pyversions PyPI status

Package to read data files collected using Bruker, Veeco, and Digital Instruments Atomic Force Microscopes (AFMs) using Nanoscope v5.12 - v10.00 acquisition software. There is also some support for data acquired with the NanoDrive acquisition software.

Supported file types include:

  1. Image data files
  2. Ramp data (e.g. force curves without a surface hold segment, SECM data, etc. )
  3. Force curves with a surface hold segment
  4. Force Volume data without hold segment
  5. Force Volume data with surface hold segment (electrical DCUBEs, AFM-nDMA, FFV-CR, etc.)
  6. PeakForce Capture (PFC) data (collected in PeakForce QNM)
  7. High Speed Data Capture (HSDC) data
  8. Script data (RampScripting, AFM-nDMA, SS-PFM, etc.)
  9. NanoDrive Image data

The package parses the header and provides scaled data in desired units (Volt, Metric, Force). Additionally there is a small subset of other header information available (spring constant, etc.).

Installation

Use the pip package manager to install nanoscope.

$ pip install nanoscope

Requirements

This module requires the following:

  • Microsoft Windows 7 - 10 operating system
  • Python 2.78 - 3.78 (64bit preferred)
    • You can check the version and whether it is 64bit by launching the Python command line interface.
  • Microsoft Visual C++ 2015 or 2017 Redistributable (x64 version if using 64bit Python).

Usage

Note that acquisition channel numbers start with zero, not with one as is the convention in Nanoscope software.

For detailed examples, please refer to the included example code (and associated raw data files). It is contained in the module, but not imported by default.

import nanoscope as ns
ns.examples.copy_examples_code()  # prompt user to save a copy of the examples code Examples.py
help(ns.examples)  # get a list of specific examples
ns.examples.run_example(2)  # run example #2

Examples.py contains the following code for example #2 to read and plot a force curve with hold segment:

import matplotlib.pyplot as plt
import nanoscope
from nanoscope import files
from nanoscope.constants import FORCE, METRIC, VOLTS, PLT_kwargs

i_chan = 0  # This will provide Nanoscope channel #1
with files.HoldCurveFile("ForceHold.spm") as file_:
    channel = file_[i_chan]
    # get timed data of channel
    ft_plot, ax_properties = channel.create_force_time_plot(METRIC)
    plt.plot(ft_plot.x, ft_plot.y)
    plt.gca().set(**ax_properties)  # set axes properties
    plt.show()

    hold_plot, ax_properties = channel.create_force_hold_time_plot(METRIC)
    plt.plot(hold_plot.x, hold_plot.y)
    plt.gca().set(**ax_properties)  # set axes properties
    plt.show()

Resulting in 2 plots, the first showing the deflection error versus time, the second showing the same data but only for the force hold.

Support

Support for installation issues can be obtained by contacting the Bruker AFM service team at afm.support@bruker.com. As this package is provided at no charge, it is not feasible to provide support beyond helping with installation issues at this time.

For bug reports and feature requests, please email afm.support@bruker.com with "BUG" or "FEATURE" in the subject line. Also, please include an example raw Nanoscope data file along with the usual other relevant information.

License

PyPI - License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

nanoscope-1.0.300-py2.py3-none-any.whl (30.5 MB view details)

Uploaded Python 2 Python 3

File details

Details for the file nanoscope-1.0.300-py2.py3-none-any.whl.

File metadata

  • Download URL: nanoscope-1.0.300-py2.py3-none-any.whl
  • Upload date:
  • Size: 30.5 MB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.8

File hashes

Hashes for nanoscope-1.0.300-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 743e6738c57c05332204361067dfa2604a723a27ce14ed1a0f41ad6c7c059f63
MD5 c8324db460f33eb3cef5883dc4853b34
BLAKE2b-256 0f3b27e0a113a0ded397edfe162bb90e08e1f3f81353f1d1325e149e2d310504

See more details on using hashes here.

Supported by

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