Usa il parametro di input come variabile nell'espressione
Nel mio progetto ho un livello vettoriale e un livello raster. Voglio rimuovere tutte le caratteristiche del livello vettoriale in cui la posizione della caratteristica ha un valore di altezza di 0 nella stessa posizione nel livello raster.
Funziona correttamente utilizzando "Seleziona per espressione" e utilizzando l'espressione seguente:
raster_value('layerid' ,1,make_point(x($geometry),y($geometry))) = 0
e quindi sostituire 'layerid'con l'ID del livello raster.
Voglio automatizzare un flusso di lavoro lungo con il modellatore grafico, dove questa è una delle attività.
Attualmente ha questo aspetto:
Sto cercando di utilizzare "Estrai per espressione", con la stessa espressione di cui sopra, e funziona fintanto che il layeridparametro viene modificato prima di eseguire il modello, tuttavia voglio utilizzare l'input del livello raster heightmapper ottenere l'ID. Così:
Questo non funziona. L'espressione restituisce ogni volta null. Anch'io ho provato a usarlo eval(@heightmap), ma senza fortuna.
Come tentativo di soluzione alternativa, ho provato a utilizzare l'algoritmo "Carica livello nel progetto" e quindi a utilizzare la sua variabile di output nell'espressione, ma questo ha fatto lo stesso.
Come posso inserire correttamente il layerid heightmapdell'input nell'espressione?
Risposte
Non ho trovato una soluzione al problema del riferimento a un input di modello nell'espressione, tuttavia ho trovato una soluzione che ha risolto ciò che stavo cercando di fare.
L'algoritmo "Zonal Statistics" può aggiungere attributi a ciascuna caratteristica del layer vettoriale che può contenere il valore medio del layer raster per l'area del poligono.
Ciò mi ha permesso di utilizzare quel campo come valore di confronto nell'algoritmo "Estrai per espressione"
Per garantire che "Statistiche zonali" venga eseguito prima di "Estrai per espressione", è possibile impostare "Statistiche zonali" come dipendenza.
Tieni presente che puoi anche utilizzare "Estrai per attributo" invece di "espressione".