Evaluator-Typen, die in einem Netzwerk verwendet werden
Alle im Netzwerk definierten Attribute müssen Werte für jede Quelle enthalten, die Teil des Netzwerks ist. Ein Evaluator weist dem Attribut jeder Quelle Werte zu. In den Vorgängern von ArcGIS (ARC/INFO und ArcView GIS) wurden Attributwerte aus einem Feld im Shapefile oder Coverage zugewiesen. In ArcGIS werden einem Netzwerkattribut vom Feld-Evaluator Werte aus einem Feld einer Netzwerkquelle zugewiesen. Zudem können in ArcGIS weitere Evaluator-Typen verwendet werden, z. B. Konstanten, Feldausdrücke, Funktionen und Skript-Evaluatoren.
Die Evaluatoren werden nachfolgend beschrieben.
Evaluator |
Beschreibung |
---|---|
Feld-Evaluator |
"Feld-Evaluator": Die häufigste Methode zum Zuweisen von Werten für ein Netzwerkattribut ist das Bestimmen eines einzelnen Feldes, das für die Evaluierung des Netzwerkattributs beim Berechnen des Netzwerk-Datasets verwendet wird. Ein Feld-Evaluator kann beispielsweise verwendet werden, wenn der Wert einen Messwert, z. B. die Länge jedes Straßenabschnitts in Metern, beschreibt. |
Feldausdruck-Evaluator |
Der Feld-Evaluator kann so geändert werden, dass ein Feldausdruck anstelle eines einzelnen Feldes als Wert herangezogen wird. In diesem Fall erstellen Sie im Dialogfeld Feld-Evaluator mit VBScript oder Python einen Ausdruck. Beispiel: Wenn die Einheiten des Netzwerkattributs in Metern angegeben sind, die Einheiten der Quelldaten jedoch in Fuß, können Sie einen Ausdruck erstellen, durch den bei der Berechnung des Netzwerk-Datasets die Fuß-Einheiten in Meter umgerechnet werden. Tipp: In VBScript geschriebene Feldausdruck-Evaluatoren werden sehr viel schneller ausgeführt als in Python erstellte. Daher sollten Sie möglichst VBScript verwenden. Beachten Sie bei der Auswahl der Skriptsprache jedoch die folgenden Punkte:
|
Konstanten-Evaluator |
Attributen kann ein konstanter Wert zugewiesen werden. Der Wert kann für Kosten-, Beschreibungs- und Hierarchieattribute numerisch (0, 1, 2) oder ein boolescher Datentyp von "Beschränkung verwenden" oder "Beschränkung ignorieren" für ein Beschränkungsattribut sein. |
Funktions-Evaluator |
Der Funktions-Evaluator berechnet Attributwerte, indem er eine multiplikative oder logische Funktion für einen anderen Attribut- oder Parameterwert ausführt. Bei numerischen Attributtypen werden die Werte aus einem Ausdruck abgeleitet, der den Wert eines anderen Attributs mit einem Wert multipliziert, z. B. DriveTime * 1,25. Bei booleschen Attributtypen werden die Werte aus einem Ausdruck abgeleitet, der einen Attributwert mit einem Parameterwert vergleicht, z. B. MaxHeight < VehicleHeight. |
Globaler Evaluator für Verzögerung bei Kantenübergängen |
Der globale Evaluator für Verzögerung bei Kantenübergängen weist einen Standardkostenwert für Übergänge zwischen zwei Kantenelementen zu. Die Kosten basieren auf dem Ablenkungswinkel zwischen den zwei Kanten und der Straßenklasse (Haupt-, Neben- und Ortsstraßen) der Kanten, die durchlaufen werden. Sie legen die Straßenklasse über das Dialogfeld Hierarchiebereiche zusammen mit einem Hierarchieattribut fest. Sie können zum Beispiel mithilfe des globalen Evaluators für Verzögerung bei Kantenübergängen festlegen, dass alle linken Kantenübergänge, die durch Ablenkungswinkel bestimmt werden, von Ortsstraßen auf Nebenstraßen länger benötigen als linke Kantenübergänge von Ortsstraßen auf andere Ortsstraßen. Sie können auch zusätzliche Kosten für andere Übergänge festlegen, z. B. das Hinzufügen einer Verzögerung von 10 Sekunden, wenn am Schnittpunkt von zwei Nebenstraßen weiter geradeaus gefahren wird. Weitere Informationen zum Festlegen von globalen Kantenübergängen |
Skript-Evaluator |
Attribute können aus den Ergebnissen der Ausführung eines VBScripts oder eines Python-Skripts zugewiesen werden. Auf diese Weise können komplexe Attribute modelliert werden. Im Gegensatz zu anderen Evaluatoren weist der Skript-Evaluator beim Berechnen eines Netzwerks keine Werte zu. Stattdessen weist er Werte zu, wenn für eine bestimmte Netzwerkanalyse der Einsatz dieses Attributs erforderlich wird. Dies kann zum Zeitpunkt der Berechnung der Fall sein. Wenn sich die Werte eines Attributs ständig ändern, kann durch den Einsatz eines Skript-Evaluators sichergestellt werden, dass die Attribute für jede Netzwerkanalyse aktualisiert werden. Tipp: Da der Skript-Evaluator Berechnungen während der Analyse durchführt, kann dieser Evaluator die Analyse-Performance beeinträchtigen. Versuchen Sie möglichst einen anderen Evaluator zu verwenden. In VBScript geschriebene Skript-Evaluatoren werden sehr viel schneller ausgeführt als in Python erstellte. Daher sollten Sie möglichst VBScript verwenden. Beachten Sie bei der Auswahl der Skriptsprache jedoch die folgenden Punkte:
|
Kantenverkehrs-Evaluator |
Kantenverkehrs-Evaluatoren wurden für Verkehrsdaten entwickelt. Sie können mit Hilfe von historischen oder Live-Daten die Fahrzeiten für eine bestimmte Uhrzeit und einen bestimmten Wochentag bereitstellen. Sie verfügen über alternative Kostenattribute, die Fahrzeiten für Wochentage und Wochenenden bereitstellen, wenn keine spezifischen Fahrzeiten für die Tageszeit verfügbar sind. Kantenverkehrs-Evaluatoren verfügen außerdem über ein zeitneutrales Kostenattribut, auf das von Network Analyst verwiesen wird, wenn die Reihenfolge von Stopps bei einer Routenanalyse oder einem Vehicle Routing Problem festgelegt wird. |
Jede Knotenquelle und jede Kantenübergangsquelle kann einen Evaluator aufweisen. Jede Kantenquelle kann über zwei Evaluatoren verfügen: einer für jede Digitalisierrichtung der Kante.
Kanten, Knoten und Kantenübergängen kann ein Standard-Evaluator zugewiesen werden. Wenn für eine bestimmte Quelle kein Evaluator explizit angegeben ist, werden die Werte für diese Quelle durch den Standard-Evaluator zugewiesen.
Im Folgenden wird der allgemeine Workflow beim Zuweisen eines Evaluators beschrieben:
- Wählen Sie die Quelle aus, der der Evaluator zugewiesen werden muss.
- Wählen Sie einen Evaluatortyp aus, z. B. Feld, Konstante, Funktion oder Skript.
- Geben Sie den Wert an, der dem Netzwerkattribut zugewiesen werden soll.
Wenn die Werte aus einem Feld abgeleitet sind, wird dieses Feld aus einem Dropdown-Menü ausgewählt. Müssen die Werte anhand eines Feldausdrucks berechnet werden, wählen Sie als Evaluator-Typ Feld aus, und drücken Sie die Taste F12 auf der Tastatur, um das Dialogfeld Feld-Evaluatoren aufzurufen. Sie können alternativ auch auf der Registerkarte Evaluatoren mit der rechten Maustaste auf die Quelle klicken und aus dem Menü Wert die Option Eigenschaften auswählen, um das Dialogfeld Feld-Evaluatoren zu öffnen.
Beispiele für Evaluatoren
Zuweisen von Werten zu Kostenattributen
In der Grafik unten wird vom Netzwerkattribut "DriveTime" ein Feld-Evaluator für die Streets-Quell-Feature-Class verwendet. Dies ist unter der Spalte Typ angegeben. In der Spalte Wert wird angezeigt, dass das Feld "FT_Minutes" die Netzwerkattributwerte für die Richtung "Von-Bis" der Quelle "Streets" bereitstellt. Ähnlich werden die Werte der Quelle "Streets" für die Richtung "Bis-Von" aus dem Feld "TF_Minutes" gezeichnet.
In diesem Beispiel sind die anderen Kantenquellen in diesem Netzwerk Übergangskanten und enthalten keine Fahrzeit. Ihnen kann folglich der konstante Wert -1 oder besser ein konstanter Wert von 0 zugewiesen werden, und ihnen können Beschränkungsattribute zugeordnet werden, die Autos und andere Straßenfahrzeuge als unzulässig markieren.
Beschränkungen werden gegenüber negativen Kosten bevorzugt, da negative Kosten beim Akkumulieren von Kostenattributen subtrahiert werden.
Alternativ hierzu können Kostenattribute mit dem Funktions-Evaluator aus einem anderen Kostenattribut abgeleitet werden. Beispielsweise kann ein Attribut, das die Fahrzeiten langsamer Fahrzeuge modelliert, mit dem Funktions-Evaluator auf ein Attribut verweisen, das normale Fahrzeiten modelliert, und dieses mit einem Verzögerungsfaktor multiplizieren.
Zuweisen von Werten zu Beschränkungen
Beschränkungsattribute verfügen über einen booleschen Datentyp. Da ein Quellenelement die verknüpfte Beschränkung entweder verwenden oder ignorieren kann, kann ihm ein konstanter Wert für Beschränkung verwenden oder Beschränkung ignorieren zugewiesen werden.
Alternativ hierzu können Beschränkungsattribute mit dem Funktions-Evaluator abgeleitet werden, um ein anderes Attribut mit einem Parameterwert zu vergleichen. Beispielsweise kann ein Attribut, das Fahrzeughöhenbeschränkungen modelliert, mithilfe des Funktions-Evaluators die Höhengrenze einer Straße mit der in einem Attributparameter gespeicherten tatsächlichen Höhe des Fahrzeugs vergleichen. Wenn der Ausdruck als "True" ausgewertet wird, wird die Beschränkung auf die Straße angewandt, und wenn der Ausdruck als "False" ausgewertet wird, wird die Beschränkung ignoriert. Als Ausnahme von dieser Regel gilt, dass der Ausdruck ebenfalls als "False" ausgewertet wird, wenn einer dieser Operanden ("MaxHeight" oder "VehicleHeight") den Wert 0 aufweist.
Weitere Informationen zum Verwenden von Parametern mit Netzwerkattributen
Beschränkungsattribute können auch aus einem Feld in der Quell-Feature-Class zugewiesen werden. Beispiel: Sie können einen Evaluator für Feldausdrücke zum Generieren von booleschen Ergebnissen verwenden; ist der Ausdruck wahr (True), wird die Beschränkung für das Element angewendet, andernfalls wird die Beschränkung vom Element ignoriert.
Beim Erstellen eines Netzwerk-Datasets durchsucht die Erweiterung Erweiterung "ArcGIS Network Analyst" alle Quellen nach häufig verwendeten Feldern, z. B. "Oneway". Wenn ein Feld mit dem Namen "Oneway" in einer Quelle gefunden wird, erstellt Network Analyst ein Einbahnstraßen-Netzwerkattribut und weist den relevanten Quellen basierend auf Feldausdrücken Werte zu.
Unten sind zwei Bildschirmaufnahmen des VBScript-Ausdrucks für ein Einbahnstraßen-Restriktionsattribut dargestellt. Für jede Digitalisierrichtung der Straße gibt es einen Evaluator und einen Ausdruck.
Diese Ausdrücke bestimmen die erlaubten Fahrtrichtungen basierend auf dem Textwert im Feld "Oneway":
- "FT" oder "F" bedeutet, dass das Fahren nur in der Digitalisierrichtung des Linien-Features (in der Richtung "Von-Bis") erlaubt ist.
- "TF" oder "T" bedeutet, dass das Fahren entgegen der Digitalisierrichtung des Linien-Features (in der Richtung "Bis-Von") erlaubt ist.
- "N" bedeutet, dass das Fahren in keiner Richtung erlaubt ist.
- Alle anderen Werte bedeuten, dass das Fahren in beiden Richtungen erlaubt ist.
Obwohl die Verwendung von VBScript für Netzwerk-Evaluatoren empfohlen wird, müssen Sie Skripte in Python schreiben, wenn der Evaluator auf ArcGIS for Server (Linux) ausgeführt wird. Die Eingaben in die Abschnitte Pre-Logic Script Code und Wert = im Evaluator-Dialogfeld sind für VBScript und Python unterschiedlich.
Für VBScript schreiben Sie einen Ausdruck in Pre-Logic Script Code, mit dem eine Variable festgelegt wird, und anschließend setzen Sie Wert = auf diese Variable.
Um einen Python-Evaluator zu schreiben, müssen Sie eine Funktion in das Textfeld Pre-Logic Script Code eingeben, die mit dem Schlagwort def beginnt, an einem Punkt einen Wert mit dem Schlagwort return zurückgeben und dann die Funktion vom Textfeld Wert = aufrufen. Nachfolgend sind zwei Bildschirmaufnahmen dargestellt, die erläutern, wie ein Python-Feld-Evaluator zum Festlegen einer Einbahnstraßen-Restriktion geschrieben wird. Vergleichen Sie diese mit dem weiter oben aufgeführten Beispiel für VBScript, um ein besseres Verständnis der Unterschiede beim Schreiben von Evaluator-Ausdrücken in VBScript und Python zu erlangen.
Parameter "Restriction Usage"
Ein Beschränkungsattribut verfügt immer über einen zugeordneten Parameter mit dem Namen "Restriction Usage", durch den bestimmt wird, ob Elemente, die die Beschränkung verwenden, unzulässig sind, nur vermieden oder sogar bevorzugt werden. In den meisten Fällen legen Sie den Parameter "Restriction Usage" auf "Unzulässig" fest, in manchen Fällen können Sie jedoch eine andere Wahl treffen.
Zuweisen von Hierarchien
Sie können Kanten in andere hierarchische Ebenen kategorisieren und so die Berechnungszeit verringern, indem Sie Hierarchien im Netzwerk-Dataset zuweisen. Beachten Sie jedoch, dass Ergebnisse von hierarchischen Berechnungen weniger optimal als nicht-hierarchische Berechnungen sein können. Es wird empfohlen, dass Sie auch Netzwerkanalyse mit Hierarchie lesen, um besser zu verstehen, was Hierarchien sind und warum sie verwendet werden könnten.
Hierarchieebenen werden von aufeinander folgenden Ganzzahlwerten definiert, beginnend bei eins. Die niedrigste Ganzzahl – das heißt, eins – stellt die höchste Ebene der Hierarchie dar. Höhere Ganzzahlwerte stellen niedrigere Hierarchieebenen dar. Wenn Sie zum Beispiel ein Netzwerk in drei Hierarchieebenen aufgliedern, würden Sie den Hauptstraßen den Wert 1 zuweisen, Nebenstraßen den Wert 2 und tertiären Straßen den Wert 3. Die Hauptstraßen könnten Autobahnen und Bundesstraßen einschließen, während tertiäre Straßen Wohnstraßen einschließen könnten.
In einem Netzwerk-Dataset wird die Hierarchie oft über einen Evaluator für Felder oder Feldausdrücke zugewiesen. Wenn die Streets-Feature-Class über ein Straßenklassen-Attribut (Hierarchie) mit Werten 1, 2 und 3 (z. B. für Autobahnen, Hauptstraßen bzw. Nebenstraßen) verfügt, kann das Hierarchieattribut ganz einfach mithilfe des Feld-Evaluators festgelegt werden.
In der Regel werden einem Hierarchieattribut drei, vier oder fünf Ebenen der Hierarchie zugewiesen, aber Sie können beliebig viele zuweisen, solange jede Ebene durch eine aufeinander folgende Ganzzahl dargestellt wird, beginnend mit 1. Sie sollten aber vermeiden, zu viele Hierarchieebenen zuzuweisen, da ansonsten einige Kanten in Bezug auf den Rest der Hierarchie getrennt sein könnten, was bei der Berechnung von Netzwerkanalyse-Layern zu Fehlern führen kann.
Wenn die Quell-Feature-Class über ein Attribut verfügt, das Straßen in mehr Gruppen kategorisiert, als Sie Ebenen in der Hierarchie verwenden möchten, können Sie die Gruppen mit einem Evaluator für Feldausdrücke weiter kategorisieren, damit Sie die gewünschte Anzahl der Hierarchieebenen erreichen. Nehmen Sie z. B. an, eine Streets-Feature-Class weist ein Ganzzahlfeld mit dem Namen "Func_Class" auf, das über die folgenden sechs Straßenklassen verfügt:
Func_Class |
Straßenart |
---|---|
1 |
Autobahn |
2 |
Gebührenpflichtige Autobahn |
3 |
Bundesstraße |
4 |
Hauptstraße |
5 |
Ortsstraße |
6 |
Autobahnauffahrt bzw. -ausfahrt |
Nehmen Sie weiterhin an, dass Sie die Func_Class-Werte gruppieren möchten, wie in der folgenden Tabelle dargestellt, damit drei Hierarchieebenen erzeugt werden.
Hierarchieebene | Func_Class-Werte |
---|---|
1 | 1 (Autobahnen) 2 (gebührenpflichtige Autobahnen) 6 (Autobahnauffahrten bzw. -ausfahrten) |
2 | 3 (Bundesstraßen) 4 (Hauptverkehrsstraßen) |
3 | 5 (Ortsstraßen) |
Um dieses Szenario zu modellieren, fügen Sie den Feld-Evaluatoren des Attributs "Hierarchie" ein Skript hinzu. Sie können es wahlweise in VBScript oder in Python-Skript schreiben. In dem Beispiel unten, das in VBScript erstellt wurde, wird eine Variable mit dem Namen level erstellt und auf 3 (die niedrigste Hierarchieebene in diesem Beispiel) festgelegt. Als Nächstes wird folgende Bedingung festgelegt: Wenn "Func_Class" den Wert 1, 2 oder 6 hat, soll level der Wert 1 zugewiesen werden. Wenn "Func_Class" den Wert 3 oder 4 hat, soll level der Wert 2 zugewiesen werden. In allen anderen Fällen bleibt der Wert bei 3. Das Textfeld Wert enthält den Text level, sodass die Auswertung des Hierarchienetzwerkattributs den Wert ergibt, der am Ende des Skripts dargestellt wird.
Dadurch wird sichergestellt, dass allen Elementen mit den Werten 1, 2 oder 6 für "Func_Class" der Hierarchiewert 1 zugewiesen wird. Alle Elemente mit den Werten 3 oder 4 für "Func_Class" erhalten den Hierarchiewert 2 und allen anderen Elementen (also mit dem Wert 5 für "Func_Class") wird der Hierarchiewert 3 zugewiesen.
Vor ArcGIS 10 wurde das Dialogfeld Hierarchiebereiche verwendet, um mehrere Feldwerte in genau drei Hierarchieebenen zu konvertieren. Jetzt besteht jedoch der einzige Zweck darin, beim Arbeiten mit einem globalen Evaluator für Verzögerung bei Kantenübergängen oder beim Festlegen von Skalenbereichen für die Verkehrsanzeige Haupt-, Neben- und Ortsstraßen zu definieren. Dies bedeutet, dass das Dialogfeld Hierarchiebereiche keine Auswirkungen auf das Hierarchieattribut des Netzwerk-Datasets hat. Es wirkt sich vielmehr nur auf den globalen Evaluator für Verzögerung bei Kantenübergängen aus.
Wenn ein globaler Evaluator für Verzögerung bei Kantenübergängen mit einem Hierarchieattribut verwendet wird, müssen Kanten in drei Klassen kategorisiert werden: Orts-, Neben- und Hauptstraßen. Da mit einem Hierarchieattribut eine beliebige Anzahl von Hierarchieebenen erstellt werden kann, können Sie diese Ebenen mit dem Dialogfeld Hierarchiebereiche in genau drei Straßenklassen gruppieren. So können Sie Kosten angeben, die Kantenübergängen auf der Basis von Straßenklassen standardmäßig hinzugefügt werden. Beispielsweise können Sie allen Kantenübergängen nach links von Nebenstraßen auf Ortsstraßen eine Verzögerung von 10 Sekunden und allen Kantenübergängen nach links von Ortsstraßen auf andere Ortsstraßen eine Verzögerung von 3 Sekunden hinzufügen. Beim Verwenden von Straßenklassen mit dem globalen Evaluator für Verzögerung bei Kantenübergängen sind viele weitere Kantenübergangskombinationen möglich.
Weitere Informationen zum Festlegen von globalen Kantenübergängen
Skalenbereiche können beim Anzeigen von Verkehr festgelegt werden. Wenn Sie also eine Landkarte vergrößern, werden alle Straßen mit Verkehr angezeigt. Beim Verkleinern werden nacheinander die Ortsstraßen, die Nebenstraßen und schließlich die Hauptstraßen aus der Anzeige ausgeblendet. Dadurch wird die Verkehrskarte übersichtlich gehalten und zeigt nur die Straßenhierarchieebenen an, die für die verschiedenen Kartenmaßstäbe relevant sind. Die Maßstabbereiche werden bezüglich der angegebenen Hierarchiebereiche über das Dialogfeld Hierarchiebereiche festgelegt.