ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • ヘルプ
  • Sign Out
ArcGIS Desktop

ArcGIS Online

組織のマッピング プラットフォーム

ArcGIS Desktop

完全なプロ仕様の GIS

ArcGIS Enterprise

エンタープライズ GIS

ArcGIS for Developers

位置情報利用アプリの開発ツール

ArcGIS Solutions

各種業界向けの無料のテンプレート マップおよびテンプレート アプリケーション

ArcGIS Marketplace

組織で使えるアプリとデータを取得

  • ドキュメント
  • サポート
Esri
  • サイン イン
user
  • マイ プロフィール
  • サイン アウト

ArcMap

  • ホーム
  • はじめに
  • マップ
  • 解析
  • データ管理
  • ツール
  • エクステンション

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

  • タイプ
  • 方向
  • 複数値
  • デフォルト
  • スキーマ
  • 環境
  • フィルター
  • 取得元
  • シンボル

ほぼすべてのツールにはパラメーターがあり、そのパラメーター値はツール ダイアログ ボックスまたはスクリプト内で設定します。ツールを実行すると、パラメーター値がツールのソース コードに送られます。ツールはその値を読み込んで、処理を続けます。

パラメーターの詳細については、「スクリプト ツールのパラメーターの概要」をご参照ください。

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

[スクリプトの追加] ウィザードまたは [プロパティ] ダイアログ ボックスのどちらでパラメーターを設定する場合でも、手順 (ここで説明します) は同じです。

新しいパラメーターを追加するには、[表示名] 列の最初の空のセルをクリックして、パラメーターの名前を入力します。これは、ツール ダイアログ ボックスに表示される名前です。名前には、スペースを入れることができます。Python の構文では、パラメーター名はスペースをアンダースコア (_) に置き換えた表示名になります。

パラメーターの新規作成

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

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

次のように、各パラメーターには設定可能な追加プロパティがあります。

パラメーター プロパティ

プロパティ説明

タイプ

[Required]、[Optional]、[Derived] のいずれかを指定できます。[Derived] とは、ツールのユーザーはパラメーターの値を入力しないことを意味しています。[Derived] タイプは必ず出力パラメーターになります。

方向

[Input] または [Output] のいずれかを指定できます。パラメーターの [タイプ] が [Derived] の場合、[方向] は必ず [Output] になります。

複数値

値のリストにする場合は [Yes] になります。単一値の場合は [No] になります。

デフォルトまたはスキーマ

パラメーターのデフォルト値です。パラメーターのデータ タイプがフィーチャ セットまたはレコード セットの場合、[デフォルト] は [スキーマ] に置き換えられます。

環境

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

フィルター

パラメーターに特定のデータセットまたは値だけを入力する場合、フィルターを指定できます。フィルターは 6 つの種類があります。選択できるフィルターのタイプは、パラメーターのデータ タイプによって変わります。

取得元

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

シンボル

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

パラメーター プロパティ

タイプ

タイプには 3 つの選択肢があります。

  • [Required] パラメーターでは、ユーザーが値を入力する必要があります。ツールは、ユーザーが値を入力するまで実行できません。
  • [Optional] パラメーターでは、ユーザーが値を入力する必要はありません。
  • [Derived] パラメーターは、出力パラメーター専用です (後述の「方向」をご参照ください)。派生出力パラメーターは、ツール ダイアログ ボックスに表示されません。

    派生出力パラメーターには、次の 5 つの用途があります。

    • 出力が入力と同じ場合 ([フィールド演算 (Calculate Field)] など)。[フィールド演算 (Calculate Field)] は、入力テーブルの特定フィールドの値を変更します。これは、新しいテーブルを作成したり、入力のスキーマを変更したりはしません。[編集] ツールボックスには、出力が入力と同じその他のツールがあります。
    • ツールが入力のスキーマを変更する場合 ([フィールドの追加 (Add Field)] など)。[フィールドの追加 (Add Field)] は、フィールドを入力テーブルに追加します。これは、新しい出力テーブルは作成しません。
    • ツールが他のパラメーターの情報を使って出力を作成する場合 ([フィーチャクラスの作成 (Create Feature Class)] ツールなど)。[フィーチャクラスの作成 (Create Feature Class)] ツールでは、ワークスペースと新しいフィーチャクラスの名前を指定して、フィーチャクラスを作成します。
    • ツールがデータセットに対してスカラー値を出力する場合。たとえば、[行のカウント (Get Count)] は、long integer (レコードの数) を出力します。ツールがスカラー値を出力する場合、出力は必ず [Derived] になります。
    • ツールが既知の場所にデータを作成する場合。たとえば、既知のワークスペース内にある既存のテーブルを更新するスクリプトなどが挙げられます。ユーザーは、ダイアログ ボックスまたはスクリプト内で、このテーブルを指定する必要はありません。
