Alguma diferença de desempenho entre a janela Python e a ferramenta de script Python?


9

Existe uma diferença no desempenho entre executar um script Python na janela Python e executá-lo como uma ferramenta de script Python na caixa de ferramentas do ArcGIS Desktop 10.0?

Às vezes, preciso usar o ArcPy e ter o ArcGIS em execução. Na minha experiência recente, posso executar o mesmo script via caixa de ferramentas e, na janela python, a caixa de ferramentas parece ser um pouco mais rápida.


Ao usar scripts independentes: você não precisa abrir o Arcmap, economizando tempo e recursos (CPU e memória). Não posso comprar um computador decente no momento.
Gm70560

A caixa de ferramentas também não pode tocar no documento de mapa ATUAL. Você precisa apontar para um mxd para fazer qualquer coisa com um mapa específico de uma ferramenta, onde você pode usar arcpy.mapping.MapDocument ("CURRENT") na janela do python.
eseglem

3
@eseglem, você definitivamente deve poder usar a CURRENTpalavra-chave para acessar o documento do mapa atual em uma ferramenta de script, desde que esteja em execução no processo.
blah238

11
@ gm70560 Quando você executa um script independente, está criando um tipo de instância do Arcmap, que leva tempo. Dentro da janela python que já foi iniciada.
Matthew Snape

2
import arcpylevará muito tempo como um script independente (ou parte de uma caixa de ferramentas), enquanto no ArcMap ele já faz parte do espaço para nome da janela do python.
Michael Markieta

Respostas:


5

Michael Markieta e gm70560 estão corretos. Se você estiver executando grandes tarefas de geoprocessamento, eu definitivamente o faria por meio de um script python independente, de preferência iniciado na linha de comando e não em um IDE. Para esse tipo de tarefa, vale a pena a sobrecarga de importação do ArcPy.

No entanto, uma tarefa pequena, especialmente uma que requer entrada do usuário, geralmente é mais rápida e mais conveniente no ArcMap - a menos que você precise abrir o ArcMap especificamente para a finalidade, nesse caso, você terá a sobrecarga de iniciar o próprio ArcMap mais algum tempo de inatividade para conectar-se ao ArcMap. todos os seus bancos de dados mencionados no MXD (que, se estiverem em uma conexão de rede lenta, podem ser entediantes).

Da mesma forma, o processamento em lote até de pequenas tarefas é, na minha opinião, melhor realizado em um script Python independente do que através de uma caixa de ferramentas no ArcMap, porque você recebe esse hit de importação apenas uma vez e não possui o ArcMap.

Tendo feito muito geoprocessamento automatizado por meio de scripts Python, eu os executaria como processos independentes, porque gosto da velocidade e flexibilidade adicionais. A maioria das tarefas que são executadas mais rapidamente na caixa de ferramentas geralmente são pequenas o suficiente para que eu as tivesse reproduzido no ModelBuilder sem se preocupar em escrever qualquer código.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.