{ "cells": [ { "cell_type": "markdown", "id": "7fb27b941602401d91542211134fc71a", "metadata": { "papermill": { "duration": 0.002922, "end_time": "2026-06-30T01:15:19.185823+00:00", "exception": false, "start_time": "2026-06-30T01:15:19.182901+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-06-30T01:15:19.192755Z", "iopub.status.busy": "2026-06-30T01:15:19.192551Z", "iopub.status.idle": "2026-06-30T01:15:21.501084Z", "shell.execute_reply": "2026-06-30T01:15:21.500066Z" }, "papermill": { "duration": 2.312631, "end_time": "2026-06-30T01:15:21.501798+00:00", "exception": false, "start_time": "2026-06-30T01:15:19.189167+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.001977, "end_time": "2026-06-30T01:15:21.506094+00:00", "exception": false, "start_time": "2026-06-30T01:15:21.504117+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-06-30T01:15:21.511583Z", "iopub.status.busy": "2026-06-30T01:15:21.511180Z", "iopub.status.idle": "2026-06-30T01:15:21.519504Z", "shell.execute_reply": "2026-06-30T01:15:21.518655Z" }, "papermill": { "duration": 0.012287, "end_time": "2026-06-30T01:15:21.520449+00:00", "exception": false, "start_time": "2026-06-30T01:15:21.508162+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.002099, "end_time": "2026-06-30T01:15:21.525137+00:00", "exception": false, "start_time": "2026-06-30T01:15:21.523038+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.001944, "end_time": "2026-06-30T01:15:21.529245+00:00", "exception": false, "start_time": "2026-06-30T01:15:21.527301+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-06-30T01:15:21.534525Z", "iopub.status.busy": "2026-06-30T01:15:21.534267Z", "iopub.status.idle": "2026-06-30T01:15:21.781594Z", "shell.execute_reply": "2026-06-30T01:15:21.778686Z" }, "papermill": { "duration": 0.251212, "end_time": "2026-06-30T01:15:21.782552+00:00", "exception": false, "start_time": "2026-06-30T01:15:21.531340+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.002091, "end_time": "2026-06-30T01:15:21.787036+00:00", "exception": false, "start_time": "2026-06-30T01:15:21.784945+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-06-30T01:15:21.795789Z", "iopub.status.busy": "2026-06-30T01:15:21.795591Z", "iopub.status.idle": "2026-06-30T01:15:21.823897Z", "shell.execute_reply": "2026-06-30T01:15:21.823065Z" }, "papermill": { "duration": 0.035621, "end_time": "2026-06-30T01:15:21.824931+00:00", "exception": false, "start_time": "2026-06-30T01:15:21.789310+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.002245, "end_time": "2026-06-30T01:15:21.829717+00:00", "exception": false, "start_time": "2026-06-30T01:15:21.827472+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-06-30T01:15:21.835416Z", "iopub.status.busy": "2026-06-30T01:15:21.835163Z", "iopub.status.idle": "2026-06-30T01:15:46.545045Z", "shell.execute_reply": "2026-06-30T01:15:46.544112Z" }, "papermill": { "duration": 24.713764, "end_time": "2026-06-30T01:15:46.545776+00:00", "exception": false, "start_time": "2026-06-30T01:15:21.832012+00:00", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeoAAAJOCAYAAAB4CERfAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlcelbwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAs+JJREFUeJzs3Xd4VFX+x/H3nZJJL6QAoSNFmkhZ6QpiL4Aii4DYYNVd24quroodf+i6upbVtaDYULGAqCgqiCAIAiJNEAkQSkIyqZPJJFPv+f0xZMyQBAIkmUnyfT0Pj86Ze2bOTJL5zDn33HM0pZRCCCGEEGHJEOoGCCGEEKJmEtRCCCFEGJOgFkIIIcKYBLUQQggRxiSohRBCiDAmQS2EEEKEMQlqIYQQIoxJUAshhBBhTIJaCCGECGMS1KJROvXUU7niiisa7eM3V61ateLaa6+tk8d69tln0TSN/Pz8Onm8puLTTz9F0zQ2bNgQ6qZUEc5tC2cS1E3M4MGD0TSN0aNHV7nP6XSiaRo33XRTCFom6orT6eS5556jf//+JCUl0aJFCwYPHsy//vUv8vLygo7t2LEjV155ZYhaGn5ef/11NE2jTZs2+Hy+UDenSfrggw/QNI1NmzaFuilNhinUDRD147vvvuPLL7/koosuCnVT6sVvv/0W6iaEhFKKMWPGsGrVKv773/9yySWXEBUVxRdffME//vEPtmzZwrvvvhvqZoatOXPm0LZtWw4ePMjixYsZM2ZMqJtU58aNG0e4buEQzm0LZ9KjboJOOeUUunXrxj333CO9hiZm/fr1fPvtt8yYMYPrr7+etLQ04uLimDRpEr/88gv9+/cPdRPD1rZt21i7di1PPfUUffv25bXXXgt1k4SoFQnqJshkMvHEE0+wbds23nzzzaMe6/V60TSNmTNnVrlv5MiRDB48OKis4hzjunXrGDJkCNHR0Zx++umsWrUKgDVr1jB06FCio6Pp2rUrixYtqvZ5P/zwQ4YOHUpMTAwxMTGMHDmSH374odrnWr9+PWeeeSZRUVH885//BGo+h/zRRx8xYsQI4uPjadGiBRdddBE///xz0GvSNA1N0zAajbRq1YrJkyeTmZl51PepOiNGjKBr167V9hAuuugi2rVrh67rAHz55ZeMGDGCFi1akJSUxIgRI/j000+P+zkLCwsBaNOmTZX7UlNTmTFjRuC2pmns27eP+fPnB17z6aefHrj/eN6L2vy84Njvf3VeeuklTCYTd911V+D92rt3L1dffTWtWrUiIiKCU045hccee+ykvni+9tprtGzZkvHjx/PXv/6Vr776iqysrCrHPfzww2iaRmFhITfccAMtWrQgPj6eCRMmcPDgwZM+tqioiFtvvZW0tDSSkpIA/0jJf//7X/r06UNkZCQtWrRg7NixbN26FQBd1zn33HNJTk4O+vl4vV7OPPNM0tLSAq+luvPAb775JpqmsX37dmbOnEmrVq1ITEzkhhtuwO124/P5uO+++2jdujUxMTFMmDABm80W1P61a9cGfl80TSMqKorTTz+dF198MXDME088waRJkwDo169f4NgPPvigxrYB/P7770yYMIGUlBQsFgs9evTgqaeeCvw+VH4NO3bsYNasWaSnpxMVFcU555zD77//fpSffBOgRJMyaNAg1b17d6WUUsOGDVPp6enK4XAopZQqLy9XgLrxxhsDx3s8HgWo+++/v8pjnXXWWWrQoEFBZS1btlSjR49WV1xxhfr9999VXl6emjRpkkpISFA//vijGjNmjPrtt99Ufn6+mjp1qrJYLCorKyvoMWbNmqWMRqOaPXu2ys7OVjk5Oeruu+9WZrNZrVy5sspzXXzxxWrr1q0qKytLLViwQCmlVPfu3dX48eODHvfhhx9WRqNRzZw5U+3du1cVFxerr776Sl111VXVvldOp1OtX79eDR06VPXq1UuVl5cH7qvu8Y/05ptvKkB9//33QeUHDx5URqNRPfDAA0oppTZt2qRMJpO6//77ldVqVXa7Xf3444/q8ssvV/n5+Ud9jiPl5uaq6Ohoddppp6k9e/Yc8/gOHTqoiRMnHvO4o70Xtf151eb9b9mypbrmmmuUUkp5vV51++23K5PJpF599dXAMTt37lQtWrRQI0eOVL/88ouy2+3qq6++CqqrlFL/+c9/FKDy8vJq9fpatGgR+D0vLS1V8fHx6rHHHqty7EMPPaQANXXqVPXBBx+o4uJitXbtWtW9e3d1yimnqJKSkpM69uqrr1bvvfeeKiwsVK+99ppSSqk77rhDmUwm9dxzz6mCggK1Y8cONXr0aBUTE6O2bNmilFLKarWqNm3aqAEDBiin06mUUurOO+9UBoNBLV26NPA8CxcuVIBav359oGzu3LkKUJMmTVKvv/66KioqUitWrFAJCQnqzjvvVHfddZd69dVXVVFRkfrhhx9UUlKSmj59+lHfU6vVql588UVlNpsDr0Mppd5//30FqF9++aVKneralpGRoRITE9XgwYPVli1bVGFhoZozZ46yWCzquuuuq/Iarr76avXSSy+pgoICtXXrVtWtWzfVt29fpev6UdvbmElQNzGVg/rHH39UgJo1a5ZSqu6COi4uThUWFgbKsrKyFKBatmwZFDw5OTlK0zT15JNPBsoyMzOVyWRSt99+e5XnGzFihBo2bFjQc1ksFpWbm1vl2CODdPfu3cpoNKq//e1vNb43Ndm0aZMCgj7sahPUDodDxcfHq6lTpwaVz5o1S2maFgjS//73vwpQBQUFx9226nz88ccqJSVFaZqmBgwYoKZPn67efvvtagOrtkFd4cj3orY/r9q+/xVha7fb1cUXX6wSExPVt99+G3TMpZdeqtLS0lRxcXFQ+bvvvqsAtXXrVqXU8QX1vHnzlNFoVPv37w+U3XLLLapjx45VPuArAvWpp54KKt+wYYMC1L/+9a+TOrby34NSSu3du1cZDIYq711xcbFKSEhQF198caBs9erVymw2qxtvvFEtWLBAAVW+bBwtqO+6666gY2+77TYVFRWlZsyYEVR+xx13qIiICOV2u9WxXHnllWrgwIGB28cb1FdffbWyWCwqOzs76Nj7778/6HEqXsORbZ03b54C1E8//XTMtjZWMvTdhA0ZMoTx48fz5JNPVpkNfDIGDx4cGLIDSE9PJz4+np49e5KcnBwob9myJUlJSezZsydQtmTJErxeLxMmTKjyuKNHj2bt2rW43e6g50pLSztmm77++mt8Ph+TJ08+6nE7d+5k0qRJpKenYzKZgoaDMzIyjvk8lUVHRzNp0iQ++eQTSkpKAP8Q5ty5czn77LPp1KkTAH379gVg6tSpLFu2DKfTeVzPc6Tx48dz4MCBwGQoq9XKTTfdxCmnnHJcE8lq817U9udV2/cfICsri2HDhrF9+3Z+/PFHzjnnnMB9FY913nnnkZCQEFSv4rgVK1bU+jVWeO2117jkkkto165doOxvf/sbmZmZLF26tNo6R040GzBgAG3btuW7776r02O///57dF3n8ssvDypPSEjgnHPO4bvvvgucXhk6dChPPvkkr7zyCpMnT+bCCy/k/vvvP8orD3bhhRcG3T711FMpLy/n/PPPDyrv0aMHbre7yqmB//3vf/zpT38iLi4uaFj7eP92Klu2bBlDhgyhdevWQeUVp7aWLVsWVH7xxRcH3e7duzdA0OdMUyNB3cTNnj0bp9PJI488ctx1VQ2zM4/8gwKIi4ursby4uDhwOycnB4CzzjoLk8mE0WjEYDBgMBh4+OGH8fl8QcdXdy62Olar9ZjHFxQUMGzYMA4ePMhnn32GzWZDKRX4kPF4PLV6rsqmT59OWVkZ77//PuAPkd27dzNt2rTAMcOHD2fevHlkZ2dzzjnnkJCQwKhRo1iwYMFxP1+FyMhILrzwQh588EEWLVrE7t276dChA9OmTavV+fbavhe1/XnV5v2vsGnTJrZs2cKYMWPo0aNH0H1FRUW43W7mzZsXeL6K52zVqlWg7ccjIyODFStWsGjRoqBzrD179gSocVJZy5Ytqy2r7rrt4zn2yPeo4vVUvL7KWrVqRXl5OWVlZYGyyZMnExUVhdPp5J577kHTtGrbX50j/0bj4uKOWl75b/GJJ57glltuYerUqezcuROv14tSiunTp5/Q306FgoKCGl87UOU9PLKt8fHxVdra1EhQN3Fdu3blhhtu4NVXX2XXrl1V7jeZTMTExGC326vcV91EG6DGD4bafGCkpKQA8PPPP+P1evH5fOi6jq7rKP+pmKAetNlsPuZjgn8i1dHaDLB48WIKCgp47rnnGDhwIDExMYB/4tKJGjhwIH379uWNN94A4I033iApKYnLLrss6LjJkyfzyy+/kJ+fz4cffojJZGL8+PF88cUXJ/zclbVq1Yobb7wRt9vNunXrjnl8bd+L2v68avP+V7j44ot5/vnnef7557n55puDvhAmJCRgMpm48cYbA89X8ZwVz/fggw/W+n0B/yVZ3bt3D9Sv/O/zzz9n0aJF1Y445ebmVltWedToRI498ne6RYsWR32MqKgooqOjAQKjFlFRUYG/7er+dmtyMn+7b7/9NqNHj+a2224jPT0do9EInNzfD/hff02vHf74HTyetjY1EtTNwEMPPRQ0Y/pInTt3Ztu2bUFl27dvP+k/wOpceOGFGI1G5s+fX6ePe8EFF2A0GnnvvfeOeazFYgm6/fbbb5/Uc0+bNo1169axevVqPv74Y6ZMmUJkZGS1xyYnJzN27Fg++ugjAFauXHlcz7VixQo+/vjjau+rCMnExMRAWUxMDC6Xq8bHO9Z7Uduf1/G8/wC33norb7/9Nq+++ipTp07F6/UC/pGCc889ly+//JLS0tJaPdbReL1e3nrrLS644IJq7z/77LPRNK3a34HPP/886PbGjRs5ePBgtYsJHc+xRxo1ahQGg4GFCxcGlZeUlLB06dJAGwEefPBBli9fzjvvvMOCBQs4ePBg0OhNfTvy92X//v1VfocrvvQd7feustGjR7NmzZoqYf3JJ58A/p9RcydB3QykpqZy99138+WXX1Z7/1/+8heWL1/Om2++id1uZ926ddx///31ck1u586defTRR3nqqad49NFHyczMpLy8nN9++43nn3+e66677oQfd+bMmbzyyis8+OCD7Nu3D5vNxtdff83UqVMB/x98bGws//znP8nKyiI3N5fHHnus1h8oNbnqqquIjIxk0qRJlJeXV/ngfPLJJ/nnP//JL7/8gsPhoKCggOeffx7wXyJV+XE0TatyWU9l5eXlTJgwgSlTprB+/XqcTic5OTm8/PLLPPPMMwwcOJBRo0YFju/duzc///wzBw4cCHqc2r4Xtf151eb9r+59W7BgAZ988gmXXXZZ4Nz9f/7zH8rKyrjkkktYs2YNpaWlHDp0iCVLljBmzJjjuhTn888/Jycnp8agjo6O5swzz2TOnDlV7tu8eTMfffQRJSUlrF+/nquuuopOnTpx4403ntSxR+rYsSO33HILr7zyCi+++CKFhYXs3LmTK664ArfbzeOPPw74L/GbPXs2999/PxdddBG9e/fmf//7Hx999FHg96k+jRkzhiVLlvDJJ5/gcDhYv349V155ZdAcA4CePXtiMBj48ssva/W39eCDD2KxWBg/fjzbtm2juLiYuXPn8tRTT3H11VfTr1+/+npJjUdDz14T9avyrO/KysrKVJs2barM+lbKf5nM3XffrdLS0lRUVJQ6//zzVWZmZo2zvitfIlOhTZs2asqUKVXKa5p1/Nlnn6nRo0erhIQEFRUVpXr27KnuuOMOtXfv3mM+l1I1z8p+//331ZAhQ1R0dLRKTk5WF198sdqwYUPg/uXLl6szzjhDRUdHqzZt2qj7779fZWZmKkC98MILx3z8mkyaNEkBqn///lXuKyoqUk899ZQaMGCAiomJUcnJyWrkyJFq0aJFQcdNmTJFAerAgQM1Po/X61WLFy9WkydPVl27dlUWi0XFxMSo0047TT3wwANBlwMp5b/05ayzzlLR0dEKUH379j3u90Kp2v28lDr2+1/dz3T58uUqLi5OnXXWWcpmsymllDpw4IC64YYbVPv27ZXZbFZt2rRRF198sfriiy8Cs7RrM+v7wgsvVJGRkUGXmx3pmWeeUUDgUrOK2dn5+fnq+uuvV4mJiSo2NlaNHz8+aNb4iR5bXVt0XVfPPfec6tWrl4qIiFAJCQnqkksuUZs2bVJK+Wfft2jRQp1zzjnK5/MF1f3LX/6izGazWrt2rVLq6LO+d+zYEVT3nXfeCZpJX6G6mdvl5eVqxowZKj09XUVFRalhw4apNWvWqJtvvlnFxMQE1X/66adV+/btldFoVIB6//33a2ybUkrt2LFDjR8/XiUlJSmz2ay6d++unnjiCeX1eo/5Gvbu3asA9b///a/K+9pUaErJem5CCFHh4Ycf5pFHHqG8vLzGUxgncqwQJ0qGvoUQQogwJkEthBBChLEmu3vWqlWr+O2337j44ourvb73SB6Ph++//57c3Fz69OkTWKRCCCGECKUmd4568eLF3HPPPZhMJjZv3szy5cuDZtZWp6CggNGjR1NaWkqfPn347rvvmDp1Kv/9738bptFCCCFEDZpcj9pgMPDBBx+QmJgYtFzg0dx77714PB42b95MTEwM69evZ9CgQVx88cVVltwTQgghGlKTO0d94YUXBtZ+rQ1d15k/fz7XX3994EL9P/3pTwwePDiwLKQQQggRKk2uR328Dhw4QElJSWDd3wq9evU66j66Lpcr6GJ+XdcpLCwkOTm5WS5xJ4QQzZ1SCrvdTnp6OgZD3fWDm31QV+x6VHk3KPCvP1txX3Vmz559QhtdCCGEaNoOHDhA27Zt6+zxmn1QR0VFAVRZ2N5utwfuq869997LjBkzArdtNhvt27fnwIEDgd1chBBCNH07duxg7NixjB8/npdeeimw+1hdafZB3b59e8xmc5WtAffu3UuXLl1qrGexWKosUA/+LdckqIUQonlYt24dF110Ebfffju33347L730Up2f/mxyk8lqY9WqVYG9gCMiIjj//PP54IMPAtvtHTp0iOXLl3PppZeGsplCCCHC3Pz583nooYd48MEH621+UpO7jnrXrl2sWLGCoqIi7r77bu666y66d+9O//79A7tBTZ8+nbVr1wa2dty+fTtDhw7l7LPPZvDgwbz1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", "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.002243, "end_time": "2026-06-30T01:15:46.550578+00:00", "exception": false, "start_time": "2026-06-30T01:15:46.548335+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-06-30T01:15:46.556325Z", "iopub.status.busy": "2026-06-30T01:15:46.556087Z", "iopub.status.idle": "2026-06-30T01:15:46.565373Z", "shell.execute_reply": "2026-06-30T01:15:46.563547Z" }, "papermill": { "duration": 0.01316, "end_time": "2026-06-30T01:15:46.566088+00:00", "exception": false, "start_time": "2026-06-30T01:15:46.552928+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.002306, "end_time": "2026-06-30T01:15:46.571022+00:00", "exception": false, "start_time": "2026-06-30T01:15:46.568716+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-06-30T01:15:46.576818Z", "iopub.status.busy": "2026-06-30T01:15:46.576624Z", "iopub.status.idle": "2026-06-30T01:15:46.579790Z", "shell.execute_reply": "2026-06-30T01:15:46.579033Z" }, "papermill": { "duration": 0.007035, "end_time": "2026-06-30T01:15:46.580484+00:00", "exception": false, "start_time": "2026-06-30T01:15:46.573449+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.002352, "end_time": "2026-06-30T01:15:46.585346+00:00", "exception": false, "start_time": "2026-06-30T01:15:46.582994+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-06-30T01:15:46.591074Z", "iopub.status.busy": "2026-06-30T01:15:46.590886Z", "iopub.status.idle": "2026-06-30T01:15:46.595269Z", "shell.execute_reply": "2026-06-30T01:15:46.594411Z" }, "papermill": { "duration": 0.008131, "end_time": "2026-06-30T01:15:46.595884+00:00", "exception": false, "start_time": "2026-06-30T01:15:46.587753+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.002332, "end_time": "2026-06-30T01:15:46.600802+00:00", "exception": false, "start_time": "2026-06-30T01:15:46.598470+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-06-30T01:15:46.606778Z", "iopub.status.busy": "2026-06-30T01:15:46.606567Z", "iopub.status.idle": "2026-06-30T01:15:46.924775Z", "shell.execute_reply": "2026-06-30T01:15:46.924240Z" }, "papermill": { "duration": 0.324755, "end_time": "2026-06-30T01:15:46.928032+00:00", "exception": false, "start_time": "2026-06-30T01:15:46.603277+00:00", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Computed 1000 radial actions\n", "Time taken: 0.3125 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.002628, "end_time": "2026-06-30T01:15:46.933949+00:00", "exception": false, "start_time": "2026-06-30T01:15:46.931321+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.14" }, "papermill": { "default_parameters": {}, "duration": 29.325687, "end_time": "2026-06-30T01:15:47.653408+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-06-30T01:15:18.327721+00:00", "version": "2.7.0" } }, "nbformat": 4, "nbformat_minor": 5 }