注意:

スクリプト ツールが派生出力を持つ場合、SetParameterAsText() 関数を使って、スクリプト内の派生出力パラメーターの値を設定する必要があります。

すべてのツールには出力が必要です

すべてのスクリプト ツールは、ModelBuilder で使用できるように、出力パラメーターを持つ必要があります。ModelBuilder の基本概念は、ツールの出力を他のツールの入力と接続することです。スクリプト ツールが出力パラメーターを持たないと、そのツールは ModelBuilder であまり役に立たなくなってしまいます。少なくとも、ツールが正常に終了した場合は true、それ以外の場合は false のブール型を出力させることができます。

入力パラメーターを変更する派生出力

次の図は、ModelBuilder 内で使用される、[フィールド値の更新 (Update Field Values)] という架空のスクリプト ツールを示したものです (説明のため、[フィールド値の更新 (Update Field Values)] は、組織が既知のテキスト フィールド群の内容を調べて、スペルミスや大文字と小文字のエラーを修正するために使用するものとします)。[フィールド値の更新 (Update Field Values)] は、新しいフィーチャクラスを作成しませんが、入力フィーチャクラスのフィールド値を更新します。

ModelBuilder 内で出力のないツール

次の図は、[フィールド値の更新 (Update Field Values)] の正しいパラメーター定義です。[フィールド値の更新 (Update Field Values)] には、[タイプ] が [Derived] に設定された出力フィーチャクラス パラメーターがあります。このツールは出力が入力と同じであるため、[取得元] には入力パラメーターが設定されています ( ([取得元] はパラメーターの名前を使用するため、表示名のスペースがアンダースコアに置き換えられています)。

派生出力を持つツール

入力パラメーターを変更しない派生出力

次の図は、別のツールを示したものです。このツールは、出力が派生ですが、取得元は入力パラメーターではありません ([取得元] が空白になっています)。このシナリオでは、[データのリポジトリへの転送 (Post Data to Repository)] という架空のツールが、入力フィーチャクラスを既知のワークスペース (リポジトリ) にコピーしてから、日付/時間フィールドを追加および入力しています。

取得元が入力パラメーターでない派生出力データ

出力値の設定

上のモデルでは、[フィーチャのコピー (Copy Features)] ツールは空 (黄色ではなく白) であることに注意してください。これは、[出力フィーチャ] 変数が、緑色であるにもかかわらず、値を持っていないためです。出力フィーチャの名前と場所は、ツールを実行するまでわかりません。この場合、ArcPy 関数の SetParameterAsText() を使用して、スクリプトで出力値を指定する必要があります。SetParameterAsText() 関数は、テキスト文字列または値テーブルなどのオブジェクトのいずれかを使用して、出力パラメーターの値を設定します。

  • CopyParameter 関数についての詳細
  • GetParameterAsText 関数についての詳細
  • SetParameterAsText 関数についての詳細

ツールの整合チェック コードを作成することで、ツールを実行する前に出力の値を設定することができます。

ツールの整合チェックの詳細

次のコード例では、上記の [データのリポジトリへの転送 (Post Data to Repository)] スクリプトの処理に基づき、SetParameterAsText() を使用しています。

# Post data to Repository - copies the input features to the
#  current repository, adding and populating a date
#  field
#

# Import system modules and arcpy
#
import sys
import string
import os
import arcpy

# Get the value of the input parameter
#
inFC = arcpy.GetParameterAsText(0)

# Create the pathname to the output feature class.
#  1) get the name of the feature class
#  2) remove any file extension, such as ".shp"
#     (we're copying to a geodatabase which doesn't
#      allow file extensions, like .shp)
#
fcName = os.path.basename(inFC) 
fcName = os.path.splitext(fcName)[0]
repository = "e:/repository/featuredata.gdb"
outFC = os.path.join(repository, fcName)

# Copy the input to the output, add the date field
#
arcpy.CopyFeatures_management(inFC, outFC)
arcpy.AddField_management(outFC, "PostDate", "DATE")

# Create a locale-specific string containing the current date 
#  and time, then calculate it into the PostDate field, adding
#  the required quotes around the postTime string.
#
import time
postTime = time.strftime("%x %X")
arcpy.AddMessage(postTime)
qPostTime = "\"" + postTime + "\""
arcpy.CalculateField_management(outFC, "PostDate", qPostTime)

# Set output parameter
#
arcpy.SetParameterAsText(1, outFC)

データ以外の出力値

上の例は、派生データセットの出力を示しています。しかし、一部のツールはデータセット以外の値を出力します。たとえば、[行のカウント (Get Count)] ツールは、テーブル内の行数を含む Long データ タイプを出力します。データセット以外の値を出力することは、よくあります。関連する複数のデータセットを解析して、一連の数値や正常/失敗のブール値だけを出力するスクリプトなどを独自に作成できます。

値のデータ タイプ (Long や Boolean など) を含む出力パラメーターは、必ず [Required] ではなく [Derived] になります。

方向

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

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

複数値

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

ツール ダイアログ ボックスには、複数値で使用するユーザー インターフェイス コントロールが、次のように 2 種類あります。

  • チェックボックスのリストは、フィールドと、値のリスト フィルターが含まれる場合は文字列、Long、Double に使用されます。
  • その他すべてのデータ タイプには、複数値パラメーター コントロールが表示されます。

両方の種類の複数値コントロールは、次のとおりです。

複数値コントロール

複数値は、セミコロンで区切られた文字列として、スクリプトに渡されます。上の図ですべての道路タイプを選択した場合、パラメーター値は Interstates;Primary roads;Secondary roads となります。区切られた文字列を分割するには、次のコード例のように Python の split() メソッドを使用します。

roadTypes = arcpy.GetParameterAsText(0)
roadTypeList = roadTypes.split(";")

# Process each road type
#
for rType in roadTypeList:
  # rType contains an individual road type string (ex: "Interstates")
  # 
  arcpy.AddMessage("Processing: " + rType)

デフォルト

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

スキーマ

入力パラメーターのデータ タイプが [フィーチャ セット] または [レコード セット] の場合、入力するフィーチャのフィールドとジオメトリ タイプを定義しているスキーマの場所を指定する必要があります。スキーマは、フィーチャクラス、テーブル、またはレイヤー ファイル (*.lyr) のいずれかです。

フィーチャ セットとレコード セットについて

[フィーチャ セット] と [レコード セット] データ タイプでは、データを対話的に入力できます。[フィーチャ セット] を使用すると、スクリプトのユーザーは、マップをクリックすることで ArcMap 内にフィーチャを対話的に作成できます。[レコード セット] を使用すると、ユーザーは単純なテーブル グリッド内に行を対話的に作成できます。

フィーチャ セットとレコード セット

フィーチャ セットとレコード セットの詳細については、以下のリンクをご覧ください。

トピック説明

フィーチャ セットとレコード セット

Python の FeatureSet および RecordSet の使用法について説明しています。

フィーチャおよびレコードの対話型入力コントロールの使用

フィーチャ セットとレコード セットのコントロールの使用法を説明しています。

フィーチャ セットとレコード セットに関するトピック

環境

[環境] の横のセルを右クリックして、環境設定の名前を選択すると、環境設定の値にパラメーターのデフォルト値を設定できます。環境設定を選択した場合、[デフォルト] プロパティは無視されます。[デフォルト] プロパティを [環境] プロパティの代わりに使用するには、ドロップダウン リストから空白のエントリを選択して、[環境] プロパティ消去します。

環境設定の選択

フィルター

パラメーターに特定の値またはデータセット タイプだけを入力する場合、フィルターを指定できます。[フィルター] の横のセルをクリックして、ドロップダウン リストから適切なフィルターを選択します。ダイアログ ボックスが開いたら、フィルターの値を指定します。フィルターは 6 つの種類があります。選択できるフィルターのタイプは、パラメーターのデータ タイプによって変わります。

フィルターのタイプ値

値のリスト

文字列または数値のリスト。パラメーターのデータ タイプが String、Long、Double、Boolean の場合に使用されます。

範囲

最小値と最大値。Long および Double のデータ タイプの場合に使用されます。

フィーチャクラス

使用できるフィーチャクラス タイプのリスト: ポイント、マルチポイント、ポリライン、ポリゴン、マルチパッチ、球体、アノテーション、ディメンション。複数の値をフィルターに設定できます。

ファイル

接尾辞のリスト。「txt; e00; ditamap」のように指定します。

フィールド

使用できるフィールド タイプのリスト。これには、Short、Long、Single、Double、Text、Date、OID、Geometry、BLOB、Raster、GUID、GlobalID、および XML が含まれます。複数の値をフィルターに設定できます。

ワークスペース

使用できるワークスペース タイプのリスト。これには、File System、Local Database、Remote Database があります。1 つまたは複数の値を設定できます。

フィルターのタイプと値

通常、選択できるフィルターのタイプは 1 つだけです。Long と Double だけは、値のリストと範囲の 2 つを選択できます。

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

値のリスト

値のリスト フィルターは、キーワードのセットを提供するときに便利です。多くのツールには、あらかじめ定義されたキーワードのセットがあります。たとえば、[フィールドの追加 (Add Field)] の [フィールド タイプ] パラメーターや、[オーバーレイ] ツールセットに含まれる多くのツールの [結合する属性] パラメーターなどです。

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

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

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

範囲

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

フィーチャクラス

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

ファイル

ファイル フィルターには、「*.txt」 (簡単なテキスト ファイル) や「`.csv」 (カンマ区切りファイル) などの、使用できるファイル接尾辞のリストが含まれます。接尾辞には任意のテキストを使用できます。ArcGIS で認識される接尾辞である必要はありません。接尾辞の長さは任意で、ドットは含めません。

ファイル フィルターの指定

フィールド

フィールド フィルターは、使用できるフィールド タイプを定義します。これには、Short、Long、Single、Double、Text、Date、OID、Geometry、BLOB、Raster、GUID、GlobalID、および XML が含まれます。複数の値をフィルターに設定できます。

ワークスペース

ワークスペース フィルターは、使用できる入力ワークスペースのタイプを指定します。これには 3 つの値があります。

  • ファイル システム

    シェープファイル、カバレッジ、INFO テーブル、およびグリッドを格納するためのシステム フォルダー

  • ローカル データベース

    パーソナルまたはファイル ジオデータベース

  • リモート データベース

    ArcSDE データベース接続

取得元

[取得元] プロパティには 2 つの目的があります。

  • 派生出力パラメーターの場合、[取得元] は、ツールによって変更される入力パラメーターに設定されます。派生データと [取得元] の詳細については、前述の [タイプ] プロパティの説明をご参照ください。
  • 入力パラメーターの場合、[取得元] には、データ タイプに使用されるその他のパラメーターの名前が含まれます。たとえば、入力フィールド データ タイプの場合、[取得元] は、次のように、フィールドを含むテーブル パラメーターの名前に設定されます。
フィールド データ タイプの [取得元]

次の表のように、[取得元] は特定の入力パラメーターに対してのみ設定できます。

入力データ タイプ取得元のデータ タイプ説明

フィールドまたは SQL 文

テーブル

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

INFO アイテムまたは INFO 条件式

INFO テーブル

そのアイテムを持つ INFO テーブル

カバレッジ フィーチャクラス

カバレッジ

フィーチャを含むカバレッジ

面積単位または距離単位

ジオデータセット

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

座標系

ワークスペース

デフォルトの座標系の決定に使用されるワークスペース

Network Analyst 階層設定

ネットワーク データセット

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

Geostatistical 値テーブル

Geostatistical レイヤー

テーブルを含む解析レイヤー

取得元のデータ タイプ

シンボル

ツールの出力がフィーチャ セット、ラスター、TIN、または ArcGIS Network Analyst エクステンション レイヤーの場合、[シンボル] プロパティにレイヤー ファイル (*.lyr) の場所を指定できます。ツールを ArcMap、ArcGlobe、ArcScene から実行していて、[ジオプロセシング処理結果をマップに追加] が有効な場合、出力は表示に追加され、シンボル レイヤー ファイルに定義されたシンボルを使用して描画されます。

注意:

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

関連トピック

  • スクリプト ツールのパラメーターへのアクセス
  • スクリプト ツールのパラメーターの理解
  • スクリプト ツールとは

ArcGIS Desktop

  • ホーム
  • ドキュメント
  • サポート

ArcGIS プラットフォーム

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Esri について

  • 会社概要
  • 採用情報
  • Esri ブログ
  • ユーザ カンファレンス
  • デベロッパ サミット
Esri
ご意見・ご感想をお寄せください。
Copyright © 2019 Esri. | プライバシー | リーガル