ほぼすべてのジオプロセシング ツールがデータセットを入力として受け取り、新しいデータセットを生成します。ジオプロセシング ツールを使用するとき、次のような長いデータセット名を入力しないようにしてください。
E:\Data\D052753_a\infrastructure\BK16_c1\approved.gdb\roads\mjrst
このような長いデータセット名を入力することは、手間のかかる面倒な作業であり、ミスも起こりがちです。このため、ジオプロセシングでは、データセットまたはレイヤーをツールのダイアログ ボックスにドラッグしたり、参照ボタン を使用してデータセットまで移動したりできるだけではなく、レイヤーをドロップダウン リストから選択することもできます。さらに、入力データセットおよび出力データセットの指定を非常に簡単にすることを目的とする、現在のワークスペース環境設定およびテンポラリ ワークスペース環境設定という 2 つの機能があります。
現在のワークスペースとテンポラリ ワークスペースに関する重要な点を以下に示します。
- 現在のワークスペースおよびテンポラリ ワークスペースは、[ジオプロセシング環境] ウィンドウ ([ジオプロセシング] > [環境] の順にクリックしてアクセス) で設定します。
- 現在のワークスペースおよびテンポラリ ワークスペースの設定は、他のジオプロセシング環境と同じように、マップ ドキュメントとともに保存されます。
- ArcMap では、現在のワークスペースおよびテンポラリ ワークスペースは、自動的にデフォルト ジオデータベースに設定されます。いつでも現在のワークスペースおよびテンポラリ ワークスペースをこのデフォルト ジオデータベース以外に変更できます。
- ツールのダイアログ ボックスを使用しているときでも Python でツールを実行しているときでも、データセットのベース名を入力すると、ツールはデータセットを現在のワークスペースで検索します。
- ツールのダイアログ ボックスを使用するときに、現在のワークスペースおよびテンポラリ ワークスペースの設定を使用して出力データセット名が自動生成されます。
現在のワークスペース環境の設定
- ArcMap で、[ジオプロセシング] > [環境] の順にクリックします。
[環境設定] ウィンドウが表示されます。
- [ワークスペース] カテゴリを展開し、ワークスペースへのパスを入力します。下の図は、現在のワークスペースを「D:\ArcTutor\BuildingaGeodatabase\Montgomery.gdb\Landbase」というジオデータベース内のフィーチャ データセットに設定する方法を示しています。
現在のワークスペースは、システム フォルダー、ジオデータベース、またはジオデータベース内のフィーチャ データセットに設定できます。
- [OK] をクリックします。
環境を設定する方法は他にもいくつかあり、すべてのツール、1 つのツールの実行、モデル、モデル プロセス、またはスクリプトに適用されるように環境を設定できます。
ベース名の使用
現在のワークスペースの最も重要な目的は、ワークスペースを一度設定すると、入力パスおよび出力パスを入力するときにベース名のみを入力するだけで済むことです。下の図のように、データセット名にはワークスペースとベース名の 2 つの構成要素があります。
ベース名の使用例
下の図は、現在のワークスペースとして使用されているジオデータベースの例を示しています。現在のワークスペースは、「D:\BuildingaGeodatabase\Montgomery.gdb\Landbase」に設定されています。
ワークスペースを一度設定したら、それ以降にデータセット名が必要になるたびに、ベース名のみを入力できます。下の例は、[クリップ (Clip)] ツールの例を示しています。
- ベース名 (「Blocks」) が現在のワークスペースに結合されてデータセット名 (「D:\BuildingaGeodatabase\Montgomery.gdb\Landbase\Blocks」) が形成されます。次に、[入力フィーチャ] パラメーターがこのデータセット名に置き換えられます。
- 一意な出力データセット名が自動生成されます。そのベース名は、<入力ベース名>_<ツール名> という形式で付けられます (この例では「Blocks_Clip」)。一意な名前にするために必要な場合は番号が付加されます。
- 自動生成された出力名を使用したくない場合は、自動生成された名前を削除し、ベース名を入力すると、下に示すように、それが展開されてデータセット名になります。
ツールを実行した後に、出力があるべき場所にないことがあります (出力名を入力するときにミスがあったか、出力場所を忘れたことが原因と考えられます)。その場合は、[結果] パネルを開きます。このパネルには、実行したツールの履歴とその入力および出力データセットが表示されます。
下に示すように、バッチ グリッドでベース名を使用することもできます。
ワークスペースをツールのダイアログ ボックスで表示
下に示すように、ポインターを参照ボタン の上に置くと、参照した最後のワークスペースが表示されます。
参照ボタンをクリックすると、[参照] ダイアログ ボックスが現在のワークスペースに表示されます。
スクリプトにおける現在のワークスペースとベース名
Python ウィンドウでは、ワークスペース環境で現在のワークスペースを設定します。ワークスペースを設定したら、下に示すように、ワークスペース内のどのデータセットのベース名も使用できます。
import arcpy
arcpy.env.workspace = "c:/projects/RedRiverBasin/data.gdb"
arcpy.Intersect_analysis(["roads", "streams"], "stream_crossings", "#", 1.5, "point")
次の例は、workspace コマンドの使用方法を示す Python スクリプトの例です。
# Purpose: Determine the type of vegetation within 100 meters of all stream
# crossings
import arcpy
# Set the workspace (to avoid having to type in the full path to the data
# every time)
arcpy.env.workspace = "c:/projects/RedRiverBasin/data.gdb"
# Process: Find all stream crossings (points)
arcpy.Intersect_analysis(["roads", "streams"], "stream_crossings", "#", 1.5,
"point")
# Process: Buffer all stream crossings by 100 meters
arcpy.Buffer_analysis("stream_crossings", "stream_crossings_100m", "100 meters")
# Process: Clip the vegetation feature class to stream_crossings_100m
arcpy.Clip_analysis("vegetation", "stream_crossings_100m",
"veg_within_100m_of_crossings")
# Process: Summarize how much (area) of each type of vegetation is found within
# 100 meters of the stream crossings
arcpy.Statistics_analysis("veg_within_100m_of_crossings",
"veg_within_100m_of_crossings_stats",
[["shape_area", "sum"]], "veg_type")
テンポラリ ワークスペース環境
現在のワークスペース環境に加え、テンポラリ ワークスペース環境も設定できます。現在のワークスペースの場合と同じ方法で、テンポラリ ワークスペースの設定にアクセスしたり、テンポラリ ワークスペースの設定を行ったりします。
テンポラリ ワークスペース環境の主な用途は、ModelBuilder で使用することです。ModelBuilder は、中間データセット (モデルを実行すると不要になるデータセット) を書き出すワークスペースを必要とします。主要な目的は ModelBuilder で使用することですが、ツール ダイアログ ボックスのためにテンポラリ ワークスペース環境を設定することが必要になる場合があります。ModelBuilder で使用するためにテンポラリ ワークスペースを設定し、ツールのダイアログ ボックスを使用して実行する前に、その設定をリセットすることを忘れるケースもよく見られます。
テンポラリ ワークスペース環境を設定すると、下に示すように、ツールは現在のワークスペースの代わりにテンポラリ ワークスペースを使用して出力データセット名を自動生成します。
自動生成された出力データセット名
すべてのツールが自動的に出力データセット名を作成します。出力名を生成するロジックは次のとおりです。
- テンポラリ ワークスペース環境が設定されている場合、自動生成された出力パスはテンポラリ ワークスペースになります。
- テンポラリ ワークスペースの環境が設定されていない場合、現在のワークスペースの環境が調べられます。現在のワークスペースが設定されている場合、自動生成された出力パスは現在のワークスペースになります。
- テンポラリ ワークスペースの環境も現在のワークスペースの環境も設定されていない場合、自動生成された出力パスはいずれかの入力のワークスペースになります。この場合、一定の制限が適用されます。たとえば、ワークスペースがフォルダーであり、出力が新しいフィーチャクラスである場合、出力はカバレッジ ワークスペースの上のディレクトリに保存されるシェープファイルになります。この他にも制限があり、たとえば、書き込みアクセスの制限があります。状況に応じて、出力がシステムの temp ディレクトリに書き込まれることがあります。
- 出力データセットとしてベース名を入力すると、テンポラリ ワークスペースの環境が設定されているかどうかに関係なく、現在のワークスペースの環境を使用して出力パスが作成されます。