Salvando os resultados do processamento em um arquivo usando o QGIS modeler?

9

De um modelo, eu gostaria de salvar os resultados do processamento em um arquivo. No meu modelo, tenho alguns Extract by locationalgoritmos (com duas entradas de vetor) que produzem resultados razoáveis, mas apenas como camadas temporárias, que eu tenho que Save as...manualmente, o que para uma pilha de análises é incômodo e demorado.

Melhor, gostaria de passar um caminho para o meu modelo, onde meus resultados são salvos como shapefiles (em uma primeira etapa).

Este é o modelo. Observe que o vetor de saída (arquivo) não pode se conectar a nenhum dos resultados do processamento:

insira a descrição da imagem aqui

Como pode ser visto nas capturas de tela a), podemos passar um nome para um resultado final, mas não um arquivo, mesmo no Save selected featuresalgoritmo b).

a) insira a descrição da imagem aqui

b) insira a descrição da imagem aqui

Eu tenho uma vaga idéia de como conseguir isso com um script python, mas isso pode ser feito com uma combinação de ferramentas existentes?

Jochen Schwarze
fonte

Respostas:

6

Se você deseja passar um caminho em seu modelo para salvar seus shapefiles em vez de fazê-lo manualmente, um script personalizado é provavelmente o caminho a percorrer. Você pode escrever um script para executar a ferramenta Extrair por localização e definir o caminho da saída. Algo assim talvez:

##Extract_by_location=name
##Layer=vector
##Additional_layer=vector

layer = processing.getObject(Layer)
output_path = "C:/Users/You/Desktop/" + layer.name() + ".shp"

processing.runalg("qgis:extractbylocation", Layer, Additional_layer, u'contains', 0.00, output_path)

Substitua as ferramentas Extrair por localização no seu modelo por este script e ele salvará os resultados em um shapefile no caminho que você especificou.

Joseph
fonte
5

O modelador QGIS trata qualquer ferramenta como intermediária que não salva nenhuma saída, a menos que seja indicado de outra forma.

Para forçar o modelo a exportar um resultado, você deve inserir um nome de saída da camada na linha Ferramenta.

insira a descrição da imagem aqui

Se eu quiser exportar o resultado acima como uma camada, insiro um valor na saída da seguinte forma: insira a descrição da imagem aqui

O que isso faz é adicionar uma caixa de diálogo quando você executar a ferramenta para definir o arquivo de saída:

insira a descrição da imagem aqui

O próprio modelo mostra os tipos de dados com cores: roxo para entradas, ciano para saídas

HDunn
fonte
11
Isso é verdade, mas é o mesmo esforço que deixar os vetores de saída como arquivos temporários e depois executar rightclick > Save As...para cada um deles.
Jochen Schwarze