NXRefine 0.1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. nxrefine-0.1.1/.gitattributes +38 -0
  2. nxrefine-0.1.1/.github/workflows/sphinx.yml +31 -0
  3. nxrefine-0.1.1/.gitignore +66 -0
  4. nxrefine-0.1.1/LICENSE +34 -0
  5. nxrefine-0.1.1/LICENSE.pdf +0 -0
  6. nxrefine-0.1.1/PKG-INFO +152 -0
  7. nxrefine-0.1.1/README.md +76 -0
  8. nxrefine-0.1.1/conda-recipe/bld.bat +2 -0
  9. nxrefine-0.1.1/conda-recipe/build.sh +3 -0
  10. nxrefine-0.1.1/conda-recipe/meta.yaml +47 -0
  11. nxrefine-0.1.1/docs/.nojekyll +1 -0
  12. nxrefine-0.1.1/docs/Makefile +20 -0
  13. nxrefine-0.1.1/docs/make.bat +35 -0
  14. nxrefine-0.1.1/docs/requirements.txt +1 -0
  15. nxrefine-0.1.1/docs/source/conf.py +34 -0
  16. nxrefine-0.1.1/docs/source/favicon.ico +0 -0
  17. nxrefine-0.1.1/docs/source/index.rst +25 -0
  18. nxrefine-0.1.1/pyproject.toml +87 -0
  19. nxrefine-0.1.1/setup.cfg +4 -0
  20. nxrefine-0.1.1/src/NXRefine.egg-info/PKG-INFO +152 -0
  21. nxrefine-0.1.1/src/NXRefine.egg-info/SOURCES.txt +95 -0
  22. nxrefine-0.1.1/src/NXRefine.egg-info/dependency_links.txt +1 -0
  23. nxrefine-0.1.1/src/NXRefine.egg-info/entry_points.txt +23 -0
  24. nxrefine-0.1.1/src/NXRefine.egg-info/requires.txt +13 -0
  25. nxrefine-0.1.1/src/NXRefine.egg-info/top_level.txt +1 -0
  26. nxrefine-0.1.1/src/nxrefine/__init__.py +9 -0
  27. nxrefine-0.1.1/src/nxrefine/_version.py +24 -0
  28. nxrefine-0.1.1/src/nxrefine/julia/GeneralMK3D.jl +258 -0
  29. nxrefine-0.1.1/src/nxrefine/julia/LaplaceInterpolation.jl +25 -0
  30. nxrefine-0.1.1/src/nxrefine/julia/Matern1D2D.jl +229 -0
  31. nxrefine-0.1.1/src/nxrefine/julia/MaternKernelApproximation.jl +342 -0
  32. nxrefine-0.1.1/src/nxrefine/julia/__init__.py +0 -0
  33. nxrefine-0.1.1/src/nxrefine/julia/arbitrary_dim.jl +109 -0
  34. nxrefine-0.1.1/src/nxrefine/julia/get_xyzs.jl +63 -0
  35. nxrefine-0.1.1/src/nxrefine/julia/nexus.jl +153 -0
  36. nxrefine-0.1.1/src/nxrefine/julia/punch.jl +232 -0
  37. nxrefine-0.1.1/src/nxrefine/nxbeamline.py +313 -0
  38. nxrefine-0.1.1/src/nxrefine/nxdaemon.py +160 -0
  39. nxrefine-0.1.1/src/nxrefine/nxdatabase.py +608 -0
  40. nxrefine-0.1.1/src/nxrefine/nxlogger.py +103 -0
  41. nxrefine-0.1.1/src/nxrefine/nxorient.py +566 -0
  42. nxrefine-0.1.1/src/nxrefine/nxpdf.py +377 -0
  43. nxrefine-0.1.1/src/nxrefine/nxreduce.py +2703 -0
  44. nxrefine-0.1.1/src/nxrefine/nxrefine.py +2035 -0
  45. nxrefine-0.1.1/src/nxrefine/nxserver.py +503 -0
  46. nxrefine-0.1.1/src/nxrefine/nxsettings.py +188 -0
  47. nxrefine-0.1.1/src/nxrefine/nxsymmetry.py +176 -0
  48. nxrefine-0.1.1/src/nxrefine/nxutils.py +711 -0
  49. nxrefine-0.1.1/src/nxrefine/orient/__init__.py +0 -0
  50. nxrefine-0.1.1/src/nxrefine/orient/conventional.py +115 -0
  51. nxrefine-0.1.1/src/nxrefine/orient/niggli.py +138 -0
  52. nxrefine-0.1.1/src/nxrefine/orient/orientedlattice.py +139 -0
  53. nxrefine-0.1.1/src/nxrefine/orient/reduced.py +393 -0
  54. nxrefine-0.1.1/src/nxrefine/orient/scalar_utils.py +210 -0
  55. nxrefine-0.1.1/src/nxrefine/plugins/experiment/__init__.py +27 -0
  56. nxrefine-0.1.1/src/nxrefine/plugins/experiment/calibrate_powder.py +493 -0
  57. nxrefine-0.1.1/src/nxrefine/plugins/experiment/create_mask.py +300 -0
  58. nxrefine-0.1.1/src/nxrefine/plugins/experiment/edit_settings.py +149 -0
  59. nxrefine-0.1.1/src/nxrefine/plugins/experiment/import_scans.py +134 -0
  60. nxrefine-0.1.1/src/nxrefine/plugins/experiment/make_scans.py +127 -0
  61. nxrefine-0.1.1/src/nxrefine/plugins/experiment/new_configuration.py +301 -0
  62. nxrefine-0.1.1/src/nxrefine/plugins/experiment/new_experiment.py +157 -0
  63. nxrefine-0.1.1/src/nxrefine/plugins/experiment/new_sample.py +70 -0
  64. nxrefine-0.1.1/src/nxrefine/plugins/experiment/new_scan.py +269 -0
  65. nxrefine-0.1.1/src/nxrefine/plugins/experiment/sum_scans.py +155 -0
  66. nxrefine-0.1.1/src/nxrefine/plugins/refine/__init__.py +26 -0
  67. nxrefine-0.1.1/src/nxrefine/plugins/refine/calculate_angles.py +113 -0
  68. nxrefine-0.1.1/src/nxrefine/plugins/refine/choose_parameters.py +208 -0
  69. nxrefine-0.1.1/src/nxrefine/plugins/refine/copy_parameters.py +60 -0
  70. nxrefine-0.1.1/src/nxrefine/plugins/refine/define_lattice.py +227 -0
  71. nxrefine-0.1.1/src/nxrefine/plugins/refine/find_maximum.py +324 -0
  72. nxrefine-0.1.1/src/nxrefine/plugins/refine/find_peaks.py +269 -0
  73. nxrefine-0.1.1/src/nxrefine/plugins/refine/prepare_mask.py +162 -0
  74. nxrefine-0.1.1/src/nxrefine/plugins/refine/refine_lattice.py +1230 -0
  75. nxrefine-0.1.1/src/nxrefine/plugins/refine/transform_data.py +201 -0
  76. nxrefine-0.1.1/src/nxrefine/plugins/server/__init__.py +18 -0
  77. nxrefine-0.1.1/src/nxrefine/plugins/server/edit_settings.py +99 -0
  78. nxrefine-0.1.1/src/nxrefine/plugins/server/manage_server.py +276 -0
  79. nxrefine-0.1.1/src/nxrefine/plugins/server/manage_workflows.py +679 -0
  80. nxrefine-0.1.1/src/nxrefine/scripts/__init__.py +0 -0
  81. nxrefine-0.1.1/src/nxrefine/scripts/nxchoose.py +68 -0
  82. nxrefine-0.1.1/src/nxrefine/scripts/nxcombine.py +46 -0
  83. nxrefine-0.1.1/src/nxrefine/scripts/nxcopy.py +47 -0
  84. nxrefine-0.1.1/src/nxrefine/scripts/nxdatabase.py +32 -0
  85. nxrefine-0.1.1/src/nxrefine/scripts/nxfind.py +58 -0
  86. nxrefine-0.1.1/src/nxrefine/scripts/nxlink.py +45 -0
  87. nxrefine-0.1.1/src/nxrefine/scripts/nxload.py +45 -0
  88. nxrefine-0.1.1/src/nxrefine/scripts/nxmax.py +51 -0
  89. nxrefine-0.1.1/src/nxrefine/scripts/nxparent.py +29 -0
  90. nxrefine-0.1.1/src/nxrefine/scripts/nxpdf.py +51 -0
  91. nxrefine-0.1.1/src/nxrefine/scripts/nxprepare.py +61 -0
  92. nxrefine-0.1.1/src/nxrefine/scripts/nxreduce.py +80 -0
  93. nxrefine-0.1.1/src/nxrefine/scripts/nxrefine.py +59 -0
  94. nxrefine-0.1.1/src/nxrefine/scripts/nxserver.py +67 -0
  95. nxrefine-0.1.1/src/nxrefine/scripts/nxsettings.py +40 -0
  96. nxrefine-0.1.1/src/nxrefine/scripts/nxsum.py +43 -0
  97. nxrefine-0.1.1/src/nxrefine/scripts/nxtransform.py +56 -0
