{ "cells": [ { "cell_type": "code", "execution_count": 62, "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": 63, "metadata": {}, "outputs": [], "source": [ "# Do preprocessing\n", "PATH = \"data/simulations\"\n", "TMP = f\"{PATH}/temp\"\n", "FILE = \"28km\"\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": 64, "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": 65, "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", "\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": 66, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|█████████▉| 639.1000000000768/639.150194412893 [00:26<00:00, 23.94it/s] \n" ] } ], "source": [ "# Run simulation\n", "for step, t, dt in simulation.run(verbose=True):\n", " fspl_gs()\n", " tx_gain()\n", " alt()\n", "\n", "df = logger.get_dataframe()" ] }, { "cell_type": "code", "execution_count": 67, "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", "2393.667868 | \n", "107.812383 | \n", "-0.0 | \n", "0.171335 | \n", "0.985213 | \n", "0.774005 | \n", "0.626653 | \n", "0.090671 | \n", "101.343943 | \n", "4.212357 | \n", "319.625548 | \n", "
1 | \n", "0.2 | \n", "2393.715998 | \n", "107.812557 | \n", "-0.0 | \n", "0.171335 | \n", "0.985213 | \n", "0.773925 | \n", "0.626641 | \n", "0.091437 | \n", "101.387942 | \n", "4.208309 | \n", "320.876645 | \n", "
2 | \n", "0.3 | \n", "2393.765548 | \n", "107.812737 | \n", "-0.0 | \n", "0.171335 | \n", "0.985213 | \n", "0.773845 | \n", "0.626628 | \n", "0.092204 | \n", "101.431938 | \n", "4.204262 | \n", "322.127741 | \n", "
3 | \n", "0.4 | \n", "2393.816519 | \n", "107.812922 | \n", "-0.0 | \n", "0.171335 | \n", "0.985213 | \n", "0.773764 | \n", "0.626614 | \n", "0.09297 | \n", "101.475932 | \n", "4.200214 | \n", "323.378837 | \n", "
4 | \n", "0.5 | \n", "2393.868912 | \n", "107.813112 | \n", "-0.0 | \n", "0.171335 | \n", "0.985213 | \n", "0.773683 | \n", "0.626601 | \n", "0.093736 | \n", "101.519925 | \n", "4.196167 | \n", "324.629934 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
6386 | \n", "638.7 | \n", "25768.750389 | \n", "128.452972 | \n", "-0.019599 | \n", "-0.005745 | \n", "0.999791 | \n", "-0.976774 | \n", "0.108145 | \n", "-0.184981 | \n", "80.420236 | \n", "4.913187 | \n", "2.63791 | \n", "
6387 | \n", "638.8 | \n", "25770.724327 | \n", "128.453637 | \n", "-0.021452 | \n", "-0.000441 | \n", "0.99977 | \n", "-0.976763 | \n", "0.108148 | \n", "-0.185037 | \n", "80.555707 | \n", "4.917116 | \n", "2.04426 | \n", "
6388 | \n", "638.9 | \n", "25772.69835 | \n", "128.454303 | \n", "-0.021841 | \n", "0.005372 | \n", "0.999747 | \n", "-0.976752 | \n", "0.10815 | \n", "-0.185094 | \n", "80.611251 | \n", "4.918726 | \n", "1.45061 | \n", "
6389 | \n", "639.0 | \n", "25774.672457 | \n", "128.454968 | \n", "-0.02063 | \n", "0.011282 | \n", "0.999724 | \n", "-0.976741 | \n", "0.108153 | \n", "-0.18515 | \n", "80.576614 | \n", "4.917722 | \n", "0.856961 | \n", "
6390 | \n", "639.1 | \n", "25776.64665 | \n", "128.455633 | \n", "-0.017799 | \n", "0.016842 | \n", "0.9997 | \n", "-0.97673 | \n", "0.108156 | \n", "-0.185206 | \n", "80.447889 | \n", "4.913989 | \n", "0.263311 | \n", "
6391 rows × 12 columns
\n", "