├── .gitignore ├── README.md ├── classification-exercise-QGIS-NB.md ├── classification-exercise-QGIS-NB.pdf ├── classification-exercise-map.png ├── confident-spatial-analysis-promo.docx ├── data-backup ├── prac2b-stadiums.csv ├── prac3-complete.gpkg ├── prac3a-File_10_-_IoD2019_Local_Authority_District_Summaries__lower-tier__.xlsx ├── prac3b-ukmidyearestimates20192019ladcodes.xls ├── prac3c-opgrsp_essh_su.zip └── prac4-data-complete.gpkg ├── data-p3-p4-short-version └── prac3-data.zip ├── data ├── prac1.zip └── prac2.zip ├── glossary.tex ├── images ├── add-column.png ├── add-delimited-text-layer.png ├── add-new-join.png ├── add-new-map.png ├── add-vector-join.png ├── add-vector.png ├── arrow.png ├── attribute-table.png ├── browse.png ├── browser-geopackage.png ├── browser-window.png ├── browser.png ├── checkbox-update-existing-field.png ├── clean-plot-canvas.png ├── data-source-manager-browser.png ├── database-styles-manager.png ├── delete-column.png ├── deselect.png ├── drop-down-arrow.png ├── edit-icon.png ├── edited-las.png ├── editing-disabled.png ├── expand-arrow.png ├── field-calculator.png ├── fields.png ├── geometry-definition-expanded.png ├── geometry-definition.png ├── geopackage.png ├── identify-features.png ├── joins.png ├── labels-buffer.png ├── labels.png ├── layers-with-pop2015-xls.png ├── layers.png ├── layout-1.png ├── layout-final.png ├── lock-layers.png ├── main-plotly-page.png ├── minus.png ├── move-item-content.png ├── new-field.png ├── new.png ├── open-data-source-manager.png ├── pan-map.png ├── plotly.png ├── plus.png ├── project-crs-3857.png ├── rename.png ├── save-error-overwrite-layer.png ├── save-error.png ├── save-layer-geopackage.png ├── save.png ├── select-crs.png ├── select-features-expression.png ├── select-features.png ├── select-move-item.png ├── simple-fill.png ├── slack-download.png ├── style.png ├── symbology-polygon.png ├── symbology.png ├── temporary-layer.png ├── toggle-editing-new-field.png ├── toggle-editing.png ├── untoggle-editing.png ├── update-map-preview.png ├── vector.png ├── world-countires-properities.png ├── zoom-full.png ├── zoom-in.png └── zoom-to-layer-right-click.png ├── intro-qgis-spatial-data.Rproj ├── intro-to-qgis-promo.docx ├── overview-qgis.txt ├── polls.txt ├── presentation ├── images │ ├── africa-poverty.png │ ├── base-map-uk-data.png │ ├── base-map.png │ ├── bng.png │ ├── calculating-new-values-pc.png │ ├── calculating-new-values.png │ ├── cartography-an-introduction.png │ ├── census-2021-liverpool.png │ ├── census-2021.png │ ├── census-open-atlas-1.png │ ├── census-open-atlas-2.png │ ├── census-open-atlas-3.png │ ├── census-open-atlas-4.png │ ├── cf14-3ds.png │ ├── ch10-simplification.png │ ├── ch2-projections.png │ ├── ch2-scale.png │ ├── classification-exercise-map.png │ ├── classification-options.png │ ├── codepoint.png │ ├── color-brewer-in-qgis.png │ ├── color-brewer-screenshot.png │ ├── covid-example.png │ ├── data-distribution.png │ ├── data-with-coordinates.png │ ├── distance-lines-longitude.jfif │ ├── geopackage.png │ ├── gis-software.png │ ├── globe-flat-surface.png │ ├── globe-to-mercator-projection.png │ ├── glossary.png │ ├── greater-manchester.png │ ├── gts-logo-small.png │ ├── gts-logo.png │ ├── hull.png │ ├── hull2.png │ ├── ijgis-1987.jpg │ ├── ijgis.png │ ├── imd-domains.png │ ├── imd-england-map.png │ ├── imd-map.png │ ├── imd-overview.png │ ├── irish-names.png │ ├── iso-codes.png │ ├── joining-1.png │ ├── joining-2.png │ ├── joining-3.png │ ├── joining-4.png │ ├── kenya-vegetation.png │ ├── landranger.png │ ├── lat-lng.png │ ├── lego-bus-1.png │ ├── lego-bus-2.png │ ├── lego-bus-3.png │ ├── lod-range.png │ ├── map.png │ ├── mercator-1.png │ ├── mercator-2.png │ ├── mercator-comparision-1.png │ ├── mercator-comparision-2.png │ ├── mercator-comparision.png │ ├── mercator-gall-peters.png │ ├── mercator-globe.png │ ├── mercator-peters-2.png │ ├── mercator-peters.png │ ├── mercator-projection.png │ ├── ncrm-welcome-slide-1.png │ ├── ncrm-welcome-slide-2.png │ ├── netherlands-topography.png │ ├── null-values-1.png │ ├── null-values-2.png │ ├── orange.png │ ├── outline.png │ ├── peeling-an-orange.png │ ├── point-in-polygon-spatial-overlays.png │ ├── polar-projections.png │ ├── population.png │ ├── population_code.png │ ├── postcodes.png │ ├── qgis-screenshot.png │ ├── qgis-symbology-histogram.png │ ├── r-libraries.jpeg │ ├── raster-grid.png │ ├── raster-numbers.png │ ├── rstudio-map.png │ ├── rstudio.png │ ├── saving-files-1.png │ ├── saving-files-2.png │ ├── saving-files-3.png │ ├── scale-range.png │ ├── shapefiles.png │ ├── south-america.png │ ├── sy23-3le.png │ ├── topography.png │ ├── turning-data-into-information.png │ ├── two-key-geographies.png │ ├── types-of-questions-a-gis-can-answer.jpg │ ├── ucl-social-data-institute.png │ ├── uk-geographies-2.png │ ├── uk-geographies-lad.png │ ├── uk-geographies-lsoa.png │ ├── uk-geographies.png │ ├── uk.png │ ├── utm-europe.png │ ├── utm.png │ ├── vector-data.png │ ├── vector-raster-data.png │ ├── weather.png │ ├── what-is-gis.png │ ├── world-cities-csv-excel.png │ ├── world-cities.png │ ├── world.png │ └── worlds-ocean-spilhaus-projection.jpg └── presentation-p1-p2.qmd ├── workbook-p1-p2.Rmd ├── workbook-p3-p4-short-version.Rmd └── workbook-p3-p4.Rmd /.gitignore: -------------------------------------------------------------------------------- 1 | .Rproj.user 2 | .Rhistory 3 | .RData 4 | *.lnk 5 | *.url 6 | workbook-p1-p2.pdf 7 | workbook-p3-p4.pdf 8 | data/prac1/ 9 | data/prac2/ 10 | data-user/ 11 | workbook-p1-p2.html 12 | workbook-p3-p4.html 13 | *.pptx 14 | *.pdf 15 | data-p3-p4-short-version/prac3-data.gpkg 16 | workbook-p3-p4-short-version.html 17 | notes*.txt 18 | presentation/presentation-p1-p2_files/ 19 | presentation/presentation-p1-p2.html 20 | videos/ 21 | sync.ffs_db 22 | glossary.log 23 | glossary.synctex.gz 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Introduction to QGIS: Spatial Data and Spatial Analysis 2 | 3 | This is the material for my 4 half day (or 2 day) course on **Introduction to QGIS: Spatial Data and Spatial Analysis**. More details on my courses are available at http://www.geospatialtrainingsolutions.co.uk 4 | 5 | 6 | 7 | The material for this workshop is available in the latest release: https://github.com/nickbearman/intro-qgis-spatial-data/releases 8 | 9 | 11 | 12 | 13 | A video showing how to complete practical 3 is available on [YouTube](https://youtu.be/87kLJcEIORI). 14 | 15 | [The GIS Glossary (PDF, 125B)](https://github.com/nickbearman/intro-qgis-spatial-data/blob/master/glossary.pdf) 16 | 17 | This material was developed using QGIS 3.22. 18 | 19 | This work (Introduction to QGIS: Spatial Data and Spatial Analysis by Nick Bearman) is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/. 20 | 21 | Material will be updated periodically, usually in line with courses run by Nick Bearman. 22 | -------------------------------------------------------------------------------- /classification-exercise-QGIS-NB.md: -------------------------------------------------------------------------------- 1 | --- 2 | output: pdf_document 3 | --- 4 | 5 | 6 | 7 | 8 | #Classification Exercise 9 | 10 | Using the values in the table, colour in the countries in this central part of sub-Saharan Africa according to the percent of forest cover in 2005. Also remember to indicate in the table which colours represent which values. 11 | 12 | 13 | 14 | | Country Name | Forest Percent Cover 2005 | 15 | |---|---| 16 | | Burundi | 5.9 | 17 | | Kenya | 6.2 | 18 | | Uganda | 18.4 | 19 | | Rwanda | 19.5 | 20 | | Tanzania | 39.9 | 21 | | Angola | 47.4 | 22 | | Zambia | 57.1 | 23 | | Congo DR | 58.9 | 24 | | Congo | 65.8 | 25 | | Gabon | 84.5 | 26 | 27 | 28 | 29 | ![Sub-Sarahan Africa](classification-exercise-map.png) 30 | 31 | 32 | 33 | *Created by Nick Bearman on 12/09/2016, v3.* -------------------------------------------------------------------------------- /classification-exercise-QGIS-NB.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/classification-exercise-QGIS-NB.pdf -------------------------------------------------------------------------------- /classification-exercise-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/classification-exercise-map.png -------------------------------------------------------------------------------- /confident-spatial-analysis-promo.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/confident-spatial-analysis-promo.docx -------------------------------------------------------------------------------- /data-backup/prac2b-stadiums.csv: -------------------------------------------------------------------------------- 1 | Name,Team,Capacity,Latitude,Longitude,Easting,Northing,Grid Reference,Also known as 2 | "Abbey Stadium","Cambridge United",10847,52.212799,0.154298,547284,259362,TL472593,"" 3 | "Adams Park","Wycombe Wanderers",10284,51.6306,-0.800299,483134,193102,SU831931,"" 4 | "Alexandra Stadium","Crewe Alexandra",10153,53.087502,-2.43569,370916,354565,SJ709545,"Gresty Road" 5 | "Almondvale Stadium","Livingston",10122,55.886398,-3.52207,304893,666965,NT048669,"" 6 | "Amex Stadium","Brighton and Hove Albion",22374,50.860901,-0.08014,535213,108577,TQ352085,"Falmer Stadium" 7 | "Anfield","Liverpool",45522,53.430801,-2.96096,336250,393099,SJ362930,"" 8 | "Ashton Gate","Bristol City",21497,51.439999,-2.62021,356989,171405,ST569714,"" 9 | "B2net Stadium","Chesterfield",10400,53.253502,-1.4272,438314,373096,SK383730,"" 10 | "Ballymena Showgrounds","Ballymena United",3824,54.870098,-6.26511,126462,561151,NW264611,"" 11 | "Balmoor","Peterhead",4000,57.5112,-1.79599,412322,846797,NK123467,"" 12 | "Bangor Fuels Arena","Ards",2000,54.6516,-5.68444,162419,534738,NW624347,"" 13 | "Bayview Stadium","East Fife",2000,56.1889,-2.99914,338088,700036,NO380000,"" 14 | "Belfast Loughshore Hotel Arena","Carrick Rangers",2100,54.719799,-5.80031,155359,542720,NW553427,"" 15 | "Bescot Stadium","Walsall",11300,52.565498,-1.99053,400739,296408,SP007964,"" 16 | "Bloomfield Road","Blackpool",16220,53.8046,-3.04834,331057,434766,SD310347,"" 17 | "Bootham Crescent","York City",7872,53.969501,-1.08833,459902,452988,SE599529,"" 18 | "Borough Briggs","Elgin City",4927,57.651798,-3.3209,321266,863200,NJ212631,"" 19 | "Boundary Park","Oldham Athletic",10638,53.555099,-2.12847,391587,406505,SD915065,"" 20 | "Bramall Lane","Sheffield United",32702,53.3703,-1.47083,435306,386068,SK353860,"" 21 | "Brandywell Stadium","Institute",3700,54.989498,-7.33771,58722,579142,NV587791,"" 22 | "Breda Park","Knockbreda",1000,54.567699,-5.85444,150945,525998,NW509259,"" 23 | "Brisbane Road","Leyton Orient",9271,51.560101,-0.012551,537867,186451,TQ378864,"" 24 | "Britannia Stadium","Stoke City",27902,52.9884,-2.17542,388321,343466,SJ883434,"bet365 Stadium" 25 | "Broadfield Stadium","Crawley Town",5996,51.099602,-0.194579,526510,134916,TQ265349,"" 26 | "Broadwood Stadium","Clyde",8029,55.944698,-4.0379,272824,674282,NS728742,"" 27 | "Brunton Park","Carlisle United",18202,54.8955,-2.91365,341500,556023,NY415560,"" 28 | "Cappielow Park","Greenock Morton",19612,55.941399,-4.72719,229771,675399,NS297753,"" 29 | "Cardiff City Stadium","Cardiff City",26828,51.4729,-3.20413,316464,175570,ST164755,"" 30 | "Carrow Road","Norwich City",27033,52.622101,1.30912,624081,307846,TG240078,"" 31 | "Celtic Park","Celtic",60832,55.849701,-4.20561,262014,664033,NS620640,"" 32 | "Central Park","Cowdenbeath",4370,56.108799,-3.34717,316315,691489,NT163914,"" 33 | "Cliftonhill","Albion Rovers",2496,55.860199,-4.01145,274202,664831,NS742648,"" 34 | "Coleraine Showgrounds","Coleraine",4843,55.132801,-6.66002,103094,591968,NW030919,"" 35 | "Craven Cottage","Fulham",25700,51.474899,-0.221619,523606,176604,TQ236766,"" 36 | "Crown Ground","Accrington Stanley",5057,53.7654,-2.37106,375638,429959,SD756299,"Store First Stadium,Wham Stadium" 37 | "Darragh Park","Dergview",2000,54.700901,-7.59677,39603,548376,NV396483,"" 38 | "Deepdale","Preston North End",24500,53.771999,-2.68832,354731,430849,SD547308,"" 39 | "Dens Park","Dundee",11856,56.474701,-2.97352,340128,731823,NO401318,"" 40 | "Dixon Park","Ballyclare Comrades",2398,54.7509,-6.00211,142568,546901,NW425469,"" 41 | "Dumbarton Football Stadium","Dumbarton",2025,55.9384,-4.56162,240097,674669,NS400746,"" 42 | "DW Stadium","Wigan Athletic",25138,53.547699,-2.65415,356754,405873,SD567058,"" 43 | "East End Park","Dunfermline",11380,56.0756,-3.44196,310343,687913,NT103879,"" 44 | "Easter Road","Hibernian",20421,55.961601,-3.16521,327355,674901,NT273749,"" 45 | "Edgar Street","Hereford United",5300,52.060699,-2.71774,350889,240501,SO508405,"" 46 | "Elland Road","Leeds United",37697,53.7775,-1.57212,428295,431326,SE282313,"" 47 | "Emirates Stadium","Arsenal",60361,51.554901,-0.108436,531236,185697,TQ312856,"" 48 | "Etihad Stadium","Manchester City",47805,53.483002,-2.20024,386809,398495,SJ868984,"" 49 | "Ewood Park","Blackburn Rovers",31154,53.7286,-2.48937,367810,425911,SD678259,"" 50 | "Falkirk Stadium","Falkirk",9200,56.005299,-3.75262,290809,680537,NS908805,"" 51 | "Ferney Park","Ballinamallard United",2000,54.414398,-7.59968,36873,516561,NV368165,"" 52 | "Field Mill","Mansfield Town",9186,53.137798,-1.2013,453529,360369,SK535603,"One Call Stadium" 53 | "Fir Park","Motherwell",13742,55.780399,-3.9803,275897,655895,NS758558,"" 54 | "Firhill","Partick Thistle",13079,55.8815,-4.26938,258139,667701,NS581677,"" 55 | "Forthbank Stadium","Stirling Albion",3808,56.119099,-3.91194,281227,693464,NS812934,"" 56 | "Fratton Park","Portsmouth",21100,50.796398,-1.06389,466071,100066,SU660000,"" 57 | "Galabank","Annan Athletic",2007,54.994801,-3.2612,319410,567419,NY194674,"" 58 | "Gayfield Park","Arbroath",5940,56.552299,-2.5914,363741,740192,NO637401,"" 59 | "Gigg Lane","Bury",11840,53.580502,-2.29487,380575,409364,SD805093,"" 60 | "Glanford Park","Scunthorpe United",9088,53.5867,-0.695244,486469,410804,SE864108,"" 61 | "Glebe Park","Brechin City",3960,56.735298,-2.6565,359934,760598,NO599605,"" 62 | "Globe Arena","Morecambe",6476,54.067501,-2.84707,344661,463839,SD446638,"" 63 | "Goodison Park","Everton",40157,53.438702,-2.96619,335914,393982,SJ359939,"" 64 | "Griffin Park","Brentford",12763,51.488201,-0.302621,517946,177949,TQ179779,"" 65 | "Hampden Park","Scotland, Queen's Park",52500,55.825802,-4.25198,259025,661468,NS590614,"" 66 | "Highbury Stadium","Fleetwood Town",5094,53.9165,-3.02484,332785,447193,SD327471,"" 67 | "Hillsborough","Sheffield Wednesday",39812,53.411499,-1.50075,433284,390637,SK332906,"" 68 | "Home Park","Plymouth Argyle",16388,50.388199,-4.15076,247204,56469,SX472564,"" 69 | "Huish Park","Yeovil Town",9665,50.950298,-2.67383,352762,116979,ST527169,"" 70 | "Ibrox","Rangers",51082,55.852901,-4.30962,255516,664602,NS555646,"" 71 | "Inver Park","Larne",2732,54.849899,-5.82689,154439,557279,NW544572,"" 72 | "Kassam Stadium ","Oxford United",12500,51.7164,-1.20775,454829,202260,SP548022,"" 73 | "KC Stadium","Hull City",25586,53.746498,-0.368009,507722,429027,TA077290,"" 74 | "Keepmoat Stadium","Doncaster Rovers",15231,53.509899,-1.11382,458867,401833,SE588018,"" 75 | "Kenilworth Road","Luton Town",10226,51.884201,-0.43155,508049,221789,TL080217,"" 76 | "King Power Stadium","Leicester City",32262,52.6203,-1.14217,458171,302849,SK581028,"" 77 | "Kingsmeadow","AFC Wimbledon, Kingstonian",4720,51.405102,-0.281984,519596,168742,TQ195687,"" 78 | "Lakeview Park","Loughgall",3000,54.407001,-6.6114,100874,511084,NW008110,"" 79 | "Liberty Stadium","Swansea City",20532,51.642799,-3.93473,266224,195551,SS662955,"" 80 | "Links Park","Montrose",3292,56.714001,-2.45902,372000,758129,NO720581,"" 81 | "Loftus Road","Queens Park Rangers",18360,51.5093,-0.232204,522778,180411,TQ227804,"" 82 | "London Road","Peterborough United",15315,52.5648,-0.240434,519365,297784,TL193977,"" 83 | "Madjeski Stadium","Reading",24161,51.422199,-0.982777,470826,169734,SU708697,"" 84 | "McDiarmid Park","St Johnstone",10673,56.409901,-3.47684,308970,725164,NO089251,"" 85 | "Meadow Lane","Notts County",20229,52.942501,-1.13703,458089,338694,SK580386,"" 86 | "Memorial Stadium","Bristol Rovers",12011,51.486198,-2.58315,359605,176522,ST596765,"" 87 | "Millennium Stadium","Wales",74500,51.478199,-3.18281,317954,176135,ST179761,"" 88 | "Milltown","Warrenpoint Town",2000,54.117901,-6.26347,121492,477521,SB214775,"" 89 | "Molineux","Wolverhampton Wanderers",27828,52.590401,-2.13061,391249,299186,SO912991,"" 90 | "Moss Rose","Macclesfield Town",6355,53.242699,-2.127,391622,371749,SJ916717,"" 91 | "Mourneview Park","Glenavon",3302,54.454102,-6.33681,119003,515187,NW190151,"" 92 | "New Broomfield","Airdrie United",10172,55.8601,-3.95997,277423,664728,NS774647,"" 93 | "New Douglas Park","Hamilton Academical",6078,55.782101,-4.058,271031,656227,NS710562,"" 94 | "New Meadow","Shrewsbury Town",9875,52.688599,-2.74931,349448,310365,SJ494103,"" 95 | "New York Stadium","Rotherham United",12021,53.428101,-1.36172,442509,392557,SK425925,"" 96 | "Newry Showgrounds","Newry City",2809,54.1609,-6.33195,117313,482573,SB173825,"" 97 | "Oakwell","Barnsley",23009,53.552399,-1.46756,435373,406328,SE353063,"" 98 | "Ochilview Park","Stenhousemuir, East Stirlingshire",3776,56.028198,-3.81449,287019,683185,NS870831,"" 99 | "Old Trafford","Manchester United",75811,53.4631,-2.29139,380751,396301,SJ807963,"" 100 | "Olympic Stadium","West Ham",60000,51.5383,-0.016587,537653,184019,TQ376840,"London Stadium" 101 | "Palmerston Park","Queen of the South",6412,55.070301,-3.6246,296358,576299,NX963762,"" 102 | "Pirelli Stadium","Burton Albion",6912,52.821899,-1.62708,425228,324995,SK252249,"" 103 | "Pittodrie","Aberdeen",22199,57.159302,-2.08872,394732,807608,NJ947076,"" 104 | "Plainmoor","Torquay United",6104,50.476398,-3.52382,291971,65174,SX919651,"" 105 | "Portman Road","Ipswich Town",30311,52.054401,1.14554,615758,244227,TM157442,"" 106 | "Prenton Park","Tranmere Rovers",16567,53.373798,-3.03269,331392,386824,SJ313868,"" 107 | "Pride Park","Derby County",33597,52.914902,-1.44727,437265,335418,SK372354,"" 108 | "Priestfield Stadium","Gillingham",11582,51.384399,0.560367,578260,168150,TQ782681,"" 109 | "Recreation Ground","Aldershot Town",7100,51.248402,-0.754869,487001,150651,SU870506,"" 110 | "Recreation Park","Alloa Athletic",3412,56.1166,-3.77865,289506,692964,NS895929,"" 111 | "Ricoh Arena","Coventry City",32609,52.448101,-1.49563,434376,283468,SP343834,"" 112 | "Riverside","Middlesbrough ",34988,54.578098,-1.21776,450661,520602,NZ506206,"" 113 | "Rodney Parade","Newport County",7850,51.588902,-2.98902,331578,188247,ST315882,"" 114 | "Roots Hall","Southend United",12392,51.549099,0.701572,587408,186815,TQ874868,"" 115 | "Rugby Park","Kilmarnock",18128,55.604599,-4.50846,242071,637410,NS420374,"" 116 | "Seaview","Crusaders",3208,54.624298,-5.9219,146939,532532,NW469325,"" 117 | "Selhurst Park","Crystal Palace",26309,51.3983,-0.085455,533284,168324,TQ332683,"" 118 | "Seward Stadium","Bournemouth",10700,50.735199,-1.83839,411501,92855,SZ115928,"" 119 | "Shamrock Park","Portadown",2770,54.412998,-6.45775,110880,511108,NW108111,"" 120 | "Shielfield Park","Berwick Rangers",4131,55.759998,-2.01599,399095,651849,NT990518,"" 121 | "Sixfields Stadium","Northampton Town",7653,52.235199,-0.933485,472931,260203,SP729602,"" 122 | "Solitude","Cliftonville",3054,54.619499,-5.94717,145278,532090,NW452320,"" 123 | "Somerset Park","Ayr United",10243,55.4697,-4.61996,234482,622662,NS344226,"" 124 | "Spotland Stadium","Rochdale",10249,53.620899,-2.17993,388196,413833,SD881138,"Crown Oil Arena" 125 | "St Andrews","Birmingham City",30009,52.475601,-1.86824,409047,286416,SP090864,"" 126 | "St James Park","Newcastle United",52387,54.975601,-1.62179,424307,564620,NZ243646,"Sports Direct Arena" 127 | "St James Park, Exeter","Exeter City",8541,50.730701,-3.52109,292745,93446,SX927934,"" 128 | "St Mary's Stadium","Southampton",32689,50.9058,-1.39114,442907,111991,SU429119,"" 129 | "St Mirren Park","St Mirren",7937,55.850601,-4.44425,247081,664635,NS470646,"Simple Digital Arena" 130 | "Stadium of Light","Sunderland",49000,54.9146,-1.38837,439307,557937,NZ393579,"" 131 | "Stadiummk","MK Dons",22000,52.009602,-0.733507,487025,235331,SP870353,"" 132 | "Stair Park","Stranraer",5600,54.902199,-5.01249,206949,560543,NX069605,"" 133 | "Stamford Bridge","Chelsea",41837,51.481602,-0.191034,525711,177401,TQ257774,"" 134 | "Stangmore Park","Dungannon Swifts",2000,54.489498,-6.74592,92771,520834,NV927208,"" 135 | "Stark's Park","Raith Rovers",10104,56.099899,-3.16851,327409,690296,NT274902,"" 136 | "Station Park","Forfar Athletic",5177,56.652302,-2.88492,345841,751517,NO458515,"" 137 | "Tandragee Road","Annagh United",1250,54.4095,-6.4383,112116,510640,NW121106,"" 138 | "Tannadice Park","Dundee United",14209,56.4748,-2.96902,340405,731830,NO404318,"" 139 | "The Caledonian Stadium","Inverness Caledonian Thistle",7918,57.495098,-4.21751,267194,847156,NH671471,"" 140 | "The City Ground","Nottingham Forest",30603,52.939899,-1.13258,458392,338408,SK583384,"" 141 | "The County Ground","Swindon Town",15728,51.564499,-1.77107,415965,185094,SU159850,"" 142 | "The Den","Millwall",20146,51.485901,-0.050743,535440,178129,TQ354781,"" 143 | "The Dub","Queens University",1500,54.557098,-5.96002,144058,525199,NW440251,"" 144 | "The Galpharm Stadium","Huddersfield Town",24500,53.654301,-1.76837,415407,417559,SE154175,"" 145 | "The Hawthorns","West Bromwich Albion",26272,52.508999,-1.96418,402528,290123,SP025901,"" 146 | "The Hive Stadium","Barnet",5176,51.602798,-0.291788,518401,190711,TQ184907,"" 147 | "The Lamex Stadium","Stevenage Borough",6722,51.889801,-0.193664,524406,222791,TL244227,"" 148 | "The Oval","Gelntoran",6054,54.602901,-5.89119,148788,530043,NW487300,"" 149 | "The Valley","Charlton Athletic",27111,51.4865,0.036757,541513,178361,TQ415783,"" 150 | "Tillysburn Park","H & W Welders",2000,54.6124,-5.86554,150502,531007,NW505310,"" 151 | "Tottenham Hotspur Stadium","Tottenham Hotspur",62303,51.604401,-0.066389,534005,191278,TQ340912,"" 152 | "Turf Moor","Burnley",22546,53.788799,-2.23018,384933,432523,SD849325,"" 153 | "Tynecastle","Heart of Midlothian",17420,55.938801,-3.2325,323109,672436,NT231724,"" 154 | "University of Bolton Stadium","Bolton Wanderers",28723,53.580502,-2.53571,364629,409457,SD646094,"Macron Stadium,Reebok Stadium" 155 | "Vale Park","Port Vale",19052,53.049999,-2.1926,387186,350322,SJ871503,"" 156 | "Valley Parade","Bradford City",25136,53.804199,-1.75902,415968,434238,SE159342,"" 157 | "Vicarage Road","Watford",17477,51.649799,-0.401569,510684,195766,TQ106957,"" 158 | "Victoria Park","Hartlepool United",7856,54.689098,-1.21274,450847,532957,NZ508329,"" 159 | "Victoria Park, Dingwall","Ross County",6310,57.595901,-4.41898,255522,858787,NH555587,"" 160 | "Victoria Road","Dagenham and Redbridge",6078,51.547798,0.159739,549850,185422,TQ498854,"" 161 | "Villa Park","Aston Villa",42788,52.509201,-1.88508,407897,290152,SP078901,"" 162 | "Wembley","England",90000,51.555901,-0.279543,519372,185515,TQ193855,"" 163 | "Weston Homes Community Stadium","Colchester United",10084,51.923401,0.897861,599361,228954,TL993289,"" 164 | "Whaddon Road","Cheltenham Town",7066,51.9062,-2.06021,395955,223075,SO959230,"" 165 | "Wilgar Park","Dundela",2000,54.599499,-5.87824,149603,529618,NW496296,"" 166 | "Windsor Park","Linfield",18434,54.5826,-5.95527,144524,528017,NW445280,"" 167 | -------------------------------------------------------------------------------- /data-backup/prac3-complete.gpkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/data-backup/prac3-complete.gpkg -------------------------------------------------------------------------------- /data-backup/prac3a-File_10_-_IoD2019_Local_Authority_District_Summaries__lower-tier__.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/data-backup/prac3a-File_10_-_IoD2019_Local_Authority_District_Summaries__lower-tier__.xlsx -------------------------------------------------------------------------------- /data-backup/prac3b-ukmidyearestimates20192019ladcodes.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/data-backup/prac3b-ukmidyearestimates20192019ladcodes.xls -------------------------------------------------------------------------------- /data-backup/prac3c-opgrsp_essh_su.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/data-backup/prac3c-opgrsp_essh_su.zip -------------------------------------------------------------------------------- /data-backup/prac4-data-complete.gpkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/data-backup/prac4-data-complete.gpkg -------------------------------------------------------------------------------- /data-p3-p4-short-version/prac3-data.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/data-p3-p4-short-version/prac3-data.zip -------------------------------------------------------------------------------- /data/prac1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/data/prac1.zip -------------------------------------------------------------------------------- /data/prac2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/data/prac2.zip -------------------------------------------------------------------------------- /glossary.tex: -------------------------------------------------------------------------------- 1 | %line spacing? 2 | 3 | %sudo /usr/bin/tlmgr install siunitx to install package 4 | 5 | \documentclass[a4paper,10pt]{article} 6 | 7 | \usepackage{geometry} 8 | \geometry{ 9 | a4paper, 10 | total={170mm,257mm}, 11 | left=15mm, 12 | right=15mm, 13 | top=15mm, 14 | bottom=10mm, 15 | } 16 | \usepackage[utf8]{inputenc} 17 | \usepackage[english]{babel} 18 | \usepackage{graphicx} 19 | \usepackage{wrapfig} 20 | \usepackage{siunitx} %for degree symbol 21 | \usepackage{multicol} 22 | \usepackage[ddmmyyyy,hhmmss]{datetime} 23 | 24 | \setlength{\parskip}{0.5em} %gap between paragraphs 25 | 26 | \setlength{\columnsep}{5mm} %column separation 27 | 28 | \begin{document} 29 | 30 | \pagenumbering{gobble} %disable page numbering, https://tex.stackexchange.com/questions/7355/how-to-suppress-page-number 31 | 32 | \begin{center} 33 | 34 | {\huge GIS Glossary} 35 | 36 | % \textit{Terms in italics are defined in the glossary} 37 | 38 | \end{center} 39 | 40 | \begin{multicols}{2} 41 | 42 | % \textbf{Acknowledgements} Information required on any map, including copyright (e.g. for OpenStreetMap or Ordnance Survey Open Data) or data sources 43 | 44 | \textbf{ArcCatalog} Part of the \textit{ArcGIS} package, primarily used for managing spatial files such as \textit{shapefiles} % and \textit{personal geodatabases} 45 | 46 | \textbf{ArcGIS} A commercial GIS software created by ESRI, consisting of \textit{ArcMap}, \textit{ArcCatalog} and \textit{ArcScene} 47 | 48 | \textbf{ArcMap} Part of \textit{ArcGIS}, the main program for creating and editing spatial data and maps 49 | 50 | \textbf{ArcScene} Part of \textit{ArcGIS}, used for 3D data 51 | 52 | \textbf{Attribute table} The table of additional information associated with each \textit{shapefile} (e.g. country names); access by right-clicking on the layer and selecting Open Attribute Table 53 | 54 | \textbf{BNG} (British National Grid) A \textit{coordinate system} used to represent locations in Great Britain, consisting of \textit{eastings} and \textit{northings}, e.g. 603125, 112589 (see also \textit{UTM} and \textit{WGS1984}) 55 | 56 | \textbf{Categorical} A variable that has a series of values with no inherent order, e.g. country names, also known as \textit{nominal} (see also \textit{variable type}, \textit{quantitative}) 57 | 58 | \textbf{Choropleth} A type of mapping where different colours are used to represent difference values; can use \textit{categorical} and \textit{ordinal} data 59 | 60 | \textbf{Classes} The groups data are put into for a \textit{choropleth} map 61 | 62 | \textbf{Classification} How the data are classified into different \textit{classes} for a choropleth map (see also \textit{jenks}, \textit{equal count}, \textit{equal interval} and \textit{standard deviation} 63 | 64 | \textbf{Coordinates} The numbers representing a specific location, usually presented in pairs (see also \textit{latitude}, \textit{longitude}, \textit{WGS1984}, \textit{BNG} and \textit{UTM}) 65 | 66 | \textbf{Coordinate system} The type of coordinates that are used to represent a specific location (see also \textit{WGS1984}, \textit{BNG} and \textit{projection}) 67 | 68 | \textbf{Correlation} A measure of how much two variables are related, measured using a \textit{R\textsuperscript{2}} value 69 | 70 | \textbf{CSV} (Comma separated values) A standard format of \textit{tabular data}, can be opened in Excel 71 | 72 | \textbf{CSVT} An optional file for use with \textit{CSV} files which specifies the \textit{variable type} of each column % in the \textit{CSV} file 73 | 74 | \textbf{Data frame} (ArcMap) A section of the map in Layout View containing specific layers of spatial data 75 | 76 | \textbf{Data type} How data is stored within the \textit{Attribute table}, can be \textit{integer} (whole numbers), \textit{real} (decimal numbers) and \textit{string} (text) 77 | 78 | \textbf{DEM} Digital Elevation Model, a \textit{raster} representation of the height of the earth's surface 79 | 80 | \textbf{Eastings} A \textit{coordinate} that specifies the distance east, in meters, from the coordinates 0,0 south-west of the Isles of Scilly (see also \textit{BNG} and \textit{northings}) 81 | 82 | \textbf{Equal count} (Quantile) \textit{Classification} method where data are split into a number of groups by putting the same number of data items into each group, also known as \textit{quantile}, see also \textit{classification} 83 | 84 | \textbf{Equal interval} \textit{Classification} method where data are split into \textit{classes} that are evenly distributed, e.g. 0-20\%, 20-40\%, etc., see also \textit{classification} 85 | 86 | \textbf{Feature class} One layer within a \textit{personal geodatabase}; can contain one of \textit{points, lines} and \textit{polygons} 87 | 88 | \textbf{Field calculator} Used to calculate new values (e.g. differences) from existing values for all rows in a vector layer, accessed from the \textit{Attribute table} 89 | 90 | % \textbf{Fisher} \textit{Classification} method very similar to \textit{Jenks} 91 | 92 | \textbf{Geodatabase} See \textit{personal geodatabase} 93 | 94 | \textbf{Geographic Information Science} (GIS) The development of the tools, software and processes used in \textit{Geographic Information Systems} 95 | 96 | \textbf{Geographic Information Systems} (GIS) Using spatial data to answer questions about our world (see also \textit{Geographic Information Science}) 97 | 98 | \textbf{GeoJSON} Vector spatial data file, consisting of \textit{points}, \textit{lines} and \textit{polygons}; all saved in one file 99 | 100 | \textbf{GPS} (Global Positioning System) a series of 24 satellites in orbit around the earth which allow a GPS device to locate itself, with an accuracy of 1m to 10m 101 | 102 | \textbf{Inset Map} A small map included on the main map to aid orientation, e.g. a map of Ghana might include an \textit{inset map} of Africa to show where Ghana is 103 | 104 | \textbf{Integer} A whole number used to represent data, can be used in a \textit{choropleth} map (see also \textit{data type}) 105 | 106 | \textbf{Jenks} (natural breaks) \textit{Classification} method based on the Jenks algorithm which groups similar data values together, also known as \textit{natural breaks}, see also \textit{classification} 107 | 108 | \textbf{Joining} The process of linking attribute information to spatial data, often used so the information can be shown on a \textit{choropleth} map 109 | 110 | \textbf{Latitude} A \textit{coordinate} that specifies the distance north or south, ranging from \ang{0} at the Equator to \ang{90} (North or South) at the poles (see also \textit{WGS1984} and \textit {longitude}) 111 | 112 | \textbf{Layers} When you add data into a GIS each different file appears as a different \textit{layer}; this allows different datasets to be overlaid on one another (see also \textit{Table of contents} and \textit{Layers window}) 113 | 114 | \textbf{Layers window} (QGIS) Panel on the left hand side of QGIS, showing the different GIS layers in your map; the order of the layers can be changed (known as the \textit{Table of contents} in \textit{ArcMap}) 115 | 116 | \textbf{Legend} An important part of any map, showing what the symbols or colours used on the map represent 117 | 118 | \textbf{Lines} Used in \textit{vector} data sets to indicate a linear feature, such as rivers, roads or railways; is a series of \textit{points} joined together with lines 119 | 120 | \textbf{Longitude} A \textit{coordinate} that specifies the distance east or west, ranging from \ang{0} at the Prime Meridian to \ang{180} (East or West) (see also \textit{WGS1984} and \textit{latitude}) 121 | 122 | \textbf{MapInfo} A commercial GIS software, created by Pitney Bowes 123 | 124 | \textbf{MXD project file} (.mxd) (ArcMap) A project file for \textit{ArcMap} which contains links to all the data files e.g. \textit{shapefiles} or \textit{geodatabases}) and information on how they are symbolised; the \textit{MXD} file does not contain the data itself (see also \textit{QGIS project file}) 125 | 126 | \textbf{Nominal} A variable that has a series of values with no inherent order, e.g. country names, also known as \textit{categorical} (see also \textit{variable type}, \textit{ordinal} and \textit{quantitative}) 127 | 128 | \textbf{North arrow} Used to show the direction of North on a map, used to aid orientation (see also \textit{inset map}) 129 | 130 | \textbf{Northings} A coordinate that specifies the distance north, in meters, from the \textit{coordinates} 0,0 south-west of the Isles of Scilly (see also \textit{BNG} and \textit{eastings}) 131 | 132 | \textbf{Ordinal} Similar to a categorical variable, but with a clear order, e.g. high priority, medium priority, and low priority (see also \textit{variable type}, \textit{quantitative}) 133 | 134 | \textbf{Personal geodatabase} A type vector of spatial data file, consisting of one or more \textit{feature classes}; can only be used in \textit{ArcGIS} (see also \textit{feature class}) 135 | 136 | \textbf{Pixel} An individual unit in a \textit{raster} data set, the size of the \textit{resolution} squared (i.e. for a 100m resolution \textit{raster} data set, each \textit{pixel} would be 100m x 100m, covering 10,000 square meters (or 1 hectare) of land) 137 | 138 | \textbf{Points} A \textit{vector} data type used to indicate a specific location, such as sample collection points, bird nest sites, towns or cities 139 | 140 | \textbf{Polygons} A \textit{vector} data type used to indicate areas, e.g. land parcels, counties and fields; is a series of \textit{points} joined with \textit{lines} and closed to indicate an area 141 | 142 | \textbf{Print composer} The tool in QGIS used to design maps and add a \textit{legend}, \textit{scale bar}, \textit{north arrow} and any required acknowledgements or copyright 143 | 144 | \textbf{Projection} The way the sphere shaped earth is distorted to fit on a flat piece of paper (see also \textit{WGS1984}, \textit{BNG} and \textit{coordinate system}) 145 | 146 | \textbf{QGIS} \textit{(previously Quantum GIS)} An open source GIS created as broadly similar to \textit{ArcMap} which is free for anyone to download, use and improve 147 | 148 | \textbf{QGIS project file} (.qgs) (QGIS) A project file for \textit{QGIS} which contains links to all the data files (such as \textit{shapefiles} and/or \textit{GeoJSON} files) and information on how they are symbolised; the \textit{project file} does not contain the data itself (see also \textit{MXD file}) 149 | 150 | \textbf{Quantile} (equal count) \textit{Classification} method where data are split into a number of groups by putting the same number of data items into each group, also known as \textit{equal count}, see also \textit{classification} 151 | 152 | \textbf{Quantitative} A numeric variable with an inherent order, e.g. GDP per capita, (see also \textit{variable type}) 153 | 154 | \textbf{R\textsuperscript{2}} The \textit{correlation} coefficient of two different data sets, a value of 1 is a strong positive \textit{correlation}, -1 is a strong negative \textit{correlation} 155 | 156 | \textbf{Raster} A type of spatial data used with GIS, consisting of a regular grid of points spaced at a set distance (the \textit{resolution}); often used to represent heights (DEM) or temperature data (see also \textit{vector}) 157 | 158 | \textbf{Raster calculator} Used with \textit{raster} data to calculate differences (subtract) or calculate other indices (e.g. NDVI) 159 | 160 | \textbf{Real} A decimal number used to represent data, can be used in a \textit{choropleth} map (see also \textit{data type}) 161 | 162 | \textbf{Resolution} The size of each \textit{pixel} in a \textit{raster} data set (e.g. 100 meters, 1km, 100km) (see also \textit{pixel}) 163 | 164 | \textbf{Sat-nav} A navigation system in cars, which uses \textit{GPS} to direct the driver to their destination 165 | 166 | \textbf{Scale} The ratio of units of distance on the map to units of distance in the real world; for example 1:25,000 means that 1cm on the map represents 25,000cm (or 250m) in the real world; usually shown on a \textit{scale bar} 167 | 168 | \textbf{Scale bar} Used to show the \textit{scale} of a map 169 | 170 | \textbf{Shapefile} A type vector of spatial data file, consisting of one of \textit{points}, \textit{lines} or \textit{polygons}; represented in \textit{GIS} as one file but in fact consisting of multiple files (between 4 and 6 files, with extensions of .shp, .dbf, .shx and .prj) 171 | 172 | \textbf{Standard deviation} \textit{Classification} method based on standard deviation and mean of the data set 173 | 174 | \textbf{String} A piece of text (e.g. a name) used to represent data, cannot be used in a \textit{choropleth} map (see also \textit{data type}, \textit{real} and \textit{integer} 175 | 176 | \textbf{Style} (QGIS) / \textbf{Symbology} (ArcMap) The options to choose the colours and/or symbols to represent data on the map; accessed through right-clicking on the layer and selecting properties and navigating to the Style tab) 177 | 178 | \textbf{Table of contents} (ArcMap) Panel on the left hand side of \textit{ArcMap}, showing the different \textit{GIS} \textit{layers} in your map; the order of the layers can be changed (known as the \textit{Layers window} in QGIS) 179 | 180 | \textbf{Tabular data} Data laid out in rows and columns, as used in Excel (see also \textit{CSV}) 181 | 182 | \textbf{UTM} (Universal Transverse Mercator) A type of \textit{coordinate system} used to represent any location in the world, consisting of a series of zones and a set of \textit{coordinates} for each zone, in meters (see also \textit{BNG} and \textit{WGS1984}) 183 | 184 | \textbf{Variable type} Information on the type of information within a variable, can be \textit{categorical}, \textit{ordinal} or \textit{nominal} 185 | 186 | \textbf{Vector} A type of spatial data used with \textit{GIS}, consisting of \textit{points}, \textit{lines} and \textit{polygons} (see also \textit{raster}) 187 | 188 | \textbf{Vertex (vertices)} Name for each of the points that connect the \textit{line} segments of a \textit{line} or \textit{polygon} \textit{shapefile} 189 | 190 | \textbf{WGS1984} A \textit{coordinate system} used to represent any location in the world, consisting of \textit{latitude} and \textit{longitude} e.g. 51.0426 N, 1.3772 E or \ang{51} 2’ 33.53’’ N, \ang{1} 22’ 38.23’’ E (see also \textit{BNG} and \textit{UTM}) 191 | 192 | \end{multicols} 193 | 194 | \begin{center} 195 | 196 | {\footnotesize \textit{This glossary was last updated on {\today} by Dr. Nick Bearman (nick@geospatialtrainingsolutions.co.uk) and is written in LaTeX. This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License, http://creativecommons.org/ licenses/by-sa/4.0/deed.en. The latest version of the PDF is at https://github.com/nickbearman/intro-qgis-spatial-data.}} 197 | 198 | \end{center} 199 | 200 | \end{document} -------------------------------------------------------------------------------- /images/add-column.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/add-column.png -------------------------------------------------------------------------------- /images/add-delimited-text-layer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/add-delimited-text-layer.png -------------------------------------------------------------------------------- /images/add-new-join.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/add-new-join.png -------------------------------------------------------------------------------- /images/add-new-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/add-new-map.png -------------------------------------------------------------------------------- /images/add-vector-join.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/add-vector-join.png -------------------------------------------------------------------------------- /images/add-vector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/add-vector.png -------------------------------------------------------------------------------- /images/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/arrow.png -------------------------------------------------------------------------------- /images/attribute-table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/attribute-table.png -------------------------------------------------------------------------------- /images/browse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/browse.png -------------------------------------------------------------------------------- /images/browser-geopackage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/browser-geopackage.png -------------------------------------------------------------------------------- /images/browser-window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/browser-window.png -------------------------------------------------------------------------------- /images/browser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/browser.png -------------------------------------------------------------------------------- /images/checkbox-update-existing-field.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/checkbox-update-existing-field.png -------------------------------------------------------------------------------- /images/clean-plot-canvas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/clean-plot-canvas.png -------------------------------------------------------------------------------- /images/data-source-manager-browser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/data-source-manager-browser.png -------------------------------------------------------------------------------- /images/database-styles-manager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/database-styles-manager.png -------------------------------------------------------------------------------- /images/delete-column.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/delete-column.png -------------------------------------------------------------------------------- /images/deselect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/deselect.png -------------------------------------------------------------------------------- /images/drop-down-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/drop-down-arrow.png -------------------------------------------------------------------------------- /images/edit-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/edit-icon.png -------------------------------------------------------------------------------- /images/edited-las.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/edited-las.png -------------------------------------------------------------------------------- /images/editing-disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/editing-disabled.png -------------------------------------------------------------------------------- /images/expand-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/expand-arrow.png -------------------------------------------------------------------------------- /images/field-calculator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/field-calculator.png -------------------------------------------------------------------------------- /images/fields.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/fields.png -------------------------------------------------------------------------------- /images/geometry-definition-expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/geometry-definition-expanded.png -------------------------------------------------------------------------------- /images/geometry-definition.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/geometry-definition.png -------------------------------------------------------------------------------- /images/geopackage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/geopackage.png -------------------------------------------------------------------------------- /images/identify-features.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/identify-features.png -------------------------------------------------------------------------------- /images/joins.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/joins.png -------------------------------------------------------------------------------- /images/labels-buffer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/labels-buffer.png -------------------------------------------------------------------------------- /images/labels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/labels.png -------------------------------------------------------------------------------- /images/layers-with-pop2015-xls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/layers-with-pop2015-xls.png -------------------------------------------------------------------------------- /images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/layers.png -------------------------------------------------------------------------------- /images/layout-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/layout-1.png -------------------------------------------------------------------------------- /images/layout-final.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/layout-final.png -------------------------------------------------------------------------------- /images/lock-layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/lock-layers.png -------------------------------------------------------------------------------- /images/main-plotly-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/main-plotly-page.png -------------------------------------------------------------------------------- /images/minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/minus.png -------------------------------------------------------------------------------- /images/move-item-content.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/move-item-content.png -------------------------------------------------------------------------------- /images/new-field.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/new-field.png -------------------------------------------------------------------------------- /images/new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/new.png -------------------------------------------------------------------------------- /images/open-data-source-manager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/open-data-source-manager.png -------------------------------------------------------------------------------- /images/pan-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/pan-map.png -------------------------------------------------------------------------------- /images/plotly.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/plotly.png -------------------------------------------------------------------------------- /images/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/plus.png -------------------------------------------------------------------------------- /images/project-crs-3857.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/project-crs-3857.png -------------------------------------------------------------------------------- /images/rename.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/rename.png -------------------------------------------------------------------------------- /images/save-error-overwrite-layer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/save-error-overwrite-layer.png -------------------------------------------------------------------------------- /images/save-error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/save-error.png -------------------------------------------------------------------------------- /images/save-layer-geopackage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/save-layer-geopackage.png -------------------------------------------------------------------------------- /images/save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/save.png -------------------------------------------------------------------------------- /images/select-crs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/select-crs.png -------------------------------------------------------------------------------- /images/select-features-expression.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/select-features-expression.png -------------------------------------------------------------------------------- /images/select-features.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/select-features.png -------------------------------------------------------------------------------- /images/select-move-item.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/select-move-item.png -------------------------------------------------------------------------------- /images/simple-fill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/simple-fill.png -------------------------------------------------------------------------------- /images/slack-download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/slack-download.png -------------------------------------------------------------------------------- /images/style.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/style.png -------------------------------------------------------------------------------- /images/symbology-polygon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/symbology-polygon.png -------------------------------------------------------------------------------- /images/symbology.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/symbology.png -------------------------------------------------------------------------------- /images/temporary-layer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/temporary-layer.png -------------------------------------------------------------------------------- /images/toggle-editing-new-field.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/toggle-editing-new-field.png -------------------------------------------------------------------------------- /images/toggle-editing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/toggle-editing.png -------------------------------------------------------------------------------- /images/untoggle-editing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/untoggle-editing.png -------------------------------------------------------------------------------- /images/update-map-preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/update-map-preview.png -------------------------------------------------------------------------------- /images/vector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/vector.png -------------------------------------------------------------------------------- /images/world-countires-properities.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/world-countires-properities.png -------------------------------------------------------------------------------- /images/zoom-full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/zoom-full.png -------------------------------------------------------------------------------- /images/zoom-in.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/zoom-in.png -------------------------------------------------------------------------------- /images/zoom-to-layer-right-click.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/images/zoom-to-layer-right-click.png -------------------------------------------------------------------------------- /intro-qgis-spatial-data.Rproj: -------------------------------------------------------------------------------- 1 | Version: 1.0 2 | 3 | RestoreWorkspace: Default 4 | SaveWorkspace: Default 5 | AlwaysSaveHistory: Default 6 | 7 | EnableCodeIndexing: Yes 8 | UseSpacesForTab: Yes 9 | NumSpacesForTab: 2 10 | Encoding: UTF-8 11 | 12 | RnwWeave: Sweave 13 | LaTeX: pdfLaTeX 14 | -------------------------------------------------------------------------------- /intro-to-qgis-promo.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/intro-to-qgis-promo.docx -------------------------------------------------------------------------------- /overview-qgis.txt: -------------------------------------------------------------------------------- 1 | Introduction to QGIS: Understanding and Presenting Spatial Data 2 | 3 | In this two part introductory course we will give you an overview on how GIS works, and what we can and can’t do with spatial data. We assume no prior knowledge of GIS and will explain how to get data into the GIS as well as how to produce maps using your own data. 4 | 5 | Learning Outcomes 6 | - Be able to set up QGIS and add data 7 | - Understand how to add data with a latitude & longitude coordinate 8 | - Join tabular data to spatial data 9 | - Understand how to undertake simple calculations 10 | - Understand how to classify data for representation on a map 11 | - Understand how to design and produce a publication-ready map in QGIS 12 | - Be able to add maps, scale bar, legends and labels to a map 13 | - Know why scale is important in map design 14 | - Know how to save and export maps as PDFs or images 15 | 16 | Confident Spatial Analysis in QGIS 17 | 18 | This intermediate two part course will develop your skills of using spatial data, including collating data from a variety of sources including XY coordinate data and address or postcode based data. We will also cover using spatial overlays, point-in-polygon analysis and spatial joins. 19 | 20 | With either option we will also have some time to discuss their own work and talk about how they might apply some of this to their work. 21 | 22 | Learning Outcomes: 23 | - Be able to join data from a variety of sources 24 | - Know how to change data from one data type to another 25 | - Know how to download data from Ordnance Survey Open Data 26 | - Be able to complete point in polygon analysis in QGIS 27 | - Understand how to create graphs in QGIS 28 | - Be able to perform a polygon polygon overlay 29 | - Critique the analysis process we have undertaken -------------------------------------------------------------------------------- /polls.txt: -------------------------------------------------------------------------------- 1 | Polls 2 | 3 | Session 1 4 | 5 | Have you installed QGIS successfully? 6 | Yes 7 | No 8 | 9 | Which operating system are you using? 10 | Windows? 11 | OSX / Mac? 12 | Other? 13 | 14 | How many classes did you choose? 15 | 1 16 | 2 17 | 3 18 | 4 19 | 5 20 | 6 21 | 7 22 | 8 23 | 9 24 | 10 25 | 26 | Which colour scheme did you pick? 27 | Greens 28 | Purples 29 | Blues 30 | Oranges 31 | Dark Blues 32 | Dark Greens 33 | Something else 34 | 35 | Session 2 36 | 37 | Which is better? 38 | The Mercator projection 39 | The Gall-Peters projection 40 | The Polar projection 41 | None are best, it depends what you are trying to show on the map 42 | 43 | /poll "Which is better?" "The Mercator projection" "The Gall-Peters projection" "The Polar projection" "None are best, it depends what you are trying to show on the map" anonymous 44 | 45 | What is most important to remember when performing an attribute join? 46 | There must be the same number of columns in both data sets 47 | The attributes must be similar 48 | The attributes must be exactly the same 49 | The data must be in the same language 50 | 51 | /poll "What is most important to remember when performing an attribute join?" "There must be the same number of columns in both data sets" "The attributes must be similar" "The attributes must be exactly the same" "The data must be in the same language" anonymous 52 | 53 | What do we need to remember when looking at a map: 54 | This map is the best representation of the data 55 | We need to critically analyse the map to see whether it is representing the data fairly 56 | QGIS will only allow us to create the best choropleth map 57 | There is no way to misrepresent spatial data 58 | 59 | /poll "What do we need to remember when looking at a map:" "The map is the best representation of the data" "We need to critically analyse the map to see whether it is representing the data fairly" "QGIS will only allow us to create the best choropleth map" "There is no way to misrepresent spatial data" anonymous 60 | 61 | What coordinate system are these coordinates likely to be in? 52°N 37’ 30.32’’ 1°E 14’ 2.05’’ 62 | British National Grid (Eastings & Northings) EPSG = 27700 63 | UTM (Universal Transverse Mercator) Zone 37 N EPSG = 32630 64 | Latitude and Longitude (WGS 1984) EPSG = 4326 65 | 66 | /poll "What coordinate system are these coordinates likely to be in? 52°N 37’ 30.32’’ 1°E 14’ 2.05’’" "British National Grid (Eastings & Northings) EPSG = 27700" "UTM (Universal Transverse Mercator) Zone 37 N EPSG = 32630" "Latitude and Longitude (WGS 1984) EPSG = 4326" anonymous -------------------------------------------------------------------------------- /presentation/images/africa-poverty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/africa-poverty.png -------------------------------------------------------------------------------- /presentation/images/base-map-uk-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/base-map-uk-data.png -------------------------------------------------------------------------------- /presentation/images/base-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/base-map.png -------------------------------------------------------------------------------- /presentation/images/bng.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/bng.png -------------------------------------------------------------------------------- /presentation/images/calculating-new-values-pc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/calculating-new-values-pc.png -------------------------------------------------------------------------------- /presentation/images/calculating-new-values.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/calculating-new-values.png -------------------------------------------------------------------------------- /presentation/images/cartography-an-introduction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/cartography-an-introduction.png -------------------------------------------------------------------------------- /presentation/images/census-2021-liverpool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/census-2021-liverpool.png -------------------------------------------------------------------------------- /presentation/images/census-2021.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/census-2021.png -------------------------------------------------------------------------------- /presentation/images/census-open-atlas-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/census-open-atlas-1.png -------------------------------------------------------------------------------- /presentation/images/census-open-atlas-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/census-open-atlas-2.png -------------------------------------------------------------------------------- /presentation/images/census-open-atlas-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/census-open-atlas-3.png -------------------------------------------------------------------------------- /presentation/images/census-open-atlas-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/census-open-atlas-4.png -------------------------------------------------------------------------------- /presentation/images/cf14-3ds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/cf14-3ds.png -------------------------------------------------------------------------------- /presentation/images/ch10-simplification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/ch10-simplification.png -------------------------------------------------------------------------------- /presentation/images/ch2-projections.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/ch2-projections.png -------------------------------------------------------------------------------- /presentation/images/ch2-scale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/ch2-scale.png -------------------------------------------------------------------------------- /presentation/images/classification-exercise-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/classification-exercise-map.png -------------------------------------------------------------------------------- /presentation/images/classification-options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/classification-options.png -------------------------------------------------------------------------------- /presentation/images/codepoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/codepoint.png -------------------------------------------------------------------------------- /presentation/images/color-brewer-in-qgis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/color-brewer-in-qgis.png -------------------------------------------------------------------------------- /presentation/images/color-brewer-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/color-brewer-screenshot.png -------------------------------------------------------------------------------- /presentation/images/covid-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/covid-example.png -------------------------------------------------------------------------------- /presentation/images/data-distribution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/data-distribution.png -------------------------------------------------------------------------------- /presentation/images/data-with-coordinates.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/data-with-coordinates.png -------------------------------------------------------------------------------- /presentation/images/distance-lines-longitude.jfif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/distance-lines-longitude.jfif -------------------------------------------------------------------------------- /presentation/images/geopackage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/geopackage.png -------------------------------------------------------------------------------- /presentation/images/gis-software.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/gis-software.png -------------------------------------------------------------------------------- /presentation/images/globe-flat-surface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/globe-flat-surface.png -------------------------------------------------------------------------------- /presentation/images/globe-to-mercator-projection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/globe-to-mercator-projection.png -------------------------------------------------------------------------------- /presentation/images/glossary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/glossary.png -------------------------------------------------------------------------------- /presentation/images/greater-manchester.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/greater-manchester.png -------------------------------------------------------------------------------- /presentation/images/gts-logo-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/gts-logo-small.png -------------------------------------------------------------------------------- /presentation/images/gts-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/gts-logo.png -------------------------------------------------------------------------------- /presentation/images/hull.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/hull.png -------------------------------------------------------------------------------- /presentation/images/hull2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/hull2.png -------------------------------------------------------------------------------- /presentation/images/ijgis-1987.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/ijgis-1987.jpg -------------------------------------------------------------------------------- /presentation/images/ijgis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/ijgis.png -------------------------------------------------------------------------------- /presentation/images/imd-domains.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/imd-domains.png -------------------------------------------------------------------------------- /presentation/images/imd-england-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/imd-england-map.png -------------------------------------------------------------------------------- /presentation/images/imd-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/imd-map.png -------------------------------------------------------------------------------- /presentation/images/imd-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/imd-overview.png -------------------------------------------------------------------------------- /presentation/images/irish-names.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/irish-names.png -------------------------------------------------------------------------------- /presentation/images/iso-codes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/iso-codes.png -------------------------------------------------------------------------------- /presentation/images/joining-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/joining-1.png -------------------------------------------------------------------------------- /presentation/images/joining-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/joining-2.png -------------------------------------------------------------------------------- /presentation/images/joining-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/joining-3.png -------------------------------------------------------------------------------- /presentation/images/joining-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/joining-4.png -------------------------------------------------------------------------------- /presentation/images/kenya-vegetation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/kenya-vegetation.png -------------------------------------------------------------------------------- /presentation/images/landranger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/landranger.png -------------------------------------------------------------------------------- /presentation/images/lat-lng.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/lat-lng.png -------------------------------------------------------------------------------- /presentation/images/lego-bus-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/lego-bus-1.png -------------------------------------------------------------------------------- /presentation/images/lego-bus-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/lego-bus-2.png -------------------------------------------------------------------------------- /presentation/images/lego-bus-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/lego-bus-3.png -------------------------------------------------------------------------------- /presentation/images/lod-range.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/lod-range.png -------------------------------------------------------------------------------- /presentation/images/map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/map.png -------------------------------------------------------------------------------- /presentation/images/mercator-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/mercator-1.png -------------------------------------------------------------------------------- /presentation/images/mercator-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/mercator-2.png -------------------------------------------------------------------------------- /presentation/images/mercator-comparision-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/mercator-comparision-1.png -------------------------------------------------------------------------------- /presentation/images/mercator-comparision-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/mercator-comparision-2.png -------------------------------------------------------------------------------- /presentation/images/mercator-comparision.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/mercator-comparision.png -------------------------------------------------------------------------------- /presentation/images/mercator-gall-peters.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/mercator-gall-peters.png -------------------------------------------------------------------------------- /presentation/images/mercator-globe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/mercator-globe.png -------------------------------------------------------------------------------- /presentation/images/mercator-peters-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/mercator-peters-2.png -------------------------------------------------------------------------------- /presentation/images/mercator-peters.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/mercator-peters.png -------------------------------------------------------------------------------- /presentation/images/mercator-projection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/mercator-projection.png -------------------------------------------------------------------------------- /presentation/images/ncrm-welcome-slide-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/ncrm-welcome-slide-1.png -------------------------------------------------------------------------------- /presentation/images/ncrm-welcome-slide-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/ncrm-welcome-slide-2.png -------------------------------------------------------------------------------- /presentation/images/netherlands-topography.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/netherlands-topography.png -------------------------------------------------------------------------------- /presentation/images/null-values-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/null-values-1.png -------------------------------------------------------------------------------- /presentation/images/null-values-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/null-values-2.png -------------------------------------------------------------------------------- /presentation/images/orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/orange.png -------------------------------------------------------------------------------- /presentation/images/outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/outline.png -------------------------------------------------------------------------------- /presentation/images/peeling-an-orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/peeling-an-orange.png -------------------------------------------------------------------------------- /presentation/images/point-in-polygon-spatial-overlays.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/point-in-polygon-spatial-overlays.png -------------------------------------------------------------------------------- /presentation/images/polar-projections.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/polar-projections.png -------------------------------------------------------------------------------- /presentation/images/population.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/population.png -------------------------------------------------------------------------------- /presentation/images/population_code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/population_code.png -------------------------------------------------------------------------------- /presentation/images/postcodes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/postcodes.png -------------------------------------------------------------------------------- /presentation/images/qgis-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/qgis-screenshot.png -------------------------------------------------------------------------------- /presentation/images/qgis-symbology-histogram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/qgis-symbology-histogram.png -------------------------------------------------------------------------------- /presentation/images/r-libraries.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/r-libraries.jpeg -------------------------------------------------------------------------------- /presentation/images/raster-grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/raster-grid.png -------------------------------------------------------------------------------- /presentation/images/raster-numbers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/raster-numbers.png -------------------------------------------------------------------------------- /presentation/images/rstudio-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/rstudio-map.png -------------------------------------------------------------------------------- /presentation/images/rstudio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/rstudio.png -------------------------------------------------------------------------------- /presentation/images/saving-files-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/saving-files-1.png -------------------------------------------------------------------------------- /presentation/images/saving-files-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/saving-files-2.png -------------------------------------------------------------------------------- /presentation/images/saving-files-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/saving-files-3.png -------------------------------------------------------------------------------- /presentation/images/scale-range.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/scale-range.png -------------------------------------------------------------------------------- /presentation/images/shapefiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/shapefiles.png -------------------------------------------------------------------------------- /presentation/images/south-america.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/south-america.png -------------------------------------------------------------------------------- /presentation/images/sy23-3le.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/sy23-3le.png -------------------------------------------------------------------------------- /presentation/images/topography.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/topography.png -------------------------------------------------------------------------------- /presentation/images/turning-data-into-information.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/turning-data-into-information.png -------------------------------------------------------------------------------- /presentation/images/two-key-geographies.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/two-key-geographies.png -------------------------------------------------------------------------------- /presentation/images/types-of-questions-a-gis-can-answer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/types-of-questions-a-gis-can-answer.jpg -------------------------------------------------------------------------------- /presentation/images/ucl-social-data-institute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/ucl-social-data-institute.png -------------------------------------------------------------------------------- /presentation/images/uk-geographies-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/uk-geographies-2.png -------------------------------------------------------------------------------- /presentation/images/uk-geographies-lad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/uk-geographies-lad.png -------------------------------------------------------------------------------- /presentation/images/uk-geographies-lsoa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/uk-geographies-lsoa.png -------------------------------------------------------------------------------- /presentation/images/uk-geographies.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/uk-geographies.png -------------------------------------------------------------------------------- /presentation/images/uk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/uk.png -------------------------------------------------------------------------------- /presentation/images/utm-europe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/utm-europe.png -------------------------------------------------------------------------------- /presentation/images/utm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/utm.png -------------------------------------------------------------------------------- /presentation/images/vector-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/vector-data.png -------------------------------------------------------------------------------- /presentation/images/vector-raster-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/vector-raster-data.png -------------------------------------------------------------------------------- /presentation/images/weather.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/weather.png -------------------------------------------------------------------------------- /presentation/images/what-is-gis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/what-is-gis.png -------------------------------------------------------------------------------- /presentation/images/world-cities-csv-excel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/world-cities-csv-excel.png -------------------------------------------------------------------------------- /presentation/images/world-cities.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/world-cities.png -------------------------------------------------------------------------------- /presentation/images/world.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/world.png -------------------------------------------------------------------------------- /presentation/images/worlds-ocean-spilhaus-projection.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nickbearman/intro-qgis-spatial-data/a3924b3634e06afe649d498740bab53622afd713/presentation/images/worlds-ocean-spilhaus-projection.jpg -------------------------------------------------------------------------------- /presentation/presentation-p1-p2.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Introduction to QGIS: Spatial Data and Spatial Analysis" 3 | subtitle: "Tue 1st April 2025" 4 | author: "Nick Bearman" 5 | format: 6 | revealjs 7 | 8 | --- 9 | 10 | 13 | 14 | 15 | 16 | ## 17 | 18 | 19 | ![](images/ncrm-welcome-slide-1.png) 20 | 21 | ## 22 | 23 | ![](images/ncrm-welcome-slide-2.png) 24 | 25 | 26 | 36 | 37 | ## What are we covering? 38 | 39 | - What is GIS and spatial data? 40 | - Be able to set up QGIS and add data 41 | - Join tabular data to spatial data 42 | - Understand how to classify data for representation on a map 43 | - Understand how to add data with a latitude & longitude coordinate 44 | 45 | 46 | ![](images/qgis-screenshot.png){.absolute bottom="0" right="0" width="550"} 47 | 48 | 49 | ## What are we covering? 50 | - Point in Polygon Analysis 51 | - Spatial Overlays 52 | - Next steps 53 | 54 | ![](images/point-in-polygon-spatial-overlays.png){.absolute bottom="0" width="1024"} 55 | 56 | 57 | 67 | 68 | 79 | 80 | ## Outline 81 | 82 | - 10:00am – 10:45am: What is GIS and Spatial Data? 83 | - 10:45am – 11:30am: Practical 1 84 | - 11:30am – 11:45am: break 85 | - 11:45am – 12:15pm: Classification discussion 86 | - 12:15pm – 1:00pm: Practical 1 87 | 88 | 89 | 102 | 103 | ## Housekeeping 104 | 105 | - Have presentation and practical sessions 106 | - Ask questions as we go along 107 | - Think about how you could use these techniques with your own data 108 | 109 | 110 | 111 | 112 | 113 | - Presentations, handouts and data via email and on OneDrive 114 | 115 | - WhatsApp group for discussion 116 | 117 | 132 | 133 | ## Any Questions? 134 | 135 | - ? 136 | 137 | 138 | ## What is GIS? 139 | 140 | - Geographical Information Systems 141 | - Turning (spatial) data into information ![](images/turning-data-into-information.png) 142 | - Using this information to answer (research) questions 143 | - *"How have housing conditions changed in the past ten years?"* 144 | 145 | ## What can a GIS can answer? 146 | 147 | ![](images/types-of-questions-a-gis-can-answer.jpg)\ 148 | Kraak & Ormeling (2003) p.7. 149 | 150 | ## What is GIS? 151 | 152 | ![](images/what-is-gis.png)\ 153 | http://www.flickr.com/photos/dsleeter_2000/3097476532 & ESRI Course "Teaching with GIS" 154 | 155 | ## GIS 156 | 157 | - Nearly all human activities & decisions involve geography 158 | - the "**where?**" 159 | - Working with geographic information is **different** to working with a **CSV** or **Excel** file 160 | - This is why we need specialized **GIS** software to: 161 | - **organize** and **store** 162 | - **access** and **retrieve** 163 | - **present** and **manage** spatial data 164 | - But ultimately to apply to the solution of our **problem** 165 | 166 | ## GIS can be applied to many many many different areas 167 | 168 | ------------------------------------------------------------------------ 169 | 170 | 171 | ![](images/kenya-vegetation.png) 172 | 173 | Kenya Vegetation Figure 1 - http://pvanb.wordpress.com/2010/06/10/clickfu-in-qgis/ 174 | 175 | ------------------ 176 | 177 | ### Census 2021 178 | 179 | ::: columns 180 | :::: {.column width="50%"} 181 | 182 | ![](images/census-2021.png) 183 | 184 | 185 | https://www.ons.gov.uk/visualisations/censuspopulationchange/E08000012/ 186 | 187 | :::: 188 | 189 | :::: {.column width="50%"} 190 | 191 | ![](images/census-2021-liverpool.png) 192 | 193 | https://www.ons.gov.uk/census/maps/choropleth/population/median-age/median-age/median-age?lad=E08000012 194 | 195 | :::: 196 | ::: 197 | 198 | --- 199 | 200 | ## Poverty in Africa 201 | 202 | ![](images/africa-poverty.png) 203 | 204 | http://pvanb.wordpress.com/2012/05/09/poverty-maps-on-harvestchoice/ 205 | 206 | --- 207 | 208 | ## Weather 209 | 210 | ![](images/weather.png) 211 | 212 | Tomorrows Weather - https://dominicroye.github.io/en/2023/tomorrows-weather/?utm_source=puntofisso&utm_medium=email 213 | 214 | 215 | --- 216 | 217 | ## GIS: Systems and Science 218 | 219 | ::: {.fragment} 220 | - Geographical Information **Systems** 221 | - The methods, process and technology we use 222 | ::: 223 | 224 | ::: {.fragment} 225 | - Geographical Information **Science** 226 | - The science behind the technology 227 | - Including development of new technology,
methods and processes 228 | ::: 229 | 230 | ::: {.fragment} 231 | ![](images/ijgis-1987.jpg){.absolute bottom="0" right="250" width="250"} 232 | ![](images/ijgis.png){.absolute bottom="0" right="0" width="250"} 233 | 234 | Thanks to Nick Tate for the IGJIS 1987 photo 235 | ::: 236 | 237 | 238 | 239 | --- 240 | 241 | ## GIS: Terminology 242 | 243 | ::: {.fragment} 244 | - Geographic*al* / Geographic 245 | ::: 246 | 247 | ::: {.fragment} 248 | - Geographic Data Science 249 | ::: 250 | 251 | ::: {.fragment} 252 | - GeoAI 253 | - Geographical Analysis 254 | - LLM / ChatGPT / assistant 255 | - [Kue Plugin: An AI Chatbot for QGIS, LinkedIn Post Feb 2025](https://www.linkedin.com/posts/jvdkwast_exploring-the-kue-plugin-an-ai-chatbot-for-activity-7286496279147237377-9KpP/) 256 | ::: 257 | 258 | --- 259 | 260 | ## GIS Software 261 | 262 | ![](images/gis-software.png)\ 263 | 264 | - QGIS has as many features as ArcGIS Pro 265 | - ArcGIS Pro is probably slightly more polished 266 | - QGIS is free (as is R & RStudio) 267 | - QGIS is popular in not for profit sector, academic and commercial 268 | - *All can be useful* 269 | 270 | ## Projections and Coordinate Systems 271 | 272 | ## Projections 273 | 274 | - Projection - going from a sphere to a flat surface 275 | 276 | ![](images/globe-to-mercator-projection.png) 277 | 278 | 279 | http://www.primap.com/wsen/Maps/MapCollection/WorldMaps/Globe-(Europe-centered)-Vegetation-4000x4000.html 280 | 281 | 282 | ## Projections 283 | 284 | - Projection - going from a sphere to a flat surface 285 | 286 | ![](images/peeling-an-orange.png) 287 | 288 | 289 | http://www.hdwallpapersos.com/orange-fruit-hd-wallpapers.html | Top: http://krygier.owu.edu/krygier_html/geog_353/geog_353_lo /geog_353_lo05.html 290 | 291 | 292 | ## Mercator Projection 293 | 294 | 295 | 296 | ![](images/mercator-projection.png) 297 | 298 | 301 | 302 | ## 303 | 304 | ![](images/mercator-gall-peters.png) 305 | 306 | 312 | 313 | ## 314 | 315 | ![](images/mercator-globe.png) 316 | 317 | ## 318 | 319 | ![](images/mercator-2.png) 320 | 321 | ## 322 | 323 | ![](images/mercator-comparision.png) 324 | 325 | ## 326 | 327 | ![](images/ch2-projections.png) 328 | 329 | [YouTube - Why all world maps are wrong](https://www.youtube.com/watch?v=kIID5FDi2JQ) 330 | 331 | ## Why are Projections important? 332 | 333 | 1. The map(s) may not be as they appear 334 | 335 | ## Why are Projections important? 336 | 337 | 1. The map(s) may not be as they appear 338 | 2. Data may appear in the wrong place 339 | 340 | ## 341 | 342 | ![](images/base-map.png) 343 | 344 | 345 | ## 346 | 347 | ![](images/base-map-uk-data.png) 348 | 349 | ## Why are Projections important? 350 | 351 | 1. The map(s) may not be as they appear 352 | 2. Data may appear in the wrong place 353 | 3. Projections are closely related to Coordinate Systems 354 | 355 | ## Coordinate Systems 356 | 357 | Latitude and Longitude (WGS 1984) 358 | 359 | *52°N 37' 30.32'' (52.6250) 1°E 14' 2.05'' (1.2339)* 360 | 361 | ![](images/lat-lng.png) 362 | 363 | ## Coordinate Systems 364 | 365 | British National Grid 366 | 367 | *Easting: 619301 Northing: 307416* 368 | 369 | 370 | ![](images/bng.png) 371 | 372 | ## Coordinate Systems 373 | 374 | UTM (Universal Transverse Mercator) 375 | 376 | *621160.98, 3349893.53 meters, Zone 31 N* 377 | 378 | ![](images/utm.png) 379 | 380 | ## Coordinate Systems 381 | 382 | UTM (Universal Transverse Mercator) 383 | 384 | *621160.98, 3349893.53 meters, Zone 31 N* 385 | 386 | ![](images/utm-europe.png) 387 | 388 | 389 | ## Geographic and Projected Coordinate Systems 390 | 391 | We can split these coordinate systems into two groups: 392 | 393 | - Geographic Coordinate Systems 394 | - Projected Coordinate Systems 395 | 396 | ## Geographic and Projected Coordinate Systems 397 | 398 | - **Geographic Coordinate Systems** 399 | - Where on the Earth’s surface something is 400 | - 52°N 37’ 30.32’’ (52.6250) 1°E 14’ 2.05’’ (1.2339) 401 | - Usually in angular units (degrees) 402 | - But measuring distances is hard 403 | 404 | ## Geographic and Projected Coordinate Systems 405 | 406 | ![](images/distance-lines-longitude.jfif){width="500"} 407 | 408 | Thanks to [@RickyAngueira](https://twitter.com/RickyAngueira) from [#30DayMapChallenge on Twitter](https://twitter.com/RickyAngueira/status/1594030866132410368?t=Mljsd9aPHr7IzLTrp3o45A&s=09). 409 | 410 | 411 | 412 | ## Geographic and Projected Coordinate Systems 413 | 414 | - **Geographic Coordinate Systems** 415 | - Where on the Earth’s surface something is 416 | - 52°N 37’ 30.32’’ (52.6250) 1°E 14’ 2.05’’ (1.2339) 417 | - Usually in angular units (degrees) 418 | - **Projected Coordinate Systems** 419 | - How we show this on a printed/flat map 420 | - Easting: 619301 Northing: 307416 421 | - Usually in linear units (meters) 422 | 423 | 424 | ## Geographic and Projected Coordinate Systems 425 | 426 | - **Geographic Coordinate Systems** 427 | - Latitude and Longitude (WGS 1984) 428 | - 52.6250° 1.2339° 429 | - **Projected Coordinate Systems** 430 | - British National Grid (Eastings & Northings) 431 | - Easting: 619301 Northing: 307416 432 | - UTM (Universal Transverse Mercator) 433 | - 621160.98, 3349893.53 meters, Zone 14 N 434 | 435 | ## Coordinate Systems 436 | 437 | - **Geographic** : Latitude and Longitude (WGS 1984) 438 | - 52.6250° 1.2339° **EPSG: 4326** 439 | - **Projected Coordinate Systems** 440 | - British National Grid (Eastings & Northings) 441 | - Easting: 619301 Northing: 307416 **EPSG: 27700** 442 | - UTM (Universal Transverse Mercator) 443 | - 621160.98, 3349893.53 meters, Zone 14 N **EPSG: depends on zone** 444 | - https://epsg.org/ | https://epsg.io/ 445 | 446 | ## Geographic and Projected Coordinate Systems 447 | 448 | - Why is it important? 449 | - Some data uses WGS84, some BNG, some UTM 450 | - GB ONS (LSOA) / OS and many others use BNG (Eastings/Northings) 451 | - Need to convert between the two 452 | - Most of the time QGIS converts automatically 453 | 454 | 455 | 456 | ## Which system to use? 457 | 458 | - For Global data, projections are key 459 | - WGS 84 EPSG:4326 460 | - Try WGS 84 / Equal Earth Greenwich EPSG:8857 461 | 462 | - For Local data, projections are less important 463 | - We are using Projected Coordinate System 464 | 465 | 466 | - We can convert data between projection systems 467 | 468 | 469 | 470 | --- 471 | 472 | 473 | ![](images/joining-1.png) 474 | 475 | --------------- 476 | 477 | ![](images/joining-2.png) 478 | 479 | ---------------- 480 | 481 | ![](images/joining-3.png) 482 | 483 | ------------------- 484 | 485 | ![](images/joining-4.png) 486 | 487 | ## Attribute Join 488 | 489 | - The attribute is key 490 | - It must match **exactly** 491 | - “Gambia, The” ≠ “The Gambia” 492 | - “USA” ≠ “The United States” 493 | - “UK” ≠ “Great Britain” 494 | 495 | 496 | ## Attribute Join 497 | 498 | - Codes (ISO3) can help 499 | 500 | ![](images/iso-codes.png){.absolute left="0"} 501 | 502 | ::: footer 503 | https://twitter.com/zevross/status/1118967279864242176 504 | ::: 505 | 506 | ## Attribute Join 507 | 508 | - Is an issue in many different places 509 | 510 | ![](images/irish-names.png){.absolute} 511 | 512 | 513 | ## Outline 514 | 515 | - ~~10:00am – 10:45am: What is GIS and Spatial Data?~~ 516 | - 10:45am – 11:30am: Practical 1 517 | - 11:30am – 11:45am: break 518 | - 11:45am – 12:15pm: Classification discussion 519 | - 12:15pm – 1:00pm: Practical 1 520 | 521 | ## QGIS Practical 522 | 523 | - Short Demo 524 | 525 | 526 | ## QGIS Practical 527 | 528 | QGIS Demo 529 | 530 | - make a folder, 531 | - download and save practical (PDF / HTML), 532 | - download zip file, 533 | - extract, 534 | - open QGIS, 535 | - load World countries, 536 | - pan, zoom 537 | 538 | ## Housekeeping - Practicals 539 | 540 | - Work through the workbook (questions, optional exercises) 541 | - Will split into groups of ~2-3 people (breakout rooms) 542 | - Ask your group colleagues questions 543 | 544 | 545 | - Use the ‘Ask for help’ button in the Breakout room 546 | - I will ‘walk around’ and see how people are getting on 547 | - Can share screens – in groups, or individually 548 | 549 | 550 | 551 | ## QGIS Practical 552 | 553 | - (Primarily) self-led practical 554 | - Good to explore the options 555 | - Ask questions as we go through 556 | - Try things 557 | - If you get stuck, ask for help 558 | 560 | 561 | 562 | ## Outline 563 | 564 | - ~~10:00am – 10:45am: What is GIS and Spatial Data?~~ 565 | - ~~10:45am – 11:30am: Practical 1~~ 566 | - 11:30am – 11:45am: break 567 | - 11:45am – 12:15pm: Classification discussion 568 | - 12:15pm – 1:00pm: Practical 1 569 | 570 | ## Break 571 | 572 | - We will resume in 15 min 573 | 574 | - Make sure you get away from the screen for a bit! 575 | 576 | # {background="#43464B" background-image="images/worlds-ocean-spilhaus-projection.jpg"} 577 | 578 | ## Outline 579 | 580 | - ~~10:00am – 10:45am: What is GIS and Spatial Data?~~ 581 | - ~~10:45am – 11:30am: Practical 1~~ 582 | - 11:30am – 11:45am: break 583 | - 11:45am – 12:15pm: Classification discussion 584 | - 12:15pm – 1:00pm: Practical 1 585 | 586 | 587 | ## GIS can do many things 588 | 589 | ## Visualsation is key 590 | 591 | - how do we show data on a map? 592 | 593 | 622 | 623 | 624 | 625 | ## Classification 626 | 627 | ![](images/classification-exercise-map.png) 628 | 629 | ## Classification 630 | 631 | - Go to [www.colorbrewer2.org](http://www.colorbrewer2.org) 632 | 633 | ![](images/color-brewer-screenshot.png) 634 | 635 | ## Classification {.smaller} 636 | 637 | ![](images/classification-exercise-map.png){.absolute bottom="0" width="1000"} 638 | 639 | - Go to [www.colorbrewer2.org](http://www.colorbrewer2.org) 640 | - How many classes would you use to categorise the data? 641 | - What are those classes? 642 | - What colour scheme would you use? Why? 643 | 644 | ## Classification 645 | 646 | - Polls 647 | - How many classes? 648 | - What are those classes? 649 | - Which colour scheme? 650 | 651 | 652 | 653 | ## Classification - Classes 654 | 655 | - How many classes we choose is important 656 | - Max of 5-7 657 | - What those classes are is important as well 658 | - Equal Interval: *0-10, 10-20, 20-30, ….* 659 | - Quantiles: *first 10 data points, second 10 data points, ….* 660 | - Natural Breaks *(Jenks / Fisher)* 661 | - Standard Deviation: *mean-1SD to mean, mean to mean+1SD, mean+1SD to mean+2SD, …* 662 | - Unique 663 | 664 | ## Classification 665 | 666 | ![](images/classification-options.png) 667 | 668 | ::: footer 669 | Figure 11 https://gistbok.ucgis.org/bok-topics/statistical-mapping-enumeration-normalization-classification 670 | ::: 671 | 672 | ## Classification 673 | 674 | ![](images/data-distribution.png) 675 | 676 | ## Classification 677 | 678 | ![](images/covid-example.png) 679 | 680 | 681 | ::: footer 682 | James Cheshire (UCL) wrote an article about the press conference announcing the second lockdown in the UK (31/10/2020) 683 | 684 | https://theconversation.com/next-slide-please-data-visualisation-expert-on-whats-wrong-with-the-uk-governments-coronavirus-charts-149329 685 | 686 | https://jcheshire.com/resources/different-maps-same-data/ 687 | ::: 688 | 689 | 690 | --- 691 | 692 | ![](images/qgis-symbology-histogram.png) 693 | 694 | ## Classification - Colours 695 | 696 | - As well as classes, colours are important 697 | - How do you choose the colours? 698 | - Why is this important? 699 | - Output 700 | - User 701 | - Colorbrewer.org 702 | 703 | ![](images/color-brewer-screenshot.png){.absolute bottom="0" right="0" width="600"} 704 | 705 | --- 706 | 707 | ![](images/color-brewer-in-qgis.png) 708 | 709 | 710 | 711 | 712 | ## Classification 713 | 714 | - Cartography is a Science and an Art 715 | - Be creative 716 | - There is no ‘right’ answer 717 | - A bit like cookery 718 | - But we have covered some ‘rules of thumb’ 719 | 720 | 721 | ## Before we continue with the practical 722 | 723 | - NULL values 724 | 725 | ## NULL Values 726 | 727 | ![](images/null-values-1.png) 728 | 729 | ## NULL Values 730 | 731 | ![](images/null-values-2.png) 732 | 733 | ## 734 | 735 | ![](images/calculating-new-values.png) 736 | 737 | 738 | ## 739 | 740 | ![](images/calculating-new-values-pc.png) 741 | 742 | 743 | ## 744 | 745 | - Null Values 746 | 747 | - Saving files 748 | 749 | 750 | ## Saving Files 751 | 752 | ![](images/saving-files-1.png) 753 | 754 | ## Saving Files 755 | 756 | ![](images/saving-files-2.png) 757 | 758 | 759 | ## Saving Files 760 | 761 | ![](images/saving-files-3.png) 762 | 763 | 764 | 765 | 766 | ## Glossary 767 | 768 | ![](images/glossary.png) 769 | 770 | 771 | ## Outline 772 | 773 | - ~~10:00am – 10:45am: What is GIS and Spatial Data?~~ 774 | - ~~10:45am – 11:30am: Practical 1~~ 775 | - ~~11:30am – 11:45am: break~~ 776 | - ~~11:45am – 12:15pm: Classification discussion~~ 777 | - 12:15pm – 1:00pm: Practical 1 778 | 779 | 792 | 793 | ## Wrap-Up 794 | 795 | - What are your questions? 796 | 797 | - Everyone post a question in Zoom that you have about GIS or todays work 798 | 799 | ## Next Session 800 | 801 | - Next session tomorrow 10am 802 | 803 | - More on Cartography and Map Design (beyond colours) 804 | 805 | - If you are working with some of your own data, bring it along 806 | 807 | ## 808 | 809 | 831 | 842 | 843 | ## 844 | 845 | 846 | ![](images/ncrm-welcome-slide-1.png) 847 | 848 | ## 849 | 850 | ![](images/ncrm-welcome-slide-2.png) 851 | 852 | ## Recap Quiz 853 | 854 | ## Outline 855 | 856 | - 10:00am – 10:20am: Recap and Cartography / Map Design 857 | - 10:20am – 11:30am: Practical 2a 858 | - 11:30am – 11:45am: break 859 | - 11:45am – 1:00pm: Practical 2b & Working with your own data 860 | 861 | 862 | 863 | ## Spatial Data 864 | 865 | - Data is crucial to GIS 866 | - ~50% of time doing a GIS project is spent finding data or getting data into the right format! 867 | - Finding data can be a real pain 868 | - Previous work **should** reference where they get data from 869 | - If not, it’s a reasonable question to ask the author 870 | - There is no one list of data, but some useful sources 871 | 872 | ## Spatial Data - Is it any use? 873 | 874 | - Location (where does it cover?) 875 | - Variables / columns (what does it cover?) 876 | - How old is the data? (when does it cover?) 877 | - What projection & coordinate system is the data in? 878 | - What scale is the data at? 879 | 880 | ## Scale {.smaller} 881 | 882 | ::: columns 883 | :::: {.column width="33%"} 884 | ![](images/lego-bus-1.png) 885 | 886 | - Small number of bricks 887 | - Low level of detail 888 | 889 | *https://www.youtube.com/watch?v=TcGIL21yqS4&list=PLwLYQ8o7Is3R3-6hTWzg2CK_iaxg5tsoZ&index=5&t=0s* 890 | 891 | :::: 892 | :::: {.column width="33%"} 893 | ![](images/lego-bus-2.png) 894 | 895 | - Medium number of bricks 896 | - Medium level of detail 897 | 898 | *https://www.amazon.co.uk/LEGO-Creator-London-40220-361329/* 899 | :::: 900 | :::: {.column width="33%"} 901 | ![](images/lego-bus-3.png) 902 | 903 | - Large number of bricks 904 | - Large level of detail 905 | 906 | *https://www.lego.com/en-gb/product/london-bus-10258* 907 | :::: 908 | ::: 909 | 910 | ## Worldwide {.smaller} 911 | 912 | ::: columns 913 | :::: {.column width="30%"} 914 | 915 | 1:100,000,000 916 | 1:100m 917 | 918 | (1cm = 1000km) 919 | 920 | unit on map* 921 | : 922 | units in real world 923 | 924 | *usually printed map, adapted for screen, some variation depending on monitor size, resolution…* 925 | 926 | :::: 927 | 928 | :::: {.column width="70%"} 929 | 930 | ![](images/world.png) 931 | 932 | :::: 933 | ::: 934 | 935 | ## Large Country/Continent {.smaller} 936 | 937 | ::: columns 938 | :::: {.column width="30%"} 939 | 940 | Brazil / South America 941 | 942 | 1:30,000,000 1:30m 943 | 944 | (1cm = 300km) 945 | 946 | :::: 947 | 948 | :::: {.column width="70%"} 949 | 950 | ![](images/south-america.png) 951 | 952 | :::: 953 | ::: 954 | 955 | ## Small Country {.smaller} 956 | 957 | ::: columns 958 | :::: {.column width="30%"} 959 | 960 | UK 961 | 962 | 1:8,000,000 1:8m 963 | 964 | (1cm = 80km) 965 | 966 | 967 | :::: 968 | 969 | :::: {.column width="70%"} 970 | 971 | ![](images/uk.png) 972 | 973 | :::: 974 | ::: 975 | 976 | ## Local / City {.smaller} 977 | 978 | ::: columns 979 | :::: {.column width="30%"} 980 | 981 | Hull 982 | 983 | 1: 100,000 1:100k 984 | 985 | 1cm = 1 km 986 | 987 | 988 | 989 | :::: 990 | 991 | :::: {.column width="70%"} 992 | 993 | ![](images/hull.png) 994 | 995 | :::: 996 | ::: 997 | 998 | ## Local / City {.smaller} 999 | 1000 | ::: columns 1001 | :::: {.column width="30%"} 1002 | 1003 | Hull 1004 | 1005 | 1: 50,000 1:50k 1006 | 1007 | 1cm = 0.5 km 1008 | 1009 | ![](images/landranger.png) 1010 | 1011 | 1012 | :::: 1013 | 1014 | :::: {.column width="70%"} 1015 | 1016 | ![](images/hull2.png) 1017 | 1018 | :::: 1019 | ::: 1020 | 1021 | ## Scale 1022 | 1023 | ![](images/world.png){ width="20%" } 1024 | ![](images/south-america.png){ width="20%" } 1025 | ![](images/uk.png){ width="20%" } 1026 | ![](images/hull.png){ width="20%" } 1027 | 1028 | ![](images/scale-range.png) 1029 | 1030 | ## Level of Detail 1031 | 1032 | ![](images/lod-range.png) 1033 | 1034 | 1035 | ![](images/lego-bus-1.png){ width="30%" } 1036 | ![](images/lego-bus-2.png){ width="30%" } 1037 | ![](images/lego-bus-3.png){ width="30%" } 1038 | 1039 | ## Scale & Level of Detail {.smaller} 1040 | 1041 | ![](images/world.png){ width="20%" } 1042 | ![](images/south-america.png){ width="20%" } 1043 | ![](images/uk.png){ width="20%" } 1044 | ![](images/hull.png){ width="20%" } 1045 | 1046 | ![](images/scale-range.png){ width="80%" } 1047 | 1048 | ![](images/lod-range.png){ width="80%" } 1049 | 1050 | 1051 | ![](images/lego-bus-1.png){ width="15%" } 1052 | ![](images/lego-bus-2.png){ width="15%" } 1053 | ![](images/lego-bus-3.png){ width="15%" } 1054 | 1055 | Depends on size 1056 | 1057 | ## File Size 1058 | 1059 | ::: columns 1060 | :::: {.column width="50%"} 1061 | 1062 | - More bricks = more data 1063 | - More data = bigger file 1064 | - In GIS, this is how much 1065 | detail there is 1066 | - More detail means we can 1067 | use it as a larger scale 1068 | - Generalisation 1069 | 1070 | :::: 1071 | :::: {.column width="50%"} 1072 | 1073 | ![](images/ch10-simplification.png){ width="80%"} 1074 | 1075 | :::: 1076 | ::: 1077 | 1078 | ## 1079 | 1080 | ::: columns 1081 | :::: {.column width="50%"} 1082 | 1083 | ![](images/ch10-simplification.png) 1084 | 1085 | :::: 1086 | :::: {.column width="50%"} 1087 | 1088 | ::: {.fragment} 1089 | 1090 | - Is the detail important? 1091 | 1092 | - Depends what you are going todo with the data 1093 | 1094 | ::: 1095 | 1096 | :::: 1097 | ::: 1098 | 1099 | ## Static Data 1100 | 1101 | ::: columns 1102 | :::: {.column width="70%"} 1103 | 1104 | ![](images/ch2-scale.png) 1105 | 1106 | :::: 1107 | :::: {.column width="30%"} 1108 | 1109 | - Static data 1110 | - No extra detail 1111 | 1112 | ::: 1113 | 1114 | :::: 1115 | ::: 1116 | 1117 | ## Dynamic Data 1118 | 1119 | ![](images/world.png){ width="20%" } 1120 | ![](images/south-america.png){ width="20%" } 1121 | ![](images/uk.png){ width="20%" } 1122 | ![](images/hull.png){ width="20%" } 1123 | 1124 | ![](images/scale-range.png) 1125 | 1126 | - Dynamic data 1127 | - Extra detail on demand 1128 | 1129 | ## Static vs Dynamic 1130 | 1131 | - Dynamic data 1132 | - Dynamic scale - pulls in additional data (from internet) 1133 | - Not editable / usable for analysis (no attribute table) 1134 | - Useful if data changes 1135 | - Static data 1136 | - Fixed scale - can’t get additional data (need another file) 1137 | - Editable and usable for analysis (attribute table) 1138 | - Does not update 1139 | 1140 | 1141 | 1142 | 1143 | ## Saving Files 1144 | 1145 | ![](images/saving-files-1.png) 1146 | 1147 | ## Saving Files 1148 | 1149 | ![](images/saving-files-2.png) 1150 | 1151 | 1152 | ## Saving Files 1153 | 1154 | ![](images/saving-files-3.png) 1155 | 1156 | ## Shapefiles {.smaller} 1157 | 1158 | ![](images/shapefiles.png) 1159 | 1160 | - `.shp` the geometry (polygons) themselves 1161 | - `.shx` extra geometry information 1162 | - `.dbf` attribute information (dBase IV format) 1163 | - `.prj` projection & coordinate system info 1164 | - `.qpj` QGIS version of projection & coordinate system information *[(more gory details)](https://gis.stackexchange.com/questions/55545/qpj-files-on-esri-software)* 1165 | 1166 | - *[https://en.wikipedia.org/wiki/Shapefile](https://en.wikipedia.org/wiki/Shapefile)* 1167 | 1168 | ## Shapefiles 1169 | 1170 | - (One of) the most common spatial data file formats 1171 | - ESRI 1990s, closed 1172 | - → [spec opened July 1998](https://www.esri.com/content/dam/esrisites/sitecore-archive/Files/Pdfs/library/whitepapers/pdfs/shapefile.pdf) 1173 | 1174 | ## Geopackage 1175 | 1176 | ![](images/geopackage.png){.absolute right="0" top="0"} 1177 | 1178 | - Everything is contained in a single file 1179 | - Easier file management with GeoPackage 1180 | - No multiple files! 1181 | - Many layers in one file 1182 | - Faster work-flow than with shapefiles 1183 | - There are nearly no limitations on field names (10 char in shapefile) 1184 | 1185 | ## Geopackage 1186 | 1187 | ![](images/geopackage.png){.absolute right="0" top="0"} 1188 | 1189 | - *An aside* 1190 | - *GeoPackages are databases* 1191 | - *Each layer is a table within the database* 1192 | - *Makes moving to PostGIS / PostgreSQL databases much easier* 1193 | 1194 | ## File Formats 1195 | 1196 | - Mainly been using shapefiles 1197 | - They are just one of many formats 1198 | - You will come across more: 1199 | - GeoPackage 1200 | - GeoJSON 1201 | - GML 1202 | - And many others! 1203 | - QGIS can read (most) of them 1204 | 1205 | ## Cartography and Map Design 1206 | 1207 | - By the end of this practical you will be able to: 1208 | - Understand how to design and produce a publication-ready map in QGIS 1209 | - Be able to add maps, scale bar, legends and labels to a map 1210 | - Know why scale is important in map design 1211 | - Know how to save and export maps as PDFs or images 1212 | 1213 | ## 1214 | 1215 | ![](images/imd-map.png) 1216 | 1217 | ## IMD – Index of Multiple Deprivation 1218 | 1219 | 1220 | ![](images/imd-overview.png){width=600} 1221 | 1222 | ![](images/imd-domains.png){width=600} 1223 | 1224 | ![](images/imd-england-map.png){.absolute right=0 bottom=0 height=600} 1225 | 1226 | https://assets.publishing.service.gov.uk/media/5d8b399a40f0b609946034a4/IoD2019_Infographic.pdf 1227 | 1228 | 1229 | ## IMD – Index of Multiple Deprivation 1230 | 1231 | 1232 | ![](images/imd-overview.png){width=600} 1233 | 1234 | - Score - *Low to High* 1235 | 1236 | - Decile - *1 to 10* 1237 | 1238 | - Rank - *1st to 32,844th* 1239 | 1240 | ![](images/imd-england-map.png){.absolute right=0 bottom=0 height=600} 1241 | 1242 | ## 1243 | 1244 | ![](images/uk-geographies.png) 1245 | 1246 | https://geoportal.statistics.gov.uk/documents/db2a0b3bee594f96a4869644fc32395b/explore 1247 | 1248 | ## 1249 | 1250 | ![](images/uk-geographies-2.png) 1251 | 1252 | ## 1253 | 1254 | ![](images/uk-geographies-lad.png) 1255 | 1256 | 1257 | ## 1258 | 1259 | ![](images/uk-geographies-lsoa.png) 1260 | 1261 | 1262 | ## 1263 | 1264 | ![](images/imd-map.png) 1265 | 1266 | Local Authorities Districts 1267 | 1268 | LSOAs 1269 | 1270 | ## Map Design 1271 | 1272 | What makes a good map? 1273 | 1274 | ## Map Design 1275 | 1276 | - Clear 1277 | - Title (caption), legend, scale bar, N arrow 1278 | - Copyright / acknowledgements 1279 | - Data source 1280 | 1281 | ## Copyright / Acknowledgements 1282 | 1283 | - Some data we must show copyright: 1284 | - OS Open Data: 1285 | - Contains National Statistics data © Crown copyright and database right 2024. 1286 | - IMD Data: 1287 | - MHCLD, 2019. 1288 | 1289 | ## Data source 1290 | 1291 | - It is also good practice to acknowledge where data came from 1292 | - Exactly the same as referencing in an academic article 1293 | 1294 | ## Map Design 1295 | 1296 | - What makes a good map? 1297 | - Darkes and Spence’s (2017) Cartography: An Introduction 1298 | - Examples 1299 | - Good and bad 1300 | - Rules of thumb 1301 | - [Second edition £12.99](https://www.cartography.org.uk/product-page/cartography-an-introduction-second-edition) 1302 | 1303 | - [First edition free!](https://www.cartography.org.uk/thematic-mapping) 1304 | 1305 | ![](images/cartography-an-introduction.png){.absolute right=0 bottom=0 width=400} 1306 | 1307 | ## *~~Classification~~* Cartography 1308 | 1309 | - Cartography is a Science and an Art 1310 | - Be creative 1311 | - There is no ‘right’ answer 1312 | - A bit like cookery 1313 | - But there are some ‘rules of thumb’ 1314 | - Borrow other people’s ideas 1315 | - Develop my design 1316 | 1317 | 1318 | ## 1319 | 1320 | ![](images/imd-map.png) 1321 | 1322 | ## Outline {.smaller} 1323 | 1335 | 1344 | 1355 | 1356 | 1357 | 1358 | ## Outline 1359 | 1360 | - ~~10:00am – 10:20am: Recap and Cartography / Map Design~~ 1361 | - 10:20am – 11:30am: Practical 2a 1362 | - 11:30am – 11:45am: break 1363 | - 11:45am – 1:00pm: Practical 2b & Working with your own data 1364 | 1365 | ## Practical 2a: Making a Map 1366 | 1367 | ![](images/imd-map.png) 1368 | 1369 | ## Outline 1370 | 1371 | - ~~10:00am – 10:20am: Recap and Cartography / Map Design~~ 1372 | - ~~10:20am – 11:30am: Practical 2a~~ 1373 | - 11:30am – 11:45am: break 1374 | - 11:45am – 1:00pm: Practical 2b & Working with your own data 1375 | 1376 | ## Break 1377 | 1378 | - We will resume in 15 min 1379 | 1380 | - Make sure you get away from the screen for a bit! 1381 | 1382 | # {background="#43464B" background-image="images/polar-projections.png"} 1383 | 1384 | ## Outline 1385 | 1386 | - ~~10:00am – 10:20am: Recap and Cartography / Map Design~~ 1387 | - ~~10:20am – 11:30am: Practical 2a~~ 1388 | - ~~11:30am – 11:45am: break~~ 1389 | - 11:45am – 1:00pm: Practical 2b & Working with your own data 1390 | 1391 | ## Data Types: Vector & Raster 1392 | 1393 | :::{.columns} 1394 | :::: {.column width="50%"} 1395 | - Vector Data 1396 | - Points 1397 | - Lines 1398 | - Polygons 1399 | :::: 1400 | :::: {.column width="50%"} 1401 | ![](images/vector-data.png) 1402 | :::: 1403 | ::: 1404 | 1405 | ## Data Types: Vector {.smaller} 1406 | 1407 | :::{.columns} 1408 | :::: {.column width="50%"} 1409 | - Points 1410 | - Locations 1411 | - Street addresses 1412 | - POIs 1413 | - Lines 1414 | - Roads 1415 | - Rivers 1416 | - Railways 1417 | - Polygons 1418 | - Building footprints 1419 | - Lakes 1420 | - Admin areas (LSOA) 1421 | - Countries 1422 | :::: 1423 | :::: {.column width="50%"} 1424 | ![](images/vector-data.png) 1425 | :::: 1426 | ::: 1427 | 1428 | ## Data Types: Raster 1429 | 1430 | :::{.columns} 1431 | :::: {.column width="50%"} 1432 | ![](images/raster-numbers.png) 1433 | :::: 1434 | :::: {.column width="50%"} 1435 | ![](images/raster-grid.png) 1436 | :::: 1437 | ::: 1438 | 1439 | ## Data Types: Raster 1440 | 1441 | :::{.columns} 1442 | :::: {.column width="50%"} 1443 | ![](images/raster-numbers.png){width=250} 1444 | ![](images/raster-grid.png){width=250} 1445 | :::: 1446 | :::: {.column width="50%"} 1447 | - Elevation 1448 | - Temperature 1449 | - Population density 1450 | - Land cover 1451 | - Light reflectance (satellite or aerial imagery) 1452 | :::: 1453 | ::: 1454 | 1455 | ## Data Types: Vector & Raster 1456 | 1457 | :::{.columns} 1458 | :::: {.column width="50%"} 1459 | ![](images/vector-data.png) 1460 | :::: 1461 | :::: {.column width="50%"} 1462 | ![](images/raster-numbers.png){width=250} 1463 | ![](images/raster-grid.png){width=250} 1464 | :::: 1465 | ::: 1466 | 1467 | ## File Types 1468 | 1469 | | | Vector | Raster | 1470 | |------------|--------|--------| 1471 | | Shapefile | X | | 1472 | | GeoTiff | | X | 1473 | | ASCII Grid | | X | 1474 | | GeoPackage | X | X | 1475 | | GeoJSON | X | | 1476 | | ... | | | 1477 | 1478 | ## File Management 1479 | 1480 | - File / Data Management is key 1481 | - Spatial data generates lots of files 1482 | - Having a system is crucial 1483 | - Particularly if you have multiple people working on the same project 1484 | 1485 | ## Working with your own data 1486 | 1487 | - Data is crucial to GIS 1488 | - ~50% of time doing a GIS project is spent finding data or getting data into the right format! 1489 | - Finding data can be a real pain 1490 | - Previous work **should** reference where they get data from 1491 | - If not, it’s a reasonable question to ask the author 1492 | - 95% of the time you won’t have spatial data ready to go 1493 | 1494 | ## Working with your own data 1495 | 1496 | - 95% of the time you won’t have spatial data ready to go 1497 | 1498 | - You may have to join your own data to existing spatial data 1499 | - e.g. population data 1500 | 1501 | - Existing spatial data can come from various locations 1502 | 1503 | ## Working with your own data 1504 | 1505 | Spatial data can come from various locations 1506 | 1507 | - [Ordnance Survey / OS Open Data](https://osdatahub.os.uk/downloads/open) 1508 | - [Census & Census Boundary]( https://borders.ukdataservice.ac.uk) 1509 | - [EuroStat](https://ec.europa.eu/eurostat) 1510 | - [Free GIS Data, Robin Wilson](http://freegisdata.rtwilson.com/) 1511 | - [GeoBoundaries.org](https://GeoBoundaries.org) 1512 | - [OpenStreetMap](http://openstreetmap.org) 1513 | - Google Search – shapefile / GIS 1514 | 1515 | ## Working with your own data 1516 | 1517 | - 95% of the time you won’t have spatial data ready to go 1518 | 1519 | - You may have to join your own data to existing spatial data 1520 | - e.g. population data (pop table + Geo boundaries) 1521 | 1522 | - Or create the shapefiles yourself 1523 | - How do you do this? 1524 | - Depends on points, lines and polygons 1525 | 1526 | ## Working with your own data 1527 | 1528 | :::{.columns} 1529 | :::: {.column width="40%"} 1530 | 1531 | ![](images/vector-data.png){} 1532 | 1533 | :::: 1534 | :::: {.column width="60%"} 1535 | 1536 | - Points 1537 | - Easy, `world-cities.csv` 1538 | - Using coordinates 1539 | 1540 | - Lines & Polygons 1541 | - Harder 1542 | - Not common to create new data (digitizing) 1543 | - Common to combining existing data to create new data 1544 | 1545 | :::: 1546 | ::: 1547 | 1548 | ## Practical 2b: Creating Data 1549 | 1550 | ![](images/data-with-coordinates.png) 1551 | 1552 | ## Practical 2b: Creating Data 1553 | 1554 | - What if we don't have coordinates? 1555 | 1556 | - Geocoding 1557 | 1558 | - Postcode -> coordinates 1559 | 1560 | ![](images/postcodes.png) 1561 | 1562 | ## Practical 2b: Creating Data 1563 | 1564 | - What if we don't have coordinates? 1565 | 1566 | - Geocoding 1567 | 1568 | - Postcode -> coordinates 1569 | 1570 | - Online - Doogal 1571 | - Small amounts of data 1572 | 1573 | ## Practical 2b: Creating Data 1574 | 1575 | - Geocoding 1576 | 1577 | - Postcode -> coordinates 1578 | 1579 | - Offline or large amounts of data 1580 | 1581 | :::{.columns} 1582 | :::: {.column width="40%"} 1583 | 1584 | ![](images/postcodes.png) 1585 | 1586 | :::: 1587 | :::: {.column width="60%"} 1588 | 1589 | OS Code-Point Open 1590 | 1591 | ![](images/codepoint.png) 1592 | 1593 | :::: 1594 | ::: 1595 | 1596 | ## Postcodes were designed for delivering post 1597 | 1598 | - Unit: SY23 3LE 1599 | - Sector: SY23 3 1600 | - District: SY23 1601 | - Area: SY (Shrewsbury) 1602 | 1603 | - Postcode Unit covers about 15 houses 1604 | - Can be ~100m or many square km 1605 | 1606 | ## Postcodes 1607 | 1608 | :::{.columns} 1609 | :::: {.column width="50%"} 1610 | 1611 | - SY23 3LE: 1612 | - 54,046,449 m2 1613 | - 5,404 hectares 1614 | - 54 km2 1615 | 1616 | :::: 1617 | :::: {.column width="50%"} 1618 | 1619 | ![](images/sy23-3le.png) 1620 | 1621 | :::: 1622 | ::: 1623 | 1624 | ## Postcodes 1625 | 1626 | :::{.columns} 1627 | :::: {.column width="50%"} 1628 | 1629 | - CF14 3DS: 1630 | - 6,703 m2 1631 | - 6 hectares 1632 | - 0.006 km2 1633 | 1634 | :::: 1635 | :::: {.column width="50%"} 1636 | 1637 | ![](images/cf14-3ds.png) 1638 | 1639 | :::: 1640 | ::: 1641 | 1642 | ## Postcodes – useful for joining data, but…. 1643 | 1644 | - Remember their size can vary, sometimes dramatically 1645 | 1646 | - OS Code-Point Open (free, centroid only) 1647 | 1648 | - CodePoint with Polygons (paid, GSMA, Digimap) 1649 | 1650 | 1651 | 1652 | ## Practical 2b: Creating Data 1653 | 1654 | - Continue with Practical 2: Making a Map 1655 | 1656 | - Try working with some of your own data 1657 | 1658 | - Try Practical 2b: Coordinates & Postcodes 1659 | 1660 | ## Outline 1661 | 1662 | - ~~10:00am – 10:20am: Recap and Cartography / Map Design~~ 1663 | - ~~10:20am – 11:30am: Practical 2a~~ 1664 | - ~~11:30am – 11:45am: break~~ 1665 | - 11:45am – 1:00pm: Practical 2b & Working with your own data 1666 | 1667 | ## Wrap Up 1668 | 1669 | - Two Stars, One Wish *poll* 1670 | 1671 | ## Wrap-Up 1672 | 1673 | - Everyone post a question in Zoom that you have about GIS or todays work 1674 | 1675 | 1676 | 1677 | ## Next Session 1678 | 1679 | - Next session Tuesday 8th March, 10am 1680 | 1681 | - More on Spatial Analysis 1682 | 1683 | - If you are working with some of your own data, bring it along 1684 | 1685 | 1686 | 1687 | 1697 | 1707 | 1708 | 1713 | -------------------------------------------------------------------------------- /workbook-p1-p2.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'Introduction to QGIS: Spatial Data and Spatial Analysis' 3 | output: 4 | pdf_document: default 5 | html_document: 6 | df_print: default 7 | toc: TRUE 8 | toc_float: TRUE 9 | self_containted: TRUE 10 | date: "Practicals 1 & 2: Tue 1st and Wed 2nd April 2025" 11 | --- 12 | 13 | 14 | 15 | 16 | 17 | # Practical 1: Introduction to QGIS 18 | 19 | | **Learning outcomes:** | 20 | |---| 21 | | Be able to set up QGIS and add data | 22 | | Understand how to add data with a latitude & longitude coordinate | 23 | | Join tabular data to spatial data | 24 | | Understand how to undertake simple calculations | 25 | | Understand how to classify data for representation on a map | 26 | 27 | Several conventions have been adopted in the following instructions: 28 | 29 | - **Bold** type indicates software commands, options or window names (e.g. **Open**, **Delete** etc.) 30 | - A `courier` font is used for folder, file or program names (e.g. `world_countries`) 31 | - Accessing a command through a sequence of menus is shown as: 32 | **View > Zoom Data > Full Extent** 33 | 34 | Many commands require the OK button to be clicked or the Enter key to be pressed after a name has been typed in or an option selected. 35 | 36 | File management is very important, so do spend a bit of time making sure you are happy with where the files are stored. If you have questions, please ask! 37 | 38 | - Create a new folder in your **Documents** folder called **GIS** (or something similar that you know where it is). 39 | - Open the OneDrive site and find the `prac1.zip` file. 40 | - Download it and save the file in the new folder you created. 41 | - As there are several files they have been compressed into a single zip file, and you will need to first copy this and then extract the data files. Choose somewhere sensible to extract the files to. 42 | - Start QGIS by clicking on Start, then type **QGIS** and select **QGIS Desktop 3.40.4**. *Your version number might vary, **QGIS Desktop** is the key bit.* 43 | 44 | Let's start off by creating a blank map and adding some data. 45 | 46 | - Start by clicking **Project > New** ![](images/new.png){ height=20 } from the menu at the top of the screen. 47 | - Click the **Open Data Source Manager** ![](images/open-data-source-manager.png){ height=20 } button. 48 | - Make sure ![](images/vector.png){ height=20 } is selected. 49 | - Then choose the **Browse** button ![](images/browse.png){ height=20 } and navigate to the `prac1` folder we downloaded earlier. 50 | - Change the option in the drop-down menu on the bottom right to **ESRI Shapefiles**. 51 | - Select the `world_countries.shp` file, click **Open** and click **Add**. 52 | - Then click **Close**. 53 | - This will add a layer which shows the countries of the world. 54 | 55 | QGIS has a number of different ways of navigating around spatial data. Click on the **Zoom In** tool ![](images/zoom-in.png){ height=20 } and draw a box around Europe - the display will zoom in to show this area. To view all of the data, click the **Zoom Full** tool ![](images/zoom-full.png){ height=20 }. 56 | 57 | *You can also use the mouse wheel to zoom in and out.* 58 | 59 | Use the **Pan Map** tool ![](images/pan-map.png){ height=20 } to move around the map by clicking on the tool and then click and drag around the map. You can also use the mouse wheel to zoom in and zoom out. Experiment with the zoom and pan tools, and when you are happy, move on to the next section of the practical. 60 | 61 | 62 | 63 | The Identify Features tool allows you to select a country on the map and see the attribute information stored in the shapefile about that country. 64 | 65 | - Select the **Identify Features** tool ![](images/identify-features.png){ height=20 }, and then click on a country. 66 | - A window will appear, titled **Identify Results**, with information about the country you selected. 67 | - Try selecting different countries, to see how the tool works. 68 | 69 | When we added the `world_countries` shapefile, QGIS randomly assigned a colour. We can change this to something more sensible - green, for instance. 70 | 71 | - Right click on the `world_countries` entry in the **Layers** window on the left hand side of the screen, and click on **Properties**: 72 | 73 | ![](images/world-countires-properities.png){ width=30% } 74 | 75 | - This will open the **Layer Properties** window, where we can change many different options for how the layer is displayed, as well as other options about the layer. 76 | - Click on the ![](images/symbology.png){ height=20 } **Symbology** option on the left hand side. 77 | - To change the colour, click on the drop down menu next to the colour option: 78 | 79 | ![](images/symbology-polygon.png){ width=55% } 80 | 81 | - You can then either select one of the pre-set colours, or click on **Choose Color...** and select a colour from the color picker. Use either option, and change the colour to something you like. 82 | - Click **OK** and this will close the Layer Properties window and update the colour on the map. 83 | 84 | 105 | 106 | ## Add the other shapefiles 107 | 108 | - Using the same process as previously (or select **Layer > Add Layer > Add Vector Layer... > Vector > ...**) add three more shapefiles to the map. 109 | - The files to add are: `world_deg30.shp`, `world_lakes.shp` and `world_rivers.shp` shapefiles. 110 | - To select multiple files, select the one at the top of the list, hold down Shift on the keyboard and click on the bottom file. 111 | - You may have a **Select Transformation** box appear. If so, keep the default choice selected and choose **OK**. 112 | 113 | 114 | QGIS will add the layers, and again assign a random colour. However, you may not be able to see all the data. This is because the order of the different layers in the Layers window is important. 115 | 116 | - Re-order the layers (by dragging them up or down) so they are in this order (from top to bottom): `world_lakes`, `world_rivers`, `world_countries` and `world_deg30`. 117 | - Now you should be able to see the three different data sets. We can rename the layers as well - right click on `world_deg30` and select rename. Rename this layer to `oceans` and press enter. 118 | - Also use the **Identify Features** tool to investigate some of the new data layers. *You have to select the layer you want to Identify*. 119 | - Now is a good time to save the QGIS project file. Select **Project > Save** and save the file somewhere sensible. 120 | 121 | The colours of the different layers will also need to be changed, so update the colours to reflect what the layers represent. 122 | 123 | *The options you have for symbology will depend on what type of spatial data you are dealing with. The countries layer is a polygon layer, so we can change the colour of the polygons. Point layers or line layers will have different options. Experiment with different colours and the other options in the Style section of the Layer Properties window.* 124 | 125 | Remember also to save the project file! 126 | 127 | ## Adding point data from a CSV file 128 | 129 | We have already added polygon data and line data, and now we are going to look at adding some point data. Open up the `world-cities.csv` file included in the zip file - it should open in Excel. You can see the file contains four columns: Name, Latitude, Longitude and Country. As this data has some coordinates, QGIS can plot the data on our map. Close the file (without saving, if Excel asks), and return to QGIS. 130 | 131 | - Click **Layer > Add Layer > Add Delimited Text Layer...** and click **Browse** ![](images/browse.png){ height=20 } and select the `world-cities.csv` file. 132 | - You should see the different columns appear at the bottom of the window. 133 | - Make sure that **File format** is set to `CSV` and **Geometry Definition** is set to `Point coordinates`. 134 | - You may need to expand **Geometry Definition**. If it looks like this ![](images/geometry-definition.png){ height=20 } then click on the arrow ![](images/arrow.png){ height=20 } so it looks like this: 135 | 136 | ![](images/geometry-definition-expanded.png){ width=80% } 137 | 138 | - Check that **X** field is set to `Longitude` and **Y** field is set to `Latitude`. 139 | - Make sure that **Geometry CRS** is set to `EPSG:4326 - WGS 84`. 140 | - Click **Add**, and **Close**. 141 | 142 | *QGIS may ask what coordinate system the coordinates are in. Make sure **Coordinate Reference System** `WGS 84 - Authority ID EPSG:4326` is selected (type the ID number **4326** in the filter box if needed), and click **OK**.* 143 | 144 | You should now see the 15 cities added to the map. Update the symbols to a colour that fits in with your existing map. 145 | 146 | **Optional Exercise** 147 | 148 | See if you can work out how to add a name to each of the cities. Look in the **Layer Properties** window under **Labels**. 149 | 150 | 151 | ## Joining tabular data 152 | 153 | We only need the `world_countries` layer for the next exercise, so turn all of the other layers off by clicking on the check box next to each layer entry in the Layers panel. 154 | 155 | ![](images/layers.png){ width=20% } 156 | 157 | 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). This attribute must be unique (i.e. a country must not be listed twice in your Attribute table) and identical (i.e. the country names must be the same and spelt identically, e.g. "Gambia, The" and "The Gambia" will not join successfully). 158 | 159 | - Right-click on the `world_countries` layer and choose **Open Attribute Table**. You'll see that the **NAME** field is unique (different) for each country. 160 | - Close the **Attribute Table**. 161 | - In the data files that you copied today you'll notice that there is also an Excel file named `pop2015.xls`. Double-click this file and it should open in Excel. The dataset contains three fields, a unique identifier called UN_Code, the country **NAME** and population data for 2015 called **POP2015**. Close the Excel file once you have finished viewing the data. 162 | 163 | Now that we've identified the two fields in our datasets that we will use to make the join we can move on. 164 | 165 | - To add our table to the map we need to use the **Open Data Source Manager** ![](images/open-data-source-manager.png){ height=20 }. Click on this, and then choose **Browser** ![](images/browser.png){ height=20 }. 166 | - Open **Home** and navigate to where you downloaded your zip file earlier. 167 | - There should be a file listed called `pop2015.xls`. 168 | - Expand ![](images/arrow.png){ height=20 } this and there should be a file called `pop2015`. 169 | - Double click on `pop2015` and it will be added to the Layers window. 170 | - Close the **Data Source Manager**. 171 | - The table will now appear as a layer in the Layers window: 172 | 173 | ![](images/layers-with-pop2015-xls.png){ width=20% } 174 | 175 | - Right-click on the table we have just added (`pop2015`) and **Open Attribute Table** to check that the data appears correctly (if you have all *null* values there has been a problem importing your data, try adding it again). You should see both fields with data populated. 176 | - Close the attribute table when you have finished viewing the data 177 | - Now we will join this table layer with your spatial data. Right-click on the `world_countries` layer, select **Properties** and click on **Joins** ![](images/joins.png){ height=20 }. 178 | - Click on the **Add new join** button ![](images/plus.png){ height=20 } to create a new join. The **Add Vector Join** dialogue box will now open 179 | - Make sure that in the **Join layer** dropdown box `pop2015` is selected 180 | - In the **Join field** dropdown box `Name` should be selected 181 | - In the **Target field** dropdown box `NAME` should also be selected 182 | 183 | ![](images/add-vector-join.png){ width=30% } 184 | 185 | - Click **OK** on the **Add Vector Join** window and also in the **Layer Properties** window 186 | - Open **Attribute Table** of `world_countries` and you will see that a new field (named `pop2015_POP2015`) has been added to the Attribute table! Please ask for help if this is not the case. 187 | 188 | The join that we have made is not permanent; it is a temporary link between the two datasets. To make the Join permanent we need to save a new copy of the `world_countries` layer. 189 | 190 | - Right-click `world_countries` and click on **Export > Save Features As...**. 191 | - In the **Save Vector Layer as** window make sure that the following variables are selected: 192 | - **Format** is ESRI Shapefile 193 | - Save the new layer as `world_countries_updated` in the `prac1` folder (click **Browse** ![](images/browse.png){ height=20 } to select the folder and enter the filename) 194 | - Leave all other fields as they are 195 | - Click **OK** and the new layer will be added to the map. Open the attribute table to check that the new field (shortened to `pop2015_PO`) is present. 196 | 197 | - Right-click `world_countries` and select **Remove Layer** 198 | - If you like, **Save** your project. 199 | 200 | ## Adding new fields and calculating values 201 | 202 | We will now add a new field to the attribute table and calculate some values (the change in population between 2005 and 2015) using a simple mathematical operation. This can be useful when you want to create new data or undertake some analyses. 203 | 204 | - Open **Attribute Table** of `world_countries_updated` 205 | - Click on the **Toggle Editing** ![](images/toggle-editing.png){ height=20 } button 206 | 207 | ![](images/toggle-editing-new-field.png){ width=90% } 208 | 209 | 210 | - Click on **New field** ![](images/new-field.png){ height=20 } button 211 | - - Set **Name** to `POP_DIFF` 212 | - - Leave **Comment** blank 213 | - - Set **Type** to `Integer (32-bit))`, change **Length** to `10`. 214 | - Click **OK** 215 | 216 | You will see that the new field contains values, by default, as *NULL*. We now need to populate this new field (column) with some data. 217 | 218 | - Click on the **Open field calculator** ![](images/field-calculator.png){ height=20 } button and the Field Calculator window will open. It is here that we can undertake many types of mathematical calculations 219 | - Check the checkbox next to **Update existing field** ![](images/checkbox-update-existing-field.png){ height=20 } and select the field named `POP_DIFF` from the dropdown box 220 | - Under the list in the centre, click on the expand arrow ![](images/expand-arrow.png) next to **Fields and Values** 221 | - Double-click the field named `pop2015_PO` to add it to the **Expression** 222 | - Now single-click on the minus (`-`) sign and double-click on `POP2005`. Your expression should look like this: 223 | - `"pop2015_PO" - "POP2005"` 224 | - *(notice how the expression builder puts in the double quote marks for you)* 225 | - Click **OK** to run the calculation and the `POP_DIFF` field will populate with the calculated values (the first few values should be 9 (Antigua and Barbados), 6399 (Algeria) and 1191 (Azerbaijan), ask if this is not the case) 226 | - Finally, click on the **Toggle editing ** ![](images/toggle-editing.png){ height=20 } button and choose **Save** when prompted. Close the attribute table 227 | - **Save** ![](images/save.png){ height=20 } your project. 228 | 229 | By the time you get to this section, we should have completed the 'Classification' discussion and talked about class boundaries and colours. If we haven't yet, please let me know that you have reached this point. 230 | 231 | ## Classifying population change 232 | 233 | Now we have calculated the change in population between 2005 and 2015, we need to display it on the map. 234 | 235 | - Open the **Layer Properties** window and the **Symbology** ![](images/symbology.png){ height=20 } tab of the `world_countries_updated` layer. 236 | - Where the option says **Single symbol** at the top, change this to **Graduated**. 237 | - Select the `POP_DIFF` field from the **Value** list. 238 | - The click **Classify**, you will see the 5 classes for this data set appear in the window. 239 | - Click **OK**, and QGIS will update the map. 240 | 241 | Now we have a map of population change. However, there are various things wrong with it. What are they? Have a think, and then chat to your neighbour to see what they think might be wrong. 242 | There are a number of things you can change to alter the classification: 243 | 244 | 1. Try changing the classification method, the default is **Equal Interval**. How do the different methods change the classification of the data. Which is "right"? 245 | 2. Try changing the number of classes. 246 | 3. Try changing the colours used - how does this impact the message of the map? (ColorBrewer can be accessed through **Color ramp > Create New Color Ramp > Catalog: ColorBrewer**). 247 | 4. Try changing the class boundaries - use the **Histogram** tool in QGIS, click **Load Values** to show the histogram. 248 | 5. Can you use a diverging colour scheme to show increases or decreases in a different colour? 249 | 250 | Once you have finished, remember to save your QGIS Project. 251 | 252 | ## Optional exercises 253 | 254 | **Classifying % population change** 255 | 256 | What else might be wrong with the data we have calculated? 257 | 258 | Currently we are comparing the increase in numbers of people between 2005 and 2015 in each country. It might make more sense to compare the % increase. Calculate this and then show this on a map. Why is this a more logical way of representing this data? 259 | 260 | **Adding a basemap** 261 | 262 | We have the option of adding a base map to the data we have in QGIS. We can do this through XYZ Tiles (within the Browser panel). 263 | 264 | We can also add Google Maps imagery to this as well (although this is not officially supported, and may break). 265 | 266 | - In the Browser window, right-click on **XYZ Tiles** and choose **New Connection...** 267 | - In Name type `Google Maps` 268 | - In URL paste in `http://mt0.google.com/vt/lyrs=y&hl=en&x={x}&y={y}&z={z}&s=Ga` *(or copy and paste from the workbook)* 269 | 270 | An alternative option is to use a plugin called QuickMapServices. To install it, click **Plugins > Manage and Install Plugins.**. Search for `QuickMapServices`. Then select the plugin and click **Install Plugin**. Once installed, try **Web > QuickMapServices > OSM > OSM Standard** to begin. 271 | 272 | ---- 273 | 274 | \newpage 275 | 276 | 277 | # Practical 2: Making a Map 278 | 279 | | **Learning outcomes:** | 280 | |---| 281 | | Understand how to design and produce a publication-ready map in QGIS | 282 | | Be able to add maps, scale bar, legends and labels to a map | 283 | | Know why scale is important in map design | 284 | | Know how to save and export maps as PDFs or images | 285 | 286 | This practical focuses on aspects of map design and symbolisation in QGIS. In particular, it will build upon the skills from the previous practical to look at how QGIS can be used to produce maps that can be easily printed. QGIS has a powerful tool called Print Layout that allows you to view your GIS layers and create maps. An example map is provided at the end of this handout. 287 | 288 | We will create the map from scratch and add elements such as north arrow, legends and scale bars. Let's get started! Remember to **Save** ![](images/save.png){ height=20 } your work as you go. 289 | 290 | ## Getting and setting up the data 291 | 292 | - Download the `prac2.zip` data file. 293 | - Extract the files to somewhere you can find in the future. 294 | - Open a new, blank project in QGIS. 295 | - We now need to add our data layers to the map. 296 | - To add our data to the map we need to use the **Open Data Source Manager** ![](images/open-data-source-manager.png){ height=20 }. 297 | - Select **GeoPackage** ![](images/geopackage.png){ height=20 } on the left. 298 | - Click **New** and then select the `prac2-data.gpkg` file. 299 | - Make sure that `prac2-data.gpkg` is selected in the list and click **Connect**. 300 | - Select the `LSOA-IMD-2019-Southern` layer and choose **Add**. Then choose **Close**. 301 | 302 | This shows the data very well, but it isn't that obvious where the data is, particularly if you zoom in. We can add a base map to this. 303 | 304 | - In the browser window in the top left, expand **XYZ Tiles**. 305 | - Double click on **OpenStreetMap**. This will add a basemap to QGIS. 306 | - You may need to re-order the layers if the basemap is at the top. 307 | 308 | ---- 309 | 310 | *If this doesn't work, try this approach:* 311 | 312 | *If you need to install the **QuickMapServices** plugin:* 313 | - *Click **Plugins > Manage and Install Plugins...** * 314 | - *Type `quick` in the search bar at the top, and select **QuickMapServices** from the list below. * 315 | - *Choose **Install Plugin**. * 316 | - *Close the **Plugins** window.* 317 | - *Choose **Web > QuickMapServcies > OSM > OSM Standard**. This will add an OSM (OpenStreetMap) basemap.* 318 | 319 | ---- 320 | 321 | - Zoom in somewhere where you can see the base map. It will add in more detail as you zoom in. 322 | - When you have finished looking at the map, right-click on the `LSOA-IMD-2019-Southern` layer and choose **Zoom to Layer** ![](images/zoom-to-layer-right-click.png){ height=20 } to return to our IMD data. 323 | - Right click on the `LSOA-IMD-2019-Southern` layer and choose **Properties > Symbology**. 324 | - Change the **Opacity** to **50%**. 325 | - If you can't see it, click **Change..** next to **Symbol**. Alter the **Opacity** option to **50%**. 326 | - Choose **OK** and **OK**. 327 | 328 | Now we can see the base map through the IMD data. You may have to experiment with different values of opacity to be able to see both easily. 329 | 330 | The default colours for the IMD data aren't that great, but fortunately we have a Style file, created by Alasdair Rae (see https://www.sheffield.ac.uk/usp/research/projects/english-indices-deprivation-2019 for more details). 331 | 332 | - Right click on the `LSOA-IMD-2019-Southern` layer, choose **Properties > Symbology**. 333 | - At the bottom of the **Symbology** window choose ![](images/style.png){ height=20 } **Style > Load Style...**. 334 | - In the **Database Styles Manager** window, under **Load style** choose **From File** and then click the Browse ![](images/browse.png){ height=20 } button and select the `prac2-imd-d-style.qml` file. 335 | - Your window should look similar to this: 336 | 337 | 338 | ![](images/database-styles-manager.png){ width=30% } 339 | 340 | - Click **Load Style** and **OK**. This will load the colours for our IMD Decile layer. 341 | 342 | We can also add some outlines for the Local Authority Districts. 343 | 344 | 345 | 346 | - Add in the `Local_Authority_Districts_April_2019_Boundaries_Southern` layer from the same geopackage as we used earlier. 347 | - If you get the **Transformation** window again, just click OK. 348 | - Open the **Symbology** window. 349 | - Select the **Simple fill** option near the top of the window, and the details below should change. 350 | - Set **Fill Style** to **No Brush** (see screenshot below). 351 | - Choose **OK**. 352 | 353 | ![](images/simple-fill.png){ width=60% } 354 | 355 | - Open the Local Authority layer **Properties** again and this time choose **Labels** ![](images/labels.png){ height=20 } 356 | - Change **No Labels** to **Single Labels**. 357 | - Set **Value** to `lad19nm` and choose **OK**. 358 | - *If nothing appears, make sure you have selected `lad19nm`*. 359 | 360 | This adds the Local Authority boundaries to give us some context for the IMD data. 361 | 362 | **Optional Exercise** 363 | 364 | Try experimenting with adjusting the transparency off - which do you think looks better? 365 | 366 | ## Creating the map layout 367 | 368 | Now we are going to start constructing the map. Have a look at the example at the end of the handout to see what we are aiming to create. You don't have to stick to the design, feel free to adjust and change things as you see fit. 369 | 370 | - Centre the map display in the main QGIS window. Make sure you can see Winchester and Isle of Wight clearly. 371 | - Click **Project > New Print Layout...** and click **OK**. 372 | - The **Print Layout** window will now open with a blank page. 373 | - We are aiming to create a map like the one attached to the back of this workbook, so we need our page to be landscape. Right-click on the blank piece of paper and choose **Page Properties...**. 374 | - Make sure **Orientation** is set to `Landscape`. 375 | - Click the **Add Map** button ![](images/add-new-map.png){ height=20 } 376 | - Draw a box about the appropriate size on the left hand side of the page. It should look something like this: 377 | 378 | ![](images/layout-1.png){ width=60% } 379 | 380 | As long as the box is in about the right place, we can tweak the position and size later on. 381 | 382 | - Your page might be a bit small. Use the **Zoom Full** tool ![](images/zoom-full.png){ height=20 } to zoom in to the page as far as possible. 383 | - We need to make the labels a bit clearer. Go back from the Layout window to the main QGIS window, and open the **Symbology** window for the `Local_Authority_Districts_April_2019_Boundaries_Southern` layer. 384 | - Go to **Labels > Buffer** and select **Draw text buffer**. Click **OK**. *See how the labels have a white 'halo' around them now?* 385 | 386 | ![](images/labels-buffer.png){ width=90% } 387 | 388 | - Go back to the **Layout** window. 389 | - Make sure you have the map selected (using the **Select/Move Item** tool ![](images/select-move-item.png){ height=20}) and click the "Refresh" button ![](images/update-map-preview.png){ height=20}. 390 | - This is a very common way to adjust the map and you will do this a lot. 391 | - You might also need to adjust the scale to get the map looking right. I had a value of around `740000` in the scale box. To adjust, type a number in and press Enter. 392 | - You can also move the map around with the map window using the **Move item content** tool ![](images/move-item-content.png){ height=20} 393 | - When you have finished moving the map content around, make sure you go back to the **Select/Move Item** tool ![](images/select-move-item.png){ height=20} 394 | - Once you are happy with this bit, select the **Lock layers** and **Lock styles for layers** buttons. This will stop the visible layers and style changing when we alter it for a different map. 395 | ![](images/lock-layers.png){ width=40% } 396 | - Remember to **Save** ![](images/save.png){ height=20} your map regularly. 397 | 398 | Now we are going to add the main map for Isle of Wight. 399 | 400 | - Go back to the main **QGIS** window and zoom in on the Isle of Wight. 401 | - Then go back to the **Layout** window and add a new map on the top-left of the page using ![](images/add-new-map.png){ height=20}. 402 | 403 | *What do you think of this so far?* 404 | 405 | - This is ok, but it would be better to make the Isle of Wight stand out a bit more. We are going to extract the Local Authority outline for just the Isle of Wight, and use this on our map of the Isle of Wight. 406 | 407 | - Go back to the main QGIS window. 408 | - Make sure you have the Local Authorities layer selected in the Layers window. 409 | - Use the **Select Features** tool ![](images/select-features.png){ height=20} to select the Isle of Wight. 410 | - Once the Isle of Wight is yellow, right-click on the Local Authorities layer and choose **Export > Save Selected Features As...** 411 | - Make sure **Format** is set to **GeoPackage**. 412 | - Click **Browse** ![](images/browse.png){ height=20 } and select the `prac2-data.gpkg` we have been using already by clicking **Save**. 413 | - Set **Layer Name** to `LA-Isle-of-Wight` and click **OK**. 414 | - Click the **Deselect Features** ![](images/deselect.png){ height=20 } so we don't have anything selected any more. 415 | - We are going to copy the style from the main LA layer to the new one we have just created. 416 | - Right-click on the `Local_Authority_Districts_April_2019_Boundaries_Southern` layer and choose **Style > Copy Style > All Style Categories**. 417 | - Right-click on the `prac2-data — LA-Isle-of-Wight` layer, choose **Style > Paste Style > All Style Categories**. 418 | - Turn off the `Local_Authority_Districts_April_2019_Boundaries_Southern` layer. 419 | - Go back to the layout window, make sure the Isle of Wight map is selected, and click **Refresh** ![](images/update-map-preview.png){ height=20}. 420 | - If it doesn't look quite right, try experimenting with some other options. If you are happy with it, select the **Lock layers** and **Lock styles for layers** options. 421 | 422 | *The **Copy Style** and **Paste Style** functions copy the style information to the clipboard, just like any other copy and paste function. You can paste the style information into Notepad if you want to have a look at it. It is in XML, and you can pick out the information, e.g. `` is the outline colour in RGB, 0-255, very very dark grey, not quite black.* 423 | 424 | *The map is starting to come together now!* 425 | 426 | Have a go at following the same steps as we did for the Isle of Wight for the **Winchester** local authority, and add this map to the top-right corner of the page. 427 | 428 | - The final step is to add some of the additional map marginalia (extra bits like the legend, scale etc.). 429 | - Make sure you are in the **Layout** window. 430 | - Choose **Add Item > Add Legend**. Click in the lower-right area of the map. You may need to click **OK**. 431 | - By default the legend includes all of the visible layers, and will automatically update if we change the layers. 432 | - In the **Item Properties** window, under **Legend Items** untick **Auto update**. 433 | - Select the `prac2-data — LA-Isle-of-Wight` layer and click the minus ![](images/minus.png){ height=20 } button to remove it. 434 | - Repeat this for the `prac2-data — LA-Winchester` layer. 435 | - Select the `Local_Authority_Districts_April_2019_Boundaries_Southern` layer and choose the **Edit Item** ![](images/rename.png){ height=20 } button. Change the label to `Local Authority boundaries`. 436 | - Repeat the same process to update the colours to `1 More deprived` and `10 Less deprived`. 437 | - Replace the title of `LSOA-IMD-2019-Southern` with `IMD Deprivation Decile`. 438 | - Remove the `OpenStreetMap` entry. 439 | - Move the legend to fit in the gap on the page. 440 | - Click **Add Item > Add Scale Bar** and then click in the remaining gap. You may have to click **OK** again. 441 | - We have to pick which map the scale bar refers to, and make sure that it is clear on the map. Each map will have a number (Map 1, Map 2 and Map 3) and we need to make sure that the scale bar is referring to the correct map. I chose Map 1, the larger, area map at the bottom. 442 | - In the Scalebar settings, set **Segments** to `right 5` and **Fixed width** to `5 units`. It should automatically default to `km`. 443 | - The IMD data is made available under the Open Government license (http://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/) so we need to include an acknowledgement on our map. 444 | - Click **Add Item > Add Label** and click in the empty space. Type in these details: 445 | - `MHCLD, 2019. Contains National Statistics data © Crown copyright and database right 2020.` *You can copy and paste the copyright symbol from the Wikipedia copyright symbol page!* 446 | - Click **Font** and change the font size down to 8 or 9. 447 | 448 | There is a lot more we could do with this map - have an experiment with the options and see what you can find. 449 | 450 | *Map design is often quite subjective and there is not necessarily a **best** map design, so try different options and see what you think about them.* 451 | 452 | To export a copy of your map: 453 | 454 | - Go to **Project > Layout as PDF**, choose a location and a filename to save your map. 455 | - Open up your PDF map to see what it looks like! 456 | 457 | ---- 458 | 459 | \newpage 460 | 461 | # Practical 2b: Creating Data 462 | 463 | | **Learning outcomes:** | 464 | |---| 465 | | Be able to work with a range of different data sources | 466 | | Understand and be able to load XY coordinate data and postcode data into QGIS | 467 | 468 | ## Data with coordinates 469 | 470 | In practical 1 we added some world city data using latitude and longitude, but it is worth recapping this as it is something you are likely to need to do frequently. In this practical we are going to add some location data for UK football stadiums, with coordinates in the British National Grid system (Eastings and Northings). 471 | 472 | - Go to https://www.doogal.co.uk and click **Map data > UK football stadiums**. 473 | - Click **Download** and choose **Data in CSV**. 474 | - Save this CSV file somewhere you can find it. 475 | - Open the file in Excel and have a look at the data. Key bits are the **Name**, **Latitude**, **Longitude** and **Easting** & **Northing**. 476 | - Close the Excel file, and open **QGIS**. 477 | 478 | - Click **Layer > Add Layer > Add Delimited Text Layer...** and click **Browse** ![](images/browse.png){ height=20 }. 479 | - Select the `stadiums.csv` file. 480 | - You should see the different columns appear at the bottom of the window. 481 | - Make sure that **File format** is set to `CSV` and **Geometry Definition** is set to `Point coordinates`. 482 | - You may need to expand **Geometry Definition**. 483 | 484 | Now we have a choice - we can use the **Easting** & **Northing** fields (which are in British National Grid, `EPSG:27700 - OSGB / British National Grid`) or the **Latitude** & **Longitude** fields (which are in `EPSG:4326 - WGS 84`). This time we are going to use British National Grid. 485 | 486 | - Check that **X** field is set to `Easting` and **Y** field is set to `Northing` *(remember that the X-axis goes "a-cross", or left/right, east/west, so we need Easting here)*. 487 | - Make sure that **Geometry CRS** is set to `EPSG:27700 - OSGB / British National Grid`. If it is not in the drop down list, click **Select CRS** ![](images/select-crs.png){ height=20 } and search for `27700` in here. 488 | - Click **Add**, and **Close**. 489 | 490 | - This should show the football stadiums. To check they are in the correct place, add the OSM Basemap we used previously (*XYZ Tiles > OpenStreetMap or Web > QuickMapServices > OSM > OSM Standard*). 491 | 492 | ## Data with postcodes (cloud-based) 493 | 494 | In the session today we showed you how to plot data with XY coordinate data. We used the world-cities data which had coordinates in latitude-longitude and we used the Add XY data tool in QGIS to turn the coordinates into spatial data and to add them to the GIS project. 495 | 496 | What if we have some UK postcodes data like the list shown below? How do we get that into QGIS? 497 | 498 | M45 7SQ 499 | NR7 8EX 500 | GL12 7JU 501 | 502 | There are a couple of ways of doing this. The first one is using a website called www.doogal.co.uk which will geocode the addresses we have. Geocoding takes text based information (a postcode in this case), and returns a set of coordinates. We can then use the coordinates to add these data to our GIS. 503 | 504 | - Open the `postcode-input-file.csv` file from `prac2.zip` and have a look at the data. 505 | - Go to `https://www.doogal.co.uk/BatchGeocoding.php` 506 | - Copy and paste the text from `Postcode` column into the 'Postcodes' box on the webpage 507 | - Hit **Geocode** 508 | 509 | 512 | 513 | - Wait a short time while the geocoding takes place 514 | - When it finishes, check the map to see that some icons have appeared on it. 515 | - Click on the **Text** tab to file the data with coordinates. 516 | - Click **'Download text'** 517 | - Save the file (`locations.csv`) somewhere you can find it later 518 | 519 | 520 | **Things to remember:** 521 | 522 | - There must not be any quote marks (`"`) in the addresses 523 | - Always check the output - not all of the geocoding may be successful 524 | 525 | The next step is to add the data to QGIS. 526 | 527 | - Open **QGIS** 528 | - Click **Layer > Add Layer > Add Delimited Text Layer...** and click **Browse** ![](images/browse.png){ height=20 }. 529 | - Select the `locations` file. 530 | - Make sure that **File format** is set to `CSV` and **Geometry Definition** is set to `Point coordinates`. 531 | - Again, we can choose British National Grid, or Latitude Longitude. 532 | - Check that **X** field is set to `Easting` and **Y** field is set to `Northing` 533 | - Make sure that **Geometry CRS** is set to `EPSG:27700 - OSGB / British National Grid`. If it is not in the drop down list, click **Select CRS** ![](images/select-crs.png){ height=20 } and search for `27700` in here. 534 | - Click **Add**, and **Close**. 535 | 536 | ![Create a Layer from a Delimited Text File](images/add-delimited-text-layer.png){ width=60% } 537 | 538 | 539 | - Click **OK** 540 | 541 | - Check the data - do they look sensible for the addresses? *(You may need to add some base map data)* 542 | 543 | 544 | ## Data with postcodes (non-cloud-based) 545 | 546 | 547 | It may be that you don't want to share your data with another website, or you have too many rows for the Doogal website. If you don't, there is another option. 548 | 549 | 550 | 551 | 552 | You can download the Code-Point Open dataset from Ordnance Survey at https://osdatahub.os.uk/downloads/open. This is a list of all the postcode centroids in GB. 553 | 554 | The CSV version contains a CSV file for each postcode area (e.g. `TR`) and within this file is each postcode unit (e.g. `TR1 1AA`) and the coordinates for that postcode unit. You can join this to your list of postcodes in QGIS, and use that to plot the data. 555 | 556 | The GeoPackage version is much much larger, but contains all the data in one geopackage layer, so if you have data across more than one postcode area, you can geocode the data all in one go. 557 | 558 | 559 | ---- 560 | 561 | *This practical was written using QGIS 3.40 on Windows 11, last updated on 06/03/2025 by Dr Nick Bearman, [nick@nickbearman.com](mailto:nick@nickbearman.com). Thanks to Chris Bell for providing the geocoding resource at https://www.doogal.co.uk.* 562 | 563 | This work (Introduction to QGIS: Spatial Data and Spatial Analysis by Nick Bearman) is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/. 564 | 565 | 566 | The latest version of the PDF is available from https://github.com/nickbearman/intro-qgis-spatial-data. This is v6.2 and this was created on `r format(Sys.time(), '%d %B %Y')`. 567 | 568 | 569 | 570 | 571 | ![](images/layout-final.png){ width=100% } 572 | -------------------------------------------------------------------------------- /workbook-p3-p4-short-version.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'Introduction to QGIS: Spatial Data and Spatial Analysis' 3 | output: 4 | pdf_document: default 5 | html_document: 6 | df_print: paged 7 | date: 'Practicals 3 & 4: Tue 23rd July 2024' 8 | --- 9 | 10 | # Practical 3: Greenspace Access Points 11 | 12 | | **Learning outcomes:** | 13 | |---| 14 | | Know how to download data from Ordnance Survey Open Data | 15 | | Be able to complete point in polygon analysis in QGIS | 16 | | Understand how to create graphs in QGIS | 17 | 18 | *See here https://youtu.be/HbZiZOsHD8A for a video if you want to follow along.* 19 | 20 | I have done some preparatory work for you already with this data. Download the `prac3-data.zip` file and extract the `prac3-data.gpkg` file from it. 21 | 22 | - Open **QGIS** and start a new project. 23 | - In the browser window on the top-left, right click on ![](images/browser-geopackage.png){ height=20 } and choose `New Connection...`. 24 | - Browser to the `prac3-data.gpkg` file you extracted earlier, select it and choose **Open**. 25 | - Expand the **Geopackage** item and then the `prac3-data.gpkg` file and your **Browser** window should look like this: 26 | 27 | ![](images/browser-window.png){ width=40% } 28 | 29 | - Add the 30 | `LA-IMD-pop` layer by double clicking on it. 31 | 32 | This will add a polygon layer of some local authorities in southern England. Explore the data a bit, and add a base map if you like. 33 | 34 | - Open the **Attribute Table** and see what columns of data there are. There are various measures of IMD (`IMD_IMD - Average score` being the most useful) and some population data (`Pop2019`). 35 | 36 | We will be making use of this data later on in our analysis. 37 | 38 | - Close the **Attribute Table**. 39 | 40 | ## Point in Polygon Analysis 41 | 42 | Using our Local Authority datasets, we are going to complete some calculations on Greenspace access and area. 43 | 44 | - Do a Google search for `os open data`. 45 | - **Free OS OpenData Map Downloads - OS Data Hub** should be the first hit - go to this page. The web address is https://osdatahub.os.uk/downloads/open. 46 | - Search (or scroll down) to find **OS Open Greenspace** and click the link. 47 | - Choose **Set a custom area:** 48 | - Click on the **SU** entry on the map of the British Isles to select the SU tile of data and click **Save selection**. 49 | - Set the **Data format:** to `ESRI Shapefile`. 50 | - Click the link **OS Open Greenspace - ESRI® Shapefile SU (2.34 MB)** to download. 51 | - Unzip the data and have a look at the files 52 | - In the `data` folder there should be two shape files `SU_AccessPoint.shp` and `SU_GreenspaceSite.shp`. 53 | 54 | 55 | 56 | - Select from the menu **Layer > Add Layer > Add Vector Layer** ![Add Vector Layer tool](images/add-vector.png){ height=20 }. 57 | - **Browse** ![Add Vector Layer tool](images/browse.png){ height=20 } to the `SU_AccessPoint.shp` file and add it. 58 | - Pan to the Winchester local authority (try labelling them as we did with the World Cities yesterday if you need to). 59 | - Each of the dots is an access to an area of greenspace. Try using the **Identify Features** tool ![](images/identify-features.png){ height=20 } to see what information we have about each access point. 60 | - Zoom in and have a look at the points. It may be useful to add the OSM Basemap layer, like we did yesterday. 61 | 62 | 63 | By default, the OSM Standard basemap uses the WGS84 / Pseudo Mercator projection. Most of the data we will be using will be in British National Grid. QGIS will automatically re-project GIS data if it knows what the coordinate system is. QGIS has a 'Project CRS' which is what the data are shown in the main window. Depending on your settings, this may be set to **EPSG:3857** (WGS 84 / Pseudo Mercator) or **EPSG:4326** (WGS 84) or **EPSG:27700** (British National Grid). 64 | 65 | - If the CRS symbol ![Project CRS](images/project-crs-3857.png){ height=20 } at the bottom right hand side of the QGIS window says **EPSG:3857** or **EPSG:4326**, click on it. 66 | - Type `27700` in the **Filter** box and select **OSGB 1936 / British National Grid** - **EPSG:27700**. 67 | - Click **OK**. Now QGIS will re-project everything to British National Grid (27700). 68 | 69 | Now we are going to group the data within each Local Authority. First, we will use **Point-in-Polygon** analysis to count how access points to greenspace there are in each Local Authority polygon. 70 | 71 | - Click **Processing > Toolbox**. 72 | - Type `count points` in the search box. 73 | - Double-click **Vector analysis > Count points in polygons**. 74 | - Set **Polygons** to your Local Authority districts layer *(which should have IMD and population data in it).* 75 | - Set **Points** to `SU_AccessPoint`. 76 | - Click **Run**. 77 | - This has created a new layer called `Count` with a new column called `NUMPOINTS` at the far right hand end of the attribute table. 78 | - Some of the rows in this layer will have points in - remember, the SU grid square doesn't cover all of the local authorities, so some will be blank and some will be incomplete. 79 | - You can sort the `NUMPOINTS` column by clicking on the column header. It will sort it first ascending, then if you click again, descending. *Note there are some entries with a 0 value in them. These are the local authorities outside the SU grid square.* 80 | - If the calculation has worked, save this as a new GeoPackage layer, by right-clicking on the layer and choosing **Export > Save Features As...**. 81 | - Remember to choose the GeoPackage file name and a suitable name for the layer name: 82 | 83 | ![](images/save-layer-geopackage.png){ width=50% } 84 | 85 | Have a go at symbolising this data. 86 | 87 | We can also use some of the graphing options within QGIS to explore this data. 88 | 89 | - Click **Plugins > Manage and Install Plugins** 90 | - Search for **Data Plotly** 91 | - Click **Install Plugin**. 92 | - Click **Close**. 93 | - Click the Plotly icon ![](images/plotly.png){ height=20 }, probably at the right hand end of the icons. 94 | - *If you can't find the icon, make sure the entry under **View > Toolbars > Plugins Toolbar** is ticked.* 95 | - If it opens a tiny window in the bottom left hand corner, drag the window to the middle of the screen and make it bigger. 96 | - Make sure **Plot type** is set to `Scatter Plot`. 97 | - Set **Layer** to `LA-IMD-pop-count` (or `Count` if you didn't save your new layer). 98 | - Set **X field** to `NUMPOINTS`. 99 | - Set **Y field** to `IMD_IMD - Average score`. 100 | - Choose **Create Plot** *it might take a few seconds to run*. 101 | 102 | *If `IMD_IMD - Average score` isn't visible, you may have not done a join correctly earlier on. Try a different field, and try re-doing the join.* 103 | If you end up with multiple sets of points on your plot, you can use the ![](images/clean-plot-canvas.png){ height=20 } button on the main Plotly page ![](images/main-plotly-page.png){ height=20 } to clear the plot and start again. 104 | 105 | Is there any sort of relationship in this data? 106 | 107 | What might be a better calculation is to look at number of greenspace access points per population, so we can correct for the fact that some local authorities have bigger populations than others. 108 | 109 | - Close the DataPlotly plot. 110 | - Open the attribute table for the layer we are using and click the Editing icon ![](images/edit-icon.png){ height=20 }. 111 | - Click **New Field** (![Field Calculator](images/new-field.png){ height=20 }) 112 | - Set **Name** to `GreenAccessPerPop` 113 | - Set **Type** to `Decimal number (real)` 114 | - Click **OK**. 115 | - Click **Field Calculator** ![Field Calculator](images/field-calculator.png){ height=20 }. 116 | - Choose **Update existing field** and set to `GreenAccessPerPop`. 117 | - Expand **Fields and Values** and double click `NUMPOINTS`. 118 | - Click **Divide** `/` 119 | - Double-click our **Pop2019** field. *Expand the section of the window if you need to*. 120 | - Click **Multiply** `*` and type in `1000`. This will then calculate the number of greenspace access points per 1000 people. 121 | - The Expression box should contain something like this: 122 | ` "NUMPOINTS" / "Pop2019" * 1000 `. 123 | - It should give you a preview value for **Arun** of `1.275`. 124 | - Click **OK**. 125 | - Save the data. 126 | 127 | 128 | Try symbolising this data and/or graphing the data - do you see any patterns here? 129 | 130 | \newpage 131 | 132 | 133 | # Practical 4: Spatial Overlays - Greenspace and Local Authorities 134 | 135 | | **Learning outcomes:** | 136 | |---| 137 | | Be able to perform a polygon polygon overlay | 138 | | Critique the analysis process we have undertaken | 139 | 140 | This is a lighter touch practical. You will need to work out some of the steps for yourself! 141 | 142 | ## Polygon polygon overlay 143 | 144 | We will be combining the layers using the Union tool, and we need to do some preparation for this. 145 | 146 | - Open up your project file from the previous practical, and save it as a new file (e.g. `prac4-NB-v1.qgz`). 147 | - Add the `SU_GreenspaceSite.shp` to our project. Now is also a good time to remove any layers we don't need, for example many of the Excel datasets we joined. 148 | - It is always good practice to work on a copy of your data, so take a copy of our geopackage from the previous practical (by copying it in Windows Explorer / My Computer / Finder) and save it in the `prac4` folder. I have called mine `prac4-data.gpkg`. 149 | - Then add your new GeoPackage to QGIS. 150 | - Then we can add the greenspace area data to this prac4-data.gpkg geopackage. 151 | - To do this, right click on the layer (`SU_GreenspaceSite`), choose **Export > Save Features As**. 152 | - Select the `prac4-data.gpkg` geopackage. 153 | - Call the layer `SU_GreenspaceSite` and choose **OK**. 154 | - It will appear as `prac4-data — SU_GreenspaceSite`. 155 | 156 | The greenspace layer and the LA layer don't cover the same area, so we need to remove the local authorities for which we don't have complete greenspace data. 157 | 158 | There are various ways of doing this - the easiest is manually! 159 | 160 | - Save the local authorities layer (which should already have the IMD and population data in it) into our `prac4-data` geopackage using the same method as above. Call it `lad-imd-pop-SUgreenspace`. 161 | - Remove the `prac3-data lad-imd-pop-SUgreenspace` layer, so we only have one local authority layer. 162 | - Select the `prac4-data lad-imd-pop-SUgreenspace` layer and start editing ![](images/edit-icon.png){ height=20 }. 163 | - Use the **Select Features** ![](images/select-features.png){ height=20 } tool to pick one of the local authorities for which we do not have complete greenspace data. It should go yellow, with a red outline. 164 | - Use the `Delete` key on the keyboard to delete this polygon. 165 | - Repeat this for each of the local authorities poking out of the greenspace data. You should end up with something like this: 166 | 167 | ![](images/edited-las.png){ width=60% } 168 | 169 | - We also need to do one final bit of preparation on the local authority data - calculate and add the area to the attribute table. 170 | - Open the attribute table for the `prac4-lad-imd-pop-SUgreenspace` layer. 171 | - Turn on **Editing** ![](images/edit-icon.png){ height=20 } and click **Add Field** (![Add Column](images/add-column.png){ height=20 }). 172 | - Set the **Name** to `LAarea`. 173 | - Set **Type** to `Decimal number (real)`. 174 | - If you have the option, set **Length** to `10` and **Precision** to `4`. *If you don't have these options, that is fine.* 175 | - Click **OK**. 176 | - Click **Field Calculator** (![Field Calculator](images/field-calculator.png){ height=20 }). 177 | - Choose **Update existing field** and set to `LAarea`. 178 | - Expand **Geometry** and double-click `$area`. This will add the area in square meters (as our coordinate system is BNG). 179 | - This should come out (as a preview) at `634273160` (m) for Basingstoke and Deane. 180 | - Add `/ 10000` to our expression to divide this by 10,000, to get 63,427 hectares. 181 | - Click **OK** to apply the calculation across all the rows. 182 | 183 | - Make sure to turn Editing off ![](images/edit-icon.png){ height=20 } and save your edits. 184 | 185 | - In the `prac4-data — GreenspaceSite` layer add a new column called `greenspace`. 186 | - Use **New Field** ![](images/new-field.png){ height=20 } and set the data type to **Integer (32 bit)**. 187 | - Then use **Field Calculator** ![Field Calculator](images/field-calculator.png){ height=20 } to set all the entries in this column to `1`. 188 | - Find and open the **Union** tool in the **Processing Toolbox**. 189 | - Set the **Input layer** to `prac4-data lad-imd-pop-SUgreenspace` (our local authority data). 190 | - Set the **Overlay layer** to `prac4-data SU_GreenspaceSite` (the greenspace site layer). 191 | - Click **Run**, it may take a minute or two to run. Watch the progress bar, and while you wait, review the flowchart on the slides and make sure you know what output you are expecting (or have a short break!). 192 | 193 | - Open the attribute table of the layer we have just created (`Union`). 194 | 195 | Now we have an attribute table split by Local Authority and greenspace. Within each Local Authority we have one polygon that is non greenspace (where the `greenspace` value is NULL) and one or more polygons that are greenspace (where the `greenspace` value is `1`). The next step is to calculate the area for each polygon. 196 | 197 | *We do have quite a few completely blank rows (with greenspace data but no Local Authority data). These are the greenspace areas that are outside our local authority data. Try selecting one and using the Zoom To function.* 198 | 199 | - Save this as a new layer called `greenspace-LAs`. You will get this error message if you save it in a GeoPackage: 200 | 201 | ![](images/save-error.png){ width=40% } 202 | 203 | *It won't save in the geopackage (because `fid` is not unique, one of the requirements). We could save it as an ESRI Shapefile which will be fine. The better way is to remove and recalculate the `fid` field, which will then be unique, so we can save it in a geopakcage.* 204 | 205 | - Open the Attribute Table for the `Union` layer and delete the `fid` field. Then try saving again. 206 | _ You might then also get this error: 207 | 208 | ![](images/save-error-overwrite-layer.png){ width=50% } 209 | 210 | - This is saying this layer already exists in the geopackage (as we saved it earlier, but it didn't save properly because of the error). Click **Overwrite Layer** to overwrite this with the new (correct) layer. 211 | - **Be careful because you could overwrite the whole geopackage!** 212 | 213 | Now we can merge the polygons so we have a dataset that lists each Local Authority area twice, once with greenspace and once without. 214 | 215 | - Make sure everything is de-selected (by clicking ![Deselect Data](images/deselect.png){ height=20 }) 216 | - Use the **Dissolve** tool from **Processing Toolbox** (under **Vector geometry**). 217 | - Set **Input** to `greenspace-LAs`. 218 | - Click the Browse ![](images/browse.png){ height=20 } button next to **Dissolve field(s)**. 219 | - Select `lad19cd` and `greenspace`. Choose **OK**. 220 | - Click **Run**. 221 | - Look at the new layer, `Dissolved`. Has it done what we wanted it to? 222 | - Save as `dissolved-greenspace-LAs`. 223 | - Open the attribute table and use **Select features using an expression** ![](images/select-features-expression.png){ height=20 } to select the rows where `greenspace = 1`. 224 | - Save this as a new layer `dissolved-greenspace-LAs-single` using **Save Selected Features As...**. 225 | 226 | - Open the attribute table for the `dissolved-greenspace-LAs` layer. 227 | - Turn on **Editing** ![](images/edit-icon.png){ height=20 } and click **Add Field** (![Add Column](images/add-column.png){ height=20 }). 228 | - Set the **Name** to `greenspace-area`. 229 | - Set **Type** to `Decimal number (real)`. 230 | - Set **Length** to `10` and **Prevision** to `4` *if you have them*. 231 | - Click **OK**. 232 | - Click **Field Calculator** (![Field Calculator](images/field-calculator.png){ height=20 }). 233 | - Choose **Update existing field** and set to `greenspace-area`. 234 | - Expand **Geometry** and double-click `$area`. This will add the area in square meters (as our coordinate system is BNG). 235 | - Add `/ 10000` to our expression to divide this by 10,000, to get the value in hectares. 236 | - Click **OK** to apply the calculation across all the rows. 237 | - Turn Editing off. 238 | 239 | Now we have the total LA area (`LAarea`) and the greenspace area (`greenspace-area`). 240 | 241 | - Use **Field Calculator** to create a new field (`pc_greenspace`) and calculate the percentage of greenspace (`("greenspace-area" / "LAarea" ) * 100`). 242 | 243 | 244 | 245 | This gives us a nice output of the proportions of greenspace. 246 | 247 | Try creating a plotly graph with this - is there any relationship now? What about area of greenspace per thousand people? 248 | 249 | We could perform a similar process, but with the greenspace buffered. This would be a proxy for 'accessible' green space. Try buffering the greenspace data at 300m, and repeat the process. 250 | 251 | 252 | 253 | 254 | ---- 255 | 256 | *This practical was written using QGIS 3.34 on Windows 11, last updated on 29/02/2024 by Dr Nick Bearman, [nick@nickbearman.com](mailto:nick@nickbearman.com)).* 257 | 258 | This work (Introduction to QGIS: Spatial Data and Spatial Analysis by Nick Bearman) is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/. 259 | 260 | 261 | The latest version of the PDF is available from https://github.com/nickbearman/intro-qgis-spatial-data. This is v6.1 and this was created on `r format(Sys.time(), '%d %B %Y')`. -------------------------------------------------------------------------------- /workbook-p3-p4.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'Introduction to QGIS: Spatial Data and Spatial Analysis' 3 | output: 4 | pdf_document: default 5 | html_document: 6 | df_print: default 7 | toc: TRUE 8 | toc_float: TRUE 9 | self_contained: TRUE 10 | date: 'Practicals 3 & 4: Tue 8th and Wed 9th April 2025' 11 | --- 12 | 13 | 14 | # Practical 3a: Recap of QGIS and Choropleth Maps 15 | 16 | | **Learning outcomes:** | 17 | |---| 18 | | Remember how to load data, join data and symbolise data | 19 | 20 | *If you get stuck, a video recording of me working through this practical is available on [YouTube](https://www.youtube.com/watch?v=87kLJcEIORI).* 21 | 22 | We are going to start with a quick recap of QGIS, including loading data and creating a choropleth map. Create a folder in Documents where you can save files relating to your GIS practical. 23 | 24 | We are working with the IMD (Index of Multiple Deprivation) data again, but this time at the Local Authority level. 25 | 26 | - Open **QGIS** and start a new project. 27 | - Open the **Open Data Source Manager** ![](images/open-data-source-manager.png){ height=20 } 28 | 29 | - Add the 30 | `Local_Authority_Districts_April_2019_Boundaries_Southern` layer from the `prac2-data.gpkg` geopackage we used in the previous session. 31 | 32 | - To get the IMD data for each Local Authority, go to https://www.gov.uk/government/statistics/english-indices-of-deprivation-2019 (or search for `IMD Local Authority`). 33 | 34 | - Download the entry for **File 10: local authority district summaries**. 35 | 36 | 37 | 38 | - Open this file in Excel to have a look at it. Note the different tabs along the bottom - we want to use the **IMD** tab later. 39 | 40 | - Close Excel. 41 | 42 | - In QGIS open the **Open Data Source Manager** ![](images/open-data-source-manager.png){ height=20 } and use the **Browser** option ![](images/data-source-manager-browser.png){ height=20 } to browse to the Excel file you have just downloaded. *If you are lost, go to **Home > Documents** and go from there.* 43 | - Expand the `File_10_-_IoD2019_Local_Authority_District_Summaries__lower-tier__` file and double click on `IMD`. 44 | - Close the **Data Source Manager**. 45 | - Right click on both of the layers you have just added and **Open Attribute Table**. 46 | - We are going to join these two layers together using the code for each local authority - the `lad19cd` in the Local Authority Districts boundary file and the `Local Authority District code (2019)` in the IMD file. 47 | - Close both attribute tables. 48 | - Right click on the `Local_Authority_Districts_April_2019_Boundaries_Southern` layer and choose **Properties**. 49 | - Click on **Joins** ![](images/joins.png){ height=20 }. 50 | - Click on the plus button ![](images/plus.png){ height=20 } to create a new join. The **Add Vector Join** dialogue box will now open 51 | - Make sure that `IMD` is selected in the **Join layer** dropdown box 52 | - `Local Authority District code (2019)` should be selected in the **Join field** dropdown box 53 | - `lad19cd` should be selected in the **Target field** dropdown box 54 | - Click **OK** and **OK** again. 55 | - Check whether the join worked correctly by looking the in the Local Authority layer Attribute Table. 56 | - Each Local Authority should now have an **Average score** and **Average rank**. 57 | - What do these fields represent? Check the details on the website and in the Excel file if you are not sure. 58 | 59 | 60 | The join that we have made is not permanent; it is a temporary link between the two datasets. To make the Join permanent we need to save a new copy of the local authorities layer. Try this, based on what you can remember from the previous sessions. You can always go back and check the notes if you need to! Try saving this as a new GeoPackage. 61 | 62 | - Save our joined layer as a new layer in a new GeoPackage called `prac3-data.gpkg`. 63 | 64 | - Remember to choose the GeoPackage file name and the layer name: 65 | 66 | ![](images/save-layer-geopackage.png){ width=40% } 67 | 68 | Now our data is in, and joined to our spatial data, we can create a choropleth map. Remember how important the classification process is - which classification method we choose can have a big impact on the map we create. 69 | 70 | - Open the **Layer Properties** window and the **Symbology** tab of the layer. 71 | - Where the option says **Single symbol** at the top, change this to **Graduated**. 72 | - Select the `IMD_IMD - Average score` field from the column drop-down list. 73 | - The click **Classify**, you will see the 5 classes for this data set appear in the window. 74 | - Click **Apply** or **OK**, and QGIS will update the map. 75 | 76 | ### Optional exercises 77 | 78 | - Try adding the football stadium data on top of the IMD data. 79 | 80 | - Try loading in the Style template that we used before `prac2-imd-d-style.qml` on to the LA-IMD layer. *Remember the option is under Properties > Symbology > Style > Load Style.... You will also need to update the column used for `Value`.* 81 | 82 | - How would you produce a map, showing both the IMD data and the football stadiums? What about showing context to people using the map can orientate themselves? 83 | 84 | *If you get to the end of the recap, and are happy with what we have covered, please carry on with the next practical. If some things are unclear, then please ask for help.* 85 | 86 | ---- 87 | 88 | \newpage 89 | 90 | # Practical 3b: Joining Population Data 91 | 92 | | **Learning outcomes:** | 93 | |---| 94 | | Be able to join data from a variety of sources | 95 | | Know how to change data from one data type to another | 96 | 97 | We are now going to join some more tabular data - populations this time. We need to download some data to begin with. 98 | 99 | - Continue with your existing QGIS project. 100 | - Go to https://www.ons.gov.uk/peoplepopulationandcommunity/populationandmigration/populationestimates/datasets/populationestimatesforukenglandandwalesscotlandandnorthernireland. 101 | - We want the **Mid-2019: April 2019 local authority district codes** data. Click on the **xls (2.4 MB)** rectangle to download it. 102 | - The file is called `ukmidyearestimates20192019ladcodes.xls` and save it somewhere you can find it. 103 | - Have a look at the file we have just downloaded in Excel. 104 | - We are using the `MYE2 - Persons` sheet, and column A has the LA code in it, and column D has the total population in it. 105 | - In QGIS open the **Open Data Source Manager** ![](images/open-data-source-manager.png){ height=20 } and browse to the Excel file you have just downloaded. 106 | - Double click on the `ukmidyearestimates20192019ladcodes.xls` file and then double click on `MYE2 - Persons` to add it to QGIS. 107 | - Close the **Data Source Manager**. 108 | - Right click on the layer you just added and **Open Attribute Table**. 109 | - Again, we are going to be joining the LA codes, but QGIS has rather unhelpfully labelled the columns `Field1`, `Field2` etc., so we will need to rename these. 110 | - Also, some of the columns with numbers in, if you look carefully, some are aligned left and some are aligned right. 111 | - Close the attribute table. 112 | - Right click on the `MYE2 - Persons` layer and choose Properties. Go to the ![](images/fields.png){ height=20 } **Fields** option. 113 | - This list all the columns in the data set and what data types they are. 114 | - We need to update the field names and types but at the moment, editing is disabled ![](images/editing-disabled.png){ height=20 } because QGIS can't edit XLSX files. 115 | - Save this layer (`MYE2 - Persons`) into the geopackage you created in practical 3a ((**right-click > Export > Save Features As...**)). 116 | - *As this is only a table of data, it won't have a valid projection, so QGIS listing CRS: Invalid Projection is fine.* 117 | 118 | 119 | 120 | - Return to the **Fields** window (within **Properties**) and now we should be able to edit ![](images/edit-icon.png){ height=20 } . 121 | - Click the **Edit** ![](images/edit-icon.png){ height=20 } icon and change `Field1` to `LAcode` and `Field4` to `Pop2019`. 122 | - Untoggle Editing ![](images/untoggle-editing.png){ height=20 } and choose **Save** when prompted. 123 | 124 | The `Pop2019` column contains population data, but QGIS thinks it is a String (text). QGIS then wouldn't be able to display the data, or create a choropleth map with it. We need to change the format from String (text) to Double (number). 125 | 126 | - Click **Processing > Toolbox**. 127 | 128 | *If the **Processing** option is not visible (between Mesh and Help on the menu bar at the top of the screen) you may need to enable it. Go to **Plugins > Manage and Install Plugins**. Go to **Installed** and search for **Processing**. Click **Close** and **Processing** should appear in the menu bar between Mesh and Help.* 129 | 130 | - Type `Refactor` in the search box. 131 | - Double click on **Refactor fields** *it might take a little while to load*. 132 | - Increase the size of the **Refactor Fields** window so you can see the different sections clearly. 133 | - Make sure we have our new MYE2 - Persons layer in the **Input Layer** box. 134 | - Change our **Pop2019** field from `Text (string)` to `Decimal (double)`. 135 | - Click **Run**. 136 | - *If it gives us an error message this may not be a problem - check the output.* 137 | - When it has finished running, click **Close**. 138 | 139 | This has added a new layer called **Refactored**. It has a little memory chip icon ![](images/temporary-layer.png){ height=20 } next to it, which means it isn't saved anywhere. 140 | 141 | - Open the Attribute Table of the **Refactored** layer to check the output. Does the **Pop2019** column have the correct data in it? 142 | 143 | - Use the **Fields** view in **Properties** to check that the **Refactored** layer now has the population data in the correct data type. Also check in the **Attribute Table** that the data look sensible. 144 | - Also use the **Fields** window to delete the extra attribute columns. We should be left with `fid`, `LAcode` and `Pop2019`. Remember to turn **Editing** off. 145 | - Right click on the layer and choose **Export > Save Features As...** and save it in our GeoPackage. This will make the layer permanent and removed the temporary layer icon. 146 | 147 | Now our layer is ready to join. 148 | 149 | - We are going to join these two layers together using the code for each local authority - the `lad19cd` in the Local Authorities boundary file and the `LAcode` in the Mid Year Estimates layer. 150 | - Right click on the `prac3-data — LA-IMD-pop-count` layer and choose **Properties**. 151 | - Click on **Joins** ![](images/joins.png){ height=20 }. 152 | - Click on the plus button ![](images/plus.png){ height=20 } to create a new join. The **Add Vector Join** dialogue box will now open 153 | - `prac3-data - refactored` should be selected in the **Join layer** dropdown box 154 | - `LAcode` should be selected in the **Join field** dropdown box 155 | - `lad19cd` should be selected in the **Target field** dropdown box 156 | - Click **OK** and **OK** again. 157 | - Check whether the join worked correctly by looking the in the Local Authority layer Attribute Table. 158 | - Each Local Authority should now have a population as well as the IMD data from earlier. 159 | 160 | The join that we have made is not permanent; it is a temporary link between the two datasets. To make the Join permanent we need to save a new copy of the local authorities layer. Try this, based on what you can remember from yesterday. You can always go back and check yesterday's notes if you need to! 161 | 162 | *We should have done the presentation on greenspace access points by the time you get to here. If you get to this point and we haven't, please let me know.* 163 | 164 | Try symbolising the different data - IMD and population on the map. What colours / classification works best? 165 | 166 | ---- 167 | 168 | \newpage 169 | 170 | 171 | # Practical 3c: Greenspace Access Points 172 | 173 | | **Learning outcomes:** | 174 | |---| 175 | | Know how to download data from Ordnance Survey Open Data | 176 | | Be able to complete point in polygon anaylsis in QGIS | 177 | | Understand how to create graphs in QGIS | 178 | 179 | ## Point in polygon analysis 180 | 181 | Using our Local Authority datasets, we are going to complete some calculations on Greenspace access and area. 182 | 183 | - Do a Google search for `os open data`. 184 | - **Free OS OpenData Map Downloads - OS Data Hub** should be the first hit - go to this page. The web address is https://osdatahub.os.uk/downloads/open. 185 | - Search (or scroll down) to find **OS Open Greenspace** and click the link. 186 | - Choose **Set a custom area:** 187 | - Click on the **SU** entry on the map of the British Isles to select the SU tile of data and click **Save selection**. 188 | - Set the **Data format:** to `ESRI Shapefile`. 189 | - Click the link **OS Open Greenspace - ESRI® Shapefile SU (2.34 MB)** to download. 190 | - Unzip the data and have a look at the files 191 | - In the `data` folder there should be two shape files `SU_AccessPoint.shp` and `SU_GreenspaceSite.shp`. 192 | 193 | 194 | 195 | Now we can move to QGIS. Reopen your existing project from the previous practical (3b), and save as a new project. 196 | 197 | - Select from the menu **Layer > Add Layer > Add Vector Layer** ![Add Vector Layer tool](images/add-vector.png){ height=20 }. 198 | - **Browse** ![Add Vector Layer tool](images/browse.png){ height=20 } to the `SU_AccessPoint.shp` file and add it. 199 | - Pan to the Winchester local authority (try labelling them as we did previously if you need to). 200 | - Each of the dots is an access to an area of greenspace. Try using the **Identify Features** tool ![](images/identify-features.png){ height=20 } to see what information we have about each access point. 201 | - Zoom in and have a look at the points. It may be useful to add the OSM Basemap layer, like we did yesterday. 202 | 203 | 204 | By default, the OSM Standard basemap uses the WGS84 / Pseudo Mercator projection. Most of the data we will be using will be in British National Grid. QGIS will automatically re-project GIS data if it knows what the coordinate system is. QGIS has a 'Project CRS' which is what the data are shown in the main window. Depending on your settings, this may be set to **EPSG:3857** (WGS 84 / Pseudo Mercator) or **EPSG:4326** (WGS 84) or **EPSG:27700** (British National Grid). 205 | 206 | - If the CRS symbol ![Project CRS](images/project-crs-3857.png){ height=20 } at the bottom right hand side of the QGIS window says **EPSG:3857** or **EPSG:4326**, click on it. 207 | - Type `27700` in the **Filter** box and select **OSGB 1936 / British National Grid** - **EPSG:27700**. 208 | - Click **OK**. Now QGIS will re-project everything to British National Grid (27700). 209 | 210 | Now we are going to group the data within each Local Authority. First, we will use **Point-in-Polygon** analysis to count how access points to greenspace there are in each Local Authority polygon. 211 | 212 | - Click **Processing > Toolbox**. 213 | - Type `count points` in the search box. 214 | - Double-click **Vector analysis > Count points in polygons**. 215 | - Set **Polygons** to your Local Authority districts layer *(which should have IMD and population data in it).* 216 | - Set **Points** to `SU_AccessPoint`. 217 | - Click **Run**. 218 | - This has created a new layer called `Count` with a new column called `NUMPOINTS` at the far right hand end of the attribute table. 219 | - Some of the rows in this layer will have points in - remember, the SU grid square doesn't cover all of the local authorities, so some will be blank and some will be incomplete. 220 | - You can sort the `NUMPOINTS` column by clicking on the column header. It will sort it first ascending, then if you click again, descending. *Note there are some entries with a 0 value in them. These are the local authorities outside the SU grid square.* 221 | - If the calculation has worked, save this as a new GeoPackage layer by right-clicking on the layer, choosing **Export > Save Features As**. 222 | - Remember to choose the GeoPackage file name and a suitable name for the layer: 223 | 224 | ![](images/save-layer-geopackage.png){ width=50% } 225 | 226 | Have a go at symbolising this data. 227 | 228 | We can also use some of the graphing options within QGIS to explore this data. 229 | 230 | - Click **Plugins > Manage and Install Plugins** 231 | - Search for **Data Plotly** 232 | - Click **Install Plugin**. 233 | - Click **Close**. 234 | - Click the Plotly icon ![](images/plotly.png){ height=20 }, probably at the right hand end of the icons. 235 | - *If you can't find the icon, make sure the entry under **View > Toolbars > Plugins Toolbar** is ticked.* 236 | - If it opens a tiny window in the bottom left hand corner, drag the window to the middle of the screen and make it bigger. 237 | - Make sure **Plot type** is set to `Scatter Plot`. 238 | - Set **Layer** to `LA-IMD-pop-count` (or `Count` if you didn't save your new layer). 239 | - Set **X field** to `NUMPOINTS`. 240 | - Set **Y field** to `IMD_IMD - Average score`. 241 | - Choose **Create Plot** *it might take a few seconds to run*. 242 | 243 | *If `IMD_IMD - Average score` isn't visible, you may have not done a join correctly earlier on. Try a different field, and try re-doing the join and exporting the joined layer.* 244 | 245 | 246 | 247 | If you end up with multiple sets of points on your plot, you can use the ![](images/clean-plot-canvas.png){ height=20 } button on the main Plotly page ![](images/main-plotly-page.png){ height=20 } to clear the plot and start again. 248 | 249 | Is there any sort of relationship in this data? 250 | 251 | What might be a better calculation is to look at number of greenspace access points per population, so we can correct for the fact that some local authorities have bigger populations than others. 252 | 253 | - Close the DataPlotly plot. 254 | - Open the attribute table for the layer we are using and click the Editing icon ![](images/edit-icon.png){ height=20 }. 255 | - Click **New Field** (![Field Calculator](images/new-field.png){ height=20 }) 256 | - Set **Name** to `GreenAccessPerPop` 257 | - Set **Type** to `Decimal number (real)` 258 | - Click **OK**. 259 | - Click **Field Calculator** ![Field Calculator](images/field-calculator.png){ height=20 }. 260 | - Choose **Update existing field** and set to `GreenAccessPerPop`. 261 | - Expand **Fields and Values** and double click `NUMPOINTS`. 262 | - Click **Divide** `/` 263 | - Double-click our **Pop2019** field. *Expand the section of the window if you need to*. 264 | - Click **Multiply** `*` and type in `1000`. This will then calculate the number of greenspace access points per 1000 people. 265 | - The Expression box should contain something like this: 266 | ` "NUMPOINTS" / "Pop2019" * 1000 `. 267 | - It should give you a preview value for **Arun** of `1.275`. 268 | - Click **OK**. 269 | - Save the data. 270 | 271 | 272 | Try symbolising this data and/or graphing the data - do you see any patterns here? 273 | 274 | *If you get stuck, a video recording of me working through this practical is available on [YouTube](https://www.youtube.com/watch?v=87kLJcEIORI).* 275 | 276 | \newpage 277 | 278 | 279 | # Practical 4: Spatial Overlays 280 | 281 | | **Learning outcomes:** | 282 | |---| 283 | | Be able to perform a polygon polygon overlay | 284 | | Critique the analysis process we have undertaken | 285 | 286 | This is a lighter touch practical. You will need to work out some of the steps for yourself! 287 | 288 | ## Polygon polygon overlay 289 | 290 | We will be combining the layers using the Union tool, and we need to do some preparation for this. 291 | 292 | - Open up your project file from the previous practical, and save it as a new file (e.g. `prac4-NB-v1.qgz`). 293 | - Add the `SU_GreenspaceSite.shp` to our project. Now is also a good time to remove any layers we don't need, for example many of the Excel datasets we joined. 294 | - It is always good practice to work on a copy of your data, so take a copy of our geopackage from the previous practical (by copying it in Windows Explorer / My Computer / Finder) and save it in the `prac4` folder. I have called mine `prac4-data.gpkg`. 295 | - Then add your new GeoPackage to QGIS. 296 | - Then we can add the greenspace area data to this prac4-data.gpkg geopackage. 297 | - To do this, right click on the layer (`SU_GreenspaceSite`), choose **Export > Save Features As**. 298 | - Select the `prac4-data.gpkg` geopackage. 299 | - Call the layer `SU_GreenspaceSite` and choose **OK**. 300 | - It will appear as `prac4-data — SU_GreenspaceSite`. 301 | 302 | The greenspace layer and the LA layer don't cover the same area, so we need to remove the local authorities for which we don't have complete greenspace data. 303 | 304 | There are various ways of doing this - the easiest is manually! 305 | 306 | - Save the local authorities layer (which should already have the IMD and population data in it) into our `prac4-data` geopackage using the same method as above. Call it `lad-imd-pop-SUgreenspace`. 307 | - Remove the `prac3-data lad-imd-pop-SUgreenspace` layer, so we only have one local authority layer. 308 | - Select the `prac4-data lad-imd-pop-SUgreenspace` layer and start editing ![](images/edit-icon.png){ height=20 }. 309 | - Use the **Select Features** ![](images/select-features.png){ height=20 } tool to pick one of the local authorities for which we do not have complete greenspace data. It should go yellow, with a red outline. 310 | - Use the `Delete` key on the keyboard to delete this polygon. 311 | - Repeat this for each of the local authorities poking out of the greenspace data. You should end up with something like this: 312 | 313 | ![](images/edited-las.png){ width=60% } 314 | 315 | - We also need to do one final bit of preparation on the local authority data - calculate and add the area to the attribute table. 316 | - Open the attribute table for the `prac4-lad-imd-pop-SUgreenspace` layer. 317 | - Turn on **Editing** ![](images/edit-icon.png){ height=20 } and click **Add Field** (![Add Column](images/add-column.png){ height=20 }). 318 | - Set the **Name** to `LAarea`. 319 | - Set **Type** to `Decimal number (real)`. 320 | - If you have the option, set **Length** to `10` and **Precision** to `4`. *If you don't have these options, that is fine.* 321 | - Click **OK**. 322 | - Click **Field Calculator** (![Field Calculator](images/field-calculator.png){ height=20 }). 323 | - Choose **Update existing field** and set to `LAarea`. 324 | - Expand **Geometry** and double-click `$area`. This will add the area in square meters (as our coordinate system is BNG). 325 | - This should come out (as a preview) at `634273160` (m) for Basingstoke and Deane. 326 | - Add `/ 10000` to our expression to divide this by 10,000, to get 63,427 hectares. 327 | - Click **OK** to apply the calculation across all the rows. 328 | 329 | - Make sure to turn Editing off ![](images/edit-icon.png){ height=20 } and save your edits. 330 | 331 | - In the `prac4-data — GreenspaceSite` layer add a new column called `greenspace`. 332 | - Use **New Field** ![](images/new-field.png){ height=20 } and set the data type to **Integer (32 bit)**. 333 | - Then use **Field Calculator** ![Field Calculator](images/field-calculator.png){ height=20 } to set all the entries in this column to `1`. 334 | - Find and open the **Union** tool in the **Processing Toolbox**. 335 | 336 | 337 | - Set the **Input layer** to `prac4-data lad-imd-pop-SUgreenspace` (our local authority data). 338 | - Set the **Overlay layer** to `prac4-data SU_GreenspaceSite` (the greenspace site layer). 339 | - Click **Run**, it may take a minute or two to run. Watch the progress bar, and while you wait, review the flowchart on the slides and make sure you know what output you are expecting (or have a short break!). 340 | 341 | - Open the attribute table of the layer we have just created (`Union`). 342 | 343 | Now we have an attribute table split by Local Authority and greenspace. Within each Local Authority we have one polygon that is non greenspace (where the `greenspace` value is NULL) and one or more polygons that are greenspace (where the `greenspace` value is `1`). The next step is to calculate the area for each polygon. 344 | 345 | *We do have quite a few completely blank rows (with greenspace data but no Local Authority data). These are the greenspace areas that are outside our local authority data. Try selecting one and using the Zoom To function.* 346 | 347 | - Save this as a new layer called `greenspace-LAs`. You will get this error message if you save it in a GeoPackage: 348 | 349 | ![](images/save-error.png){ width=40% } 350 | 351 | *It won't save in the geopackage (because `fid` is not unique, one of the requirements). We could save it as an ESRI Shapefile which will be fine. The better way is to remove and recalculate the `fid` field, which will then be unique, so we can save it in a geopakcage.* 352 | 353 | - Open the Attribute Table for the `Union` layer and delete the `fid` field. Then try saving again. 354 | _ You might then also get this error: 355 | 356 | ![](images/save-error-overwrite-layer.png){ width=50% } 357 | 358 | - This is saying this layer already exists in the geopackage (as we saved it earlier, but it didn't save properly because of the error). Click **Overwrite Layer** to overwrite this with the new (correct) layer. 359 | - **Be careful because you could overwrite the whole geopackage!** 360 | 361 | Now we can merge the polygons so we have a dataset that lists each Local Authority area twice, once with greenspace and once without. 362 | 363 | - Make sure everything is de-selected (by clicking ![Deselect Data](images/deselect.png){ height=20 }) 364 | - Use the **Dissolve** tool from **Processing Toolbox** (under **Vector geometry**). 365 | - Set **Input** to `greenspace-LAs`. 366 | - Click the Browse ![](images/browse.png){ height=20 } button next to **Dissolve field(s)**. 367 | - Select `lad19cd` and `greenspace`. Choose **OK**. 368 | - Click **Run**. 369 | - Look at the new layer, `Dissolved`. Has it done what we wanted it to? 370 | - Save as `dissolved-greenspace-LAs`. 371 | - Open the attribute table and use **Select features using an expression** ![](images/select-features-expression.png){ height=20 } to select the rows where `greenspace = 1`. 372 | - Save this as a new layer `dissolved-greenspace-LAs-single` using **Save Selected Features As...**. 373 | - Open the attribute table for the `dissolved-greenspace-LAs` layer. 374 | - Turn on **Editing** ![](images/edit-icon.png){ height=20 } and click **Add Field** (![Add Column](images/add-column.png){ height=20 }). 375 | - Set the **Name** to `greenspace-area`. 376 | - Set **Type** to `Decimal number (real)`. 377 | - Set **Length** to `10` and **Prevision** to `4` *if you have them*. 378 | - Click **OK**. 379 | - Click **Field Calculator** (![Field Calculator](images/field-calculator.png){ height=20 }). 380 | - Choose **Update existing field** and set to `greenspace-area`. 381 | - Expand **Geometry** and double-click `$area`. This will add the area in square meters (as our coordinate system is BNG). 382 | - Add `/ 10000` to our expression to divide this by 10,000, to get the value in hectares. 383 | - Click **OK** to apply the calculation across all the rows. 384 | - Turn Editing off. 385 | 386 | Now we have the total LA area (`LAarea`) and the greenspace area (`greenspace-area`). 387 | 388 | - Use **Field Calculator** to create a new field (`pc_greenspace`) and calculate the percentage of greenspace (`("greenspace-area" / "LAarea" ) * 100`). 389 | 390 | 391 | 392 | This gives us a nice output of the proportions of greenspace. 393 | 394 | Try creating a plotly graph with this - is there any relationship now? What about area of greenspace per thousand people? 395 | 396 | We could perform a similar process, but with the greenspace buffered. This would be a proxy for 'accessible' green space. Try buffering the greenspace data at 300m, and repeat the process. 397 | 398 | 399 | 400 | 401 | ---- 402 | 403 | *This practical was written using QGIS 3.40 on Windows 11, last updated on 06/03/2025 by Dr Nick Bearman, [nick@nickbearman.com](mailto:nick@nickbearman.com).* 404 | 405 | This work (Introduction to QGIS: Spatial Data and Spatial Analysis by Nick Bearman) is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/. 406 | 407 | 408 | The latest version of the PDF is available from https://github.com/nickbearman/intro-qgis-spatial-data. This is v6.2 and this was created on `r format(Sys.time(), '%d %B %Y')`. --------------------------------------------------------------------------------