MPP Global Project Tracker - Tracking industrial decarbonisation efforts

The MPP Global Project Tracker has been developed to reveal the gap in industrial decarbonisation efforts. To get on track for a net-zero future, nearly 600 additional near-zero, decarbonised industrial plants in sectors from steel to aviation need to reach the Final Investment Decision stage within the next 3 years.

It presents both an overview map of projects for each industrial sector globally and a projects pipeline tracking progress against decarbonisation targets. With this app we tried to push the limits of what is possible with Plotly Dash in terms of design and user interaction. Below I would like to give you an overview of tech stack components and approaches we used (as the code isnā€™t public yet):

Project Map

  • An overview modal made with Dash Bootstrap Components to greet the user and display current status of each industrial sector.

  • Dash Leaflet for map rendering with a custom Mapbox base map. Both point (projects) and line features (shipping or trucking routes) are processed with GeoPandas and rendered with dl.GeoJSON wrapped within dl.FeatureGroup and dl.Overlay. While each industrial sector is represented by an individual layer, the status filter is realised with custom javascript functions made with the Dash Extensions javascript module. The same approach has been used for status-specific point styles and custom tooltips shown on mouse hover. Dash Leaflet quickly became our favourite mapping library due to its flexibility, nested approach and the option to use Dash Callbacks to activate and deactivate layers (targeting the ā€œcheckedā€ attribute of dl.Overlay) without requesting the same data repetitively from the server.

  • A custom legend displaying several layers and filters which all communicate with Dash Leaflet components via callbacks - we needed more control over our design than dl.LayersControl would allow for.

  • A scrollable ticker box just above the map to show summary stats for all sectors that are currently active in the map.

Pipeline

All charts are based on Plotly Graph Objects and have been tweaked to realise the distinct design and layout. Components and parameters we used include:

  • go.Bar for horizontal bars representing the different statuses per sector.

  • fig.add_shape() to add dashed lines around specific bars, horizontal lines to complete boxes and to draw the shape representing a ā€œ2030 Goalā€. Using the type=ā€œpathā€ gave us granular control over each shapeā€™s position within the same reference system dynamically calculating coordinates from data points.

  • Adjusting margins, paper/plot background colors and removing grid, lines and labels with fig.update_layout().

  • The first overview chart on the page consists of individual Graph Objects per Sector, allowing us to integrate them with a responsive layout, manually adding icons and labels for each sector with HTML components and CSS styling using Bootstrap

Data processing

For the first couple of iterations our project partner provided Excel files, but we wanted to design a future-proof data processing pipeline that allows us to switch to a smarter CRUD framework at a later stage to apply updates to the project database. Therefore, instead of loading the raw data straight into Pandas/GeoPandas and visualize it, we upload data to a PostgreSQL database. Whenever a new version of the app is deployed, a postdeploy script fetches the latest data from Postgres, does some processing (e.g. summary statistics, shipping route creation) and stores it as Feather files in Dash Enterpriseā€™s Persistent Filesystem. This keeps code in the repository separate from the data and will allow future maintainers to manipulate data directly in our database with a flexible user interface.

Background

Industrial decarbonisation has started but needs to accelerate rapidly to meet 2030 targets. Itā€™s time to accelerate the transition by uniting industries, governments, and investors.

MPPā€™s Global Project Tracker maps announcements, investment decisions and operations of net-zero-aligned industrial projects across critical industrial sectors globally.

The tracker sheds new light on the state of transition in seven heavy industry and transport sectors, which account for 30% of global carbon emissions, and reveals a growing pipeline of net-zero-aligned projects across the ā€˜harder-to-abateā€™ sectors.

However, it warns that rapid acceleration is needed to bring almost 600 decarbonised plants under construction in the coming years to meet deployment goals for a 1.5 C aligned trajectory.

The Global Project Tracker is now live here and maps the location and status globally of net-zero-aligned assets across seven sectors. It enables industry groups to identify potential partners or green hubs, financial institutions to see potential investment options, and policymakers to track progress in their regions and inform decision-making. With quarterly updates, MPP will continue to chart the levers that can unlock progress in bringing a critical mass of projects to realisation this decade.

1 Like

Hello,

Very interesting !
I love how the app does not look like a typical Dash dashboard. The map looks great (not ta typical leaflet map either) and snappy even if you have a lot of datapoints. Well done.

May I ask how much time did it take to you to build the Dash app (Only the dash app, excluding the database integration, gathering data, etc.) ?
And what did you struggle the most to do ?

Thanks for sharing @funveen .
We also put this dashboard on the Plotly Explore Page :ok_hand: