Kräftebasiertes Layout anwenden (Network Diagram)

Zusammenfassung

Hebt in einem Netzwerkschema enthaltene Schleifen hervor.

Weitere Informationen zum Algorithmus "Kräftebasiertes Layout"

Vorsicht:

Wenn Sie eine Editiersitzung geöffnet haben, müssen Sie die Bearbeitungen speichern, bevor Sie dieses Werkzeug ausführen. Dadurch wird sichergestellt, dass im Schema die letzten Änderungen an der Netzwerk-Topologie in der Datenbank widergespiegelt werden. Wenn Sie die Änderungen nicht speichern, werden die Bearbeitungen nicht im Schema widergespiegelt.

Hinweis:

Jeder Layout-Algorithmus enthält standardmäßige Parameterwerte. Die standardmäßigen Parameterwerte werden verwendet, sofern nichts anderes angegeben ist. Wenn das Eingabe-Netzwerkschema auf einer Vorlage basiert, für die dieses Layout mit einem anderen Parameterwert konfiguriert wurde, wird stattdessen dieser Wert verwendet.

Verwendung

  • Dieses Werkzeug wird nicht unterstützt, wenn Sie mit einer Datenbankverbindung zu einem Versorgungs- oder Verfolgungsnetz in einer Enterprise-Geodatabase arbeiten. Sie müssen entweder den zugehörigen veröffentlichten Utility Network- oder Trace Network-Service oder ein Versorgungs- oder Verfolgungsnetz in einer File-Geodatabase verwenden.

  • Der Eingabe-Netzwerkschema-Layer muss aus einem Versorgungs- oder Verfolgungsnetz in einer File-Geodatabase oder einem Netzwerkschema-Service stammen.

  • Dieser Algorithmus verwendet eine physische Analogie zur Darstellung von Grafiken, indem ein Kräftesystem bestimmt wird, in dem die Energie lokal minimiert wird. Er sucht nach einem Gleichgewichtszustand des Kräftesystems, d. h. einer Position für jeden Schemaknoten, an der die Gesamtkraft an jedem Knoten null beträgt.

  • Da dieser Algorithmus dazu tendiert, in einem Netzwerkschema enthaltene Schleifen hervorzuheben, wird er häufig von Bedienern verwendet, die stark vermaschte Netzwerke für Wasser, Abwasser oder Gas verwalten.

  • Bei der Arbeit in sehr großen Schemas empfiehlt es sich, das Layout im asynchronen Modus auf dem Server anzuwenden.

Syntax

arcpy.nd.ApplyForceDirectedLayout(in_network_diagram_layer, {are_containers_preserved}, {iterations_number}, {repel_factor}, {degree_freedom}, {breakpoint_position}, {edge_display_type}, {run_async})
ParameterErklärungDatentyp
in_network_diagram_layer

Das Netzwerkschema, auf das das Layout angewendet wird.

Diagram Layer
are_containers_preserved
(optional)

Legt fest, wie der Algorithmus Container verarbeitet:

  • PRESERVE_CONTAINERS Der Layout-Algorithmus wird für den oberen Graphen des Schemas ausgeführt, sodass die Container beibehalten werden.
  • IGNORE_CONTAINERSDer Layout-Algorithmus wird für Features mit und ohne Inhalt im Schema ausgeführt. Dies ist die Standardeinstellung.
Boolean
iterations_number
(optional)

Die Anzahl der zu verarbeitenden Iterationen. Die Standardeinstellung ist 20.

Long
repel_factor
(optional)

Fügt Abstand zwischen Schemaknoten hinzu, die sehr nah beieinander liegen. Je größer der Abstoßungsfaktor, umso mehr Längeneinheiten werden zwischen einander nahezu überlappenden Schemaknoten hinzugefügt. Der Standardwert ist 1.

Double
degree_freedom
(optional)

Gibt den Bereich an, der bei den einzelnen Algorithmusiterationen zum Verschieben der Schemaknoten verwendet wird.

  • LOWDer Bereich, der zum Verschieben der Schemaknoten verwendet wird, ist begrenzt. Dies ist die Standardeinstellung.
  • HIGHDer Bereich, der zum Verschieben der Schemaknoten verwendet wird, ist groß.
  • MEDIUMDer Bereich, der zum Verschieben der Schemaknoten verwendet wird, ist mittelgroß.
String
breakpoint_position
(optional)

Die relative Position der beiden Wendepunkte, die entlang der Schemakanten eingefügt werden, um die Geometrie von geschwungenen Kanten zu berechnen, wenn Kantenanzeigetyp auf Geschwungene Kanten gesetzt ist (edges_display_type = "CURVED_EDGES" in Python). Dabei handelt es sich um einen Prozentsatz zwischen 15 und 40. Der Standardwert ist 30. Bei einem Wert N zwischen 15 und 40 für den Parameter Relative Teilungspunktposition (%) gilt beispielsweise Folgendes:

  • Mit X als der X-Koordinate der vom Knoten ausgehenden Kante und Y als der Y-Koordinate der vom Knoten ausgehenden Kante für eine horizontale Baumstruktur:
    • Der erste Wendepunkt wird bei N % der Länge des [XY]-Segments positioniert
    • Der zweite Wendepunkt wird bei (100-N) % der Länge des [XY]-Segments positioniert
  • Mit Y als der Y-Koordinate der vom Knoten ausgehenden Kante und X als der X-Koordinate der vom Knoten ausgehenden Kante für eine vertikale Baumstruktur:
    • Der erste Wendepunkt wird bei N % der Länge des [YX]-Segments positioniert.
    • Der zweite Wendepunkt wird bei (100-N) % der Länge des [XY]-Segments positioniert

Hinweis:

Das oben beschriebene Konzept der ausgehenden Knoten und Zielknoten ist relativ zur Richtung der Baumstruktur. Die reale Topologie des Netzwerk-Features oder der Objektkante spielt dabei keine Rolle.

Dieser Parameter wird ignoriert, wenn der Parameter Kantenanzeigetyp auf Regelmäßige Kanten gesetzt ist (edges_display_type = "REGULAR_EDGES" in Python).

Double
edge_display_type
(optional)

Gibt den Anzeigetyp für die Schemakanten an.

  • REGULAR_EDGESAlle Schemakanten werden als gerade Linien angezeigt. Dies ist die Standardeinstellung.
  • CURVED_EDGESAlle Schemakanten werden geschwungen dargestellt.
String
run_async
(optional)

Gibt an, ob der Layout-Algorithmus asynchron oder synchron auf dem Server ausgeführt wird.

  • RUN_ASYNCHRONOUSLYDer Layout-Algorithmus wird asynchron auf dem Server ausgeführt. Diese Option weist Serverressourcen an, den Layout-Algorithmus mit einem längeren Timeout auszuführen. Die asynchrone Ausführung ist empfehlenswert, wenn zeitintensive Layouts (z. B. teilweise überlappende Kanten) ausgeführt werden, die ansonsten das Serverzeitlimit überschreiten würden und auf große Schemas (mehr als 25.000 Features) angewendet werden.
  • RUN_SYNCHRONOUSLYDer Layout-Algorithmus wird synchron auf dem Server ausgeführt. Er kann vor dem Abschluss des Vorgangs fehlschlagen, wenn für die Ausführung das Service-Timeout (standardmäßig 600 Sekunden) überschritten wird. Dies ist die Standardeinstellung.
Boolean

Abgeleitete Ausgabe

NameErklärungDatentyp
out_network_diagram_layer

Der aktualisierte Netzwerkschema-Layer.

Schema-Layer

Codebeispiel

ApplyForceDirectedLayout – Beispiel (Python-Fenster)

Mit diesem Beispielskript wird der Algorithmus "Kräftebasiertes Layout" auf das Schema "Temporary Diagram" angewendet.

import arcpy
arcpy.ApplyForceDirectedLayout_nd("Temporary Diagram", "PRESERVE_CONTAINERS", 
                                  20, 1, "LOW", 25, "CURVED_EDGES", 
                                  "RUN_SYNCHRONOUSLY")

Umgebungen

Dieses Werkzeug verwendet keine Geoverarbeitungsumgebungen.

Lizenzinformationen

  • Basic: Nein
  • Standard: Ja
  • Advanced: Ja

Verwandte Themen