การสร้างพารามิเตอร์ช่องทำเครื่องหมายในเครื่องมือสคริปต์ Python สำหรับ ArcGIS Desktop?


11

ฉันกำลังทำงานเพื่อสร้างเครื่องมือ ArcGIS จากสคริปต์ Python ที่ฉันกำลังเขียน ฉันสงสัยว่าเป็นไปได้หรือไม่ที่จะมีพารามิเตอร์ช่องทำเครื่องหมาย

ฉันต้องการมีพารามิเตอร์ที่ผู้ใช้เลือกคลาสคุณลักษณะจากคลาสคุณลักษณะที่ผู้ใช้จะเลือกฟิลด์สำหรับเลเยอร์ส่วนใหญ่ด้านบนในโมเดลของพวกเขาจากนั้นฉันต้องการให้ผู้ใช้สามารถเลือกเลเยอร์ที่พวกเขาต้องการสคริปต์ เพื่อทำงานกับโครงสร้างช่องทำเครื่องหมายที่ได้มาจากสนามชั้นบนสุด

เป็นไปได้ด้วย python และ ArcGIS Desktop?

คำตอบ:


12

โค้ดตัวอย่างสำหรับเครื่องมือสคริปต์ซึ่งจะมีช่องทำเครื่องหมายเดียว หากกล่องกาเครื่องหมายจะถูกตรวจสอบโดยผู้ใช้เครื่องมือจะตรวจสอบการมีอยู่ของไฟล์ข้อมูลที่ระบุ

import arcpy
input_fc = r'C:\GIS\Temp\data_shp.shp'

    #getting the input parameter - will become a tool parameter in ArcGIS of Boolean type
    ischecked = arcpy.GetParameterAsText(0)

    #Important to convert the check box value to a string first.
    #Should be 'true' with the small case for 't',
    #not the 'True' as shown in the Python window in ArcGIS
    if str(ischecked) == 'true':
        arcpy.AddMessage("The check box was checked")
        result = arcpy.Exists(input_fc)
        #to return 'True' or 'False' depending on whether the data file exists
        #since it is a Boolean, important to convert it to a string
        arcpy.AddMessage(str(result))

    else: #in this case, the check box value is 'false', user did not check the box
        arcpy.AddMessage("The check box was not checked")

อย่าลืมเพิ่มพารามิเตอร์เครื่องมือของประเภทข้อมูลบูลีนเมื่อสร้างเครื่องมือสคริปต์ใหม่ในแอปพลิเคชัน ArcGIS Desktop พารามิเตอร์นี้จะแสดงเป็นกล่องกาเครื่องหมายโดยอัตโนมัติเมื่อผู้ใช้เรียกใช้เครื่องมือ

ป้อนคำอธิบายรูปภาพที่นี่


7

หากต้องการดูวิธีรับช่องทำเครื่องหมายบนกล่องโต้ตอบของเครื่องมือสคริปต์ Python ลองใช้รหัสทดสอบบางอย่างดังนี้:

inputString = arcpy.GetParameterAsText(0)
inputBoolean = arcpy.GetParameterAsText(1)

arcpy.AddMessage("String set to " + inputString)
arcpy.AddMessage("Boolean set to " + str(inputBoolean))

จากนั้นเมื่อคุณเพิ่มสคริปต์นี้เป็นเครื่องมือคุณจะต้องใช้พารามิเตอร์สองตัวพารามิเตอร์ตัวแรกของสตริงข้อมูลประเภทและตัวที่สองของประเภทข้อมูลบูลีน

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