From 9606e2554b2dec73d2d558c35562fad03fc31c8c Mon Sep 17 00:00:00 2001 From: Thomas Halloran Date: Tue, 4 Feb 2025 11:30:27 -0500 Subject: [PATCH] Fixed interpolation directory interp_fwhm removed --- .../source/notebooks/MACS_User_notebook.ipynb | 111 +++++------------- .../MACS_Ef_3p7_interp_dE.pck | Bin .../MACS_Ef_3p7_interp_dQx.pck | Bin .../MACS_Ef_3p7_interp_dQz.pck | Bin .../MACS_Ef_5p0_interp_dE.pck | Bin .../MACS_Ef_5p0_interp_dQx.pck | Bin .../MACS_Ef_5p0_interp_dQz.pck | Bin pyMACS/virtualMACS.py | 2 +- 8 files changed, 28 insertions(+), 85 deletions(-) rename pyMACS/scripting/{interp_fwhm => }/MACS_Ef_3p7_interp_dE.pck (100%) rename pyMACS/scripting/{interp_fwhm => }/MACS_Ef_3p7_interp_dQx.pck (100%) rename pyMACS/scripting/{interp_fwhm => }/MACS_Ef_3p7_interp_dQz.pck (100%) rename pyMACS/scripting/{interp_fwhm => }/MACS_Ef_5p0_interp_dE.pck (100%) rename pyMACS/scripting/{interp_fwhm => }/MACS_Ef_5p0_interp_dQx.pck (100%) rename pyMACS/scripting/{interp_fwhm => }/MACS_Ef_5p0_interp_dQz.pck (100%) diff --git a/docs/source/notebooks/MACS_User_notebook.ipynb b/docs/source/notebooks/MACS_User_notebook.ipynb index 9f3bbd2..030074d 100644 --- a/docs/source/notebooks/MACS_User_notebook.ipynb +++ b/docs/source/notebooks/MACS_User_notebook.ipynb @@ -11,24 +11,23 @@ "tags": [] }, "source": [ - "## Resolution notebook for MACS users\n", - "\n", + "## Resolution notebook for MACS users - Use colab button for interactivity.\n", "Adjust the lattice parameters and sample orientation based on your needs, a false sample in the laboratory frame is used as an example. " ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 79, "id": "7a8918f4", "metadata": {}, "outputs": [], "source": [ - "#!pip install -q git+https://github.com/bmaranville/pyMACS.git requests" + "!pip install -q git+https://github.com/thallor1/pyMACS.git requests" ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 80, "id": "910b0952", "metadata": {}, "outputs": [], @@ -39,7 +38,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 81, "id": "b641a6fa-635c-42d9-8f80-9e4e864189a4", "metadata": {}, "outputs": [], @@ -58,7 +57,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 82, "id": "c124891d-e194-48b8-b4b1-2c0c0b9c8126", "metadata": { "editable": true, @@ -112,7 +111,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 83, "id": "df544de4-a1f5-4337-a40b-7dad043958d2", "metadata": {}, "outputs": [ @@ -208,7 +207,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 84, "id": "2164a7db-b31c-4ef2-8427-01d3deaade65", "metadata": {}, "outputs": [], @@ -231,7 +230,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 85, "id": "d98cf19a-45ed-42d1-8f81-fcb8fb0e0cdd", "metadata": {}, "outputs": [ @@ -330,85 +329,21 @@ }, { "cell_type": "code", - "execution_count": 78, + "execution_count": 86, "id": "ec9a8525-2394-4b6e-9fb0-ac2703ecae5b", "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.0000 0.2510\n", - "0.2041 0.2570\n", - "0.4082 0.2629\n", - "0.6122 0.2694\n", - "0.8163 0.2762\n", - "1.0204 0.2825\n", - "1.2245 0.2839\n", - "1.4286 0.2853\n", - "1.6327 0.2894\n", - "1.8367 0.2949\n", - "2.0408 0.2994\n", - "2.2449 0.2998\n", - "2.4490 0.3003\n", - "2.6531 0.3291\n", - "2.8571 0.3674\n", - "3.0612 0.3856\n", - "3.2653 0.3570\n", - "3.4694 0.3283\n", - "3.6735 0.3176\n", - "3.8776 0.3100\n", - "4.0816 0.3092\n", - "4.2857 0.3187\n", - "4.4898 0.3281\n", - "4.6939 0.3339\n", - "4.8980 0.3394\n", - "5.1020 0.3388\n", - "5.3061 0.3322\n", - "5.5102 0.3265\n", - "5.7143 0.3393\n", - "5.9184 0.3521\n", - "6.1224 0.3618\n", - "6.3265 0.3695\n", - "6.5306 0.3798\n", - "6.7347 0.4047\n", - "6.9388 0.4296\n", - "7.1429 0.4337\n", - "7.3469 0.4289\n", - "7.5510 0.4251\n", - "7.7551 0.4244\n", - "7.9592 0.4237\n", - "8.1633 0.4098\n", - "8.3673 0.3926\n", - "8.5714 0.3865\n", - "8.7755 0.4010\n", - "8.9796 0.4156\n", - "9.1837 0.4203\n", - "9.3878 0.4240\n", - "9.5918 0.4339\n", - "9.7959 0.4512\n", - "10.0000 0.4686\n" + "ename": "FileNotFoundError", + "evalue": "[Errno 2] No such file or directory: '/mnt/c/Users/tjh/OneDrive - NIST/GitHub/pyMACS/pyMACS/scripting/interp_fwhm/MACS_Ef_3p7_interp_dQx.pck'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[86], line 6\u001b[0m\n\u001b[1;32m 4\u001b[0m omegas \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mlinspace(\u001b[38;5;241m0\u001b[39m,\u001b[38;5;241m10\u001b[39m,\u001b[38;5;241m50\u001b[39m)\n\u001b[1;32m 5\u001b[0m macs_instr\u001b[38;5;241m.\u001b[39mkidney\u001b[38;5;241m.\u001b[39mEf\u001b[38;5;241m=\u001b[39mmacsEf\n\u001b[0;32m----> 6\u001b[0m interp_dQx, interp_dQz, interp_dE \u001b[38;5;241m=\u001b[39m \u001b[43mmacs_instr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mload_res_fwhm_interp_objects\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 7\u001b[0m \u001b[38;5;66;03m#These interpolators require input in terms of lab fram, not H,K,L. This is done in the following way.\u001b[39;00m\n\u001b[1;32m 8\u001b[0m qx1,qz1 \u001b[38;5;241m=\u001b[39m macs_instr\u001b[38;5;241m.\u001b[39msample\u001b[38;5;241m.\u001b[39mHKL_to_QxQz(H1,K1,L1)\n", + "File \u001b[0;32m/mnt/c/Users/tjh/OneDrive - NIST/GitHub/pyMACS/pyMACS/virtualMACS.py:1094\u001b[0m, in \u001b[0;36mVirtualMACS.load_res_fwhm_interp_objects\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1092\u001b[0m f_dQx \u001b[38;5;241m=\u001b[39m interp_dir\u001b[38;5;241m+\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mMACS_Ef_3p7_interp_dQx.pck\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 1093\u001b[0m f_dQz \u001b[38;5;241m=\u001b[39m interp_dir\u001b[38;5;241m+\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mMACS_Ef_3p7_interp_dQz.pck\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m-> 1094\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28;43mopen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mf_dQx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mrb\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mas\u001b[39;00m input_file:\n\u001b[1;32m 1095\u001b[0m interp_dQx \u001b[38;5;241m=\u001b[39m pickle\u001b[38;5;241m.\u001b[39mload(input_file)\n\u001b[1;32m 1096\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mopen\u001b[39m(f_dQz, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mrb\u001b[39m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;28;01mas\u001b[39;00m input_file:\n", + "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: '/mnt/c/Users/tjh/OneDrive - NIST/GitHub/pyMACS/pyMACS/scripting/interp_fwhm/MACS_Ef_3p7_interp_dQx.pck'" ] - }, - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Energy Resolution at [1.00,1.00,0.00] point, MACS Ef=3.7')" - ] - }, - "execution_count": 78, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ @@ -446,6 +381,14 @@ "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d3b59da7-183f-4969-828d-63a6f7ba9963", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/pyMACS/scripting/interp_fwhm/MACS_Ef_3p7_interp_dE.pck b/pyMACS/scripting/MACS_Ef_3p7_interp_dE.pck similarity index 100% rename from pyMACS/scripting/interp_fwhm/MACS_Ef_3p7_interp_dE.pck rename to pyMACS/scripting/MACS_Ef_3p7_interp_dE.pck diff --git a/pyMACS/scripting/interp_fwhm/MACS_Ef_3p7_interp_dQx.pck b/pyMACS/scripting/MACS_Ef_3p7_interp_dQx.pck similarity index 100% rename from pyMACS/scripting/interp_fwhm/MACS_Ef_3p7_interp_dQx.pck rename to pyMACS/scripting/MACS_Ef_3p7_interp_dQx.pck diff --git a/pyMACS/scripting/interp_fwhm/MACS_Ef_3p7_interp_dQz.pck b/pyMACS/scripting/MACS_Ef_3p7_interp_dQz.pck similarity index 100% rename from pyMACS/scripting/interp_fwhm/MACS_Ef_3p7_interp_dQz.pck rename to pyMACS/scripting/MACS_Ef_3p7_interp_dQz.pck diff --git a/pyMACS/scripting/interp_fwhm/MACS_Ef_5p0_interp_dE.pck b/pyMACS/scripting/MACS_Ef_5p0_interp_dE.pck similarity index 100% rename from pyMACS/scripting/interp_fwhm/MACS_Ef_5p0_interp_dE.pck rename to pyMACS/scripting/MACS_Ef_5p0_interp_dE.pck diff --git a/pyMACS/scripting/interp_fwhm/MACS_Ef_5p0_interp_dQx.pck b/pyMACS/scripting/MACS_Ef_5p0_interp_dQx.pck similarity index 100% rename from pyMACS/scripting/interp_fwhm/MACS_Ef_5p0_interp_dQx.pck rename to pyMACS/scripting/MACS_Ef_5p0_interp_dQx.pck diff --git a/pyMACS/scripting/interp_fwhm/MACS_Ef_5p0_interp_dQz.pck b/pyMACS/scripting/MACS_Ef_5p0_interp_dQz.pck similarity index 100% rename from pyMACS/scripting/interp_fwhm/MACS_Ef_5p0_interp_dQz.pck rename to pyMACS/scripting/MACS_Ef_5p0_interp_dQz.pck diff --git a/pyMACS/virtualMACS.py b/pyMACS/virtualMACS.py index 073a57d..a5d9166 100644 --- a/pyMACS/virtualMACS.py +++ b/pyMACS/virtualMACS.py @@ -1078,7 +1078,7 @@ def load_res_fwhm_interp_objects(self): :return: interp_dQx, interp_dQz, interp_dE, scipy.interpolate.RegularGridInterpolator obejcts that return the macs Bragg widhths in the respective directions for arbitrary h,k,l,E, for the Ef=3.7 or Ef=5.0 settings. :rtype: scipy.interpolate.RegularGridInterpolator, scipy.interpolate.RegularGridInterpolator, scipy.interpolate.RegularGridInterpolator """ - interp_dir = str(files("pyMACS")) + '/scripting/interp_fwhm/' + interp_dir = str(files("pyMACS")) + '/scripting/' if np.min(np.abs(np.array([5.0,3.7])-self.kidney.Ef))>0.1: #Check if the instrumental configruation is valid. print("Macs Ef hasn't been tabulated. Use Ef=3.7 or Ef=5.0")