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

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

共有モデルおよびスクリプト ツールでの中間 (テンポラリ) データの管理

  • モデルの中間データ
  • スクリプト ツールでのテンポラリ データの管理
  • テンポラリ ワークスペース

テンポラリ データは、ツールによって使用され、ツールの実行後に削除されるデータです。ModelBuilder では、テンポラリ データは中間データと呼ばれます。ModelBuilder の場合、中間のマークが付けられたデータは、モデル ツールの実行後に自動的に削除されます。しかし、スクリプトの場合は、ユーザーがスクリプト内でテンポラリ データを削除する必要があります。

注意:

ジオプロセシング パッケージまたはジオプロセシング サービスを使用してツールを共有している場合、テンポラリ データまたは中間データを管理するために、モデルまたはスクリプトを変更する必要は一切ありません。以下に説明する方法は、カスタム ツールボックスを共有する場合、つまりパッケージやサービスを共有するのではなく、ユーザーが作成したツールボックス (*.tbx ファイル) を他のユーザーと共有する場合にのみ適用されます。カスタム ツールボックスを共有する場合は、テンポラリ データや中間データを、ツールが実行されるコンピューター上の場所に書き込むことで、ツールの移植性を確保する必要があります。

モデル ツールまたはスクリプト ツールを含むツールボックスを他のユーザーと共有するときは、ツールがテンポラリ データまたは中間データを書き込める場所 (フォルダーまたはジオデータベース) が必要です。2 つの読み取り専用の環境、テンポラリ GDB(テンポラリ ジオデータベース) とテンポラリ フォルダーがあり、これらに中間データとテンポラリ データを書き込むことができます。これら 2 つの環境は、ArcGIS 10.1 で導入されました。

モデルの中間データ

すべての中間データは、中間のフラグを付けて、テンポラリ フォルダーまたはテンポラリ ジオデータベースに書き込む必要があります。以下の図に、[中間] のフラグを付けた [重心の交点] のデータ変数を示します。この出力場所は、テンポラリ ジオデータベース (%scratchGDB%) です。パーセント記号 (%) は、変数置換を示しています。scratchGDB の値は、モデル ツールの実行時に展開されます。poly_Intersect という名前のフィーチャクラスが、テンポラリ ジオデータベースに書き込まれます。同様に、%scratchFolder% を使用して、ファイルベースのデータ (*.lyr ファイル、*.txt ファイルなど) を書き込むことができます。

モデルでの %scratchGDB% の使用

  • モデルでの中間データの詳細
  • モデルでの変数置換の詳細
  • インライン モデル変数置換の例

中間フィーチャクラスを書き込むときに、シェープファイルをテンポラリ フォルダーに書き込みたくなる場合があります。しかし、シェープファイルにはツールの移植性に影響を与える厳しい制限がいくつかあるため、この方法は使わず、フィーチャ データはテンポラリ ジオデータベースに書き込んでください。シェープファイルとその制限の詳細については、「シェープファイル出力のジオプロセシングの検討事項」をご参照ください。

また、中間データはインメモリ ワークスペースにも書き込むことができます。

インメモリ ワークスペースについての詳細

スクリプト ツールでのテンポラリ データの管理

スクリプト ツールのテンポラリ データは、テンポラリ ジオデータベースまたはテンポラリ フォルダーのいずれかに書き込む必要があります。以下に、フィーチャクラスをテンポラリ ジオデータベースにコピーし、終了時にそれを削除するコードを示します。

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 で導入された主な理由です。この導入により、既知のジオデータベースや既知のフォルダーにデータを書き込むことができます。

関連トピック

  • env (ArcPy クラス)

ArcGIS Desktop

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

ArcGIS プラットフォーム

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

Esri について

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