7.2. Lesson: Vectoranalyse

Vectorgegevens kunnen ook worden geanalyseerd om te onthullen hoe verschillende objecten met elkaar omgaan in de ruimte. Er zijn vele aan analyse gerelateerde functies in GIS, dus zullen we ze niet allemaal behandelen. In plaats daarvan zullen we een vraag stellen en die proberen op te lossen met behulp van de gereedschappen die QGIS verschaft.

Het doel voor deze les. Een vraag stellen en die beantwoorden met behulp van gereedschappen voor analyse.

7.2.1. basic Het proces GIS

Vóór we beginnen zou het handig zijn om een kort overzicht te geven van een proces dat gebruikt kan worden om elk probleem in GIS op te lossen. De manier om dat te doen is:

  1. Benoem het probleem

  2. Haal de gegevens op

  3. Analyseer het probleem

  4. Geef de resultaten weer

7.2.2. basic Het probleem

Laten we het proces beginnen door een probleem te benoemen om op te lossen. U bent bijvoorbeeld een makelaar en u zoekt naar een woning in Swellendam voor cliënten die de volgende criteria hebben:

  1. Het moet liggen in Swellendam.

  2. Het moet binnen een redelijke rij-afstand van een school liggen (zeg maar 1 km).

  3. Het moet groter zijn dan 100 m2.

  4. Minder dan 50 m vanaf een hoofdweg.

  5. Minder dan 500 m vanaf een restaurant.

7.2.3. basic De gegevens

We hebben de volgende gegevens nodig om deze vragen te kunnen beantwoorden:

  1. De woningen (gebouwen) in het area.

  2. De wegen in en rondom de stad.

  3. De locaties van scholen en restaurants.

  4. De grootte van gebouwen.

Al deze gegevens zijn beschikbaar via OSM en u zou kunnen besluiten dat ook de gegevensset die u voor deze handleiding heeft gebruikt ook voor deze les kan worden gebruikt. Echter, om er voor te zorgen dat we de volledige gegevens hebben, zullen we de gegevens opnieuw downloaden vanaf OSM met behulp van het in QGIS ingebouwde gereedschappen voor het downloaden van gegevens van OSM.

Notitie

Hoewel downloads van OSM consistente velden voor de gegevens hebben, kunnen de bedekking en de details variëren. Als u ziet dat de door u gekozen regio, bijvoorbeeld, geen informatie bevat over restaurants, zou u misschien een andere regio moeten kiezen.

7.2.4. basic Follow Along: Een project beginnen

  • Begin een nieuw project binnen QGIS.

  • Gebruik het gereedschap om gegevens van OpenStreetMap te downloaden , te vinden in het menu Vector -> OpenStreetMap om de gegevens voor de door u gekozen regio te downloaden.

  • Sla de gegevens op als osm_data.osm in uw map exercise_data.

  • Onthoud dat de indeling osm een type vectorgegevens is. Voeg deze gegevens op de nnormale manier toe als een vectorlaag Laag -> Vectorlaag toevoegen..., blader naar het nieuwe bestand osm_data.osm dat u zojuist hebt gedownload. U moet misschien

  • Selecteer osm_data.osm en klik op Open

  • Selecteer, in het dialoogvenster dat opent, alle lagen, behalve de lagen other_relations en multilinestrings:

../../../_images/select_osm_layers.png

Dit zal de gegevens van OSM als afzonderlijke lagen in uw kaart importeren.

De gegevens die u zojuist hebt gedownload vanaf OSM staat in een geografisch coördinatensysteem, WGS84, wat coördinaten met breedtegraad en lengtegraad gebruikt, zoals u weet uit de vorige les. U heeft ook geleerd dat, om afstanden in meters te kunnen berekenen, we moeten werken met een geprojecteerd coördinatensysteem. Begin met het instellen van het coördinatensysteem van uw project op een geschikt CRS voor uw gegevens, in het geval van Swellendam, WGS 84 / UTM zone 34S:

  • Open het dialoogvenster Projectinstellingen, selecteer CRS en filter de lijst om naar WGS 84 / UTM zone 34S te zoeken.

  • Klik op OK.

