8.4. Lesson: Esercizio supplementare
In questa lezione, sarai guidato in una analisi GIS completa con QGIS.
Nota
Lezione preparata da Linfiniti Consulting (South Africa) e Siddique Motala (Cape Peninsula University of Technology)
8.4.1. Enunciazione del problema
Sei incaricato di trovare delle aree all’interno e nei dintorni della Cape Peninsula che abbiamo un habitat adatto per delle rare specie di boscaglia fine. L’estensione dell’area di analisi va da Cape Town alla Cape Peninsula tra Melkbosstrand nel nord e Strand nel sud. I botanici hanno fornito le seguenti preferenze esposte dalle specie in questione:
Crescono nei pendii affacciati a est
Crescono nei pendii con inclinazione compresa fra il 15% ed il 60%
Crescono in aree con precipitazioni annue maggiori di 1000 mm
Possono essere trovate solo ad oltre 250m da qualsiasi insediamento umano
L’area verde in cui si trovano deve essere di almeno 6000 ㎡
Come studente universitario, hai accettato di cercare le piante in quattro diverse aree. Vuoi che le quattro aree siano quelle più vicine all’università di Cape Town dove vivi. Usa le tue abilità GIS per determinare dove dovresti andare a cercare.
8.4.2. Tracciamento della soluzione
I dati per questo esercizio possono essere trovati nella cartella exercise_data/more_analysis
.
Dovrai cercare le quattro aree adatte che sono più vicine all’università di Cape Town.
La soluzione comporterà:
Analizzare un layer raster DEM per trovare i pendii affacciati ad est e con la corretta pendenza
Analizzare un layer raster di precipitazioni per trovare le aree con la corretta quantità di pioggia
Analizzare un layer vettoriale a zone per trovare le aree lontane dagli insediamenti umani e della corretta dimensione
8.4.3. Follow Along: Impostazione della mappa
Clicca sul pulsante SR Attuale nell’angolo in basso a destra dello schermo. Nella scheda SR del dialogo che appare, usa lo strumento «Filtra» per cercare «33S». Seleziona la voce WGS 84 / UTM zone 33S (con codice EPSG
32733
).Clicca su OK
Salva il progetto cliccando sul pulsante Salva Progetto sulla barra strumenti, oppure usa la voce di menu .
Salvalo in una nuova cartella chiamata
Rasterprac
, che dovrai creare da qualche parte nel tuo computer. Dovrai salvare i layer che creerai in questa cartella. Salva il progetto con nometuo_nome_fynbos.qgs
.
8.4.4. Caricare i dati nella mappa
Per elaborare i dati, devi caricare i layer necessari (nomi di strade, zone, precipitazioni, DEM, distretti) nell’area di disegno della mappa.
Per i vettori…
Clicca sul pulsante Apri Gestore delle sorgenti dati nella Barra degli strumenti per la gestione delle sorgenti dati, ed abilita la scheda Vettore nel dialogo che appare, oppure usa la voce di menu
Clicca sul pulsante … per sfogliare i dati vettoriali
Nel dialogo che appare, apri la cartella
exercise_data/more_analysis/Streets
Seleziona il file
Street_Names_UTM33S.shp
Clicca Apri.
Il dialogo si chiude e mostra quello originario, con il percorso del file nel campo di testo vicino a Dataset vettoriale. Questo ti permette di controllare di aver selezionato il file corretto. È anche possibile inserire manualmente il percorso del file, nel caso volessi farlo.
Clicca Aggiungi. Il layer vettoriale sarà caricato sulla mappa. I colori saranno assegnati automaticamente. Li cambierai più tardi.
Rinominare il layer in
Streets
Clicca su di esso col tasto destro nel pannello Layer (per impostazione predefinita nella parte sinistra dello schermo)
Nel dialogo che appare clicca su Rinomina Layer e rinominalo, premendo il tasto Invio quando finito
Ripeti il processo di aggiungere un vettore, ma questa volta seleziona il file
Generalised_Zoning_Dissolve_UTM33S.shp
nella cartellaZoning
.Rinominalo in
Zoning
.Carica anche il layer vettoriale
admin_boundaries/Western_Cape_UTM33S.shp
nella tua mappa.Rinominalo in
Districts
.
Per i raster…
Clicca sul pulsante Apri Gestore delle sorgenti dati e abilita la scheda Raster nella finestra di dialogo che appare, oppure usa la voce di menu
Naviga fino al file appropriato, selezionalo e clicca su :guilabel: Apri.
Fai lo stesso per i due file raster seguenti,
DEM/SRTM.tif
erainfall/reprojected/rainfall.tif
Rinomina il raster SRTM in
DEM
e il raster delle precipitazioni inRainfall
(con una maiuscola iniziale)
8.4.5. Cambiare l’ordine dei layer
Clicca e trascina i layer su e giù nel pannello Layer per cambiare l’ordine in cui appaiono sulla mappa in modo che tu possa vedere il maggior numero possibile di layer.
Ora che tutti i dati sono caricati e opportunamente visibili, l’analisi può iniziare. È meglio se l’operazione di ritaglio viene fatta prima. Questo per evitare che la potenza di elaborazione venga sprecata per calcolare valori in aree che non verranno comunque utilizzate.
8.4.6. Trovare i distretti giusti
Considerata la succitata area di indagine, dobbiamo limitare i nostri distretti ai seguenti:
Bellville
Cape
Goodwood
Kuils River
Mitchells Plain
Simon Town
Wynberg
Fai clic destro sul layer
Districts
nel pannello Layer`.In the menu that appears, select the Filter… menu item. The Query Builder dialog appears.
Ora costruirai una query per selezionare solo i distretti che sono stati scelti:
In the Fields list, double-click on the
NAME_2
field to make it appear in the SQL where clause text field belowFai clic sul pulsante IN per aggiungerlo alla query SQL
Apri le parentesi
Click the All button below the (currently empty) Values list.
Dopo poco, la lista Valori sarà popolata con i valori del campo selezionato (
NAME_2
).Double-click the value
Bellville
in the Values list to append it to the SQL query.Aggiungi una virgola e fai doppio clic per aggiungere il distretto
Cape
.Ripeti il procedimento precedente per i restanti distretti
Chiudi le parentesi
La query finale dovrebbe essere (l’ordine dei distretti tra le parentesi non ha importanza):
"NAME_2" in ('Bellville', 'Cape', 'Goodwood', 'Kuils River', 'Mitchells Plain', 'Simon Town', 'Wynberg')
Nota
Puoi anche usare l’operatore
OR
; la query sarebbe così:"NAME_2" = 'Bellville' OR "NAME_2" = 'Cape' OR "NAME_2" = 'Goodwood' OR "NAME_2" = 'Kuils River' OR "NAME_2" = 'Mitchells Plain' OR "NAME_2" = 'Simon Town' OR "NAME_2" = 'Wynberg'
Fai clic su OK due volte.
I distretti mostrati nella tua mappa sono ora limitati a quelli della lista qui sopra.
8.4.7. Ritagliare i Raster
Ora che hai un’area di interesse, puoi ritagliare i raster su quest’area.
Open the clipping dialog by selecting the menu item
In the Input layer dropdown list, select the
DEM
layerIn the Mask layer dropdown list, select the
Districts
layerScroll down and specify an output location in the Clipped (mask) text field by clicking the … button and choosing Save to File…
Vai alla cartella
Rasterprac
Inserisci un nome di file -
DEM_clipped.tif
Salva
Make sure that Open output file after running algorithm is checked
Clicca Esegui
After the clipping operation has completed, leave the Clip Raster by Mask Layer dialog open, to be able to reuse the clipping area
Select the
Rainfall
raster layer in the Input layer dropdown list and save your output asRainfall_clipped.tif
Do not change any other options. Leave everything the same and click Run.
After the second clipping operation has completed, you may close the Clip Raster by Mask Layer dialog
Salva la mappa
Allinea i raster
Per la nostra analisi abbiamo bisogno che i raster abbiano lo stesso SR e che siano allineati.
Per prima cosa cambiamo la risoluzione dei nostri dati sulle precipitazioni a 30 metri (dimensione dei pixel):
Right-click on the
Rainfall_clipped
layer and select in the context menu.Under Resolution, set the Horizontal and Vertical resolutions to
30
(meters).Save the file as
Rainfall30.tif
inrainfall/reprojected
(File name)
Poi allineiamo il DEM:
Right-click on the
DEM_clipped
layer and select in the context menuPer SR, scegli WGS 84 / UTM zone 33S (EPSG code
32733
)Under Resolution, set the Horizontal and Vertical resolutions to
30
(in meters).Under Extent, click on Calculate from Layer and choose
Rainfall30
Save the file as
DEM30.tif
inDEM/reprojected
(File name)
Per vedere bene cosa stia avvenendo, la simbologia dei layer deve essere cambiata.
8.4.8. Cambiare la simbologia dei layer vettoriali
Nel pannello Layer, clicca con il tasto destro sul layer Streets.
Seleziona Proprietà dal menu che appare
Switch to the Symbology tab in the dialog that appears
Click on the Fill entry in the top widget
Select a symbol in the list below or set a new one (color, transparency, …)
Click OK to close the Layer Properties dialog. This will change the rendering of the Streets layer.
Follow a similar process for the Zoning layer and choose an appropriate color for it
8.4.9. Cambiare la simbologia dei layer raster
La simbologia dei layer raster è un pò diversa.
Open the Properties dialog for the Rainfall30 raster layer
Switch to the Symbology tab. You’ll notice that this dialog is very different from the version used for vector layers.
Expand Min/Max Value Settings
Ensure that the button Mean +/- standard deviation is selected
Make sure that the value in the associated box is
2.00
For Contrast enhancement, make sure it says Stretch to MinMax
For Color gradient, change it to White to Black
Clicca su OK
The
Rainfall30
raster, if visible, should change colors, allowing you to see different brightness values for each pixelRepeat this process for the
DEM30
layer, but set the standard deviations used for stretching to4.00
8.4.10. Ripulire la mappa
Remove the original
Rainfall
andDEM
layers, as well asRainfall_clipped
andDEM_clipped
from the Layers panel:Right-click on these layers and select Remove.
Nota
Questo non rimuoverà i dati dal tuo dispositivo di memorizzazione, li toglierà semplicemente dalla tua mappa.
Salva la mappa
Ora puoi nascondere i layer vettoriali deselezionando la casella accanto a loro nel pannello Layer. Questo renderà il processo di visualizzazione della mappa più veloce e ti farà risparmiare un po” di tempo.
8.4.11. Creare l’ombreggiatura
Per creare l’ombreggiatura, dovrai utilizzare un algoritmo che è stato scritto per questo scopo.
In the Layers panel, ensure that
DEM30
is the active layer (i.e., it is highlighted by having been clicked on)Click on the Hillshade dialog
menu item to open theScroll down to Hillshade and save the output in your
Rasterprac
directory ashillshade.tif
Make sure that Open output file after running algorithm is checked
Clicca Esegui
Attendi che finisca l’elaborazione.
The new hillshade
layer has appeared in the
Layers panel.
Right-click on the
hillshade
layer in the Layers panel and bring up the Properties dialogClick on the Transparency tab and set the Global Opacity slider to
20%
Clicca su OK
Note the effect when the transparent hillshade is superimposed over the clipped DEM. You may have to change the order of your layers, or click off the
Rainfall30
layer in order to see the effect.
8.4.12. Pendenza
Click on the Slope algorithm dialog
menu item to open theSelect
DEM30
as Input layerCheck Slope expressed as percent instead of degrees. Slope can be expressed in different units (percent or degrees). Our criteria suggest that the plant of interest grows on slopes with a gradient between 15% and 60%. So we need to make sure our slope data is expressed as a percent.
Definisci un nome di file appropriato e una posizione per il tuo risultato.
Make sure that Open output file after running algorithm is checked
Clicca Esegui
L’immagine della pendenza è stata calcolata e aggiunta alla mappa. Come al solito, è visualizzata in scala di grigi. Cambia la simbologia con una più colorata:
Open the layer Properties dialog (as usual, via the right-click menu of the layer)
Click on the Symbology tab
Where it says Singleband gray (in the Render type dropdown menu), change it to Singleband pseudocolor
Choose Mean +/- standard deviation x for Min / Max Value Settings with a value of
2.0
Select a suitable Color ramp
Clicca Esegui
8.4.13. Try Yourself Esposizione
Use the same approach as for calculating the slope, choosing Aspect… in the menu.
Ricordati di salvare il progetto periodicamente.
8.4.14. Riclassificare i raster
Choose
Specify your
Rasterprac
directory as the location for the Output layer (click on the … button), and save it asslope15_60.tif
Ensure that the Open output file after running algorithm box is selected.
In the Raster bands list on the left, you will see all the raster layers in your Layers panel. If your Slope layer is called slope, it will be listed as
slope@1
. Indicating band 1 of the slope raster.The slope needs to be between
15
and60
degrees.Usando gli elementi della lista e i pulsanti dell’interfaccia, costruisci la seguente espressione:
(slope@1 > 15) AND (slope@1 < 60)
Set the Output layer field to an appropriate location and file name.
Click Run.
Now find the correct aspect (east-facing: between 45
and 135
degrees) using the same approach.
Costruisci la seguente espressione:
(aspect@1 > 45) AND (aspect@1 < 135)
You will know it worked when all of the east-facing slopes are white in the resulting raster (it’s almost as if they are being lit by the morning sunlight).
Find the correct rainfall (greater than 1000
mm) the same way.
Use the following expression:
Rainfall30@1 > 1000
Now that you have all three criteria each in separate rasters, 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
(i.e. the location meets the criteria), but
if a pixel in any of the three rasters has the value of 0
(i.e.
the location does not meet the criteria), then it will be 0
in the
result.
In this way, the result will contain only the overlapping areas that
meet all of the appropriate criteria.
8.4.15. Combining rasters
Open the Raster Calculator (
)Build the following expression (with the appropriate names for your layers):
[aspect45_135] * [slope15_60] * [rainfall_1000]
Set the output location to the
Rasterprac
directoryName the output raster
aspect_slope_rainfall.tif
Ensure that Open output file after running algorithm is checked
Clicca Esegui
The new raster now properly displays the areas where all three criteria are satisfied.
Salva il progetto
The next criterion that needs to be satisfied is that the area must be
250
m away from urban areas.
We will satisfy this requirement by ensuring that the areas we compute
are inside rural areas, and are 250
m or more from the edge of the area.
Hence, we need to find all rural areas first.
8.4.16. Trovare le aree rurali
Nascondi tutti i layer nel pannello Layer
Deseleziona il layer vettoriale
Zoning
.Right-click on it and bring up the Attribute Table dialog. Note the many different ways that the land is zoned here. We want to isolate the rural areas. Close the Attribute table.
Right-click on the
Zoning
layer and select Filter… to bring up the Query Builder dialogCostruisci la seguente query:
"Gen_Zoning" = 'Rural'
Vedi le istruzioni precedenti se sei in difficoltà.
Click OK to close the Query Builder dialog. The query should return one feature.
You should see the rural polygons from the Zoning
layer.
You will need to save these.
In the right-click menu for
Zoning
, select .Salva il tuo layer nella cartella
Rasterprac
.Nome del file in uscita
rural.shp
Clicca su OK
Salva il progetto
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.
8.4.17. Creazione di un buffer negativo
Click the menu item
In the dialog that appears, select the
rural
layer as your input vector layer (Selected features only should not be checked)Set Distance to
-250
. The negative value means that the buffer will be an internal buffer. Make sure that the units are meters in the dropdown menu.In Buffered, place the output file in the
Rasterprac
directory, and name itrural_buffer.shp
Fai clic su Salva
Click Run and wait for the processing to complete
Chiudi la finestra di dialogo Buffer.
Make sure that your buffer worked correctly by noting how the
rural_buffer
layer is different from therural
layer. You may need to change the drawing order in order to observe the difference.Rimuovi layer ``rural`
Salva il progetto
Now you need to combine your rural_buffer
vector layer with the
aspect_slope_rainfall
raster.
To combine them, we will need to change the data format of one of the
layers. In this case, you will vectorize the raster, since vector
layers are more convenient when we want to calculate areas.
8.4.18. Vettorializzare il raster
Click on the menu item
Select the
aspect_slope_rainfall
raster as Input layerSet Name of the field to create to
suitable
(the default field name isDN
- Digital number data)Save the output. Under Vectorized, select Save file as. Set the location to
Rasterprac
and name the fileaspect_slope_rainfall_all.shp
.Ensure that Open output file after running algorithm is checked
Clicca Esegui
Chiudi la finestra di dialogo quando l’elaborazione è terminata.
All areas of the raster have been vectorized, so you need to select
only the areas that have a value of 1
in the suitable
field.
(Digital Number.
Open the Query Builder dialog (right-click - Filter…) for the new vector layer
Costruisci questa query:
"suitable" = 1
Clicca su OK
After you are sure the query is complete (and only the areas that meet all three criteria, i.e. with a value of
1
are visible), create a new vector file from the results, using the Export –> Save Features As… in the layer’s right-click menuSave the file in the
Rasterprac
directoryDenomina il file :file:`aspect_slope_rainfall_1.shp
Rimuovi il layer
aspect_slope_rainfall_all
dalla tua mappaSalva il tuo progetto
When we use an algorithm to vectorize a raster, sometimes the algorithm yields what is called «Invalid geometries», i.e. there are empty polygons, or polygons with mistakes in them, that will be difficult to analyze in the future. So, we need to use the «Fix Geometry» tool.
8.4.19. Fixing geometry
In the Processing Toolbox, search for «Fix geometries», and Execute… it
For the Input layer, select
aspect_slope_rainfall_1
Under Fixed geometries, select Save file as, and save the output to
Rasterprac
and name the filefixed_aspect_slope_rainfall.shp
.Ensure that Open output file after running algorithm is checked
Clicca Esegui
Chiudi la finestra di dialogo quando l’elaborazione è terminata.
Now that you have vectorized the raster, and fixed the resulting
geometry, you can combine the aspect, slope, and rainfall criteria
with the distance from human settlement criteria by finding the
intersection of the fixed_aspect_slope_rainfall
layer and the
rural_buffer
layer.
8.4.20. Determining the Intersection of vectors
Click the menu item
In the dialog that appears, select the
rural_buffer
layer as Input layerFor the Overlay layer, select the
fixed_aspect_slope_rainfall
layerIn Intersection, place the output file in the
Rasterprac
directoryName the output file
rural_aspect_slope_rainfall.shp
Fai clic su Salva
Click Run and wait for the processing to complete
Close the Intersection dialog.
Make sure that your intersection worked correctly by noting that only the overlapping areas remain.
Salva il progetto
The next criteria on the list is that the area must be greater than
6000
㎡.
You will now calculate the polygon areas in order to identify the
areas that are the appropriate size for this project.
8.4.21. Calcolare l’area per ogni poligono
Open the new vector layer’s right-click menu
Select Open attribute table
Click the Toggle editing button in the top left corner of the table, or press Ctrl+e
Click the Open field calculator button in the toolbar along the top of the table, or press Ctrl+i
In the dialog that appears, make sure that Create new field is checked, and set the Output field name to
area
The output field type should be a decimal number (real). Set Precision to1
(one decimal).In the Expression area, type:
$area
This means that the field calculator will calculate the area of each polygon in the vector layer and will then populate a new integer column (called
area
) with the computed value.Clicca su OK
Do the same thing for another new field called
id
. In Field calculator expression, type:$id
This ensures that each polygon has a unique ID for identification purposes.
Click Toggle editing again, and save your edits if prompted to do so
8.4.22. Selecting areas of a given size
Now that the areas are known:
Build a query (as usual) to select only the polygons that are larger than
6000
㎡. The query is:"area" > 6000
Save the selection in the
Rasterprac
directory as a new vector layer calledsuitable_areas.shp
.
You now have the suitable areas that meet all of the habitat criteria for the rare fynbos plant, from which you will pick the four areas that are nearest to the University of Cape Town.
8.4.23. Digitize the University of Cape Town
Create a new vector layer in the
Rasterprac
directory as before, but this time, use Point as Geometry type and name ituniversity.shp
Assicurati che sia nel SR corretto (
Progetto CRS:EPSG:32733 - WGS 84 / zona UTM 33S
)Termina la creazione del nuovo layer (clicca su OK)
Nascondi tutti i layer tranne il nuovo layer
university
e il layerStreets
.Aggiungi una mappa di sfondo (OSM):
Go to the Browser panel and navigate to
Drag and drop the
OpenStreetMap
entry to the bottom of the Layers panel
Using your internet browser, look up the location of the University of Cape Town. Given Cape Town’s unique topography, the university is in a very recognizable location. Before you return to QGIS, take note of where the university is located, and what is nearby.
Ensure that the
Streets
layer clicked on, and that theuniversity
layer is highlighted in the Layers panelNavigate to the Digitizing is selected. You should then see a toolbar icon with a pencil on it ( Toggle editing). This is the Toggle Editing button.
menu item and ensure thatClick the Toggle editing button to enter edit mode. This allows you to edit a vector layer
Click the Add Point Feature button, which should be nearby the Toggle editing button
With the Add feature tool activated, left-click on your best estimate of the location of the University of Cape Town
Supply an arbitrary integer when asked for the
id
Clicca su OK
Click the Toggle editing button to stop your editing session
Salva il progetto
8.4.24. Trova i luoghi più vicini all’Università di Città del Capo
Go to the Processing Toolbox, locate the Join Attributes by Nearest algorithm (
) and execute itInput layer should be
university
, and Input layer 2suitable_areas
Set an appropriate output location and name (Joined layer)
Set the Maximum nearest neighbors to
4
Ensure that Open output file after running algorithm is checked
Lascia i parametri rimanenti con i loro valori predefiniti
Clicca Esegui
The resulting point layer will contain four features - they will
all have the location of the university and its attributes, and in
addition, the attributes of the nearby suitable areas (including the
id
), and the distance to that location.
Apri la tabella degli attributi del risultato del join
Note the
id
of the four nearest suitable areas, and then close the attribute tableOpen the attribute table of the
suitable_areas
layerBuild a query to select the four suitable areas closest to the university (selecting them using the
id
field)
Questa è la risposta finale alla quesito posto.
For your submission, create a fully labeled layout that includes the
semi-transparent hillshade layer over an appealing raster of your
choice (such as the DEM or the slope raster,
for example).
Also include the university and the suitable_areas
layer, with
the four suitable areas that are closest to the university
highlighted.
Follow all the best practices for cartography in creating your output
map.