Metadata-Version: 2.1
Name: pdCIFplotter
Version: 0.0.8
Summary: A program for visualising diffraction data in pdCIF format.
Home-page: https://github.com/rowlesmr/pdCIFplotter
Author: Matthew Rowles
Author-email: rowlesmr@gmail.com
License: Apache-2.0
Project-URL: Documentation, https://pdcifplotter.readthedocs.io/en/latest/
Project-URL: Changelog, https://pdCIFplotter.readthedocs.io/en/latest/changelog.html
Project-URL: Issue Tracker, https://github.com/rowlesmr/pdCIFplotter/issues
Keywords: diffraction,X-ray,neutron,synchrotron,powder diffraction,CIF,crystallography
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: Unix
Classifier: Operating System :: POSIX
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Utilities
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.6
Requires-Dist: cycler (>=0.11)
Requires-Dist: kiwisolver (>=1.3)
Requires-Dist: matplotlib (>=3.4)
Requires-Dist: mplcursors (>=0.5)
Requires-Dist: numpy (>=1.21)
Requires-Dist: Pillow (>=8.4)
Requires-Dist: PyCifRW (>=4.4.3)
Requires-Dist: pyparsing (>=3.0)
Requires-Dist: PySimpleGUI (>=4.54.0)
Requires-Dist: python-dateutil (>=2.8)
Requires-Dist: six (>=1.16)

========
Overview
========



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 <https://pypi.org/>`_ via ``pip``, then you will also need to compile the included C modules. To do so requires `Microsoft Visual C++ 14.0 or greater <https://visualstudio.microsoft.com/visual-cpp-build-tools/>`_. If you don't have this installed, or do not wish to install it, `precompiled wheel files are available <https://www.lfd.uci.edu/~gohlke/pythonlibs/#pycifrw>`_. 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 <https://github.com/rowlesmr/pdCIFplotter/issues>`_.


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

.. image:: 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.

.. image:: 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:

.. list-table::
    :widths: 10 90
    :stub-columns: 1

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