@@ -0,0 +1,38 @@
1
+ # Auto detect text files and perform LF normalization
2
+ * text=auto
3
+
4
+ # Source files
5
+ # ============
6
+ *.pxd text
7
+ *.py text
8
+ *.py3 text
9
+ *.pyw text
10
+ *.pyx text
11
+ *.xml text
12
+ *.md text
13
+ *.rst text
14
+ *.bat text
15
+ *.sh text
16
+ *.yaml text
17
+ *.cfg text
18
+ *.ipynb text
19
+
20
+ # Binary files
21
+ # ============
22
+ *.nxs binary
23
+ *.h5 binary
24
+ *.db binary
25
+ *.p binary
26
+ *.pkl binary
27
+ *.pyc binary
28
+ *.pyd binary
29
+ *.pyo binary
30
+ *.png binary
31
+ *.jpg binary
32
+ *.jpeg binary
33
+ *.gif binary
34
+ *.tif binary
35
+ *.tiff binary
36
+ *.svg binary
37
+ *.eps binary
38
+ *.ico binary
@@ -0,0 +1,31 @@
1
+ name: "Sphinx: Render Documentation"
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ push:
6
+ branches:
7
+ - 'docs'
8
+ pull_request:
9
+ branches:
10
+ - 'docs'
11
+
12
+ jobs:
13
+ build:
14
+ runs-on: ubuntu-latest
15
+ permissions:
16
+ contents: write
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ - name: Build HTML
20
+ uses: ammaraskar/sphinx-action@master
21
+ - name: Upload artifacts
22
+ uses: actions/upload-artifact@v3
23
+ with:
24
+ name: html-docs
25
+ path: docs/build/html/
26
+ - name: Deploy to GitHub Pages
27
+ uses: peaceiris/actions-gh-pages@v3
28
+ if: ${{github.ref == 'refs/heads/docs'}}
29
+ with:
30
+ github_token: ${{ secrets.GITHUB_TOKEN }}
31
+ publish_dir: docs/build/html
@@ -0,0 +1,66 @@
1
+ *.py[cod]
2
+
3
+ # C extensions
4
+ *.so
5
+
6
+ # Packages
7
+ *.egg
8
+ *.egg-info
9
+ dist
10
+ build
11
+ eggs
12
+ parts
13
+ bin
14
+ var
15
+ sdist
16
+ develop-eggs
17
+ .installed.cfg
18
+ lib
19
+ lib64
20
+ MANIFEST
21
+
22
+ # Installer logs
23
+ pip-log.txt
24
+
25
+ # Unit test / coverage reports
26
+ .coverage
27
+ .tox
28
+ nosetests.xml
29
+
30
+ # Translations
31
+ *.mo
32
+
33
+ # Mr Developer
34
+ .mr.developer.cfg
35
+
36
+ # OSX files
37
+ .DS_Store
38
+ .DS_Store?
39
+ ._*
40
+ .Spotlight-V100
41
+ .Trashes
42
+ Icon?
43
+
44
+ # PyCharm Files
45
+ .idea
46
+
47
+ # eclipse
48
+ .settings
49
+ .project
50
+ .pydevproject
51
+
52
+ # emacs
53
+ *~
54
+
55
+ # Virtual Studio Code
56
+ .vscode
57
+
58
+ # setuptools_scm
59
+ src/nxrefine/_version.py
60
+
61
+ # unused NXRefine code
62
+ _unused
63
+
64
+ # miscellaneous system files
65
+ .directoryhash
66
+
nxrefine-0.1.1/LICENSE ADDED
@@ -0,0 +1,34 @@
1
+ Copyright © 2022, UChicago Argonne, LLC
2
+ All Rights Reserved
3
+ Software Name: NXRefine
4
+ By: Argonne National Laboratory
5
+
6
+ OPEN SOURCE LICENSE
7
+
8
+ Redistribution and use in source and binary forms, with or without modification, are
9
+ permitted provided that the following conditions are met:
10
+
11
+ 1. Redistributions of source code must retain the above copyright notice, this list of
12
+ conditions and the following disclaimer.
13
+
14
+ 2. Redistributions in binary form must reproduce the above copyright notice, this list of
15
+ conditions and the following disclaimer in the documentation and/or other materials
16
+ provided with the distribution.
17
+
18
+ 3. Neither the name of the copyright holder nor the names of its contributors may be used
19
+ to endorse or promote products derived from this software without specific prior written
20
+ permission.
21
+
22
+ DISCLAIMER
23
+
24
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
28
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
33
+ IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34
+ SUCH DAMAGE.
Binary file
@@ -0,0 +1,152 @@
1
+ Metadata-Version: 2.4
2
+ Name: NXRefine
3
+ Version: 0.1.1
4
+ Summary: Data reduction for single crystal x-ray scattering
5
+ Author-email: Raymond Osborn <rayosborn@mac.com>
6
+ License: Copyright © 2022, UChicago Argonne, LLC
7
+ All Rights Reserved
8
+ Software Name: NXRefine
9
+ By: Argonne National Laboratory
10
+
11
+ OPEN SOURCE LICENSE
12
+
13
+ Redistribution and use in source and binary forms, with or without modification, are
14
+ permitted provided that the following conditions are met:
15
+
16
+ 1. Redistributions of source code must retain the above copyright notice, this list of
17
+ conditions and the following disclaimer.
18
+
19
+ 2. Redistributions in binary form must reproduce the above copyright notice, this list of
20
+ conditions and the following disclaimer in the documentation and/or other materials
21
+ provided with the distribution.
22
+
23
+ 3. Neither the name of the copyright holder nor the names of its contributors may be used
24
+ to endorse or promote products derived from this software without specific prior written
25
+ permission.
26
+
27
+ DISCLAIMER
28
+
29
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
30
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
31
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
32
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
33
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
34
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
35
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
36
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
37
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
38
+ IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
39
+ SUCH DAMAGE.
40
+
41
+ Project-URL: Homepage, https://nexpy.github.io/nxrefine
42
+ Project-URL: Repository, https://github.com/nexpy/nxrefine.git
43
+ Project-URL: Issues, https://github.com/nexpy/nxrefine/issues
44
+ Project-URL: Documentation, https://nexpy.github.io/nxrefine
45
+ Project-URL: Changelog, https://github.com/nexpy/nxrefine/releases
46
+ Keywords: x-ray scattering,data analysis,visualization
47
+ Classifier: Development Status :: 4 - Beta
48
+ Classifier: License :: OSI Approved :: BSD License
49
+ Classifier: Intended Audience :: Developers
50
+ Classifier: Intended Audience :: Science/Research
51
+ Classifier: Topic :: Scientific/Engineering
52
+ Classifier: Topic :: Scientific/Engineering :: Physics
53
+ Classifier: Programming Language :: Python :: 3
54
+ Classifier: Programming Language :: Python :: 3.10
55
+ Classifier: Programming Language :: Python :: 3.11
56
+ Classifier: Programming Language :: Python :: 3.12
57
+ Classifier: Programming Language :: Python :: 3.13
58
+ Classifier: Programming Language :: Python :: 3.14
59
+ Requires-Python: >=3.10
60
+ Description-Content-Type: text/markdown
61
+ License-File: LICENSE
62
+ License-File: LICENSE.pdf
63
+ Requires-Dist: nexpy>=2.0.0
64
+ Requires-Dist: gemmi
65
+ Requires-Dist: pyfai
66
+ Requires-Dist: julia
67
+ Requires-Dist: persist-queue
68
+ Requires-Dist: sqlalchemy
69
+ Requires-Dist: matplotlib
70
+ Requires-Dist: psutil
71
+ Requires-Dist: scikit-image
72
+ Requires-Dist: xtec
73
+ Provides-Extra: gpu
74
+ Requires-Dist: pyopencl; extra == "gpu"
75
+ Dynamic: license-file
76
+
77
+ Introduction
78
+ ============
79
+ NXRefine implements a complete workflow for both data acquisition and
80
+ reduction of single crystal diffuse x-ray scattering collected as a
81
+ series of area detector frames during continuous sample rotation. The
82
+ data are stored in HDF5 files, which conform to the NeXus data format
83
+ standard. These files contain a comprehensive set of metadata, including
84
+ the incident wavelength, powder calibration scans used to define
85
+ detector distances, beam centers, and yaw, pitch, and roll corrections.
86
+ Automated peak searches of the three-dimensional data arrays define
87
+ a set of Bragg peaks that are used to define an orientation matrix,
88
+ defined according to Busing and Levy, which is then used to transform
89
+ the data from angular coordinates to reciprocal space coordinates using
90
+ the CCTW program. Multiple rotations at different detector translations
91
+ and offset rotation axes are combined to ensure that there are no gaps
92
+ in the reconstructed data, and allow the construction of masks to
93
+ eliminate detector artifacts due to Compton scattering within the
94
+ sensor layers. Finally, the data can be transformed into 3D-ΔPDF maps
95
+ using the punch-and-fill method after symmetrization.
96
+
97
+ The workflow is implemented as plugins to the
98
+ [NeXpy package](http://nexpy.github.io/nexpy) that are used to set up
99
+ the basic experimental configuration and sample parameters, and
100
+ determine the orientation matrix. The remaining components of the
101
+ workflow can be run as command-line scripts, or submitted to a queue
102
+ for distribution to multiple nodes or processes for simultaneous
103
+ reduction of multiple datasets.
104
+
105
+ Instructions for running NXRefine are under development.
106
+
107
+ The NXRefine package is being developed as part of a DOE-funded project
108
+ to utilize advanced computational methods for the analysis of
109
+ single-crystal x-ray scattering from synchrotron sources, such as
110
+ multidimensional spectral analysis and machine learning. Further details
111
+ of this project are available on the
112
+ [AXMAS web pages](https://cels.anl.gov/axmas).
113
+
114
+ Installing and Running
115
+ ======================
116
+ The source code can be downloaded from the NeXpy Git repository:
117
+
118
+ ```
119
+ $ git clone https://github.com/nexpy/nxrefine.git
120
+ ```
121
+
122
+ To install in the standard Python location:
123
+
124
+ ```
125
+ $ pip install .
126
+ ```
127
+ Prerequisites
128
+ =============
129
+ Python Packages
130
+ ---------------
131
+ The following packages are listed as dependencies.
132
+
133
+ * [nexpy](https://github.com/nexpy/nexpy/)
134
+ * [gemmi](https://project-gemmi.github.io/)
135
+ * [pyfai](https://pyfai.readthedocs.io/)
136
+ * [sqlalchemy](https://docs.sqlalchemy.org/)
137
+ * [psutil](https://psutil.readthedocs.io/)
138
+
139
+ CCTW
140
+ ----
141
+ [CCTW](https://sourceforge.net/projects/cctw/) (Crystal Coordination
142
+ Transformation Workflow) is a C++ package written by Guy Jennings. It
143
+ is launched as a separate process by NXRefine, which uses the
144
+ experimental metadata to define the settings file used to define the
145
+ input and output grids. It has to be separately installed.
146
+
147
+ User Support
148
+ ============
149
+ If you are interested in using this package, please contact Ray Osborn
150
+ (ROsborn@anl.gov). Please report any bugs as a
151
+ [Github issue](https://github.com/nexpy/nxrefine/issues), with relevant
152
+ tracebacks.
@@ -0,0 +1,76 @@
1
+ Introduction
2
+ ============
3
+ NXRefine implements a complete workflow for both data acquisition and
4
+ reduction of single crystal diffuse x-ray scattering collected as a
5
+ series of area detector frames during continuous sample rotation. The
6
+ data are stored in HDF5 files, which conform to the NeXus data format
7
+ standard. These files contain a comprehensive set of metadata, including
8
+ the incident wavelength, powder calibration scans used to define
9
+ detector distances, beam centers, and yaw, pitch, and roll corrections.
10
+ Automated peak searches of the three-dimensional data arrays define
11
+ a set of Bragg peaks that are used to define an orientation matrix,
12
+ defined according to Busing and Levy, which is then used to transform
13
+ the data from angular coordinates to reciprocal space coordinates using
14
+ the CCTW program. Multiple rotations at different detector translations
15
+ and offset rotation axes are combined to ensure that there are no gaps
16
+ in the reconstructed data, and allow the construction of masks to
17
+ eliminate detector artifacts due to Compton scattering within the
18
+ sensor layers. Finally, the data can be transformed into 3D-ΔPDF maps
19
+ using the punch-and-fill method after symmetrization.
20
+
21
+ The workflow is implemented as plugins to the
22
+ [NeXpy package](http://nexpy.github.io/nexpy) that are used to set up
23
+ the basic experimental configuration and sample parameters, and
24
+ determine the orientation matrix. The remaining components of the
25
+ workflow can be run as command-line scripts, or submitted to a queue
26
+ for distribution to multiple nodes or processes for simultaneous
27
+ reduction of multiple datasets.
28
+
29
+ Instructions for running NXRefine are under development.
30
+
31
+ The NXRefine package is being developed as part of a DOE-funded project
32
+ to utilize advanced computational methods for the analysis of
33
+ single-crystal x-ray scattering from synchrotron sources, such as
34
+ multidimensional spectral analysis and machine learning. Further details
35
+ of this project are available on the
36
+ [AXMAS web pages](https://cels.anl.gov/axmas).
37
+
38
+ Installing and Running
39
+ ======================
40
+ The source code can be downloaded from the NeXpy Git repository:
41
+
42
+ ```
43
+ $ git clone https://github.com/nexpy/nxrefine.git
44
+ ```
45
+
46
+ To install in the standard Python location:
47
+
48
+ ```
49
+ $ pip install .
50
+ ```
51
+ Prerequisites
52
+ =============
53
+ Python Packages
54
+ ---------------
55
+ The following packages are listed as dependencies.
56
+
57
+ * [nexpy](https://github.com/nexpy/nexpy/)
58
+ * [gemmi](https://project-gemmi.github.io/)
59
+ * [pyfai](https://pyfai.readthedocs.io/)
60
+ * [sqlalchemy](https://docs.sqlalchemy.org/)
61
+ * [psutil](https://psutil.readthedocs.io/)
62
+
63
+ CCTW
64
+ ----
65
+ [CCTW](https://sourceforge.net/projects/cctw/) (Crystal Coordination
66
+ Transformation Workflow) is a C++ package written by Guy Jennings. It
67
+ is launched as a separate process by NXRefine, which uses the
68
+ experimental metadata to define the settings file used to define the
69
+ input and output grids. It has to be separately installed.
70
+
71
+ User Support
72
+ ============
73
+ If you are interested in using this package, please contact Ray Osborn
74
+ (ROsborn@anl.gov). Please report any bugs as a
75
+ [Github issue](https://github.com/nexpy/nxrefine/issues), with relevant
76
+ tracebacks.
@@ -0,0 +1,2 @@
1
+ "%PYTHON%" setup.py install
2
+ if errorlevel 1 exit 1
@@ -0,0 +1,3 @@
1
+ #!/bin/bash
2
+
3
+ $PYTHON setup.py install --single-version-externally-managed --record installed_files.txt
@@ -0,0 +1,47 @@
1
+ package:
2
+ name: nxrefine
3
+ version: "0.1.0"
4
+
5
+ source:
6
+ git_url: https://github.com/rayosborn/nxrefine.git
7
+ git_tag: v0.1.0
8
+
9
+ build:
10
+ entry_points:
11
+ - nxsetup=nxrefine.scripts.nxsetup:main
12
+ - nxcopy=nxrefine.scripts.nxcopy:main
13
+ - nxlink=nxrefine.scripts.nxlink:main
14
+ - nxfind=nxrefine.scripts.nxfind:main
15
+ - nxmake=nxrefine.scripts.nxmake:main
16
+ - nxmask=nxrefine.scripts.nxmask:main
17
+ - nxmax=nxrefine.scripts.nxmax:main
18
+ - nxorient=nxrefine.scripts.nxorient:main
19
+ - nxwork=nxrefine.scripts.nxwork:main
20
+ - nxrun=nxrefine.scripts.nxrun:main
21
+ - nxscan=nxrefine.scripts.nxscan:main
22
+ - nxcombine=nxrefine.scripts.nxcombine:main
23
+ - nxtransform=nxrefine.scripts.nxtransform:main
24
+ number: 0
25
+
26
+ requirements:
27
+ build:
28
+ - python
29
+ - setuptools
30
+ - numpy >=1.6.0
31
+
32
+ run:
33
+ - python
34
+ - numpy >=1.6.0
35
+ - sqlalchemy
36
+ - psutil
37
+ - pyfai
38
+
39
+ test:
40
+ imports:
41
+ - nexusformat
42
+ - nexusformat.nexus
43
+
44
+ about:
45
+ home: http://nexpy.github.io/nexpy/
46
+ license: BSD License
47
+ summary: 'NXrefine: Python API to refine single crystal x-ray scattering'
@@ -0,0 +1 @@
1
+
@@ -0,0 +1,20 @@
1
+ # Minimal makefile for Sphinx documentation
2
+ #
3
+
4
+ # You can set these variables from the command line, and also
5
+ # from the environment for the first two.
6
+ SPHINXOPTS ?=
7
+ SPHINXBUILD ?= sphinx-build
8
+ SOURCEDIR = source
9
+ BUILDDIR = build
10
+
11
+ # Put it first so that "make" without argument is like "make help".
12
+ help:
13
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
+
15
+ .PHONY: help Makefile
16
+
17
+ # Catch-all target: route all unknown targets to Sphinx using the new
18
+ # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19
+ %: Makefile
20
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@@ -0,0 +1,35 @@
1
+ @ECHO OFF
2
+
3
+ pushd %~dp0
4
+
5
+ REM Command file for Sphinx documentation
6
+
7
+ if "%SPHINXBUILD%" == "" (
8
+ set SPHINXBUILD=sphinx-build
9
+ )
10
+ set SOURCEDIR=source
11
+ set BUILDDIR=build
12
+
13
+ %SPHINXBUILD% >NUL 2>NUL
14
+ if errorlevel 9009 (
15
+ echo.
16
+ echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
17
+ echo.installed, then set the SPHINXBUILD environment variable to point
18
+ echo.to the full path of the 'sphinx-build' executable. Alternatively you
19
+ echo.may add the Sphinx directory to PATH.
20
+ echo.
21
+ echo.If you don't have Sphinx installed, grab it from
22
+ echo.https://www.sphinx-doc.org/
23
+ exit /b 1
24
+ )
25
+
26
+ if "%1" == "" goto help
27
+
28
+ %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
29
+ goto end
30
+
31
+ :help
32
+ %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
33
+
34
+ :end
35
+ popd
@@ -0,0 +1 @@
1
+ furo==2021.11.16
@@ -0,0 +1,34 @@
1
+ # Configuration file for the Sphinx documentation builder.
2
+ #
3
+ # For the full list of built-in configuration values, see the documentation:
4
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html
5
+
6
+ import os
7
+ import sys
8
+
9
+ sys.path.insert(0, os.path.abspath('../../src/'))
10
+
11
+ # -- Project information -----------------------------------------------------
12
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
13
+
14
+ project = 'NXRefine'
15
+ copyright = '2023, Ray Osborn'
16
+ author = 'Ray Osborn'
17
+ release = '0.1.0'
18
+
19
+ # -- General configuration ---------------------------------------------------
20
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
21
+
22
+ extensions = []
23
+
24
+ templates_path = ['_templates']
25
+ exclude_patterns = []
26
+
27
+
28
+
29
+ # -- Options for HTML output -------------------------------------------------
30
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
31
+
32
+ html_theme = 'sphinxdoc'
33
+ html_favicon = 'favicon.ico'
34
+ html_static_path = ['_static']
Binary file
@@ -0,0 +1,25 @@
1
+ .. NXRefine documentation master file, created by
2
+ sphinx-quickstart on Wed Oct 11 14:36:33 2023.
3
+ You can adapt this file completely to your liking, but it should at least
4
+ contain the root `toctree` directive.
5
+
6
+ NXRefine
7
+ ========
8
+ NXRefine implements a complete workflow for both data acquisition and
9
+ reduction of single crystal diffuse x-ray scattering collected as a
10
+ series of area detector frames during continuous sample rotation. The
11
+ data are stored in HDF5 files, which conform to the NeXus data format
12
+ standard.
13
+
14
+ .. toctree::
15
+ :maxdepth: 2
16
+ :caption: Contents:
17
+
18
+
19
+
20
+ Indices and tables
21
+ ==================
22
+
23
+ * :ref:`genindex`
24
+ * :ref:`modindex`
25
+ * :ref:`search`
@@ -0,0 +1,87 @@
1
+ [build-system]
2
+ requires = ["setuptools >= 64", "setuptools_scm >= 8"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "NXRefine"
7
+ dynamic = ["version"]
8
+ description = "Data reduction for single crystal x-ray scattering"
9
+ readme = "README.md"
10
+ license = {file = "LICENSE"}
11
+ authors = [{name = "Raymond Osborn", email = "rayosborn@mac.com"}]
12
+ classifiers = [
13
+ "Development Status :: 4 - Beta",
14
+ "License :: OSI Approved :: BSD License",
15
+ "Intended Audience :: Developers",
16
+ "Intended Audience :: Science/Research",
17
+ "Topic :: Scientific/Engineering",
18
+ "Topic :: Scientific/Engineering :: Physics",
19
+ "Programming Language :: Python :: 3",
20
+ "Programming Language :: Python :: 3.10",
21
+ "Programming Language :: Python :: 3.11",
22
+ "Programming Language :: Python :: 3.12",
23
+ "Programming Language :: Python :: 3.13",
24
+ "Programming Language :: Python :: 3.14",
25
+ ]
26
+
27
+ keywords = [
28
+ "x-ray scattering",
29
+ "data analysis",
30
+ "visualization",
31
+ ]
32
+
33
+ requires-python = ">=3.10"
34
+ dependencies = [
35
+ "nexpy >= 2.0.0",
36
+ "gemmi",
37
+ "pyfai",
38
+ "julia",
39
+ "persist-queue",
40
+ "sqlalchemy",
41
+ "matplotlib",
42
+ "psutil",
43
+ "scikit-image",
44
+ "xtec",
45
+ ]
46
+
47
+ [project.optional-dependencies]
48
+ gpu = [
49
+ "pyopencl",
50
+ ]
51
+
52
+ [project.urls]
53
+ Homepage = "https://nexpy.github.io/nxrefine"
54
+ Repository = "https://github.com/nexpy/nxrefine.git"
55
+ Issues = "https://github.com/nexpy/nxrefine/issues"
56
+ Documentation = "https://nexpy.github.io/nxrefine"
57
+ Changelog = "https://github.com/nexpy/nxrefine/releases"
58
+
59
+ [project.scripts]
60
+ nxchoose = "nxrefine.scripts.nxchoose:main"
61
+ nxcombine = "nxrefine.scripts.nxcombine:main"
62
+ nxcopy = "nxrefine.scripts.nxcopy:main"
63
+ nxdatabase = "nxrefine.scripts.nxdatabase:main"
64
+ nxfind = "nxrefine.scripts.nxfind:main"
65
+ nxlink = "nxrefine.scripts.nxlink:main"
66
+ nxload = "nxrefine.scripts.nxload:main"
67
+ nxmax = "nxrefine.scripts.nxmax:main"
68
+ nxparent = "nxrefine.scripts.nxparent:main"
69
+ nxpdf = "nxrefine.scripts.nxpdf:main"
70
+ nxprepare = "nxrefine.scripts.nxprepare:main"
71
+ nxreduce = "nxrefine.scripts.nxreduce:main"
72
+ nxrefine = "nxrefine.scripts.nxrefine:main"
73
+ nxserver = "nxrefine.scripts.nxserver:main"
74
+ nxsettings = "nxrefine.scripts.nxsettings:main"
75
+ nxsum = "nxrefine.scripts.nxsum:main"
76
+ nxtransform = "nxrefine.scripts.nxtransform:main"
77
+
78
+ [project.entry-points."nexpy.plugins"]
79
+ experiment = "nxrefine.plugins.experiment:plugin_menu"
80
+ refine = "nxrefine.plugins.refine:plugin_menu"
81
+ server = "nxrefine.plugins.server:plugin_menu"
82
+
83
+ [tool.setuptools_scm]
84
+ version_file = "src/nxrefine/_version.py"
85
+
86
+ [tool.setuptools.package-data]
87
+ "nxrefine.julia" = ["*.jl"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+