Funktionsweise von "Benachbarte Polygone" und "Paarweise benachbarte Polygone"

In diesem Thema wird beschrieben, wie die Werkzeuge Benachbarte Polygone und Paarweise benachbarte Polygone Nachbarn finden und die Ausgabetabelle füllen.

Finden von Beziehungen zwischen Nachbarn und Berechnen von Statistiken

Die Beziehungen zwischen Nachbarn werden wie folgt definiert:

  • Überlappende Nachbarn: Polygone, deren Flächen sich ganz oder teilweise überlappen.
  • Kantennachbarn: Polygone, die gemeinsame oder sich berührende Grenzen haben.
  • Knotennachbarn: Polygone, die sich an einem Punkt berühren (beim Werkzeug Benachbarte Polygone berühren sich die Grenzen oder kreuzen sich. Beim Werkzeug Paarweise benachbarte Polygone berühren sich die Grenzen).

Beim Werkzeug Benachbarte Polygone werden die benachbarten Polygone anhand derselben Regeln für Polygone wie beim Werkzeug Überschneiden ermittelt.

Beim Werkzeug Paarweise benachbarte Polygone werden die benachbarten Polygone anhand derselben Regeln für Polygone wie beim Werkzeug Paarweise Überschneidung ermittelt.

Beide Werkzeuge folgen einem hierarchischen Pfad, um den Typ des Nachbarn und die in der Ausgabetabelle zu erfassenden Statistiken zu bestimmen. Die Beziehungen der Nachbarn sind, in hierarchischer Reihenfolge von oben nach unten, überlappende Kanten, lagegleiche Kanten und Knotennachbarn. Sobald ein Nachbar höherer Ordnung gefunden wurde, berechnet das Werkzeug die Beziehungsinformationen und speichert sie. Die Analyse der Beziehungen niedrigerer Ordnung wird übersprungen. Die Werkzeuge verwenden den folgenden Workflow:

  1. Auswahl eines Polygons, das als Quellen-Feature verwendet werden soll.
  2. Suchen aller Polygone, die das ursprüngliche Polygon überschneiden (Nachbarn suchen).
  3. Analysieren der folgenden Werte des ursprünglichen Polygons für den ersten gefundenen Nachbarn:
    • Wenn das Nachbarpolygon ein überlappender Nachbar ist und der Parameter Bereichsüberlappungen einbeziehen aktiviert ist, wird Folgendes ausgeführt:
      1. Hinzufügen des Felds AREA zur Ausgabetabelle.
      2. Berechnen der Fläche der Überlappung.
      3. Erfassen der berechneten Fläche zur Verwendung im Feld AREA der Ausgabetabelle.
      4. Erfassen von 0 zur Verwendung im Feld LENGTH der Ausgabetabelle.
      5. Erfassen von 0 zur Verwendung im Feld NODE_COUNT der Ausgabetabelle.

        Die Analyse der überlappenden Nachbarn ist abgeschlossen.

      6. Analysieren des nächsten Nachbarpolygons.
    • Wenn das Nachbarpolygon ein Kantennachbar ist, wird Folgendes durchgeführt:
      1. Berechnen der Länge der lagegleichen Grenze.
      2. Erfassen der berechneten Länge zur Verwendung im Feld LENGTH der Ausgabetabelle.
      3. Erfassen von 0 zur Verwendung im Feld NODE_COUNT der Ausgabetabelle.

        Die Analyse der Kantennachbarn ist abgeschlossen.

      4. Analysieren des nächsten Nachbarpolygons.
    • Wenn das Nachbarpolygon ein Knotennachbar ist, wird Folgendes durchgeführt:
      1. Ermitteln, wie oft das Nachbarpolygon das ursprüngliche Polygon an einem Punkt kreuzt und berührt (das Werkzeug Paarweise benachbarte Polygone verwendet nur Berührungen).
      2. Erfassen des ermittelten Werts zur Verwendung im Feld NODE_COUNT der Ausgabetabelle.
      3. Erfassen von 0 zur Verwendung im Feld LENGTH der Ausgabetabelle.

        Die Analyse der Knotennachbarn ist abgeschlossen.

      4. Analysieren des nächsten Nachbarpolygons.

