Saya ingin membuat fungsi if / else sederhana di dalam Model saya dan saya ingin tahu apakah itu mungkin atau tidak.
Saya ingin hal ini dilakukan jika Input untuk 'Segmen Lapisan' dipilih yang tidak harus menjalankan 'Segmentasi (berarti pergeseran)' dan menggunakan 'Segmen Lapisan' sebagai input untuk Proses selanjutnya.
Input untuk 'Segmentasi (berarti pergeseran)' adalah sebagai berikut
Pembaruan setelah mencoba menerapkan jawaban Joseph: Saya menggunakan kode berikut dan mendapatkan kesalahan ini
Pembaruan 2, setelah mengganti parameter saya mendapatkan kesalahan di baris 28 ini adalah berdiri '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
Perbarui itu berfungsi :) setelah beberapa kali mencoba dan dengan bantuan Joseph kode ini sekarang berfungsi seperti pesona, trik terakhirnya adalah mengganti dua nilai opsional dengan 'Tidak Ada'.
##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