Heatmaps maken (QGIS3)

Heatmaps zijn een van de beste gereedschappen voor visualisatie van puntgegevens met een hoge dichtheid. Heatmap is een techniek van interpolatie die handig is bij het bepalen van de dichtheid van invoerobjecten. Heatmaps worden heel vaak gebruikt voor het visualiseren van gegevens over criminaliteit, verkeersongevallen, dichtheid van huizen etc. QGIS heeft een renderer voor heatmap die kan worden gebruikt voor het opmaken van een puntenlaag en een algoritme voor Processing Heatmap (Kernel Density Estimation) dat kan worden gebruikt om een raster uit een puntenlaag te maken.

Overzicht van de taak

We zullen werken met een gegevensset van misdaadlocaties in Surrey, UK en een heatmap maken voor het visualiseren van regio’s met een hoge dichtheid aan criminaliteit.

Andere vaardigheden die u zult leren

  • Virtuele velden en voorwaardelijke expressies gebruiken

De gegevens ophalen

data.police.uk verschaft gegevens over criminaliteit op straat, uitkomst, en gegevens over stoppen en doorzoeken in eenvoudige indeling CSV. Download de gegevens voor Surrey Police en pak het gedownloade archief uit om het CSV-bestand uit te nemen.

Voor het gemak kunt u direct een kopie van de gegevensset downloaden vanaf de link hieronder:

2019-02-surrey-street.csv

Gegevensbron [POLICEUK]

Procedure

  1. We will first load a basemap layer from OpenStreetMap and then import the CSV data. In the Browser tab, scroll down and locate the XYZ Tiles section.

../../_images/150.png
  1. Expand it to see the OpenStreetMap tile layer. Drag and drop it to the main canvas. Next we will load the CSV file. Click the Open Data Source Manager button.

../../_images/229.png
  1. Schakel naar de tab Tekengescheiden tekst. Hier zullen we de gegevens over de criminaliteit importeren die worden aangeboden als een tekstbestand in de indeling CSV. Klik op de knop naast Bestandsnaam en blader naar het gedownloade bestand 2019-02-surrey-street.csv. Het X-veld en Y-veld in het gedeelte Geometrie definitie zouden automatisch moeten worden gevuld met de kolommen Longitude en Latitude. Het Geometrie CRS zou moeten blijven staan op de standaard definitie EPSG:4326 - WGS 84. Zorg er voor dat de gegevens er goed uitzien in het paneel Voorbeeldgegevens er goed uitzien en klik op Toevoegen, gevolgd door Close.

../../_images/320.png
  1. U zult 2 lagen - OpenStreetMap en 2019-02-surrey-street - zien geladen in het paneel van QGIS Lagen. Klik met rechts op de laag 2019-02-surrey-street en selecteer Op kaartlaag inzoomen.

../../_images/49.png
  1. U zult de puntenlaag met criminaliteitsincidenten zien bovenop de basiskaart OpenStreetMap. Zoom en verschuif om de gegevens te verkennen. De gegevens zijn behoorlijk dicht en het is moeilijk om een idee te krijgen over waar een hoge concentratie criminaliteit is. Dit is waar visualisatie met een heatmap handig kan zijn. Selecteer de laag 2019-02-surrey-street en klik op de knop Paneel Laag opmaken openen.

../../_images/59.png
  1. Selecteer Heatmap als de renderer in het keuzemenu. Het paneel Laag opmaken is interactief en u kunt het effect van uw wijzigingen direct zien in het kaartvenster. De laag zal nu worden weergegeven in het standaard kleurverloop van grijswaarden.

../../_images/69.png
  1. Een heatmap is gewoonlijk een renderer met een kleurverloop van geel-naar-rood of wit-naar-rood waar een hogere concentratie van punten zal resulteren in meer heat. Klik op het keuzemenu van Kleurverloop en selecteer het kleurverloop Reds.

../../_images/79.png
  1. Vervolgens dient u een Straal te kiezen. Deze parameter bepaalt de cirkelvormige buurt rondom elk punt waar dat punt invloed heeft. Deze waarde zal grotendeels afhangen van het type invoergegevens dat u gebruikt. Laten we voor onze gegevens aannemen dat een criminaliteitsincident een invloed heeft tot maximaal 5 kilometers vanaf de locatie. Merk op dat het huidige project-CRS is ingesteld op EPSG: 3857 in de rechter benedenhoek. Dit CRS heeft de eenheid meter, dus zouden we 5000 meters als de straal moeten invullen. Een andere parameter die in dit menu is verborgen is de Kernel-vorm. Dit is een functie die bepaalt hoe de invloed van een punt zou moeten worden verspreid over de opgegeven straal. De renderer Heatmap gebruikt de functie Vierdegraads voor deze berekening. Er zijn andere types van kernels, zoals Triangular, Uniform, Triweight en Epanechnikov die kunnen worden gespecificeerd bij het gebruiken van een andere methode voor het maken van een heatmap zoals later beschreven in deze handleiding. Bekijk deze post voor een goede uitleg en richtlijnen voor het selecteren van de juiste straal en vorm voor de kernel.

../../_images/89.png
  1. De visualisatie met de heatmap is klaar. We kunnen de Doorzichtbaarheid van de heatmap aanpassen in het gedeelte Renderen van lagen aan de onderzijde. Stel de doorzichtbaarheid in op 60 % zodat u de basiskaart ziet samen met de heatmap.

