Izračun površine rastra (QGIS3)

Številne aplikacije zahtevajo kvantifikacijo vzorca rabe tal v regiji. Zbirke podatkov o rabi tal in pokrovnosti (LULC) so na voljo v obliki rastrskih datotek, v katerih je vsakemu pikslu dodeljena vrednost razreda. Analitiki GIS morajo na podlagi teh podatkov pogosto pripraviti poročila, tako da izračunajo površino razreda v določeni regiji. QGIS je opremljen s številnimi vgrajenimi orodji za izračunavanje in povzemanje rastrskih površin.

Opomba

V preteklosti je bil predlagani pristop za izračun površin rastra pretvorba rastrskega sloja v vektorski in uporaba tehnik izračuna vektorskega območja. Ta pristop je računsko zahteven in nagnjen k napakam. Priporočeni pristop je uporaba orodja za obdelavo Raster layer unique values report, ki lahko neposredno izračuna površine pikslov. Če imate sloj z veliko poligoni in potrebujete površine za vsakega od njih, lahko uporabite orodje Zonal histogram, kjer dobite število pikslov posameznega razreda in ga nato pomnožite s površino vsakega piksla.

Pregled naloge

Uporabili bomo rastrski sloj z 11 razredi pokrovnosti tal in izračunali površino vsakega razreda v nacionalnem parku. Rezultate bomo tudi naknadno obdelali in ustvarili preglednico z imeni razredov in površinami.

Česa se bomo še naučili

  • Kako uporabiti simbologijo v sloju iz slogovne datoteke v formatu .qml.

  • Kako zapisati izraze z več pogoji if/else z uporabo stavka CASE.

  • Kako izvoziti tabelo QGIS kot Excelovo preglednico.

Pridobivanje podatkov

Prenesli bomo naslednje nabore podatkov

  1. Svetovna zbirka podatkov o zavarovanih območjih (WDPA): V Indiji bomo prenesli shapefile meje nacionalnega parka Kaziranga National Park.

  2. ESA WorldCover 2020: WorldCover 10 m 2020 Evropske vesoljske agencije (ESA) zagotavlja globalni zemljevid pokritosti tal za leto 2020 z ločljivostjo 10 m. Prenesli bomo del, ki pokriva naše interesno območje.

Meja parka

  1. Pojdite na spletno mesto Protected Planet in kliknite na iskalnik. Poiščite Kaziranga National Park.

../../_images/data01.png
  1. Kot rezultat iskanja bo prikazana vektorska meja zaščitenega območja. Kliknite, da si ogledate stran Kaziranga National Park.

../../_images/data02.png
  1. Ta stran bo vsebovala dodatne informacije, kot so skupna površina, leto nastanka itd. Kliknite na Download in kliknite SHP za prenos podatkov v obliki Shapefile.

../../_images/data03.png
  1. Pojavita se dve možnosti za prenos. Kliknite continue pod Non Commercial Use. Zdaj se bo prenesla datoteka zip, ki vsebuje mejo nacionalnega parka.

../../_images/data04.png

Podatki o pokrovnosti tal

  1. Pojdite na spletno stran ESA WorldCover in kliknite na meni DATA ACCESS.

../../_images/data113.png
  1. Pomaknite se navzdol do razdelka DATA DOWNLOAD in kliknite na povezavo, da odprete pregledovalnik WorldCover

../../_images/data122.png
  1. Za prenos podatkov morate ustvariti brezplačen račun. Kliknite na povezavo Register v zgornjem desnem kotu. Pri ustvarjanju novega računa sledite navodilom.

../../_images/data131.png
  1. Ko ustvarite račun, se prijavite s poverilnicami. V tej vadnici nas zanima nacionalni park Kaziranga. Povečajte na območje severovzhodne Indije. Ko boste dovolj povečali, se bo začelo prikazovati omejitveno območje dela pokrovnosti tal.

../../_images/data141.png
  1. Poiščite in poiščite območje ploščic N24E093.

../../_images/data15.png
  1. Izberite ploščico in kliknite NEXT.

../../_images/data16.png
  1. Click on the DOWNLOAD to download a zip file containing the landcover information in raster format. Make sure to select WorldCover Version 1 data for download.

../../_images/data17.png
  1. We will also download a symbology file provided by ESA. Visit the ESA WorldCover Data Access page., Scroll-down to the Symbology section. Click on the QGIS to download the ESAWorldCover_ColorLegend.qml file which can be used to style the raster layer with approproate colors and class labels.

../../_images/data18.png

Kopijo podatkovnih nizov lahko neposredno prenesete s spodnjih povezav:

Vir podatkov [WDPA] [WorldCover]

