Voglio fare una semplice funzione if / else all'interno del mio modello e volevo sapere se è possibile o meno.
Voglio che ciò avvenga se viene selezionato un input per "Segment Layer", che non deve eseguire la "Segmentazione (spostamento medio)" e utilizza invece "Segment Layer" come input per il processo successivo.
gli input per il 'Segmentazione (meanshift)' sono i seguenti
Aggiorna dopo aver tentato di implementare la risposta di Joseph: ho usato il seguente codice e ho ricevuto questo errore
Aggiornamento 2, dopo aver sostituito i parametri ottengo un errore nella riga 28 questo è stato 'else:' sta
##Example=name
##BGREN=optional raster
##Segment_Layer=optional vector
##output=output vector
if BGREN is not None:
processing.runalg('otb:segmentationmeanshift', \
-BGREN\
-0\
-70\
-70\
-0.1\
-100\
-100\
-0\
-0\
-0\
-'True'\
-'False'\
-1\
-0.1\
-'Layer'\
-'DN'\
-1024\
-1\
-0\
-output)
else:
output=Segment_Layer
Aggiorna funziona :) dopo alcuni tentativi e con Joseph aiuta questo codice ora funziona come un incantesimo, l'ultimo trucco è stato quello di sostituire due valori opzionali con "Nessuno".
##Example=name
##BGREN=optional raster
##Segment_Layer=optional vector
##output=output vector
if BGREN is not None:
processing.runalg('otb:segmentationmeanshift', \
BGREN, \
0, \
70, \
70, \
0.1, \
100, \
100, \
0, \
0, \
None, \
True, \
False, \
1, \
0.1, \
'Layer', \
'DN', \
1024, \
1, \
None, \
output)
else:
output=Segment_Layer