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 module using pip, please run
pip install git+https://github.com/acse-2019/acse-4-armageddon-mathilde.git
The module can then be imported in python with
>>> import armageddon
The core functionality is to simulate an asteroid entering the atmosphere under specified initial conditions. This functionality can be called in the following example format:
>>> planet = armageddon.Planet(atmos_func='exponential')
>>> results, outcomes = planet.impact(radius=10,velocity=2.1e4,density=3e3,strength=1e5,angle=45)
Where the specified parameters can be changed as desired. This outputs a pandas DataFrame of the parameters and loss of kinetic energy at each timestep, and a dictionary containing an analysis of the scenario.
Please refer to the documentation in the index.html
file under the docs_build
directory for more information about choosing input parameters.
After running the simulation, some basic plots can be generated using:
>>> planet.plot_results(results)
In addition to the core functionality, it is possible to perform an ensemble of simulations to vary specified input parameters according to their respective probability distributions and find the distribution of corresponding burst altitudes. This can be done in the following format:
>>> planet = armageddon.Planet(atmos_func='exponential')
>>> fiducial_impact = {'radius': 10.0,
'angle': 45.0,
'strength': 100000.0,
'velocity': 21000.0,
'density': 3000.0}
>>> ensemble = armageddon.ensemble.solve_ensemble(planet,fiducial_impact,variables=[],rmin=8,rmax=12, N=200)
Where the parameters and fiducial values can be specified, as well as the input variables to be varied. For more information regarding the use of this functionality, please refer to the documentation.
After running the ensemble, a plot of the resultant probability distribution for burst altitude can be generated using:
>>> armageddon.ensemble.plot_burst_altitude(ensemble)
The code includes Sphinx documentation. On systems with Sphinx installed, this can be built by running
python -m sphinx docs docs_build
then viewing the index.html
file in the docs_build
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 a fully automated testing suite, which you can use to check its operation on your system. With pytest installed, these can be run with
python -m pytest armageddon
This software is published under the MIT license.
Brown, P. G., Assink, J. D., Astiz, L., Blaauw, R., Boslough, M. B., Borovička, J., ... & Cooke, W. D. (2013). A 500-kiloton airburst over Chelyabinsk and an enhanced hazard from small impactors. Nature, 503(7475), 238.
Popova, O. P., Jenniskens, P., Emel’yanenko, V., Kartashova, A., Biryukov, E., Khaibrakhmanov, S., ... & Badyukov, D. D. (2013). Chelyabinsk airburst, damage assessment, meteorite recovery, and characterization. Science, 342(6162), 1069-1073.