Analyse Nearest Neighbor (QGIS3)

GIS is bijzonder nuttig in het analyseren van ruimtelijke relaties tussen objecten. Eén van zo’n analyse is het uitzoeken welke objecten het dichtst bij een opgegeven object liggen. Er zijn meerdere manieren om deze analyse in QGIS uit te voeren. We zullen de gereedschappen Afstand tot dichtstbijzijnde naaf en Afstandsmatrix verkennen om de analyse Dichtstbijzijnde buur uit te voeren.

Overzicht van de taak

Gegeven de locaties van alle bekende significante aardbevingen, zoek de dichtstbij gelegen bevolkte plaats voor elke locatie waar de aardbeving plaatsvond.

Andere vaardigheden die u zult leren

  • De renderer Geometrie-generator gebruiken om dynamisch lijnen uit een multipunt laag te maken

De gegevens ophalen

We zullen NOAA’s National Geophysical Data Center’s Significant Earthquake Database gebruiken omdat onze laag alle belangrijke aardbevingen weergeeft. Download de tab-delimited earthquake data.

Natural Earth heeft een mooie gegevensset Populated Places . Download de simple (less columns) dataset

Voor het gemak kunt u direct een kopie van beide gegevenssets downloaden vanaf de links hieronder:

signif.txt

ne_10m_populated_places_simple.zip

Gegevensbronnen: [NGDC] [NATURALEARTH]

Procedure

  1. Zoek in de QGIS Browser naar het bestand ne_10m_populated_places_simple.zip en vergroot het. Sleep het bestand ne_10m_populated_places_simple.shp naar het kaartvenster.

../../_images/160.png
  1. U zult een nieuwe laag ne_10m_populated_places_simple zien geladen in het paneel Lagen. Deze laag bevat de punten die bevolkte plaatsen weergeven. Nu zullen we de laag met aardbevingen laden. Deze laag wordt aangeboden als een tekstbestand Tab Seperated Values (TSV). Klik, om dit bestand te laden, op de knop Databronnen beheren openen op de werkbalk Databronnen. U kunt ook de sneltoets Ctrl + L gebruiken.

../../_images/236.png
  1. Klik op de knop naast Bestandsnaam en specificeer het pad naar het gedownloade tekstbestand signif.txt. Eenmaal geladen zouden de velden van Bestandsindeling en Geometrie definitie automatisch moeten zijn geladen met de correcte waarden. Klik op Toevoegen gevolgd door Close.

../../_images/327.png
  1. Zoom eens rond en verken beide gegevenssets. Elke gele punt vertegenwoordigt de locatie van een significante aardbeving en elke rode punt vertegenwoordigt de locatie van een bevolkte plaats. Ons doel is een manier te vinden om uit te zoeken waar elk dichtstbijzijnde punt uit de laag met bevolkte plaatsen ligt voor elk van de punten in de laag met aardbevingen.

../../_images/413.png
  1. Voor we de analyse uitvoeren moeten we onze invoer opschonen. De laag signif bevat veel records zonder ene geldige geometrie. Deze records werden geïmporteerd met een geometrie NULL. Laten we dus eerst deze records verwijderen. Ga naar Processing ‣ Toolbox.

../../_images/513.png
  1. Zoek en lokaliseer het algoritme Vector geometrie ‣ Geometrieën null verwijderen. Dubbelklik erop om het te openen.

../../_images/613.png
  1. Selecteer signif als de Invoerlaag en klik op Uitvoeren. Klik, als de verwerking is voltooid, op Close.

../../_images/712.png
  1. U zult een nieuwe laag, genaamd Geen geometrieën null zien geladen in het paneel Lagen. We zullen deze laag gebruiken in onze verdere analyse in plaats van de originele laag signif. Deselecteer de laag signif in het paneel Lagen om die te verbergen. Nu is het tijd om de analyse Dichtstbijzijnde buur uit te voeren. Zoek en lokaliseer het gereedschap Vectoranalyse ‣ Afstand tot dichtstbijzijnde naaf (lijn naar naaf). Dubbelklik erop om het te starten.

../../_images/812.png

Notitie

Als u een puntenlaag als uitvoer nodig hebt, gebruik dan het gereedschap Afstand tot dichtstbijzijnde naaf (punten).

  1. Selecteer, in het dialoogvenster Afstand tot dichtstbijzijnde naaf (lijn naar naaf), Geen geometrieën null als de Bron puntenlaag. Selecteer ne_10m_populated_places_simple als de Doel navenlaag. Selecteer name als het Naaflaag naam attribuut. Het gereedschap zal ook afstanden in ene recht lijn berekenen tussen de bevolkte plaats en de dichtstbijzijnde aardbeving. Stel Kilometers in als de Maateenheid. Klik op Uitvoeren. Klik op Close als de verwerking is voltooid.

