From 3cd884f4ea2c3bc998e8341f774d3258e2e138cc Mon Sep 17 00:00:00 2001 From: Matthew Roman Date: Tue, 9 Jul 2019 13:48:25 -0400 Subject: [PATCH 01/21] Added infrastructure for PDFmorph web-page --- index.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/index.rst b/index.rst index 8479a70d..f512285b 100644 --- a/index.rst +++ b/index.rst @@ -86,3 +86,4 @@ centered at Columbia University and, before that, Michigan State University. products/SrMise products/mPDF products/xinterpdf + products/PDFmorph From 59c2995ffc9cb0215988ff13c55f609dab30cd27 Mon Sep 17 00:00:00 2001 From: Matthew Roman Date: Tue, 9 Jul 2019 13:49:03 -0400 Subject: [PATCH 02/21] Added relevant PDFmorph web-page files --- images/pdfmorph_nacl_ex.png | Bin 0 -> 116812 bytes products/PDFmorph.rst | 120 ++++++++++++++++++++++++++++++++++ products/pdfmorphLICENSE.rst | 6 ++ products/pdfmorph_license.txt | 33 ++++++++++ 4 files changed, 159 insertions(+) create mode 100644 images/pdfmorph_nacl_ex.png create mode 100644 products/PDFmorph.rst create mode 100644 products/pdfmorphLICENSE.rst create mode 100644 products/pdfmorph_license.txt diff --git a/images/pdfmorph_nacl_ex.png b/images/pdfmorph_nacl_ex.png new file mode 100644 index 0000000000000000000000000000000000000000..aad99dd40c5e0ba2c5df9ed793117e82f9e39e1a GIT binary patch literal 116812 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

