1.9 ビットマップ・マスク

ビットマップ・マスクは深度が1ビットの特別な矩形ラスター・グリッドで、各ピクセルの値は0または1のいずれかです。これは、別のイメージ内にある変則的な形をした領域を定義するために使用します。1ビットは領域の内部を定義し、0ビットは領域の外部を定義します。

ビットマップ・マスクは、空白ではないGeoRasterオブジェクトにアタッチしたり、空白ではないGeoRasterオブジェクトから削除できます。空白ではないGeoRasterオブジェクトの各バンドまたは各レイヤーでも、それぞれに関連付けられた個別のビットマップ・マスクを持つことができます。したがって、空白ではないGeoRasterオブジェクトに関連付けられたビットマップ・マスクは、最大でn+1個存在します(この場合のnは、GeoRasterオブジェクトのサブレイヤーの合計数です)。ビットマップ・マスクは、個別に編集または更新できます。

ビットマップ・マスクがオブジェクト・レイヤーに関連付けられている場合は、そのビットマップ・マスクがすべてのサブレイヤーのデフォルトのビットマップ・マスクになります。サブレイヤーに関連付けられたビットマップ・マスクは、オブジェクト・レイヤーに関連付けられたデフォルトのビットマップ・マスクをオーバーライドします。

ラスター・レイヤーにアタッチされたビットマップ・マスクは、イメージ内の他のラスター・レイヤーと同じ行および列の番号を持つ必要があり、また、正確に同じ領域を覆っている必要があります。このようなビットマップ・マスクでは、GeoRasterオブジェクト自体のULTCoordinateおよびSRSと同じULTCoordinateおよびSRSを使用します。論理的には、これはラスター・イメージ自体の必須情報ではなく補足情報ですが、物理的には、GeoRasterオブジェクト内に格納されます。

ビットマップ・マスクの物理記憶域は、GeoRasterオブジェクトのラスター・データの物理記憶域と似ています。ビットマップ・マスクは、関連付けられたGeoRasterオブジェクトのラスター・データ表に、同じブロック属性を使用して格納されます。ただし、ビットマップ・マスク・エントリのbandBlockNumberは常に、ビットマップ・マスクが関連付けられているレイヤー番号に設定されます。バンドとレイヤーの間の関係の詳細は、「バンド、レイヤーおよびメタデータ」を参照してください。

pyramidLevel値は、0ではなく-99999の値から開始され、ピラミッド・レベルが1つ上がるごとに1ずつ増えます。ピラミッドは、通常のラスター・データのピラミッドとともにビットマップ・マスク上に作成され、ビットマップ・マスクは、SDO_GEOR.scaleCopyプロシージャを使用して、関連付けられたGeoRasterオブジェクトとともにスケール変更できますが、ビットマップ・マスクに使用するリサンプリング・メソッドは常にNN (Nearest Neighbor)となります。ビットマップ・マスクは、関連付けられたGeoRasterオブジェクトが圧縮または解凍されると圧縮または解凍され、また、ビットマップ・マスクは常にDEFLATEメソッド(可逆圧縮)で圧縮されます。ビットマップ・マスクはスパースとなる場合があり、その場合は空のブロックが格納され、欠落しているセルの値は0 (ゼロ)を示します。

アプリケーションでは、通常、ビットマップ・マスクを次のいずれか、または両方の方法で使用します。

  • 透過マスクとして使用すると、ビットマップ・マスクは、表示アプリケーションによってイメージの表示部分を決定するために使用されます。たとえば、ビットマップ・マスクの1ビットに対応するメイン・イメージ・ピクセルは画面またはプリンタに出力されますが、ビットマップ・マスクの0ビットに対応するメイン・イメージ・ピクセルは表示および印刷されません。また、イメージのアルファ・チャネルとして使用できるため、0および1の値は様々な透明度値にマップされ表示されます。

  • GISアプリケーションでNODATAマスクとして使用すると、ビットマップ・マスクは、マスクの外部(0ビット)に対応するピクセルをNODATAとして処理することをGISアプリケーションに認識させることができます。そのために、ビットマップ・マスクを特別なタイプのNODATAとしてGeoRasterメタデータに登録できます(「NODATA値および値の範囲」を参照)。

PL/SQLサブプログラムには、ビットマップ・マスクに対する操作を実行するものがあります。操作には、ビットマップ・マスクのGeoRasterオブジェクトへのアタッチ、既存のビットマップ・マスクの置換、ビットマップ・マスクの削除、GeoRasterオブジェクトが特定のビットマップ・マスクを持つかどうかのチェック、ビットマップ・マスク全体、ビットマップ・マスクのサブセットまたはビットマップ・マスクの単一のセル値の抽出などがあります。SDO_GEOR.maskプロシージャを使用して、データベース内でマスキング操作を適用することもできます。イメージ・マスキングの詳細は、「イメージ・マスキング」を参照してください。