Um die Performance und Skalierbarkeit von Feature-Overlay-Werkzeugen wie Vereinigen (Union) und Überschneiden (Intersect) zu verbessern, wird eine Funktionslogik, adaptive Unterteilung hinzugefügt. Diese Logik kommt immer dann zum Einsatz, wenn Daten aufgrund des beschränkten physikalischen Speichers nicht verarbeitet werden können. Um den Vorgang innerhalb des verfügbaren Arbeitsspeichers ausführen zu können und dadurch die Performance erheblich zu steigern, erfolgt die Verarbeitung schrittweise an mehreren Unterteilungen der ursprünglichen Ausdehnung. Features, die über die Kanten dieser Unterteilungen (auch Kacheln genannt) hinausreichen, werden an den Kanten der Kacheln geteilt und im letzten Verarbeitungsschritt wieder zu einem Feature zusammengesetzt. Die an den Kachelkanten eingefügten Stützpunkte bleiben in den Ausgabe-Features erhalten. Kachelgrenzen können auch in der Ausgabe-Feature-Class belassen werden, wenn ein zu verarbeitendes Feature so groß ist, dass das Feature mit dem verfügbaren Arbeitsspeichers nicht wieder in seinen Originalzustand zurückversetzt werden kann.
Warum werden die Daten unterteilt?
Die Werkzeuge zur Überlagerungsanalyse bieten die beste Performance, wenn die Verarbeitung vollständig innerhalb des auf dem Computer verfügbaren physischen Arbeitsspeichers (freier Speicher, der weder vom System noch von anderen Anwendungen genutzt wird) erfolgen kann. Wenn Sie mit Datasets arbeiten, die eine große Anzahl von Features, sehr komplexe Features mit komplexer Feature-Interaktion oder Features, die Tausende oder Millionen von Stützpunkten (oder eine Kombination dieser drei) enthalten, ist dies in manchen Fällen nicht mehr möglich. Wenn keine Kacheln verwendet werden, ist der verfügbare Speicher schnell erschöpft und das Betriebssystem nutzt ein Auslagerungssystem (Verwendung eines sekundären Speichers als Hauptspeicher). Eine Auslagerung führt zu Performance-Einbußen, sodass dem System zu einem bestimmten Zeitpunkt nicht genügend Ressourcen zur Verfügung stehen und der Vorgang fehlschlägt. Mithilfe der Kachelerstellung kann dies weitgehend vermieden werden. In extremen Fällen wird die Verwaltung des Speichers für die Verarbeitung an das System übergeben, um die Verarbeitung abzuschließen, indem dem Betriebssystem alle Ressourcen zu diesem Zweck zur Verfügung gestellt werden.
Wie sehen die Kacheln aus?
Jeder Prozess beginnt mit einer einzelnen Kachel, die sich über die gesamte Ausdehnung der Daten erstreckt. Wenn die Daten in dieser Kachel zu umfangreich sind, um im physikalischen Speicher verarbeitet werden zu können, wird die Kachel in vier gleich große Kacheln unterteilt. Anschließend beginnt die Verarbeitung mit einer der Unterkacheln, die ggf. weiter unterteilt wird, falls die Daten in den Unterkacheln noch immer nicht vollständig im Arbeitsspeicher verarbeitet werden können. Dieser Vorgang wird so oft wiederholt, bis jede Kachel innerhalb des physikalischen Speichers verarbeitet werden kann. Siehe folgendes Beispiel:
Footprint aller Eingabe-Features
Der Prozess beginnt mit einer Kachel, die die gesamte Ausdehnung aller Datasets umfasst. Diese wird Kachelebene 1 genannt.
Wenn die Daten zu umfangreich für eine Verarbeitung im Speicher sind, wird die Kachel der Ebene 1 in vier gleich große Kacheln unterteilt. Diese vier Unterkacheln bilden Kachelebene 2.
Je nach Datenmenge in jeder Kachel werden einige Kacheln möglicherweise weiter unterteilt, andere Kacheln jedoch nicht.
Bei welchen Werkzeugen werden Unterteilungen verwendet?
Bei folgenden Werkzeugen in der Toolbox "Analysis Tools" kommt bei großen Datenmengen die Unterteilungslogik zum Einsatz:
- Puffer (bei Verwendung der Dissolve-Option)
- Ausschneiden
- Radieren
- Verschneiden (Identity)
- Überschneiden (Intersect)
- Teilen
- Symmetrische Differenz
- Vereinigen (Union)
- Aktualisieren
Bei diesen Werkzeugen der Toolbox "Data Management" kommt bei großen Datasets ebenfalls die Unterteilungslogik zum Einsatz:
- Zusammenführen (Dissolve)
- Feature in Linie
- Feature in Polygon
- Polygon in Linie
Verarbeitung schlägt aufgrund von unzureichendem Arbeitsspeicher fehl
Die Unterteilungsmethode reicht bei sehr großen Features, die mehrere Millionen Stützpunkte besitzen, ggf. nicht mehr aus. Das mehrmalige Unterteilen und Zusammensetzen sehr großer Features über Kachelkanten hinweg ist äußerst speicherintensiv und kann zu Speicherfehlern führen, wenn das Feature zu groß ist. Dies hängt davon ab, wie viel Speicher (freier Speicherplatz, der weder vom System noch von anderen Anwendungen genutzt wird) auf dem Computer verfügbar ist, auf dem der Vorgang ausgeführt wird. Es kann sein, dass einige große Features nur bei bestimmten Computerkonfigurationen zu einem Fehler aufgrund von unzureichendem Arbeitsspeicher führen. Der Speicherfehler kann auf demselben Computer auch nur gelegentlich auftreten, und zwar in Abhängigkeit von den Ressourcen, die gerade von anderen Anwendungen genutzt werden. Beispiele für sehr große Features mit vielen Stützpunkten sind Straßenumrisse für eine ganze Stadt oder ein Polygon für eine komplexe Flussmündung.
Die Meldung "Nicht genügend Speicher" kann auch auftreten, wenn während der Verarbeitung durch ein Werkzeug noch eine weitere Anwendung oder ein anderes Geoverarbeitungswerkzeug ausgeführt wird. Dieser zweite Vorgang nutzt unter Umständen einen Teil des verfügbaren Speichers, den der Unterteilungsvorgang als verfügbar eingeplant hat, sodass der Unterteilungsvorgang mehr Speicher in Anspruch nimmt, als eigentlich verfügbar ist. Führen Sie deshalb keine weiteren Vorgänge auf dem Computer aus, während Sie große Datasets verarbeiten.
Ein empfohlenes Verfahren ist die Verwendung des Werkzeugs Stückeln zum Unterteilen großer Features in kleinere Features vor der Verarbeitung.
Welches Datenformat wird für umfangreiche Daten empfohlen?
Für Personal-Geodatabases und Shapefiles gilt eine Größenbeschränkung von 2 GB. Falls die Ausgabe eines Vorgangs diese Größe überschreitet, können Fehler auftreten. Für Enterprise- und File-Geodatabases gilt diese Beschränkung nicht. Daher werden diese Formate als Ausgabe-Workspace empfohlen, wenn Sie sehr große Datasets verarbeiten. Bei Enterprise-Geodatabases wenden Sie sich an den Datenbankadministrator, um Informationen zu den Richtlinien zum Laden von Daten zu erhalten. Für das ungeplante/nicht genehmigte Laden großer Datenmengen können Einschränkungen gelten.