diff --git a/.gitignore b/.gitignore
index 534d55e3..77a5c668 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
_build
*.bak
*~
+.DS_Store
#eclipse
.project
diff --git a/_templates/menu01.html b/_templates/menu01.html
index 1a235d9b..ebcb477b 100644
--- a/_templates/menu01.html
+++ b/_templates/menu01.html
@@ -7,13 +7,14 @@
diff --git a/images/pdfmorph.png b/images/pdfmorph.png
new file mode 100644
index 00000000..aad99dd4
Binary files /dev/null and b/images/pdfmorph.png differ
diff --git a/images/pdfprimer.png b/images/pdfprimer.png
new file mode 100644
index 00000000..0833dc73
Binary files /dev/null and b/images/pdfprimer.png differ
diff --git a/index.rst b/index.rst
index 6cb5fff6..e224f0d7 100644
--- a/index.rst
+++ b/index.rst
@@ -30,17 +30,14 @@ diffraction analysis and the study of the atomic structure of materials.
.. include:: abbreviations.txt
-DiffPy is the home of the |DiffPyCMI|
-Complex Modeling framework, a modular software framework for robust and extensible
-modeling of diffraction data. We welcome contributions to this project from the
-community.
-The project is currently centered at `Brookhaven National Laboratory`_, a US `Department of
-Energy, Office of Basic Energy Sciences`_ funded laboratory.
+The project is currently maintained by the Billinge Group and DiffPy community members.
+
Many parts of the code were developed under the diffraction part of the DANSE_ project,
a software construction project funded by the `National Science Foundation`_ to provide
-data analysis software tools for neutron scattering experiments. This project was previously
-centered at Columbia University and, before that, Michigan State University.
+data analysis software tools for neutron scattering experiments. The DiffPy project has
+been a collaborative effort, centered in many institutions, including Brookhaven National
+Laboratory, Columbia University, and Michigan State University.
@@ -53,17 +50,30 @@ centered at Columbia University and, before that, Michigan State University.
.. _brookhaven national laboratory: https://www.bnl.gov/
-.. image:: images/blank1x1.png
- :align: left
- :height: 10
-
-.. figure:: logos/BNL_logo.jpg
- :align: left
- :target: `Brookhaven National Laboratory`_
+About DiffPy
+----------------
-.. figure:: logos/DOE_logo.png
+.. image:: images/pdfprimer.png
:align: right
- :target: `Department of Energy, Office of Basic Energy Sciences`_
+ :width: 200
+
+
+DiffPy is the home of a number of software products for atomic structure
+analysis. A large portion of the DiffPy project consists of tools for atomic pair
+distribution function (PDF) analysis. For detailed instructions
+and in-depth examples of modeling Pair Distribution Function data, we highly recommend the book,
+
+
+*Atomic Pair Distribution Function Analysis: A Primer* by Simon J. L. Billinge and Kirsten M. Ø. Jensen (Oxford University Press, 2023).
+
+
+To purchase this book, please visit `this link `_.
+
+The DiffPy project is also home to many other software tools for analysis of scientific data.
+One of which is diffpy.cmi, a general-purpose
+complex modeling infrastructure for analysis of *any* type of data.
+For more information about diffpy.cmi, please visit the
+`diffpy.cmi documentation `_.
.. toctree::
:hidden:
@@ -86,3 +96,4 @@ centered at Columbia University and, before that, Michigan State University.
products/SrMise
products/mPDF
products/xinterpdf
+ products/utils
\ No newline at end of file
diff --git a/products/diffpycmi/cmi_exchange.rst b/products/diffpycmi/cmi_exchange.rst
deleted file mode 100644
index ae136dda..00000000
--- a/products/diffpycmi/cmi_exchange.rst
+++ /dev/null
@@ -1,76 +0,0 @@
-CMI Exchange
-=============
-
-The `CMI Exchange`_ is a collection of community developed scripts,
-functions, and IPython plugins that make use of the |diffpycmi|
-framework. If you are new to |diffpycmi| it is a great place to get
-started. If you've been working with |diffpycmi| for a while and feel
-that others would benefit from seeing your code please contribute!
-
-.. _cmi exchange: https://github.com/diffpy/cmi_exchange#cmi-exchange
-
-.. _new_users:
-
-For New Users
--------------
-
-Begin by visiting the `CMI Exchange on github
-`_. As with all
-github projects you will see the following two buttons in the sidebar
-allowing you to clone the project in your desktop or download a zip
-file:
-
-.. image:: ../../images/github_screenshot.png
-
-For now simply follow the download zip link to get the entire project
-and unpack the zip file to a convenient location on your machine. If
-you have correctly installed the |DiffPyCMI| package you
-can start running the scripts right away. Just follow the instructions
-in `New User Tips
-`_.
-
-You'll notice that there are two directories: ``cmi_plugins`` and
-``cmi_scripts``. The scripts are standalone python scripts that can be
-run directly from the `IPython`_ command line, whereas the plugins are a
-set of functions and `IPython extensions`_
-that provide additional functionality to your IPython session.
-
-Scripts
-^^^^^^^
-
-To run a script, simply navigate to the directory containing the .py
-file and type::
-
- $ ipython --pylab
- In [1]: %run script_name.py
-
-Extensions
-^^^^^^^^^^
-
-`IPython extensions`_ are importable IPython modules that can modifpy
-the behavior of the shell to add functionality. They are installed and
-activated from the IPython command line by running::
-
- In [1]: %install_ext name_of_extension.py
- In [2]: %load_ext name_of_extenstion
-
-
-.. _ipython: http://ipython.org/
-
-.. _ipython extensions: http://ipython.org/ipython-doc/rel-0.12.1/config/extensions/index.html
-
-
-.. _contribute_scripts:
-
-Contribute Scripts
-------------------
-
-To contribute your own script to the CMI Exchange you must first fork
-the project on github. Once you've added your own code you can issue a
-pull request.
-
-If you're new to git and don't know what it means to fork a project
-`begin here `_.
-
-
-.. include:: ../../abbreviations.txt
diff --git a/products/diffpycmi/contents.rst b/products/diffpycmi/contents.rst
deleted file mode 100644
index 83edf944..00000000
--- a/products/diffpycmi/contents.rst
+++ /dev/null
@@ -1,92 +0,0 @@
-.. _contents:
-
-|diffpycmi| Contents
-===================
-
-The |diffpycmi| release includes Python and C++ libraries developed by
-the DiffPy team as well as external libraries necessary for functionality.
-
-Libraries developed by the DiffPy team
---------------------------------------
-
-.. list-table::
- :widths: 10, 5, 30
- :header-rows: 1
-
- * - Library
- -
- - Description
-
- * - `diffpy.srfit`_
- - |doc-diffpy.srfit|_
- - Setup and control of general fitting problems.
-
- * - `diffpy.srreal`_
- - |doc-diffpy.srreal|_
- - Python library for calculation of pair based quantities such as
- the pair distribution function (PDF), bond lengths, and bond
- valence sums.
-
- * - `diffpy.structure`_
- - |doc-diffpy.structure|_
- - Light-weigth storage of crystal structure data.
-
- * - `diffpy.utils`_
- - |doc-diffpy.utils|_
- - General purpose utilities for the diffpy libraries.
-
- * - `pyobjcryst`_
- - |doc-pyobjcryst|_
- - Python bindings to the ObjCryst++ crystallographic library.
-
- * - `libdiffpy`_
- - |doc-libdiffpy|_
- - C++ library for calculation of PDF and other real-space
- quantities.
-
-
-
-External libraries
-------------------
-
-.. list-table::
- :widths: 10, 5, 30
- :header-rows: 1
-
- * - Library
- -
- - Description
-
- * - srfit-sasview_
- - `doc `__
- - Selected modules from SasView_, the Small
- Angle Scattering Analysis Software Package.
-
- * - `periodictable`_
- - `doc `__
- - Extensible periodic table of the elements with support for mass,
- density, and X-ray/neutron scattering information.
-
- * - `libobjcryst`_
- - `doc `__
- - ObjCryst++, crystallographic library for C++ re-packaged for
- installation as a shared library.
-
- * - `cxxtest`_
- - `doc `__
- - Testing framework for C++.
-
-.. URL definitions below -----------------------------------------------
-
-.. |doc-diffpy.srfit| replace:: doc
-.. |doc-diffpy.srreal| replace:: doc
-.. |doc-diffpy.structure| replace:: doc
-.. |doc-diffpy.utils| replace:: doc
-.. |doc-pyobjcryst| replace:: doc
-.. |doc-libdiffpy| replace:: doc
-
-.. _cxxtest: http://cxxtest.com/
-.. _periodictable: http://www.reflectometry.org/danse/elements.html
-.. _SasView: https://www.sasview.org
-
-.. include:: ../../abbreviations.txt
diff --git a/products/diffpycmi/contributecode.rst b/products/diffpycmi/contributecode.rst
deleted file mode 100644
index 4f9adbc8..00000000
--- a/products/diffpycmi/contributecode.rst
+++ /dev/null
@@ -1,37 +0,0 @@
-How to Contribute Code
-======================
-
-The |diffpycmi| bundle consists of the following projects, all hosted on
-github. To contribute code simply fork the project you'd like to work
-on and issue a pull request.
-
-====================== ============================================
-Module Description
-====================== ============================================
-`diffpy.srfit`_ Setup and control of general fitting
- problems.
-
-`diffpy.srreal`_ Python library for calculation of pair based
- quantities such as the pair distribution
- function (PDF), bond lengths, and bond
- valence sums.
-
-`diffpy.structure`_ Handles storage of crystal structure data.
-
-`diffpy.utils`_ General purpose shared utilities for the
- diffpy libraries.
-
-`pyobjcryst`_ Python bindings to the ObjCryst++
- Object-Oriented Crystallographic
- Library.
-
-`libdiffpy`_ C++ library for calculation of PDF and
- other real-space quantities.
-
-`libobjcryst`_ ObjCryst++ re-packaged for installation
- as a shared library
-====================== ============================================
-
-.. URL definitions below -----------------------------------------------
-
-.. include:: ../../abbreviations.txt
diff --git a/products/diffpycmi/index.rst b/products/diffpycmi/index.rst
index b77daa4e..b4385abd 100644
--- a/products/diffpycmi/index.rst
+++ b/products/diffpycmi/index.rst
@@ -23,191 +23,52 @@ community.
Installation
============
-To install ``diffpy.cmi``, create a new conda environment or activate an existing environment and install the package from the conda-forge channel.
-
-.. code-block:: bash
-
- conda create -n diffpy.cmi-env
- conda install -c conda-forge diffpy.cmi
- conda activate diffpy.cmi-env
-
-To confirm that the installation was successful, type
-
-.. code-block:: bash
-
- cmi --version
-
-The output should print the latest version.
-
-If the above does not work, you can use ``pip`` to download and install the latest release from
-`Python Package Index `_.
-To install using ``pip`` into your ``diffpy.cmi_env`` environment, type
-
-.. code-block:: bash
-
- pip install diffpy.cmi
+For the most up-to-date installation instructions, please refer to the installation section of the
+`diffpy.cmi README page on GitHub `_.
Pack and Profile Installation
------------------------------
-
-Use the `cmi` command-line interface to install and manage modular optional dependencies, known as `packs`,
-and to configure or execute user-defined workflows that combine multiple packs with optional post-installation steps,
-known as `profiles`. To use `cmi`, you can run the following example commands:
-
-Show available commands and options with,
-
-.. code-block:: bash
-
- cmi -h
-
-List installed and available packs and profiles,
-
-.. code-block:: bash
-
- cmi pack list
- cmi profile list
-
-Show details of a specific pack or profile,
-
-.. code-block:: bash
-
- cmi pack show
- cmi profile show
-
-Install a pack or profile (by name or path),
-
-.. code-block:: bash
-
- cmi install
- cmi install
- cmi install
-
-.. admonition:: Example installation
-
- For example, to install the pack for PDF modeling, type,
-
- .. code-block:: bash
-
- cmi install pdf
-
- To check to see if the pack was installed, type,
-
- .. code-block:: bash
+=============================
- cmi pack list
+Diffpy.cmi is designed to be modular and extensible through the use of optional
+dependencies known as `packs`. Additionally, users can define custom workflows
+that combine multiple packs with optional post-installation steps, known as `profiles`.
- The output should look something like this,
+For more information on packs and profiles please refer to the
+`diffpy.cmi overview page `_.
- .. code-block:: bash
-
- Installed:
- - core
- - pdf
- Available to install:
- - plotting
- - tests
- - docs
-
-
-Download examples
------------------
-
-To list and copy example scripts and data to your working directory, type,
-
-.. code-block:: bash
-
- cmi example list
- cmi example copy /
-
-.. admonition:: Example
-
- For example, to see the example scripts for PDF fitting, type,
-
- .. code-block:: bash
-
- cmi example list
-
- The output should look something like this,
-
- .. code-block:: bash
-
- $ cmi example list
- core:
- - linefit
- pdf:
- - ch03NiModelling
- - ch05Fit2Phase
- - ch06RefineCrystalStructureGen
- - ch07StructuralPhaseTransitions
- - ch08NPRefinement
- - ch11ClusterXYZ
-
- To copy the example for bulk Ni PDF fitting, type,
-
- .. code-block:: bash
-
- cmi example copy pdf/ch03NiModelling
-
- This will copy the example directory ``ch03NiModelling`` to your current working directory. Within this directory exists
- the scripts and data to fit the bulk Ni PDF.
-
- You can then run the fitting script with,
-
- .. code-block:: bash
-
- python ch03NiModelling/solutions/diffpy-cmi/fitBulkNi.py
-
-What next?
-==========
-
-* `Explore CMI exchange
- `__,
- our collection of example scripts and tutorials
-
-* :doc:`Get tips on using the CMI exchange `
-
-* :doc:`Contribute code `
+For information how to install packs and profiles, please refer to the
+`diffpy.cmi command-line interface page `_.
Tutorials
=========
-* A step-by-step tutorial on using diffpy.cmi for PDF analysis is available at the documentation site for
- ``diffpy.cmi`` -- https://www.diffpy.org/diffpy.cmi/tutorials/index.html.
+Many examples exist for diffpy.cmi. Using the command-line interface (CLI), these
+examples can be copied directly to your computer.
+For information on how to use the command-line interface to access the examples,
+please refer to the
+`diffpy.cmi CLI documentation `_.
+Additionally, here are some direct links to other tutorials and examples,
+
+* A step-by-step tutorial on using diffpy.cmi to `fit a nickel PDF `_.
* Worked examples and experimental data from the book *Atomic Pair Distribution Function Analysis: A Primer* are freely available at our
`GitHub repository `_.
-* ADD2019 school and conference --
+* Worked examples from ADD2019 school and conference --
https://github.com/diffpy/add2019-diffpy-cmi.
Documentation
=============
-Documentation for packages developed by the DiffPy team is available
-at the links below.
-
-* |doc-diffpy.srfit|_ -- configuration and control of data-fitting problems
-* |doc-diffpy.srreal|_ -- calculators for pair distribution function, bond
- valence sums, etc.
-* |doc-diffpy.structure|_ -- light-weight representation of crystal
- structures
-* |doc-pyobjcryst|_ -- Python interface to ObjCryst++ crystallographic
- library
-* |doc-diffpy.utils|_ -- general purpose utilities for the diffpy libraries
-* |doc-libdiffpy|_ -- C++ library for calculation of PDF and other real-space
- quantities
-
-See :ref:`diffpy.cmi contents ` for a complete list
-of open-source libraries that are included in |diffpycmi| and
-their respective project pages.
+Documentation for diffpy.cmi is available at https://www.diffpy.org/diffpy.cmi.
Reference
=========
If you use this software in a research work which leads to publication,
-we ask you to acknowledge the use of |diffpycmi| by citing the following
+we ask you to acknowledge the use of diffpy.cmi by citing the following
paper:
* |citeJuhasAca15|
diff --git a/products/diffpycmi/install.rst b/products/diffpycmi/install.rst
deleted file mode 100644
index 6d6fd104..00000000
--- a/products/diffpycmi/install.rst
+++ /dev/null
@@ -1,188 +0,0 @@
-.. highlight:: bash
-
-|diffpycmi| installation from sources
-====================================
-
-Downloaded the most recent `diffpy.cmi tarball
-`__
-and follow the steps below.
-
-1 Install system software
-------------------------------------------------------------------------
-
-|diffpycmi| requires the :ref:`system software dependencies `
-which can be installed from command line using a suitable package manager.
-Here are installation commands for several supported systems.
-
-Ubuntu
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-For Ubuntu or other Debian-based Linux distributions use ``apt-get``::
-
- sudo apt-get install \
- libgsl0-dev libboost-all-dev python-dev \
- python-setuptools python-numpy python-scipy \
- python-matplotlib python-lxml ipython \
- build-essential scons git zsh
-
-Fedora
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Use ``yum`` for Fedora or RedHat Linux::
-
- sudo yum install \
- gsl-devel boost-devel python-devel \
- python-setuptools numpy scipy \
- python-matplotlib python-lxml \
- python-ipython-notebook \
- gcc-c++ scons git zsh
-
-Mac OS X
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-For Mac OS X the system dependencies can be installed using the
-`MacPorts `_ software manager. A similar
-package system `Homebrew `_ works as well, but has
-been considerably less tested with |diffpycmi|.
-
-For best results with MacPorts follow these tips:
-
-* We recommend to upgrade to the `latest version of OS X
- `_.
-* Install `Xcode `_.
- If already present, we recommend to upgrade to the latest version.
-* Be patient, it may take several hours to install all the dependencies
- using MacPorts.
-* Installation command may fail on the first run, but usually works
- when repeated. See MacPorts
- `FAQ `_
- for more help.
-
-To install system dependencies with MacPorts, use::
-
- sudo port install \
- python27 py27-setuptools py27-ipython py27-lxml \
- gsl boost py27-numpy py27-scipy py27-matplotlib scons git
-
-Make sure the MacPorts versions of IPython and Python are active by
-running the following commands::
-
- sudo port select --set ipython ipython27
- sudo port select --set python python27
-
-
-**Important:** When finished installing the Mac OS X dependencies, adjust
-the shell environment so that MacPorts Python is the first in the
-PATH. This can be accomplished by adding the following line to either
-of ``.profile`` or ``.zshenv`` file in your HOME directory ::
-
- export PATH="/opt/local/bin:$PATH"
-
-
-2 Install |diffpycmi|
-------------------------------------------------------------------------
-
-Unzip the |diffpycmi| tarball into a directory of your choice.
-Execute the included :file:`install` script and follow the prompts. ::
-
- # replace VERSION to match the actual filename
- tar xzf diffpy_cmi-VERSION.tar.gz
- cd diffpy_cmi-VERSION
- ./install
-
-The install process may take a while and produce a plentiful output,
-but should work if all required software is in place.
-
-
-3 Test
-------------------------------------------------------------------------
-
-Execute the included test script, which should report no warnings
-nor errors::
-
- ./runtests.sh
-
-If there are failures they are most likely due to missing software or
-incorrect versions of Python or other libraries being used together.
-After addressing these issues it may be necessary to recompile the
-sources by running ``./install --build``.
-
-
-Remarks
-------------------------------------------------------------------------
-
-The expanded diffpy_cmi directory can be renamed or moved
-to a different location and the software should still work.
-The only requirement is to update the :file:`diffpy_cmi.pth`
-symbolic link so it points to the new location. This can be
-done by running the ``./install`` script again or by following
-the steps below.
-
-The Python interpreter must have a symbolic link pointing to the
-:file:`diffpy_cmi.pth` file in one of the directories where it
-looks for :file:`.pth` files. This is normally set up by the
-install script. If that process somehow fails, the preferred
-:file:`pth` directory for a single-user installation can be
-found using ::
-
- python -c 'import site; print site.USER_SITE'
-
-For a system-wide installation the standard :file:`pth` locations are ::
-
- python -c 'import site; print site.getsitepackages()'
-
-Once the :file:`pth` directory has been established, navigate to
-the base diffpy_cmi directory and create the symbolic link with ::
-
- ln -si $PWD/diffpy_cmi.pth /path/to/the/pth/directory/
-
-.. note::
-
- It is essential to use a symbolic link. Making a copy of the
- :file:`diffpy_cmi.pth` file will not work.
-
-.. note::
-
- The installation of |diffpycmi| is entirely contained under the
- expanded diffpy_cmi directory. The software can be completely
- uninstalled by deleting that directory and removing the symbolic
- link.
-
-Contacts
-------------------------------------------------------------------------
-
-If you need help with installing this software, please check discussions
-or post your question to the
-`diffpy-dev `_
-group.
-
-----
-
-.. _dependencies:
-
-List of software dependencies
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-* **gsl** - GNU Scientific Library is collection of routines for numerical analysis.
-
-* **boost** - a set of useful C++ libraries.
-
-* **python-dev** - development tools for Python modules.
-
-* **python-setuptools** - enhancements to the Python distutils.
-
-* **numpy** - general-purpose array-processing for large multi-dimensional arrays in Python.
-
-* **scipy** - the fundamental library for scientific computing with Python.
-
-* **matplotlib** - a Python 2D plotting library.
-
-* **python-lxml** - a Python library for processing XML.
-
-* **ipython** - an enhanced interactive Python shell.
-
-* **scons** - a software build tool.
-
-* **git** - a version control system.
-
-* **zsh** - an interactive shell and powerful scripting language.
diff --git a/products/labpdfproc.rst b/products/labpdfproc.rst
new file mode 100644
index 00000000..d036edbd
--- /dev/null
+++ b/products/labpdfproc.rst
@@ -0,0 +1,44 @@
+######################
+diffpy.labpdfproc
+######################
+
+
+Tools for processing x-ray powder diffraction data from laboratory
+sources.
+
+PDFgetX3 has revolutionized how pair distribution function (PDF) methods
+can be applied to solve
+nanostructure problems. However, the program was designed for use with
+Rapid Acquisition PDF (RAPDF) data from synchrotron sources. A key
+approximation inherent in the use of PDFgetX3 for RAPDF data is that
+absorption effects are negligible. This is typically not the case for
+laboratory x-ray diffractometers, where absorption effects can be
+significant.
+
+This app is designed to preprocess data from laboratory x-ray
+diffractometers before using PDFgetX3 to obtain PDFs. The app currently
+carries out an absorption correction assuming a parallel beam capillary
+geometry which is the most common geometry for lab PDF measurements.
+
+Installation
+============
+
+For the most up-to-date installation instructions, please refer to the installation section of the
+`diffpy.labpdfproc README page on GitHub `_.
+
+Running labpdfproc
+======================
+
+To run diffpy.labpdfproc after installation, type the command::
+
+ labpdfproc
+
+Tutorials
+=========
+Tutorials on how to use diffpy.labpdfproc can be found
+at the `diffpy.labpdfproc documentation `_.
+
+Documentation
+=============
+
+Documentation for diffpy.labpdfproc is available at https://www.diffpy.org/diffpy.labpdfproc.
\ No newline at end of file
diff --git a/products/mPDF.rst b/products/mPDF.rst
index 810e8b5a..16b571a8 100644
--- a/products/mPDF.rst
+++ b/products/mPDF.rst
@@ -1,6 +1,6 @@
-##########
-mpdf
-##########
+#############
+diffpy.mpdf
+#############
.. include:: ../abbreviations.txt
@@ -20,85 +20,33 @@ as lists of spin positions and spin vectors provided by the user.
.. figure:: ../images/mpdf_screenshot.png
:align: center
-This is an early release of mpdf, and the capabilities and documentation of the
-project will evolve. The DiffPy team encourages investigators to provide feedback,
-suggestions, and feature requests.
+ Example usage of diffpy.mpdf
-Getting Started
-=================
+Reference
+=========
-The diffpy.mpdf package requires Python 2.6 or 2.7 and the following software:
+If you use diffpy.mpdf in scientific research, please acknowledge it by citing:
-* ``NumPy`` - numerical mathematics and fast array operations for Python
-* ``SciPy`` - scientific libraries for Python
-* ``matplotlib`` - python plotting library
-* ``diffpy.structure`` - diffpy package for generating atomic structure
-* ``diffpy.srreal`` - diffpy package for calculating real-space quantities
+ B. Frandsen, `diffpy.mpdf: a Python package for magnetic pair distribution function analysis
+ `_, GitHub repository.
-See the :doc:`mpdf license ` for terms and conditions of use.
Installation
-------------
-
-The recommended way to install this package is through conda. For help installing conda,
-please visit |anaconda-download|.
-Once conda is installed, you can follow the simple steps below to install diffpy.mpdf.
-You will also install the full |diffpycmi| suite along the way.
-
-*Step 1: Add the appropriate conda channels to your conda configuration.* ::
-
- conda config --add channels diffpy
- conda config --add channels benfrandsen
-
-These commands tell conda to look through these channels on the Anaconda cloud server to
-find the appropriate software.
-
-*Step 2 (recommended): Create and activate a conda environment for diffpy + diffpy.mpdf.* ::
-
- conda create --name diffpy python=2.7
- source activate diffpy
-
-Note that you can name the environment anything you choose by passing it a different name
-after the --name flag in the first command.
-
-*Step 3: Install diffpy.mpdf.* ::
-
- conda install diffpy.mpdf
-
-Note that this will also install the full |diffpycmi| suite if it has not already been
-installed in this environment.
-
-*Alternative option: Install from the python package index.*
-
-If you prefer to use the python package index and have pip installed, please install the
-prerequisite software and then use the command ::
-
- pip install diffpy.mpdf
-
-*Alternative option: Download and install from source.*
+============
-If you prefer to install from source, you can also zip and download the entire package
-from `PyPI `__ or
-`GitHub `__, then unzip the file and
-execute the following command from inside the unzipped directory ::
+For the most up-to-date installation instructions, please refer to the
+`diffpy.mpdf README on GitHub `_.
- python setup.py install
+Tutorials
+=========
-Note that this will only work if all the dependencies are already properly installed.
+For tutorials on how to use diffpy.mpdf, please visit: https://github.com/FrandsenGroup/mPDF-tutorial.
Documentation
--------------
-Please see https://pythonhosted.org/diffpy.mpdf
-for the documentation.
-
-What next?
-============
+=============
-Explore the mpdf tutorial and examples on the
-`CMI Exchange `_!
+Full documentation for diffpy.mpdf is available at:
+`https://frandsengroup.github.io/diffpy.mpdf/index.html `_
-.. toctree::
- :hidden:
- mPDFlicense
diff --git a/products/morph.rst b/products/morph.rst
new file mode 100644
index 00000000..df51a446
--- /dev/null
+++ b/products/morph.rst
@@ -0,0 +1,52 @@
+############
+diffpy.morph
+############
+
+Diffpy.morph is a Python software package designed to allow researchers
+the ability to compare experimental datasets to identify structural changes.
+
+Diffpy.morph makes use of several data manipulation techniques to correct
+for benign effects such as thermal expansion (peak shift) and increased
+thermal motion (peak broadening) or a change in scale due to differences
+in incident flux, for example. diffpy.morph will do its best to correct
+for these benign effects before computing and plotting a difference
+curve.
+
+One dataset is identified as the "target" and the second is "morphed"
+by "stretching" (changing the x-axis to simulate a uniform
+expansion), "smearing" (broadening peaks through a uniform convolution),
+and "scaling" (self-explanatory). diffpy.morph will vary
+amplitude of morphing transformations to obtain the best fit between
+morphed and target datasets, then plot them along with the difference curve
+plotted below.
+
+There are also a few other morphing transformations in the program.
+
+Note that diffpy.morph should work on other spectra, not just pair distribution functions (PDFs).
+
+.. diffpy.morph will soon be included in :doc:`xPDFsuite `, a powerful end-to-end software for X-ray PDF analysis. xPDFsuite is designed for flexible, high throughput PDF analyses and contains many features for interrogating, comparing, and modeling data as well as simply doing data reduction.
+
+.. figure:: ../images/pdfmorph.png
+ :align: center
+
+ diffpy.morph transformation techniques (scale, smear, and stretch)
+ applied sequentially to a PDF from NaCl sample
+
+
+Installation
+============
+
+For the most up-to-date installation instructions, please refer to the installation section of the
+`diffpy.morph README page on GitHub `_.
+
+Tutorials
+=========
+
+Tutorials on how to use diffpy.morph can be found
+at the `diffpy.morph documentation `_.
+
+
+Documentation
+=============
+
+Documentation for diffpy.morph is available at https://www.diffpy.org/diffpy.morph.
diff --git a/products/pdfgui.rst b/products/pdfgui.rst
index 71659e01..65f5ab22 100644
--- a/products/pdfgui.rst
+++ b/products/pdfgui.rst
@@ -1,14 +1,12 @@
.. highlight:: bash
.. include:: ../abbreviations.txt
-######
-PDFgui
-######
+#############
+diffpy.pdfgui
+#############
-Overview
-========
-For users who do not have the expertise or necessity for command line analysis, PDFgui is
+For users who do not have the expertise or necessity for command line analysis, diffpy.pdfgui is
a convenient and easy to use graphical front end for the PDFfit2 refinement program. It is
capable of full-profile fitting of the atomic pair distribution function (PDF)
derived from x-ray or neutron diffraction data
@@ -35,115 +33,37 @@ in your publication:
Installation
============
+For the most up-to-date installation instructions, please refer to the installation section of the
+`diffpy.pdfgui README page on GitHub `_.
-By downloading and using this software you are agreeing to the
-conditions specified in the `software license `__.
-
-PDFgui is distributed as a software package for
-`Anaconda Python `__. PDFgui is available
-for all operating systems supported by Anaconda, namely for
-Linux, Mac OS X, and Windows.
-
-As a prerequisite for PDFgui installation, download and install
-**Miniconda** (https://docs.conda.io/en/latest/miniconda.html#latest-miniconda-installer-links)
-or Anaconda Python (https://www.anaconda.com/download).
-
-PDFgui is available from the "conda-forge" channel of Anaconda packages.
-
-There are currently two different sets of instructions to install it depending on your platform.
-If you want to install it on Windows, Linux, or a non-arm64 Mac OSX (i.e., if at the time of writing
-your Mac does not have an M1 or M2 chip) use the first set, otherwise the second set of instructions
-
-Windows, macOS (non-Arm64), Linux
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Add the "conda-forge" channel by running the following command in a terminal: ::
-
- conda config --add channels conda-forge
-
-Create a new environment named ``diffpy.pdfgui_env`` (or any name of your choice) and
-install ``diffpy.pdfgui``: ::
-
- conda create -n diffpy.pdfgui_env diffpy.pdfgui
-
-Activate the environment: ::
-
- conda activate diffpy.pdfgui_env
-
-Confirm that the installation was successful: ::
-
- python -c "import diffpy.pdfgui; print(diffpy.pdfgui.__version__)"
-
-macOS (Arm64)
-~~~~~~~~~~~~~
-
-Create a new conda environment ``diffpy.pdfgui_env``: ::
-
- conda config --add channels conda-forge
- conda create -n diffpy.pdfgui_env python=3.13
-
-Activate the environment: ::
-
- conda activate diffpy.pdfgui_env
-
-It is necessary to get versions of pdffit2 built for Mac from Python package index (Pypi). First we will install all
-the dependencies from conda-forge and then the pdffit2 itself from Pypi using the following commands: ::
-
- conda install wxpython diffpy.utils matplotlib-base pycifrw
- pip install diffpy.pdffit2
-
-Finally, we want to install PDFgui, again from conda-forge: ::
-
- pip install diffpy.pdfgui
-
-
-
-Running pdfgui:
+Running pdfgui
===============
-.. note::
- To start PDFgui from a Terminal make sure *pdfgui_env* is
- the active Anaconda environment::
-
- conda activate pdfgui_env
-
- Alternatively, on bash terminals you can add the following line to your shell startup
- file :file:`.bashrc` to define an alias which will work in
- any Anaconda environment ::
-
- alias pdfgui="/path/to/pdfgui_env/bin/pdfgui"
+To run diffpy.pdfgui after installation, type the command::
- where ``/path/to`` needs to be adjusted according to the output of
- ``which pdfgui`` command.
+ pdfgui
-Please consider joining the `diffpy-users `__ Google group.
-News about updates and new releases will be made there, as well as it being a place to ask questions
-and find answers about using all diffpy programs.
-When you sign up,
-please leave a short message about why you are requesting to join as we have had spam accounts requesting access
-and so we want to know you are a legitimate user.
-
-
-Documentation and help
-======================
+Tutorials
+=========
-* The user manual is available in `HTML <../doc/pdfgui/index.html>`__
- and `PDF <../doc/pdfgui/pdfgui.pdf>`__ formats.
+Search "PDFgui" on YouTube for some video tutorials on how to use diffpy.pdfgui.
-* Search "PDFgui" on YouTube for some video tutorials on how to use
- PDFgui.
+For in-depth help in using diffpy.pdfgui to solve scientific problems please
+see the book "Atomic Pair Distribution Function Analysis: A primer" by
+Simon Billinge, Kirsten Jensen, and past and present Billinge group members,
+published by Oxford University Press. Data for the worked examples can
+be found here: https://github.com/Billingegroup/pdfttp_data.
-* For in-depth help in using PDFgui to solve scientific problems please
- see the book "Atomic Pair Distribution Function Analysis: A primer" by
- Simon Billinge, Kirsten Jensen, and past and present Billinge group members,
- published by Oxford University Press. Data for the worked examples can
- be found here: https://github.com/Billingegroup/pdfttp_data
+Tutorial files are available from `pdfgui-tutorial.zip <../doc/pdfgui/pdfgui-tutorial.zip>`__.
-* Tutorial files are available from
- `pdfgui-tutorial.zip <../doc/pdfgui/pdfgui-tutorial.zip>`__.
+Please, join the :doc:`community forum <../community>` for tips, tricks, and feedback.
-* Please, join the :doc:`community forum <../community>` for tips, tricks, and feedback.
+Documentation
+=============
+Documentation for diffpy.pdfgui is available at https://www.diffpy.org/diffpy.pdfgui.
+Additionally, a user manual is available in `HTML <../doc/pdfgui/index.html>`__
+and `PDF <../doc/pdfgui/pdfgui.pdf>`__ formats.
Legacy versions
===============
diff --git a/products/pythonpackages.rst b/products/pythonpackages.rst
index c847820b..4ae79236 100644
--- a/products/pythonpackages.rst
+++ b/products/pythonpackages.rst
@@ -3,45 +3,30 @@ Python Packages
This is a complete list of all Python packages developed by the DiffPy
team. For more information about a specific package, follow the link to
-the corresponding github page. With the exception of PDFfit2, SrMise,
-and mPDF, all of the packages listed below are bundled in the |DiffPyCMI|
-release.
-
-====================== ============================================
-Module Description
-====================== ============================================
-`diffpy.srfit`_ Setup and control of general fitting
- problems.
-
-`diffpy.srmise`_ Python tool for peak extraction and peak
- fitting of atomic pair distribution
- functions.
-
-`diffpy.srreal`_ Python library for calculation of pair based
- quantities such as the pair distribution
- function (PDF), bond lengths, and bond
- valence sums.
-
-`diffpy.structure`_ Handles storage of crystal structure data.
-
-`diffpy.utils`_ General purpose shared utilities for the
- diffpy libraries.
-
-`pyobjcryst`_ Python bindings to the ObjCryst++
- Object-Oriented Crystallographic
- Library.
-
-`diffpy.pdffit2`_ Atomic structure refinement and PDF fitting
- (this is the computational engine used by
- PDFgui).
-
-`diffpy.mpdf`_ Tools for calculating and refining magnetic
- PDFs.
-====================== ============================================
-
-.. URL definitions below -----------------------------------------------
-
-.. _diffpy.srmise: https://github.com/diffpy/diffpy.srmise
-.. _diffpy.pdffit2: https://github.com/diffpy/diffpy.pdffit2
+the corresponding documentation page.
+
+.. list-table::
+ :widths: 2 8
+ :header-rows: 1
+ :class: wrap-text
+
+ * - Module
+ - Description
+ * - `diffpy.srfit `_
+ - Setup and control of general fitting problems.
+ * - `diffpy.srmise `_
+ - Python tool for peak extraction and peak fitting of atomic pair distribution functions.
+ * - `diffpy.srreal `_
+ - Python library for calculation of pair-based quantities such as the pair distribution function (PDF), bond lengths, and bond valence sums.
+ * - `diffpy.structure `_
+ - Handles storage of crystal structure data.
+ * - `diffpy.utils `_
+ - General purpose shared utilities for the diffpy libraries.
+ * - `pyobjcryst `_
+ - Python bindings to the ObjCryst++ Object-Oriented Crystallographic Library.
+ * - `diffpy.pdffit2 `_
+ - Atomic structure refinement and PDF fitting (this is the computational engine used by PDFgui).
+ * - `diffpy.mpdf `_
+ - Tools for calculating and refining magnetic PDFs.
.. include:: ../abbreviations.txt
diff --git a/products/utils.rst b/products/utils.rst
index b8b90330..069bb83f 100644
--- a/products/utils.rst
+++ b/products/utils.rst
@@ -1,6 +1,6 @@
-##########
-Utils
-##########
+############
+diffpy.utils
+############
.. include:: ../abbreviations.txt
@@ -14,11 +14,6 @@ tools for better capture and propagation of metadata,
diffraction-friendly interpolation routines, as well as some other tools used across
diffpy libraries.
-
-.. figure:: ../images/srmise_screenshot.png
- :align: center
-
-
Citation
--------
@@ -117,8 +112,8 @@ For more information on diffpy.utils please visit the project `web-page `_!
+Explore the diffpy.utils
+`tutorials `_!
.. toctree::
:hidden:
diff --git a/publications.rst b/publications.rst
index 85bdb2c9..16b2ffac 100644
--- a/publications.rst
+++ b/publications.rst
@@ -21,53 +21,3 @@ Please cite us if our software has been used in your research.
* |citeFarrowJpcm07|
* |citeProffenJac99|
-
-
-
-Publications using |diffpycmi|
-=============================
-
-The following papers made use of DiffPy developed software for analysis
-and/or modeling.
-
-* |citeJensenNc16|
-
-* |citeFrandsenPrl16|
-
-* |citeTerbanCgd16|
-
-* |citePrillAca16|
-
-* |citeTerbanNan15|
-
-* |citePrillJac15|
-
-* |citeDoanNguyenAcsn14|
-
-* |citeBeecherJacs14|
-
-* |citeGhidiuCC14|
-
-* |citeShiPRL14|
-
-* |citeFarrowJac14|
-
-* |citeAbeykoonArxiv14|
-
-* |citeMengqiangZhuESTL14|
-
-* |citeChoiNanol14|
-
-* |citeJacquesNc13|
-
-* |citeDavisCgd13|
-
-* |citeYangPccp13|
-
-* |citeFarrowJacs13|
-
-* |citeTyrstedAcie12|
-
-* |citeJensenJacs12|
-
-* |citeMengqiangZhuGca12|