{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.uOo4rS1n/b1/pyfai_0.21.3+dfsg1-4_arm64.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.uOo4rS1n/b2/pyfai_0.21.3+dfsg1-4_arm64.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,5 +1,5 @@\n \n- bb985984967b36b51fe13324ab360a37 14636 science optional pyfai_0.21.3+dfsg1-4_all.deb\n- 0ce78fc7930729b3c27b1085dddf1362 72886312 doc optional python-pyfai-doc_0.21.3+dfsg1-4_all.deb\n+ 1858460ff62550a324b10ae4350a3a65 14640 science optional pyfai_0.21.3+dfsg1-4_all.deb\n+ 9fa527db51a4e096e41a712c6d9704ec 72886368 doc optional python-pyfai-doc_0.21.3+dfsg1-4_all.deb\n 361252eb183eebc86651d556dfd76c73 12897536 debug optional python3-pyfai-dbgsym_0.21.3+dfsg1-4_arm64.deb\n 5ed16f436e7339740bea5f01b68f841f 2120072 python optional python3-pyfai_0.21.3+dfsg1-4_arm64.deb\n"}, {"source1": "pyfai_0.21.3+dfsg1-4_all.deb", "source2": "pyfai_0.21.3+dfsg1-4_all.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2023-02-22 12:27:09.000000 debian-binary\n--rw-r--r-- 0 0 0 1760 2023-02-22 12:27:09.000000 control.tar.xz\n+-rw-r--r-- 0 0 0 1764 2023-02-22 12:27:09.000000 control.tar.xz\n -rw-r--r-- 0 0 0 12684 2023-02-22 12:27:09.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -25,12 +25,12 @@\n -rw-r--r-- 0 root (0) root (0) 1913 2023-02-22 12:27:09.000000 ./usr/share/doc/pyfai/changelog.Debian.gz\n -rw-r--r-- 0 root (0) root (0) 55 2022-03-24 14:24:27.000000 ./usr/share/doc/pyfai/changelog.gz\n -rw-r--r-- 0 root (0) root (0) 3790 2023-02-19 12:38:42.000000 ./usr/share/doc/pyfai/copyright\n drwxr-xr-x 0 root (0) root (0) 0 2023-02-22 12:27:09.000000 ./usr/share/man/\n drwxr-xr-x 0 root (0) root (0) 0 2023-02-22 12:27:09.000000 ./usr/share/man/man1/\n -rw-r--r-- 0 root (0) root (0) 1708 2023-02-22 12:27:09.000000 ./usr/share/man/man1/MX-calibrate.1.gz\n -rw-r--r-- 0 root (0) root (0) 797 2023-02-22 12:27:09.000000 ./usr/share/man/man1/check_calib.1.gz\n--rw-r--r-- 0 root (0) root (0) 839 2023-02-22 12:27:09.000000 ./usr/share/man/man1/detector2nexus.1.gz\n+-rw-r--r-- 0 root (0) root (0) 838 2023-02-22 12:27:09.000000 ./usr/share/man/man1/detector2nexus.1.gz\n -rw-r--r-- 0 root (0) root (0) 1350 2023-02-22 12:27:09.000000 ./usr/share/man/man1/diff_map.1.gz\n -rw-r--r-- 0 root (0) root (0) 1211 2023-02-22 12:27:09.000000 ./usr/share/man/man1/diff_tomo.1.gz\n -rw-r--r-- 0 root (0) root (0) 411 2023-02-22 12:27:09.000000 ./usr/share/man/man1/eiger-mask.1.gz\n -rw-r--r-- 0 root (0) root (0) 1148 2023-02-22 12:27:09.000000 ./usr/share/man/man1/pyFAI-average.1.gz\n"}, {"source1": "./usr/share/man/man1/detector2nexus.1.gz", "source2": "./usr/share/man/man1/detector2nexus.1.gz", "unified_diff": null, "details": [{"source1": "detector2nexus.1", "source2": "detector2nexus.1", "unified_diff": "@@ -1,13 +1,13 @@\n .\\\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.\n .TH DETECTOR2NEXUS', \"1\" \"February 2023\" \"detector2nexus', '--version']\" \"User Commands\"\n .SH NAME\n detector2nexus', \\- Converts a detector description into a NeXus detector usable by other pyFAI utilities\n .SH DESCRIPTION\n-['/tmp/tmp1m2p1gh6/detector2nexus', '\\-\\-help']\n+['/tmp/tmpljfx7qsf/detector2nexus', '\\-\\-help']\n usage: detector2nexus [options] [options] \\fB\\-o\\fR nxs.h5\n .PP\n Convert a complex detector definition (multiple modules, possibly in 3D) into\n a single NeXus detector definition together with the mask (and much more in\n the future)\n .SS \"options:\"\n .TP\n"}]}]}]}]}, {"source1": "python-pyfai-doc_0.21.3+dfsg1-4_all.deb", "source2": "python-pyfai-doc_0.21.3+dfsg1-4_all.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2023-02-22 12:27:09.000000 debian-binary\n -rw-r--r-- 0 0 0 11668 2023-02-22 12:27:09.000000 control.tar.xz\n--rw-r--r-- 0 0 0 72874452 2023-02-22 12:27:09.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 72874508 2023-02-22 12:27:09.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -487,15 +487,15 @@\n drwxr-xr-x 0 root (0) root (0) 0 2023-02-22 12:27:09.000000 ./usr/share/doc/python-pyfai-doc/html/usage/tutorial/Recalib/\n -rw-r--r-- 0 root (0) root (0) 33350 2023-02-22 12:27:09.000000 ./usr/share/doc/python-pyfai-doc/html/usage/tutorial/Recalib/Recalib_notebook.html\n -rw-r--r-- 0 root (0) root (0) 180122 2023-02-22 12:27:09.000000 ./usr/share/doc/python-pyfai-doc/html/usage/tutorial/Recalib/Recalib_notebook.ipynb.gz\n drwxr-xr-x 0 root (0) root (0) 0 2023-02-22 12:27:09.000000 ./usr/share/doc/python-pyfai-doc/html/usage/tutorial/Separation/\n -rw-r--r-- 0 root (0) root (0) 1051131 2023-02-22 12:27:09.000000 ./usr/share/doc/python-pyfai-doc/html/usage/tutorial/Separation/Peakfinder8.html\n -rw-r--r-- 0 root (0) root (0) 661745 2023-02-22 12:27:09.000000 ./usr/share/doc/python-pyfai-doc/html/usage/tutorial/Separation/Peakfinder8.ipynb.gz\n -rw-r--r-- 0 root (0) root (0) 2709561 2023-02-22 12:27:09.000000 ./usr/share/doc/python-pyfai-doc/html/usage/tutorial/Separation/Separate.html\n--rw-r--r-- 0 root (0) root (0) 1826039 2023-02-22 12:27:09.000000 ./usr/share/doc/python-pyfai-doc/html/usage/tutorial/Separation/Separate.ipynb.gz\n+-rw-r--r-- 0 root (0) root (0) 1826034 2023-02-22 12:27:09.000000 ./usr/share/doc/python-pyfai-doc/html/usage/tutorial/Separation/Separate.ipynb.gz\n -rw-r--r-- 0 root (0) root (0) 384517 2023-02-22 12:27:09.000000 ./usr/share/doc/python-pyfai-doc/html/usage/tutorial/Separation/Wilson.html\n -rw-r--r-- 0 root (0) root (0) 191825 2023-02-22 12:27:09.000000 ./usr/share/doc/python-pyfai-doc/html/usage/tutorial/Separation/Wilson.ipynb.gz\n -rw-r--r-- 0 root (0) root (0) 10492 2023-02-22 12:27:09.000000 ./usr/share/doc/python-pyfai-doc/html/usage/tutorial/Separation/index.html\n drwxr-xr-x 0 root (0) root (0) 0 2023-02-22 12:27:09.000000 ./usr/share/doc/python-pyfai-doc/html/usage/tutorial/Soleil/\n -rw-r--r-- 0 root (0) root (0) 1983727 2023-02-22 12:27:09.000000 ./usr/share/doc/python-pyfai-doc/html/usage/tutorial/Soleil/Cristal_Mythen.html\n -rw-r--r-- 0 root (0) root (0) 925887 2023-02-22 12:27:09.000000 ./usr/share/doc/python-pyfai-doc/html/usage/tutorial/Soleil/Cristal_Mythen.ipynb.gz\n -rw-r--r-- 0 root (0) root (0) 26809 2023-02-22 12:27:09.000000 ./usr/share/doc/python-pyfai-doc/html/usage/tutorial/Soleil/Soleil_Diffabs_Calibration_K6C.html\n"}, {"source1": "./usr/share/doc/python-pyfai-doc/html/usage/tutorial/Separation/Separate.ipynb.gz", "source2": "./usr/share/doc/python-pyfai-doc/html/usage/tutorial/Separation/Separate.ipynb.gz", "unified_diff": null, "details": [{"source1": "Separate.ipynb", "source2": "Separate.ipynb", "unified_diff": null, "details": [{"source1": "Pretty-printed", "source2": "Pretty-printed", "comments": ["Similarity: 0.9879166666666667%", "Differences: {\"'cells'\": \"{0: {'id': '6217c207'}, 1: {'id': '1b2855da'}, 2: {'id': 'f4f42aa1'}, 3: {'id': \"", " \"'0aa0b537'}, 4: {'id': 'a510d05c'}, 5: {'id': 'a0bf2205'}, 6: {'id': '40735719'}, 7: \"", " \"{'id': 'bed5456a'}, 8: {'id': '77f7c3a9'}, 9: {'id': '9b57d1f5'}, 10: {'id': \"", " \"'feaffc02'}, 11: {'id': '2ed2d718'}, 12: {'id': 'c8de049d'}, 13: {'id': 'bc2f3c14'}, \"", " \"14: {'id': '0ecb5ec8'}, 15: {'id': '0a24c9f6'}, 16: {'id': 'a2a184e6'}, 17: {'id': \"", " \"'c15a6a22'}, 1 [\u2026]"], "unified_diff": "@@ -1,32 +1,32 @@\n {\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n- \"id\": \"7f472646\",\n+ \"id\": \"6217c207\",\n \"metadata\": {},\n \"source\": [\n \"# Signal separation between amorphous and crystalline phases\\n\",\n \"\\n\"\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n- \"id\": \"ab6b6ea2\",\n+ \"id\": \"1b2855da\",\n \"metadata\": {},\n \"outputs\": [],\n \"source\": [\n \"%matplotlib nbagg\"\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 2,\n- \"id\": \"c66109f8\",\n+ \"id\": \"f4f42aa1\",\n \"metadata\": {},\n \"outputs\": [\n {\n \"name\": \"stdout\",\n \"output_type\": \"stream\",\n \"text\": [\n \"Using pyFAI version 0.21.0-dev0\\n\"\n@@ -54,15 +54,15 @@\n \"print(f\\\"Using pyFAI version {pyFAI.version}\\\")\\n\",\n \"#print(fabio.open(image_file).header[\\\"_array_data.header_contents\\\"])\"\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 3,\n- \"id\": \"6384b153\",\n+ \"id\": \"0aa0b537\",\n \"metadata\": {},\n \"outputs\": [\n {\n \"data\": {\n \"text/plain\": [\n \"Detector Pilatus 6M\\t PixelSize= 1.720e-04, 1.720e-04 m\\n\",\n \"Wavelength= 1.033200e-10m\\n\",\n@@ -84,15 +84,15 @@\n \"ai.detector = pyFAI.detector_factory(\\\"Pilatus6M\\\")\\n\",\n \"ai\"\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 4,\n- \"id\": \"04a706c4\",\n+ \"id\": \"a510d05c\",\n \"metadata\": {},\n \"outputs\": [\n {\n \"data\": {\n \"application/javascript\": [\n \"/* Put everything inside the global mpl namespace */\\n\",\n \"/* global mpl */\\n\",\n@@ -1069,24 +1069,24 @@\n \"fig,ax = subplots(figsize=(9,9))\\n\",\n \"jupyter.display(img, ax=ax)\\n\",\n \"pass\"\n ]\n },\n {\n \"cell_type\": \"markdown\",\n- \"id\": \"4ff93e6f\",\n+ \"id\": \"a0bf2205\",\n \"metadata\": {},\n \"source\": [\n \"## 0. 1D and 2D integration\"\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 5,\n- \"id\": \"d574a975\",\n+ \"id\": \"40735719\",\n \"metadata\": {},\n \"outputs\": [\n {\n \"data\": {\n \"application/javascript\": [\n \"/* Put everything inside the global mpl namespace */\\n\",\n \"/* global mpl */\\n\",\n@@ -2078,30 +2078,30 @@\n \"jupyter.plot2d(int2, ax=ax[1])\\n\",\n \"ax[0].set_xlim(int2.radial.min(), int2.radial.max())\\n\",\n \"pass\"\n ]\n },\n {\n \"cell_type\": \"markdown\",\n- \"id\": \"4a5ede90\",\n+ \"id\": \"bed5456a\",\n \"metadata\": {},\n \"source\": [\n \"## 1. Separation based on 2D integration\\n\",\n \"\\n\",\n \"Two methods are readily available in pyFAI, they perform filtering the 2D regrouped image along a vertical axis:\\n\",\n \"* median filtering: simple median along azimuthal angle\\n\",\n \"* sigma clipping: iterative removal of all pixels above n standard deviation\\n\",\n \"\\n\",\n \"The drawback is in the 2D integration: costly in time and smears pixel together.\"\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 6,\n- \"id\": \"73d8efe7\",\n+ \"id\": \"77f7c3a9\",\n \"metadata\": {},\n \"outputs\": [\n {\n \"data\": {\n \"application/javascript\": [\n \"/* Put everything inside the global mpl namespace */\\n\",\n \"/* global mpl */\\n\",\n@@ -3108,29 +3108,29 @@\n \"ax.plot(sc2.radial, sc2.intensity, label=\\\"sigma-clip (legacy)\\\")\\n\",\n \"ax.legend()\\n\",\n \"pass\"\n ]\n },\n {\n \"cell_type\": \"markdown\",\n- \"id\": \"97859c29\",\n+ \"id\": \"9b57d1f5\",\n \"metadata\": {},\n \"source\": [\n \"## 2. Separation based on 1D integration:\\n\",\n \"\\n\",\n \"1D CSR integrator contain all the information to perform the sigma-clipping. This has been implemented in OpenCL and can be performed up to thousands of times per second.\\n\",\n \"\\n\",\n \"* Available using OpenCL (no cython yet)\\n\",\n \"* Presentation of how it can be implemented is explained later in the demonstration\"\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 7,\n- \"id\": \"0e3eb872\",\n+ \"id\": \"feaffc02\",\n \"metadata\": {},\n \"outputs\": [\n {\n \"data\": {\n \"application/javascript\": [\n \"/* Put everything inside the global mpl namespace */\\n\",\n \"/* global mpl */\\n\",\n@@ -4131,26 +4131,26 @@\n \"ax.plot(sc100.radial, sc100.intensity, label=\\\"sigma-clip 100pts\\\")\\n\",\n \"ax.legend()\\n\",\n \"pass\"\n ]\n },\n {\n \"cell_type\": \"markdown\",\n- \"id\": \"e07e6592\",\n+ \"id\": \"2ed2d718\",\n \"metadata\": {},\n \"source\": [\n \"## 3. Rebuild the isotropic and anisotropic contribution\\n\",\n \"\\n\",\n \"Isotropic images are simply obtained from bilinear interpolation from 1D curves.\"\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 8,\n- \"id\": \"88d5bca6\",\n+ \"id\": \"c8de049d\",\n \"metadata\": {},\n \"outputs\": [\n {\n \"data\": {\n \"application/javascript\": [\n \"/* Put everything inside the global mpl namespace */\\n\",\n \"/* global mpl */\\n\",\n@@ -5129,15 +5129,15 @@\n \"jupyter.display(isotropic, label=\\\"Anisotropic contribution\\\")\\n\",\n \"pass\"\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 9,\n- \"id\": \"f338ab26\",\n+ \"id\": \"bc2f3c14\",\n \"metadata\": {},\n \"outputs\": [\n {\n \"data\": {\n \"application/javascript\": [\n \"/* Put everything inside the global mpl namespace */\\n\",\n \"/* global mpl */\\n\",\n@@ -6115,15 +6115,15 @@\n \"jupyter.display(aniso, label=\\\"Anisotropic contribution\\\")\\n\",\n \"pass\"\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 10,\n- \"id\": \"ea1e5524\",\n+ \"id\": \"0ecb5ec8\",\n \"metadata\": {},\n \"outputs\": [\n {\n \"data\": {\n \"application/javascript\": [\n \"/* Put everything inside the global mpl namespace */\\n\",\n \"/* global mpl */\\n\",\n@@ -7104,26 +7104,26 @@\n \"jupyter.display(bragg, label=\\\"Bragg\\\", ax=ax[0])\\n\",\n \"jupyter.display(amorphous, label=\\\"Amorphous\\\", ax=ax[1])\\n\",\n \"pass\"\n ]\n },\n {\n \"cell_type\": \"markdown\",\n- \"id\": \"72e9e078\",\n+ \"id\": \"0a24c9f6\",\n \"metadata\": {},\n \"source\": [\n \"## 4. Implementation of sigma-clipping using pure 1D integrators.\\n\",\n \"\\n\",\n \"This is a workaround until it is implemented in pyFAI. The procedure mimics what is running in OpenCL.\"\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 11,\n- \"id\": \"5908fac6\",\n+ \"id\": \"a2a184e6\",\n \"metadata\": {},\n \"outputs\": [],\n \"source\": [\n \"def sigma_clip_ng(ai, img, npt, method, unit=\\\"q_nm^-1\\\", error_model=None, thres=5, max_iter=5):\\n\",\n \" img = img.astype(numpy.float32) #also explicit copy\\n\",\n \" if error_model!=\\\"poisson\\\":\\n\",\n \" raise RuntimeError(\\\"Only Poissonian detector are supported for now\\\")\\n\",\n@@ -7137,15 +7137,15 @@\n \" img[discard] = numpy.NaN\\n\",\n \" return res1d\"\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 12,\n- \"id\": \"43b61566\",\n+ \"id\": \"c15a6a22\",\n \"metadata\": {},\n \"outputs\": [\n {\n \"data\": {\n \"application/javascript\": [\n \"/* Put everything inside the global mpl namespace */\\n\",\n \"/* global mpl */\\n\",\n@@ -8147,15 +8147,15 @@\n \"ax.plot(sc100.radial, sc100.intensity, label=\\\"sigma-clip 100pts\\\")\\n\",\n \"ax.legend()\\n\",\n \"pass\"\n ]\n },\n {\n \"cell_type\": \"markdown\",\n- \"id\": \"63ad375e\",\n+ \"id\": \"ce58e3b5\",\n \"metadata\": {},\n \"source\": [\n \"## 5. Towards lossy compression of single crystal diffraction data\\n\",\n \"\\n\",\n \"For now only available as OpenCL code. \\n\",\n \"\\n\",\n \"Also available as command line tool, see `man sparsify-Bragg`:\\n\",\n@@ -8164,15 +8164,15 @@\n \"* 2000 pixels with signal above the background\\n\",\n \"* 100 radial bins with intensity and associated deviation\"\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 13,\n- \"id\": \"c5dc0fcc\",\n+ \"id\": \"995aae3e\",\n \"metadata\": {},\n \"outputs\": [\n {\n \"name\": \"stdout\",\n \"output_type\": \"stream\",\n \"text\": [\n \"IntegrationMethod(1d int, no split, CSR, cython)\\n\",\n@@ -8198,15 +8198,15 @@\n \"%time sep = peak_finder(img, error_model=\\\"poisson\\\")\\n\",\n \"print(f\\\"Number of Bragg pixels found: {len(sep.index)}\\\")\"\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 14,\n- \"id\": \"697fe7d7\",\n+ \"id\": \"5703709a\",\n \"metadata\": {},\n \"outputs\": [\n {\n \"name\": \"stdout\",\n \"output_type\": \"stream\",\n \"text\": [\n \"CPU times: user 349 ms, sys: 27.6 ms, total: 377 ms\\n\",\n@@ -8225,15 +8225,15 @@\n \"restored_flat[sep.index] = sep.intensity\\n\",\n \"restored = numpy.round(restored).astype(numpy.int32)\"\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 15,\n- \"id\": \"40d521e9\",\n+ \"id\": \"eb236d5f\",\n \"metadata\": {},\n \"outputs\": [\n {\n \"data\": {\n \"application/javascript\": [\n \"/* Put everything inside the global mpl namespace */\\n\",\n \"/* global mpl */\\n\",\n@@ -9212,15 +9212,15 @@\n \"jupyter.display(restored, label=\\\"Restored\\\", ax=ax[1])\\n\",\n \"pass\"\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 16,\n- \"id\": \"f1ee255f\",\n+ \"id\": \"f081d07e\",\n \"metadata\": {},\n \"outputs\": [\n {\n \"name\": \"stdout\",\n \"output_type\": \"stream\",\n \"text\": [\n \"The compression ratio would be : 160.968x\\n\"\n@@ -9231,30 +9231,30 @@\n \"raw_size = img.nbytes\\n\",\n \"cmp_size = sep.index.nbytes + sep.intensity.nbytes + sep.background_avg.nbytes + sep.background_std.nbytes\\n\",\n \"print(f\\\"The compression ratio would be : {raw_size/cmp_size:.3f}x\\\")\"\n ]\n },\n {\n \"cell_type\": \"markdown\",\n- \"id\": \"bb66ab59\",\n+ \"id\": \"6f9fa2ac\",\n \"metadata\": {},\n \"source\": [\n \"## 6. Conclusion\\n\",\n \"\\n\",\n \"This tutorial explains how single crystal diffraction images can be treated to separate the amorphous content from Bragg peaks.\\n\",\n \"The first method has extensively been described in `J Kieffer & J.P. Wright; Powder Diffraction (2013) 28 (S2), pp339-350`\\n\",\n \"Subsequent ones have been developed with Gavin Vaughan (ESRF ID15) and Daniele De Sanctis (ESRF ID29).\\n\",\n \"Those methods open the door to lossy compression in the world of single crystal diffraction with compression rates above 100x which makes them appealing for serial-crystallography applications where bandwidth is critical. \\n\",\n \"First experimentation shows a limited degradation of \"\n ]\n },\n {\n \"cell_type\": \"code\",\n \"execution_count\": 17,\n- \"id\": \"1a112cb7\",\n+ \"id\": \"c0e636bf\",\n \"metadata\": {},\n \"outputs\": [\n {\n \"name\": \"stdout\",\n \"output_type\": \"stream\",\n \"text\": [\n \"Total execution time: 9.682s \\n\"\n"}]}]}]}]}]}]}