We moeten nu de informatie uitnemen die we nodig hebben vanuit de gegevensset van OSM. We moeten eindigen met lagen die alle huizen, scholen, restaurants en wegen in de regio weergeven. Die informatie staat in de laag multipolygons en kan worden uitgenomen met behulp van de informatie die aanwezig is in de Attributentabel. We zullen beginnen met de laag scholen:

  • Klik met rechts op de laag multipolygons in de Lagenlijst en open de Laag-eigenschappen.

  • Ga naar het menu Algemeen.

  • Onder Subset objecten klik op de knop [Query bouwer] om het dialoogvenster Query bouwer te openen.

  • Ga door de lijst Velden, links in dat dialoogvenster, totdat u het veld amenity ziet.

  • Klik er eenmaal op.

  • Klik op de knop Alles onder de lijst Waarden:

Nu moeten we QGIS vertellen om ons alleen de polygonen te laten zien waar de waarde van amenity gelijk is aan school.

  • Dubbelklik op het woord amenity in de lijst Velden.

  • Bekijk wat er onder gebeurt in het veld Provider-specifieke filter-expressie

../../../_images/schools_query.png

Het woord "amenity" is verschenen. De rest van de query opbouwen:

  • Klik op de knop = (onder Operatoren).

  • Dubbelklik op de waarde school in de lijst Waarden.

  • Klik tweemaal op OK.

Dit zal de laag multipolygons van OSM filteren om alleen de scholen in uw regio te laten zien. U kunt nu ofwel:

  • De gefilterde OSM-laag hernoemen naar schools en de laag multipolygons opnieuw importeren vanuit osm_data.osm, OF

  • De gefilterde laag dupliceren, de kopie hernoemen, de Query bouwer leeg maken en uw nieuwe query maken in de Query bouwer.

7.2.5. moderate Try Yourself Vereiste lagen uit OSM uitnemen

Gebruik, met behulp van de hierboven vermelde techniek, het gereedschap Query bouwer om de resterende gegevens uit OSM te halen om de volgende lagen te maken:

  • roads (uit de laag lines van OSM)

  • restaurants (uit de laag multipolygons van OSM)

  • houses (uit de laag multipolygons van OSM)

U wilt misschien de laag roads.shp opnieuw gebruiken die in eerdere lessen maakte.

Controleer uw resultaten

  • Sla uw kaart op onder exercise_data, als analysis.qgs.

  • Maak, in de bestandsbeheerder van uw besturingssysteem, een nieuwe map onder exercise_data en noem die residential_development. Dit zal de plaats zijn waar u de gegevenssets zal opslaan die de resultaten van de analyse-functies zijn.

7.2.6. basic Try Yourself Belangrijke wegen zoeken

Enkele van de wegen in de gegevensset van OSM zijn vermeld als unclassified, tracks, path en footway. We willen die uit onze gegevensset van wegen weglaten.

  • Open de Query bouwer voor de laag roads, klik op Leeg maken en bouw de volgende query:

    "highway"  != 'NULL' AND "highway" != 'unclassified' AND "highway" != 'track' AND "highway" != 'path' AND "highway" != 'footway'

U kunt ofwel de bovenstaande benadering gebruiken, waar u dubbel klikte op waarden en op knoppen drukte, of u kunt de opdracht hierboven kopiëren en plakken.

Dit zou het aantal wegen op uw kaart onmiddellijk moeten reduceren:

../../../_images/correct_roads_filter.png

7.2.7. basic Try Yourself CRS van een laag converteren

Omdat we binnen onze lagen afstanden gaan meten, moeten we het CRS van de lagen wijzigen. We moeten, om dit te doen, elke laag op zijn beurt selecteren, de laag opslaan naar een nieuw shapefile met onze nieuwe projectie, en dan die nieuwe laag in onze kaart importeren.

Notitie

In dit voorbeeld gebruiken we het CRS WGS 84 / UTM zone 34S, maar u kunt een UTM CRS gebruiken dat meer toepasselijk is voor uw regio.

  • Klik met rechts op de laag roads in het paneel Lagen.

  • Klik op Opslaan als...

  • Kies, in het dialoogvenster Vectorlaag opslaan als, de volgende instellingen en klik op OK (zorg er voor dat u Voeg opgeslagen bestand toe aan kaart hebt geselecteerd):

../../../_images/save_roads_34S.png

Het nieuwe shapefile zal worden gemaakt en de resulterende laag wordt toegevoegd aan uw kaart.

Notitie

