ツールの配布方法
最も簡単なツール共有方法は、ツールを格納したカスタム ツールボックス(*.tbx)のコピーを(電子メールなどで)送信することです。この方法がうまくいくのはツールが、データセット、マップ ドキュメントのマップ レイヤ、レイヤ ファイル、外部スクリプト ファイルやライブラリなど、他のリソースを使用しない場合だけです。つまり、ユーザがツール パラメータとして提供するデータだけに依拠するシステム ツールのようなものである場合です。リソースを必要としないツールは、汎用ツールと呼ばれます。
汎用ではなく、実行時に他のリソースに依拠するツールの方がより一般的といえます。この場合には、2 つの方法でツールを配布できます。
- ZIP による共有: ツールが必要とするすべてのリソースを 1 つのフォルダにまとめ、標準の ZIP 圧縮ユーティリティでフォルダをパッケージ化して ZIP(*.zip)ファイルを作成したうえで、この *.zip ファイルを電子メールで、またはジオプロセシング Resource Centerのモデルおよびスクリプト ツール ギャラリーにアップロードして共有します。
- ArcGIS Server への公開: ArcGIS Server を使用すれば、エンタープライズ(イントラネット)経由および Web(インターネット)経由でサービスを共有できます。サービスには、ツールボックスやマップも含まれます。
適切に整理されたシステム フォルダの ZIP による共有
まず、適切に整理された 1 つのシステム フォルダである [ToolShare] フォルダにツールボックスとツール データを集めます。以下の図は [ToolShare] フォルダの構造を示しています。[ToolShare] フォルダの内容と構造は例でしかありません。好みに応じたフォルダ構造を使用することができます。ツールをジオプロセシング Resource Centerのモデルおよびスクリプト ツール ギャラリーにアップロードする場合は、[ToolShare] フォルダ構造の使用をお勧めします。
ツールボックスおよび必要なリソースをまとめたら、そのフォルダの *.zip ファイルを作成します。Windows での *.zip ファイルの作成方法:
- フォルダを右クリックし、[送る] → [圧縮 (zip 形式) フォルダ] の順にクリックします。上の図を例にすると、[Thiessens] フォルダを右クリックします。
- *.zip ファイルを(電子メールなどで)送信します。受領者(つまりユーザ)が、*.zip ファイルを開いて、その内容をローカル コンピュータにコピーします。
マップおよびレイヤ パッケージ
ArcGIS 10 には、マップおよびレイヤ パッケージが新たに追加されています。マップとレイヤは、ArcMap 内で、または[パッケージ化] ツールセットでパッケージ化できます。作成したマップとレイヤ パッケージは、ArcGIS Online で共有できます。ArcGIS 10 では、マップやレイヤのパッケージ化と同じ方法ではツールボックスをパッケージ化することができません。
検討事項
ツールが必要とするリソースの収集後、*.zip ファイルを作成する前に対応しなければならないことが多くあります。
データ
ツールが使用するデータはすべて、[ToolShare] フォルダまたはこのフォルダのサブフォルダに格納する必要があります。上の図の [ToolShare] フォルダ構造の場合は、データを [ToolData] フォルダに配置し、各ツールについて、(絶対パスではなく)[相対パスで保存] オプションをオンにします。
マップ ドキュメント(*.mxd)を共有する場合は、マップで使用するすべてのデータをマップ ドキュメントと同じフォルダに配置する必要があります。データを手動でコピーし、[データ ソースを相対パスで保存] がオンになっていることを確認するか、[マップ コンテンツの統合] ツールを使用します。
中間データとテンポラリ データ
ほとんどの場合、モデルとデータには、中間データとテンポラリ データを書き出す場所が必要です。この場所は、ユーザのローカル ディスク上のフォルダまたはジオデータベースになります。通常は、ユーザが独自のテンポラリ ワークスペース環境を設定して、この環境設定を中間データとテンポラリ データの書き出し先として使用するようにします。
ライセンスの問題
ツールの受領者が、ツールの実行に必要な製品やライセンスを持っていない場合があります。受領者が必要なエクステンションをインストール済みであっても、現在のセッションでそのエクステンションを使用するためのライセンスをもっていないということもあり得ます。ライセンスがない場合は、エクステンションが有効になっていないことを知らせるエラー メッセージが表示されて、ツールが終了します。その場合、ユーザは、ArcCatalog や ArcMap といった現在のアプリケーションの [カスタマイズ] メニューで [エクステンション] をクリックし、必要なエクステンションを有効にしてライセンスを取得する必要があります。
必要なエクステンションがインストールされていないと、ツールボックスにツールが表示されないことがあります。
当然のことですが、どのエクステンションが必要なのかを記載し、ユーザに必要なエクステンションを確実に理解させるための措置を取る必要があります。一部のユーザには、これだけでは十分ではないかもしれません。ツールボックスに含まれるすべてのツールがインストールされていないエクステンションに依拠しているようなケースは、特に注意が必要です。このような場合は、上述のように、ユーザがツールボックスを開いたときに何も表示されません。1 つの解決策として、配布したツールボックス内にスクリプト ツールを設けて、必要なエクステンションを確認し、問題がある場合にはメッセージを出力するようにすることが考えられます。この種のツールはエクステンションに依拠しないため、常にツールボックスにロードされます。ユーザは、そのうえで、エクステンションの確認ツールを実行して、メッセージ情報を表示できます。
スクリプト
共有するスクリプトには、適切なライセンスと製品レベルを確認するロジックを設けてください。
ツールボックスにはスクリプトを埋め込むことができます。スクリプトを埋め込めば、その他にスクリプト ファイルを共有する必要がなくなります。
ただし、オーサリングしたモジュールを Python スクリプトでインポートする場合や、ツールボックスにスクリプトを埋め込んでいない場合は、必ずこれらのスクリプトとモジュールを [ToolShare] フォルダに格納してください。
システム ツール
ArcGIS がインストールされているシステムには、必ずシステム ツールが存在します。システム ツールをカスタム ツールボックスにコピーする必要はありません。また、(arcpy.AddToolbox() で)スクリプトにシステム ツールボックスを追加する必要もありません。
ArcGIS Server への公開
ArcGIS Server を使用すれば、エンタープライズ(イントラネット)経由および Web(インターネット)経由でサービスを共有できます。サービスには、ツールボックスやマップも含まれます。ArcGIS Server で GIS リソースを共有する場合の主な利点は、サーバ技術を介したデータ共有と同じです。たとえば、データを中央管理し、複数のユーザをサポートし、クライアントに最新情報を提供できます。これ以外にも、特にジオプロセシングの場合、サーバ コンピュータで検索された(ライセンスなどの)リソースを使って、ツールがサーバ コンピュータ上で実行できるという利点があります。