Я хочу зробити просту функцію if / else у своїй Моделі, і я хотів знати, чи можливо це чи ні.
Я хочу, щоб це було так, якщо вибрано Input для "Сегментного шару", що він не повинен виконувати "Сегментацію (переміщення коштів)" і використовує "Сегментний шар" замість цього як Вхід для наступного процесу.
Вхідні дані для "Сегментації (змінення коштів)" наступні
Оновіть після спроби реалізувати відповідь Джозефа: я використав наступний код і отримав цю помилку
Оновлення 2, після заміни параметрів я отримую помилку в рядку 28, це було "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
Оновлення працює: після декількох спроб, і за допомогою Джозефа цей код тепер працює як шарм, останньою хитрістю було замінити два необов'язкові значення на "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