{ "cells": [ { "cell_type": "markdown", "id": "7fb27b941602401d91542211134fc71a", "metadata": { "papermill": { "duration": 0.00294, "end_time": "2026-05-16T13:48:38.008490+00:00", "exception": false, "start_time": "2026-05-16T13:48:38.005550+00:00", "status": "completed" }, "tags": [] }, "source": [ "# Fast Orbit Characterization\n", "\n", "Orbit integration can be expensive when you only need basic orbital parameters\n", "like eccentricity, pericenter, apocenter, or maximum height above the plane.\n", "The Staeckel approximation provides a fast alternative that avoids integration\n", "entirely. It also allows you to estimate the actions, angles, and frequencies of an orbit." ] }, { "cell_type": "code", "execution_count": 1, "id": "acae54e37e7d407bbb7b55eff062a284", "metadata": { "execution": { "iopub.execute_input": "2026-05-16T13:48:38.014738Z", "iopub.status.busy": "2026-05-16T13:48:38.014542Z", "iopub.status.idle": "2026-05-16T13:48:40.397071Z", "shell.execute_reply": "2026-05-16T13:48:40.396279Z" }, "papermill": { "duration": 2.387035, "end_time": "2026-05-16T13:48:40.398369+00:00", "exception": false, "start_time": "2026-05-16T13:48:38.011334+00:00", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "%matplotlib inline\n", "import numpy\n", "from galpy.orbit import Orbit\n", "from galpy.potential import MWPotential2014\n", "from galpy.actionAngle import estimateDeltaStaeckel\n", "import warnings\n", "\n", "warnings.filterwarnings(\"ignore\", category=RuntimeWarning)\n", "warnings.filterwarnings(\"ignore\", category=UserWarning)" ] }, { "cell_type": "markdown", "id": "9a63283cbaf04dbcab1f6479b197f3a8", "metadata": { "papermill": { "duration": 0.002204, "end_time": "2026-05-16T13:48:40.403263+00:00", "exception": false, "start_time": "2026-05-16T13:48:40.401059+00:00", "status": "completed" }, "tags": [] }, "source": [ "## Staeckel approximation for a single orbit\n", "\n", "Use `analytic=True` with `type='staeckel'` to compute orbital parameters\n", "without integrating. The Staeckel focal length `delta` is estimated\n", "automatically." ] }, { "cell_type": "code", "execution_count": 2, "id": "8dd0d8092fe74a7c96281538738b07e2", "metadata": { "execution": { "iopub.execute_input": "2026-05-16T13:48:40.409123Z", "iopub.status.busy": "2026-05-16T13:48:40.408739Z", "iopub.status.idle": "2026-05-16T13:48:40.417610Z", "shell.execute_reply": "2026-05-16T13:48:40.416887Z" }, "papermill": { "duration": 0.013002, "end_time": "2026-05-16T13:48:40.418656+00:00", "exception": false, "start_time": "2026-05-16T13:48:40.405654+00:00", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Eccentricity: 0.0749\n", "Apocenter: 1.0845\n", "Pericenter: 0.9333\n", "zmax: 0.0431\n" ] } ], "source": [ "o = Orbit([1.0, 0.1, 1.0, 0.0, 0.1, 0.0])\n", "\n", "e_staeckel = o.e(analytic=True, pot=MWPotential2014, type=\"staeckel\")\n", "rap_staeckel = o.rap(analytic=True, pot=MWPotential2014, type=\"staeckel\")\n", "rperi_staeckel = o.rperi(analytic=True, pot=MWPotential2014, type=\"staeckel\")\n", "zmax_staeckel = o.zmax(analytic=True, pot=MWPotential2014, type=\"staeckel\")\n", "\n", "print(f\"Eccentricity: {e_staeckel:.4f}\")\n", "print(f\"Apocenter: {rap_staeckel:.4f}\")\n", "print(f\"Pericenter: {rperi_staeckel:.4f}\")\n", "print(f\"zmax: {zmax_staeckel:.4f}\")" ] }, { "cell_type": "markdown", "id": "c70d384f", "metadata": { "papermill": { "duration": 0.002469, "end_time": "2026-05-16T13:48:40.424820+00:00", "exception": false, "start_time": "2026-05-16T13:48:40.422351+00:00", "status": "completed" }, "tags": [] }, "source": [ "Note that ``type='staeckel'`` is the default when `analytic=True`, so you can omit it if you want." ] }, { "cell_type": "markdown", "id": "72eea5119410473aa328ad9291626812", "metadata": { "papermill": { "duration": 0.002179, "end_time": "2026-05-16T13:48:40.429481+00:00", "exception": false, "start_time": "2026-05-16T13:48:40.427302+00:00", "status": "completed" }, "tags": [] }, "source": [ "## Multiple orbits at once\n", "\n", "The Staeckel approximation works efficiently for arrays of orbits." ] }, { "cell_type": "code", "execution_count": 3, "id": "8edb47106e1a46a883d545849b8ab81b", "metadata": { "execution": { "iopub.execute_input": "2026-05-16T13:48:40.435295Z", "iopub.status.busy": "2026-05-16T13:48:40.435053Z", "iopub.status.idle": "2026-05-16T13:48:40.714424Z", "shell.execute_reply": "2026-05-16T13:48:40.713145Z" }, "papermill": { "duration": 0.283589, "end_time": "2026-05-16T13:48:40.715535+00:00", "exception": false, "start_time": "2026-05-16T13:48:40.431946+00:00", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Computed 1000 eccentricities\n", "Mean eccentricity: 0.1338\n", "Std eccentricity: 0.0635\n" ] } ], "source": [ "numpy.random.seed(42)\n", "N = 1000\n", "vxvvs = numpy.column_stack(\n", " [\n", " numpy.random.uniform(0.5, 1.5, N),\n", " numpy.random.normal(0.0, 0.1, N),\n", " numpy.random.uniform(0.8, 1.2, N),\n", " numpy.random.normal(0.0, 0.1, N),\n", " numpy.random.normal(0.0, 0.1, N),\n", " numpy.random.uniform(0.0, 2 * numpy.pi, N),\n", " ]\n", ")\n", "os = Orbit(vxvvs)\n", "eccs = os.e(analytic=True, pot=MWPotential2014, type=\"staeckel\")\n", "print(f\"Computed {len(eccs)} eccentricities\")\n", "print(f\"Mean eccentricity: {numpy.mean(eccs):.4f}\")\n", "print(f\"Std eccentricity: {numpy.std(eccs):.4f}\")" ] }, { "cell_type": "markdown", "id": "10185d26023b46108eb7d9f57d49d2b3", "metadata": { "papermill": { "duration": 0.002485, "end_time": "2026-05-16T13:48:40.721780+00:00", "exception": false, "start_time": "2026-05-16T13:48:40.719295+00:00", "status": "completed" }, "tags": [] }, "source": [ "## Estimating the Staeckel focal length\n", "\n", "The `estimateDeltaStaeckel` function computes the optimal focal\n", "length `delta` for a given position in a potential. This is done\n", "automatically by the orbit methods, but you can also call it directly." ] }, { "cell_type": "code", "execution_count": 4, "id": "8763a12b2bbd4a93a75aff182afb95dc", "metadata": { "execution": { "iopub.execute_input": "2026-05-16T13:48:40.727704Z", "iopub.status.busy": "2026-05-16T13:48:40.727512Z", "iopub.status.idle": "2026-05-16T13:48:40.759038Z", "shell.execute_reply": "2026-05-16T13:48:40.758093Z" }, "papermill": { "duration": 0.035604, "end_time": "2026-05-16T13:48:40.759806+00:00", "exception": false, "start_time": "2026-05-16T13:48:40.724202+00:00", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Estimated delta: 0.4033\n", "Mean delta: 0.4502\n" ] } ], "source": [ "# For a single position\n", "delta = estimateDeltaStaeckel(MWPotential2014, 1.0, 0.1)\n", "print(f\"Estimated delta: {delta:.4f}\")\n", "\n", "# For an array of positions\n", "Rs = numpy.random.uniform(0.5, 1.5, 100)\n", "zs = numpy.random.normal(0.0, 0.1, 100)\n", "deltas = estimateDeltaStaeckel(MWPotential2014, Rs, zs)\n", "print(f\"Mean delta: {numpy.mean(deltas):.4f}\")" ] }, { "cell_type": "markdown", "id": "938c804e27f84196a10c8828c723f798", "metadata": { "papermill": { "duration": 0.002328, "end_time": "2026-05-16T13:48:40.764623+00:00", "exception": false, "start_time": "2026-05-16T13:48:40.762295+00:00", "status": "completed" }, "tags": [] }, "source": [ "## Comparison: numerical vs. Staeckel\n", "\n", "Let's compare orbital parameters computed by orbit integration vs.\n", "the Staeckel approximation." ] }, { "cell_type": "code", "execution_count": 5, "id": "504fb2a444614c0babb325280ed9130a", "metadata": { "execution": { "iopub.execute_input": "2026-05-16T13:48:40.770494Z", "iopub.status.busy": "2026-05-16T13:48:40.770280Z", "iopub.status.idle": "2026-05-16T13:49:03.154440Z", "shell.execute_reply": "2026-05-16T13:49:03.153326Z" }, "papermill": { "duration": 22.38809, "end_time": "2026-05-16T13:49:03.155147+00:00", "exception": false, "start_time": "2026-05-16T13:48:40.767057+00:00", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "image/png": "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x1T83rt3765SU1PV7Nmz1fTp01WTJk1UQkKCys7O9h07fvx4ZbFYVPv27dXNN9+s5s6dq0aOHKkANXXq1ID77NKli2rTpo16+umn1b///W914MABtXz5cmUwGFSHDh3UM888o6ZPn67i4+NVXFyc2r9/v+8+Ro4cqWJiYtTBgweVUkpt2bJFmUwm3/OpUN1/q1V5nxQXF6uXX35ZAerqq6/2vdc2b97sV4fKxo8frwB17bXXqnnz5qlx48YpQI0ePdrvuFatWqmOHTuqpKQk9cgjj6i5c+eqXr16KU3T1LZt26rya28QJKgbqMpBvXfvXmUwGNQ//vEP3+3VEdR//etffWVut1udc845StM09fTTT/vK8/PzVVhYmBo/fryvbMGCBUqn06kff/zR73Hmz5+vAPXTTz/5PbZOp1Pbt28/bb3GjRundDqd+uWXXwKO9Xq9SimlysrKlMfj8btt//79ymw2qxkzZlTp9ahsypQpymg0qmPHjvnKHA6Hio2NVbfddpuvLCYmRt19992nvK+qys7OVgkJCQpQnTp1Unfeead67733VEFBQcCxI0aMUK1atQood7vdyuFw+JXl5+erpKQkv3r/+OOPClALFy70O3bZsmV+5QUFBSoqKkr1799flZaW+h1b8dor5f+++/jjj5XRaFR33HGH3+/k0ksvVd27d1dlZWV+93HBBReo9u3b+8rOJKg3bNigALV8+XLf/Z1zzjnq3nvv9Tuu4vceFhamDh8+7Ctft26dAtT999/vK6sIm4kTJ/rVc8SIEcpkMqnc3Fy/+4yOjlZWq9Xv8Xr27KkSExPV0aNHfWWbN29WOp1OjRs3zleWlZWlmjRpoi677DLlcDjUeeedp1q2bKkKCwv97q+6/1ar+j7Jzc0NeOwT61AhLS1NAer222/3O+7BBx9UgPr+++99Za1atVKAWr16ta/MarUqs9msHnjggYDHaqik67sRaNOmDTfffDOvvvoqWVlZ1Xa/t99+u+//er2ePn36oJRiwoQJvvLY2Fg6duzIvn37fGWLFy+mc+fOdOrUiby8PN+/Sy65BCCg+3XIkCF06dLllHXxer18+umnXHnllfTp0yfg9oquN7PZjE5X/rb3eDwcPXqUyMhIOnbseFbd0GPGjMHlcrFkyRJf2bfffktBQQFjxozxlcXGxrJu3ToyMzPP+DFOlJSUxObNm7nzzjvJz89n/vz5jB07lsTERGbOnOnX7Xoyer3eNz7q9Xo5duwYbrebPn36+L0OixcvJiYmhssuu8zvd9W7d28iIyN9v6vly5djs9mYPHlywDhpsKU577//PmPGjOFvf/sbr7zyiu93cuzYMb7//nuuv/56bDab7/GOHj3KsGHD2LNnT9BVDKezcOFCkpKSuPjii311GjNmDB988AEejyfg+NGjR9OiRQvfz/369aN///5+3cwV7rnnHr/nes899+B0Ovnuu+/8jvvzn//s6yIGyMrKIi0tjVtuuYUmTZr4ys8991wuu+wyv8dq1qwZ8+bNY/ny5QwaNIi0tDTefPNNoqOjq/T8z/ZvtarvkzNR8bwmTZrkV/7AAw8A8OWXX/qVd+nShUGDBvl+TkhICKhnQydB3Ug89thjuN3u045Vn4mWLVv6/RwTE4PFYiE+Pj6gvPJ45p49e9i+fTsJCQl+/zp06ACA1Wr1O79169anrUtubi5FRUWnXXLm9Xr597//Tfv27TGbzcTHx5OQkMCWLVsoLCw87eOcqEePHnTq1IlFixb5yhYtWkR8fLzviwfAM888w7Zt20hJSaFfv3488cQTf+iDJjk5mZdffpmsrCx2797Nf/7zHxISEnj88cd54403qnQf77zzDueeey4Wi4WmTZuSkJDAl19+6fc67Nmzh8LCQhITEwN+X8XFxb7f1d69ewGqtORv//79/OUvf+HPf/4zL774ol+Qp6eno5Ri6tSpAY9XMfHrxPfH6Xg8Hj744AMuvvhi9u/fT3p6Ounp6fTv35+cnBxWrFgRcE779u0Dyjp06EBGRoZfmU6no02bNgHHAQHHnvg+PnDgAAAdO3YMeKzOnTuTl5dHSUmJr+yGG25gxIgRrF+/njvuuINLL7305E/6BGf7twpVe5+ciQMHDqDT6QJm3Ddr1ozY2Fjf63KyugPExcUFnSPRUMlUvEaiTZs2/OUvf+HVV18NulTiZBsSBGttVNDr9VUqA/xaeV6vl+7du/P8888HPTYlJcXv57CwsJPW4Uw99dRTTJ06ldtuu42ZM2fSpEkTdDod9913H16v96zuc8yYMTz55JPk5eURFRXFZ599xo033ug30/X6669n0KBBfPLJJ3z77bc8++yzzJ49myVLlnDFFVec9fPRNI0OHTrQoUMHRowYQfv27Vm4cKFfCyqYd999l1tuuYXRo0fzz3/+k8TERPR6PbNmzfKFLpT/rhITE4NOvAL8WohVlZycTHJyMl999RUbNmzw6wGp+B08+OCDDBs2LOj5Z7qk6vvvvycrK4sPPviADz74IOD2hQsXcvnll5/RfZ6NP/o+Pnr0KBs2bABgx44deL1eX0/E6Zzt32pV3ydno6qboFSlng2dBHUj8thjj/Huu+8ye/bsgNvi4uIAKCgo8Cs/8dttdWjbti2bN2/m0ksvrbYdixISEoiOjg6YmXuijz76iIsvvjig1VlQUBDQuqiqMWPGMH36dD7++GOSkpIoKirihhtuCDguOTmZv//97/z973/HarXSq1cvnnzyyT8U1JW1adOGuLg4v+GNk72+H330EW3atGHJkiV+x5y4XKlt27Z89913DBw48JRB07ZtWwC2bdt22iC1WCx88cUXXHLJJfzpT3/ihx9+oGvXrr7nAGA0Ghk6dOgp76eqFi5cSGJiIvPmzQu4bcmSJXzyySfMnz/f7/nt2bMn4NjffvvNN2u+gtfrZd++fb5WdMVxQMCxJ2rVqhUAu3fvDrht165dxMfHExER4Su7++67sdlszJo1iylTpjBnzpyA7uPqVtX3yZn8Hbdq1Qqv18uePXvo3LmzrzwnJ4eCggLf6yJ+J13fjUjbtm35y1/+wiuvvEJ2drbfbdHR0cTHx7N69Wq/8pdeeqna63H99ddz5MgRXnvttYDbSktL/br7qkqn0zF69Gg+//xzX6ujsopv33q9PuCb+OLFi89q3LNC586d6d69O4sWLWLRokUkJyczePBg3+0ejyegmzAxMZHmzZv7LUfJy8tj165d2O32Uz7eunXrgr5G69ev5+jRo35dqREREUG7KCtaKZVfi3Xr1rF27Vq/466//no8Hg8zZ84MuA+32+37Ynf55ZcTFRXFrFmzKCsr8zsuWMsnJiaGb775xrdMraJ1lpiYyEUXXcQrr7wSdD5Fbm5uQNmplJaWsmTJEkaOHMm1114b8O+ee+7BZrMFLP369NNP/d4T69evZ926dUG/VM2dO9fvuc6dOxej0Xjarunk5GR69uzJO++84/cFedu2bXz77bcMHz7cV/bRRx+xaNEinn76aSZPnswNN9zAY4895vtSUFOq+j4JDw8HAr/oB1PxvE7cMa+ih23EiBFnW90GS1rUjcyjjz7KggUL2L17t68VU+H222/n6aef5vbbb6dPnz6sXr26Rj4Ibr75Zj788EPuvPNOVq5cycCBA/F4POzatYsPP/yQb775JuiEsNN56qmn+PbbbxkyZAh//etf6dy5M1lZWSxevJg1a9YQGxvLyJEjmTFjBrfeeisXXHABW7duZeHChQHjjGdqzJgxPP7441gsFiZMmODXJWmz2TjnnHO49tpr6dGjB5GRkXz33Xf88ssvfutW586dy/Tp01m5cmXA7k6VLViwgIULF3L11VfTu3dvTCYTO3fu5M0338RisfDII4/4ju3duzeLFi1i0qRJ9O3bl8jISK688kpGjhzJkiVLuPrqqxkxYgT79+9n/vz5dOnSxW8L0iFDhvC3v/2NWbNmkZaWxuWXX47RaGTPnj0sXryYF154gWuvvZbo6Gj+/e9/c/vtt9O3b1/Gjh1LXFwcmzdvxm63B11rHh8fz/Lly7nwwgsZOnQoa9asoUWLFsybN48LL7yQ7t27c8cdd9CmTRtycnJYu3Ythw8fPqM175999hk2m42rrroq6O3nn38+CQkJLFy40G/yX7t27bjwwgu56667cDgczJkzh6ZNm/LQQw/5nW+xWFi2bBnjx4+nf//+fP3113z55Zc88sgjVRoWePbZZ7niiisYMGAAEyZMoLS0lBdffJGYmBjfOmSr1cpdd93FxRdf7Ju4NnfuXFauXMktt9zCmjVrqtwFfqaq+j4JCwujS5cuLFq0iA4dOtCkSRO6desWdM5Cjx49GD9+PK+++ioFBQUMGTKE9evX88477zB69GjfhD9RSUjmmosaV3l51okqlpVUXp6llFJ2u11NmDBBxcTEqKioKHX99dcrq9V60iUfFctPKt9vREREwOOduBRMKaWcTqeaPXu26tq1qzKbzSouLk717t1bTZ8+3W/JCXDSZU0n1ksppQ4cOKDGjRunEhISlNlsVm3atFF33323b4lJWVmZeuCBB1RycrIKCwtTAwcOVGvXrlVDhgxRQ4YM8d1PVZdnVdizZ48CFKDWrFnjd5vD4VD//Oc/VY8ePVRUVJSKiIhQPXr0UC+99JLfcRWv6+mWG23ZskX985//VL169VJNmjRRBoNBJScnq+uuu05t2rTJ79ji4mI1duxYFRsbqwDfUi2v16ueeuop1apVK2U2m9V5552nvvjiCzV+/Pigy7leffVV1bt3bxUWFqaioqJU9+7d1UMPPaQyMzP9jvvss8/UBRdcoMLCwlR0dLTq16+fev/99323B3svpKenq+TkZNW5c2ffe2rv3r1q3LhxqlmzZspoNKoWLVqokSNHqo8++sh3XlWWZ1155ZXKYrGokpKSkx5zyy23KKPRqPLy8ny/92effVY999xzKiUlRZnNZjVo0CDfuuAKFe/3vXv3+vYFSEpKUtOmTfNbblb5PoP57rvv1MCBA32v2ZVXXql27Njhu/2aa65RUVFRKiMjw++8pUuXKkDNnj3bV1bdf6tn8j75+eefVe/evZXJZPKrR7B11C6XS02fPl21bt1aGY1GlZKSoqZMmeK3JE+p8uVZI0aMCFrPyn+vDZ2mVCMakRdCiFPIyMigdevWPPvsszz44IOnPPaWW27ho48+8mtZClETZIxaCCGEqMMkqIUQQog6TIJaCCGEqMMaVFCvXr2aK6+8kubNm6NpGp9++ulpz1m1ahW9evXCbDbTrl27oFePEkI0DqmpqSilTjs+DfD222/L+LSoFQ0qqEtKSujRo0fQjQ2C2b9/PyNGjODiiy8mLS2N++67j9tvv51vvvmmhmsqhBBCVE2DnfWtaRqffPIJo0ePPukxDz/8MF9++aXfblY33HADBQUFvmseB+NwOPw2qqjYrL5p06bVttOWEEKI+kUphc1mo3nz5tW6tr1Rb3iydu3agG0Khw0bxn333XfK82bNmsX06dNrsGZCCCHqq0OHDnHOOedU2/016qDOzs4mKSnJr6xir+bS0tKT7m08ZcoUvz12CwsLadmyJYcOHaryZeeEEEI0DDt27GD06NHMmjWL2267jaioqGq9/0Yd1GfLbDZjNpsDyqOjoyWohRCiEfnf//7H8OHDmTRpEtdccw233XZbtQ+BNuqgbtasGTk5OX5lOTk5REdHV+ulFYUQQjQ8xcXFXHXVVcyYMYN77rmHoqKiGnmcRh3UAwYM4KuvvvIrW758OQMGDAhRjYQQQtQHVquVxMRENm/eTHJyco0+VoNanlVcXExaWhppaWlA+fKrtLQ0Dh48CJSPLY8bN853/J133sm+fft46KGH2LVrFy+99BIffvgh999/fyiqL4QQoh5488036dq1K4WFhTUe0tDAgnrDhg2cd955nHfeeQBMmjSJ8847j8cffxyArKwsX2gDtG7dmi+//JLly5fT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9euxfPnyJtUhMzMTd9xxB1JTU7Fv3z7s3r0bd999N9xuNwBg5cqVePvtt/G3v/0Nx48fx4IFC/Dggw/i22+/9anH4sWL8Ze//AU//PADRFHEI488AgCYMmUKnnzySfTq1Qt5eXnIy8vDlClTvO978cUX8Zvf/AZHjx71vqe2q9Wvts2bN6NDhw5YtmyZ97OMRiPuv//+ejdib731Fu69917qjZOru9a0X4TcjGqnjLzlllvYI488whhj7JNPPmG1/9ukp6ezvn37+rx3zZo1LCkpyedcSUlJzO12e8tSUlLY8OHDvV/LssyMRiN7//33GWOMvfPOOywlJYUpiuI9xuFwML1ez7788kvveWNiYpjD4fD5/KSkJLZmzRrGGGNffvkl43meZWdnN/nax48fz5588knv1yNGjGBPPPFEg8ffcccdbMWKFT5l77zzDouLi2tSHaZOncqGDRvm9zW73c4MBgPbu3evT/msWbPY1KlTGWNXUg9+/fXX3te3bt3KALDq6mrGmP/vE2OMAWDz58/3KfOcz5PCsbH6MVa/fWq3v8f+/fuZIAgsNzeXMcZYQUEBE0WR7dq1q8HzEuIhtuldAiE3gJdffhmjRo3CU0891exz9OrVCzx/ZQArJiYGvXv39n4tCAIiIiJw+fJlAMCRI0dw6tSper0tu92O06dPe79OS0uDJEkNfm5mZiY6dOiA7t27+33d7XZjxYoV+PDDD3Hp0iU4nU44HI6A5riPHDmCPXv2eHvQnvPa7XbYbLar1iEzMxO//e1v/b526tQp2Gw2/OpXv/Ipdzqd+MUvfuFT1qdPH++/4+LiAACXL19Gx44dG63/wIEDG329sfo11aBBg9CrVy9s2LABixYtwsaNG5GUlITbbrvtms5L2gcK1IRcxW233YaxY8fiueeew8yZM31e43kerE5Kd5fLVe8cGo3G52uO4/yWKYoCALBarRgwYADefffdeueKiory/ttoNDZad71e3+jrf/rTn/DKK69g7dq1SEtLg9FoxPz5832G16/GarVi6dKluOeee+q9ptPprlqHxl63Wq0AgK1btyIhIcHnNa1W6/N17fb0LATztGdjrrUNm+rRRx/FunXrsGjRIrz11lt4+OGHg/4JAhIcKFAT0gSrVq1Cv379vAu2PKKiopCfnw/GmPeXbmZm5jV/Xv/+/fHBBx8gOjoaISEhzT5Pnz59cPHiRfz0009+e7R79uzBxIkT8eCDDwJQA9tPP/2E1NTUgOqanZ2Nrl27NqsOffr0QUZGBpYuXVrvtdTUVGi1Wly4cAEjRoxocp3qkiTJ75xyUzRWv0A+68EHH8QzzzyDV199FVlZWZgxY0az6kPaH1pMRkgTpKWlYdq0aXj11Vd9ykeOHInCwkKsXr0ap0+fxrp16/DFF19c8+dNmzYNkZGRmDhxIr7//nucPXsWu3btwuOPPx7QwrYRI0bgtttuw+TJk7Fjxw6cPXsWX3zxBbZv3w4A6NatG3bs2IG9e/fixIkTmDNnDgoKCgKq6wsvvIC3334bS5cuxfHjx3HixAls2rQJS5YsaVIdnnvuORw8eBCPPfYY/vOf/+DkyZN44403UFRUBLPZjKeeegoLFizAhg0bcPr0afz444947bXXsGHDhibXsVOnTjh79iwyMzNRVFQEh8PR5Pc2Vr+GPuu7777DpUuXfI4JCwvDPffcg6effhpjxoxBhw4dmlwH0r5RoCakiZYtW1ZvKLVnz554/fXXsW7dOvTt2xcHDhy4prlsD4PBgO+++w4dO3bEPffcg549e2LWrFmw2+0B97D/93//F7/85S8xdepUpKam4plnnvH2+JYsWYL+/ftj7NixGDlyJGJjYzFp0qSAzj927Fhs2bIFX331FX75y1/illtuwZo1a5CUlNSkOnTv3h1fffUVjhw5gkGDBmHIkCH47LPPIIrqgN9LL72EP/zhD1i5ciV69uyJcePGYevWrejcuXOT6zh58mSMGzcOt99+O6KiogJ6BO1q9atr2bJlOHfuHLp06eIzTQEAs2bNgtPp9Lu6nJCGcKzuBBshhJDr4p133sGCBQuQm5vb6CJAQmqjOWpCCLnObDYb8vLysGrVKsyZM4eCNAkIDX0TQsh1tnr1avTo0QOxsbF47rnn2ro65AZDQ9+EEEJIEKMeNSGEEBLEKFATQgghQYwCNSGEEBLEKFATQgghQYwCNSGEEBLEKFATQgghQYwCNSGEEBLEKFATQgghQez/A2wEZr97+RG4AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "numpy.random.seed(42)\n", "N_cmp = 5000\n", "vxvvs_cmp = numpy.column_stack(\n", " [\n", " numpy.random.uniform(0.6, 2.4, N_cmp),\n", " numpy.random.normal(0.0, 0.28, N_cmp),\n", " numpy.random.uniform(0.85, 1.15, N_cmp),\n", " numpy.random.uniform(0.01, 0.2, N_cmp),\n", " numpy.random.normal(0.0, 0.28, N_cmp),\n", " numpy.random.uniform(0.0, 2 * numpy.pi, N_cmp),\n", " ]\n", ")\n", "os_cmp = Orbit(vxvvs_cmp)\n", "\n", "# Numerical: integrate then compute\n", "ts = numpy.linspace(0.0, 50.0, 5_000)\n", "os_cmp.integrate(ts, MWPotential2014)\n", "e_num = os_cmp.e()\n", "\n", "# Staeckel: no integration needed\n", "e_ana = os_cmp.e(analytic=True, pot=MWPotential2014)\n", "\n", "# Two-panel comparison with shared x-axis\n", "fig, (ax_top, ax_bot) = plt.subplots(\n", " 2, 1, sharex=True, figsize=(5, 6), gridspec_kw={\"height_ratios\": [3, 1]}\n", ")\n", "\n", "# Top: direct comparison\n", "ax_top.plot([0, 1], [0, 1], \"k--\", lw=0.8)\n", "ax_top.scatter(e_num, e_ana, s=15, alpha=0.7)\n", "ax_top.set_ylabel(\"Staeckel eccentricity\")\n", "ax_top.set_title(\"Numerical vs. Staeckel Approximation\")\n", "ax_top.set_xlim(0, 1.0)\n", "ax_top.set_ylim(0, 1.0)\n", "\n", "# Bottom: difference\n", "diff = e_ana - e_num\n", "ax_bot.axhline(0.0, color=\"k\", ls=\"--\", lw=0.8)\n", "ax_bot.scatter(e_num, diff, s=10, alpha=0.6)\n", "ax_bot.set_xlabel(\"Numerical eccentricity\")\n", "ax_bot.set_ylabel(r\"$\\Delta e$\")\n", "\n", "plt.tight_layout()" ] }, { "cell_type": "markdown", "id": "9091ed51", "metadata": { "papermill": { "duration": 0.002737, "end_time": "2026-05-16T13:49:03.160814+00:00", "exception": false, "start_time": "2026-05-16T13:49:03.158077+00:00", "status": "completed" }, "tags": [] }, "source": [ "## Actions, angles, and frequencies\n", "\n", "The Staeckel approximation also provides estimates of the actions, angles, and frequencies of an orbit (see [Binney 2012](https://ui.adsabs.harvard.edu/abs/2012MNRAS.426.1324B/abstract)). This is discussed in more detail in the [Staeckel Approximation](../action_angle/staeckel.ipynb) tutorial, but we can also compute these quantities when `analytic=True`:" ] }, { "cell_type": "code", "execution_count": 6, "id": "d63ae2e6", "metadata": { "execution": { "iopub.execute_input": "2026-05-16T13:49:03.167528Z", "iopub.status.busy": "2026-05-16T13:49:03.167319Z", "iopub.status.idle": "2026-05-16T13:49:03.175777Z", "shell.execute_reply": "2026-05-16T13:49:03.174048Z" }, "papermill": { "duration": 0.013365, "end_time": "2026-05-16T13:49:03.177020+00:00", "exception": false, "start_time": "2026-05-16T13:49:03.163655+00:00", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Radial action: 0.0038\n", "Vertical action: 0.0020\n" ] } ], "source": [ "o = Orbit([1.0, 0.1, 1.0, 0.0, 0.1, 0.0])\n", "\n", "jr_staeckel = o.jr(analytic=True, pot=MWPotential2014, type=\"staeckel\")\n", "jz_staeckel = o.jz(analytic=True, pot=MWPotential2014, type=\"staeckel\")\n", "\n", "print(f\"Radial action: {jr_staeckel:.4f}\")\n", "print(f\"Vertical action: {jz_staeckel:.4f}\")" ] }, { "cell_type": "markdown", "id": "aa1dc026", "metadata": { "papermill": { "duration": 0.002716, "end_time": "2026-05-16T13:49:03.184142+00:00", "exception": false, "start_time": "2026-05-16T13:49:03.181426+00:00", "status": "completed" }, "tags": [] }, "source": [ "Note that the angular momentum is the third action, so it is exact regardless of the approximation used:" ] }, { "cell_type": "code", "execution_count": 7, "id": "64026a16", "metadata": { "execution": { "iopub.execute_input": "2026-05-16T13:49:03.190727Z", "iopub.status.busy": "2026-05-16T13:49:03.190525Z", "iopub.status.idle": "2026-05-16T13:49:03.194404Z", "shell.execute_reply": "2026-05-16T13:49:03.193391Z" }, "papermill": { "duration": 0.008082, "end_time": "2026-05-16T13:49:03.195044+00:00", "exception": false, "start_time": "2026-05-16T13:49:03.186962+00:00", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Angular momentum: 1.0000\n" ] } ], "source": [ "lz = o.Lz()\n", "print(f\"Angular momentum: {lz:.4f}\")" ] }, { "cell_type": "markdown", "id": "74b27996", "metadata": { "papermill": { "duration": 0.002696, "end_time": "2026-05-16T13:49:03.200663+00:00", "exception": false, "start_time": "2026-05-16T13:49:03.197967+00:00", "status": "completed" }, "tags": [] }, "source": [ "We can also return actions with physical units, e.g.," ] }, { "cell_type": "code", "execution_count": 8, "id": "48850765", "metadata": { "execution": { "iopub.execute_input": "2026-05-16T13:49:03.207247Z", "iopub.status.busy": "2026-05-16T13:49:03.207002Z", "iopub.status.idle": "2026-05-16T13:49:03.211718Z", "shell.execute_reply": "2026-05-16T13:49:03.210805Z" }, "papermill": { "duration": 0.008963, "end_time": "2026-05-16T13:49:03.212391+00:00", "exception": false, "start_time": "2026-05-16T13:49:03.203428+00:00", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Radial action: 6.6471 km kpc / s\n", "Vertical action: 3.5010 km kpc / s\n" ] } ], "source": [ "o.turn_physical_on(8.0, 220.0)\n", "jr_staeckel = o.jr(analytic=True, pot=MWPotential2014, quantity=True)\n", "jz_staeckel = o.jz(analytic=True, pot=MWPotential2014, quantity=True)\n", "\n", "print(f\"Radial action: {jr_staeckel:.4f}\")\n", "print(f\"Vertical action: {jz_staeckel:.4f}\")" ] }, { "cell_type": "markdown", "id": "c4542943", "metadata": { "papermill": { "duration": 0.002718, "end_time": "2026-05-16T13:49:03.218060+00:00", "exception": false, "start_time": "2026-05-16T13:49:03.215342+00:00", "status": "completed" }, "tags": [] }, "source": [ "Like for the basic orbital properties, we can also quickly estimate actions for many \n", "orbits at once using the Staeckel approximation:" ] }, { "cell_type": "code", "execution_count": 9, "id": "0f8ebd73", "metadata": { "execution": { "iopub.execute_input": "2026-05-16T13:49:03.227433Z", "iopub.status.busy": "2026-05-16T13:49:03.227246Z", "iopub.status.idle": "2026-05-16T13:49:03.569666Z", "shell.execute_reply": "2026-05-16T13:49:03.569031Z" }, "papermill": { "duration": 0.350718, "end_time": "2026-05-16T13:49:03.571626+00:00", "exception": false, "start_time": "2026-05-16T13:49:03.220908+00:00", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Computed 1000 radial actions\n", "Time taken: 0.3343 seconds\n", "Mean radial action: 29.2508 km kpc / s\n", "Std radial action: 32.1806 km kpc / s\n" ] } ], "source": [ "import time\n", "\n", "numpy.random.seed(42)\n", "N = 1000\n", "vxvvs = numpy.column_stack(\n", " [\n", " numpy.random.uniform(0.5, 1.5, N),\n", " numpy.random.normal(0.0, 0.1, N),\n", " numpy.random.uniform(0.8, 1.2, N),\n", " numpy.random.normal(0.0, 0.1, N),\n", " numpy.random.normal(0.0, 0.1, N),\n", " numpy.random.uniform(0.0, 2 * numpy.pi, N),\n", " ]\n", ")\n", "os = Orbit(vxvvs, ro=8.0, vo=220.0)\n", "start = time.time()\n", "jrs = os.jr(analytic=True, pot=MWPotential2014, quantity=True)\n", "end = time.time()\n", "print(f\"Computed {len(jrs)} radial actions\")\n", "print(f\"Time taken: {end - start:.4f} seconds\")\n", "print(f\"Mean radial action: {numpy.mean(jrs):.4f}\")\n", "print(f\"Std radial action: {numpy.std(jrs):.4f}\")" ] }, { "cell_type": "markdown", "id": "27cbdc82", "metadata": { "papermill": { "duration": 0.002776, "end_time": "2026-05-16T13:49:03.578005+00:00", "exception": false, "start_time": "2026-05-16T13:49:03.575229+00:00", "status": "completed" }, "tags": [] }, "source": [ "The orbit interface also allows orbital frequencies and angles to be computed in the same way, but we won't show that here. See the [Staeckel Approximation](../action_angle/staeckel.ipynb) tutorial for examples of that.\n", "\n", "For a real-world application of fast orbit characterization to a large observational\n", "dataset, see the [thick-disk eccentricity distribution example](./examples.ipynb#The-eccentricity-distribution-of-the-Milky-Way's-thick-disk)\n", "in the Orbit Examples notebook." ] } ], "metadata": { "kernelspec": { "display_name": "py313", "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.13.13" }, "papermill": { "default_parameters": {}, "duration": 27.073954, "end_time": "2026-05-16T13:49:04.197892+00:00", "environment_variables": {}, "exception": null, "input_path": "doc/source/tutorials/orbits/fast_characterization.ipynb", "output_path": "doc/source/tutorials/orbits/fast_characterization.ipynb", "parameters": {}, "start_time": "2026-05-16T13:48:37.123938+00:00", "version": "2.7.0" } }, "nbformat": 4, "nbformat_minor": 5 }