Postopek

  1. Razpakirajte vse prenesene datoteke. V Browser-ju poiščite mapo z datoteko meje WDPA_WDOECM_Apr2022_Publicc_10744_shp-polygons.shp in jo povlecite ter spustite na delovno površino QGIS.

../../_images/013.png
  1. Zdaj poiščite rastrski sloj Worldcover ESA_WorldCover_10m_2020_v100_N24_E093_Map.tif in ga spustite na delovno površino QGIS.

../../_images/023.png
  1. Na plošči Layers bosta zdaj naložena vektorski sloj meje in rastrski sloj pokrovnosti tal. Pripnimo raster pokrovnosti tal na mejo nacionalnega parka. Pojdite na Processing ‣ Toolbox, da odprete orodjarno Processing. Poiščite in najdite algoritem GDAL ‣ Raster extraction ‣ Clip raster by mask layer. Z dvoklikom ga zaženite.

../../_images/033.png
  1. V pogovornem oknu Clip Raster by Mask Layer` izberite sloj ESA_WorldCover_10m_2020_v100_N24_E093_Map kot Input layer in sloj WDPA_WDOECM_Apr2022_Publicc_10744_shp-polygons kot Mask Layer. Vnesite -9999 v razdelek Assign a specified nodata value to output bands.

../../_images/043.png
  1. Zdaj odprite razdelek Advanced Parameters in v razdelku Profile izberite High Compression. V razdelku Clipped (mask) kliknite na ... in izberite Save To File…. Vnesite ime datoteke kot worldcover_clipped.tif. Kliknite Run.

../../_images/053.png
  1. Zdaj bo sloj worldcover_clipped naložen na delovno površino QGIS. Z desno tipko miške kliknite na sloj ESA_WorldCover_10m_2020_v100_N24_E093_Map in izberite Remove Layer…

../../_images/063.png
  1. Oba sloja sta v geografskem sistemu CRS EPSG:4326. Ta CRS ima enote stopinje in ni primeren za izračun območja. Sloja moramo najprej transformirati v predvideni CRS. Za regionalne analize, kot je ta, je UTM dobra izbira kot projektni CRS. Sloje bomo preslikali v CRS za lokalno območje UTM. Odprite orodjarno Processing in poiščite algoritem Vector general ‣ Reproject layer. Z dvojnim klikom ga zaženite.

../../_images/073.png
  1. V pogovornem oknu Reproject Layer izberite sloj WDPA_WDOECM_Apr2022_Publicc_10744_shp-polygons kot Input layer, kliknite Select CRS kot Target CRS.

../../_images/083.png
  1. Naše interesno območje spada v območje UTM 46N. Poiščite 46 N in izberite CRS WGS 84 / UTM zone 46N.

../../_images/093.png

Opomba

Če želite ugotoviti, katero območje UTM je v vaši regiji, si oglejte spletno mesto What UTM Zone am I in.

  1. V razdelku Reprojected kliknite ... in izberite Save To File…`. Vnesite ime nationalpark_reprojected.gpkg. Kliknite Run.

../../_images/1011.png
  1. Zdaj bo sloj nationalpark_reprojected naložen na delovno površino. Z desno tipko miške kliknite sloj WDPA_WDOECM_Apr2022_Publicc_10744_shp-polygons in izberite Remove Layer…, da ga odstranite. Zdaj bomo ponovno transformirali rastrsko plast. V orodjarni Processing Toolbox poiščite GDAL ‣ Raster projections ‣ Warp (reproject)

../../_images/1114.png
  1. V pogovornem oknu Warp (Reproject) izberite worldcover_clipped kot Input layer`, kot Target CRS` izberite WGS 84 / UTM zone 46N CRS. Odprite Advanced Parameters in v Profile izberite High Compression.

