Funktionsweise des ArcGIS-Geoverarbeitungswerkzeugs Benachbarte Polygone beim Suchen von Nachbarn und Füllen der Ausgabe-Tabelle
Details zur Suche von Nachbarbeziehungen und zur Berechnung der Statistik
Nachbarbeziehungen werden wie folgt definiert:
- Überlappende Nachbarn – Polygone mit vollständig oder teilweise überlappenden Flächen
- Kantennachbarn – Polygone mit gemeinsamen oder sich berührenden Grenzen
- Knotennachbarn – Polygone mit einem Berührungspunkt (überkreuzende oder sich berührende Grenzen)
Benachbarte Polygone werden nach den gleichen Regeln für Polygone gesucht wie beim WerkzeugVerschneiden (Intersect).
Beim Werkzeug Benachbarte Polygone wird ein hierarchischer Pfad herangezogen, um den Nachbartyp und die in der Ausgabe-Tabelle aufzuzeichnende Statistik zu bestimmen. Die Nachbarbeziehungen in hierarchischer Reihenfolge (absteigend) sind überlappende Nachbarn, lagegleiche Kanten und Kantennachbarn. Wenn ein übergeordneter Nachbar gefunden wurde, werden mit dem Werkzeug die Beziehungsinformationen berechnet und gespeichert. Die Analyse der untergeordneten Beziehungen wird übersprungen. Der detaillierte Workflow ist wie folgt:
- Wählen Sie Polygon aus, das als Quell-Feature verwendet werden soll.
- Sucht die Polygone, die das Quell-Polygon verschneiden (Nachbarn suchen).
- Wenn der erste Nachbar gefunden wurde, werden die folgenden Punkte für das Quell-Polygon analysiert:
- Wenn das benachbarte Polygon ein überlappender Nachbar ist und das Kontrollkästchen Bereichsüberlappungen einbeziehen aktiviert ist:
- Fügt das AREA-Feld der Ausgabe-Tabelle hinzu.
- Berechnet die Fläche der Überlappung.
- Zeichnet die berechnete zu verwendende Fläche im AREA-Feld der Ausgabe-Tabelle auf.
- Zeichnet im LENGTH-Feld der Ausgabe-Tabelle 0 auf.
- Zeichnet im NODE_COUNT-Feld der Ausgabe-Tabelle 0 auf.
- Die Analyse des überlappenden Nachbarn ist abgeschlossen. Das nächste benachbarte Polygon wird analysiert.
- Wenn das benachbarte Polygon ein Kantennachbar ist:
- Berechnet die Länge der lagegleichen Grenze.
- Zeichnet die berechnete zu verwendende Länge im LENGTH-Feld auf.
- Zeichnet im NODE_COUNT-Feld 0 auf.
- Die Analyse des Kantennachbarn ist abgeschlossen. Das nächste benachbarte Polygon wird analysiert.
- Wenn das benachbarte Polygon ein Knotennachbar ist:
- Ermittelt, wie oft das benachbarte Polygon das Quell-Polygon in einem Punkt kreuzt und berührt.
- Zeichnet diesen zu verwendenden Zahlenwert im NODE_COUNT-Feld auf.
- Zeichnet im LENGTH-Feld 0 auf.
- Die Analyse des Knotennachbarn ist abgeschlossen. Das nächste benachbarte Polygon wird analysiert.
- Wenn das benachbarte Polygon ein überlappender Nachbar ist und das Kontrollkästchen Bereichsüberlappungen einbeziehen aktiviert ist:
Nachstehend finden Sie Beispiele zu dem beschriebenen Prozess.
Nachdem die Nachbarbeziehungen, wie oben beschrieben, gefunden wurden, wird von diesem Werkzeug der Parameter Nach Feld(ern) erfassen verwendet, um festzulegen, wie die Nachbarbeziehungen und die Statistik in der Ausgabe-Tabelle aufgezeichnet werden sollen. Der Parameter Nach Feld(ern) erfassen dient zum Identifizieren eindeutiger Polygone oder Polygongruppen und zum Erfassen der Informationen zu den Nachbarn nach den eindeutigen Polygonen oder Polygongruppen. Die Polygone aus der gleichen Gruppe haben die gleichen Feldwerte.
Beispiel 1 für "Nach Feld(ern) erfassen" – Verwenden eines Feldes mit Einzelwerten für jedes einzelne Polygon
Wenn Sie die Nachbarn aller in der Eingabe-Tabelle aufgeführten Polygone suchen möchten, müssen Sie ein Eingabefeld mit einem Einzelwert für jedes Polygon definieren. In diesem Beispiel ist eine Eingabe-Tabelle mit neun Polygonen und einem Feld namens myCode zu sehen, das einen Einzelwert für jedes einzelne Polygon enthält.
In der Tabelle unten ist das Ergebnis aufgeführt, das durch Verwenden des myCode-Feldes als Parameter Nach Feld(ern) erfassen entsteht. Beachten Sie die Präfixe in den Quell- und Nachbarfeldnamen: src_myCode und nbr_myCode.
Beispiel 2 für "Nach Feld(ern) erfassen" – Verwenden eines Feldes mit Werten zur Definition von eindeutigen Polygongruppen
Wenn Sie die eindeutigen Polygongruppen identifizieren und die Informationen zu den benachbarten Gruppen aufzeichnen möchten, können Sie ein Feld für die Einzelwerte der Klassifizierung definieren. Die Informationen zu den Nachbarn werden anhand der Beziehungen zwischen den eindeutigen Gruppen zusammengefasst. In diesem Beispiel werden die eindeutigen Polygongruppen mithilfe des Eingabefeldes myClass als Parameter Nach Feld(ern) erfassen identifiziert.
Nachstehend sind die Ergebnisse aufgeführt, die mithilfe des myClass-Feldes als Parameter Nach Feld(ern) erfassen entstehen:
- Die Gesamtlänge der lagegleichen Kanten zwischen Gruppe A und anderen Polygonen der Gruppe A beträgt 1.200. Diese Zahl ergibt sich aus den sechs lagegleichen Kanten der Polygone in Gruppe A.
- Zwischen Gruppe A und B sind nur zwei lagegleiche Kanten vorhanden. Die Gesamtlänge beträgt 200. Die gleichen Werte gelten für die umgekehrte Beziehung zwischen Gruppe B und A.
- Zwischen Gruppe A und C sind drei lagegleiche Kanten vorhanden. Die Gesamtlänge beträgt 300. Die gleichen Werte gelten für die umgekehrte Beziehung zwischen Gruppe C und A.
- Zwischen Gruppe B und anderen Polygonen von Gruppe B wurden (anders als bei Gruppe A) keine Nachbarbeziehungen gefunden. In der Ausgabe wird daher nichts eingetragen.
Beispiel 3 für "Nach Feld(ern) erfassen" – Verwenden mehrerer Felder mit kombinierten Werten zur Definition von eindeutigen Polygongruppen
In diesem Beispiel stellen die Werte im Feld myZone eine Klassifikation von Polygonen dar. Die Werte im Feld myClass beschreiben eine andere Klassifikation.
Wenn Sie zwei Felder, myZone und myClass, als Parameter Nach Feld(ern) erfassen festlegen, ergeben die kombinierten Werte aus diesen zwei Feldern die folgenden eindeutigen Polygongruppen:
- Gruppe Z1-A
- Gruppe Z1-C
- Gruppe Z2-A
- Gruppe Z2-B
- Gruppe Z2-C
In der Ausgabe-Tabelle werden die Informationen zu den Nachbarn zwischen diesen Gruppen aufgeführt. Die ersten acht Zeilen stellen die eindeutigen Gruppen der Z1-Werte dar, die mit den Werten im Feld myClass kombiniert werden. Dies sind die Quellgruppen und die jeweiligen benachbarten Gruppen in Z1 und Z2. Im Detail:
- Die Quellgruppe Z1-A weist sechs lagegleiche Kanten innerhalb der Gruppe auf (vgl. Gruppe A im vorherigen Beispiel). Die Gesamtlänge der lagegleichen Kanten beträgt daher 600.
- Die Quellgruppe Z1-A ist ein Kantennachbar von der Nachbargruppe Z1-C. Die Gesamtlänge der lagegleichen Kanten beträgt 200.
- Die Quellgruppe Z1-A ist ein Kantennachbar von der Nachbargruppe Z2-A. Die Gesamtlänge der lagegleichen Kanten beträgt 300.
- Die Quellgruppe Z1-A ist kein Kantennachbar von der Nachbargruppe Z1-B. Die Grenze der Nachbargruppe Z1-B berührt die Quellgruppe Z1-A in einem Knoten und ist ein Knotennachbar. Der LENGTH-Wert beträgt daher 0, und der Wert NODE_COUNT ist 1.
- Sie können die übrigen Informationen nach dem gleichen Verfahren interpretieren.
Ausführen von "Benachbarte Polygone" für Eingabedaten mit und ohne überlappende Polygone
In den folgenden Beispielen wird im Detail aufgeführt, wie die Nachbarbeziehungen in hierarchischer Reihenfolge (absteigend) analysiert werden, wenn diese für Eingabedaten mit und ohne Bereichsüberlappung ausgeführt werden. In allen Beispielen wird ein einzelnes Feld als Parameter Nach Feld(ern) erfassen verwendet, das Einzelwerte für jedes Polygon enthält.
Beispiel 1 – Eingabedaten ohne überlappende Polygone
Die in den folgenden zwei Fällen verwendeten Eingabedaten enthalten keine überlappenden Polygone.
a. Kontrollkästchen "Bereichsüberlappungen einbeziehen" deaktiviert (Standard)
Dei vier unten dargestellten Eingabepolygone sind nicht überlappend. Wenn das Werkzeug ausgeführt wird und das Kontrollkästchen "Bereichsüberlappungen einbeziehen" deaktiviert ist, werden nur Kanten- und Knotennachbarn in dieser Reihenfolge gesucht. Wenn z. B. Polygon 1 als Quell-Polygon verwendet wird, werden drei Nachbarpolygone gefunden. In der Ausgabe-Tabelle werden folgende Werte aufgeführt (siehe unten):
- Polygon 2 hat eine lagegleiche Kante mit Polygon1. Es ist daher ein Kantennachbar. Die Länge der lagegleichen Kante beträgt 100 und wird in das LENGTH-Feld eingetragen. Die Knotennachbaranalyse wird übersprungen. In das Feld NODE_COUNT wird der Wert 0 eingetragen. Das gleiche trifft auf Polygon 4 zu.
- Polygon 5 hat keine lagegleiche Kante mit Polygon 1. In das Feld LENGTH wird der Wert 0 eingetragen. Polygon 5 berührt jedoch Polygon 1 an einem Punkt. Daher ist es ein Knotennachbar von Polygon 1. In das Feld NODE_COUNT wird daher der Wert 1 eingetragen.
b. Kontrollkästchen "Bereichsüberlappungen einbeziehen" aktiviert
In diesem Fall enthält die Ausgabe-Tabelle das Feld AREA. Alle AREA-Felder enthalten den Wert 0, da keins der Polygone überlappt. Die Analyse der Kanten- und Knotennachbarn wird fortgesetzt. In den Feldern LENGTH und NODE_COUNT erhalten Sie die gleichen Werte wie in Beispiel 1-a oben.
Beispiel 2 – Eingabedaten mit überlappenden Polygonen
Die in den folgenden zwei Fällen verwendeten Eingabedaten enthalten überlappende Polygone.
a. Kontrollkästchen "Bereichsüberlappungen einbeziehen" deaktiviert (Standard)
Zwischen den folgenden vier Polygonen ist nur ein überlappender, Kanten- oder Knotennachbar zwischen zwei beliebigen Polygonen zu finden. Das Werkzeug sucht nur Kanten- und Knotennachbarn (in dieser Reihenfolge). In der Ausgabe ist das Feld AREA nicht enthalten. Wenn z. B. Polygon 1 als Quell-Polygon verwendet wird, werden drei Nachbarpolygone gefunden. In der Ausgabe-Tabelle werden folgende Werte aufgeführt (siehe unten):
- Polygon 2 und 5 haben beide eine lagegleiche Kante mit Polygon 1. Die Länge der Kante beträgt 20 und wird in das LENGTH-Feld eingetragen. Die Knotennachbaranalyse wird übersprungen, obwohl Polygon 2 an einem Punkt Polygon 1 kreuzt. In das Feld NODE_COUNT wird der Wert 0 eingetragen.
- Polygon 4 hat eine lagegleiche Kante mit Polygon 1. Die Länge der lagegleichen Kante beträgt 100 und wird in das LENGTH-Feld eingetragen.
b. Kontrollkästchen "Bereichsüberlappungen einbeziehen" aktiviert
Wenn z. B. Polygon 1 als Quell-Polygon verwendet wird, werden drei Nachbarpolygone gefunden. In der Ausgabe-Tabelle werden folgende Werte aufgeführt (siehe unten):
- Polygon 2 überlappt Polygon 1. Die Überlappungsfläche beträgt 1.600 und wird in das Feld AREA eingetragen. Die Analyse der Kanten- und Knotennachbarn wird übersprungen, obwohl Polygon 2 eine lagegleiche Kante mit Polygon 1 hat und dieses an einem Punkt kreuzt. In die Felder LENGTH und NODE_COUNT wird daher der Wert 0 eingetragen.
- Polygon 4 hat eine lagegleiche Kante mit Polygon 1. Die Länge der lagegleichen Kante beträgt 100 und wird in das LENGTH-Feld eingetragen.
- Polygon 5 hat eine lagegleiche Kante mit Polygon 1. Die Länge der lagegleichen Kante beträgt 20 und wird in das LENGTH-Feld eingetragen. Die Knotennachbaranalyse wird übersprungen, obwohl es an einem Punkt Polygon 1 kreuzt. In das Feld NODE_COUNT wird der Wert 0 eingetragen.
Beispiel 3 – Eingabedaten mit Polygonen, die ein anderes Polygon mehrere Male verschneiden
In den in den folgenden Fällen verwendeten Eingabedaten, sind mehr als ein überlappender, Kanten- oder Knotennachbar zwischen zwei Polygonen zu finden. Die Werte in den Ausgabefeldern AREA, LENGTH und NODE_COUNT sind die Summe aller Vorkommnisse der einzelnen Nachbartypen.
a. Kontrollkästchen "Bereichsüberlappungen einbeziehen" deaktiviert (Standard)
Die zwei Polygone unten überlappen an zwei Orten und haben zwei lagegleiche Kanten. Die Überlappung zwischen den zwei Features wird vom Werkzeug nicht analysiert. Es sucht die zwei lagegleichen Kanten und trägt die Summe der Länge der zwei lagegleichen Kanten, 40, in das Feld LENGTH ein. Die Analyse der Knotennachbarn wird übersprungen. Daher wird in das Feld NODE_COUNT der Wert 0 eingetragen. Das trifft auf Polygon 1 zu, das das Quell-Polygon ist und Polygon 2 als Nachbar hat (und umgekehrt).
b. Kontrollkästchen "Bereichsüberlappungen einbeziehen" aktiviert
Bei den gleichen zwei Polygonen unten findet das Werkzeug zwei Bereichsüberlappungen und trägt die Summe dieser Flächen, 800, in das AREA-Feld ein. Die Analyse der Kanten- und Knotennachbarn wird übersprungen. In die Felder LENGTH und NODE_COUNT wird daher der Wert 0 eingetragen. Das trifft auf Polygon 1 zu, das das Quell-Polygon ist und Polygon 2 als Nachbar hat (und umgekehrt).
c. Kontrollkästchen "Bereichsüberlappungen einbeziehen" deaktiviert (Standard) und keine lagegleichen Kanten zwischen den Eingabepolygonen
Das Werkzeug findet keine lagegleichen Kanten und trägt in das LENGTH-Feld den Wert 0 ein. Es wird mit der Analyse von Knotennachbarn fortgesetzt. Dabei wird ermittelt, dass die Grenzen sich zweimal kreuzen. In das Feld NODE_COUNT wird daher der Wert 2 eingetragen. Das trifft auf Polygon 1 zu, das das Quell-Polygon ist und Polygon 2 als Nachbar hat (und umgekehrt), wie in der Ausgabe-Tabelle unten aufgeführt:
Beispiel 4 – Sonderfälle
Die Eingabedaten in den nächsten zwei Sonderfällen sind scheinbar die gleichen. Die abgedeckte Fläche unterscheidet sich jedoch:
a. Ein Polygon, das das Loch eines anderen Polygons abdeckt
In diesem Fall wird das Loch von Polygon 2 durch Polygon 1 abgedeckt. Beachten Sie, dass die zwei Polygone sich nicht überlappen. Die Analyse überlappender Nachbarn ist daher nicht notwendig. Wenn Polygon 1 das Quell-Polygon ist und Polygon 2 eine lagegleiche Kante der Länge 200 mit Polygon 1 hat, wird dieser Wert in das LENGTH-Feld eingetragen. Der Wert in Feld NODE_COUNT ist 0. Das gleiche ergibt sich, wenn Polygon 2 das Quell-Polygon ist und Polygon 1 eine lagegleiche Kante der Länge 200 mit Polygon 2 hat: Die Werte im Feld LENGTH sind für jeden Datensatz gleich.
b. Ein Polygon, das ein anderes Polygon vollständig überlappt
In diesem Fall überlappen sich die Polygone 1 und 2. Aktivieren Sie das Kontrollkästchen Bereichsüberlappungen einbeziehen, damit diese Nachbarbeziehung bei der Analyse gefunden wird. Für Polygon 1 als Quell-Polygon und Polygon 2 als Nachbar (und umgekehrt) beträgt die überlappende Fläche 2.500. Dieser Wert wird in der Ausgabe-Tabelle unten aufgeführt.