Modelimin içinde basit bir if / else işlevi yapmak istiyorum ve bunun mümkün olup olmadığını bilmek istedim.
'Segment Katmanı' için bir Giriş seçildiğinde, 'Segmentasyon (araç kaydırma)' yürütmek zorunda olmadığı ve bir sonraki İşlem için Giriş olarak 'Segment Katmanı' kullandığını bunu yapmak istiyorum.
'Segmentasyon (ortalama kaydırma)' girişleri aşağıdaki gibidir
Joseph'in cevabını uygulamaya çalıştıktan sonra güncelleme: Aşağıdaki kodu kullandım ve bu hatayı aldım
Güncelleme 2, parametreleri değiştirdikten sonra 28 satırında bir hata alıyorum, bu 'else:' duruyor
##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
Güncelleme çalışır :) birkaç denemeden sonra ve Joseph bu kod artık bir cazibe gibi çalışır yardım ile, son hile iki isteğe bağlı değerleri 'Yok' ile değiştirmek oldu.
##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