มีความแตกต่างด้านประสิทธิภาพระหว่างหน้าต่าง Python และเครื่องมือสคริปต์ Python หรือไม่


9

มีความแตกต่างในการทำงานระหว่างการใช้งานสคริปต์ Python ในหน้าต่าง Python กับการใช้งานเป็นเครื่องมือสคริปต์ Python จากกล่องเครื่องมือใน ArcGIS Desktop 10.0 หรือไม่?

บางครั้งฉันต้องใช้ ArcPy และเปิดใช้งาน ArcGIS จากประสบการณ์ล่าสุดของฉันฉันสามารถเรียกใช้สคริปต์เดียวกันผ่านกล่องเครื่องมือและในหน้าต่างหลามและกล่องเครื่องมือดูเหมือนจะเร็วขึ้นเล็กน้อย


เมื่อใช้สคริปต์แบบสแตนด์อะโลน: คุณไม่จำเป็นต้องเปิด Arcmap ดังนั้นจึงช่วยประหยัดเวลาและทรัพยากร (CPU และหน่วยความจำ) ฉันไม่สามารถซื้อคอมพิวเตอร์ที่ดีได้ในขณะนี้
gm70560

กล่องเครื่องมือนี้ยังไม่สามารถสัมผัสเอกสารแผนที่ปัจจุบัน คุณต้องชี้ไปที่ mxd เพื่อทำอะไรกับแผนที่เฉพาะในเครื่องมือซึ่งคุณสามารถใช้ arcpy.mapping.MapDocument ("CURRENT") ในหน้าต่างหลาม
eseglem

3
@eseglem คุณควรจะสามารถใช้CURRENTคำหลักเพื่อเข้าถึงเอกสารแผนที่ปัจจุบันในเครื่องมือสคริปต์ได้ตราบใดที่มันยังอยู่ในระหว่างดำเนินการ
blah238

1
@ gm70560 เมื่อคุณเรียกใช้สคริปต์แบบสแตนด์อโลนคุณจะต้องสร้างอินสแตนซ์ของ Arcmap ซึ่งต้องใช้เวลา ภายในหน้าต่างหลามที่เริ่มต้นแล้ว
Matthew Snape

2
import arcpyจะใช้เวลานานเป็นสคริปต์แบบสแตนด์อโลน (หรือเป็นส่วนหนึ่งของกล่องเครื่องมือ) ในขณะที่ใน ArcMap มันเป็นส่วนหนึ่งของเนมสเปซของหน้าต่างหลามแล้ว
Michael Markieta

คำตอบ:


5

ทั้ง Michael Markieta และ gm70560 นั้นถูกต้อง หากคุณกำลังเรียกใช้งานการประมวลผลทางภูมิศาสตร์ขนาดใหญ่ฉันจะทำผ่านสคริปต์ไพ ธ อนแบบสแตนด์อโลนซึ่งเปิดตัวโดยเฉพาะจากบรรทัดคำสั่งไม่ใช่ IDE สำหรับงานประเภทนี้ค่าใช้จ่ายในการนำเข้า ArcPy นั้นคุ้มค่า

อย่างไรก็ตามงานเล็ก ๆ โดยเฉพาะงานที่ต้องการให้ผู้ใช้ป้อนข้อมูลมักจะเร็วกว่าและสะดวกกว่าใน ArcMap - เว้นแต่คุณจะต้องเปิด ArcMap โดยเฉพาะเพื่อจุดประสงค์ในกรณีที่คุณมีค่าใช้จ่ายในการเริ่มต้น ArcMap เอง ฐานข้อมูลทั้งหมดของคุณอ้างอิงใน MXD (ซึ่งหากการเชื่อมต่อเครือข่ายช้าอาจน่าเบื่อ)

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

หลังจากทำการประมวลผลทางภูมิศาสตร์โดยอัตโนมัติผ่านสคริปต์ Python ฉันจะใช้มันเป็นกระบวนการแบบสแตนด์อโลนเพราะฉันชอบความเร็วและความยืดหยุ่นที่เพิ่มขึ้น งานส่วนใหญ่ที่ทำงานได้เร็วขึ้นในกล่องเครื่องมือมักจะมีขนาดเล็กพอที่จะทำให้พวกเขาล้มเหลวใน ModelBuilder โดยไม่ต้องรบกวนการเขียนโค้ดใด ๆ

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