State of BioSNICAR 2024
BioSNICAR is a numerical model that simulates how sunlight interacts with snow and ice. What makes BioSNICAR special is that it is very flexible to a wide range of scenarios (lots of different impurities and ice configurations) and it’s designed to be user and developer friendly.
The project was borne from my own frustration at failing to find open source code for the canonical radiative transfer models that were cited in a lot of cryosphere literature.
Access to source code and documentation often required direct access to some individual human who held the bulk of the knowledge of how to run the software in their heads, and therefore access to the code was really limited to small communities, even if the source code was technically open (which was rare). BioSNICAR is my attempt to solve that problem - it’s open, thoroughly documented and made accessible through a web app as well as user-frendly Python code.
For a few years, I was the only user of BioSNICAR, but as the project has matured, so its audience has grown. There are now several groups using BioSNICAR to support academic work in the cryosphere. The majority of the development work on BioSNICAR itself this year has been done as part of Lou Chevrollier’s PhD project which I had the pleasure of supervising.
I’ve been delighted to see novel uses and applications built on top of BioSNICAR. It’s especially been satisfying to see some older projects of mine (e.g. a deep learning emulator for BioSNICAR) being taken on by other researchers and made research-grade.
Model inversion has also been a strong emerging theme, which is something I engaged heavily with in the past and have loved seeing younger researchers pick this up with fresh eyes!
The bottom line is that BioSNICAR has never been more useful and useable!
Features
There were several small fixes and features that extend BioSNICAR’s functionality - many were very low level implementation details, alternative solvers and ice optical property datasets etc, but some are more substantial and worth digging into here, namely the new optical property datasets and the inclusion of liquid water.
New optical properties
This year several new optical property datasets were added to BioSNICAR. This includes new empirically measured optical properties for glacier algae, snow algae, Greenland ablation zone mineral dusts and semi-empirical optical properties for cryoconite. This is a big deal because the optical properties of these light absorbing impurities have been relatively crudely incorporated before now - originally I made an initial attempt to incorporate them by gathering optical properties for individual pigments from the literature and mixing them according to pigment concentration measurements made for snow and glacier algae. The problem with this approach was that it only accounts for absorption by the pigments and not the various optical effects of packaging those pigments into a real cell. In Chevrollier et al (2023) the optical properties of glacier algae and snow algae were directly measured and built into BioSNICAR. Later, Chevrollier et al (2024, not yet published) added dirct measurements of mineral dusts sampled at several sites across the Greenland Ice Sheet and also estimated the optical properties of cryocontie by mixing mineral optical properties with those for varying amounts of humic substances. Now there’s a much more reliable set of optical properties for important cryosphere light absorbing impurities.
BioSNICAR simulations with snow algae (L) and ice algae (R) cells in a range of concentrations
Liquid water
Liquid water has been incorporated into BioSNICAR before, using an on-the-fly Mie calculator to generate optical properties for ice grains with a liquid water coating at run time. However, this was slow and coated grains is not the only way to simulate interstitial water in the ice matrix. Therefore, liquid water was incorporated into BioSNICAR in a more efficient way, increasing the effective radius of ice grains to simulate the accumulation of meltwater in air spaces, simulating ice grains in a bulk medium of water instead of air in some layers in the ice column, or by incorporating water spheres alonside the ice grains. These methods were shown to simulate meltwater accumulation in the porous ice crust very accurately.
Applications
Deep learning
I was very excited to see BioSNICAR emulated using a neural network. The reason this is useful is that BioSNICAR itself is relatively slow - maybe not noticeably when you are running a few spectra, but for applying to very large satellite multispectral imagery or climate models where you might need to do millions of BioSNCAR runs per pixel or per timestep. BioSNICAR also has a large data repository associated with it that has to be stored alongside the source code. Not only is this a point of friction for users, it’s also not very green, as the data has to be stored by all users of the full model, which has a carbon cost attached. The emulator circumvents these issues by reducing the entire model, including the source code and data, into a small neural net and set of weights. This can be invoked in many different programming languages and costs only a few MB of storage, and it creates spectra almost indistinguishable from the full model for a given input configuration. This really opens up a lot of use cases for BioSNICAR and creates a low-carbon way to use it.
The emulator performance measured against the full BioSNICAR model, from Chevrollier et al 2024
The catch is that the emulator has a smaller parameter space compared to the full model. To reduce the training time and model size, the emulator was restricted to a subset of the total parameter set available in the full model. This means that for some power-users or users with some specific niche use case, the full model might still be required.
Model inversions
There have been several attempts to invert BioSNICAR, starting with my own inversion based on a large lookup table that retrieved best matching spectra from Sentinel-2 images. However, I never found a satisfactory solution to the “many-to-one” problem, and got distracted working on other things. Then, I got the opportunity to supervise two PhD students who were keen to pick the workup again.
The first inversion was a direct inversion of the neural network emulator. Instead of providing config and receiving spectra, we provide the model with a spectrum and receive the config that generates the closest matching spectrum. This was applied to multispectral imagery from snow patches with algal blooms, and was found to perform very well.
BioSNICAR emulator spectra and config with the real measured spectra it was supposed to recreate, for snow with algal blooms, from Chevrollier et al 2024
Later, BioSNICAR was inverted using a new lookup table and applied to the Greenland ablation zone. This was more performant than the emulator. This time, the inversion was powered by the latest version of BioSNICAR with the empirically measured optical properties and latest features for ice physical configuration, and included impurities including mineral dusts, glacier algae and cryoconite. The results told a very interesting story, which will be published soon!
Papers
BioSNICAR has been used to support several publications in the last couple of years. Some papers have detailed the process of updating and validating BioSNICAR, while others have applied it to research problems in the cryosphere.
Some examples include:
- Chevrollier et al 2022 who added empirical algal optical properties to BiOSNICAR and validated simulations against field spectroscopic measurements.
- Chevrollier et al 2024 who trained the BiOSNICAR emulator and inverted it to quantify the relative impacts of various light absorbing impurities in snow and ice.
- Chevrollier et al 2024 who used BioSNICAR inversions to quantify snow algal blooms in Norway
- Traversa and Di Mauro (2024) who used BioSNICAR to assess the radiative forcing in the weathered ice crust in Antarctica.
- Bohn 2021 who used BioSNICAR to power an optimal estimation algorithm for retrieving surface and atmospheric properties from remote sensing data.
- Williamson et al 2020 who used BiOSNICAR to quantify algal absortion on the Greenland Ice Sheet.
- Di Mauro et al 2024 who used BiOSNICAR to quantify the combined effects of dusts and snow algae on snowfields
What’s next?
I am keen to pick up a few loose ends including using BioSNICAR to drive a radiative transfer model for cryoconite holes, experiment more with the emulator and possibly create a CLI. I’m also intrigued to do a study on the carbon efficiency of the emulator compared to the full model, taking the training carbon emissions into account. I’m mostly hopeful that others will continue to innovate on top of BioSNICAR and maybe some good ideas can be upstreamed into BioSNICAR source code. I started a discussion board on the BioSNICAR Github and would love to see some activity there. I’m keen to keep adding to the list of publications that have used BioSNICAR!