Asteroids entering Earth’s atmosphere are subject to extreme drag forces that decelerate, heat and disrupt the space rocks. The fate of an asteroid is a complex function of its initial mass, speed, trajectory angle and internal strength.
Asteroids 10-100 m in diameter can penetrate deep into Earth’s atmosphere and disrupt catastrophically, generating an atmospheric disturbance (airburst) that can cause damage on the ground. Such an event occurred over the city of Chelyabinsk in Russia, in 2013, releasing energy equivalent to about 520 kilotons of TNT (1 kt TNT is equivalent to 4.184e12 J), and injuring thousands of people (Popova et al., 2013; Brown et al., 2013). An even larger event occurred over Tunguska, an unpopulated area in Siberia, in 1908.
This tool predicts the fate of asteroids entering Earth’s atmosphere for the purposes of hazard assessment.
To install the project, simply run pip on a virtual machine that has Git installed on it:
pip install [email protected]:acse-2019/acse-4-armageddon-gaspra.git
- Calculate velocity, mass , angle, distance, radius, time, and kinectic energy along with its derivation to altitude each time step with Forward Euler or Runge Kutta 4th order.
- Make a simple conclusion to the meteor based on if condition whether it will be an airburst, crating, or combination from airburst and crating.
- Make velocity profile based on altitude derived analytically and compared with numerical solution.
There are two ways to determine all the desired outputs, which are using :
-
sing impact function. It takes Meteorite initial condition and will run all the calculation until t = 2000 s or when the meteor has reached the ground or mass has been lost. It will return one data frame containing velocity, mass, angle, altitude, distance, radius, time, and dedz. And also simple conclusion about what happened with the meteor.
-
Using three function subsequently.
2.1 First use solve_atmospheric_entry function which gives us a date frame containing velocity, mass, angle, altitude, distance, radius, time for each time step from given initial condition.
2.2 Second, use calculate_energy from solve_atmospheric_entry funciton result and return additional one column in the data frame containing dedz
2.3 Last, use analyse_outcome to evaluate and make conclusion to the meteor.
The result from impact function will be similar with these three subsequent function
import armageddon
# We first create a Planet class called "earth",
# which contains all the constants, atmospheric density functions, etc.
earth = armageddon.Planet()
# Then run a simulation impact of this planet with parameters:
# radius, velocity, density, strength, angle
result, outcome = earth.impact(10, 20000, 3000, 10e5, 45)
# print and display results
print(result)
print(outcome)
earth.plot_analysis(result)
- User can vary the parameters e.g radius, angle, strenght, velocity and mass according to the calculated probability distribution by solver and return burst altitude with varied parameters
To get desired result, you have to specify radius, angle, strength, velocity, and density with random distribution. and the result will be in pandas data frame containing all the inputs with additional one column for burst altitude.
The code includes Sphinx documentation. On systems with Sphinx installed, this can be built by running
python -m sphinx docs html
then viewing the index.html
file in the html
directory in your browser.
For systems with LaTeX installed, a manual pdf can be generated by running
python -m sphinx -b latex docs latex
Then following the instructions to process the Armageddon.tex
file in the latex
directory in your browser.
The tool includes several tests, which you can use to checki its operation on your system. With pytest installed, these can be run with
python -m pytest armageddon