Nach welchen Regeln folgt die Gdal-Rasterfunktion, um einer Zelle einen Wert zuzuweisen?


8

Wie entscheidet das Rasterwerkzeug, welcher Wert dargestellt werden soll, wenn eine Zelle einen Bereich abdeckt, der unterschiedliche Werte enthält? Ich brauche es in diesem Fall für Polygone, möchte es aber auch für Linien und Punkte wissen. Was sind die Regeln, denen es folgt.

Antworten:


7

Wenn man sich die Quelle hier und hier ansieht, scheint GDAL nur am Anfang der Liste zu stehen und sich nach unten zu arbeiten. Es wird also in der Reihenfolge sein, in der die Formen gespeichert sind, und alle Daten überschrieben, die in einem bestimmten Pixel gespeichert wurden. Ich bin mir nicht mal sicher, ob es irgendetwas mit Attributindizes macht.

Nachtrag

Der Rasterizer verwendet standardmäßig nur die Mitte des Pixels für Polygone oder den Bresenham-Algorithmus für Linien (vermutlich sind Punkte nur der nächste Nachbar). Es scheint eine Option zu geben, um jedes berührte Pixel zu füllen, das meiner Meinung nach über die Befehlszeile bereitgestellt werden kann. Der Code enthält einen entsprechenden Kommentar :

462  * <dt>"ALL_TOUCHED":</dt> <dd>May be set to TRUE to set all pixels touched
463  * by the line or polygons, not just those whose center is within the polygon
464  * or that are selected by brezenhams line algorithm.  Defaults to FALSE.</dd>

Es gibt also überhaupt keine Mischung und es wird nicht versucht, etwas Kluges zu tun.


Danke für die Antwort. Sollte sich später als nützlich erweisen. Ich möchte wissen, wie die Rasterfunktion den repräsentativen Wert aus der Form auswählt. Verwendet es den Mittelpunktwert oder die höchste prozentuale Abdeckung und wie geht es mit einer 50/50-Situation usw. um? Die Quelle ist immer noch etwas schwierig für mich, Entschuldigung zu verstehen.
Andre Wise
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.