Konvertieren der Punktebene in ein Rasterraster, das die Häufigkeit der Punkte pro Zelle mithilfe von QGIS anzeigt

9

Ich habe eine Punktebene, die die Verteilung einer Art zeigt.

Ist es in QGIS möglich, diese Punktebene in ein Rasterraster zu konvertieren, in dem der Wert jeder Zelle der Anzahl der Punkte in dieser Zelle entspricht?

Bisher konnte ich nur Attributwerte an die Rasterzellen anhängen. Ich habe meiner Attributtabelle bereits eine Spalte hinzugefügt, die für jeden Punkt den Wert '1' hat, in der Hoffnung, dass es eine Möglichkeit gibt, eine Summe von Attributen für jede Gitterzelle zu verwenden.

Murphy
quelle
1
Nur eine kurze Anmerkung zu Ihrer Logik: Wenn Sie nur die Werte 1 für jede Gitterzelle summieren, überschätzen Sie höchstwahrscheinlich den Reichtum (wenn Sie dies berechnen möchten), da bei dieser Berechnung nicht überprüft wird, ob bereits eine Art hinzugefügt wurde zu einer Gitterzelle.
Brachvogel
Ich habe ein Artenverteilungsmuster, einen Punkt pro beobachtetem Individuum. Ich möchte die Aggregation überprüfen und die Verteilung der Arten mit dem zugrunde liegenden Lebensraum in GIS verknüpfen. Jetzt liegen viele Punkte übereinander und sehr nahe beieinander. Zur Visualisierung möchte ich dieses Muster "vereinfachen" und ein Raster verwenden, das die Anzahl der pro Zelle beobachteten Personen anzeigt. Ich hoffe das erklärt es etwas besser.
Murphy

Antworten:

10

Dies ist ein Kludge, aber es funktioniert - ich habe noch keinen Weg gefunden, direkt von Punkten zu Raster zu gelangen (aber ich hoffe, dass hier jemand eine Lösung gibt!).

Beginnend mit einem Punktraster (zufällige Punkte in der Serengeti aus dem Vector|Research tools|Random pointsWerkzeug):

Geben Sie hier die Bildbeschreibung ein

Erstellen Sie ein polygonales Raster mit der gleichen Ausdehnung und Zellengröße wie das Raster, das Sie haben möchten (dieses von Vector|Research tools|Vector grid):

Geben Sie hier die Bildbeschreibung ein

Verwenden Sie Vector|Analysis tools|Points in polygondas Polygonraster und die Punktebene:

Geben Sie hier die Bildbeschreibung ein

Dadurch erhalten Sie ein neues Raster (hier farbcodiert durch die Anzahl der Punkte in jeder Polygonzelle):

Geben Sie hier die Bildbeschreibung ein

Verwenden Sie Raster|Conversion|Rasterizediese Option, um dies in ein Raster zu konvertieren. Verwenden Sie dazu das PNTCNT-Attribut für die Rasterwerte und dieselbe Zellengröße wie für das Raster ausgewählt:

Geben Sie hier die Bildbeschreibung ein

... ein Raster mit Werten gemäß den Punkten in jeder Zelle geben:

Geben Sie hier die Bildbeschreibung ein

Simbamangu
quelle
2

Einfachster und unkompliziertester Weg:

  • Angenommen, Sie haben eine Spalte mit einer eindeutigen Punktkennung (dem Artennamen).
  • Teilen Sie Ihre Punktebene durch dieses Attribut (QGIS -> Datenverwaltung -> Teilen)
  • Rasterisieren Sie jede einzelne Punktebene beispielsweise mit dem GDAL-Raster-Werkzeug oder den in der Verarbeitungs-Toolbox verfügbaren SAGA- oder GRASS-Werkzeugen. Stellen Sie sicher, dass Sie dieselbe Zellengröße und dieselbe Ausdehnung verwenden.
  • Fassen Sie einfach alle generierten Rasterlayer zusammen. Zum Beispiel mit der SAGA-Funktion "Grids sum" oder innerhalb von GRASS "r.sum". Beide Funktionen sind auch in der Processing Toolbox verfügbar.

Um dies automatisch zu tun, würde ich vorschlagen, dass Sie sich selbst ein Skript, ein Verarbeitungsmodell schreiben oder x-mal auf die Stapelverarbeitung in der QGIS Processing Toolbox klicken. BEARBEITEN: Wenn Sie in der Lage sind, R zu verwenden, beginnen Sie direkt von hier aus und passen Sie den Code an Ihre Bedürfnisse an (Schleifen durch geteilte Punkte).
Oder Sie warten etwas länger. In meiner Freizeit schreibe ich gerade ein neues Plugin für QGIS (das sich mit makroökologischen Berechnungen befasst) und es hat möglicherweise eine ähnliche Funktion wie Sie.

Brachvogel
quelle
Ich denke, die Frage bezieht sich auf eine einzelne Artenschicht - die für eine Lösung nicht aufgeteilt werden kann (und sollte). OP benötigt eine "Summe von Punkten in Rasterzellen" -Lösung.
Simbamangu
Nun, Sie können es ohne Aufteilung tun, aber dies erfordert mit ziemlicher Sicherheit eine Schleife bzw. eine Skriptlösung. Für eine einzelne Art funktioniert Ihre Lösung natürlich, da sie einfach die aggregierte Auftrittsdichte anzeigt.
Brachvogel
-2

Ich fand diesen Mangel an Unterstützung in QGIS sehr ärgerlich, weil es ein wichtiger Geoverarbeitungsschritt ist, den ich immer brauche. Das Rastering über das Fischnetz ist, wie oben vorgeschlagen, sehr langsam, wenn Sie viele Datenpunkte haben (z. B. 100.000), da es eine vektorbasierte Operation ausführt, die Ihre CPU verbraucht. Darüber hinaus ist das Fischnetz im Vergleich zu einer glatten Rasterschicht massiv.

GDAL verfügt über Funktionen, um diesen Vorgang in einer minimalen Verarbeitungszeit auszuführen, ist jedoch (leider) nicht in QGIS implementiert. Aus Gründen der Umwelt und Ihrer Nerven können Sie die Funktion gdal jedoch in der Befehlszeile oder in anderen Softwareumgebungen verwenden. Ich bevorzuge die Verwendung von R mit mehreren GDAL-bezogenen Paketen. Sie können sehen , wie es in R zu tun , um bei Polygonen mit der Funktion „gdal_rasterize“ in R Rastern .

Joaoal
quelle