Introduction
Chez ESRI Japan,GISコミュニティフォーラムet lors d'autres occasions,nous organisons des sessions pour les débutants en ArcPy.Dans ces enquêtes, nous recevons parfois des commentaires tels que « Je veux savoir comment consulter la référence ».Comment consulter la référence». Pour répondre à cette demande, cet article présente des astuces pour lire la référence après avoir commencé avec ArcPy.
Cet article se concentre sur la page de référence deArcPyde la documentation.Si vous souhaitez apprendre les bases d'ArcPy dans leur ensemble, veuillez consulter
ce matériel pédagogique.Si vous souhaitez apprendre des bases aux applications avancées avec un instructeur spécialisé, envisagez d'utiliserla formation.
Pourquoi est-il nécessaire de consulter la référence ?
ArcPy est une bibliothèque qui permet d'exécuter et d'automatiser les opérations d'ArcGIS Pro avec Python. Il est possible d'écrire des scripts sans consulter la référence grâce à l'accès direct aux outils de géotraitement, à l'abondance d'exemples de code fournis et à l'existence de cours de formation. Cependant, lorsque vous souhaitez combiner plusieurs exemples pour créer un flux de traitement complet, personnaliser finement les traitements ou le design, ou lorsque la méthode de création de scripts depuis ArcGIS Pro n'est pas disponible, vous pouvez trouver cela insuffisant.ArcGIS ProDans ces cas, savoir lire la référence permet de résoudre ces problèmes et d'exécuter les traitements plus précisément selon vos intentions.
Description de la structure de l'écran
L'image suivante montre l'écran principal de la référence Python d'ArcGIS Pro, c'est-à-dire la référence d'ArcPy.Écran principal de la référence ArcPy
Vous pouvez accéder au contenu concernant ArcPy depuis cette page. Pour les outils de géotraitement, vous pouvez accéder via l'onglet Référence des outils situé à côté de l'onglet Python.
Sur la gauche de la page sont affichés les modules classés par fonction, ainsi que « Fonctions ArcPy » et « Classes ArcPy ». Voici quelques-uns des modules fréquemment utilisés.
Module d'accès aux données
Il contient des classes et fonctions pour accéder aux données.La fonction Describeet les curseurs en sont des exemples typiques.
Module cartographique
Il sert à manipuler les fichiers projet (.aprx), cartes et couches. Il est souvent utilisé dans les procédures d'automatisation de création et d'exportation de cartes. C'est probablement le module le plus familier pour beaucoup.Le tutorielexplique le flux complet depuis l'obtention du fichier projet jusqu'à l'exportation des cartes créées.
Module partagé
Il est utilisé pour télécharger du contenu depuis ArcGIS Pro vers ArcGIS Online ou ArcGIS Enterprise via ArcPy. Vous pouvez publier et partager non seulement des cartes et couches mais aussi des outils et services.
Outre les modules et outils de géotraitement, diverses classes et fonctions sont également fournies. Pour plus de détails, consultezles classes ArcPyetles fonctions ArcPy.À partir de la section suivante, examinons comment lire les pages de référence des outils, fonctions et classes d'ArcPy.
Comment lire la référence des outils, classes et fonctions
Lecture de la référence des outils
Prenons comme exemple la page "Recherche par attributs".Recherche par attributsExaminons-la comme exemple.
La page de référence d'un outil est structurée avec les rubriques suivantes :
・Résumé
・Utilisation
・Paramètres
・Dialogue
・Python
・Environnement
・Informations sur la licence
・Sujets connexes
La description de l'outil peut être vérifiée dans le résumé et l'utilisation. Lorsqu'on utilise ArcPy, on vérifie le Python sous Paramètres. Par exemple, pour l'exportation d'entités traitée ici, cela ressemble à ce qui est montré dans l'image ci-dessous.
Voyons cela dans l'ordre des numéros sur l'image. Le point 1 montre la syntaxe d'utilisation. Pour un outil, elle prend généralement la forme « arcpy.aliasBoîteÀOutils.nomOutil(paramètres) ».
Ensuite, le point 2 indique le nom et la description de chaque paramètre. Les paramètres entourés par "{}" sont indiqués comme "(optionnels)". Cela signifie qu'ils peuvent être ajoutés si nécessaire. S'ils ne sont pas nécessaires, ils peuvent être omis pour simplifier le script.
Enfin, le point 3 indique le type de données requis. Pour rechercher le type de données d'une variable dans un script, vous pouvez utiliser la fonction type.
Lorsqu'un outil est exécuté, il retourne un objet Result.Result. Cet objet permet d'obtenir des informations sur l'exécution de l'outil telles que les sorties ou messages, et peut être utilisé comme paramètre dans un autre outil.
Encadré -Réduire les paramètres inutiles -
Par exemple, supposons que vous exécutez l'outil Recherche par attributs du géotraitement et envoyez le résultat à la fenêtre Python.
L'image suivante montre ce qui a été envoyé à la fenêtre Python après exécution de l'outil.
L’outil utilisé ici est 属性検索は必須パラメーターが in_layer_or_view のみです。オプションのパラメーターについては where_clause以外は全て None やデフォルト値を選択しています。None やデフォルト値を使用する場合は書かなくても動作に影響はありません。次の図のように不要なパラメーターを省略するとよりすっきりした見た目になります。
サンプル コード
Python タブを開くと、パラメーターの下にコードのサンプルが表示されます。主に Python ウィンドウで実行するためのスクリプトとスタンドアロン スクリプトがあります。前者は不必要なパラメーターが削られているスクリプトであるため、シンプルなコードを作成する手掛かりにも使えます。
クラス・ 関数のリファレンスの読み方
クラスの場合は以下のような見出しでページが構成されています。
・サマリー
・説明
・プロパティ
・方法の概要
・方法
・構文
・戻り値
・コードのサンプル
関数の場合は以下のようになります。
・サマリー
・説明
・構文
・戻り値
・コードのサンプル
前述のツールの場合でも紹介していますが、「{}」がついているものは任意となるのでパラメーターやメソッドを入力する時に自分で調整します。
ここでは最もよく目にするクラスの 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" # Classification quantile
sym.renderer.breakCount = 5 # Classes
lyr.symbology = sym
Tout d'abord, accédez au renderer.Classe Layer de la propriété symbology pour accéder au renderer.
sym = lyr.symbology
Cette fois, comme nous allons modifier le symbole,classe symbologyexécutez la méthode updateRenderer. Regardons la référence ici. Cette méthode nécessite un paramètre obligatoire, qui doit être choisi parmi des chaînes prédéfinies. Comme nous voulons une couleur graduée, entrez "GraduatedColorsRenderer". Pour les cinq paramètres, veuillez vous référer à la liste sous l'illustration.
sym.updateRenderer("GraduatedColorsRenderer")
- GraduatedColorsRenderer→ Couleur graduée
- GraduatedSymbolsRenderer→ Symbole gradué
- SimpleRenderer→ Symbole unique
- UnClassedColorRenderer→Étirement
- UniqueValueRenderer→ Valeur unique
Ensuite, pour spécifier le contenu du renderer, accédez à la propriété renderer de la classe symbology.
sym.renderer
Ici, vous pouvez trouver l'objet updateRenderer que vous avez spécifié avec GraduatedColorsRenderer.Voyons maintenant la référence de la classe GraduatedColorsRenderer.Il y a beaucoup de propriétés configurables, mais supposons que nous voulons spécifier le champ utilisé pour la coloration, la méthode de classification et le nombre de classes. Pour cela, configurez les propriétés "classificationField", "classificationMethod" et "classBreaks". Comme nous voulons une classification quantile, spécifiez Quantile pour "classificationMethod". Pour plus d'informations sur les méthodes de classification, veuillez consulterles méthodes de classification des données.
sym.renderer.classificationField = "total"
sym.renderer.classificationMethod = "Quantile"
sym.renderer.breakCount = 5
Enfin, assignez l'objet symbology configuré à la propriété symbology de la classe Layer.
lyr.symbology = sym
Ainsi, nous avons créé un script montrant le processus complet de modification des symboles en configurant méthodes et propriétés. Ici, nous avons spécifié "GraduatedColorsRenderer" et modifié le symbole en utilisant le renderer, mais vous pouvez aussi choisir "SimpleRenderer" et utiliser la propriété symbol pour définir un symbole unique.SimpleRenderer
for lyr in lyrs:
if lyr.name == "<Nom_du_couche>":
sym = lyr.symbology
sym.updateRenderer("SimpleRenderer")
sym.renderer.symbol.applySymbolFromGallery("バス ターミナル")
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
Si vous souhaitez créer un symbole comme ci-dessus dans un script, il est nécessaire de consulter la référence du symbol.
En conclusion,
cet article explique comment consulter la référence ArcPy en présentant la structure et la lecture des pages de référence. Cela peut être utile lors de la personnalisation du code exemple pour votre environnement ou lors de la création d'un nouveau script. J'espère que cet article rendra ArcPy un peu plus accessible.
Atelier d'introduction à ArcPy
Pour ceux qui souhaitent apprendre ArcPy dans son ensemble, veuillez consulter ceci.
Articles de blog sur ArcPy ici