diff --git a/docs/notebooks/dispersion_analysis/dispersion_analysis.ipynb b/docs/notebooks/dispersion_analysis/dispersion_analysis.ipynb index 518dbd848..da512012d 100644 --- a/docs/notebooks/dispersion_analysis/dispersion_analysis.ipynb +++ b/docs/notebooks/dispersion_analysis/dispersion_analysis.ipynb @@ -37,7 +37,7 @@ "metadata": {}, "outputs": [], "source": [ - "%git clone https://github.com/giovaniceotto/RocketPy.git\n", + "%git clone https://github.com/RocketPy-Team/RocketPy.git\n", "import os\n", "\n", "os.chdir(\"RocketPy/docs/notebooks/dispersion_analysis\")" @@ -67,12 +67,13 @@ "outputs": [], "source": [ "%pip install netCDF4\n", - "%pip install rocketpy" + "%pip install rocketpy\n", + "%pip install ipympl" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "id": "rNY7u8fApOP_" }, @@ -99,7 +100,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "id": "0uEmvBIt5Ltg" }, @@ -140,7 +141,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { "id": "fwoCdOgKpOQD" }, @@ -148,7 +149,7 @@ "source": [ "analysis_parameters = {\n", " # Mass Details\n", - " \"rocketMass\": (\n", + " \"rocket_mass\": (\n", " 8.257,\n", " 0.001,\n", " ), # Rocket's dry mass (kg) and its uncertainty (standard deviation)\n", @@ -161,48 +162,48 @@ " 6 / 1000,\n", " 1 / 1000,\n", " ), # Motor's grain separation (axial distance between two grains) (m)\n", - " \"grainDensity\": (1707, 50), # Motor's grain density (kg/m^3)\n", - " \"grainOuterRadius\": (21.4 / 1000, 0.375 / 1000), # Motor's grain outer radius (m)\n", - " \"grainInitialInnerRadius\": (\n", + " \"grain_density\": (1707, 50), # Motor's grain density (kg/m^3)\n", + " \"grain_outer_radius\": (21.4 / 1000, 0.375 / 1000), # Motor's grain outer radius (m)\n", + " \"grain_initial_inner_radius\": (\n", " 9.65 / 1000,\n", " 0.375 / 1000,\n", " ), # Motor's grain inner radius (m)\n", - " \"grainInitialHeight\": (120 / 1000, 1 / 1000), # Motor's grain height (m)\n", + " \"grain_initial_height\": (120 / 1000, 1 / 1000), # Motor's grain height (m)\n", " # Aerodynamic Details - run help(Rocket) for more information\n", - " \"inertiaI\": (\n", + " \"inertia_I\": (\n", " 3.675,\n", " 0.03675,\n", " ), # Rocket's inertia moment perpendicular to its axis (kg*m^2)\n", - " \"inertiaZ\": (\n", + " \"inertia_Z\": (\n", " 0.007,\n", " 0.00007,\n", " ), # Rocket's inertia moment relative to its axis (kg*m^2)\n", " \"radius\": (40.45 / 1000, 0.001), # Rocket's radius (kg*m^2)\n", - " \"distanceRocketNozzle\": (\n", + " \"distance_rocket_nozzle\": (\n", " -1.024,\n", " 0.001,\n", " ), # Distance between rocket's center of dry mass and nozzle exit plane (m) (negative)\n", - " \"distanceRocketPropellant\": (\n", + " \"distance_rocket_propellant\": (\n", " -0.571,\n", " 0.001,\n", " ), # Distance between rocket's center of dry mass and and center of propellant mass (m) (negative)\n", - " \"powerOffDrag\": (\n", + " \"power_off_drag\": (\n", " 0.9081 / 1.05,\n", " 0.033,\n", " ), # Multiplier for rocket's drag curve. Usually has a mean value of 1 and a uncertainty of 5% to 10%\n", - " \"powerOnDrag\": (\n", + " \"power_on_drag\": (\n", " 0.9081 / 1.05,\n", " 0.033,\n", " ), # Multiplier for rocket's drag curve. Usually has a mean value of 1 and a uncertainty of 5% to 10%\n", - " \"noseLength\": (0.274, 0.001), # Rocket's nose cone length (m)\n", - " \"noseDistanceToCM\": (\n", + " \"nose_length\": (0.274, 0.001), # Rocket's nose cone length (m)\n", + " \"nose_distance_to_CM\": (\n", " 1.134,\n", " 0.001,\n", " ), # Axial distance between rocket's center of dry mass and nearest point in its nose cone (m)\n", - " \"finSpan\": (0.077, 0.0005), # Fin span (m)\n", - " \"finRootChord\": (0.058, 0.0005), # Fin root chord (m)\n", - " \"finTipChord\": (0.018, 0.0005), # Fin tip chord (m)\n", - " \"finDistanceToCM\": (\n", + " \"fin_span\": (0.077, 0.0005), # Fin span (m)\n", + " \"fin_root_chord\": (0.058, 0.0005), # Fin root chord (m)\n", + " \"fin_tip_chord\": (0.018, 0.0005), # Fin tip chord (m)\n", + " \"fin_distance_to_CM\": (\n", " -0.906,\n", " 0.001,\n", " ), # Axial distance between rocket's center of dry mass and nearest point in its fin (m)\n", @@ -212,10 +213,10 @@ " 1,\n", " ), # Launch rail inclination angle relative to the horizontal plane (degrees)\n", " \"heading\": (53, 2), # Launch rail heading relative to north (degrees)\n", - " \"railLength\": (5.7, 0.0005), # Launch rail length (m)\n", - " \"ensembleMember\": list(range(10)), # Members of the ensemble forecast to be used\n", + " \"rail_length\": (5.7, 0.0005), # Launch rail length (m)\n", + " \"ensemble_member\": list(range(10)), # Members of the ensemble forecast to be used\n", " # Parachute Details - run help(Rocket) for more information\n", - " \"CdSDrogue\": (\n", + " \"cd_s_drogue\": (\n", " 0.349 * 1.3,\n", " 0.07,\n", " ), # Drag coefficient times reference area for the drogue chute (m^2)\n", @@ -247,7 +248,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { "id": "5XCL9JaIpOQH" }, @@ -293,7 +294,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { "id": "1eC2p3jEpOQO" }, @@ -302,57 +303,41 @@ "def export_flight_data(flight_setting, flight_data, exec_time):\n", " # Generate flight results\n", " flight_result = {\n", - " \"outOfRailTime\": flight_data.outOfRailTime,\n", - " \"outOfRailVelocity\": flight_data.outOfRailVelocity,\n", - " \"apogeeTime\": flight_data.apogeeTime,\n", - " \"apogeeAltitude\": flight_data.apogee - Env.elevation,\n", - " \"apogeeX\": flight_data.apogeeX,\n", - " \"apogeeY\": flight_data.apogeeY,\n", - " \"impactTime\": flight_data.tFinal,\n", - " \"impactX\": flight_data.xImpact,\n", - " \"impactY\": flight_data.yImpact,\n", - " \"impactVelocity\": flight_data.impactVelocity,\n", - " \"initialStaticMargin\": flight_data.rocket.staticMargin(0),\n", - " \"outOfRailStaticMargin\": flight_data.rocket.staticMargin(\n", - " TestFlight.outOfRailTime\n", + " \"out_of_rail_time\": flight_data.out_of_rail_time,\n", + " \"out_of_rail_velocity\": flight_data.out_of_rail_velocity,\n", + " \"max_velocity\": flight_data.speed.max,\n", + " \"apogee_time\": flight_data.apogee_time,\n", + " \"apogee_altitude\": flight_data.apogee - Env.elevation,\n", + " \"apogee_x\": flight_data.apogee_x,\n", + " \"apogee_y\": flight_data.apogee_y,\n", + " \"impact_time\": flight_data.t_final,\n", + " \"impact_x\": flight_data.x_impact,\n", + " \"impact_y\": flight_data.y_impact,\n", + " \"impact_velocity\": flight_data.impact_velocity,\n", + " \"initial_static_margin\": flight_data.rocket.static_margin(0),\n", + " \"out_of_rail_static_margin\": flight_data.rocket.static_margin(\n", + " flight_data.out_of_rail_time\n", " ),\n", - " \"finalStaticMargin\": flight_data.rocket.staticMargin(\n", - " TestFlight.rocket.motor.burnOutTime\n", + " \"final_static_margin\": flight_data.rocket.static_margin(\n", + " flight_data.rocket.motor.burn_out_time\n", " ),\n", - " \"numberOfEvents\": len(flight_data.parachuteEvents),\n", - " \"executionTime\": exec_time,\n", + " \"number_of_events\": len(flight_data.parachute_events),\n", + " \"execution_time\": exec_time,\n", " }\n", "\n", - " # Calculate maximum reached velocity\n", - " sol = np.array(flight_data.solution)\n", - " flight_data.vx = Function(\n", - " sol[:, [0, 4]], \"Time (s)\", \"Vx (m/s)\", \"linear\", extrapolation=\"natural\"\n", - " )\n", - " flight_data.vy = Function(\n", - " sol[:, [0, 5]], \"Time (s)\", \"Vy (m/s)\", \"linear\", extrapolation=\"natural\"\n", - " )\n", - " flight_data.vz = Function(\n", - " sol[:, [0, 6]], \"Time (s)\", \"Vz (m/s)\", \"linear\", extrapolation=\"natural\"\n", - " )\n", - " flight_data.v = (\n", - " flight_data.vx**2 + flight_data.vy**2 + flight_data.vz**2\n", - " ) ** 0.5\n", - " flight_data.maxVel = np.amax(flight_data.v.source[:, 1])\n", - " flight_result[\"maxVelocity\"] = flight_data.maxVel\n", - "\n", " # Take care of parachute results\n", - " if len(flight_data.parachuteEvents) > 0:\n", - " flight_result[\"drogueTriggerTime\"] = flight_data.parachuteEvents[0][0]\n", - " flight_result[\"drogueInflatedTime\"] = (\n", - " flight_data.parachuteEvents[0][0] + flight_data.parachuteEvents[0][1].lag\n", + " if len(flight_data.parachute_events) > 0:\n", + " flight_result[\"drogue_triggerTime\"] = flight_data.parachute_events[0][0]\n", + " flight_result[\"drogue_inflated_time\"] = (\n", + " flight_data.parachute_events[0][0] + flight_data.parachute_events[0][1].lag\n", " )\n", - " flight_result[\"drogueInflatedVelocity\"] = flight_data.v(\n", - " flight_data.parachuteEvents[0][0] + flight_data.parachuteEvents[0][1].lag\n", + " flight_result[\"drogue_inflated_velocity\"] = flight_data.speed(\n", + " flight_data.parachute_events[0][0] + flight_data.parachute_events[0][1].lag\n", " )\n", " else:\n", - " flight_result[\"drogueTriggerTime\"] = 0\n", - " flight_result[\"drogueInflatedTime\"] = 0\n", - " flight_result[\"drogueInflatedVelocity\"] = 0\n", + " flight_result[\"drogue_triggerTime\"] = 0\n", + " flight_result[\"drogue_inflated_time\"] = 0\n", + " flight_result[\"drogue_inflated_velocity\"] = 0\n", "\n", " # Write flight setting and results to file\n", " dispersion_input_file.write(str(flight_setting) + \"\\n\")\n", @@ -386,7 +371,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -395,11 +380,21 @@ "id": "GILiaO30pOQS", "outputId": "5a2ae15d-5c16-4ae0-f28b-165730d2419d" }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'Starting'" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Basic analysis info\n", - "filename = \"dispersion_analysis_outputs/valetudo_rocket_v0\"\n", - "number_of_simulations = 20000\n", + "filename = \"dispersion_analysis_outputs/valetudo_rocket_v1\"\n", + "number_of_simulations = 10\n", "\n", "# Create data files for inputs, outputs and error logging\n", "dispersion_error_file = open(str(filename) + \".disp_errors.txt\", \"w\")\n", @@ -416,16 +411,16 @@ "Env = Environment(\n", " date=(2019, 8, 10, 21), latitude=-23.363611, longitude=-48.011389\n", ")\n", - "Env.setElevation(668)\n", - "Env.maxExpectedHeight = 1500\n", - "Env.setAtmosphericModel(\n", + "Env.set_elevation(668)\n", + "Env.max_expected_height = 1500\n", + "Env.set_atmospheric_model(\n", " type=\"Ensemble\",\n", " file=\"dispersion_analysis_inputs/LASC2019_reanalysis.nc\",\n", " dictionary=\"ECMWF\",\n", ")\n", "\n", "# Set up parachutes. This rocket, named Valetudo, only has a drogue chute.\n", - "def drogueTrigger(p, h, y):\n", + "def drogue_trigger(p, h, y):\n", " # Check if rocket is going down, i.e. if it has passed the apogee\n", " vertical_velocity = y[5]\n", " # Return true to activate parachute once the vertical velocity is negative\n", @@ -439,80 +434,82 @@ " i += 1\n", "\n", " # Update environment object\n", - " Env.selectEnsembleMember(setting[\"ensembleMember\"])\n", + " Env.select_ensemble_member(setting[\"ensemble_member\"])\n", "\n", " # Create motor\n", " Keron = SolidMotor(\n", - " thrustSource=\"dispersion_analysis_inputs/thrustCurve.csv\",\n", + " thrust_source=\"dispersion_analysis_inputs/thrustCurve.csv\",\n", " burn_time=5.274,\n", - " reshapeThrustCurve=(setting[\"burn_time\"], setting[\"impulse\"]),\n", + " reshape_thrust_curve=(setting[\"burn_time\"], setting[\"impulse\"]),\n", " nozzle_radius=setting[\"nozzle_radius\"],\n", " throat_radius=setting[\"throat_radius\"],\n", - " grainsCenterOfMassPosition=setting[\"distanceRocketPropellant\"],\n", - " grainNumber=6,\n", + " grains_center_of_mass_position=setting[\"distance_rocket_propellant\"],\n", + " grain_number=6,\n", " grain_separation=setting[\"grain_separation\"],\n", - " grainDensity=setting[\"grainDensity\"],\n", - " grainOuterRadius=setting[\"grainOuterRadius\"],\n", - " grainInitialInnerRadius=setting[\"grainInitialInnerRadius\"],\n", - " grainInitialHeight=setting[\"grainInitialHeight\"],\n", - " interpolationMethod=\"linear\",\n", - " nozzlePosition=setting[\"distanceRocketNozzle\"],\n", - " coordinateSystemOrientation=\"nozzleToCombustionChamber\",\n", + " grain_density=setting[\"grain_density\"],\n", + " grain_outer_radius=setting[\"grain_outer_radius\"],\n", + " grain_initial_inner_radius=setting[\"grain_initial_inner_radius\"],\n", + " grain_initial_height=setting[\"grain_initial_height\"],\n", + " interpolation_method=\"linear\",\n", + " nozzle_position=setting[\"distance_rocket_nozzle\"],\n", + " coordinate_system_orientation=\"nozzle_to_combustion_chamber\",\n", + " dry_mass=0,\n", + " dry_inertia=(0, 0, 0),\n", + " center_of_dry_mass_position=0\n", " )\n", " # Create rocket\n", " Valetudo = Rocket(\n", " radius=setting[\"radius\"],\n", - " mass=setting[\"rocketMass\"],\n", - " inertiaI=setting[\"inertiaI\"],\n", - " inertiaZ=setting[\"inertiaZ\"],\n", - " powerOffDrag=\"dispersion_analysis_inputs/Cd_PowerOff.csv\",\n", - " powerOnDrag=\"dispersion_analysis_inputs/Cd_PowerOn.csv\",\n", - " centerOfDryMassPosition=0,\n", - " coordinateSystemOrientation=\"tailToNose\",\n", + " mass=setting[\"rocket_mass\"],\n", + " inertia=(setting[\"inertia_I\"],setting[\"inertia_I\"],setting[\"inertia_Z\"]),\n", + " power_off_drag=\"dispersion_analysis_inputs/Cd_PowerOff.csv\",\n", + " power_on_drag=\"dispersion_analysis_inputs/Cd_PowerOn.csv\",\n", + " center_of_mass_without_motor=0,\n", + " coordinate_system_orientation=\"tail_to_nose\",\n", " )\n", - " Valetudo.setRailButtons(0.224, -0.93, 30)\n", + " Valetudo.set_rail_buttons(0.224, -0.93, 30)\n", "\n", - " Valetudo.addMotor(Keron, position=setting[\"distanceRocketNozzle\"])\n", + " Valetudo.add_motor(Keron, position=setting[\"distance_rocket_nozzle\"])\n", "\n", " # Edit rocket drag\n", - " Valetudo.powerOffDrag *= setting[\"powerOffDrag\"]\n", - " Valetudo.powerOnDrag *= setting[\"powerOnDrag\"]\n", + " Valetudo.power_off_drag *= setting[\"power_off_drag\"]\n", + " Valetudo.power_on_drag *= setting[\"power_on_drag\"]\n", " # Add rocket nose, fins and tail\n", - " NoseCone = Valetudo.addNose(\n", - " length=setting[\"noseLength\"],\n", + " NoseCone = Valetudo.add_nose(\n", + " length=setting[\"nose_length\"],\n", " kind=\"vonKarman\",\n", - " position=setting[\"noseDistanceToCM\"] + setting[\"noseLength\"],\n", + " position=setting[\"nose_distance_to_CM\"],\n", " )\n", - " FinSet = Valetudo.addTrapezoidalFins(\n", + " FinSet = Valetudo.add_trapezoidal_fins(\n", " n=3,\n", - " span=setting[\"finSpan\"],\n", - " rootChord=setting[\"finRootChord\"],\n", - " tipChord=setting[\"finTipChord\"],\n", - " position=setting[\"finDistanceToCM\"],\n", - " cantAngle=0,\n", + " span=setting[\"fin_span\"],\n", + " root_chord=setting[\"fin_root_chord\"],\n", + " tip_chord=setting[\"fin_tip_chord\"],\n", + " position=setting[\"fin_distance_to_CM\"],\n", + " cant_angle=0,\n", " airfoil=None,\n", " )\n", " # Add parachute\n", - " Drogue = Valetudo.addParachute(\n", + " Drogue = Valetudo.add_parachute(\n", " \"Drogue\",\n", - " CdS=setting[\"CdSDrogue\"],\n", - " trigger=drogueTrigger,\n", - " samplingRate=105,\n", + " cd_s=setting[\"cd_s_drogue\"],\n", + " trigger=drogue_trigger,\n", + " sampling_rate=105,\n", " lag=setting[\"lag_rec\"] + setting[\"lag_se\"],\n", " noise=(0, 8.3, 0.5),\n", " )\n", "\n", " # Run trajectory simulation\n", " try:\n", - " TestFlight = Flight(\n", + " test_flight = Flight(\n", " rocket=Valetudo,\n", " environment=Env,\n", - " railLength=setting[\"railLength\"],\n", + " rail_length=setting[\"rail_length\"],\n", " inclination=setting[\"inclination\"],\n", " heading=setting[\"heading\"],\n", - " maxTime=600,\n", + " max_time=600,\n", " )\n", - " export_flight_data(setting, TestFlight, process_time() - start_time)\n", + " export_flight_data(setting, test_flight, process_time() - start_time)\n", " except Exception as E:\n", " print(E)\n", " export_flight_error(setting)\n", @@ -534,7 +531,7 @@ "## Close files\n", "dispersion_input_file.close()\n", "dispersion_output_file.close()\n", - "dispersion_error_file.close()\n" + "dispersion_error_file.close()" ] }, { @@ -561,7 +558,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -569,33 +566,41 @@ "id": "-7qgTJzRpOQb", "outputId": "76d2cecd-a09f-429f-cca2-f4e03e39d49e" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of simulations: 10\n" + ] + } + ], "source": [ - "filename = \"dispersion_analysis_outputs/valetudo_rocket_v0\"\n", + "filename = \"dispersion_analysis_outputs/valetudo_rocket_v1\"\n", "\n", "# Initialize variable to store all results\n", "dispersion_general_results = []\n", "\n", "dispersion_results = {\n", - " \"outOfRailTime\": [],\n", - " \"outOfRailVelocity\": [],\n", - " \"apogeeTime\": [],\n", - " \"apogeeAltitude\": [],\n", - " \"apogeeX\": [],\n", - " \"apogeeY\": [],\n", - " \"impactTime\": [],\n", - " \"impactX\": [],\n", - " \"impactY\": [],\n", - " \"impactVelocity\": [],\n", - " \"initialStaticMargin\": [],\n", - " \"outOfRailStaticMargin\": [],\n", - " \"finalStaticMargin\": [],\n", - " \"numberOfEvents\": [],\n", - " \"maxVelocity\": [],\n", - " \"drogueTriggerTime\": [],\n", - " \"drogueInflatedTime\": [],\n", - " \"drogueInflatedVelocity\": [],\n", - " \"executionTime\": [],\n", + " \"out_of_rail_time\": [],\n", + " \"out_of_rail_velocity\": [],\n", + " \"apogee_time\": [],\n", + " \"apogee_altitude\": [],\n", + " \"apogee_x\": [],\n", + " \"apogee_y\": [],\n", + " \"impact_time\": [],\n", + " \"impact_x\": [],\n", + " \"impact_y\": [],\n", + " \"impact_velocity\": [],\n", + " \"initial_static_margin\": [],\n", + " \"out_of_rail_static_margin\": [],\n", + " \"final_static_margin\": [],\n", + " \"number_of_events\": [],\n", + " \"max_velocity\": [],\n", + " \"drogue_triggerTime\": [],\n", + " \"drogue_inflated_time\": [],\n", + " \"drogue_inflated_velocity\": [],\n", + " \"execution_time\": [],\n", "}\n", "\n", "# Get all dispersion results\n", @@ -645,7 +650,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -654,17 +659,1109 @@ "id": "1JQSzd5cpOQh", "outputId": "455abcdf-9dd7-4689-9523-50154c7fb302" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Out of Rail Time - Mean Value: 1.024 s\n", + "Out of Rail Time - Standard Deviation: 0.246 s\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2023-11-06T01:00:13.744316\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.5.1, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "print(\n", - " f'Out of Rail Time - Mean Value: {np.mean(dispersion_results[\"outOfRailTime\"]):0.3f} s'\n", + " f'Out of Rail Time - Mean Value: {np.mean(dispersion_results[\"out_of_rail_time\"]):0.3f} s'\n", ")\n", "print(\n", - " f'Out of Rail Time - Standard Deviation: {np.std(dispersion_results[\"outOfRailTime\"]):0.3f} s'\n", + " f'Out of Rail Time - Standard Deviation: {np.std(dispersion_results[\"out_of_rail_time\"]):0.3f} s'\n", ")\n", "\n", "plt.figure()\n", - "plt.hist(dispersion_results[\"outOfRailTime\"], bins=int(N**0.5))\n", + "plt.hist(dispersion_results[\"out_of_rail_time\"], bins=int(N**0.5))\n", "plt.title(\"Out of Rail Time\")\n", "plt.xlabel(\"Time (s)\")\n", "plt.ylabel(\"Number of Occurences\")\n", @@ -673,7 +1770,7 @@ "# You can also use Plotly instead of Matplotlib if you wish!\n", "# import plotly.express as px\n", "# fig1 = px.histogram(\n", - "# x=dispersion_results[\"outOfRailTime\"],\n", + "# x=dispersion_results[\"out_of_rail_time\"],\n", "# title='Out of Rail Time',\n", "# nbins=int(N**0.5)\n", "# )\n", @@ -695,7 +1792,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -704,17 +1801,1094 @@ "id": "jE23vILMpOQm", "outputId": "aa04f5a4-26f2-47e8-831a-41d3e76b616f" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Out of Rail Velocity - Mean Value: 20.093 m/s\n", + "Out of Rail Velocity - Standard Deviation: 3.469 m/s\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2023-11-06T01:00:18.897455\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.5.1, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "print(\n", - " f'Out of Rail Velocity - Mean Value: {np.mean(dispersion_results[\"outOfRailVelocity\"]):0.3f} m/s'\n", + " f'Out of Rail Velocity - Mean Value: {np.mean(dispersion_results[\"out_of_rail_velocity\"]):0.3f} m/s'\n", ")\n", "print(\n", - " f'Out of Rail Velocity - Standard Deviation: {np.std(dispersion_results[\"outOfRailVelocity\"]):0.3f} m/s'\n", + " f'Out of Rail Velocity - Standard Deviation: {np.std(dispersion_results[\"out_of_rail_velocity\"]):0.3f} m/s'\n", ")\n", "\n", "plt.figure()\n", - "plt.hist(dispersion_results[\"outOfRailVelocity\"], bins=int(N**0.5))\n", + "plt.hist(dispersion_results[\"out_of_rail_velocity\"], bins=int(N**0.5))\n", "plt.title(\"Out of Rail Velocity\")\n", "plt.xlabel(\"Velocity (m/s)\")\n", "plt.ylabel(\"Number of Occurences\")\n", @@ -733,7 +2907,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -742,17 +2916,973 @@ "id": "l8zjT_VjpOQq", "outputId": "1c15fe12-afae-4035-f085-7d82e61d24d9" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Apogee Time - Mean Value: 14.133 s\n", + "Apogee Time - Standard Deviation: 0.433 s\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2023-11-06T01:00:19.124223\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.5.1, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "print(\n", - " f'Apogee Time - Mean Value: {np.mean(dispersion_results[\"apogeeTime\"]):0.3f} s'\n", + " f'Apogee Time - Mean Value: {np.mean(dispersion_results[\"apogee_time\"]):0.3f} s'\n", ")\n", "print(\n", - " f'Apogee Time - Standard Deviation: {np.std(dispersion_results[\"apogeeTime\"]):0.3f} s'\n", + " f'Apogee Time - Standard Deviation: {np.std(dispersion_results[\"apogee_time\"]):0.3f} s'\n", ")\n", "\n", "plt.figure()\n", - "plt.hist(dispersion_results[\"apogeeTime\"], bins=int(N**0.5))\n", + "plt.hist(dispersion_results[\"apogee_time\"], bins=int(N**0.5))\n", "plt.title(\"Apogee Time\")\n", "plt.xlabel(\"Time (s)\")\n", "plt.ylabel(\"Number of Occurences\")\n", @@ -771,7 +3901,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -780,17 +3910,1061 @@ "id": "gWWMoOClpOQv", "outputId": "88f2cf05-142c-4bb1-ce64-9879696107a7" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Apogee Altitude - Mean Value: 827.380 m\n", + "Apogee Altitude - Standard Deviation: 49.900 m\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2023-11-06T01:00:19.378959\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.5.1, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "print(\n", - " f'Apogee Altitude - Mean Value: {np.mean(dispersion_results[\"apogeeAltitude\"]):0.3f} m'\n", + " f'Apogee Altitude - Mean Value: {np.mean(dispersion_results[\"apogee_altitude\"]):0.3f} m'\n", ")\n", "print(\n", - " f'Apogee Altitude - Standard Deviation: {np.std(dispersion_results[\"apogeeAltitude\"]):0.3f} m'\n", + " f'Apogee Altitude - Standard Deviation: {np.std(dispersion_results[\"apogee_altitude\"]):0.3f} m'\n", ")\n", "\n", "plt.figure()\n", - "plt.hist(dispersion_results[\"apogeeAltitude\"], bins=int(N**0.5))\n", + "plt.hist(dispersion_results[\"apogee_altitude\"], bins=int(N**0.5))\n", "plt.title(\"Apogee Altitude\")\n", "plt.xlabel(\"Altitude (m)\")\n", "plt.ylabel(\"Number of Occurences\")\n", @@ -811,7 +4985,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -820,17 +4994,1146 @@ "id": "nGdsF9VppOQ3", "outputId": "b4f0a3aa-afa1-4942-91b8-8ad61d263244" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Apogee X Position - Mean Value: 105.866 m\n", + "Apogee X Position - Standard Deviation: 23.319 m\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2023-11-06T01:00:19.591739\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.5.1, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "print(\n", - " f'Apogee X Position - Mean Value: {np.mean(dispersion_results[\"apogeeX\"]):0.3f} m'\n", + " f'Apogee X Position - Mean Value: {np.mean(dispersion_results[\"apogee_x\"]):0.3f} m'\n", ")\n", "print(\n", - " f'Apogee X Position - Standard Deviation: {np.std(dispersion_results[\"apogeeX\"]):0.3f} m'\n", + " f'Apogee X Position - Standard Deviation: {np.std(dispersion_results[\"apogee_x\"]):0.3f} m'\n", ")\n", "\n", "plt.figure()\n", - "plt.hist(dispersion_results[\"apogeeX\"], bins=int(N**0.5))\n", + "plt.hist(dispersion_results[\"apogee_x\"], bins=int(N**0.5))\n", "plt.title(\"Apogee X Position\")\n", "plt.xlabel(\"Apogee X Position (m)\")\n", "plt.ylabel(\"Number of Occurences\")\n", @@ -849,7 +6152,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -858,17 +6161,1042 @@ "id": "ocq6GmeNpOQ8", "outputId": "f3a45339-c0a6-4819-bd03-60f7fe6df963" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Apogee Y Position - Mean Value: 121.207 m\n", + "Apogee Y Position - Standard Deviation: 21.671 m\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2023-11-06T01:00:19.808515\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.5.1, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "print(\n", - " f'Apogee Y Position - Mean Value: {np.mean(dispersion_results[\"apogeeY\"]):0.3f} m'\n", + " f'Apogee Y Position - Mean Value: {np.mean(dispersion_results[\"apogee_y\"]):0.3f} m'\n", ")\n", "print(\n", - " f'Apogee Y Position - Standard Deviation: {np.std(dispersion_results[\"apogeeY\"]):0.3f} m'\n", + " f'Apogee Y Position - Standard Deviation: {np.std(dispersion_results[\"apogee_y\"]):0.3f} m'\n", ")\n", "\n", "plt.figure()\n", - "plt.hist(dispersion_results[\"apogeeY\"], bins=int(N**0.5))\n", + "plt.hist(dispersion_results[\"apogee_y\"], bins=int(N**0.5))\n", "plt.title(\"Apogee Y Position\")\n", "plt.xlabel(\"Apogee Y Position (m)\")\n", "plt.ylabel(\"Number of Occurences\")\n", @@ -887,7 +7215,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -896,17 +7224,1018 @@ "id": "52j6t5-MpORB", "outputId": "9cba31b1-c731-402f-b138-df5c72521408" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Impact Time - Mean Value: 60.556 s\n", + "Impact Time - Standard Deviation: 4.104 s\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2023-11-06T01:00:20.024293\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.5.1, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "print(\n", - " f'Impact Time - Mean Value: {np.mean(dispersion_results[\"impactTime\"]):0.3f} s'\n", + " f'Impact Time - Mean Value: {np.mean(dispersion_results[\"impact_time\"]):0.3f} s'\n", ")\n", "print(\n", - " f'Impact Time - Standard Deviation: {np.std(dispersion_results[\"impactTime\"]):0.3f} s'\n", + " f'Impact Time - Standard Deviation: {np.std(dispersion_results[\"impact_time\"]):0.3f} s'\n", ")\n", "\n", "plt.figure()\n", - "plt.hist(dispersion_results[\"impactTime\"], bins=int(N**0.5))\n", + "plt.hist(dispersion_results[\"impact_time\"], bins=int(N**0.5))\n", "plt.title(\"Impact Time\")\n", "plt.xlabel(\"Time (s)\")\n", "plt.ylabel(\"Number of Occurences\")\n", @@ -925,7 +8254,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -934,17 +8263,1051 @@ "id": "uzL8-1UGpORF", "outputId": "5c74f8d1-b909-44cf-a5c9-2f1b5e9dda1d" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Impact X Position - Mean Value: 345.667 m\n", + "Impact X Position - Standard Deviation: 38.901 m\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2023-11-06T01:00:20.246064\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.5.1, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "print(\n", - " f'Impact X Position - Mean Value: {np.mean(dispersion_results[\"impactX\"]):0.3f} m'\n", + " f'Impact X Position - Mean Value: {np.mean(dispersion_results[\"impact_x\"]):0.3f} m'\n", ")\n", "print(\n", - " f'Impact X Position - Standard Deviation: {np.std(dispersion_results[\"impactX\"]):0.3f} m'\n", + " f'Impact X Position - Standard Deviation: {np.std(dispersion_results[\"impact_x\"]):0.3f} m'\n", ")\n", "\n", "plt.figure()\n", - "plt.hist(dispersion_results[\"impactX\"], bins=int(N**0.5))\n", + "plt.hist(dispersion_results[\"impact_x\"], bins=int(N**0.5))\n", "plt.title(\"Impact X Position\")\n", "plt.xlabel(\"Impact X Position (m)\")\n", "plt.ylabel(\"Number of Occurences\")\n", @@ -963,7 +9326,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -972,17 +9335,1051 @@ "id": "Q-ghmNVopORM", "outputId": "cd0c81a8-a3fc-4710-cadf-a20cf0882bec" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Impact Y Position - Mean Value: 37.539 m\n", + "Impact Y Position - Standard Deviation: 32.458 m\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2023-11-06T01:00:20.464839\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.5.1, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "print(\n", - " f'Impact Y Position - Mean Value: {np.mean(dispersion_results[\"impactY\"]):0.3f} m'\n", + " f'Impact Y Position - Mean Value: {np.mean(dispersion_results[\"impact_y\"]):0.3f} m'\n", ")\n", "print(\n", - " f'Impact Y Position - Standard Deviation: {np.std(dispersion_results[\"impactY\"]):0.3f} m'\n", + " f'Impact Y Position - Standard Deviation: {np.std(dispersion_results[\"impact_y\"]):0.3f} m'\n", ")\n", "\n", "plt.figure()\n", - "plt.hist(dispersion_results[\"impactY\"], bins=int(N**0.5))\n", + "plt.hist(dispersion_results[\"impact_y\"], bins=int(N**0.5))\n", "plt.title(\"Impact Y Position\")\n", "plt.xlabel(\"Impact Y Position (m)\")\n", "plt.ylabel(\"Number of Occurences\")\n", @@ -1001,7 +10398,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -1010,17 +10407,997 @@ "id": "Ryx7KEEVpORP", "outputId": "90cdcf97-affc-4f09-ed2a-9b854257a8a0" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Impact Velocity - Mean Value: -18.355 m/s\n", + "Impact Velocity - Standard Deviation: 1.373 m/s\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2023-11-06T01:00:20.730565\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.5.1, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "print(\n", - " f'Impact Velocity - Mean Value: {np.mean(dispersion_results[\"impactVelocity\"]):0.3f} m/s'\n", + " f'Impact Velocity - Mean Value: {np.mean(dispersion_results[\"impact_velocity\"]):0.3f} m/s'\n", ")\n", "print(\n", - " f'Impact Velocity - Standard Deviation: {np.std(dispersion_results[\"impactVelocity\"]):0.3f} m/s'\n", + " f'Impact Velocity - Standard Deviation: {np.std(dispersion_results[\"impact_velocity\"]):0.3f} m/s'\n", ")\n", "\n", "plt.figure()\n", - "plt.hist(dispersion_results[\"impactVelocity\"], bins=int(N**0.5))\n", + "plt.hist(dispersion_results[\"impact_velocity\"], bins=int(N**0.5))\n", "plt.title(\"Impact Velocity\")\n", "# plt.grid()\n", "plt.xlim(-35, 0)\n", @@ -1041,7 +11418,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -1050,35 +11427,1259 @@ "id": "a2Tpo9hjpORT", "outputId": "94129858-cd6b-4af6-8f88-66923455a566" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Initial Static Margin - Mean Value: 1.111 c\n", + "Initial Static Margin - Standard Deviation: 0.291 c\n", + "Out of Rail Static Margin - Mean Value: 1.569 c\n", + "Out of Rail Static Margin - Standard Deviation: 0.290 c\n", + "Final Static Margin - Mean Value: 4.035 c\n", + "Final Static Margin - Standard Deviation: 0.290 c\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2023-11-06T01:00:21.058226\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.5.1, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "print(\n", - " f'Initial Static Margin - Mean Value: {np.mean(dispersion_results[\"initialStaticMargin\"]):0.3f} c'\n", + " f'Initial Static Margin - Mean Value: {np.mean(dispersion_results[\"initial_static_margin\"]):0.3f} c'\n", ")\n", "print(\n", - " f'Initial Static Margin - Standard Deviation: {np.std(dispersion_results[\"initialStaticMargin\"]):0.3f} c'\n", + " f'Initial Static Margin - Standard Deviation: {np.std(dispersion_results[\"initial_static_margin\"]):0.3f} c'\n", ")\n", "\n", "print(\n", - " f'Out of Rail Static Margin - Mean Value: {np.mean(dispersion_results[\"outOfRailStaticMargin\"]):0.3f} c'\n", + " f'Out of Rail Static Margin - Mean Value: {np.mean(dispersion_results[\"out_of_rail_static_margin\"]):0.3f} c'\n", ")\n", "print(\n", - " f'Out of Rail Static Margin - Standard Deviation: {np.std(dispersion_results[\"outOfRailStaticMargin\"]):0.3f} c'\n", + " f'Out of Rail Static Margin - Standard Deviation: {np.std(dispersion_results[\"out_of_rail_static_margin\"]):0.3f} c'\n", ")\n", "\n", "print(\n", - " f'Final Static Margin - Mean Value: {np.mean(dispersion_results[\"finalStaticMargin\"]):0.3f} c'\n", + " f'Final Static Margin - Mean Value: {np.mean(dispersion_results[\"final_static_margin\"]):0.3f} c'\n", ")\n", "print(\n", - " f'Final Static Margin - Standard Deviation: {np.std(dispersion_results[\"finalStaticMargin\"]):0.3f} c'\n", + " f'Final Static Margin - Standard Deviation: {np.std(dispersion_results[\"final_static_margin\"]):0.3f} c'\n", ")\n", "\n", "plt.figure()\n", - "plt.hist(dispersion_results[\"initialStaticMargin\"], label=\"Initial\", bins=int(N**0.5))\n", + "plt.hist(dispersion_results[\"initial_static_margin\"], label=\"Initial\", bins=int(N**0.5))\n", "plt.hist(\n", - " dispersion_results[\"outOfRailStaticMargin\"], label=\"Out of Rail\", bins=int(N**0.5)\n", + " dispersion_results[\"out_of_rail_static_margin\"], label=\"Out of Rail\", bins=int(N**0.5)\n", ")\n", - "plt.hist(dispersion_results[\"finalStaticMargin\"], label=\"Final\", bins=int(N**0.5))\n", + "plt.hist(dispersion_results[\"final_static_margin\"], label=\"Final\", bins=int(N**0.5))\n", "plt.legend()\n", "plt.title(\"Static Margin\")\n", "plt.xlabel(\"Static Margin (c)\")\n", @@ -1098,7 +12699,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -1107,17 +12708,1005 @@ "id": "nOu1O8MXpORY", "outputId": "7510aec8-7b73-4751-f033-8367cd0c9bdc" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Maximum Velocity - Mean Value: 123.363 m/s\n", + "Maximum Velocity - Standard Deviation: 7.196 m/s\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2023-11-06T01:00:21.278000\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.5.1, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "print(\n", - " f'Maximum Velocity - Mean Value: {np.mean(dispersion_results[\"maxVelocity\"]):0.3f} m/s'\n", + " f'Maximum Velocity - Mean Value: {np.mean(dispersion_results[\"max_velocity\"]):0.3f} m/s'\n", ")\n", "print(\n", - " f'Maximum Velocity - Standard Deviation: {np.std(dispersion_results[\"maxVelocity\"]):0.3f} m/s'\n", + " f'Maximum Velocity - Standard Deviation: {np.std(dispersion_results[\"max_velocity\"]):0.3f} m/s'\n", ")\n", "\n", "plt.figure()\n", - "plt.hist(dispersion_results[\"maxVelocity\"], bins=int(N**0.5))\n", + "plt.hist(dispersion_results[\"max_velocity\"], bins=int(N**0.5))\n", "plt.title(\"Maximum Velocity\")\n", "plt.xlabel(\"Velocity (m/s)\")\n", "plt.ylabel(\"Number of Occurences\")\n", @@ -1138,7 +13727,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -1147,10 +13736,972 @@ "id": "yhcWi2kCpORb", "outputId": "dee54569-8213-46cc-e287-9fffd2b8e43c" }, - "outputs": [], + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2023-11-06T01:00:21.510759\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.5.1, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "plt.figure()\n", - "plt.hist(dispersion_results[\"numberOfEvents\"])\n", + "plt.hist(dispersion_results[\"number_of_events\"])\n", "plt.title(\"Parachute Events\")\n", "plt.xlabel(\"Number of Parachute Events\")\n", "plt.ylabel(\"Number of Occurences\")\n", @@ -1169,7 +14720,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -1178,17 +14729,1062 @@ "id": "lvCksZG8pORf", "outputId": "3efd19ed-11e9-41d1-8e66-04da384665ce" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Drogue Parachute Trigger Time - Mean Value: 14.136 s\n", + "Drogue Parachute Trigger Time - Standard Deviation: 0.433 s\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2023-11-06T01:00:21.807453\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.5.1, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "print(\n", - " f'Drogue Parachute Trigger Time - Mean Value: {np.mean(dispersion_results[\"drogueTriggerTime\"]):0.3f} s'\n", + " f'Drogue Parachute Trigger Time - Mean Value: {np.mean(dispersion_results[\"drogue_triggerTime\"]):0.3f} s'\n", ")\n", "print(\n", - " f'Drogue Parachute Trigger Time - Standard Deviation: {np.std(dispersion_results[\"drogueTriggerTime\"]):0.3f} s'\n", + " f'Drogue Parachute Trigger Time - Standard Deviation: {np.std(dispersion_results[\"drogue_triggerTime\"]):0.3f} s'\n", ")\n", "\n", "plt.figure()\n", - "plt.hist(dispersion_results[\"drogueTriggerTime\"], bins=int(N**0.5))\n", + "plt.hist(dispersion_results[\"drogue_triggerTime\"], bins=int(N**0.5))\n", "plt.title(\"Drogue Parachute Trigger Time\")\n", "plt.xlabel(\"Time (s)\")\n", "plt.ylabel(\"Number of Occurences\")\n", @@ -1207,7 +15803,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -1216,17 +15812,1219 @@ "id": "KCYKVFYXpORj", "outputId": "8ae49853-0f08-4bf6-9bd8-91a7c9a9448d" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Drogue Parachute Fully Inflated Time - Mean Value: 15.663 s\n", + "Drogue Parachute Fully Inflated Time - Standard Deviation: 0.392 s\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2023-11-06T01:00:22.022238\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.5.1, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "print(\n", - " f'Drogue Parachute Fully Inflated Time - Mean Value: {np.mean(dispersion_results[\"drogueInflatedTime\"]):0.3f} s'\n", + " f'Drogue Parachute Fully Inflated Time - Mean Value: {np.mean(dispersion_results[\"drogue_inflated_time\"]):0.3f} s'\n", ")\n", "print(\n", - " f'Drogue Parachute Fully Inflated Time - Standard Deviation: {np.std(dispersion_results[\"drogueInflatedTime\"]):0.3f} s'\n", + " f'Drogue Parachute Fully Inflated Time - Standard Deviation: {np.std(dispersion_results[\"drogue_inflated_time\"]):0.3f} s'\n", ")\n", "\n", "plt.figure()\n", - "plt.hist(dispersion_results[\"drogueInflatedTime\"], bins=int(N**0.5))\n", + "plt.hist(dispersion_results[\"drogue_inflated_time\"], bins=int(N**0.5))\n", "plt.title(\"Drogue Parachute Fully Inflated Time\")\n", "plt.xlabel(\"Time (s)\")\n", "plt.ylabel(\"Number of Occurences\")\n", @@ -1245,7 +17043,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -1254,17 +17052,1197 @@ "id": "KxrpPUzqpORn", "outputId": "9c102bdb-b805-4aa1-b3a2-1ac329c76976" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Drogue Parachute Fully Inflated Velocity - Mean Value: 18.660 m/s\n", + "Drogue Parachute Fully Inflated Velocity - Standard Deviation: 3.021 m/s\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2023-11-06T01:00:22.235012\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.5.1, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "print(\n", - " f'Drogue Parachute Fully Inflated Velocity - Mean Value: {np.mean(dispersion_results[\"drogueInflatedVelocity\"]):0.3f} m/s'\n", + " f'Drogue Parachute Fully Inflated Velocity - Mean Value: {np.mean(dispersion_results[\"drogue_inflated_velocity\"]):0.3f} m/s'\n", ")\n", "print(\n", - " f'Drogue Parachute Fully Inflated Velocity - Standard Deviation: {np.std(dispersion_results[\"drogueInflatedVelocity\"]):0.3f} m/s'\n", + " f'Drogue Parachute Fully Inflated Velocity - Standard Deviation: {np.std(dispersion_results[\"drogue_inflated_velocity\"]):0.3f} m/s'\n", ")\n", "\n", "plt.figure()\n", - "plt.hist(dispersion_results[\"drogueInflatedVelocity\"], bins=int(N**0.5))\n", + "plt.hist(dispersion_results[\"drogue_inflated_velocity\"], bins=int(N**0.5))\n", "plt.title(\"Drogue Parachute Fully Inflated Velocity\")\n", "plt.xlabel(\"Velocity m/s)\")\n", "plt.ylabel(\"Number of Occurences\")\n", @@ -1283,7 +18261,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "metadata": { "cellView": "both", "colab": { @@ -1293,7 +18271,1526 @@ "id": "DZRrk_bIr3iG", "outputId": "b4a5a583-7f53-473a-bec2-2636cdf28a7c" }, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\GiovaniCeotto\\AppData\\Local\\Temp\\ipykernel_6612\\290763576.py:6: DeprecationWarning: Starting with ImageIO v3 the behavior of this function will switch to that of iio.v3.imread. To keep the current behavior (and make this warning disappear) use `import imageio.v2 as imageio` or call `imageio.v2.imread` directly.\n", + " img = imread(\"dispersion_analysis_inputs/Valetudo_basemap_final.jpg\")\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2023-11-06T01:00:26.862710\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.5.1, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Import libraries\n", "from imageio import imread\n", @@ -1303,10 +19800,10 @@ "img = imread(\"dispersion_analysis_inputs/Valetudo_basemap_final.jpg\")\n", "\n", "# Retrieve dispersion data por apogee and impact XY position\n", - "apogeeX = np.array(dispersion_results[\"apogeeX\"])\n", - "apogeeY = np.array(dispersion_results[\"apogeeY\"])\n", - "impactX = np.array(dispersion_results[\"impactX\"])\n", - "impactY = np.array(dispersion_results[\"impactY\"])\n", + "apogee_x = np.array(dispersion_results[\"apogee_x\"])\n", + "apogee_y = np.array(dispersion_results[\"apogee_y\"])\n", + "impact_x = np.array(dispersion_results[\"impact_x\"])\n", + "impact_y = np.array(dispersion_results[\"impact_y\"])\n", "\n", "# Define function to calculate eigen values\n", "def eigsorted(cov):\n", @@ -1320,7 +19817,7 @@ "ax = plt.subplot(111)\n", "\n", "# Calculate error ellipses for impact\n", - "impactCov = np.cov(impactX, impactY)\n", + "impactCov = np.cov(impact_x, impact_y)\n", "impactVals, impactVecs = eigsorted(impactCov)\n", "impactTheta = np.degrees(np.arctan2(*impactVecs[:, 0][::-1]))\n", "impactW, impactH = 2 * np.sqrt(impactVals)\n", @@ -1329,7 +19826,7 @@ "impact_ellipses = []\n", "for j in [1, 2, 3]:\n", " impactEll = Ellipse(\n", - " xy=(np.mean(impactX), np.mean(impactY)),\n", + " xy=(np.mean(impact_x), np.mean(impact_y)),\n", " width=impactW * j,\n", " height=impactH * j,\n", " angle=impactTheta,\n", @@ -1340,7 +19837,7 @@ " ax.add_artist(impactEll)\n", "\n", "# Calculate error ellipses for apogee\n", - "apogeeCov = np.cov(apogeeX, apogeeY)\n", + "apogeeCov = np.cov(apogee_x, apogee_y)\n", "apogeeVals, apogeeVecs = eigsorted(apogeeCov)\n", "apogeeTheta = np.degrees(np.arctan2(*apogeeVecs[:, 0][::-1]))\n", "apogeeW, apogeeH = 2 * np.sqrt(apogeeVals)\n", @@ -1348,7 +19845,7 @@ "# Draw error ellipses for apogee\n", "for j in [1, 2, 3]:\n", " apogeeEll = Ellipse(\n", - " xy=(np.mean(apogeeX), np.mean(apogeeY)),\n", + " xy=(np.mean(apogee_x), np.mean(apogee_y)),\n", " width=apogeeW * j,\n", " height=apogeeH * j,\n", " angle=apogeeTheta,\n", @@ -1360,10 +19857,10 @@ "# Draw launch point\n", "plt.scatter(0, 0, s=30, marker=\"*\", color=\"black\", label=\"Launch Point\")\n", "# Draw apogee points\n", - "plt.scatter(apogeeX, apogeeY, s=5, marker=\"^\", color=\"green\", label=\"Simulated Apogee\")\n", + "plt.scatter(apogee_x, apogee_y, s=5, marker=\"^\", color=\"green\", label=\"Simulated Apogee\")\n", "# Draw impact points\n", "plt.scatter(\n", - " impactX, impactY, s=5, marker=\"v\", color=\"blue\", label=\"Simulated Landing Point\"\n", + " impact_x, impact_y, s=5, marker=\"v\", color=\"blue\", label=\"Simulated Landing Point\"\n", ")\n", "# Draw real landing point\n", "plt.scatter(\n", @@ -1424,8 +19921,16 @@ "name": "python3" }, "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", "name": "python", - "version": "3.10.5" + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.0" }, "vscode": { "interpreter": {