{ "cells": [ { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The autoreload extension is already loaded. To reload it, use:\n", " %reload_ext autoreload\n" ] } ], "source": [ "# Handle all includes\n", "%load_ext autoreload\n", "%autoreload 2\n", "\n", "import os\n", "import shutil\n", "import numpy as np\n", "import pandas as pd\n", "from matplotlib import pyplot as plt\n", "from spatz.utils.preprocess import preprocess_file\n", "from spatz.simulation import Simulation, UniformTimeSteps\n" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Time R LONG DECL PROP_TANK@STAHR Norm_Indep_Var \\\n", "1 -0.100 6.360124e+06 0.367914 1.182477 41.963251 0.00 \n", "2 -0.099 6.360124e+06 0.367914 1.182477 41.961249 0.01 \n", "3 -0.099 6.360124e+06 0.367914 1.182477 41.961249 0.01 \n", "4 -0.098 6.360124e+06 0.367914 1.182477 41.959248 0.02 \n", "5 -0.098 6.360124e+06 0.367914 1.182477 41.959248 0.02 \n", "\n", " mission_time flight_time julian_date radius ... inertia_xy \\\n", "1 -0.100 0.000 2.460599e+06 6360.12389 ... 0.0 \n", "2 -0.099 0.001 2.460599e+06 6360.12389 ... 0.0 \n", "3 -0.099 0.001 2.460599e+06 6360.12389 ... 0.0 \n", "4 -0.098 0.002 2.460599e+06 6360.12389 ... 0.0 \n", "5 -0.098 0.002 2.460599e+06 6360.12389 ... 0.0 \n", "\n", " inertia_xz inertia_yz aero_coef_CD@Drogue_Chute \\\n", "1 0.0 0.0 0.0 \n", "2 0.0 0.0 0.0 \n", "3 0.0 0.0 0.0 \n", "4 0.0 0.0 0.0 \n", "5 0.0 0.0 0.0 \n", "\n", " aero_area_ref@Drogue_Chute aero_coef_CD@Reefed_Main_Chute \\\n", "1 0.0 0.0 \n", "2 0.0 0.0 \n", "3 0.0 0.0 \n", "4 0.0 0.0 \n", "5 0.0 0.0 \n", "\n", " aero_area_ref@Reefed_Main_Chute aero_coef_CD@Main_Chute \\\n", "1 0.0 0.0 \n", "2 0.0 0.0 \n", "3 0.0 0.0 \n", "4 0.0 0.0 \n", "5 0.0 0.0 \n", "\n", " aero_area_ref@Main_Chute Phase \n", "1 0.0 onpad \n", "2 0.0 onpad \n", "3 0.0 onpad \n", "4 0.0 onpad \n", "5 0.0 onpad \n", "\n", "[5 rows x 275 columns]\n" ] } ], "source": [ "# Do preprocessing\n", "PATH = \"data/simulations\"\n", "TMP = f\"{PATH}/temp\"\n", "FILE = \"13.5\"\n", "\n", "if os.path.isdir(TMP):\n", " shutil.rmtree(TMP)\n", "os.mkdir(TMP)\n", "\n", "df = preprocess_file(f\"{PATH}/{FILE}.txt\")\n", "df.to_csv(f\"{TMP}/{FILE}.csv\")\n" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "# Create simulation objects\n", "timesteps = UniformTimeSteps(0.1, mu=0, sigma=0, delay_only=True)\n", "simulation = Simulation(timesteps)" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "from spatz.sensors.antenna.pathloss import AntennaPathloss\n", "\n", "alt = simulation.add_observer(['altitude'])\n", "fspl = simulation.add_sensor(AntennaPathloss,frequency=2.45e9,rx_antenna_offset=np.array([-1500,-1500,0]))\n", "\n", "simulation.load(f\"{TMP}/{FILE}.csv\")\n", "logger = simulation.get_logger()" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|█████████▉| 521.40000000005/521.469806781021 [00:17<00:00, 29.06it/s] \n" ] } ], "source": [ "# Run simulation\n", "for step, t, dt in simulation.run(verbose=True):\n", " gain = fspl()\n", " alt()\n", "\n", "df = logger.get_dataframe()" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | time | \n", "antenna/pathloss/distance | \n", "antenna/pathloss/out | \n", "general/altitude | \n", "
---|---|---|---|---|
0 | \n", "0.1 | \n", "2121.343699 | \n", "106.763326 | \n", "319.189854 | \n", "
1 | \n", "0.2 | \n", "2121.41328 | \n", "106.763611 | \n", "319.754649 | \n", "
2 | \n", "0.3 | \n", "2121.528819 | \n", "106.764084 | \n", "320.689767 | \n", "
3 | \n", "0.4 | \n", "2121.690116 | \n", "106.764744 | \n", "321.98961 | \n", "
4 | \n", "0.5 | \n", "2121.897233 | \n", "106.765592 | \n", "323.649225 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
5209 | \n", "521.0 | \n", "10823.478921 | \n", "120.918442 | \n", "321.436986 | \n", "
5210 | \n", "521.1 | \n", "10823.478982 | \n", "120.918442 | \n", "320.918266 | \n", "
5211 | \n", "521.2 | \n", "10823.479069 | \n", "120.918443 | \n", "320.399547 | \n", "
5212 | \n", "521.3 | \n", "10823.47918 | \n", "120.918443 | \n", "319.880828 | \n", "
5213 | \n", "521.4 | \n", "10823.479316 | \n", "120.918443 | \n", "319.362108 | \n", "
5214 rows × 4 columns
\n", "