Atualmente, estou jogando com o ModelBuilder. Adicionei uma foto do modelo que tenho no momento.
Atualmente, este modelo está iterando 6 arquivos de forma, de modo que cada um dos 'valores de saída' contenha 6 figuras em uma lista. Não consigo encontrar uma maneira de extrair os valores dessas listas em um arquivo de tabela / texto ou similar.
Existe uma maneira de fazer isso?
Isto é o que é mostrado quando abro 'valores de saída' depois de executar o modelo:
Eu só quero pegar esses 6 números de alguma forma ...
Respostas:
Você pode fazer isso usando a ferramenta Calcular valor (gerenciamento de dados) e alguma mágica do Python. Veja também esta pergunta relacionada: Adicionar código arbitrário ao construtor de modelos Arcgis?
Uma variável de múltiplos valores é apenas uma sequência de valores delimitada por ponto-e-vírgula; portanto, o que a
multivaluesToCsv
função abaixo faz é dividir as variáveis de múltiplos valores em listas e transpor essas linhas para linhas que são gravadas em um arquivo de texto CSV (valor separado por vírgula) .Os iteradores de modelo executam TODOS os processos no modelo uma vez por iteração - isso é indesejável para a ferramenta Calcular Valor, que queremos executar apenas uma vez no final. A maneira como você faz isso é criando outro modelo externo para envolver o modelo interno original. Isso é discutido no tópico da ajuda Integrando um modelo em um modelo .
Então, aqui está o que você precisa fazer para que isso funcione:
Modelo Interno - Repete as classes de recursos, processa-as e coleta valores:
Name
valores da variável, para que possamos mapear os valores estatísticos da distância para os nomes de classes de recursos correspondentes.Modelo externo - Executa o modelo interno, executa a ferramenta Calcular valor apenas uma vez quando o modelo interno é concluído:
Folder
para permitir que você especifique onde criar o arquivo CSV de saída.String
para permitir que você especifique o nome do arquivo CSV de saída.Cole o seguinte nas caixas apropriadas da ferramenta Calcular Valor:
Expressão :
r
antes"%Output CSV File Location%"
é significativo: isso indica que essa é uma sequência bruta ; como os caminhos do sistema de arquivos do Windows geralmente contêm barras invertidas (um caractere de escape no Python), precisamos usá-lo para impedir que o Python interprete incorretamente as barras invertidas e os caracteres subseqüentes como sequências de caracteres especiais.Bloco de código:
(Opcional) Exponha as variáveis de entrada e saída como parâmetros do modelo se desejar poder executá-las na caixa de diálogo de ferramentas do modelo ou encadear com outros modelos / scripts. A única saída do modelo externo é o arquivo CSV.
Eu testei isso com o ModelBuilder e o fiz funcionar (veja as capturas de tela).
Modelo interno :
Modelo exterior:
O modelo interno executa todos os seus processos uma vez por classe de recurso e, em seguida, a ferramenta Calcular Valor é executada uma vez no final para gerar o arquivo CSV uma vez e apenas uma vez.
fonte
A saída que seu modelo descreve é simplesmente um valor atualizado na tabela de atributos, não é? Você não pode simplesmente abrir o arquivo .dbf associado ao shapefile atualizado?
Caso contrário, a Seleção de Tabela (Ferramentas de Análise> Extrair) deve funcionar com uma consulta SQL.
fonte