DSG06 | Desenvolvendo Aplicações GIS com Python

Diogo Romeo Rosanelli

Desenvolvedor e Consultor GIS

Bem-vindo(a) ao sexto artigo da nossa série “Desvendando os Segredos Geoespaciais”! Hoje, vamos mergulhar no mundo da programação geoespacial com Python e ArcPy. Vamos aprender a desenvolver aplicações personalizadas para automatizar tarefas, criar fluxos de trabalho eficientes e explorar o poder da linguagem de programação mais popular entre analistas GIS, o Python.

O objetivo deste sexto artigo é iniciar a jornada na programação geoespacial com Python e ArcPy. Ao final do dia, você terá desenvolvido uma aplicação geoespacial simples que realiza uma análise de proximidade entre os pontos de interesse, terá exportado o resultado para um arquivo CSV e terá configurado uma ligação (join) entre os dados do projeto. Essa habilidade permitirá que você automatize tarefas repetitivas e desenvolva soluções personalizadas para suas necessidades de análise geoespacial.

Introdução ao Python e ArcPy

Python é uma linguagem de programação versátil e amplamente utilizada no campo da análise geoespacial. O ArcPy é uma biblioteca específica do Sistema ArcGIS, que permite interagir com dados geoespaciais, realizar análises e executar ferramentas geoprocessamento por meio de scripts Python.

O Python se tornou uma ferramenta fundamental para os analistas GIS, pois permite a realização de análises avançadas, automatização de tarefas complexas, desenvolvimento de aplicações personalizadas que explorem o potencial dos dados geoespaciais, que quando combinado com a biblioteca ArcPy e outras bibliotecas geoespaciais, expande consideravelmente as possibilidades de análise e ajuda os analistas a tomarem decisões precisas.

Sua crescente popularidade no campo das geotecnologias se deve a vários fatores:

1. Simplicidade e Facilidade de Aprendizado: Python é conhecido por sua sintaxe clara e intuitiva, tornando-o acessível para iniciantes e experientes. Isso é especialmente vantajoso para analistas GIS que podem não ter um fundo sólido em programação.

2. Bibliotecas Específicas para Geotecnologias: A biblioteca ArcPy, desenvolvida pela Esri, permite que os usuários interajam diretamente com dados geoespaciais e ferramentas do ArcGIS. Além disso, outras bibliotecas, como GeoPandas e Fiona, permitem a manipulação eficiente de dados geográficos em diversos formatos.

3. Automatização de Tarefas: Com Python, é possível automatizar tarefas repetitivas, como processamento de dados em lote, conversões de formatos, análises espaciais complexas e criação de mapas temáticos. Isso economiza tempo e reduz a chance de erros humanos.

4. Integração com Ferramentas Externas: Python pode ser integrado facilmente a outras ferramentas e bibliotecas, permitindo a exploração de análises avançadas, como aprendizado de máquina e análise de dados em larga escala.

5. Customização e Extensibilidade: Com Python, os analistas GIS podem criar soluções personalizadas para suas necessidades específicas, desde scripts simples até aplicações mais complexas, estendendo as capacidades do software de SIG.

6. Comunidade Ativa e Recursos Abundantes: Python possui uma comunidade global ativa que compartilha conhecimento, tutoriais, bibliotecas e exemplos práticos. Isso torna a aprendizagem e a resolução de problemas mais fáceis.

7. Apoio de Grandes Empresas: Empresas líderes em tecnologias geoespaciais, como a Esri, reconheceram a importância do Python e desenvolveram bibliotecas específicas para facilitar a integração e a automação dos processos de análise.

Configurando o Ambiente Python

Antes de começar a desenvolvimento de nossas aplicações geoespaciais, vamos configurar o ambiente Python dentro do ArcGIS Pro:

1. Abra o ArcGIS Pro e abra o projeto criado anteriormente.

2. Acesse a aba “View” (Visualizar) e clique em “Python Window” para abrir o painel Python.

3. No painel Python, verifique se o ambiente Python está configurado corretamente e se o ArcPy está disponível.

print(str(sys.version))

Desenvolvendo uma Aplicação Geoespacial

Vamos desenvolver uma aplicação geoespacial simples que realiza uma análise de proximidade entre pontos de interesse em uma cidade.

1. Na aba “Analysis” (Análise) clique na opção Python para criarmos um novo script Python no ArcGIS Pro utilizando o Jupyter Notebook que existe na ferramenta.

2. Utilize o ArcPy para importar a camada de pontos de interesse e definir uma área de análise. Vamos utilizar a camada de Barragens existente em nosso projeto como camada de pontos de interesse.

3. Vamos iniciar o código importando a biblioteca arcpy. Na sequência, vamos definir uma variável PTN_INTERESSE indicando o caminho da camada Barragens que está no File Geodatabase criado no artigo anterior.

