Land within cities is used for multiple, often overlapping purposes, the configuration of which is likely to have evolved over time. These uses may vary between day and night and may only be apparent to those familiar with these locations. Additionally, tracking population change over time is vital, though not always straightforward, as successive censuses have used inconsistent boundaries. Nevertheless, being able to summarise such information is highly beneficial for a range of stakeholder applications within cities.
This practical examines how employment, residential geography and population change map onto physical space within the case study Local Authority District of Liverpool. These analyses will assess the extent to which different industry types cluster within Liverpool, and how these attract workers from different areas of the city. Liverpool has also suffered for decades from population decline, however this trend has been reversed recently. This practical enables the analysis of both current and past trends in population change, which vary substantially within the city. The objective of this practical is to use GIS to analyse the socio-economic geography of Liverpool. You will take on a role as an economic advisor who has been tasked with assessing potential areas where a financial services company may wish to relocate within the city.
You will also be developing the following GIS skills and understanding:
Building on this practical exercise, you will conduct a similar piece of research focused on the Liverpool City Region. Your task will be to explore both day-time and night-time populations as well as population change between 1991 and 2011 (you can explore more recent data too).The analysis should consider various employment areas across LCR and identify regions of both positive and negative population growth. You are required to create several maps, tables, and graphs to effectively illustrate your findings and document your GIS analysis. In addition to the visual elements, you will write a concise report of no more than 1,250 words, explaining your findings and discussing some implications of the data. (Please note that maps and tables will count towards the remaining 1,250 words). You will receive higher marks for identifying hotspots of population growth, incorporating additional data (e.g., employment), providing evidence of further reading, and outlining the study’s limitations and the potential implications of your findings. Get your data from: Canvas, https://data.cdrc.ac.uk/geodata-packs, http://reshare.ukdataservice.ac.uk/852498/ and https://www.nomisweb.co.uk/default.asp
For the assignment data go to https://data.cdrc.ac.uk/geodata-packs and download the Census Residential Data Pack 2011* or Mid Year Population Estimates and Census Workplace Data Pack 2011 for Liverpool City Region (Geography Type - Combined Authorities). You will be required to register if you are using this data repository for the first time. 2021 Census residential population data for Liverpool City Region is available from Canvas.
Let’s start off by adding data to the map display. First, we add the ONS population data - Annual Mid-year Population Estimates, 2013 for Liverpool. Then, familiarise yourself with the ONS methodology for population estimation provided in the link below: http://www.ons.gov.uk/ons/rel/pop-estimate/population-estimates-for-uk--england-and-wales--scotland-and-northern-ireland/2013/stb---mid-2013-uk-population-estimates.html. The Pop data 2013-18 also contains mid-year population estimates for a number of years (2013-2018). In this practical, we will use the population estimates for 2013 and the latest actual Census data for 2021, but feel free to explore other years as well.
Population_2013
by
right clicking on it and selecting Rename Layer.This will add a layer containing information about Liverpool’s
population aggregated by Lower Super Output Area (LSOA).
QGIS has a number of different ways of navigating around spatial
data.
Explore the data by using some of the navigation tools such as Zoom In, Zoom Full and Pan Map
The Identify Features tool allows you to select an LSOA on
the map and see the attribute information stored in the shapefile about
that LSOA.
Click on any LSOA, a window will appear, titled Identify Results, with information about the LSOA you selected e.g. the LSOA code or total population.
When we add a shapefile, QGIS randomly assigns a colour; you already know from the previous practical how to change it, so play around with different colours for a bit.
Right click on the Population_2013
layer in the
Layers Panels and choose Properties >
Symbology option
Once you’re happy with your selection, click OK and this will close the Layer Properties window and update the colour on the map.
The options you have in this layer will depend on what type of spatial data you are dealing with. The `Population_2013’ layer is a polygon layer, so we can change the colour of the polygons and their borders. Point layers or line layers will have different options.
When we work with a large number of datasets/layers, it may be useful to group them in a logical way, so the Layers Panel appears less cluttered.
OS data
.Now is a good time to save the QGIS project file. It is highly recommended to save your work fairly often as QGIS can occasionally crash and your work may be lost.
To display the population of Liverpool we will initially use the
Population_2013
layer. At the moment we are displaying a
map of Liverpool’s LSOAs and there is no visible information about the
population distribution. However, it would be interesting to see some
spatial patterns, such as population distribution at a small area level.
Based on the skills gained in Practical 1, you should
be able to display such information by creating a choropleth map. Have a
go at classifying the population data. As the population dataset
contains numerical data, a function called Graduated is
typically used, but for categorical data the
Categorized function is more appropriate.
In case you’re not sure how to proceed, follow the steps below:
Population_2013
layerAt this stage, the Symbology window should be filled
as on the picture below:
Now, we are going to change the default colour and adjust LSOA boundaries to make the map look more professional.
Your map should now look something like the one below:
Go back to the Properties/Symbology window
Click on the Histogram tab (next to Classes) and then Load Values
What does it tell you about the population distribution, is the data normally distributed or skewed?
You can also get a summary of the population data by going to Vector > Analysis Tools > Basic Statistics for Fields
Select Population_2013 as your Input layer and all_ages as the Field to calculate statistics on and click Run
The population data we have used so far is from 2013. This data is somewhat outdated and prone to inaccuracies as it consists only of estimates. More reliable population data are collected through the Census, which occurs every 10 years and provides a comprehensive picture of all the people and households in England and Wales. So let’s explore the Census 2021 data.
Population_2021
Population_2021
layer and then
Open Attribute table and see how many LSOA’s there are.
How does it compare to the 298 LSOAs in 2013. How can you explain the
difference? See more info on this issue here: https://ukdataservice.ac.uk/app/uploads/censusgeography2022-10-18.pdfNow, copy the Population_2013
layer by right
clicking on it > Duplicate Layer
Rename the new layer to Over_65
Go to the Attribute Table > Open field
calculator and create a new field. Call it Over_65
and calculate the total number of those 65 and over by creating a simple
equation in the Expression window (something like:
“age_65” + “age_66” + …)
Then following the above steps on classifying data create a new
map showing this time the Over_65
population distribution
in Liverpool - Experiment with various classification schemes and answer
the question below:
How does the distribution of the Over_65
vary from
the total population for 2013, are there any clusters of high
concentration of the ageing population? Check the histogram.
Finally, examine the distribution of the elderly in Liverpool as per Census 2021.
This dataset displays population by age bands, making it easy to filter for those aged 65 and over. Give it a try, but keep in mind that you may need to begin by converting the text field into a numeric one…
Both, the Mid-Year Population Estimates and the Census 2021 pertain to the so-called night-time distribution, as during the day many people commute to their work places. The concept of the daytime population refers to the number of people, including workers, who are present in an area during normal business hours, in contrast to the resident population present during the evening and night-time hours. So let’s have a look at the day-time population in Liverpool, the so-called workplace zones. Start from loading up the relevant data:
WPZONE
layer and explore itYes, there is only one field called WZ11CD, which is a
unique code for UK Workplace Zones. Importantly, there isn’t any
population data attributed to the layer, so we need to add this
information. As you probably remember, this can be done by joining
numeric tables. In order to join tabular data, it is necessary that both
of your datasets have a common attribute (e.g. a name, unique reference
or code). Can you identify the common field for the WPZONE
layer and WP102EW
table? If you open the
WP102EW table you will notice that the first field is
called WZ11CD, so yes - our join will be based on that
field.
Right-click on the WPZONE layer, select
Properties and click on the Joins
option on the left-hand side
Click on the plus button to create a new join.
The Add Vector Join dialogue box will open
Make sure that WP102EW is selected in the Join layer dropdown box
WZ11CD should be selected in the Join field dropdown box
WZ11CD should also be selected in the
Target field dropdown box (as per picture below)
Hit OK twice
Open Attribute Table of the WPZONE
layer and you
will see that several new fields have been added to the Attribute table!
Please ask for help if this is not the case.
So, now we should map the Workplace zones population, but there are
two things that we need to do before. First, the join that we have made
is not permanent. By now you should know how to make a Join layer
permanent, so go ahead and name the permanent layer
WZ_population
(if you experience any problems with it, go
back to Practical 1, section 2.4.1). Second, we need to rename the
columns in the Attribute Table as the existing ones do not make much
sense. You can get the relevant column names from the table called
variables_description.csv, saved in your working
directory/Workplace Zone.
To rename the variables follow the steps below:
There are two or more ways of renaming variables in QGIS. In Practical 1, we used a tool called Refactor fields, however, in GIS there is normally more than one way of doing the same thing. So now, we will use a different method (using Field calculator), where we will create new columns and name them appropriately.
The Field calculator is often used to interrogate spatial data and perform calculations on the basis of existing attribute values or defined functions, e.g. to calculate length, perimeter or area of spatial features. The results can be written to a new attribute column or they can replace already existing values. Please follow the steps below:
WZ population
layerWZ_pop
in the Output field
name box and choose Integer(64bit) as your output
field typeWP102EW_WP
or something
very similarWP102EW_WP
WP102EW_2
column too -
name it Density (use Decimal number (real),
set Precision to 2, if you can change it)WP102EW_1
column - what would
you call it?You can also use Field calculator to calculate
night-time population density at LSOA level, which at times is more
useful than just simple population counts. All you need is population
count and the area for each LSOA.
Go to the Population layer > Open Attribute Table > Toggle editing mode > Open field calculator
Create a new field (name it Area, output type - decimal number, precision 2) > Geometry > $area, click OK
Now, to create population density column, divide values from the
all_ages
column by the Area
using a simple
spatial query in the Field calculator
Tip: use 'ha' rather than 'sqm' to calculate the Area field; you can adjust this in Project properties > General > Measurements, accessed from the Project menu
This method can be used with any count data including working population, employment, protected species and so on. So now create a map of residential population density at LSOA level in Liverpool
Now you are ready to map the workplace zones population in Liverpool:
Create a map of WZ population by following the steps from Section 2.2.4
Use WZ_pop column to classify the data and apply
Greens as the Color ramp
Your output map should look something like the one below:
How simmilar are spatial distributions of the day and night-time population in Liverpool?
Can they be directly compared?
Also, can you think of a location of the major employers in Liverpool such as the Universities, Hospitals, Airport or retailers? Is there any pattern?
In order to identify the major employers in Liverpool we will use the
FunctionalSite
layer from the OS dataset folder.
Our basic analysis will be comprised of two steps. Firstly, we will
select those areas that have the highest numbers of WZ population count
- let’s say above the 5th quantile, which in our case is 658 people.
Then we will use this information to extract the Functional Sites that
are located within
the selected Workplace Zones. The steps
below provide some help:
Open Attribute Table of the
WZ_population
layer
Click on the Select features using an expression
button
In the expression window type this simple query: “WZ_pop” > 658 (it may not work if you do simply copy > paste) and then click Select features
Now, you should have all the WZ with the population above 658
selected - 86 WZs in total
To select the Functional Sites that intersect with the selected
WZ go to Vector > Research Tools > Select by
Location
Select features in Functional Site that intersect with WZ_population
Click Run
Check your output against the map below:
Export the selected features in the FunctionalSite layer
as a new shapefile and name it WZ_FunctionalSites
(Right
click FunctionalSite > Export > Save Fatures As…
)
Note: If you are getting an error saying: Feature has invalid Geometry… This can be fixed by enabling the Processing Toolbox (right-click the top anywhere and toggle on) click on Toolbox to open it and then type Fix geometries.
Put WZ_population as your Input layer.
Click the (…) next to [Create temporary layer] to save to your directory. Choose where to save the output and name it WZ_population2.
Continue the rest of the instructions with the newly saved (WZ_population2) shapefile.
Labels can be added to a map to show some information about an object/spatial entity. Any vector layer can have labels associated with it. These labels rely on the attribute data of a given layer for their content. In this practical, we will display labels for the WZ_FunctionalSites layer. Follow the steps below:
As we have labelled all the sites, the labels tend to overlap and as such, are not very useful. Ideally’ we would show only those labels for the major employers such as hospitals, universities and the airport.
This can be executed by using the Rendering function within the Labels window. You need to create a simple SQL query that will select the above mentioned sites. This method gives you full control over the lables you want to display.
Under Rendering>Label options, scroll down to
the Data defines>Show label button
Click on it and select Edit..
In the window that opens up, write a simple SQL query that will
select the required three features
Familiarise yourself with the concept of SQL queries (the
commands used to interact with and manipulate databases), and in
particualr explore ‘SQL LIKE’ operator and ‘SQL Wildcards’ here: https://www.w3schools.com/sql/sql_wildcards.asp and try
doing it yourself.
However, if you get stuck, the following query should be helpful
“distname” LIKE ‘%Hospital’ OR “distname” LIKE ‘%Airport’ OR
“distname” LIKE ‘%University%’ (Why did we have to use the %
sign?)
Then experiment a bit more with your labels:
One of the most useful options is to be able to move labels manually
as the default placement, offered by QGIS, may be far from ideal… The
build in option of Label Placement
is very limited and it
may be very tricky to get your labels in a desired place, so the
solution is here:
Now, clip the WZ_FunctionalSites
layer to the
boundary of Liverpool. At the moment the largest functional site:
Port of Liverpool
extends well beyond the city
boundary
Add Liverpool_boundary shapefile (you can download it from https://osdatahub.os.uk/downloads/open/BoundaryLine ; the layer you need is called: district_borough_unitary_region under the Boundary-Line section).
Alternatively,(perhaps an easier option) you can create your own
boundaries by dissolving the Population_2013
layer. So
click on Vector > Geoprocessing Tools > Dissolve…
but make sure you create a copy of the Population_2013
layer beforehand.
To clip the desired layer, go to Vector > Geoprocessing Tools > Clip…
Use the WZ_FunctionalSites
as the Input
layer and Liverpool_boundary
as the
Overlay layer
Click on Run and save the output to your working
directory, name it WZ_FSites
, click
Ok
Right click the WZ_FunctionalSites
layer >
Styles > Copy Style
Right click the WZ_FSites
> Styles >
Paste Style (this step saves you time as you can simply copy
> paste all styling work you have done so far)
Remove the WZ_FunctionalSites
layer from the
Layers Panel
Save the project
If you have done it correctly, your map should look similar to
the one below:
Now, load the ImportantBuilding
layer and check if
there is any relationship between the Workplace zones population and
concentration of the Important buildings
Carry out a similar spatial analysis to the one above and describe the findings to your colleague next to you.
Finally, identify the remaining big employers in Liverpool using a background map. Simple turning a layer on and off and comparing the shading against a background map can be helpful.
As you have noticed the direct comparison between the day and night-time populations isn’t really possible due to the incompatible boundaries. Workplace zones have completely different boundaries to LSOAs that are used to display the residential population. One way of dealing with this issue may be analysing the ONS employment data at LSOA level provided by https://www.nomisweb.co.uk.
Population_2013
layerSo far, we have been using vector data only. Now we will explore population change in Great Britain based on raster data. A raster dataset consists of a matrix of cells (or pixels) organized into rows and columns (or a grid) where each cell contains a value representing information, such as population count in our case. The raster data we are going to explore now, contain publicly available Census data for 1971, 1981, 1991, 2001 and 2011. These are population surfaces computed for 1km grid using kernel estimation. They are estimates of counts of people for regular grids (1km x 1km) and as such these can be directly compared between Censuses. The development of 100m grid, which is much more suitable for comparison of smaller areas, is still in progress. So in this exercise, we will look at the population change in Great Britain and then in Liverpool between 2011 and 1991.
Open up Internet Explorer and navigate to: http://reshare.ukdataservice.ac.uk/852498/
Scroll down and first familiarize yourself with the Coverage and Methodology section
Download the total-population.zip folder and unzip the data to your working directory
Now let’s add the datasets to the map display
Click the Add Raster Layer button
Choose Browse and navigate to your working directory
From the 1991 folder > select the 5a_ascii_grid1991_Total_Population_TP91Bs.asc file and click Open
QGIS will ask what coordinate system the files are stored in (if this is not the case, go to Layer Properties > General and select the coordinates from there)
Type 27700 into the filter box and select
OSGB 1936 / British National Grid
and press OK
Click Add
This will add a layer which shows Great Britain, with a series of values
in black (0) to white (max value of 9262.14). Can you think of what
these values mean?
Then add the 2011 raster data (use the 5a_ascii_grid2011_Total_Population_URPopAll.asc file) by clicking the Add Raster Layer button again
Explore the map for the entire country, what spatial pattern can you see? The default symbology for a raster grid in QGIS is black to white. This is OK, but it does not show the changes particularly well. We can change this to a red or blue colour scheme, which shows the data more efficiently.
This map shows a much clearer picture of the GB population distribution in 2011. However, it would be interesting to see what are the differences in total population, let’s say over the past 20 years (1991 dataset). Such comparison can be easily done for raster data, as we have population counts for both years. Using the grid cells rather than ONS boundaries is really useful because they are consistent over the time. QGIS calculates the difference between the two datasets using Raster calculator. It is a very flexible tool so it can be used to calculate not only differences between various datasets but also more complex formulas such as Townsend score etc. (https://census.ukdataservice.ac.uk/get-data/related/deprivation).
To do this we use Raster calculator (similar to
the field calculator, used for vector data).
Go to Raster > Raster calculator
Click the (…) by the Output layer
Choose where to save the output (you can call it:
Grid 2011-1991 change
), click OK
In Raster bands window, double click on the
2011
layer
Single click the (-) sign button
Double click the 1991
layer
Click OK
Adjust the colours and classification values in the Symbology section – these could be adjusted based on the Histogram values (see Step 3.1.3).
You could exclude the outliers (highest and lowest values) to
highlight the areas with positive/negative population growth. Under the
Min/Max value settings, you can choose the Cumulative count
cut from 2% to 98%. This means that the data range is set from
2% to 98% of the data values; this can be further adapted
manually.
After adjusting, your map should look something similar to the one below
PopChange
Experiment with different Symbology options to see what works best. Add a background map to see what areas of the UK have population change.
Explore the results and make comments on the population change between 2011 and 1991
Where are the major positive/negative changes in population can be observed?
Within QGIS we can look at the properties and histogram of raster data too. This can tell us some useful information about the values within the raster, which might be useful for further analysis.
Grid 2011-1991 change
>
Properties > HistogramFinally, we’d like to produce a raster map of population change for Liverpool, so we could compare the trends against the day time and night time population distribution within the City. We will use an extraction tool to clip the GB boundary to the spatial extent of Liverpool City. Follow the steps below:
Go to Raster > Extraction > Clip Raster by Mask Layer…
Select the Grid 2011-1991 change
as your Input
layer
Ensure that you choose Liverpool_boundary
as your
Mask layer
Set the output directory and give it a sensible name
Set both the Source and Target CRS to
British National Grid
Click Run
Copy the style from the Grid 2011-1991 change
layer
Note If you get an error massage, make sure that both layers have the same coordinate reference system (CRS). Change the Source CRS and Target CRS to be same projection (e.g. EPSG:27700) and resave the layers, then clip the Raster layer.
This will create a clipped layer for Liverpool Local Authority boundary. Comment on the accuracy/resolution of the extent of the new raster layer, can this be improved anyhow? How about the size of a grid? Importantly, you can apply this method to any vector layer (not necessary a local authority).
Grid 2011-1991 change
layer to the
extent of Liverpool City Region, which consists of six local
authorities.Grid 2011-1991 change
to the
extent of Liverpool City RegionNow that we have set up our layers, compared the day-time vs. night-time population in Liverpool, done basic spatial analysis and looked at population change, we can start creating some maps. It is simply possible to save your maps as image or PDF files using Project > Import/Export > Export Map to Image/PDF…. This is useful if you need a simple map without any key/legend. Instead, we will produce maps which include key cartographic elements, so they can be published. More specifically, in order to make maps publishable and easily interpretable there are several things you need to be aware of, such as the layout, level of generalisation, clarity of symbols, and perhaps above all, some understanding about what is the purpose of your map.
Liverpool Population
as the title and click
OK, the Print Layout window will now open with a blank
pageYou should notice that the data layers that we have on display in the Print Layout are the same as that in our QGIS project (i.e. the two displays are linked). So if you need to adjust anything in Print Layout, switch windows back to the QGIS project. Ensure you have switched on only the following layers: WZ population and WZ_FSites
Go to Add Item > North Arrow and draw the extent of it on the map.
You can select a symbol of your choice under Item Properties. Choose one of the SVG images of a north arrow that you prefer.
Once you have finished your map, go to Layout>Export
as image.
Specify the output type as TIFF and name the file in a sensible way - e.g., Major Employers in Liverpool.
For publishable maps, use a resolution of at least 300dpi
Your final map should look similar to the one below:
Does your map have the same extent as the one above? If not, then
go back to the main QGIS project and clip the WZ population
layer to the trimmed extent of Liverpool City Borough Council (your
`Population_2013’ layer). If you receive an error to fix geometries,
please follow the steps from section 2.5.
Now you have completed the Practical 2 exercise, well done!!! You should be ready to proceed with your assignment now.