Ich versuche zu verstehen, wie ein Geoprozess mit ModelBuilder erstellt wird, weiß aber nicht, warum es wichtig ist, beim Erstellen eines Geoprozesses mit ModelBuilder Feature-Layer anstelle von Feature-Classes zu verwenden. Kann mir bitte jemand erklären warum?
9
Antworten:
Modelle können abhängig von ihrer Größe und Komplexität viele Unterprozessausgabeschichten aufweisen. Um zu vermeiden , dass Dateien auf Ihre Festplatte geschrieben werden, verwenden Sie bei einigen Tools Feature-Layer (z. B. Feature-Auswahl iterieren oder Nach Attribut auswählen ). Feature-Layer sind temporär und bleiben nach dem Ende Ihres Modells nicht bestehen.
Siehe Make Feature Layer
quelle
Es gibt mehrere Gründe, warum Sie im Gegensatz zu Feature-Classes auf Feature-Layer in ModelBuilder verweisen möchten. Zunächst ist es hilfreich, die Unterschiede zu verstehen.
Vor diesem Hintergrund gibt es einige Gründe, warum Sie das Werkzeug "Feature-Layer erstellen" als Vermittler zwischen den Rohdaten und anderen Geoverarbeitungswerkzeugen verwenden möchten.
Wenn Sie ein Modell aus ArcCatalog ausführen oder Ihr Modell in ein Python-Skript exportieren möchten, das außerhalb von ArcGIS ausgeführt werden kann, müssen Sie "Feature-Layer" verwenden, damit Ihre Rohquelldaten in "Layer" konvertiert werden. Dies wäre analog zum "Hinzufügen von Daten" zu Ihrer ArcMap-Sitzung.
Durch die Verwendung von Ebenen können Sie Ihre Daten im ModelBuilder-Prozess ganz einfach unterteilen. Angenommen, Sie möchten alle Daten mit dem Attribut "A" mit einer Methode verarbeiten, aber alle Daten mit dem Attribut "B" mit einer anderen Methode. Sie können Ihre Rohdaten einmal referenzieren, dann die Daten mithilfe von Feature-Layern in zwei "Zweige" aufteilen und jeden Satz unabhängig verarbeiten, jedoch das einzelne Quellendatensatz beeinflussen / aktualisieren.
quelle
Durch das Einfügen temporärer Ebenen in Ihre Modelle wird auch die Verarbeitungszeit verkürzt. Unter dem Gesichtspunkt der Verarbeitung ist das Schreiben in den Speicher wesentlich effizienter als das Schreiben auf die Festplatte. In ähnlicher Weise können Sie temporäre Daten in den Arbeitsbereich in_memory schreiben , was auch rechnerisch effizienter ist.
Viele Vorgänge in ArcGIS erfordern temporäre Ebenen als Eingaben. Zum Beispiel ist " Ebene nach Ort auswählen" (Datenverwaltung) ein sehr leistungsfähiges und praktisches Tool, mit dem Sie Merkmale einer Ebene auswählen können, die räumliche Beziehungen mit einem anderen Auswahlmerkmal teilen. Sie können komplexe Beziehungen wie "HAVE_THEIR_CENTER_IN" oder "BOUNDARY_TOUCHES" usw. angeben.
Bearbeiten:
Betrachten Sie aus Neugier und um die Verarbeitungsunterschiede mithilfe von Feature-Layern und dem Arbeitsbereich in_memory zu erläutern, den folgenden Geschwindigkeitstest, bei dem 39.000 Punkte 100 m gepuffert sind:
Wir können sehen, dass die Methoden 2 und 3 äquivalent und ungefähr dreimal schneller als Methode 1 sind. Dies zeigt die Leistungsfähigkeit der Verwendung von Feature-Layern als Zwischenschritte in größeren Workflows.
quelle
in_memory
Arbeitsbereich geschriebene Daten sind weiterhin Daten (z. B. Feature-Classes und Tabellen), die weiterhin (möglicherweise viel) Speicherplatz beanspruchen. Feature-Layer hingegen sind eine Ansicht der Daten, mit der Sie eine Teilmenge der Daten auswählen und in nachfolgenden Prozessen verwenden können, anstatt Daten zu duplizieren, nur um eine Teilmenge davon zu erhalten. Feature-Layer nehmen fast keinen Platz ein. Ich stelle sie mir gerne als "Zeiger mit Metadaten" vor, z. B. zeigen sie auf einige Daten und beschreiben, wie sie abgefragt / gerendert werden.in-memory
Arbeitsbereich im Grunde eine Datei-Geodatabase ist, die sich im Speicher befindet, wenn Sie es so sehen möchten.