Plot solar panels not added to OSM yet

I was recently discussing with @dct, that it might be valuable to map percent of missing solar panels on OSM per given postal code, to help the contributors find the areas where few panels are being mapped.

It will be the most valuable if it will update itself every day/week.

I was learning visualization recently, so I made proof of concept chart (keep in mind, it’s only POC), where shades represent the percent of solar panels which are missing on OSM(I’ve compared OSM entries with federal data).

To improve it, several issues must be discussed:

  1. Postal code precision - first 3 characters? (federal data has first 4 characters, currently, you see postcode as 2 characters).
  2. The map. I use this one, however, maybe there is better choropleth map to visualize postal codes in the UK with Mapbox?
  3. How to identify Solar panels in the
    The UK? I’ve used the query in the overpass, but I believe the panels can be identified more precisely:

area[“name”=“United Kingdom”]->.searchArea;
( node(area.searchArea)[“generator:source”=“solar”];
out body; >;
out skel qt;


area[“name”=“United Kingdom”]->.searchArea;
out body; >;
out skel qt;

  1. How to visualise it? Some panels are marked as nodes (single point), some as area (polygon). Currently, I represent the polygon panels as nodes.

If you have any ideas, thoughts or remarks, don’t hesitate to comment.


Hi - great idea! I think that would be very motivating for people.

Postal code precision: you suggest “first 3 characters” but postcodes are variable length, so let’s be careful with how we describe it. Have a look at this wikipedia entry about how UK postcodes are formatted - in the example they give “SW1W 0NY” and the terminology is like this:

  • “Postcode area” are the biggest ones e.g. “SW”, i.e. the level used in your proof-of-concept.
  • “Postcode district” are the next smaller granularity e.g. “SW1W”. I used postcode districts when I plotted the FiT data. (By the way, I downloaded my postcode data from here.)

I think plotting at the postcode-district level is the best thing to aim for. We have that info in the FiT data and people can be motivated to work on a manageable local area.

One thing that someone would need to do is to perform some kind of geo query to allocate each OSM solar object to a postcode district, i.e. to find which one it is contained inside. I guess maybe you did that when you made your proof-of-concept?

Re question 3 “how to identify solar panels in the UK”, your query is fine, I think. I should point out that there are also some “solar farm” objects in OSM (having the tag “power:source=solar” among other things) but they usually have one or more solar panel items inside, so perhaps you don’t need to worry about the solar farm objects at all. I guess it depends what you’re intending this visualisation to be good for.

I think it’s fine to represent each solar panel as a node, but it depends what you want to achieve. If it’s just for counting progress it should be fine, right? And there’s not even any need to visualise individual solar panels if you’re simply visualising the number-per-postcode-district.

Oh one other little thing! Can we make it “per cent of panels added” rather than “per cent of panels NOT added”? It’ll be more motivating people to be aiming at 100%, I reckon.

1 Like

[EDIT: I’ve changed the link]

The beta version of the map is ready. Keep in mind, that there are two panes (nominal and percentage, upper right corner). In the final version, the map will be updated daily; I’ll work on that this weekend.

The map is available here. Any feedback will be highly appreciated :slightly_smiling_face:

@SylwiaMielnicka this is so good! Nice work.

I think the % metric is more useful so maybe that could be the default?

Strongly recommend opening it in fullscreen (‘Open’ link in bottom right) - maybe help text could suggest that and add some context as well.

On a wider data point, I just found 8.3GW of geo-located solar in the BEIS Renewable Energy Planning Database (REPD) - I hadn’t come across that before. There are 1139 operating solar installations, I think there may be a smaller (0.2GW) overlap with the FITs database based on the banding, although it could be more:

The coordinates are in British National Grid x y but seem accurate for the few I have eyeballed. I’d expect most of these to be in OSM already because a lot of them are pretty big. But if we do the map with capacity (MW) figures it might colour in some broad swathes of your map pretty quickly.

I’ll be working on this more actively over the next few weeks!

  • Cheers, Laurence
1 Like

Just spotted this. Nice work @SylwiaMielnicka! Looks great. The colour scheme is ace too.


  • I agree with Laurence that the % metric as the default might be a good choice.
  • Maybe it’s also useful to show a table of the same data? Like this postbox example.
  • Would it be useful for the popups to appear on mouseover, instead of on click, so it’s more instantly interactive? Maybe, maybe not.

Looking forward to seeing this in action.

(@laurencew: thanks for mentioning the REPD. In the OSM UK community we’ve already been using that, to map the solar farms - in this wiki table the REPD data is shown along with corresponding OSM objects. I’ve checked every entry of 12 GW or more (a couple of hundred) and other OSM people have been using the REPD list to guide their own mapping too. Thanks to this data, I think getting the big farms in should be very feasible - and our effort should go into the “long tail” of the rooftops…)

Good remarks guys, I will try to implement it.

The data to display can be updated with one line in cmd. I thought to set it up recurrently (once a day/week), however, I’m not able to do it at my hosting server. The code is stored here, if you are able to store it and run automatically somewhere - feel free to do it. Also if you need insights about the code, don’t hesitate to bother me. I can also dockerize it if needed.

1 Like

I’ve added updates to the map:

  • Search panel (for postcode)
  • legend
  • changed color palette

I tested displaying popup on mouseover, it was annoying for small postcodes.
Will be glad for the feedback, especially If it’s displayed properly in the browser.
It finally seems I’m able to run it on my hosting server, to display fresh records every day. I’m in touch with the admins & I will keep you updated.


I’ve managed to set up the CRON job on my server, so the number of panels will be updated daily :slight_smile:
Feel free to share the map :slight_smile:

1 Like

That’s great @SylwiaMielnicka.
One ideal, what if it also had “Expected number of installed panels”? Then people would know where to look for panels to map.

@dct, I’ve added Number of panels remaining to be added OSM which is basically expected (from FIT) - Number of panels added to OSM.

Let me know please if you have any remarks.

This is terrific! Thanks for putting the effort in.

Hi all - I just discovered that Greg Williams (of OSM UK) has made a similar service, separately:

I think it’s based on code he previously used for other mapping stats.