Als u de instellingen Gelijktijdige CRS-transformatie inschakelen of Automatisch ‘on the fly’-herprojectie inschakelen indien lagen verschillen van CRS niet heeft geactiveerd (zie de vorige les), zou u misschien niet in staat zijn om de nieuwe lagen te zien die u zojuist heeft toegevoegd aan uw kaart. In dit geval kunt u de kaart focussen op een willekeurige laag door met rechts te klikken op een laag en te klikken op Zoom naar laag, of schakel een van de genoemde opties voor ‘direct’ in.

  • Verwijder de oude laag roads.

Herhaal dit proces voor elke laag door een nieuwe shapefile en laag te maken met “_34S” toegevoegd aan de originele naam en elk van de oude lagen te verwijderen.

Als u eenmaal het proces voor elke laag heeft voltooid, klik dan met rechts op een laag en klik op Zoom naar laag om de kaart te focussen op het gebied waarin we geïnteresseerd zijn.

Nu we de gegevens van OSM hebben geconverteerd naar een UTM-projectie, kunnen we onze berekeningen beginnen.

7.2.8. basic Follow Along: Analyseren van het probleem: Afstanden van scholen en wegen

QGIS stelt u in staat afstanden te berekenen vanaf elk vectorobject.

  • Zorg er voor dat alleen de lagen roads_34S en houses_34S zichtbaar zijn, om de kaart te vereenvoudigen terwijl u werkt.

  • Klik op het gereedschap Vector ‣ Geoprocessing-gereedschappen ‣ Buffer(s):

Dit geeft u een nieuw dialoogvenster.

  • Stel dat als volgt in:

../../../_images/vector_buffer_setup.png

De Bufferafstand is in meters omdat onze gegevensset voor invoer in een geProjecteerd Coördinaten Systeem dat meter gebruikt als zijn basis maateenheid. Dat is waarom we geprojecteerde gegevens moesten gebruiken.

  • Sla de resulterende laag op onder exercise_data/residential_development/ als roads_buffer_50m.shp.

  • Klik op OK en het zal de buffer maken.

  • Wanneer er naar gevraagd wordt zou u “Resultaat aan kaartvenster toevoegen” moeten selecteren, klik op Ja. (“TOC” betekent “Inhoudsopgave”, waarmee het de Lagenlijst bedoelt).

  • Sluit het dialoogvenster Buffer(s).

Nu zal uw kaart er ongeveer zo uitzien:

../../../_images/roads_buffer_result.png

Als uw nieuwe laag boven in de lijst Lagen staat, zal het waarschijnlijk veel van uw kaart verbergen, maar dit geeft ons alle gebieden in uw regio die binnen 50 m van een weg liggen.

Echter, het zal u opvallen dat er binnen onze buffer bepaalde gebieden zijn, die overeenkomen met alle individuele wegen. Verwijder de laag en maak de buffer opnieuw met behulp van de hier weergegeven instellingen om dit probleem op te lossen,

../../../_images/dissolve_buffer_setup.png
  • Merk op dat we nu het vak Dissolve buffer resultaten selecteren.

  • Sla de uitvoer op onder dezelfde naam als eerder (klik Yes wanneer het uw toestemming vraagt om de oude te overschrijven).

  • Klik op OK en sluit opnieuw het dialoogvenster Buffer(s).

Als u eenmaal de laag aan de Lagenlijst heeft toegevoegd, zal het er zo uitzien:

../../../_images/dissolve_buffer_results.png

Nu zijn er geen onnodige onderverdelingen meer.

7.2.9. basic Try Yourself Afstand van scholen

  • Gebruik dezelfde benadering als hierboven en maak een buffer voor uw scholen.

Die moet in een straal van 1 km zijn, en worden opgeslagen in de gebruikelijke map als schools_buffer_1km.shp.

Controleer uw resultaten

7.2.10. basic Follow Along: Overlappende gebieden

Nu hebben we gebieden waar de weg 50 m verwijderd is en waar een school binnen 1 km ligt (directe lijn, niet via de weg). Maar natuurlijk willen we alleen de gebieden waar aan beide criteria wordt voldaan. We zullen het gereedschap Intersect moeten gebruiken om dat te kunnen doen. U vindt het onder Vector ‣ Geoprocessing-gereedschappen ‣ Intersect. Stel het als volgt in:

../../../_images/school_roads_intersect.png

