Tenho uma classe de recursos com mais de 2.000 recursos e preciso transformá-los em todas as classes de recursos individuais com base em um campo.
Existe uma maneira de fazer isso?
Tenho uma classe de recursos com mais de 2.000 recursos e preciso transformá-los em todas as classes de recursos individuais com base em um campo.
Existe uma maneira de fazer isso?
Você pode usar a ferramenta Dividir por atributos:
Divide um conjunto de dados de entrada por atributos exclusivos
Existem versões disponíveis para:
Split By Attributes
gera constantemente.dbf
tabelas individuais , não classes de recursos individuais. Porém, no ArcGIS Desktop 10.6, a mesma ferramenta gera corretamente shapefiles individuais . Não entendo o porquê e obtive as mesmas saídas tentando definir o diretório de trabalho para a pasta ou o geodatabase.Você pode conseguir isso com um modelo muito simples se tiver o ArcGIS 10.0 ou superior.
Crie um modelo com o Feature Iterator em que o grupo por campo é o atributo que você deseja selecionar e envie a saída para a ferramenta de recursos de cópia usando a substituição em linha para garantir um nome de arquivo exclusivo. O modelo é mostrado abaixo:
fonte
Não tenho acesso ao ArcMap 10, apenas 9.3, mas espero que não seja muito diferente disso.
Você pode criar um script simples em Python, que verifica o seu campo de atributo em busca de valores diferentes e, em seguida, cada um deles executa uma operação SELECT no Shapefile original.
Se você não estiver familiarizado com scripts python, tudo o que você precisa fazer é abrir o IDLE (a GUI do python), criar um novo arquivo e copiar o código abaixo. Depois de adaptar o código para o meu my_shapefile, outputdir e my_attribute devem funcionar.
fonte
Você viu a ferramenta Dividir camada por atributos atualizada para o ArcMap 10 aqui ? Se não funcionar, você pode usar o Split (Analysis) para suas necessidades.
Código de exemplo:
fonte
Split By Attribute
funcionalidade e sua resposta seja principalmenteSplit [By Geometry]
.Usei o script do @ AlexandreNeto e atualizei-o para usuários do ArcGIS 10.x. Agora você precisa importar "arcpy" em vez de "arcgisscripting":
fonte
Esta é uma maneira ainda mais fácil de fazer isso ... e gera em um GDB.
http://www.umesc.usgs.gov/management/dss/split_by_attribute_tool.html
baixar a ferramenta do USGS, levei 3 minutos para fazer o que eu estava tentando por 1 hora.
fonte
Eu sei que você pode usar um iterador no construtor de modelos, mas se você preferir usar python aqui, é algo que eu inventei. Inclua o script em uma caixa de ferramentas com os parâmetros em ordem como arquivo shp de entrada, campos (valores múltiplos, obtidos da entrada) e espaço de trabalho. Esse script dividirá o shapefile em vários shapefiles com base nos campos selecionados e os produzirá em uma pasta de sua escolha.
fonte
Acabei conseguindo trabalhar com o SearchCursor e o Select_analysis
fonte
Não estou familiarizado com as ferramentas Iterate Feature Selection no ModelBuilder, mas exportando apenas isso como código Python indica que elas podem ser chamadas usando o arcpy.
fonte
Você pode usar um Cursor de Pesquisa para percorrer recursos individuais em uma classe de recurso e gravar apenas as geometrias em classes de recurso exclusivas. Neste exemplo, eu uso uma classe de recurso dos EUA e exporto os estados para novos shapefiles:
fonte
cursor
operações.Você pode usar um token de geometria (SHAPE @) em Recursos de cópia (Gerenciamento de dados) para exportar cada recurso.
fonte
No Arcpy, os Cursores respeitam as seleções de camada / TableView. De acordo com a Lista de recursos selecionados no ArcGIS for Desktop usando o código Python?, você pode simplesmente iterar as seleções de recursos.
No entanto, se você quiser fazer uma seleção usando o arcpy, use a ferramenta SelectLayerByAttribute_management .
fonte