<\/HEAD>Recebemos muitos pedidos em nossa pesquisa de Treinamento Esri para mais cursos sobre scripting, particularmente com
Python<\/A>, o ambiente de scripting preferido para ArcGIS Desktop. Atualmente, temos um curso ministrado por instrutor<\/A> e uma variedade de recursos de e-Learning<\/A> que cobrem scripting em Python.
Então, por que tanto interesse em scripting? A principal razão é que scripts permitem automatizar fluxos de trabalho GIS que seriam demorados para completar uma tarefa de cada vez. Por exemplo, suponha que você precise atualizar atributos para milhares de feições diariamente. Você pode escrever um script para atualizar os atributos e fazer com que o script seja executado em um horário específico a cada dia (ou à noite após o expediente).
Os passos abaixo mostram uma maneira rápida de criar um script Python usando o que chamo de método F-C-P-M-T (que significa Encontrar, Copiar, Colar, Modificar, Testar). Assim como desenvolvedores que encontram código de exemplo e o modificam para seus próprios propósitos, você pode encontrar código de script Python de exemplo na Ajuda do ArcGIS Desktop e modificá-lo conforme suas necessidades. Para seguir os passos, baixe e descompacte os dados<\/A>.
Os passos assumem que você tem ArcGIS 9.3 ou 9.3.1, Python 2.5 e PythonWin instalados no seu computador ou em um local de rede ao qual você possa acessar e gravar dados.- Nota: <\/STRONG>Se você vai escrever scripts Python, vai querer ter o PythonWin, um aplicativo que fornece um ambiente amigável para criação, teste e depuração de scripts. O PythonWin 2.5.1 está incluído na mídia de instalação do ArcGIS 9.3 e 9.3.1, mas não é instalado por padrão. Você também pode obter a versão 2.5.4 do PythonWin em
http:\/\/www.python.org\/download\/releases\/2.5.4\/<\/A>.<\/LI><\/UL>O Cenário<\/SPAN><\/STRONG>
Suponha que você trabalhe em segurança pública para a cidade de San Diego e sua tarefa seja identificar paradas de bonde que possam precisar ser evacuadas e fechadas no caso de uma emergência em uma rodovia próxima. Você tem classes de feição representando as rodovias de San Diego, linhas de bonde e paradas de bonde. Você quer escrever um script para criar buffers nas rodovias, depois sobrepor as paradas de bonde e os buffers para gerar todas as paradas de bonde que podem ser impactadas em uma emergência em uma nova classe de feição.
Por que se dar ao trabalho de escrever um script para fazer essa operação GIS relativamente simples?Reutilização — você pode rapidamente mudar a distância do buffer se precisar apenas editando o script, depois executar o script para criar novos buffers.<\/LI>Você pode compartilhar o arquivo do script com colegas, que podem querer usar o script para seus próprios propósitos. Eles poderiam modificar a distância do buffer e especificar diferentes classes de feição para criar dados para seus próprios projetos, tudo isso sem nunca abrir ArcMap ou ArcCatalog.<\/LI>Você também pode salvar o script como uma ferramenta personalizada e incluí-lo em um modelo de geoprocessamento.<\/LI><\/UL>Passo 1: Encontrar Código do Script da Ferramenta de Geoprocessamento<\/SPAN><\/STRONG>Inicie o ArcMap, abra um novo documento vazio do mapa e exiba a janela ArcToolbox.
<\/A><\/LI>Expanda a caixa de ferramentas Analysis Tools e o conjunto Proximity.<\/DIV><\/LI>
Clique com o botão direito na ferramenta Buffer e escolha Ajuda.<\/DIV><\/LI>
Na janela da ajuda, role para baixo até ver a seção Sintaxe do Scripting.<\/DIV><\/LI>
Abaixo da sintaxe há um exemplo de script. Expanda o exemplo para ver o código.<\/DIV><\/LI><\/UL>Passo 2: Copiar/Colar Código Exemplo em um Novo Script<\/SPAN><\/STRONG>Clique em Iniciar > Todos os Programas > Python 2.5 > PythonWin.<\/LI>No menu Arquivo, escolha Novo > Script Python e clique OK.<\/DIV><\/LI>Com a janela Script1 ativa, no menu Arquivo escolha Salvar Como e salve o script com o nome BufferIntersect.py<\/STRONG> em uma pasta local.
<\/A><\/DIV><\/LI>Volte à janela da Ajuda do ArcGIS Desktop, selecione todo o código no exemplo do script, clique com o botão direito na seleção e escolha Copiar.<\/DIV><\/LI>
No PythonWin, clique com o botão direito dentro da janela BufferIntersect.py e escolha Colar.<\/DIV><\/LI>
Feche a janela da Ajuda do ArcGIS Desktop e navegue até a caixa de ferramentas Analysis Tools > conjunto Overlay > ferramenta Intersect.<\/DIV><\/LI>
Clique com o botão direito na ferramenta Intersect e escolha Ajuda.<\/DIV><\/LI>
Novamente, role até o exemplo do script, selecione todo o código, clique com o botão direito na seleção e escolha Copiar.<\/DIV><\/LI>
No PythonWin, pressione Enter para mover seu cursor para uma nova linha, depois clique com o botão direito e escolha Colar.<\/DIV><\/LI>
Feche a janela da Ajuda do ArcGIS Desktop e minimize o ArcMap.<\/DIV><\/LI>
Neste ponto, você criou um script que contém código exemplo que executará as duas ferramentas de geoprocessamento necessárias para seu projeto. Como você combinou os exemplos, seu script contém algum código extra que você não precisa, além claro do código exemplo referir-se a dados que você não possui. A primeira coisa a fazer é examinar o código e remover as linhas duplicadas.
Passo 3: Modificar o Código para Atender às Suas Necessidades<\/
SPAN>
Scripts Python que incorporam funcionalidade de geoprocessamento do ArcGIS começam com estas duas linhas de código:
Na janela do script, você vê este código no topo do primeiro exemplo e novamente no segundo exemplo,
que começa com um comentário explicando a finalidade do código.
Incluir comentários em um script é uma boa prática para que outros possam entender
o que o código está fazendo.
Em Python,
os comentários aparecem em texto itálico verde
sempre precedidos por um sinal número (#).
Quando o script é executado,
os comentários são ignorados.
<---->Adicione um comentário Data Criada como primeira linha no script.
No gp.workspace,
altere o caminho para refletir onde você salvou
o geodatabase San Diego.
Lembre-se que Python diferencia maiúsculas
minúsculas.
A linha gp.toolbox = "analysis"
significa que as ferramentas
referenciadas no script estão localizadas na caixa Analysis.
Isto é verdade para seu projeto,
então não precisa alterar.
Selecione e exclua as segundas linhas duplicadas
que importam módulo scripting ArcGIS
e criam objeto geoprocessor.
Passo 3a: Modificar Código da Ferramenta Buffero código exemplo da ferramenta buffer inclui todos os sete parâmetros aceitos pela ferramenta.
apenas os três primeiros parâmetros são obrigatórios (classe feição entrada,
output feature class,
e distância buffer).
o parâmetro são separados por vírgula no python.
edite texto comentário sobre
que está sendo buffered
para refletir este projeto.
altere parâmetros entrada saída conforme abaixo:
ul>
il input feature class: freeways(lembre-se python diferencia maiúsculas minúsculas)
il output feature class:Freeway_Buffers
neste código exemplo,
a distância buffer é string (entre aspas).
neste projeto,
você vai inserir distância numérica explícita.
a alt="Clique para ampliar" width="222" height="70" align="right" border="0" __migration_unknown="true" "/><\/A>
Selecione e exclua "Distance" e substitua por
1320.<\/STRONG><\/DIV>A distância é especificada em pés porque as unidades dos dados da freeway são pés.<\/DIV><\/LI><\/UL><\/LI>Exclua os últimos quatro parâmetros opcionais do código de exemplo.<\/DIV><\/LI><\/UL>Passo 3b: Modifique o Código para a Ferramenta Intersect<\/SPAN><\/STRONG>
O código de exemplo para a ferramenta intersect inclui tratamento de erros. As declarações try e except são usadas para lidar com erros inesperados durante a execução do código. Para este projeto simples, você não incluirá tratamento de erros. Além disso, o exemplo inclui múltiplas operações de geoprocessamento e parâmetros opcionais para a operação intersect. Para este exemplo, você precisa apenas do código intersect (gp.Intersect_analysis) e usará apenas os parâmetros obrigatórios do intersect (as entradas e saída).Exclua a declaração try: e a declaração except:.<\/DIV><\/LI>Exclua o comentário sobre definir o workspace e a linha de código que especifica o workspace — você já cuidou disso no topo do script.<\/DIV><\/LI>Edite o comentário para o código intersect (começa com # Process)<\/EM> para descrever o propósito desta operação intersect.<\/DIV><\/LI>Use a tecla Backspace ou Delete para mover o comentário e o código intersect para cima, ficando logo abaixo e alinhado com o código buffer (remova a indentação da seção intersect).<\/DIV><\/LI>Modifique o código intersect conforme segue:<\/DIV>Entradas: trolleystop<\/STRONG> e Freeway_Buffers<\/STRONG><\/DIV>Observe que as classes de feição de entrada são separadas por ponto e vírgula e que aspas são usadas apenas antes da primeira entrada e depois da última entrada. Certifique-se de manter essa formatação.<\/DIV><\/LI><\/UL><\/LI>Saída: StopsNearFreeways<\/STRONG><\/DIV><\/LI><\/UL><\/LI>Exclua os últimos três parâmetros opcionais.<\/DIV><\/LI>Exclua os comentários e linhas de código que fazem buffer, clipam, geram estatísticas e exclua a instrução print na parte inferior.<\/DIV><\/LI><\/UL>
O código para as operações de geoprocessamento agora atende às necessidades do projeto. Quando o script for executado, você quer confirmação de que o código está executando corretamente. Você pode adicionar instruções print para exibir uma mensagem na Janela Interativa<\/A> após cada ferramenta ser executada.
Coloque seu cursor no final da linha de código buffer e pressione Enter.<\/DIV><\/LI>Digite print "Os buffers da freeway foram criados."<\/STRONG><\/DIV><\/LI>Coloque seu cursor abaixo da linha de código intersect e digite print "O intersect foi concluído." <\/STRONG><\/DIV><\/LI>Salve o script.<\/DIV><\/LI><\/UL>
É isso, você terminou. O script está pronto para teste.Passo 4: Execute o Script<\/SPAN><\/STRONG>Clique no botão Executar
, depois clique em OK.<\/DIV><\/LI>Se você não conseguir ver a Janela Interativa, no menu Janela, escolha Janela Interativa. (Se não aparecer no menu Janela, use o menu Exibir.)
Após um momento, na Janela Interativa, você deverá ver as instruções print que digitou.
Se seu script não rodar corretamente, compare cuidadosamente seu código com o mostrado no último gráfico do passo 3, faça as correções necessárias, salve e execute novamente. Note, porém, que se a parte buffer rodou corretamente na primeira vez mas o intersect não, e você executar novamente o script, ocorrerá um erro porque a saída do buffer já existirá na geodatabase. Solução? Use ArcCatalog para excluir a saída do buffer (Freeways_Buffer), então execute novamente o script.<\/DIV>
Se desejar, você pode verificar se os dados foram criados usando ArcMap.

Quer Aprender Mais?
Este foi obviamente um exercício muito simples de scripting destinado a mostrar como você pode encontrar códigos Python de exemplo e combiná-los para criar um script que faça algo que você precisa fazer. Para criar scripts robustos, entretanto, é necessário investir algum tempo aprendendo conceitos e sintaxe Python.
As opções de treinamento vinculadas acima irão colocá-lo no caminho para se tornar um mestre em scripts.
Alguns livros recomendados para iniciantes são Learning Python, 3ª Edição (por Mark Lutz) e Core Python Programming, 2ª Edição (por Wesley Chun). Muitos livros foram escritos, no entanto. Um deles certamente irá agradá-lo.
<\BODY>