スクリプト ツール パラメーターの設定

ほぼすべてのツールにはパラメーターがあり、その値は [ジオプロセシング] ウィンドウまたはスクリプト内で設定します。 ツールを実行すると、パラメーター値がツールのソース コードに送信されます。 ツールはこれらの値を読み取り、それに応じて処理します。

スクリプト ツール パラメーターの詳細

スクリプト ツール パラメーターは、スクリプト ツールを作成する際に設定できます。 スクリプト ツール パラメーターは、ツールの [プロパティ] ダイアログ ボックスから追加、削除、変更することもできます。 スクリプト ツールのプロパティにアクセスするには、ツールを右クリックし、[プロパティ] をクリックして [パラメーター] タブをクリックします。

パラメーターを追加するには、[ラベル] 列で最初の空のセルをクリックして、パラメーターの名前を入力します。 この名前が [ジオプロセシング] ウィンドウに表示されます。名前にはスペースを含めることができます。 [名前] 列のデフォルトのパラメーター名は [ラベル] 値に基づいて作成されますが、変更することができます。 パラメーター名は Python 構文に必要であり、検証されます (スペースの削除など)。

パラメーター タブに表示されているスクリプト ツールのパラメーター

パラメーターの表示名を指定したら、次のように [データ タイプ] セル内をクリックして、パラメーターのデータ タイプを選択します。

パラメーターのデータ タイプ

複数の値を受け入れるパラメーターを作成するには、[複数の値] チェックボックスをオンにします。 異なるデータ タイプ、つまり複合データ タイプを受け入れるパラメーターを作成するには、[追加] ボタン 加算 をクリックします。

各パラメーターには、前出のように設定可能なその他のプロパティがあります。これらのプロパティは以下のとおりです。

プロパティ説明

タイプ

オプションは [必須][オプション][派生] です。 派生の場合、ツールのユーザーはパラメーターに値を入力しません。 派生タイプは必ず出力パラメーターになります。

方向

オプションは [入力] および [出力] です。 [タイプ] プロパティが [派生] に設定されている場合、方向は常に [出力] と同じになります。

説明

各ツール パラメーターについての文書ヘルプで、説明、情報、および受け入れられるデータ タイプと値が含まれます。 パラメーターのラベルの横にある情報 情報 ボタンの上にポインターを置くと、ツール ダイアログ ボックスにパラメーターの説明が表示されます。

カテゴリ

パラメーターは、さまざまなカテゴリにグループ化できます。

フィルター

パラメーターに特定のデータセットまたは値だけを入力する場合、フィルターを指定できます。 6 種類のフィルターが用意されており、使用できるタイプは、パラメーターのデータ タイプによって決まります。

依存関係

このプロパティは、派生出力パラメーターと入力パラメーター データ タイプに適用されます。 派生出力パラメーターの場合、このプロパティは、出力の定義を含むパラメーターに設定できます。 入力パラメーターの場合は、入力に必要な情報を含むパラメーターに設定します。

デフォルト

パラメーターのデフォルト値。 パラメーターのデータ タイプがフィーチャ セットまたはレコード セットのいずれかの場合は、このプロパティを使用して、パラメーターのスキーマを定義します。

環境

パラメーターのデフォルト値が環境設定の値の場合、このプロパティには環境設定の名前が含まれます。

シンボル

このプロパティは出力パラメーターのみに適用されます。 値は、出力表示のシンボルを含むレイヤー ファイルの場所 (.lyrx) です。

パラメーターのプロパティ

タイプ

[タイプ] プロパティは、次のいずれかのオプションに設定します。

  • [必須] - このパラメーターには、実行するツールに必ず値を指定する必要があります。
  • [オプション] - パラメーターに値を指定しなくてもかまいません。
  • [派生] - 派生パラメーターは、次の場合に使用します。
    • 出力が入力と同じ場合。 たとえば、[フィールド演算 (Calculate Field)] ツールを実行すると、入力テーブル内のフィールドの値が更新されます。 これによって、テーブルが作成されたり、入力のスキーマが変更されたりすることはありません。
    • ツールが入力のスキーマを変更する場合。 たとえば、[フィールドの追加 (Add Field)] ツールによって入力テーブルにフィールドが追加されます。
    • ツールが、数値、文字列、ブール値などスカラー値を出力する場合。 たとえば、[行のカウント (Get Count)] ツールは派生した整数値を返します。
    • ツールが他のパラメーターの値から出力を作成する場合。 たとえば、[フィーチャクラスの作成 (Create Feature Class)] ツールは、パスおよび名前の値がある他のパラメーターから作成された、派生したフィーチャクラスのパスを返します。
    • ツールが既知の場所にデータを作成する場合。 たとえば、既知のワークスペース内にフィーチャクラスを作成するスクリプトなどがあります。 フィーチャクラスもワークスペースもパラメーター オプションではありません。
