ฉันต้องการทำให้ฟังก์ชั่น if / else ง่าย ๆ ภายใน Model ของฉันและฉันต้องการทราบว่าเป็นไปได้หรือไม่
ฉันต้องการให้สิ่งนี้ทำเช่นนั้นหากมีการเลือกอินพุทสำหรับ 'เซกเมนต์เลเยอร์' ซึ่งไม่จำเป็นต้องดำเนินการ 'เซกเมนต์ (meanhift)' และใช้ 'เซกเมนต์เลเยอร์' แทนอินพุทสำหรับกระบวนการถัดไป
อินพุตสำหรับ 'การแบ่งส่วน (meanhift)' มีดังนี้
อัปเดตหลังจากพยายามใช้คำตอบของโจเซฟ: ฉันใช้รหัสต่อไปนี้และได้รับข้อผิดพลาดนี้
อัปเดต 2 หลังจากเปลี่ยนพารามิเตอร์ฉันได้รับข้อผิดพลาดในบรรทัด 28 นี่คือ 'else:' stands
##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
อัปเดตให้ใช้งานได้ :) หลังจากลองไม่กี่ครั้งและด้วยโจเซฟช่วยให้โค้ดนี้ใช้งานได้อย่างมีเสน่ห์เคล็ดลับสุดท้ายคือแทนที่ค่าที่ไม่จำเป็นสองค่าด้วย 'ไม่มี'
##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