-
Notifications
You must be signed in to change notification settings - Fork 92
Home
Welcome to the New Project Drawdown Solutions Wiki!
We use this wiki to talk about current, recent and upcoming work. Our goal is to keep this page updated fairly frequently so that is is a reliable source of information about what is currently going on.
Last updated 8/1/2021
Our current focus is solidly on converting all the Excel to python. There are approximately two dozen new models that need to be converted. These divide into two categories:
- "Semi-Automated" conversions. These are models that are similar enough to previous models that we should be able to use our automated conversion tools. We are finding in practice that even in this case, there are enough glitches that it is not a trivial process and requires a lot of debugging. Some issues are local to the specific model, others reflect more general needs in the code (more on this below).
- "New" conversions. These are models that are not similar enough to use the existing automation. @glass-wing is working on converting all of the Ocean models together (see more about that below). There are also Plant-Rich Diet, Reduced Food Waste and HFC Replacement that will require custom work, and haven't been started yet.
The label Excel Import marks all these issues. There is also a spreadsheet that tracks the models and their current status.
Complicating this picture: there will be a new release of all the models relatively soon. The release should consist only of new scenarios and updated data, but...
One of the common areas of trouble we are finding is treatment of the "start year" or "base year" in the Adoption part of the model. The difficulty is that many of the Excel spreadsheets were individually modified to deal with changes to base year, and thus aren't consistent. Previously the automated conversion approach attempted to detect and respond to all these changes, but we think that approach is no longer sustainable. So we want to define a new standard behavior and enforce it, even if it means that some models have test failures when compared to the Excel. We will need to develop tools that will help us find where the failures are significant, and work with Project Drawdown to change the Excel in those cases.
Based on the difficulty of actually getting any of the new models across the finish line, we are going to take the approach of adding new models to the repo even when they are incomplete / not passing tests. That will make it easier for contributors to leverage what work has been done already without having to repeat it. You can help us with this by going through the model import process for any model that hasn't had this done yet.
Meanwhile, @glass-wing is taking an approach of crafting a new architecture on which to build all the solution models. Whereas the current code mirrors the structure of the Excel rather closely and is something of a "bottom-up" translation, this new architecture takes a more logical "top-down" approach. We are doing both of these approaches in tandem so that we can continue to make progress in converting models without having to solve all the architectural issues first. But our expectation is that in the long term, all models will eventually be migrated to the new architecture. In the medium term, when @glass-wing has the first Oceans models ready, we plan to host the two architectures side-by-side in the same code base. There will be a relatively narrow API over both of them that will enable our friends in the Researcher UI Project to interact with both types of models.
Also happening: Currently the models are static (effectively read-only). To support real-world use, we need the ability to create new scenarios dynamically and update some objects like VMAs. We need to do this to support the Researcher UI Project and also to support Integrations (see below).
This is still a little ways off, but of major import:
On top of the solution models there is a different layer of models called 'Integrations'. These are also currently implemented in Excel and and need to be converted to Python. Integrations are the process by which solution models interact with each other. It is how increased use of one technology affects demand for another (e.g. many technologies reduce electricity demand, which impacts the TAM for all electricity generation models). The integration models are much simpler than the technology models, but their use is more complex, so there will be some design required.
Our ambitious goal is that the current round of integrations that are happening are the last ones that will primarily be based in Excel. By next year, the process should be happening in the python code instead.
-
Week of July 26:
- Incorporated bug fixes from the hackathon.
- Added new conversion tools from work @ssmssam did at the hackathon
- Changed the test infrastructure to put the tests in the same directory as the solutions. If you are working on converting an Excel model, you need to change your
testdata
directory totests
and add the new test file (copy from any other solution directory and modify appropriately).
-
July Hackathon. The Project Drawdown Hackathon occurred in July, and helped us make progress on many models, and also uncovered and help us fix more than a few bugs.
There was history before this, but this is when we started keeping track of it.