Jakaś różnica w wydajności między oknem Pythona a narzędziem skryptowym Python?

9

Czy istnieje różnica w wydajności między uruchomieniem skryptu Python w oknie Pythona a uruchomieniem go jako narzędzia skryptowego Python z przybornika w ArcGIS Desktop 10.0?

Czasami muszę korzystać z ArcPy i mieć uruchomiony ArcGIS. Z mojego niedawnego doświadczenia mogę uruchomić ten sam skrypt za pomocą przybornika i okna Pythona, a przybornik wydaje się być nieco szybszy.

Ostra papryczka
źródło
Podczas korzystania ze samodzielnych skryptów: nie musisz otwierać Arcmap, oszczędzając w ten sposób czas i zasoby (procesor i pamięć). W tej chwili nie stać mnie na porządny komputer.
gm70560
Przybornik nie jest również w stanie dotknąć dokumentu mapy AKTUALNY. Musisz wskazać mxd, aby zrobić cokolwiek z określoną mapą w narzędziu, przy czym możesz użyć arcpy.mapping.MapDocument („CURRENT”) w oknie pythona.
eseglem
3
@eseglem, zdecydowanie powinieneś być w stanie użyć CURRENTsłowa kluczowego, aby uzyskać dostęp do bieżącego dokumentu mapy w narzędziu skryptowym, o ile jest on uruchamiany w toku.
blah238
1
@ gm70560 Po uruchomieniu samodzielnego skryptu musisz utworzyć rodzaj instancji Arcmap, co zajmuje dużo czasu. W oknie Pythona, które jest już uruchomione.
Matthew Snape
2
import arcpyzajmie dużo czasu jako samodzielny skrypt (lub część przybornika), podczas gdy w ArcMap jest już częścią przestrzeni nazw okna pytona.
Michael Markieta

Odpowiedzi:

5

Zarówno Michael Markieta, jak i gm70560 są poprawne. Jeśli uruchamiasz duże zadania geoprzetwarzania, zdecydowanie zrobiłbym to za pomocą autonomicznego skryptu python, najlepiej uruchamianego z wiersza poleceń, a nie IDE. W przypadku tego rodzaju zadań narzut związany z importowaniem ArcPy jest tego wart.

Jednak małe zadanie, szczególnie wymagające interwencji użytkownika, jest zwykle szybsze i wygodniejsze w ArcMap - chyba że musisz otworzyć ArcMap specjalnie do tego celu, w którym to przypadku masz nakład na uruchomienie samego ArcMap oraz trochę przestoju, z którym możesz się połączyć wszystkie bazy danych, do których odwołuje się MXD (które, jeśli są w powolnym połączeniu sieciowym, mogą być uciążliwe).

Podobnie, przetwarzanie wsadowe nawet małych zadań jest, moim zdaniem, lepiej wykonywane w samodzielnym skrypcie Python niż za pomocą przybornika w ArcMap, ponieważ bierzesz to trafienie importu tylko raz i nie masz narzutu ArcMap.

Po przeprowadzeniu wielu zautomatyzowanych geoprzetwarzania za pomocą skryptów Python domyślnie uruchomiłbym je jako samodzielne procesy, ponieważ podoba mi się dodatkowa szybkość i elastyczność. Większość zadań, które działają szybciej w przyborniku, jest zwykle na tyle mała, że ​​zwaliłbym je w ModelBuilder, nie zawracając sobie głowy pisaniem kodu.

MappaGnosis
źródło