Gibt es eine Möglichkeit, unterschiedliche Werte aus einer Spalte in ArcMap auszuwählen? Ich habe die Daten sowohl im GDB- als auch im SHP-Format. Ich habe nach Auswahlmöglichkeiten mit SQL, QueryLayers, ModelBuilder und einzelnen Toolboxen gesucht und es erscheinen als Auswahlmöglichkeiten immer SELECT * FROM tableName WHERE ...
In SQL würde ich SELECT DISTINCT columnName FROM tableName schreiben.
arcgis-desktop
arcmap
select
Steve
quelle
quelle
Verwenden Sie ein Python-Listenverständnis.
Bei großen Datenmengen wäre es eine speichereffiziente Methode, einen Generatorausdruck zu verwenden .
quelle
fields
myList = set([row.getValue(fldName) for row in arcpy.SearchCursor(fcName, fields=fldName)])
Wenn Ihre Daten im PGDB-Format vorliegen, können Sie in den Dialogfeldern des Abfrage-Generators (Definitionsabfrage, Auswahl nach Attributen, Toolbox-Ausdrücken usw.) mithilfe einer Unterabfrage Folgendes ausführen:
SELECT * FROM tableName WHERE ...
Dies gibt die Datensätze zurück, für die die Werte in column_to_test_for_unique_values eindeutig sind.
quelle
Wenn Sie nur über eine Basislizenz (früher als ArcView bezeichnet) verfügen, können Sie die Tabellenansicht öffnen, mit der rechten Maustaste auf eine Spalte klicken und Zusammenfassen auswählen.
quelle
Wenn sich Ihre Daten in einer SDE (Spatial Database Engine) befinden, können Sie das ArcSDESQLExecute-Objekt von Python und arcpy verwenden. Mit dieser "Methode" kann man komplexe SQL übergeben.
quelle
Oder verwenden Sie Ihr Python-Skript, um nach CSV zu exportieren, und verwenden Sie dann die Python-API einer anderen Datenbank (z. B. SpatiaLite), um die CSV zu lesen und eine korrekte SQL-Abfrage innerhalb desselben Skripts auszuführen. Für einen großen Tisch ist dies möglicherweise ein kleines bisschen schneller als das Rollen Ihres eigenen Listenerstellers - keine Ahnung.
Wie auch immer Sie es tun, dies ist immer noch eine wirklich ärgerliche "Funktion" von ArcGIS.
quelle
Was ist mit der Verwendung von
distinct
in einer Unterabfrage (Folgendes gilt für eine FGDB-Feature-Class):Beachten Sie in der Hilfe (10.0), dass dies Einschränkungen hat:
quelle
Wie Justin vorschlägt. Normalerweise führe ich eine Zusammenfassung auf dem gewünschten Feld durch und führe dann auf dem DBF-Lauf eine kleine Berechnung durch, um jeden einzelnen Wert zu kategorisieren und diesen dann wieder mit dem Original zu verknüpfen.
Es ist der lange Weg, und Sie müssen Ihre bevorzugten Berechnungsmethoden anwenden. aber ...
Was auch immer die Arbeit erledigt.
quelle