{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Studying Ptolemy's sun declination using visualization tools\n", "----" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from kanon.units import Sexagesimal\n", "from kanon.units.precision import set_precision, TruncatureMode\n", "from kanon.tables import HTable\n", "import math\n", "from astropy.units import arcsecond\n", "from matplotlib import pyplot as plt\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# This function redefines what is in the declination notebook\n", "\n", "def build_declination(sin_table, obliquity):\n", " arcsin_table = sin_table.copy(set_index=\"Val\")\n", " obl = sin_table.get(obliquity)\n", " obl_table = sin_table.apply(\"Val\", lambda x: x * obl)\n", " return obl_table.apply(\"Val\", lambda x: round(arcsin_table.get(x), 2))" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "tags": [ "parameters" ] }, "outputs": [], "source": [ "OBLIQUITY = \"23;51,20\"" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "sin = lambda x: math.sin(x * math.pi / 180)\n", "asin = lambda x: math.asin(x) * 180 / math.pi\n", "\n", "# This table holds computed sine values\n", "sin_table_true = HTable([\n", " list(Sexagesimal.range(0, 91)),\n", " [round(\n", " Sexagesimal.from_float(sin(x), 3)\n", " ) for x in range(0, 91)]\n", "], names=(\"Arg\", \"Val\"), index=\"Arg\")\n", "\n", "# This table holds computed declination values\n", "decl_table_true = HTable([\n", " list(Sexagesimal.range(1, 91)),\n", " [round(Sexagesimal.from_float(\n", " asin(sin(x) * sin(Sexagesimal(OBLIQUITY))\n", " ), 2)) for x in range(1, 91)]\n", "], names=(\"Arg\", \"Val\"), index=\"Arg\")" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "output_type": "display_data", "data": { "text/plain": "
", "image/svg+xml": "\n\n\n\n \n \n \n \n 2021-04-08T17:15:45.477921\n image/svg+xml\n \n \n Matplotlib v3.3.4, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "# We import Ptolemy's sun declination table from DISHAS\n", "ptolemy_decl = HTable.read(214, format=\"dishas\")\n", "\n", "ptolemy_decl.plot2d()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# We rebuild a declination table from a sine table without odd arguments\n", "\n", "sin_table_grid2 = sin_table_true[[i for i in range(0, 91, 2)]]\n", "decl_table_grid2 = build_declination(sin_table_grid2, Sexagesimal(OBLIQUITY))[1:]" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "output_type": "display_data", "data": { "text/plain": "
", "image/svg+xml": "\n\n\n\n \n \n \n \n 2021-04-08T17:15:46.398061\n image/svg+xml\n \n \n Matplotlib v3.3.4, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "# Let's compare Ptolemy's declination with our reconstructed tables\n", "\n", "residue_nogrid = ptolemy_decl.apply(\"Entries\", lambda x: x - decl_table_true[\"Val\"], \"Declination residue\")\n", "residue_nogrid[\"Declination residue\"] = residue_nogrid[\"Declination residue\"].to(arcsecond).astype(float)\n", "# For the computed declination table residue, we plot in blue\n", "residue_nogrid.plot2d('bx', linestyle='dashed', lw=0.4)\n", "\n", "residue_grid2 = ptolemy_decl[\n", " [i for i in range(1,91,2)]\n", "].apply(\"Entries\", lambda x: x - decl_table_grid2[\"Val\"], \"Declination residue\")\n", "residue_grid2[\"Declination residue\"] = residue_grid2[\"Declination residue\"].to(arcsecond).astype(float)\n", "# For the built declination with grid 2 sine residue, we plot in red\n", "residue_grid2.plot2d('r+', linestyle='dashed', lw=0.4)\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Residue with no interpolation\nmean : 0.3111, std : 2.2639\nquartiles : [-1. 0. 1.] \n\nResidue with grid 2 interpolation\nmean : -3.0222, std : 3.1516\nquartiles : [-5. -3. -1.]\n" ] } ], "source": [ "arr_nogrid = residue_nogrid['Declination residue']\n", "arr_grid2 = residue_grid2['Declination residue']\n", "\n", "print(\"Residue with no interpolation\")\n", "print(f\"mean : {np.mean(arr_nogrid):.4f}, std : {np.std(arr_nogrid):.4f}\")\n", "print(f\"quartiles : {np.quantile(arr_nogrid, [0.25, 0.5, 0.75])} \\n\")\n", "print(\"Residue with grid 2 interpolation\")\n", "print(f\"mean : {np.mean(arr_grid2):.4f}, std : {np.std(arr_grid2):.4f}\")\n", "print(f\"quartiles : {np.quantile(arr_grid2, [0.25, 0.5, 0.75])}\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.0" }, "metadata": { "interpreter": { "hash": "4cd7ab41f5fca4b9b44701077e38c5ffd31fe66a6cab21e0214b68d958d0e462" } } }, "nbformat": 4, "nbformat_minor": 4 }