{
"cells": [
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"(popularity)=\n",
"# Popularity\n",
"\n",
"Social software development and version control platforms like GitHub allow users to \"star\" other users' repositories. Staring is often used to indicate support, bookmark repositories for later reference, and create curated lists. A repository's total number of stars is an easy metric to keep track of and is routinely used by the community as an indicator of project popularity.\n",
"\n",
"**The popularity of a particular topic or field can be determined by summing the number of stars across all related projects.** There are a total of 127,038 stars across all of the identified projects; but a search on GitHub revealed there are 27 projects that have more stars than the entire software in environmental sustainability combined! With a median of 42 stars, the field of sustainable technology can be considered rather unpopular on GitHub.\n",
"\n",
"**With only 3 projects that have more than 1000 stars, it is once again becomes clear how little attention OSS receives within environmental sustainability**. High growth in popularity can be seen in topics such as energy, transportation, earth observation, and meteorology. These are just a few examples of areas where software innovations are critical, which explains why open source software is more widely recognised.\n",
"\n",
"`````{admonition} Tip\n",
":class: tip\n",
"Click the project name and go directly to the repository.\n",
"`````"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"tags": [
"remove-cell"
]
},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import plotly.io as pio\n",
"import plotly.graph_objects as go\n",
"import plotly.express as px\n",
"from opensustainTemplate import *"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"tags": [
"remove-cell"
]
},
"outputs": [],
"source": [
"df_active = pd.read_csv(\"../csv/project_analysis.csv\")\n",
"df_active[\"project_name\"] = df_active[\"project_name\"].replace(\n",
" {\n",
" \"A Global Inventory of Commerical-, Industrial-, and Utility-Scale Photovoltaic Solar Generating Units\": \"A Global Inventory of Photovoltaic\"\n",
" }\n",
")\n",
"df_active[\"project_name\"] = df_active[\"project_name\"].replace(\n",
" {\n",
" \"Asset-level Transition Risk in the Global Coal, Oil, and Gas Supply Chains\": \"Global Coal, Oil, and Gas Supply Chains\"\n",
" }\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"tags": [
"remove-input"
]
},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"plotlyServerURL": "https://plot.ly"
},
"data": [
{
"alignmentgroup": "True",
"customdata": [
[
"A traffic simulation game exploring how small changes to roads affect cyclists, transit users, pedestrians, and drivers.",
"Mobility and Transportation",
"https://github.com/a-b-street/abstreet.git"
],
[
"A real-time visualization of the CO2 emissions from electricity consumption.",
"Carbon Intensity and Accounting",
"https://github.com/electricitymaps/electricitymaps-contrib.git"
],
[
"A powerful open source web application for processing, logging and visualizing energy, temperature and other environmental data.",
"Energy Monitoring and Control",
"https://github.com/emoncms/emoncms.git"
],
[
"A collection of tools in Python for reading, visualizing and performing calculations with weather data.",
"Meteorological Observation and Forecast",
"https://github.com/Unidata/MetPy.git"
],
[
"A free and open database and web application for farming and gardening knowledge.",
"Agriculture and Nutrition",
"https://github.com/openfarmcc/OpenFarm.git"
],
[
"An online marketplace for local food. It enables a network of independent online food stores that connects farmers and food hubs with individuals and local businesses.",
"Agriculture and Nutrition",
"https://github.com/openfoodfoundation/openfoodnetwork.git"
],
[
"A state-of-the-art atmospheric modeling system designed for both meteorological research and numerical weather prediction.",
"Earth and Climate Modeling",
"https://github.com/wrf-model/WRF.git"
],
[
"Public transport and multimodal routing apps could benefit from showing nearby bikes from bikesharing services. So here's a list showing the APIs of a few of these platforms.",
"Mobility and Transportation",
"https://github.com/ubahnverleih/WoBike.git"
],
[
"An extensible EV Charge Controller with PV integration implemented in Go.",
"Mobility and Transportation",
"https://github.com/evcc-io/evcc.git"
],
[
"An open source software agent to track energy consumption of ICT services from the servers.",
"Computation and Communication",
"https://github.com/hubblo-org/scaphandre.git"
],
[
"The public transport companion that respects your privacy and your freedom.",
"Mobility and Transportation",
"https://github.com/grote/Transportr.git"
],
[
"Makes searching, downloading and retrieving the metadata of Sentinel satellite images from the Copernicus Open Access Hub easy.",
"Data Catalogs and Interfaces",
"https://github.com/sentinelsat/sentinelsat.git"
],
[
"Humanity's open-source CNC farming machine.",
"Agriculture and Nutrition",
"https://github.com/FarmBot/Farmbot-Web-App.git"
],
[
"A whole building energy simulation program that engineers, architects, and researchers use to model both energy consumption and water usage in buildings.",
"Buildings and Heating",
"https://github.com/NREL/EnergyPlus.git"
],
[
"A set of documented functions for simulating the performance of photovoltaic energy systems.",
"Photovoltaics and Solar Energy",
"https://github.com/pvlib/pvlib-python.git"
],
[
"Fast and friendly fluid dynamics on CPUs and GPUs.",
"Hydrosphere",
"https://github.com/CliMA/Oceananigans.jl.git"
],
[
"A free software toolbox for simulating and optimizing modern power systems that include features such as conventional generators with unit commitment, variable wind and solar generation, storage units, coupling to other energy sectors, and mixed alternating and direct current networks.",
"Energy Modeling and Optimization",
"https://github.com/PyPSA/PyPSA.git"
],
[
"The palmerpenguins data contains size measurements for three penguin species observed on three islands in the Palmer Archipelago, Antarctica.",
"Biosphere",
"https://github.com/allisonhorst/palmerpenguins.git"
],
[
"Non-Intrusive Load Monitoring is the process of estimating the energy consumed by individual appliances given just a whole-house power meter reading.",
"Buildings and Heating",
"https://github.com/nilmtk/nilmtk.git"
],
[
"A web application developed by NASA EOSDIS to enable data discovery, search, comparison, visualization, and access across EOSDIS' Earth Science data holdings.",
"Data Catalogs and Interfaces",
"https://github.com/nasa/earthdata-search.git"
],
[
"A Python library for reading, validating and writing transit schedule information in the GTFS format.",
"Mobility and Transportation",
"https://github.com/google/transitfeed.git"
],
[
"Documentation for the General Bikeshare Feed Specification, a standardized data feed for shared mobility system availability.",
"Mobility and Transportation",
"https://github.com/MobilityData/gbfs.git"
],
[
"Download and process satellite imagery in Python using Sentinel Hub services.",
"Data Catalogs and Interfaces",
"https://github.com/sentinel-hub/sentinelhub-py.git"
],
[
"WhiteboxTools is an advanced geospatial data analysis platform.",
"Water Supply and Quality",
"https://github.com/jblindsay/whitebox-tools.git"
],
[
"The Unidata network Common Data Form (netCDF) in Python is an interface for scientific data access and a set of freely-distributed software libraries that provide an implementation of the interface.",
"Climate Data Processing and Access",
"https://github.com/Unidata/netcdf4-python.git"
],
[
"A community platform for Big Data geoscience.",
"Earth and Climate Modeling",
"https://github.com/pangeo-data/pangeo.git"
],
[
"A data standard to enable communication between mobility companies and local governments.",
"Mobility and Transportation",
"https://github.com/openmobilityfoundation/mobility-data-specification.git"
],
[
"A Multi-Agent Reinforcement Learning Environment for Large Scale City Traffic Scenario.",
"Mobility and Transportation",
"https://github.com/cityflow-project/CityFlow.git"
],
[
"Makes it easy for people to design public spaces together.",
"Mobility and Transportation",
"https://github.com/streetmix/streetmix.git"
],
[
"The complete set of tools for energy consumption analysis of programming languages, using Computer Language Benchmark Game.",
"Computation and Communication",
"https://github.com/greensoftwarelab/Energy-Languages.git"
],
[
"A tool to estimate energy use (kilowatt-hours) and carbon emissions (metric tons CO2e) from public cloud usage.",
"Computation and Communication",
"https://github.com/cloud-carbon-footprint/cloud-carbon-footprint.git"
],
[
"Global weather API for non-commercial use with hourly weather forecast.",
"Meteorological Observation and Forecast",
"https://github.com/open-meteo/open-meteo.git"
],
[
"A repository of custom scripts to be used with Sentinel Hub.",
"Data Catalogs and Interfaces",
"https://github.com/sentinel-hub/custom-scripts.git"
],
[
"Simple and fast watershed delineation in Python.",
"Water Supply and Quality",
"https://github.com/mdbartos/pysheds.git"
],
[
"Track emissions from Compute and recommend ways to reduce their impact on the environment.",
"Computation and Communication",
"https://github.com/mlco2/codecarbon.git"
],
[
"The maintained main firmware for the Luftdaten.Info Sensor.",
"Air Quality",
"https://github.com/opendata-stuttgart/sensors-software.git"
],
[
"Helps you identify the plants and animals around you.",
"Biosphere",
"https://github.com/inaturalist/inaturalist.git"
],
[
"A powerful, format-agnostic, community-driven Python package for analyzing and visualizing Earth science data.",
"Hydrosphere",
"https://github.com/SciTools/iris.git"
],
[
"Arduino Energy Monitoring Library.",
"Energy Monitoring and Control",
"https://github.com/openenergymonitor/EmonLib.git"
],
[
"A self-hosted platform to order meals in your neighborhood and get them delivered by bike couriers.",
"Mobility and Transportation",
"https://github.com/coopcycle/coopcycle-web.git"
]
],
"hovertemplate": "Project Info: %{customdata[0]}
Topic: %{customdata[1]}
Git URL: %{customdata[2]}",
"legendgroup": "",
"marker": {
"color": [
0.0502191609267376,
0.5590631364562118,
0.7925653969710876,
0.4422496570644718,
0.6204849084611579,
0.857922954725973,
0.6445086705202312,
0.7142857142857143,
0.2349794238683127,
0.2347140039447731,
0.1609477124183006,
0.5128504672897196,
0.2469677419354838,
0.8557953408603687,
0.4787922358015816,
0.6231042271700549,
0.7035688273852877,
0.1842105263157895,
0.4519350811485643,
0.752362381880906,
0.4968553459119497,
0.8875,
0.275375939849624,
0.0472103004291845,
0.0844272076372315,
0.7933884297520661,
0.5873827791986359,
0.5675675675675675,
0.4434430752253081,
0.4499999999999999,
0.8300304878048781,
0.0240963855421686,
0.6445714285714286,
0.0604395604395604,
0.8112449799196787,
0.6846435100548446,
0.2967533543150571,
0.8637803590285111,
0.2894736842105263,
0.1738342594829669
],
"coloraxis": "coloraxis",
"pattern": {
"shape": ""
}
},
"name": "",
"offsetgroup": "",
"orientation": "h",
"showlegend": false,
"textposition": "auto",
"type": "bar",
"x": [
6779,
2581,
1085,
946,
899,
894,
871,
870,
869,
844,
834,
826,
793,
783,
761,
733,
731,
717,
691,
677,
654,
652,
652,
651,
634,
628,
611,
590,
590,
587,
567,
559,
547,
540,
536,
528,
520,
519,
508,
506
],
"xaxis": "x",
"y": [
"A/B Street",
"Electricity Maps",
"Emoncms",
"MetPy",
"OpenFarm",
"openfoodnetwork",
"WRF",
"WoBike",
"EVCC",
"Scaphandre",
"Transportr",
"sentinelsat",
"Farmbot",
"EnergyPlus",
"pvlib-python",
"Oceananigans.jl",
"PyPSA",
"palmerpenguins",
"NILM",
"Earthdata Search",
"transitfeed",
"gbfs",
"sentinelhub-py",
"WhiteboxTools",
"netcdf-python",
"pangeo",
"mobility-data-specification",
"CityFlow",
"Streetmix",
"Energy-Languages",
"Cloud Carbon Footprint",
"Open-Meteo",
"Custom Scripts Sentinel Hub",
"pysheds",
"CodeCarbon",
"opendata-stuttgart",
"iNaturalist",
"Iris",
"EmonLib",
"CoopCycle"
],
"yaxis": "y"
}
],
"layout": {
"barmode": "relative",
"coloraxis": {
"colorbar": {
"orientation": "h",
"title": {
"text": "DDS"
},
"x": 0.4,
"y": -0.15
},
"colorscale": [
[
0,
"rgb(237, 239, 93)"
],
[
0.16666666666666666,
"rgb(169, 220, 103)"
],
[
0.3333333333333333,
"rgb(110, 197, 116)"
],
[
0.5,
"rgb(57, 171, 126)"
],
[
0.6666666666666666,
"rgb(13, 143, 129)"
],
[
0.8333333333333334,
"rgb(15, 114, 121)"
],
[
1,
"rgb(36, 86, 104)"
]
]
},
"dragmode": false,
"height": 1000,
"hoverlabel": {
"bgcolor": "white"
},
"images": [
{
"sizex": 0.05,
"sizey": 0.05,
"source": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAD20lEQVR4nO2ZTWgcZRjHf8/spjWkFYmKmbR+oVKaCPbQU8i2tCBqEbrU7LIJVhG0PVWQih4UehAVQVAkAQ/qRW1WdhPrB+pJ1DQF6aEnQ0WqqCQbhfpFW6nJzOMhBgQ3u+/MvPORmP91n/n/nx/v7DvPvCOqyv9JTtoNJK114LWufBIh5TIbZj3uQLldhJtV2CJwlfrkpicpJtHDsmIDHtzPZjo4gM8IQkGgE1n6Tf7ZJ0W4HFf+SrIOvLvI9YsORyXPwyhdy5BZkTXgwf1s1jzHJMejAh22fG3LCnDhAHeT53WBXht+cSoS8J495Beu5nmEo5C1m7e5QgPv28fGxW7eQhmy2VDcCgV81wN0XezkE2DQcj+xKzDwzsN0XHGJGqsQFkJMWp3nGUO5J45mklCgFS7cx0GFRyzk/izCT6p8Z8ErkMT09XCgzBZnkRmEK0NmTaswicd70+9yLqRHZBmvcM7jZQ0He1qEZ6bqfBDiWusyWuGBEgOOz3RAb1+Ep05O8IIqmTllMFphR3k6oO8FUYanJvgwRE+xqu0K7yrT53t8FcDTE6U4NZk9WDB4LKnHg0EMVXgiq7DQBlgEAUYC+H15aoKXorUUr1oCF0psV9hqaibK41naoJqpJbDvs9fYSflsapKTkTuKWa3/w8oOUyOBetRmklC7TWuboY86Pu9HbSYJtQO+0dDn/Ocn+DFqM0mo9S6N8Sg5Z6GXRNRy0lIYUyHXzkSUb+y1FK+M35bWitY/tSQhaVQvAxvaV+oX6g7vtpmd1gpfMCsT13ZwWsC/GdZZP9hPCVi/NSzsktnjO2wmpwOs8rVxrThFm9HpADt62rhWGBKLn3HSAfbl0wDV/cxVy7aiUxs8pFGdAbYblp/j11yf9pX+ipqb5uBxPEDtLXT7L9oITRHYfxPwjMtVj0jjnUNRU1MDVnfkeyTooYGOSmP8cJTcdGfpRX0OAp2BdYC8KnPVUZmpGYym/1Xqb0syP/4GKg+FuPQHkGdxz76mHPON89IHrl2LemeB7nAOOoNSBzmhvZUzbfPSBgaQ+eoQSs2C1Z8IsygNdSu7mhVk4n1Yeyp1lDELVp0otwKFlQoyAQxA7x+PAR/HHZMZYOXQAs5CCTgVZ05mgAH0uoMXYdOdIB/FlZEpYAB1772E+3sRYTQO/8wBw9LtrT2VIwgl4Beb3pkEXpb2VOp4uduAVwDj4aKVMvEcNpHMj/ej8iQwjMFpq7qVpocGqwZ4WdKo3QDe/Sx9qO9fqW7NAP9bMvv2VnL5vcBOVLcBNwHXAJvUrWxses1qBg6jTG9acWgdeK3rb5uuGEmTzESgAAAAAElFTkSuQmCC",
"x": 1,
"xanchor": "right",
"xref": "paper",
"y": 0,
"yanchor": "bottom",
"yref": "paper"
}
],
"legend": {
"tracegroupgap": 0
},
"margin": {
"b": 0,
"l": 0,
"r": 0,
"t": 40
},
"showlegend": false,
"template": {
"data": {
"bar": [
{
"error_x": {
"color": "#2a3f5f"
},
"error_y": {
"color": "#2a3f5f"
},
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
},
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "bar"
}
],
"barpolar": [
{
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
},
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "barpolar"
}
],
"carpet": [
{
"aaxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"baxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"type": "carpet"
}
],
"choropleth": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "choropleth"
}
],
"contour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "contour"
}
],
"contourcarpet": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "contourcarpet"
}
],
"heatmap": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmap"
}
],
"heatmapgl": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmapgl"
}
],
"histogram": [
{
"marker": {
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "histogram"
}
],
"histogram2d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2d"
}
],
"histogram2dcontour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2dcontour"
}
],
"mesh3d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "mesh3d"
}
],
"parcoords": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "parcoords"
}
],
"pie": [
{
"automargin": true,
"type": "pie"
}
],
"scatter": [
{
"fillpattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
},
"type": "scatter"
}
],
"scatter3d": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatter3d"
}
],
"scattercarpet": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattercarpet"
}
],
"scattergeo": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergeo"
}
],
"scattergl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergl"
}
],
"scattermapbox": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattermapbox"
}
],
"scatterpolar": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolar"
}
],
"scatterpolargl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolargl"
}
],
"scatterternary": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterternary"
}
],
"surface": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "surface"
}
],
"table": [
{
"cells": {
"fill": {
"color": "#EBF0F8"
},
"line": {
"color": "white"
}
},
"header": {
"fill": {
"color": "#C8D4E3"
},
"line": {
"color": "white"
}
},
"type": "table"
}
]
},
"layout": {
"annotationdefaults": {
"arrowcolor": "#2a3f5f",
"arrowhead": 0,
"arrowwidth": 1
},
"autotypenumbers": "strict",
"coloraxis": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"colorscale": {
"diverging": [
[
0,
"#8e0152"
],
[
0.1,
"#c51b7d"
],
[
0.2,
"#de77ae"
],
[
0.3,
"#f1b6da"
],
[
0.4,
"#fde0ef"
],
[
0.5,
"#f7f7f7"
],
[
0.6,
"#e6f5d0"
],
[
0.7,
"#b8e186"
],
[
0.8,
"#7fbc41"
],
[
0.9,
"#4d9221"
],
[
1,
"#276419"
]
],
"sequential": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"sequentialminus": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
]
},
"colorway": [
"#636efa",
"#EF553B",
"#00cc96",
"#ab63fa",
"#FFA15A",
"#19d3f3",
"#FF6692",
"#B6E880",
"#FF97FF",
"#FECB52"
],
"font": {
"color": "#040404",
"family": "Open Sans",
"size": 15
},
"geo": {
"bgcolor": "white",
"lakecolor": "white",
"landcolor": "#E5ECF6",
"showlakes": true,
"showland": true,
"subunitcolor": "white"
},
"hoverlabel": {
"align": "left"
},
"hovermode": "closest",
"mapbox": {
"style": "light"
},
"margin": {
"b": 0
},
"paper_bgcolor": "white",
"plot_bgcolor": "#E5ECF6",
"polar": {
"angularaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"radialaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"scene": {
"xaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"yaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"zaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
}
},
"shapedefaults": {
"line": {
"color": "#2a3f5f"
}
},
"ternary": {
"aaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"baxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"caxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"title": {
"font": {
"color": "#040404",
"family": "Open Sans"
},
"x": 0.05
},
"xaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
},
"yaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
}
}
},
"title": {
"text": "Projects with the most stars"
},
"xaxis": {
"anchor": "y",
"domain": [
0,
1
],
"title": {
"text": "Stars"
}
},
"yaxis": {
"anchor": "x",
"autorange": "reversed",
"domain": [
0,
1
],
"title": {}
}
}
}
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"top_stargazers = df_active.nlargest(40, \"stargazers_count\")\n",
"\n",
"fig = px.bar(\n",
" top_stargazers,\n",
" x=top_stargazers[\"stargazers_count\"],\n",
" y=top_stargazers[\"project_name\"],\n",
" orientation=\"h\",\n",
" custom_data=[\"oneliner\", \"topic\", \"git_url\"],\n",
" color=top_stargazers[\"development_distribution_score\"],\n",
" color_continuous_scale=color_continuous_scale,\n",
")\n",
"\n",
"fig.update_layout(\n",
" height=1000, # Added parameter\n",
" #width=700,\n",
" xaxis_title=\"Stars\",\n",
" yaxis_title=None,\n",
" title=\"Projects with the most stars\",\n",
" coloraxis_colorbar=dict(\n",
" title='DDS',\n",
" orientation='h',\n",
" y=-0.15,\n",
" x=0.4\n",
" ),\n",
" hoverlabel=dict(bgcolor=\"white\"),\n",
" dragmode=False,\n",
")\n",
"\n",
"fig.update_traces(\n",
" hovertemplate=\"
\".join(\n",
" [\n",
" \"Project Info: %{customdata[0]}\",\n",
" \"Topic: %{customdata[1]}\",\n",
" \"Git URL: %{customdata[2]}\",\n",
" ]\n",
" )\n",
")\n",
"fig[\"layout\"].update(margin=dict(l=0, r=0, b=0, t=40))\n",
"fig.add_layout_image(\n",
" dict(\n",
" source=logo_img,\n",
" xref=\"paper\",\n",
" yref=\"paper\",\n",
" x=1,\n",
" y=0,\n",
" sizex=0.05,\n",
" sizey=0.05,\n",
" xanchor=\"right\",\n",
" yanchor=\"bottom\",\n",
" )\n",
")\n",
"fig[\"layout\"][\"yaxis\"][\"autorange\"] = \"reversed\"\n",
"fig.update(layout_showlegend=False)\n",
"config = {\n",
" 'toImageButtonOptions': {\n",
" 'format': 'svg', # one of png, svg, jpeg, webp\n",
" },\n",
" 'responsive':'true'\n",
"}\n",
"fig.show(config=config)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"```{figure} data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\n",
":figclass: caption-hack\n",
":name: popularity-in-stars\n",
"\n",
"\\- Projects with most stars \n",
"```"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Here, the accessibility of different domains and applications must also be taken into account. Projects such as [A/B Street](https://a-b-street.github.io/docs/software/abstreet.html), [Electricity Map](https://app.electricitymaps.com/map), [OpenFarm](https://openfarm.cc/), [Open Food Network](https://openfoodnetwork.org/), [Emoncms](https://emoncms.org/), [StreetMix](https://streetmix.net/), or the [Farmbot](https://farm.bot/), have relatively lower barriers to entry for software developers and end users. These projects can speak to a wide audience and require less specialist or technical knowledge for contribution and usage. Hence there is greater awareness in general.\n",
"\n",
"```{figure} ../images/a_b_street.jpeg\n",
"---\n",
"width: 100%\n",
"---\n",
"\\- [A/B Street](https://a-b-street.github.io/docs/software/abstreet.html) - Transportation planning and traffic simulation software for creating cities friendlier to walking, biking, and public transit. License: [Apache-2.0](https://github.com/a-b-street/abstreet/blob/master/LICENSE)\n",
"```\n",
"On the other hand, popularity should not be conflated with impact. [BiodivMapR](https://github.com/jbferet/biodivMapR), for example, has the potential to create a global map of biodiversity based on multispectral satellite images. Projects on sanitary problems or biogas, such as [Santiago.jl](https://github.com/santiago-sanitation-systems/Santiago.jl), are also apparently less popular based on the star metric but can have a significant impact on energy supply and water quality respectively.\n",
"\n",
"```{figure} ../images/biodivmapr.png\n",
"---\n",
"width: 100%\n",
"---\n",
"\\- [biodivMapR](https://jbferet.github.io/biodivMapR/index.html) - An R package for α- and β-diversity mapping using remotely-sensed images. The left image shows the visible spectra with multiple validation sites. the right image shows the derived biodiversity. License: [GPL-3.0](https://github.com/jbferet/biodivMapR/)\n",
"```"
]
}
],
"metadata": {
"celltoolbar": "Tags",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10 (default, Nov 14 2022, 12:59:47) \n[GCC 9.4.0]"
},
"tags": "full-width",
"vscode": {
"interpreter": {
"hash": "e7370f93d1d0cde622a1f8e1c04877d8463912d04d973331ad4851f04de6915a"
}
}
},
"nbformat": 4,
"nbformat_minor": 4
}