Prostorske analize¶
Opozorilo
Vadnica je zastarela. Nova in posodobljena verzija je na voljo v Izvajanje prostorskih poizvedb (QGIS3)
Prostorske poizvedbe so bistveni del GIS analiz. V QGIS-u jih najdemo v dodatku Spatial Query.
Pregled naloge¶
Delali bomo z dvema podatkovnima setoma - linijskim slojem rek in jezer ter točkovnim slojem mest. Naša naloga bo poiskati vsa mesta, ki ležijo bliže kot 10 km od rek.
Česa se bomo še naučili¶
Kako v QGIS-u opreti datoteke ZIP.
Izbrati pravo projekcijo in preporojicirati vektorske podatke.
Ustvarjati pasove (buffer).
Izbirati objekte z ukazi SQL.
Pretvoriti datoteke SHP v KML.
Prelgedati rezultate s programom Google Earth.
Pridobivanje podatkov¶
Uporabili bomo sloja ne_10m_rivers_lake_centerlines
in 10m_populated_places_simple
iz zbirke Natural Earth.
Poberite Rivers and Lake Centerlines
POberite Populated Places.
Vir podatkov: [NATURALEARTH]
Postopek¶
Ko boste pobrali podatke, odprite QGIS. Izberite meni
.
Kliknite Browse in se premaknite v mapo s pobranimi datotekami ZIP.
Držite tipko Shift in izberite datoteki ZIP. Kliknite Open.
Izbrati boste morali ustrezen sloj iz arhiva ZIP. Izberite
ne_10m_rivers_lake_centerlines.shp
in kliknite OK.
Ker ste izbrali več datotek, ponovite postopek z naslednjo datoteko. Izberite
10m_populated_places_simple.shp
in kliknite OK.
Oba sloja se bosta naložila v QGIS.
Okrog linij rek in točk mest bomo ustvarili pas (buffer). Orodje Buffer v QGIS-u za računanje razdalj uporablja enote sloja. Sloji, ki smo jih naložili uporabljajo koordinatni sistem Geographic Coordinate Reference System (CRS), v katerem so enote stopinje. To ni ustrezno, za analizo želimo uporabiti metre ali kilometre. Spremeniti moramo koordinatni sistem slojev. Desno kliknite sloj
10m_populated_places_simple
in izberite Save As.
V pogovornem oknu Save vector layer as… kliknite Browse poleg polja Save as in izberite mapo za shranjevanje. Ime izhodne datoteko naj bo
populated_places_reprojected.shp
. Poleg polja CRS kliknite gumb Browse.
Now we must choose an appropriate CRS for our purpose. For creating buffers, a Azimuthal Equidistant projection would be best suited as radial distances around the center of the projection are accurate. In our case, since the dataset is global, we will choose a World projection. In the Coordinate Reference System Selector dialog, start searching for world az.. and you will see the results show up. Select the World_Azimuthal_Equidistant and click OK.
Opomba
Projekcija World_Azimuthal_Equidistant se razširja 90 stopinj od izhodišča. Ker je izhodišče geografska dolžina 0 stopinj, se bodo preprojicirali samo podatki med geografsko dolžino +/- 90 stopinj.
Preverite, da je v oknu Save vector layer as … označeno polje pred Add saved file to map in kliknite OK.
Postopek ponovite za sloj
ne_10m_rivers_lake_centerlines
, ki ga shranite pod imenomrivers_lake_reprojected.shp
.
Na plošči Layers Panel boste zdaj imeli štiri sloje. Originalne sloje lahko skrijete tako, da jih v plošči odznačite. Preprojicirani sloji so zaradi nastavitev projekta še vedno prikazani v Geographic CRS. QGIS namreč projekcijo za projekt izbere takrat, ko naložimo prvi podatkovni sloj. Spremenimo nastavitve. Kliknite gumb Project Properties ali pa izberite .
Na kartici CRS okna Project Properties odznačite polje Enable on-the-fly CRS transformation. Kliknite OK.
Ko se vrnete v glavno okno QGIS-a, desno kliknite enega od preprojiciranih slojev in izberite Zoom to Layer Extent.
Sloj bo zdaj prikazan v lastnem koordinatnem sistemu. Za oba sloja bomo ustvarili pasove. Izberite meni
.
V orodju Buffer izberite
populated_places_reprojected
kot Input. Vpišite razdaljo 10000. Ker želimo določiti pas širine 10 km, moramo v enotah izbrane projekcije vpisati 10.000 m. Izhodno datoteko poimenujtepopulated_places_buffer.shp
in kliknite OK.
Ko se računanje pasov konča, kliknite Yes, da dodate nov sloj v TOC in ga prikažite v QGIS-u.
Ponovite enak postopek za sloj
rivers_lake_reprojected
in ustvarite izhodno datotekorivers_lake_buffer.shp
.
Sloj
rivers_lake_buffer
vsebuje objekte, ki so tako reke kot tudi jezera. Ker nas zanimajo samo reke, jih izluščimo iz sloja s poizvedbo. Desno kliknite slojrivers_lake_buffer
in izberite Open Attribute Table.
You will see that the featurecla attribute contains the information we can use to select the river features. Click on Select features using an expression button.
Vnesite izraz „featurecla“ = „River“ in kliknite Select ter nato Close, da se vrnete v glavno okno QGIS-a.
Zdaj lahko izvedemo prostorsko poizvedbo. Najprej je potrebno aktivirati oziroma namestiti, če še ni, vtičnik Spatial Query plugin. Kako to storiti, je opisano v Using Plugins. Ko je vtičnik aktiviran, izberite ukaz .
Izbrati želimo objekte, ki se dotikajo (imajo skupno presečišče, intersect) s pasom okrog linij rek. Preverite, da je označeno polje selected geometries. S tem zagotovimo, da bomo poizvedbo delali le na tistih elementih sloja rek, ki smo jih predhodno izbrali. Kliknite Apply.
Ko bo poizvedba izvršena, boste opazili nov izbor z imenom Selected features. Kliknite gumb Create layer with selected in med sloji se bo pojavil nov. Kliknite Close.
Približajte se in si oglejte rezultate. Opazili boste, da ustvarjeni sloj vsebuje le tiste objekte, ki se dotikajo pasu okrog rek.
Rezultate moramo vedno preveriti, saj gre pri analizah lahko marsikaj narobe. Eden od načinov za preverjanje je izvoz sloja v zapis KML in ogled s programom Google Earth. Tam si lahko na satelitskem posnetku ali karti ogledamo, ali so res izbrana samo mesta, ki so bliže kot 10 km od rek. Desno kliknite ustvarjeni končni sloj in izberite Save As….
V oknu Save vector layer as… kot format izberite KML in kot CRS WGS84, kar je pravi koordiantni sistem za zapis KML. Izhodno datoteko poimenujte
cities_near_river.kml
.
Poženite program Google Earth in preverite, da so mesta prikazana s pasovi in da so res blizu rek.
If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)