注意:

ツールがデータセットまたはレイヤーを更新する場合、ツールは、入力パラメーターに対してパラメーターの依存関係が設定されている派生出力パラメーターを必要とします。 これは、ArcGIS Pro のマルチスレッド バックグラウンド ジオプロセシングで、処理中に切断してデータ ロック エラーから保護し、処理後に再接続し、選択や結合などの更新されたプロパティを反映するマップ レイヤーを把握するためです。

注意:

スクリプト ツールが派生出力の場合は、SetParameterAsText または SetParameter 関数を使用して、スクリプトの派生出力パラメーターの値を設定する必要があります。

データではなく値を出力

上記の例は、出力される派生データセットを説明しています。 ただし、[行のカウント (Get Count)] ツールなどの一部のツールは、データセットではなく値を出力します。この場合は、テーブルの行数を含む Long データ タイプが出力されます。 データセットではなく値を出力することは一般的です。 関連する複数のデータセットに対して分析を実行し、いくつかの数値または合格/不合格のブール値のみを出力するスクリプトがある場合もあります。

値データ タイプ (Long や Boolean など) を含む出力パラメーターの場合は、[Required] ではなく、常に [Derived] オプションが使用されます。

方向

このプロパティは、パラメーターがツールへの入力とツールの出力のどちらであるかを定義します。

パラメーター タイプが [派生] の場合、パラメーターの方向は [出力] に自動的に設定されます。

すべてのスクリプトは、ModelBuilder で使用できるように出力パラメーターを含む必要があります。 ModelBuilder の基本的なアイデアは、ツールの出力を他のツールの入力と接続することです。スクリプト ツールに出力パラメーターがない場合、ModelBuilder では実用的でありません。 出力には、パラメーターの値として指定されたデータセット、場所または名前がスクリプト内で決定された派生出力、計算または決定された派生値があります。 ツールが正常に完了すると、少なくとも true を含むブールを出力できます。そうでない場合は false となります。

説明

それぞれのパラメーターについて、パラメーターの [説明] プロパティを設定します。 パラメーターのラベルの横にある [情報] 情報 ボタンの上にポインターを置くと、説明が表示されます。

[説明の編集] ボタン Edit をクリックして、[パラメーターの説明] ダイアログ ボックスを開きます。 ダイアログ ボックスを使用して、パラメーターについての情報をドキュメント化します。 ダイアログ ボックスには、基本的なテキストの書式設定オプションとして太字や斜体のテキスト、箇条書き、URL リンクが含まれています。

カテゴリ

パラメーターをさまざまなカテゴリにグループ化して、[ジオプロセシング] ウィンドウのサイズを最小化したり、使用頻度の低い関連パラメーターをグループ化したりすることができます。 他のパラメーターのカテゴリを設定した場合は、新しいカテゴリ名を指定するか、リストから選択することができます。 次の画像に示されているように、いくつかの ArcGIS Network Analyst extension ツールでカテゴリが使用されています。

パラメーターのカテゴリ

カテゴリは、未分類パラメーターの後に表示されます。 必須パラメーターはカテゴリ内に配置しないでください。[ジオプロセシング] ウィンドウに表示されなくなります。

複数値

単一値ではなく、値のリストをパラメーターで処理する場合は、[複数値] プロパティを [Yes] に設定します。

複数値コントロールの例を以下に図示します。

複数値コントロール

arcpy.GetParameter 関数を使用する場合は、リストとして複数値にアクセスできます。また、for ループを使用して複数値を反復処理することができます。 あるいは、arcpy.GetParameterAsText 関数を使用する場合は、セミコロン区切りの文字列として複数値にアクセスできます。 区切りの文字列を分割するには、以下のコードの例に示すように Pythonsplit メソッドを使用します。

import arcpy
road_types = arcpy.GetParameterAsText(0)
road_list = road_types.split(";")

# Process each road type
for road_type in road_list:
  # road_type contains an individual road type string (ex: "Interstates")
  arcpy.AddMessage("Processing: {}".format(road_type))

フィルター

パラメーターに特定の値またはデータセット タイプを入力する場合、フィルターを指定できます。 [フィルター] で適切なセルをクリックして、ドロップダウン リストから適切なフィルター タイプを選択します。 ダイアログ ボックスが開いたら、フィルターの値を指定します。 次に示されているように、10 種類のフィルターが用意されており、使用できるフィルターのタイプは、パラメーターのデータ タイプによって決まります。

