Global warming is an important issue for me. When I saw OpenClimateFix initiative, I wanted to contribute somehow.  I decided to create an interactive map of photovoltaics in the UK.


OpenClimateFix is the initiative which uses volunteers and science to stop climate change. One of the projects aims to collect photovoltaics locations and use them to predict the power they will produce within the next several hours. As a result, the use of backup energy sources could adjust to the prediction and reduce the burnout of fossil fuels. 

The map has two panes (upper right corner). One shows the number of solar panels added to Open Street Map (OSM) for each postcode district. The latter one shows the fraction of all solar panels per postcode district added to OSM. Thanks to it, the volunteers know, which postcode districts have few solar panels’ entries on OSM. The data about photovoltaics installed under the Feed-in Tariffs (FIT, selling the power to the public use) came from here. The data about solar panels provided to OSM was queried by overpass API.

The implementation details can be found on the Github. Also, if you want to display the newly added panels, pull the repository and run in the console

python data_preprocessing/

which will automatically download the locations of the panels from OSM, preprocess them and save the results.


There were several issues, which have an impact on the project:

  • The map (postcode-XXNN.* files):
    • It was missing several postcodes, which were manually added.
    • It was very complex (and heavy). I reduced the size from 10MB to 1.5MB by simplifying the postcodes’ polygons, however, a few postcodes’ polygons disappeared.
    • I had to guess the projection (EPSG 3857)
    • The original map has shifted coordinates, they were manually shifted ~0.18 degrees to the north.
  • About 2% of FIT data have UNKNOWN postcode. It’s possible to approximate their location, but not enough to approximate the most probable postcode district. The UNKNOWN pannels were omitted on the map.
  • Preprocessing of FIT data. The data had to be pivoted and saved manually, as Python crashed by opening heavy xlsx file containing pictures.
  • OSM entries contain solar panels saved as both points (nodes) and areas (ways). o simplify, both single node and the single way were assumed to be one solar panel.

The map

You can see the map below: