A suite of Python libraries for high performance scientific computing of microscopy data.
Project description
What is pycroscopy?
pycroscopy is a python package for image processing and scientific analysis of imaging modalities such as multi-frequency scanning probe microscopy, scanning tunneling spectroscopy, x-ray diffraction microscopy, and transmission electron microscopy. Classes implemented here are ported to a high performance computing platform at Oak Ridge National Laboratory (ORNL).
To learn more about the motivation, general structure, and philosophy of pycroscopy, please read this short introduction.
Package Structure
- The package structure is simple, with 4 main modules:
io: Input/Output from custom & proprietary microscope formats to HDF5.
processing: Multivariate Statistics, Machine Learning, and Filtering.
analysis: Model-dependent analysis of information.
viz: Plotting functions and custom interactive jupyter widgets
Once a user converts their microscope’s data format into an HDF5 format, by simply extending some of the classes in io, the user gains access to the rest of the utilities present in pycroscopy.*.
Installation
Pycroscopy requires many commonly used python packages such as numpy, scipy etc. To simplify the installation process, we recommend the installation of Anaconda which contains most of the prerequisite packages as well as a development environment - Spyder.
Recommended - uninstall existing Python distribution(s) if installed. Restart computer afterwards.
Install Anaconda 4.2 (Python 3.5) 64-bit - Mac / Windows / Linux
Install pycroscopy - Open a terminal (mac / linux) or command prompt (windows - if possible with administrator priveleges) and type:
pip install pycroscopy
Enjoy pycroscopy!
If you already have pycroscopy installed and want to update to the latest version, use the following command:
pip install -U pycroscopy
If you would like to quickly view HDF5 files generated by and used in pycroscopy, we recommend HDF View
Compatibility
Pycroscopy was initially developed in python 2 but all current / future development for pycroscopy will be on python 3.5+. Nonetheless, we will do our best to ensure continued compatibility with python 2.
We currently do not support 32 bit architectures
API and Documentation
See our homepage for more information
Our api (documentation for our functions and classes) is available here
Details regarding pycroscopy’s data format for HDF5 are also available in the docs. You can check out how we are able to represent multidimensional datasets of arbitrary sizes.
Examples and Resources
We use jupyter notebooks for our scientific workflows. This youtube video provides a nice overview on jupyter notebooks.
We host many jupyter notebooks of popular scientific workflows and many of them are tied to journal publications (see below).
Videos and other tutorials are available at the Institute For Functional Imaging of Materials
Journal Papers using pycroscopy
Big Data Analytics for Scanning Transmission Electron Microscopy Ptychography by S. Jesse et al., Scientific Reports (2015); jupyter notebook here 1
Rapid mapping of polarization switching through complete information acquisition by S. Somnath et al., Nature Communications (2016); jupyter notebook here 2
Improving superconductivity in BaFe2As2-based crystals by cobalt clustering and electronic uniformity by L. Li et al., Scientific Reports (2017); jupyter notebook here 3
Direct Imaging of the Relaxation of Individual Ferroelectric Interfaces in a Tensile-Strained Film by L. Li et al.; Advanced Electronic Materials (2017), jupyter notebook here 4
Many more coming soon….
International conferences and workshops using pycroscopy
Aug 8 2017 @ 10:45 AM - Microscopy and Microanalysis conference - poster session
Aug 9 2017 @ 8:30 - 10:00 AM - Microscopy and Microanalysis conference; X40 - Tutorial session on Large Scale Data Acquisition and Analysis for Materials Imaging and Spectroscopy by S. Jesse and S. V. Kalinin
Oct 31 2017 @ 6:30 PM - American Vacuum Society conference; Session: SP-TuP1; poster 1641
Dec 2017 - Materials Research Society conference
News
Apr 2017 - Lecture on atom finding
Dec 2016 - Poster + abstract at the 2017 Spring Materials Research Society (MRS) conference
Contact us
We are interested in collaborating with industry members to integrate pycroscopy into instrumentation or analysis software.
We can work with you to convert your file formats into pycroscopy compatible HDF5 files and help you get started with data analysis.
Join our slack project at https://pycroscopy.slack.com to discuss about pycroscopy
Feel free to get in touch with us at pycroscopy (at) gmail [dot] com
If you find any bugs or if you want a feature added to pycroscopy, raise an issue. You will need a free Github account to do this
If you would like to help us and are looking for topics we are / will work on, please look at our To Do page
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pycroscopy-0.0.53.linux-x86_64.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2c94a203583a82a3f0e075a139b3fb3f1d801d707f80ca4f89d3aa43856ed98 |
|
MD5 | 0d07bb9c1fba141703cf29f83bbce66d |
|
BLAKE2b-256 | 8c08adc570b4c1c106926444c5cbc24be573e4c94be24d0110e67d49a4356d6e |
Hashes for pycroscopy-0.0.53-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e05383b15ab600690a34d704e98b6775c707a9b5e3867912ee16f7bec789db9d |
|
MD5 | 2256ba8907e509fe81c45d74e5a88b2b |
|
BLAKE2b-256 | ae70a3fc67b368e5fa44f2872ee7190f47e3640bc7ff91cc32d8f9de80bfad34 |