Sobald die Beziehungen der Nachbarn ermittelt wurden, verwendet das Werkzeug den Parameterwert Nach Feldern erfassen, um zu bestimmen, wie die Beziehungen der Nachbarn und die Statistiken in der Ausgabetabelle erfasst werden sollen. Der Parameterwert Nach Feldern erfassen wird verwendet, um eindeutige Polygone oder Polygongruppen zu identifizieren und ihre Nachbarschaftsinformationen nach eindeutigen Polygonen bzw. Polygongruppen zu erfassen. Polygone derselben Gruppe haben denselben Satz von Feldwerten.

Beispiele für "Nach Feldern erfassen"

In den folgenden Unterabschnitten werden Beispiele für die Verwendung des Parameters Nach Feldern erfassen beschrieben:

Verwenden eines Feldes mit eindeutigen Werten für jedes einzelne Polygon

Um die Nachbarn eines jeden einzelnen Polygons in der Eingabe zu finden, geben Sie ein Eingabefeld an, das für jedes Polygon über einen eindeutigen Wert verfügt. In diesem Beispiel enthält die Eingabetabelle der neun Polygone ein myCode-Feld, das für jedes Polygon über einen eindeutigen Wert verfügt.

Eingabedaten

Die folgende Tabelle zeigt das Ergebnis der Verwendung des Feldes myCode als Wert für den Parameterwert Nach Feldern erfassen. Die Präfixe der ursprünglichen und Nachbarfeldnamen sind src_myCode und nbr_myCode.

Ausgabetabelle

Verwenden eines Feldes mit Werten, die eindeutige Polygongruppen definieren

Um eindeutige Polygongruppen zu identifizieren und die Nachbarinformationen nach Gruppen zu erfassen, geben Sie ein Feld an, das eindeutige Werte der Klassifizierung enthält. Die Informationen zu den Nachbarn werden anhand der Beziehungen zwischen den eindeutigen Gruppen zusammengefasst. In diesem Beispiel werden die eindeutigen Polygongruppen anhand des Feldes myClass als Parameterwert für Nach Feldern erfassen identifiziert.

Eingabedaten

Nachfolgend wird das Ergebnis der Verwendung des Feldes myClass als Wert für den Parameterwert Nach Feldern erfassen gezeigt.

  • Für Gruppe A beträgt die Gesamtlänge der lagegleichen Kanten zu anderen Polygonen der Gruppe A 1200, was sich aus den sechs lagegleichen Kanten zwischen den Polygonen in Gruppe A ergibt.
    Hinweis:

    Die Ausgabe enthält nur einen eindeutigen Datensatz für jede eindeutige Kombination der Werte für das ursprüngliche und das Nachbarpolygon, die mit dem Parameter Nach Feldern erfassen angegeben wurden. Da Gruppe A als Ursprung und der Nachbar als eine Seite der Beziehung verwendet wird und die umgekehrte Beziehung ebenfalls Ursprung A als Quelle und den Nachbarn als eine Seite hat, sind beide Seiten der Nachbarbeziehung in einem Datensatz enthalten.

  • Zwischen Gruppe A und Gruppe B gibt es nur zwei Kanten, die lagegleich sind und eine Gesamtlänge von 200 haben. Dies ist auch zwischen Gruppe B und Gruppe A der Fall.
  • Zwischen Gruppe A und Gruppe C gibt es drei lagegleiche Kanten mit einer Gesamtlänge von 300. Dies ist auch zwischen Gruppe C und Gruppe A der Fall.
  • Für Gruppe B zu anderen Polygonen der Gruppe B wurde im Gegensatz zu Gruppe A keine Nachbarschaftsbeziehung gefunden, sodass in der Ausgabe kein Wert erfasst wurde.

Ausgabetabelle