通常、使用できるフィルターのタイプは 1 つだけです。 [Long][Double] だけは、[Value List] または [Range] を選択できます。

また、スクリプト ツールの ToolValidator クラスをカスタマイズすると、Python によりフィルターをプログラムで設定できます。

面積単位

面積単位のフィルターは、使用できる単位タイプを定義します。使用できる単位タイプは、[平方インチ][平方フィート][平方ヤード][エーカー][平方マイル][平方ミリメートル][平方センチメートル][平方デシメートル][平方メートル][アール][ヘクタール][平方キロメートル]、および [不明] です。

フィーチャ タイプ

フィーチャ タイプ フィルターでは、使用できるフィーチャクラス タイプを定義します。使用できるフィーチャクラス タイプは、[ポイント][マルチポイント][ポリゴン][ポリライン][アノテーション]、および [ディメンション] です。 複数の値を指定することができます。

このフィルターでは、1 つ以上のフィルター値を選択します。 入力フィーチャクラスが、フィルターの値に対してチェックされます。 たとえば、フィルターの値として [ポイント] だけを指定した場合は、パラメーターの値としてポイント フィーチャクラスしか入力できません。

フィールド

フィールド フィルターでは、使用できるフィールド タイプを定義します。使用できるフィールド タイプは、[Short][Long][Float][Long (64 ビット整数)][Double][Text][Date][OID][Time Only][Date Only][Timestamp Offset][Geometry][Blob][Raster][GUID][GlobalID]、および [XML] です。 複数の値を指定することができます。

ファイル

ファイル フィルターには、[txt] (簡単なテキスト ファイル) や [csv] (カンマ区切りファイル) などの、使用できるファイル接尾辞のリストが含まれます。 接尾辞には任意のテキストを使用できます。ArcGIS で認識される接尾辞である必要はありません。 接尾辞の長さは任意で指定でき、ドットは含めません。 複数の接尾辞はセミコロン区切り文字で区切って指定します。

距離単位

距離単位フィルターは、使用できる単位タイプを定義します。使用できる単位タイプは、[インチ][ポイント][フィート][ヤード][マイル][海里][ミリメートル][センチメートル][メートル][キロメートル][度 (10 進)][デシメートル][度]、および [不明] です。 複数の値を指定することができます。

範囲

範囲フィルターでは、最小と最大の 2 つの値を使用します。 最小値と最大値はどちらも範囲に含まれます。 Long または Double パラメーターで、このフィルターを使用できます。

時間単位

時間単位フィルターは、使用できる単位タイプを定義します。使用できる単位タイプは、[ミリ秒][秒][分][時間][日][週][月][年][10 年][世紀]、および [不明] です。 複数の値を指定することができます。

移動モード ユニット タイプ

このフィルターを使用して、移動モードのインピーダンス属性に基づき使用できる移動モード タイプを設定できます。 オプションは [時間][距離]、および [その他] です。 デフォルトは 3 つすべてのタイプを許可します。

値のリスト

このフィルターを使用して、一連のキーワードを指定できます。 多くのツールには、あらかじめ定義された一連のキーワードがあります。たとえば、[フィールドの追加 (Add Field)] ツールの [フィールド タイプ] パラメーターや、オーバーレイ ツールセットに含まれる多くのツールの [結合する属性] パラメーターです。

Long および Double データ タイプに [値のリスト] フィルターを使用できます。 これらのタイプでは設定可能な数値を入力します。

ユーザーが複数の値を選択できるようにするには、[複数値] プロパティを [Yes] に設定します。

Boolean データ タイプにも [値のリスト] フィルターを使用できます。 Boolean データ タイプでは、[値のリスト] フィルターに true と false の値が含まれます。 true 値はリスト内で最初の値になります。 これらの値は、コマンド ラインで値を指定するために使用されます。 たとえば、[フィールドの追加 (Add Field)] と、field_is_nullable パラメーターで使用される {NULLABLE | NON_NULLABLE} キーワードをご参照ください。

ワークスペース

ワークスペース フィルターは、使用できる入力ワークスペースのタイプを指定します。 値は次のとおりです。

  • [ファイル システム] - シェープファイル、カバレッジ、INFO テーブル、およびグリッドを格納するためのシステム フォルダー
  • [ローカル データベース] - パーソナル ジオデータベースまたはファイル ジオデータベース
  • [リモート データベース] - エンタープライズ データベース接続

複数の値を指定することができます。

依存関係

