Senior Thesis: Part One
(Approx. 3 min read)
Note: This is a living document, and I will edit it as things change.
This article discusses the first part of my senior thesis, namely the programming and simulation-related components. When I move into the second phase of writing the paper and iteratively refining the simulation, I will split that off into its own article.
I’ve also written this as a plain language introduction to the problem that my senior thesis is trying to solve (both for myself to keep my eyes on the higher-level goals at hand and for those unfamiliar with this area of research). For a more technical explanation, stay tuned for the inevitable final paper, which you will find along with simulator code at this page.
The Melt-Freeze Problem
Warming global climate will lead to a warming Arctic, which will result in longer ice-free summers. This will have negative effects on the yearly sea ice cycle: higher summer ocean temperatures will result in delayed freeze-up, which will result in shorter winter ice growth, which leads to thinner sea ice in the spring, completing the loop. Existing work has found a strong correlation between the dates of melt-out to freeze-up, which suggests this cycle is correct, but the link between freeze-up dates to melt-out is not as well understood1. The extent to which this feedback impacts future ice formation and the spatial patterns of drifting ice along this cycle will ultimately determine the impacts of climate change on Arctic sea ice loss.
Our lab’s previous work on this research investigated the specific timing in dates over general areas. I seek to extend this research in my thesis by looking at how sea ice moves, so we can look into the spatial trends relating freeze-up and melt-out dates to see how those are related. It would also be nice to have a general Lagrangian buoy simulator program for sea-ice related work; once that is done, we can track any number of variables with realistic movement (based off of existing sea ice reanalysis vector movement data).
Current Work
I am currently building the aforementioned simulator from scratch, following some failed attempts to modify CICE’s motion logic to fit the task. So far, it has the following features:
BuoyTrajectoryandIceTrajectoryare implemented (partially)- Fast parallel simulator runner with no-copy file I/O
- Arbitrary simulation date range and tick length
- Object-oriented design
- Export to GeoJSON, CSV, text, and soon netCDF
- Quality logging and debugging experience
- Relatively low memory overhead per simulation
It is still missing the following parts:
- Re-implementation of the core math into a faster language (Fortran or Rust)
- Data collection of arbitrary climate variables
- End-to-end testing of scientifically important components for accuracy
- Complete automation of the plotting system (may use R for the plots; CartoPy leaves much to be desired in terms of ease of use)
- Better documentation
Of course, it also has a fair amount of bugs, but that is also a natural side effect of the complexity of the project (and the fact that it’s been in development for less than a month at the time of writing).
I have yet to finalize my literature review, and likely will not do so for some time, so this statement may be somewhat inaccurate. ↩︎