De twee invoerlagen zijn de twee buffers; de locatie om op te slaan is de gewoonlijke; en de bestandsnaam is school_roads_intersect.shp. Als het eenmaal is ingesteld zoals hier, klik op OK en voeg de laag toe aan de Lagenlijst als daar naar gevraagd wordt.

In de afbeelding hieronder geven de blauwe gebieden aan waar in één keer aan beide criteria voor de afstand wordt voldaan!

../../../_images/intersect_result.png

U kunt de twee bufferlagen verwijderen en alleen die ene behouden waar zij overlappen, omdat dat is wat we in eerste instantie echt wilden weten:

../../../_images/final_intersect_result.png

7.2.11. basic Follow Along: Selecteren van de gebouwen

Nu heeft u het gebied dat de gebouwen moet overlappen. Vervolgens wilt u de gebouwen in dat gebied selecteren.

  • Klik op het menu-item Vector ‣ Onderzoeks-gereedschap ‣ Selecteren op plaats. Een dialoogvenster zal verschijnen.

  • Stel dat als volgt in:

../../../_images/location_select_dialog.png
  • Klik op OK, en Close.

  • U zult waarschijnlijk vinden dat er niet veel lijkt te zijn veranderd. Als dat zo is, verplaats dan de laag school_roads_intersect tot onderin de lagenlijst en zoom dan in:

../../../_images/select_zoom_result.png

De gebouwen die geel zijn geaccentueerd zijn die welke voldoen aan onze criteria en zijn geselecteerd, terwijl de groene gebouwen er niet aan voldoen. We kunnen nu de geselecteerde gebouwen opslaan als een nieuwe laag.

  • Klik met rechts op de laag houses_34S in de Lagenlijst.

  • Selecteer Selectie opslaan als....

  • Stel het dialoogvenster als volgt in:

../../../_images/save_selection_as.png
  • De bestandsnaam is well_located_houses.shp.

  • Klik op OK.

Nu heeft u de selectie als een afzonderlijke laag en kunt u de laag houses_34S verwijderen.

7.2.12. moderate Try Yourself Onze gebouwen verder filteren

We hebben nu een laag die ons alle gebouwen binnen 1 km van een school en binnen 50 m vanaf een weg toont. We moeten nu die selectie verkleinen om ons alleen gebouwen te tonen die binnen 500 m vanaf een restaurant liggen.

Maak, met behulp van de hierboven beschreven processen, een nieuwe laag, genaamd houses_restaurants_500m die uw laag well_located_houses verder filtert om alleen die gebouwen te laten zien die binnen 500 m van een restaurant liggen.

Controleer uw resultaten

7.2.13. basic Follow Along: Selecteren van gebouwen met de juiste grootte

Bereken eerst de oppervlakten om te zien welke gebouwen groter zijn dan 100 vierkante meter.

  • Open de attributentabel voor de laag houses_restaurants_500m.

  • Ga naar modus Bewerken en open de veldberekening.

  • Stel dat als volgt in:

../../../_images/buildings_area_calculator.png
  • Als u AREA niet in de lijst vindt, probeer dan een nieuw veld te maken zoals u in een eerdere les in deze module deed.

  • Klik op OK.

  • Scroll naar de rechterzijde van de attributentabel; uw veld AREA heeft nu gebieden in meters voor alle gebouwen in uw laag houses_restaurants_500m.

  • Klik opnieuw op de knop voor de modus Bewerken om het bewerken te voltooien en sla uw gegevens op als daarnaar gevraagd wordt.

  • Bouw, zoals eerder in deze les, een query:

../../../_images/buildings_area_query.png
  • Klik op OK. Uw kaart zou nu alleen die gebouwen moeten laten zien die overeenkomen met uw begincriteria en die groter zijn dan 100 m2.

7.2.14. basic Try Yourself

  • Sla uw oplossing op als een nieuwe laag, met behulp van de benadering die u hierboven hebt geleerd om dat te doen. Het bestand zou moeten worden opgeslagen in de gebruikelijke map, met de naam solution.shp.

7.2.15. In Conclusion

Met behulp van de benadering van probleemoplossing voor GIS, tezamen met de gereedschappen voor vectoranalyse van QGIS, was u in staat een probleem met meerdere criteria snel een gemakkelijk op te lossen.

7.2.16. What’s Next?

In de volgende les, zullen we kijken naar de berekening van de kortste afstand over de weg van het ene punt naar een ander.