Salvare i risultati dell'elaborazione in un file usando il modellatore QGIS?


9

Da un modello, vorrei salvare i risultati dell'elaborazione in un file. Nel mio modello ho alcuni Extract by locationalgoritmi (con due input vettoriali) che producono risultati ragionevoli ma solo come livelli temporanei, che devo Save as...manualmente, che per un mucchio di analisi è fastidioso e richiede tempo.

Meglio, vorrei passare un percorso al mio modello, in cui i miei risultati vengono salvati come shapefile (in un primo passaggio).

Questo è il modello Si noti che il vettore di output (file) non può connettersi a nessuno dei risultati dell'elaborazione:

inserisci qui la descrizione dell'immagine

Come si può vedere negli screenshot a), siamo in grado di passare un nome per un risultato finale, ma non un file, anche Save selected featuresnell'algoritmo b).

un) inserisci qui la descrizione dell'immagine

b) inserisci qui la descrizione dell'immagine

Ho una vaga idea di come ottenere questo risultato con uno script Python, ma è possibile farlo con una combinazione di strumenti esistenti?

Risposte:


6

Se vuoi passare un percorso nel tuo modello in cui salvare i tuoi shapefile invece di farlo manualmente, uno script personalizzato è probabilmente la strada da percorrere. È possibile scrivere uno script per eseguire lo strumento Estrai per posizione e definire il percorso dell'output. Qualcosa del genere forse:

##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)

Sostituisci gli strumenti Estrai per posizione nel tuo modello con questo script e salverà i risultati in un file di forma nel percorso specificato.


5

Il modellatore QGIS considera qualsiasi strumento come intermedio che non salva alcun output, se non diversamente specificato.

Per forzare il modello ad esportare un risultato, è necessario inserire un nome di output del livello nella riga Strumento.

inserisci qui la descrizione dell'immagine

Se voglio esportare il risultato sopra come layer, immetto un valore nell'output in questo modo: inserisci qui la descrizione dell'immagine

Quello che fa è aggiungere una finestra di dialogo quando si esegue lo strumento che è possibile impostare il file di output:

inserisci qui la descrizione dell'immagine

Il modello stesso mostra i tipi di dati con i colori: viola per gli input, ciano per gli output


1
Questo è vero, ma è lo stesso sforzo di lasciare i vettori di output come file temporanei e poi fare rightclick > Save As...per ciascuno di essi.
Jochen Schwarze,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.