Bất kỳ sự khác biệt hiệu suất giữa cửa sổ Python và công cụ kịch bản Python?


9

Có sự khác biệt về hiệu suất giữa việc chạy tập lệnh Python trong cửa sổ Python so với việc chạy nó dưới dạng công cụ tập lệnh Python từ hộp công cụ trong ArcGIS Desktop 10.0?

Đôi khi tôi cần sử dụng ArcPy và chạy ArcGIS. Theo kinh nghiệm gần đây của tôi, tôi có thể chạy cùng một kịch bản thông qua hộp công cụ và trong cửa sổ python và hộp công cụ dường như nhanh hơn một chút.


Khi sử dụng các tập lệnh độc lập: bạn không phải mở Arcmap, do đó tiết kiệm thời gian và tài nguyên (CPU và bộ nhớ). Tôi không thể mua một máy tính đàng hoàng vào lúc này.
gm70560

Hộp công cụ cũng không thể chạm vào tài liệu bản đồ HIỆN TẠI. Bạn phải trỏ đến một mxd để làm bất cứ điều gì với một bản đồ cụ thể trong một công cụ, bạn có thể sử dụng arcpy.micking.MapDocument ("HIỆN TẠI") trong cửa sổ python.
eseglem

3
@eseglem, bạn chắc chắn có thể sử dụng CURRENTtừ khóa để truy cập tài liệu bản đồ hiện tại trong một công cụ tập lệnh, miễn là nó đang được chạy trong quá trình.
blah238

1
@ gm70560 Khi bạn chạy một tập lệnh độc lập, bạn phải tạo một loại ví dụ Arcmap, việc này sẽ mất thời gian. Trong cửa sổ python đã được bắt đầu.
Matthew Snape

2
import arcpysẽ mất nhiều thời gian như một tập lệnh độc lập (hoặc một phần của hộp công cụ), trong khi trong ArcMap, nó đã là một phần của không gian tên của cửa sổ python.
Michael Markieta

Câu trả lời:


5

Cả Michael Markieta và gm70560 đều đúng. Nếu bạn đang chạy các tác vụ xử lý địa lý lớn, tôi chắc chắn sẽ thực hiện nó thông qua một tập lệnh python độc lập, tốt nhất là được khởi chạy từ dòng lệnh chứ không phải IDE. Đối với loại nhiệm vụ này, chi phí nhập khẩu ArcPy là hoàn toàn xứng đáng.

Tuy nhiên, một tác vụ nhỏ, đặc biệt là một nhiệm vụ yêu cầu đầu vào của người dùng, thường nhanh hơn và thuận tiện hơn trong ArcMap - trừ khi bạn phải mở ArcMap đặc biệt cho mục đích trong trường hợp bạn có chi phí khởi động ArcMap cộng với một số thời gian chết để kết nối với tất cả các cơ sở dữ liệu của bạn được tham chiếu trong MXD (nếu chúng qua kết nối mạng chậm có thể tẻ nhạt).

Tương tự, xử lý hàng loạt ngay cả các tác vụ nhỏ, theo tôi, được thực hiện tốt hơn trong tập lệnh Python độc lập hơn là thông qua hộp công cụ trong ArcMap vì bạn chỉ thực hiện thao tác nhập đó một lần và không có chi phí ArcMap.

Đã thực hiện nhiều thao tác địa lý tự động thông qua các tập lệnh Python, tôi sẽ mặc định chạy chúng dưới dạng các quy trình độc lập vì tôi thích tốc độ và tính linh hoạt bổ sung. Hầu hết các tác vụ chạy nhanh hơn trong hộp công cụ thường đủ nhỏ để tôi có thể đánh bật chúng trong ModelBuilder mà không cần phải viết bất kỳ mã nào.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.