{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# General testing" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import mpcorbfile" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Class to drive\n", "f = mpcorbfile.mpcorb_file()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "J9611 1996-01-01 00:00:00\n", "J961A 1996-01-10 00:00:00\n", "J969U 1996-09-30 00:00:00\n", "J96A1 1996-10-01 00:00:00\n", "K01AM 2001-10-22 00:00:00\n" ] } ], "source": [ "\"\"\"\n", "CALCULATE DATES FROM COMPRESSED EPOCH\n", "Examples:\n", "\n", " 1996 Jan. 1 = J9611\n", " 1996 Jan. 10 = J961A\n", " 1996 Sept.30 = J969U\n", " 1996 Oct. 1 = J96A1\n", " 2001 Oct. 22 = K01AM\n", "\n", " This system can be extended to dates with non-integral days. The decimal fraction of the day is simply appended to the five characters defined above.\n", "\n", " Examples:\n", "\n", " 1998 Jan. 18.73 = J981I73\n", " 2001 Oct. 22.138303 = K01AM138303\n", "\"\"\"\n", "for p in [\"J9611\", \"J961A\", \"J969U\", \"J96A1\", \"K01AM\"]:\n", " print(p, f.compressed_epoch_to_datetime(p))" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "reading: 100%|\u001b[32m██████████\u001b[0m| 13.2k/13.2k [00:00<00:00, 134k bodies/s]\n" ] }, { "data": { "text/plain": [ "['packed_designation',\n", " 'H',\n", " 'G',\n", " 'Epoch',\n", " 'M',\n", " 'Peri',\n", " 'Node',\n", " 'i',\n", " 'e',\n", " 'n',\n", " 'a',\n", " 'U',\n", " 'Ref',\n", " 'Num_obs',\n", " 'Num_opps',\n", " 'Arc_length',\n", " 'rms',\n", " 'Perturbers',\n", " 'Perturbers_2',\n", " 'Computer',\n", " 'Hex_flags',\n", " 'Number',\n", " 'Name',\n", " 'Last_obs',\n", " 'epochJD',\n", " 'designation',\n", " 'discover_date',\n", " 'orbit_type']" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# load MPCORB.DAT\n", "bodies = f.read(\"MPCORB_TEST.DAT\")\n", "# bodies = f.read(\"MPCORB.DAT\")\n", "f.colnames" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'packed_designation': 'a7943',\n", " 'H': 24.19,\n", " 'G': 0.15,\n", " 'Epoch': datetime.datetime(2025, 5, 5, 0, 0),\n", " 'M': 184.7538,\n", " 'Peri': 195.63684,\n", " 'Node': 146.91033,\n", " 'i': 11.6102,\n", " 'e': 0.0894684,\n", " 'n': 1.13494811,\n", " 'a': 0.9102319,\n", " 'U': '2',\n", " 'Ref': 'E2024-JU2',\n", " 'Num_obs': 1055,\n", " 'Num_opps': 2,\n", " 'Arc_length': '2012-2013',\n", " 'rms': 0.36,\n", " 'Perturbers': 'M-v',\n", " 'Perturbers_2': '3Ek',\n", " 'Computer': 'Veres',\n", " 'Hex_flags': 2049,\n", " 'Number': '(367943)',\n", " 'Name': 'Duende',\n", " 'Last_obs': '20130221',\n", " 'epochJD': 2460800.5,\n", " 'designation': '367943',\n", " 'discover_date': nan,\n", " 'orbit_type': 'NEO;Athen'}" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bodies[0]" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "writting: 100%|\u001b[34m██████████\u001b[0m| 13.2k/13.2k [00:00<00:00, 65.2k bodies/s]\n" ] }, { "data": { "text/plain": [ "True" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Write new file\n", "f.write(\"new_mcorb.dat\")" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
| \n", " | packed_designation | \n", "H | \n", "G | \n", "Epoch | \n", "M | \n", "Peri | \n", "Node | \n", "i | \n", "e | \n", "n | \n", "... | \n", "Perturbers_2 | \n", "Computer | \n", "Hex_flags | \n", "Number | \n", "Name | \n", "Last_obs | \n", "epochJD | \n", "designation | \n", "discover_date | \n", "orbit_type | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "a7943 | \n", "24.19 | \n", "0.15 | \n", "2025-05-05 | \n", "184.75380 | \n", "195.63684 | \n", "146.91033 | \n", "11.61020 | \n", "0.089468 | \n", "1.134948 | \n", "... | \n", "3Ek | \n", "Veres | \n", "2049 | \n", "(367943) | \n", "Duende | \n", "20130221 | \n", "2460800.5 | \n", "367943 | \n", "NaN | \n", "NEO;Athen | \n", "
| 1 | \n", "00001 | \n", "3.34 | \n", "0.15 | \n", "2025-05-05 | \n", "188.70269 | \n", "73.27343 | \n", "80.25221 | \n", "10.58780 | \n", "0.079401 | \n", "0.214247 | \n", "... | \n", "30k | \n", "MPCLINUX | \n", "16384 | \n", "(1) | \n", "Ceres | \n", "20241101 | \n", "2460800.5 | \n", "1 | \n", "NaN | \n", "MB II | \n", "
| 2 | \n", "00002 | \n", "4.11 | \n", "0.15 | \n", "2025-05-05 | \n", "168.79870 | \n", "310.91037 | \n", "172.89530 | \n", "34.92402 | \n", "0.230540 | \n", "0.213766 | \n", "... | \n", "28k | \n", "Pan | \n", "16384 | \n", "(2) | \n", "Pallas | \n", "20240927 | \n", "2460800.5 | \n", "2 | \n", "NaN | \n", "MB II | \n", "
| 3 | \n", "00003 | \n", "5.18 | \n", "0.15 | \n", "2025-05-05 | \n", "172.45499 | \n", "247.85972 | \n", "169.82994 | \n", "12.98651 | \n", "0.255947 | \n", "0.225826 | \n", "... | \n", "3Ek | \n", "Pan | \n", "16384 | \n", "(3) | \n", "Juno | \n", "20240607 | \n", "2460800.5 | \n", "3 | \n", "NaN | \n", "MB II | \n", "
| 4 | \n", "00004 | \n", "3.25 | \n", "0.15 | \n", "2025-05-05 | \n", "332.45069 | \n", "151.58335 | \n", "103.70297 | \n", "7.14394 | \n", "0.090107 | \n", "0.271613 | \n", "... | \n", "18k | \n", "Pan | \n", "16384 | \n", "(4) | \n", "Vesta | \n", "20240306 | \n", "2460800.5 | \n", "4 | \n", "NaN | \n", "MB I | \n", "
5 rows × 28 columns
\n", "