ผ่านตัวแปรจากสคริปต์ ArcPy ไปยัง ModelBuilder หรือไม่


9

ฉันมีรูปแบบที่ส่งผ่านตัวแปรไปยังสคริปต์ python สคริปต์ใช้ตัวแปรนั้นเพื่อเคียวรีบางไดเร็กทอรีและส่งคืนรายการพา ธ สิ่งที่ฉันอยากรู้คือ:

  • ฉันจะใช้แต่ละพา ธ เหล่านั้นเป็นพารามิเตอร์ในการดำเนินการที่ตามมาได้อย่างไร
  • สะพานเชื่อมระหว่าง python กับ ModelBuilder เป็นถนนเดินรถทางเดียวหรือไม่

คำตอบ:


8

ฉันสมมติว่าคุณได้เพิ่มสคริปต์ Python ในโมเดลโดยเพิ่มสคริปต์ Python ลงในกล่องเครื่องมือโดยตั้งค่าอินพุตสคริปต์ผ่านแท็บพารามิเตอร์

ในแท็บพารามิเตอร์คุณสามารถเพิ่มพารามิเตอร์ใหม่สำหรับเอาต์พุตสคริปต์ ในการทำเช่นนี้เพียงแค่เปลี่ยน:

  • Directionในคุณสมบัติของพารามิเตอร์ที่จะOutput;
  • Data Typeขึ้นอยู่กับสิ่งที่ผู้ส่งออกงูหลามจะ (อาจจะเป็นสตริงหรือจำนวนเต็ม แต่บางทีชั้นคุณลักษณะ);
  • และจากนั้นTypeในคุณสมบัติพารามิเตอร์ถึงDerived(แม้ว่าจะยุติธรรมRequiredและOptionalจะทำงานขึ้นอยู่กับประเภทข้อมูล แต่ฉันจะอธิบายด้านล่าง)

จากนั้นเราสามารถใช้arcpy.SetParameterเพื่อส่งออกจากสคริปต์ Python ของคุณกลับไปที่โมเดล

หมายเหตุสองประการ:

  • หากคุณมีพารามิเตอร์เอาต์พุตตั้งไว้ที่RequiredหรือOptionalคุณสามารถป้อนอินพุตให้กับสคริปต์ของคุณโดยระบุค่าดีฟอลต์ซึ่งคุณสามารถรับด้วยarcpy.GetParameterหรือจากsys.argv
  • จำนวนพารามิเตอร์ที่จะตั้งเป็นเอาท์พุทขึ้นอยู่กับจำนวนพารามิเตอร์ทั้งหมดสำหรับสคริปต์ Python ของคุณ (เช่นถ้าคุณมีพารามิเตอร์อินพุตสองตัวก่อนพารามิเตอร์เอาท์พุทของคุณคุณต้องใช้arcpy.SetParameter(2, value))

นอกจากนี้ยังจะดูที่ arcpy สคริปต์การตั้งค่าพารามิเตอร์เครื่องมือช่วยเหลือ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.