ジオプロセシング フレームワーク

ジオプロセシング フレームワークとは、ツールを管理および実行するために使用する一連のウィンドウおよびダイアログ ボックスのことです。ここでは、このフレームワークの使用方法ではなく、その高度な概念および目的を中心に説明します。

ジオプロセシングの主な目的は、すばやく簡単に発想を実行、管理、変更、文書化、および ArcGIS ユーザ コミュニティとの共有が可能な新しいソフトウェアとして実現できるようにすることです。この場合、ソフトウェアとは、ArcGIS に必要な処理を実行するように指示するものです。たとえば、ジオプロセシング モデルは、ユーザによって ModelBuilder と呼ばれる操作性の高いビジュアル プログラミング言語で構築される新しいソフトウェアです。

このセクションの主題は、ジオプロセシングはユーザにとって新しい効果的なソフトウェアを作成するための 1 つの方法であるということです。これを説明することで、ユーザはジオプロセシングを使用する方法と目的をより広く、深く理解することができます。

任意の種類の新しいソフトウェアを作成するには、2 つの基本エレメントが必要です。

ジオプロセシングの言語は、そのツールのコレクションです。ジオプロセシング フレームワークは、既存のツールを整理および管理するため、および新しいツールを作成するための組み込みユーザ インタフェースの小さいコレクションです。フレームワークの基本的な構成要素は、次のとおりです(「ジオプロセシングの概要」を参照)。

ジオプロセシング モデルと ModelBuilder

ツールのダイアログ ボックスでは、1 つのツールを実行できます。これは 1 つのプログラミング言語で 1 つの命令を実行することと考えることができます。1 つのツールを実行することは確かに実用的ではありますが、プログラミング言語とまったく同じように複数のツールを連結して 1 つのツールの出力を別のツールに渡すことができなければ、システムはさほど役に立ちません。

ジオプロセシング フレームワークでは、ModelBuilder ウィンドウを使用して、ジオプロセシング言語のエレメント(ツール)を連結してシーケンスにすることで、すばやく簡単に発想をソフトウェアとして実現できます。モデルは、コンピュータに特定の処理を実行するように命令するため、ソフトウェアであると理解しておくことが大切です。ModelBuilder に表示されるプログラミング言語は、従来のプログラミング言語のようなテキストベースではなく、ビジュアルな言語です。

ここで最も重要なのは、モデルはツールであるということです。モデルの振舞いはシステムの他のツールとまったく同じであり、ダイアログ ボックス ウィンドウや Python ウィンドウで実行することができます。モデルはツールなので、モデルをモデルに埋め込むことが可能です。実際、ArcGIS で提供されているシステム ツールのいくつかはモデルです。

モデルには非常に複雑なものもあります。モデル内のどのシステム ツールまたはカスタム ツールも使用することができ、モデルは単なるツールであるため、ユーザが作成した他のモデルも使用できます。モデルの論理フローを制御するためにループおよび条件文を使用することもできます。

きわめて単純なモデルであっても、十分に効果的である場合があります。含んでいるツールは 1 つであっても、そのパラメータのいくつかが埋め込まれているモデルを作成することができます。たとえば、[バッファ(Buffer)] ツールでは 6 つのパラメータが使用されますが、現在処理している一連のタスクでは、これらのパラメータのうち、3 つのパラメータが常に同じであるとします。[バッファ(Buffer)] ツールを実行するたびにこれらのパラメータを設定するかわりに、モデルをすばやく作成してこれら 3 つのパラメータを設定し、MyBuffer ツールとして保存して、[バッファ(Buffer)] ダイアログ ボックスではなく MyBuffer ツールのダイアログ ボックスを使用することができます。MyBuffer に保存したモデルは数回使用しただけで削除するかもしれませんが、モデル自体はすばやく簡単に作成できるため、無駄な作業ではなく結果的に生産的といえます。

スクリプト

スクリプト言語を使用して、新しい便利なソフトウェアを作成することもできます。スクリプト言語を使用するプログラムはスクリプトと呼ばれます。ソフトウェア プログラミングでは、言語はシステム言語とスクリプト言語の 2 つの基本的なカテゴリに分けられます。システム言語は、C++ や .NET などの単純なプリミティブとコンピュータの基本的なリソースを使用してアプリケーションを一から作成するために使用される言語です。Python や Perl などのスクリプト言語は、コンピュータに組み込まれている高レベル機能を使用して既存アプリケーションを結合するために使用されます。システム言語のプログラミングに見られるような低レベル部品を扱う必要はありません。システム言語と比較して、スクリプト言語は、より習得しやすく使いやすい言語です。プログラミングを基本的に理解していれば、生産性を向上させるのに十分です。

ジオプロセシング フレームワークでは、新しいツールを作成するために使用できる点で、スクリプトはモデルに似ています。モデルはビジュアル プログラミング言語(ModelBuilder)で作成され、スクリプトはテキストベースの言語とテキスト エディタで作成されます。

モデルと同様に、スクリプトはツールですスクリプトはウィザードを使ってカスタム ツールボックスに追加することができ、モデルや別のスクリプトで使用できるツールの 1 つになります。システム ツールの一部はスクリプトです。技術的には、スクリプトを作成しても、ツールボックスに持ち込まないようにできます。この場合、それはツールではなく、単なるディスク上のスタンドアロン スクリプトになります。

スクリプトを使用する理由にはいくつかあります。

ソフトウェアを作成および管理するためのフレームワーク

ジオプロセシング フレームワークは、すばやく簡単に発想をシステムによる管理とユーザ間の共有が可能な新しいソフトウェアとして実現できるようにするために開発されました。

ジオプロセシングは演算子(ツール)で構成される言語であり、ArcGIS 内のデータ(テーブル、フィーチャクラス、ラスタ、TIN など)を操作し、広範な分野にわたる地理情報を操作および解析するために必要なタスクを実行します。

モデルおよびスクリプトの形式で新しいソフトウェアをすばやく簡単に作成できます。これらの新しいツールは、標準の ArcGIS パッケージに含まれていないタスクを実行します。たとえば、ArcGIS には、「ジオプロセシングとは」で示されている単純な [投影変換(Project)] と [クリップ(Clip)] のモデルを実行するためのメニューもボタンもなく、またプログラミング オブジェクトもありません。

ツールはジオプロセシング フレームワークによって管理されるため、ユーザが管理する必要はありません。これは、すぐには実感できないかもしれませんが、重要なポイントです。

ツールは簡単に共有できます。すべてのツールおよびツールセットを含んでいるツールボックスは、「.tbx」という拡張子を持つディスク上のファイル内またはジオデータベース内のどちらかに格納されます。このファイルまたはジオデータベースにアクセスできるすべてのユーザがそのツールを実行できます。

要点は、ツールが、ドキュメント、ユーザ インタフェース、アクセス方法、および共有方法が同じであるジオプロセシング フレームワークの正規メンバになることです。

ジオプロセシングと ArcObjects

ArcObjects は、ArcGIS ソフトウェア開発キット(SDK)の一部として提供される単純なプログラミング オブジェクトの大規模なライブラリです。開発者は、ArcObjects を使用して新しいアプリケーションを構築したり、ArcGIS アプリケーションの既存の機能を拡張したりします(ほとんどのシステム ツールとジオプロセシング フレームワーク全体も ArcObjects を使用して構築されています)。ジオプロセシングと同様に、ArcObjects SDK を使用して新しいソフトウェアを作成できます。

ArcObjects SDK とジオプロセシングは相補的な関係にあります。一般に、ArcObjects は ArcGIS を新しい振舞いで拡張するために使用され、ジオプロセシングはタスクを自動化するために使用されます。ArcObjects は、新しいユーザ インタフェースの追加、フィーチャクラスへのカスタム ロジックの追加、特殊なカートグラフィック レンダラの作成などに使用します。ジオプロセシングは、適切に動作するフレームワークの範囲内でタスクを自動化するソフトウェア(モデルおよびスクリプト)を作成するために使用します。

ArcObjects は、プログラマが複雑なロジックおよびアルゴリズムを実装するために単純なプリミティブにアクセスする必要があるシステム プログラミング言語とともに使用されることを前提としています。このため、ArcObjects には何千もの異なるオブジェクトおよびリクエストが含まれており、これによりプログラマは作業を詳細に制御できます。ArcObjects はシステム プログラミング言語とともに使用されるため、ジオプロセシングよりも、そのモデルおよびスクリプトのプログラミングに関する豊富な知識を必要とします。

一方、ジオプロセシングは、すべての GIS ユーザが作業の自動化、反復可能な明確に定義されているメソッドおよびプロシージャの構築、および重要な地理プロセスのモデリングを行うために使用できる普遍的な機能です。


7/10/2012