Verwenden mehrerer Felder mit kombinierten Werten, die eindeutige Polygongruppen definieren

In diesem Beispiel stellen die Werte im Feld myZone eine Klassifizierung der Polygone dar, während die Werte im Feld myClass eine zweite Klassifizierung darstellen.

Eingabedaten

Wenn zwei Felder, myZone und myClass, als Wert für den Parameter Nach Feldern erfassen angegeben sind, ergeben die kombinierten Werte der beiden Felder die folgenden eindeutigen Polygongruppen:

  • Gruppe Z1-A
  • Gruppe Z1-C
  • Gruppe Z2-A
  • Gruppe Z2-B
  • Gruppe Z2-C

Die folgende Ausgabetabelle zeigt die Informationen zu Nachbarn dieser Gruppen. Die ersten acht Zeilen stellen die eindeutigen Gruppen von Z1-Werten dar, kombiniert mit den Werten im Feld myClass, die die ursprünglichen Gruppen und ihre benachbarten Gruppen in Z1 und Z2 sind.

  • Die ursprüngliche Gruppe Z1-A hat sechs lagegleiche Kanten innerhalb der Gruppe (ähnlich wie Gruppe A im vorherigen Beispiel), und die Gesamtlänge der lagegleichen Kanten beträgt 600.
  • Die ursprüngliche Gruppe Z1-A ist ein Kantennachbar der Nachbargruppe Z1-C, und die Gesamtlänge der lagegleichen Kanten beträgt 200.
  • Die ursprüngliche Gruppe Z1-A ist ein Kantennachbar der Nachbargruppe Z2-A, und die Gesamtlänge der lagegleichen Kanten beträgt 300.
  • Die ursprüngliche Gruppe Z1-A ist kein Kantennachbar der Nachbargruppe Z1-B, aber die Grenze der Nachbargruppe Z1-B berührt die ursprüngliche Gruppe Z1-A an einem Knoten und ist ein Knotennachbar. Folglich ist der Wert für Feld LENGTH 0 und der Wert für Feld NODE_COUNT 1.

Ausgabetabelle

Eingabedaten mit und ohne überlappende Polygone

Die folgenden Beispiele zeigen Details dazu, wie die Nachbarschaftsbeziehungen in hierarchischer Reihenfolge von oben nach unten analysiert werden, wenn Eingabedaten mit und ohne Bereichsüberlappung verwendet werden. Die Beispiele verwenden ein einzelnes Feld für den Parameterwert Nach Feldern erfassen, das eindeutige Werte für jedes Polygon enthält. In jedem Beispiel sind die Unterschiede zwischen den Werkzeugen Benachbarte Polygone und Paarweise benachbarte Polygone vermerkt.

Eingabedaten enthalten keine überlappenden Polygone

Die in den folgenden beiden Fällen verwendeten Eingabedaten enthalten keine überlappenden Polygone.

Parameter "Bereichsüberlappungen einbeziehen" ist deaktiviert

Die vier unten dargestellten Eingabepolygone überlappen sich nicht. Wenn das Werkzeug mit deaktiviertem Parameter Bereichsüberlappungen einbeziehen ausgeführt wird, überprüft das Werkzeug nur auf Kanten- und Knotennachbarn, und das in dieser Reihenfolge. Am Beispiel von Polygon 1 als ursprüngliches Polygon werden drei benachbarte Polygone gefunden und die folgenden Informationen in der Ausgabetabelle unten angezeigt:

  • Polygon 2 hat eine lagegleiche Kante mit Polygon 1, ist also ein Kantennachbar. Die Länge der lagegleichen Kante, 100, wird in das Feld LENGTH eingetragen. Die Analyse der Knotennachbarn wird übersprungen, und das Feld NODE_COUNT hat den Wert 0. Dies ist auch bei Polygon 4 der Fall.
  • Polygon 5 hat keine lagegleiche Kante mit Polygon 1, und das Feld LENGTH hat den Wert 0. Polygon 5 berührt jedoch Polygon 1 an einem Punkt, sodass es ein Knotennachbar von Polygon 1 ist und den Wert 1 für das Feld NODE_COUNT hat.

