Ich habe eine Feature-Class mit über 2.000 Features, und ich muss alle einzelnen Feature-Classes basierend auf einem Feld erstellen.
Gibt es eine Möglichkeit, dies zu tun?
Ich habe eine Feature-Class mit über 2.000 Features, und ich muss alle einzelnen Feature-Classes basierend auf einem Feld erstellen.
Gibt es eine Möglichkeit, dies zu tun?
Sie können das Werkzeug Teilen nach Attributen verwenden:
Teilt ein Eingabedataset nach eindeutigen Attributen auf
Es gibt Versionen für:
Split By Attributes
ständig einzelne.dbf
Tabellen und keine einzelnen Feature-Classes generiert . In ArcGIS Desktop 10.6 werden mit demselben Tool jedoch einzelne Shapefiles korrekt generiert . Ich verstehe nicht warum und habe die gleichen Ausgaben beim Versuch, das Arbeitsverzeichnis auf Ordner oder Geodatabase festzulegen.Sie können dies mit einem sehr einfachen Modell erreichen, wenn Sie ArcGIS 10.0 oder höher verwenden.
Erstellen Sie mit Feature Iterator ein Modell, bei dem das Feld Gruppieren nach das Attribut ist, das Sie auswählen möchten, und senden Sie die Ausgabe mithilfe der Inline-Ersetzung an das Tool zum Kopieren von Features, um einen eindeutigen Dateinamen sicherzustellen. Das Modell ist unten abgebildet:
quelle
Ich habe keinen Zugriff auf ArcMap 10, nur auf 9.3, aber ich gehe davon aus, dass es sich nicht wesentlich davon unterscheidet.
Sie können in Python ein einfaches Skript erstellen, das Ihr Attributfeld auf unterschiedliche Werte überprüft und dann für jedes von ihnen eine SELECT-Operation für Ihr ursprüngliches Shapefile ausführt.
Wenn Sie mit Python-Skripten nicht vertraut sind, müssen Sie nur die IDLE-Datei (die Python-GUI) öffnen, eine neue Datei erstellen und den folgenden Code kopieren. Nachdem Sie den Code für my_shapefile, outputdir und my_attribute angepasst haben, sollte er funktionieren.
quelle
Wurde das Werkzeug "Layer nach Attributen teilen" für ArcMap 10 hier aktualisiert ? Wenn es nicht funktioniert, können Sie Split (Analyse) für Ihre Bedürfnisse verwenden.
Beispiel Code:
quelle
Split By Attribute
Funktionalität beschreibt und Ihre Antwort sich hauptsächlich darauf beziehtSplit [By Geometry]
.Ich habe das Skript von @ AlexandreNeto verwendet und es für ArcGIS 10.x- Benutzer aktualisiert . Hauptsächlich müssen Sie jetzt "arcpy" anstelle von "arcgisscripting" importieren:
quelle
Dies ist eine noch einfachere Möglichkeit ... und es wird in eine GDB ausgegeben.
http://www.umesc.usgs.gov/management/dss/split_by_attribute_tool.html
Lade das Tool von USGS herunter und brauchte 3 Minuten, um das zu tun, was ich 1 Stunde lang versucht hatte.
quelle
Ich weiß, dass Sie einen Iterator in Model Builder verwenden können, aber wenn Sie Python bevorzugen, habe ich mir das ausgedacht. Fügen Sie das Skript einer Toolbox mit den Parametern in der Reihenfolge Eingabedatei, Felder (mehrwertig, von der Eingabe erhalten) und Arbeitsbereich hinzu. Dieses Skript teilt das Shapefile basierend auf den ausgewählten Feldern in mehrere Shapefiles auf und gibt sie in einem Ordner Ihrer Wahl aus.
quelle
Ich habe es schließlich mit SearchCursor und Select_analysis arbeiten
quelle
Ich bin nicht mit den Werkzeugen zur Auswahl von Iterationsfunktionen in ModelBuilder vertraut, aber wenn Sie nur diese als Python-Code exportieren, können Sie sie mit arcpy aufrufen.
quelle
Sie können einen Suchcursor verwenden, um einzelne Features in einer Feature-Class zu durchlaufen und nur die Geometrien in eindeutige Feature-Classes zu schreiben. In diesem Beispiel verwende ich eine Feature-Class aus den USA und exportiere die Bundesstaaten in neue Shapefiles:
quelle
cursor
Vorgänge erfordern .Sie können ein Geometrietoken (SHAPE @) in Copy Features (Data Management) verwenden , um jedes Feature zu exportieren.
quelle
In Arcpy berücksichtigen Cursor die Layer- / TableView-Auswahl. Laut Liste der ausgewählten Features in ArcGIS for Desktop mit Python-Code abrufen?können Sie einfach die Feature-Auswahl iterieren.
Wenn Sie jedoch mit arcpy eine Auswahl treffen möchten, verwenden Sie das Tool SelectLayerByAttribute_management .
quelle