{ "cells": [ { "cell_type": "code", "execution_count": 26, "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": 27, "metadata": {}, "outputs": [], "source": [ "# Do preprocessing\n", "PATH = \"data/simulations\"\n", "TMP = f\"{PATH}/temp\"\n", "FILE = \"19km\"\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": 28, "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": [ { "name": "stdout", "output_type": "stream", "text": [ "Processed 65160 lines in 0.3s.\n", "Used 65160 lines due to step size\n" ] } ], "source": [ "from spatz.sensors.antenna.pathloss import AntennaPathloss\n", "from spatz.sensors.antenna.tx_gain import AntennaTxGain\n", "from spatz.sensors.antenna.constants import STAHR_LORA_FREQ, STAHR_GS_OFFSET\n", "\n", "alt = simulation.add_observer(['altitude'])\n", "fspl_gs = simulation.add_sensor(AntennaPathloss,frequency=STAHR_LORA_FREQ,rx_antenna_offset=STAHR_GS_OFFSET)\n", "fspl_nope = simulation.add_sensor(AntennaPathloss,frequency=STAHR_LORA_FREQ,name)\n", "\n", "tx_gain = simulation.add_sensor(AntennaTxGain,gain_pattern_path=f\"data/gain_pattern/farfield_tx_aisler_v1.txt\",rx_antenna_offset = STAHR_GS_OFFSET)\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%|█████████▉| 579.9000000000633/580.0 [00:21<00:00, 27.40it/s] \n" ] } ], "source": [ "# Run simulation\n", "for step, t, dt in simulation.run(verbose=True):\n", " fspl_gs()\n", " fspl_nope()\n", " tx_gain()\n", " alt()\n", "\n", "df = logger.get_dataframe()" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | time | \n", "antenna/pathloss/distance | \n", "antenna/pathloss/out | \n", "antenna/tx_gain/rocket_x | \n", "antenna/tx_gain/rocket_y | \n", "antenna/tx_gain/rocket_z | \n", "antenna/tx_gain/pos_x | \n", "antenna/tx_gain/pos_y | \n", "antenna/tx_gain/pos_z | \n", "antenna/tx_gain/theta | \n", "antenna/tx_gain/out | \n", "general/altitude | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "0.1 | \n", "319.472878 | \n", "90.319785 | \n", "0.0 | \n", "0.171335 | \n", "0.985213 | \n", "0.750379 | \n", "0.6369 | \n", "-0.176889 | \n", "86.264551 | \n", "4.977619 | \n", "319.083996 | \n", "
1 | \n", "0.2 | \n", "320.418701 | \n", "90.345462 | \n", "0.0 | \n", "0.171335 | \n", "0.985213 | \n", "0.750342 | \n", "0.636834 | \n", "-0.177281 | \n", "86.241706 | \n", "4.977825 | \n", "319.251988 | \n", "
2 | \n", "0.3 | \n", "321.364681 | \n", "90.371068 | \n", "0.0 | \n", "0.171335 | \n", "0.985213 | \n", "0.750305 | \n", "0.636768 | \n", "-0.177674 | \n", "86.218865 | \n", "4.97803 | \n", "319.419979 | \n", "
3 | \n", "0.4 | \n", "322.433254 | \n", "90.399901 | \n", "-0.0 | \n", "0.171335 | \n", "0.985213 | \n", "0.750264 | \n", "0.636694 | \n", "-0.178116 | \n", "86.193076 | \n", "4.978262 | \n", "319.692081 | \n", "
4 | \n", "0.5 | \n", "324.359314 | \n", "90.451632 | \n", "-0.0 | \n", "0.171335 | \n", "0.985213 | \n", "0.750188 | \n", "0.63656 | \n", "-0.178914 | \n", "86.146622 | \n", "4.97868 | \n", "320.692955 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
5794 | \n", "579.5 | \n", "23290.112901 | \n", "127.574537 | \n", "-0.017067 | \n", "-0.743764 | \n", "-0.668224 | \n", "0.969129 | \n", "0.022163 | \n", "0.245555 | \n", "78.631975 | \n", "4.847807 | \n", "-2747.465778 | \n", "
5795 | \n", "579.6 | \n", "23292.369533 | \n", "127.575378 | \n", "-0.017173 | \n", "-0.745696 | \n", "-0.666065 | \n", "0.969119 | \n", "0.022152 | \n", "0.245595 | \n", "78.653403 | \n", "4.84875 | \n", "-2748.066515 | \n", "
5796 | \n", "579.7 | \n", "23294.626207 | \n", "127.57622 | \n", "-0.017279 | \n", "-0.747621 | \n", "-0.663901 | \n", "0.969109 | \n", "0.022141 | \n", "0.245635 | \n", "78.674921 | \n", "4.849697 | \n", "-2748.667252 | \n", "
5797 | \n", "579.8 | \n", "23296.882923 | \n", "127.577061 | \n", "-0.017385 | \n", "-0.749539 | \n", "-0.661732 | \n", "0.9691 | \n", "0.02213 | \n", "0.245675 | \n", "78.696529 | \n", "4.850647 | \n", "-2749.267989 | \n", "
5798 | \n", "579.9 | \n", "23299.13968 | \n", "127.577903 | \n", "-0.017491 | \n", "-0.751452 | \n", "-0.659556 | \n", "0.96909 | \n", "0.022119 | \n", "0.245715 | \n", "78.718226 | \n", "4.851602 | \n", "-2749.868726 | \n", "
5799 rows × 12 columns
\n", "