Eingabedaten mit Ausgabetabelle

Parameter "Bereichsüberlappungen einbeziehen" ist aktiviert

Wenn der Parameter Bereichsüberlappungen einbeziehen aktiviert ist, enthält die Ausgabe das Feld AREA. Alle Werte im Feld AREA sind 0, da sich keine Polygone überlappen. Die Analyse der Kanten- und Knotennachbarn wird fortgesetzt, und die FeldwerteLENGTH und NODE_COUNT sind dieselben wie im Beispiel zum Parameter Nach Feldern erfassen.

Eingabedaten enthalten überlappende Polygone

Die in den folgenden beiden Fällen verwendeten Eingabedaten enthalten überlappende Polygone.

Parameter "Bereichsüberlappungen einbeziehen" ist deaktiviert

Bei den folgenden vier Polygonen treten Überlappungen, Kanten- oder Knotennachbarn zwischen jeweils zwei Polygonen nur einmal auf. Wenn der Parameter Bereichsüberlappungen einbeziehen deaktiviert ist, überprüft das Werkzeug nur auf Kanten- und Knotennachbarn (in dieser Reihenfolge), und die Ausgabe enthält nicht das Feld AREA. Am Beispiel von Polygon 1 als ursprüngliches Polygon werden drei benachbarte Polygone gefunden und die folgenden Informationen in der Ausgabetabelle unten angezeigt:

  • Die Polygone 2 und 5 haben beide eine lagegleiche Kante mit Polygon 1, und die Länge der Kante, 20, wird in das Feld LENGTH übernommen. Die Analyse der Knotennachbarn wird übersprungen, obwohl Polygon 2 Polygon 1 an einem Punkt schneidet. Das Feld NODE_COUNT hat den Wert 0.
  • Das Polygon 4 hat eine lagegleiche Kante mit Polygon 1, und die Länge der lagegleichen Kante, 100, wird in das Feld LENGTH übernommen.

Eingabedaten und Ausgabetabelle

Parameter "Bereichsüberlappungen einbeziehen" ist aktiviert

Am Beispiel von Polygon 1 als ursprüngliches Polygon werden drei benachbarte Polygone gefunden und die folgenden Informationen in der Ausgabetabelle unten angezeigt, sofern der Parameter Bereichsüberlappungen einbeziehen aktiviert ist:

  • Polygon 2 überlappt Polygon 1, und die überlappende Fläche, 1600, 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 schneidet. Die Felder LENGTH und NODE_COUNT haben den Wert 0.
  • Das Polygon 4 hat eine lagegleiche Kante mit Polygon 1, und die lagegleiche Länge der Kante, 100, wird in das Feld LENGTH übernommen.
  • Das Polygon 5 hat eine lagegleiche Kante mit Polygon 1, und die Länge der lagegleichen Kante, 20, wird in das Feld LENGTH übernommen. Die Analyse der Knotennachbarn wird übersprungen, obwohl es Polygon 1 an einem Punkt schneidet (das Werkzeug Paarweise benachbarte Polygone verwendet nur Berührungen, sodass diese Überschneidung nicht berücksichtigt wird). Das Feld NODE_COUNT hat den Wert 0.

Eingabedaten und Ausgabetabelle

Eingabedaten enthalten Polygone, die ein anderes Polygon mehr als einmal überschneiden

In den in den folgenden Beispielen verwendeten Eingabedaten treten Überlappungen, Kanten- oder Knotennachbarn zwischen zwei Polygonen mehrmals auf. Die Werte in den Ausgabefeldern AREA, LENGTH und NODE_COUNT sind die Summen aller Vorkommen des jeweiligen Nachbartyps.

Parameter "Bereichsüberlappungen einbeziehen" ist deaktiviert

