{ "cells": [ { "cell_type": "code", "execution_count": 88, "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": 89, "metadata": {}, "outputs": [], "source": [ "# Do preprocessing\n", "PATH = \"data/simulations\"\n", "TMP = f\"{PATH}/temp\"\n", "FILE = \"40km\"\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": 90, "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": 91, "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": 92, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|█████████▉| 197.89999999999304/197.96503111341 [00:06<00:00, 29.46it/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": 93, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | time | \n", "antenna/pathloss/pad_distance | \n", "antenna/pathloss/gs_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.642403 | \n", "2393.642403 | \n", "107.81229 | \n", "0.0 | \n", "0.171335 | \n", "0.985213 | \n", "0.774045 | \n", "0.62666 | \n", "0.090286 | \n", "101.321859 | \n", "4.214389 | \n", "318.993506 | \n", "
1 | \n", "0.2 | \n", "2393.635673 | \n", "2393.635673 | \n", "107.812266 | \n", "0.0 | \n", "0.171335 | \n", "0.985213 | \n", "0.774038 | \n", "0.626662 | \n", "0.090333 | \n", "101.324573 | \n", "4.214139 | \n", "319.087226 | \n", "
2 | \n", "0.3 | \n", "2393.630009 | \n", "2393.630009 | \n", "107.812245 | \n", "-0.0 | \n", "0.171335 | \n", "0.985213 | \n", "0.77402 | \n", "0.626663 | \n", "0.090481 | \n", "101.333096 | \n", "4.213355 | \n", "319.413466 | \n", "
3 | \n", "0.4 | \n", "2393.633015 | \n", "2393.633015 | \n", "107.812256 | \n", "-0.0 | \n", "0.171335 | \n", "0.985213 | \n", "0.773985 | \n", "0.626662 | \n", "0.090782 | \n", "101.350431 | \n", "4.21176 | \n", "320.094623 | \n", "
4 | \n", "0.5 | \n", "2393.648731 | \n", "2393.648731 | \n", "107.812313 | \n", "-0.0 | \n", "0.171335 | \n", "0.985213 | \n", "0.773932 | \n", "0.626658 | \n", "0.091262 | \n", "101.37803 | \n", "4.209221 | \n", "321.195802 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
1974 | \n", "197.5 | \n", "36965.892649 | \n", "36965.892649 | \n", "131.587129 | \n", "0.005339 | \n", "0.199508 | \n", "-0.979882 | \n", "-0.965728 | \n", "0.038192 | \n", "-0.256731 | \n", "104.716086 | \n", "3.878095 | \n", "201.53925 | \n", "
1975 | \n", "197.6 | \n", "36977.682744 | \n", "36977.682744 | \n", "131.589899 | \n", "0.005338 | \n", "0.199181 | \n", "-0.979948 | \n", "-0.965398 | \n", "0.038184 | \n", "-0.257971 | \n", "104.788403 | \n", "3.870429 | \n", "157.943233 | \n", "
1976 | \n", "197.7 | \n", "36989.474675 | \n", "36989.474675 | \n", "131.592668 | \n", "0.005337 | \n", "0.198854 | \n", "-0.980015 | \n", "-0.965067 | \n", "0.038177 | \n", "-0.259205 | \n", "104.860455 | \n", "3.862792 | \n", "114.487215 | \n", "
1977 | \n", "197.8 | \n", "37001.267964 | \n", "37001.267964 | \n", "131.595437 | \n", "0.005336 | \n", "0.198527 | \n", "-0.980081 | \n", "-0.964737 | \n", "0.038169 | \n", "-0.260435 | \n", "104.932242 | \n", "3.855182 | \n", "71.171197 | \n", "
1978 | \n", "197.9 | \n", "37013.062286 | \n", "37013.062286 | \n", "131.598205 | \n", "0.005335 | \n", "0.198199 | \n", "-0.980147 | \n", "-0.964406 | \n", "0.038162 | \n", "-0.261659 | \n", "105.003766 | \n", "3.847586 | \n", "27.99477 | \n", "
1979 rows × 13 columns
\n", "