Google Summer of Code

This Summer, Open Climate Fix took part in Google Summer of Code (GSoC) for the first time. We were lucky enough to be joined by four mentees for the programme, with each bringing their own passion and interest in sustainability to their individual projects. From increasing the accuracy of our solar forecasting tool Quartz Solar, to implementing GenCast into our forecasts, our mentees have produced some incredible results during their time with us. 

Keep reading to learn more about the GSoC experience and our mentee’s individual projects.

Mentee Aryan Bhosale, Solar Inverter Integration 

Aryan had been a regular contributor to our GitHub prior to applying to join Open Climate Fix as a GSoC mentee, and so we were thrilled to see his name during the application process.

Aryan’s project added a feature to our open source solar forecasting library which allows users to integrate with their solar panels, meaning their live solar data can be used as inputs to forecast solar power for their homes. Excitingly, the work Aryan has completed for us can be used to add live data into the forecast, which could lead to an accuracy improvement of 10-20%.

My GSoC experience was incredibly enriching. Working with Open Climate Fix allowed me to dive deep into integrating real-time solar data and expanding the Quartz Solar Forecast’s capabilities. Weekly meetings with Peter and Sukh, especially during those intense debug sessions, were invaluable. Even outside of our scheduled meetings, they were always available on Slack whenever I had a doubt or made a new discovery, ready to provide guidance. 

– Aryan Bhosale, GSoC Mentee

The initial plan was to add support for just one solar inverter brand but Aryan made such great progress that we ended up being able to support four brands; Enphase, GivEnergy, Solis and Solarman. 

“It was great working with Aryan, both having him deliver important new features for our open source ecosystem as well as seeing him grow as a software engineer during this process working across our stack”

– Sukhil Patel, Machine Learning Engineer and GSoC Mentor

Rosheen Naeem, Temporal Fusion Transformer Model Implementation

Rosheen is an Amsterdam-based software engineer who was mentored by Zak Watts, our Solutions Analyst, throughout her project to enhance our forecasting capabilities. Her work focused on developing a more advanced and accurate model to improve solar forecasting within Open Quartz. After evaluating various options, she selected the Temporal Fusion Transformer (TFT) model, a powerful machine learning model specifically designed for time-series forecasting. TFT leverages historical data to make observations and generate predictions, making it particularly well-suited for capturing the patterns needed for solar forecasting. By implementing the TFT model, Rosheen aimed to provide more accurate forecasts than the existing models currently used in Open Quartz.

“I enjoyed working with Rosh during her internship. It was great to see her machine learning skills develop alongside her confidence in addressing the challenges of complex weather datasets.”

– Zak Watts, Solutions Analyst

Rosheen successfully prepared a comprehensive dataset for solar forecasting by incorporating weather forecasts for variables such as cloud cover, solar irradiance, and temperature, provided by the European Centre for Medium-Range Weather Forecasts (ECMWF). By combining these weather forecasts with historical generation data, from hundreds of household solar sites across the UK, she created a dataset suitable for training future machine learning forecasting models. Additionally, she successfully trained and tested the Temporal Fusion Transformer (TFT) model to make 36-hour solar generation predictions using this dataset.

This plot shows how important each variable is for the model. The bigger the bar, the more impact the variable has on the forecast.

Giuseppe Bruno, GenCast Model Implementation and Training

Giuseppe is a Master’s student in mathematics at the University of Pisa interested in contributing to climate-focused projects. During the GSoC programme his lead mentor was our Head of Technology, Peter Dudfield, with his project focused on developing an unofficial implementation of GenCast. GenCast is a cutting-edge forecasting model designed by Google DeepMind, created to enhance weather forecasting accuracy. 

The majority of advanced machine learning weather models for medium-range forecasts give single, specific predictions. However, these single forecasts tend to become less reliable over time and don’t fully capture how weather can vary. GenCast combats this issue by generating a range of possible weather scenarios. The model is trained using past weather data, allowing it to provide more flexible and realistic forecasts over longer periods.

Visuals comparing forecast and ground truth of three different weather variables.

GenCast integrates diffusion models, sparse transformers, and graph neural networks (GNNs) to improve upon the GraphCast model with a score-based generative approach. This innovative combination aims to revolutionise weather prediction, significantly contributing to climate research and mitigation efforts. Additionally, GenCast supports ensemble predictions to assess the probability of extreme weather events. 

“My favourite part of the GSoC experience as a mentee was the opportunity to work on my project while learning a vast amount of new concepts. It was amazing to experiment with different approaches and ideas under the guidance of experienced mentors. It was also incredibly fulfilling to know that my efforts contributed to an organisation dedicated to creating a meaningful, positive impact on society.”

  • Giuseppe Bruno, GSoC Mentee  

If you’re interested in exploring Giuseppe’s model implementation, you can explore his repository on our GitHub.

GenCast Model Architecture

Lorenzo Breschi, Temporal Fusion Transformer Model Implementation

Lorenzo is a PhD student at the University of Trento in Italy, researching high performance artificial intelligence for climate change. His project focused on reimplementing the Fengwu-GHR model in the graph_weather repository.

Visuals depicting the forecasting comparison between three models, including FengWu-GHR and the operational ground truth.

Lorenzo and his mentor, Jacob Prince-Bieker, chose this specific model to implement due to its interesting and unique approaches to forecasting. The model forecasts far into the future and at high resolution using low resolution training data, a new and exciting addition to our GitHub. Prior to Lorenzo’s work, the authors hadn't released source code or a trained model to go along with the paper, so we wanted to create a public implementation of it instead.

Lorenzo did a great job reimplementing the paper, executing an application that closely matches the theoretical research, whilst also being interoperable with the rest of the components of graph_weather. Future contributors could look to re-train the model and release model weights, as the current iteration is ready for training in the future, or for using the components with other weather models.

Future Contribution Opportunities 

“It was amazing to be part of GSoC this year, we had four talented candidates working on a wide range of issues, helping to expand our portfolio and increase our capability to reduce carbon emissions. We would love to take part in the future!” 

– Peter Dudfield, Head of Technology, Open Climate Fix

At Open Climate Fix, we believe encouraging an open approach to development and data is the fastest way to reduce carbon emissions. With collaboration at our core, the GSoC programme aligns with our values and has been an incredible experience for the team. 

If you would be interested in taking part in GSoC with us, keep an eye out on our LinkedIn for any news about applications for the next cohort. 

In the meantime, our GitHub has a variety of repositories you can contribute to, with each of them labelled with a traffic light system indicating difficulty level to make them easy to navigate. We also encourage you to check out our Good First Issues page, which is regularly updated and provides a great starting point to contributing, particularly if you’re new to open source! 

Finally, if you have any questions about our code or data, or if you have an idea for a project you’d like to share with us, we encourage you to open a thread on our GitHub Discussions page, where a friendly member of our technical team can support.