Existe uma maneira de selecionar valores distintos de uma coluna no ArcMap? Eu tenho os dados nos formatos GDB e SHP. Eu procurei maneiras de selecionar usando SQL, QueryLayers, ModelBuilder e caixas de ferramentas individuais e ele aparece como todas as opções de seleção sempre SELECT * FROM tableName WHERE ...
No SQL, eu escreveria SELECT DISTINCT columnName FROM tableName.
arcgis-desktop
arcmap
select
Steve
fonte
fonte
Use uma compreensão da lista Python.
Para conjuntos de dados grandes, um método eficiente de memória seria usar uma expressão de gerador .
fonte
fields
argumento, por exemplomyList = set([row.getValue(fldName) for row in arcpy.SearchCursor(fcName, fields=fldName)])
Se seus dados estiverem no formato PGDB, você poderá fazer o seguinte nas caixas de diálogo do construtor de consultas (consulta de definição, selecionar por atributos, expressões da caixa de ferramentas etc.) usando uma subconsulta:
SELECT * FROM tableName ONDE ...
Isso retornará os registros para os quais os valores em column_to_test_for_unique_values são únicos.
fonte
Se você tiver apenas uma licença básica (anteriormente denominada ArcView), poderá abrir a visualização Tabela, clicar com o botão direito do mouse em uma coluna e selecionar Resumir.
fonte
Se seus dados estiverem em um SDE (mecanismo de banco de dados espacial), é possível usar o objeto ArcSDESQLExecute do python e do arcpy. Pode-se passar sql complexo usando esse "método".
fonte
Ou use seu script Python para exportar para CSV e, em seguida, use a API Python de outro banco de dados (digamos SpatiaLite) para ler o csv e fazer uma consulta SQL apropriada nele a partir do mesmo script. Para uma tabela grande, isso pode ser um pouco mais rápido do que lançar seu próprio construtor de listas - não sei.
Seja como for, este ainda é um "recurso" realmente irritante do ArcGIS.
fonte
Que tal usar a
distinct
em uma subconsulta (a seguir está em uma classe de recurso do FGDB):Observe na ajuda (10.0) que isso tem limitações:
fonte
Como Justin sugere. Normalmente faço um resumo no campo que desejo e, em seguida, faça uma seleção distinta no dbf, execute um pequeno cálculo para categorizar cada valor distinto e depois junte-o novamente ao original.
É o caminho mais longo, e você precisa usar os métodos de caclulação favoritos. mas ... O que
quer que faça o trabalho.
fonte