Skip to content

The mission of Project Drawdown is to help the world reach “Drawdown”— the point in the future when levels of greenhouse gases in the atmosphere stop climbing and start to steadily decline, thereby stopping catastrophic climate change — as quickly, safely, and equitably as possible.

License

Notifications You must be signed in to change notification settings

skyballin/solutions

 
 

Repository files navigation

Project Drawdown Model Engine

Project Drawdown is the most comprehensive plan yet published for how to solve Global Warming. Project Drawdown entered the climate conversation with the publication of the 2017 book. With The Drawdown Review in 2020, the project continues its mission to inspire and communicate solutions.

The Drawdown solution models are, at their core, economic models which estimate the total global and regional demand for each solution and the percentage of that demand each year which might adopt the Drawdown solution. The monetary and emissions impacts of that adoption are then calculated. The framework and methodology for the model was developed by a core research team at Project Drawdown with senior research fellows and visiting researchers from each of the relevant solution domains, over the course of a number of years. The models were originally constructed in some ~80 Excel files.

This repository is a conversion of the original Excel models into python. This includes both the analytical parts of the model, and the summary data used to produce key results. Our goal is to enable:

  • ongoing research by Project Drawdown and other researchers
  • use of this research in other projects, including a broader audience of policy makers, business leaders, and other interested parties. Future updates to the research will be published in this repository.

Whilst this repo covers the model and analytics in the form of a python library, our sister project develops that into a server-based solution and a researcher-aimed UI.

Status

Conversion Status:

  • Most of the solutions (technologies) have been converted. The remaining include some technologies (such as those related to Food systems and Oceans) that use different methodology.
  • New solutions are converted as they become released from Project Drawdown research.
  • Almost all of the "core calculations" (which generate the main results) have been completed.
  • Most of the "secondary calculations" (which are used to do solution-specific generation of, e.g. emissions factors or adoption estimates) are not yet implemented.
  • The overall integration between multiple solution models (used to model, for example, the impact of adopton of one solution on demand for another) has not yet been implemented.

Other work in progress:

  • Continuing work to make the interfaces more accessible to folks outside the Project Drawdown community, both in terms of code improvements and documentation.
  • Additional and upgraded analytics for some areas (e.g. greenhouse-gas calculation updates)

For a more detailed list, see the Issues List.


Using the code

Getting the source code

You can create your own fork of this repository using the Fork button at the top of the screen. From there, follow the instructions to download your fork to your computer.

If you are going to change the code, we recommend immediately making your own branch:

      $ git checkout -b <your-branch-name-here>

Hackathon attendees: we will be working from branch hackathon, so your steps would look like:

      $ git checkout hackathon
      $ git checkout -b <your branch-name-here>

Development Environment

We recommend using miniconda3 to create a development environment for this project. Once miniconda is installed, the following command will create a development environment named pd-dev that includes this code, all the dependencies it requires, and some useful tools such as pytest and Jupyter Notebook

      $ conda env create -f environment.yml
      $ conda activate pd-dev

A good way to explore the code is to start jupyter notebook

      $ jupyter notebook

then click on Start_Here.ipynb to try out a few things. Also, be sure to check out some of the documentation in the Documentation folder.

Minimal Environment

A more minimal environment is available for deployment using pip. This installs this project and its depencies in your current python environment, but no extra tools:

      $ pip install -r requirements.txt

(Only recent versions of python3 are supported.)

Using Project Drawdown Solutions as a package

If you would like to use this project as a dependency in your code, you can do so by including the following line in your requirements.txt file:

      git+git://github.com/ProjectDrawdown/solutions@develop

License

The python code for the model engine is licensed under the GNU Affero General Public license and subject to the license terms in the LICENSE file found in the top-level directory of this distribution and at https://github.com/ProjectDrawdown/solutions. No part of this Project, including this file, may be copied, modified, propagated, or distributed except according to the terms contained in the LICENSE file.

Data supplied from Project Drawdown (mostly in the form of CSV files) is licensed under the CC-BY-NC-2.0 license for non-commercial use. The code for the model can be used (under the terms of the AGPL) to process whatever data the user wishes under whatever license the data carries. The data supplied for the Project Drawdown solutions is CC-BY-NC-2.0.

Contributing

We would love to have your help. Please see CONTRIBUTING.md for guidelines for contributing to this project.

Acknowledgements

Many thanks to the contributors of the <code>earth hackathon held at the Internet Archive on Sept. 5, 6, and 7 of 2018 which began this project. They are: Owen Barton, Robert L. Read, Denton Gentry, Henry Poole, Greg Elin, Marc Jones, and Stephanie Liu, in addition to Project Drawdown scientists and volunteers, Ryan Allard, Catherine Foster, Chad Frischmann, Kevin Bayuk, and Nick Peters.

Huge thanks to Beni Bienz of The Climate Foundation for his work in implementing a substantial portion of the original system, and even huger thanks to Denton Gentry for the majority of the subsequent development.

Contact

Denise Draper (draperd@acm.org) is currently the technical point of contact for this project.

About

The mission of Project Drawdown is to help the world reach “Drawdown”— the point in the future when levels of greenhouse gases in the atmosphere stop climbing and start to steadily decline, thereby stopping catastrophic climate change — as quickly, safely, and equitably as possible.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 93.4%
  • Visual Basic .NET 3.5%
  • Jupyter Notebook 2.8%
  • Other 0.3%