diff --git a/examples/Design-SSO-orbit.ipynb b/examples/Design-SSO-orbit.ipynb deleted file mode 100644 index 6d374e1d..00000000 --- a/examples/Design-SSO-orbit.ipynb +++ /dev/null @@ -1,390 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "1fe90752", - "metadata": {}, - "source": [ - "# Define a Sunsynchronous orbit" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "38b13a2c", - "metadata": {}, - "outputs": [], - "source": [ - "import pykep as pk\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "markdown", - "id": "41f9c1a6", - "metadata": {}, - "source": [ - "Define useful constants" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "edc88140", - "metadata": {}, - "outputs": [], - "source": [ - "p= 0.19910213e-6 #[rad/s], precession\n", - "Re=6378.1363 #[km], Earth radius\n", - "J2 = 1.08262668e-3 # precession J2 coefficient\n", - "muE= 398600.440 # [km^3/s^2], standard gravitational parameter\n", - "G = 6.7430e-11 # [m^3ā‹…kgāˆ’1ā‹…sāˆ’2], Cavendish constant\n", - "Me = 5.972e24 # [kg], Earth mass" - ] - }, - { - "cell_type": "markdown", - "id": "85e39a7d", - "metadata": {}, - "source": [ - "## 1) Get (altitude, eccentricity) - altitude function" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "ced401f3", - "metadata": {}, - "outputs": [], - "source": [ - "def get_inclination(h, e):\n", - " # h (float): altitude in km\n", - " # e (float): eccentricity\n", - " return np.arccos(-2/3 * p/J2 * ((Re + h) * (1 - e*e)/Re)**2 * np.sqrt((h + Re) ** 3 / muE))* 180/np.pi" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "a50ad96e", - "metadata": {}, - "outputs": [], - "source": [ - "h=np.arange(300, 860, 10).astype(np.float64) #[km] altitude\n", - "i = get_inclination(h, 1.2e-3)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "f1c8e7d6", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0, 0.5, 'inclination [deg]')" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAGwCAYAAABB4NqyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABOEUlEQVR4nO3dd1yV5f/H8ddhIwIuVEBEcaA4ELXhSK2sLC1LM1PTxrdvmQ1XZtqwHGlDMxq2l5orNS0zR5ll5ULBjVscICrCQTbn3L8/LH5fcnEUvIHzfj4e5/GQ+77PdT73HXreXfd1X5fFMAwDERERESfiYnYBIiIiIlebApCIiIg4HQUgERERcToKQCIiIuJ0FIBERETE6SgAiYiIiNNRABIRERGn42Z2AaWR3W7n2LFj+Pr6YrFYzC5HREREisAwDNLT0wkKCsLF5eJ9PApA53Hs2DFCQkLMLkNEREQuw+HDh6lVq9ZFj1EAOg9fX1/g7AX08/MzuRoREREpCqvVSkhISMH3+MUoAJ3HP7e9/Pz8FIBERETKmKIMX9EgaBEREXE6CkAiIiLidBSARERExOkoAImIiIjTUQASERERp6MAJCIiIk5HAUhEREScjgKQiIiIOB0FIBEREXE6CkAiIiLidBSARERExOkoAImIiIjTUQASERGRq2rd/lOkZeaZWoMCkIiIiFwVhmHw9V8H6fvpOp6atYl8m920WtxM+2QRERFxGrn5dsYs3s6s9QkAVKvoSb7dwM3VnHoUgERERKREnTqTwxMzN7H+QAoWCzzfpRGPdQjDYrGYVpMCkIiIiJSYnYlWHv1qI0dTs/D1dCO6TxQ3NqpudlkKQCIiIlIyftqWxLC5sWTm2qhTtQKfPtia+tV9zS4LUAASERGRYmYYBu/+spcpK3YD0L5+Nd7rG0WlCh4mV/b/FIBERESk2GTm5jNi3haWbE0E4OF2dXjhjsa4uZauB88VgERERKRYHDmdyWNfx7Aj0Yq7q4Xxdzel9zW1zS7rvBSARERE5IqtP5DCEzNiOJWRS7WKHkx7oBXX1KlidlkXpAAkIiIiV+SbdQmMWbyNPJtBkyA/Ph7QmuBK3maXdVEKQCIiInJZ8mx2xn6/g+lrDwHQtXkgb90bibeHSbMbOkABSERERByWkpHLoJkxrN2fAsCI28IZ1KmeqZMbOkIBSERERByyK+ns5IZHTmfh4+HK271bcGuTmmaX5RAFIBERESmy/53csHaVCnwyoDXhNUvH5IaOUAASERGRS7LbDaJ/2cPUlXsAaFuvKu/3bUlln9IzuaEjFIBERETkojJy8nl2XhxLtyUB8GCbUF7sFoF7KZvc0BEKQCIiInJBh1My+e/XG9mVlF7qJzd0hAKQiIiInNef+07y5MxNnM7Mo1pFTz7q35JWoaV3ckNHKACJiIhIIYZhMH3tIV79fgc2u0GzYH8+6t+KoFI+uaEjFIBERESkQG6+nTGLtzFr/WEAurcI4vWezfFyL/2TGzpCAUhEREQAOJGew6CZMWw4eBqLBZ7v0ojHOoSVmckNHaEAJCIiImw9ksZj0zeSmJaNr6cb0X2juDG8utlllRgFIBERESe3KPYoz327hZx8O2EBPnwyoDX1AiqaXVaJUgASERFxUja7wRs/7eKj3/YDcFOj6ky9vwV+Xu4mV1byFIBEREScUFpmHs/M3szq3ScAGNSpHsNvDcfVpfyN9zkfBSAREREnszc5nf9+HcOBkxl4ubvw5r2R3BkZZHZZV5UCkIiIiBP5eedxBs+O5UxOPsGVvPl4QCuaBPmbXdZVpwAkIiLiBAzD4P1Ve5m8YjeGAdfWrcK0fi2pWtHT7NJMoQAkIiJSzmXk5DPi2zh+3Hp2MdP+14fy8p1lezHTK6UAJCIiUo79ezHTsd2b0ufasr+Y6ZVSABIRESmn/th7kie/2UTq34uZfvhAS1rXKR+LmV4pBSAREZFyxjAMPv/jIK/9uBOb3SCylj8f9m9FoH/5Wcz0SikAiYiIlCPZeTZeWLiN+ZuOANCjZTCv3dOs3C1meqUUgERERMqJpLRsHp8RQ9zhVFxdLIy+ozGPtKtTLhczvVIKQCIiIuVAzKEUHp++iZNncqhUwZ33+7akXf1qZpdVaikAiYiIlHGz1ifw8qJt5NkMGtX05eP+raldtYLZZZVqCkAiIiJlVG6+nVe/387MdQkA3NGsJm/eG4mPp77eL0VXSEREpAw6kZ7DoJkxbDh4GosFnr01nEGd6mm8TxEpAImIiJQxW46k8vj0GBLTsvH1dOOdPi24qVENs8sqUxSAREREypAFm47w/IKt5ObbCQvw4ZMBrakXUNHsssocBSAREZEyIN9m57Ufd/H5HwcA6Ny4OlN6t8DPy93kysomBSAREZFSLiUjl6e+2cSf+04B8PRN9RnauSEuLhrvc7kUgEREREqx7cfSeOzrGI6mZlHBw5Up90XSpWmg2WWVeQpAIiIipdSi2KOMnL+F7Dw7oVUr8HH/1oTX9DW7rHJBAUhERKSUybfZeWNZPB//th+Ajg0DiL4/Cv8KGu9TXBSARERESpHUzFyenrWZ3/ecBOCJTvV49tZwXDXep1gpAImIiJQSu5KsPPZ1DAkpmXi7u/Jmr+Z0ax5kdlnlkouZH56ens6QIUMIDQ3F29ubtm3bsmHDhoL9Z86c4amnnqJWrVp4e3vTuHFjpk2bdtE2v/zySywWyzmv7Ozskj4dERGRy/bDlmPc8/6fJKRkElLFmwWD2ir8lCBTe4AeffRRtm3bxvTp0wkKCmLGjBl07tyZHTt2EBwczNChQ1m1ahUzZsygTp06LF++nEGDBhEUFET37t0v2K6fnx/x8fGFtnl5eZX06YiIiDjMZjd4c1k8H67eB0D7+tV4t08UlX08TK6sfDOtBygrK4v58+fzxhtv0KFDB+rXr88rr7xC3bp1C3p5/vrrLx588EE6depEnTp1eOyxx4iMjGTjxo0XbdtisVCzZs1Cr4vJycnBarUWeomIiJS01MxcHv5yQ0H4ebxDGF8+fI3Cz1VgWgDKz8/HZrOd0zPj7e3NmjVrAGjfvj2LFy/m6NGjGIbBqlWr2L17N7fddttF2z5z5gyhoaHUqlWLbt26sXnz5oseP3HiRPz9/QteISEhV3ZyIiIil7Arycpd7/3Bb7tP4OXuQnSfKEbd0Rg3V1NHpzgNi2EYhlkf3rZtWzw8PPjmm2+oUaMGs2bNYsCAATRo0ID4+Hhyc3P573//y9dff42bmxsuLi58+umn9O/f/4Jtrl27lr1799KsWTOsVivvvPMOP/74I3FxcTRo0OC878nJySEnJ6fgZ6vVSkhICGlpafj5+RX7eYuIiHNbsiWREd/GkZlro1Zlbz7u35qIIH3fXCmr1Yq/v3+Rvr9NHQM0ffp0HnnkEYKDg3F1daVly5b07duXTZs2ARAdHc3atWtZvHgxoaGh/PbbbwwaNIjAwEA6d+583javv/56rr/++oKf27VrR8uWLXn33XeJjo4+73s8PT3x9PQs/hMUERH5Hza7wVvL45n269lbXu3qV+W9Pi11y8sEpvYA/SMjIwOr1UpgYCC9e/fmzJkzfPvtt/j7+7Nw4UK6du1acOyjjz7KkSNH+Omnn4rc/n//+1+OHDnC0qVLi3S8IwlSRESkKNIy83hm9mZW7z4BwGMdwnjutnDd8ipGZaYH6B8+Pj74+Phw+vRpli1bxhtvvEFeXh55eXm4uBT+xXB1dcVutxe5bcMwiI2NpVmzZsVdtoiISJH87/w+Xu4uvN6zOd1bBJtdllMzNQAtW7YMwzAIDw9n7969jBgxgvDwcB5++GHc3d3p2LEjI0aMwNvbm9DQUFavXs3XX3/NlClTCtoYMGAAwcHBTJw4EYBXX32V66+/ngYNGmC1WomOjiY2Npb333/frNMUEREn9sOWY4yYt4WsvLPjfT7q34omQf5ml+X0TA1AaWlpjBo1iiNHjlClShV69uzJhAkTcHc/u9bJ7NmzGTVqFP369SMlJYXQ0FAmTJjAwIEDC9pISEgo1EuUmprKY489RlJSEv7+/kRFRfHbb79x7bXXXvXzExER52WzG7yxbBcfrT67npfm9yldSsUYoNJGY4BERORKnM7I5ZnZ/7+e1+Mdwhih8T4lrsyNARIRESkvdhyz8viMjRxOycLb3ZU37m3OnZFa0qK0UQASEREpJotijzJy/hay8+zUrlKBj/q3onGg7iSURgpAIiIiVyjfZmfS0l18uuYAAB0aBhB9fwsqVdB4n9JKAUhEROQKnDqTw9OzNvPnvlMAPNGpHs/eGo6ri8XkyuRiFIBEREQu09YjaQycEcPR1CwqeLgyuVcktzcLNLssKQIFIBERkcvwbcwRRi/cSm6+nbrVfPiofysa1vA1uywpIgUgERERB+TZ7Iz/YQdf/XUIgJsbVWdK7xb4e7ubXJk4QgFIRESkiJLTs3lq5mbWH0wBYPDNDRh8cwNcNN6nzFEAEhERKYJNCad5YkYMx605+Hq6MaV3C26JqGF2WXKZFIBEREQu4Zt1CYxZvI08m0H96hX5qH8r6gVUNLssuQIKQCIiIheQnWfjlcXbmb3hMAC3N63Jm70iqeipr8+yTv8FRUREzuNYahZPzNxE3OFUXCzw7G3hPNGxHhaLxvuUBwpAIiIi//LXvlM89c0mTmXkUqmCO9H3R9GhYYDZZUkxUgASERH5m2EYfLbmABOX7sJmN4gI9OOj/q0IqVLB7NKkmCkAiYiIAFm5Np5fsIVFsccAuCcqmNfuaYa3h6vJlUlJUAASERGnd+hUBo9Pj2FXUjpuLhZe7NqYB9vW0XifckwBSEREnNqq+GQGz9qMNTufahU9eb9vFNeFVTW7LClhCkAiIuKU7HaD91bt5e2VuzEMiKpdiWn9WlHT38vs0uQqUAASERGnY83OY9icWFbuTAbggetr83K3Jni4uZhcmVwtCkAiIuJU4pPSGTgjhgMnM/Bwc2H83U25r3WI2WXJVaYAJCIiTuOHLcd47tstZObaCK7kzYcPtKJZLX+zyxITKACJiEi5l2+z88ayeD7+bT8A7epX5d0+Lani42FyZWIWBSARESnXTp7J4elvNvPX/lMAPN4xjBG3huPmqvE+zkwBSEREyq3NCacZNHMTiWnZ+Hi48lavSG5vFmh2WVIKKACJiEi5YxgGs9Yf5pXF28m12QkL8OHj/q2oX93X7NKklFAAEhGRciU7z8bLi7Yxd+MRAG5rUoO3ekXi6+VucmVSmigAiYhIuXHkdCaDZm5iy5E0XCww4rZGDOwYpiUt5BwKQCIiUi6s2XOSp2dt4nRmHpUruPNun5a0b1DN7LKklFIAEhGRMs0wDKat3sdby+KxG9As2J9pD7SkVuUKZpcmpZgCkIiIlFnp2XkMnxvH8h3HAbivdS3Gdm+Kl7uryZVJaacAJCIiZdLu4+kMnB7D/pMZeLi68Gr3JvS5trbZZUkZoQAkIiJlzvdxxxg5/+ySFkH+Xkx7oBWRIZXMLkvKEAUgEREpM/JsdiYt3cVnaw4AZ5e0iL4/iqoVPU2uTMoaBSARESkTktOzeeqbzaw/kALAE53qMfyWhlrSQi6LApCIiJR6MYdSGDRzE8etOVT0dOOtXpF0aVrT7LKkDFMAEhGRUsswDL768yDjl+wk325Qv3pFPurfinoBFc0uTco4BSARESmVMnPzGbVgK4tijwHQrXkgr/dsjo+nvrrkyum3SERESp0DJzMYOD2G+OPpuLpYGH1HYx5pV0dLWkixUQASEZFSZfn2JIbPjSM9J58AX0/e79uSa+tWMbssKWcUgEREpFSw2Q0mL4/ng1/3AXBNncq837cl1f28TK5MyiMFIBERMd2pMzkMnh3Lmr0nAXikXV1G3dEIdz3iLiVEAUhEREy1OeE0g2ZuIjEtG293V16/tzl3RQaZXZaUcwpAIiJiCsMwmLEugbHfbyfPZhBWzYdpD7QivKav2aWJE1AAEhGRqy4r18YLC7eyYPNRALo0qcmbvZrj6+VucmXiLBSARETkqjp4MoOBM2LYlZSOiwVGdmnEYx3C9Ii7XFUKQCIictWs2HGcYXNjSc/Op1pFD97t05I29aqaXZY4IQUgEREpcTa7wZQV8by/6uwj7q1Czz7iXtNfj7iLORSARESkRJ06k8Mzszfzx95TADzUtg6j72iMh5secRfzKACJiEiJ2ZRwmif/5xH3ST2b0b1FsNlliSgAiYhI8TMMg+lrDzHuhx0Fj7h/2L8VDWvoEXcpHRSARESkWGXm5jN6wVa++3sV9zua1eT1nnrEXUoXBSARESk2+0+cYeCMGHYfP4Ori4VRtzfiP+3r6hF3KXUUgEREpFj8tC2RZ+dt4YxWcZcyQAFIRESuSL7NzhvL4vn4t/0AXFu3Cu/1jaK6rx5xl9JLAUhERC5bsjWbp2ZtZv2BFAAe6xDGc7eF46ZV3KWUUwASEZHLsm7/KZ78ZjMnz+RQ0dONt3o1p0vTQLPLEikSBSAREXGIYRh88vt+Xv8pHpvdILyGL9MeaElYQEWzSxMpsiIFoOjoaIcbfvjhh/H11XwPIiLliTU7jxHz4li2/TgAPaKCGX9PUyp46P+npWyxGIZhXOogFxcXatWqhaura5EaPXz4MLt37yYsLOyKCzSD1WrF39+ftLQ0/Pz8zC5HRKRU2Jlo5YkZMRw8lYmHqwtj7oqg77W19Yi7lBqOfH8XObJv3LiR6tWrF+lY9fyIiJQv82OO8MJ3W8nOsxNcyZsP+rUkMqSS2WWJXLYiBaAxY8ZQsWLR7+2OHj2aKlU094OISFmXnWfj1e93MGt9AgAdGwYwtXcLKvt4mFyZyJUp0i0wZ6NbYCIicDglkydmxrDtqBWLBYbc3JCnb6qPi4tueUnpVCK3wERExHn8vPM4Q+fEYs3Op3IFd965P4oODQPMLkuk2DgcgKKios474M1iseDl5UX9+vV56KGHuPHGG4ulQBERuXrybXamrNjNB7/uA6BFSCU+6NeSoEreJlcmUrwcnqqzS5cu7N+/Hx8fH2688UY6depExYoV2bdvH9dccw2JiYl07tyZRYsWlUS9IiJSQk6k59D/s/UF4eehtnWY+3gbhR8plxzuATp58iTDhw/npZdeKrR9/PjxHDp0iOXLlzNmzBjGjRtH9+7di61QEREpORsOpvDkzE0kp+dQwcOVST2bc1dkkNlliZQYhwdB+/v7ExMTQ/369Qtt37t3L61atSItLY1du3ZxzTXXkJ6eXqzFXi0aBC0izsIwDD79/QCTftqFzW5Qv3pFPnygJfWrazoTKXsc+f52+BaYl5cXf/755znb//zzT7y8zq78a7fb8fT0vGRb6enpDBkyhNDQULy9vWnbti0bNmwo2H/mzBmeeuopatWqhbe3N40bN2batGmXbHf+/PlERETg6elJREQECxcudOAMRUScgzU7j4EzYpjw405sdoO7IoNY9GQ7hR9xCg7fAnv66acZOHAgMTExXHPNNVgsFtavX8+nn37K6NGjAVi2bBlRUVGXbOvRRx9l27ZtTJ8+naCgIGbMmEHnzp3ZsWMHwcHBDB06lFWrVjFjxgzq1KnD8uXLGTRoEEFBQRe8vfbXX3/Ru3dvxo0bxz333MPChQu57777WLNmDdddd52jpysiUi5tP5bGoJmbOPT3rM4v3RnBA9dpVmdxHpc1D9DMmTN57733iI+PByA8PJynn36avn37ApCVlVXwVNiFZGVl4evry6JFi+jatWvB9hYtWtCtWzfGjx9P06ZN6d27d6HxRq1ateKOO+5g3Lhx5223d+/eWK1Wli5dWrCtS5cuVK5cmVmzZhXp/HQLTETKs7kbDvPSom3k5GtWZylfSnweoH79+tGvX78L7vf2vvQTA/n5+dhstnNCkre3N2vWrAGgffv2LF68mEceeYSgoCB+/fVXdu/ezTvvvHPBdv/66y+GDh1aaNttt93G1KlTL/ienJwccnJyCn62Wq2XrF9EpKzJyrXx8qJtzIs5AsCN4QFMuU+zOotzcngMEEBqamrBLa+UlBQANm3axNGjR4vchq+vL23atGHcuHEcO3YMm83GjBkzWLduHYmJicDZVegjIiKoVasWHh4edOnShQ8++ID27dtfsN2kpCRq1KhRaFuNGjVISkq64HsmTpyIv79/wSskJKTI5yEiUhYcOJnBPR/8wbyYI7hYYMRt4Xz24DUKP+K0HA5AW7ZsoWHDhrz++uu8+eabpKamArBw4UJGjRrlUFvTp0/HMAyCg4Px9PQkOjqavn37Fqw6Hx0dzdq1a1m8eDExMTFMnjyZQYMGsXLlyou2++972IZhXPS+9qhRo0hLSyt4HT582KHzEBEpzX7alshd765hV1I61Sp6MOM/1/HkjVrSQpybw7fAhg0bxkMPPcQbb7xRaNX322+/vWAMUFHVq1eP1atXk5GRgdVqJTAwkN69e1O3bl2ysrIYPXo0CxcuLBgj1Lx5c2JjY3nrrbfo3LnzedusWbPmOb09ycnJ5/QK/S9PT88iPbUmIlKW5NnsTFq6i8/WHACgdWhl3uvbkpr+Fx6fKeIsHO4B2rBhA48//vg524ODgy96m+lifHx8CAwM5PTp0yxbtozu3buTl5dHXl4eLi6FS3R1dcVut1+wrTZt2rBixYpC25YvX07btm0vqzYRkbIoMS2L+z9eWxB+HusQxqzHrlf4Efmbwz1AXl5e5x0kHB8fT0CAYwvlLVu2DMMwCA8PZ+/evYwYMYLw8HAefvhh3N3d6dixIyNGjMDb25vQ0FBWr17N119/zZQpUwraGDBgAMHBwUycOBGAwYMH06FDB15//XW6d+/OokWLWLlyZcHAahGR8u633ScYMieWlIxcfL3ceKtXJLc1qWl2WSKlisM9QN27d2fs2LHk5eUBZ8fbJCQk8Pzzz9OzZ0+H2kpLS+PJJ5+kUaNGDBgwgPbt27N8+XLc3d0BmD17Ntdccw39+vUjIiKCSZMmMWHCBAYOHFjQRkJCQsGgaYC2bdsye/ZsvvjiC5o3b86XX37JnDlzNAeQiJR7NrvB2yt28+AX60nJyKVJkB8/PN1e4UfkPByeB8hqtXLHHXewfft20tPTCQoKIikpiTZt2vDjjz/i4+NTUrVeNZoHSETKmlNnchgyJ5bf95wEoM+1tRlzZwRe7q4mVyZy9ZToPEB+fn6sWbOGX375hU2bNmG322nZsuUFByWLiEjJijmUwpMzN5Nkzcbb3ZUJ9zSlR8taZpclUqpd1kzQ5Z16gESkLPj3QqZhAT58+EArGtbQWl7inIq9Byg6OrrIH/7MM88U+VgREbk8aVl5PDsvjhU7jgNwZ2QQE3s0o6LnZU3wL+J0itQDVLdu3UI/nzhxgszMTCpVqgScnRm6QoUKVK9enf3795dIoVeTeoBEpDTbeiSNQd/EcDglSwuZivwPR76/i/QU2IEDBwpeEyZMoEWLFuzcuZOUlBRSUlLYuXMnLVu2vOACpSIicuUMw2DG2kP0nPYnh1OyqFXZm2+faEP/60MVfkQc5PAYoHr16vHtt98SFRVVaHtMTAz33nsvBw4cKNYCzaAeIBEpbTJy8hm9cCuLYo8B0LlxDSb3isS/grvJlYmUHiX6FFhiYmLBHED/y2azcfz4cUebExGRS9h9PJ0nZsSw70QGri4WnrstnMc6hKnXR+QKODwR4s0338x///tfNm7cyD+dRxs3buTxxx/Xo/AiIsVsfswRur/3B/tOZFDDz5PZj13P4x3rKfyIXCGHA9Dnn39OcHAw1157LV5eXnh6enLdddcRGBjIp59+WhI1iog4new8GyO/3cLweXFk5dloX78aS565gWvqVDG7NJFyweFbYAEBAfz444/s2bOHnTt3YhgGjRs3pmHDhiVRn4iI09l/4gyDZm5iV1I6FgsMvrkBT9/UAFcX9fqIFJfLnjCiQYMGNGjQoDhrERFxeku2JDJy/hbO5ORT1ceDd+6Pon2DamaXJVLuFOkW2LBhw8jIyChyo6NGjSIlJeWyixIRcTY5+TbGLNrGk99s4kxOPtfWqcKPg29Q+BEpIUV6DN7V1ZWkpCQCAgKK1Kifnx+xsbGEhYVdcYFm0GPwInI1HU7J5KlvNhF3JA2AJzrVY/gtDXFzdXiYpohTK/bH4A3DoGHDhkV+6sCR3iIREWe2fHsSz86Lw5qdj7+3O2/3juSmRjXMLkuk3CtSAPriiy8cbrhGDf0FFhG5kDybndeX7uLTNWcnj40MqcT7faOoVbmCyZWJOIciBaAHH3ywpOsQEXEax1KzeOqbTWxKSAXgkXZ1ef72Rni46ZaXyNWiZYNFRK6iVbuSGTo3ltTMPHy93Hjz3ki6NK1pdlkiTkcBSETkKsi32Zm8YjfTft0HQLNgf97v25LaVXXLS8QMCkAiIiUsKS2bZ2ZtZv3Bs9ODDGgTygtdG+Pp5mpyZSLOSwFIRKQE/bb7BEPnxHIqI5eKnm5M6tmMbs2DzC5LxOkpAImIlACb3WDqyt28t2ovhgGNA/34oF9L6lbzMbs0EeEyAlBGRgaTJk3i559/Jjk5GbvdXmj//v37i604EZGyKNmazTOzN7N2/9lbXn2vq83L3SLwctctL5HSwuEA9Oijj7J69Wr69+9PYGBgkSdHFBFxBn/sPcng2Zs5eSYXHw9XXuvRjO4tgs0uS0T+xeEAtHTpUpYsWUK7du1Koh4RkTLJZjeI/nkP0b/swTCgUU1f3u/XknoBFc0uTUTOw+EAVLlyZapUqVIStYiIlEnJ6dkMmR3Ln/tOAXD/NSG8clcT3fISKcUcnnZ03LhxvPzyy2RmZpZEPSIiZcqfe0/SNXoNf+47hbe7K2/3jmRSz+YKPyKlnMM9QJMnT2bfvn3UqFGDOnXq4O7uXmj/pk2biq04EZHSymY3ePeXPbzz89lbXg1rVOSDfi2pX93X7NJEpAgcDkB33313CZQhIlJ2nEjPYciczfyx9+wtr96tz97y8vZQr49IWWExDMMwu4jSxmq14u/vT1paGn5+fmaXIyKlyJ97TzJ4Tiwn0nPwdndl/N1N6dmqltlliQiOfX9f9kSIMTEx7Ny5E4vFQkREBFFRUZfblIhIqadbXiLli8MBKDk5mfvvv59ff/2VSpUqYRgGaWlp3HjjjcyePZuAgICSqFNExDS65SVS/jj8FNjTTz+N1Wpl+/btpKSkcPr0abZt24bVauWZZ54piRpFREzz596T3BH9O3/sPfuU1+Rekbx+b3OFH5EyzuExQP7+/qxcuZJrrrmm0Pb169dz6623kpqaWpz1mUJjgETk3xMb6paXSOlXomOA7Hb7OY++A7i7u5+zLpiISFmUbM1m8OxY/tp/9pbXfa1r8epdTdXrI1KOOHwL7KabbmLw4MEcO3asYNvRo0cZOnQoN998c7EWJyJytf2+5wR3RP/OX/tPUcHj7MSGb9wbqfAjUs443AP03nvv0b17d+rUqUNISAgWi4WEhASaNWvGjBkzSqJGEZESl2+zM3XlHt7/dW/BWl7v9W1J/epay0ukPHI4AIWEhLBp0yZWrFjBrl27MAyDiIgIOnfuXBL1iYiUuOPWbJ6etZn1B1IA6HNtbcbcGaHlLETKMU2EeB4aBC3iPFbvPsHQObGkZOTi4+HKaz2a0b1FsNllichlKPZB0NHR0Tz22GN4eXkRHR190WP1KLyIlAX5NjuTV+xm2q/7AGgc6Mf7faMIC9AtLxFnUKQeoLp167Jx40aqVq1K3bp1L9yYxcL+/fuLtUAzqAdIpHw7lprFM7M2s/HQaQAeuL42L3bVLS+Rsq7Ye4AOHDhw3j+LiJQ1P+88zvB5caRm5uHr6cakns3p2jzQ7LJE5Cpz+DH4sWPHkpmZec72rKwsxo4dWyxFiYgUt9x8O+N/2MF/vtpIamYezWv5s+SZGxR+RJyUw4OgXV1dSUxMpHr16oW2nzp1iurVq2Oz2Yq1QDPoFphI+XI4JZOnZm0m7nAqAI+0q8vI28PxdNMtL5HypERngjYMA4vFcs72uLg4qlSp4mhzIiIl6qdtSYz4No707Hz8vNx4q1cktzapaXZZImKyIgegypUrY7FYsFgsNGzYsFAIstlsnDlzhoEDB5ZIkSIijsrOszHxx5189dchAKJqV+LdPlHUqlzB5MpEpDQocgCaOnUqhmHwyCOP8Oqrr+Lv71+wz8PDgzp16tCmTZsSKVJExBEHTmbw1Deb2H7MCsDjHcJ49rZw3F0dHvYoIuVUkQPQgw8+CJx9JL5t27bnXRBVRMRsi2KPMnrBVjJybVTx8WDyfZHcGF790m8UEafi8Bigjh07Fvw5KyuLvLy8Qvs1aFhEzJCVa+OVxduZs/EwANfWrUL0/VHU9PcyuTIRKY0cDkCZmZk899xzzJ07l1OnTp2zvzw8BSYiZcvu4+k8OXMTe5LPYLHA0zc14Jmb6uOmW14icgEO/+swYsQIfvnlFz744AM8PT359NNPefXVVwkKCuLrr78uiRpFRM7LMAzmbEjgrvfWsCf5DAG+nsz8z3UMu6Whwo+IXJTDPUDff/89X3/9NZ06deKRRx7hhhtuoH79+oSGhjJz5kz69etXEnWKiBSSnp3HCwu3sTjuGAA3NKjGlPtaEODraXJlIlIWOByAUlJSCtYD8/PzIyUlBYD27dvzxBNPFG91IiLnse1oGk99s4mDpzJxdbEw7JaGPNGxHi4u585RJiJyPg73EYeFhXHw4EEAIiIimDt3LnC2Z6hSpUrFWZuISCGGYfDFHwfo8cGfHDyVSZC/F3Meu54nb6yv8CMiDnG4B+jhhx8mLi6Ojh07MmrUKLp27cq7775Lfn4+U6ZMKYkaRURIzcxlxLdbWLHjOAC3RNTgzXubU6mCh8mViUhZ5PBaYP+WkJDAxo0bqVevHpGRkcVVl6m0FphI6RJzKIWnv9nMsbRsPFxdGH1HIx5sW+e8y/KIiPMq0bXA/q127drUrl37SpsRETmH3W7w4W/7mLx8Nza7QZ2qFXivb0uaBvtf+s0iIhdxWQHo559/5ueffyY5ORm73V5o3+eff14shYmIc0tOz2bYnDjW7D0JQPcWQUy4pxkVPa/4/9tERBwPQK+++ipjx46ldevWBAYGqgtaRIrdb7tPMGxuLCfP5OLl7sLYu5rSq3Ut/XsjIsXG4QD04Ycf8uWXX9K/f/+SqEdEnFiezc6UFbuZ9us+ABrV9OW9vlHUr+5rcmUiUt44HIByc3Np27ZtSdQiIk7scEomz8zezOaEVAAeuL42L3aNwMvd1dzCRKRccngeoEcffZRvvvmmJGoRESe1dGsiXaN/Z3NCKr5ebnzQryXj726m8CMiJcbhHqDs7Gw+/vhjVq5cSfPmzXF3dy+0X3MBiUhRZefZGL9kBzPWJgAQVbsS0fdHEVKlgsmViUh553AA2rJlCy1atABg27ZthfZpgKKIFNXe5HSe+mYzu5LSARjYsR7Db22IuxYxFZGrwOEAtGrVqpKoQ0SchGEYzNt4hDGLt5OVZ6NaRQ8m39eCjg0DzC5NRJyIJtQQkavm3yu4t69fjSm9I6nu62VyZSLibIoUgHr06MGXX36Jn58fPXr0uOixCxYsKJbCRKR8iTucytOzNpOQcnYF9+G3NmRgB63gLiLmKFIA8vf3Lxjf4++vKehFpOjsdoPP1hzg9Z92kW83CK7kTXSfKFqFVja7NBFxYle8GGp5pMVQRYrHqTM5DJ8Xx6/xJwC4vWlNJvVsjr+3+yXeKSLiOEe+v0193CI9PZ0hQ4YQGhqKt7c3bdu2ZcOGDQX7LRbLeV9vvvnmBdv88ssvz/ue7Ozsq3FKIvK3P/aepMs7v/Nr/Ak83VyYcE9TPujXUuFHREqFIt0Ci4qKKvIj7ps2bSryhz/66KNs27aN6dOnExQUxIwZM+jcuTM7duwgODiYxMTEQscvXbqU//znP/Ts2fOi7fr5+REfH19om5eXBlmKXA15Njtvr9jNtNX7MAxoUL0i7/aNolFN9aaKSOlRpAB09913F/sHZ2VlMX/+fBYtWkSHDh0AeOWVV/juu++YNm0a48ePp2bNmoXes2jRIm688UbCwsIu2rbFYjnnvReTk5NDTk5Owc9Wq9WBMxGRf/x7OYs+19bm5W4ReHtoRmcRKV2KFIDGjBlT7B+cn5+PzWY7p2fG29ubNWvWnHP88ePHWbJkCV999dUl2z5z5gyhoaHYbDZatGjBuHHjiIqKuuDxEydO5NVXX3X8JESkwJItiTy/YAvp2fn4erkxqUdzujYPNLssEZHzcngM0IYNG1i3bt0529etW8fGjRuL3I6vry9t2rRh3LhxHDt2DJvNxowZM1i3bt05t74AvvrqK3x9fS/5GH6jRo348ssvWbx4MbNmzcLLy4t27dqxZ8+eC75n1KhRpKWlFbwOHz5c5PMQcXZZuTZGLdjKk99sIj07n5a1K/HjMzco/IhIqeZwAHryySfPGxCOHj3Kk08+6VBb06dPxzAMgoOD8fT0JDo6mr59++Lqem53+eeff06/fv0uOZbn+uuv54EHHiAyMpIbbriBuXPn0rBhQ959990LvsfT0xM/P79CLxG5tPikdO56bw2z1idgscCgTvWY83gbreUlIqWewzNB79ixg5YtW56zPSoqih07djjUVr169Vi9ejUZGRlYrVYCAwPp3bs3devWLXTc77//Tnx8PHPmzHG0XFxcXLjmmmsu2gMkIo4xDIMZ6xIY/8MOcvLtBPh6MrV3C9rVr2Z2aSIiReJwD5CnpyfHjx8/Z3tiYiJubpe3soaPjw+BgYGcPn2aZcuW0b1790L7P/vsM1q1akVkZKTDbRuGQWxsLIGB6o4XKQ6pmbkMnBHDS99tIyffTqfwAJYOvkHhR0TKFIcTyy233MKoUaNYtGhRwazQqampjB49mltuucWhtpYtW4ZhGISHh7N3715GjBhBeHg4Dz/8cMExVquVefPmMXny5PO2MWDAAIKDg5k4cSIAr776Ktdffz0NGjTAarUSHR1NbGws77//vqOnKiL/sv5ACoNnbyYxLRt3VwsjuzTikXZ1tZyFiJQ5DgegyZMn06FDB0JDQwuerIqNjaVGjRpMnz7dobbS0tIYNWoUR44coUqVKvTs2ZMJEybg7v7/E6XNnj0bwzDo06fPedtISEjAxeX/O7JSU1N57LHHSEpKwt/fn6ioKH777TeuvfZaR09VRP6Wb7Pz3qq9RP+8B7sBdav58G6fKJoGa2kcESmbLmspjIyMDGbOnElcXBze3t40b96cPn36FAouZZmWwhD5f8dSsxgyO5b1B1MA6NmyFmO7N8HH8/JueYuIlBRHvr8v618wHx8fHnvsscsqTkTKjp+2JTFy/hbSsvKo6OnG+LubcndUsNlliYhcscsKQLt37+bXX38lOTkZu91eaN/LL79cLIWJiHmy82yM+2EHM9clABBZy5/oPlGEVvUxuTIRkeLhcAD65JNPeOKJJ6hWrRo1a9YstEaYxWJRABIp4+KT0nl61iZ2Hz8DwOMdwhh+azgebqaunSwiUqwcDkDjx49nwoQJjBw5siTqERGT/Htun2oVPZlyXyQdGgaYXZqISLFzOACdPn2aXr16lUQtImKS0xm5jJy/heU7zs7x1Sk8gLd6RVKtoqfJlYmIlAyH+7R79erF8uXLS6IWETHB2v2nuP2d31m+4zjurhZe6hbB5w9eo/AjIuWawz1A9evX56WXXmLt2rU0a9bsnEffn3nmmWIrTkRKTr7NTvTPe3h31V4MA8Kq+RCtuX1ExEk4PA/Qv9fpKtSYxcL+/fuvuCizaR4gKe8Op2QyePZmNiWkAnBf61qMuVNz+4hI2Vai8wAdOHDgsgsTEfMtjjvGCwu2kp6Tj6+nGxN6NOOuyCCzyxIRuar0v3siTiIjJ58xi7fzbcwRAFrWrsQ790cRUqWCyZWJiFx9RQpAw4YNY9y4cfj4+DBs2LCLHjtlypRiKUxEis+2o2k8PWszB05m4GKBp26szzM3N8DNVXP7iIhzKlIA2rx5M3l5eQV/vpD/nRRRRMxntxt8tuYAbyzbRZ7NINDfi6m9W3BdWFWzSxMRMdVlLYZa3mkQtJQHyenZDJ8bx+97TgLQpUlNJvVsRqUKHiZXJiJSMkp8MVQRKd1+2XWcEfO2cCojFy93F17u1oQ+14aol1ZE5G8KQCLlSHaejUlLd/HlnwcBaFTTl3f7RNGghq+5hYmIlDIKQCLlxJ7j6Tw9azO7ktIBeKRdXZ7rEo6Xu6vJlYmIlD4KQCJlnGEYzFyXwLiCRUw9eLNXJDeGVze7NBGRUksBSKQMS/l7EdMVfy9i2qFhAJN7RRLgq3W8REQuRgFIpIz6c+9Jhs6N5bg1Bw9XF0be3oiH29bBxUUDnUVELkUBSKSMyc23M2XFbj76bd/ZRUwDfIi+X4uYiog4QgFIpAzZf+IMg2fHsvVoGgB9rg3hpW4RVPDQX2UREUfoX02RMsAwDOZtPMIr328nM9dGpQruTOrRnC5Na5pdmohImaQAJFLKpWXmMXrhVpZsTQSgTVhVpvSOJNDf2+TKRETKLgUgkVJs3f5TDJ0Ty7G0bNxcLAy/NZzHOoThqoHOIiJXRAFIpBTKs9l5Z+UePvh1L3YD6lStwDv3RxEZUsns0kREygUFIJFS5tCpDAbPjiX2cCoAvVrV4pW7muDjqb+uIiLFRf+iipQShmEwf9NRxizaRkauDV8vNyb2aEa35kFmlyYiUu4oAImUAmlZebywcCs/bDk70PnaulV4u3cLgitpoLOISElQABIx2foDKQydE8vR1CxcXSwMu6UhAzvW00BnEZESpAAkYpI8m53on/fw/qqzA51D/x7o3EIDnUVESpwCkIgJ/j3Q+d6/BzpX1EBnEZGrQv/ailxF5xvo/No9zbgzUgOdRUSuJgUgkaskLTOP0d9tZYkGOouImE4BSOQqWLv/FMP+Z0bnoRroLCJiKgUgkRKUZ7Pz9ordTFu9D8OAutV8mNq7hWZ0FhExmQKQSAk5cDKDwbM3s+VIGgC9W4fw8p0RmtFZRKQU0L/EIsXMMAzmbDjM2B92kJlrw9/bnUk9mnF7s0CzSxMRkb8pAIkUo9MZuTy/YAvLth8HoG29qky+L5JAfw10FhEpTRSARIrJ73tOMHxuHMnpObi7WhhxWziPtg/DRQOdRURKHQUgkSuUnWfjzWXxfLbmAAD1q1dkau8WNA32N7kyERG5EAUgkSuw+3g6z8zazK6kdAD6Xx/K6Dsa4+3hanJlIiJyMQpAIpfBMAy++vMgry3dRW6+nao+Hrxxb3NublzD7NJERKQIFIBEHJScns2IeVtYvfsEAJ3CA3jz3kgCfD1NrkxERIpKAUjEAcu3J/H8gq2kZOTi6ebC6DsaM6BNKBaLBjqLiJQlCkAiRZCZm8+4H3Ywa/1hABoH+hF9fwsa1PA1uTIREbkcCkAilxB3OJUhc2I5cDIDiwX+e0MYw29tiKebBjqLiJRVCkAiF2CzG0z7dS9TV+4h324Q6O/F5F6RtK1fzezSRETkCikAiZzH4ZRMhs6JZeOh0wB0bR7Ia3c3w7+Cu8mViYhIcVAAEvkfhmGwcPNRXl60nTM5+VT0dOPVu5rQo2WwBjqLiJQjCkAif0vNzOWF77axZEsiAK1CK/P2fS2oXbWCyZWJiEhxUwASAf7Ye5Lhc+NIsmbj5mJhSOcGDOxYDzdXF7NLExGREqAAJE4tJ9/GW8vi+eT3s+t4hVXz4e3eLYgMqWRuYSIiUqIUgMRp7UqyMmR2bME6Xv2uq80LXRtTwUN/LUREyjv9Sy9Ox243+OLPg7z+0/+v4/V6z+Z0jtA6XiIizkIBSJxKYloWz86L44+9pwC4qVF1Xu/ZXOt4iYg4GQUgcRo/bDnGCwu3kZaVh5e7Cy90jeCB62rr8XYRESekACTlnjU7j1cWbWfB5qMANK/lz9u9W1AvoKLJlYmIiFkUgKRcW38ghaFzYjmamoWLBZ68sT7P3NwAdz3eLiLi1BSApFzKzbfz9srdfLh6H4YBIVW8mdq7Ba1Cq5hdmoiIlAIKQFLu7DmezpA5sWw/ZgWgV6tajLmrCRU99esuIiJn6RtByg273eCrvw4yaekucvLtVK7gzsQezejSNNDs0kREpJRRAJJyISktmxHfxvH7npMAdGwYwJv3Nqe6n5fJlYmISGmkACRl3jmPt9/RmAeuD9Xj7SIickEKQFJmWbPzGLNoOwv/5/H2Kfe1oH51Pd4uIiIXpwAkZdLa/acYPjdOj7eLiMhlUQCSMiUn38aU5bv5+Pf9GAaEVq3AlPta0Cq0stmliYhIGaIAJGXGzkQrQ+f8/+rtvVuH8PKdEfjo8XYREXGQqfcL0tPTGTJkCKGhoXh7e9O2bVs2bNhQsN9isZz39eabb1603fnz5xMREYGnpycREREsXLiwpE9FSpDNbvDxb/vo/t4f7EpKp6qPB58MaM3r9zZX+BERkctiagB69NFHWbFiBdOnT2fr1q3ceuutdO7cmaNHzw5qTUxMLPT6/PPPsVgs9OzZ84Jt/vXXX/Tu3Zv+/fsTFxdH//79ue+++1i3bt3VOi0pRkdOZ9L3k7W89uMucm12OjeuzrKhHbgloobZpYmISBlmMQzDMOODs7Ky8PX1ZdGiRXTt2rVge4sWLejWrRvjx48/5z1333036enp/Pzzzxdst3fv3litVpYuXVqwrUuXLlSuXJlZs2YVqTar1Yq/vz9paWn4+fk5cFZSXAzDYOHmo4xZtJ30nHwqeLjycrcIel8TosfbRUTkvBz5/jbt/kF+fj42mw0vr8IT1Xl7e7NmzZpzjj9+/DhLlizhq6++umi7f/31F0OHDi207bbbbmPq1KkXfE9OTg45OTkFP1ut1iKcgZSU0xm5vPDdVn7cmgRAy9qVeLt3C0Kr+phcmYiIlBem3QLz9fWlTZs2jBs3jmPHjmGz2ZgxYwbr1q0jMTHxnOO/+uorfH196dGjx0XbTUpKokaNwrdHatSoQVJS0gXfM3HiRPz9/QteISEhl3dScsVWxSdz69Tf+HFrEm4uFkbcFs7cx9so/IiISLEydQzQ9OnTMQyD4OBgPD09iY6Opm/fvri6up5z7Oeff06/fv3O6TE6n3/fIjEM46K3TUaNGkVaWlrB6/Dhw46fjFyRzNx8Xli4lYe/2MCJ9BzqBfiwcFA7nryxPm6a20dERIqZqY/Q1KtXj9WrV5ORkYHVaiUwMJDevXtTt27dQsf9/vvvxMfHM2fOnEu2WbNmzXN6e5KTk8/pFfpfnp6eeHp6Xt5JyBXblHCa4XPjOHAyA4CH29VhZJdGeLmfG4RFRESKQ6n4X2sfHx8CAwM5ffo0y5Yto3v37oX2f/bZZ7Rq1YrIyMhLttWmTRtWrFhRaNvy5ctp27ZtsdYsVy7PZmfK8njunfYnB05mEOjvxYz/XMeYO5so/IiISIkytQdo2bJlGIZBeHg4e/fuZcSIEYSHh/Pwww8XHGO1Wpk3bx6TJ08+bxsDBgwgODiYiRMnAjB48GA6dOjA66+/Tvfu3Vm0aBErV64878BqMc/e5HSGzolj69E0ALq3CGLsXU3xr+BucmUiIuIMTA1AaWlpjBo1iiNHjlClShV69uzJhAkTcHf//y/B2bNnYxgGffr0OW8bCQkJuLj8f0dW27ZtmT17Ni+++CIvvfQS9erVY86cOVx33XUlfj5yaXa7wVd/HWTS0l3k5Nvx93Zn/N1NuTMyyOzSRETEiZg2D1BppnmASsax1CxGfBvHH3tPAXBDg2q8eW8kNf0vPbBdRETkUsrEPEDiPAzD4LvYo7y8aDvp2fl4ubsw+o7G9L8+VJMaioiIKRSApESdzsjlxe+2sWTr2bmdIkMq8fZ9kYQFVDS5MhERcWYKQFJiVsUn89y3WziRnoObi4Vnbm7AoE71NK+PiIiYTgFIil1GTj4TftzJN+sSAKgX4MPbvVvQvFYlcwsTERH5mwKQFKuYQykMnxvHwVOZgCY1FBGR0kkBSIpFbr6dqSt38+HqfdgNCPT34q1ekbSrX83s0kRERM6hACRXbGeilWFz49iZaAWgR8tgxtzZBH9vTWooIiKlkwKQXDab3eCT3/czZflucm12qvh48No9TenSNNDs0kRERC5KAUguy6FTGQyfG8fGQ6cB6Ny4OhN7NCfAV4vKiohI6acAJA4xDINZ6w8zfskOMnNtVPR04+U7I+jVqpYmNRQRkTJDAUiK7Lg1m5Hzt/Br/AkArqtbhbd6RRJSpYLJlYmIiDhGAUiK5Pu4Y7z43TbSsvLwcHPhudvCeaRdXVxc1OsjIiJljwKQXNTpjFxeWrSNH7acXcqiWbA/U+6LpEENX5MrExERuXwKQHJBq+KTGfntFpLTc3B1sfDUjfV56qb6uGspCxERKeMUgOQcZ3LymbBkB7PWHwa0lIWIiJQ/CkBSyPoDKQyfF8vhlCwsFnikXV1G3BaupSxERKRcUQASALLzbExeHs+naw5gGBBcyZu3ekXSpl5Vs0sTEREpdgpAwpYjqQybG8fe5DMA9G4dwovdGuPrpaUsRESkfFIAcmJ5Njvv/bKX91btxWY3qFbRk9d7NuPmxjXMLk1ERKREKQA5qT3H0xk2N46tR9MA6No8kPHdm1LZx8PkykREREqeApCTsdkNPl9zgDeXx5Obb8ff251xdzflrsggs0sTERG5ahSAnMihUxmMmLeF9QdTAOgUHsDrPZtTw8/L5MpERESuLgUgJ2AYBjPXJfDajzvJzLXh4+HKi90iuP+aEC1gKiIiTkkBqJxLTMviuW+38Puek4AWMBUREQEFoHLLMAwWbDrKK99vJz07H083F0Z2acRDbetoAVMREXF6CkDl0In0HF5YuJXlO44D0CKkEpPvi6ReQEWTKxMRESkdFIDKmaVbE3nhu22kZOTi7mphSOeGPN4hDDctYCoiIlJAAaicSM3M5eVF21kcdwyARjV9mXJfCyKC/EyuTEREpPRRACoHftl1nJHzt3IiPQdXFwtPdKzHMzc3wMNNvT4iIiLnowBUhlmz8xj/ww7mbjwCQL0AHybf14IWIZXMLUxERKSUUwAqo9bsOclz38ZxLC0biwX+064uz94Wjpe7q9mliYiIlHoKQGVMRk4+k5buYvraQwDUrlKBt3pFcm3dKiZXJiIiUnYoAJUh6w+k8Oy8OBJSMgHof30oz9/eCB9P/WcUERFxhL45y4DsPBtvLovn8z8OYBgQ5O/F6/c254YGAWaXJiIiUiYpAJVymxNOM3xeHPtPZABwX+tavNgtAj8vd5MrExERKbsUgEqpnHwbU1fu4aPV+7AbUN3Xk0k9m3FToxpmlyYiIlLmKQCVQluPpDF8Xiy7j58B4J6oYMbcGUGlCh4mVyYiIlI+KACVIrn5dt5btZf3V+3FZjeoVtGD8Xc3o0vTmmaXJiIiUq4oAJUSO45ZeXZeHDsSrQB0bRbI2O5NqFrR0+TKREREyh8FIJPl2ex8+Os+on/ZQ57NoHIFd8Z2b8qdkUFmlyYiIlJuKQCZaPfxdIbPjWPr0TQAbo2owYR7mhHgq14fERGRkqQAZIJ8m51Pfj/A2yt2k2uz4+/tzqt3NaF7iyAsFovZ5YmIiJR7CkBX2b4TZxg+N47Yw6kA3NSoOhN7NKOGn5e5hYmIiDgRBaCraNn2JJ6ZtZmcfDu+nm68fGcE97aqpV4fERGRq0wB6CpqXssfDzcXrguryus9mxHo7212SSIiIk5JAegqCvT3ZvFT7alTtYJ6fUREREykAHSV1a3mY3YJIiIiTs/F7AJERERErjYFIBEREXE6CkAiIiLidBSARERExOkoAImIiIjTUQASERERp6MAJCIiIk5HAUhEREScjgKQiIiIOB0FIBEREXE6CkAiIiLidBSARERExOkoAImIiIjT0Wrw52EYBgBWq9XkSkRERKSo/vne/ud7/GIUgM4jPT0dgJCQEJMrEREREUelp6fj7+9/0WMsRlFikpOx2+0cO3YMX19fLBZLsbZttVoJCQnh8OHD+Pn5FWvbzkTXsXjoOhYPXcfioetYPJz5OhqGQXp6OkFBQbi4XHyUj3qAzsPFxYVatWqV6Gf4+fk53S9mSdB1LB66jsVD17F46DoWD2e9jpfq+fmHBkGLiIiI01EAEhEREaejAHSVeXp6MmbMGDw9Pc0upUzTdSweuo7FQ9exeOg6Fg9dx6LRIGgRERFxOuoBEhEREaejACQiIiJORwFIREREnI4CkIiIiDgdBaBiMG3aNJo3b14w6VSbNm1YunRpwX7DMHjllVcICgrC29ubTp06sX379kJt5OTk8PTTT1OtWjV8fHy46667OHLkyNU+lVJj4sSJWCwWhgwZUrBN17FoXnnlFSwWS6FXzZo1C/brOhbN0aNHeeCBB6hatSoVKlSgRYsWxMTEFOzXdSyaOnXqnPP7aLFYePLJJwFdx6LIz8/nxRdfpG7dunh7exMWFsbYsWOx2+0Fx+g6XgZDrtjixYuNJUuWGPHx8UZ8fLwxevRow93d3di2bZthGIYxadIkw9fX15g/f76xdetWo3fv3kZgYKBhtVoL2hg4cKARHBxsrFixwti0aZNx4403GpGRkUZ+fr5Zp2Wa9evXG3Xq1DGaN29uDB48uGC7rmPRjBkzxmjSpImRmJhY8EpOTi7Yr+t4aSkpKUZoaKjx0EMPGevWrTMOHDhgrFy50ti7d2/BMbqORZOcnFzod3HFihUGYKxatcowDF3Hohg/frxRtWpV44cffjAOHDhgzJs3z6hYsaIxderUgmN0HR2nAFRCKleubHz66aeG3W43atasaUyaNKlgX3Z2tuHv7298+OGHhmEYRmpqquHu7m7Mnj274JijR48aLi4uxk8//XTVazdTenq60aBBA2PFihVGx44dCwKQrmPRjRkzxoiMjDzvPl3Hohk5cqTRvn37C+7Xdbx8gwcPNurVq2fY7XZdxyLq2rWr8cgjjxTa1qNHD+OBBx4wDEO/j5dLt8CKmc1mY/bs2WRkZNCmTRsOHDhAUlISt956a8Exnp6edOzYkT///BOAmJgY8vLyCh0TFBRE06ZNC45xFk8++SRdu3alc+fOhbbrOjpmz549BAUFUbduXe6//372798P6DoW1eLFi2ndujW9evWievXqREVF8cknnxTs13W8PLm5ucyYMYNHHnkEi8Wi61hE7du35+eff2b37t0AxMXFsWbNGu644w5Av4+XS4uhFpOtW7fSpk0bsrOzqVixIgsXLiQiIqLgF6tGjRqFjq9RowaHDh0CICkpCQ8PDypXrnzOMUlJSVfnBEqB2bNns2nTJjZs2HDOvn+ug67jpV133XV8/fXXNGzYkOPHjzN+/Hjatm3L9u3bdR2LaP/+/UybNo1hw4YxevRo1q9fzzPPPIOnpycDBgzQdbxM3333HampqTz00EOA/l4X1ciRI0lLS6NRo0a4urpis9mYMGECffr0AXQdL5cCUDEJDw8nNjaW1NRU5s+fz4MPPsjq1asL9lsslkLHG4ZxzrZ/K8ox5cXhw4cZPHgwy5cvx8vL64LH6Tpe2u23317w52bNmtGmTRvq1avHV199xfXXXw/oOl6K3W6ndevWvPbaawBERUWxfft2pk2bxoABAwqO03V0zGeffcbtt99OUFBQoe26jhc3Z84cZsyYwTfffEOTJk2IjY1lyJAhBAUF8eCDDxYcp+voGN0CKyYeHh7Ur1+f1q1bM3HiRCIjI3nnnXcKnr75d8JOTk4uSOs1a9YkNzeX06dPX/CY8i4mJobk5GRatWqFm5sbbm5urF69mujoaNzc3Aqug66j43x8fGjWrBl79uzR72MRBQYGEhERUWhb48aNSUhIANB1vAyHDh1i5cqVPProowXbdB2LZsSIETz//PPcf//9NGvWjP79+zN06FAmTpwI6DpeLgWgEmIYBjk5OdStW5eaNWuyYsWKgn25ubmsXr2atm3bAtCqVSvc3d0LHZOYmMi2bdsKjinvbr75ZrZu3UpsbGzBq3Xr1vTr14/Y2FjCwsJ0HS9TTk4OO3fuJDAwUL+PRdSuXTvi4+MLbdu9ezehoaEAuo6X4YsvvqB69ep07dq1YJuuY9FkZmbi4lL469rV1bXgMXhdx8tkytDrcmbUqFHGb7/9Zhw4cMDYsmWLMXr0aMPFxcVYvny5YRhnH0/09/c3FixYYGzdutXo06fPeR9PrFWrlrFy5Upj06ZNxk033eTUjycahlHoKTDD0HUsquHDhxu//vqrsX//fmPt2rVGt27dDF9fX+PgwYOGYeg6FsX69esNNzc3Y8KECcaePXuMmTNnGhUqVDBmzJhRcIyuY9HZbDajdu3axsiRI8/Zp+t4aQ8++KARHBxc8Bj8ggULjGrVqhnPPfdcwTG6jo5TACoGjzzyiBEaGmp4eHgYAQEBxs0331wQfgzj7COKY8aMMWrWrGl4enoaHTp0MLZu3VqojaysLOOpp54yqlSpYnh7exvdunUzEhISrvaplCr/DkC6jkXzz/wf7u7uRlBQkNGjRw9j+/btBft1HYvm+++/N5o2bWp4enoajRo1Mj7++ONC+3Udi27ZsmUGYMTHx5+zT9fx0qxWqzF48GCjdu3ahpeXlxEWFma88MILRk5OTsExuo6OsxiGYZjdCyUiIiJyNWkMkIiIiDgdBSARERFxOgpAIiIi4nQUgERERMTpKACJiIiI01EAEhEREaejACQiIiJORwFIREREnI4CkIiUuIMHD2KxWIiNjb3ocZ06dWLIkCElUsNDDz3E3XfffUVt1KlTB4vFgsViITU1FYAvv/ySSpUqXXF9//bQQw8VfNZ3331X7O2LODsFIBG56n799ddCIeIfCxYsYNy4cQU/16lTh6lTp17d4i5h7NixJCYm4u/vX6Kf884775CYmFiinyHizNzMLkBE5B9VqlQxu4RL8vX1pWbNmiX+Of7+/iUeskScmXqAROSK/fTTT7Rv355KlSpRtWpVunXrxr59+8577MGDB7nxxhsBqFy5MhaLhYceeggofAusU6dOHDp0iKFDhxbcCgJ45ZVXaNGiRaE2p06dSp06dQp+ttlsDBs2rKCe5557jn8ve2gYBm+88QZhYWF4e3sTGRnJt99+e8XX4tSpU1x77bXcddddZGdnF/R2LVu2jKioKLy9vbnppptITk5m6dKlNG7cGD8/P/r06UNmZuYVf76IFI0CkIhcsYyMDIYNG8aGDRv4+eefcXFx4Z577sFut59zbEhICPPnzwcgPj6exMRE3nnnnXOOW7BgAbVq1Sq45eTI7aDJkyfz+eef89lnn7FmzRpSUlJYuHBhoWNefPFFvvjiC6ZNm8b27dsZOnQoDzzwAKtXr3bw7P/fkSNHuOGGG2jUqBELFizAy8urYN8rr7zCe++9x59//snhw4e57777mDp1Kt988w1LlixhxYoVvPvuu5f92SLiGN0CE5Er1rNnz0I/f/bZZ1SvXp0dO3bQtGnTQvtcXV0LbnVVr179ggOIq1Spgqur62Xdcpo6dSqjRo0qqOvDDz9k2bJlBfszMjKYMmUKv/zyC23atAEgLCyMNWvW8NFHH9GxY0eHPg9g9+7d3HLLLXTv3p133nmnoMfqH+PHj6ddu3YA/Oc//2HUqFHs27ePsLAwAO69915WrVrFyJEjHf5sEXGceoBE5Irt27ePvn37EhYWhp+fH3Xr1gUgISHhqteSlpZGYmJiQbABcHNzo3Xr1gU/79ixg+zsbG655RYqVqxY8Pr6668veOvuYrKysmjfvj1333030dHR54QfgObNmxf8uUaNGlSoUKEg/PyzLTk52eHPFpHLox4gEblid955JyEhIXzyyScEBQVht9tp2rQpubm5xf5ZLi4u54znycvLc6iNf27NLVmyhODg4EL7PD09Ha7J09OTzp07s2TJEkaMGEGtWrXOOcbd3b3gzxaLpdDP/2w73y1DESkZ6gESkSty6tQpdu7cyYsvvsjNN99M48aNOX369EXf4+HhAZwdrHyp4/59TEBAAElJSYVC0P/OL+Tv709gYCBr164t2Jafn09MTEzBzxEREXh6epKQkED9+vULvUJCQi55zv/m4uLC9OnTadWqFTfddBPHjh1zuA0RuboUgETkilSuXJmqVavy8ccfs3fvXn755ReGDRt20feEhoZisVj44YcfOHHiBGfOnDnvcXXq1OG3337j6NGjnDx5Ejj7dNiJEyd444032LdvH++//z5Lly4t9L7BgwczadIkFi5cyK5duxg0aFChOYd8fX159tlnGTp0KF999RX79u1j8+bNvP/++3z11VeXdR1cXV2ZOXMmkZGR3HTTTSQlJV1WOyJydSgAicgVcXFxYfbs2cTExNC0aVOGDh3Km2++edH3BAcH8+qrr/L8889To0YNnnrqqfMeN3bsWA4ePEi9evUICAgAoHHjxnzwwQe8//77REZGsn79ep599tlC7xs+fDgDBgzgoYceok2bNvj6+nLPPfcUOmbcuHG8/PLLTJw4kcaNG3Pbbbfx/fffF4xfuhxubm7MmjWLJk2aFDzqLiKlk8X49810ERE5rzp16jBkyJASW67jfCwWCwsXLrziZTxEpDD1AImIOGDkyJFUrFiRtLS0Ev2cgQMHUrFixRL9DBFnph4gEZEiOnToUMETZ2FhYbi4lNz/QyYnJ2O1WgEIDAzEx8enxD5LxBkpAImIiIjT0S0wERERcToKQCIiIuJ0FIBERETE6SgAiYiIiNNRABIRERGnowAkIiIiTkcBSERERJyOApCIiIg4nf8DmL/tzfPHyVQAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.plot(h, i)\n", - "plt.xlabel(\"altitude [km]\")\n", - "plt.ylabel(\"inclination [deg]\")" - ] - }, - { - "cell_type": "markdown", - "id": "a17f8ccf", - "metadata": {}, - "source": [ - "## 2) Fix repeating cycle constraints and get the minimum Swath width" - ] - }, - { - "cell_type": "markdown", - "id": "253f9742", - "metadata": {}, - "source": [ - "Let's define the repeating cycle ($D$) as a function of the number of repetitions ($R$)
For a sun-synchronous orbit, it is true that: $$R \\cdot T_N \\cdot ({\\omega}_e - p) = 2 \\cdot \\pi \\cdot D$$, where p is the precession with respect to the ascending node, \n", - " ${\\omega}_E$ is the Earth rotation rate to the vernal equinox,$D$ and $R$ are two integers prime between them and $T_N$ is the orbital period. In particular, $D$ is the number of nodal days and $R$ is the number of orbits in $D$ days.\n", - "\n", - "Now, ${\\omega}_e = \\frac{2 * \\pi}{T_{sydereal}}$, whilst ${\\omega}_s = \\frac{2 *\\pi}{T_{synodic}}$.\n", - "\n", - "You, probably, know that $T_{sydereal}=23 * 3600 + 56 * 60 + 4$ whilst $T_{synodic}=24*3600 $.
Therefore, ${\\omega}_e = \\frac{2 * \\pi}{T_{sydereal}} = \\frac{2 * \\pi}{T_{sydereal}} \\cdot \\frac{T_{synodic}}{T_{synodic}} = {\\omega}_s \\cdot (1 + \\frac{3x60 + 4}{T_{sydereal}}) = {\\omega}_s \\cdot (1 + \\frac{1}{365.24})$.
To be sunsynchronous, the satellite precission $p$ shall match as the **Earth mean motion**, which is the rotation of the **mean sun** around the Earth that is of 365.24 days. Therefore, $p = 2*\\pi/(365.24 * T_{synodic}) = \\frac{\\omega_s}{s}.$.
Therefore, the equation above becomes (**Eq. 1**):
$$R \\cdot \\frac{T_N}{T_{synodic}} = D$$
You need also to consider that (**Eq. 2**): $$ a = \\sqrt[3]{\\mu_{E}\\cdot(\\frac{T_N}{2\\pi})^2}$$, where is the $a=h + R_E$ is the major semi-axis.
So you can proceed as follows:
\n", - "- Fix the repeating cycle in days $D$. \n", - "- Then, you select a number of repetitions $R$. \n", - "- You find the $T_N$ from Eq 1. \n", - "- You select the altitude from Eq. 2.\n", - "\n", - "Now, **minimum swath width** $S_w$ to have total coverage assuming that no titl manovers are possible, is: \n", - "\n", - "$$S_w = \\frac{2\\pi R_E}{R}$$, where $R_E$ is the Earth radius. So, are dividing the Earth circonference for the number of repetitions. This gives us the size of each repetition that has to be covered by the satellite across its track. " - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "a92011df", - "metadata": {}, - "outputs": [], - "source": [ - "def get_swath_width(D, R):\n", - " T_synodic = 86400 # s\n", - " T_N = T_synodic * D / R \n", - " a = np.cbrt(muE * (T_N/(2 * np.pi))**2)\n", - " h = a - Re\n", - " S_w = 2 * np.pi * Re /R\n", - " return S_w, a, h, T_N" - ] - }, - { - "cell_type": "markdown", - "id": "27d17852", - "metadata": {}, - "source": [ - "For instance, we try now to get [Sentinel-2](https://www.esa.int/Enabling_Support/Operations/Sentinel-2_operations) numbers." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "be7c6a61", - "metadata": {}, - "outputs": [], - "source": [ - "D = 10 #Revisit time of a single satellite\n", - "R = 143 #14.3 orbits per day => 143 in 10 days.\n", - "S_w, a, h, T_N = get_swath_width(D, R)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "98634a44", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "altitude [km]: 791.7315152816172\n", - "period [minute]: 100.6993006993007\n", - "swath width [km]: 280.2448411702711\n" - ] - } - ], - "source": [ - "print(\"altitude [km]: \", h)\n", - "print(\"period [minute]: \", T_N/60)\n", - "print(\"swath width [km]: \", S_w)" - ] - }, - { - "cell_type": "markdown", - "id": "9ef636ac", - "metadata": {}, - "source": [ - "## 3) How to get the orbit" - ] - }, - { - "cell_type": "markdown", - "id": "683af945", - "metadata": {}, - "source": [ - "To find the other orbital parameters, proceed as follow: \n", - "- You find the select the eccentricity of the orbit \n", - "- You find the inclination from `get_inclination(h,e)` \n", - "- You take as date the equinotium, so the satellite is along the major-semiaxis with a distance equal to $h + R_e$.\n", - "- Then, $a = R_e + h$.\n", - "- (True anomaly) $\\nu=0$.\n", - "- (Argument of perigee): $\\omega = 90$\n", - "- (Longitude of ascending node): $\\Omega = 270$" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "id": "a3d6202b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[7169867.815281617,\n", - " 0.0012,\n", - " 1.720336214612357,\n", - " 4.71238898038469,\n", - " 1.5707963267948966,\n", - " 4.71238898038469]" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "e = 1.2e-3\n", - "i = get_inclination(np.array(h), e) / 180 * np.pi\n", - "w = np.pi/2 #Argument of perigee\n", - "W = 3/2 * np.pi # Longitude of ascending node\n", - "v = 3/2 * np.pi #True anomaly\n", - "params = [a * 1000,e,i,W, w,v]\n", - "params" - ] - }, - { - "cell_type": "markdown", - "id": "f44fa87b", - "metadata": {}, - "source": [ - "Now you can the the ephemerides by using PASEOS." - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "id": "0c4f3864", - "metadata": {}, - "outputs": [], - "source": [ - "r, v = pk.par2ic(params, 1)" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "id": "d5e40c84", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[7169867.815281617,\n", - " 0.0012,\n", - " 1.720336214612357,\n", - " 4.71238898038469,\n", - " 1.5707963267948966,\n", - " 4.71238898038469]" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "params" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "id": "e610f2e2", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(1281.8275717780234, -7169862.652974932, -8507.820199078998)" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "r" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "id": "c277bfe1", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(-5.5639297673936255e-05, -8.125056621227717e-20, 0.00036929236898515695)" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "v" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "83438d1f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "1.720336214612357" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "i" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "24ef8974", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.4" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/examples/TID_model_custom_property/failure_propability.pdf b/examples/TID_model_custom_property/failure_propability.pdf deleted file mode 100644 index 44cde7a8..00000000 Binary files a/examples/TID_model_custom_property/failure_propability.pdf and /dev/null differ