Adakah perbedaan kinerja antara jendela Python dan alat skrip Python?

9

Apakah ada perbedaan kinerja antara menjalankan skrip Python di jendela Python dibandingkan menjalankannya sebagai alat skrip Python dari kotak peralatan di ArcGIS Desktop 10.0?

Terkadang saya perlu menggunakan ArcPy dan menjalankan ArcGIS. Dalam pengalaman saya baru-baru ini, saya dapat menjalankan skrip yang sama melalui toolbox dan di jendela python dan toolbox tampaknya sedikit lebih cepat.

Merica
sumber
Saat menggunakan skrip yang berdiri sendiri: Anda tidak harus membuka Arcmap, sehingga menghemat waktu dan sumber daya (CPU dan memori). Saya tidak mampu membeli komputer yang layak saat ini.
gm70560
Kotak alat juga tidak dapat menyentuh dokumen peta CURRENT. Anda harus menunjuk ke mxd untuk melakukan apa saja dengan peta tertentu di alat, sementara Anda dapat menggunakan arcpy.mapping.MapDocument ("CURRENT") di jendela python.
eseglem
3
@ Eseglem, Anda pasti dapat menggunakan CURRENTkata kunci untuk mengakses dokumen peta saat ini dalam alat skrip, selama sedang dalam proses.
blah238
1
@ gm70560 Saat Anda menjalankan skrip mandiri, Anda harus membuat semacam instance Arcmap, yang membutuhkan waktu. Di dalam jendela python yang sudah dimulai.
Matthew Snape
2
import arcpyakan membutuhkan waktu yang lama sebagai skrip mandiri (atau bagian dari kotak peralatan), sedangkan di dalam ArcMap sudah menjadi bagian dari namespace dari jendela python.
Michael Markieta

Jawaban:

5

Michael Markieta dan gm70560 keduanya benar. Jika Anda menjalankan menjalankan tugas geoproses yang besar, saya pasti akan melakukannya melalui skrip python yang berdiri sendiri, lebih disukai diluncurkan dari baris perintah dan bukan IDE. Untuk tugas semacam ini, overhead mengimpor ArcPy sangat berharga.

Namun, tugas kecil, terutama yang membutuhkan input pengguna, biasanya lebih cepat dan lebih nyaman di ArcMap - kecuali Anda harus membuka ArcMap khusus untuk tujuan dalam hal ini Anda memiliki overhead untuk memulai ArcMap sendiri ditambah beberapa downtime untuk menyambung ke semua database Anda dirujuk dalam MXD (yang jika mereka melalui koneksi jaringan lambat bisa membosankan).

Demikian juga, pemrosesan batch tugas-tugas kecil, menurut pendapat saya, lebih baik dilakukan dalam skrip Python yang berdiri sendiri daripada melalui kotak peralatan di ArcMap karena Anda menerima impor itu hanya sekali dan tidak memiliki overhead ArcMap.

Setelah melakukan banyak geoproses otomatis melalui skrip Python, saya akan menjalankannya secara default karena saya menyukai proses tambahan dan kecepatan. Sebagian besar tugas yang berjalan lebih cepat di kotak alat biasanya cukup kecil sehingga saya akan mengetuk mereka di ModelBuilder tanpa repot menulis kode apa pun.

MappaGnosis
sumber