În această lecție, veți efectua o analiză GIS completă în QGIS.
Note
Lecția a fost dezvoltată de Linfiniti și S Motala (Cape Peninsula University of Technology)
Vi se cere să găsiți zone în interiorul și în jurul Peninsulei Cape, care este un habitat potrivit pentru o specie de plante rare, Fynbos. Extinderea ariei dumneavoastră de investigare din Peninsula Cape este: la sud de Melkbosstrand, la vest de Strand. Botaniștii vă informează despre următoarele cerințe pentru specia în cauză:
Crește pe pante orientate spre est.
Crește pe pante cu o înclinație între 15% și 60%.
Crește în zone cu precipitații anuale totale de >1200 mm.
Se găsește numai la cel puțin 250 de m distanță față de orice așezare umană.
Zona de vegetație în care apare ar trebui să aibă o suprafață de cel puțin 6000m2.
Ca voluntar pentru Cape Nature, ați fost de acord să căutați planta pe cea mai apropiată suprafață de teren față de casa dvs. Folosiți-vă abilitățile GIS pentru a determina unde ar trebui să efectuați căutarea.
In order to solve this problem, you will have to download data from https://www.dropbox.com/s/q5evvkizuunrcs0/more_analysis.zip?dl=0 and place it under exercise_data/more_analysis folder. You will use it to find the candidate area that is closest to your house. If you don’t live in Cape Town (where this problem is based) you can choose any house in the Cape Town region. The solution will involve:
analiza DEM-ului, pentru a găsi pantele orientate spre est și având înclinațiile specificate;
analiza rasterului de precipitații, pentru a găsi zonele cu cantitatea corectă de precipitații;
analiza stratul vectorial de Zonare, pentru a găsi zonele care sunt situate la distanța specificată față de așezările umane și au dimensiunea corectă.
Clic pe butonul “CRS status” din colțul din extrema dreaptă-jos a ecranului. Sub fila CRS a ecranului care apare, veți vedea caseta de Coordinate reference systems of the world.
În această casetă, navigați la Projected Coordinate Systems ‣ Universal Transverse Mercator (UTM).
Salvați harta făcând clic pe butonul Save Project As din bara de instrumente, sau utilizând elementul de meniu File ‣ Save Project As....
Pentru a procesa datele, va trebui să încărcați straturile necesare (numele străzilor, zonele, precipitațiile, DEM-ul) în canevasul hărții.
Clic pe Deschidere.
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.
Navigați la fișierul corespunzător, selectați-l și faceți clic pe Open.
Salvați harta.
Pentru a vedea în mod corespunzător ce se întâmplă, simbolistica pentru straturi trebuie să fie schimbată.
Selectați Properties din meniul care apare.
Clic pe butonul Modificare, care are un pătrat prezentat în culoarea actuală a stratului Streets.
Selectați o culoare nouă din dialogul care va apărea.
Clic pe OK
Clic pe butonul Change, care are un pătrat prezentat în culoarea actuală a stratului Streets.
Urmați un proces similar pentru stratul Zoning, apoi alegeți o culoare potrivită pentru el.
Simbologia straturilor raster este oarecum diferită.
Deschideți dialogul Properties pentru rasterul Rainfall.
Asigurați-vă că butonul Use standard deviation
În secțiunea Contrast enhancement, schimbați valoarea listei derulante Current la Stretch to MinMax.
Clic OK. Rasterul “Precipitațiilor”, în cazul în care este vizibil, trebuie să-și schimbe culorile, permițându-vă să vedeți valori diferite de luminozitate pentru fiecare pixel.
Acum, că toate datele sunt încărcate și vizibile în mod corespunzător, analiza poate începe. Cel mai bine este dacă are loc, mai întâi, operațiunea de decupare. Astfel, puterea de procesare nu va fi irosită pe calcularea valorilor pentru zonele care nu vor fi deloc utilizate.
În meniul care apare, selectați elementul de meniu Query.... Va apărea dialogul Query Builder.
Veți construi acum o interogare pentru a selecta doar următoarea listă de districte:
În lista Fields, faceți dublu-clic pe câmpul NAME_2. Acesta va apărea în câmpul de text SQL where clause de mai jos.
Clic pe butonul All de sub lista (acum vidă) a. După o scurtă întârziere, lista Valorilor se va popula cu valoarea câmpului selectat (NAME_2).
Faceți dublu-clic pe valoarea Bellville din lista Valorilor. Ca și mai înainte, aceasta se va adăuga în interogarea SQL.
In order to select more than one district, you’ll need to use the OR boolean operator.
Faceți clic pe butonul OR pentru a adăuga textul în interogarea SQL.
Folosind un proces similar cu cel de mai sus, adăugați următoarele la interogarea SQL existentă:
"NAME_2" = 'Cape'
Add another OR operator, then work your way through the list of districts above in a similar fashion.
Interogarea finală ar trebui să fie
"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'
Clic OK. Districtele prezentate în harta dvs. sunt acum limitate la cele din lista de mai sus.
Acum, că aveți o zonă de interes, puteți decupa rasterele după ea.
Asigurați-vă că sunt vizibile numai straturile DEM, Rainfall și Districts.
Districtele trebuie să fie în partea de sus, astfel încât acestea sunt vizibile.
Deschideți caseta dialogului de decupare prin selectarea elementului de meniu Raster ‣ Extraction ‣ Clipper.
În caseta cu lista derulantă Input file (raster), selectați stratul DEM.
Specificați o locație de ieșire în câmpul de text Output file, făcând clic pe butonul Select....
Introduceți un nume de fișier.
Salvați fișierul. Lăsați caseta No data value nebifată.
Folosiți modul de decupare Extent, prin selectarea butonului radio corect.
Faceți clic și deplasați o zonă pe canevas, astfel încât aria care include districtele să fie selectată.
Clic pe OK
După finalizarea operațiunii de tăiere, NU ÎNCHIDEȚI dialogul Clipper. (Acest lucru ar putea provoca pierderea zonelor de decupare pe care le-ați definit deja.)
Selectați rasterul Rainfall din lista derulantă Input file (raster), apoi alegeți un nume de fișier de ieșire diferit.
După finalizares celei de-a doua operațiuni de tăiere, puteți închide dialogul Clipper.
Salvați harta.
Clic-dreapta pe aceste straturi apoi selectați Remove.
Acest lucru nu va elimina datele de pe dispozitivul de stocare, doar le va scoate din harta dvs.
Dezactivați etichetele din stratul Streets:
Clic pe butonul Etichetare.
Debifați caseta Label this layer with.
Clic pe OK
Afișați iarăși toate Streets:
Selectați Query.
În fereastra de dialog care apare, Query, faceți clic pe butonul Clear, apoi pe OK.
Așteptați în timp ce datele sunt încărcate. Toate străzile vor fi de acum vizibile.
Salvați harta.
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:
Clic pe 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.
Specificați o locație adecvată pentru stratul de ieșire și denumiți-o hillshade.
Clic pe OK
Așteptați să se termine prelucrarea.
Noul strat hillshade a apărut în Lista straturilor dvs.
Făcând clic dreapta pe stratul hillshade din Lista straturilor dvs., se va desxchide dialogul Properties.
Observați efectul, atunci când relieful transparent este suprapus peste DEM-urile decupate.
Faceți clic pe elementul de meniu Raster ‣ Terrain analysis.
Selectați tipul de analiză Slope, având ca intrare DEM-ul decupat.
Specificați un nume corespunzător și o locație pentru fișierul de ieșire.
Clic pe OK
Imaginea pantei a fost calculată și adăugată la hartă. Cu toate acestea, ca de obicei, se vede doar un dreptunghi gri. Pentru a observa corect ce se întâmplă, schimbați simbolistica, după cum urmează.
Deschideți dialogul Properties (ca de obicei, prin intermediul meniului clic-dreapta al stratului).
Acolo unde scrie Grayscale (în caseta cu derulare verticală Harta culorilor), alegeți Pseudocolor.
Asigurați-vă că butonul radio Use standard deviation este selectat.
Utilizați aceeași abordare ca și pentru calculul pantei, dar selectați Aspectul, în fereastra de dialog inițială.
Amintiți-vă să salvați periodic modificările.
Faceți clic pe elementul de meniu Raster ‣ Raster calculator.
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.
Folosind elementele din listă și butoanele din interfață, construiți următoarea expresie:
((slope@1 < 15) OR (slope@1 > 60)) = 0
Alegeți o locație pentru câmpul Output layer și numele de fișier corespunzător.
Clic pe OK
Now find the correct aspect (east-facing: between 45 and 135 degrees) using the same approach.
Construiți următoarea expresie:
((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.
Sub titlul Încărcare valori min / max din bandă, selectați butonul radio Actual (lent).
Clic pe butonul Load.
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.)
Sub antetul Îmbunătățire contrast, alegeți din lista Curent Întindere la MinMax.
Clic pe OK
Faceți acest lucru pentru toate cele trei rastere reclasificate, și amintiți-vă să vă salvați munca!
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.
Afișarea straturilor vectoriale Zoning.
Clic-dreapta pentru a se deschide dialogul Query.
Construiți următoarea interogare:
"Gen_Zoning" = 'Rural'
Consultați instrucțiunile anterioare pentru construirea interogării Streets, dacă v-ați blocat.
Când ați terminat, închideți dialogul :guilabel:`Query.
Ar trebui să vedeți o colecție de poligoane din partea stratului Zonare. Va trebui să le salvați în fișierul unui nou strat.
În meniul descis printr-un clic-dreapta pe stratul Zoning, selectați Save as....
Salvați stratul în directorul Zoning.
Clic pe OK
Adăugați straturile în harta dvs.
Faceți clic pe elementul de meniu Vector > Geoprocessing Tools > Dissolve.
Selectați stratul vectorial rural ca intrare, lăsând nebifată opțiunea Se utilizează doar entitățile selectate.
Salvați stratul în directorul Zoning.
Închideți dialogul Dissolve.
Eliminați straturile rural și Zoning.
Salvați harta.
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.
Faceți clic pe elementul de meniu Vector ‣ Geoprocessing Tools ‣ Buffer(s).
În caseta de dialog care apare, selectați stratul vectorial rural_dissolve ca intrare (nu trebuie bifată opțiunea Se utilizează numai entitățile selectate).
Bifați caseta Dissolve buffer results.
Setați fișierul de ieșire la același director ca și celelalte fișiere vectoriale rurale.
Clic pe Salvare.
Faceți clic pe Ok și așteptați procesarea, pentru a îmcheia.
Selectați Yes din fereastra de dialog care apare.
Închideți dialogul Buffer.
Eliminați stratul rural_dissolve.
Salvați harta.
Pentru a încorpora zonele rurale în aceeași analiză cu cele trei rastere existente, acesta va trebui să fie, de asemenea, rasterizat. Dar, pentru ca rasterele să fie compatibile cu analiza, acestea vor trebui să fie de aceeași dimensiune. De aceea, înainte de a putea rasteriza, va trebui să decupați vectorul după aceeași suprafață ca și cele trei rastere. Un vector poate fi decupat după un alt vector, așa că va trebui mai întâi să creați un poligon de încadrare cu aceeași dimensiune ca a rasterelor.
În rubrica Type, selectați butonul Polygon.
Clic pe OK.
Clic OK în dialogul New Vector Layer.
Salvați stratul vectorial în directorul Zoning.
Ascundeți toate straturile, cu excepția noului strat bbox și unul dintre rasterele reclasificate.
Apelați la elementul de meniu View > Toolbars pentru a vă asigura că Digitizarea este selectată. Ar trebui să vedeți pe bara de instrumente o pictogramă cu un creion sau o cariocă. Acesta este butonul Toggle editing.
Clic pe butonul de Activare editare pentru a intra în modul de editare. Acest lucru vă permite să editați un strat vectorial.
Faceți clic pe butonul Adăugare entitate, care ar trebui să se afle lângă butonul Trecere în modul de editare. Acesta se poate ascunde în spatele unui buton cu o săgeată dublă; în cazul în care acest lucru, faceți clic pe săgețile duble pentru a afișa butoanele ascunse ale bării instrumentelor de Digitizare.
Având activat instrumentul de Adăugare entitate, faceți clic-stânga pe colțurile rasterului. Este posibil să trebuiască să măriți harta folosind rotița mouse-ului pentru a vă asigura că este corectă. Puteți deplasa harta, în acest mod, ținând apăsat butonul din mijloc sau rotița mouse-ului.
Pentru al patrulea și ultimul punct, faceți clic-dreapta pentru a finaliza forma.
Introduceți orice număr arbitrar pentru ID-ul formei.
Clic pe OK
Clic pe butonul Save edits.
Clic pe butonul Toggle editing
Salvați harta.
Acum, că aveți o casetă de încadrare, o puteți folosi pentru a decupa stratul tampon rural.
Asigurați-vă că numai straturile bbox și rural_buffer sunt vizibile, ultimul aflându-se în partea superioară.
Faceți clic pe elementul de meniu Vector > Geoprocessing Tools > Clip.
În caseta de dialog care apare, setați rural_buffer pentru stratul de intrare vectorial și bbox pentru stratul de decupare, având nebifate ambele casete de Utilizare doar a entităților selectate.
Puneți fișierul de ieșire sub directorul Zoning.
Clic pe OK
Când vi se solicită să adăugați stratul în Cuprins, faceți clic pe Yes.
Închideți dialogul.
Comparați cei trei vectori și vizualizați rezultatele.
Eliminați straturile bbox și rural_buffer, apoi salvați harta.
Acum estte gata fr a fi rasterizat.
Va trebui să specificați o dimensiune a pixelului pentru un nou raster pe care îl creați, așa că mai întâi va trebui să cunoașteți dimensiunea unuia dintre rasterele existente.
Deschideți dialogul Properties al oricăruia dintre cele trei rastere existente.
Mergeți la fila Metadata.
Închideți dialogul Properties.
Clic pe elementul de meniu Raster ‣ Conversion ‣ Rasterize. Este posibil să primiți un avertisment despre un set de date care este neacceptat. Faceți clic pentru a-l ignora.
Selectați rural_clipped pentru stratul de intrare.
Cresți o locație pentru fișierul de ieșire, în directorul Zoning.
Bifaţi caseta Load into canvas.
Clic pe OK
Noul raster ar trebui să apară în harta dvs. o dată ce a fost calculată.
Noul raster va arăta ca un dreptunghi gri - puteți schimba stilul de afișare așa cum ați procedat și pentru rasterele reclasificate.
Salvați harta dvs.
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.
Faceți clic pe elementul de meniu Raster ‣ Raster calculator.
Construiți următoarea expresie (folosind denumirile corespunzătoare pentru straturile dvs, în funcție de modul în care le-ați denumit):
[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.
Clic pe OK.
Schimbați simbolistica noului raster în același mod în care setați stilul pentru celelalte rastere reclasificate. Noul raster va afișa acum în mod corespunzător zonele în care toate criteriile sunt îndeplinite.
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.
Faceți clic pe elementul de meniu Raster ‣ Conversion ‣ Polygonize.
Clic pe OK.
Închideți caseta de dialog atunci când prelucrarea este completă.
All areas of the raster have been vectorized, so you need to select only the areas that have a value of 1.
Deschideți dialogul Interogărilor pentru noul vector.
Construiți această interogare:
"DN" = 1
Clic pe 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.
Denumiți fișierul candidate_areas_only.shp.
Salvați harta dvs.
Deschideți prin clic-dreapta, meniul noului strat vectorial.
Selectați Deschidere tabelă de atribute.
Clic pe butonul de Activare editare din partea de jos a tabelei, sau apăsați Ctrl+E.
Clic pe butonul de Deschidere calculator de câmpuri din partea de jos a tabelei, sau apăsați 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.
În Expresia calculatorului raster, introduceți:
$area
Astfel, acest calculator câmp va calcula suprafața fiecărui poligon din stratul vectorial, iar apoi va popula apoi o nouă coloană (denumită area) , de tip întreg, cu valoarea determinată.
Clic pe OK
Faceți același lucru pentru un alt câmp nou denumit id. În Expresia calculatorului de câmpuri, introduceți:
$id
Acest lucru ne asigură că fiecare poligon are un ID unic, în scop de identificare.
Faceți clic iarăși pe butonul Toggle editing, apoi salvați modificările dacă vi se solicită acest lucru.
Acum, că ariile sunt cunoscute:
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.
Acum aveți zonele dumneavoastră calculate, din care o veți alege pe cea mai apropiată de casa dvs.
Creați un nou strat vectorial, ca și mai înainte, dar de această dată, selectând ca Tip Punctul.
Asigurați-vă că acesta se află în CRS-ul corect!
Finalizați crearea noului strat.
Intrați în modul de editare (în timp ce noul strat este selectat).
Efectuați clic pe punctul care reprezintă reședința dvs. sau un alt loc de rezidență, folosind străzile pentru a vă ghida. S-ar putea să trebuiască să deschideți și alte straturi pentru a vă ajuta să identificați casa respectivă. În cazul în care nu locuiți prin apropiere, e suficient să faceți clic pe undeva, printre străzile unde ar putea fi situată o casă.
Introduceți orice număr arbitrar pentru ID-ul formei.
Clic pe OK
Salvați modificările și ieșiți din modul de editare.
Salvați harta.
Va trebui să găsiți centroidele (“centrele de masă”) pentru poligoane, pentru a decide care este cel mai apropiat de casa dvs.
Specificați stratul de intrare solution.shp.
Setați noul strat în partea superioară a ordinii stratului, astfel încât să îl puteți vedea.
Tip matricii de ieșire ar trebui să fie linear.
Stabiliţi o locație şi un nume corespunzătoare pentru rezultat.
Clic pe OK
Deschideți fișierul într-un editor de texte (sau importați-l într-o foaie de calcul). Atenție la ID-ul destinației care se va asocia cu cea mai scurtă Distanță. Pot exista mai multe de una la aceeași distanță.
Acesta este răspunsul final la întrebarea.
Includeți și stratul reliefului semi-transparent peste un raster plăcut, la alegerea dvs. (de exemplu: guilabel: DEM-ul sau rasterul pantei). De asemenea, includeți poligonul din cea mai apropiată zon(ă) soluție, precum și casa dvs. Urmați cele mai bune practici cartografice, pentru a crea harta de ieșire.