I'm interested in all the ways computer programing is able to facilitate in-depth learning of a topic. A project that changed the way I look at programing is a crater saturation equilibrium counter I developed in one of my astrophysics classes. I was really able to get a feel for how we determine the age of planetary bodies by counting craters. I ran an experiment for a certain amount of time, and compared that to the number of craters per unit area.  

            The purpose of this experiment is to carry out a numerical simulation of the cratering process on a planetary surface. This simulation will verify the occurrence of saturation equilibrium: that the density of craters reaches a maximum and remains constant.

            This project is to model the lunar crater saturation equilibrium, which is defined as a condition when no further proportionate increase in crater density occurs as input cratering increases. Crater saturation equilibrium refers to the condition in which new impacts, on average, do no proportionately change the general crater number density (craters/km^2) on a surface because craters are packed tightly enough that old craters are destroyed by the creation of new ones. This computer model demonstrates this scenario by using a Monte Carlo simulation. We find that an identifiable saturation equilibrium occurs close to a level previously identifies for this state (Hartmann, 1984), typically fluctuating around a crater density from ~0.4 to 2 times that level. Flooding, basin ejecta blankets, and other obliterative effects can introduce structure and oscillations within this range; even after saturation equilibrium is achieved. This data can tell us more about satellite and planet surface evolution and impactor populations, which were predicated on the assumed absence of saturation equilibrium. The below simulation begins at time zero with zero impact craters, so we can observe the pure results of the Monte Carlo simulation. We should see a tapering off of the slope and it should begin to level off at an average of 70 craters per each ten square kilometers. Below you will find several figures including Python 2.7 plots, a referenced image, and Excel spreadsheet table. The last pages of this report are the code for my program.

























Fig. 1) crater density on this hypothetical surface reaches equilibrium at around 400,000 years after the clock starts








Fig. 2) slope of the line decreases and levels off beginning around 300,000 years


         Through this project, I have learned that crater saturation equilibrium does occur in our solar system. The impacts on average do not proportionately change the general crater number density (craters/km^2) on a surface because craters are packed tightly enough that old craters are destroyed by the creation of new ones. We need to know this information about a planetary body in order to find out more about the body’s history and how old it is today. The line of best fit in figure 2 should be fit to a different region of the graph, but I couldn’t get the code right. The line should be fixed on the region above 60 craters per 10km^2 and 300,000 years in order to clearly show that the slope was leveling off over time. Since my function for creating a best-fit line used the early data with the steeper slope, the average looks linear and positive but should in fact be logarithmic where the end slope is zero. The observation of a near-zero slope at the end of the plot demonstrates the effect of crater saturation equilibrium.

         The following figure, fig. 3), is from a study by Hartmann, William K., and Robert W. Gaskell. Their simulation was somewhat more complex than my simulation, and used different starting conditions, but used roughly the same surface area (500 x 500 km). You can see that some new craters cover old craters, and some obliterate more than one small, older crater. The results of their study are similar to mine; I included this image from their report to have an interesting visual aid:

Fig. 3) nine stages of primary crater accumulation for an imaginary surface, 522 x 522 km




Hartmann, William K., and Robert W. Gaskell. "Planetary Cratering 2: Studies of Saturation Equilibrium." Meteoritics & Planetary Science 32.1 (1997): 109-21.   Web. 16 Nov. 2015.

Fig. 4) first page of my excel spreadsheet (consecutive pages were far too many to include in this report) demonstrates that I printed out the time against number of craters in a table and compared the excel plot to those I made in Python.


Download the free software and give this a try for yourself! You can copy and paste the code below, and modify the initial conditions to experiment your way! And as you saw in Fig. 4, this experiment can also be conducted in Microsoft Excel.

I'd love to hear from you: