ジオプロセシングの結果をパッケージまたはサービスとして共有することができます。結果を共有する場合、ArcGIS はモデルおよびスクリプト ツールのコピーを作成し、その内容を検査し、コピーを変更して、ツールが別のコンピューター上で実行されるようにします。さらに、結果を作成するときに使用されたデータも共有されます。
しかし、カスタム ツールは共有したいけれど、データは共有したくない場合はどうするのでしょうか。つまり、他のユーザーにツールボックスを与え、ユーザーがその中のツールをシステム ツールボックスと同じように使えるようにしたい場合などです。それは実現可能ですが、ある程度のスキルを必要とします。
- ツールで使用されるすべてのデータをツールへの入力パラメーターにしなければなりません。ツール内でデータを直接参照することはできません。なぜなら、ツールを受け取る人 (あなたのユーザー) はそれぞれのシステム内にデータを置く必要があるからです。たとえば、モデルまたはスクリプトが D:\ToolData\cfcc_codes.dbf を見つけようとしている場合、ユーザーのコンピューターではツールは失敗します。ユーザーのコンピューターには D:\ToolData\cfcc_codes.dbf がないためです。ツールが特定のデータセットを使用しようとしている場合には、パッケージを作成しなければなりません。
- ツールとデータを一緒に提供しない場合 (提供する場合は、結果をパッケージすることになります)、ツールに耐久性があり、ユーザーが提供するあらゆるデータセットを処理できる必要があります。そのためには、優れたパラメーター定義、エラー処理、およびドキュメンテーションが必要です。
- ツールは自己包含型であることが必要です。ツールボックスだけを共有し、補助 Python またはドキュメンテーション ファイルは共有しないのが理想です。
- ツールが作成する中間データやテンポラリ データをすべて把握しておく必要があります。テンポラリ データ用の書き込み可能な場所を用意するとともに、ツールが処理後にテンポラリ データを削除することが必要です。
- ツールを徹底的にテストする必要があります。ツールを自分のコンピューターでローカルに実行するときには些細なことに思われた問題が、カスタム ツールを共有するときには大きな問題になります。
カスタム ツールおよびツールボックスを共有するときには、2 つの形式でツールを提供できます。
- Python ツールボックス (*.pyt)
- モデルまたはスクリプト ツールを含むカスタム ツールボックス (*.tbx)
Python ツールボックスはカスタム ツールの提供に適しています。必要なのは、*.pyt ファイルのみです。
カスタム ツールボックス内のモデルは、別のツールボックスに置かれたカスタム ツールを使用しない場合に限り、提供可能です。それらのモデルではあらゆるシステム ツールを使用できますが、ユーザーのライセンス レベルに注意する必要があります。ユーザーがライセンスを取得していないシステム ツールを使用することはできません。
カスタム ツールボックス内のスクリプトは、ツール内にコードを埋め込みます。埋め込んでいない場合には、ツールボックスとともに *.py ファイルを提供することが必要になります。その際には通常、ZIP 圧縮ユーティリティが使用されます。