คำถามติดแท็ก python-script-tool

Python Script Tools ถูกเพิ่มลงในกล่องเครื่องมือมาตรฐาน (* .tbx) ของ ArcGIS for Desktop

3
เหตุใดจึงเรียนรู้ / ใช้กล่องเครื่องมือ Python บนเครื่องมือ Python Script [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ฉันได้เขียนกล่องเครื่องมือ Python สองสามชุด (ซึ่งใหม่ใน ArcGIS 10.1) แต่ฉันยังตัดสินใจไม่ได้ว่าควรเขียนเมื่อใด / แทนที่จะใช้เครื่องมือ Python Script ในกล่องเครื่องมือมาตรฐาน ฉันคิดว่าวิธีใช้ออนไลน์อาจทำให้ฉันเข้าใจได้เมื่อมันนำหน้าจุดบางจุดด้วย: เมื่อสร้างแล้วเครื่องมือในกล่องเครื่องมือ Python ให้ประโยชน์มากมาย อย่างไรก็ตามข้อดีห้าประการที่ระบุไว้ทั้งหมดดูเหมือนจะไม่สามารถใช้ Python ในการเขียนเครื่องมือได้และดูเหมือนจะไม่มีใครระบุข้อดีของกล่องเครื่องมือ Python บนเครื่องมือ Python Script ข้อดีสองข้อที่ฉันนึกได้คือ: ตอนนี้ฉันสามารถเขียนเครื่องมือ Python "บริสุทธิ์" ในสคริปต์ Python เดียวโดยไม่ต้องเชื่อมต่อกับไดอะล็อกที่ได้รับการประพันธ์แยกต่างหากด้วยการตรวจสอบเครื่องมือที่ดูเหมือนว่าถูกตรึงไว้ แต่ฉันยินดีที่จะใช้งานได้ดีกว่าในเรื่องนี้ ตอนนี้ฉันสามารถใช้รหัส (Python หรือภาษาใด ๆ ที่มีความสามารถในการเขียนไฟล์ข้อความ) เพื่อให้การเขียนกล่องเครื่องมือ Python เป็นไปโดยอัตโนมัติ แต่ฉันยังไม่ได้เจอข้อกำหนดในการทำเช่นนี้ ฉันมองกรณีที่น่าสนใจที่ทำให้ Esri ให้ความสามารถของ …

2
ทำปุ่มที่เรียกว่าสคริปต์ Python เป็นคำสั่งมากกว่าเครื่องมือสคริปต์หรือไม่
ฉันเชื่อว่าใน Arc9.3 สามารถสร้างคำสั่งโดยใช้สคริปต์ VBA ในการเพิ่มคำสั่งที่กำหนดเองคุณจะไปที่การปรับแต่ง> แถบเครื่องมือ> ปรับแต่ง ... และคลิก UIControls อย่างไรก็ตาม UIControls ไม่มีอยู่ในรุ่น 10 ฉันกำลังสร้างสคริปต์แยกกันสองรายการสำหรับโครงการแผนที่หนังสือ หนึ่งสคริปต์จะบันทึกการตั้งค่าเค้าโครงลงในตารางและอีกหนึ่งสคริปต์จะอัปเดตเค้าโครงด้วยการตั้งค่าจากตารางเดียวกัน ฉันต้องการให้สคริปต์ทั้งสองนี้เป็นคำสั่งที่กำหนดให้กับปุ่มในแถบเครื่องมือ ฉันสร้างมันเป็นเครื่องมือสคริปต์ แต่เมื่อใดก็ตามที่ฉันคลิกพวกเขาจะเรียกใช้สคริปต์เป็นเครื่องมือประมวลผลทางภูมิศาสตร์ มันแสดงหน้าต่างความคืบหน้าและใช้เวลาดำเนินการนานกว่าประมาณ 10 เท่ากว่าถ้าฉันเรียกใช้รหัสในหน้าต่างบรรทัดคำสั่ง Python ฉันไม่ต้องการหน้าต่างความคืบหน้าหรือเวลาดำเนินการนานขึ้น ฉันจะสร้างมันขึ้นมาเพื่อที่สคริปต์จะไม่ถือว่าเป็น "เครื่องมือ" และแทนที่จะเป็นคำสั่งที่คล้ายกับปุ่มบันทึก

1
Python Script Performance เป็นเครื่องมือ ArcGIS กับ Stand-Alone
มีใครศึกษาความแตกต่างในการใช้งานสคริปต์ Python ใน ArcToolbox กับสคริปต์แบบสแตนด์อโลนหรือไม่? ฉันต้องเขียนสคริปต์ที่รวดเร็วและสกปรกเพื่อแปลงชุดของภาพ RGB เป็นแบนด์เดียวโดยแยกแบนด์ 1 เนื่องจากการอ่านและเขียนสคริปต์แบบสแตนด์อโลนในพีซีของฉันมันประมวลผลภาพขนาดเท่ากัน 1,000 รายการในเวลาประมาณ 350 วินาที การเรียกใช้สคริปต์เดียวกันจาก ArcToolbox ใช้เวลาประมาณ 1250 วินาที import arcpy import csv from os import path arcpy.env.workspace = in_folder image_list = arcpy.ListRasters() #Create a CSV file for timing output with open(outfile, 'wb') as c: cw = csv.writer(c) cw.writerow(['tile_name', 'finish_time']) …

5
กำลังรับเส้นทางเต็มของเลเยอร์ที่เลือกในกล่องดรอปดาวน์สำหรับเครื่องมือสคริปต์ ArcGIS Python หรือไม่
ฉันมีเครื่องมือที่ใช้สคริปต์ Python ใน ArcGIS หนึ่งในพารามิเตอร์สำหรับเครื่องมือคือไฟล์อินพุตแรสเตอร์ซึ่งฉันได้ตั้งค่าไว้ (โดยใช้คุณสมบัติของเครื่องมือภายในกล่องเครื่องมือ) ให้เป็นเลเยอร์แบบแรสเตอร์ ซึ่งหมายความว่าเมื่อฉันรันเครื่องมือฉันจะได้รับตัวเลือกให้เลือกพารามิเตอร์นั้นจากรายการดรอปดาวน์ของเลเยอร์แรสเตอร์ที่โหลดในปัจจุบันหรือโดยการนำทางเพื่อค้นหาเลเยอร์แรสเตอร์ใหม่ภายในระบบไฟล์ ฉันใช้arcpy.GetParameterAsText(0)รหัสมาตรฐานเพื่อรับพารามิเตอร์ลงในสคริปต์ Python ของฉัน สิ่งนี้ใช้ได้ดีเมื่อฉันเลือกไฟล์โดยเรียกดูผ่านระบบไฟล์เนื่องจากข้อความในกล่องโต้ตอบเป็นเส้นทางแบบเต็มไปยังไฟล์ แต่เมื่อฉันเลือกจากรายการแบบเลื่อนลงข้อความที่ฉันได้รับกลับเป็นเพียงชื่อไฟล์ (เช่นfile.tif) . รหัสที่ฉันกำลังเรียกใช้จำเป็นต้องทราบเส้นทางแบบเต็มไปยังไฟล์ - ฉันจะได้รับสิ่งนี้ได้อย่างไร หากฉันสามารถสันนิษฐานได้ว่าไฟล์นั้นอยู่ในพื้นที่ทำงานเสมอฉันก็สามารถต่อท้ายชื่อไฟล์ได้arcpy.env.workspaceแต่ฉันไม่สามารถสรุปได้ ฉันจำเป็นต้องวนซ้ำทุกเลเยอร์ที่โหลดจนกว่าฉันจะหาชื่อที่มีชื่อเดียวกันแล้วค้นหาเส้นทางแบบเต็มหรือมีวิธีที่ง่ายกว่าหรือไม่

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

1
การตั้งค่ารายการแบบหล่นลงในพารามิเตอร์ของเครื่องมือสคริปต์ Python หรือไม่
ฉันกำลังพยายามสร้างเครื่องมือจากสคริปต์ python ที่ฉันเขียนซึ่งจะสร้างรายการที่ฉันสร้างขึ้นและใช้เป็นเมนูแบบเลื่อนลงในเครื่องมือเสร็จเป็นหนึ่งในอินพุต (ดูรูปที่แนบมาตัวอย่าง): รายการที่ฉันใช้เป็นรายการขนาดใหญ่ที่มีเมืองทั้งหมดในรัฐเวอร์มอนต์และฉันสร้างมันในสคริปต์จากตาราง (ดูรหัสด้านล่าง) ฉันสงสัยว่าปัญหาของฉันในขณะนี้เป็นเพียงการตั้งค่าคุณสมบัติเครื่องมือเพื่อใช้รายการนี้และใช้เพื่อสร้างรายการแบบหล่นลงสำหรับผู้ใช้ นี่คือบล็อกของรหัสที่สร้างรายการเพื่อใช้ในพารามิเตอร์ - มีใครเห็นปัญหาใด ๆ ของการใช้รหัสนี้หรือไม่? import arcpy arcpy.env.workspace = "Z:\\OPS\\TechnicalServices\\Culverts\\GetCulverts\\GetCulverts.gdb" towns = "Database Connections\\GDB_GEN.sde\\GDB_Gen.VTRANS_ADMIN.townindex" arcpy.MakeFeatureLayer_management(towns,"towns_lyr") NameList = [] NameListArray = set() rows = arcpy.SearchCursor("towns_lyr") for row in rows: value = row.getValue("TOWNNAME") if value not in NameListArray: NameList.append(value) town = NameList town = arcpy.GetParameterAsText(0) …

1
การสร้างข้อมูลช่วยเหลือในแถบด้านข้างสำหรับเครื่องมือสคริปต์ Python ของ ArcGIS Desktop?
ฉันสร้างเครื่องมือแบบกำหนดเอง (Python script tools) โดยใช้ Python กับโมดูล ArcPy ฉันสามารถตั้งค่าเครื่องมือให้สำเร็จด้วยพารามิเตอร์และทั้งหมด แต่ฉันไม่สามารถหาวิธีสร้างข้อความช่วยเหลือที่ปรากฏบนแถบด้านข้างของเครื่องมือเช่นเครื่องมือ ArcGIS มาตรฐานได้หรือไม่

2
การใช้ MultiValue Parameter กับหลายคอลัมน์ด้วย Python และ ArcGIS Desktop หรือไม่?
ฉันกำลังทำงานกับสคริปต์ Python ของ ArcGIS (9.3) หนึ่งในอินพุตคือรายการคุณสมบัติ สำหรับแต่ละคุณสมบัติฉันต้องเลือกฟิลด์ที่เกี่ยวข้อง การตั้งค่าพารามิเตอร์เป็น MultiValue จะให้ตารางที่ดีใน UI สำหรับคุณลักษณะทั้งหมดที่กำลังประมวลผล ฉันจะเพิ่มคอลัมน์อื่นลงในตาราง MultiValue เพื่อเลือกฟิลด์สำหรับแต่ละคุณสมบัติได้อย่างไร ข้ามโพสต์: http://forums.arcgis.com/threads/30907-MultiValue-Parameter-with-Multiple-Columns คำตอบของ Esri จากฟอรัม ArcGIS: น่าเสียดายที่โซลูชันสำหรับสิ่งนี้ได้รับการติดตั้งเมื่อเร็ว ๆ นี้สำหรับ 10.1 ที่มีอินพุต ValueTable สำหรับเครื่องมือสคริปต์ คุณจะต้องมีพารามิเตอร์หลายค่าสองค่าด้วยการตรวจสอบความถูกต้องที่กำหนดเองเพื่อให้สามารถใช้งานได้กับ 9.3.1

1
มีความแตกต่างด้านประสิทธิภาพระหว่างหน้าต่าง Python และเครื่องมือสคริปต์ Python หรือไม่
มีความแตกต่างในการทำงานระหว่างการใช้งานสคริปต์ Python ในหน้าต่าง Python กับการใช้งานเป็นเครื่องมือสคริปต์ Python จากกล่องเครื่องมือใน ArcGIS Desktop 10.0 หรือไม่? บางครั้งฉันต้องใช้ ArcPy และเปิดใช้งาน ArcGIS จากประสบการณ์ล่าสุดของฉันฉันสามารถเรียกใช้สคริปต์เดียวกันผ่านกล่องเครื่องมือและในหน้าต่างหลามและกล่องเครื่องมือดูเหมือนจะเร็วขึ้นเล็กน้อย

1
ผ่านตัวแปรจากสคริปต์ ArcPy ไปยัง ModelBuilder หรือไม่
ฉันมีรูปแบบที่ส่งผ่านตัวแปรไปยังสคริปต์ python สคริปต์ใช้ตัวแปรนั้นเพื่อเคียวรีบางไดเร็กทอรีและส่งคืนรายการพา ธ สิ่งที่ฉันอยากรู้คือ: ฉันจะใช้แต่ละพา ธ เหล่านั้นเป็นพารามิเตอร์ในการดำเนินการที่ตามมาได้อย่างไร สะพานเชื่อมระหว่าง python กับ ModelBuilder เป็นถนนเดินรถทางเดียวหรือไม่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.