Die beiden unten abgebildeten Polygone überlappen sich an zwei Stellen und haben zwei lagegleiche Kanten. Wenn der Parameter "Bereichsüberlappungen einbeziehen" deaktiviert ist, analysiert das Werkzeug die Überlappung zwischen den beiden Features nicht. Es findet die beiden lagegleichen Kanten und speichert die Summe der beiden Längen der lagegleichen Kanten, 40, im Feld LENGTH. Die Analyse der Knotennachbarn wird übersprungen, sodass im Feld NODE_COUNT ein Wert von 0 eingetragen wird. Dies ist der Fall, wenn Polygon 1 das ursprüngliche Polygon und Polygon 2 das Nachbarpolygon ist und umgekehrt.

Parameter "Bereichsüberlappungen einbeziehen" ist aktiviert

Für die beiden gleichen Polygone unten findet das Werkzeug bei aktiviertem Parameter "Bereichsüberlappungen einbeziehen" zwei Bereichsüberlappungen und speichert die Summe der beiden Flächen, 800, im Feld AREA. Die Analyse der Kanten- und Knotennachbarn wird übersprungen, sodass in den Feldern LENGTH und NODE_COUNT der Wert 0 eingetragen wird. Dies ist der Fall, wenn Polygon 1 das ursprüngliche Polygon und Polygon 2 das Nachbarpolygon ist und umgekehrt.

Eingabedaten und Ausgabetabellen

Parameter "Bereichsüberlappungen einbeziehen" ist deaktiviert und es gibt keine lagegleichen Kanten zwischen den Eingabepolygonen

Keines der beiden Werkzeuge in diesem Szenario findet lagegleiche Kanten, sodass der Wert 0 im Feld LENGTH gespeichert wird. Die Werkzeuge fahren mit der Analyse der Knotennachbarn fort. Das Werkzeug Benachbarte Polygone stellt fest, dass sich die Grenzen zweimal kreuzen, während das Werkzeug Paarweise benachbarte Polygone keine Kreuzungsbeziehungen berücksichtigt und eine leere Ausgabe zurückgibt. Da das Werkzeug Benachbarte Polygone Kreuzungsbeziehungen berücksichtigt, wird der Wert 2 im Feld NODE_COUNT gespeichert. Dies ist der Fall, wenn Polygon 1 das ursprüngliche Polygon und Polygon 2 das Nachbarpolygon ist und umgekehrt, wie in der Ausgabetabelle unten gezeigt:

Eingabedaten und Ausgabetabelle

Sonderfälle

Die in den beiden folgenden Sonderfällen verwendeten Eingabedaten scheinen zwar identisch zu sein, decken jedoch, wie im Folgenden erläutert, unterschiedliche Bereiche ab.

Polygon, das das Loch eines anderen Polygons abdeckt

In diesem Fall hat Polygon 2 ein Loch, das von Polygon 1 abgedeckt wird. Die beiden Polygone überlappen sich nicht, sodass die Analyse für überlappende Nachbarn nicht erforderlich ist. Wenn Polygon 1 das ursprüngliche Polygon ist und Polygon 2 eine lagegleiche Kante von 200 mit Polygon 1 hat, wird dieser Wert in das Feld LENGTH geschrieben. Der Wert im Feld NODE_COUNT ist 0. Wenn Polygon 2 das ursprüngliche Polygon ist, hat Polygon 1 ebenfalls eine lagegleiche Kante von 200 mit Polygon 2, was zu denselben Werten im Feld LENGTH für jeden Datensatz führt.

Eingabedaten und Ausgabetabelle

Polygon überlappt ein anderes Polygon vollständig

In diesem Fall überlappen sich die Polygone 1 und 2. Damit diese Nachbarbeziehung in der Analyse gefunden wird, müssen Sie den Parameter Bereichsüberlappungen einbeziehen aktivieren. In der folgenden Ausgabetabelle wird die überlappende Fläche von 2500 gespeichert, unabhängig davon, ob Polygon 1 der Ursprung und Polygon 2 der Nachbar ist oder umgekehrt.

Eingabedaten und Ausgabetabelle