ほぼすべてのジオプロセシング ツールがデータセットを入力として受け取り、新しいデータセットを生成します。ジオプロセシング ツールを使用するとき、次のような長いデータセット名を入力しないようにしてください。
E:\Data\D052753_a\infrastructure\BK16_c1\approved.gdb\roads\mjrst
このような長いデータセット名を入力することは、手間のかかる面倒な作業であり、ミスも起こりがちです。このため、ジオプロセシングでは、データセットまたはレイヤーをツールのダイアログ ボックスにドラッグしたり、参照ボタン を使用してデータセットまで移動したりできるだけではなく、レイヤーをドロップダウン リストから選択することもできます。さらに、より簡単に入力および出力データセットを指定できるように 2 つの機能が用意されています。1 つは現在のワークスペース環境設定で、もう 1 つはテンポラリ ワークスペース環境設定です。
現在のワークスペースとテンポラリ ワークスペースに関する重要な点を以下に示します。
- 現在のワークスペースおよびテンポラリ ワークスペースは、[ジオプロセシング環境] ウィンドウ ([ジオプロセシング] > [環境] の順にクリックしてアクセス) で設定します。
- 現在のワークスペースおよびテンポラリ ワークスペースの設定は、他のジオプロセシング環境と同じように、マップ ドキュメントとともに保存されます。
- 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.mdb"
>> 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 the ArcPy site-package
import arcpy
try:
# Set the workspace (to avoid having to type in the full path to the data every time)
arcpy.env.workspace = "c:/projects/RedRiverBasin/data.mdb"
# 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")
except:
# If an error occurred while running a tool print the messages
print arcpy.GetMessages()
テンポラリ ワークスペース環境
現在のワークスペース環境に加え、テンポラリ ワークスペース環境も設定できます。現在のワークスペースの場合と同じ方法で、テンポラリ ワークスペースの設定にアクセスしたり、テンポラリ ワークスペースの設定を行ったりします。
テンポラリ ワークスペース環境の主な用途は、ModelBuilder で使用することです。ModelBuilder は、中間データセット (モデルを実行すると不要になるデータセット) を書き出すワークスペースを必要とします。主要な目的は ModelBuilder で使用することですが、ツール ダイアログ ボックスのためにテンポラリ ワークスペース環境を設定することが必要になる場合があります。ModelBuilder で使用するためにテンポラリ ワークスペースを設定し、ツールのダイアログ ボックスを使用して実行する前に、その設定をリセットすることを忘れるケースもよく見られます。
テンポラリ ワークスペース環境を設定すると、下に示すように、ツールは現在のワークスペースの代わりにテンポラリ ワークスペースを使用して出力データセット名を自動生成します。
自動生成された出力データセット名
すべてのツールが自動的に出力データセット名を作成します。出力名を生成するロジックは次のとおりです。
- テンポラリ ワークスペース環境が設定されている場合、自動生成された出力パスはテンポラリ ワークスペースになります。
- テンポラリ ワークスペース環境が設定されていない場合、現在のワークスペース環境が調べられます。現在のワークスペースが設定されている場合、自動生成された出力パスは現在のワークスペースになります。
- テンポラリ ワークスペースも現在のワークスペースも設定されていない場合、自動生成された出力パスはいずれかの入力のワークスペースになります。この場合、一定の制限が適用されます。たとえば、ワークスペースがカバレッジ ワークスペースであり、出力が新しいフィーチャクラスである場合、出力はカバレッジ ワークスペースの上のディレクトリに保存されるシェープファイルになります。この他にも制限があり、たとえば、書き込みアクセスの制限があります。状況に応じて、出力がシステムの temp ディレクトリに書き込まれることがあります。
- 出力データセットとしてベース名を入力すると、テンポラリ ワークスペースが設定されているかどうかに関係なく、現在のワークスペースを使用して出力パスが作成されます。