7.1 SDO_GEOR.addNODATA

形式

SDO_GEOR.addNODATA(
     georaster    IN OUT SDO_GEORASTER, 
     layerNumber  IN NUMBER, 
     nodata       IN NUMBER); 

または

SDO_GEOR.addNODATA(
     georaster    IN OUT SDO_GEORASTER, 
     layerNumber  IN NUMBER, 
     nodata       IN SDO_RANGE_ARRAY);

説明

GeoRasterオブジェクト内の1つのレイヤーまたはすべてのレイヤーに含まれるNODATAセルを表すために、NODATA値またはその値の範囲を1つ以上追加します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

GeoRasterオブジェクト内のレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

nodata

単一の数値か、数字または数字の範囲の配列を1つ指定します。NODATA値の範囲には下限が含まれ、上限は含まれません。

SDO_RANGE_ARRAY型の詳細は、「NODATA値および値の範囲」を参照してください

使用上のノート

GeoRasterオブジェクトの一部のセルでは、有効な値が割り当てられていないか、または収集されていない場合があります。このようなNODATA値を含むセルは、NODATAセルと呼ばれ、それらのセルが有効に定義されていないことを意味します。NODATAセルとして識別されたセルの意味または重要度の定義は、アプリケーションが行います。NODATA値および値の範囲の詳細は、「NODATA値および値の範囲」を参照してください。

オブジェクト・レイヤーに関連付けられたNODATA値またはその値の範囲は、すべてのサブレイヤーに適用されます。レイヤー、オブジェクト・レイヤーおよびサブレイヤーの詳細は、「バンド、レイヤーおよびメタデータ」を参照してください。

NODATA値は、有効なセル値の範囲内にあることが必要です。NODATA値の範囲の下限および上限は両方とも、セル深度で指定された有効なセル値である必要があります。NODATA値の範囲の上限は範囲に含まれないため、セルの有効最大値をNODATAとして指定する場合は、セルの有効最大値を単一数値のNODATA値として指定する必要があります。

このプロシージャは、NODATA値または値範囲をラスター・レイヤーに付加的に関連付けます。重複する値または値の範囲を削除して隣接する値または値の範囲を結合できる場合は、削除と結合が行われメタデータ内の表現が簡潔になります。ただし、単一の数値のNODATA値がNODATA値範囲の上限と等しい場合、単一の値は値範囲と結合されません(これは、新しい排他的な上限を常に計算可能とは限らないためです)。

1つ以上のNODATA値またはその値の範囲を削除するには、SDO_GEOR.deleteNODATAプロシージャを使用します。GeoRasterオブジェクトのNODATA値を戻すには、SDO_GEOR.getNODATAファンクションを使用します。

次の例では、セル値が5以上7未満または9のセルを、指定したGeoRasterオブジェクトのオブジェクト・レイヤー(およびすべてのサブレイヤー)のNODATAセルとみなすように指定します。

DECLARE
  gr sdo_georaster;
BEGIN
  SELECT georaster INTO gr FROM georaster_table WHERE georid=1 FOR UPDATE;
  SDO_GEOR.addNODATA(gr, 0, sdo_range_array(sdo_range(5,7), sdo_range(9,null)));
  UPDATE georaster_table SET georaster=gr WHERE georid=1;
  COMMIT;
END;
/