Qualche differenza di prestazioni tra la finestra di Python e lo strumento di script Python?


9

C'è una differenza nelle prestazioni tra l'esecuzione di uno script Python nella finestra di Python rispetto all'esecuzione come strumento di script Python dalla casella degli strumenti in ArcGIS Desktop 10.0?

A volte ho bisogno di usare ArcPy e far funzionare ArcGIS. Nella mia recente esperienza posso eseguire lo stesso script tramite toolbox e nella finestra di Python e la toolbox sembra essere un po 'più veloce.


Quando si utilizzano script autonomi: non è necessario aprire Arcmap, risparmiando così tempo e risorse (CPU e memoria). Non posso permettermi un computer decente al momento.
gm70560,

Inoltre, la casella degli strumenti non è in grado di toccare il documento della mappa CORRENTE. Devi puntare a un mxd per fare qualsiasi cosa con una mappa specifica in uno strumento, dove puoi usare arcpy.mapping.MapDocument ("CURRENT") nella finestra di Python.
eseglem,

3
@eseglem, dovresti sicuramente essere in grado di utilizzare la CURRENTparola chiave per accedere al documento della mappa corrente in uno strumento di script, purché venga eseguito in-process.
blah238,

1
@ gm70560 Quando si esegue uno script autonomo, è necessario creare una specie di istanza di Arcmap, che richiede tempo. All'interno della finestra di Python che è già stata avviata.
Matthew Snape,

2
import arcpyrichiederà molto tempo come script autonomo (o parte di una casella degli strumenti), mentre all'interno di ArcMap fa già parte dello spazio dei nomi della finestra di Python.
Michael Markieta,

Risposte:


5

Sia Michael Markieta che gm70560 sono corretti. Se stai eseguendo grosse attività di geoprocessing, lo farei sicuramente tramite uno script python autonomo, preferibilmente lanciato dalla riga di comando e non un IDE. Per questo tipo di attività, vale la pena il sovraccarico di importare ArcPy.

Tuttavia, un piccolo compito, in particolare quello che richiede l'input dell'utente, è in genere più veloce e più conveniente in ArcMap, a meno che non sia necessario aprire ArcMap appositamente per lo scopo, nel qual caso si ha il sovraccarico dell'avvio di ArcMap stesso e alcuni tempi di inattività a cui connettersi tutti i database a cui si fa riferimento in MXD (che se si trovano su una connessione di rete lenta possono essere noiosi).

Allo stesso modo, l'elaborazione in batch anche di piccole attività è, a mio avviso, meglio eseguita in uno script Python autonomo che tramite una cassetta degli attrezzi in ArcMap perché si prende quel colpo di importazione solo una volta e non si ha l'overhead di ArcMap.

Avendo svolto un sacco di geoprocessing automatizzato tramite script Python, per impostazione predefinita mi piacerebbe eseguirli come processi autonomi perché mi piace la velocità e la flessibilità aggiuntive. La maggior parte delle attività che vengono eseguite più velocemente nella casella degli strumenti sono in genere abbastanza piccole da poterle eliminare in ModelBuilder senza preoccuparmi di scrivere alcun codice.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.