Zufallszahlengeneratoren und -ströme
Zufallszahlen werden über Algorithmen generiert. Dabei wird eine Folge von Zufallszahlen anhand von Startwerten (Seed Values) und anderen Parametern erzeugt. Eine solche Reihe von Zufallszahlen wird als Zufallszahlenstrom bezeichnet. Beim Erstellen von Modellen mit Zufallszahlen muss unbedingt verfolgt werden, aus welchem Strom die Zufallszahlen stammen. In manchen Fällen können alle Zufallszahlen für die unterschiedlichen Prozesse aus demselben Strom stammen, während in anderen Fällen jeder Prozess einen eigenen Strom benötigt.
Zum Erstellen von Zufallszahlen stehen viele unterschiedliche Zahlengeneratoren zur Verfügung. In ArcGIS werden zum Generieren von Zufallswerten drei Methoden (die Generatortypen) verwendet: die Standard-C-Funktion "Rand()", der ACM-Sammelalgorithmus 599 und Mersenne Twister mt19937. Es kann sein, dass Sie die Ergebnisse von Modellen reproduzieren möchten, in denen Zufallszahlen verwendet werden. Um die Reproduzierbarkeit in Modellen sicherzustellen, kann ein Startwert als Parameter hinzugefügt werden. Wenn Sie denselben Startwert für zwei unterschiedliche Ausführungen eines einzelnen Modells angeben, in dem Zufallswerte verwendet werden, erzeugt das Modell dieselben Ergebnisse.
Der Zufallszahlengenerator wird entweder global in den Umgebungseinstellungen oder in einem beliebigen Werkzeug angegeben, das Zufallswerte verwendet, z. B. Wert berechnen, Feld berechnen, Zufälliges Raster erstellen oder Zufällige Punkte erstellen. Der Zufallszahlengenerator startet einen Strom von Zufallszahlen, der auf dem Generatortyp und dem Startwert basiert. Die Zahlen werden nach dem Zufallsprinzip bestimmt, und die Werte liegen zwischen 0 und 1. Die Zahlen werden nach Bedarf erstellt.
In vielen Fällen ist es nicht effektiv, einem Werkzeug reine Zufallswerte hinzuzufügen, z. B. wenn die Werte zum Modellieren der Unsicherheit in den Eingabedaten oder Modellparametern verwendet werden. In den meisten Fällen sind A-priori-Informationen zur Verteilung der Unsicherheit in den Eingabedaten oder Parametern im Modell bekannt. Werkzeuge wie "Zufälliges Raster erstellen", "Wert berechnen" und "Feld berechnen" rufen Zahlen aus dem Zufallszahlenstrom ab und transformieren diese anhand der im Werkzeug angegebenen Verteilung. Wenn Sie z. B. einer Eingabe-Höhenoberfläche mit einer Genauigkeit von plus/minus zwei Fuß Zufallswerte hinzufügen und das Modell in einer Fehleranalyse oftmals ausgeführt wird, sollten Werte zwischen 0 und 1 von mehr Ausprägungen als Werte zwischen 1 und 2 hinzugefügt werden. Wenn Sie Zufallswerte verwenden, können der Wertebereich, die zu verwendende Verteilung (z. B. Normal oder Poisson) und die Verteilungsparameter (z. B. die Standardabweichung) angegeben werden. Jeder Wert ist von den anderen Werten unabhängig.
Zum Zuweisen (oder Transformieren) der Werte in den Werkzeugen, die Verteilungen verwenden (z. B. "Zufälliges Raster erstellen", "Wert berechnen" und "Feld berechnen"), stehen Ihnen mehrere Verteilungen zur Verfügung. Die Verteilungen führen im Allgemeinen zu unterschiedlichen Ergebnissen, und die auszuwählende Verteilung wird durch den Endzweck bestimmt. Die ausgewählte Verteilung sollte die beste Repräsentation des modellierten Prozesses darstellen.
Eine Beschreibung der verfügbaren Verteilungen und ihrer Verwendung finden Sie unter Verteilungen zum Zuweisen von Zufallswerten. Die Syntax und Parameter für die einzelnen Verteilungen finden Sie unter Die Verteilungssyntax für Zufallswerte.
Globales Festlegen des Zufallszahlenstroms
Der Typ und der Startwert des Zufallszahlengenerators werden im Dialogfeld "Umgebungseinstellungen" im Abschnitt mit den Optionen für Zufallszahlen festgelegt. Alle nachfolgenden Werkzeuge, in denen Zufallswerte verwendet werden (ArcGIS.Rand() [in "Wert berechnen" und "Feld berechnen"], "Zufälliges Raster erstellen" und "Zufällige Punkte erstellen") rufen Werte aus dem Datenstrom ab. Da jedes Werkzeug eine Zufallzahl benötigt, ruft es den nächsten Wert aus dem globalen Zufallszahlenstrom ab.
Erstellen unterschiedlicher Zufallszahlenströme für jeden Prozess
Sie können für jeden Prozess einen eigenen Zahlenstrom verwenden, um sicherzustellen, dass der Prozess von den anderen Zufallszahlenströmen unabhängige Zufallszahlen verwendet, und um die Ergebnisse nicht zu verzerren oder die Ausgabe zu reproduzieren. Sie können einen Zahlenstrom lokal erstellen, indem Sie den Zufallszahlengenerator und den Startwert lokal festlegen (z. B. per Klick auf die Schaltfläche "Umgebungen" eines Werkzeugs oder per Rechtsklick in ModelBuilder auf ein Werkzeug und anschließendem Klick auf die Schaltfläche "Eigenschaften"). Ein neuer Zufallszahlenstrom wird erstellt, und falls dieses Werkzeug einen Zufallswert benötigt, ruft es ihn aus diesem neu erstellten Strom ab. Bei der Iteration des Modells ruft das Werkzeug, dem der Zufallszahlenstrom zugewiesen ist, weiterhin bei jeder Iteration Werte aus dem lokalen Strom ab. Andere Werkzeuge rufen keine Werte aus dem Strom ab.
Sie können innerhalb eines Modells beliebig viele lokale Ströme starten. Außerdem können mehrere Werkzeuge Zufallswerte aus dem globalen Zahlenstrom abrufen, während andere Werkzeuge Werte aus dem eigenen lokalen Strom abrufen.
Ändern eines Parameters nach dem Zufallsprinzip
Zum Hinzufügen von Zufälligkeit zu einem Parameter in einem ModelBuilder-Modell sind 5 Schritte erforderlich. Im folgenden ModelBuilder-Beispiel wird der Z-Faktor für die Neigungsfunktion von Spatial Analyst nach dem Zufallsprinzip geändert.
- Fügen Sie aus der Toolbox "Spatial Analyst Tools" das Werkzeug "Neigung" hinzu.
- Fügen Sie aus der Toolbox "Data Management Tools" das Werkzeug "Wert berechnen" hinzu.
- Geben Sie einen Ausdruck in das Werkzeug "Wert berechnen" ein, und wenn dem Ausdruck Zufälligkeit hinzugefügt werden soll, geben Sie im Ausdruck die Funktion "ArcGIS.Rand()" mit einer arithmetischen Operation (oder einem beliebigen Ausdruck) ein. Der in diesem Beispiel zu verarbeitende Ausdruck lautet arcgis.rand("Normal 2 2") * 2.
- Um eine Beziehung zwischen der Ausgabe von "Wert berechnen" und dem Parameter herzustellen, dem die Zufälligkeit hinzugefügt werden soll (Z-Faktor im Werkzeug "Neigung"), öffnen Sie das Werkzeug "Neigung" und wählen im Feld "Z-Faktor" den Namen der Ausgabevariablen in der Dropdown-Liste (output_value) aus.
- Klicken Sie mit der rechten Maustaste auf das Werkzeug "Neigung", klicken Sie auf "Eigenschaften", und legen Sie die Ausgabe des Werkzeugs "Wert berechnen" als Vorbedingung für das Werkzeug "Neigung" fest. Mit diesem letzten Schritt stellen Sie sicher, dass der Ausdruck im Werkzeug "Wert berechnen", der Z-Faktor, stets vor der Ausführung des Werkzeugs "Neigung" berechnet wird.
- Führen Sie das Modell aus.
Erstellen von Zufallswerten für zufällig platzierte Punkte
Das Zuweisen von Zufallswerten zu nach dem Zufallsprinzip platzierten Punkten erfolgt in drei Schritten. Zuerst wird mit dem Werkzeug "Zufällige Punkte erstellen" eine festgelegte Anzahl von Punkten platziert. Im zweiten Schritt wird mit dem Werkzeug "Feld hinzufügen" in dem mit dem Werkzeug "Zufällige Punkte erstellen" erzeugten Ausgabe-Feature-Layer ein neues Feld erstellt. Im dritten Schritt werden dem neu erstellten Feld mit dem Werkzeug "Feld berechnen" Zufallswerte zugewiesen. Hierfür wird die Funktion "ArcGIS.Rand()" mit einer Verteilung als einfacher Ausdruck oder über die Funktion "ArcGIS.Rand()" in einem komplexen Ausdruck direkt verwendet.