Skip to content

A small library written in python 3 to parse Nanonis binary and ascii files

License

Notifications You must be signed in to change notification settings

narpfel/nanonispy

 
 

Repository files navigation

Build Status Coverage Status Install with conda

nanonispy

A small library written in python 3 to parse Nanonis binary and ascii files.

Nanonispy was made in needing to do a lot of analysis for scanning tunneling microscopy (STM) data, and thought this would be good practice in creating a proper python library. That being said it is in no way foolproof and if anybody else actually uses this please let me know if you run into issues.

Nanonispy can read Nanonis grid, scan, and point spectroscopy files. This means it will read the file header and parse that into a somewhat useful dictionary for later use, as well as read in the binary/ascii data in a relatively general way to accomadate data with multiple channels stored, or custom spectroscopy experiments.

Requirements

Currently written and tested with

  • python 3.5
  • python 3.4
  • python 3.3

Depends on

  • numpy
  • lazy-property (for lazily reading signals)

Install

pip

pip install nanonispy

conda

conda install --channel https://conda.anaconda.org/underchemist nanonispy

github

Simply clone this repo and run

python setup.py install

Basic usage

Once installed, you should be able to import it to any python script or ipython session.

import nanonispy as nap

Then given a file,

grid = nap.read.Grid('/path/to/datafile.3ds')

You can look at the attributes and methods to determine the information available.

Running tests

Similar to the install, except run

python setup.py test

. If you have the nose module installed, it's as simple as

nosetests

.

You can also see coverage of the tests as well as ignore the test discovery of numpy core packages (don't quite understand why it does this) with

nosetests --with-coverage --cover-branches --cover-package=nanonispy

.

To do

  • homogenize grid and scan header keys, right now header formats are pretty different and I'm to lazy to do it myself.
  • more relevant tests
  • saving methods
  • handle incomplete scans/grids

About

A small library written in python 3 to parse Nanonis binary and ascii files

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%