Je veux faire une simple fonction if / else à l'intérieur de mon modèle et je voulais savoir si c'est possible ou non.
Je veux que cette chose fasse que si une entrée pour 'Segment Layer' est sélectionnée, elle n'a pas à exécuter la 'Segmentation (meanshift)' et utilise à la place 'Segment Layer' comme entrée pour le prochain processus.
les entrées pour la «segmentation (shift moyen)» sont les suivantes
Mettre à jour après avoir essayé d'implémenter la réponse de Joseph: j'ai utilisé le code suivant et j'ai eu cette erreur
Mise à jour 2, après avoir remplacé les paramètres, j'obtiens une erreur à la ligne 28, c'est `` else: ''
##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
Mettre à jour ça marche :) après quelques essais et avec l'aide de Joseph, ce code fonctionne maintenant comme un charme, l'astuce finale était de remplacer deux valeurs facultatives par 'None'.
##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