[依存関係] プロパティには次の目的があります。

  • 派生出力パラメーターの場合、[依存関係] はツールによって変更される入力パラメーターに設定されます。 出力データと [依存関係] フィルターの詳細については、上記のタイプ プロパティのセクションをご参照ください。
  • 入力パラメーターの場合、[依存関係] にはデータ タイプに使用されるその他のパラメーターの名前が含まれます。 たとえば、入力フィールド データ タイプの場合、[依存関係] はフィールドを含むテーブル パラメーターの名前に設定します。

次の表に示されているように、[依存関係] フィルターは特定の入力パラメーターに対してのみ設定できます。

パラメーターのデータ タイプ従属パラメーターのデータ タイプ

面積単位

デフォルト単位の決定に使用される地理データセット。

たとえば、[フィーチャ レイヤー][ラスター レイヤー][フィーチャ セット]、または [レコード セット] データ タイプを使用できます。

フィールド

そのフィールドを持つテーブル。

たとえば、[テーブル ビュー][フィーチャ レイヤー][ラスター レイヤー][フィーチャ セット]、または [レコード セット] データ タイプを使用できます。

フィールド マッピング

1 つ以上の入力テーブル内のフィールドのコレクション。

たとえば、[テーブル ビュー][フィーチャ レイヤー][ラスター レイヤー][フィーチャ セット]、または [レコード セット] データ タイプを使用できます。

Geostatistical 値テーブル

Geostatistical Analyst ツールで使用されるデータセットとフィールドのテーブル。

[Geostatistical レイヤー] データ タイプを使用します。

距離単位

デフォルト単位の決定に使用される地理データセット。

たとえば、[フィーチャ レイヤー][ラスター レイヤー][フィーチャ セット]、または [レコード セット] データ タイプを使用できます。

Network Analyst 階層の設定

階層情報を持つネットワーク データセット。

[ネットワーク データセット] データ タイプを使用します。

ネットワーク移動モード

移動モードのリスト。

[ネットワーク データ ソース][ネットワーク データセット]、または [ネットワーク データセット レイヤー] データ タイプを使用します。

SQL 式

そのフィールドを持つテーブル。

たとえば、[テーブル ビュー][フィーチャ レイヤー][ラスター レイヤー][フィーチャ セット]、または [レコード セット] データ タイプを使用できます。

[依存関係] データ タイプ

値テーブル パラメーターでは、フィールド列は、値テーブルの最初のデータ列に対して暗黙的な依存関係を持ちます。 後続のフィールド列に対するパラメーターのドロップダウン リストには、データで使用可能なフィールドが自動的に含まれます。

デフォルト

デフォルト値は、スクリプト ツールが開いた時点のパラメーターの内容になります。 また、スクリプト内のパラメーターに # が入力された場合に使用される値にもなります。 [デフォルト] プロパティに値を指定しないと、ツールが開いたときのパラメーター値は空白になります。 このプロパティに値を指定すると、[環境] プロパティが無効になります。 [環境] プロパティを有効にするには、[デフォルト] プロパティをクリアします。

スキーマ

[フィーチャ セット][レコード セット] データ タイプでは、データを対話的に入力できます。 [フィーチャ セット] オプションを使用すると、スクリプトのユーザーは、マップをクリックして対話形式でフィーチャを作成できます。 [レコード セット] オプションを使用すると、ユーザーは対話形式で行をテーブル グリッド内に作成できます。

入力パラメーターのデータ タイプが [フィーチャ セット] または [レコード セット] として指定されている場合は、入力のフィールドおよびジオメトリ タイプを定義するスキーマの場所を指定する必要があります。 スキーマとして、フィーチャクラス、テーブル、またはレイヤー ファイル (.lyrx) を使用できます。 レイヤー フィーチャを指定すると、レイヤー ファイルへのパスが内部化され、[プロパティ] ダイアログ ボックスを再び開いたときに、セルに [埋め込み済み] ラベルが表示されます。

環境

[環境] で適切なセルを右クリックして環境設定の名前を選択すると、パラメーターのデフォルト値を環境設定の値に設定できます。

シンボル

ツールの出力がフィーチャ セット、ラスター、TIN、またはレイヤーの場合は、[シンボル] プロパティでレイヤー ファイル (.lyrx) の場所を指定できます。 ツールを実行すると、出力がディスプレイに追加され、シンボル レイヤー ファイル内に定義されているシンボルを使用して描画されます。

注意:

レイヤー ファイルは、ツールを実行するたびに読み込まれます。 レイヤー ファイルが (移動または削除されたために) 見つからない場合、デフォルトのシンボルが使用されます。

関連トピック