I am trying to obtain a full England postcode map (polygons) out of free (and reliable) data out there.

The English National Office of Statistics does share a huge list of postcodes and some information I am not acquainted with and I was wondering if there was a way to use QGIS and this info to create a workable map to plot some points?

This dataset contains information from the Ordnance Survey, consisting of a list of all UK postcodes, together with their locations as Easting/Northing and as latitude/longitude. Each postcode links to the local authority district and LSOA that contains the postcode 'centroid'.

As per @Joseph advice, I downloaded an OS boundary map, then uploaded it on QGIS. All good. Then I downloaded the OS Code-Point® Open, which is a .csv file. I uploaded one of the csv "ab" on QGIS (where X = Northing and Y = Easting; CRS = 27700). I could see some points (see below).

enter image description here

Next I executed the command "Join attributes by location" (see below), but I didn't get the expected results (a map with the postcodes delimitation) - again, see below. enter image description here

enter image description here


If you're trying to create a polygon layer that covers each postcode for free, then I've done something like this before using OS Codepoint Open (just for Milton Keynes I might add). The OS website even describes how they made their data for the CodePoint with polygons layer (Look at 4th question "How accurate..."):

Code-Point with polygons is derived from ADDRESS-POINT®, the Ordnance Survey dataset that provides National Grid (NG ref) coordinates for each postal delivery address in Great Britain, mainly to a 0.1metre resolution. The Thiessen process tessellates these points, then the address boundaries inside each postcode are dissolved away, leaving boundaries for the postcode units.

Essentially how they did this was to voronoi every postcode point, then dissolved the inner boundaries of all matching postcodes, giving the overall postcode area. OS go on to explain they tidy the data up to follow natural break such as roads or rivers.

If you were to do this for the whole of the UK you would either have to merge all the CSVs together, or once an areas polygons have been created, then you will have to clean up any overlaps between neighbouring postcodes created from differenct CSVs.

| improve this answer | |
  • As discussed in the answer above, we've done this for postcode area, district and sector levels available to download here. Our reconstruction is based on CodePoint open though - which has geocodes to unit postcode level (a unit postcode typically covers around 15 houses). From the text you've quoted it sounds like Ordnance Survey do their Voronoi reconstruction based on address (building?) level geocodes, which would be a much more accurate reconstruction than can be done with free data (so more accurate than yours or ours). – Open Door Logistics Jul 4 '16 at 19:09

Have you seen this link? You can download their shapefile which contains the main postcode boundaries.

Alternatively, you can get hold of district polygon shapefiles from OS OpenData and with your postcode csv data, you can run a spatial join tool in QGIS such as:

Vector > Data Management Tools > Join attributes by location

| improve this answer | |
  • yes I have seen the first links but I didn't understand why there was the first three digits + another number (e.g. KT12 5). I'll try the other tip – pdx May 16 '16 at 11:59
  • @pdx - I think the last digit represents the group of 'inter' postcodes. So KT12 5A contains postcodes such as KT12 5AA, KT12 5AB, KT12 5AD etc. – Joseph May 16 '16 at 12:10
  • could you explain more in details this spatial join tool? I have a normal vector layer .shp of Britain and then I need to add all the .csv postcode files as "Add delimited text layer"? – pdx May 16 '16 at 12:50
  • @pdx - Yes, apologies, use the "Add delimited text layer" and choose the relevant settings. It should then appear as a point shapefile. Make sure the CRS (Coordinate Reference System) for both the point and polygon shapefile are the same and then you should be able to run the tool. – Joseph May 16 '16 at 12:53
  • 1
    @pdx - my company makes the postcode reconstruction in the first link. They're as accurate as you can using the free Ordnance Survey codepoint unit postcode data, so they're similar to what you'd get if you tried joining them in QGIS, See wikipedia for details on postcode formats. We don't provide unit postcode boundaries (e.g. for NW1 2AA) as all you would get would be a simple Voronoi cell shape (i.e. totally inaccurate). – Open Door Logistics Jul 4 '16 at 19:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.