../../_images/1212.png
  1. Zdaj v razdelku Reprojected kliknite na ... in izberite Save To File…`. Vnesite ime worldcover_reprojected.tif. Kliknite Run.

../../_images/1310.png
  1. Zdaj bo na delovno površino naložen sloj worldcover_reprojected, odstranite sloj worldcover_clipped. Nastavimo sloj projekta na območje UTM. Kliknite na kateri koli sloj in izberite Layer CRS ‣ Set Project CRS from Layer.

../../_images/149.png
  1. Zdaj bo projektni CRS posodobljen. Nastavimo simboliko rastrskega sloja v skladu z imeni razredov in barvami podatkovnega niza ESA WorldCover. Z desno tipko miške kliknite na sloj worldcover_reprojected in kliknite Properties…

../../_images/159.png
  1. V pogovornem oknu Layer Properties izberite Symbology. Opazite lahko, da so barve sloja prikazane v belo-črnem tonu. Če želite to popraviti, kliknite na Style ‣ Load Style…. Poiščite in izberite datoteko ESAWorldCover_ColorLegend.qml.

../../_images/168.png
  1. Zdaj si lahko ogledate posodobljene barve simbolov in opise razredov. Kliknite OK.

../../_images/179.png
  1. Razširite sloj worldcover_reprojected na plošči Layers, da si ogledate legendo s pravilnimi opisi razredov.

../../_images/187.png
  1. Zdaj izračunajmo površino za vsak razred. V orodjarni za obdelavo poiščite orodje Raster layer unique values report. Dvakrat kliknite nanj, da ga odprete.

../../_images/196.png
  1. V pogovornem oknu Raster Layer Unique Values Report izberite Input layer kot worldcover_reprojected. Pod tabelo Unique values table kliknite na ... in izberite Save to File…. Vnesite ime class_areas.gpkg. Kliknite Run.

../../_images/206.png
  1. Zdaj bo sloj class_areas dodan na delovno površino Layers. Z desno tipko miške kliknite na sloj in kliknite Open Attribute Table. Stolpec m2 vsebuje površino za vsak razred v kvadratnih metrih.

../../_images/2111.png
  1. Pretvorimo površino v kvadratne kilometre. V Processing Toolbox poiščite in izberite Vector table ‣ Field Calculator.

../../_images/226.png
  1. V pogovornem oknu Kalkulator polj izberite sloj class_areas v polju Input Layer. Vnesite Field name kot area_sqkm. V polju Result field type izberite Float. V okno Expression vnesite spodnji izraz. Ta bo pretvoril m2 v km2 in zaokrožil rezultat na 2 decimalni mesti. Pod oknom Calculated kliknite na ... in izberite Save To File…. Vnesite ime class_area_sqkm.gpkg. Kliknite Run.

round("m2"/ 1e6, 2)
../../_images/235.png
  1. Zdaj bo plast class_area_sqkm naložena na delovno površino. Odprite atributno tabelo in preverite novo dodani stolpec area_sqkm. Opazili boste, da stolpec Value vsebuje številke za vsak razred. Za lažjo razlago rezultatov dodajmo tudi opis za vsako številko razreda. Opisi razredov so na voljo v ESA Product User Manual.

../../_images/246.png
  1. Odprite aplikacijo Field Calculator in izberite sloj class_areas_sqkm v polju Input Layer. Vnesite Field name kot landcover, v Result field type` izberite String. V okno Expression vnesite spodnji izraz. Ta izraz uporablja izjavo CASE za dodelitev vrednosti na podlagi več pogojev. Pod oknom Calculated kliknite na ... in izberite Save To File… . Vnesite ime class_area_with_landcover.gpkg. Kliknite Run.

CASE
WHEN "value" = 10 THEN 'Tree cover'
WHEN "value" = 20 THEN 'Shrubland'
WHEN "value" = 30 THEN 'Grassland'
WHEN "value" = 40 THEN 'Cropland'
WHEN "value" = 50 THEN 'Built-up'
WHEN "value" = 60 THEN 'Bare / sparse vegetation'
WHEN "value" = 70 THEN 'Snow and Ice'
WHEN "value" = 80 THEN 'Permanent water bodies'
WHEN "value" = 90 THEN 'Herbaceous wetland'
WHEN "value" = 95 THEN 'Moss and lichen'
WHEN "value" = 100 THEN 'Mangroves'
END
../../_images/256.png
  1. Zdaj bo sloj class_area_with_landcover naložen na delovno površino. Odprite atributno tabelo. Stolpec landcover bo vseboval ime pokrovnosti ob vsaki vrednosti.

../../_images/265.png
  1. Izvozimo ta rezultat kot datoteko Excel. Pred izvozom bomo tabelo tudi uredili in odstranili neželena polja. V orodjarni Processing Toolbox poiščite in izberite Vector table ‣ Refactor fields.

../../_images/276.png
  1. V pogovornem oknu Refactor Fields izberite sloj class_area_with_landcover v polju Input Layer. Izberite vse stolpce razen area_sqkm in landcover, nato kliknite Delete selected field.

../../_images/286.png
  1. Vrstni red polj v tabeli lahko spremenite tudi z gumbom Move Selected Fields. Ko končate z urejanjem, kliknite na gumb ... poleg Refactored in izberite Save To File…. Kot obliko izberite XLSX datoteke (*.xlsx). Vnesite ime datoteke kot park_area_by_landcover.xlsx in kliknite Save. V pogovornem oknu Refactor Fields kliknite Run, da uporabite svoje spremembe.

../../_images/295.png
  1. Rezultat bo preglednica s stolpcema landcover in area_sqkm.

../../_images/305.png

If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)