Skip to main content

A program for visualising diffraction data in pdCIF format.

Project description

A program for the visualisation of diffraction data in pdCIF format.

Crystallographic Information Framework (CIF; https://www.iucr.org/resources/cif) files are a way of storing crystallographic information in a standard human- and machine-readable format. This particular program is focussed on visualising powder diffraction data stored in CIF format, and, in particular, serial or in situ/operando data.

  • Free software: Apache Software License 2.0

Pre-installation

If you are on Windows, you must read this step. If you are on Linux, you can continue.

pdCIFplotter requires PyCifRW >= 4.4.3. If you install PyCifRW from PyPI via pip, then you will also need to compile the included C modules. To do so requires Microsoft Visual C++ 14.0 or greater. If you don’t have this installed, or do not wish to install it, precompiled wheel files are available. You must download the wheel file corresponding to your Python installation.

To obtain information about your Python installation, run the command:

python -VV

An example output is Python 3.9.4 (tags/v3.9.4:1f2e308, Apr 6 2021, 13:40:21) [MSC v.1928 64 bit (AMD64)], showing that this is 64 bit Python 3.9.

Using pip version 19.2 or newer, install your downloaded wheel file as:

pip install c:\path\to\file\name_of_file.whl

This should install PyCifRW, and you can move on to the next step. If you encounter any issues in the installation, please lodge an issue.

Installation

To install the release version of pdCIFplotter from PyPI:

pip install pdCIFplotter

You can also install the in-development version from GitHub with:

pip install https://github.com/rowlesmr/pdCIFplotter/archive/master.zip

Quick usage

To run pdCIFplotter as a standalone program:

python -m pdCIFplotter

or:

pdcifplotter

When you first open pdCIFplotter, you are met with an empty window

https://raw.githubusercontent.com/rowlesmr/pdCIFplotter/master/docs/empty.png?sanitize=true

Clicking “Load file”, and choosing a CIF file to open will automatically present you with a single plot. You can then alter how that plot is presented, or visualise all diffraction data in the CIF with the Stack and Surface tabs.

https://raw.githubusercontent.com/rowlesmr/pdCIFplotter/master/docs/single.png?sanitize=true

Documentation

https://pdCIFplotter.readthedocs.io/en/latest/

Development

This isn’t fully implemented yet.

To run all the tests run:

tox

Note, to combine the coverage data from all the tox environments run:

Windows

set PYTEST_ADDOPTS=--cov-append
tox

Other

PYTEST_ADDOPTS=--cov-append tox

Changelog

0.0.8 (2021-12-20)

  • Updated some of the zoom behaviour

  • Can now use arrows to move between consecutive diffraction patterns in the single plot

0.0.7 (2021-12-18)

  • Zoom persists in single plots when changing between diffraction patterns or altering the view in some way.

0.0.6 (2021-12-09)

  • Can normalise intensities to counts from provided weights or errors; possible in single, stack, and surface

  • hkl ticks labelled by phase name, if present, else, phase id: now including surface plot.

  • (ongoing) Refactoring of plot_cif

0.0.5 (2021-11-16)

  • Better hkl checkbox checking

  • Doesn’t crash if CIF with no diffraction pattern is loaded

  • Gracefully handles NANs in data when calculating hkl tick offsets

  • Datablock names replaced with block_id values on single plot title and dropdown data box

  • hkl ticks labelled by phase name, if present, else, phase id.

  • Large refactoring of parse_cif

0.0.4 (2021-11-11)

  • Added hkl ticks to stack plot

  • Enabled hkl ticks to be plotted above the diffraction patterns

0.0.3 (2021-11-10)

  • Separated GUI and plotting code

  • Fixed crash on changing to surface tab before opening CIF

0.0.2 (2021-11-07)

  • Update install requirements - mplcursors 0.5 is now available, rather than installing from git.

  • Can now launch from command line with just > pdcifplotter

0.0.1 (2021-11-06)

  • Update install requirements and provided prompting to user on installing packages not available on PyPi.

0.0.0 (2021-11-05)

  • First release on PyPI.

Project details


Download files

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

Source Distribution

pdCIFplotter-0.0.8.tar.gz (374.8 kB view details)

Uploaded Source

Built Distribution

pdCIFplotter-0.0.8-py2.py3-none-any.whl (51.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pdCIFplotter-0.0.8.tar.gz.

File metadata

  • Download URL: pdCIFplotter-0.0.8.tar.gz
  • Upload date:
  • Size: 374.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.4

File hashes

Hashes for pdCIFplotter-0.0.8.tar.gz
Algorithm Hash digest
SHA256 5f1763a46805fc34f8f17a87928c51c6cc491c3798b53c15fcf22c9c527246f8
MD5 408349833261af4ceeda094dc3d873fd
BLAKE2b-256 1e3c0ca7ef4e61b8667ce9eb39ac317779ff9d31f49ac61966518feb4349357f

See more details on using hashes here.

File details

Details for the file pdCIFplotter-0.0.8-py2.py3-none-any.whl.

File metadata

  • Download URL: pdCIFplotter-0.0.8-py2.py3-none-any.whl
  • Upload date:
  • Size: 51.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.4

File hashes

Hashes for pdCIFplotter-0.0.8-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 9558d01ca8fce166b8941f7af1cc71c49608b7383884a5a2c6965045d64d7633
MD5 489bc9fe1fafdb8d38d432f8fd24fb6b
BLAKE2b-256 8e967882f5163d95696ed96bfdf359f67a5fbfcfed819e2df4ca65ed9c09cc4e

See more details on using hashes here.

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