A Scalable Approach for Spatio-Temporal Assessment of Photovoltaic Electricity Potentials for Building Façades of Entire Cities

Christian Braun

Playlists: 'foss4g2019' videos starting here / audio / related events

The assessment of renewable energy potentials in urban environments gained a lot of interest in the recent decades due to CO2 reduction goals by cities, national policies as well as directives by the EU. In combination with advances in data creation and processing as well as the definition of standards like CityGML, new ways of modeling urban potentials have been developed. This lead to numerous approaches estimating roof-top solar photovoltaic (PV) production. However, in recent years due to research in building materials, the façades became more attractive and feasible for PV electricity production.
This paper describes results on the development of an completely FOSS-based approach to assess the electricity production potential by building façade PV. To estimate solar irradiation we followed the hemispherical viewshed approach described by Fu, 1999. Combining it with an approach to dissect walls into regular 3D point grids (1 meter spacing) we calculate the sun visibility (each hour) and the sky viewshed throughout the year. This results in direct and diffuse irradiation for every wall point. To generate the electricity potential, the irradiation values are summed up for the wall points and are fed into an economic model. This is driven by technical parameters of the installation, such as module efficiency, installation and maintenance costs, figures about payback tariffs and envisaged module lifetime.
The overall result is a city-wide PV suitability and electricity production potential map of every building façade.
The processing is based on a city model in the CityGML format using the 3DCityDB database and the spatial processing functionalities of PostGIS. A set of Python scripts has been developed as a central control instance. The scripts control the processing of direct and diffuse irradiation as well as clear sky irradiation relying on the external “pvlib” Python library. Furthermore, we use the scripts to manage parallel processing of queries against the database to achieve scalability and improved performance. The parallelisation is done by processing single building walls. We run a case study with approximately 7000 single wall elements to process. We identified so far one of the major bottlenecks of the approach. This are the calculations of sun visibility for every wall point per timestamp (intersection with surrounding buildings) which takes per wall several minutes to process depending on the number of points per wall.
Since we implemented a parallel processing of the walls running on a 80-core dedicated server machine, the completion for an entire city of 3 million wall points uses a decent amount of time for the given size of data set. Here we describe a scalable and highly parallelised approach which can be easily implemented through standard tools and libraries. This open up now for distributed approaches using multiple database servers for even better scalability.