PV Calculate — Making it simple for people to assess whether installing PV panels makes sense for them by sharing a bare minimum of data.

TechLabs Ruhr
8 min readOct 8, 2023

This project was carried out as part of the TechLabs “Digital Shaper Program” in Dortmund (summer term 2023).

In a nutshell:

Over the past few months, it has been our mission to make solar energy more accessible and understandable to everyone. Our PV Calculate platform enables everybody to get a quick understanding of how a solar installation for their roof or area would function. It makes it simple for people to assess whether installing PV panels makes sense for them by sharing just a bare minimum of data.

Introduction:

Our TechLabs journey began with three months of interactive online learning. We dived into our learning tracks — data science and web development — which suited our different goals and levels of experience. Two of us went on the web development track, while the other two chose to dive into the data science track. The online learning phase provided us with a lot of knowledge and allowed us to build our skills. It laid the foundation for the project phase and gave us first tasks to practice on.

We chose the project idea “PV Sketch” which we later renamed to “PV Calculate”. We chose it because solar energy is a clean and sustainable power source, however, many people are confused or scared off by the perceived complexity of assessing the viability of a PV panel for their specific roof. It is difficult for them to determine whether solar panels are a sound investment for their individual circumstances. They must grapple with complex calculations, lots of data and uncertainties about the potential amount of energy produced.

Our team, consisting of two web development and two data scientist trackies, set out to change that. Our goal was to create a user-friendly platform that would empower everyone to quickly understand how a PV installation would function for their roof or area.

Methodology:

We started by brainstorming ideas and defining our project scope. What type of application do we want to create? What should it be able to do and what data would we need? What should it look like and how could we present it in an easy, user-friendly way? These were the questions that guided our initial discussions.

Then our team, composed of two web development and two data science trackies, started to work on a solution by combining our knowledge and the strengths of both tracks:

Web Development:

Our web development team designed an intuitive platform where users could effortlessly and quickly get their individual assessment by inserting as few data as necessary. As we recognized the importance of streamlining the user experience from the start, we decided to eliminate the necessity of setting up a user profile, ensuring that access to the calculator is kept as seamless and effortless as possible.

We started the frontend part of creating the web app that should become our PV Calculate platform by coding an HTML file for structure. Our HTML code serves as the backbone that provides the essential structure and content for our platform, e.g. the navigation, the calculator itself and a footer. The main part of the web app — the “Calculator” section — allowed users to input location, consumption and roof details, simplifying the PV panel assessment process. The footer contains essential notes like copyright, imprint and data privacy notice.

For the styling of our platform, we set up a CSS file. Our CSS code defines the visual design of the web app enhancing both design and functionality. This includes fonts, colours, spacing and button styles — making it visually appealing and user-friendly, while maintaining a consistent colour scheme throughout the stylesheet. Moreover, we refined specific elements within the calculator section, e.g. the toggle buttons and input fields.

To turn our web app into a dynamic and interactive platform, we also added a JavaScript file for adding further elements to the web app. We used our skills learned during the online learning journey to code these interactive elements e.g. allow users to select roof inclination options, show or hide additional information and convert addresses to coordinates as well as displaying the results on the page. Our JavaScript code creates a responsive and interactive user experience that enables users to interact with the platform effortlessly.

We used the Flask web framework to build a user-friendly frontend with HTML, CSS and JavaScript. The user interface we created using Flask allows our platform to collect and process the input data provided by users in the frontend form of the index.html, including parameters like latitude, longitude, surface tilt, surface azimuth and the quantity of PV systems. At a later stage, the input data are forwarded to the results page — which we set up in another HTML file — where it displays the calculation results, i.e. the amount of electricity that could be generated by the potential future PV system of the user. The framework was crucial for building the web interface, handling user input and routing requests to the appropriate functions.

All in all, we worked on creating a dynamic and responsive frontend — from the initial data input to the visualization of results — to ensure a seamless user experience and enable our future users to quickly understand how a PV installation would function for their roof.

Data Science:

Our data science team focused on enabling our web app to provide quick and clear results for users based on as little data offered by users as necessary as well as by retrieving data from — e.g. PVGIS, an European Union database that provides data on solar radiation. In order to do so, our data scientists leveraged various libraries and frameworks to achieve our project’s objectives.