../../_images/99.png
  1. Voor veel types analyses is het slechts overwegen van de dichtheid van punten goed genoeg. Maar soms zou u een verschillende belangrijkheid aan elk punt willen geven. Een meer gewelddadiger misdrijf zou meer invloed moeten hebben op de heatmap van de uitvoer dan een straatroof. Soortgelijk zou een punt soms meerdere waarnemingen op één enkele locatie weergeven waarmee in de analyse rekening moet worden gehouden. U kunt, om dat te doen, een optioneel numeriek veld weging opgeven dat een waarde specificeert voor elk punt. Laten we een veld voor weging toevoegen en dat gebruiken om de heatmap te verbeteren. Klik met rechts op de laag 2019-02-surrey-street en selecteer Attributentabel openen.

../../_images/1013.png
  1. U zult een tekstveld zien, genaamd Crime type, in de invoergegevens dat het type misdaad beschrijft. We kunnen dat gebruiken om de verschillende types misdrijven te categoriseren en een hoger gewicht toekennen aan meer gewelddadiger misdaden.

../../_images/1116.png
  1. Klik op de knop Open veldberekening.

../../_images/1214.png
  1. We zullen nu een formule invoeren die het veld Crime type gebruikt en de waarde voor de weging bepaalt. QGIS heeft een handige manier om dergelijke berekende velden toe te voegen met behulp van Virtuele velden. Het virtuele veld wordt opgeslagen in het project van QGIS en past de brongegevens niet aan. Het wordt ook dynamisch berekend en kan overal elders in QGIS worden gebruikt, net als elke andere waarde van een attribuut. Voer weging in als de Naam voor veld en stel het Type voor veld in op Geheel getal (integer). Voer de volgende expressie in in het veld Expressie. Hier gebruiken we het argument CASE om verschillende waarden toe te wijzen onder verschillende voorwaarden. Klik op OK.

CASE
WHEN "Crime type" LIKE 'Violence%' THEN 10
WHEN "Crime type" LIKE 'Criminal%' THEN 5
ELSE 1
END
../../_images/1312.png
  1. Een nieuw attribuut zal worden toegevoegd voor elk object met de van toepassing zijnde waarde voor de weging.

../../_images/1411.png
  1. Klik, terug in het paneel Laag opmaken, op het keuzemenu voor Punten wegen op en selecteer het nieuw toegevoegde veld Weging.

../../_images/1511.png
  1. U zult het renderen van de heatmap wijzigen om rekening te houden met de parameter voor de weging. Sluit het paneel Laag opmaken.

../../_images/1610.png
  1. Wanneer u de visualisatie met de heatmap dient op te slaan als een permanente rasterlaag of de heatmap wilt aanpassen met gevorderde opties zoals verschillende kernels of dynamische straal, kunt u de Heatmap (Kernel Density Estimation) uit de Processing Toolbox gebruiken. We zullen dit algoritme nu gaan gebruiken. Ga naar Processing ‣ Toolbox.

../../_images/1711.png
  1. Voor we de heatmap kunnen maken, dienen we de brongegevens opnieuw te projecteren naar een geprojecteerd CRS. Het is niet juist om een geografisch CRS te gebruiken, omdat afstand een belangrijke rol in het berekenen van de heatmap speelt. Zoek naar het algoritme Vector algemeen ‣ Laag opnieuw projecteren.

../../_images/189.png
  1. Klik, in het dialoogvenster Laag opnieuw projecteren, op de knop CRS selecteren voor Doel CRS. Zoek en selecteer het CRS EPSG:27700 OSGB 1936 / British National Grid. Dit geprojecteerde CRS is een goede keuze voor gegevens in het VK. Klik op Uitvoeren.

../../_images/198.png
  1. Een nieuwe laag, genaamd Opnieuw geprojecteerd zal worden toegevoegd aan het paneel Lagen. Deselecteer het vak naast de oude laag 2019-02-surrey-street om die te verbergen.

../../_images/208.png
  1. Zoek naar het algoritme Interpolatie ‣ Heatmap (Schatting dichtheid kernel KDE).

../../_images/2113.png
  1. In het dialoogvenster Heatmap (Kernel Density Estimation) zullen we dezelfde parameters als eerder gebruiken. Selecteer Straal als 5000 meters en Weight from field as Weging. Stel Grootte pixel X en Grootte pixel Y in op 50 meters. Laat de Kernel shape staan op de standaard waarde Vierdegraads. Klik op Uitvoeren.

../../_images/2210.png

Notitie

De parameter Radius uit veld stelt u in staat een dynamische zoekradius te specificeren voor elk punt. Dit kan naast Weight from field worden gebruikt om een fijnmaziger beheer te krijgen over hoe de invloed van elk punt is verspreid.

  1. Als de verwerking is voltooid zal een nieuwe rasterlaag, genaamd HEATMAP worden geladen. De standaard visualisatie is uitermate lelijk omdat het de renderer Enkelbands grijs gebruikt. Klik op de knop Paneel Laag opmaken openen.

../../_images/237.png
  1. Wijzig de renderer naar Enkelbands pseudokleur en selecteer het kleurverloop Reds. De laag ziet er nu uit zoals de visualisatie met de heatmap die we eerder hebben gemaakt.

../../_images/248.png

Notitie

Merk op dat de laag HEATMAP in het paneel Lagen een legenda heeft, maar de laag 2019-02-surrey-street niet. Een veel voorkomend probleem met het gebruiken van een laag met een heatmap die is gemaakt met de renderer Heatmap is het ontbreken van een legenda. Stel dat u de heatmap wilt gebruiken in de Afdruklay-out en er een legenda aan wilt toevoegen. Een raster heatmap, gemaakt met het algoritme Heatmap voor Processing maakt dit mogelijk.


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