../../_images/912.png
  1. Terug in het hoofdvenster van QGIS zult u een nieuwe laag zien, genaamd Afstand tot hub, geladen in het paneel Lagen. Deze laag heeft objecten lijn die elke punt van een aardbeving verbinden met de dichtst bij gelegen bevolkte plaats. Klik met rechts op de laag Afstand tot hub en selecteer Attributentabel openen.

../../_images/1012.png
  1. Scroll naar rechts naar de laatste kolommen en u zult 2 nieuwe attributen, genaamd HubName en HubDist, zien toegevoegd aan de originele objecten van de aardbevingen. Dit zijn de naam en de afstand tot de dichtstbijzijnde buur van de laag met bevolkte plaatsen.

../../_images/1116.png
  1. Onze analyse is voltooid. We kunnen nu een ander gereedschap gaan verkennen dat een soortgelijke analyse kan uitvoeren. Afstandsmatrix is een krachtig gereedschap dat u in staat stelt niet alleen afstanden tot het dichtstbijzijnde punt te berekenen, maar naar alle punten van een andere laag. We kunnen deze methode gebruiken als een alternatief voor het gereedschap Afstand tot dichtstbijzijnde naaf. Deselecteer de laag Afstand tot hub m die te verbergen. Zoek en lokaliseer het gereedschap Vectoranalyse ‣ Afstandsmatrix.

../../_images/1213.png
  1. Stel, in het dialoogvenster Afstandsmatrix, Geen geometrieën null in als de Invoer puntenlaag en I_D als het Invoer unieke ID-veld. Stel ne_10m_populated_places_simple in als de Doel-puntenlaag en name als het Doel unieke ID-veld. Selecteer Lineaire (N*k x 3) dafstandsmatrix als het Uitvoer matrixtype. De sleutel hier is om de parameter Alleen dichtstbijzijnde (k) doelpunten gebruiken in te stellen op 1 - wat u alleen de dichtstbijzijnde buur in de uitvoer zal geven. Klik op Uitvoeren om het berekenen van de matrix te starten. Klik op Close als de verwerking is voltooid.

../../_images/1313.png
  1. Als de verwerking is voltooid zal een nieuwe laag, genaamd Afstandsmatrix zijn geladen. Onthoud dat de uitvoer van dit gereedschap een laag is die geometrieën MultiPunt bevat. Elk object bevat 2 punten - bron en doel. Open de Attributentabel voor de laag. U zult zien dat elk object attributen heeft die de aardbeving koppelen aan de dichtstbijzijnde bevolkte plaats. Merk op dat de afstand hier is in de CRS-eenheden van de laag (graden).

../../_images/1411.png
  1. Op dit punt kunt u uw resultaten opslaan in de indeling die u wilt door met rechts te klikken en Exporteren ‣ Objecten opslaan als te selecteren. Als u de resultaten beter wilt visualiseren, kunnen we eenvoudig een rendering naaf-spaak maken uit de geometrie van de objecten. Klik met rechts op de laag Afstandsmatrix en selecteer Eigenschappen.

../../_images/1511.png
  1. Schakel naar de tab Symbologie in het dialoogvenster Eigenschappen. Klik op de sub-renderer Standaard vulling en selecteer Geometrie-generator als het Symboollaagtype. Stel Lijn / MultiLijn in als het Type geometrie. Klik op de knop Expressie.

../../_images/169.png
  1. Hier kunnen we een expressie invoeren om een geometrie lijn te maken uit de 2 punten binnen elke brongeometrie multipunt. Voer de volgende expressie in.

make_line(point_n( $geometry, 1), point_n( $geometry, 2))
../../_images/1710.png
  1. Stel, terug op de tab Symbologie, de stijl van de lijn in zoals u dat wilt en klik op OK.

../../_images/189.png
  1. U zult de laag Afstandsmatrix nu zien gerenderd met lijnen in plaats van punten. Onthoud dat we geen nieuwe laag hoefden te maken voor deze visualisatie. De laag bevat nog steeds geometrieën MultiPunt, maar die zijn dynamisch gerenderd als lijnen, gebaseerd op de expressie.

../../_images/198.png
comments powered by Disqus

This work is licensed under a Creative Commons Attribution 4.0 International License