Imagine a climate solution model, originally constructed as spreadsheet, which grew in success and in scale such the sheer number of files and toil in keeping it all working has become a significant burden. We will discuss the process of re-implementing this model in Python, and the attributes that make JupyterHub well suited for the task.
This talk covers the two year adventure of a Python re-implementation of ~100 climate solution models originally created in Microsoft Excel. The models show how anthropogenic climate change can be substantially reversed, by reducing and sequestering a trillion tons of CO2-equivalent greenhouse gas emissions through a number of solutions. The Excel versions of these models were used in the publication of the Project Drawdown book in 2017 and The Drawdown Review in 2020.
Though Excel was a fine tool for the time, the needs of the project have grown. Excel worked well when there was one Excel file, and when there were five files, and somewhat less well when there were 30, and then 50, and now at 100 files the sheer degree of toil trying to manually update all of them is daunting. Researchers strongly avoid doing things which would require them to open the other 99 files.
Nonetheless the model methodology in the Excel files is well structured, with separate sheets for major aspects of the model. The effort to reimplement the model in Python began in 9/2018 at https://github.com/ProjectDrawdown/solutions/ and was able to keep the overall structure. Roughly, each sheet in the original spreadsheet has been reimplemented as a Python class performing the same purpose. The Python implementation also brings the modern software infrastructure: extensive tests, distributed versioning, good web support, metrics about the codebase, etc.
An outline of the talk:
Model and methodology
Why Jupyter and JupyterHub?
Workflow
Operations
Testing