¿Hay alguna manera de seleccionar valores distintos de una columna en ArcMap? Tengo los datos en formatos GDB y SHP. He buscado formas de seleccionar usando SQL, QueryLayers, ModelBuilder y cajas de herramientas individuales y aparece como todas las opciones de selección siempre SELECT * FROM tableName WHERE ...
En SQL, escribiría SELECT DISTINCT columnName FROM tableName.
arcgis-desktop
arcmap
select
Steve
fuente
fuente
Use una lista de comprensión de Python.
Para grandes conjuntos de datos, un método eficiente de la memoria sería utilizar una expresión generadora .
fuente
fields
argumento opcional , por ejemplomyList = set([row.getValue(fldName) for row in arcpy.SearchCursor(fcName, fields=fldName)])
Si sus datos están en formato PGDB, puede hacer lo siguiente dentro de los cuadros de diálogo del generador de consultas (consulta de definición, selección por atributos, expresiones de la caja de herramientas, etc.) utilizando una subconsulta:
SELECCIONAR * DESDE tableName DONDE ...
Esto devolverá los registros para los cuales los valores en column_to_test_for_unique_values son únicos.
fuente
Si solo tiene una licencia Básica (anteriormente llamada ArcView), puede abrir la vista Tabla, hacer clic con el botón derecho en una columna y seleccionar Resumir.
fuente
Si sus datos están en un SDE (motor de base de datos espacial), puede usar el objeto ArcSDESQLExecute de python y arcpy. Uno puede pasar sql complejo utilizando este "método".
fuente
O use su secuencia de comandos de Python para exportar a CSV y luego use la API de Python de otra base de datos (digamos SpatiaLite) para leer el csv y realizar una consulta SQL adecuada desde el mismo script. Para una tabla grande, esto podría ser un poco más rápido que crear su propio generador de listas: no lo sé.
Independientemente de cómo lo haga, esta sigue siendo una "característica" realmente molesta de ArcGIS.
fuente
¿Qué pasa con el uso de a
distinct
en una subconsulta?Tenga en cuenta de la ayuda (10.0) que esto tiene limitaciones:
fuente
Como Justin sugiere. Normalmente hago un resumen en el campo que quiero, luego hago una selección distinta en el dbf, ejecuto un pequeño cálculo para clasificar cada valor distinto y luego lo vuelvo a unir al original.
Es el camino más largo, y tienes que enfrentarte a tus métodos de caclulación favoritos. pero ... lo que
sea que haga el trabajo.
fuente