[Python] ウィンドウの実行ツール

[Python] ウィンドウを初めて開いたときには、次のような画面が表示されます。

[Python] ウィンドウ

左側のセクションがメインの [Python] ウィンドウ プロンプトで、Python コマンドはここで実行されます。右側のセクションはヘルプと構文のウィンドウで、ここにはツールの実行時に実行メッセージが表示され、コードを入力すると現在のツール、関数、またはクラスについてのヘルプが表示されます。

[Python] ウィンドウでジオプロセシング ツールとジオプロセッサ メソッドにアクセスするには、まずプロンプトで「import arcpy」 と入力してから Enter キーを押して、ArcPy サイト パッケージをインポートします。ArcPy をインポートした後は、arcpy. と入力するたびに、すべてのジオプロセシング ツール、ジオプロセッサ メソッド、およびその他のスクリプト関数のリストが含まれたドロップダウン リストが表示されます。このリストは、ポインタまたはキーボードの上下矢印キーを使用してスクロールできます。追加の文字を入力するたびに、ドロップダウン リストがフィルタされ、入力した文字に一致するツールとメソッドだけが表示されます。たとえば、[Python] ウィンドウに arcpy.addf と入力すると、この文字で始まるツールやメソッドだけが含まれたドロップダウン リストが表示されます。AddField_management を下にスクロールするか、クリックし、Tab キーを押すことで、プロンプト上に完全なツール名が入力されます。開き括弧 ( を入力すると、ヘルプと構文のウィンドウに AddField_management ツールのヘルプが表示されます。デフォルトでは、最初のパラメータがハイライト表示されます。

Python では、ツールラベルの代わりにツールを使用します。ツール ラベルは [ツール] ダイアログ ボックスの上部かカタログ ウィンドウに表示されます。ツール名はツール ラベルに似ていますが、スペースが含まれていません。Python には、ツール名とともにツールボックス エイリアスも含まれます。これは、複数のツールが同じ名前を共有しているときに潜在的な競合を解決するために使用されます。たとえば、インストールによっては、Clip ツールが 3 つ(Clip_analysis、Clip_arc、Clip_management)も存在することがあります。

ツールのプロパティの名前とラベルツールボックスのプロパティの名前、ラベル、およびエイリアス

すべてのパラメータの入力後に、Enter キーを押してツールを実行します。実行メッセージが [Python] ウィンドウのヘルプ セクションに表示されます。メッセージのテキストは、メッセージのタイプに応じた色で表示されます。次に、デフォルトのテキストの色と意味をまとめます。

意味

通常の情報提供用メッセージ

エラー メッセージ: 結果が作成されませんでした。

オレンジ

警告メッセージ: 期待どおりの結果ではない可能性があります。

実行メッセージのテキストの色と意味

これらの色を変更する場合は、[Python] ウィンドウのヘルプ セクションを右クリックして、[形式] を選択します。

必須パラメータとオプション パラメータ

ツール パラメータには必須とオプションがあります。オプション パラメータは中括弧({ })で囲まれますが、必須パラメータには括弧がついていません。

パラメータのタイプ

シンボル

意味

必須

必須パラメータ。コマンドの最初のパラメータは常に必須パラメータです。必須パラメータについては、値の入力が必要です。

オプション

{ }

オプション パラメータ。これらのパラメータは常に必須パラメータの次に配置されています。オプション パラメータの値を入力しない場合は、デフォルトの値が計算され、使用されます。パラメータのデフォルトの値については、ツールのヘルプをご参照ください。

パラメータのタイプ

ツールには、複数のオプション パラメータが用意されていることがあります。場合によっては、設定が必要な関心の対象がツールのオプション パラメータの一部にだけのこともあるでしょう。オプション パラメータは、次の 3 つの方法で、スキップ(飛ばして移動)することができます。

次の例の場合は、フィールドの追加ツールが使用され、先ほどの 3 つの方法で 4 つ目と 5 つ目のパラメータがデフォルトのままにされています。

# Use empty strings to skip optional parameters
arcpy.AddField_management("c:/data/streets.shp", "Address", "TEXT", "", "", 120)

# Use the # sign to skip optional arguments
arcpy.AddField_management("c:/data/streets.shp", "Address", "TEXT", "#", "#", 120)

# Use the parameter name to bypass unused optional arguments
arcpy.AddField_management("c:/data/streets.shp", "Address", "TEXT", field_length=120)

デフォルト値

[パラメータ] ドロップダウン リスト

ツールによって、特定のパラメータについて利用できるオプションが認識されると、[Python] ウィンドウにドロップダウン リストが表示されます。[ツール] ダイアログ ボックスと同様、パラメータが適切な値を識別してフィルタします。たとえば、AddXY_management ツールは、入力フィーチャについてポイント フィーチャクラスまたはレイヤしか許容しないため、このパラメータのドロップダウン リストには、利用可能なポイント フィーチャ レイヤだけが含まれます。DeleteField_management ツールの場合は、入力テーブルに基づいたフィールドのドロップダウン リストが表示されます。

複数値パラメータ

ツール パラメータでは、パラメータに応じて 1 つまたは複数の値が許容されます。複数の値が許容される場合は、[Python] リストとしてパラメータ値を指定できます。

[フィールドの削除 (Delete Field)]ツールの場合、削除対象として複数のフィールドが許容されます。フィールドの削除 ツールで複数のフィールドを削除するには、Python リスト内にフィールド名を文字列として入力します。

arcpy.DeleteField_management("c:/base/rivers.shp", ["Type", "Turbidity", "Depth"])

Union_analysis ツールや Intersect_analysis オーバーレイ ツールなど、一部のツールのパラメータはテーブルのように表現され、複数の行の各行に複数の値が入っていることがあります。Union_analysis の場合、入力フィーチャ パラメータでは、高精度でフィーチャを保存するために使用される優先度のランクがサポートされています。ランクは各入力フィーチャクラスにオプションの値として割り当てられます。1 が最優先とされます。

テーブルのように示されるパラメータは、バリュー テーブルと呼ばれます。バリュー テーブルは、Python のリストのリストとして入力されます。Union_analysis の入力フィーチャ パラメータの場合、フィーチャクラス名の後に、値をカンマで区切りながら、ランクを指定します。各フィーチャクラスのランク ペアは上位のリスト内に含まれます(このため、リストのリストと呼ばれます)。次の例は、そのようなリストの作成方法です。各フィーチャクラスについて同じワークスペースを繰り返さなくてもすむよう、ワークスペース環境は設定された状態になっています。

arcpy.env.workspace = "D:/St_Johns/data.mdb/neighborhoods"
inputList = [["east", 1],["west", 1],["south", 1],["north", 2]]
arcpy.Union_analysis(inputList, "D:/St_Johns/data.mdb/land_use")

パラメータ規約

一般:

[Python] ウィンドウにヘルプを表示

コマンド名の入力後には、いくつかの方法で使用方法とツール固有のヘルプを利用できます。

  1. プロンプトで、ツール名と開き括弧を入力します。arcpy.Buffer_analysis(ツールの使用方法とヘルプ情報がヘルプ セクションに表示されます。
  2. Python に組み込まれたヘルプ機能を使用して、ヘルプが必要なツール名に移動します。ヘルプが Python のメイン セクションに表示されます。
  3. ツールの次に Python に組み込まれた関数属性 __doc__ を使用して、ドキュメント文字列を表示します。ヘルプが Python のメイン セクションに表示されます。
>>> arcpy.Buffer_analysis(
>>> help(arcpy.Buffer_analysis)
>>> print arcpy.Buffer_analysis.__doc__

7/10/2012