Skip to main content

A suite of Python libraries for high performance scientific computing of microscopy data.

Project description

0. Description
--------------
A `python <http://www.python.org/>`_ 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) <http://www.ornl.gov/>`_.

1. Package Structure
--------------------
The package structure is simple, with 4 main modules:
1. `io`: Input/Output from custom & proprietary microscope formats to HDF5.
2. `processing`: Multivariate Statistics, Machine Learning, and Filtering.
3. `analysis`: Model-dependent analysis of image information.
4. `viz`: Visualization and interactive slicing of high-dimensional data by lightweight Qt viewers.

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.*`.

2. 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. We are currently testing python 3 compatibility (see the cades_dev branch).

1. Recommended - uninstall existing Python distribution(s) if installed. Restart computer afterwards.

  2. Install Anaconda 4.2 (Python 3.5) 64-bit - `Mac <https://repo.continuum.io/archive/Anaconda3-4.2.0-MacOSX-x86_64.pkg>`_ / `Windows <https://repo.continuum.io/archive/Anaconda3-4.2.0-Windows-x86_64.exe>`_ / `Linux <https://repo.continuum.io/archive/Anaconda3-4.2.0-Linux-x86_64.sh>`_

3. Install pycroscopy - Open a terminal (mac / linux) or command prompt (windows - if possible with administrator priveleges) and type:

pip install pycroscopy

4. Enjoy pycroscopy!

If you would like to quickly view HDF5 files generated by and used in pycroscopy, we recommend `HDF View <https://support.hdfgroup.org/products/java/hdfview/>`_

3. API and information
----------------------
* See our `homepage <https://pycroscopy.github.io/pycroscopy/>`_ for more information
* Our api (documentation for our functions and classes) is available `here <http://pycroscopy.readthedocs.io/>`_

4. Examples and Resources
-------------------------
* Scientific workflows are available through `jupyter notebooks <http://jupyter.org>`_ `here <https://github.com/pycroscopy/pycroscopy/blob/master/jupyter_notebooks/>`_. Many of these are tied to journal publications (see below).
* Videos and other tutorials are available at the `Institute For Functional Imaging of Materials <http://ifim.ornl.gov/resources.html>`_

5. Journal Papers using pycroscopy
----------------------------------
1. `Big Data Analytics for Scanning Transmission Electron Microscopy Ptychography <https://www.nature.com/articles/srep26348>`_ by S. Jesse et al., Scientific Reports (2015); jupyter notebook `here <https://github.com/pycroscopy/pycroscopy/blob/master/jupyter_notebooks/Ptychography.ipynb>`_
 
2. `Rapid mapping of polarization switching through complete information acquisition <http://www.nature.com/articles/ncomms13290>`_ by S. Somnath et al., Nature Communications (2016); jupyter notebook `here <https://github.com/pycroscopy/pycroscopy/blob/master/jupyter_notebooks/G_mode_filtering.ipynb>`_
 
3. `Improving superconductivity in BaFe2As2-based crystals by cobalt clustering and electronic uniformity <http://www.nature.com/articles/s41598-017-00984-1>`_ by L. Li et al., Scientific Reports (2017); jupyter notebook `here <https://github.com/pycroscopy/pycroscopy/blob/master/jupyter_notebooks/STS_LDOS.ipynb>`_
 
4. `Direct Imaging of the Relaxation of Individual Ferroelectric Interfaces in a Tensile-Strained Film <http://onlinelibrary.wiley.com/doi/10.1002/aelm.201600508/full>`_ by L. Li et al.; Advanced Electronic Materials (2017), jupyter notebook `here <https://github.com/pycroscopy/pycroscopy/blob/master/jupyter_notebooks/BE_Processing.ipynb>`_

6. International conferences and workshops
------------------------------------------
* 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 <http://microscopy.org/MandM/2017/program/tutorials.cfm>`_ 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

7. Pycroscopy news
------------------
* Apr 2017 - Lecture on `atom finding <https://physics.appstate.edu/events/aberration-corrected-stem-teaching-machines-and-atomic-forge>`_
* Dec 2016 - Poster + `abstract <https://mrsspring.zerista.com/poster/member/85350>`_ at the 2017 Spring Materials Research Society (MRS) conference

8. Feedback
-----------
* 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 <https://github.com/pycroscopy/pycroscopy/issues>`_. You will need a free Github account to do this


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 Distributions

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

Built Distribution

pycroscopy-0.0a48-py2.py3-none-any.whl (345.5 kB view hashes)

Uploaded Python 2 Python 3

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