現在のワークスペース環境およびテンポラリ ワークスペース環境の使用

ほぼすべてのジオプロセシング ツールがデータセットを入力として受け取り、新しいデータセットを生成します。ジオプロセシング ツールを使用するとき、次のような長いデータセット名を入力しないようにしてください。

E:\Data\D052753_a\infrastructure\BK16_c1\approved.gdb\roads\mjrst

このような長いデータセット名を入力することは、手間のかかる面倒な作業であり、ミスも起こりがちです。このため、ジオプロセシングでは、データセットまたはレイヤをツールのダイアログ ボックスにドラッグしたり、参照ボタン 開く を使用してデータセットまで移動したりできるだけではなく、レイヤをドロップダウン リストから選択することもできます。さらに、より簡単に入力および出力データセットを指定できるように 2 つの機能が用意されています。1 つは現在のワークスペース環境設定で、もう 1 つはテンポラリ ワークスペース環境設定です。

現在のワークスペースとテンポラリ ワークスペースに関する重要な点を以下に示します。

現在のワークスペース環境の設定

手順:
  1. ArcMap で、[ジオプロセシング] [環境] の順にクリックします。[環境設定] ウィンドウが開きます。
  2. [ワークスペース] カテゴリを展開し、ワークスペースへのパスを入力します。下の図は、現在のワークスペースを「D:\ArcTutor\BuildingaGeodatabase\Montgomery.gdb\Landbase」というジオデータベース内のフィーチャ データセットに設定する方法を示しています。

    現在のワークスペース環境の設定

    現在のワークスペースは、システム フォルダ、ジオデータベース、またはジオデータベース内のフィーチャ データセットに設定できます。

  3. [OK] をクリックします。
  4. または、[カタログ] ウィンドウでジオデータベースを参照し、ジオデータベースを右クリックしてから、[デフォルト ジオデータベースに設定] をクリックして設定することもできます。現在のワークスペースおよびテンポラリ ワークスペースは、このデフォルト ジオデータベースに設定されます。

環境を設定する方法は他にもいくつかあり、すべてのツール、1 つのツールの実行、モデル、モデル プロセス、またはスクリプトに適用されるように環境を設定できます。

環境設定の詳細

ベース名の使用

現在のワークスペースの最も重要な目的は、ワークスペースを一度設定すると、入力パスおよび出力パスを入力するときにベース名のみを入力するだけで済むことです。下の図のように、データセット名にはワークスペースとベース名の 2 つの構成要素があります。

データセット名
カタログ パス、パス、場所、およびデータセット名。これらはすべてデータセットを指定するために使用される文字列であり、実質的に同じものを意味します。

ベース名の使用例

下の図は、現在のワークスペースとして使用されているジオデータベースの例を示しています。現在のワークスペースは、「D:\BuildingaGeodatabase\Montgomery.gdb\Landbase」に設定されています。

Montgomery.gdb のコンテンツ

ワークスペースを一度設定したら、それ以降にデータセット名が必要になるたびに、ベース名のみを入力できます。下の例は、[クリップ(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 で使用するためにテンポラリ ワークスペースを設定し、ツールのダイアログ ボックスを使用して実行する前に、その設定をリセットすることを忘れるケースもよく見られます。

テンポラリ ワークスペース環境を設定すると、下に示すように、ツールは現在のワークスペースの代わりにテンポラリ ワークスペースを使用して出力データセット名を自動生成します。

テンポラリ ワークスペースを使用して自動生成された出力の例
注意注意:

出力としてベース名を入力すると、テンポラリ ワークスペースではなく現在のワークスペースを使用してデータセット名が作成されます。

ベース名を使用する場合、常にテンポラリ ワークスペースではなく現在のワークスペースに出力されます。スクリプトを作成するときは、この点に注意する必要があります。下のコード スニペットでは、「stream_crossings」という出力データセットはテンポラリ ワークスペースではなく現在のワークスペースに書き込まれます。

arcpy.env.workspace = "c:/projects/RedRiverBasin/data.mdb"
arcpy.env.scratchWorkspace = "c:/projects/Scratch/scratch.gdb"
arcpy.Intersect_analysis("roads ; streams ", "stream_crossings", "#", 1.5, "point")
注意注意:

テンポラリ ワークスペースは一時的なデータとして使用するものであるため、これを ArcSDE ジオデータベースに設定しないでください。そうすると、一時的なテンポラリ データをエンタープライズ データベースに書き込むことになって、パフォーマンスの問題が発生する原因になります。常に、テンポラリ ワークスペースで(パーソナル ジオデータベースまたはシェープファイル ワークスペースではなく)ファイル ジオデータベースを使用することを推奨します。

自動生成された出力データセット名

すべてのツールが自動的に出力データセット名を作成します。出力名を生成するロジックは次のとおりです。

関連トピック

5/10/2014