テンポラリ データは、ツールによって使用され、ツールの実行後に削除されるデータです。ModelBuilder では、テンポラリ データは中間データと呼ばれます。ModelBuilder の場合、中間のマークが付けられたデータは、モデル ツールの実行後に自動的に削除されます。しかし、スクリプトの場合は、ユーザーがスクリプト内でテンポラリ データを削除する必要があります。
モデル ツールまたはスクリプト ツールを含むツールボックスを他のユーザーと共有するときは、ツールがテンポラリ データまたは中間データを書き込める場所 (フォルダーまたはジオデータベース) が必要です。2 つの読み取り専用の環境、テンポラリ GDB(テンポラリ ジオデータベース) とテンポラリ フォルダーがあり、これらに中間データとテンポラリ データを書き込むことができます。これら 2 つの環境は、ArcGIS 10.1 で導入されました。
モデルの中間データ
すべての中間データは、中間のフラグを付けて、テンポラリ フォルダーまたはテンポラリ ジオデータベースに書き込む必要があります。以下の図に、[中間] のフラグを付けた [重心の交点] のデータ変数を示します。この出力場所は、テンポラリ ジオデータベース (%scratchGDB%) です。パーセント記号 (%) は、変数置換を示しています。scratchGDB の値は、モデル ツールの実行時に展開されます。poly_Intersect という名前のフィーチャクラスが、テンポラリ ジオデータベースに書き込まれます。同様に、%scratchFolder% を使用して、ファイルベースのデータ (*.lyr ファイル、*.txt ファイルなど) を書き込むことができます。
中間フィーチャクラスを書き込むときに、シェープファイルをテンポラリ フォルダーに書き込みたくなる場合があります。しかし、シェープファイルにはツールの移植性に影響を与える厳しい制限がいくつかあるため、この方法は使わず、フィーチャ データはテンポラリ ジオデータベースに書き込んでください。シェープファイルとその制限の詳細については、「シェープファイル出力のジオプロセシングの検討事項」をご参照ください。
また、中間データはインメモリ ワークスペースにも書き込むことができます。
スクリプト ツールでのテンポラリ データの管理
スクリプト ツールのテンポラリ データは、テンポラリ ジオデータベースまたはテンポラリ フォルダーのいずれかに書き込む必要があります。以下に、フィーチャクラスをテンポラリ ジオデータベースにコピーし、終了時にそれを削除するコードを示します。
import arcpy
import os
inFC = arcpy.GetParameterAsText(0)
tempFC = arcpy.env.scratchGDB + os.path.sep + "tempFC"
arcpy.CopyFeatures_management(inFC, tempFC)
# Do some work here...
# Clean up when done...
#
arcpy.Delete_management(tempFC)
スクリプト内で、データをインメモリ ワークスペースに書き込むこともできます。次に例を示します。
import arcpy
table = arcpy.CreateTable_management("in_memory", "table1")
arcpy.AddField_management(table, "Field1", "TEXT", field_length=20)
cursor = arcpy.da.InsertCursor(table, ["Field1"])
cursor.insertRow(["Hello World"])
in_memory ワークスペースは、ジオプロセシング ツールにのみ有効です。これは、任意のデータを書き込める汎用的な仮想ディレクトリではありません。
テンポラリ ワークスペース
テンポラリ ワークスペース環境は、主に ModelBuilder によって、中間データと出力データを書き込む場所として使用されます。この環境は、ユーザー自身 (または同じツールを使用する他のユーザー) が任意の場所 (フォルダー、ジオデータベース、またはジオデータベース内のフィーチャ データセット) に設定できます。共有する予定のあるツールでは、テンポラリ ワークスペース環境を使用しないことをお勧めします。これは、同じツールを使用するユーザーが、テンポラリ ワークスペース環境をフォルダー、ジオデータベース、またはフィーチャ データセットに設定できてしまうためです。たとえば、レイヤー ファイルを出力できるように、テンポラリ ワークスペースをフォルダーに設定したいにもかかわらず、同じツールを使用するユーザーがテンポラリ ワークスペースをジオデータベースに設定してしまうような場合です。この場合、ツールが実行しても、レイヤー ファイルをフォルダーに書き込めないために実行できません。これが、テンポラリ ジオデータベースとテンポラリ フォルダーが 10.1 で導入された主な理由です。この導入により、既知のジオデータベースや既知のフォルダーにデータを書き込むことができます。