ฉันต้องการทำให้ฟังก์ชั่น 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
          



