Python によるカスタム ラスター タイプの実装
ラスター タイプは、追加したいラスター データの種類に応じて Python でカスタマイズおよび実装できます。ラスター タイプは、データに関連付けられたメタデータ構造の形式を認識する関数の集合と比較できます。 ラスター タイプはメタデータを解析し、データ ファイルへのパス、空間参照情報、メタデータ (センサー名、太陽高度、太陽方向、太陽距離、取得日、放射輝度、反射率パラメーター) などの情報を取得することも可能です。
メタデータ ファイルからメタデータ情報を解析し、読み取ることに加え、ラスター タイプは読み取り対象のデータの種類に適用可能な処理テンプレートも定義します。 処理テンプレートは、ソース データの異なる情報を組み合わせて、表示やさらなる分析のためのより有意義かつ便利な出力を生成できます。 センサー データに基づくほとんどのラスター タイプは、マルチスペクトルを処理テンプレートの 1 つとして定義しています。 他の多くのテンプレートは、プロダクトに利用可能なデータの種類に基づいて定義できます。 たとえば、Landsat 8 のラスター タイプは、マルチスペクトル、パンクロマティック、パンシャープン、植生、巻雲、雪/氷などのさまざまなテンプレートを定義しています。
Python で実装された ArcGIS ラスター タイプの詳細については、「Github ラスター ライプ」をご参照ください。
ラスター タイプのプロパティ
ラスター タイプは、そのソース データから以下のプロパティの 1 つ以上を定義することで作成されます。
バンドのプロパティ - バンド名、最小波長と最大波長、太陽放射など
処理テンプレート - 入力、関数、および値または変数を含むラスター関数テンプレート
補助フィールド - モザイク データセットに追加されるフィールド
補助入力 - データ ソースを完全に記述するためにラスター タイプにより要求される追加情報 (画像をオルソ補正するためにソース データセットに適用すべき DEM など)
カスタム ラスター タイプの実装
Python モジュールにおけるラスター タイプの実装の詳細を以下で説明します。 ラスター タイプとは、データのさまざまな側面でアプリケーションとのやり取りを促進するレイヤーです。 ラスター タイプは、モザイク データセットにラスターを追加 ツールを使用してラスターをモザイク データセットに追加するためにも不可欠です。
ArcGIS フレームワークは、よく知られたファクトリー パターンを使用してラスター タイプを識別します。 ラスター タイプ ファクトリーはラスター タイプのコレクションを保持しており、特定の基準に基づいてコレクションを整理することも、ラスター タイプ ファクトリーがすべてのラスター タイプを保持するコンテナーになることもできます。
Python で実装されるラスター タイプの構成要素には次の 3 つがあります。
どのように機能するか
Python でのラスター タイプ実装のアーキテクチャーは直感的プロセスです。 ArcGIS は、ラスター タイプ実装のために ArcGIS システムおよび Python モジュールとインターフェイス接続するラスター タイプ アダプターを提供しています。 このアダプターは Python モジュールを読み込み、RasterTypeFactory を探してこのモジュール内の参加ラスター タイプを特定します。 RasterTypeFactory にはファクトリー内のすべてのラスター タイプに関する情報を返す公開関数、getRasterTypesInfo を少なくとも 1 つ含める必要があります。 この getRasterTypesInfo 関数は、RasterTypeDefinitions の辞書を返します。 このアダプターは RasterTypes に関する情報を取得し、Python ベースのラスター タイプを ArcGIS に含まれる他のラスター タイプと同様に扱います。 ArcGIS フレームワークは Builder API と Crawler API を使用して Python ベースのラスター タイプと相互作用します。
Python を使用してラスター タイプを実装したら、Python モジュールを [InstallDirectory]\Resources\Raster\Types フォルダーに入れます。
ArcGIS のラスター タイプ フレームワークは、この場所のすべての *.py ファイルを取得し、このファイルに有効なラスター タイプが含まれているかを確認します。 有効なラスター タイプが見つかったら、モザイク データセットにラスターを追加 ツールでサポートされるラスター タイプのリストに追加されます。
Python モジュールでラスター タイプを実装する方法については、「Python ラスター タイプの詳細」をご参照ください。