{
"cells": [
{
"cell_type": "markdown",
"id": "a950b9af",
"metadata": {},
"source": [
"**This script is simply for me to calculate the location of IceCube relative to the origin of any ARA station**\n",
"\n",
"The relevant documentation to understand the definitions after the imports can be found in https://elog.phys.hawaii.edu/elog/ARA/130712_170712/doc.pdf"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "b926e2e3",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "901b442b",
"metadata": {},
"outputs": [],
"source": [
"#Definitions of translations in surveyor's coordinates:\n",
"\n",
"t_IC_to_ARAg = np.array([-24100, 1700, 6400])\n",
"t_ARAg_to_A1 = np.array([16401.71, -2835.37, -25.67])\n",
"t_ARAg_to_A2 = np.array([13126.7, -8519.62, -18.72])\n",
"t_ARAg_to_A3 = np.array([9848.35, -2835.19, -12.7])\n",
"\n",
"#Definitions of rotations from surveyor's axes to the ARA Station's coordinate systems\n",
"\n",
"R1 = np.array([[-0.598647, 0.801013, -0.000332979], [-0.801013, -0.598647, -0.000401329], \\\n",
" [-0.000520806, 0.0000264661, 1]])\n",
"R2 = np.array([[-0.598647, 0.801013, -0.000970507], [-0.801007, -0.598646,-0.00316072 ], \\\n",
" [-0.00311277, -0.00111477, 0.999995]])\n",
"R3 = np.array([[-0.598646, 0.801011, -0.00198193],[-0.801008, -0.598649,-0.00247504], \\\n",
" [-0.00316902, 0.000105871, 0.999995]])"
]
},
{
"cell_type": "markdown",
"id": "ab2d3206",
"metadata": {},
"source": [
"**Using these definitions, I should be able to calculate the location of IceCube relative to each ARA station by:**\n",
"\n",
"$$\n",
"\\vec{r}_{A 1}^{I C}=-R_1\\left(\\vec{t}_{I C}^{A R A}+\\vec{t}_{A R A}^{A 1}\\right)\n",
"$$\n",
"\n",
"We have a write-up of how to get this. Contact salcedogomez.1@osu.edu if you need that.\n",
"\n",
"Alex had done this already, he got that \n",
"\n",
"$$\n",
"\\vec{r}_{A 1}^{I C}=-3696.99^{\\prime} \\hat{x}-6843.56^{\\prime} \\hat{y}-6378.31^{\\prime} \\hat{z}\n",
"$$\n",
"\n",
"Let me verify that I get the same"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "912163d2",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"IC coordinates relative to A1 (in): [-3696.98956579 -6843.55800868 -6378.30926681]\n",
"IC coordinates relative to A1 (m): [-1127.13096518 -2086.4506124 -1944.60648378]\n",
"Distance of IC from A1 (m): 3066.788996234438\n"
]
}
],
"source": [
"IC_A1 = -R1 @ np.add(t_ARAg_to_A1, t_IC_to_ARAg).T\n",
"print(\"IC coordinates relative to A1 (in): \", IC_A1)\n",
"print(\"IC coordinates relative to A1 (m): \", IC_A1/3.28)\n",
"print(\"Distance of IC from A1 (m): \", np.sqrt((IC_A1[0]/3.28)**2 + (IC_A1[1]/3.28)**2 + (IC_A1[2]/3.28)**2))"
]
},
{
"cell_type": "markdown",
"id": "f9c9f252",
"metadata": {},
"source": [
"Looks good!\n",
"\n",
"Now, I just get the other ones:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "8afa27c6",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"IC coordinates relative to A2 (in): [ -1100.33577313 -12852.0589083 -6423.00776043]\n",
"IC coordinates relative to A2 (m): [ -335.46822352 -3918.31064277 -1958.2340733 ]\n",
"Distance of IC from A2 (m): 4393.219537890439\n"
]
}
],
"source": [
"IC_A2 = -R2 @ np.add(t_ARAg_to_A2, t_IC_to_ARAg).T\n",
"print(\"IC coordinates relative to A2 (in): \", IC_A2)\n",
"print(\"IC coordinates relative to A2 (m): \", IC_A2/3.28)\n",
"print(\"Distance of IC from A2 (m): \", np.sqrt((IC_A2[0]/3.28)**2 + (IC_A2[1]/3.28)**2 + (IC_A2[2]/3.28)**2))"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "9959d0a4",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"IC coordinates relative to A3 (in): [ -7609.73440732 -12079.45719852 -6432.31164368]\n",
"IC coordinates relative to A3 (m): [-2320.04097784 -3682.76134101 -1961.07062307]\n",
"Distance of IC from A3 (m): 4774.00452685144\n"
]
}
],
"source": [
"IC_A3 = -R3 @ np.add(t_ARAg_to_A3, t_IC_to_ARAg).T\n",
"print(\"IC coordinates relative to A3 (in): \", IC_A3)\n",
"print(\"IC coordinates relative to A3 (m): \", IC_A3/3.28)\n",
"print(\"Distance of IC from A3 (m): \", np.sqrt((IC_A3[0]/3.28)**2 + (IC_A3[1]/3.28)**2 + (IC_A3[2]/3.28)**2))"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "093dff67",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
|