Mesclando tabelas de atributos de classes de recurso em tabela única?

8

Eu tenho um grande número (aproximadamente 1.100) classes de recursos de polígono.

O que eu gostaria de fazer é mesclar as tabelas de atributos de cada uma dessas classes de recursos em uma única tabela , da maneira mais simples e rápida possível.

Essa será a primeira etapa de um script ou modelo que, em seguida, usa essa tabela com todos os valores de polígonos de todas as camadas para executar algumas junções e seleções tabulares. Cada vez que executo esse script, desejarei refazer a mesclagem de tabelas, pois as classes de recurso de polígono subjacentes podem mudar. Se for possível gravar a tabela mesclada na memória, por velocidade, seria melhor.

Estou usando o ArcGIS 10.1. Acho que posso fazer isso com bastante facilidade no VBA / VB.net, mas pode ser mais simples configurá-lo como um modelo ModelBuilder, para facilitar o compartilhamento com os colegas.

user13706
fonte
Python é uma linguagem muito melhor para o geoprocessamento do que o VB.NET. O ArcPy apenas fornece muitas coisas úteis que você não obtém em outros ambientes.
Curtis Preço

Respostas:

8

Eu acho que pessoalmente faria o modelo executar a ferramenta Merge para gerar uma classe de recurso mesclada armazenada no in_memoryespaço de trabalho e, em seguida, usar a ferramenta Make Table View com essa classe de recurso mesclada como uma entrada para criar uma versão na memória da tabela de atributos .

A ferramenta Make Table View também oferece a flexibilidade de aplicar uma consulta SQL para filtrar a tabela.

nmpeterson
fonte
Comecei por este caminho. O ArcMap me ataca ao criar o modelo ModelBuilder, muito menos executá-lo. Os conjuntos de dados são tão grandes e numerosos que as limitações de memória de 32 bits são
ativadas
Gostaria de saber se reverter a ordem - criando duas visualizações de tabela e depois mesclando - seria mais fácil na sua estação de trabalho?
Npmeterson
1

Se você tiver um conjunto de campos que são os únicos que deseja, o Append_management copiará apenas os campos com uma correspondência de nome. Pode ser mais eficiente em termos de memória que o Merge. Se a memória ainda estiver acabando, você pode usar um iterador do ModelBuilder 10.x para anexá-los um de cada vez. Se você está escrevendo para in_memory e a tabela não fica muito grande, isso deve funcionar bem.

Outra coisa, se você realmente precisa de uma tabela (e não de uma saída de classe de recurso), provavelmente pode reduzir bastante a memória necessária criando visualizações de tabela a partir de suas entradas e anexando-as - para que você possa pular os campos de forma (talvez grandes) .

Preço de Curtis
fonte