diff --git a/.github/workflows/testsuite.yaml b/.github/workflows/testsuite.yaml index baec4ce..a826178 100644 --- a/.github/workflows/testsuite.yaml +++ b/.github/workflows/testsuite.yaml @@ -50,3 +50,4 @@ jobs: if: success() with: file: ./coverage.xml #optional + token: ${{ secrets.CODECOV_TOKEN }} #required diff --git a/.gitignore b/.gitignore index 6454156..c952056 100644 --- a/.gitignore +++ b/.gitignore @@ -103,3 +103,4 @@ pip-wheel-metadata/ .vscode/ *MHz.h5 docs/reference/_autosummary +*.egg-info/ diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 7c44e5e..4ca405a 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -34,6 +34,7 @@ Features a closer resemblance to the original 21cmSense v1. * New ``calculate_sensitivity_2d_grid`` method that makes it easier to obtain a gridded cylindrical power spectrum sensitivity for arbitrary bins. +* Ability to use builtin observatories that set certain parameters. * ``antpos.hera()`` can now return a split-core configuration, and also outriggers. v2.0.0 diff --git a/docs/tutorials/getting_started.ipynb b/docs/tutorials/getting_started.ipynb index f44b0a8..5fa9cea 100644 --- a/docs/tutorials/getting_started.ipynb +++ b/docs/tutorials/getting_started.ipynb @@ -655,7 +655,8 @@ } ], "source": [ - "coherent_grid = observatory.grid_baselines_coherent(\n", + "coherent_grid = observatory.grid_baselines(\n", + " coherent=True,\n", " baselines=baseline_group_coords,\n", " weights=baseline_group_counts\n", ")" @@ -1109,7 +1110,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.4" + "version": "3.10.6" }, "latex_envs": { "LaTeX_envs_menu_present": true, diff --git a/docs/tutorials/using_builtin_observatories.ipynb b/docs/tutorials/using_builtin_observatories.ipynb new file mode 100644 index 0000000..05ccfe4 --- /dev/null +++ b/docs/tutorials/using_builtin_observatories.ipynb @@ -0,0 +1,268 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Using Built-In Observatories" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can create whatever observatory you like -- specifying antenna positions, beam patterns, and so on -- but there are a few built-in observatories that you can use for convenience. In this tutorial, we'll show you how to use them." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "from py21cmsense.observatory import Observatory, get_builtin_profiles\n", + "from py21cmsense.sensitivity import PowerSpectrum\n", + "from py21cmsense.observation import Observation\n", + "from astropy import units as un\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To see which observatory profiles are available:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['MWA-PhaseII', 'HERA-H1C-IDR3', 'SKA-LOW1-central', 'SKA-LOW1-core']" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "get_builtin_profiles()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you can see, these are not simply full telescopes, but specific flavours of the\n", + "telescopes. More of these can be added upon request." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To create an observatory from a built-in profile:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "obs = Observatory.from_profile('SKA-LOW1-central')" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "SKA LOW1 central has 296 antennas\n" + ] + } + ], + "source": [ + "print(f\"SKA LOW1 central has {len(obs.antpos)} antennas\")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "SKA LOW1 has a beam width of 0.06038676654 rad\n" + ] + } + ], + "source": [ + "print(\"SKA LOW1 has a beam width of \", obs.beam.fwhm)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When you create an observatory, you can override parameters:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "obs = Observatory.from_profile(\"SKA-LOW1-central\", frequency=75 * un.MHz)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "75.0 MHz\n" + ] + } + ], + "source": [ + "print(obs.frequency)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's check out the significance of a power spectrum detection with the SKA-central configuration:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "sense = PowerSpectrum(\n", + " observation=Observation(observatory=obs) \n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "finding redundancies: 100%|██████████| 295/295 [00:00<00:00, 1438.80ants/s]\n", + "gridding baselines: 100%|██████████| 87050/87050 [00:15<00:00, 5686.92baselines/s]\n", + "calculating 2D sensitivity: 100%|██████████| 6663/6663 [00:09<00:00, 698.42uv-bins/s] \n", + "averaging to 1D: 100%|██████████| 564/564 [00:03<00:00, 170.10kperp-bins/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.7289480861797337\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "print(sense.calculate_significance())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's see the coherently-averaged UV-coverage:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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tfjiF7+IBx980BzP1wPhRKNR1wsTBEEQhGwkdVZFbzcAaGpqMvEEkUgES5cu9bzutm3bMGDAAITDYdxwww1Yu3YtLrjgArS2tgIA6urqHO3r6urMsdbWVoRCIVRVVR23TW1treu6tbW1pk2uFDSr4q9//Svuu+8+zJs3D7fccgtee+013HTTTQiHw/inf/qn4z6QDz74AEBuD4SzdOlS3H777QW4I0EQ+gTa66ASCfszeRMorkH0G4QTJKV8SPVSOTKlv3e7d+9GZWWl2R8Ohz3POe+887B161YcOnQITzzxBKZNm4aNGzea4xbzmCmlXPs4vE2m9rn0wymoxyGVSuFLX/oSlixZgi9+8Yu4/vrrMXPmTNx3332Odvl4IMeycOFCtLe3m2337t29uxFBEARB6CGUJUHb8SYOoVAIn/70pzFixAgsXboUn//85/G///f/Rn19PQC4DOX9+/cbo7u+vh6xWAxtbW3HbfPxxx+7rvvJJ5+4jPdsFHTi0NDQgAsuuMCx7/zzz8eHH34IAHl7IJxwOOx6YYIgnAakkvbGYiEEIVfyuVTRG5RSiEajGDJkCOrr67FhwwZzLBaLYePGjRg9ejQAYPjw4QgGg442+/btw/bt202bUaNGob29Ha+99ppp8+qrr6K9vd20yZWCThwuvvhiV7Tmu+++i0GDBgFA3h6IIAiCIOSDFHqfWdFT+bFbbrkFf/rTn7Br1y5s27YNt956K1588UV85zvfgWVZmDt3LpYsWYK1a9di+/btmD59OsrKyjBlyhQAQCQSwYwZMzB//nw8//zzePPNN/GP//iPGDZsGC677DIAttF+xRVXYObMmXjllVfwyiuvYObMmZg0aRLOO++8Ho23oDEOP/zhDzF69GgsWbIE11xzDV577TU88MADeOCBBwDA8UCGDh2KoUOHYsmSJZ4PZODAgaiursaCBQscD0ToB9CykliBQiGQ75XQj/n4448xdepU7Nu3D5FIBJ/73Oewbt06XH755QCAm2++GV1dXZg1axba2towcuRIrF+/HhUVFaaPe+65B4FAANdccw26urpw6aWXYtWqVfD70/VbHn30Udx0000m2WDy5MlYsWJFj8drKVXY37inn34aCxcuxHvvvYchQ4Zg3rx5mDlzpjmulMLtt9+O+++/3zyQf//3f0dzc7Np093djX/5l3/BY489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vPMOfvjDH+LDDz/EDTfccKqHlpGCSk6PGDECzz777HHbnHPOOXj66aeP22bYsGF46aWX8jm0rITDYdx2223HXZPq78g9Fg+nw33KPRYPp8t95sq1116LgwcP4o477sC+ffvQ3NyM3//+9xg0aNCpHlpGLCUqSoIgCIIg5EhBJacFQRAEQSguZOIgCIIgCELOyMRBEARBEISckYmDIAiCIAg5IxMHQRAEQRBy5rSeOLz44ouwLCvjtmXLFtMu0/Ff/epXjr62bduGMWPGoLS0FGeddRbuuOOOPlP2e/Dgwa7x84IqH374Ia666iqUl5ejpqYGN910k0t6tS/f465duzBjxgwMGTIEpaWlOPfcc3Hbbbe57qG/v8tM/PKXv8SQIUNQUlKC4cOH409/+tOpHlLOLF26FBdeeCEqKipQW1uLb3zjG9ixY4ejzfTp013v7KKLLnK0iUajmDNnDmpqalBeXo7Jkydjz549J/NWPFm0aJFr/PX19ea4UgqLFi1CY2MjSktLMXbsWLz11luOPvry/RGZ/s5YloUbb7wRQP9/j8IxqNOYaDSq9u3b59i++93vqsGDB6tUKmXaAVArV650tOvs7DTH29vbVV1dnbruuuvUtm3b1BNPPKEqKirUXXfddSpuy8WgQYPUHXfc4Rj/4cOHzfFEIqGam5vVuHHj1BtvvKE2bNigGhsb1ezZs02bvn6Pf/jDH9T06dPVs88+q/7yl7+oJ598UtXW1qr58+c72vX3d8lZs2aNCgaD6sEHH1Rvv/22+sEPfqDKy8vVBx98cKqHlhMTJkxQK1euVNu3b1dbt25VV155pTrnnHPUkSNHTJtp06apK664wvHODh486OjnhhtuUGeddZbasGGDeuONN9S4cePU5z//eZVIJE72Lbm47bbb1Gc/+1nH+Pfv32+O/+xnP1MVFRXqiSeeUNu2bVPXXnutamhoUB0dHaZNX74/Yv/+/Y573LBhgwKg/vjHPyql+v97FNKc1hMHTiwWU7W1teqOO+5w7Aeg1q5d63neL3/5SxWJRFR3d7fZt3TpUtXY2OiYgJwqBg0apO655x7P47///e+Vz+dTH330kdn3H//xHyocDqv29nalVN+/x0zceeedasiQIY59/f1dcr785S+rG264wbHv7/7u79SPf/zjUzSi3rF//34FQG3cuNHsmzZtmvr617/uec6hQ4dUMBhUa9asMfs++ugj5fP51Lp16wo53Jy47bbb1Oc///mMx1KplKqvr1c/+9nPzL7u7m4ViUTUr371K6VU378/L37wgx+oc8891/ze9Pf3KKQ5rZcqOE899RQOHDiA6dOnu47Nnj0bNTU1uPDCC/GrX/3KFOoCgJdffhljxoxxqKBNmDABe/fuxa5du07CyLPz85//HAMHDsQXvvAFLF682OHCf/nll9Hc3OyoOjdhwgREo1G0tLSYNn39Hjnt7e2orq527e/v75KIxWJoaWnB+PHjHfvHjx+PzZs3n6JR9Y729nYAcL23F198EbW1tfjMZz6DmTNnmgq5ANDS0oJ4PO54Do2NjWhubu4zz+G9995DY2MjhgwZguuuuw5//etfAQA7d+5Ea2urY+zhcBhjxowxY+8P98eJxWJYvXo1/vmf/9lRU6i/v0fBpqCS0/2Nhx56CBMmTHDVUP9f/+t/4dJLL0VpaSmef/55zJ8/HwcOHMBPfvITAEBra6urUidVNWttbcWQIUNOyvi9+MEPfoAvfelLqKqqwmuvvYaFCxdi586d+PWvf23GyKuwVVVVIRQKmYptff0eOX/5y1+wfPly3H333Y79/f1dHsuBAweQTCZd766urs5Vaa8/oJTCvHnz8JWvfAXNzc1m/8SJE/Gtb30LgwYNws6dO/Gv//qvuOSSS9DS0oJwOIzW1laEQiFUVVU5+usrz2HkyJH4zW9+g8985jP4+OOP8dOf/hSjR4/GW2+9ZcaX6R1+8MEHANDn7y8T//mf/4lDhw45jLD+/h6FNEU5cVi0aBFuv/3247bZsmULRowYYT7v2bMHzz77LP7f//t/rrb0nwoAfOELXwAA3HHHHY79mWqpZ9qfL3pyjz/84Q/Nvs997nOoqqrC//gf/8N4IbzGqVg9+JN9j8CJvcu9e/fiiiuuwLe+9S1897vfdbTti++yt2Qab18d6/GYPXs2/vznP2PTpk2O/ddee635d3NzM0aMGIFBgwbhmWeewdVXX+3ZX195DhMnTjT/HjZsGEaNGoVzzz0XDz/8sAkOPJF32FfuLxMPPfQQJk6c6PBi9vf3KKQpyonD7Nmzcd111x23DbcqV65ciYEDB2Ly5MlZ+7/ooovQ0dGBjz/+GHV1daivr89YSx1wWxL54kTukaA/Vu+//z4GDhyI+vp6vPrqq442bW1tiMfjZvyn4h6Bnt/n3r17MW7cOIwaNQoPPPBA1v77wrs8UWpqauD3+zOOt6+NNRtz5szBU089hZdeeglnn332cds2NDRg0KBBeO+99wDY381YLIa2tjaHtbp///4+WZa4vLwcw4YNw3vvvYdvfOMbAGyvQkNDg2lz7Dvsb/f3wQcf4LnnnsNvf/vb47br7+/xtOZUBVf0JVKplBoyZIgrAt+L5cuXq5KSEhNA98tf/lKdccYZKhqNmjY/+9nP+mxA3e9+9zsFwETeU3Dk3r17TZs1a9a4giP7+j3u2bNHDR06VF133XU5R2H393f55S9/WX3/+9937Dv//PP7TXBkKpVSN954o2psbFTvvvtuTuccOHBAhcNh9fDDDyul0kF1jz/+uGmzd+/ePhtU193drc466yx1++23m+DIn//85+Z4NBrNGBzZX+7vtttuU/X19Soejx+3XX9/j6czMnFQSj333HMKgHr77bddx5566in1wAMPqG3btqn3339fPfjgg6qyslLddNNNps2hQ4dUXV2d+va3v622bdumfvvb36rKyso+kcK3efNmtWzZMvXmm2+qv/71r+rxxx9XjY2NavLkyaYNpWNeeuml6o033lDPPfecOvvssx3pmH35HpWyo68//elPq0suuUTt2bPHkfJF9Pd3mQlKx3zooYfU22+/rebOnavKy8vVrl27TvXQcuL73/++ikQi6sUXX8yYInv48GE1f/58tXnzZrVz5071xz/+UY0aNUqdddZZrnTFs88+Wz333HPqjTfeUJdcckmfSeObP3++evHFF9Vf//pX9corr6hJkyapiooK845+9rOfqUgkon7729+qbdu2qW9/+9sZ0zH76v0dSzKZVOecc4760Y9+5NhfDO9RSCMTB6XUt7/9bTV69OiMx/7whz+oL3zhC2rAgAGqrKxMNTc3q3vvvdc1m/7zn/+svvrVr6pwOKzq6+vVokWL+oSF2tLSokaOHKkikYgqKSlR5513nrrtttvU0aNHHe0++OADdeWVV6rS0lJVXV2tZs+e7UhJVKrv3qNSSq1cuVIByLgR/f1devHv//7vatCgQSoUCqkvfelLjlTGvo7XO1u5cqVSSqnOzk41fvx4deaZZ6pgMKjOOeccNW3aNPXhhx86+unq6lKzZ89W1dXVqrS0VE2aNMnV5lRBugzBYFA1Njaqq6++Wr311lvmeCqVMlZ6OBxWX/va19S2bdscffTl+zuWZ599VgFQO3bscOwvhvcopLGU6sOSeIIgCIIg9ClEx0EQBEEQhJyRiYMgCIIgCDkjEwdBEARBEHJGJg6CIAiCIOSMTBwEQRAEQcgZmTgIgiAIgpAzMnEQBEEQBCFnZOIgCIIgCELOyMRBEARBEISckYmDIAiCIAg5IxMHQRAEQRBy5v8HTBpxSG3IFRgAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.imshow(\n", + " sense.observation.uv_coverage, \n", + " extent=(sense.observation.ugrid.min(), sense.observation.ugrid.max())*2\n", + ")\n", + "plt.colorbar()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "sense", + "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.10.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/py21cmsense/data/antpos/hera-h1c-idr3.txt b/py21cmsense/data/antpos/hera-h1c-idr3.txt new file mode 100644 index 0000000..d4f4003 --- /dev/null +++ b/py21cmsense/data/antpos/hera-h1c-idr3.txt @@ -0,0 +1,71 @@ +-1.353014802932739258e+01 -1.181450861941557378e+02 -9.566264385916292667e+01 +-1.884822099935263395e+01 -1.045396618698723614e+02 -9.560969073977321386e+01 +-2.416632062196731567e+01 -9.093424828629940748e+01 -9.555672054504975677e+01 +-4.963128907606005669e+00 -1.226810004494618624e+02 -8.473808013228699565e+01 +-1.032920262496918440e+01 -1.090944140243809670e+02 -8.465448297793045640e+01 +-1.568730055075138807e+01 -9.550469809141941369e+01 -8.457597754057496786e+01 +-2.088537837285548449e+01 -8.185218258900567889e+01 -8.459963086619973183e+01 +3.616637547500431538e+00 -1.272119525789748877e+02 -7.381000724295154214e+01 +-1.677401631139218807e+00 -1.135970968017354608e+02 -7.377239787951111794e+01 +-6.995474578812718391e+00 -9.999167313100770116e+01 -7.371944511728361249e+01 +-1.231357416976243258e+01 -8.638626019703224301e+01 -7.366647527972236276e+01 +-1.754367469064891338e+01 -7.274631206132471561e+01 -7.366968489065766335e+01 +1.216759750898927450e+01 -1.317541681148577482e+02 -6.287519241962581873e+01 +6.929588386788964272e+00 -1.181173241157084703e+02 -6.287335302354767919e+01 +1.611528756096959114e+00 -1.045118953352794051e+02 -6.282040897523984313e+01 +-3.722562248818576336e+00 -9.091275831824168563e+01 -6.275723033817484975e+01 +-9.016668104566633701e+00 -7.729792946088127792e+01 -6.271957841515541077e+01 +-1.437481941841542721e+01 -6.370823565078899264e+01 -6.264103935798630118e+01 +2.073930714093148708e+01 -1.362882810833398253e+02 -5.194197718473151326e+01 +1.543729238305240870e+01 -1.226765558507759124e+02 -5.189927640836685896e+01 +1.018326523993164301e+01 -1.090459983693435788e+02 -5.188721100054681301e+01 +4.849187562242150307e+00 -9.544685633759945631e+01 -5.182404111279174685e+01 +-4.529072642326354980e-01 -8.183516302471980453e+01 -5.178128911461681128e+01 +-5.787038208916783333e+00 -6.823604255751706660e+01 -5.171808507852256298e+01 +2.935423192940652370e+01 -1.408053934818599373e+02 -4.104799868678674102e+01 +2.403622569236904383e+01 -1.271999440449289978e+02 -4.099508914165198803e+01 +1.871019040886312723e+01 -1.135976458243094385e+02 -4.093705380149185658e+01 +1.337612610403448343e+01 -9.999849888263270259e+01 -4.087389266397804022e+01 +8.082047081552445889e+00 -8.638366017048247159e+01 -4.083625806961208582e+01 +2.795943728648126125e+00 -7.276569152832962573e+01 -4.080371512426063418e+01 +-2.426167435944080353e+00 -5.912260896083898842e+01 -4.081202489137649536e+01 +3.800914182141423225e+01 -1.453068140144459903e+02 -3.017954673757776618e+01 +3.263513191975653172e+01 -1.317233424813020974e+02 -3.009088496211916208e+01 +2.730110753513872623e+01 -1.181241796358954161e+02 -3.002774964505806565e+01 +2.199106373731046915e+01 -1.045156061430461705e+02 -2.997992337681353092e+01 +1.667299088090658188e+01 -9.091018385859206319e+01 -2.992697132704779506e+01 +1.136289375368505716e+01 -7.730163178127259016e+01 -2.987911090813577175e+01 +6.068774718791246414e+00 -6.368680928973481059e+01 -2.984145083045586944e+01 +8.146408256143331528e-01 -5.005629452969878912e+01 -2.982931720791384578e+01 +4.663678712863475084e+01 -1.498189747424330562e+02 -1.928204166609793901e+01 +4.119076853897422552e+01 -1.362637619809247553e+02 -1.914741051895543933e+01 +3.587276234664022923e+01 -1.226583132378291339e+02 -1.909450133051723242e+01 +3.055472950357943773e+01 -1.090528752345126122e+02 -1.904157506953924894e+01 +2.525267482269555330e+01 -9.544116695993579924e+01 -1.899884911347180605e+01 +1.994259106274694204e+01 -8.183260986534878612e+01 -1.895099739450961351e+01 +1.464848541282117367e+01 -6.821778237237595022e+01 -1.891334597999230027e+01 +5.522762353345751762e+01 -1.543455392380710691e+02 -8.372686089947819710e+00 +4.983763517625629902e+01 -1.407683382581453770e+02 -8.273824636824429035e+00 +4.447162763122469187e+01 -1.271817270356696099e+02 -8.190272127743810415e+00 +3.915360810887068510e+01 -1.135762839457020164e+02 -8.137354581616818905e+00 +3.385156677942723036e+01 -9.996457059821113944e+01 -8.094637305941432714e+00 +2.854149635229259729e+01 -8.635600842442363501e+01 -8.046794284600764513e+00 +2.324740406591445208e+01 -7.274117586575448513e+01 -8.009151534643024206e+00 +1.795328508038073778e+01 -5.912635391880758107e+01 -7.971491708420217037e+00 +1.264313461817800999e+01 -4.551782375038601458e+01 -7.923597465734928846e+00 +5.846523955091834068e+01 -1.452805143310688436e+02 2.623705561738461256e+00 +5.305123051907867193e+01 -1.317127406052313745e+02 2.737901186104863882e+00 +4.774122678861021996e+01 -1.181041520228609443e+02 2.785701361019164324e+00 +4.242319395206868649e+01 -1.044987146286293864e+02 2.838627268560230732e+00 +3.712914174795150757e+01 -9.088386643514968455e+01 2.876244280021637678e+00 +3.181905800569802523e+01 -7.727530992147512734e+01 2.924095677677541971e+00 +2.651695000752806664e+01 -6.366362354950979352e+01 2.966855493839830160e+00 +2.120681292377412319e+01 -5.005508840736001730e+01 3.014741037972271442e+00 +7.158875706698745489e+01 -1.558917650254443288e+02 1.722577638877555728e+01 +6.632682151719927788e+01 -1.422643128440249711e+02 1.724289040965959430e+01 +5.364556475449353456e+01 -9.236911282641813159e+01 2.836392122181132436e+01 +4.835149925202131271e+01 -7.875427055638283491e+01 2.840154647780582309e+01 +4.304940461181104183e+01 -6.514257945213466883e+01 2.844429742032662034e+01 +3.773127843067049980e+01 -5.153718014876358211e+01 2.849728266801685095e+01 +1.048607184821739793e+02 -2.995865078354254365e+02 -1.968903261562809348e+01 +1.376887764884158969e+02 -2.087586419745348394e+02 8.991649550758302212e+01 diff --git a/py21cmsense/data/antpos/layout_ecef_SKA_central.txt b/py21cmsense/data/antpos/layout_ecef_SKA_central.txt new file mode 100644 index 0000000..855cbb6 --- /dev/null +++ b/py21cmsense/data/antpos/layout_ecef_SKA_central.txt @@ -0,0 +1,296 @@ +-2.565031668943944853e+06 5.085463458483061753e+06 -2.861102804828245193e+06 +-2.564918684477661736e+06 5.085647019469199702e+06 -2.860879316518400796e+06 +-2.565009870781918522e+06 5.085524657505567186e+06 -2.861014164420139510e+06 +-2.564822515250968281e+06 5.085621393657982349e+06 -2.861010203875160776e+06 +-2.564985024936894886e+06 5.085573078753847629e+06 -2.860950795535154175e+06 +-2.564972417855422478e+06 5.085667662456432357e+06 -2.860795012193705421e+06 +-2.564951001280283090e+06 5.085620146294400096e+06 -2.860897987861589063e+06 +-2.564938182463748381e+06 5.085569466665185988e+06 -2.860998888024772517e+06 +-2.565066833286866546e+06 5.085560122163771652e+06 -2.860900816850310192e+06 +-2.564829991432369221e+06 5.085673272313933820e+06 -2.860911944199128076e+06 +-2.564876341431571636e+06 5.085650644279894419e+06 -2.860910624005768914e+06 +-2.565126978715419304e+06 5.085566528603579849e+06 -2.860835938532195520e+06 +-2.564930973128353246e+06 5.085541698887029663e+06 -2.861054335584214423e+06 +-2.564971092680858914e+06 5.085535350281274877e+06 -2.861029817989191972e+06 +-2.564916939598376397e+06 5.085609874731803313e+06 -2.860946457771202084e+06 +-2.564768389477732591e+06 5.085679131972715259e+06 -2.860956453485653270e+06 +-2.565008288537031040e+06 5.085602361207913607e+06 -2.860878373520457186e+06 +-2.565109429846429266e+06 5.085541841363469139e+06 -2.860895158872165252e+06 +-2.564900616675513797e+06 5.085584247260901146e+06 -2.861006243328803685e+06 +-2.564995459376724903e+06 5.085549978021821938e+06 -2.860982291423859075e+06 +-2.565106131512906868e+06 5.085515092648915946e+06 -2.860945326180333272e+06 +-2.565116283204396721e+06 5.085472907087035477e+06 -2.861010769667385146e+06 +-2.565003668868971057e+06 5.085502256333046593e+06 -2.861059239096883219e+06 +-2.564938954325326718e+06 5.085665314435349777e+06 -2.860828960318984464e+06 +-2.565081561241729185e+06 5.085596058822964318e+06 -2.860824245307636447e+06 +-2.564905474216336384e+06 5.085696618846840225e+06 -2.860803499234514311e+06 +-2.564990080823199823e+06 5.085631945202350616e+06 -2.860842350940564647e+06 +-2.564942083024833817e+06 5.085496359061223455e+06 -2.861124493333651219e+06 +-2.564881660671466496e+06 5.085558451626865193e+06 -2.861068668923002668e+06 +-2.565042548196761869e+06 5.085602918977120891e+06 -2.860846877344298642e+06 +-2.565036672972853296e+06 5.085498641497836448e+06 -2.861036230288373306e+06 +-2.565057130032367073e+06 5.085628461376357824e+06 -2.860788788359759841e+06 +-2.564858744279741775e+06 5.085545014039921574e+06 -2.861112800405434798e+06 +-2.565148825095360167e+06 5.085520581933998503e+06 -2.860897610663039610e+06 +-2.564860635809483472e+06 5.085592554878111929e+06 -2.861027177629656158e+06 +-2.564796378190475516e+06 5.085601569434136152e+06 -2.861068480326557066e+06 +-2.565027086224599741e+06 5.085550368900774978e+06 -2.860953435912403744e+06 +-2.564842184046437033e+06 5.085638497833898291e+06 -2.860962488629752304e+06 +-2.564981940313647036e+06 5.085474333511945792e+06 -2.861127888052497525e+06 +-2.564781424594737124e+06 5.085701610614906065e+06 -2.860905154631650541e+06 +-2.564880037650931627e+06 5.085629340481856838e+06 -2.860944948983352631e+06 +-2.565149973307237029e+06 5.085499280914148316e+06 -2.860934198864139616e+06 +-2.564752014376162086e+06 5.085651714769380167e+06 -2.861019445144634694e+06 +-2.565015297410710715e+06 5.085574152668216266e+06 -2.860921939943878446e+06 +-2.564848165905914269e+06 5.085529092153008096e+06 -2.861150330890511163e+06 +-2.564815251418421045e+06 5.085708049152571708e+06 -2.860863662742435932e+06 +-2.565074077521225438e+06 5.085456595507477410e+06 -2.861077155759832356e+06 +-2.564784757780021522e+06 5.085654321345009841e+06 -2.860985686185105238e+06 +-2.565010020543314517e+06 5.085666427174360491e+06 -2.860763704388462007e+06 +-2.565111263369626366e+06 5.085449482321002521e+06 -2.861056598744170275e+06 +-2.565019761969660409e+06 5.085633530472217128e+06 -2.860813117873115931e+06 +-2.564901274849844165e+06 5.085529972945391200e+06 -2.861101484657016117e+06 +-2.564864406315716449e+06 5.085685929356712848e+06 -2.860858947745457757e+06 +-2.565066756312487647e+06 5.085539759716690518e+06 -2.860936839245236944e+06 +-2.565152713306276128e+06 5.085474399480861612e+06 -2.860975690496317577e+06 +-2.564783568143227138e+06 5.085625013475629501e+06 -2.861038493451927789e+06 +-2.564966482874211855e+06 5.085509368724735454e+06 -2.861079796107778326e+06 +-2.564833187103439122e+06 5.085573498917367309e+06 -2.861085265398003627e+06 +-2.564956514077174477e+06 5.085597392113941722e+06 -2.860933255870741326e+06 +-2.565071296309594065e+06 5.085503289039813913e+06 -2.860997190646244213e+06 +-2.564790692318393849e+06 5.085580189537048340e+06 -2.861111291639628820e+06 +-2.564816441344963852e+06 5.085555453528936952e+06 -2.861132037151934579e+06 +-2.564869740522690583e+06 5.085610607656907290e+06 -2.860987194967556279e+06 +-2.564865790199197829e+06 5.085712253713503480e+06 -2.860811231866187416e+06 +-2.564943721072413027e+06 5.085696661309406161e+06 -2.860769362431926653e+06 +-2.564900374414217193e+06 5.085499556234762073e+06 -2.861155988741850946e+06 +-2.564807891595561057e+06 5.085661453437081538e+06 -2.860952492920599412e+06 +-2.565094729069590569e+06 5.085612060628478415e+06 -2.860784261932934169e+06 +-2.565090545645996463e+06 5.085571767372040078e+06 -2.860859136345374864e+06 +-2.564954053997975308e+06 5.085641357198608108e+06 -2.860857816145893186e+06 +-2.565080130896460265e+06 5.085475333215919323e+06 -2.861038682048870251e+06 +-2.565150309530966915e+06 5.085542050118084997e+06 -2.860858381945689674e+06 +-2.564947551769882906e+06 5.085473518549592234e+06 -2.861159949236116372e+06 +-2.564758832114035729e+06 5.085619756978317164e+06 -2.861069800501612481e+06 +-2.565038831868367735e+06 5.085526499806613661e+06 -2.860985120391634293e+06 +-2.565113363840877544e+06 5.085409860717038624e+06 -2.861124681929169688e+06 +-2.565110233398008626e+06 5.085390182083250955e+06 -2.861162212375077419e+06 +-2.564816649780262727e+06 5.085788302308301441e+06 -2.860720703166254796e+06 +-2.565040798995846882e+06 5.085420931838812307e+06 -2.861169756168366875e+06 +-2.564689763227723073e+06 5.085772508065900765e+06 -2.860861588144006208e+06 +-2.564966824560173322e+06 5.085408997521388344e+06 -2.861256698025236372e+06 +-2.564768964610359166e+06 5.085552265276964754e+06 -2.861179940281378105e+06 +-2.565273137798000127e+06 5.085502630925651640e+06 -2.860818587291443255e+06 +-2.564742085955985356e+06 5.085579814096907154e+06 -2.861155234361834824e+06 +-2.565198133884951472e+06 5.085561078608284704e+06 -2.860782187320037745e+06 +-2.564811375114296563e+06 5.085516776005988009e+06 -2.861204834741496947e+06 +-2.564700296302116476e+06 5.085663697062175721e+06 -2.861044339955695439e+06 +-2.564951906261759810e+06 5.085441732485753484e+06 -2.861212189912477974e+06 +-2.564852066896831151e+06 5.085754100016427226e+06 -2.860749559267500415e+06 +-2.564670620482880622e+06 5.085758129816583358e+06 -2.860904023036677856e+06 +-2.564730585914792027e+06 5.085558695165596902e+06 -2.861202760205233470e+06 +-2.564684336991427466e+06 5.085729744146300480e+06 -2.860941931407053955e+06 +-2.564897395532726776e+06 5.085774921956272796e+06 -2.860672420898676850e+06 +-2.565209007710045669e+06 5.085382232839105651e+06 -2.861088282936313190e+06 +-2.564735652152310126e+06 5.085728752690519206e+06 -2.860897987861589063e+06 +-2.564729505850457586e+06 5.085788993761171587e+06 -2.860797086804265156e+06 +-2.565101326466259081e+06 5.085636930045739748e+06 -2.860734471119107213e+06 +-2.565233937185638584e+06 5.085470386937052011e+06 -2.860910435406704433e+06 +-2.565014637612892315e+06 5.085404430407638662e+06 -2.861222185393630061e+06 +-2.565030999936013483e+06 5.085443606826604344e+06 -2.861138449393543880e+06 +-2.564953121738062240e+06 5.085743933647350408e+06 -2.860677513178742025e+06 +-2.564899844578120392e+06 5.085735985488004982e+06 -2.860738997565724421e+06 +-2.565177767229226884e+06 5.085411237020880915e+06 -2.861064896993492264e+06 +-2.565180832281858195e+06 5.085607615450083278e+06 -2.860715422303208616e+06 +-2.564963379477034323e+06 5.085712059435933828e+06 -2.860724663811931852e+06 +-2.564762549695384223e+06 5.085792195410930552e+06 -2.860762006974874530e+06 +-2.565223091177362949e+06 5.085502774866161868e+06 -2.860862908343050629e+06 +-2.564723727401877753e+06 5.085678156782836653e+06 -2.860997945036732592e+06 +-2.565152998286153190e+06 5.085631587725983001e+06 -2.860697882276231889e+06 +-2.565069336548573803e+06 5.085676241685950197e+06 -2.860693544415931683e+06 +-2.564735655234899372e+06 5.085612538928204216e+06 -2.861103182019996457e+06 +-2.564907256057229824e+06 5.085464359353723936e+06 -2.861212001318409108e+06 +-2.564780534250471275e+06 5.085512888457812369e+06 -2.861239158832085319e+06 +-2.564763994448255748e+06 5.085763056829772890e+06 -2.860812174869690556e+06 +-2.564644141692092642e+06 5.085671934379919432e+06 -2.861079796107778326e+06 +-2.564818884854208678e+06 5.085727044182884507e+06 -2.860826885714231525e+06 +-2.565074917120131664e+06 5.085426262309979647e+06 -2.861129962602404878e+06 +-2.565002422083742917e+06 5.085732205791981891e+06 -2.860654314995558001e+06 +-2.565215812458260451e+06 5.085535499047357589e+06 -2.860811609067597892e+06 +-2.565154940340175293e+06 5.085441765058610588e+06 -2.861031326765794773e+06 +-2.564742710919852369e+06 5.085752856139629148e+06 -2.860849140545490663e+06 +-2.565027693686779123e+06 5.085698099366210401e+06 -2.860692035594569985e+06 +-2.565167851419744082e+06 5.085558302460505627e+06 -2.860814060876463540e+06 +-2.565237670173520688e+06 5.085434002477586269e+06 -2.860971352741848212e+06 +-2.564702521526901517e+06 5.085593998690306209e+06 -2.861165418487836607e+06 +-2.565167665620111860e+06 5.085382790654095821e+06 -2.861124116142606363e+06 +-2.564661222936455626e+06 5.085616534757972695e+06 -2.861162400969970971e+06 +-2.564696030948051717e+06 5.085616499201207422e+06 -2.861131471365736332e+06 +-2.564659007001691032e+06 5.085687937078983523e+06 -2.861038304854982067e+06 +-2.564848885944893118e+06 5.085478309196855873e+06 -2.861239347425703891e+06 +-2.565197925397377461e+06 5.085496669833746739e+06 -2.860896101868717466e+06 +-2.565074940240499098e+06 5.085394310701413080e+06 -2.861186352496007923e+06 +-2.565239597856919747e+06 5.085552339847830124e+06 -2.860760686764131300e+06 +-2.565111620137209073e+06 5.085662391127491370e+06 -2.860680342222239356e+06 +-2.564660189436009619e+06 5.085708810130127706e+06 -2.861000396805474069e+06 +-2.565249409816751722e+06 5.085394967028984800e+06 -2.861029817989191972e+06 +-2.564813578579038847e+06 5.085763684341633692e+06 -2.860766910613437183e+06 +-2.565052531822402962e+06 5.085713661030531861e+06 -2.860642432980991434e+06 +-2.564874780870786868e+06 5.085762083054061979e+06 -2.860715233700911980e+06 +-2.564703437542265747e+06 5.085634554647320881e+06 -2.861092997838321608e+06 +-2.565147467052685097e+06 5.085369691791313700e+06 -2.861165229892993812e+06 +-2.564879208650644403e+06 5.085487905623099767e+06 -2.861195405028159730e+06 +-2.565066736041015945e+06 5.085378045449773781e+06 -2.861222373987529892e+06 +-2.565262403889716137e+06 5.085445986931886524e+06 -2.860928163705044892e+06 +-2.565146731616228353e+06 5.085410334723633714e+06 -2.861094129414513241e+06 +-2.565177112068741117e+06 5.085588450995547697e+06 -2.860752576894779690e+06 +-2.565211288098760415e+06 5.085459166853604838e+06 -2.860950418338354211e+06 +-2.565002647305506747e+06 5.085690545762799680e+06 -2.860727681445807684e+06 +-2.565212009037577547e+06 5.085581849940161221e+06 -2.860733150905171875e+06 +-2.565188852899078280e+06 5.085527521974015050e+06 -2.860849706345718354e+06 +-2.564642918241467793e+06 5.085753728478499688e+06 -2.860936462047974579e+06 +-2.564607252328012139e+06 5.085708268182990141e+06 -2.861048489085579757e+06 +-2.565363697872906458e+06 5.085340305534115992e+06 -2.861024537269507535e+06 +-2.564534639826849103e+06 5.085725978444049135e+06 -2.861081870666448958e+06 +-2.565110575676965527e+06 5.085731057292565703e+06 -2.860560012951393612e+06 +-2.564957124648598954e+06 5.085369556805786677e+06 -2.861334963987919968e+06 +-2.564701311775206588e+06 5.085510753628404811e+06 -2.861313464475871995e+06 +-2.564829396025283728e+06 5.085441349562894553e+06 -2.861321951130215544e+06 +-2.565317291795372032e+06 5.085317354892152362e+06 -2.861106388149378821e+06 +-2.564560188878418412e+06 5.085673893696030602e+06 -2.861151085270852316e+06 +-2.565007041287456173e+06 5.085796946109651588e+06 -2.860535871502546128e+06 +-2.564743342368246056e+06 5.085818115620813332e+06 -2.860733339507172350e+06 +-2.565227161344453227e+06 5.085315497775263153e+06 -2.861189935790845659e+06 +-2.565090183324645273e+06 5.085323487847471610e+06 -2.861297811296819709e+06 +-2.565379750382818747e+06 5.085377178363803774e+06 -2.860945137581844348e+06 +-2.565130254502128344e+06 5.085706072978758253e+06 -2.860586606206904631e+06 +-2.565036486216595396e+06 5.085373647485600784e+06 -2.861257075211889111e+06 +-2.564638000625175890e+06 5.085806300972235389e+06 -2.860848008944950998e+06 +-2.565260107821286656e+06 5.085352183316268027e+06 -2.861095826778590214e+06 +-2.564634064915763214e+06 5.085830501033573411e+06 -2.860808780056713149e+06 +-2.565057440081342589e+06 5.085349511405780911e+06 -2.861281026538742241e+06 +-2.565014278844696935e+06 5.085358248836721294e+06 -2.861304034852514043e+06 +-2.564867009415955283e+06 5.085384561981204897e+06 -2.861388712590395473e+06 +-2.565170853917506989e+06 5.085333538953194395e+06 -2.861208229436385911e+06 +-2.564860189347553533e+06 5.085837580445903353e+06 -2.860594904798747506e+06 +-2.564684055091909599e+06 5.085835303924744017e+06 -2.860755783122887835e+06 +-2.564765926698113792e+06 5.085468766142535023e+06 -2.861330060594009701e+06 +-2.564619926857121754e+06 5.085741824362128042e+06 -2.860977953671906143e+06 +-2.565043043515230529e+06 5.085753797525817528e+06 -2.860580005049983505e+06 +-2.565315360224901699e+06 5.085478555401105434e+06 -2.860823490905640647e+06 +-2.565303864783355501e+06 5.085443978795736097e+06 -2.860894781673521735e+06 +-2.564675140864260495e+06 5.085805835670034401e+06 -2.860815758282291703e+06 +-2.565269869444599375e+06 5.085625825737723149e+06 -2.860603957801134791e+06 +-2.564655233634454198e+06 5.085528863706463948e+06 -2.861322516906946898e+06 +-2.564638455602386035e+06 5.085606759240022860e+06 -2.861199931291536428e+06 +-2.564633522388604935e+06 5.085780575919694267e+06 -2.860897422063760459e+06 +-2.565282734656607267e+06 5.085366726942474954e+06 -2.861049997859708034e+06 +-2.565338188447480090e+06 5.085390774187928997e+06 -2.860958150870254263e+06 +-2.565352139478156343e+06 5.085467265542462468e+06 -2.860810666064047720e+06 +-2.565379707294637337e+06 5.085405720052541234e+06 -2.860894781673521735e+06 +-2.564919572496863548e+06 5.085407939739503898e+06 -2.861300640186193399e+06 +-2.564589063123784028e+06 5.085609875996264629e+06 -2.861238404457580764e+06 +-2.564970274054758251e+06 5.085803207725472748e+06 -2.860557561087830458e+06 +-2.564666321436097380e+06 5.085559271588484757e+06 -2.861258961144965142e+06 +-2.565240360079502221e+06 5.085624583396750502e+06 -2.860632436990880407e+06 +-2.565279910193252843e+06 5.085571630998723209e+06 -2.860690715375714470e+06 +-2.564888678014061879e+06 5.085430892820377834e+06 -2.861287627289252821e+06 +-2.565326388662167825e+06 5.085362331055446528e+06 -2.861018879352841992e+06 +-2.564664876683678012e+06 5.085866335450472310e+06 -2.860718062735037878e+06 +-2.565193945543580689e+06 5.085426469763925299e+06 -2.861023594283592422e+06 +-2.564752856643854175e+06 5.085447903240646236e+06 -2.861378528664150275e+06 +-2.564804160751335789e+06 5.085473839553085156e+06 -2.861287061510787811e+06 +-2.564537333106434438e+06 5.085795329434982501e+06 -2.860957019280548207e+06 +-2.564945362691184506e+06 5.085354657632040791e+06 -2.861371739374924917e+06 +-2.564594935574541800e+06 5.085773118488041684e+06 -2.860944948983352631e+06 +-2.564971476400570944e+06 5.085384538216461428e+06 -2.861295736777498387e+06 +-2.565204204657893628e+06 5.085699424920903519e+06 -2.860532476607197430e+06 +-2.565165524641817436e+06 5.085727158233934082e+06 -2.860517953987893648e+06 +-2.565197297349158674e+06 5.085672257329187356e+06 -2.860586606206904631e+06 +-2.565157402089295909e+06 5.085680738861325197e+06 -2.860607164071088191e+06 +-2.565169029946362134e+06 5.085702108055351302e+06 -2.860559069927008823e+06 +-2.565233053423988167e+06 5.085667358441487886e+06 -2.860563407838534098e+06 +-2.564492876854986884e+06 5.085771177305332385e+06 -2.861039247839679942e+06 +-2.564564865848054178e+06 5.085733701381890103e+06 -2.861041322405738756e+06 +-2.564515630135315936e+06 5.085785979432591237e+06 -2.860992852899966761e+06 +-2.564476294395932462e+06 5.085751767712784931e+06 -2.861088282936313190e+06 +-2.564454969961541239e+06 5.085778542341266759e+06 -2.861059993483259808e+06 +-2.564541500118097290e+06 5.085759796643287875e+06 -2.861016050393454731e+06 +-2.565199077523166779e+06 5.085261508256188594e+06 -2.861310258404806722e+06 +-2.565166044376334641e+06 5.085288640559510328e+06 -2.861291776330472436e+06 +-2.565181361956670415e+06 5.085308902846344747e+06 -2.861242364923174493e+06 +-2.565129202627686318e+06 5.085296434717941098e+06 -2.861310824182119220e+06 +-2.565200187687620521e+06 5.085283916513055563e+06 -2.861269710957532283e+06 +-2.565129033949448261e+06 5.085317992324412800e+06 -2.861272917040016502e+06 +-2.564899990569390357e+06 5.085901342251933180e+06 -2.860446849467633758e+06 +-2.564872192792725284e+06 5.085932127275080420e+06 -2.860417238170440774e+06 +-2.564907929875294678e+06 5.085923822624049149e+06 -2.860400074899244588e+06 +-2.564847289104396477e+06 5.085956860390772112e+06 -2.860395736925506499e+06 +-2.564940405636249110e+06 5.085924210562469438e+06 -2.860370463480440434e+06 +-2.564888484670823906e+06 5.085967801623818465e+06 -2.860339720333601348e+06 +-2.564351060830127448e+06 5.086121647853259929e+06 -2.860546621997806709e+06 +-2.564314217606621329e+06 5.086159765991238877e+06 -2.860512107213853858e+06 +-2.564432528504781425e+06 5.086108017317928374e+06 -2.860498150386269670e+06 +-2.564373230281200726e+06 5.086138662766997702e+06 -2.860496830144937616e+06 +-2.564335614106442779e+06 5.086175248220603913e+06 -2.860465710126346909e+06 +-2.564409154444120359e+06 5.086140839858755469e+06 -2.860460994964597281e+06 +-2.563770699545195326e+06 5.086114442952997051e+06 -2.861076024181954097e+06 +-2.563808635502498597e+06 5.086097029193799943e+06 -2.861073006640395150e+06 +-2.563732177665954456e+06 5.086155969080958515e+06 -2.861036984676274471e+06 +-2.563810296447793953e+06 5.086120543463408947e+06 -2.861030006586278323e+06 +-2.563773776984580792e+06 5.086140767681778409e+06 -2.861026800435386132e+06 +-2.563791801446293481e+06 5.086152935837176628e+06 -2.860989269543100148e+06 +-2.563448637620773632e+06 5.085728245049253106e+06 -2.862044425104507711e+06 +-2.563491331153924577e+06 5.085711853620017879e+06 -2.862035373247589916e+06 +-2.563505690788409673e+06 5.085728547685131431e+06 -2.861993131153439637e+06 +-2.563548126664564479e+06 5.085711644550000317e+06 -2.861985210743329488e+06 +-2.563450896099551581e+06 5.085766423528449610e+06 -2.861975027350801509e+06 +-2.563492806366210803e+06 5.085768696106236428e+06 -2.861933727943241596e+06 +-2.564407275783585850e+06 5.085584573304153048e+06 -2.861444912612097804e+06 +-2.564463577996207867e+06 5.085558105402682908e+06 -2.861441517987788655e+06 +-2.564501863764544949e+06 5.085543072194832377e+06 -2.861433974374587182e+06 +-2.564448436158972792e+06 5.085581978507384658e+06 -2.861412852231027093e+06 +-2.564487366285871714e+06 5.085568222914820537e+06 -2.861402479735465255e+06 +-2.564434536416071001e+06 5.085615052851465531e+06 -2.861366835996855516e+06 +-2.564732190696759615e+06 5.085206511882774532e+06 -2.861823029705181252e+06 +-2.564653051366609521e+06 5.085246638849613257e+06 -2.861822652537282091e+06 +-2.564692548367090989e+06 5.085235694005402736e+06 -2.861806811474248301e+06 +-2.564661299364042934e+06 5.085262993147986010e+06 -2.861786444360804744e+06 +-2.564743284470367245e+06 5.085230192102159373e+06 -2.861771357586607803e+06 +-2.564700074134704657e+06 5.085259036691372283e+06 -2.861758910982838366e+06 +-2.565402953925886657e+06 5.084791754374470562e+06 -2.861957866427960806e+06 +-2.565363134988135658e+06 5.084812164388301782e+06 -2.861957300682811532e+06 +-2.565323636526704766e+06 5.084843311703934334e+06 -2.861937499584854115e+06 +-2.565386819322131574e+06 5.084818701494135894e+06 -2.861924675998271443e+06 +-2.565342451096335426e+06 5.084858716985978186e+06 -2.861893559882523026e+06 +-2.565401979202948976e+06 5.084840331440685317e+06 -2.861873004341211170e+06 +-2.566323944465247449e+06 5.084547973552505486e+06 -2.861567872765738517e+06 +-2.566317634990216233e+06 5.084570818782129325e+06 -2.861533172488814685e+06 +-2.566354732797338627e+06 5.084556795806099661e+06 -2.861524874580833130e+06 +-2.566292163487731479e+06 5.084604510532205924e+06 -2.861496397623350844e+06 +-2.566361813649557065e+06 5.084575874049988575e+06 -2.861484893666680902e+06 +-2.566329679214407690e+06 5.084609830098422244e+06 -2.861453587758512702e+06 +-2.565516912341038231e+06 5.085207890565876849e+06 -2.861121852996071335e+06 +-2.565485006892333273e+06 5.085238942415605299e+06 -2.861095449586595409e+06 +-2.565447999258455355e+06 5.085261564950213768e+06 -2.861088471532431897e+06 +-2.565524354560924228e+06 5.085224325872937217e+06 -2.861086208378811367e+06 +-2.565507826581405476e+06 5.085257233684673905e+06 -2.861042831180816516e+06 +-2.565548990983265918e+06 5.085241166275279596e+06 -2.861034532915411517e+06 +-2.565800480672820937e+06 5.085337207795611583e+06 -2.860640924152857158e+06 +-2.565742124038141221e+06 5.085374768605946563e+06 -2.860626590275616851e+06 +-2.565779966582397465e+06 5.085363899855810218e+06 -2.860612067776328884e+06 +-2.565727873240542598e+06 5.085405456230113283e+06 -2.860585097371374257e+06 +-2.565823426041558851e+06 5.085362479636033997e+06 -2.860575855749388225e+06 +-2.565800041328683496e+06 5.085391901402460411e+06 -2.860544735946740489e+06 +-2.565737713994278572e+06 5.085744903965827078e+06 -2.859976831765576731e+06 +-2.565713224530672189e+06 5.085782245567842387e+06 -2.859932695880950429e+06 +-2.565659582268981263e+06 5.085814005369132385e+06 -2.859924396806621458e+06 +-2.565765838613154832e+06 5.085763603860078380e+06 -2.859918738343385980e+06 +-2.565687423026372679e+06 5.085820355164065026e+06 -2.859888371209339704e+06 +-2.565735835447481368e+06 5.085801804677296430e+06 -2.859877997325122356e+06 +-2.565040201517608948e+06 5.086406779451099224e+06 -2.859429082014364190e+06 +-2.564988497585937846e+06 5.086437336670010351e+06 -2.859421159820654429e+06 +-2.565077031986144837e+06 5.086404005393553525e+06 -2.859401165688229725e+06 +-2.565032858918562066e+06 5.086437704093784094e+06 -2.859380982896334492e+06 +-2.565060731643849052e+06 5.086442436263645068e+06 -2.859347784955273848e+06 +-2.565004224477873649e+06 5.086471892822944559e+06 -2.859346087330687791e+06 diff --git a/py21cmsense/data/antpos/layout_ecef_SKA_core.txt b/py21cmsense/data/antpos/layout_ecef_SKA_core.txt new file mode 100644 index 0000000..b55f2fc --- /dev/null +++ b/py21cmsense/data/antpos/layout_ecef_SKA_core.txt @@ -0,0 +1,224 @@ +-2.565031668943944853e+06 5.085463458483061753e+06 -2.861102804828245193e+06 +-2.564918684477661736e+06 5.085647019469199702e+06 -2.860879316518400796e+06 +-2.565009870781918522e+06 5.085524657505567186e+06 -2.861014164420139510e+06 +-2.564822515250968281e+06 5.085621393657982349e+06 -2.861010203875160776e+06 +-2.564985024936894886e+06 5.085573078753847629e+06 -2.860950795535154175e+06 +-2.564972417855422478e+06 5.085667662456432357e+06 -2.860795012193705421e+06 +-2.564951001280283090e+06 5.085620146294400096e+06 -2.860897987861589063e+06 +-2.564938182463748381e+06 5.085569466665185988e+06 -2.860998888024772517e+06 +-2.565066833286866546e+06 5.085560122163771652e+06 -2.860900816850310192e+06 +-2.564829991432369221e+06 5.085673272313933820e+06 -2.860911944199128076e+06 +-2.564876341431571636e+06 5.085650644279894419e+06 -2.860910624005768914e+06 +-2.565126978715419304e+06 5.085566528603579849e+06 -2.860835938532195520e+06 +-2.564930973128353246e+06 5.085541698887029663e+06 -2.861054335584214423e+06 +-2.564971092680858914e+06 5.085535350281274877e+06 -2.861029817989191972e+06 +-2.564916939598376397e+06 5.085609874731803313e+06 -2.860946457771202084e+06 +-2.564768389477732591e+06 5.085679131972715259e+06 -2.860956453485653270e+06 +-2.565008288537031040e+06 5.085602361207913607e+06 -2.860878373520457186e+06 +-2.565109429846429266e+06 5.085541841363469139e+06 -2.860895158872165252e+06 +-2.564900616675513797e+06 5.085584247260901146e+06 -2.861006243328803685e+06 +-2.564995459376724903e+06 5.085549978021821938e+06 -2.860982291423859075e+06 +-2.565106131512906868e+06 5.085515092648915946e+06 -2.860945326180333272e+06 +-2.565116283204396721e+06 5.085472907087035477e+06 -2.861010769667385146e+06 +-2.565003668868971057e+06 5.085502256333046593e+06 -2.861059239096883219e+06 +-2.564938954325326718e+06 5.085665314435349777e+06 -2.860828960318984464e+06 +-2.565081561241729185e+06 5.085596058822964318e+06 -2.860824245307636447e+06 +-2.564905474216336384e+06 5.085696618846840225e+06 -2.860803499234514311e+06 +-2.564990080823199823e+06 5.085631945202350616e+06 -2.860842350940564647e+06 +-2.564942083024833817e+06 5.085496359061223455e+06 -2.861124493333651219e+06 +-2.564881660671466496e+06 5.085558451626865193e+06 -2.861068668923002668e+06 +-2.565042548196761869e+06 5.085602918977120891e+06 -2.860846877344298642e+06 +-2.565036672972853296e+06 5.085498641497836448e+06 -2.861036230288373306e+06 +-2.565057130032367073e+06 5.085628461376357824e+06 -2.860788788359759841e+06 +-2.564858744279741775e+06 5.085545014039921574e+06 -2.861112800405434798e+06 +-2.565148825095360167e+06 5.085520581933998503e+06 -2.860897610663039610e+06 +-2.564860635809483472e+06 5.085592554878111929e+06 -2.861027177629656158e+06 +-2.564796378190475516e+06 5.085601569434136152e+06 -2.861068480326557066e+06 +-2.565027086224599741e+06 5.085550368900774978e+06 -2.860953435912403744e+06 +-2.564842184046437033e+06 5.085638497833898291e+06 -2.860962488629752304e+06 +-2.564981940313647036e+06 5.085474333511945792e+06 -2.861127888052497525e+06 +-2.564781424594737124e+06 5.085701610614906065e+06 -2.860905154631650541e+06 +-2.564880037650931627e+06 5.085629340481856838e+06 -2.860944948983352631e+06 +-2.565149973307237029e+06 5.085499280914148316e+06 -2.860934198864139616e+06 +-2.564752014376162086e+06 5.085651714769380167e+06 -2.861019445144634694e+06 +-2.565015297410710715e+06 5.085574152668216266e+06 -2.860921939943878446e+06 +-2.564848165905914269e+06 5.085529092153008096e+06 -2.861150330890511163e+06 +-2.564815251418421045e+06 5.085708049152571708e+06 -2.860863662742435932e+06 +-2.565074077521225438e+06 5.085456595507477410e+06 -2.861077155759832356e+06 +-2.564784757780021522e+06 5.085654321345009841e+06 -2.860985686185105238e+06 +-2.565010020543314517e+06 5.085666427174360491e+06 -2.860763704388462007e+06 +-2.565111263369626366e+06 5.085449482321002521e+06 -2.861056598744170275e+06 +-2.565019761969660409e+06 5.085633530472217128e+06 -2.860813117873115931e+06 +-2.564901274849844165e+06 5.085529972945391200e+06 -2.861101484657016117e+06 +-2.564864406315716449e+06 5.085685929356712848e+06 -2.860858947745457757e+06 +-2.565066756312487647e+06 5.085539759716690518e+06 -2.860936839245236944e+06 +-2.565152713306276128e+06 5.085474399480861612e+06 -2.860975690496317577e+06 +-2.564783568143227138e+06 5.085625013475629501e+06 -2.861038493451927789e+06 +-2.564966482874211855e+06 5.085509368724735454e+06 -2.861079796107778326e+06 +-2.564833187103439122e+06 5.085573498917367309e+06 -2.861085265398003627e+06 +-2.564956514077174477e+06 5.085597392113941722e+06 -2.860933255870741326e+06 +-2.565071296309594065e+06 5.085503289039813913e+06 -2.860997190646244213e+06 +-2.564790692318393849e+06 5.085580189537048340e+06 -2.861111291639628820e+06 +-2.564816441344963852e+06 5.085555453528936952e+06 -2.861132037151934579e+06 +-2.564869740522690583e+06 5.085610607656907290e+06 -2.860987194967556279e+06 +-2.564865790199197829e+06 5.085712253713503480e+06 -2.860811231866187416e+06 +-2.564943721072413027e+06 5.085696661309406161e+06 -2.860769362431926653e+06 +-2.564900374414217193e+06 5.085499556234762073e+06 -2.861155988741850946e+06 +-2.564807891595561057e+06 5.085661453437081538e+06 -2.860952492920599412e+06 +-2.565094729069590569e+06 5.085612060628478415e+06 -2.860784261932934169e+06 +-2.565090545645996463e+06 5.085571767372040078e+06 -2.860859136345374864e+06 +-2.564954053997975308e+06 5.085641357198608108e+06 -2.860857816145893186e+06 +-2.565080130896460265e+06 5.085475333215919323e+06 -2.861038682048870251e+06 +-2.565150309530966915e+06 5.085542050118084997e+06 -2.860858381945689674e+06 +-2.564947551769882906e+06 5.085473518549592234e+06 -2.861159949236116372e+06 +-2.564758832114035729e+06 5.085619756978317164e+06 -2.861069800501612481e+06 +-2.565038831868367735e+06 5.085526499806613661e+06 -2.860985120391634293e+06 +-2.565113363840877544e+06 5.085409860717038624e+06 -2.861124681929169688e+06 +-2.565110233398008626e+06 5.085390182083250955e+06 -2.861162212375077419e+06 +-2.564816649780262727e+06 5.085788302308301441e+06 -2.860720703166254796e+06 +-2.565040798995846882e+06 5.085420931838812307e+06 -2.861169756168366875e+06 +-2.564689763227723073e+06 5.085772508065900765e+06 -2.860861588144006208e+06 +-2.564966824560173322e+06 5.085408997521388344e+06 -2.861256698025236372e+06 +-2.564768964610359166e+06 5.085552265276964754e+06 -2.861179940281378105e+06 +-2.565273137798000127e+06 5.085502630925651640e+06 -2.860818587291443255e+06 +-2.564742085955985356e+06 5.085579814096907154e+06 -2.861155234361834824e+06 +-2.565198133884951472e+06 5.085561078608284704e+06 -2.860782187320037745e+06 +-2.564811375114296563e+06 5.085516776005988009e+06 -2.861204834741496947e+06 +-2.564700296302116476e+06 5.085663697062175721e+06 -2.861044339955695439e+06 +-2.564951906261759810e+06 5.085441732485753484e+06 -2.861212189912477974e+06 +-2.564852066896831151e+06 5.085754100016427226e+06 -2.860749559267500415e+06 +-2.564670620482880622e+06 5.085758129816583358e+06 -2.860904023036677856e+06 +-2.564730585914792027e+06 5.085558695165596902e+06 -2.861202760205233470e+06 +-2.564684336991427466e+06 5.085729744146300480e+06 -2.860941931407053955e+06 +-2.564897395532726776e+06 5.085774921956272796e+06 -2.860672420898676850e+06 +-2.565209007710045669e+06 5.085382232839105651e+06 -2.861088282936313190e+06 +-2.564735652152310126e+06 5.085728752690519206e+06 -2.860897987861589063e+06 +-2.564729505850457586e+06 5.085788993761171587e+06 -2.860797086804265156e+06 +-2.565101326466259081e+06 5.085636930045739748e+06 -2.860734471119107213e+06 +-2.565233937185638584e+06 5.085470386937052011e+06 -2.860910435406704433e+06 +-2.565014637612892315e+06 5.085404430407638662e+06 -2.861222185393630061e+06 +-2.565030999936013483e+06 5.085443606826604344e+06 -2.861138449393543880e+06 +-2.564953121738062240e+06 5.085743933647350408e+06 -2.860677513178742025e+06 +-2.564899844578120392e+06 5.085735985488004982e+06 -2.860738997565724421e+06 +-2.565177767229226884e+06 5.085411237020880915e+06 -2.861064896993492264e+06 +-2.565180832281858195e+06 5.085607615450083278e+06 -2.860715422303208616e+06 +-2.564963379477034323e+06 5.085712059435933828e+06 -2.860724663811931852e+06 +-2.564762549695384223e+06 5.085792195410930552e+06 -2.860762006974874530e+06 +-2.565223091177362949e+06 5.085502774866161868e+06 -2.860862908343050629e+06 +-2.564723727401877753e+06 5.085678156782836653e+06 -2.860997945036732592e+06 +-2.565152998286153190e+06 5.085631587725983001e+06 -2.860697882276231889e+06 +-2.565069336548573803e+06 5.085676241685950197e+06 -2.860693544415931683e+06 +-2.564735655234899372e+06 5.085612538928204216e+06 -2.861103182019996457e+06 +-2.564907256057229824e+06 5.085464359353723936e+06 -2.861212001318409108e+06 +-2.564780534250471275e+06 5.085512888457812369e+06 -2.861239158832085319e+06 +-2.564763994448255748e+06 5.085763056829772890e+06 -2.860812174869690556e+06 +-2.564644141692092642e+06 5.085671934379919432e+06 -2.861079796107778326e+06 +-2.564818884854208678e+06 5.085727044182884507e+06 -2.860826885714231525e+06 +-2.565074917120131664e+06 5.085426262309979647e+06 -2.861129962602404878e+06 +-2.565002422083742917e+06 5.085732205791981891e+06 -2.860654314995558001e+06 +-2.565215812458260451e+06 5.085535499047357589e+06 -2.860811609067597892e+06 +-2.565154940340175293e+06 5.085441765058610588e+06 -2.861031326765794773e+06 +-2.564742710919852369e+06 5.085752856139629148e+06 -2.860849140545490663e+06 +-2.565027693686779123e+06 5.085698099366210401e+06 -2.860692035594569985e+06 +-2.565167851419744082e+06 5.085558302460505627e+06 -2.860814060876463540e+06 +-2.565237670173520688e+06 5.085434002477586269e+06 -2.860971352741848212e+06 +-2.564702521526901517e+06 5.085593998690306209e+06 -2.861165418487836607e+06 +-2.565167665620111860e+06 5.085382790654095821e+06 -2.861124116142606363e+06 +-2.564661222936455626e+06 5.085616534757972695e+06 -2.861162400969970971e+06 +-2.564696030948051717e+06 5.085616499201207422e+06 -2.861131471365736332e+06 +-2.564659007001691032e+06 5.085687937078983523e+06 -2.861038304854982067e+06 +-2.564848885944893118e+06 5.085478309196855873e+06 -2.861239347425703891e+06 +-2.565197925397377461e+06 5.085496669833746739e+06 -2.860896101868717466e+06 +-2.565074940240499098e+06 5.085394310701413080e+06 -2.861186352496007923e+06 +-2.565239597856919747e+06 5.085552339847830124e+06 -2.860760686764131300e+06 +-2.565111620137209073e+06 5.085662391127491370e+06 -2.860680342222239356e+06 +-2.564660189436009619e+06 5.085708810130127706e+06 -2.861000396805474069e+06 +-2.565249409816751722e+06 5.085394967028984800e+06 -2.861029817989191972e+06 +-2.564813578579038847e+06 5.085763684341633692e+06 -2.860766910613437183e+06 +-2.565052531822402962e+06 5.085713661030531861e+06 -2.860642432980991434e+06 +-2.564874780870786868e+06 5.085762083054061979e+06 -2.860715233700911980e+06 +-2.564703437542265747e+06 5.085634554647320881e+06 -2.861092997838321608e+06 +-2.565147467052685097e+06 5.085369691791313700e+06 -2.861165229892993812e+06 +-2.564879208650644403e+06 5.085487905623099767e+06 -2.861195405028159730e+06 +-2.565066736041015945e+06 5.085378045449773781e+06 -2.861222373987529892e+06 +-2.565262403889716137e+06 5.085445986931886524e+06 -2.860928163705044892e+06 +-2.565146731616228353e+06 5.085410334723633714e+06 -2.861094129414513241e+06 +-2.565177112068741117e+06 5.085588450995547697e+06 -2.860752576894779690e+06 +-2.565211288098760415e+06 5.085459166853604838e+06 -2.860950418338354211e+06 +-2.565002647305506747e+06 5.085690545762799680e+06 -2.860727681445807684e+06 +-2.565212009037577547e+06 5.085581849940161221e+06 -2.860733150905171875e+06 +-2.565188852899078280e+06 5.085527521974015050e+06 -2.860849706345718354e+06 +-2.564642918241467793e+06 5.085753728478499688e+06 -2.860936462047974579e+06 +-2.564607252328012139e+06 5.085708268182990141e+06 -2.861048489085579757e+06 +-2.565363697872906458e+06 5.085340305534115992e+06 -2.861024537269507535e+06 +-2.564534639826849103e+06 5.085725978444049135e+06 -2.861081870666448958e+06 +-2.565110575676965527e+06 5.085731057292565703e+06 -2.860560012951393612e+06 +-2.564957124648598954e+06 5.085369556805786677e+06 -2.861334963987919968e+06 +-2.564701311775206588e+06 5.085510753628404811e+06 -2.861313464475871995e+06 +-2.564829396025283728e+06 5.085441349562894553e+06 -2.861321951130215544e+06 +-2.565317291795372032e+06 5.085317354892152362e+06 -2.861106388149378821e+06 +-2.564560188878418412e+06 5.085673893696030602e+06 -2.861151085270852316e+06 +-2.565007041287456173e+06 5.085796946109651588e+06 -2.860535871502546128e+06 +-2.564743342368246056e+06 5.085818115620813332e+06 -2.860733339507172350e+06 +-2.565227161344453227e+06 5.085315497775263153e+06 -2.861189935790845659e+06 +-2.565090183324645273e+06 5.085323487847471610e+06 -2.861297811296819709e+06 +-2.565379750382818747e+06 5.085377178363803774e+06 -2.860945137581844348e+06 +-2.565130254502128344e+06 5.085706072978758253e+06 -2.860586606206904631e+06 +-2.565036486216595396e+06 5.085373647485600784e+06 -2.861257075211889111e+06 +-2.564638000625175890e+06 5.085806300972235389e+06 -2.860848008944950998e+06 +-2.565260107821286656e+06 5.085352183316268027e+06 -2.861095826778590214e+06 +-2.564634064915763214e+06 5.085830501033573411e+06 -2.860808780056713149e+06 +-2.565057440081342589e+06 5.085349511405780911e+06 -2.861281026538742241e+06 +-2.565014278844696935e+06 5.085358248836721294e+06 -2.861304034852514043e+06 +-2.564867009415955283e+06 5.085384561981204897e+06 -2.861388712590395473e+06 +-2.565170853917506989e+06 5.085333538953194395e+06 -2.861208229436385911e+06 +-2.564860189347553533e+06 5.085837580445903353e+06 -2.860594904798747506e+06 +-2.564684055091909599e+06 5.085835303924744017e+06 -2.860755783122887835e+06 +-2.564765926698113792e+06 5.085468766142535023e+06 -2.861330060594009701e+06 +-2.564619926857121754e+06 5.085741824362128042e+06 -2.860977953671906143e+06 +-2.565043043515230529e+06 5.085753797525817528e+06 -2.860580005049983505e+06 +-2.565315360224901699e+06 5.085478555401105434e+06 -2.860823490905640647e+06 +-2.565303864783355501e+06 5.085443978795736097e+06 -2.860894781673521735e+06 +-2.564675140864260495e+06 5.085805835670034401e+06 -2.860815758282291703e+06 +-2.565269869444599375e+06 5.085625825737723149e+06 -2.860603957801134791e+06 +-2.564655233634454198e+06 5.085528863706463948e+06 -2.861322516906946898e+06 +-2.564638455602386035e+06 5.085606759240022860e+06 -2.861199931291536428e+06 +-2.564633522388604935e+06 5.085780575919694267e+06 -2.860897422063760459e+06 +-2.565282734656607267e+06 5.085366726942474954e+06 -2.861049997859708034e+06 +-2.565338188447480090e+06 5.085390774187928997e+06 -2.860958150870254263e+06 +-2.565352139478156343e+06 5.085467265542462468e+06 -2.860810666064047720e+06 +-2.565379707294637337e+06 5.085405720052541234e+06 -2.860894781673521735e+06 +-2.564919572496863548e+06 5.085407939739503898e+06 -2.861300640186193399e+06 +-2.564589063123784028e+06 5.085609875996264629e+06 -2.861238404457580764e+06 +-2.564970274054758251e+06 5.085803207725472748e+06 -2.860557561087830458e+06 +-2.564666321436097380e+06 5.085559271588484757e+06 -2.861258961144965142e+06 +-2.565240360079502221e+06 5.085624583396750502e+06 -2.860632436990880407e+06 +-2.565279910193252843e+06 5.085571630998723209e+06 -2.860690715375714470e+06 +-2.564888678014061879e+06 5.085430892820377834e+06 -2.861287627289252821e+06 +-2.565326388662167825e+06 5.085362331055446528e+06 -2.861018879352841992e+06 +-2.564664876683678012e+06 5.085866335450472310e+06 -2.860718062735037878e+06 +-2.565193945543580689e+06 5.085426469763925299e+06 -2.861023594283592422e+06 +-2.564752856643854175e+06 5.085447903240646236e+06 -2.861378528664150275e+06 +-2.564804160751335789e+06 5.085473839553085156e+06 -2.861287061510787811e+06 +-2.564537333106434438e+06 5.085795329434982501e+06 -2.860957019280548207e+06 +-2.564945362691184506e+06 5.085354657632040791e+06 -2.861371739374924917e+06 +-2.564594935574541800e+06 5.085773118488041684e+06 -2.860944948983352631e+06 +-2.564971476400570944e+06 5.085384538216461428e+06 -2.861295736777498387e+06 +-2.565204204657893628e+06 5.085699424920903519e+06 -2.860532476607197430e+06 +-2.565165524641817436e+06 5.085727158233934082e+06 -2.860517953987893648e+06 +-2.565197297349158674e+06 5.085672257329187356e+06 -2.860586606206904631e+06 +-2.565157402089295909e+06 5.085680738861325197e+06 -2.860607164071088191e+06 +-2.565169029946362134e+06 5.085702108055351302e+06 -2.860559069927008823e+06 +-2.565233053423988167e+06 5.085667358441487886e+06 -2.860563407838534098e+06 +-2.564492876854986884e+06 5.085771177305332385e+06 -2.861039247839679942e+06 +-2.564564865848054178e+06 5.085733701381890103e+06 -2.861041322405738756e+06 +-2.564515630135315936e+06 5.085785979432591237e+06 -2.860992852899966761e+06 +-2.564476294395932462e+06 5.085751767712784931e+06 -2.861088282936313190e+06 +-2.564454969961541239e+06 5.085778542341266759e+06 -2.861059993483259808e+06 +-2.564541500118097290e+06 5.085759796643287875e+06 -2.861016050393454731e+06 +-2.565199077523166779e+06 5.085261508256188594e+06 -2.861310258404806722e+06 +-2.565166044376334641e+06 5.085288640559510328e+06 -2.861291776330472436e+06 +-2.565181361956670415e+06 5.085308902846344747e+06 -2.861242364923174493e+06 +-2.565129202627686318e+06 5.085296434717941098e+06 -2.861310824182119220e+06 +-2.565200187687620521e+06 5.085283916513055563e+06 -2.861269710957532283e+06 +-2.565129033949448261e+06 5.085317992324412800e+06 -2.861272917040016502e+06 diff --git a/py21cmsense/data/antpos/layout_enu_ska_central.txt b/py21cmsense/data/antpos/layout_enu_ska_central.txt new file mode 100644 index 0000000..71a93d6 --- /dev/null +++ b/py21cmsense/data/antpos/layout_enu_ska_central.txt @@ -0,0 +1,296 @@ +1.188713789513976167e+02 -1.489198553649891323e+02 3.318276423534172181e-02 +-6.467048692287077927e+01 1.015188264690589932e+02 3.489701717828808114e-02 +7.184915048742709587e+01 -4.958953674230744468e+01 3.543825573018111186e-02 +-1.389966981939676884e+02 -4.515195058205388534e+01 3.436228063981516812e-02 +2.785989575678737751e+01 2.142098608530768900e+01 3.593939076225538543e-02 +-2.598987378523821690e+01 1.959880708470426498e+02 3.295821563942524790e-02 +-2.371429833935574294e+01 8.059628053643785961e+01 3.548068592298392332e-02 +-1.233749854779611788e+01 -3.247077139014361791e+01 3.594137078318127010e-02 +1.067383785227040107e+02 7.742574700039941149e+01 3.467169146268389568e-02 +-1.556837010061819342e+02 6.495616039328169222e+01 3.380532744833786296e-02 +-1.041094524142402804e+02 6.643607328415338031e+01 3.483963205745510550e-02 +1.575551519684331083e+02 1.501262747785306431e+02 3.231666824461854048e-02 +-6.269954420382633842e+00 -9.460482627575518677e+01 3.532836409436157510e-02 +3.241032274681469261e+01 -6.713062178927063428e+01 3.559912135032305969e-02 +-4.950124768326999458e+01 2.628174699498612554e+01 3.578997726974542104e-02 +-2.133246789191942696e+02 1.507900463561846216e+01 3.245348251497670589e-02 +3.544454760575859353e+01 1.025756438433972733e+02 3.510924194721809499e-02 +1.530036467941487501e+02 8.376547993613029064e+01 3.364982246581860181e-02 +-5.253473958892951856e+01 -4.071314758812664536e+01 3.568958179542747189e-02 +4.757926500421874749e+01 -1.387290625422812340e+01 3.584383599587237512e-02 +1.621042785140594162e+02 2.754884498414426375e+01 3.391802013062594767e-02 +1.901655558739260528e+02 -4.578663879378991908e+01 3.303830444349031836e-02 +7.639947351451088764e+01 -1.000999049649207109e+02 3.478993111723838183e-02 +-5.481091823637210325e+01 1.579467294483673925e+02 3.383619684513661241e-02 +1.037053004380792487e+02 1.632299293614632631e+02 3.309539744239486936e-02 +-9.880127631437898117e+01 1.864773987996874212e+02 3.253290750191695224e-02 +5.865122741626962011e+00 1.429416871986852016e+02 3.442442789727095942e-02 +2.406731261532068444e+01 -1.732234604275561480e+02 3.362771331669023311e-02 +-5.784348962983858655e+01 -1.106668237465893867e+02 3.480966437903987298e-02 +6.578262243237020357e+01 1.378693503497925974e+02 3.420030881413538282e-02 +1.074955319454241902e+02 -7.431660948578692683e+01 3.469614202357718113e-02 +6.729986826764589125e+01 2.029621469951346739e+02 3.243718981245535815e-02 +-7.225346123198454507e+01 -1.601205416168088789e+02 3.360812201864860072e-02 +1.977519261124526224e+02 8.101743429206433689e+01 3.245592168671862510e-02 +-9.197337907688655889e+01 -6.417215053724116558e+01 3.504933757109185422e-02 +-1.534062339740798393e+02 -1.104562831104140628e+02 3.323188250140418631e-02 +7.564174896107259372e+01 1.846202575891119935e+01 3.556126669299519705e-02 +-1.291375461143007897e+02 8.317256570142912864e+00 3.472448741306388698e-02 +6.957313361301547161e+01 -1.770277558553331403e+02 3.318896086919664867e-02 +-2.118087595247391732e+02 7.256359422558645633e+01 3.210717583402811215e-02 +-9.121560773528433685e+01 2.797223697435038048e+01 3.532291868459580542e-02 +2.083694929438642873e+02 4.001724439635222552e+01 3.250896034185757344e-02 +-2.155987992157664905e+02 -5.550870299241073980e+01 3.215230714937789003e-02 +5.440551898560563870e+01 5.375596711414603135e+01 3.557686993024944400e-02 +-7.452850734149538425e+01 -2.021772883940296879e+02 3.238192013897389643e-02 +-1.845054022889796954e+02 1.190588877728645656e+02 3.225314677209922820e-02 +1.598270795544659961e+02 -1.201780189707784245e+02 3.289773863980371971e-02 +-1.875371637104681781e+02 -1.767833565510902361e+01 3.325657046920760251e-02 +8.140528669776188053e+00 2.310705786627534621e+02 3.182596396219139478e-02 +1.962322642769223080e+02 -9.714243430286953185e+01 3.227656550207314012e-02 +3.165249460862001385e+01 1.756993919353246838e+02 3.352656462043057672e-02 +-2.750603114232120561e+01 -1.474399430457609697e+02 3.426497860782262705e-02 +-1.306556303392531504e+02 1.243430672661776555e+02 3.348134466135377352e-02 +1.158393571962482298e+02 3.705966842460158261e+01 3.487697209504858620e-02 +2.220206583269679470e+02 -6.477857942446759942e+00 3.217151832237341580e-02 +-1.754013006195708897e+02 -7.685345457865267349e+01 3.316104685355369952e-02 +3.999451602539822659e+01 -1.231358353546246036e+02 3.471686384446570628e-02 +-1.079000049002806634e+02 -1.292651034840857847e+02 3.380828850190908952e-02 +-8.545352551864402457e+00 4.107566299338429161e+01 3.589773079210800688e-02 +1.363165968576333000e+02 -3.056943851033786430e+01 3.450704746234478648e-02 +-1.488550613355210146e+02 -1.584304896648896204e+02 3.232369728304007594e-02 +-1.147254285410658952e+02 -1.816775736266834826e+02 3.240571274365322552e-02 +-9.197370556273702391e+01 -1.936800013554710631e+01 3.534411887251653894e-02 +-1.412745088932639135e+02 1.778120437336735620e+02 3.198272840633364922e-02 +-6.467111818266951673e+01 2.247302078336307432e+02 3.173112498818397853e-02 +-1.461261219376106624e+01 -2.085172880971429095e+02 3.259524755283393915e-02 +-1.700935439053616278e+02 1.951780789703133578e+01 3.373988065304533990e-02 +1.082563901906735708e+02 2.080340285380414400e+02 3.170975446874990666e-02 +1.226661934007977237e+02 1.241318071525697917e+02 3.364402787297393616e-02 +-3.054042082026162319e+01 1.256117482767393199e+02 3.472059733071830578e-02 +1.567938795974124844e+02 -7.706455005387331880e+01 3.364271636794313736e-02 +1.894096800076457612e+02 1.249763431920630126e+02 3.199575988901415258e-02 +3.923580308567696306e+01 -2.129554885510897861e+02 3.234405507240012412e-02 +-1.951201070065402234e+02 -1.119362414917387269e+02 3.206705789529706863e-02 +9.687785854788883455e+01 -1.704329324055908046e+01 3.527823257532780588e-02 +2.159502759218481742e+02 -1.734366252446759233e+02 3.001403208098452069e-02 +2.220169815804346456e+02 -2.154934647663363307e+02 2.851762728624862575e-02 +-2.193968066926009044e+02 2.792542519488757193e+02 2.612376706143493266e-02 +1.461740677635125962e+02 -2.239459737431729422e+02 3.041264536774690441e-02 +-3.255768389904424112e+02 1.213807804425656087e+02 2.657215553881542291e-02 +8.549919561879673324e+01 -3.213733385963298588e+02 2.732947879823655057e-02 +-1.556799967129671813e+02 -2.353584680750613529e+02 2.977502832987966030e-02 +3.168301670572693070e+02 1.695665872377082906e+02 2.590817712447801568e-02 +-1.920849124136964008e+02 -2.076733797698616399e+02 2.974924355146413291e-02 +2.235413798699306369e+02 2.103572561924858064e+02 2.863668358153859117e-02 +-1.018314570749288208e+02 -2.632548499577338816e+02 2.976581967654112759e-02 +-2.671719772303462150e+02 -8.340661412862583290e+01 2.989663295058164749e-02 +5.743781614325344975e+01 -2.714968451770914726e+02 2.997259037736910159e-02 +-1.723719761034789428e+02 2.469199235209310928e+02 2.890692052302767934e-02 +-3.361938500768618496e+02 7.382893583955106465e+01 2.675283182341914312e-02 +-1.928425272698830497e+02 -2.609311680610018698e+02 2.776084701218906048e-02 +-3.111640999102937712e+02 3.135017605696926069e+01 2.837403472622490597e-02 +-1.412762497360056386e+02 3.333584690164303197e+02 2.572057531040172762e-02 +3.137888485060996118e+02 -1.326499885274266433e+02 2.693711109584029373e-02 +-2.649001108560914872e+02 8.059352304986381910e+01 3.002766083682217868e-02 +-2.975159517372346727e+02 1.936598482641277883e+02 2.614846459898956255e-02 +1.029476699573181406e+02 2.638279008253434199e+02 2.972412399000745609e-02 +2.963495656182142284e+02 6.664436396373849902e+01 2.880667976457473856e-02 +1.302464807501438315e+02 -2.826984274664489476e+02 2.841318407442372518e-02 +1.272137301009142192e+02 -1.888632659210369411e+02 3.195932195471584691e-02 +-7.756547900944040919e+01 3.276528350710365203e+02 2.710983897495111705e-02 +-1.215555417402415799e+02 2.587555693360175155e+02 2.960563271160765453e-02 +2.728340256144142586e+02 -1.064428330134741145e+02 2.931267067935294790e-02 +1.871367090748370288e+02 2.851722983138396330e+02 2.688807543606230865e-02 +-5.405296809029329097e+01 2.748178978119885869e+02 2.985925816437884350e-02 +-2.694540393010286152e+02 2.329697674857098662e+02 2.607400303102735961e-02 +2.720804700104517337e+02 1.199026649635391664e+02 2.910489354566436759e-02 +-2.527627325597891286e+02 -3.141659460476942556e+01 3.095368606870430028e-02 +1.514894075005428817e+02 3.048274189070404532e+02 2.692037765102384128e-02 +5.668200124696823394e+01 3.096890261813555867e+02 2.823117236468419833e-02 +-2.125634677892166451e+02 -1.493437662213825945e+02 3.074020156491741318e-02 +7.381779871215471189e+00 -2.712853762484885465e+02 3.023580572482842399e-02 +-1.276175279568671499e+02 -3.017190365573184181e+02 2.759081704778054700e-02 +-2.550422564327367638e+02 1.767535562848404993e+02 2.848019345594821061e-02 +-3.210199294696377592e+02 -1.231398543805612036e+02 2.676910103012630771e-02 +-1.898151598506673565e+02 1.602701642547009158e+02 3.119082192247901730e-02 +1.742365064785965103e+02 -1.793535107880421151e+02 3.112466796802948465e-02 +-2.826558546608446676e+01 3.536478898788249126e+02 2.612372243152094597e-02 +2.508450596222340607e+02 1.773876612155749228e+02 2.862884318422231900e-02 +2.387051750446413223e+02 -6.882356010336826557e+01 3.119959076160228051e-02 +-2.694519550386544324e+02 1.353305622601471043e+02 2.890627497775000165e-02 +9.657500098311608383e+00 3.113798716513853151e+02 2.839284582854872951e-02 +1.977533928861567460e+02 1.746411811234004290e+02 3.057074407047366549e-02 +3.160674291670478055e+02 -1.619035210896129229e+00 2.821030423149550881e-02 +-2.337982755893771412e+02 -2.190864639485141652e+02 2.797397116113131688e-02 +2.766247447032286004e+02 -1.728037880845051291e+02 2.769003463366459528e-02 +-2.808208832817120992e+02 -2.157059764984597052e+02 2.619405940704666591e-02 +-2.497260151017802627e+02 -1.810455015897296676e+02 2.856946668070747819e-02 +-3.149536200329094413e+02 -7.664482503178039963e+01 2.780291150643421361e-02 +-5.101680636024919835e+01 -3.019298348901942859e+02 2.865273009645363800e-02 +2.523600702165419136e+02 8.270718298977483585e+01 3.050860952281908567e-02 +1.886457382376576390e+02 -2.425444908320507977e+02 2.861534979004431989e-02 +2.644983870913993087e+02 2.344492541089663291e+02 2.622682564361866753e-02 +1.006727828020769664e+02 3.244825684318502681e+02 2.695002617795694277e-02 +-3.232975096504118255e+02 -3.416562849353313425e+01 2.775645081514355184e-02 +3.441279602794888888e+02 -6.713527142836390738e+01 2.640429920474929304e-02 +-2.110529042129488744e+02 2.274760323886877700e+02 2.847155041487781091e-02 +2.482680577948706002e+01 3.669623311834459969e+02 2.538237977657331612e-02 +-1.556864196991580798e+02 2.853840656592003029e+02 2.772318753191882479e-02 +-2.512437338011490340e+02 -1.379320974926179701e+02 2.959300148624066651e-02 +2.644888876087142080e+02 -2.188757293824257601e+02 2.678324420874389489e-02 +-2.826422768916427941e+01 -2.526874513042603780e+02 3.094497460614320516e-02 +1.886451348686454708e+02 -2.829105056014311685e+02 2.694486745743063238e-02 +3.327544072860135884e+02 4.677746798847399390e+01 2.719002624640864951e-02 +2.455297387268786906e+02 -1.392000271943257701e+02 2.978769370426448404e-02 +1.924452820526793460e+02 2.435381893579373696e+02 2.846387461788424389e-02 +2.811796652719278882e+02 2.184056552238033433e+01 2.980523399111589811e-02 +-9.303965921949810536e+00 2.714365661699052907e+02 3.022682923622710405e-02 +2.265761811522917526e+02 2.653056687965469678e+02 2.647117901470608103e-02 +2.303660827975170378e+02 1.346973152871024411e+02 3.045013348339864478e-02 +-3.589461826608840056e+02 3.747777669339154727e+01 2.583250447404417116e-02 +-3.703191498316011234e+02 -8.805870653536996429e+01 2.468268569698039983e-02 +4.707871721692623055e+02 -6.122183077577460608e+01 1.837834124455284268e-02 +-4.431276747814490591e+02 -1.254682946128193635e+02 1.941395478389296159e-02 +6.881817240898993759e+01 4.593178393359095253e+02 1.904950979323416504e-02 +9.459959973155794444e+01 -4.090796773907736679e+02 2.215542220372412885e-02 +-1.973911394838962394e+02 -3.849880576711339017e+02 2.131085425804712941e-02 +-5.177484956166909313e+01 -3.944969394827454039e+02 2.356939316376838178e-02 +4.396880423137803859e+02 -1.529424209186604457e+02 1.904940560682888417e-02 +-3.968607882650239276e+02 -2.030286690701265968e+02 2.045181614572300077e-02 +-5.329540359813626793e+01 4.863694590984310366e+02 1.718318311196753712e-02 +-2.982760924079340725e+02 2.650928378379794026e+02 2.353207871918527871e-02 +3.600500201266298745e+02 -2.465636838805606885e+02 2.109296515692449248e-02 +2.341490128811828413e+02 -3.674474310434590052e+02 2.110768788858763401e-02 +4.685151625605928984e+02 2.775253079460472705e+01 1.878005528714510319e-02 +9.763975278885564535e+01 4.295186810193669089e+02 2.075971257099240574e-02 +1.636166351676077113e+02 -3.217967903267208385e+02 2.578355536229537393e-02 +-3.870116260164856499e+02 1.365955468577013789e+02 2.283358225294307431e-02 +3.729463833552328538e+02 -1.411052121887126418e+02 2.357230307958957383e-02 +-4.014235609688146269e+02 1.805538745863565850e+02 2.084544690231382447e-02 +1.931946733497885873e+02 -3.486374406019714343e+02 2.353955646051986150e-02 +1.507228365744460916e+02 -3.744203929477659472e+02 2.321556539598645941e-02 +7.381664042274238113e+00 -4.693113500712088353e+02 1.868535520043224096e-02 +3.016507057190502792e+02 -2.670621708856679106e+02 2.329094661170927338e-02 +-2.027129967851168431e+02 4.202184618314312274e+02 1.890985531770184025e-02 +-3.589519401546899076e+02 2.399417680894273417e+02 2.140853734815095777e-02 +-1.207907461664542978e+02 -4.035850496928118218e+02 2.206517302960264715e-02 +-3.741136717397646407e+02 -9.017533518170477436e+00 2.506571288614090065e-02 +-1.719414277406841052e+00 4.369159656726185403e+02 2.100153292803952354e-02 +3.653708909770339801e+02 1.640704282903560056e+02 2.345848328776867220e-02 +3.706777017429179182e+02 8.418364491411941231e+01 2.471443862039279793e-02 +-3.536408686366649476e+02 1.727357136828014177e+02 2.388932680845812229e-02 +2.584343409701223209e+02 4.100731139501260145e+02 1.756033650937638413e-02 +-2.466881094382614776e+02 -3.951332653438147986e+02 1.897257628201032276e-02 +-2.967468854746789475e+02 -2.577630774154415008e+02 2.390519420626446845e-02 +-3.794254684233682156e+02 8.122462079984867955e+01 2.423895575493162369e-02 +3.865997437236736687e+02 -8.974991746249143887e+01 2.369363906866794878e-02 +4.252834330747610352e+02 1.317157972162124757e+01 2.185405454950917203e-02 +4.032938984287461608e+02 1.784404122400069355e+02 2.078729622695618673e-02 +4.556236722796105028e+02 8.418086440209545174e+01 1.921587991054707345e-02 +4.378582596166808827e+01 -3.706154413728552868e+02 2.506826821093000035e-02 +-3.422512533857418475e+02 -3.008776700840643912e+02 1.973042239690414590e-02 +-8.894333797233655048e+01 4.620651361166544575e+02 1.860142929166386239e-02 +-2.504816098488877572e+02 -3.239116193723237984e+02 2.285815292964343826e-02 +2.326459174319682290e+02 3.781612432642306771e+02 2.053350473602222337e-02 +2.918045866201532021e+02 3.128558839740819622e+02 2.165714210181590715e-02 +5.864890873468525001e+00 -3.560328779134943602e+02 2.605031369307653222e-02 +4.275564535475057255e+02 -5.488008222743373210e+01 2.147865407188476183e-02 +-3.900499227323196010e+02 2.822088954791821607e+02 1.784568604918490564e-02 +2.804194010422958172e+02 -6.015946407172753396e+01 2.959121258661667753e-02 +-1.230654670674859830e+02 -4.578995638454933896e+02 1.833654076878588057e-02 +-8.893757779929421758e+01 -3.553991686517446169e+02 2.546887312914236645e-02 +-4.719533817952894879e+02 1.443796283889164300e+01 1.857099018817454095e-02 +9.080722055906343826e+01 -4.502910345951820545e+02 1.942122216641450905e-02 +-4.105200217769591973e+02 2.796589060556352280e+01 2.277275487730889836e-02 +1.006672825890696288e+02 -3.651209159662831780e+02 2.474297132152969425e-02 +1.666610429219753655e+02 4.901725947419834029e+02 1.493729335174975859e-02 +1.196360223882116856e+02 5.064463223573081905e+02 1.471460805055357923e-02 +1.727279775025762092e+02 4.295178768301681203e+02 1.916940061221339420e-02 +1.332874546353499738e+02 4.064822722882868220e+02 2.163159340122433605e-02 +1.340464924109973595e+02 4.603740161458172224e+02 1.793640266654961124e-02 +2.068594146828720000e+02 4.555122083464013940e+02 1.634257723517862360e-02 +-5.007705209350718860e+02 -7.770753125080562995e+01 1.591594015350850100e-02 +-4.196177448521974611e+02 -8.002931616119971636e+01 2.173829530170223734e-02 +-4.871206715676968884e+02 -2.571727468125826022e+01 1.739577664874047969e-02 +-5.068358058581971477e+02 -1.326562641738979664e+02 1.452680311391674195e-02 +-5.379329155108055147e+02 -1.009564983402272276e+02 1.256490862955672583e-02 +-4.522315203560993382e+02 -5.171083717022573722e+01 1.980464083825950183e-02 +3.592877551944168317e+02 -3.813988407449663214e+02 1.446736188162844883e-02 +3.175752760284358374e+02 -3.606863610530094775e+02 1.788966355394450147e-02 +3.221272059562739969e+02 -3.053152888849905366e+02 2.056593248899218906e-02 +2.811706676643685228e+02 -3.820308800477371278e+02 1.834865013063335937e-02 +3.501879977734828344e+02 -3.359603952737452346e+02 1.754028650077543716e-02 +2.713121449468208652e+02 -3.395512402977363990e+02 2.118946346368488776e-02 +-1.958893738187350095e+02 5.861206144436448540e+02 5.973961356488644014e-03 +-2.345722828751709130e+02 6.193003595637972012e+02 1.519546462247944874e-03 +-1.989241049509425920e+02 6.385329253748559495e+02 8.248598970226339588e-04 +-2.679458401936821588e+02 6.433924722994404419e+02 -2.190136271337905782e-03 +-1.701023320034932453e+02 6.717137491566085146e+02 -1.765954368977418198e-03 +-2.360908638090538147e+02 7.061611292290357369e+02 -7.603912984734506608e-03 +-7.852185223582916933e+02 4.742987570581531713e+02 -2.998153469548014982e-02 +-8.352800749306022681e+02 5.129707978501417074e+02 -3.934361554084375712e-02 +-7.063407226870690465e+02 5.286178451093176136e+02 -2.505558419409226190e-02 +-7.730864254175696715e+02 5.300933148371409516e+02 -3.291409599680150677e-02 +-8.231479139842919039e+02 5.649612779649601180e+02 -4.218121526290019574e-02 +-7.419913943390120039e+02 5.702498137159223006e+02 -3.270350024033064074e-02 +-1.300158272571275575e+03 -1.189759291602543527e+02 -9.750135346030930350e-02 +-1.258444742797287290e+03 -1.155902555505484202e+02 -8.907795941605911594e-02 +-1.353253339119922657e+03 -7.523405805096601284e+01 -1.078687450641382384e-01 +-1.267550791773860738e+03 -6.740556774021905539e+01 -9.018541472130081615e-02 +-1.309265201809200335e+03 -6.381704008980363341e+01 -9.856886995685343322e-02 +-1.298651407437020680e+03 -2.175921721910452789e+01 -9.611703132883775424e-02 +-1.413801767925538570e+03 -1.204221610075516764e+03 -2.347585829446074968e-01 +-1.368300745187772691e+03 -1.194072244148259870e+03 -2.229248822296767685e-01 +-1.362997274362277949e+03 -1.146731368251220829e+03 -2.130625118393822959e-01 +-1.317495870903006107e+03 -1.137850229953812686e+03 -2.019099966518638212e-01 +-1.428977951279563285e+03 -1.126449966401892652e+03 -2.238625813034786916e-01 +-1.392581137230243257e+03 -1.080162302880809420e+03 -2.077733845574130100e-01 +-4.931683920191846369e+02 -5.323004386376711636e+02 -5.332160040381950239e-03 +-4.309789742267490169e+02 -5.284940335132544078e+02 -5.119154449175766786e-04 +-3.900251307304489501e+02 -5.200390830492633540e+02 2.820266222585132709e-03 +-4.552492322184642717e+02 -4.963711359188812935e+02 3.959649418447952485e-04 +-4.142954048142084389e+02 -4.847460002776144279e+02 4.083944707076625491e-03 +-4.825540100636683292e+02 -4.448050811931799444e+02 2.212355985847125339e-03 +-3.281295428231953792e+01 -9.560285887798909243e+02 -3.603212814891776361e-02 +-1.215438457346701000e+02 -9.556064502265789997e+02 -3.704149994001681989e-02 +-8.134962525182496051e+01 -9.378535189519128608e+02 -3.375523741772212816e-02 +-1.215442366229966922e+02 -9.150290606499920614e+02 -3.106334065876126260e-02 +-3.357149201381491821e+01 -8.981212749938915749e+02 -2.757991345481514145e-02 +-8.514191121322360800e+01 -8.841730406346536029e+02 -2.610159194898642454e-02 +7.528634909813879403e+02 -1.107159527595729060e+03 -1.049074692320459690e-01 +7.081194273077976504e+02 -1.106522915953570646e+03 -9.967552456424755292e-02 +6.588262369299898182e+02 -1.084329482098840572e+03 -9.056763544742807426e-02 +7.263225225974788373e+02 -1.069962024622674562e+03 -9.545391215925747019e-02 +6.686877339699774438e+02 -1.035087640027697034e+03 -8.337367086852509601e-02 +7.301177576247223442e+02 -1.012054919476196574e+03 -8.639157748348225141e-02 +1.684964178882572696e+03 -6.701972714612749087e+02 -2.217476510077744933e-01 +1.669042905389618454e+03 -6.313085045234033714e+02 -2.135781636174556297e-01 +1.708481127846988784e+03 -6.220147998955437743e+02 -2.230956395775081091e-01 +1.631128075175502545e+03 -5.900921527653025578e+02 -1.998113273122044120e-01 +1.706211974736516368e+03 -5.772103104416942188e+02 -2.182569240169129898e-01 +1.662229024995946702e+03 -5.421219227630880368e+02 -2.035576302895378831e-01 +6.672167006828673266e+02 -1.702823077735999391e+02 -1.121542955047516443e-03 +6.247460364174798997e+02 -1.406924833029944466e+02 3.901592251125407529e-03 +5.815157355910198476e+02 -1.328708242959178278e+02 8.155188296747439836e-03 +6.664603790182918601e+02 -1.303389394742268621e+02 -9.681075611212008880e-05 +6.368839341986077898e+02 -8.172913199363090087e+01 3.734854817935229221e-03 +6.808737350555932153e+02 -7.243245329325864645e+01 -6.933391772001584741e-04 +8.621702443813529726e+02 3.686236318126586866e+02 -3.289689949227181387e-02 +7.931510976568972637e+02 3.846900141802622102e+02 -2.490012293387167119e-02 +8.318338450259100227e+02 4.009607207319024837e+02 -3.083111147941508534e-02 +7.666076735225522043e+02 4.311865005726635900e+02 -2.464455855351843638e-02 +8.712768356571001505e+02 4.415353795321332768e+02 -3.878577236304181497e-02 +8.371481046469652938e+02 4.764088216937188918e+02 -3.673938383323616108e-02 +6.225325464282418579e+02 1.112766287647046511e+03 -9.184531997652811697e-02 +5.838509270607844428e+02 1.162221698640772956e+03 -9.705081674707116690e-02 +5.216534149020587847e+02 1.171523382346531434e+03 -9.337401261728928148e-02 +6.392230166020398201e+02 1.177858176233811946e+03 -1.052379799922391612e-01 +5.436519859316189240e+02 1.211888393326043342e+03 -1.027869111684935888e-01 +5.952314799518790096e+02 1.223509765906989287e+03 -1.096177699139389006e-01 +-2.983106167153466686e+02 1.726509278642704430e+03 -2.056998240669827283e-01 +-3.582359096278775041e+02 1.735383993854184155e+03 -2.112016350199610315e-01 +-2.641767537993540031e+02 1.757788335933481449e+03 -2.127792521192759523e-01 +-3.187926872032786036e+02 1.780400437265469236e+03 -2.215745962049595619e-01 +-2.960371171466666738e+02 1.817596801057983612e+03 -2.310189848867594264e-01 +-3.597553961107954024e+02 1.819497204395527206e+03 -2.348367734464318346e-01 diff --git a/py21cmsense/data/antpos/layout_enu_ska_core.txt b/py21cmsense/data/antpos/layout_enu_ska_core.txt new file mode 100644 index 0000000..330a0ff --- /dev/null +++ b/py21cmsense/data/antpos/layout_enu_ska_core.txt @@ -0,0 +1,224 @@ +1.168866256514300233e+02 -1.463996728210325386e+02 5.557154129228081274e-03 +-6.665527960460687495e+01 1.040389801518652320e+02 7.114916123903469725e-03 +6.986438156716202741e+01 -4.706936159167143785e+01 7.758592524147900349e-03 +-1.409814678116915729e+02 -4.263180858718234845e+01 6.615290099450277239e-03 +2.587511567003139135e+01 2.394115431886188361e+01 8.217859617948519713e-03 +-2.797468132157336385e+01 1.985082306115653523e+02 5.150641786372034403e-03 +-2.569908773122521239e+01 8.311644065980480889e+01 7.719626376626820274e-03 +-1.432227016012223331e+01 -2.995060947759102987e+01 8.228732865898535920e-03 +1.047535896296415956e+02 7.994592763702203797e+01 6.952456779316662505e-03 +-1.576684879381282656e+02 6.747629976390457784e+01 6.009438590162119453e-03 +-1.060942395792262971e+02 6.895622076519504162e+01 7.059193529553198232e-03 +1.555703516440105147e+02 1.526464634051077667e+02 4.584376140819301781e-03 +-8.254716261996948745e+00 -9.208466340932395156e+01 7.642278115028489083e-03 +3.042555658482108072e+01 -6.461045284029250979e+01 7.914157258049669963e-03 +-5.148602853432488757e+01 2.880190306350415952e+01 8.042459927974476841e-03 +-2.153094580075810143e+02 1.759913494171272319e+01 4.659468870465310886e-03 +3.345975475776687347e+01 1.050958132692948084e+02 7.357853682179893440e-03 +1.510188569044842666e+02 8.628566784752221963e+01 5.942458017585749985e-03 +-5.451950990506900752e+01 -3.819299199665647393e+01 7.967715875192737940e-03 +4.559449046742255973e+01 -1.135273491985398131e+01 8.142447387728068975e-03 +1.601194974643238140e+02 3.006903432671466803e+01 6.235801787784822636e-03 +1.881807863563979879e+02 -4.326644503894917193e+01 5.393923921005239208e-03 +7.441471253715492651e+01 -9.757972909900288982e+01 7.131733831052144978e-03 +-5.679571979101346813e+01 1.604668846811564720e+02 6.034761785087994213e-03 +1.017204980528804015e+02 1.657501095205033153e+02 5.341158186041639055e-03 +-1.007860823550332441e+02 1.889975471145087909e+02 4.706467241575751359e-03 +3.880323546327741013e+00 1.454618519729668833e+02 6.647817485735174614e-03 +2.208256313693946282e+01 -1.707032927912824221e+02 5.982270145722168309e-03 +-5.982824894555449902e+01 -1.081466689902587319e+02 7.113916891135829701e-03 +6.379782403475723385e+01 1.403895245459634964e+02 6.444344219197262191e-03 +1.055107669136965853e+02 -7.179642873007898629e+01 7.037379429263523889e-03 +6.531505963480020682e+01 2.054823214291854185e+02 4.655857365207793919e-03 +-7.423821277077546199e+01 -1.576003891269069186e+02 5.927525000387845466e-03 +1.957671366552842755e+02 8.353762923961281217e+01 4.763563286722671819e-03 +-9.395814570391846132e+01 -6.165200114771675288e+01 7.324520038643811404e-03 +-1.553909933224066435e+02 -1.079361433818729807e+02 5.506334730085882256e-03 +7.365696933972500915e+01 2.098220150597282441e+01 7.855768659473127968e-03 +-1.311223241401203268e+02 1.083740011549695303e+01 6.959337240775020916e-03 +6.758838473298979466e+01 -1.745075810634801883e+02 5.559178611534321135e-03 +-2.137935476524158105e+02 7.508372476991507938e+01 4.290814128488307233e-03 +-9.320038885201941525e+01 3.049238648313391309e+01 7.561758552711239645e-03 +2.063847099339200213e+02 4.253744101352920381e+01 4.836179341783264363e-03 +-2.175835672042089755e+02 -5.298857304403314572e+01 4.385607291315096745e-03 +5.242073381431548285e+01 5.627613952183086354e+01 7.850757649919160031e-03 +-7.651325226652107858e+01 -1.996571362623597850e+02 4.717310782012873460e-03 +-1.864901977280444498e+02 1.215790226106774412e+02 4.426818389099196338e-03 +1.578423217349578636e+02 -1.176578299866872328e+02 5.273454791215215209e-03 +-1.895219376480453093e+02 -1.515820129362733404e+01 5.483579417894901553e-03 +6.155715617099772885e+00 2.335907437938013231e+02 4.015076900699909856e-03 +1.942475028352811535e+02 -9.462223959434156484e+01 4.654458049159870825e-03 +2.966769026248024943e+01 1.782195607642900654e+02 5.744969475784955648e-03 +-2.949078467533125192e+01 -1.449197835191026797e+02 6.593262717956349661e-03 +-1.326404266096353410e+02 1.268632105723101233e+02 5.669664051026757079e-03 +1.138545746506492122e+02 3.957985049243082898e+01 7.176591484206795712e-03 +2.200358826284387703e+02 -3.957659178764928232e+00 4.521439362850543375e-03 +-1.773860652518874303e+02 -7.433331830884897329e+01 5.415320178737914603e-03 +3.800975867044553524e+01 -1.206156652133834228e+02 7.056490370501933285e-03 +-1.098847612911201992e+02 -1.267449565994969305e+02 6.104358065393000743e-03 +-1.053013572928463581e+01 4.359582550222469877e+01 8.157076626272186104e-03 +1.343318249467613725e+02 -2.804925322262014120e+01 6.839881057876695536e-03 +-1.508398131396669442e+02 -1.559103492210365118e+02 4.618608924410239069e-03 +-1.167101766896573594e+02 -1.791574278159389166e+02 4.720465834353149148e-03 +-9.395847923527099965e+01 -1.684785074596109666e+01 7.601515489287002936e-03 +-1.432593135711256025e+02 1.803321853693963135e+02 4.146520296913536185e-03 +-6.665593023829468677e+01 2.272503615150697556e+02 3.900112939874134099e-03 +-1.659735612189775367e+01 -2.059971265436622900e+02 4.951786733258245476e-03 +-1.720783236921486434e+02 2.203794500169640713e+01 5.957548338757945317e-03 +1.062715807605029852e+02 2.105542094121824448e+02 3.939144714848907824e-03 +1.206813971635699829e+02 1.266519902934160484e+02 5.911205444924405583e-03 +-3.252521729053417232e+01 1.281319073263982489e+02 6.939545461385421277e-03 +1.548091149981205490e+02 -7.454436154645853208e+01 6.000374693908128165e-03 +1.874248836381240153e+02 1.274965368276134683e+02 4.283357122574216191e-03 +3.725105985551795129e+01 -2.104353185300893188e+02 4.719101063301422982e-03 +-1.971048661217802191e+02 -1.094161083231322493e+02 4.329126047288411883e-03 +9.489308450980590237e+01 -1.452311415424574115e+01 7.593432661026078279e-03 +2.139655264780989796e+02 -1.709164274363979530e+02 2.428342489380952429e-03 +2.200322387505487711e+02 -2.129732660046640831e+02 9.505193888230678567e-04 +-2.213816273203274818e+02 2.817743812975960509e+02 -1.777003542542843206e-03 +1.441893262621911163e+02 -2.214257869069837170e+02 2.825308312580432357e-03 +-3.275616347928474283e+02 1.239008930947553040e+02 -1.298962891894461791e-03 +8.351446943879895457e+01 -3.188531613024296121e+02 -2.380506366250756400e-04 +-1.576647364194680563e+02 -2.328383287054284665e+02 2.098355487163416910e-03 +3.148453636778589839e+02 1.720868009076052658e+02 -1.782303116399930332e-03 +-1.940696564736410608e+02 -2.051532461248846460e+02 2.050259985907132432e-03 +2.215565700753833198e+02 2.128774551938768695e+02 9.010012254435650902e-04 +-1.038161923947503738e+02 -2.607347021204633393e+02 2.116965796460590354e-03 +-2.691567408311639156e+02 -8.088649229098110993e+01 2.124970156920369391e-03 +5.545308211940390208e+01 -2.689766722947754261e+02 2.376535524987843928e-03 +-1.743567916475311961e+02 2.494400602653753083e+02 1.033608660719664840e-03 +-3.381786384018396916e+02 7.634904682230053652e+01 -1.102711638299780361e-03 +-1.948272629544723600e+02 -2.584110345359437133e+02 8.276941538554183353e-05 +-3.131488815560323360e+02 3.387029097627385710e+01 5.431372973792036873e-04 +-1.432610788714487171e+02 3.358786106493793113e+02 -2.177380069014134278e-03 +3.118040926496411203e+02 -1.301297753353384792e+02 -6.343450168202480199e-04 +-2.668849002458169366e+02 8.311364524479472493e+01 2.191601945462195999e-03 +-2.995007589053249148e+02 1.961799653286942089e+02 -1.742620239639336432e-03 +1.009628517542315365e+02 2.663480808638992130e+02 1.929715106598450802e-03 +2.943647784223264239e+02 6.916457441423767705e+01 1.150687445960585364e-03 +1.282617484882130441e+02 -2.801782431356480743e+02 8.442168501545666004e-04 +1.252289830823902150e+02 -1.863430820657345066e+02 4.352162229153577755e-03 +-7.955030724811381049e+01 3.301729867230038735e+02 -7.660396140636294149e-04 +-1.235403591456583285e+02 2.612757140715806941e+02 1.743424645937352579e-03 +2.708492656361690933e+02 -1.039226262605576494e+02 1.718075670076757433e-03 +1.851518875162408335e+02 2.876924915899250550e+02 -8.886265821388406039e-04 +-5.603778802157903272e+01 2.773380531623753882e+02 2.011664855473327407e-03 +-2.714388526505451296e+02 2.354898889629558596e+02 -1.823960247321565475e-03 +2.700956744396550562e+02 1.224228715978564850e+02 1.420212614057447809e-03 +-2.547475043363179452e+02 -2.889647050086790969e+01 3.165865752421836987e-03 +1.495045828511896673e+02 3.073476065776279711e+02 -8.752118696406796516e-04 +5.469717583272998951e+01 3.122091989440760358e+02 4.041711267177561240e-04 +-2.145482210217449790e+02 -1.468236357962536260e+02 3.011694971689848899e-03 +5.397045814033830879e+00 -2.687652112373386899e+02 2.624101231631925657e-03 +-1.296022572275537357e+02 -2.991988927757462875e+02 -5.078641218858592765e-05 +-2.570270609430561990e+02 1.792736800292879025e+02 6.090276989425547072e-04 +-3.230046868214650999e+02 -1.206197410117007394e+02 -1.003533845349124931e-03 +-1.917999617698358179e+02 1.627902982571332871e+02 3.346482890208335448e-03 +1.722517579649291406e+02 -1.768333195387787669e+02 3.528355643595659785e-03 +-3.025041779215207072e+01 3.561680492827664466e+02 -1.747144764379982007e-03 +2.488602550121252648e+02 1.799078645104471548e+02 9.147391540409444133e-04 +2.367204091502162555e+02 -6.630335871643998757e+01 3.579449267913759059e-03 +-2.714367530353787288e+02 1.378506837388541157e+02 1.047071846500102765e-03 +7.672674418142079844e+00 3.139000370196055201e+02 5.505503892493379681e-04 +1.957685887073286892e+02 1.771613760704226479e+02 2.841220630301677375e-03 +3.140826527056994451e+02 9.011783399904300662e-01 5.875417723836262596e-04 +-2.357830178540705219e+02 -2.165663368636330688e+02 2.665467961406875474e-04 +2.746399951606853733e+02 -1.702835807361392995e+02 1.229614865678740898e-04 +-2.828056260774276325e+02 -2.131858568085519892e+02 -1.529329301831694465e-03 +-2.517107633485633187e+02 -1.785253770092396337e+02 8.419883502170932843e-04 +-3.169383846963580709e+02 -7.412471070859160704e+01 1.370607158790448921e-05 +-5.300153559812277848e+01 -2.994096790627999098e+02 1.035030489447308355e-03 +2.503752804942643877e+02 8.522738652363605638e+01 2.832561591780802246e-03 +1.866609996614917577e+02 -2.400242973179379646e+02 1.048602943626519846e-03 +2.625135735091549236e+02 2.369694595498543777e+02 -1.505684218258807050e-03 +9.868795506196386214e+01 3.270027481115751016e+02 -8.691679911123628699e-04 +-3.252822809936591284e+02 -3.164551548243646906e+01 -5.221210091299610667e-05 +3.421431941210667560e+02 -6.461505346569276753e+01 -1.183729645841680167e-03 +-2.130377166993298488e+02 2.299961630504166692e+02 5.939286972420632083e-04 +2.284197135996340933e+01 3.694824989358269249e+02 -2.477262911185107441e-03 +-1.576712412912933701e+02 2.879042050269612218e+02 -1.602046779254351350e-04 +-2.532284888277924324e+02 -1.354119731503855917e+02 1.847936618275980436e-03 +2.625041453112230556e+02 -2.163555239427692527e+02 -7.693137500268676376e-04 +-3.024896467107044629e+01 -2.501672918981361988e+02 3.314802684215578665e-03 +1.866604026405167929e+02 -2.803903120880726192e+02 -6.058556188008878962e-04 +3.307696232146769262e+02 4.929768416296476374e+01 -4.467589332470822683e-04 +2.435449838995253629e+02 -1.366798247347945221e+02 2.197611517360087419e-03 +1.904604670405171873e+02 2.460583834694209315e+02 7.053507309393580726e-04 +2.791948851210855196e+02 2.436077358782561220e+01 2.162309968099407342e-03 +-1.128878532164136317e+01 2.739567285571822026e+02 2.394493593698143741e-03 +2.245913627178315721e+02 2.678258682742933843e+02 -1.285372305289911310e-03 +2.283812848998597644e+02 1.372175153623992117e+02 2.746607839810621954e-03 +-3.609309652693887642e+02 3.999788409799332811e+01 -2.015683981184679396e-03 +-3.723039126992540560e+02 -8.553860091960294199e+01 -3.119205572076566568e-03 +4.688024050834453078e+02 -5.870159289923277868e+01 -9.172648413262152189e-03 +-4.451124317648366855e+02 -1.229482004482213426e+02 -8.395727061042634887e-03 +6.683332346861637063e+01 4.618380140033744965e+02 -8.833115150110870673e-03 +9.261488734490765751e+01 -4.065594986678882492e+02 -5.374460837231254118e-03 +-1.993758556586506643e+02 -3.824679248638903459e+02 -6.319391363604154321e-03 +-5.375956424187197058e+01 -3.919767837765622289e+02 -4.011796123791100399e-03 +4.377032896507329269e+02 -1.504221879321565325e+02 -8.474844797248692885e-03 +-3.988455330524413398e+02 -2.005085676296794759e+02 -7.312689424225027324e-03 +-5.528025679176378304e+01 4.888896145628929162e+02 -1.074815351515212569e-02 +-3.002609108079809630e+02 2.676129547819691652e+02 -4.387599004687103843e-03 +3.580652821848071312e+02 -2.440434634162507166e+02 -6.418885405338414785e-03 +2.321642939482183863e+02 -3.649272303769623704e+02 -6.395326724486949388e-03 +4.665303814835166349e+02 3.027276831402626556e+01 -8.806960732838930994e-03 +9.565490853383803938e+01 4.320388602196833858e+02 -7.102120589195237699e-03 +1.616319090546733150e+02 -3.192766007495307576e+02 -1.759514156532304696e-03 +-3.889964242102320213e+02 1.391156498478356980e+02 -5.062680023563359555e-03 +3.709616288293930211e+02 -1.385849896954855751e+02 -3.977400646313355992e-03 +-4.034083660743474979e+02 1.830739753094326829e+02 -7.072746973051380337e-03 +1.912099514582171480e+02 -3.461172463745474488e+02 -3.983660471675420922e-03 +1.487381187373229352e+02 -3.719002053991298453e+02 -4.310623837625371380e-03 +5.396961128082040204e+00 -4.667911850646443099e+02 -8.847739640060581223e-03 +2.996659709999153165e+02 -2.645419596037278893e+02 -4.230926902224041442e-03 +-2.046978395770902637e+02 4.227385938007905111e+02 -9.041685275690269918e-03 +-3.609367545990907047e+02 2.424618754913490761e+02 -6.520024330697538062e-03 +-1.227754594170884559e+02 -4.010649048399180856e+02 -5.533870137185203930e-03 +-3.760984470366863661e+02 -6.497428498944075592e+00 -2.768735050081794213e-03 +-3.704259695709637867e+00 4.394361292488827075e+02 -6.894133968643245680e-03 +3.633860884626483312e+02 1.665906495922700969e+02 -4.214720676785077558e-03 +3.686929117902627695e+02 8.670386705103101121e+01 -2.925402728500614558e-03 +-3.556256725137488388e+02 1.752558219208757748e+02 -4.010904755062938420e-03 +2.564494997738868847e+02 4.125933184339913851e+02 -1.024377585960678516e-02 +-2.486728240169614423e+02 -3.926131402894067151e+02 -8.668971682851633886e-03 +-2.987316216562422824e+02 -2.552429602307893219e+02 -3.806451675572475324e-03 +-3.814102579105262407e+02 8.374472498346297300e+01 -3.632967083312621526e-03 +3.846149811222236394e+02 -8.722969282224113385e+01 -3.872205269189521459e-03 +4.232986542895723687e+02 1.569181044411036474e+01 -5.740616892094152490e-03 +4.013090936555224744e+02 1.809606395042212057e+02 -6.879819397923370161e-03 +4.536388823290972709e+02 8.670109989450855892e+01 -8.397545077933443736e-03 +4.180110752565024512e+01 -3.680952706392412779e+02 -2.492685170182085130e-03 +-3.442359827862751445e+02 -2.983575600565901595e+02 -7.978258717031394553e-03 +-9.092818734457105734e+01 4.645852859760730098e+02 -9.331344605811864312e-03 +-2.524663356283324163e+02 -3.213914949129045908e+02 -4.812847294033417711e-03 +2.306610812529214058e+02 3.806814436940708219e+02 -7.265958994707943930e-03 +2.898197607099595530e+02 3.153760937070263140e+02 -6.098001286915177843e-03 +3.880170144053252557e+00 -3.535127131425278435e+02 -1.528220576290095778e-03 +4.255716854634932815e+02 -5.235985114765681914e+01 -6.088296305208018566e-03 +-3.920347438220765071e+02 2.847289979895534771e+02 -1.010932466176939215e-02 +2.784346337859473692e+02 -5.763925612591066283e+01 1.980603417020887491e-03 +-1.250501717760543983e+02 -4.553794193517728104e+02 -9.241648711906691460e-03 +-9.092229862817310959e+01 -3.528790187886194190e+02 -2.139392988055988098e-03 +-4.739381607785402366e+02 1.695805247032348717e+01 -9.303193558993783085e-03 +8.882251465371068377e+01 -4.477708564697267661e+02 -8.093480642742179043e-03 +-4.125048028887742362e+02 3.048598989900761325e+01 -5.087695356149168902e-03 +9.868256328914054620e+01 -3.626007362882363623e+02 -2.802475038208740443e-03 +1.646761891309934072e+02 4.926927847935244245e+02 -1.292715415135603507e-02 +1.176511660382734732e+02 5.089665050141134088e+02 -1.317092273194475638e-02 +1.707431332481750417e+02 4.320380678374151557e+02 -8.669082389872073691e-03 +1.313026140025126267e+02 4.090024570945234927e+02 -6.210009873711896944e-03 +1.320616433048831482e+02 4.628942010699400953e+02 -9.926357793830220544e-03 +2.048745663417636820e+02 4.580324047196643846e+02 -1.149561095149920220e-02 +-5.027552854277033134e+02 -7.518744615189086744e+01 -1.193062604713190922e-02 +-4.216025089815458387e+02 -7.750921829876591573e+01 -6.082113523511623043e-03 +-4.891054442362081431e+02 -2.319718743533315930e+01 -1.046718331423868165e-02 +-5.088205617097597724e+02 -1.301361800292906992e+02 -1.329983637116072259e-02 +-5.399176763465143267e+02 -9.843641908639666838e+01 -1.528398472708403233e-02 +-4.542162889378985824e+02 -4.919074443705159894e+01 -8.037151231366834736e-03 +3.573030384573556830e+02 -3.788786204031397347e+02 -1.299120067088210817e-02 +3.155905560332951154e+02 -3.581661472690794312e+02 -9.590092297543151290e-03 +3.201424772532518546e+02 -3.027950743842158658e+02 -6.934388333604601939e-03 +2.791859510254927272e+02 -3.795106719882177799e+02 -9.133953233799729787e-03 +3.482032738903139943e+02 -3.334401763616324388e+02 -9.939143304478648133e-03 +2.693274216271790351e+02 -3.370310337873378330e+02 -6.313068556380585505e-03 diff --git a/py21cmsense/data/antpos/mwa_phase2_compact_antpos.txt b/py21cmsense/data/antpos/mwa_phase2_compact_antpos.txt new file mode 100644 index 0000000..36b8570 --- /dev/null +++ b/py21cmsense/data/antpos/mwa_phase2_compact_antpos.txt @@ -0,0 +1,128 @@ +3.902100000000000080e+01 9.781999999999999318e+01 3.758999999999999773e+02 +2.500400000000000134e+01 9.783599999999999852e+01 3.760099999999999909e+02 +1.101900000000000013e+01 9.783299999999999841e+01 3.761399999999999864e+02 +-2.998000000000000220e+00 9.781900000000000261e+01 3.762300000000000182e+02 +3.201299999999999812e+01 8.571299999999999386e+01 3.759100000000000250e+02 +1.801800000000000068e+01 8.571599999999999397e+01 3.760400000000000205e+02 +4.017999999999999794e+00 8.569799999999999329e+01 3.761600000000000250e+02 +-9.987000000000000099e+00 8.570199999999999818e+01 3.762500000000000000e+02 +1.003730000000000047e+02 2.598469999999999800e+02 3.759599999999999795e+02 +8.634900000000000375e+01 2.598439999999999941e+02 3.761000000000000227e+02 +7.237999999999999545e+01 2.598480000000000132e+02 3.762400000000000091e+02 +1.353669999999999902e+02 2.719619999999999891e+02 3.756499999999999773e+02 +6.536199999999999477e+01 2.477230000000000132e+02 3.762300000000000182e+02 +1.423600000000000136e+02 2.598489999999999895e+02 3.755000000000000000e+02 +1.283460000000000036e+02 2.598480000000000132e+02 3.756999999999999886e+02 +1.143569999999999993e+02 2.598389999999999986e+02 3.758199999999999932e+02 +1.283449999999999989e+02 2.113580000000000041e+02 3.754800000000000182e+02 +1.143589999999999947e+02 2.113530000000000086e+02 3.756000000000000227e+02 +1.003640000000000043e+02 2.113379999999999939e+02 3.757500000000000000e+02 +8.636199999999999477e+01 2.113410000000000082e+02 3.758799999999999955e+02 +3.201299999999999812e+01 1.584420000000000073e+02 3.761399999999999864e+02 +1.802199999999999847e+01 1.584389999999999930e+02 3.762599999999999909e+02 +4.006000000000000227e+00 1.584559999999999889e+02 3.764100000000000250e+02 +-9.990000000000000213e+00 1.565900000000000034e+02 3.763509999999999991e+02 +2.500199999999999889e+01 1.463199999999999932e+02 3.761399999999999864e+02 +1.102200000000000024e+01 1.463110000000000070e+02 3.763100000000000023e+02 +-2.984999999999999876e+00 1.463160000000000025e+02 3.764200000000000159e+02 +-1.701300000000000168e+01 1.463089999999999975e+02 3.765899999999999750e+02 +4.004999999999999893e+00 1.342059999999999889e+02 3.763000000000000114e+02 +-9.983000000000000540e+00 1.341850000000000023e+02 3.764200000000000159e+02 +-2.396600000000000108e+01 1.342009999999999934e+02 3.765699999999999932e+02 +3.901400000000000290e+01 1.463040000000000020e+02 3.760400000000000205e+02 +-5.452700000000000102e+01 2.375180000000000007e+02 3.771229999999999905e+02 +-4.048899999999999721e+01 2.351699999999999875e+02 3.769610000000000127e+02 +-2.380199999999999960e+01 2.223530000000000086e+02 3.768720000000000141e+02 +-2.362000000000000099e+01 2.015459999999999923e+02 3.768050000000000068e+02 +-5.067600000000000193e+01 2.645459999999999923e+02 3.771000000000000227e+02 +-6.005700000000000216e+01 2.636759999999999877e+02 3.771800000000000068e+02 +-7.007500000000000284e+01 2.594019999999999868e+02 3.772660000000000196e+02 +-6.485099999999999909e+01 2.508129999999999882e+02 3.772389999999999759e+02 +-7.869799999999999329e+01 2.584309999999999832e+02 3.772909999999999968e+02 +-8.851200000000000045e+01 2.660210000000000150e+02 3.773090000000000259e+02 +-9.536499999999999488e+01 2.701879999999999882e+02 3.772850000000000250e+02 +-1.497849999999999966e+02 2.658140000000000214e+02 3.770110000000000241e+02 +-1.483300000000000125e+02 2.202709999999999866e+02 3.772139999999999986e+02 +-9.334600000000000364e+01 2.422789999999999964e+02 3.772699999999999818e+02 +-1.023250000000000028e+02 2.440879999999999939e+02 3.772579999999999814e+02 +-8.693999999999999773e+01 2.484519999999999982e+02 3.773389999999999986e+02 +-4.655400000000000205e+01 2.874689999999999941e+02 3.771150000000000091e+02 +-2.515000000000000124e+00 2.928410000000000082e+02 3.768919999999999959e+02 +1.734250000000000114e+02 1.935949999999999989e+02 3.750319999999999823e+02 +3.261410000000000196e+02 2.036080000000000041e+02 3.739449999999999932e+02 +8.487999999999999545e+01 5.191409999999999627e+02 3.763140000000000214e+02 +5.012700000000000244e+01 5.361589999999999918e+02 3.761809999999999832e+02 +-3.370499999999999829e+01 3.510480000000000018e+02 3.769759999999999991e+02 +-5.614099999999999824e+01 2.959220000000000255e+02 3.771560000000000059e+02 +-7.873099999999999454e+01 2.972590000000000146e+02 3.771960000000000264e+02 +-6.977100000000000080e+01 2.940310000000000059e+02 3.771920000000000073e+02 +-1.280459999999999923e+02 3.504940000000000282e+02 3.765699999999999932e+02 +-1.604650000000000034e+02 5.732069999999999936e+02 3.747730000000000246e+02 +-2.635470000000000255e+02 3.892740000000000009e+02 3.753220000000000027e+02 +-3.954519999999999982e+02 3.711519999999999868e+02 3.745149999999999864e+02 +-1.001719999999999970e+02 2.888960000000000150e+02 3.771569999999999823e+02 +-1.039410000000000025e+02 3.009139999999999873e+02 3.770500000000000114e+02 +-4.553999999999999915e+01 2.732450000000000045e+02 3.770659999999999741e+02 +-7.088500000000000512e+01 2.788179999999999836e+02 3.772520000000000095e+02 +-6.005799999999999983e+01 2.719049999999999727e+02 3.772040000000000077e+02 +-6.798999999999999488e+01 2.711030000000000086e+02 3.772359999999999900e+02 +-1.490000000000000036e+01 2.738700000000000045e+02 3.769100000000000250e+02 +-7.698799999999999955e+01 2.726370000000000005e+02 3.772980000000000018e+02 +-2.265899999999999892e+01 2.636940000000000168e+02 3.769479999999999791e+02 +-5.315599999999999881e+01 2.762679999999999723e+02 3.770899999999999750e+02 +-7.954099999999999682e+01 2.381279999999999859e+02 3.772699999999999818e+02 +-8.184499999999999886e+01 2.293369999999999891e+02 3.772699999999999818e+02 +-9.853000000000000114e+01 2.301620000000000061e+02 3.772599999999999909e+02 +-1.052810000000000059e+02 2.171800000000000068e+02 3.772549999999999955e+02 +-5.069100000000000250e+01 2.218849999999999909e+02 3.770779999999999745e+02 +-6.256700000000000017e+01 2.289869999999999948e+02 3.772099999999999795e+02 +-7.101699999999999591e+01 2.359290000000000020e+02 3.772389999999999759e+02 +-7.512000000000000455e+01 2.470020000000000095e+02 3.772549999999999955e+02 +-9.288899999999999579e+01 2.813580000000000041e+02 3.772540000000000191e+02 +-1.236670000000000016e+02 2.848539999999999850e+02 3.770500000000000114e+02 +-1.398669999999999902e+02 2.754979999999999905e+02 3.770179999999999723e+02 +-1.329389999999999930e+02 2.826109999999999900e+02 3.770020000000000095e+02 +-1.760060000000000002e+02 2.899030000000000200e+02 3.766229999999999905e+02 +-5.509700000000000131e+01 2.842850000000000250e+02 3.771809999999999832e+02 +-8.347599999999999909e+01 2.775629999999999882e+02 3.773000000000000114e+02 +-7.783499999999999375e+01 2.828389999999999986e+02 3.772529999999999859e+02 +1.283400000000000034e+02 2.841039999999999850e+02 3.757699999999999818e+02 +1.143460000000000036e+02 2.840919999999999845e+02 3.759100000000000250e+02 +1.003469999999999942e+02 2.840969999999999800e+02 3.761800000000000068e+02 +8.637300000000000466e+01 2.841209999999999809e+02 3.762500000000000000e+02 +1.213550000000000040e+02 2.719909999999999854e+02 3.758299999999999841e+02 +1.073649999999999949e+02 2.719569999999999936e+02 3.759499999999999886e+02 +9.333899999999999864e+01 2.719759999999999991e+02 3.760699999999999932e+02 +7.936899999999999977e+01 2.719859999999999900e+02 3.762400000000000091e+02 +1.353530000000000086e+02 2.477210000000000036e+02 3.755899999999999750e+02 +1.213689999999999998e+02 2.477439999999999998e+02 3.757200000000000273e+02 +9.335500000000000398e+01 2.477429999999999950e+02 3.759399999999999977e+02 +7.936599999999999966e+01 2.477419999999999902e+02 3.760799999999999841e+02 +1.003670000000000044e+02 2.356160000000000139e+02 3.758500000000000227e+02 +8.634399999999999409e+01 2.356059999999999945e+02 3.759700000000000273e+02 +7.236299999999999955e+01 2.356100000000000136e+02 3.760899999999999750e+02 +1.493580000000000041e+02 2.477309999999999945e+02 3.754100000000000250e+02 +7.937399999999999523e+01 2.234739999999999895e+02 3.759900000000000091e+02 +1.423400000000000034e+02 2.355860000000000127e+02 3.754399999999999977e+02 +1.283489999999999895e+02 2.356100000000000136e+02 3.755600000000000023e+02 +1.143349999999999937e+02 2.355980000000000132e+02 3.757400000000000091e+02 +1.353520000000000039e+02 2.234859999999999900e+02 3.754800000000000182e+02 +1.213719999999999999e+02 2.234879999999999995e+02 3.755699999999999932e+02 +1.073569999999999993e+02 2.234619999999999891e+02 3.757699999999999818e+02 +9.334300000000000352e+01 2.234879999999999995e+02 3.758700000000000045e+02 +-3.099099999999999966e+01 1.220750000000000028e+02 3.766000000000000227e+02 +4.601599999999999824e+01 1.342210000000000036e+02 3.759200000000000159e+02 +3.200900000000000034e+01 1.341839999999999975e+02 3.760500000000000114e+02 +1.798999999999999844e+01 1.341819999999999879e+02 3.761499999999999773e+02 +3.901400000000000290e+01 1.220900000000000034e+02 3.759499999999999886e+02 +2.501500000000000057e+01 1.220550000000000068e+02 3.760899999999999750e+02 +-2.971999999999999975e+00 1.220580000000000069e+02 3.763199999999999932e+02 +-1.698900000000000077e+01 1.220699999999999932e+02 3.764599999999999795e+02 +3.995999999999999996e+00 1.099509999999999934e+02 3.762200000000000273e+02 +-9.980000000000000426e+00 1.099440000000000026e+02 3.763299999999999841e+02 +-2.399399999999999977e+01 1.099369999999999976e+02 3.764900000000000091e+02 +5.301899999999999835e+01 1.220520000000000067e+02 3.758100000000000023e+02 +-1.698699999999999832e+01 9.781000000000000227e+01 3.763600000000000136e+02 +4.602199999999999847e+01 1.099489999999999981e+02 3.758100000000000023e+02 +3.202400000000000091e+01 1.099440000000000026e+02 3.759599999999999795e+02 +1.802499999999999858e+01 1.099590000000000032e+02 3.760699999999999932e+02 diff --git a/py21cmsense/data/profiles/HERA-H1C-IDR3.yaml b/py21cmsense/data/profiles/HERA-H1C-IDR3.yaml new file mode 100644 index 0000000..7a1b948 --- /dev/null +++ b/py21cmsense/data/profiles/HERA-H1C-IDR3.yaml @@ -0,0 +1,17 @@ +antpos: !astropy.units.Quantity + value: !txt "{{ DATA_PATH }}/antpos/hera-h1c-idr3.txt" + unit: !astropy.units.Unit {unit: m} +beam: + class: GaussianBeam + frequency: !astropy.units.Quantity + unit: !astropy.units.Unit {unit: MHz} + value: 150 + dish_size: !astropy.units.Quantity + unit: !astropy.units.Unit {unit: m} + value: 14.0 +latitude: !astropy.units.Quantity + unit: !astropy.units.Unit {unit: rad} + value: -0.536189 +Trcv: !astropy.units.Quantity + unit: !astropy.units.Unit {unit: K} + value: 100 diff --git a/py21cmsense/data/profiles/MWA-PhaseII.yaml b/py21cmsense/data/profiles/MWA-PhaseII.yaml new file mode 100644 index 0000000..21e770d --- /dev/null +++ b/py21cmsense/data/profiles/MWA-PhaseII.yaml @@ -0,0 +1,17 @@ +antpos: !astropy.units.Quantity + value: !txt "{{ DATA_PATH }}/antpos/mwa_phase2_compact_antpos.txt" + unit: !astropy.units.Unit {unit: m} +beam: + class: GaussianBeam + frequency: !astropy.units.Quantity + unit: !astropy.units.Unit {unit: MHz} + value: 150 + dish_size: !astropy.units.Quantity + unit: !astropy.units.Unit {unit: m} + value: 4 +latitude: !astropy.units.Quantity + unit: !astropy.units.Unit {unit: rad} + value: -0.4660 +Trcv: !astropy.units.Quantity + unit: !astropy.units.Unit {unit: K} + value: 100 diff --git a/py21cmsense/data/profiles/SKA-LOW1-central.yaml b/py21cmsense/data/profiles/SKA-LOW1-central.yaml new file mode 100644 index 0000000..7d4c83d --- /dev/null +++ b/py21cmsense/data/profiles/SKA-LOW1-central.yaml @@ -0,0 +1,17 @@ +antpos: !astropy.units.Quantity + value: !txt "{{ DATA_PATH }}/antpos/layout_enu_ska_central.txt" + unit: !astropy.units.Unit {unit: m} +beam: + class: GaussianBeam + frequency: !astropy.units.Quantity + unit: !astropy.units.Unit {unit: MHz} + value: 150 + dish_size: !astropy.units.Quantity + unit: !astropy.units.Unit {unit: m} + value: 35 +latitude: !astropy.units.Quantity + unit: !astropy.units.Unit {unit: rad} + value: -0.4681814012852413 +Trcv: !astropy.units.Quantity + unit: !astropy.units.Unit {unit: K} + value: 100 diff --git a/py21cmsense/data/profiles/SKA-LOW1-core.yaml b/py21cmsense/data/profiles/SKA-LOW1-core.yaml new file mode 100644 index 0000000..8d96eee --- /dev/null +++ b/py21cmsense/data/profiles/SKA-LOW1-core.yaml @@ -0,0 +1,17 @@ +antpos: !astropy.units.Quantity + value: !txt "{{ DATA_PATH }}/antpos/layout_enu_ska_core.txt" + unit: !astropy.units.Unit {unit: m} +beam: + class: GaussianBeam + frequency: !astropy.units.Quantity + unit: !astropy.units.Unit {unit: MHz} + value: 150 + dish_size: !astropy.units.Quantity + unit: !astropy.units.Unit {unit: m} + value: 35 +latitude: !astropy.units.Quantity + unit: !astropy.units.Unit {unit: rad} + value: -0.4681819 +Trcv: !astropy.units.Quantity + unit: !astropy.units.Unit {unit: K} + value: 100 diff --git a/py21cmsense/observation.py b/py21cmsense/observation.py index fc45c31..41ca730 100755 --- a/py21cmsense/observation.py +++ b/py21cmsense/observation.py @@ -261,12 +261,8 @@ def uv_coverage(self) -> np.ndarray: Defined after earth rotation synthesis for a particular LST bin. The u-values on each side of the grid are given by :func:`ugrid`. """ - if not self.coherent: - fnc = self.observatory.grid_baselines_incoherent - else: - fnc = self.observatory.grid_baselines_coherent - - return fnc( + return self.observatory.grid_baselines( + coherent=self.coherent, baselines=self.baseline_group_coords, weights=self.baseline_group_counts, integration_time=self.integration_time, diff --git a/py21cmsense/observatory.py b/py21cmsense/observatory.py index 4c636a4..2bf0f9a 100644 --- a/py21cmsense/observatory.py +++ b/py21cmsense/observatory.py @@ -27,6 +27,14 @@ logger = logging.getLogger(__name__) +DATA = Path(__file__).parent / "data" + + +def get_builtin_profiles() -> list[str]: + """Print available built-in profiles.""" + fls = (DATA / "profiles").glob("*.yaml") + return [fl.stem for fl in fls] + @hickleable(evaluate_cached_properties=True) @attr.s(kw_only=True, order=False) @@ -139,11 +147,15 @@ def from_uvdata(cls, uvdata, beam: beam.PrimaryBeam, **kwargs) -> Observatory: ) @classmethod - def from_yaml(cls, yaml_file: str | dict) -> Observatory: + def from_yaml( + cls, yaml_file: str | dict, frequency: tp.Frequency | None = None + ) -> Observatory: """Instantiate an Observatory from a compatible YAML config file.""" if isinstance(yaml_file, (str, Path)): with open(yaml_file) as fl: - data = yaml.load(fl) + lines = fl.read() + lines = lines.replace("{{ DATA_PATH }}", str(DATA.absolute())) + data = yaml.load(lines) elif isinstance(yaml_file, collections.abc.Mapping): data = yaml_file else: @@ -168,11 +180,42 @@ def from_yaml(cls, yaml_file: str | dict) -> Observatory: antpos = np.hstack((antpos, np.zeros((len(antpos), 1)))) _beam = data.pop("beam") + if frequency is not None: + _beam["frequency"] = frequency + kind = _beam.pop("class") _beam = getattr(beam, kind)(**_beam) return cls(antpos=antpos, beam=_beam, **data) + @classmethod + def from_profile( + cls, profile: str, frequency: tp.Frequency | None = None, **kwargs + ): + """Instantiate the Observatory from a builtin profile. + + Parameters + ---------- + profile + A string label identifying the observatory. Available built-in observatories + can be obtained with :func:`get_builtin_profiles`. + frequency + The frequency at which to specify the observatory. + + Other Parameters + ---------------- + All other parameters passed will be passed into the initializer for the class, + overwriting the profile. + """ + fl = DATA / "profiles" / f"{profile}.yaml" + if not fl.exists(): + raise FileNotFoundError( + f"profile {profile} not available. Available profiles: {get_builtin_profiles()}" + ) + + obj = cls.from_yaml(fl, frequency=frequency) + return obj.clone(**kwargs) + @cached_property def baselines_metres(self) -> tp.Meters: """Raw baseline distances in metres for every pair of antennas. @@ -367,6 +410,7 @@ def baseline_weights_from_groups(baseline_groups) -> np.ndarray: def grid_baselines( self, + coherent: bool, baselines: tp.Length | None = None, weights: np.ndarray | None = None, integration_time: tp.Time = 60.0 * un.s, @@ -451,17 +495,19 @@ def grid_baselines( dim = len(self.ugrid(bl_max)) edges = self.ugrid_edges(bl_max) - uvsum = np.zeros((len(baselines), dim, dim)) - for cnt, (uvw, nbls) in enumerate( - tqdm.tqdm( - zip(uvws, weights), - desc="gridding baselines", - unit="baselines", - disable=not config.PROGRESS, - total=len(weights), - ) + uvsum = np.zeros((dim, dim)) + for uvw, nbls in tqdm.tqdm( + zip(uvws, weights), + desc="gridding baselines", + unit="baselines", + disable=not config.PROGRESS, + total=len(weights), ): - uvsum[cnt] = np.histogram2d(uvw[:, 0], uvw[:, 1], bins=edges)[0] * nbls + hist = np.histogram2d(uvw[:, 0], uvw[:, 1], bins=edges)[0] * nbls + + uvsum += hist if coherent else hist**2 + if not coherent: + uvsum = np.sqrt(uvsum) return uvsum @@ -510,25 +556,3 @@ def ugrid(self, bl_max: tp.Length = np.inf * un.m) -> np.ndarray: # Shift the edges by half a cell, and omit the last one edges = self.ugrid_edges(bl_max) return (edges[1:] + edges[:-1]) / 2 - - def grid_baselines_coherent(self, **kwargs) -> np.ndarray: - """Get a UV grid of coherently gridded baselines. - - Different baseline groups are averaged coherently if they fall into the same - UV bin. - - See :func:`grid_baselines` for parameter details. - """ - grid = self.grid_baselines(**kwargs) - return np.sum(grid, axis=0) - - def grid_baselines_incoherent(self, **kwargs) -> np.ndarray: - """Get a UV grid of incoherently gridded baselines. - - Different baseline groups are averaged incoherently if they fall into the same - UV bin. - - See :func:`grid_baselines` for parameter details. - """ - grid = self.grid_baselines(**kwargs) - return np.sqrt(np.sum(grid**2, axis=0)) diff --git a/setup.cfg b/setup.cfg index c42e5ce..e6875dc 100644 --- a/setup.cfg +++ b/setup.cfg @@ -51,6 +51,7 @@ test = pytest matplotlib pytest-cov + pytest-xdist dev = pre-commit pytest diff --git a/tests/test_observatory.py b/tests/test_observatory.py index 4d130d0..7688da2 100644 --- a/tests/test_observatory.py +++ b/tests/test_observatory.py @@ -9,6 +9,7 @@ from py21cmsense import Observatory from py21cmsense.baseline_filters import BaselineRange from py21cmsense.beam import GaussianBeam +from py21cmsense.data import PATH @pytest.fixture(scope="module") @@ -97,8 +98,8 @@ def test_grid_baselines(bm): with pytest.raises(ValueError): a.grid_baselines(bl_coords) - grid0 = a.grid_baselines() - grid1 = a.grid_baselines(bl_coords, bl_counts) + grid0 = a.grid_baselines(coherent=True) + grid1 = a.grid_baselines(coherent=True, baselines=bl_coords, weights=bl_counts) assert np.allclose(grid0, grid1) @@ -228,3 +229,45 @@ def test_get_redundant_baselines(bm): baseline_filters=BaselineRange(bl_max=1.5 * units.m) ) assert len(reds) == 2 # len-1 + + +def test_no_up_coordinate(tmp_path: Path): + mwafl = PATH / "antpos" / "mwa_phase2_compact_antpos.txt" + enu = np.genfromtxt(mwafl) + + # Save with only EN coordinates + with open(tmp_path / "mwa_antpos.txt", "w") as fl: + np.savetxt(fl, enu[:, :2]) + + new_yaml = """ +antpos: !astropy.units.Quantity + value: !txt "%s/mwa_antpos.txt" + unit: !astropy.units.Unit {unit: m} +beam: + class: GaussianBeam + frequency: !astropy.units.Quantity + unit: !astropy.units.Unit {unit: MHz} + value: 150 + dish_size: !astropy.units.Quantity + unit: !astropy.units.Unit {unit: m} + value: 35 +latitude: !astropy.units.Quantity + unit: !astropy.units.Unit {unit: rad} + value: -0.4681819 +Trcv: !astropy.units.Quantity + unit: !astropy.units.Unit {unit: K} + value: 100 +""" % ( + tmp_path + ) + + with open(tmp_path / "mwa.yaml", "w") as fl: + fl.write(new_yaml) + + obs = Observatory.from_yaml(tmp_path / "mwa.yaml") + assert np.all(obs.antpos[:, 2] == 0) + + +def test_setting_freq_in_profile(): + obs = Observatory.from_profile("MWA-PhaseII", frequency=75 * units.MHz) + assert obs.frequency == 75 * units.MHz diff --git a/tests/test_profiles.py b/tests/test_profiles.py new file mode 100644 index 0000000..1533b4c --- /dev/null +++ b/tests/test_profiles.py @@ -0,0 +1,34 @@ +import pytest + +import astropy.units as un +import numpy as np + +from py21cmsense.observatory import Observatory, get_builtin_profiles + + +def test_get_available(): + avail = get_builtin_profiles() + assert "HERA-H1C-IDR3" in avail + + +def test_load_hera_h1c(): + hera = Observatory.from_profile("HERA-H1C-IDR3") + assert hera.Trcv == 100 * un.K + assert hera.antpos.shape == (71, 3) + + +def test_load_hera_with_custom(): + hera = Observatory.from_profile("HERA-H1C-IDR3", Trcv=200 * un.K) + assert hera.Trcv == 200 * un.K + + +all_profiles = [Observatory.from_profile(p) for p in get_builtin_profiles()] + + +def test_load_others(): + assert len({np.sum(o.antpos) for o in all_profiles}) == len(all_profiles) + + +def test_bad_profile(): + with pytest.raises(FileNotFoundError, match="profile invalid not available"): + Observatory.from_profile("invalid")