Ich versuche, ein großes Polygon-Dataset (~ 5 GB, Tausende von Features) durch ein viel kleineres Polygon-Dataset (~ 40 Features) zu beschneiden. Gibt es eine bewährte Methode oder einen effizientesten Weg, um diese Aufgabe auszuführen?
Der Standard- Geoprozessor-Clip wird auf unbestimmte Zeit für einen Datensatz dieser Größe ausgeführt. Wäre irgendeine Form der räumlichen Auswahl und des Exports effizienter?
EDIT : Einige gute Antworten unten. Ich habe die meiner Meinung nach gründlichste Antwort ausgewählt, aber jede Antwort bietet einen einzigartigen Einblick in das Problem. Vielen Dank!
arcgis-10.0
Radar
quelle
quelle
Antworten:
Wie immer bei Skalierbarkeitsproblemen ist es am besten, klein und einfach zu beginnen und sich stetig zu großen und komplexen hochzuarbeiten.
Im Fall von Clips sollte es intelligent genug sein, um mit großen Datenmengen umzugehen, da es sie intern kachelt . Versuchen Sie jedoch, Clip mit dem Eingabedatensatz (den zu beschneidenden Daten) und dem Clip-Dataset (den Daten, mit denen der Clip ausgeführt wird) mit vielen, viel weniger Funktionen auszuführen, da dies nicht funktioniert . Wie eine Clip-Funktion mit nur dem Bereich um sie herum im Eingabedatensatz (verwenden Sie Definitionsabfragen, um sie zu verkleinern). Stellen Sie sicher, dass alles in Ordnung ist, und erhöhen Sie dann den Umfang des Geoverarbeitungsvorgangs stetig, bis sich die Leistung verschlechtert.
Ein paar spezifische Ideen:
Lösen Sie die Clip-Features in eine einzelne, mehrteilige Feature-Class auf.
Reduzieren Sie die Dateigröße der Eingabefunktionen mithilfe von Polygon vereinfachen . Ein 5-GB-Vektordatensatz ist enorm - selbst ein Shapefile aller 250.000 US-Volkszählungsblockgruppen ist nur etwa 1 GB groß.
Teilen Sie die Eingabefunktionen in Teile auf. Theoretisch sollten die internen Kachelroutinen innerhalb des Geoverarbeitungswerkzeugs dies bereits tun, aber Sie wissen es nie. Möglicherweise liegt ein Problem mit der Beschränkung der 32-Bit-Dateigröße vor, bei dem kein Shapefile größer als 2 32 Byte = 4,29 GB sein kann.
Einige andere, allgemeinere Tipps zur Geoverarbeitung:
Stellen Sie sicher, dass beide Datensätze dasselbe Koordinatensystem haben. Wenn möglich, ist es schneller, beide in einem geografischen Koordinatensystem ohne Projektion zu haben.
Stellen Sie sicher, dass Ihnen kein Netzlaufwerk ausgeht. Verwenden Sie die schnellste lokale Festplatte oder, wenn möglich, eine SSD.
Laden Sie den Clip-Datensatz in den Speicher .
Löschen Sie nicht benötigte Attributfelder (und fügen Sie sie später bei Bedarf wieder hinzu).
Weitere Tipps zur Leistung der Geoverarbeitung .
quelle
Einige ArcGIS-Funktionen wie Union und Intersect verwenden die adaptive Unterteilungsverarbeitung, wie unter Kachelverarbeitung großer Datenmengen beschrieben . Leider sieht es so aus, als hätte Clip kein großes Geoverarbeitungswerkzeug.
Möglicherweise können Sie dieses Konzept über ein ModelBuilder- oder Python-Skript replizieren, das das Split-Tool (ArcInfo) verwendet , um übergroße Datasets zu verarbeiten.
quelle
Sie können auch ArcGIS aufgeben und versuchen, den Clip in OGR zu erstellen. Eine Erklärung finden Sie hier . Ich habe festgestellt, dass dies funktioniert, wenn nichts anderes funktioniert!
quelle
Ich denke, auch die Auswahl nach Ort wird für Sie funktionieren. Zuerst wählen Sie alle Polygone aus, die sich mit Ihrem kleineren Shapefile schneiden, und löschen sie dann. hoffentlich geht das schneller. Ich weiß, ob es für Sie funktioniert. Vielen Dank.
quelle