Skip to content

Instantly share code, notes, and snippets.

@twolfson
Last active December 9, 2024 22:41
Show Gist options
  • Save twolfson/728ea57ea9aafcb731ab43fce52be711 to your computer and use it in GitHub Desktop.
Save twolfson/728ea57ea9aafcb731ab43fce52be711 to your computer and use it in GitHub Desktop.
Project Drawdown extraction, 2024-12-09
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "QXAjHYV4LL1D",
"outputId": "2cd7f0e8-0ad0-4dd5-ba73-b4588fa0b397"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Collecting requests-cache\n",
" Downloading requests_cache-1.2.1-py3-none-any.whl.metadata (9.9 kB)\n",
"Requirement already satisfied: attrs>=21.2 in /usr/local/lib/python3.10/dist-packages (from requests-cache) (24.2.0)\n",
"Collecting cattrs>=22.2 (from requests-cache)\n",
" Downloading cattrs-24.1.2-py3-none-any.whl.metadata (8.4 kB)\n",
"Requirement already satisfied: platformdirs>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests-cache) (4.3.6)\n",
"Requirement already satisfied: requests>=2.22 in /usr/local/lib/python3.10/dist-packages (from requests-cache) (2.32.3)\n",
"Collecting url-normalize>=1.4 (from requests-cache)\n",
" Downloading url_normalize-1.4.3-py2.py3-none-any.whl.metadata (3.1 kB)\n",
"Requirement already satisfied: urllib3>=1.25.5 in /usr/local/lib/python3.10/dist-packages (from requests-cache) (2.2.3)\n",
"Requirement already satisfied: exceptiongroup>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from cattrs>=22.2->requests-cache) (1.2.2)\n",
"Requirement already satisfied: typing-extensions!=4.6.3,>=4.1.0 in /usr/local/lib/python3.10/dist-packages (from cattrs>=22.2->requests-cache) (4.12.2)\n",
"Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.22->requests-cache) (3.4.0)\n",
"Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.22->requests-cache) (3.10)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests>=2.22->requests-cache) (2024.8.30)\n",
"Requirement already satisfied: six in /usr/local/lib/python3.10/dist-packages (from url-normalize>=1.4->requests-cache) (1.16.0)\n",
"Downloading requests_cache-1.2.1-py3-none-any.whl (61 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m61.4/61.4 kB\u001b[0m \u001b[31m4.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hDownloading cattrs-24.1.2-py3-none-any.whl (66 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m66.4/66.4 kB\u001b[0m \u001b[31m5.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hDownloading url_normalize-1.4.3-py2.py3-none-any.whl (6.8 kB)\n",
"Installing collected packages: url-normalize, cattrs, requests-cache\n",
"Successfully installed cattrs-24.1.2 requests-cache-1.2.1 url-normalize-1.4.3\n"
]
}
],
"source": [
"# Install our dependencies\n",
"!pip install requests-cache"
]
},
{
"cell_type": "code",
"source": [
"# Load our dependencies\n",
"import requests_cache\n",
"import pandas as pd\n",
"\n",
"# Create a cache store for our requests\n",
"session = requests_cache.CachedSession('project_drawdown_cache')\n",
"\n",
"# Load our table of solutions into pandas\n",
"DRAWDOWN_BASE_URL = \"https://drawdown.org\"\n",
"TABLE_OF_SOLUTIONS_URL = f\"{DRAWDOWN_BASE_URL}/solutions/table-of-solutions\"\n",
"table_of_solutions_res = session.get(TABLE_OF_SOLUTIONS_URL)\n",
"parsed_df_list = pd.read_html(table_of_solutions_res.content, extract_links=\"body\")\n",
"assert parsed_df_list, \"Received more than 1 dataframe, expected 1\"\n",
"solutions_df = parsed_df_list[0]\n",
"\n",
"# Remove last row which is totals\n",
"assert pd.isna(solutions_df.iloc[-1][\"Solution\"]), \"Expected last row to be total row\"\n",
"solutions_df = solutions_df[:-1]\n",
"assert not pd.isna(solutions_df.iloc[-1][\"Solution\"]), \"Expected new last row to normal\"\n",
"\n",
"# Clean up excess tuple data from `extract_links`\n",
"# DEV: We had the following, which worked but kept getting SettingWithCopyWarning, despite `loc` fix attempts\n",
"# solutions_df[\"URL\"] = solutions_df[\"Solution\"].apply(lambda link_tuple: link_tuple[1])\n",
"solutions_df = solutions_df.assign(url_path=solutions_df[\"Solution\"].apply(lambda link_tuple: link_tuple[1]))\n",
"for column in solutions_df.columns:\n",
" if column == \"url_path\":\n",
" continue\n",
" solutions_df[column] = solutions_df[column].apply(lambda link_tuple: link_tuple[0])\n",
"solutions_df"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 424
},
"id": "vnwRJoRhLfmZ",
"outputId": "6b14808a-8c42-48bb-c7b4-f97d00d15b02"
},
"execution_count": 99,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Solution Sector(s) Scenario 1 * \\\n",
"0 Abandoned Farmland Restoration Land Sinks 12.48 \n",
"1 Alternative Cement Industry 7.70 \n",
"2 Alternative Refrigerants Industry / Buildings 42.73 \n",
"3 Bamboo Production Land Sinks 7.70 \n",
"4 Bicycle Infrastructure Transportation 2.73 \n",
".. ... ... ... \n",
"88 Utility-Scale Energy Storage Electricity \n",
"89 Utility-Scale Solar Photovoltaics Electricity 40.83 \n",
"90 Walkable Cities Transportation 2.83 \n",
"91 Waste to Energy Electricity / Industry 6.27 \n",
"92 Water Distribution Efficiency Electricity 0.61 \n",
"\n",
" Scenario 2 * url_path \n",
"0 20.32 /solutions/abandoned-farmland-restoration \n",
"1 15.56 /solutions/alternative-cement \n",
"2 48.75 /solutions/alternative-refrigerants \n",
"3 19.60 /solutions/bamboo-production \n",
"4 4.63 /solutions/bicycle-infrastructure \n",
".. ... ... \n",
"88 /solutions/utility-scale-energy-storage \n",
"89 111.59 /solutions/utility-scale-solar-photovoltaics \n",
"90 3.51 /solutions/walkable-cities \n",
"91 5.24 /solutions/waste-to-energy \n",
"92 0.86 /solutions/water-distribution-efficiency \n",
"\n",
"[93 rows x 5 columns]"
],
"text/html": [
"\n",
" <div id=\"df-4de4f2f1-70b3-4075-8280-422e0b50e960\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Solution</th>\n",
" <th>Sector(s)</th>\n",
" <th>Scenario 1 *</th>\n",
" <th>Scenario 2 *</th>\n",
" <th>url_path</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Abandoned Farmland Restoration</td>\n",
" <td>Land Sinks</td>\n",
" <td>12.48</td>\n",
" <td>20.32</td>\n",
" <td>/solutions/abandoned-farmland-restoration</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Alternative Cement</td>\n",
" <td>Industry</td>\n",
" <td>7.70</td>\n",
" <td>15.56</td>\n",
" <td>/solutions/alternative-cement</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Alternative Refrigerants</td>\n",
" <td>Industry / Buildings</td>\n",
" <td>42.73</td>\n",
" <td>48.75</td>\n",
" <td>/solutions/alternative-refrigerants</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Bamboo Production</td>\n",
" <td>Land Sinks</td>\n",
" <td>7.70</td>\n",
" <td>19.60</td>\n",
" <td>/solutions/bamboo-production</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Bicycle Infrastructure</td>\n",
" <td>Transportation</td>\n",
" <td>2.73</td>\n",
" <td>4.63</td>\n",
" <td>/solutions/bicycle-infrastructure</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>88</th>\n",
" <td>Utility-Scale Energy Storage</td>\n",
" <td>Electricity</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td>/solutions/utility-scale-energy-storage</td>\n",
" </tr>\n",
" <tr>\n",
" <th>89</th>\n",
" <td>Utility-Scale Solar Photovoltaics</td>\n",
" <td>Electricity</td>\n",
" <td>40.83</td>\n",
" <td>111.59</td>\n",
" <td>/solutions/utility-scale-solar-photovoltaics</td>\n",
" </tr>\n",
" <tr>\n",
" <th>90</th>\n",
" <td>Walkable Cities</td>\n",
" <td>Transportation</td>\n",
" <td>2.83</td>\n",
" <td>3.51</td>\n",
" <td>/solutions/walkable-cities</td>\n",
" </tr>\n",
" <tr>\n",
" <th>91</th>\n",
" <td>Waste to Energy</td>\n",
" <td>Electricity / Industry</td>\n",
" <td>6.27</td>\n",
" <td>5.24</td>\n",
" <td>/solutions/waste-to-energy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>92</th>\n",
" <td>Water Distribution Efficiency</td>\n",
" <td>Electricity</td>\n",
" <td>0.61</td>\n",
" <td>0.86</td>\n",
" <td>/solutions/water-distribution-efficiency</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>93 rows × 5 columns</p>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-4de4f2f1-70b3-4075-8280-422e0b50e960')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-4de4f2f1-70b3-4075-8280-422e0b50e960 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-4de4f2f1-70b3-4075-8280-422e0b50e960');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-133d7545-e248-474f-8638-059696f1f282\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-133d7545-e248-474f-8638-059696f1f282')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-133d7545-e248-474f-8638-059696f1f282 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" <div id=\"id_1bd6b613-3d18-4485-9ab8-56d2306c456f\">\n",
" <style>\n",
" .colab-df-generate {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-generate:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
" <button class=\"colab-df-generate\" onclick=\"generateWithVariable('solutions_df')\"\n",
" title=\"Generate code using this dataframe.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
" </svg>\n",
" </button>\n",
" <script>\n",
" (() => {\n",
" const buttonEl =\n",
" document.querySelector('#id_1bd6b613-3d18-4485-9ab8-56d2306c456f button.colab-df-generate');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" buttonEl.onclick = () => {\n",
" google.colab.notebook.generateWithVariable('solutions_df');\n",
" }\n",
" })();\n",
" </script>\n",
" </div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "solutions_df",
"summary": "{\n \"name\": \"solutions_df\",\n \"rows\": 93,\n \"fields\": [\n {\n \"column\": \"Solution\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 93,\n \"samples\": [\n \"Improved Cattle Feed\",\n \"Efficient Aviation\",\n \"Multistrata Agroforestry\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Sector(s)\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 16,\n \"samples\": [\n \"Land Sinks\",\n \"Industry\",\n \"Buildings\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Scenario\\u00a01\\u00a0*\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 85,\n \"samples\": [\n \"15.03\",\n \"12.48\",\n \"15.12\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Scenario\\u00a02\\u00a0*\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 88,\n \"samples\": [\n \"13.73\",\n \"20.32\",\n \"3.25\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"url_path\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 93,\n \"samples\": [\n \"/solutions/improved-cattle-feed\",\n \"/solutions/efficient-aviation\",\n \"/solutions/multistrata-agroforestry\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
}
},
"metadata": {},
"execution_count": 99
}
]
},
{
"cell_type": "code",
"source": [
"# Load in our dependencies\n",
"from bs4 import BeautifulSoup\n",
"from decimal import Decimal\n",
"import re\n",
"\n",
"# Copy our original data to avoid writing to original\n",
"solutions_with_stats_df = solutions_df.copy()\n",
"\n",
"# Define common functions\n",
"def is_stat_range(value):\n",
" return isinstance(value, str) and \"to\" in value\n",
"\n",
"def parse_stat_range_into_parts(stat_range):\n",
" # Extract our values in the string range\n",
" stat_range_match = re.search(r\"^([-\\.\\d]+) to ([-\\.\\d]+)$\", stat_range)\n",
" assert stat_range_match, f\"Failed to match \\\"X to Y\\\" format: {stat_range}\"\n",
" # DEV: Be paranoid about using Decimal to avoid any floating point annoyances\n",
" stat_range_start = Decimal(stat_range_match[1])\n",
" stat_range_end = Decimal(stat_range_match[2])\n",
" return [stat_range_start, stat_range_end]\n",
"\n",
"# Load in additional stats/values from each page\n",
"for index, row in solutions_df.iterrows():\n",
" # Retrieve the detail page of our solution\n",
" # Example: https://drawdown.org/solutions/abandoned-farmland-restoration\n",
" solution_url = f\"{DRAWDOWN_BASE_URL}{row.url_path}\"\n",
" # print(f\"Retrieving {solution_url}\")\n",
" solution_res = session.get(solution_url)\n",
"\n",
" # Parse out the stats\n",
" # Example: <div class=\"stat\"><div class=\"stat-value\">12.48 to 20.32</div><div class=\"stat-unit\">Gigatons</div><div class=\"stat-label\">CO<sub>2</sub> Equivalent<br/>Reduced/Sequestered<br/>2020–2050</div></div>\n",
" # DEV: We replace `<br>` directly as `get_text` with `separator` captures `sub` as well, https://stackoverflow.com/a/55590217/1960509\n",
" solution_soup = BeautifulSoup(solution_res.text.replace(\"<br>\", \" \"), \"html.parser\")\n",
" stat_list = solution_soup.find_all(class_=\"stat\")\n",
" for stat in stat_list:\n",
" # Parse the HTML into text values\n",
" stat_label = stat.find(class_=\"stat-label\").get_text().strip()\n",
" stat_unit = stat.find(class_=\"stat-unit\").text.strip()\n",
" stat_value = stat.find(class_=\"stat-value\").text.strip()\n",
"\n",
" # If our results are in lowest common denominator unit, then do nothing\n",
" if stat_unit in [\"Gigatons\", \"Billion US$\"]:\n",
" pass\n",
" # Otherwise, if the results are a known denominator, convert it\n",
" elif stat_unit == \"Trillion US$\":\n",
" # Parse our stat value\n",
" if is_stat_range(stat_value):\n",
" stat_value_start, stat_value_end = parse_stat_range_into_parts(stat_value)\n",
" else:\n",
" raise RuntimeError(f\"Expected stat_value to be range format: {stat_value}\")\n",
"\n",
" # Replace our unit (and sanely keep same decimal places as original)\n",
" stat_unit = \"Billion US$\"\n",
" stat_value = f\"{stat_value_start * 1000} to {stat_value_end * 1000}\"\n",
" # Otherwise, error out\n",
" else:\n",
" raise RuntimeError(f\"Unexpected unit encountered: {stat_unit}\")\n",
"\n",
" # Capture our result into the dataframe\n",
" solutions_with_stats_df.loc[index, f\"{stat_label} ({stat_unit})\"] = stat_value\n",
"\n",
"# Add on convenience columns for each new stat column\n",
"for stat_column in solutions_with_stats_df.columns:\n",
" if stat_column in solutions_df.columns:\n",
" continue\n",
"\n",
" # DEV: There's a more efficient way to do this than double parsing, but this is \"good enough\" (aka fast enough)\n",
" solutions_with_stats_df = solutions_with_stats_df.assign(**{\n",
" f\"{stat_column} - Start\": solutions_with_stats_df[stat_column].apply(lambda stat_value: parse_stat_range_into_parts(stat_value)[0] if is_stat_range(stat_value) else stat_value),\n",
" f\"{stat_column} - End\": solutions_with_stats_df[stat_column].apply(lambda stat_value: parse_stat_range_into_parts(stat_value)[1] if is_stat_range(stat_value) else stat_value)\n",
" })\n",
"solutions_with_stats_df"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 945
},
"id": "XHVKEUO4THzN",
"outputId": "18ddb4e6-dcb2-482d-9e95-23d78ee9bdea"
},
"execution_count": 159,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Solution Sector(s) Scenario 1 * \\\n",
"0 Abandoned Farmland Restoration Land Sinks 12.48 \n",
"1 Alternative Cement Industry 7.70 \n",
"2 Alternative Refrigerants Industry / Buildings 42.73 \n",
"3 Bamboo Production Land Sinks 7.70 \n",
"4 Bicycle Infrastructure Transportation 2.73 \n",
".. ... ... ... \n",
"88 Utility-Scale Energy Storage Electricity \n",
"89 Utility-Scale Solar Photovoltaics Electricity 40.83 \n",
"90 Walkable Cities Transportation 2.83 \n",
"91 Waste to Energy Electricity / Industry 6.27 \n",
"92 Water Distribution Efficiency Electricity 0.61 \n",
"\n",
" Scenario 2 * url_path \\\n",
"0 20.32 /solutions/abandoned-farmland-restoration \n",
"1 15.56 /solutions/alternative-cement \n",
"2 48.75 /solutions/alternative-refrigerants \n",
"3 19.60 /solutions/bamboo-production \n",
"4 4.63 /solutions/bicycle-infrastructure \n",
".. ... ... \n",
"88 /solutions/utility-scale-energy-storage \n",
"89 111.59 /solutions/utility-scale-solar-photovoltaics \n",
"90 3.51 /solutions/walkable-cities \n",
"91 5.24 /solutions/waste-to-energy \n",
"92 0.86 /solutions/water-distribution-efficiency \n",
"\n",
" CO2 Equivalent Reduced/Sequestered 2020–2050 (Gigatons) \\\n",
"0 12.48 to 20.32 \n",
"1 7.70 to 15.56 \n",
"2 42.73 to 48.75 \n",
"3 7.70 to 19.60 \n",
"4 2.73 to 4.63 \n",
".. ... \n",
"88 NaN \n",
"89 40.83 to 111.59 \n",
"90 2.83 to 3.51 \n",
"91 6.27 to 5.24 \n",
"92 0.61 to 0.86 \n",
"\n",
" Net First Cost To Implement (Billion US$) \\\n",
"0 98.16 to 159.91 \n",
"1 -61.38 \n",
"2 NaN \n",
"3 63.30 to 158.98 \n",
"4 -2420.00 to -3130.00 \n",
".. ... \n",
"88 NaN \n",
"89 -220.00 to -1340.00 \n",
"90 0.00 \n",
"91 224.81 to 156.08 \n",
"92 7.87 to 10.96 \n",
"\n",
" Lifetime Net Operational Savings (Billion US$) \\\n",
"0 -3240.00 to -5270.00 \n",
"1 NaN \n",
"2 NaN \n",
"3 -1330.00 to -3320.00 \n",
"4 5910.00 to 8450.00 \n",
".. ... \n",
"88 NaN \n",
"89 12520.00 to 25560.00 \n",
"90 3180.00 to 3940.00 \n",
"91 -79.08 to -10.32 \n",
"92 1020.00 to 1450.00 \n",
"\n",
" Lifetime Net Profit (Billion US$) \\\n",
"0 2660.00 to 4340.00 \n",
"1 NaN \n",
"2 NaN \n",
"3 4000.00 to 10000.00 \n",
"4 NaN \n",
".. ... \n",
"88 NaN \n",
"89 NaN \n",
"90 NaN \n",
"91 NaN \n",
"92 NaN \n",
"\n",
" CO2 Equivalent Reduced/Sequestered 2020–2050 (Gigatons) - Start \\\n",
"0 12.48 \n",
"1 7.70 \n",
"2 42.73 \n",
"3 7.70 \n",
"4 2.73 \n",
".. ... \n",
"88 NaN \n",
"89 40.83 \n",
"90 2.83 \n",
"91 6.27 \n",
"92 0.61 \n",
"\n",
" CO2 Equivalent Reduced/Sequestered 2020–2050 (Gigatons) - End \\\n",
"0 20.32 \n",
"1 15.56 \n",
"2 48.75 \n",
"3 19.60 \n",
"4 4.63 \n",
".. ... \n",
"88 NaN \n",
"89 111.59 \n",
"90 3.51 \n",
"91 5.24 \n",
"92 0.86 \n",
"\n",
" Net First Cost To Implement (Billion US$) - Start \\\n",
"0 98.16 \n",
"1 -61.38 \n",
"2 NaN \n",
"3 63.30 \n",
"4 -2420.00 \n",
".. ... \n",
"88 NaN \n",
"89 -220.00 \n",
"90 0.00 \n",
"91 224.81 \n",
"92 7.87 \n",
"\n",
" Net First Cost To Implement (Billion US$) - End \\\n",
"0 159.91 \n",
"1 -61.38 \n",
"2 NaN \n",
"3 158.98 \n",
"4 -3130.00 \n",
".. ... \n",
"88 NaN \n",
"89 -1340.00 \n",
"90 0.00 \n",
"91 156.08 \n",
"92 10.96 \n",
"\n",
" Lifetime Net Operational Savings (Billion US$) - Start \\\n",
"0 -3240.00 \n",
"1 NaN \n",
"2 NaN \n",
"3 -1330.00 \n",
"4 5910.00 \n",
".. ... \n",
"88 NaN \n",
"89 12520.00 \n",
"90 3180.00 \n",
"91 -79.08 \n",
"92 1020.00 \n",
"\n",
" Lifetime Net Operational Savings (Billion US$) - End \\\n",
"0 -5270.00 \n",
"1 NaN \n",
"2 NaN \n",
"3 -3320.00 \n",
"4 8450.00 \n",
".. ... \n",
"88 NaN \n",
"89 25560.00 \n",
"90 3940.00 \n",
"91 -10.32 \n",
"92 1450.00 \n",
"\n",
" Lifetime Net Profit (Billion US$) - Start \\\n",
"0 2660.00 \n",
"1 NaN \n",
"2 NaN \n",
"3 4000.00 \n",
"4 NaN \n",
".. ... \n",
"88 NaN \n",
"89 NaN \n",
"90 NaN \n",
"91 NaN \n",
"92 NaN \n",
"\n",
" Lifetime Net Profit (Billion US$) - End \n",
"0 4340.00 \n",
"1 NaN \n",
"2 NaN \n",
"3 10000.00 \n",
"4 NaN \n",
".. ... \n",
"88 NaN \n",
"89 NaN \n",
"90 NaN \n",
"91 NaN \n",
"92 NaN \n",
"\n",
"[93 rows x 17 columns]"
],
"text/html": [
"\n",
" <div id=\"df-7a8f95f6-87e1-4d07-9cfe-e02865ce56be\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Solution</th>\n",
" <th>Sector(s)</th>\n",
" <th>Scenario 1 *</th>\n",
" <th>Scenario 2 *</th>\n",
" <th>url_path</th>\n",
" <th>CO2 Equivalent Reduced/Sequestered 2020–2050 (Gigatons)</th>\n",
" <th>Net First Cost To Implement (Billion US$)</th>\n",
" <th>Lifetime Net Operational Savings (Billion US$)</th>\n",
" <th>Lifetime Net Profit (Billion US$)</th>\n",
" <th>CO2 Equivalent Reduced/Sequestered 2020–2050 (Gigatons) - Start</th>\n",
" <th>CO2 Equivalent Reduced/Sequestered 2020–2050 (Gigatons) - End</th>\n",
" <th>Net First Cost To Implement (Billion US$) - Start</th>\n",
" <th>Net First Cost To Implement (Billion US$) - End</th>\n",
" <th>Lifetime Net Operational Savings (Billion US$) - Start</th>\n",
" <th>Lifetime Net Operational Savings (Billion US$) - End</th>\n",
" <th>Lifetime Net Profit (Billion US$) - Start</th>\n",
" <th>Lifetime Net Profit (Billion US$) - End</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Abandoned Farmland Restoration</td>\n",
" <td>Land Sinks</td>\n",
" <td>12.48</td>\n",
" <td>20.32</td>\n",
" <td>/solutions/abandoned-farmland-restoration</td>\n",
" <td>12.48 to 20.32</td>\n",
" <td>98.16 to 159.91</td>\n",
" <td>-3240.00 to -5270.00</td>\n",
" <td>2660.00 to 4340.00</td>\n",
" <td>12.48</td>\n",
" <td>20.32</td>\n",
" <td>98.16</td>\n",
" <td>159.91</td>\n",
" <td>-3240.00</td>\n",
" <td>-5270.00</td>\n",
" <td>2660.00</td>\n",
" <td>4340.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Alternative Cement</td>\n",
" <td>Industry</td>\n",
" <td>7.70</td>\n",
" <td>15.56</td>\n",
" <td>/solutions/alternative-cement</td>\n",
" <td>7.70 to 15.56</td>\n",
" <td>-61.38</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>7.70</td>\n",
" <td>15.56</td>\n",
" <td>-61.38</td>\n",
" <td>-61.38</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Alternative Refrigerants</td>\n",
" <td>Industry / Buildings</td>\n",
" <td>42.73</td>\n",
" <td>48.75</td>\n",
" <td>/solutions/alternative-refrigerants</td>\n",
" <td>42.73 to 48.75</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>42.73</td>\n",
" <td>48.75</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Bamboo Production</td>\n",
" <td>Land Sinks</td>\n",
" <td>7.70</td>\n",
" <td>19.60</td>\n",
" <td>/solutions/bamboo-production</td>\n",
" <td>7.70 to 19.60</td>\n",
" <td>63.30 to 158.98</td>\n",
" <td>-1330.00 to -3320.00</td>\n",
" <td>4000.00 to 10000.00</td>\n",
" <td>7.70</td>\n",
" <td>19.60</td>\n",
" <td>63.30</td>\n",
" <td>158.98</td>\n",
" <td>-1330.00</td>\n",
" <td>-3320.00</td>\n",
" <td>4000.00</td>\n",
" <td>10000.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Bicycle Infrastructure</td>\n",
" <td>Transportation</td>\n",
" <td>2.73</td>\n",
" <td>4.63</td>\n",
" <td>/solutions/bicycle-infrastructure</td>\n",
" <td>2.73 to 4.63</td>\n",
" <td>-2420.00 to -3130.00</td>\n",
" <td>5910.00 to 8450.00</td>\n",
" <td>NaN</td>\n",
" <td>2.73</td>\n",
" <td>4.63</td>\n",
" <td>-2420.00</td>\n",
" <td>-3130.00</td>\n",
" <td>5910.00</td>\n",
" <td>8450.00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>88</th>\n",
" <td>Utility-Scale Energy Storage</td>\n",
" <td>Electricity</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td>/solutions/utility-scale-energy-storage</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>89</th>\n",
" <td>Utility-Scale Solar Photovoltaics</td>\n",
" <td>Electricity</td>\n",
" <td>40.83</td>\n",
" <td>111.59</td>\n",
" <td>/solutions/utility-scale-solar-photovoltaics</td>\n",
" <td>40.83 to 111.59</td>\n",
" <td>-220.00 to -1340.00</td>\n",
" <td>12520.00 to 25560.00</td>\n",
" <td>NaN</td>\n",
" <td>40.83</td>\n",
" <td>111.59</td>\n",
" <td>-220.00</td>\n",
" <td>-1340.00</td>\n",
" <td>12520.00</td>\n",
" <td>25560.00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>90</th>\n",
" <td>Walkable Cities</td>\n",
" <td>Transportation</td>\n",
" <td>2.83</td>\n",
" <td>3.51</td>\n",
" <td>/solutions/walkable-cities</td>\n",
" <td>2.83 to 3.51</td>\n",
" <td>0.00</td>\n",
" <td>3180.00 to 3940.00</td>\n",
" <td>NaN</td>\n",
" <td>2.83</td>\n",
" <td>3.51</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>3180.00</td>\n",
" <td>3940.00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>91</th>\n",
" <td>Waste to Energy</td>\n",
" <td>Electricity / Industry</td>\n",
" <td>6.27</td>\n",
" <td>5.24</td>\n",
" <td>/solutions/waste-to-energy</td>\n",
" <td>6.27 to 5.24</td>\n",
" <td>224.81 to 156.08</td>\n",
" <td>-79.08 to -10.32</td>\n",
" <td>NaN</td>\n",
" <td>6.27</td>\n",
" <td>5.24</td>\n",
" <td>224.81</td>\n",
" <td>156.08</td>\n",
" <td>-79.08</td>\n",
" <td>-10.32</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>92</th>\n",
" <td>Water Distribution Efficiency</td>\n",
" <td>Electricity</td>\n",
" <td>0.61</td>\n",
" <td>0.86</td>\n",
" <td>/solutions/water-distribution-efficiency</td>\n",
" <td>0.61 to 0.86</td>\n",
" <td>7.87 to 10.96</td>\n",
" <td>1020.00 to 1450.00</td>\n",
" <td>NaN</td>\n",
" <td>0.61</td>\n",
" <td>0.86</td>\n",
" <td>7.87</td>\n",
" <td>10.96</td>\n",
" <td>1020.00</td>\n",
" <td>1450.00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>93 rows × 17 columns</p>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-7a8f95f6-87e1-4d07-9cfe-e02865ce56be')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-7a8f95f6-87e1-4d07-9cfe-e02865ce56be button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-7a8f95f6-87e1-4d07-9cfe-e02865ce56be');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-4a27c636-b4b4-41f0-92d1-5982e2a3733e\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-4a27c636-b4b4-41f0-92d1-5982e2a3733e')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-4a27c636-b4b4-41f0-92d1-5982e2a3733e button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" <div id=\"id_cce573cb-9ce9-4789-9532-c5b94188414c\">\n",
" <style>\n",
" .colab-df-generate {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-generate:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
" <button class=\"colab-df-generate\" onclick=\"generateWithVariable('solutions_with_stats_df')\"\n",
" title=\"Generate code using this dataframe.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
" </svg>\n",
" </button>\n",
" <script>\n",
" (() => {\n",
" const buttonEl =\n",
" document.querySelector('#id_cce573cb-9ce9-4789-9532-c5b94188414c button.colab-df-generate');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" buttonEl.onclick = () => {\n",
" google.colab.notebook.generateWithVariable('solutions_with_stats_df');\n",
" }\n",
" })();\n",
" </script>\n",
" </div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "solutions_with_stats_df",
"summary": "{\n \"name\": \"solutions_with_stats_df\",\n \"rows\": 93,\n \"fields\": [\n {\n \"column\": \"Solution\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 93,\n \"samples\": [\n \"Improved Cattle Feed\",\n \"Efficient Aviation\",\n \"Multistrata Agroforestry\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Sector(s)\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 16,\n \"samples\": [\n \"Land Sinks\",\n \"Industry\",\n \"Buildings\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Scenario\\u00a01\\u00a0*\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 85,\n \"samples\": [\n \"15.03\",\n \"12.48\",\n \"15.12\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Scenario\\u00a02\\u00a0*\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 88,\n \"samples\": [\n \"13.73\",\n \"20.32\",\n \"3.25\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"url_path\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 93,\n \"samples\": [\n \"/solutions/improved-cattle-feed\",\n \"/solutions/efficient-aviation\",\n \"/solutions/multistrata-agroforestry\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"CO2 Equivalent Reduced/Sequestered 2020\\u20132050 (Gigatons)\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 87,\n \"samples\": [\n \"1.36 to 0.68\",\n \"12.48 to 20.32\",\n \"68.90\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Net First Cost To Implement (Billion US$)\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 62,\n \"samples\": [\n \"77.10 to 115.27\",\n \"521.52 to 832.73\",\n \"98.16 to 159.91\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Lifetime Net Operational Savings (Billion US$)\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 68,\n \"samples\": [\n \"3770.00 to 9830.00\",\n \"1590.00 to 2240.00\",\n \"-100.20 to -209.11\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Lifetime Net Profit (Billion US$)\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 14,\n \"samples\": [\n \"1750.00 to 2360.00\",\n \"571.80 to 814.43\",\n \"2660.00 to 4340.00\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"CO2 Equivalent Reduced/Sequestered 2020\\u20132050 (Gigatons) - Start\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 84,\n \"samples\": [\n \"3.41\",\n \"12.48\",\n \"78.33\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"CO2 Equivalent Reduced/Sequestered 2020\\u20132050 (Gigatons) - End\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 87,\n \"samples\": [\n \"0.68\",\n \"20.32\",\n \"68.90\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Net First Cost To Implement (Billion US$) - Start\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 62,\n \"samples\": [\n \"77.10\",\n \"521.52\",\n \"98.16\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Net First Cost To Implement (Billion US$) - End\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 62,\n \"samples\": [\n \"115.27\",\n \"832.73\",\n \"159.91\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Lifetime Net Operational Savings (Billion US$) - Start\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 68,\n \"samples\": [\n \"3770.00\",\n \"1590.00\",\n \"-100.20\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Lifetime Net Operational Savings (Billion US$) - End\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 67,\n \"samples\": [\n \"710.57\",\n \"2240.00\",\n \"-209.11\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Lifetime Net Profit (Billion US$) - Start\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 13,\n \"samples\": [\n \"571.80\",\n \"1750.00\",\n \"2660.00\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Lifetime Net Profit (Billion US$) - End\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 14,\n \"samples\": [\n \"2360.00\",\n \"814.43\",\n \"4340.00\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
}
},
"metadata": {},
"execution_count": 159
}
]
}
]
}
index Solution Sector(s) Scenario 1 * Scenario 2 * url_path CO2 Equivalent Reduced/Sequestered 2020–2050 (Gigatons) Net First Cost To Implement (Billion US$) Lifetime Net Operational Savings (Billion US$) Lifetime Net Profit (Billion US$) CO2 Equivalent Reduced/Sequestered 2020–2050 (Gigatons) - Start CO2 Equivalent Reduced/Sequestered 2020–2050 (Gigatons) - End Net First Cost To Implement (Billion US$) - Start Net First Cost To Implement (Billion US$) - End Lifetime Net Operational Savings (Billion US$) - Start Lifetime Net Operational Savings (Billion US$) - End Lifetime Net Profit (Billion US$) - Start Lifetime Net Profit (Billion US$) - End
0 Abandoned Farmland Restoration Land Sinks 12.48 20.32 /solutions/abandoned-farmland-restoration 12.48 to 20.32 98.16 to 159.91 -3240.00 to -5270.00 2660.00 to 4340.00 12.48 20.32 98.16 159.91 -3240.00 -5270.00 "2660.00" "4340.00"
1 Alternative Cement Industry 7.70 15.56 /solutions/alternative-cement 7.70 to 15.56 -61.38 NaN NaN 7.70 15.56 -61.38 -61.38 NaN NaN NaN NaN
2 Alternative Refrigerants Industry / Buildings 42.73 48.75 /solutions/alternative-refrigerants 42.73 to 48.75 NaN NaN NaN 42.73 48.75 NaN NaN NaN NaN NaN NaN
3 Bamboo Production Land Sinks 7.70 19.60 /solutions/bamboo-production 7.70 to 19.60 63.30 to 158.98 -1330.00 to -3320.00 4000.00 to 10000.00 7.70 19.60 63.30 158.98 -1330.00 -3320.00 "4000.00" "10000.00"
4 Bicycle Infrastructure Transportation 2.73 4.63 /solutions/bicycle-infrastructure 2.73 to 4.63 -2420.00 to -3130.00 5910.00 to 8450.00 NaN 2.73 4.63 -2420.00 -3130.00 5910.00 8450.00 NaN NaN
5 Biochar Production Engineered Sinks 1.36 3.00 /solutions/biochar-production 1.36 to 3.00 123.54 to 244.94 -333.20 to -663.11 NaN 1.36 3.00 123.54 244.94 -333.20 -663.11 NaN NaN
6 Biogas for Cooking Buildings 4.65 9.70 /solutions/biogas-for-cooking 4.65 to 9.70 24.72 to 51.59 -100.20 to -209.11 NaN 4.65 9.70 24.72 51.59 -100.20 -209.11 NaN NaN
7 Biomass Power Electricity 2.62 3.59 /solutions/biomass-power 2.62 to 3.59 56.48 to 69.24 218.83 to 287.99 NaN 2.62 3.59 56.48 69.24 218.83 287.99 NaN NaN
8 Bioplastics Industry 1.33 2.48 /solutions/bioplastics 1.33 to 2.48 82.70 to 97.76 0.00 NaN 1.33 2.48 82.70 97.76 0.00 0.00 NaN NaN
9 Building Automation Systems Electricity / Buildings 9.55 14.01 /solutions/building-automation-systems 9.55 to 14.01 287.70 to 393.35 2270.00 to 3420.00 NaN 9.55 14.01 287.70 393.35 2270.00 3420.00 NaN NaN
10 Building Retrofitting Electricity / Buildings /solutions/building-retrofitting NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
11 Carpooling Transportation 9.06 11.07 /solutions/carpooling 9.06 to 11.07 0.00 7400.00 to 9180.00 NaN 9.06 11.07 0.00 0.00 7400.00 9180.00 NaN NaN
12 Clean Cooking Buildings 31.38 76.34 /solutions/clean-cooking 31.38 to 76.34 136.64 to 302.76 -1960.00 to -4380.00 NaN 31.38 76.34 136.64 302.76 -1960.00 -4380.00 NaN NaN
13 Coastal Wetland Protection Food, Agriculture, and Land Use / Coastal and Ocean Sinks 1.20 1.62 /solutions/coastal-wetland-protection 1.20 to 1.62 0.00 NaN NaN 1.20 1.62 0.00 0.00 NaN NaN NaN NaN
14 Coastal Wetland Restoration Coastal and Ocean Sinks 0.76 1.00 /solutions/coastal-wetland-restoration 0.76 to 1.00 NaN NaN NaN 0.76 1.00 NaN NaN NaN NaN NaN NaN
15 Composting Industry 1.13 1.40 /solutions/composting 1.13 to 1.40 -26.90 to -35.50 -4180.00 to -1730.00 NaN 1.13 1.40 -26.90 -35.50 -4180.00 -1730.00 NaN NaN
16 Concentrated Solar Power Electricity 18.00 21.51 /solutions/concentrated-solar-power 18.00 to 21.51 481.52 to 576.86 -860.00 to -1080.00 NaN 18.00 21.51 481.52 576.86 -860.00 -1080.00 NaN NaN
17 Conservation Agriculture Food, Agriculture, and Land Use / Land Sinks 12.81 8.08 /solutions/conservation-agriculture 12.81 to 8.08 89.78 to 56.85 2520.00 to 1580.00 99.10 to 61.55 12.81 8.08 89.78 56.85 2520.00 1580.00 "99.10" "61.55"
18 Distributed Energy Storage Electricity /solutions/distributed-energy-storage NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
19 Distributed Solar Photovoltaics Electricity 26.65 64.86 /solutions/distributed-solar-photovoltaics 26.65 to 64.86 517.31 to 352.45 7610.00 to 13140.00 NaN 26.65 64.86 517.31 352.45 7610.00 13140.00 NaN NaN
20 District Heating Electricity / Buildings 6.18 9.68 /solutions/district-heating 6.18 to 9.68 218.34 to 325.50 1540.00 to 2340.00 NaN 6.18 9.68 218.34 325.50 1540.00 2340.00 NaN NaN
21 Dynamic Glass Electricity / Buildings 0.34 0.54 /solutions/dynamic-glass 0.34 to 0.54 57.79 to 83.80 113.84 to 189.62 NaN 0.34 0.54 57.79 83.80 113.84 189.62 NaN NaN
22 Efficient Aviation Transportation 5.29 5.82 /solutions/efficient-aviation 5.29 to 5.82 3470.00 to 3790.00 1590.00 to 2240.00 NaN 5.29 5.82 3470.00 3790.00 1590.00 2240.00 NaN NaN
23 Efficient Ocean Shipping Transportation 6.72 9.83 /solutions/efficient-ocean-shipping 6.72 to 9.83 720.00 to 1010.00 2480.00 to 3540.00 NaN 6.72 9.83 720.00 1010.00 2480.00 3540.00 NaN NaN
24 Efficient Trucks Transportation 9.15 10.77 /solutions/efficient-trucks 9.15 to 10.77 502.57 to 566.56 5210.00 to 5960.00 NaN 9.15 10.77 502.57 566.56 5210.00 5960.00 NaN NaN
25 Electric Bicycles Transportation 1.39 1.55 /solutions/electric-bicycles 1.39 to 1.55 -402.06 to -446.01 1070.00 to 1230.00 NaN 1.39 1.55 -402.06 -446.01 1070.00 1230.00 NaN NaN
26 Electric Cars Transportation 7.66 9.76 /solutions/electric-cars 7.66 to 9.76 -572.68 to -602.00 11590.00 to 15540.00 NaN 7.66 9.76 -572.68 -602.00 11590.00 15540.00 NaN NaN
27 Electric Trains Transportation 1.91 3.25 /solutions/electric-trains 1.91 to 3.25 660.00 to 1430.00 2160.00 to 4770.00 NaN 1.91 3.25 660.00 1430.00 2160.00 4770.00 NaN NaN
28 Family Planning and Education Health and Education 68.90 68.90 /solutions/family-planning-and-education 68.90 NaN NaN NaN 68.90 68.90 NaN NaN NaN NaN NaN NaN
29 Farm Irrigation Efficiency Food, Agriculture, and Land Use 1.13 2.07 /solutions/farm-irrigation-efficiency 1.13 to 2.07 222.87 to 386.92 534.60 to 938.58 NaN 1.13 2.07 222.87 386.92 534.60 938.58 NaN NaN
30 Forest Protection Food, Agriculture, and Land Use / Land Sinks 5.55 8.83 /solutions/forest-protection 5.55 to 8.83 NaN NaN NaN 5.55 8.83 NaN NaN NaN NaN NaN NaN
31 Geothermal Power Electricity 6.15 9.17 /solutions/geothermal-power 6.15 to 9.17 84.33 to 93.08 790.00 to 1180.00 NaN 6.15 9.17 84.33 93.08 790.00 1180.00 NaN NaN
32 Grassland Protection Food, Agriculture, and Land Use / Land Sinks 3.35 4.25 /solutions/grassland-protection 3.35 to 4.25 NaN NaN NaN 3.35 4.25 NaN NaN NaN NaN NaN NaN
33 Green and Cool Roofs Electricity / Buildings 0.53 0.99 /solutions/green-and-cool-roofs 0.53 to 0.99 569.08 to 827.10 303.76 to 547.58 NaN 0.53 0.99 569.08 827.10 303.76 547.58 NaN NaN
34 Grid Flexibility Electricity /solutions/grid-flexibility NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
35 High-Efficiency Heat Pumps Electricity / Buildings 4.04 9.05 /solutions/high-efficiency-heat-pumps 4.04 to 9.05 76.10 to 118.34 1050.00 to 2430.00 NaN 4.04 9.05 76.10 118.34 1050.00 2430.00 NaN NaN
36 High-Performance Glass Electricity / Buildings 8.82 11.34 /solutions/high-performance-glass 8.82 to 11.34 7840.00 to 9520.00 2910.00 to 3470.00 NaN 8.82 11.34 7840.00 9520.00 2910.00 3470.00 NaN NaN
37 High-Speed Rail Transportation 1.26 3.62 /solutions/high-speed-rail 1.26 to 3.62 640.00 to 1740.00 -690.00 to -1880.00 NaN 1.26 3.62 640.00 1740.00 -690.00 -1880.00 NaN NaN
38 Hybrid Cars Transportation 1.61 4.71 /solutions/hybrid-cars 1.61 to 4.71 -4.55 to -3.40 1550.00 to 4490.00 NaN 1.61 4.71 -4.55 -3.40 1550.00 4490.00 NaN NaN
39 Improved Aquaculture Food, Agriculture, and Land Use 0.50 0.78 /solutions/improved-aquaculture 0.50 to 0.78 151.37 to 241.87 140.48 to 223.01 NaN 0.50 0.78 151.37 241.87 140.48 223.01 NaN NaN
40 Improved Cattle Feed Food, Agriculture, and Land Use 4.42 15.05 /solutions/improved-cattle-feed 4.42 to 15.05 0.00 550.00 to 1880.00 NaN 4.42 15.05 0.00 0.00 550.00 1880.00 NaN NaN
41 Improved Fisheries Food, Agriculture, and Land Use / Coastal and Ocean Sinks 1.01 1.54 /solutions/improved-fisheries 1.01 to 1.54 NaN NaN NaN 1.01 1.54 NaN NaN NaN NaN NaN NaN
42 Improved Manure Management Food, Agriculture, and Land Use 3.34 6.09 /solutions/improved-manure-management 3.34 to 6.09 19.93 to 37.16 -1.27 to -2.99 NaN 3.34 6.09 19.93 37.16 -1.27 -2.99 NaN NaN
43 Improved Rice Production Food, Agriculture, and Land Use / Land Sinks 9.85 14.43 /solutions/improved-rice-production 9.85 to 14.43 0.00 462.82 to 623.39 224.70 to 304.49 9.85 14.43 0.00 0.00 462.82 623.39 "224.70" "304.49"
44 Indigenous Peoples’ Forest Tenure Food, Agriculture, and Land Use / Land Sinks 8.69 12.51 /solutions/indigenous-peoples-forest-tenure 8.69 to 12.51 0.00 NaN NaN 8.69 12.51 0.00 0.00 NaN NaN NaN NaN
45 Insulation Electricity / Buildings 15.38 18.54 /solutions/insulation 15.38 to 18.54 710.37 to 791.29 19570.00 to 22920.00 NaN 15.38 18.54 710.37 791.29 19570.00 22920.00 NaN NaN
46 LED Lighting Electricity 14.45 15.69 /solutions/led-lighting 14.45 to 15.69 -1890.00 to -2160.00 4140.00 to 4470.00 NaN 14.45 15.69 -1890.00 -2160.00 4140.00 4470.00 NaN NaN
47 Landfill Methane Capture Electricity / Industry 3.89 -1.48 /solutions/landfill-methane-capture 3.89 to -1.48 -2.57 6.17 to -20.17 NaN 3.89 -1.48 -2.57 -2.57 6.17 -20.17 NaN NaN
48 Low-Flow Fixtures Electricity / Buildings 0.93 1.52 /solutions/low-flow-fixtures 0.93 to 1.52 0.44 to 1.25 454.93 to 710.57 NaN 0.93 1.52 0.44 1.25 454.93 710.57 NaN NaN
49 Macroalgae Protection and Restoration Coastal and Ocean Sinks 2.61 3.78 /solutions/macroalgae-protection-and-restoration 2.61 to 3.78 NaN NaN NaN 2.61 3.78 NaN NaN NaN NaN NaN NaN
50 Managed Grazing Land Sinks 13.72 20.92 /solutions/managed-grazing 13.72 to 20.92 31.73 to 49.14 604.53 to 935.41 2050.00 to 3180.00 13.72 20.92 31.73 49.14 604.53 935.41 "2050.00" "3180.00"
51 Methane Digesters Electricity / Industry 6.02 7.05 /solutions/methane-digesters 6.02 to 7.05 138.13 to 182.09 45.54 to 52.66 NaN 6.02 7.05 138.13 182.09 45.54 52.66 NaN NaN
52 Methane Leak Management Other Energy 25.83 31.29 /solutions/methane-leak-management 25.83 to 31.29 127.95 to 135.42 -50.70 to -59.85 NaN 25.83 31.29 127.95 135.42 -50.70 -59.85 NaN NaN
53 Micro Wind Turbines Electricity 0.09 0.11 /solutions/micro-wind-turbines 0.09 to 0.11 52.87 to 69.56 -19.40 to -26.56 NaN 0.09 0.11 52.87 69.56 -19.40 -26.56 NaN NaN
54 Microgrids Electricity /solutions/microgrids NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
55 Multistrata Agroforestry Land Sinks 13.26 23.94 /solutions/multistrata-agroforestry 13.26 to 23.94 70.44 to 120.03 -186.24 to -319.82 2280.00 to 3930.00 13.26 23.94 70.44 120.03 -186.24 -319.82 "2280.00" "3930.00"
56 Net Zero Buildings Electricity / Buildings /solutions/net-zero-buildings NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
57 Nuclear Power Electricity 3.17 3.64 /solutions/nuclear-power 3.17 to 3.64 176.92 332.88 NaN 3.17 3.64 176.92 176.92 332.88 332.88 NaN NaN
58 Nutrient Management Food, Agriculture, and Land Use 2.77 11.48 /solutions/nutrient-management 2.77 to 11.48 0.00 22.82 to 63.84 NaN 2.77 11.48 0.00 0.00 22.82 63.84 NaN NaN
59 Ocean Power Electricity 1.27 0.80 /solutions/ocean-power 1.27 to 0.80 199.06 to 258.17 -1060.00 to -1390.00 NaN 1.27 0.80 199.06 258.17 -1060.00 -1390.00 NaN NaN
60 Offshore Wind Turbines Electricity 10.22 9.89 /solutions/offshore-wind-turbines 10.22 to 9.89 640.88 to 729.51 651.47 to 768.39 NaN 10.22 9.89 640.88 729.51 651.47 768.39 NaN NaN
61 Onshore Wind Turbines Electricity 46.95 143.56 /solutions/onshore-wind-turbines 46.95 to 143.56 920.00 to 1890.00 3770.00 to 9830.00 NaN 46.95 143.56 920.00 1890.00 3770.00 9830.00 NaN NaN
62 Peatland Protection and Rewetting Food, Agriculture, and Land Use / Land Sinks 25.40 40.27 /solutions/peatland-protection-and-rewetting 25.40 to 40.27 0.00 NaN NaN 25.40 40.27 0.00 0.00 NaN NaN NaN NaN
63 Perennial Biomass Production Land Sinks 4.00 7.04 /solutions/perennial-biomass-production 4.00 to 7.04 195.02 to 338.28 -1840.00 to -3190.00 1130.00 to 1950.00 4.00 7.04 195.02 338.28 -1840.00 -3190.00 "1130.00" "1950.00"
64 Perennial Staple Crops Land Sinks 16.34 32.87 /solutions/perennial-staple-crops 16.34 to 32.87 96.53 to 209.53 -980.00 to -2110.00 1700.00 to 3650.00 16.34 32.87 96.53 209.53 -980.00 -2110.00 "1700.00" "3650.00"
65 Plant-Rich Diets Food, Agriculture, and Land Use / Land Sinks 78.33 103.11 /solutions/plant-rich-diets 78.33 to 103.11 NaN NaN NaN 78.33 103.11 NaN NaN NaN NaN NaN NaN
66 Public Transit Transportation 9.42 15.42 /solutions/public-transit 9.42 to 15.42 0.00 2180.00 to 4590.00 NaN 9.42 15.42 0.00 0.00 2180.00 4590.00 NaN NaN
67 Recycled Metals Industry 4.31 12.34 /solutions/recycled-metals 4.31 to 12.34 0.00 -1.39 to -3.70 NaN 4.31 12.34 0.00 0.00 -1.39 -3.70 NaN NaN
68 Recycled Paper Industry 2.28 2.90 /solutions/recycled-paper 2.28 to 2.90 -1620.00 to -1440.00 0.00 NaN 2.28 2.90 -1620.00 -1440.00 0.00 0.00 NaN NaN
69 Recycled Plastics Industry 0.52 1.69 /solutions/recycled-plastics 0.52 to 1.69 -48.50 to -158.06 0.00 NaN 0.52 1.69 -48.50 -158.06 0.00 0.00 NaN NaN
70 Recycling Industry 10.36 11.29 /solutions/recycling 10.36 to 11.29 9.01 to 9.69 -41.98 to -45.84 NaN 10.36 11.29 9.01 9.69 -41.98 -45.84 NaN NaN
71 Reduced Food Waste Food, Agriculture, and Land Use / Land Sinks 88.50 102.20 /solutions/reduced-food-waste 88.50 to 102.20 NaN NaN NaN 88.50 102.20 NaN NaN NaN NaN NaN NaN
72 Reduced Plastics Industry 3.76 5.40 /solutions/reduced-plastics 3.76 to 5.40 NaN NaN NaN 3.76 5.40 NaN NaN NaN NaN NaN NaN
73 Refrigerant Management Industry / Buildings 57.15 57.15 /solutions/refrigerant-management 57.15 NaN -622.73 NaN 57.15 57.15 NaN NaN -622.73 -622.73 NaN NaN
74 Regenerative Annual Cropping Food, Agriculture, and Land Use / Land Sinks 15.12 23.21 /solutions/regenerative-annual-cropping 15.12 to 23.21 77.10 to 115.27 2340.00 to 3520.00 134.40 to 205.35 15.12 23.21 77.10 115.27 2340.00 3520.00 "134.40" "205.35"
75 Seafloor Protection Food, Agriculture, and Land Use 3.80 5.14 /solutions/seafloor-protection 3.80 to 5.14 NaN NaN NaN 3.80 5.14 NaN NaN NaN NaN NaN NaN
76 Seaweed Farming Coastal and Ocean Sinks / Coastal and Ocean Sinks 2.50 4.72 /solutions/seaweed-farming 2.50 to 4.72 132.14 to 249.80 -4970.00 to -9400.00 NaN 2.50 4.72 132.14 249.80 -4970.00 -9400.00 NaN NaN
77 Silvopasture Land Sinks 26.58 42.31 /solutions/silvopasture 26.58 to 42.31 206.75 to 272.91 -2330.00 to -3120.00 1750.00 to 2360.00 26.58 42.31 206.75 272.91 -2330.00 -3120.00 "1750.00" "2360.00"
78 Small Hydropower Electricity 1.65 3.21 /solutions/small-hydropower 1.65 to 3.21 44.75 to 74.21 301.84 to 522.64 NaN 1.65 3.21 44.75 74.21 301.84 522.64 NaN NaN
79 Smart Thermostats Electricity / Buildings 6.91 7.25 /solutions/smart-thermostats 6.91 to 7.25 162.48 to 181.41 1790.00 to 2020.00 NaN 6.91 7.25 162.48 181.41 1790.00 2020.00 NaN NaN
80 Solar Hot Water Electricity / Buildings 3.41 13.73 /solutions/solar-hot-water 3.41 to 13.73 680.00 to 2630.00 270.00 to 1100.00 NaN 3.41 13.73 680.00 2630.00 270.00 1100.00 NaN NaN
81 Sustainable Intensification for Smallholders Food, Agriculture, and Land Use / Land Sinks 1.36 0.68 /solutions/sustainable-intensification-for-smallholders 1.36 to 0.68 0.00 148.35 to 73.62 344.60 to 171.05 1.36 0.68 0.00 0.00 148.35 73.62 "344.60" "171.05"
82 System of Rice Intensification Food, Agriculture, and Land Use / Land Sinks 2.90 4.44 /solutions/system-of-rice-intensification 2.90 to 4.44 0.00 11.24 to 15.89 571.80 to 814.43 2.90 4.44 0.00 0.00 11.24 15.89 "571.80" "814.43"
83 Telepresence Transportation 2.64 4.43 /solutions/telepresence 2.64 to 4.43 521.52 to 832.73 1730.00 to 2910.00 NaN 2.64 4.43 521.52 832.73 1730.00 2910.00 NaN NaN
84 Temperate Forest Restoration Land Sinks 19.42 27.85 /solutions/temperate-forest-restoration 19.42 to 27.85 NaN NaN NaN 19.42 27.85 NaN NaN NaN NaN NaN NaN
85 Tree Intercropping Land Sinks 15.03 24.40 /solutions/tree-intercropping 15.03 to 24.40 146.89 to 227.02 -700.00 to -1080.00 262.40 to 427.81 15.03 24.40 146.89 227.02 -700.00 -1080.00 "262.40" "427.81"
86 Tree Plantations (on Degraded Land) Land Sinks 22.04 35.09 /solutions/tree-plantations-on-degraded-land 22.04 to 35.09 91.89 to 141.68 -157.74 to -243.37 2050.00 to 3170.00 22.04 35.09 91.89 141.68 -157.74 -243.37 "2050.00" "3170.00"
87 Tropical Forest Restoration Land Sinks 54.45 85.14 /solutions/tropical-forest-restoration 54.45 to 85.14 NaN NaN NaN 54.45 85.14 NaN NaN NaN NaN NaN NaN
88 Utility-Scale Energy Storage Electricity /solutions/utility-scale-energy-storage NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
89 Utility-Scale Solar Photovoltaics Electricity 40.83 111.59 /solutions/utility-scale-solar-photovoltaics 40.83 to 111.59 -220.00 to -1340.00 12520.00 to 25560.00 NaN 40.83 111.59 -220.00 -1340.00 12520.00 25560.00 NaN NaN
90 Walkable Cities Transportation 2.83 3.51 /solutions/walkable-cities 2.83 to 3.51 0.00 3180.00 to 3940.00 NaN 2.83 3.51 0.00 0.00 3180.00 3940.00 NaN NaN
91 Waste to Energy Electricity / Industry 6.27 5.24 /solutions/waste-to-energy 6.27 to 5.24 224.81 to 156.08 -79.08 to -10.32 NaN 6.27 5.24 224.81 156.08 -79.08 -10.32 NaN NaN
92 Water Distribution Efficiency Electricity 0.61 0.86 /solutions/water-distribution-efficiency 0.61 to 0.86 7.87 to 10.96 1020.00 to 1450.00 NaN 0.61 0.86 7.87 10.96 1020.00 1450.00 NaN NaN
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment