PythonスクリプトツールよりもPythonツールボックスを学習/使用する理由 [閉まっている]


25

いくつかのPythonツールボックス(ArcGIS 10.1で新しく追加)を作成しましたが、標準のツールボックスにPythonスクリプトツールではなく、いつ作成するかをまだ決定していません。

オンラインヘルプは、ドットポイントの前に次の文字を追加すると、私を啓発するかもしれないと思いました。

作成後、Pythonツールボックスのツールは多くの利点を提供します

ただし、リストされている5つの利点はすべて、Pythonを使用してツールを作成できないことよりも優れているようであり、PythonスクリプトツールよりもPythonツールボックスの利点を明確に示しているものはありません。

私が考えることができる2つの利点は次のとおりです。

  • 単一のPythonスクリプトで「純粋な」Pythonツールを記述できるようになりました。ツール検証が追加されたように見える個別に作成されたダイアログに接続する必要はありません。
  • コード(Pythonまたはテキストファイルを記述できる任意の言語)を使用してPythonツールボックスの記述を自動化できるようになりましたが、これを行うための要件はまだありません。

EsriがPython Toolbox機能を提供するきっかけとなった説得力のあるケースを見落としていますか?

回答:


34

この2つの機能は非常に似ていますが、完全に同等ではありません。

両方に共通

  • 識別用の一意のエイリアスを持つツールのセットが含まれています
  • arcpyから呼び出すことができます
  • 各ツールのジオプロセシングツールダイアログ(基本的には完全なUI)を無料で入手
  • すべてのPythonコードを1つのファイルTBXに保持し(ツールソースを埋め込み、すべての実装を1つに保持PYT)、電子メールまたは共有ネットワークドライブ経由で配布できます。
  • デスクトップアプリケーションでは常にフォアグラウンド設定で実行します。ArcPyコード内で「常にフォアグラウンドで実行」を設定しますか?

TBXファイルに固有:

  • システムツールボックス、カスタムCOMツール、およびカスタム.Netツールへの参照を含めることができます
  • モデルビルダーツールをツールボックスに含めることができます
  • ツールのドキュメントは.tbxファイル内に保存されます
  • パラメータを設定し、検証コードを実行するための簡単なウィザードUI
  • プロセスでPythonスクリプトを実行ツールのプロパティ
  • 短所:不透明なバイナリ形式、以前のバージョンのソフトウェアで動作するにはTBXファイルの新しいバージョンを古いバージョンとして明示的に保存する必要があります。設定(相対パスなど)

Pythonツールボックスに固有:

  • ツールボックスは、他のコードと同じように扱うことができるので、プレーンテキストは、(良いリビジョン管理ツールを使用すると、その開発の歴史をたどることができますとして使用されている環境で便利- GitHubの上でどのように多くのプロジェクトを見使うPYT超えますTBX。)
  • 特定のパラメータタイプをより詳細に制御できます(つまり、複合データタイプを実行し、値テーブルのスキーマを定義できます)
  • isLicensedプロパティは、製品( "ArcInfo")または拡張機能( "spatial")が利用できない場合にツールを無効にするために使用できます。
  • ツールのドキュメントは、.pytと同じフォルダーのXMLファイルに保存されます
  • 短所:ツールパラメーターを構成するためのウィザードUIがなく、Pythonの大幅に多くの足場コードを使用するため、ツールボックスの開発は、単に実装スクリプトを追加するよりも正式なソフトウェア開発タスクになります。pytが大きい場合、開発中に変更をロードするためにpytをリロードするのは遅くなります(これは、他のファイルにツールを置いてインポートすることで回避できます。再コンパイルする必要はありません)。

少し前、最初の数十個ほどのPYTツールボックスで作業していたとき、初めてセットアップするのがどれほど面倒なのか悩んでいたPYTため、というツールtbx2pytを開発しまし。それは取るよTBX、ツールボックスを、それがに変換するPYTコードの最小限の損失で。実際、PYTそれは最初の力でしたTBX。これは、必要に応じて既存のツールをPython Toolbox形式に移行するための良い方法です。少なくとも、コードに切り替える前にUIを使用してツールのパラメーターを設定することができます。



11

Pythonツールボックスに傾倒する最大の理由は、バージョン管理とソースコード管理(バージョン管理のArcGISモデルへの適用を参照)にあり、その後、タブ補完、正規表現、スニペットライブラリを備えたコードエディター/ IDEを使用できるようになりました。等

しかし、Ryan Daltonが指摘しているように、そうすることにより、モデルビルダーと古いスタイルのツールを使用する機能が失われます-通常どおりモデルを構築し、Pythonにエクスポートしてからフィットするように書き直す努力をするつもりがない場合.pytに。(これを行う場合は、ArcGISでPythonツールボックス(* .pyt)を整理するためのガイドラインをご覧ください)。現時点では、この欠点は十分に大きいので、Pythonツールボックスを真剣に使用し始めています。

.pytに変換する既存のツールボックスがある場合は、Jason Scheirerのtbxtopyt部分コンバーターが役立つことがあります。

「説得力のあるケース?」質問の一部:既にいくつかのソフトウェア開発のチョップがある場合は、間違いなくそうです。私のように、あなたはGIS Tech / Analystが3パートで、pythonistaが1パート以下であれば、それほど多くはありません。(少なくともまだではありません- 近い将来のリリースで、この2つのアプローチの2つのアプローチのどちらかが変更されることを本当に期待しています。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.