Introdução
Na ESRI Japão,no GIS Community Forume em outras ocasiões,realizamos sessões para iniciantes em ArcPy.Em pesquisas realizadas nessas sessões, recebemos comentários como “Gostaria de saber como consultar a referência”.Queremos mostrar como consultar a referência e, por isso, neste artigo apresentamos dicas para ler a referência após o aprendizado inicial de ArcPy.
Este artigo foca na página de referência doArcPyreferência.Se deseja aprender os fundamentos do ArcPy de forma abrangente, consulte
este material didático.Para quem quer aprender do básico ao avançado com instrutores especializados, considere utilizar otreinamento.
Por que é necessário consultar a referência?
ArcPy é uma biblioteca que permite automatizar operações do ArcGIS Pro usando Python. Como é possível acessar scripts diretamente das ferramentas de geoprocessamento, há muitos exemplos de código disponíveis e cursos de treinamento, às vezes é possível escrever scripts sem consultar a referência. Porém, quando se deseja combinar vários exemplos para criar um fluxo de trabalho completo, personalizar detalhadamente processos ou design, ou quando não se pode usar o método de gerar scripts diretamente do ArcGIS Pro, pode-se sentir que falta algo. Nesses casos, saber ler a referência ajuda a resolver esses problemas e permite controlar os processos conforme sua vontade.ArcGIS ProPode parecer insuficiente quando não se pode usar o método de criar scripts diretamente do ArcGIS Pro. Saber ler a referência nesses momentos ajuda a resolver esses problemas e permite controlar os processos conforme sua vontade.
Explicação da estrutura da tela
A imagem abaixo mostra a tela principal da referência Python do ArcGIS Pro, ou seja, a referência doArcPy.
Você pode acessar conteúdos relacionados ao ArcPy nesta página. Para ferramentas de geoprocessamento, acesse pela aba Referência da ferramenta ao lado da aba Python.
No lado esquerdo da página são exibidos módulos classificados por função, além das “Funções ArcPy” e “Classes ArcPy”. Vamos destacar alguns dos mais usados.
Módulo Data Access
Contém classes e funções para acessar dados.Função Describee cursores são exemplos representativos.
Módulo Mapping
Usado para manipular arquivos de projeto (.aprx), mapas e camadas. Frequentemente usado para automatizar criação e exportação de mapas. É provavelmente o módulo mais familiar para muitos usuários.O tutorial explica o fluxo completo desde obter o arquivo do projeto até exportar o mapa criado.
Módulo Sharing
Usado para fazer upload de conteúdo do ArcGIS Pro para ArcGIS Online ou ArcGIS Enterprise usando ArcPy. Permite publicar e compartilhar não só mapas e camadas, mas também ferramentas e serviços.
Além dos módulos e ferramentas de geoprocessamento, várias classes e funções são fornecidas. Para detalhes consulte as páginas deClasses ArcPyeFunções ArcPy.Nas próximas seções veremos como ler as páginas de referência das ferramentas, funções e classes do ArcPy.
Como ler a referência de ferramentas, classes e funções
Como ler a referência das ferramentas
Vamos usar como exemplo a página da ferramentaPesquisa por Atributos.
A página da ferramenta é estruturada com os seguintes títulos:
- Resumo
- Uso
- Parâmetros
- Diálogo
- Python
- Ambiente
- Informações da licença
- Tópicos relacionados
A descrição da ferramenta pode ser verificada no resumo e uso. Ao usar ArcPy, confira os parâmetros na seção Python. Por exemplo, na exportação de feições que estamos tratando aqui, está assim na figura abaixo.
Vamos analisar na ordem dos números da figura. O item 1 mostra a sintaxe de uso. Para ferramentas geralmente é no formato “arcpy.AliasDaCaixaDeFerramentas.NomeDaFerramenta(parâmetros)”.
O item 2 mostra os nomes dos parâmetros com suas descrições. Parâmetros com “{}” são opcionais; você pode adicioná-los se necessário ou omiti-los para simplificar o script.
O item 3 indica o tipo de dado esperado. Para descobrir o tipo de dado de uma variável durante o script use a função type.
Ao executar uma ferramenta, um objeto Result é retornado como valor de retorno.Objeto Result, que permite obter informações sobre a operação da ferramenta. Pode-se obter informações sobre saída, mensagens e usar em outros parâmetros.
Coluna -Reduzindo parâmetros desnecessários -
Por exemplo, suponha que você execute a ferramenta Pesquisa por Atributos no geoprocessamento e envie o resultado para a janela Python.
A imagem abaixo mostra o que foi enviado para a janela Python após executar a ferramenta.
'Pesquisa por Atributos' usada aqui tem apenas um parâmetro obrigatório: in_layer_or_view. Para os parâmetros opcionais exceto 'where_clause', todos estão definidos como None ou valores padrão. Usar None ou valores padrão não afeta o funcionamento mesmo se omitidos. Omitir parâmetros desnecessários deixa o código mais limpo como mostrado na figura abaixo.
'Código Exemplo' aparece abaixo dos parâmetros na aba Python. Existem scripts para execução na janela Python e scripts standalone. Os primeiros têm parâmetros desnecessários removidos, servindo como guia para criar códigos simples.
'Como ler referências de classes e funções'
'Para classes as páginas são estruturadas assim:','
・サマリー
・説明
・プロパティ
・方法の概要
・方法
・構文
・戻り値
・コードのサンプル
関数の場合は以下のようになります。
・サマリー
・説明
・構文
・戻り値
・コードのサンプル
前述のツールの場合でも紹介していますが、「{}」がついているものは任意となるのでパラメーターやメソッドを入力する時に自分で調整します。
ここでは最もよく目にするクラスの 1 つである ArcGISProject クラスを見てみましょう。
冒頭からサマリーや説明が書かれていますが、その次にプロパティが現れます。このセクションでは各クラスに含まれるプロパティ、その説明とデータ タイプが書かれています。プロパティが別のクラスになる場合はリンクから辿ることもできます。
その次はクラスに含まれるメソッドの説明が現れます。メソッドについてはまず、「方法の概要」セクションで各メソッドの名前と短い概要が列挙され、その次の「方法」セクションで個別に詳しくメソッドの説明が書かれています。
サンプル コードはクラスや関数により数が異なります。例えば、ArcGISProject クラスでは 8 つのサンプル コードがあります。
リファレンスを見たい場面 -Python に送信機能が使えないとき-
ここまで ArcPy リファレンスの構成についてツールと「クラス・関数」に分けて確認しました。ArcPy でスクリプトを作成する際にはリファレンスを見ながら書いていくと思いますが、ArcGIS Pro を使用する場合はツールの履歴画面から「Python ウィンドウに送信」や「ノートブックに送信」を使用してスクリプトの一部を作る方もいると思います。
この手法はツールのみが対象で、ツールにないシンボル設定やエクスポートなどのコマンドはリファレンスを参照し自作する必要があります。例えば ArcPy を利用して ArcGIS Pro 上のフィーチャ レイヤーを ArcGIS Online にフィーチャ サービスとして公開する流れは一部の過程のみツールが対応しているのでリファレンスを見ながらスクリプトを自作する必要があります。次の章ではコマンドの一例としてシンボル変更のスクリプトを見ていきます。
リファレンスを見ながら短いスクリプトを作成してみよう
今回はレイヤーの見た目を変更したいと思います。色分けをするレンダラーと色を設定するシンボルを使って変更を行います。
# lyrs はレイヤーのリスト、lyr は一つ一つのレイヤーのオブジェクト
for lyr in lyrs:
if lyr.name == "放置車両":
sym = lyr.symbology
sym.updateRenderer("GraduatedColorsRenderer") # 等級色
sym.renderer.classificationField = "total" #分類するフィールド名
sym.renderer.classificationMethod = "Quantile" # Classificação Quantílica
sym.renderer.breakCount = 5 # Classes
lyr.symbology = sym
Primeiro, acesse o renderer.Classe Layer de propriedade symbology para acessar o renderer.
sym = lyr.symbology
Como vamos alterar o símbolo desta vez,classe symbology executaremos o método updateRenderer, mas vamos consultar a referência aqui. Desta vez, há um parâmetro obrigatório que deve ser escolhido entre strings predefinidas. Como queremos usar cores graduadas, insira "GraduatedColorsRenderer". Para os cinco parâmetros, consulte a lista abaixo da figura.
sym.updateRenderer("GraduatedColorsRenderer")
- GraduatedColorsRenderer→ Cores Graduadas
- GraduatedSymbolsRenderer→ Símbolos Graduados
- SimpleRenderer→ Símbolo Único
- UnClassedColorRenderer→Stretch
- UniqueValueRenderer→ Valores Únicos
Em seguida, para especificar o conteúdo do renderer, acesse a propriedade renderer da classe symbology.
sym.renderer
Aqui, você pode encontrar o objeto updateRenderer que especificamos como GraduatedColorsRenderer.Agora, vamos consultar a referência da classe GraduatedColorsRenderer.Existem muitas propriedades configuráveis, mas aqui queremos definir o campo usado para colorir, o método de classificação e o número de classes. Para isso, configuramos as propriedades "classificationField", "classificationMethod" e "classBreaks". Como queremos classificar por quantis, definimos "classificationMethod" como Quantile. Para métodos de classificação, consulte métodos de classificação de dados.
sym.renderer.classificationField = "total"
sym.renderer.classificationMethod = "Quantile"
sym.renderer.breakCount = 5
Por fim, atribuímos o objeto symbology configurado à propriedade symbology da classe Layer.
lyr.symbology = sym
Assim, criamos um script que altera símbolos configurando métodos e propriedades. Aqui especificamos "GraduatedColorsRenderer" para alterar símbolos usando renderer, mas também é possível usar "SimpleRenderer" e configurar um símbolo único usando a propriedade symbol.SimpleRenderer
for lyr in lyrs:
if lyr.name == "<nome_da_camada>":
sym = lyr.symbology
sym.updateRenderer("SimpleRenderer")
sym.renderer.symbol.applySymbolFromGallery("Terminal de Ônibus")
sym.renderer.symbol.color = {"RGB" : [243,32,41,100]}
sym.renderer.symbol.outlineColor = {"RGB" : [0,0,0,100]}
sym.renderer.symbol.size = 21
lyr.symbology = sym
Se quiser criar um símbolo como acima no script, é necessário consultar a referência do symbol.
Conclusão
Este artigo explicou como consultar a referência do ArcPy mostrando a estrutura e visualização da página de referência. Pode ser útil ao personalizar códigos de exemplo para seu ambiente ou criar novos scripts. Espero que este artigo facilite seu aprendizado em ArcPy.
Introdução prática ao ArcPy
Para quem quer aprender ArcPy por completo, veja aqui.
Artigos do blog sobre ArcPy estão aqui