Eu sou novo no Python no ArcGIS, mas não sou novo no ModelBuilder.
Gostaria de conhecer os benefícios do Python vs ModelBuilder.
Quando devemos escrever um script Python para automação GIS em vez de usar o ModelBuilder?
Quais são os recursos de automação do Python que não conseguimos encontrar no ModelBuilder?
fonte
Se você estiver trabalhando exclusivamente dentro dos limites do ArcGIS, há algumas considerações que eu consideraria ao tentar determinar a abordagem a ser adotada.
Dadas essas considerações:
Provavelmente, não há resposta para "o que é melhor" para uso pessoal, mas se você estiver buscando oportunidades de emprego a longo prazo, aprendendo Python, você se destacará daqueles que sabem apenas usar as ferramentas pré-programadas ou apenas saiba como usar o ModelBuilder. Você também tem a capacidade de sair dos limites do Python para ArcGIS (ArcPy) e começar a automatizar muito mais tarefas e projetos usando outras bibliotecas GIS de código aberto e proprietárias, bem como muitas bibliotecas não GIS (ou seja, banco de dados manipulação de imagem, estatísticas, etc.).
fonte
O Model Builder é uma linguagem de programação visual excelente e fácil de aprender e uma boa entrada para a programação GIS em geral. Mas, em algumas coisas, o python pode fazer mais.
Um exemplo é a integração de bibliotecas não ESRI GIS. Quase todo o GIS de código aberto também pode ser endereçado via python (por exemplo , GRASS , Sextante , QGIS , SAGA ). Isso me ajudou muito, porque eu só tenho uma licença do ArcView. Portanto, toda vez que não posso usar uma determinada ferramenta de geoprocessamento no ArcGIS, procuro outras opções disponíveis no GIS de código aberto. Depois, pego essas ferramentas OpenSource e as combino com as ferramentas do ArcGIS em um script python maior ou as integro no ModelBuilder por meio de um script python menor.
Tenho certeza que outros membros podem citar mais vantagens.
fonte
Ao usar o Python e o ArcGIS, você obtém toda a funcionalidade do Python, além da que você já possuía no ArcGIS. Se você precisar desse tipo de poder e flexibilidade, depende de seus desejos. Além disso, conhecer e realmente alavancar uma linguagem de programação como o Python leva tempo. Se esse investimento vale a pena, você decide. No entanto, para o processamento sério de dados, uma linguagem de script real é uma adição muito boa ao seu arsenal.
Além de qualquer funcionalidade que o ModelBuilder possa perder, também há uma discussão mais fundamental. Em geral, os scripts são muito mais adequados para criar fluxos de trabalho complexos. O código é processado de cima para baixo, e tarefas complexas podem ser subdivididas em subtarefas menores usando, por exemplo, funções. ou objetos. Uma ferramenta gráfica como o construtor de modelos tende a se tornar um grande espaguete.
fonte
Eu sou parcial em criar scripts Python. É mais divertido escrever código do que mexer nas linhas de conexão de caixas e coisas assim, pelo menos para mim.
O que é realmente ótimo nos scripts Python é que você pode agendar seus scripts para serem executados em um momento conveniente para você. Se você tiver um script que demora um pouco para concluir ou precisa ser executado fora do horário comercial, isso é realmente conveniente. Você pode ver um exemplo de como agendar um script aqui .
E como o @Aaron menciona, você pode configurar facilmente o loop em um script Python.
Se você está apenas começando o script Python, pode criar um modelo com o Model Builder e exportá-lo como um script Python. Às vezes, faço isso se estiver com problemas para entender como usar várias ferramentas em um script. Isso pode ajudá-lo a entender como montar scripts.
fonte
Descobri que pareço ficar sem solução com o construtor de modelos do que com os scripts python. A natureza um tanto de 'caixa preta' do construtor de modelos para mim torna mais difícil encontrar onde o problema está localizado.
Também descobri que posso encontrar muito mais ajuda em python. Costumo encontrar muitos tópicos e tópicos sobre becos sem saída sobre o construtor de modelos. Também há menos exemplos, onde, como no python, você provavelmente pode encontrar pequenos trechos da maioria das partes de qualquer script que estiver escrevendo.
fonte