Para pegar o caminho da camada, acesse a tela de propriedades,

Selecione as propriedades DATABASE e acrescente como sufixo o NAME da camada

import arcpy

PTN_INTERESSE = r"D:\PESSOAL\ARTIGO\DSG04\DSG04\DSG.gdb\Barragens"

4. Defina também uma propriedade agora para camada de CIDADES.

import arcp

PTN_INTERESSE = r"D:\PESSOAL\ARTIGO\DSG04\DSG04\DSG.gdb\Barragens"

PTN_CIDADES = r"D:\PESSOAL\ARTIGO\DSG04\DSG04\DSG.gdb\Cidades"

5. Vamos utilizar a ferramenta “Near” (Próximidade) do ArcPy para calcular a proximidade entre os pontos de interesse.

Mas como saberei a sintaxe do comando Near?

Aqui vai uma dica, a documentação é sua melhor amiga quando se está programando, então vamos consultar a documentação do comando Near. Nela você encontrará toda contextualização do uso da ferramenta, além da sintaxe do comando e o detalhamento dos parâmetros.

Inclua em nosso código o comando indicando os seguintes parâmetros de entrada:

• IN_FEATURE: camada de pontos de interesse

• NEAR_FEATURE: camada onde se localizarão os pontos candidatos mais próximos.

6. Agora vamos exportar os resultados da análise para um novo arquivo CSV com os dados de proximidade das barragens, para identificamos as cidades mais próximas. Para isto vamos utilizar o comando Export Table onde dois parâmetros importantes, a tabela de entrada e a tabela de saída onde se pode salvar o arquivo CSV. Vamos definir antes o parâmetro da variável de saída, salvando a tabela dentro da pasta onde temos nossos dados de entrada.

OUT_NEAR_TABLE = r"D:\PESSOAL\ARTIGO\DSG04\DSG04\TBL_NEAR.csv"

Agora basta executar o código, clicando no botão RUN na barra de ferramentas do notebook, ou clicando na célula de código e utilizando o atalho CTRL + ENTER. Na lateral esquerda da célula, você verá um * enquanto o código estiver em processamento, e ao fim será exibido o resultado do processamento deste código.

Ao verificar a pasta de saída, podemos identificar o arquivo CSV gerado. Clique com o botão direito sobre o arquivo CSV e selecione a opção “Open Table” (Abrir Tabela).

Você visualizará na tabela, os atributos da camada de barragens, e os identificadores das cidades próximas. Caso o campo de NOME da barragem esteja nulo, significa que a cidade não possui uma barragem próxima. Caso esteja preenchido, você poderá consultar através do campo NEAR_ID e do campo OBJECTID na camada de cidades qual cidade está próxima aquela barragem. Para facilitar a visualização, vamos utilizar a funcionalidade de JOIN de atributos.

1. Na tabela de conteúdos de nosso mapa, clique com o botão direito sobre o arquivo CSV adicionado como camada, e vá até a opção “Join and Relates” (Ligações e Relações) e depois “Add Join” (Adicionar Ligação).

2. Configure a relação do dado CSV com a camada de CIDADES através do campo NEAR_FID e FID.

3. Abra a tabela novamente e agora consulte a relação entre os pontos de barragem e cidades.

Como sugestão de desafio, explore as funcionalidades básicas do arcpy e tente executar um “Buffer” (área de influência) de 100 km a partir da camada de CIDADES e execute a função de “Summarize” (sumarização) para contabilizar quantas barragens estão contidas dentro da área de influência. Se cumprir com o desafio, deixe seu resultado nos comentários.

Lembrete

A programação geoespacial é uma habilidade poderosa para analistas GIS. Python e ArcPy oferecem uma gama de recursos para manipular, analisar e visualizar dados geoespaciais de forma eficiente. Continue praticando e explorando o potencial da linguagem Python para enriquecer suas análises e desenvolver aplicações personalizadas. Nos próximos dias, continuaremos a aprofundar nossos conhecimentos em geotecnologias, avançando para conceitos ainda mais interessantes e desafiadores.

Não deixe de acompanhar a série de artigos e desafios, pois ainda há muito mais por descobrir!

Leia neste artigo

Descubra o poder das soluções

Preencha o formulário para que um especialista Imagem possa encontrar a solução que você precisa.

0 0 votes
Avalie o Artigo
Acompanhe estes comentários
Me avise sobre

0 Comentários
Inline Feedbacks
View all comments

Assine grátis a News Coordenadas

Acompanhe as novidades em Geotecnologia, Location Intelligence aplicados em todas as áreas de negócios.

Faça sua busca

Espere,

Separamos as Principais atualizações do ArcGIS para Você!