i*TmR0Mli9BM_S^23 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, a powerful +end-to-end software for X-ray PDF analysis. PxPDFsuite 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_nacl_ex.png + :align: center + + Transformation techniques utilized by PDFmorph on an NaCl sample + + +Installation +============ + +By downloading and using this software, you are agreeing to the conditions +specified in the :doc:`software license `. + +PDFmorph is distributed as a software package for `Anaconda Python `__. +PDFmorph is available for all operating systems supported by Anaconda, namely for +32 and 64-bit Linux, Mac OS X, and 32 and 64-bit Windows. + +As a prerequisite for PDFmorph installation, download and install Anaconda +from |anaconda-download|. + +.. note:: + PDFmorph is a software which operates on any version of Python 3. Anaconda + should install the latest version of Python by default, but in case you + already use Anaconda for a prior release of Python, create a separate + Anaconda environment *py3x* which will provide your preferred version of + Python 3 (substitute x for your preferred release) instead of Python 2.7 + or earlier. :: + + conda create --name=py3x python=3.x + conda activate py3x + + On Windows use just ``activate py27``. Make sure that *py3x* environment is + activated in your shell prior to running the "install" or "update" commands + below. + +PDFmorph is available from the "conda-forge" channel of Anaconda packages. Open a +*Terminal* window or *Anaconda Command Prompt* on Windows and install PDFmorph +using the :program:`conda` command :: + + conda config --add channels conda-forge + conda install diffpy.pdfmorph + +And it should be installed! To make sure that installation has completed correctly, +run the following command from your relevant conda environment :: + + pdfmorph --version + +If installed correctly, this command should return PDFmorph's current version number. + + +PDFmorph Updates +================ + +The Anaconda package sustem makes it easu to prepare and distribute software +packages and bugfixes. To update the lates version of PDFmorph use :: + + conda update diffpy.pdfmorph + +With other Python distributions, the program can be updated to the latest version +as follows :: + + easy_install --upgrade diffpy.pdfmorph + +To use a development version, visit the project source repository at +https://github.com/diffpy/diffpy.pdfmorph and consult its README file. + + +Documentation/Help +================== + +Alpha Version - latest +---------------------- + +* User manual (available in HTML and PDF) to be made available soon +* Installation instructions to come +* Tutorial files will be made available soon +* Please, join the :doc:`community forum <../community>` for tips, + tricks, and feedback. + + +References +========== + +Paper on PDfmorph will be released soon. diff --git a/products/pdfmorphLICENSE.rst b/products/pdfmorphLICENSE.rst new file mode 100644 index 00000000..f1b68469 --- /dev/null +++ b/products/pdfmorphLICENSE.rst @@ -0,0 +1,6 @@ +.. This page only contains the LICENSE text for PDFmorph + +.. title:: PDFmorph License + +.. literalinclude:: pdfmorph_license.txt + :language: text diff --git a/products/pdfmorph_license.txt b/products/pdfmorph_license.txt new file mode 100644 index 00000000..c9bca67e --- /dev/null +++ b/products/pdfmorph_license.txt @@ -0,0 +1,33 @@ +This program is part of the DiffPy and DANSE open-source projects at Columbia +University and is available subject to the conditions and terms laid out below. + +Copyright © 2009-2010, Trustees of Columbia University in the City of New York, +all rights reserved. + +For more information please visit the diffpy web-page at http://diffpy.org or +email Prof. Simon Billinge at sb2896@columbia.edu. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the names of COLUMBIA UNIVERSITY, MICHIGAN STATE UNIVERSITY nor the + names of their contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. From 726a7b1e8514f0aba0978fd353eda0acdb5f6c23 Mon Sep 17 00:00:00 2001 From: RomanMatthew <50244736+RomanMatthew@users.noreply.github.com> Date: Tue, 9 Jul 2019 13:54:22 -0400 Subject: [PATCH 03/21] Update pdfmorph_license.txt --- products/pdfmorph_license.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/products/pdfmorph_license.txt b/products/pdfmorph_license.txt index c9bca67e..abccea70 100644 --- a/products/pdfmorph_license.txt +++ b/products/pdfmorph_license.txt @@ -1,7 +1,7 @@ -This program is part of the DiffPy and DANSE open-source projects at Columbia +This program is part of the DiffPy open-source projects at Columbia University and is available subject to the conditions and terms laid out below. -Copyright © 2009-2010, Trustees of Columbia University in the City of New York, +Copyright © 2009-2019, Trustees of Columbia University in the City of New York, all rights reserved. For more information please visit the diffpy web-page at http://diffpy.org or From 27a78fcac0d4dd497c8903374517cbbd2a4aba14 Mon Sep 17 00:00:00 2001 From: Matthew Roman Date: Tue, 9 Jul 2019 14:14:14 -0400 Subject: [PATCH 04/21] Removed xPDFsuite paragraph from pdfmorph.rst --- products/PDFmorph.rst | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/products/PDFmorph.rst b/products/PDFmorph.rst index 3ef705e3..c758f88a 100644 --- a/products/PDFmorph.rst +++ b/products/PDFmorph.rst @@ -28,12 +28,9 @@ below. There are also a few other morphing transformations in the program. Finally, we note that PDFmorph should work on other spectra that are not PDFs, -though it has not been extensively texted beyond the PDF. +though it has not been extensively tested beyond the PDF. -PDFmorph will soon be included in :doc:`xPDFsuite `, a powerful -end-to-end software for X-ray PDF analysis. PxPDFsuite 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. +.. PDFmorph will soon be included in :doc:`xPDFsuite `, a powerful end-to-end software for X-ray PDF analysis. PxPDFsuite 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_nacl_ex.png :align: center From afcd5190073841ba2f06ce51a85fdd76c417ff17 Mon Sep 17 00:00:00 2001 From: Matthew Roman Date: Tue, 9 Jul 2019 14:20:03 -0400 Subject: [PATCH 05/21] Fixed version name and CLI reference in pdfmorph.rst --- products/PDFmorph.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/products/PDFmorph.rst b/products/PDFmorph.rst index c758f88a..d6573115 100644 --- a/products/PDFmorph.rst +++ b/products/PDFmorph.rst @@ -8,8 +8,8 @@ Overview ======== .. note:: - PDFmorph is an application which makes use of the Command Line Interface. If - you are unfamiliar with the CLI, it is recommended that you consult online + The PDFmorph application has a Command Line Interface. If you are + unfamiliar with the CLI, it is recommended that you consult online resources and become somewhat familiar before using PDFmorph. PDFmorph is a Python software package designed to increase the insight researchers @@ -101,7 +101,7 @@ https://github.com/diffpy/diffpy.pdfmorph and consult its README file. Documentation/Help ================== -Alpha Version - latest +0.0.1 - latest ---------------------- * User manual (available in HTML and PDF) to be made available soon From 92d28ed6753ed2b63c6df228e8ae7c41d87488be Mon Sep 17 00:00:00 2001 From: Matthew Roman Date: Tue, 9 Jul 2019 14:32:25 -0400 Subject: [PATCH 06/21] Fix graph label, spelling errors, and virtual env directions --- products/PDFmorph.rst | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/products/PDFmorph.rst b/products/PDFmorph.rst index d6573115..df9af632 100644 --- a/products/PDFmorph.rst +++ b/products/PDFmorph.rst @@ -35,7 +35,8 @@ though it has not been extensively tested beyond the PDF. .. figure:: ../images/pdfmorph_nacl_ex.png :align: center - Transformation techniques utilized by PDFmorph on an NaCl sample + Transformation techniques (scale, smear, and stretch, respectively) + utilized by PDFmorph applied sequentially on an NaCl sample Installation @@ -62,7 +63,7 @@ from |anaconda-download|. conda create --name=py3x python=3.x conda activate py3x - On Windows use just ``activate py27``. Make sure that *py3x* environment is + On Windows use just ``activate py3x``. Make sure that *py3x* environment is activated in your shell prior to running the "install" or "update" commands below. @@ -84,7 +85,7 @@ If installed correctly, this command should return PDFmorph's current version nu PDFmorph Updates ================ -The Anaconda package sustem makes it easu to prepare and distribute software +The Anaconda package sustem makes it easy to prepare and distribute software packages and bugfixes. To update the lates version of PDFmorph use :: conda update diffpy.pdfmorph From 87f5b6291634aa60b0cc8f7e51e3f736b4fc282d Mon Sep 17 00:00:00 2001 From: Matthew Roman Date: Tue, 9 Jul 2019 14:38:41 -0400 Subject: [PATCH 07/21] Fix CLI note --- products/PDFmorph.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/products/PDFmorph.rst b/products/PDFmorph.rst index df9af632..795b63b8 100644 --- a/products/PDFmorph.rst +++ b/products/PDFmorph.rst @@ -9,8 +9,9 @@ Overview .. note:: The PDFmorph application has a Command Line Interface. If you are - unfamiliar with the CLI, it is recommended that you consult online - resources and become somewhat familiar before using PDFmorph. + unfamiliar with the terminal or windows command prompt, it is recommended + that you consult online resources and become somewhat familiar before + using PDFmorph. PDFmorph is a Python software package designed to increase the insight researchers can obtain from measured atomic pair distribution functions (PDFs) in a model From 46364aeeeb88e1bc5600902fa18e3978136721f1 Mon Sep 17 00:00:00 2001 From: Matthew Roman Date: Tue, 9 Jul 2019 14:55:35 -0400 Subject: [PATCH 08/21] Fix xPDFsuite comment --- products/PDFmorph.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/products/PDFmorph.rst b/products/PDFmorph.rst index 795b63b8..c452e44f 100644 --- a/products/PDFmorph.rst +++ b/products/PDFmorph.rst @@ -31,7 +31,7 @@ There are also a few other morphing transformations in the program. Finally, we note that PDFmorph should work on other spectra that are not PDFs, though it has not been extensively tested beyond the PDF. -.. PDFmorph will soon be included in :doc:`xPDFsuite `, a powerful end-to-end software for X-ray PDF analysis. PxPDFsuite 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. +.. PDFmorph 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_nacl_ex.png :align: center From 9b51ea737a157514b60f20ff6feafdb2a2b58095 Mon Sep 17 00:00:00 2001 From: Matthew Roman Date: Tue, 9 Jul 2019 16:25:58 -0400 Subject: [PATCH 09/21] Fixed filenames --- products/{pdfmorphLICENSE.rst => pdfmorph_license.rst} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename products/{pdfmorphLICENSE.rst => pdfmorph_license.rst} (100%) diff --git a/products/pdfmorphLICENSE.rst b/products/pdfmorph_license.rst similarity index 100% rename from products/pdfmorphLICENSE.rst rename to products/pdfmorph_license.rst From 940872635ba9331cbc2ce1ebb5b6a3e6b96a06fc Mon Sep 17 00:00:00 2001 From: RomanMatthew <50244736+RomanMatthew@users.noreply.github.com> Date: Tue, 9 Jul 2019 16:28:52 -0400 Subject: [PATCH 10/21] Rename PDFmorph.rst to pdfmorph.rst --- products/{PDFmorph.rst => pdfmorph.rst} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename products/{PDFmorph.rst => pdfmorph.rst} (100%) diff --git a/products/PDFmorph.rst b/products/pdfmorph.rst similarity index 100% rename from products/PDFmorph.rst rename to products/pdfmorph.rst From 2300e7c117530e63861f010386fa172958e559b3 Mon Sep 17 00:00:00 2001 From: Matthew Roman Date: Tue, 9 Jul 2019 16:57:50 -0400 Subject: [PATCH 11/21] Add link to PDFmorph in dropdown menu and fixed index pointer --- _templates/menu01.html | 1 + index.rst | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/_templates/menu01.html b/_templates/menu01.html index 3ad867b0..c3e392f4 100644 --- a/_templates/menu01.html +++ b/_templates/menu01.html @@ -15,5 +15,6 @@

  • xINTERPDF
  • Python Packages
  • +
  • PDFmorph
  • diff --git a/index.rst b/index.rst index f512285b..83181c41 100644 --- a/index.rst +++ b/index.rst @@ -86,4 +86,4 @@ centered at Columbia University and, before that, Michigan State University. products/SrMise products/mPDF products/xinterpdf - products/PDFmorph + products/pdfmorph From d87c500539c98c123c87a24b89da1d9694a08892 Mon Sep 17 00:00:00 2001 From: Matthew Roman Date: Wed, 10 Jul 2019 17:26:57 -0400 Subject: [PATCH 12/21] Fixed license reference in pdfmorph.rst --- products/pdfmorph.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/products/pdfmorph.rst b/products/pdfmorph.rst index c452e44f..da5ea091 100644 --- a/products/pdfmorph.rst +++ b/products/pdfmorph.rst @@ -44,7 +44,7 @@ Installation ============ By downloading and using this software, you are agreeing to the conditions -specified in the :doc:`software license `. +specified in the :doc:`software license `. PDFmorph is distributed as a software package for `Anaconda Python `__. PDFmorph is available for all operating systems supported by Anaconda, namely for From 1ee2756fceb63f8b0de1c3f89f2d553070201a62 Mon Sep 17 00:00:00 2001 From: Matthew Roman Date: Thu, 11 Jul 2019 11:46:00 -0400 Subject: [PATCH 13/21] Update virtual environment instructions and fix typos --- products/pdfmorph.rst | 109 ++++++++++++++++++++++-------------------- 1 file changed, 58 insertions(+), 51 deletions(-) diff --git a/products/pdfmorph.rst b/products/pdfmorph.rst index da5ea091..d24cb721 100644 --- a/products/pdfmorph.rst +++ b/products/pdfmorph.rst @@ -8,28 +8,30 @@ Overview ======== .. note:: - The PDFmorph application has a Command Line Interface. If you are - unfamiliar with the terminal or windows command prompt, it is recommended - that you consult online resources and become somewhat familiar before - using PDFmorph. - -PDFmorph is a Python software package designed to increase the insight researchers -can obtain from measured atomic pair distribution functions (PDFs) in a model -independent way. The program was designed to help a researcher answer the question: -"has my material undergone a phase transition between these two measurements?" - -PDFmorph makes use of several data manipulation techniques to correct for benign -effects such as thermal expansion and increased thermal motion before computing and -plotting a difference curve between two PDFs. One PDF is identified as the "target" -PDF and the second is "morphed" by "stretching", "smearing", and "scaling". PDFmorph -will vary amplitude of morphing transformations to obtain the best fit between -morphed and target PDFs, then plot them along with the difference curve plotted + The PDFmorph application has a Command Line Interface. If you + are unfamiliar with the terminal or windows command prompt, it + is recommended that you consult online resources and become + somewhat familiar before using PDFmorph. + +PDFmorph is a Python software package designed to increase the insight +researchers can obtain from measured atomic pair distribution functions +(PDFs) in a model-independent way. The program was designed to help a +researcher answer the question: Has my material undergone a phase +transition between these two measurements? + +PDFmorph makes use of several data manipulation techniques to correct +for benign effects such as thermal expansion and increased thermal +motion before computing and plotting a difference curve between two PDFs. +One PDF is identified as the "target" PDF and the second is "morphed" +by "stretching", "smearing", and "scaling". PDFmorph will vary amplitude +of morphing transformations to obtain the best fit between morphed and +target PDFs, then plot them along with the difference curve plotted below. There are also a few other morphing transformations in the program. -Finally, we note that PDFmorph should work on other spectra that are not PDFs, -though it has not been extensively tested beyond the PDF. +Finally, we note that PDFmorph should work on other spectra that are +not PDFs, though it has not been extensively tested beyond the PDF. .. PDFmorph 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. @@ -46,53 +48,60 @@ Installation By downloading and using this software, you are agreeing to the conditions specified in the :doc:`software license `. -PDFmorph is distributed as a software package for `Anaconda Python `__. -PDFmorph is available for all operating systems supported by Anaconda, namely for -32 and 64-bit Linux, Mac OS X, and 32 and 64-bit Windows. +PDFmorph is distributed using conda. To install software using conda +you will first have to download and install ``Anaconda`` or ``mini-conda`` +from `continuum `__. -As a prerequisite for PDFmorph installation, download and install Anaconda -from |anaconda-download|. +PDFmorph is available for all operating systems supported by Anaconda, +namely for 32 and 64-bit Linux, Mac OS X, and 32 and 64-bit Windows. .. note:: - PDFmorph is a software which operates on any version of Python 3. Anaconda - should install the latest version of Python by default, but in case you - already use Anaconda for a prior release of Python, create a separate - Anaconda environment *py3x* which will provide your preferred version of - Python 3 (substitute x for your preferred release) instead of Python 2.7 - or earlier. :: + We recommend that you run PDFmorph in a Python 3 conda virtual + environment. With Anaconda or mini-conda installed on your system, + first create the virtual environment by typing :: + + conda create --name=py3 python=3 - conda create --name=py3x python=3.x - conda activate py3x + You can give the environment any name you like but it should + have some Python version 3 installed. You only need to create + the environment once, but every time you want to use PDFmorph + you will have to activate the environment in which it is installed + by typing :: + + source activate py3 - On Windows use just ``activate py3x``. Make sure that *py3x* environment is - activated in your shell prior to running the "install" or "update" commands - below. + on Mac/Linux, or :: -PDFmorph is available from the "conda-forge" channel of Anaconda packages. Open a -*Terminal* window or *Anaconda Command Prompt* on Windows and install PDFmorph -using the :program:`conda` command :: + activate py3 + + on Windows. + +PDFmorph is available from the "conda-forge" channel of Anaconda packages. +Open a *Terminal* window or *Anaconda Command Prompt* on Windows and +install PDFmorph using the :program:`conda` command :: conda config --add channels conda-forge conda install diffpy.pdfmorph -And it should be installed! To make sure that installation has completed correctly, -run the following command from your relevant conda environment :: +And it should be installed! To make sure that installation has completed +correctly, run the following command from your relevant conda environment :: pdfmorph --version -If installed correctly, this command should return PDFmorph's current version number. +This command should return PDFmorph's current version number. PDFmorph Updates ================ -The Anaconda package sustem makes it easy to prepare and distribute software -packages and bugfixes. To update the lates version of PDFmorph use :: +The Anaconda package system makes it easy to prepare and distribute +software packages and bugfixes. To update the latest version of PDFmorph, +use :: conda update diffpy.pdfmorph -With other Python distributions, the program can be updated to the latest version -as follows :: +With other Python distributions, the program can be updated to the +latest version with :: easy_install --upgrade diffpy.pdfmorph @@ -106,14 +115,12 @@ Documentation/Help 0.0.1 - latest ---------------------- -* User manual (available in HTML and PDF) to be made available soon -* Installation instructions to come -* Tutorial files will be made available soon +* User manual (available in HTML and PDF) +* Installation instructions +* `Sample PDF files `__ +* Tutorial * Please, join the :doc:`community forum <../community>` for tips, tricks, and feedback. -References -========== - -Paper on PDfmorph will be released soon. +.. References// # update upon paper resease From 13435df718990542ca4b8c6ff08781e1f334fb3c Mon Sep 17 00:00:00 2001 From: Matthew Roman Date: Tue, 16 Jul 2019 16:14:25 -0400 Subject: [PATCH 14/21] Fixed structure issues --- _templates/menu01.html | 2 +- products/pdfmorph.rst | 114 +++++++++++++++++++--------------- products/pdfmorph_license.txt | 53 ++++++++-------- products/pythonpackages.rst | 10 ++- 4 files changed, 102 insertions(+), 77 deletions(-) diff --git a/_templates/menu01.html b/_templates/menu01.html index c3e392f4..d2f6641b 100644 --- a/_templates/menu01.html +++ b/_templates/menu01.html @@ -14,7 +14,7 @@
  • SrMise
  • mPDF
  • xINTERPDF
  • -
  • Python Packages
  • PDFmorph
  • +
  • Python Packages
  • diff --git a/products/pdfmorph.rst b/products/pdfmorph.rst index d24cb721..2c3653ad 100644 --- a/products/pdfmorph.rst +++ b/products/pdfmorph.rst @@ -8,29 +8,37 @@ Overview ======== .. note:: - The PDFmorph application has a Command Line Interface. If you - are unfamiliar with the terminal or windows command prompt, it - is recommended that you consult online resources and become - somewhat familiar before using PDFmorph. - -PDFmorph is a Python software package designed to increase the insight -researchers can obtain from measured atomic pair distribution functions -(PDFs) in a model-independent way. The program was designed to help a -researcher answer the question: Has my material undergone a phase -transition between these two measurements? - -PDFmorph makes use of several data manipulation techniques to correct -for benign effects such as thermal expansion and increased thermal -motion before computing and plotting a difference curve between two PDFs. -One PDF is identified as the "target" PDF and the second is "morphed" -by "stretching", "smearing", and "scaling". PDFmorph will vary amplitude -of morphing transformations to obtain the best fit between morphed and -target PDFs, then plot them along with the difference curve plotted -below. + + PDFmorph is currently run from the command line, which requires + opening and typing into a terminal window or Windows command + prompt. It is recommended that you consult online resources and + become somewhat familiar before using PDFmorph. + +PDFmorph is a Python software package designed to increase the insight +researchers can obtain from measured atomic pair distribution functions +(PDFs) in a model-independent way. The program was designed to help a +researcher answer the question: "Has my material undergone a phase +transition between these two measurements?" + +PDFmorph 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 cahnge in scale due to differences +in incident flux, for example. PDFmorph will do its best to correct +for these benign effects before computing and plotting a difference +curve. + +One PDF (typically that collected at higher temperature) is identified +as the "target" PDF and the second is "morphed" by "stretching" (changing +the r-axis to simulate a uniform lattice expansion), "smearing" +(broadening peaks through a uniform convolution to simulate increased +thermal motion), and "scaling" (self-explanatory). PDFmorph will vary +amplitude of morphing transformations to obtain the best fit between +morphed and target PDFs, then plot them along with the difference curve +plotted below. There are also a few other morphing transformations in the program. -Finally, we note that PDFmorph should work on other spectra that are +Finally, we note that PDFmorph should work on other spectra that are not PDFs, though it has not been extensively tested beyond the PDF. .. PDFmorph 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. @@ -38,69 +46,72 @@ not PDFs, though it has not been extensively tested beyond the PDF. .. figure:: ../images/pdfmorph_nacl_ex.png :align: center - Transformation techniques (scale, smear, and stretch, respectively) + Transformation techniques (scale, smear, and stretch, respectively) utilized by PDFmorph applied sequentially on an NaCl sample Installation ============ -By downloading and using this software, you are agreeing to the conditions +By downloading and using this software, you are agreeing to the conditions specified in the :doc:`software license `. -PDFmorph is distributed using conda. To install software using conda -you will first have to download and install ``Anaconda`` or ``mini-conda`` +In order to take automatically take care of software dependency +downloads, we recomment you install PDFmorph using conda. To do that, +you will first have to download and install *Anaconda* or *mini-conda* from `continuum `__. -PDFmorph is available for all operating systems supported by Anaconda, +PDFmorph is available for all operating systems supported by Anaconda, namely for 32 and 64-bit Linux, Mac OS X, and 32 and 64-bit Windows. .. note:: We recommend that you run PDFmorph in a Python 3 conda virtual - environment. With Anaconda or mini-conda installed on your system, + environment. With Anaconda or mini-conda installed on your system, first create the virtual environment by typing :: - conda create --name=py3 python=3 + conda create --name= python=3 - You can give the environment any name you like but it should - have some Python version 3 installed. You only need to create - the environment once, but every time you want to use PDFmorph - you will have to activate the environment in which it is installed - by typing :: + You can give the environment any name you like but it should + have some Python version 3 installed (though PDFmorph also works + on Python 2.7). You only need to create the environment once, + but every time you want to use PDFmorph you will have to + reactivate the environment in which it is installed by typing :: - source activate py3 - - on Mac/Linux, or :: - - activate py3 + source activate - on Windows. + on Mac/Linux, or ``activate `` on Windows. -PDFmorph is available from the "conda-forge" channel of Anaconda packages. -Open a *Terminal* window or *Anaconda Command Prompt* on Windows and -install PDFmorph using the :program:`conda` command :: +Once you're in your desired conda environment, you can install PDFmorph +from either the ``diffpy`` or ``conda-forge`` channels of Anaconda packages +by running opening a *Terminal* window or *Anaconda Command Prompt* +on Windows and using the :program:`conda` command :: conda config --add channels conda-forge conda install diffpy.pdfmorph -And it should be installed! To make sure that installation has completed -correctly, run the following command from your relevant conda environment :: +If you prefer to install from the diffpy channel, simply replace +``conda-forge`` with ``diffpy`` in the commands above. + +By then it should be installed! To make sure that installation has +completed correctly, run the following command from your PDFmorph-equipped +conda environment :: pdfmorph --version -This command should return PDFmorph's current version number. +This command should return the version of PDFmorph you have on your +machine. PDFmorph Updates ================ -The Anaconda package system makes it easy to prepare and distribute -software packages and bugfixes. To update the latest version of PDFmorph, +The Anaconda package system makes it easy to prepare and distribute +software packages and bugfixes. To update the latest version of PDFmorph, use :: conda update diffpy.pdfmorph -With other Python distributions, the program can be updated to the +With other Python distributions, the program can be updated to the latest version with :: easy_install --upgrade diffpy.pdfmorph @@ -112,15 +123,20 @@ https://github.com/diffpy/diffpy.pdfmorph and consult its README file. Documentation/Help ================== -0.0.1 - latest +0.1.0 - latest ---------------------- * User manual (available in HTML and PDF) * Installation instructions * `Sample PDF files `__ * Tutorial -* Please, join the :doc:`community forum <../community>` for tips, +* Please, join the :doc:`community forum <../community>` for tips, tricks, and feedback. .. References// # update upon paper resease + +.. toctree:: + :hidden: + + pdfmorph_license diff --git a/products/pdfmorph_license.txt b/products/pdfmorph_license.txt index abccea70..50c823ab 100644 --- a/products/pdfmorph_license.txt +++ b/products/pdfmorph_license.txt @@ -1,33 +1,36 @@ -This program is part of the DiffPy open-source projects at Columbia -University and is available subject to the conditions and terms laid out below. +This program is part of the DiffPy open-source project at Columbia +University and is available subject to the conditions and terms laid +out below. -Copyright © 2009-2019, Trustees of Columbia University in the City of New York, -all rights reserved. +Copyright © 2009-2019, Trustees of Columbia University in the City of +New York, all rights reserved. -For more information please visit the diffpy web-page at http://diffpy.org or -email Prof. Simon Billinge at sb2896@columbia.edu. +For more information please visit the diffpy web-page at +http://diffpy.org or email Prof. Simon Billinge at sb2896@columbia.edu. Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: +modification, are permitted provided that the following conditions are +met: - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. - * Neither the names of COLUMBIA UNIVERSITY, MICHIGAN STATE UNIVERSITY nor the - names of their contributors may be used to endorse or promote products - derived from this software without specific prior written permission. + * The name of COLUMBIA UNIVERSITY nor the names of its contributors + may be used to endorse or promote products derived from this + software without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/products/pythonpackages.rst b/products/pythonpackages.rst index 0fbe140d..2c625987 100644 --- a/products/pythonpackages.rst +++ b/products/pythonpackages.rst @@ -4,12 +4,13 @@ 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. +mPDF, and PDFmorph, all of the packages listed below are bundled in the +|DiffPyCMI| release. ====================== ============================================ Module Description ====================== ============================================ + `diffpy.srfit`_ Setup and control of general fitting problems. @@ -37,6 +38,9 @@ Module Description `diffpy.mpdf`_ Tools for calculating and refining magnetic PDFs. + +`diffpy.pdfmorph`_ Tools for comparing and manipulating two + PDFs. ====================== ============================================ .. _diffpy.srfit: https://github.com/diffpy/diffpy.srfit @@ -55,4 +59,6 @@ Module Description .. _diffpy.mpdf: https://github.com/benfrandsen/diffpy.magpdf +.. _diffpy.pdfmorph: https://github.com/diffpy/diffpy.pdfmorph + .. include:: ../abbreviations.txt From aaa81dda1cfb0c8483fe1bcfd12395bef44abb25 Mon Sep 17 00:00:00 2001 From: Pavol Juhas Date: Tue, 16 Jul 2019 19:01:19 -0400 Subject: [PATCH 15/21] BUG: fix table - remove offending blank line --- products/pythonpackages.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/products/pythonpackages.rst b/products/pythonpackages.rst index 2c625987..8c4d3842 100644 --- a/products/pythonpackages.rst +++ b/products/pythonpackages.rst @@ -10,7 +10,6 @@ mPDF, and PDFmorph, all of the packages listed below are bundled in the ====================== ============================================ Module Description ====================== ============================================ - `diffpy.srfit`_ Setup and control of general fitting problems. From 612a7b95a9bad59e922547194b3d94ce56b42439 Mon Sep 17 00:00:00 2001 From: Pavol Juhas Date: Tue, 16 Jul 2019 19:04:27 -0400 Subject: [PATCH 16/21] MNT: remove trailing blanks --- products/pdfmorph.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/products/pdfmorph.rst b/products/pdfmorph.rst index 2c3653ad..8784356d 100644 --- a/products/pdfmorph.rst +++ b/products/pdfmorph.rst @@ -68,7 +68,7 @@ namely for 32 and 64-bit Linux, Mac OS X, and 32 and 64-bit Windows. We recommend that you run PDFmorph in a Python 3 conda virtual environment. With Anaconda or mini-conda installed on your system, first create the virtual environment by typing :: - + conda create --name= python=3 You can give the environment any name you like but it should @@ -76,7 +76,7 @@ namely for 32 and 64-bit Linux, Mac OS X, and 32 and 64-bit Windows. on Python 2.7). You only need to create the environment once, but every time you want to use PDFmorph you will have to reactivate the environment in which it is installed by typing :: - + source activate on Mac/Linux, or ``activate `` on Windows. From 76f0294500d1a3d8c2c85be6c683c2139c37af6f Mon Sep 17 00:00:00 2001 From: Matthew Roman Date: Thu, 18 Jul 2019 12:49:50 -0400 Subject: [PATCH 17/21] Update installation section --- products/pdfmorph.rst | 35 ++++++++++++++++++----------------- products/pythonpackages.rst | 1 + 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/products/pdfmorph.rst b/products/pdfmorph.rst index 2c3653ad..4badd9b3 100644 --- a/products/pdfmorph.rst +++ b/products/pdfmorph.rst @@ -56,26 +56,27 @@ Installation By downloading and using this software, you are agreeing to the conditions specified in the :doc:`software license `. -In order to take automatically take care of software dependency -downloads, we recomment you install PDFmorph using conda. To do that, -you will first have to download and install *Anaconda* or *mini-conda* -from `continuum `__. - -PDFmorph is available for all operating systems supported by Anaconda, -namely for 32 and 64-bit Linux, Mac OS X, and 32 and 64-bit Windows. +PDFmorph will run on Python 2.7 or higher, but here we give instructions +for installing the Python 3 version in a conda environment. .. note:: - We recommend that you run PDFmorph in a Python 3 conda virtual - environment. With Anaconda or mini-conda installed on your system, - first create the virtual environment by typing :: + PDFmorph is distributed and best installed using conda. It should + run in most Python 3 environments and can be directly installed + in an existing environment (using the commands listed below). If + you do not currently have conda installed, here are some + lightweight instructions for getting started: + + 1.) Download and install *Anaconda* or *mini-conda* from + `continuum `__. + + 2.) Create a Python 3 environment with the command :: - conda create --name= python=3 + conda create --name= python=3 - You can give the environment any name you like but it should - have some Python version 3 installed (though PDFmorph also works - on Python 2.7). You only need to create the environment once, - but every time you want to use PDFmorph you will have to - reactivate the environment in which it is installed by typing :: + You can give the environment any name you like. + You only need to create the environment once, but every time you + want to use PDFmorph you will have to reactivate the environment + in which it is installed by opening a terminal and typing :: source activate @@ -83,7 +84,7 @@ namely for 32 and 64-bit Linux, Mac OS X, and 32 and 64-bit Windows. Once you're in your desired conda environment, you can install PDFmorph from either the ``diffpy`` or ``conda-forge`` channels of Anaconda packages -by running opening a *Terminal* window or *Anaconda Command Prompt* +by running opening a *Terminal* window or *Command Prompt* on Windows and using the :program:`conda` command :: conda config --add channels conda-forge diff --git a/products/pythonpackages.rst b/products/pythonpackages.rst index 2c625987..32a6f513 100644 --- a/products/pythonpackages.rst +++ b/products/pythonpackages.rst @@ -41,6 +41,7 @@ Module Description `diffpy.pdfmorph`_ Tools for comparing and manipulating two PDFs. + ====================== ============================================ .. _diffpy.srfit: https://github.com/diffpy/diffpy.srfit From ea9dceca4d59cef003dc4a124680b2099106f657 Mon Sep 17 00:00:00 2001 From: Pavol Juhas Date: Thu, 18 Jul 2019 14:48:12 -0400 Subject: [PATCH 18/21] Drop unused include of abbreviations Include only when used. --- products/pdfmorph.rst | 2 -- 1 file changed, 2 deletions(-) diff --git a/products/pdfmorph.rst b/products/pdfmorph.rst index 4badd9b3..914ed0d2 100644 --- a/products/pdfmorph.rst +++ b/products/pdfmorph.rst @@ -1,5 +1,3 @@ -.. include:: ../abbreviations.txt - ######## PDFmorph ######## From 13c79ea1cb47cef16d267731d21f605988b51a84 Mon Sep 17 00:00:00 2001 From: Pavol Juhas Date: Thu, 18 Jul 2019 14:51:40 -0400 Subject: [PATCH 19/21] pdfmorph - typo and small rewording --- products/pdfmorph.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/products/pdfmorph.rst b/products/pdfmorph.rst index 914ed0d2..63490942 100644 --- a/products/pdfmorph.rst +++ b/products/pdfmorph.rst @@ -20,7 +20,7 @@ transition between these two measurements?" PDFmorph 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 cahnge in scale due to differences +thermal motion (peak broadening) or a change in scale due to differences in incident flux, for example. PDFmorph will do its best to correct for these benign effects before computing and plotting a difference curve. @@ -44,15 +44,15 @@ not PDFs, though it has not been extensively tested beyond the PDF. .. figure:: ../images/pdfmorph_nacl_ex.png :align: center - Transformation techniques (scale, smear, and stretch, respectively) - utilized by PDFmorph applied sequentially on an NaCl sample + PDFmorph transformation techniques (scale, smear, and stretch) + applied sequentially to a PDF from NaCl sample Installation ============ By downloading and using this software, you are agreeing to the conditions -specified in the :doc:`software license `. +specified in the software :doc:`LICENSE `. PDFmorph will run on Python 2.7 or higher, but here we give instructions for installing the Python 3 version in a conda environment. From 02628b0ebed120442e79498dd00f55682720d330 Mon Sep 17 00:00:00 2001 From: Pavol Juhas Date: Thu, 18 Jul 2019 14:54:48 -0400 Subject: [PATCH 20/21] MNT: clean up trailing blanks Fix issues from `git diff --check`. --- products/pdfmorph.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/products/pdfmorph.rst b/products/pdfmorph.rst index 63490942..4c0e2961 100644 --- a/products/pdfmorph.rst +++ b/products/pdfmorph.rst @@ -68,14 +68,14 @@ for installing the Python 3 version in a conda environment. `continuum `__. 2.) Create a Python 3 environment with the command :: - + conda create --name= python=3 You can give the environment any name you like. You only need to create the environment once, but every time you want to use PDFmorph you will have to reactivate the environment in which it is installed by opening a terminal and typing :: - + source activate on Mac/Linux, or ``activate `` on Windows. From e5bccef4880ea503bfa0be7ab0353085683df3b2 Mon Sep 17 00:00:00 2001 From: Pavol Juhas Date: Thu, 18 Jul 2019 15:49:10 -0400 Subject: [PATCH 21/21] pdfmorph - remove conda environment creation List compatible Python versions. Suggest pip rather than easy_install. --- products/pdfmorph.rst | 68 ++++++++++++++++++------------------------- 1 file changed, 28 insertions(+), 40 deletions(-) diff --git a/products/pdfmorph.rst b/products/pdfmorph.rst index 4c0e2961..11aa4595 100644 --- a/products/pdfmorph.rst +++ b/products/pdfmorph.rst @@ -54,50 +54,34 @@ Installation By downloading and using this software, you are agreeing to the conditions specified in the software :doc:`LICENSE `. -PDFmorph will run on Python 2.7 or higher, but here we give instructions -for installing the Python 3 version in a conda environment. +PDFmorph will run on Python 3.5 or higher or on Python 2.7. +We recommend to use Anaconda Python which can be obtained from +|anaconda-download|. +PDFmorph is available from the ``diffpy`` channel of Anaconda +packages and also from `conda-forge `__. +To install open a *Terminal* window (*Anaconda Command Prompt* +on Windows) and use the :program:`conda` command as follows :: -.. note:: - PDFmorph is distributed and best installed using conda. It should - run in most Python 3 environments and can be directly installed - in an existing environment (using the commands listed below). If - you do not currently have conda installed, here are some - lightweight instructions for getting started: - - 1.) Download and install *Anaconda* or *mini-conda* from - `continuum `__. - - 2.) Create a Python 3 environment with the command :: - - conda create --name= python=3 - - You can give the environment any name you like. - You only need to create the environment once, but every time you - want to use PDFmorph you will have to reactivate the environment - in which it is installed by opening a terminal and typing :: + conda install --channel=diffpy diffpy.pdfmorph - source activate +If you prefer to use ``conda-forge`` make sure it is configured as +the priority channel for Anaconda packages, which will allow you +to install without the ``--channel`` option :: - on Mac/Linux, or ``activate `` on Windows. + conda config --add channels conda-forge + conda install diffpy.pdfmorph + +For all other Python distributions use the standard +:program:`pip` installation program:: -Once you're in your desired conda environment, you can install PDFmorph -from either the ``diffpy`` or ``conda-forge`` channels of Anaconda packages -by running opening a *Terminal* window or *Command Prompt* -on Windows and using the :program:`conda` command :: + pip install diffpy.pdfmorph - conda config --add channels conda-forge - conda install diffpy.pdfmorph +To make sure that the installation has completed correctly, +run the following command from a *Terminal* :: -If you prefer to install from the diffpy channel, simply replace -``conda-forge`` with ``diffpy`` in the commands above. + pdfmorph --version -By then it should be installed! To make sure that installation has -completed correctly, run the following command from your PDFmorph-equipped -conda environment :: - - pdfmorph --version - -This command should return the version of PDFmorph you have on your +If all is good this should display the version of PDFmorph installed on your machine. @@ -105,7 +89,7 @@ PDFmorph Updates ================ The Anaconda package system makes it easy to prepare and distribute -software packages and bugfixes. To update the latest version of PDFmorph, +software packages and bugfixes. To obtain the latest version of PDFmorph, use :: conda update diffpy.pdfmorph @@ -113,9 +97,9 @@ use :: With other Python distributions, the program can be updated to the latest version with :: - easy_install --upgrade diffpy.pdfmorph + pip --upgrade diffpy.pdfmorph -To use a development version, visit the project source repository at +To use a development version, visit the project source repository https://github.com/diffpy/diffpy.pdfmorph and consult its README file. @@ -139,3 +123,7 @@ Documentation/Help :hidden: pdfmorph_license + +.. URL definitions below ----------------------------------------------- + +.. include:: ../abbreviations.txt
  • mPDF