Aysha Rahman

A Reflection on Trees, Science, and Simulations


This post mentions MLOs and SLOs, which are described here

In the spring semester of my junior year at Agnes Scott College, I took Physics 420, the physics senior seminar class. We took on a few different tasks in this class, but the main one was our semester-long research project. We submitted a proposal, wrote up an abstract to send to SpARC (the Spring Annual Research Conference at the college), did the project, and presented at SpARC. My project was to create a simulation of light passing through a randomly branching tree.

Initially, I had had a difficult time picking a topic. After trying a few different ones, I settled on my third option, which was the simulation [MLO 3, SLO 10]. The whole idea came about when my major advisor (and my advisor for this project), Dr. Amy Lovell, was talking to the arborist at school about how a bare, leafless tree was blocking a surprising amount of light from the solar panels on the roof of the observatory. This inspired my research question: how much light does a dormant tree block in the winter months? Of course, in the spring and summer, when the trees are fully decked out in leaves, any solar panels in its shadow are more or less doomed to a lightless several months. But in the winter months, when there are no leaves to get in the way, how much would this tree affect solar energy input? To answer this question, I took to programming a simulation. The following is the abstract I submitted to SpARC:


“Solar panels in urban areas or in home and business settings are often surrounded by trees so that sunlight is blocked at certain angles during the day. This greatly reduces the output energy of the solar panels. To assess the attenuation of light through a dormant tree, Monte Carlo simulations of a randomly branching tree are run. Tree branching is simulated under the following assumptions: that the tree branches in ten iterations, that it branches into two each time, that each new branch is a fraction of the length of the previous one, that the total thickness or volume of all branches in an iteration is equal to the thickness of the trunk, and that the angle of branching is no more than 90 degrees. After simulating the structure of the tree, a path of sunlight is integrated through the tree’s branches to determine the fraction of light blocked for a given range of angles.”

I thought this was a really interesting project to take on, and I would be programming in C, which I had not previously done; at this point, I have only taken one formal programming class (in Java), and I have audited another (in Python). I was excited to learn a new skill, and specifically a new programming language. I found that learning the syntax was the easy part; it was quite similar to Java in a lot of ways, and besides that I could easily look up what I needed to if I got stuck. The real challenge was in designing the program itself. I listed all of my assumptions in the abstract–most I deduced through simply staring at a tree for long enough and trying to simplify what I saw while trying to keep it realistic. While these assumptions were meant to be simplifying, it turned out that programming the geometry of the tree was much more challenging than I had expected it to be, and it ended up taking the entire semester to figure it out. This meant that I never actually got to finish the project; the first half was to figure out the geometry of the randomly branching tree that the program would generate, but the second half was to integrate a path of light through the tree to see how much light was attenuated in the process, and I missed out on the entire second half. While I have had some experience in programming, this was my first bigger, higher-level, more complicated programming project, and I realized it took a lot more time and effort and troubleshooting than I had anticipated. It felt a little bit like failing, but I think I learned a lot from this experience. First, I picked up a new programming language, which is valuable enough on its own. Second, I learned that science and research do not always go smoothly or to plan. Complications and setbacks happen, and that is okay, because those setbacks can be sources of learning. There were issues with the geometry, but also with the machines I programmed with, so it definitely tested my general computer skills. I also learned a lot about three-dimensional geometry. Despite the issues, I was able to present my work orally at a student research conference [SLO 4, MLO 7], and it was a good experience for me. 

Though this project remains unfinished, I do hope to go back to it. I can learn from my mistakes and improve on my methods [SLO 14], and I think it will be easier to plan ahead, since I understand better the time it might take to handle the geometries as well as computer issues I will inevitably encounter. I might further simplify my assumptions, too, as I realize they may have been a little too ambitious to start with, and work my way into more complicated models after successfully simulating the simpler ones. And I still believe that this is an interesting research question; how much energy is the school missing out on because of a singular, leafless tree? Hopefully, soon, we shall see.