In deze les zult u door een volledige analyse in QGIS worden geleid.
Notitie
Les ontwikkeld door Linfiniti en S Motala (Cape Peninsula University of Technology)
U krijgt de taak om gebieden in en rondom Cape Peninsula te vinden die een geschikte woonomgeving zijn voor een een zeldzame fijnbos plantensoort. Het bereik van uw onderzoeksgebied Cape Peninsula is: ten zuiden van Melkbosstrand, ten westen Strand. Botanisten hebben u voorzien van de volgende voorkeuren voor de betreffende plantensoort:
Het groeit op hellingen die uitkijken op het oosten.
Het groeit op hellingen met een verloop tussen 15% en 60%.
Het groeit in gebieden die een totale jaarlijkse regenval hebben van > 1200 mm.
Het kan alleen worden gevonden op een afstand van tenminste 250 m van een menselijke nederzetting.
Het gebied met vegetatie waarin het voorkomt zou tenminste een omvang moeten hebben van 6000m2.
Als een vrijwilliger voor Cape Nature, heeft u er in toegestemd de plant te zoeken op het dichtstbij gelegen geschikte stuk land vanaf uw huis. Gebruik uw vaardigheden in GIS om te bepalen waar u zou moeten zoeken.
U zult, om dit probleem op te lossen, de beschikbare gegevens moeten downloaden van https://www.dropbox.com/s/q5evvkizuunrcs0/more_analysis.zip?dl=0 en het plaatsen in de map exercise_data/more_analysis. U zult het gebruiken om het kandidaat-gebied te vinden dat het dichtst bij uw huis ligt. Als u niet in Kaapstad woont (waar dit probleem op is gebaseerd) kunt u kiezen voor een willekeurig huis in de regio Kaapstad. De oplossing zal omvatten:
analyseren van de DEM om de hellingen te zoeken die uitkijken op het oosten en de hellingen met het juiste verloop;
analyseren van het raster voor de regenval om de gebieden te vinden met de juiste hoeveelheid regen;
analyseren van de vectorlaag Zoning om gebieden te vinden die verwijderd liggen van menselijke nederzettingen en van de juiste grootte zijn.
Klik op de knop “CRS-status” in de uiterste rechter benedenhoek van het scherm. Onder de tab CRS van het scherm dat verschijnt, zult u het vak Coördinatenreferentiesystemen van de wereld zien.
Navigeer, in dat vak, naar Geprojecteerd Coördinaatsysteem ‣ Universal Transverse Mercator (UTM).
Sla de kaart op door te klikken op de knop op de werkbalk Opslaan als, of gebruikt het menu-item Project ‣ Opslaan als....
In order to process the data, you will need to load the necessary layers (street names, zones, rainfall, DEM) into the map canvas.
Klik op Openen.
The dialog closes and shows the original dialog, with the file path specified in the text field next to the Browse button. This allows you to ensure that the correct file is selected. It is also possible to enter the file path in this field manually, should you wish to do so.
Navigeer naar het toepasselijke bestand, selecteer het en klik op Openen.
Sla de kaart op.
De symbologie voor de lagen moet gewijzigd worden om op de juiste wijze te kunen zien wat er gebeurt,
Selecteer Eigenschappen uit het menu dat tevoorschijn komt.
Klik op de knop, gelabeld Wijizgen, met een vierkant dat de huidige kleur van de laag Streets weergeeft.
Selecteer een nieuwe kleur in het dialoogvenster dat verschijnt.
Klik op OK.
Klik opnieuw op OK in het dialoogvenster Laageigenschappen. Dit al de kleur van de laag Streets wijzigen.
Volg een soortgelijk proces voor de laag Zoning en kies er een toepasselijke kleur voor.
Symbologie voor rasterlagen is enigszins anders.
Open het dialoogvenster Laageigenschappen voor het raster Rainfall.
Zorg er voor dat de knop Standaard afwijking gebruiken is geselecteerd.
Wijzig, onder de kop Contrastverbetering, de waarde van de keuzelijst Geen verbetering naar ‘Stretch’ tot MinMax.
Klik op OK. Het raster “Rainfall”, indien zichtbaar, zou van kleur moeten veranderen, wat u in staat stelt de verschillende waarden voor helderheid voor elke pixel te zien.
Nu alle gegevens zijn geladen en op de juiste wijze zichtbaar zijn, kan de analyse beginnen. Het is het beste als de bewerking clippen als eerste wordt uitgevoerd. Dit om er voor te zorgen dat er geen verwerkingskracht wordt verspilt in het berekenen van waarden in gebieden die toch niet gebruikt gaan worden.
Selecteer, in het menu dat verschijnt, het menu-item Query.... Het dialoogvenster Query bouwer verschijnt.
U zult nu een query gaan bouwen om alleen de volgende lijst met districten te selecteren:
Dubbelklik, in de lijst Velden, op het veld NAME_2. Het verschijnt in het tekstveld Provider-specifieke filter expressie onderin.
Klik op de knop Alles onder de (momenteel lege) lijst Waarden. Na korte tijd zal dit de lijst Waarden vullen met de waarden van het geselecteerde veld (NAME_2).
Dubbelklik op de waarde Bellville in de lijst Waarden. Zoals eerder zal dit worden toegevoegd aan de SQL-query.
In order to select more than one district, you’ll need to use the OR boolean operator.
Klik op de knop OR en het zal worden toegevoegd aan de SQL-query.
Voeg, met een soortgelijk proces als hierboven, het volgende toe aan de bestaande SQL-query:
"NAME_2" = 'Cape'
Add another OR operator, then work your way through the list of districts above in a similar fashion.
De uiteindelijke query zou moeten zijn
"NAME_2" = 'Bellville' OR "NAME_2" = 'Cape' OR "NAME_2" = 'Goodwood' OR
"NAME_2" = 'Kuils River' OR "NAME_2" = 'Mitchells Plain' OR "NAME_2" =
'Simons Town' OR "NAME_2" = 'Wynberg'
Klik op OK. De in uw kaart weergegeven districten beperken zich nu tot die in de lijst hierboven.
Nu u een beperkt gebied heeft, kunt u de rasters tot dit gebied clippen.
Zorg er voor dat de zichtbare lagen alleen de lagen DEM, Rainfall en Districts zijn.
Districts moet bovenop liggen zodat zij zichtbaar zijn.
Open het dialoogvenster om te clippen door het menu-item Raster ‣ Extractie ‣ Clipper te selecteren.
Selecteer, in de keuzelijst Invoerbestand (raster), de laag DEM.
Specificeer een locatie voor de uitvoer in het tekstveld Uitvoerbestand door te klikken op de knop Selecteren....
Voer een bestandsnaam in.
Sla het bestand op. Laat het keuzevak Waarde voor ‘geen data’ leeg.
Gebruik de clip-modus Extent door er voor te zorgen dat de juiste keuzeknop is geselecteerd.
Klik en sleep een gebied in het kaartvenster, zodat het gebied dat de districten bevat is geselecteerd.
Klik op OK.
Nadat de bewerking clippen is voltooid, SLUIT N I E T HET dialoogvenster Clipper. (Door dat wel te doen zou u het geclipte gebied verliezen dat u al gedefinieerd heeft.)
Selecteer het raster Rainfall in de keuzelijst Invoerbestand (raster) en kies een andere naam voor het uitvoerbestand.
nadat de tweede bewerking om te clippen is voltooid, kunt u het dialoogvenster Clipper sluiten.
Sla de kaart op.
Klik met rechts op deze lagen en selecteer Verwijder.
Dit zal niet de gegevens uit uw opslagapparaat verwijderen, ze worden alleen uit uw kaart verwijderd.
Deactiveer de labels op de laag Streets:
Klik op de knop Labels.
Deselecteer het vak Deze laag labelen met.
Klik op OK.
Geef opnieuw alle Streets weer:
Selecteer Query.
Klik, in het dialoogvenster Query dat verschijnt, op de knop Leegmaken, klik dan op OK.
Wacht terwijl de gegevens worden geladen. Alle straten zullen nu zichtbaar zijn.
Sla de kaart op.
In order to create the hillshade, you will need to use a plugin that was written for this purpose.
This plugin is included by default in QGIS 1.8. However, it may not be immediately visible. To check if it is accessible on your system:
Klik op OK.
You will now have access to this plugin via the Raster ‣ Terrain analysis menu item.
Remember that plugins may sometimes depend on certain Python modules being installed on your system. Should a plugin refuse to work while complaining of missing dependencies, please ask your tutor or lecturer for assistance.
Specificeer een toepasselijke locatie voor de uitvoerlaag en noem die hillshade.
Klik op OK.
Wacht tot de verwerking is voltooid.
De nieuwe laag hillshade is verschenen in uw Lagenlijst.
Klik met rechts op de laag hillshade in uw Lagenlijst en roep het dialoogvenster Laageigenschappen op.
Let op het effect wanneer de transparante hillshade over de geclipte DEM wordt gelegd.
Klik op het menu-item Raster ‣ ‘Terrain analysis’.
Selecteer het type analyse Helling, met de geclipte DEM als de invoerlaag.
Specificeer een toepasselijke bestandsnaam en locatie voor de uitvoer.
Klik op OK.
De afbeelding voor de helling wordt berekend en toegevoegd aan de kaart. Echter, zoals gewoonlijk is het slechts een grijze rechthoek. Wijzig de symbologie als volgt om goed te kunnen zien wat er gebeurt.
Open het dialoogvenster Laageigenschappen voor de laag (zoals gewoonlijk via het menu voor rechts-klikken van de laag).
Waar het zegt Grijswaarden (in de keuzelijst Kleuren kaart), wijzig die naar Pseudokleur.
Zorg er voor dat de keuzeknop Standaard afwijking gebruiken is geselecteerd.
Gebruik dezelfde benadering als voor het berekenen van de helling, maar selecteer Aspect in het initiële vak van het dialoogvenster.
Denk er aan om de kaart regelmatig op te slaan.
Klik op het menu-item Raster ‣ Rasterberekeningen.
In the Raster bands list on the left, you will see all the raster layers in your Layers list. If your Slope layer is called slope, it will be listed as slope@1.
The slope needs to be between 15 and 60 degrees. Everything less than 15 or greater than 60 must therefore be excluded.
Bouw, met behulp van de items in de lijst en de knoppen in de interface, de volgende expressie:
((slope@1 < 15) OR (slope@1 > 60)) = 0
Stel het veld Uitvoerbestand in op een toepasselijke locatie en bestandsnaam.
Klik op OK.
Now find the correct aspect (east-facing: between 45 and 135 degrees) using the same approach.
Bouw de volgende expressie:
((aspect@1 < 45) OR (aspect@1 > 135)) = 0
Find the correct rainfall (greater than 1200mm) the same way. Build the following expression:
(rainfall@1 < 1200) = 0
Having reclassified all the rasters, you will now see them displayed as gray rectangles in your map (assuming that they have been added to the map correctly). To properly display raster data with only two classes (1 and 0, meaning true or false), you will need to change their symbology.
Selecteer, onder de kop Min / max waarden laden, de keuzeknop Actueel (langzamer).
Klik op de knop Laden.
The Custom min / max values fields should now populate with 0 and 1, respectively. (If they do not, then there was a mistake with your reclassification of the data, and you will need to go over that part again.)
Stel, onder de kop Contrastverbetering, de keuzelijst Geen verbetering in op ‘Stretch’ tot MinMax.
Klik op OK.
Doe dit voor alle drie de opnieuw geclassificeerde rasters, en vergeet niet uw werk op te slaan!
The only criterion that remains is that the area must be 250m away from urban areas. We will satisfy this requirement by ensuring that the areas we compute are 250m or more from the edge of a rural area. Hence, we need to find all rural areas first.
Hide all layers in the Layers list.
Geef de vectorlaag Zoning weer.
Klik er met rechts op en roep het dialoogvenster Query op.
Bouw de volgende query:
"Gen_Zoning" = 'Rural'
Bekijk de eerdere instructies voor het bouwen van de query Streets als u het even niet weet.
Sluit het dialoogvenster Query als u gereed bent.
U zou een verzameling polygonen moeten zien uit de laag Zoning. U zult deze op moeten slaan naar een nieuw laagbestand.
Selecteer Opslaan als.... in het menu voor rechtsklikken van Zoning.
Sla uw laag op in de map Zoning.
Klik op OK.
Voeg de laag toe aan uw kaart.
Klik op het menu-item Vector ‣ Geoprocessing=gereedschap ‣ Dissolve.
Selecteer de laag rural als uw invoer-vectorlaag, waarbij u het vak Alleen geselecteerde objecten gebruiken niet selecteert.
Sla uw laag op in de map Zoning.
Sluit het dialoogvenster Dissolve.
Verwijder de lagen rural en Zoning .
Sla de kaart op.
Now you need to exclude the areas that are within 250m from the edge of the rural areas. Do this by creating a negative buffer, as explained below.
Klik op het menu-item Vector ‣ Geoprocessing-gereedschap ‣ Buffer(s).
Selecteer, in het dialoogvenster dat verschijnt, de laag rural_dissolve als uw invoer vectorlaag (Alleen geselecteerde objecten gebruiken zou niet moeten zijn geselecteerd).
Selecteer het vak Dissolve buffer resultaten.
Stel het uitvoerbestand in voor dezelfde map als de andere landelijke vectorbestanden.
Klik op Opslaan.
Klik op OK en wacht tot de verwerking is voltooid.
Selecteer Ja in het dialoogvenster dat verschijnt.
Sluit het dialoogvenster Buffer.
Verwijder de laag rural_dissolve.
Sla de kaart op.
Het moet ook worden gerasteriseerd om de landelijke zones in dezelfde analyse met de drie bestaande rasters te kunnen verwerken. Maar zij moeten van dezelfde grootte zijn om de rasters compatibel te laten zijn voor de analyse. Daarom moet u, voordat u kunt rasteriseren, de vector clippen naar hetzelfde gebied als de drie rasters. Een vector kan alleen worden geclipt naar een andere vector, dus moet u eerst een polygoon begrenzingsvak maken van dezelfde grootte als de rasters.
Klik op het menu-item :menuselection:’Kaartlagen –> Nieuw –> Nieuwe Shapefile-laag...`.
Selecteer, onder de kop Type, de knop Polygoon.
Klik op OK.
Klik ook op OK in het dialoogvenster Nieuwe vectorlaag .
Sla de vector op in de map Zoning.
Verberg alle lagen met uitzondering van de nieuwe laag bbox en één van de opnieuw geclassificeerde rasters.
Navigeer naar het menu-item :Beeld > Werkbalken en zorg er voor dat Digitaliseren is geselecteerd. U zou dan een pictogram voor de werkbalk moeten zien met een potlood erop. Dat is de knop :guilabel:`Bewerken aan-/uitzetten.
Klik op de knop Bewerken aan-/uitzetten om naar de modus Bewerken te gaan. Dat stelt u in staat een vectorlaag t ebewerken.
Klik op de knop Object toevoegen, die nabij de knop Bewerken aan-/uitzetten zou moeten staan. Hij kan zijn verborgen achter een knop met een dubbele pijl; als dat zo is klik dan op de knop met de dubbele pijl om de verborgen pictogrammen van de werkbalk Digitaliseren weer te geven.
Klik met links, met het gereedschap Object toevoegen geactiveerd, op de hoeken van het raster. U moet misschien inzoomen met het muiswiel om er voor te zorgen dat het nauwkeurig is. Klik en sleep in de kaart met de middelste muisknop of het muiswiel om in deze modus over de kaart te schuiven.
Klik met rechts, op het vierde en laatste punt, om de vorm te voltooien.
Voer een willekeurig getal in voor de ID van de vorm.
Klik op OK.
Klik op de knop Wijzigingen laag opslaan.
Klik op de knop Bewerken aan-/uitzetten om uw sessie voor bewerkingen te beëindigen.
Sla de kaart op.
Nu u een begrenzingsvak heeft, kunt u die gebruiken om de laag rural buffer te clippen.
Zorg er voor dat alleen de lagen bbox en rural_buffer zichtbaar zijn, met de laatste bovenop.
Klik op het menu-item Vector > Geoprocessing-gereedschap > Clip.
Stel, in het dialoogvenster dat verschijnt, de invoer vectorlaag in op rural_buffer en de cliplaag op bbox, met in beide het vak :Alleen geselecteerde objecten gebruiken niet geselecteerd.
Plaats het uitvoerbestand in de map Zoning.
Klik op OK.
Klik op Ja. als gevraagd wordt of de laag moet worden toegevoegd aan de inhoudsopgave.
Sluit het dialoogvenster.
Vergelijk de drie vectoren bekijk zelf de resultaten.
Verwijder de lagen bbox en rural_buffer, en sla dan uw kaart op.
Nu is die gereed om te worden gerasteriseerd.
U zult een pixelgrootte moeten specificeren voor een nieuw raster dat u maakt, dus u zult eerst de grootte van een van uw bestaande rasters moeten weten.
Open het dialoogvenster Laageigenschappen van één van de drie bestaande rasters.
Schakel naar de tab Metadata.
Sluit het dialoogvenster Laageigenschappen.
Klik op het menu-item Raster ‣ Conversie ‣ Rasterizeren. U zou een waarschuwing kunnen krijgen over een gegevensset die niet wordt ondersteund. Klik het weg en negeer het.
Selecteer rural_clipped als uw invoerlaag.
Stel een locatie in voor het uitvoerbestand binnen de map Zoning.
Selecteer het vak Na afloop in kaartvenster laden.
Klik op OK.
Het nieuwe raster zou in uw kaart moeten verschijnen als het eenmaal is berekend.
Het nieuwe raster zal er uitzien als een grijze rechthoek – u moet misschien de stijl voor de weergave wijzigen zoals u deed voor de opnieuw geclassificeerde rasters.
Sla uw kaart op.
Now that you have all four criteria each in a separate raster, you need to combine them to see which areas satisfy all the criteria. To do so, the rasters will be multiplied with each other. When this happens, all overlapping pixels with a value of 1 will retain the value of 1, but if a pixel has the value of 0 in any of the four rasters, then it will be 0 in the result. In this way, the result will contain only the overlapping areas.
Klik op het menu-item Raster ‣ Rasterberekeningen.
Bouw de volgende expressie (met de toepasselijke namen voor uw lagen, afhankelijk van hoe u ze genoemd heeft):
[Rural raster] * [Reclassified aspect] * [Reclassified slope] *
[Reclassified rainfall]
Set the output location to the Rasterprac directory.
Name the output raster cross_product.tif.
Ensure that the Add result to project box is checked.
Klik op OK.
Wijzig de symbologie van het nieuwe raster op dezelfde manier als waarop u de stijl voor de andere opnieuw geclassificeerde rasters heeft ingesteld. Het nieuwe raster geeft nu op de juiste wijze de gebieden weer waar aan alle criteria wordt voldaan.
To get the final result, you need to select the areas that are greater than 6000m^2. However, computing these areas accurately is only possible for a vector layer, so you will need to vectorize the raster.
Klik op het menu-item Raster ‣ Conversie ‣ Vectoriseren.
Klik op OK.
Sluit het dialoogvenster als de verwerking voltooid is.
All areas of the raster have been vectorized, so you need to select only the areas that have a value of 1.
Open het dialoogvenster Query voor de nieuwe vector.
Bouw deze query:
"DN" = 1
Klik op OK.
Create a new vector file from the results by saving the candidate_areas vector after the query is complete (and only the areas with a value of 1 are visible). Use the Save as... function in the layer’s right-click menu for this.
Save the file in the Rasterprac directory.
Noem het bestand candidate_areas_only.shp.
Sla uw kaart op.
Open het rechtsklik-menu van de nieuwe vectorlaag.
Selecteer Attributentabel openen.
Klik op de knop modus Bewerken aan-/uitzetten aan de onderzijde van de tabel, of druk op Ctrl+E.
Klik op de knop Veldberekening openen aan de onderzijde van de tabel, of druk op Ctrl+I.
Under the New field heading in the dialog that appears, enter the field name area. The output field type should be an integer, and the field width should be 10.
In Field calculator expression, type:
$area
Dit betekent dat de veldberekening het gebied van elke polygoon in de vectorlaag zal berekenen en ze dan zal vermelden in een nieuwe kolom met een geheel getal (genaamd area) met de berekende waarde.
Klik op OK.
Herhaal deze stap voor een ander veld genaamd id. In Field calculator expression, type:
$id
Dit zorgt er voor dat elke polygoon een unieke ID heeft ter identificatie.
Klik opnieuw op de knop modus Bewerken aan-/uitzetten en sla uw gegevens op als daarnaar gevraagd wordt.
Nu de gebieden bekend zijn:
Build a query (as usual) to select only the polygons larger than 6000m^2. The query is:
"area" > 6000
Save the selection as a new vector layer called solution.shp.
U heeft nu uw gebieden voor de oplossing, van waaruit u dat moet kiezen dat het dihtst bij uw huis ligt.
maak net als eerder een nieuwe vectorlaag, maar deze keer, selecteer de waarde Type als Punt.
Zorg er voor dat het in het juiste CRS is!
Voltooi het maken van de nieuwe laag.
Ga naar de modus Bewerken (terwijl de nieuwe laag is geselecteerd).
Klik op het punt waar uw huis of andere huidige verblijfplaats is, met behulp van de starten als een hulplijn. U moet misschien andere lagen openen om u te helpen uw huis te vinden. Als u niet ergens dichtbij woont, klik dan ergens langs de straat waar een mogelijk huis zou kunnen zijn.
Voer een willekeurig getal in voor de ID van de vorm.
Klik op OK.
Sla uw bewerkingen op en verlaat de modus Bewerken.
Sla de kaart op.
U zult de centroïden (“zwaartepunten”) voor de polygonen in het oplossingsgebied moeten zoeken om te kunnen bepalen welk het dichtst bij uw huis ligt.
Specificeer de invoerlaag als solution.shp.
Sleep de nieuwe laag tot boven in de laagvolgorde zodat u hem kunt zien.
Klik op het menu-item Vector ‣ Analyse-gereedschap ‣ Afstandsmatrix.
Het type uitvoermatrix zou lineair moeten zijn.
Stel een toepasselijke locatie voor de uitvoer en een naam in.
Klik op OK.
Open het bestand in een tekstbewerker (of importeer het in een werkblad). Onthoud welk doel-ID is geassocieerd met de kortste Afstand. Er zouden er meer dan één op dezelfde afstand kunnen zijn.
Dit is het uiteindelijke antwoord op de onderzoeksvraag.
Leg, voor als u het inlevert, de semi-transparante laag hillshade over een aantrekkelijk raster van uw keuze (zoals de DEM of de laag slope bijvoorbeeld). Neem ook de polygoon van het dichtstbij gelegen oplossingsgebied en uw huis op. Volg alle best practices voor cartografie bij het maken van uw uitvoerkaart.