We used Python as our primary programming language. The libraries we used for our platform are PVLIB, pandas and NumPy. The team used pandas for processing irradiance data and performing calculations, while NumPy was used for numerical operations and mathematical calculations.

For location-specific data, we used PVLIB. The latitude and longitude inputs were used to determine the geographic location for solar data calculations. In addition to that, we employed PVLIB’s PVSystem and ModelChain classes to simulate the behaviour of an actual PV panel system. This allowed us to set up PV module and inverter databases, select specific modules and inverters as well as to configure system parameters, e.g. modules per string, strings per inverter.

On top of that, we leveraged the PVGIS database to retrieve irradiance data using the get_pvgis_hourly function. This data was crucial for estimating the energy output of the PV system. We calculated the global horizontal irradiance, direct normal irradiance and diffuse horizontal irradiance. With the irradiance data in hand, we processed it to calculate the POA diffuse and global components. The POA data provides insights into how much sunlight hits the PV panels directly and indirectly.

Moreover, we combined the irradiance data with ModelChain to see AC output of the PV system with the AC being the energy yield in Watts behind the inverter. This allows our platform to run simulations to predict the AC output of the PV system — a step which allows us to estimate the electricity generation for the specified location and system configuration, i.e. the end of a user’s PV system which will be connected to the rest of their home system.

Finally, we presented the results to the user — displaying the estimated electricity generation of their potential PV systems in Watts. The output is based on the quantity of PV systems entered by the user in the calculator form.

Results:

The PV Calculate project is a result of the TechLabs Digital Shaper Program, where our team of web development and data science trackies worked together to create a platform that enables users to easily make informed decisions about installing PV panels on their roofs.

After months of learning and working on our project, we successfully launched our platform. The final result is a user-friendly web platform that simplifies the otherwise complex process of assessing solar viability, enabling users to make quick, informed decisions about whether to install PV panels on their roofs or not. With a user-friendly interface and data-driven insights, our solution bridges the gap between solar energy and individuals. The platform combines a well-designed front-end interface with robust back-end calculations to provide users with estimates of potential electricity generation.

Our web development team designed an intuitive and visually appealing platform. We wanted users to have a seamless experience, allowing them to put in only a few basic information about their roof and location, and receive a clear assessment of the potential benefits of installing PV panels. Users can easily navigate the platform, input their location, roof characteristics, and household information, and receive real-time calculations of the electricity generation potential of a PV system. Moreover, this enables users to effortlessly compare different PV modules and inverters, and the related outcomes for their roof situations.

Through our data science team’s integration of data science techniques and the PVLIB library, the platform performs dynamic calculations based on user inputs. It accounts for factors such as location, roof orientation and solar panel efficiency to estimate potential annual electricity yield of PV systems.

Our project’s key result is enabling users to make informed decisions about whether to invest in PV panels with regards to their specific situation. By providing estimates of potential electricity generation, the platform allows users to assess the economic and environmental benefits of a PV system and make an informed decision.

With our project, we would like to encourage renewable energy adoption and thereby, potentially reducing carbon footprints and energy bills. Therefore, it can have a positive impact on both the environment and personal finances, making renewable energy more accessible for individuals.

Possible next steps could include:

  • More moderate:

○ Improving the accuracy of calculations by integrating more precise data sources and refining algorithms for PV system modelling

○ Adding further features that cater to specific user needs, e.g. including financial ROI estimations, an FAQ/PV knowledge base or integrating available local solar incentives/grants

○ Developing a mobile app to make the platform even more accessible

  • More ambitiously:

○ Including calculator options for energy storage solutions, electric vehicle charging integration, other types of renewable energy generation

○ Building an entire marketplace where different energy companies could offer their products and services

In case you’ve been wondering whether PV panels are a good option for you — which system setup would be best suited for your individual situation — , we would like to invite you to check out our platform!

GitHub repository (or similar):

https://github.com/TechLabs-Dortmund/PV-Sketch

Team members:

  • Kim Janke, Web Development
  • Lea Scheunpflug, Data Science
  • Matthis Berghoff, Data Science
  • Hannah Cordes, Web Development

Team mentors:

  • Milan Niehaus as Project Manager
  • Daniel Wall, Miguel Krause & Philipp Clasen for Data Science
  • Nico Kranz, Nils Jannasch & Tom Stein for Web Development

Sources:

  • PVGIS
  • PVLIB
PV Calculate Platform

--

--