ツールの構文
ツールのリファレンス ページの構文セクションに、各ツールのパラメータが詳細に説明されています。Python でツールを使用する際の構文も記述されています。
特定のツールを実行する Python コードを作成する簡単な方法は、[結果] ウィンドウを次のように使用する方法です。
- ツールのダイアログ ボックスを使用してツールを実行します。
- ツールの実行後、[結果] ウィンドウを開きます。
- 結果を右クリックして、[Python スニペットとしてコピー] をクリックします。
- コピーしたスニペットを Python コードに貼り付けます。
ツール シグネチャ
構文ヘッダの下にある最初の行にはツール シグネチャを含みます。
ツール名とエイリアス
Python では、ツールラベルの代わりにツール名を使用します。
- ツール ラベルは [ツール] ダイアログ ボックスの上部かカタログ ウィンドウに表示されます。
- Python では、ツール名の後にアンダースコア(_)で区切ってツールボックス エイリアスが続きます。たとえば、Python では、[シンメトリカル ディファレンス(Symmetrical Difference)] ツールは SymDiff_analysis として識別されます。
オプション パラメータ
ツール パラメータには必須とオプションがあります。オプション パラメータは中括弧({})で囲まれますが、必須パラメータには括弧がついていません。
パラメータのタイプ |
シンボル |
意味 |
---|---|---|
必須 |
必須パラメータ。コマンドの最初のパラメータは常に必須パラメータです。必須パラメータについては、値の入力が必要です。 |
|
オプション |
{ } |
オプション パラメータ。これらのパラメータは常に必須パラメータの次に配置されています。オプション パラメータの値を入力しない場合は、デフォルトの値が計算され、使用されます。パラメータのデフォルトの値については、ツールのヘルプをご参照ください。 |
オプション パラメータ名は、Python ではショートカットとして役に立ちます。空の引用符("")やシャープ記号("#")を指定して、使用しないオプション パラメータを個別にスキップする代わりに、パラメータ名を使用してパラメータを明示的に設定できます。
# Use the parameter name to bypass unused optional arguments
arcpy.AddField_management("c:/data/streets.shp", "Address", "TEXT", field_length=120)
パラメータ テーブル
ツール シグネチャに続くのが、パラメータ、説明、データ タイプ という 3 列からなるパラメータ テーブルです。パラメータ テーブルの行は、常にパラメータ順です(ツール シグネチャと同じ順序)。
ツールのダイアログ ボックスでは、実際のパラメータとは異なる順序でパラメータを表示できます。そのため、まれではありますが、ツールのダイアログ ボックスに表示されるパラメータの順序とパラメータ テーブルの順序が異なることがありえます。Python の場合は、常にパラメータ テーブルで示された順序を使用します。
パラメータ列
この列のセルには、以下に示したように、パラメータ名、オプション パラメータかどうか、そしてリストを受け取るパラメータの場合は、リストの構文が記述されます。
表示 | 説明 |
---|---|
シンプル リスト。シンプル リストは複数値パラメータと呼ばれています。 | |
リストのリスト。データ タイプは Value Table です。データ タイプが Value Table のパラメータを持てるのは組み込みツールと Python ツールボックス内のツールだけです。 |
シンプル リスト
シンプル リストは、単一値のリストを含みます。上記の例では、Distances パラメータのデータ タイプ([データ タイプ] 列で示されます)は double です。このリストは、次のいずれかの方法で表現できます。
# Method 1: A list of numbers
dist = [10.0, 20.0, 30.0]
# Method 2: A list of strings
dist = ["10.0", "20.0", "30.0"]
# Method 3: String representation of a list
dist = "10.0; 20.0; 30.0"
バリュー テーブル - リストのリスト
リストのリストのデータ タイプは Value Table です。上記の例では、in_features パラメータはリストのリストで、個々のリストはフィーチャ データセットまたはレイヤのパスおよびオプションの整数値ランクを含みます。このパラメータは、次のいずれかの方法で表現できます。
# Method 1: A list of lists
inFeatures = [["counties", 2],["parcels", 1],["state"]]
# Method 2: A list of strings
inFeatures = ["counties 2", "parcels 1", "state"]
# Method 3: String representation, each list separated by a semicolon
inFeatures = "counties 2; parcels 1; state"
複数値またはバリュー テーブルの文字列構文が不明な場合は、次のようにします。
- ツールのダイアログ ボックスを使用してツールを実行します。
- ツールの実行後、[結果] ウィンドウを開きます。
- 結果を右クリックして、[Python スニペットとしてコピー] をクリックします。
- コピーしたスニペットを Python コードに貼り付けます。
説明列
この列のセルには、パラメータの使用目的、キーワード オプションも含めたパラメータの設定方法について詳細情報が記載されます。ほとんどの場合、この説明はツールのサイド パネル ヘルプに表示されるものと同じです。場合によっては、パラメータの説明が、サイド パネル ヘルプとは若干違っていることがあります。たとえば、ツールのダイアログ ボックスにはブール型(true/false)パラメータ用のチェックボックスがあり、説明では、片方は true 状態、もう片方は false 状態を表す 2 つのキーワード文字列が記述されている場合です。
キーワードは文字列です。ツールを呼び出すとき、キーワードは常に引用符で囲みます。たとえば、[AddField] ツールにはフィールド タイプを示すキーワードがあります。
# Add field idField with data type of long
arcpy.AddField_management("Parks", "idField", "LONG", field_is_nullable="NULLABLE", field_is_required="NON_REQUIRED")
データ タイプ
どのツール パラメータもデータ タイプが関連付けられています。シンプルなデータ タイプとしては、string(任意の文字列)、Boolean(true または false)、long(-2,147,483,648 ~ 2,147,483,647 の整数値)などがあります。このようなシンプルなデータ タイプに加えて、座標系や範囲など、ArcGIS のデータ専用のデータ タイプが多数あります。
スクリプティング オブジェクトの使用
ツールのパラメータは通常、単純なテキスト文字列を使用して定義されます。データセット名、パス、キーワード、フィールド名、許容値、およびドメイン名は、引用符付き文字列を使用して指定できます。
パラメータの中には、多数のプロパティを必要とする複雑なパラメータがあり、単純な文字列を使用してこれらを定義することは困難です。長く複雑なテキスト文字列を使用してこれらのパラメータを定義する代わりに、クラスを使用できます(たとえば、SpatialReference、ValueTable、および Point の各クラス)。各ツールの資料には、それぞれのツール パラメータを定義して使用する方法を示したスクリプト例が記載されています。
次に示す例では、CreateFeatureClass ツールを使用して作成された新しいフィーチャクラスの出力座標系を定義するために、SpatialReference オブジェクトを作成し、使用しています。
import arcpy
inputWorkspace = "c:/temp"
outputName = "rivers.shp"
prjFile = "c:/projections/North America Equidistant Conic.prj"
spatialRef = arcpy.SpatialReference(prjFile)
# Run CreateFeatureclass using the spatial reference object
#
arcpy.CreateFeatureclass_management(inputWorkspace, outputName, "POLYLINE",
"", "", "", spatialRef)
多くのジオプロセシング ワークフローでは、座標とジオメトリの情報を使用して特定の操作を行うことだけが必要で、新しい(一時)フィーチャクラスを作成し、カーソルを使用してフィーチャクラスにデータを設定し、そのフィーチャクラスを使用し、最後に一時フィーチャクラスを削除するというプロセスをすべて行う必要はないことがあります。ジオプロセシングを簡単に実行できるように、入力および出力の両フィーチャクラスの代わりにジオメトリ オブジェクトを使用できます。Geometry、Multipoint、PointGeometry、Polygon、または Polyline の各クラスを使用して、ジオメトリ オブジェクトを最初から作成できます。