7 SDO_GEORパッケージのリファレンス
SDO_GEORパッケージには、GeoRasterオブジェクトに関する情報の作成、変更および取得を行うサブプログラム(ファンクションおよびプロシージャ)が含まれています。この章では、そのサブプログラムのリファレンス情報を、例を使用して説明します。
この章では、サブプログラムをアルファベット順に記載しています。これらは、いくつかの論理カテゴリに分類できます(「GeoRaster PL/SQL API」を参照)。多数のサブプログラムについては、「GeoRasterのデータベース作成および管理」および「GeoRasterのデータ問合せおよび操作」も参照してください。
この章の複数の例では、GEORASTER_TABLEという名前の表を参照します。この表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。
すべてのSDO_GEORサブプログラムは、現行の接続スキーマ以外のスキーマに定義されているGeoRasterオブジェクトに対して機能できます。
トピック:
- SDO_GEOR.addNODATA
- SDO_GEOR.addSourceInfo
- SDO_GEOR.affineTransform
- SDO_GEOR.calcCompressionRatio
- SDO_GEOR.changeCellValue
- SDO_GEOR.changeCellValues
- SDO_GEOR.changeFormatCopy
- SDO_GEOR.compressJP2
- SDO_GEOR.copy
- SDO_GEOR.createBlank
- SDO_GEOR.createTemplate
- SDO_GEOR.decompressJP2
- SDO_GEOR.deleteControlPoint
- SDO_GEOR.deleteNODATA
- SDO_GEOR.deletePyramid
- SDO_GEOR.evaluateDouble
- SDO_GEOR.evaluateDoubles
- SDO_GEOR.exportTo
- SDO_GEOR.generateAreaWeightedMean
- SDO_GEOR.generateBitmapPyramid
- SDO_GEOR.generateBlockMBR
- SDO_GEOR.generatePyramid
- SDO_GEOR.generateSpatialExtent
- SDO_GEOR.generateSpatialResolutions
- SDO_GEOR.generateStatistics
- SDO_GEOR.generateStatisticsMax
- SDO_GEOR.generateStatisticsMean
- SDO_GEOR.generateStatisticsMedian
- SDO_GEOR.generateStatisticsMin
- SDO_GEOR.generateStatisticsMode
- SDO_GEOR.generateStatisticsSTD
- SDO_GEOR.georeference
- SDO_GEOR.getBandDimSize
- SDO_GEOR.getBeginDateTime
- SDO_GEOR.getBinFunction
- SDO_GEOR.getBinTable
- SDO_GEOR.getBinType
- SDO_GEOR.getBitmapMask
- SDO_GEOR.getBitmapMaskSubset
- SDO_GEOR.getBitmapMaskValue
- SDO_GEOR.getBitmapMaskValues
- SDO_GEOR.getBlankCellValue
- SDO_GEOR.getBlockingType
- SDO_GEOR.getBlockSize
- SDO_GEOR.getCellCoordinate
- SDO_GEOR.getCellDepth
- SDO_GEOR.getCellValue
- SDO_GEOR.getCellValues
- SDO_GEOR.getColorMap
- SDO_GEOR.getColorMapTable
- SDO_GEOR.getCompressionType
- SDO_GEOR.getControlPoint
- SDO_GEOR.getDefaultAlpha
- SDO_GEOR.getDefaultBlue
- SDO_GEOR.getDefaultColorLayer
- SDO_GEOR.getDefaultGreen
- SDO_GEOR.getDefaultPyramidLevel
- SDO_GEOR.getDefaultRed
- SDO_GEOR.getEndDateTime
- SDO_GEOR.getGCPGeorefMethod
- SDO_GEOR.getGCPGeorefModel
- SDO_GEOR.getGeoreferenceType
- SDO_GEOR.getGrayScale
- SDO_GEOR.getGrayScaleTable
- SDO_GEOR.getHistogram
- SDO_GEOR.getHistogramTable
- SDO_GEOR.getID
- SDO_GEOR.getInterleavingType
- SDO_GEOR.getJP2TileSize
- SDO_GEOR.getLayerDimension
- SDO_GEOR.getLayerID
- SDO_GEOR.getLayerOrdinate
- SDO_GEOR.getModelCoordinate
- SDO_GEOR.getModelCoordLocation
- SDO_GEOR.getModelSRID
- SDO_GEOR.getNODATA
- SDO_GEOR.getPyramidMaxLevel
- SDO_GEOR.getPyramidType
- SDO_GEOR.getRasterBlockLocator
- SDO_GEOR.getRasterBlocks
- SDO_GEOR.getRasterData
- SDO_GEOR.getRasterRange
- SDO_GEOR.getRasterSubset
- SDO_GEOR.getScaling
- SDO_GEOR.getSourceInfo
- SDO_GEOR.getSpatialDimNumber
- SDO_GEOR.getSpatialDimSizes
- SDO_GEOR.getSpatialResolutions
- SDO_GEOR.getSpectralResolution
- SDO_GEOR.getSpectralUnit
- SDO_GEOR.getSRS
- SDO_GEOR.getStatistics
- SDO_GEOR.getTotalLayerNumber
- SDO_GEOR.getULTCoordinate
- SDO_GEOR.getVAT
- SDO_GEOR.getVersion
- SDO_GEOR.hasBitmapMask
- SDO_GEOR.hasGrayScale
- SDO_GEOR.hasNODATAMask
- SDO_GEOR.hasPseudoColor
- SDO_GEOR.importFrom
- SDO_GEOR.init
- SDO_GEOR.isBlank
- SDO_GEOR.isOrthoRectified
- SDO_GEOR.isRectified
- SDO_GEOR.isSpatialReferenced
- SDO_GEOR.mask
- SDO_GEOR.mergeLayers
- SDO_GEOR.mosaic
- SDO_GEOR.rectify
- SDO_GEOR.reproject
- SDO_GEOR.scaleCopy
- SDO_GEOR.schemaValidate
- SDO_GEOR.setBeginDateTime
- SDO_GEOR.setBinFunction
- SDO_GEOR.setBinTable
- SDO_GEOR.setBitmapMask
- SDO_GEOR.setBlankCellValue
- SDO_GEOR.setColorMap
- SDO_GEOR.setColorMapTable
- SDO_GEOR.setControlPoint
- SDO_GEOR.setDefaultAlpha
- SDO_GEOR.setDefaultBlue
- SDO_GEOR.setDefaultColorLayer
- SDO_GEOR.setDefaultGreen
- SDO_GEOR.setDefaultPyramidLevel
- SDO_GEOR.setDefaultRed
- SDO_GEOR.setEndDateTime
- SDO_GEOR.setGCPGeorefMethod
- SDO_GEOR.setGCPGeorefModel
- SDO_GEOR.setGrayScale
- SDO_GEOR.setGrayScaleTable
- SDO_GEOR.setHistogramTable
- SDO_GEOR.setID
- SDO_GEOR.setLayerID
- SDO_GEOR.setLayerOrdinate
- SDO_GEOR.setModelCoordLocation
- SDO_GEOR.setModelSRID
- SDO_GEOR.setNODATAMask
- SDO_GEOR.setOrthoRectified
- SDO_GEOR.setRasterType
- SDO_GEOR.setRectified
- SDO_GEOR.setScaling
- SDO_GEOR.setSourceInfo
- SDO_GEOR.setSpatialReferenced
- SDO_GEOR.setSpatialResolutions
- SDO_GEOR.setSpectralResolution
- SDO_GEOR.setSpectralUnit
- SDO_GEOR.setSRS
- SDO_GEOR.setStatistics
- SDO_GEOR.setULTCoordinate
- SDO_GEOR.setVAT
- SDO_GEOR.setVersion
- SDO_GEOR.subset
- SDO_GEOR.updateRaster
- SDO_GEOR.validateBlockMBR
- SDO_GEOR.validateGeoRaster
- SDO_GEOR.warp
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; /
7.2 SDO_GEOR.addSourceInfo
形式
SDO_GEOR.addSourceInfo( georaster IN OUT SDO_GEORASTER, sourceInfo IN VARCHAR2);
説明
GeoRasterオブジェクトのソース情報を追加します。
使用上の注意
指定したsourceInfo
文字列は、GeoRasterオブジェクトのメタデータの<sourceInfo>
要素に追加されます(「GeoRasterメタデータのXMLスキーマ」を参照)。このプロシージャを必要な回数コールして、<sourceInfo>
要素に複数の文字列値を指定したり、既存の任意の値に文字列値を追加することができます。
既存のソース情報の値を置き換える場合は、SDO_GEOR.setSourceInfoプロシージャを使用します。
例
次の例では、指定したGeoRasterオブジェクトに複数のソース情報を設定および追加し、その後でソース情報を取得します。
declare gr sdo_georaster; begin select georaster into gr from georaster_table where georid=1 for update; sdo_geor.setSourceInfo(gr, 'Copyright (c) 2002, 2007, Oracle Corporation.'); sdo_geor.addSourceInfo(gr, 'All rights reserved.'); update georaster_table set georaster=gr where georid=1; end; / select * from table(select sdo_geor.getSourceInfo(georaster) from georaster_table where id=1); COLUMN_VALUE -------------------------------------------------------------------------------- Copyright (c) 2002, 2007, Oracle Corporation. All rights reserved.
7.3 SDO_GEOR.affineTransform
形式
SDO_GEOR.affineTransform( inGeoRaster IN SDO_GEORASTER, translation IN SDO_NUMBER_ARRAY DEFAULT NULL, scales IN SDO_NUMBER_ARRAY DEFAULT NULL, rotatePt IN SDO_NUMBER_ARRAY DEFAULT NULL, rotateAngle IN NUMBER DEFAULT NULL, shear IN SDO_NUMBER_ARRAY DEFAULT NULL, reflection IN NUMBER DEFAULT NULL, storageParam IN VARCHAR2 DEFAULT NULL, outGeoRaster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, parallelParam IN VARCHAR2 DEFAULT NULL);
または
inGeoRaster IN SDO_GEORASTER, translation IN SDO_NUMBER_ARRAY DEFAULT NULL, scales IN SDO_NUMBER_ARRAY DEFAULT NULL, rotatePt IN SDO_NUMBER_ARRAY DEFAULT NULL, rotateAngle IN NUMBER DEFAULT NULL, shear IN SDO_NUMBER_ARRAY DEFAULT NULL, reflection IN NUMBER DEFAULT NULL, storageParam IN VARCHAR DEFAULT2 DEFAULT NULL, rasterBlob IN OUT NOCOPY_BLOB, outArea OUT SDO_GEOMTRY, outWindow OUT SDO_NUMBER_ARRAY, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, parallelParam IN VARCHAR2 DEFAULT NULL);
説明
入力GeoRasterイメージのアファイン変換を実行して、パラメータtranslation
、scales
、rotatePt
、rotateAngle
、shear
およびreflection
の値に基づいて出力GeoRasterイメージを生成します。
パラメータ
- inGeoRaster
-
操作を実行するGeoRasterオブジェクトを指定します。地理参照する必要がありません。(地理参照については、「GeoRasterオブジェクトの地理参照」および「高度な地理参照」を参照してください。)
- translation
-
指定する場合、平行移動変換に適用する行および列の数を使用して2つの整数値を含める必要があります。行および列の平行移動の値は相互に独立しています。ただし、正の値はイメージを右側および下側に平行移動し、負の値はイメージを左側および上側に平行移動します。このパラメータを省略すると、平行移動は実行されません。
- scales
-
指定する場合、スケール変換に適用する行および列に適用するスケール係数を使用して2つの数値を含める必要があります。行および列のスケール変更の値は、相互に独立しています。ただし、0と1の間の値は行または列あるいはその両方のイメージのサイズを縮小します。1を超える値は行または列あるいはその両方のイメージのサイズを拡大します。このパラメータを省略すると、スケール変更は実行されません。
- rotatePt
-
指定する場合、回転操作の中心として使用するセル空間座標(行および列)を表す2つの数値を含める必要があります。つまり、rotatePtに関連付けられているイメージの特徴は新しい出力イメージの中心になります。このパラメータを省略すると、イメージの中心が仮定されます。
- rotateAngle
-
指定する場合、回転変換に適用される角度を識別する-180から180の間の数値を含める必要があります。正の値は右側に回転し、負の値は左側に回転します。詳細は、「使用上の注意」を参照してください。このパラメータを省略すると、回転は実行されません。
- shear
-
指定する場合、変形変換のx座標およびy座標に適用する変形係数の2つの数値を含める必要があります。行および列の変形の値は、相互に独立しています。このパラメータを省略すると、変形は実行されません。
- reflection
-
指定する場合、垂直反射または水平反射を表す数値1または2を含める必要があります。このパラメータを省略すると、反射は実行されません。
- storageParam
-
記憶域パラメータを示す文字列を指定します(「記憶域パラメータ」を参照)。
- outGeoRaster
-
操作の結果を格納するGeoRasterオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、「空白のGeoRasterオブジェクトと空のGeoRasterオブジェクト」を参照してください)。
inGeoRaster
と同じGeoRasterオブジェクトは指定できません。 - rasterBlob
-
幾何補正を反映した出力を保持するBLOBを指定します。処理の前に、存在しているか、または初期化されている必要があります。
- outArea
-
結果のオブジェクトのモデル座標系の最小境界矩形(MBR)を含むSDO_GEOMETRYオブジェクトを指定します。
- outWindow
-
セル空間内で出力ウィンドウの左上角および右下角の座標を指定するSDO_NUMBER_ARRAYオブジェクトを指定します。
- bgValues
-
部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(「空のラスター・ブロック」を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、
SDO_NUMBER_ARRAY(1,5,10)
では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValues
は0 (ゼロ)です。入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。
- parallelParam
-
操作の並列度を指定します。指定する場合、
parallel=
nという形式である必要があります(nは1より大きい)。データベース・オプティマイザでは、このパラメータによって指定された並列度を使用します。指定しない場合、デフォルトでパラレル処理は行われません。(詳細は、「GeoRasterでのパラレル処理」を参照してください。)並列性が指定されている場合、プロシージャによって内部コミット操作が実行されます。エラーが発生した場合(Oracle Parallel Serverが原因である場合でも)、操作をロールバックするために、出力結果のGeoRasterオブジェクトを明示的に削除する必要があります。
使用上の注意
このプロシージャには2つの構文があります。
-
最初の構文では、データベースへの永続的な格納のためにGeoRasterオブジェクトが生成されます。
-
2番目の構文では、一時的な格納または即座の使用(画面へのデータの表示など)のためにBLOBが生成されます。
このプロシージャは、指定された単純なアファイン変換操作を個別または組合せで実行します。
すべての使用可能な操作および操作の組合せについて、このプロシージャは、格納されたイメージの物理表現を変換し、イメージの特徴の元の場所を保持する新しい地理参照情報を作成します。したがって、視覚化ツールで投影されると、イメージが同じように表示されます。
例
次の例では、ソース・イメージを-90度(左側に90度)回転する出力GeoRasterオブジェクトが生成されます。
DECLARE gr1 sdo_georaster; gr2 sdo_georaster; BEGIN select georaster into gr1 from georaster_table where georid = 1; insert into georaster_table values(2, 'Rotated 90 left', sdo_geor.init('rdt0',2)) returning georaster into gr2; sdo_geor.affineTransform(inGeoRaster => gr1, translation => null, scales => null, rotatePt => null, rotateAngle => -90, shear => null, reflection => null, storageParam => 'pyramid=true', outGeoraster => gr2); update georaster_table set georaster = gr2 where georid = 2; commit; END;
次の例では、ソース・イメージを右側に15度回転して2倍大きく拡大する出力GeoRasterオブジェクトが生成されます。
DECLARE gr1 sdo_georaster; gr3 sdo_georaster; BEGIN select georaster into gr2 from georaster_table where georid = 1; insert into georaster_table values(3, 'Scaled x 2 Rotated 15', sdo_geor.init('rdt0',3)) returning georaster into gr3; sdo_geor.affineTransform(inGeoRaster => gr1, translation => null, scales => sdo_number_array(2,2), rotatePt => null, rotateAngle => 15, shear => null, reflection => null, storageParam => 'blocksize=(512,512,3)', outGeoraster => gr3, parallelParam => 'parallel=4'); update georaster_table set georaster = gr3 where georid = 3; commit; END;
次の例では、行および列の両方で5の係数を使用してソース・イメージを変形する出力GeoRasterオブジェクトが生成されます。
DECLARE gr1 sdo_georaster; gr4 sdo_georaster; BEGIN select georaster into gr2 from georaster_table where georid = 1; insert into georaster_table values(4, 'Shear 5,5', sdo_geor.init('rdt0',4)) returning georaster into gr4; sdo_geor.affineTransform(inGeoRaster => gr1, translation => null, scales => null, rotatePt => null, rotateAngle => null, shear => sdo_number_array(5,5), reflection => null, storageParam => 'pyramid=true', outGeoraster => gr4, parallelParam => 'parallel=4'); update georaster_table set georaster = gr4 where georid = 4; commit; END;
次の例では、ソース・イメージを垂直反射する出力GeoRasterオブジェクトが生成されます。
DECLARE gr1 sdo_georaster; gr5 sdo_georaster; BEGIN select georaster into gr2 from georaster_table where georid = 1; insert into georaster_table values(5, 'Vertical reflection', sdo_geor.init('rdt0',5)) returning georaster into gr5; sdo_geor.affineTransform(inGeoRaster => gr1, translation => null, scales => null, rotatePt => null, rotateAngle => null, shear => null, reflection => 1, storageParam => 'pyramid=true', outGeoraster => gr5, parallelParam => 'parallel=4'); update georaster_table set georaster = gr5 where georid = 5; commit; END;
7.4 SDO_GEOR.calcCompressionRatio
形式
SDO_GEOR.calcCompressionRatio( georaster IN SDO_GEORASTER ) RETURN NUMBER;
説明
指定されたGeoRasterオブジェクトの圧縮率を戻します。
使用上の注意
圧縮率は、圧縮されていないGeoRasterオブジェクト内の(ピラミッドを含めた)すべてのラスター・ブロックの合計サイズを、このオブジェクトの圧縮形式の合計サイズで除算したものです。入力されたGeoRasterオブジェクトが圧縮されていない場合は、圧縮率は1(つまり1:1)になります。
ある(元の)GeoRasterオブジェクトに対して、圧縮率が大きくなると、圧縮されたGeoRasterオブジェクトは小さくなります。たとえば、圧縮率が20(つまり20:1)の場合、データは元のサイズの5%に圧縮されています。
GeoRaster圧縮の詳細は、「圧縮と解凍」を参照してください。
例
次の例では、GEORASTER_TABLE表のGEORASTER列内のGeoRasterオブジェクトについて圧縮タイプと圧縮率を戻します。ここでGEORID列の値は1とします。
SELECT sdo_geor.getCompressionType(georaster) compType, sdo_geor.calcCompressionRatio(georaster) compRatio FROM georaster_table WHERE georid=1;
7.5 SDO_GEOR.changeCellValue
形式
SDO_GEOR.changeCellValue( georaster IN OUT SDO_GEORASTER, window IN SDO_NUMBER_ARRAY, bandNumbers IN VARCHAR2, newCellValue IN NUMBER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR.changeCellValue( georaster IN OUT SDO_GEORASTER, window IN SDO_GEOMETRY, layerNumbers IN VARCHAR2, newCellValue IN NUMBER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
説明
GeoRasterオブジェクトの指定されたウィンドウで、ラスター・セルの値を1つの新しい値に変更します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- window
-
すべてのセルの値を
newCellValue
に変更するウィンドウを指定します。データ型はSDO_NUMBER_ARRAYまたはSDO_GEOMETRYのいずれかです。データ型がSDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合は、SDO_SRID要件の「使用上の注意」およびその他の情報を参照してください。 - bandNumbers
-
処理を実行する物理バンド番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、
1-3
はバンド1、2および3を示します)。 - layerNumbers
-
処理を実行する論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、
2-4
はレイヤー2、3および4を示します)。 - newCellValue
-
指定したバンドまたはレイヤーのウィンドウ内の各セルに対する新しいセル値を指定します。値は、GeoRasterオブジェクトの
cellDepth
値で指定された範囲内である必要があります。 - bgValues
-
部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(「空のラスター・ブロック」を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、
SDO_NUMBER_ARRAY(1,5,10)
では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValues
は0 (ゼロ)です。入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。
使用上の注意
このプロシージャは、入力されたGeoRasterオブジェクトのデータを上書きするため、元のGeoRasterオブジェクトをコピーし、そのコピーしたオブジェクトに対してこのプロシージャを使用してください。このプロシージャの結果を確認してから、必要に応じて元のGeoRasterオブジェクトを廃棄します。
このプロシージャは、イメージの一部をマスクする(隠す)ために使用できます。たとえば、イメージの必要な部分のみを強調するために、事前に関係ない部分をめだたない色に変更しておくことができます。
window
パラメータのデータ型がSDO_GEOMETRYの場合、SDO_SRID値は次のいずれかの値である必要があります。
-
NULL(ラスター空間を指定)
-
MDSYS.CS_SRS表のSRID列の値
window
パラメータ・ジオメトリとモデル空間のSDO_SRID値が異なる場合は、処理が実行される前に、window
パラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、「GeoRasterデータ・モデル」を参照してください。)
window
パラメータで矩形以外のSDO_GEOMETRYオブジェクトを指定すると、このファンクションによってジオメトリのMBRが計算され、そのMBR内のセルが(MBRの境界上のセルも含め)更新されます。
window
パラメータで測地MBRを指定する場合、日付変更線をまたぐMBRは指定できません。測地MBRについては、『Oracle Spatial and Graph開発者ガイド』を参照してください。
georaster
が空白のGeoRasterオブジェクトで、領域全体が更新される場合、blankCellValue
値がnewCellValue
に設定された空白のGeoRasterオブジェクトが戻されます。
georaster
が空白のGeoRasterオブジェクトで、部分的にのみ更新される場合、元のblankCellValue
値およびnewCellValue
値がwindow
パラメータおよびbandNumbers
またはlayerNumbers
パラメータに従って設定された、空白ではないGeoRasterオブジェクトが戻されます。
georaster
が空白のGeoRasterオブジェクトでない場合、すべてのセルがnewCellValue
値に設定される場合でも、空白ではないGeoRasterオブジェクトが戻されます。
georaster
がNULLの場合、このプロシージャは処理を実行しません。georaster
が無効な場合、例外が発生します。
GeoRasterオブジェクトでピラミッドが定義されている場合、ピラミッドの対応するセル値が更新されます。
GeoRasterオブジェクトの任意の位置にある単一のセルの値を戻すには、SDO_GEOR.getCellValueファンクションを使用します。
例
次の例では、バンド番号1の指定されたウィンドウ内のすべてのセルの値を151に変更します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE gr sdo_georaster; BEGIN SELECT georaster INTO gr FROM georaster_table WHERE georid=110 FOR UPDATE; sdo_geor.changeCellValue(gr, sdo_number_array(100,67,134,113), '1', 151); UPDATE georaster_table SET georaster=gr WHERE georid=110; COMMIT; END; /
7.6 SDO_GEOR.changeCellValues
形式
SDO_GEOR.changeCellValues( georaster IN OUT SDO_GEORASTER, rowNumbers IN SDO_NUMBER_ARRAY, colNumbers IN SDO_NUMBER_ARRAY, bandNumber IN NUMBER, newCellValues IN SDO_NUMBER_ARRAY, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR.changeCellValues( georaster IN OUT SDO_GEORASTER, ptGeom IN SDO_GEOMETRY, layerNumber IN NUMBER, newCellValues IN SDO_NUMBER_ARRAY, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
説明
行/列配列または複数点のジオメトリで指定されたラスター・セルの値を新しい値に変更します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- rowNumbers
-
値を変更するセルを含む行の番号を指定します。
- colNumbers
-
値を変更するセルを含む列の番号を指定します。
- bandNumber
-
値を変更するセルを含む物理バンドの番号を指定します。
- ptGeom
-
値を変更するセルを識別する複数点のジオメトリ。
- layerNumber
-
値を変更するセルを含む論理レイヤーの番号を指定します。(「バンド、レイヤーおよびメタデータ」で説明したように、論理レイヤー番号は、物理バンドの番号に1を足した値です。)
- newCellValues
-
指定したバンドまたはレイヤーのウィンドウ内の各セルに対する新しいセル値を指定します。値は、GeoRasterオブジェクトの
cellDepth
値で指定された範囲内である必要があります。 - bgValues
-
部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(「空のラスター・ブロック」を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、
SDO_NUMBER_ARRAY(1,5,10)
では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValues
は0 (ゼロ)です。入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。
使用上の注意
このプロシージャは、入力されたGeoRasterオブジェクトのデータを上書きするため、元のGeoRasterオブジェクトをコピーし、そのコピーしたオブジェクトに対してこのプロシージャを使用してください。このプロシージャの結果を確認してから、必要に応じて元のGeoRasterオブジェクトを廃棄します。
このプロシージャは、イメージの一部をマスクする(隠す)ために使用できます。たとえば、イメージの必要な部分のみを強調するために、事前に関係ない部分をめだたない色に変更しておくことができます。
ptGeom
SDO_GEOMETRYオブジェクトで、SDO_SRID値には次のいずれかを指定する必要があります。
-
NULL(ラスター空間を指定)
-
MDSYS.CS_SRS表のSRID列の値
ptGeom
パラメータ・ジオメトリとモデル空間のSDO_SRID値が異なる場合は、処理が実行される前に、ptGeom
パラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、「GeoRasterデータ・モデル」を参照してください。)
georaster
がNULLの場合、このプロシージャは処理を実行しません。georaster
が無効な場合、例外が発生します。
GeoRasterオブジェクトでピラミッドが定義されている場合、ピラミッドの対応するセル値が更新されます。
GeoRasterオブジェクトの任意の位置にあるセルの値を戻すには、SDO_GEOR.getCellValuesファンクションを使用します。
例
次の例では、バンド番号1の2つのセルの値を151および152に変更します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE
gr sdo_georaster;
BEGIN
SELECT georaster INTO gr FROM georaster_table WHERE georid=110 FOR UPDATE;
sdo_geor.changeCellValues(gr, sdo_number_array(100,67),sdo_number_array(134,113), 1,
sdo_number_array(151,152));
UPDATE georaster_table SET georaster=gr WHERE georid=110;
COMMIT;
END;
/
7.7 SDO_GEOR.changeFormatCopy
形式
SDO_GEOR.changeFormatCopy( inGeoRaster IN SDO_GEORASTER, storageParam IN VARCHAR2, outGeoRaster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR.changeFormatCopy( inGeoRaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, storageParam IN VARCHAR2, outGeoRaster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
説明
(たとえば、ブロック、セル深度またはインターリーブを変更した)別の記憶域形式を使用して、既存のGeoRasterオブジェクトのコピーを作成します。
パラメータ
- inGeoRaster
-
形式をコピーするSDO_GEORASTERオブジェクトを指定します。
- pyramidLevel
-
ソースGeoRasterオブジェクトのピラミッド・レベルを示す番号を指定します。
- storageParam
-
記憶域パラメータを示す文字列を指定します(「記憶域パラメータ」を参照)。
- outGeoRaster
-
コピーを格納するSDO_GEORASTERオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、「空白のGeoRasterオブジェクトと空のGeoRasterオブジェクト」を参照してください)。
inGeoRaster
と同じGeoRasterオブジェクトは指定できません。 - bgValues
-
部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(「空のラスター・ブロック」を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、
SDO_NUMBER_ARRAY(1,5,10)
では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValues
は0 (ゼロ)です。入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。
使用上の注意
このプロシージャは、元のGeoRasterオブジェクトまたは元のGeoRasterオブジェクトに指定したピラミッド・レベルに基づき、指定した変更が反映された新しいGeoRasterオブジェクトを作成します。このプロシージャを使用した後、希望どおり変更されているかをコピーで確認し、必要に応じて元のGeoRasterオブジェクトを破棄します。
pyramidLevel
パラメータを含まない構文を使用すると、元のGeoRasterオブジェクト(pyramidLevel=0)を基にコピーが作成されます。
元のGeoRasterオブジェクトのピラミッド(pyramidLevel
> 0)からコピーが作成されており、元のGeoRasterオブジェクトが地理参照されている場合、変換後のGeoRasterオブジェクトに地理参照情報が生成されるのは、有効な多項式変換で地理参照されている場合のみです。変換後のオブジェクトの行および列のultCoordinatesは(0,0)に設定されます。
GeoRasterオブジェクトを圧縮または解凍するには、storageParam
パラメータでcompression
キーワードを使用します。(GeoRasterオブジェクトを圧縮または解凍するための個別のGeoRasterファンクションまたはプロシージャはありません。)
inGeoRaster
がNULLの場合、このプロシージャは処理を実行しません。
storageParam
がNULLの場合、inGeoRaster
はoutGeoRaster
にコピーされます。
outGeoRaster
がラスター・データを持つ場合、コピー処理の前に削除されます。
inGeoRaster
とoutGeoRaster
には異なるGeoRasterオブジェクトを指定する必要があります。
inGeoRaster
にピラミッド・データが存在する場合、上位レベルのピラミッド・データがoutGeoRaster
にコピーされます。ただし、storageParam
文字列にpyramid=FALSE
が含まれる場合は除きます。
次の1つ以上の条件に該当する場合、例外が発生します。
-
inGeoRaster
が無効である。 -
outGeoRaster
が初期化されていない。 -
outGeoRaster
に対するラスター・データ表が存在せず、outGeoRaster
が空白のGeoRasterオブジェクトではない。
例
次の例では、両方の次元のブロック・サイズを2048に設定すること以外は、入力オブジェクトと同じGeoRasterオブジェクトを作成します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE gr1 sdo_georaster; gr2 sdo_georaster; BEGIN SELECT georaster INTO gr2 from georaster_table WHERE georid=11 FOR UPDATE; SELECT georaster INTO gr1 from georaster_table WHERE georid=1; sdo_geor.changeFormatCopy(gr1, 'blocksize=(2048,2048)', gr2); UPDATE georaster_table SET georaster=gr2 WHERE georid=11; COMMIT; END; /
次の例では、入力オブジェクトと同じGeoRasterオブジェクトを作成します。ただし、ラスター・データがDEFLATE形式に圧縮され、圧縮プロセスがパラレルに実行されます。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE gr1 sdo_georaster; gr2 sdo_georaster; BEGIN SELECT georaster INTO gr2 from georaster_table WHERE georid=11 FOR UPDATE; SELECT georaster INTO gr1 from georaster_table WHERE georid=1; sdo_geor.changeFormatCopy(gr1, 'compression=deflate parallel=4', gr2); UPDATE georaster_table SET georaster=gr2 WHERE georid=11; COMMIT; END; /
7.8 SDO_GEOR.compressJP2
形式
SDO_GEOR.compressJP2( inGeoRaster IN SDO_GEORASTER, compressParam IN VARCHAR2, outGeoRaster IN OUT SDO_GEORASTER);
説明
JPEG 2000圧縮を使用して、GeoRasterオブジェクトのイメージを圧縮します。
パラメータ
- inGeoRaster
-
データを圧縮するSDO_GEORASTERオブジェクト。
- compressParam
-
圧縮パラメータの1つ以上のキーワードを指定する文字列。使用可能なキーワードの説明は、「使用上の注意」の表を参照してください。
- outGeoRaster
-
圧縮の結果を格納するSDO_GEORASTERオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、「空白のGeoRasterオブジェクトと空のGeoRasterオブジェクト」を参照してください)。
inGeoRaster
と同じGeoRasterオブジェクトは指定できません。
使用上の注意
出力を圧縮したイメージはJPEG 2000(JP2)ファイル形式で、outGeoRaster
オブジェクトのラスター・ブロックに格納されます。ピラミッドが圧縮の一部としてJP2ファイルに格納されているため、ピラミッド・ラスター・ブロックはラスター・データ表に格納されません。
rlevel
キーワード(compressParam
内)で指定されていない場合、ピラミッド・レベルの最大値はfloor(log2(tsize))
として計算されます。tsize
は、行および列のtilesize
パラメータの最小値です。tiling
パラメータ値がfalse
の場合、tsize
はイメージの高さおよび幅の最小値です。
ratio
およびpsnr
を指定しない場合、圧縮は可逆です
このプロシージャは、8ビットおよび16ビットのソースGeoRasterオブジェクトをサポートします。許可されるタイルの最大数は65535です。
次の表に、JPEG 2000(JP2)圧縮の使用可能なcompressParam
キーワードを示します。
表7-1 JPEG 2000(JP2)圧縮のcompressParamキーワード
キーワード | 説明 |
---|---|
コード・ブロック行および列サイズを指定します。 |
|
個別のウェーブレット変換を指定します。 |
|
複数のコンポーネント変換を使用するかどうかを指定します。デフォルトでは、3つのバンド以上が存在する場合はRGB->YCC変換を使用します。 |
|
precinctサイズを指定します。 |
|
プログレッション順序( |
|
ピークの信号対雑音比(PSNR)を指定します。p1, p2, p3, ...は、JP2コード・ストリームのレイヤー1、2、3...の圧縮PSNRです。昇順で指定する必要があります。たとえば、psnr=(30, 40, 50)などです。デフォルトでは、圧縮は可逆です。このパラメータは |
|
圧縮率を指定します。p1, p2, p3, ...は、JP2コード・ストリームのレイヤー1、2、3...の圧縮率です。降順で指定する必要があります。たとえば、ratio=(30, 20, 10)などです。デフォルトでは、圧縮は可逆です。このパラメータは |
|
ウェーブレット変換の分解数(イメージのピラミッド数)を指定します。デフォルトでは、分解のレベルはfloor(log2(tileSize))です。 |
|
|
|
JPEG2000圧縮のタイル処理を使用するかどうかを指定します。デフォルトでは、タイル処理は |
注意:
GeoRasterのサブプログラムに対する文字列(VARCHAR2)パラメータの中に数値がある場合は、ロケールにかかわらず、小数点にはピリオド(.)を使用する必要があります。
例
次の例では、元のオブジェクトからJPEG 2000圧縮したGeoRasterオブジェクトを作成します。JP2ファイルの内部タイル・サイズは512x512です。JP2レイヤー1、2および3の圧縮率値はそれぞれ30、20および10です。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE gr1 sdo_georaster; gr2 sdo_georaster; BEGIN INSERT INTO georaster_table (georid, georaster) VALUES (4, sdo_geor.init('RDT_1')) RETURNING georaster INTO gr2; SELECT georaster INTO gr1 FROM georaster_table WHERE georid=1; sdo_geor.compressJP2(gr1,’tilesize=(512, 512), ratio=(30, 20, 10)’, gr2); UPDATE georaster_table SET georaster=gr2 WHERE georid=4; COMMIT; END; /
7.9 SDO_GEOR.copy
形式
SDO_GEOR.copy( inGeoRaster IN SDO_GEORASTER, outGeoRaster IN OUT SDO_GEORASTER);
説明
既存のGeoRasterオブジェクトのコピーを作成します。
パラメータ
- inGeoRaster
-
コピーするGeoRasterオブジェクトを指定します。
- outGeoRaster
-
コピー操作の結果を格納するGeoRasterオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、「空白のGeoRasterオブジェクトと空のGeoRasterオブジェクト」を参照してください)。
inGeoRaster
と同じGeoRasterオブジェクトは指定できません。
使用上の注意
outGeoRaster
オブジェクトは、inGeoRaster
オブジェクトの正確なコピーになります。コピー操作中、出力されるGeoRasterオブジェクトを変更するには、SDO_GEOR.changeFormatCopyプロシージャを使用します。
inGeoRaster
がNULLの場合、このプロシージャは処理を実行しません。
outGeoRaster
がラスター・データを持つ場合、コピー処理の前に削除されます。
inGeoRaster
とoutGeoRaster
には異なるGeoRasterオブジェクトを指定する必要があります。
inGeoRaster
にピラミッド・データが存在する場合、ピラミッド・データはoutGeoRaster
にコピーされます。
次の1つ以上の条件に該当する場合、例外が発生します。
-
inGeoRaster
が無効である。 -
outGeoRaster
が初期化されていない。 -
outGeoRaster
に対するラスター・データ表が存在せず、outGeoRaster
が空白のGeoRasterオブジェクトではない。
例
次の例では、初期化されたGeoRasterオブジェクト(gr2
)をGEORASTER_TABLE表のGEORASTER列に挿入し、gr2
を別のGeoRasterオブジェクト(gr1
)の正確なコピーにして、GEORASTER列の値にgr2
を指定して挿入された行を更新します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE gr1 sdo_georaster; gr2 sdo_georaster; BEGIN INSERT INTO georaster_table VALUES (11, sdo_geor.init('RDT_11', 1)) RETURNING georaster INTO gr2; SELECT georaster INTO gr1 from georaster_table WHERE georid=1; sdo_geor.copy(gr1, gr2); UPDATE georaster_table SET georaster=gr2 WHERE georid=11; COMMIT; END; /
7.10 SDO_GEOR.createBlank
形式
SDO_GEOR.createBlank( rasterType IN INTEGER, ultCoord IN SDO_NUMBER_ARRAY, dimSizes IN SDO_NUMBER_ARRAY, cellValue IN NUMBER, rasterDataTable IN VARCHAR2 DEFAULT NULL, rasterID IN NUMBER DEFAULT NULL ) RETURN SDO_GEORASTER;
説明
空白のGeoRasterオブジェクトを作成します。このオブジェクトのすべてのセルには同じ値が含まれます。作成後に、オブジェクトをxxx_SDO_GEOR_SYSDATAビューに登録する必要があります(「使用上の注意」を参照)。
パラメータ
- rasterType
-
5桁のrasterType属性値を指定します(「rasterType属性」を参照)。
- ultCoord
-
GeoRasterオブジェクトの左上の座標を示す整数値の配列を指定します。デフォルト値は、バンド次元を持たないGeoRasterオブジェクトでは
(0,0)
、バンド次元を持つGeoRasterオブジェクトでは(0,0,0)
です。このパラメータがNULLの場合、デフォルト値の0が各次元に使用されます。指定した配列の値がNULLの場合、デフォルト値の0が対応する次元に使用されます。バンド次元の値は0である必要があるため、指定する必要はありません。(値の配列を指定する場合、値の数は空間次元数以上か、または次元の合計数以下である必要があります。) - dimSizes
-
各次元のセルの数を指定します。配列の値の数を次元の合計数と同じにして、各次元のサイズを明示的に指定する必要があります。行および列の次元サイズは、1より大きい値である必要があります。
- cellValue
-
作成されたGeoRasterオブジェクトのすべてのラスター・セルのセル値を指定します。作成されたGeoRasterオブジェクトのセル深度は
8BIT_UNSIGNED
であるため、値の範囲は0から255である必要があります。 - rasterDataTable
-
セル・データ・ブロックを格納するSDO_RASTER型のオブジェクト表の名前を指定します。空白、ピリオド、または大/小文字が混在する文字列を引用符で囲んだ値は使用できません(名前は、SDO_GEORASTERオブジェクトに格納される際に常に大文字に変換されます)RDTは、GeoRaster表に関連付けられるため、同じスキーマである必要があります。このパラメータを指定しない場合、GeoRasterはラスター・データ表に使用される一意の表名を生成します。このパラメータで指定した表がすでに存在しており、SDO_RASTER型のオブジェクト表ではない場合、例外が発生します。
- rasterID
-
ラスター・データ表で、このGeoRasterオブジェクトのセル・ブロックを一意に識別する番号を指定します。このパラメータを指定しない場合、ID用に一意の順序番号が生成されます。
使用上の注意
空白のGeoRasterオブジェクトを作成したら、オブジェクトに対して操作を実行する前に、空白のGeoRasterオブジェクトをGeoRaster表に挿入してオブジェクトをxxx_SDO_GEOR_SYSDATAビューに登録する必要があります。(xxx_SDO_GEOR_SYSDATAビューの詳細は、「GeoRasterシステム・データ・ビュー(xxx_SDO_GEOR_SYSDATA)」を参照してください。GeoRaster操作の詳細は、「GeoRasterのデータベース作成および管理」および「GeoRasterのデータ問合せおよび操作」を参照してください。)
作成されたGeoRasterオブジェクトは空間参照情報を持たないため、空間エクステント・ジオメトリのSRID (座標系)値はNULLです。空間エクステント・ジオメトリには、ultCoord
値およびdimSizes
値が反映されます。
このファンクションでは、指定されたラスター・データ表が存在する必要はありません。ただし、ラスター・データを表に挿入するには、表が存在している必要があります。
作成されたGeoRasterオブジェクトのセル深度は8BIT_UNSIGNED
ですが、SDO_GEOR.changeFormatCopyプロシージャをコールして空白のGeoRasterオブジェクトを作成すると、セル深度を変更できます。その後で、SDO_GEOR.setBlankCellValueプロシージャをコールして、別の範囲でセル値をリセットできます。
表に複数のGeoRasterオブジェクト列が定義されている場合、SDO_GEOR.createBlankおよびSDO_GEOR.initファンクションに適用するガイドラインについては、SDO_GEOR.initファンクションの「使用上の注意」を参照してください。
入力パラメータの値が無効な場合、例外が発生します。
例
次の例では、空白のGeoRasterオブジェクト含む行を表に挿入します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
INSERT INTO georaster_table (georid, georaster) VALUES ( 1, sdo_geor.createBlank(20001, SDO_NUMBER_ARRAY(0,0), SDO_NUMBER_ARRAY(1024,1024), 255, 'RDT_1') );
7.11 SDO_GEOR.createTemplate
形式
SDO_GEOR.createTemplate( georaster IN OUT SDO_GEORASTER, rasterType IN INTEGER, rasterSpec IN VARCHAR2, maskLayers IN VARCHAR2 DEFAULT NULL, initRDTEntry IN VARCHAR2 DEFAULT NULL);
説明
GeoRasterオブジェクトに汎用パターンのメタデータを移入します。また、オプションで、空のラスター・ブロックを含むエントリをラスター・データ表に挿入します。
パラメータ
- georaster
-
更新するGeoRasterオブジェクトを指定します。
- rasterType
-
5桁のrasterType属性値を指定します(「rasterType属性」を参照)。
- rasterSpec
-
ラスター仕様パラメータを示す文字列を指定します(「使用上の注意」を参照)。
- maskLayers
-
ビットマップ・マスクが関連付けられた論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、
2-4
はレイヤー2、3および4を示します)。 - initRDTEntry
-
文字列
TRUE
を指定すると、ラスター・データ表にデータが移入されますが、文字列FALSE
を指定すると、ラスター・データ表にデータは移入されません。このパラメータを指定しない場合、ラスター・データ表にデータは移入されません。
使用上の注意
このファンクションは、GeoRasterオブジェクトに汎用パターンのメタデータを移入し、オプションで、空のラスター・ブロックを含む適切な行をラスター・データ表に挿入します。ラスター・データ表にデータを移入する場合は、ラスター・データ表が存在し、GeoRasterオブジェクトがGeoRaster SYSDATA表に登録されている必要があります。
通常、空のGeoRasterオブジェクトにこのプロシージャを使用すると、XMLメタデータとラスター・ブロックが移入されるだけです。既存の(適切な)GeoRasterオブジェクトを使用すると、GeoRasterオブジェクトは更新時に新しいテンプレート・オブジェクトに置き換えられます。
rasterSpec
パラメータには、キーワードと値の組合せから1つ以上を選択し、引用符で囲んだ文字列として指定する必要があります。このパラメータでは次のキーワードがサポートされます。
-
blocking
(blocking=TRUE
など)。このキーワードの詳細は、「記憶域パラメータ」の表1-1を参照してください。 -
blocksize
(blocksize=(512,512,3)
など)。このキーワードの詳細は、「記憶域パラメータ」の表1-1を参照してください。 -
cellDepth
(cellDepth=8BIT_S
など)。このキーワードの詳細は、「記憶域パラメータ」の表1-1を参照してください。 -
compression
(compression=JPEG-F
など)。このキーワードの詳細は、「記憶域パラメータ」の表1-1を参照してください。 -
dimSize
(dimSize=(512,512,3)
など): 行、列およびバンド次元のサイズを指定します。このキーワードの指定は必須であり、rasterType
パラメータと一致している必要があります。 -
interleaving
(interleaving=BIP
など)。このキーワードの詳細は、「記憶域パラメータ」の表1-1を参照してください。 -
quality
(quality=75
など)。このキーワードの詳細は、「記憶域パラメータ」の表1-1を参照してください。 -
resampling
(resampling=NN
など): リサンプリング・メソッドを指定します。NN
、BILINEAR
、BIQUADRATIC
、CUBIC
、AVERAGE4
、AVERAGE16
のいずれかを指定する必要があります。詳細は、「リサンプリングおよび内挿」を参照してください。rLevel
が設定されていない場合、resampling
キーワードは無視されます。 -
rLevel
(rLevel=2
など): ピラミッドの最大縮小レベルを指定します。正の整数である必要があります。このキーワードを指定すると、メタデータのピラミッド・タイプがDECREASE
に設定され、指定しない場合はピラミッド・タイプがNONE
に設定されます。 -
ultCoord
(ultCoord=(0,0,0)
など): GeoRasterオブジェクトの左上の座標を示す整数値を指定します。すべての次元で、デフォルト値は0 (ゼロ)です。バンド次元の値には、0 (ゼロ)を指定する必要があります。
(「記憶域パラメータ」の表1-1のbitmapmask
およびpyramid
キーワードは、rasterSpec
パラメータではサポートされないことに注意してください。)
compression
キーワード(rasterSpec
パラメータ内)をJP2-F
として設定する場合、rasterSpec
パラメータの指定に関係なくブロック化のデフォルトが非ブロック化になります。rlevel
キーワード(rasterSpec
パラメータ内)が設定されず、compression
がJP2-F
の場合、GeoRasterメタデータのピラミッド最大レベルはfloor( log2(imageSize))です。imageSize
はイメージの行および列の最小サイズです。実際のデータに異なるレベルの解像度が含まれる場合、ピラミッド最大レベルを後で調整する必要があります。
GeoRasterアプリケーションの開発におけるこのファンクションの使用の詳細は、「テンプレート関連のサブプログラムを使用したGeoRasterアプリケーションの開発」を参照してください。
例
次の例では、GeoRasterオブジェクトにメタデータとラスター・データ表の最初の行を移入します。
DECLARE gr sdo_georaster; BEGIN INSERT INTO georaster_table (georid, georaster) VALUES (1, sdo_geor.init('RDT_1')) RETURNING georaster into gr; sdo_geor.createTemplate(gr, 21001, 'dimSize=(512,512,3) blocking=false rlevel=2', null, 'TRUE'); UPDATE georaster_table set georaster=gr where georid=1; COMMIT; END; /
7.12 SDO_GEOR.decompressJP2
形式
SDO_GEOR.decompressJP2( inGeoRaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, cropArea IN SDO_NUMBER_ARRAY, bandNumbers IN VARCHAR2, storageParam IN VARCHAR2, outGeoraster IN OUT SDO_GEORASTER);
または
SDO_GEOR.decompressJP2( inGeoRaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, cropArea IN SDO_GEOMETRY, layerNumbers IN VARCHAR2, storageParam IN VARCHAR2, outGeoraster IN OUT SDO_GEORASTER);
説明
JPEG 2000圧縮したGeoRasterイメージをGeoRasterオブジェクトに解凍します。
パラメータ
- inGeoRaster
-
解凍するSDO_GEORASTERオブジェクトを指定します。
- pyramidLevel
-
ソースGeoRasterオブジェクトの圧縮するピラミッド・レベルを示す番号を指定します。
- cropArea
-
クロッピング領域を定義します。データ型がSDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合、ジオメトリ・オブジェクトの最小境界矩形(MBR)がクロッピング領域として使用されます(SDO_SRID要件の「使用上の注意」も参照してください)。
cropArea
がSDO_GEOMETRY型の場合は、layerNumbers
パラメータを使用して1つ以上のレイヤー番号を指定します。cropArea
がSDO_NUMBER_ARRAY型の場合は、bandNumbers
パラメータを使用して、1つ以上のバンド番号を指定します。 - bandNumbers
-
処理を実行する物理バンド番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、
1-3
はバンド1、2および3を示します)。 - layerNumbers
-
処理を実行する論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、
2-4
はレイヤー2、3および4を示します)。 - storageParam
-
記憶域パラメータを示す文字列を指定します(「記憶域パラメータ」を参照)。
- outGeoRaster
-
操作の結果を反映させる出力SDO_GEORASTERオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、「空白のGeoRasterオブジェクトと空のGeoRasterオブジェクト」を参照してください)。
inGeoRaster
と同じGeoRasterオブジェクトは指定できません。
使用上の注意
storageParam
パラメータで、bitmapmask
、compression
、quality
およびpyramid
キーワードは無視されます。
cropArea
パラメータのデータ型がSDO_GEOMETRYの場合、SDO_SRID値は次のいずれかの値である必要があります。
-
NULL(ラスター空間を指定)
-
MDSYS.CS_SRS表のSRID列の値
cropArea
パラメータ・ジオメトリとモデル空間のSDO_SRID値が異なる場合は、処理が実行される前に、window
パラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、「GeoRasterデータ・モデル」を参照してください。)
例
次の例では、元のGeoRasterオブジェクトの指定したウィンドウの特定のバンドのみが含まれる圧縮されていないGeoRasterオブジェクトを作成します。元のオブジェクトのラスター・データは、JPEG 2000圧縮で圧縮されます。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE gr1 sdo_georaster; gr2 sdo_georaster; BEGIN INSERT INTO georaster_table (georid, georaster) VALUES (41, sdo_geor.init('RDT_1')) RETURNING georaster INTO gr2; SELECT georaster INTO gr1 FROM georaster_table WHERE georid=4; sdo_geor.decompressJP2(gr1, 0, sdo_geometry(2003, NULL, NULL, sdo_elem_info_array(1, 1003, 3), sdo_ordinate_array(0,256,255,511)), '3,1-2',’blocksize=(512, 512, 3)’, gr2); UPDATE georaster_table SET georaster=gr2 WHERE georid=41; COMMIT; END; /
7.13 SDO_GEOR.deleteControlPoint
形式
SDO_GEOR.deleteControlPoint ( inGeoraster IN SDO_GEORASTER, controlPointID IN VARCHAR2);
説明
指定した基準点ID値を持つ地上基準点(GCP)を削除します。
パラメータ
使用上の注意
GCPを使用した地理参照の詳細は、「地上基準点(GCP)地理参照モデル」を参照してください。
GeoRasterオブジェクト・メタデータに格納された既存のGCPでcontrolPointIDがNULLであるか、空であるか、または検出されない場合、例外が発生します。指定した点IDを持つGCPが検出された場合、そのGCPは地理参照モデルから削除されます。
例
次の例では、指定したGeoRasterオブジェクトでID値が23のGCPを削除します。
DECLARE gr1 sdo_georaster; BEGIN SELECT georaster INTO gr1 from herman.georaster_table WHERE georid=10 FOR UPDATE; sdo_geor.deleteControlPoint(gr1, '23'); UPDATE georaster_table SET georaster=gr1 WHERE georid=10; COMMIT; END; /
7.14 SDO_GEOR.deleteNODATA
形式
SDO_GEOR.deleteNODATA(title georaster IN OUT SDO_GEORASTER layerNumber IN NUMBER nodata IN NUMBER);
または
SDO_GEOR.deleteNODATA( georaster IN OUT SDO_GEORASTER layerNumber IN NUMBER nodata IN SDO_RANGE_ARRAY);
説明
1つ以上のNODATA値またはその値の範囲を削除します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- layerNumber
-
GeoRasterオブジェクト内のレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。
- nodata
-
単一の数値か、数字または数字の範囲の配列を1つ指定します。NODATA値の範囲には下限が含まれ、上限は含まれません。
SDO_RANGE_ARRAY型の詳細は、「NODATA値および値の範囲」を参照してください
使用上の注意
NODATA値またはその値の範囲が削除された場合、GeoRasterオブジェクトのセル深度を使用して正しい範囲が新しく生成されます。セル深度に浮動セル値が指定されている場合、削除が可能なのは、既存の単一数値のNODATA値か、または既存のNODATA値の範囲の部分的な範囲のみです。
NODATA値および値の範囲の詳細は、「NODATA値および値の範囲」を参照してください。
1つ以上のNODATA値またはその値の範囲を追加するには、SDO_GEOR.addNODATAプロシージャを使用します。GeoRasterオブジェクトのNODATA値を戻すには、SDO_GEOR.getNODATAファンクションを使用します。
例
次の例では、オブジェクト・レイヤーに関連付けられたNODATAのメタデータからセル値9を削除します。
DECLARE gr sdo_georaster; BEGIN SELECT georaster INTO gr FROM georaster_table WHERE georid=0 FOR UPDATE; SDO_GEOR.deleteNODATA(gr, 0, 9); UPDATE georaster_table SET georaster=gr WHERE georid=0; COMMIT; END; /
7.15 SDO_GEOR.deletePyramid
形式
SDO_GEOR.deletePyramid( georaster IN OUT SDO_GEORASTER, pyramidLevel IN NUMBER DEFAULT NULL);
説明
指定したピラミッド・レベル以上のGeoRasterオブジェクトのピラミッド・データを削除します。
パラメータ
使用上の注意
ピラミッド・データの詳細は、「ピラミッド」を参照してください。
georaster
がNULLか、またはピラミッド・データを持たない場合、このプロシージャは処理を実行しません。
georaster
が無効であるか、またはpyramidLevel
の値が1未満である場合、例外が発生します。
例
次の例では、GeoRasterオブジェクトのピラミッド・データを削除します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE gr1 sdo_georaster; BEGIN SELECT georaster INTO gr1 FROM georaster_table WHERE georid=21; sdo_geor.deletePyramid(gr1); UPDATE georaster_table SET georaster=gr1 WHERE georid=21; COMMIT; END; /
次の例では、ピラミッド・レベルが3以上であるGeoRasterオブジェクトのピラミッド・データを削除します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE gr1 sdo_georaster; BEGIN SELECT georaster INTO gr1 FROM georaster_table WHERE georid=21; sdo_geor.deletePyramid(gr1, 3); UPDATE georaster_table SET georaster=gr1 WHERE georid=21; COMMIT; END; /
7.16 SDO_GEOR.evaluateDouble
形式
SDO_GEOR.evaluateDouble( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, row IN NUMBER, column IN NUMBER, bands IN VARCHAR2, interpolationMethod IN VARCHAR2 ) RETURN SDO_NUMBER_ARRAY;
または
SDO_GEOR.evaluateDouble( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, ptGeom IN SDO_GEOMETRY, layers IN VARCHAR2, interpolationMethod IN VARCHAR2 ) RETURN SDO_NUMBER_ARRAY;
説明
指定された内挿方法を使用することで直接の場所を評価し、その場所に指定されたバンドまたはレイヤーのラスター値(倍精度の数値)を戻します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- pyramidLevel
-
ラスター値を戻す場所を含むピラミッド・レベルを指定します。
- row
-
ラスター値を戻す場所の行座標を指定します。これは浮動小数点数にすることができます。
- column
-
ラスター値を戻す場所の列座標を指定します。これは浮動小数点数にすることができます。
- バンド
-
処理を実行する物理バンド番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、
1-3
はバンド1、2および3を示します)。 - ptGeom
-
ラスター値を戻す直接の場所を識別する点ジオメトリを指定します。
- レイヤー
-
処理を実行する論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、
2-4
はレイヤー2、3および4を示します)。(「バンド、レイヤーおよびメタデータ」で説明したように、論理レイヤー番号は、物理バンドの番号に1を足した値です。) - interpolationMethod
-
それぞれ適切な値を持つ1つ以上のキーワードを含む引用符で囲んだ文字列を指定します。使用可能なキーワードおよび値については、「使用上の注意」を参照してください。
使用上の注意
このファンクションは、内挿された倍精度のラスター値を戻します。GeoRasterでは、セル座標系タイプが中心を基準とするか、左上を基準とするかにかかわらず、元のセル値は常にセルの中心に関連付けられます。
GeoRasterオブジェクトの場所は、セル座標空間でその行、列およびバンド番号を指定するか、モデル座標空間またはセル座標空間で点ジオメトリを指定して識別します。
interpolationMethod
には、次の1つ以上のキーワードにそれぞれ適切な値を指定して、それらを引用符で囲んだ文字列を指定する必要があります。
-
interpolationMethod
(interpolationMethod=NN
など): 内挿方法を指定します。NN
、BILINEAR
、BIQUADRATIC
、CUBIC
、AVERAGE4
、AVERAGE16
のいずれかを指定する必要があります。詳細は、「リサンプリングおよび内挿」を参照してください。 -
nodata
(nodata=TRUE
など): プロシージャでの処理中にNODATA値およびその値の範囲を考慮するかどうかを指定します。TRUE
(NODATA値およびその値の範囲を考慮する)またはFALSE
(NODATA値およびその値の範囲を考慮しない)のいずれかを指定します。デフォルト値はFALSE
です。この値がTRUE
で、内挿方法がBILINEAR
、BIQUADRATIC
、CUBIC
、AVERAGE4
またはAVERAGE16
の場合、内挿の計算に含まれるセル値がNODATA値であると、内挿の結果も常にNODATA値になります。複数のNODATA値または値の範囲が存在する場合、結果のNODATA値は、現行のラスター・レイヤーに関連付けられているNODATA値の最小値になります。
interpolationMethod
を'interpolationMethod=NN'
に指定した場合、このファンクションはSDO_GEOR.getCellValueファンクションをコールした場合と同じになります。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTER列)の指定した場所のラスター値を戻します(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています)。
次の例では、セル空間またはモデル空間で指定された同じ場所の同じ値を戻す2つのファンクション構文を示します。
SELECT SDO_GEOR.evaluateDouble(a.georaster, 0, 10.2, 10.3, '0-2', 'interpolationMethod=BILINEAR') FROM georaster_table a WHERE georid=21; SDO_GEOR.EVALUATEDOUBLE(A.GEORASTER,0,10.2,10.3,'0-2','interpolationMethod=BILINEAR') -------------------------------------------------------------------------------- SDO_NUMBER_ARRAY(86.68, 135.68, 31.72) 1 row selected. SELECT SDO_GEOR.evaluateDouble(a.georaster, 0, SDO_GEOMETRY(2001, 82394, SDO_POINT_TYPE(18492.775, 1012881.9, NULL), NULL, NULL), '1-3', 'interpolationMethod=BILINEAR') FROM georaster_table a WHERE georid=21; SDO_GEOR.EVALUATEDOUBLE(A.GEORASTER,0,SDO_GEOR.GETMODELCOORDINATE(A.GEORASTER,0, -------------------------------------------------------------------------------- SDO_NUMBER_ARRAY(86.68, 135.68, 31.72) 1 row selected.
7.17 SDO_GEOR.evaluateDoubles
形式
SDO_GEOR.evaluateDoubles( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, rows IN SDO_NUMBER_ARRAY, cols IN SDO_NUMBER_ARRAY, band IN NUMBER, interpolationMethod IN VARCHAR2 ) RETURN SDO_NUMBER_ARRAY;
または
SDO_GEOR.evaluateDouble( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, ptGeom IN SDO_GEOMETRY, layer IN NUMBER, interpolationMethod IN VARCHAR2 ) RETURN SDO_NUMBER_ARRAY;
説明
指定された内挿方法を使用することで複数の場所を評価し、それらの場所の指定されたバンドまたはレイヤーのラスター値(倍精度の数値)を戻します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- pyramidLevel
-
ラスター値を戻す場所を含むピラミッド・レベルを指定します。
- row
-
ラスター値を戻す場所の行座標を指定します。
- column
-
ラスター値を戻す場所の列座標を指定します。
- band
-
値を戻すセルを含む物理バンドの番号を指定します。
- ptGeom
-
値を戻すセルを識別する複数点のジオメトリ。
- レイヤー
-
値を戻すセルを含む論理レイヤーの番号を指定します。(「バンド、レイヤーおよびメタデータ」で説明したように、論理レイヤー番号は、物理バンドの番号に1を足した値です。)
- interpolationMethod
-
それぞれ適切な値を持つ1つ以上のキーワードを含む引用符で囲んだ文字列を指定します。使用可能なキーワードおよび値については、「使用上の注意」を参照してください。
使用上の注意
このファンクションは、内挿された倍精度のラスター値を戻します。GeoRasterでは、セル座標系タイプが中心を基準とするか、左上を基準とするかにかかわらず、元のセル値は常にセルの中心に関連付けられます。
interpolationMethod
には、次の1つ以上のキーワードにそれぞれ適切な値を指定して、それらを引用符で囲んだ文字列を指定する必要があります。
-
interpolationMethod
(interpolationMethod=NN
など): 内挿方法を指定します。NN
、BILINEAR
、BIQUADRATIC
、CUBIC
、AVERAGE4
、AVERAGE16
のいずれかを指定する必要があります。詳細は、「リサンプリングおよび内挿」を参照してください。 -
nodata
(nodata=TRUE
など): プロシージャでの処理中にNODATA値およびその値の範囲を考慮するかどうかを指定します。TRUE
(NODATA値およびその値の範囲を考慮する)またはFALSE
(NODATA値およびその値の範囲を考慮しない)のいずれかを指定します。デフォルト値はFALSE
です。この値がTRUE
で、内挿方法がBILINEAR
、BIQUADRATIC
、CUBIC
、AVERAGE4
またはAVERAGE16
の場合、内挿の計算に含まれるセル値がNODATA値であると、内挿の結果も常にNODATA値になります。複数のNODATA値または値の範囲が存在する場合、結果のNODATA値は、現行のラスター・レイヤーに関連付けられているNODATA値の最小値になります。
interpolationMethod
を'interpolationMethod=NN'
に指定した場合、このファンクションはSDO_GEOR.getCellValuesファンクションをコールした場合と同じになります。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTER列)の指定した場所のラスター値を戻します(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています)。
SELECT SDO_GEOR.evaluateDoubles(a.georaster, 0,SDO_NUMBER_ARRAY(10.2,11.5),SDO_NUMBER_ARRAY(9.2,8.3),0, 'interpolationMethod=BILINEAR') FROM georaster_table a WHERE georid=21; SDO_GEOR.EVALUATEDOUBLES(A.GEORASTER,0,SDO_NUMBER_ARRAY(10.2,11.5),SDO_NUMBER_ARRAY(9.2,8.3),0,'interpolationMethod=BILINEAR') -------------------------------------------------------------------------------- SDO_NUMBER_ARRAY(86.68, 135.68) 1 row selected.
7.18 SDO_GEOR.exportTo
形式
SDO_GEOR.exportTo( georaster IN SDO_GEORASTER, subsetParam IN VARCHAR2, r_destFormat IN VARCHAR2, r_destType IN VARCHAR2, r_destName IN VARCHAR2, h_destFormat IN VARCHAR2 DEFAULT NULL, h_destType IN VARCHAR2 DEFAULT NULL, h_destName IN VARCHAR2 DEFAULT NULL);
または
SDO_GEOR.exportTo( georaster IN SDO_GEORASTER, subsetParam IN VARCHAR2, r_destFormat IN VARCHAR2, r_destBLOB IN OUT NOCOPY BLOB);
または
SDO_GEOR.exportTo( georaster IN SDO_GEORASTER, subsetParam IN VARCHAR2, r_destFormat IN VARCHAR2, r_destBLOB IN OUT NOCOPY BLOB, h_destFormat IN VARCHAR2 DEFAULT NULL, h_destCLOB IN OUT NOCOPY CLOB DEFAULT NULL);
説明
GeoRasterオブジェクトまたはGeoRasterオブジェクトのサブセットを、ファイルまたはBLOBオブジェクトにエクスポートします。
パラメータ
- georaster
-
エクスポートするGeoRasterオブジェクトを指定します。
- subsetParam
-
サブセット・パラメータを含む文字列(GeoRasterオブジェクトのサブセットのエクスポート用)を指定します。形式および使用方法については「記憶域パラメータ」を参照してください(ただし、その項で示すキーワードの中には、このプロシージャには適用されないものもあります)。サポートされているキーワードは、次のとおりです。
-
pLevel
: エクスポートするピラミッド・レベルを指定します。デフォルトは0です。 -
cropArea
:cropArea = (startRow, startCol, endRow, endCol)
という形式でエクスポートする領域を指定します。これは、エクスポートする矩形ウィンドウの左上の座標(startRow
、startCol
)と右下の座標(endRow
、endCol
)を識別することで、ラスター空間が想定されます。cropArea
を指定しない場合は、イメージ全体がエクスポートされます。 -
layerNumber
: エクスポートするレイヤーのレイヤー番号を指定します。たとえば、layerNumber=(3-5)
の場合はレイヤー3、4および5がエクスポートされ、layerNumber=(1,3,5)
の場合はレイヤー1、3および5がエクスポートされます。
-
- r_destFormat
-
ラスターの宛先の形式を指定します。
TIFF
、BMP
、GeoTIFF
またはPNG
のいずれかを指定する必要があります。(JPEG
およびGIF
は、このプロシージャではサポートされていません。) - r_destType
-
エクスポート操作の宛先のタイプを指定します。
FILE
を指定する必要があります。 - r_destName
-
destType
がFILE
の場合、宛先ファイル名をフルパスで指定します。ファイル拡張子は指定しないでください。ワールド・ファイルのエクスポートのみにこのプロシージャを使用する場合は、このパラメータにNULL値を指定します。 - r_destBLOB
-
エクスポート操作の結果のイメージ・ファイルを格納するBLOBオブジェクトを指定します。
- h_destFormat
-
ジオヘッダーの宛先の形式を指定します。
WORLDFILE
を指定する必要があります。 - h_destType
-
エクスポート操作の宛先のジオヘッダー・タイプを指定します。
FILE
を指定する必要があります。 - h_destName
-
h_destType
がFILE
の場合、ジオヘッダーの宛先ファイル名をフルパスで指定します。ファイル拡張子は指定しないでください。 - h_destCLOB
-
エクスポート操作の結果のジオヘッダー・ファイルを格納するCLOBオブジェクトを指定します。
使用上の注意
ラスター・イメージとジオヘッダーが別々のファイルに存在する場合にのみ、r_xxx パラメータとh_xxx パラメータの両方を含む形式を使用してください。
このプロシージャは、宛先ファイル形式としてJPEGまたはGIFをサポートしていません。JPEGファイルにエクスポートするには、クライアント側のGeoRasterエクスポータ・ツールを使用します(「GeoRasterツール: ローダー、ビューア、エクスポータ」を参照)。
このプロシージャは、cellDepth
値が2BIT
のGeoRasterオブジェクトをサポートしていません。
BSQまたはBILインターリーブ形式で8ビット以上のセル深度を持つGeoRasterオブジェクトは、BIPインターリーブ形式でエクスポートされます。
GeoTIFF PixelIsArea
ラスター空間は、左上角を基準とするGeoRasterのセル座標系と同じです。GeoTiffへのエクスポートは、常にPixelIsArea
ラスター空間が対象となります(GeoRasterオブジェクトが中央を基準とするセル座標系の場合は、アフィン変換で2分の1ピクセル単位の調整が行われます)。
SDO_GEOR.importFromプロシージャを使用してGeoTIFFイメージをロードする場合は、xtiff-jai.jar
およびgeotiff-jai.jar
ライブラリが必要になります。これらのGeoTIFFライブラリの詳細は、「GeoRasterオブジェクトの地理参照」を参照してください。
このプロシージャをコールするには、出力ファイルまたはファイルを含めるディレクトリに対する書込み権限が必要です。次の例(ユーザーSYSTEM
として実行)では、指定したファイルに対する書込み権限をユーザーHERMAN
に付与します。
call dbms_java.grant_permission('HERMAN','SYS:java.io.FilePermission', '/mydirectory/myimages/img1.tif', 'write' );
1回の操作でエクスポートできるGeoRasterデータの最大容量は、67メガバイト(MB)です。したがって、1回でエクスポートできるGeoRasterオブジェクトの最大次元は、width*height*bands*cellDepth/8 <= 67 MB
およびrowBlockSize*columnBlockSize*bands*cellDepth/8 <= 67 MB
になります。たとえば、widthとheightが等しい、3バンド、8ビットのGeoRasterオブジェクトの場合は次のようになります。
-
エクスポートできる最大のwidthとheightは4728×4728。
-
エクスポートできる最大のブロック次元は4096×4096。
例
次の例では、2つのエクスポート操作を示します。最初の操作では、GeoRasterオブジェクト全体(地理参照情報以外)をBMP形式のファイルにエクスポートします。2番目の操作では、GeoRasterオブジェクトのサブセットを、ESRIワールド・ファイルを持つファイルにエクスポートします。
DECLARE geor SDO_GEORASTER; fileName VARCHAR2(1024); tfwName VARCHAR2(1024); BEGIN SELECT georaster INTO geor FROM georaster_table WHERE georid = 1; -- Export the whole GeoRaster object into a BMP file, excluding any -- georeferencing information. sdo_geor.exportTo(geor, NULL, 'BMP', 'file', '/mydirectory/myimages/img1_export'); -- Export a subset to a file with a world file. fileName := '/mydir/parrotExported'; tfwName := '/mydir/parrotWorldFile'; SELECT georaster INTO geor FROM georaster_table WHERE georid = 8; sdo_geor.exportTo(geor, 'cropArea=(0,0,500,500)', 'TIFF', 'file', fileName, 'WORLDFILE', 'FILE', tfwName); END; /
次の例では、GeoRasterオブジェクトをBLOBオブジェクトおよびCLOBオブジェクトにエクスポートします。
CREATE TABLE blob_table (blob_col BLOB, blobid NUMBER unique, clob_col CLOB); INSERT INTO blob_table values (empty_blob(), 3, null); INSERT INTO blob_table VALUES (empty_blob(), 4, empty_clob()); DECLARE lobd1 BLOB; lobd2 BLOB; lobd3 CLOB; geor1 SDO_GEORASTER; geor2 SDO_GEORASTER; BEGIN -- Example 1: Export to BLOB. SELECT blob_col INTO lobd1 FROM blob_table WHERE blobid=3 for update; SELECT georaster INTO geor1 FROM georaster_table WHERE georid = 13; sdo_geor.exportTo(geor1, '', 'TIFF', lobd1); UPDATE blob_table set blob_col = lobd1 WHERE blobid=3; COMMIT; -- Example 2: Export GeoRaster to BLOB with world file exported to CLOB. SELECT blob_col INTO lobd2 FROM blob_table WHERE blobid=4 for update; SELECT clob_col INTO lobd3 FROM blob_table WHERE blobid=4 for update; SELECT georaster INTO geor2 FROM georaster_table WHERE georid = 8; sdo_geor.exportTo(geor2, 'cropArea=(0,0,500,500)', 'TIFF', lobd2, 'WORLDFILE', lobd3); UPDATE blob_table set blob_col = lobd2, clob_col = lobd3 WHERE blobid = 4; COMMIT; END; /
7.19 SDO_GEOR.generateAreaWeightedMean
形式
SDO_GEOR.generateAreaWeightedMean( georaster IN SDO_GEORASTER, window IN SDO_GEOMETRY, bandNumber IN NUMBER, nodata IN VARCHAR2 DEFAULT 'FALSE' ) RETURN NUMBER;
説明
入力GeoRasterオブジェクトの指定されたバンドの面積で重み付けした統計平均値を計算します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- window
-
統計の生成元となるポリゴンのジオメトリ・オブジェクトを指定します。モデル空間にある場合、ラスター空間に変換されます。SDO_SRID要件のSDO_GEOR.generateStatisticsファンクションの「使用上の注意」も参照してください。
- bandNumber
-
操作を実行するレイヤーのバンド座標番号を指定します。
- nodata
-
各セル値と、メタデータに定義されたNODATA値を、統計算出時に比較するかどうかを指定します。
TRUE
を指定した場合は、NODATA値を持つピクセルはすべて考慮されず、FALSE
(デフォルト)を指定した場合は、NODATA値を持つピクセルは通常のピクセルとみなされます。NODATA値および値の範囲の詳細は、「NODATA値および値の範囲」を参照してください。
使用上の注意
このファンクションは、入力GeoRasterオブジェクトの特定のウィンドウ内のセルの面積で重み付けした統計平均値を計算します。ウィンドウの境界で区切られたすべてのサブセルが適切に処理されるように、統計平均値を計算する場合、各セル値の重み付けとしてセルの面積を使用します。
例
次の例では、入力GeoRasterオブジェクトの最初のバンドの面積で重み付けした統計平均値を計算します。
SELECT sdo_geor.generateAreaWeightedMean(tmimage,sdo_geometry(2003, null,NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1, 1003, 3), MDSYS.SDO_ORDINATE_ARRAY(9.5,9.5,12.5,12.5)),0) FROM landsat WHERE id=11;
7.20 SDO_GEOR.generateBitmapPyramid
形式
SDO_GEOR.generateBitmapPyramid( src_geor IN SDO_GEORASTER, tmp_geor IN OUT SDO_GEORASTER, target_geor IN OUT SDO_GEORASTER, pyramidParams IN VARCHAR2, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, parallelParam IN VARCHAR2 DEFAULT NULL, addColorMap IN NUMBER DEFAULT 1);
説明
ビットマップGeoRasterオブジェクトのピラミッド・データを生成します。
パラメータ
- src_geor
-
ピラミッド・データを生成するソースGeoRasterオブジェクトを指定します。
- tmp_geor
-
一時データを格納するために使用する一時GeoRasterオブジェクト
- target_geor
-
結果のGeoRasterデータを格納するために使用するターゲットGeoRasterオブジェクト。
- pyramidParams
-
ピラミッド・パラメータを含む文字列を指定します。使用可能なキーワードおよび値については、「使用上の注意」を参照してください。
- bgValues
-
部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(「空のラスター・ブロック」を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、
SDO_NUMBER_ARRAY(1,5,10)
では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValues
は0 (ゼロ)です。入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。
- parallelParam
-
操作の並列度を指定します。指定する場合、
parallel=
nという形式である必要があります(nは1より大きい)。データベース・オプティマイザでは、このパラメータによって指定された並列度を使用します。指定しない場合、デフォルトでパラレル処理は行われません。(詳細は、「GeoRasterでのパラレル処理」を参照してください。) - addColorMap
- 車道を白で表示するためにカラーマップをターゲットGeoRasterオブジェクトに追加するかどうかの数値を指定します。0(ゼロ)はカラーマップを追加しません。1(デフォルト)または他のゼロ以外の値はカラーマップを追加します。
使用上の注意
通常は1ビットのセル深度で格納される点、行または多角形のビットマップ・ラスターの場合、ピラミッド化アプローチ(「イメージのピラミッド化: パラレル生成および部分更新」を参照)では、高品質なピラミッドが作成されない可能性があります。これらのピラミッドでは、ゆがんだ点のパターンや破線がよく見られます。この問題を解決するには、GeoRasterラスター代数をかわりに使用してビットマップのピラミッド化を実行します(「ビットマップのピラミッド化」を参照)。
pyramidParams
には、次の1つ以上のキーワードにそれぞれ適切な値を指定して、それらを引用符で囲んだ文字列を指定する必要があります。
-
rLevel
(rLevel=2
など): 最大縮小レベルを指定します。元のオブジェクトより小さい(縮小した)サイズで作成する場合に使用するピラミッド・レベルの数値を指定します。このキーワードを指定しない場合、ピラミッド・レベルは、行または列の数の少ない方が64から128になるまで生成されます。低い解像度レベルでの各次元サイズは、その次に高い解像度レベルでの次元サイズを2で割って切り捨てた整数値と同じになります。 -
resampling
(resampling=NN
など): リサンプリング・メソッドを指定します。NN
、BILINEAR
、BIQUADRATIC
、CUBIC
、AVERAGE4
、AVERAGE16
のいずれかを指定する必要があります。詳細は、「リサンプリングおよび内挿」を参照してください。このプロシージャでは、
BILINEAR
とAVERAGE4
は同じ効果があることに注意してください。 -
nodata
(nodata=TRUE
など): プロシージャでの処理中にNODATA値およびその値の範囲を考慮するかどうかを指定します。TRUE
(NODATA値およびその値の範囲を考慮する)またはFALSE
(NODATA値およびその値の範囲を考慮しない)のいずれかを指定します。デフォルト値はFALSE
です。この値がTRUE
で、リサンプリング・メソッドがBILINEAR
、BIQUADRATIC
、CUBIC
、AVERAGE4
またはAVERAGE16
の場合、リサンプリングの計算に含まれるセル値がNODATA値であると、リサンプリングの結果も常にNODATA値になります。複数のNODATA値または値の範囲が存在する場合、結果のNODATA値は、現行のラスター・レイヤーに関連付けられているNODATA値の最小値になります。
rLevel
値を指定しない場合、rLevel
値はデフォルト値に設定されます。デフォルト値は次のように計算されます。
(int)(log2(a / 64))
式の各変数の意味は、次のとおりです。
-
log2
: 底が2の対数関数です。 -
a
: 元の次元サイズの行または列の小さい方。
デフォルトの場合、最上位レベルの全体像(最上位レベルの最小ピラミッド)では、行次元と列次元のいずれか小さい方のサイズは64から128です。rLevel
値を低解像度の最大レベルより大きい値に指定した場合、rLevel
値は低解像度の最大レベルに設定されます。最大レベルは次のように計算されます。
(int)(log2(a))
この場合、最上位レベルの全体像では、その行次元と列次元のいずれか小さい方のサイズは1になります。
例
次の例では、ビットマップのピラミッドを生成します。
DECLARE src_gr sdo_georaster; tmp_gr sdo_georaster; target_gr sdo_georaster; BEGIN SELECT georaster INTO src_gr FROM georaster_table WHERE georid = 6; SELECT georaster INTO tmp_gr FROM georaster_table WHERE georid = 7 FOR UPDATE; SELECT georaster INTO target_gr FROM georaster_table WHERE georid = 8 FOR UPDATE; -- Generate bitmap pyramids. sdo_geor.generateBitmapPyramid(src_gr,tmp_gr,target_gr 'rLevel=5, resampling=NN'); -- Update the target GeoRaster object. UPDATE georaster_table SET georaster =target_gr WHERE georid = 8; END; /
7.21 SDO_GEOR.generateBlockMBR
形式
SDO_GEOR.generateBlockMBR( georaster IN SDO_GEORASTER);
説明
GeoRasterオブジェクトの各ブロックの最小境界矩形(MBR)を算出し、ラスター・データ表内の各ラスター・ブロックのblockMBR
属性を設定します。
使用上の注意
このプロシージャは、GeoRasterオブジェクトの変更は行いません。GeoRasterオブジェクトに関連付けられたラスター・データ表に含まれる各行のblockMBR
属性(「blockMBR属性」を参照)に値が設定されます。
「新しいGeoRasterオブジェクトの作成」の説明に従ってGeoRasterオブジェクトを作成した場合はblockMBR
属性値が自動計算されるため、この属性値を検証したり生成する必要はありません。ただし、サード・パーティによって生成されたGeoRasterオブジェクトの場合は、SDO_GEOR.validateBlockMBRファンクションを使用してblockMBR
属性値を検証する必要があり、無効な値が含まれている場合は、SDO_GEOR.generateBlockMBRプロシージャをコールします。
例
次の例では、指定したGeoRasterオブジェクトのMBRを算出し、そのオブジェクトのblockMBR
属性値を設定します。
DECLARE gr sdo_georaster; BEGIN SELECT georaster INTO gr FROM georaster_table WHERE georid=1 FOR UPDATE; sdo_geor.generateBlockMBR(gr); COMMIT; END; /
7.22 SDO_GEOR.generatePyramid
形式
SDO_GEOR.generatePyramid( georaster IN OUT SDO_GEORASTER, pyramidParams IN VARCHAR2, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, parallelParam IN VARCHAR2 DEFAULT NULL);
説明
ピラミッド・データを生成して、元のデータとともに格納します。
パラメータ
- georaster
-
ピラミッド・データを生成して格納するGeoRasterオブジェクトを指定します。
- pyramidParams
-
ピラミッド・パラメータを含む文字列を指定します。使用可能なキーワードおよび値については、「使用上の注意」を参照してください。
- bgValues
-
部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(「空のラスター・ブロック」を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、
SDO_NUMBER_ARRAY(1,5,10)
では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValues
は0 (ゼロ)です。入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。
- parallelParam
-
操作の並列度を指定します。指定する場合、
parallel=
nという形式である必要があります(nは1より大きい)。データベース・オプティマイザでは、このパラメータによって指定された並列度を使用します。指定しない場合、デフォルトでパラレル処理は行われません。(詳細は、「GeoRasterでのパラレル処理」を参照してください。)並列性を指定すると、プロシージャはプロセスの実行中に内部コミットを実行します。したがって、このプロシージャの結果をロールバックできません。エラーが発生した場合(Oracle Parallel Serverが原因である場合でも)、操作をロールバックするために、出力結果のGeoRasterオブジェクトを明示的に削除する必要があります。
使用上の注意
ピラミッド・データの詳細は、「ピラミッド」を参照してください。
pyramidParams
には、次の1つ以上のキーワードにそれぞれ適切な値を指定して、それらを引用符で囲んだ文字列を指定する必要があります。
-
rLevel
(rLevel=2
など): 最大縮小レベルを指定します。元のオブジェクトより小さい(縮小した)サイズで作成する場合に使用するピラミッド・レベルの数値を指定します。このキーワードを指定しない場合、ピラミッド・レベルは、行または列の数の少ない方が64から128になるまで生成されます。低い解像度レベルでの各次元サイズは、その次に高い解像度レベルでの次元サイズを2で割って切り捨てた整数値と同じになります。 -
resampling
(resampling=NN
など): リサンプリング・メソッドを指定します。NN
、BILINEAR
、BIQUADRATIC
、CUBIC
、AVERAGE4
、AVERAGE16
のいずれかを指定する必要があります。詳細は、「リサンプリングおよび内挿」を参照してください。このプロシージャでは、
BILINEAR
とAVERAGE4
は同じ効果があることに注意してください。 -
nodata
(nodata=TRUE
など): プロシージャでの処理中にNODATA値およびその値の範囲を考慮するかどうかを指定します。TRUE
(NODATA値およびその値の範囲を考慮する)またはFALSE
(NODATA値およびその値の範囲を考慮しない)のいずれかを指定します。デフォルト値はFALSE
です。この値がTRUE
で、リサンプリング・メソッドがBILINEAR
、BIQUADRATIC
、CUBIC
、AVERAGE4
またはAVERAGE16
の場合、リサンプリングの計算に含まれるセル値がNODATA値であると、リサンプリングの結果も常にNODATA値になります。複数のNODATA値または値の範囲が存在する場合、結果のNODATA値は、現行のラスター・レイヤーに関連付けられているNODATA値の最小値になります。
georaster
がNULLまたは空白のGeoRasterオブジェクトである場合、またはgeoraster
のピラミッド・データは存在しているが、pyramidParams
で指定されたピラミッド・パラメータと同じパラメータで作成されている場合、このプロシージャは処理を実行しません。
georaster
のピラミッド・データが存在し、pyramidParams
で指定されたものとは異なるresampling
値を使用して作成されている場合、古いピラミッド・データは削除され、新しいピラミッド・データが生成されます。ただし、pyramidParams
に異なるnodata
を指定しても、ピラミッド・データは再生成されません。新しいnodata
値を有効にするには、古いピラミッド・データを削除してそれを再生成する必要があります。
rLevel
値を指定しない場合、rLevel
値はデフォルト値に設定されます。デフォルト値は次のように計算されます。
(int)(log2(a / 64))
式の各変数の意味は、次のとおりです。
-
log2
: 底が2の対数関数です。 -
a
: 元の次元サイズの行または列の小さい方。
デフォルトの場合、最上位レベルの全体像(最上位レベルの最小ピラミッド)では、行次元と列次元のいずれか小さい方のサイズは64から128です。rLevel
値を低解像度の最大レベルより大きい値に指定した場合、rLevel
値は低解像度の最大レベルに設定されます。最大レベルは次のように計算されます。
(int)(log2(a))
この場合、最上位レベルの全体像では、その行次元と列次元のいずれか小さい方のサイズは1になります。
georaster
が無効な場合、例外が発生します。
例
次の例では、GeoRasterオブジェクトのピラミッド・データを作成します。
DECLARE gr sdo_georaster; BEGIN SELECT georaster INTO gr FROM georaster_table WHERE georid = 6 FOR UPDATE; -- Generate pyramids. sdo_geor.generatePyramid(gr, 'rLevel=5, resampling=NN'); -- Update the original GeoRaster object. UPDATE georaster_table SET georaster = gr WHERE georid = 6; COMMIT; END; /
7.23 SDO_GEOR.generateSpatialExtent
形式
SDO_GEOR.generateSpatialExtent( georaster IN SDO_GEORASTER, height IN NUMBER DEFAULT NULL ) RETURN SDO_GEOMETRY;
説明
GeoRasterオブジェクトの空間エクステント(フットプリント)を含む空間ジオメトリを生成します。
使用上の注意
戻されるSDO_GEOMETRYオブジェクトは、GeoRasterオブジェクトのモデル座標系に基づいています。GeoRasterオブジェクトが地理参照されていない場合、SDO_GEOMETRYオブジェクトのSDO_SRID値はNULLであり(つまり、フットプリント・ジオメトリはセル空間にある)、地理参照されている場合は、SDO_GEOMETRYオブジェクトのSDO_SRID値はモデルSRIDになります。具体的には、次のようになります。
-
GeoRasterオブジェクトが地理参照されていない場合、またはモデル座標系が投影座標の場合、空間エクステント・オブジェクトは8つの境界点から導出される単一のポリゴンです。
-
モデル座標系が測地座標系の場合、空間エクステントはオブジェクトの空間フットプリントに応じて圧縮されます。フットプリントの領域が地表面積の半分以下の場合、結果は単一の測地ポリゴンです。それ以外の場合、生成された空間エクステント・オブジェクトとして測地MBRが戻され、この戻されたオブジェクトはOracle Spatial and Graphの検証ルールに従って無効なジオメトリになりますが、索引および問合せ操作はこの戻されたオブジェクトで動作します。
フットプリントは、モデル空間の領域全体を含むように、GeoRasterオブジェクトのモデル座標の位置(CENTER
またはUPPERLEFT
)に基づいて自動的に調整されます。地理参照ではない場合、CENTER
がモデル座標の位置のデフォルトです。
モデル座標系が3次元の場合、生成される空間エクステントは3次元のジオメトリです。生成された値に基づいて空間索引を作成するには、索引をGeoRasterオブジェクトのspatialExtent
属性に保存する前に、2次元のジオメトリに変換する必要があります。異なる次元間の変換については、『Oracle Spatial and Graph開発者ガイド』を参照してください。
このファンクションはGeoRasterオブジェクトの空間エクステントを設定しません(「spatialExtent属性」
に示すspatialExtent属性を参照)。空間エクステントの設定の詳細は、「空間エクステントの生成と設定」を参照してください。
georaster
がNULLの場合、このファンクションはNULLのSDO_GEOMETRYオブジェクトを戻します。georaster
が無効な場合、例外が発生します。
例
次の例では、Z次元(高さ)の値が10の3次元空間エクステントが、地理3D座標系4327(モデルSRID)内に生成されます。(出力形式は多少変更されています。)
SELECT SDO_GEOR.generateSpatialExtent(georaster,10) spatialExtent FROM georaster_table where georid=10; SPATIALEXTENT(A.GEORASTER,10)(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_IN ---------------------------------------------------------------------------------- SDO_GEOMETRY(3003, 4327, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARRAY(.181818182, 1.1627907, 10, 12.1228111, 1.07010227, 10, 19.3902574, 1.07010229, 10, 25.1482989, 1.07010229, 10, 30.0714774, 1.07010229, 10, 34.4500035, 1.07010229, 10, 38.3920079, 1.07010229, 10, 42.0490801, 1.07010229, 10, 45.4612165, 1.07010229, 10, 48.6719786, 1.07010229, 10, 53.6193472, 1.07010229, 10, 53.6193472, 12.346373, 10, 53.6178888, 15.3903048, 10, 53.6178888, 18.3032341, 10, 50.6322061, 18.3032341, 10, 47.5331761, 18.3032341, 10, 44.2541078, 18.3032341, 10, 40.7594212, 18.3032341, 10, 37, 18.3032341, 10, 32.9046537, 18.3032341, 10, 28.3630834, 18.3032341, 10, 23.1869539, 18.3032341, 10, 17, 18.3032341, 10, -2.220E-16, 18.3032341, 10, 0, 16.3247208, 10, -2.220E-16, 13.6133114, 10, .181818182, 1.1627907, 10))
次の例では、GEORASTER_TABLE表のGEORASTER列に含まれているGeoRasterオブジェクトの空間エクステント・ジオメトリを戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
SELECT sdo_geor.generateSpatialExtent(georaster) spatialExtent FROM georaster_table WHERE georid=2; SPATIALEXTENT(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINA -------------------------------------------------------------------------------- SDO_GEOMETRY(2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARR AY(0, 0, 256, 0, 511, 0, 511, 256, 511, 511, 256, 511, 0, 511, 0, 256, 0, 0)) SET NUMWIDTH 20 SELECT sdo_geor.generateSpatialExtent(georaster) spatialExtent FROM georaster_table WHERE georid=4; SPATIALEXTENT(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINA -------------------------------------------------------------------------------- SDO_GEOMETRY(2003, 82263, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_AR RAY(1828466.0909315, 646447.1932945, 1828466.0909315, 644479.85524, 1828466.0909 315, 642512.5171855, 1830433.428986, 642512.5171855, 1832400.7670405, 642512.517 1855, 1832400.7670405, 644479.85524, 1832400.7670405, 646447.1932945, 1830433.42 8986, 646447.1932945, 1828466.0909315, 646447.1932945))
7.24 SDO_GEOR.generateSpatialResolutions
構文(プロシージャ)
SDO_GEOR.generateSpatialResolutions( georaster IN OUT SDO_GEORASTER, outResolution OUT SDO_NUMBER_ARRAY);
構文(ファンクション)
SDO_GEOR.generateSpatialResolutions( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER DEFAULT NULL, SRID IN NUMBER DEFAULT NULL, resolutionUnit IN VARCHAR2 DEFAULT NULL, ) RETURN SDO_NUMBER_ARRAY;
説明
GeoRasterオブジェクトの各空間次元に沿って空間解像度の値を生成します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- outResolution
-
GeoRasterオブジェクトの生成される空間解像度を指定します。これは、それぞれX軸とY軸の空間解像度を表す2つの数値の配列です。
- pyramidLevel
-
戻される解像度の値のピラミッド・レベルを指定します。デフォルトはピラミッド・レベル0です。
- SRID
-
座標系を指定します。MDSYS.CS_SRS表のSRID列の値を指定する必要があります。srid値に0 (ゼロ)を指定することはできません。指定しない場合、デフォルトは
georaster
に関連付けられたSRIDです。 - resolutionUnit
-
測定単位(
unit=
を含む引用符で囲まれた文字列)を指定します。指定しない場合、SRID
に関連付けられた単位が使用されます。
使用上の注意
SDO_GEOR.generateSpatialResolutionsには2つの構文があります。
-
プロシージャ構文では、生成される空間解像度をGeoRasterオブジェクトのメタデータに設定します。GeoRasterオブジェクトのメタデータは更新されます。生成された空間解像度を取得するためには、GeoRasterオブジェクトを地理参照する必要があります。
-
ファンクションの構文では、GeoRasterオブジェクトのメタデータの地理参照情報に基づいて空間解像度を生成して戻します。GeoRasterオブジェクトのメタデータは更新されません。
GeoRasterオブジェクトを地理参照する必要があります。生成される空間解像度は、GeoRasterオブジェクトの中央のセルの解像度になります。
戻される数値の配列で、各値は、ピクセルの空間次元によって表現されるデータ領域に関連付けられた測定単位の数を示します。たとえば、空間解像度の値が(10,10)で、地上データの測定単位がmである場合、各ピクセルは10m×10mの領域を示します。
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
SDO_GEOR.getSpatialResolutionsファンクションの「使用上の注意」も参照してください。
例
次の例では、指定したGeoRasterオブジェクトのピラミッド・レベル2で各空間次元に沿って空間解像度の値を生成します。
SELECT sdo_geor.generateSpatialResolutions(georaster, 2, 4326, null) FROM georaster_table WHERE georid=2; SDO_GEOR.GENERATESPATIALRESOLUTIONS(GEORASTER,2,4326,NULL) -------------------------------------------------------------------------------- SDO_NUMBER_ARRAY(.000024266, .000018006)
7.25 SDO_GEOR.generateStatistics
構文(メタデータに格納する)
SDO_GEOR.generateStatistics( georaster IN OUT SDO_GEORASTER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_NUMBER_ARRAY, histogram IN VARCHAR2, layerNumbers IN VARCHAR2 DEFAULT NULL, useBin IN VARCHAR2 DEFAULT 'TRUE', binFunction IN SDO_NUMBER_ARRAY DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE' ) RETURN VARCHAR2;
または
SDO_GEOR.generateStatistics( georaster IN OUT SDO_GEORASTER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_GEOMETRY, histogram IN VARCHAR2, layerNumbers IN VARCHAR2 DEFAULT NULL, useBin IN VARCHAR2 DEFAULT 'TRUE', binFunction IN SDO_NUMBER_ARRAY DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE' ) RETURN VARCHAR2;
構文(メタデータに格納しない)
SDO_GEOR.generateStatistics( georaster IN OUT SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_NUMBER_ARRAY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE', parallelParam IN VARCHAR2 DEFAULT NULL, ) RETURN SDO_NUMBER_ARRAY;
または
SDO_GEOR.generateStatistics( georaster IN OUT SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_GEOMETRY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE', polygonClip IN VARCHAR2 DEFAULT NULL', parallelParam IN VARCHAR2 DEFAULT NULL, ) RETURN SDO_NUMBER_ARRAY;
説明
1つ以上のレイヤーまたは1つ以上のレイヤーとピラミッド・レベルに関連付けられた統計データを計算します。ファンクション構文の2つのセットには、使用上の大きな違いがあります。
-
メタデータに格納する構文では、指定した各レイヤー(オプションでラスター全体)のGeoRasterオブジェクト・メタデータに統計データも設定します。これらの構文は、操作の成功または失敗を示す文字列
TRUE
またはFALSE
を戻します。 -
メタデータに格納しない構文では、GeoRasterオブジェクト・メタデータを設定せず、1つのレイヤーまたは指定したレイヤーの集計に関する統計を計算します。これらの構文は、集計された最小値、最大値、平均値、中央値、最頻値および標準偏差値を表す6つの数値を持つSDO_NUMBER_ARRAYオブジェクトを戻します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- pyramidLevel
-
操作を実行するピラミッド・レベルを指定します。
- samplingFactor
-
サンプリング係数として、1/(
n
*n)の分母nを'samplingFactor=n'の書式で指定します。この値は、統計の算出時に行次元と列次元の両方でスキップするセルの数を表します。たとえば、samplingFactor
が4の場合はセルの16分の1が統計の算出に使用されますが、samplingFactor
が1の場合はすべてのセルが統計の算出に使用されます。この数値が大きくなるほど統計の精度は下がる可能性がありますが、統計算出の速度は速くなります。 - samplingWindow
-
数値配列またはSDO_GEOMETRYオブジェクトとして指定される、統計を生成するサンプリング・ウィンドウを指定します。データ型が(
VARRAY(1048576) OF NUMBER
として定義された) SDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合、それはモデル空間にあるとラスター空間に変換され、ラスター空間のジオメトリ・オブジェクトの最小境界矩形(MBR)がウィンドウとして使用されます。デフォルト値はイメージ全体です。どちらの場合も、ラスター空間のサンプリング・ウィンドウのMBRとラスター空間のGeoRasterオブジェクトのMBRの共通部分が統計の計算に使用されます。ただし、
polygonClip
がTRUE
でsamplingWindow
ジオメトリ・オブジェクトがサンプリング・ウィンドウのMBRのかわりに操作に使用される場合、samplingWindow
ジオメトリ内のセルのみがカウントされます。 - histogram
-
ヒストグラムの算出と格納を行う場合は
TRUE
を指定し、ヒストグラムの算出と格納を行わない場合はFALSE
を指定します。ヒストグラムの詳細は、「SDO_GEOR_HISTOGRAMオブジェクト型」を参照してください。<histogram>
要素のXML定義およびhistogramType
複合型は、「GeoRasterメタデータのXMLスキーマ」に含まれています。 - layerNumbers
-
統計を算出するレイヤーの番号を指定します。このパラメータは文字列で指定し、数値、ハイフン(-)で示した数値の範囲、および数値と数値の範囲を区切るカンマを使用できます。たとえば、
'1,3-5,7'
はレイヤー1、3、4、5および7を示します。レイヤー0 (ゼロ)はオブジェクト・レイヤーを示します。 - bandNumbers
-
値が統計の計算に使用されるレイヤーのバンド座標番号を指定します。このパラメータは文字列で指定し、数値、ハイフン(-)で示した数値の範囲、および数値と数値の範囲を区切るカンマを使用できます。たとえば、
'0,1,3-5,7'
はレイヤー1、2、4、5、6および8を指定します。bandNumbers
がNULLの場合、統計の計算にすべてのバンドが使用されます。 - useBin
-
統計の生成時に、指定されたビン・ファンクション(
binFunction
パラメータで指定)を使用するかどうかを指定します。TRUE
(デフォルト)の場合、使用されるビン・ファンクションは次の順序で決定されます。(1)binFunction
パラメータで指定されたビン・ファンクション(NULLでない場合)、(2)GeoRaster XMLメタデータの<binFunction>
要素で指定されたビン・ファンクション(指定されている場合)、(3)動的に生成されたビン・ファンクション(「使用上の注意」を参照)。FALSE
の場合、使用されるビン・ファンクションは動的に生成され、binFunction
パラメータおよび<binFunction>
要素は無視されます。ビン・ファンクションについては、SDO_GEOR.setBinFunctionプロシージャの「使用上の注意」を参照してください。
- binFunction
-
ビン・タイプ、ビンの合計数、最初のビン番号、最小セル値および最大セル値を指定する要素を含む配列として、ビン・ファンクションを指定します。SDO_NUMBER_ARRAY型は、
VARRAY(1048576) OF NUMBER
として定義されます。SQO_GEOR.generateStatisticsのビン・ファンクションの詳細は、「使用上の注意」を参照してください。ビン・ファンクションおよび例については、SDO_GEOR.setBinFunctionプロシージャの「使用上の注意」を参照してください。 - nodata
-
各セル値と、メタデータに定義されたNODATA値を、統計算出時に比較するかどうかを指定します。
TRUE
を指定した場合は、NODATA値を持つピクセルはすべて考慮されず、FALSE
(デフォルト)を指定した場合は、NODATA値を持つピクセルは通常のピクセルとみなされます。NODATA値および値の範囲の詳細は、「NODATA値および値の範囲」を参照してください。 - polygonClip
-
文字列
TRUE
では、samplingWindow
ジオメトリ・オブジェクトが操作で使用されますが、文字列FALSE
またはNULL値では、samplingWindow
ジオメトリ・オブジェクトの最小境界矩形(MBR)が操作で使用されます。 - parallelParam
-
操作の並列度を指定します。指定する場合、
parallel=
nという形式である必要があります(nは1より大きい)。データベース・オプティマイザでは、このパラメータによって指定された並列度を使用します。指定しない場合、デフォルトでパラレル処理は行われません。(詳細は、「GeoRasterでのパラレル処理」を参照してください。)並列性を指定すると、このファンクションの結果をロールバックできません。
使用上の注意
このファンクションは、GeoRasterメタデータのXMLスキーマ(「GeoRasterメタデータのXMLスキーマ」を参照)の<statisticDatasetType>
要素によって記述された統計データを算出して設定できます。
samplingWindow
がGeoRasterオブジェクト外であるか、またはNODATA値のみが含まれる場合、次のエラーが発生します。
ORA-13393: null or invalid samplingWindow parameter
histogram
がTRUE
の場合、このファンクションは使用するビン・ファンクションに基づいて各ビンの範囲を決定し、各範囲内で各ピクセル値の合計を算出します。ヒストグラムとそのビン・ファンクションとは、各ビンがヒストグラムの(value, count)ペアにマップされると、その下限がヒストグラムの(value, count)ペアの対応する値にマップされるという関係になります。ただし、次のような例外があります。
-
Min_r < Minの場合は、ヒストグラムの最初のペアとして、もう1つのペア(Min_r, count)が追加されます。(Min_rはこのファンクションによって算出されたデータセットの実際の最小値であり、Minはビン・ファンクションに指定された
min
値です。) -
Max_r > Maxの場合は、ヒストグラムの最後のペアとして、もう1つのペア(Max_r, count)が追加されます。(Max_rはこのファンクションによって算出されたデータセットの実際の最大値であり、Maxはビン・ファンクションに指定された
max
値です。) -
先頭および末尾のペアのうちcountが0のペアは、表示されません。次に例を示します。
(1,0) (2,0) (3,11) (4,12) becomes (3,11) (4,12) (1,11) (2,12) (3,0) (4,0) becomes (1,11) (2,12)
histogram
がTRUE
の場合、XMLメタデータ内の既存のヒストグラムは新しく生成されたヒストグラムに置き換えられます。
SQO_GEOR.generateStatisticsがサポートするのはLINEARビン・ファンクション(binType
= 0)のみであり、LOGARITHMまたはEXPLICITビン・ファンクションはサポートされません。(すべてのビン・ファンクション・タイプのXML定義は、「GeoRasterメタデータのXMLスキーマ」に含まれます。)useBin
パラメータ値がFALSEの場合、このファンクションではbinFunction
パラメータ値およびGeoRaster XMLメタデータの<binFunction>
要素は無視され、LINEARビン・ファンクションが使用されます。LINEARビン・ファンクションのmin
値およびmax
値は、そのデータ・セットにおける実際の最小値および最大値であり、numbins
値はセル深度によって次のようになります。
-
cellDepth
= 1の場合、numbins
= 2 -
cellDepth
= 2の場合、numbins
= 4 -
cellDepth
= 4の場合、numbins
= 8 -
cellDepth
>= 8の場合、numbins
= 256
useBin
パラメータ値がTRUEの場合、このファンクションでは次のようにビン・ファンクションが使用されます。
-
binFunction
パラメータで有効なビン・ファンクションが指定されている場合は、そのファンクションが使用されます。 -
それ以外の場合で、GeoRasterメタデータに有効なビン・ファンクションが定義されていれば、そのファンクションが使用されます。
-
前述のいずれでもない場合、
useBin
パラメータ値がFALSEであるときに使用されるものと同じビン・ファンクションが使用されます。
このファンクションはGeoRasterで統計を算出して(オプションで)設定しますが、設定する統計を指定する場合には、SDO_GEOR.setStatisticsプロシージャを使用します。
レイヤーに関連付けられた統計データを取得するには、SDO_GEOR.getStatisticsファンクションを使用します。
例
次の例では、統計データおよびヒストグラムを生成します。
DECLARE gr SDO_GEORASTER; ret VARCHAR2(256); window SDO_NUMBER_ARRAY := SDO_NUMBER_ARRAY(20,10,50,50); BEGIN SELECT georaster INTO gr FROM georaster_table WHERE georid=1 FOR UPDATE; SDO_GEOR.setBinFunction(gr,1,sdo_number_array(0,10,1,50,200)); ret := SDO_GEOR.generateStatistics(gr, 'samplingFactor=5', window, 'TRUE', '1-1', 'TRUE'); UPDATE georaster_table SET georaster=gr WHERE georid=1; COMMIT; END; /
次の例では、ピラミッド・レベル1ですべてのバンドの統計データを生成しますが、ヒストグラムを作成したり、GeoRasterオブジェクト・メタデータを変更することはありません。
DECLARE gr sdo_georaster; window sdo_geometry; stat sdo_number_array; BEGIN SELECT tmimage INTO gr FROM landsat WHERE id=2021; stat:=sdo_geor.generateStatistics(gr,1,'samplingFactor=7',window,null,'false'); dbms_output.put_line('min='||stat(1)); dbms_output.put_line('max='||stat(2)); dbms_output.put_line('mean='||stat(3)); dbms_output.put_line('median='||stat(4)); dbms_output.put_line('mode='||stat(5)); dbms_output.put_line('std='||stat(6)); END; /
7.26 SDO_GEOR.generateStatisticsMax
形式
SDO_GEOR.generateStatisticsMax( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_NUMBER_ARRAY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE' ) RETURN NUMBER;
または、
SDO_GEOR.generateStatisticsMax( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_GEOMETRY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE', polygonClip IN VARCHAR2 DEFAULT NULL ) RETURN NUMBER;
または
SDO_GEOR.generateStatisticsMax( georaster IN OUT SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_NUMBER_ARRAY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE', parallelParam IN VARCHAR2 DEFAULT NULL, ) RETURN SDO_NUMBER_ARRAY;
または
SDO_GEOR.generateStatisticsMax( georaster IN OUT SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_GEOMETRY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE', polygonClip IN VARCHAR2 DEFAULT NULL', parallelParam IN VARCHAR2 DEFAULT NULL, ) RETURN SDO_NUMBER_ARRAY;
説明
指定されたピラミッド・レベルで1つ以上のレイヤーに関連付けられた統計データを計算して、最大値を戻します。(GeoRasterオブジェクトのメタデータは変更されません。)
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- pyramidLevel
-
戻される解像度の値のピラミッド・レベルを指定します。デフォルトはピラミッド・レベル0です。
- samplingFactor
-
サンプリング係数として、1/(
n
*n)の分母nを'samplingFactor=n'の書式で指定します。この値は、統計の算出時に行次元と列次元の両方でスキップするセルの数を表します。たとえば、samplingFactor
が4の場合はセルの16分の1が統計の算出に使用されますが、samplingFactor
が1の場合はすべてのセルが統計の算出に使用されます。この数値が大きくなるほど統計の精度は下がる可能性がありますが、統計算出の速度は速くなります。 - samplingWindow
-
数値配列またはSDO_GEOMETRYオブジェクトとして指定される、統計を生成するサンプリング・ウィンドウを指定します。データ型が(
VARRAY(1048576) OF NUMBER
として定義された) SDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合、それはモデル空間にあるとラスター空間に変換され、ラスター空間のジオメトリ・オブジェクトの最小境界矩形(MBR)がウィンドウとして使用されます。デフォルト値はイメージ全体です。どちらの場合も、ラスター空間のサンプリング・ウィンドウのMBRとラスター空間のGeoRasterオブジェクトのMBRの共通部分が統計の計算に使用されます。ただし、
polygonClip
がTRUE
でsamplingWindow
ジオメトリ・オブジェクトがサンプリング・ウィンドウのMBRのかわりに操作に使用される場合、samplingWindow
ジオメトリ内のセルのみがカウントされます。データ型がSDO_GEOMETRYの場合は、SDO_SRID要件についてSDO_GEOR.generateStatisticsファンクションの「使用上の注意」も参照してください。
- bandNumbers
-
統計を算出するレイヤーのバンド座標番号を指定します。このパラメータは文字列で指定し、数値、ハイフン(-)で示した数値の範囲、および数値と数値の範囲を区切るカンマを使用できます。たとえば、
'1,3-5,7'
はレイヤー2、4、5、6および8を指定します。bandNumbers
がNULLの場合、統計の計算にすべてのバンドが使用されます。 - nodata
-
各セル値と、メタデータに定義されたNODATA値を、統計算出時に比較するかどうかを指定します。
TRUE
を指定した場合は、NODATA値を持つピクセルはすべて考慮されず、FALSE
(デフォルト)を指定した場合は、NODATA値を持つピクセルは通常のピクセルとみなされます。NODATA値および値の範囲の詳細は、「NODATA値および値の範囲」を参照してください。 - polygonClip
-
文字列
TRUE
では、samplingWindow
ジオメトリ・オブジェクトが操作で使用されますが、文字列FALSE
またはNULL値では、samplingWindow
ジオメトリ・オブジェクトの最小境界矩形(MBR)が操作で使用されます。 - parallelParam
-
操作の並列度を指定します。指定する場合、
parallel=
nという形式である必要があります(nは1より大きい)。データベース・オプティマイザでは、このパラメータによって指定された並列度を使用します。指定しない場合、デフォルトでパラレル処理は行われません。(詳細は、「GeoRasterでのパラレル処理」を参照してください。)並列性を指定すると、このファンクションの結果をロールバックできません。
使用上の注意
このファンクションは、統計データを計算してMAX
値を戻します。(統計データは、GeoRasterメタデータのXMLスキーマ(「GeoRasterメタデータのXMLスキーマ」を参照)の<statisticDatasetType>
要素によって記述されますが、このファンクションではメタデータは更新されません。)
samplingWindow
がGeoRasterオブジェクト外であるか、またはNODATA値のみが含まれる場合、次のエラーが発生します。
ORA-13393: null or invalid samplingWindow parameter
SDO_GEOR.generateStatisticsファンクションも参照してください。
例
次の例では、ピラミッド・レベル1ですべてのバンドの統計データを計算して、最大値を戻します。
DECLARE gr sdo_georaster; window sdo_geometry; max number; BEGIN SELECT tmimage INTO gr FROM landsat WHERE id=2021; max:=sdo_geor.generateStatisticsMax(gr,1,'samplingFactor=7',window,null,'false'); END; /
7.27 SDO_GEOR.generateStatisticsMean
形式
SDO_GEOR.generateStatisticsMean( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_NUMBER_ARRAY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE' ) RETURN NUMBER;
または
SDO_GEOR.generateStatisticsMean( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_GEOMETRY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE', polygonClip IN VARCHAR2 DEFAULT NULL ) RETURN NUMBER;
または
SDO_GEOR.generateStatisticsMean( georaster IN OUT SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_NUMBER_ARRAY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE', parallelParam IN VARCHAR2 DEFAULT NULL, ) RETURN SDO_NUMBER_ARRAY;
または
SDO_GEOR.generateStatisticsMean( georaster IN OUT SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_GEOMETRY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE', polygonClip IN VARCHAR2 DEFAULT NULL', parallelParam IN VARCHAR2 DEFAULT NULL, ) RETURN SDO_NUMBER_ARRAY;
説明
指定されたピラミッド・レベルで1つ以上のレイヤーに関連付けられた統計データを計算して、平均値を戻します。(GeoRasterオブジェクトのメタデータは変更されません。)
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- pyramidLevel
-
戻される解像度の値のピラミッド・レベルを指定します。デフォルトはピラミッド・レベル0です。
- samplingFactor
-
サンプリング係数として、1/(
n
*n)の分母nを'samplingFactor=n'の書式で指定します。この値は、統計の算出時に行次元と列次元の両方でスキップするセルの数を表します。たとえば、samplingFactor
が4の場合はセルの16分の1が統計の算出に使用されますが、samplingFactor
が1の場合はすべてのセルが統計の算出に使用されます。この数値が大きくなるほど統計の精度は下がる可能性がありますが、統計算出の速度は速くなります。 - samplingWindow
-
数値配列またはSDO_GEOMETRYオブジェクトとして指定される、統計を生成するサンプリング・ウィンドウを指定します。データ型が(
VARRAY(1048576) OF NUMBER
として定義された) SDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合、それはモデル空間にあるとラスター空間に変換され、ラスター空間のジオメトリ・オブジェクトの最小境界矩形(MBR)がウィンドウとして使用されます。デフォルト値はイメージ全体です。どちらの場合も、ラスター空間のサンプリング・ウィンドウのMBRとラスター空間のGeoRasterオブジェクトのMBRの共通部分が統計の計算に使用されます。ただし、
polygonClip
がTRUE
でsamplingWindow
ジオメトリ・オブジェクトがサンプリング・ウィンドウのMBRのかわりに操作に使用される場合、samplingWindow
ジオメトリ内のセルのみがカウントされます。データ型がSDO_GEOMETRYの場合は、SDO_SRID要件についてSDO_GEOR.generateStatisticsファンクションの「使用上の注意」も参照してください。
- bandNumbers
-
統計を算出するレイヤーのバンド座標番号を指定します。このパラメータは文字列で指定し、数値、ハイフン(-)で示した数値の範囲、および数値と数値の範囲を区切るカンマを使用できます。たとえば、
'1,3-5,7'
はレイヤー2、4、5、6および8を指定します。bandNumbers
がNULLの場合、統計の計算にすべてのバンドが使用されます。 - nodata
-
各セル値と、メタデータに定義されたNODATA値を、統計算出時に比較するかどうかを指定します。
TRUE
を指定した場合は、NODATA値を持つピクセルはすべて考慮されず、FALSE
(デフォルト)を指定した場合は、NODATA値を持つピクセルは通常のピクセルとみなされます。NODATA値および値の範囲の詳細は、「NODATA値および値の範囲」を参照してください。 - polygonClip
-
文字列
TRUE
では、samplingWindow
ジオメトリ・オブジェクトが操作で使用されますが、文字列FALSE
またはNULL値では、samplingWindow
ジオメトリ・オブジェクトの最小境界矩形(MBR)が操作で使用されます。 - parallelParam
-
操作の並列度を指定します。指定する場合、
parallel=
nという形式である必要があります(nは1より大きい)。データベース・オプティマイザでは、このパラメータによって指定された並列度を使用します。指定しない場合、デフォルトでパラレル処理は行われません。(詳細は、「GeoRasterでのパラレル処理」を参照してください。)並列性を指定すると、このファンクションの結果をロールバックできません。
使用上の注意
このファンクションは、統計データを計算してMEAN
値を戻します。(統計データは、GeoRasterメタデータのXMLスキーマ(「GeoRasterメタデータのXMLスキーマ」を参照)の<statisticDatasetType>
要素によって記述されますが、このファンクションではメタデータは更新されません。)
samplingWindow
がGeoRasterオブジェクト外であるか、またはNODATA値のみが含まれる場合、次のエラーが発生します。
ORA-13393: null or invalid samplingWindow parameter
SDO_GEOR.generateStatisticsファンクションも参照してください。
例
次の例では、ピラミッド・レベル1ですべてのバンドの統計データを計算して、平均値を戻します。
DECLARE gr sdo_georaster; window sdo_geometry; mean number; BEGIN SELECT tmimage INTO gr FROM landsat WHERE id=2021; mean:=sdo_geor.generateStatisticsMean(gr,1,'samplingFactor=7',window,null,'false'); END; /
7.28 SDO_GEOR.generateStatisticsMedian
形式
SDO_GEOR.generateStatisticsMedian( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_NUMBER_ARRAY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE' ) RETURN NUMBER;
または
SDO_GEOR.generateStatisticsMedian( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_GEOMETRY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE', polygonClip IN VARCHAR2 DEFAULT NULL ) RETURN NUMBER;
または
SDO_GEOR.generateStatisticsMedian( georaster IN OUT SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_NUMBER_ARRAY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE', parallelParam IN VARCHAR2 DEFAULT NULL, ) RETURN SDO_NUMBER_ARRAY;
または
SDO_GEOR.generateStatisticsMedian( georaster IN OUT SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_GEOMETRY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE', polygonClip IN VARCHAR2 DEFAULT NULL', parallelParam IN VARCHAR2 DEFAULT NULL, ) RETURN SDO_NUMBER_ARRAY;
説明
指定されたピラミッド・レベルで1つ以上のレイヤーに関連付けられた統計データを計算して、中央値を戻します。(GeoRasterオブジェクトのメタデータは変更されません。)
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- pyramidLevel
-
戻される解像度の値のピラミッド・レベルを指定します。デフォルトはピラミッド・レベル0です。
- samplingFactor
-
サンプリング係数として、1/(
n
*n)の分母nを'samplingFactor=n'の書式で指定します。この値は、統計の算出時に行次元と列次元の両方でスキップするセルの数を表します。たとえば、samplingFactor
が4の場合はセルの16分の1が統計の算出に使用されますが、samplingFactor
が1の場合はすべてのセルが統計の算出に使用されます。この数値が大きくなるほど統計の精度は下がる可能性がありますが、統計算出の速度は速くなります。 - samplingWindow
-
数値配列またはSDO_GEOMETRYオブジェクトとして指定される、統計を生成するサンプリング・ウィンドウを指定します。データ型が(
VARRAY(1048576) OF NUMBER
として定義された) SDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合、それはモデル空間にあるとラスター空間に変換され、ラスター空間のジオメトリ・オブジェクトの最小境界矩形(MBR)がウィンドウとして使用されます。デフォルト値はイメージ全体です。どちらの場合も、ラスター空間のサンプリング・ウィンドウのMBRとラスター空間のGeoRasterオブジェクトのMBRの共通部分が統計の計算に使用されます。ただし、
polygonClip
がTRUE
でsamplingWindow
ジオメトリ・オブジェクトがサンプリング・ウィンドウのMBRのかわりに操作に使用される場合、samplingWindow
ジオメトリ内のセルのみがカウントされます。データ型がSDO_GEOMETRYの場合は、SDO_SRID要件についてSDO_GEOR.generateStatisticsファンクションの「使用上の注意」も参照してください。
- bandNumbers
-
統計を算出するレイヤーのバンド座標番号を指定します。このパラメータは文字列で指定し、数値、ハイフン(-)で示した数値の範囲、および数値と数値の範囲を区切るカンマを使用できます。たとえば、
'1,3-5,7'
はレイヤー2、4、5、6および8を指定します。bandNumbers
がNULLの場合、統計の計算にすべてのバンドが使用されます。 - nodata
-
各セル値と、メタデータに定義されたNODATA値を、統計算出時に比較するかどうかを指定します。
TRUE
を指定した場合は、NODATA値を持つピクセルはすべて考慮されず、FALSE
(デフォルト)を指定した場合は、NODATA値を持つピクセルは通常のピクセルとみなされます。NODATA値および値の範囲の詳細は、「NODATA値および値の範囲」を参照してください。 - polygonClip
-
文字列
TRUE
では、samplingWindow
ジオメトリ・オブジェクトが操作で使用されますが、文字列FALSE
またはNULL値では、samplingWindow
ジオメトリ・オブジェクトの最小境界矩形(MBR)が操作で使用されます。 - parallelParam
-
操作の並列度を指定します。指定する場合、
parallel=
nという形式である必要があります(nは1より大きい)。データベース・オプティマイザでは、このパラメータによって指定された並列度を使用します。指定しない場合、デフォルトでパラレル処理は行われません。(詳細は、「GeoRasterでのパラレル処理」を参照してください。)並列性を指定すると、このファンクションの結果をロールバックできません。
使用上の注意
このファンクションは、統計データを計算してMEDIAN
値を戻します。(統計データは、GeoRasterメタデータのXMLスキーマ(「GeoRasterメタデータのXMLスキーマ」を参照)の<statisticDatasetType>
要素によって記述されますが、このファンクションではメタデータは更新されません。)
samplingWindow
がGeoRasterオブジェクト外であるか、またはNODATA値のみが含まれる場合、次のエラーが発生します。
ORA-13393: null or invalid samplingWindow parameter
SDO_GEOR.generateStatisticsファンクションも参照してください。
例
次の例では、ピラミッド・レベル1ですべてのバンドの統計データを計算して、中央値を戻します。
DECLARE gr sdo_georaster; window sdo_geometry; median number; BEGIN SELECT tmimage INTO gr FROM landsat WHERE id=2021; median:=sdo_geor.generateStatisticsMedian(gr,1,'samplingFactor=7',window,null,'false'); END; /
7.29 SDO_GEOR.generateStatisticsMin
形式
SDO_GEOR.generateStatisticsMin( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_NUMBER_ARRAY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE' ) RETURN NUMBER;
または
SDO_GEOR.generateStatisticsMin( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_GEOMETRY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE', polygonClip IN VARCHAR2 DEFAULT NULL ) RETURN NUMBER;
または
SDO_GEOR.generateStatisticsMin( georaster IN OUT SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_NUMBER_ARRAY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE', parallelParam IN VARCHAR2 DEFAULT NULL, ) RETURN SDO_NUMBER_ARRAY;
または
SDO_GEOR.generateStatisticsMin( georaster IN OUT SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_GEOMETRY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE', polygonClip IN VARCHAR2 DEFAULT NULL', parallelParam IN VARCHAR2 DEFAULT NULL, ) RETURN SDO_NUMBER_ARRAY;
説明
指定されたピラミッド・レベルで1つ以上のレイヤーに関連付けられた統計データを計算して、最小値を戻します。(GeoRasterオブジェクトのメタデータは変更されません。)
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- pyramidLevel
-
戻される解像度の値のピラミッド・レベルを指定します。デフォルトはピラミッド・レベル0です。
- samplingFactor
-
サンプリング係数として、1/(
n
*n)の分母nを'samplingFactor=n'の書式で指定します。この値は、統計の算出時に行次元と列次元の両方でスキップするセルの数を表します。たとえば、samplingFactor
が4の場合はセルの16分の1が統計の算出に使用されますが、samplingFactor
が1の場合はすべてのセルが統計の算出に使用されます。この数値が大きくなるほど統計の精度は下がる可能性がありますが、統計算出の速度は速くなります。 - samplingWindow
-
数値配列またはSDO_GEOMETRYオブジェクトとして指定される、統計を生成するサンプリング・ウィンドウを指定します。データ型が(
VARRAY(1048576) OF NUMBER
として定義された) SDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合、それはモデル空間にあるとラスター空間に変換され、ラスター空間のジオメトリ・オブジェクトの最小境界矩形(MBR)がウィンドウとして使用されます。デフォルト値はイメージ全体です。どちらの場合も、ラスター空間のサンプリング・ウィンドウのMBRとラスター空間のGeoRasterオブジェクトのMBRの共通部分が統計の計算に使用されます。ただし、
polygonClip
がTRUE
でsamplingWindow
ジオメトリ・オブジェクトがサンプリング・ウィンドウのMBRのかわりに操作に使用される場合、samplingWindow
ジオメトリ内のセルのみがカウントされます。データ型がSDO_GEOMETRYの場合は、SDO_SRID要件についてSDO_GEOR.generateStatisticsファンクションの「使用上の注意」も参照してください。
- bandNumbers
-
統計を算出するレイヤーのバンド座標番号を指定します。このパラメータは文字列で指定し、数値、ハイフン(-)で示した数値の範囲、および数値と数値の範囲を区切るカンマを使用できます。たとえば、
'1,3-5,7'
はレイヤー2、4、5、6および8を指定します。bandNumbers
がNULLの場合、統計の計算にすべてのバンドが使用されます。 - nodata
-
各セル値と、メタデータに定義されたNODATA値を、統計算出時に比較するかどうかを指定します。
TRUE
を指定した場合は、NODATA値を持つピクセルはすべて考慮されず、FALSE
(デフォルト)を指定した場合は、NODATA値を持つピクセルは通常のピクセルとみなされます。NODATA値および値の範囲の詳細は、「NODATA値および値の範囲」を参照してください。 - polygonClip
-
文字列
TRUE
では、samplingWindow
ジオメトリ・オブジェクトが操作で使用されますが、文字列FALSE
またはNULL値では、samplingWindow
ジオメトリ・オブジェクトの最小境界矩形(MBR)が操作で使用されます。 - parallelParam
-
操作の並列度を指定します。指定する場合、
parallel=
nという形式である必要があります(nは1より大きい)。データベース・オプティマイザでは、このパラメータによって指定された並列度を使用します。指定しない場合、デフォルトでパラレル処理は行われません。(詳細は、「GeoRasterでのパラレル処理」を参照してください。)並列性を指定すると、このファンクションの結果をロールバックできません。
使用上の注意
このファンクションは、統計データを計算してMIN
値を戻します。(統計データは、GeoRasterメタデータのXMLスキーマ(「GeoRasterメタデータのXMLスキーマ」を参照)の<statisticDatasetType>
要素によって記述されますが、このファンクションではメタデータは更新されません。)
samplingWindow
がGeoRasterオブジェクト外であるか、またはNODATA値のみが含まれる場合、次のエラーが発生します。
ORA-13393: null or invalid samplingWindow parameter
SDO_GEOR.generateStatisticsファンクションも参照してください。
例
次の例では、ピラミッド・レベル1ですべてのバンドの統計データを計算して、最小値を戻します。
DECLARE gr sdo_georaster; window sdo_geometry; min number; BEGIN SELECT tmimage INTO gr FROM landsat WHERE id=2021; min:=sdo_geor.generateStatisticsMin(gr,1,'samplingFactor=7',window,null,'false'); END; /
7.30 SDO_GEOR.generateStatisticsMode
形式
SDO_GEOR.generateStatisticsMode( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_NUMBER_ARRAY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE' ) RETURN NUMBER;
または
SDO_GEOR.generateStatisticsMode( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_GEOMETRY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE', polygonClip IN VARCHAR2 DEFAULT NULL ) RETURN NUMBER;
または
SDO_GEOR.generateStatisticsMode( georaster IN OUT SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_NUMBER_ARRAY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE', parallelParam IN VARCHAR2 DEFAULT NULL, ) RETURN SDO_NUMBER_ARRAY;
または
SDO_GEOR.generateStatisticsMode( georaster IN OUT SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_GEOMETRY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE', polygonClip IN VARCHAR2 DEFAULT NULL', parallelParam IN VARCHAR2 DEFAULT NULL, ) RETURN SDO_NUMBER_ARRAY;
説明
指定されたピラミッド・レベルで1つ以上のレイヤーに関連付けられた統計データを計算して、最頻値(最も頻繁に出現する値)を戻します。(GeoRasterオブジェクトのメタデータは変更されません。)
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- pyramidLevel
-
戻される解像度の値のピラミッド・レベルを指定します。デフォルトはピラミッド・レベル0です。
- samplingFactor
-
サンプリング係数として、1/(
n
*n)の分母nを'samplingFactor=n'の書式で指定します。この値は、統計の算出時に行次元と列次元の両方でスキップするセルの数を表します。たとえば、samplingFactor
が4の場合はセルの16分の1が統計の算出に使用されますが、samplingFactor
が1の場合はすべてのセルが統計の算出に使用されます。この数値が大きくなるほど統計の精度は下がる可能性がありますが、統計算出の速度は速くなります。 - samplingWindow
-
数値配列またはSDO_GEOMETRYオブジェクトとして指定される、統計を生成するサンプリング・ウィンドウを指定します。データ型が(
VARRAY(1048576) OF NUMBER
として定義された) SDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合、それはモデル空間にあるとラスター空間に変換され、ラスター空間のジオメトリ・オブジェクトの最小境界矩形(MBR)がウィンドウとして使用されます。デフォルト値はイメージ全体です。どちらの場合も、ラスター空間のサンプリング・ウィンドウのMBRとラスター空間のGeoRasterオブジェクトのMBRの共通部分が統計の計算に使用されます。ただし、
polygonClip
がTRUE
でsamplingWindow
ジオメトリ・オブジェクトがサンプリング・ウィンドウのMBRのかわりに操作に使用される場合、samplingWindow
ジオメトリ内のセルのみがカウントされます。データ型がSDO_GEOMETRYの場合は、SDO_SRID要件についてSDO_GEOR.generateStatisticsファンクションの「使用上の注意」も参照してください。
- bandNumbers
-
統計を算出するレイヤーのバンド座標番号を指定します。このパラメータは文字列で指定し、数値、ハイフン(-)で示した数値の範囲、および数値と数値の範囲を区切るカンマを使用できます。たとえば、
'1,3-5,7'
はレイヤー2、4、5、6および8を指定します。bandNumbers
がNULLの場合、統計の計算にすべてのバンドが使用されます。 - nodata
-
各セル値と、メタデータに定義されたNODATA値を、統計算出時に比較するかどうかを指定します。
TRUE
を指定した場合は、NODATA値を持つピクセルはすべて考慮されず、FALSE
(デフォルト)を指定した場合は、NODATA値を持つピクセルは通常のピクセルとみなされます。NODATA値および値の範囲の詳細は、「NODATA値および値の範囲」を参照してください。 - polygonClip
-
文字列
TRUE
では、samplingWindow
ジオメトリ・オブジェクトが操作で使用されますが、文字列FALSE
またはNULL値では、samplingWindow
ジオメトリ・オブジェクトの最小境界矩形(MBR)が操作で使用されます。 - parallelParam
-
操作の並列度を指定します。指定する場合、
parallel=
nという形式である必要があります(nは1より大きい)。データベース・オプティマイザでは、このパラメータによって指定された並列度を使用します。指定しない場合、デフォルトでパラレル処理は行われません。(詳細は、「GeoRasterでのパラレル処理」を参照してください。)並列性を指定すると、このファンクションの結果をロールバックできません。
使用上の注意
このファンクションは、統計データを計算してMODEVALUE
値を戻します。(統計データは、GeoRasterメタデータのXMLスキーマ(「GeoRasterメタデータのXMLスキーマ」を参照)の<statisticDatasetType>
要素によって記述されますが、このファンクションではメタデータは更新されません。)
samplingWindow
がGeoRasterオブジェクト外であるか、またはNODATA値のみが含まれる場合、次のエラーが発生します。
ORA-13393: null or invalid samplingWindow parameter
SDO_GEOR.generateStatisticsファンクションも参照してください。
例
次の例では、ピラミッド・レベル1ですべてのバンドの統計データを計算して、最頻値を戻します。
DECLARE gr sdo_georaster; window sdo_geometry; mode number; BEGIN SELECT tmimage INTO gr FROM landsat WHERE id=2021; mode:=sdo_geor.generateStatisticsMode(gr,1,'samplingFactor=7',window,null,'false'); END; /
7.31 SDO_GEOR.generateStatisticsSTD
形式
SDO_GEOR.generateStatisticsSTD( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_NUMBER_ARRAY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE' ) RETURN NUMBER;
または
SDO_GEOR.generateStatisticsSTD( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_GEOMETRY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE', polygonClip IN VARCHAR2 DEFAULT NULL ) RETURN NUMBER;
または
SDO_GEOR.generateStatisticsSTD( georaster IN OUT SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_NUMBER_ARRAY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE', parallelParam IN VARCHAR2 DEFAULT NULL, ) RETURN SDO_NUMBER_ARRAY;
または
SDO_GEOR.generateStatisticsSTD( georaster IN OUT SDO_GEORASTER, pyramidLevel IN NUMBER, samplingFactor IN VARCHAR2, samplingWindow IN SDO_GEOMETRY, bandNumbers IN VARCHAR2 DEFAULT NULL, nodata IN VARCHAR2 DEFAULT 'FALSE', polygonClip IN VARCHAR2 DEFAULT NULL', parallelParam IN VARCHAR2 DEFAULT NULL, ) RETURN SDO_NUMBER_ARRAY;
説明
指定されたピラミッド・レベルで1つ以上のレイヤーに関連付けられた統計データを計算して、標準偏差値を戻します。(GeoRasterオブジェクトのメタデータは変更されません。)
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- pyramidLevel
-
戻される解像度の値のピラミッド・レベルを指定します。デフォルトはピラミッド・レベル0です。
- samplingFactor
-
サンプリング係数として、1/(
n
*n)の分母nを'samplingFactor=n'の書式で指定します。この値は、統計の算出時に行次元と列次元の両方でスキップするセルの数を表します。たとえば、samplingFactor
が4の場合はセルの16分の1が統計の算出に使用されますが、samplingFactor
が1の場合はすべてのセルが統計の算出に使用されます。この数値が大きくなるほど統計の精度は下がる可能性がありますが、統計算出の速度は速くなります。 - samplingWindow
-
数値配列またはSDO_GEOMETRYオブジェクトとして指定される、統計を生成するサンプリング・ウィンドウを指定します。データ型が(
VARRAY(1048576) OF NUMBER
として定義された) SDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合、それはモデル空間にあるとラスター空間に変換され、ラスター空間のジオメトリ・オブジェクトの最小境界矩形(MBR)がウィンドウとして使用されます。デフォルト値はイメージ全体です。どちらの場合も、ラスター空間のサンプリング・ウィンドウのMBRとラスター空間のGeoRasterオブジェクトのMBRの共通部分が統計の計算に使用されます。ただし、
polygonClip
がTRUE
でsamplingWindow
ジオメトリ・オブジェクトがサンプリング・ウィンドウのMBRのかわりに操作に使用される場合、samplingWindow
ジオメトリ内のセルのみがカウントされます。データ型がSDO_GEOMETRYの場合は、SDO_SRID要件についてSDO_GEOR.generateStatisticsファンクションの「使用上の注意」も参照してください。
- bandNumbers
-
統計を算出するレイヤーのバンド座標番号を指定します。このパラメータは文字列で指定し、数値、ハイフン(-)で示した数値の範囲、および数値と数値の範囲を区切るカンマを使用できます。たとえば、
'1,3-5,7'
はレイヤー2、4、5、6および8を指定します。bandNumbers
がNULLの場合、統計の計算にすべてのバンドが使用されます。 - nodata
-
各セル値と、メタデータに定義されたNODATA値を、統計算出時に比較するかどうかを指定します。
TRUE
を指定した場合は、NODATA値を持つピクセルはすべて考慮されず、FALSE
(デフォルト)を指定した場合は、NODATA値を持つピクセルは通常のピクセルとみなされます。NODATA値および値の範囲の詳細は、「NODATA値および値の範囲」を参照してください。 - polygonClip
-
文字列
TRUE
では、samplingWindow
ジオメトリ・オブジェクトが操作で使用されますが、文字列FALSE
またはNULL値では、samplingWindow
ジオメトリ・オブジェクトの最小境界矩形(MBR)が操作で使用されます。 - parallelParam
-
操作の並列度を指定します。指定する場合、
parallel=
nという形式である必要があります(nは1より大きい)。データベース・オプティマイザでは、このパラメータによって指定された並列度を使用します。指定しない場合、デフォルトでパラレル処理は行われません。(詳細は、「GeoRasterでのパラレル処理」を参照してください。)並列性を指定すると、このファンクションの結果をロールバックできません。
使用上の注意
このファンクションは、統計データを計算してSTD
値を戻します。(統計データは、GeoRasterメタデータのXMLスキーマ(「GeoRasterメタデータのXMLスキーマ」を参照)の<statisticDatasetType>
要素によって記述されますが、このファンクションではメタデータは更新されません。)
samplingWindow
がGeoRasterオブジェクト外であるか、またはNODATA値のみが含まれる場合、次のエラーが発生します。
ORA-13393: null or invalid samplingWindow parameter
SDO_GEOR.generateStatisticsファンクションも参照してください。
例
次の例では、ピラミッド・レベル1ですべてのバンドの統計データを計算して、標準偏差値を戻します。
DECLARE gr sdo_georaster; window sdo_geometry; std number; BEGIN SELECT tmimage INTO gr FROM landsat WHERE id=2021; std:=sdo_geor.generateStatisticsSTD(gr,1,'samplingFactor=7',window,null,'false'); END; /
7.32 SDO_GEOR.georeference
構文(プロシージャ)
SDO_GEOR.georeference( georaster IN OUT SDO_GEORASTER, srid IN NUMBER, modelCoordinateLocation IN NUMBER, xCoefficients IN SDO_NUMBER_ARRAY, yCoefficients IN SDO_NUMBER_ARRAY);
構文(ファンクション)
SDO_GEOR.georeference( georaster IN OUT SDO_GEORASTER, FFMethodType IN VARCHAR2, nGCP IN NUMBER, GCPs IN SDO_GEOR_GCP_COLLECTION, storeGCP IN VARCHAR2 DEFAULT 'TRUE', srid IN NUMBER DEFAULT NULL, modelCoordinateLocation IN NUMBER DEFAULT NULL, setResolution IN VARCHAR2 DEFAULT NULL ) RETURN SDO_NUMBER_ARRAY;
または
SDO_GEOR.georeference( georaster IN OUT SDO_GEORASTER, gcpGeorefModel IN SDO_GEOR_GCPGEOREFTYPE, storeGCP IN VARCHAR2 DEFAULT 'TRUE', srid IN NUMBER DEFAULT NULL, modelCoordinateLocation IN NUMBER DEFAULT NULL, setResolution IN VARCHAR2 DEFAULT NULL ) RETURN SDO_NUMBER_ARRAY;
または
SDO_GEOR.georeference( georaster IN OUT SDO_GEORASTER, FFMethodType IN VARCHAR2 DEFAULT NULL, srid IN NUMBER DEFAULT NULL, modelCoordinateLocation IN NUMBER DEFAULT NULL, setResolution IN VARCHAR2 DEFAULT NULL ) RETURN SDO_NUMBER_ARRAY;
説明
プロシージャとして、アフィン変換の指定された係数を使用してセルからモデルへ変換し、GeoRasterオブジェクトを地理参照します。ファンクションとして、データベースに格納されているか、パラメータに指定された地上基準点(GCP)を使用して、サポートされるジオメトリ・モデルのいずれかのソリューションを戻します。
パラメータ
- georaster
-
地理参照するSDO_GEORASTERオブジェクトを指定します。
- srid
-
モデル座標系を指定します。プロシージャではNULLまたは0 (ゼロ)にすることはできず、ファンクションではNULLにできます。MDSYS.CS_SRS表のSRID列の値を指定できます。MDSYS.CS_SRS表のSRID列の値を指定しない場合、Oracle Spatial and GraphでSRIDがサポートされず、SRID関連の一部の操作もサポートされない場合があります。
- modelCoordinateLocation
-
セルによって表現される領域のベースのモデル位置を示す値を指定します。
CENTER
の場合は0
、UPPERLEFT
の場合は1
を指定します。 - xCoefficients
-
計算の係数値A、BおよびCを示す配列を指定します(「使用上の注意」を参照)。
- yCoefficients
-
計算の係数値D、EおよびFを示す配列を指定します(「使用上の注意」を参照)。
- FFMethodType
-
地理参照ジオメトリ・モデルとして使用される多項式または有理多項式関数を指定します。
Affine
、QuadraticPolynomial
、CubicPolynomial
、DLT
、QuadraticRational
またはRPC
のいずれかのいずれかの文字列値を指定する必要があります。 - gcpGeorefModel
-
FFMethodType
、nGCP
、GCPs
、solutionAccuracy
を含むオブジェクトを指定します。 - nGCP
-
GCPコレクション内の地上基準点の数(
GCPs
パラメータ)。 - GCPs
-
SDO_GEOR_GCP_COLLECTION型のGCPコレクション(「SDO_GEOR_GCP_COLLECTIONコレクション型」を参照)。
- storeGCP
-
GCPをGeoRasterメタデータに格納する必要があるかどうかを示すフラグを指定します。文字列
TRUE
(デフォルト)では、GeoRasterメタデータに点が格納されますが、文字列FALSE
ではGeoRasterメタデータに点が格納されません。 - setResolution
-
空間解像度を計算してGeoRasterメタデータに格納するかどうかを示すフラグを指定します。文字列
FALSE
またはNULL値では、GeoRasterメタデータに空間解像度が格納されませんが、文字列TRUE
ではGeoRasterメタデータに空間解像度が格納されます。
使用上の注意
プロシージャ構文の注意
このプロシージャは、既存のアフィン変換に基づいてGeoRasterオブジェクトを地理参照する場合に使用します。(地理参照については、「地理参照」および「GeoRasterオブジェクトの地理参照」を参照してください。)
このプロシージャでは、ソース・データ(ESRIワールド・ファイルなど)に含まれる元の地理参照情報内では、変換計算式が次のようになると想定しています。
x = A * column + B * row + C y = D * column + E * row + F
前述のA、B、C、D、EおよびF係数を、SDO_GEOR.georeferenceプロシージャに指定します。これらの係数は内部で自動調整され、適切な地理参照結果の係数a、b、c、d、eおよびfが生成されます。計算式は次のとおりです。
row = a + b * x + c * y column = d + e * x + f * y
計算式の各変数の意味は、次のとおりです。
-
rowは、ラスター空間内のセルの行索引です。
-
columnは、ラスター空間内のセルの列索引です。
-
xは、地上またはモデル空間内の点の東西方向の位置です。
-
yは、地上またはモデル空間内の点の南北方向の位置です。
-
a、b、c、d、eおよびfは係数で、GeoRaster SRSメタデータに格納されます。
-
b*f – c*eは、0(ゼロ)以外である必要があります。
これらの計算式において、b = 0、f = 0、c = -eで、cとeの両方が0(ゼロ)以外の場合、ラスター・データは幾何補正されます。この場合の計算式は次のようになります。
row = a + c * y column = d - c * x
このプロシージャは、GeoRasterオブジェクトの空間解像度を設定します。
次のプロシージャおよびツールも、地理参照に関連する処理を実行します。
-
SDO_GEOR.setSRSプロシージャ: 地理参照情報を設定または削除します。
-
SDO_GEOR.importFromプロシージャ: ファイルまたはCLOBオブジェクトから、ESRIワールド・ファイルまたはDigital Globe RPCファイルをロードできます。また、GeoTIFFファイルからの地理メタデータのロードも行われます。
-
GeoRasterローダー・ツール(「GeoRasterツール: ローダー、ビューア、エクスポータ」を参照): ESRIワールド・ファイル、Digital Globe RPCファイルまたはGeoTIFFファイルをロードできます。
ファンクション構文の注意(GCPとともに使用する場合)
このファンクションは、データベースに格納されているか、パラメータに指定されたGCPを使用して、特定のジオメトリ・モデル(FFMethodType
)のソリューションを計算し、そのソリューションをGeoRaster関数フィッティング・モデルに格納します。
戻される配列には、RMS値と残差が含まれ、その順序は、基準点を使用して計算されたソリューションの精度(rowRMS, colRMS, totalRMS)、チェック・ポイントを使用して計算された地上位置決めの精度(xRMS, yRMS, zRMS, modelTotalRMS)、基準点を使用して計算された地上位置決めの精度(xRMS, yRMS, zRMS, modelTotalRMS)および(チェック・ポイントではなく)基準点ごとの(xResidual, yResidual)です。残差の順序は、XMLメタデータに格納されている基準点と同じです(ID値が数値の場合、必ずしも基準点のID値の順番ではありません)。
戻される値は常に17以上あります(3つ以上の基準点があると仮定)。–1.0の位置精度(RMS)は、その値が存在しないことを意味します。2次元ジオメトリ・モデルでは、zRMS値は常に–1.0で、それ以外の場合、zRMS値は現在のリリースでは常に0です。
GCPは、GeoRasterメタデータから取得するか、GCP関連のオブジェクト型を使用して提供できます。
GCP情報のないインタフェースでは(gcpGeorefModel
パラメータなしの形式)、GCPがGeoRasterオブジェクトのメタデータに格納されると仮定されます。GCPが格納されていない場合、または指定したモデルにとって十分なGCPが格納されていない場合、例外が発生します。
このファンクション・コールの後、GeoRasterオブジェクトが地理参照され、関数フィッティング・モデルの係数がGeoRaster SRSメタデータ構成要素に設定されます。
GCPを使用した地理参照の詳細は、「地上基準点(GCP)地理参照モデル」を参照してください。
例
次の例では、アフィン変換の係数を直接使用してセルからモデルへ変換し、GeoRasterオブジェクトを地理参照します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE gr sdo_georaster; BEGIN SELECT georaster INTO gr FROM georaster_table WHERE georid = 1 FOR UPDATE; sdo_geor.georeference(gr, 82394, 0, sdo_number_array(28.5, 0, 1232804.04), sdo_number_array(0, -28.5, 13678.09)); UPDATE georaster_table SET georaster = gr WHERE georid = 1; COMMIT; END; / PL/SQL procedure successfully completed. SET NUMWIDTH 20 SELECT georid, sdo_geor.getSRS(georaster) SRS FROM georaster_table WHERE georid = 1; GEORID -------------------- SRS(ISREFERENCED, ISRECTIFIED, ISORTHORECTIFIED, SRID, SPATIALRESOLUTION, SPATIA -------------------------------------------------------------------------------- 1 SDO_GEOR_SRS('TRUE', 'TRUE', NULL, 82394, SDO_NUMBER_ARRAY(28.5, 28.5), NULL, NU LL, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, NULL, NULL, NULL, SDO_NUMBER_ARRAY(1, 2, 1, 3, 479.93298245614, 0, -.0350877192982456), SDO_NUMBER_ARRAY(1, 0, 0, 1, 1), SDO_N UMBER_ARRAY(1, 2, 1, 3, -43256.2821052632, .0350877192982456, 0), SDO_NUMBER_ARR AY(1, 0, 0, 1, 1))
元のラスター・データが幾何補正される場合、および左上角のセルの中心点のモデル座標が(x0, y0)で、その空間解像度がsである場合、前述の例のコードを直接使用して、28.5をsに、1232804.04をx0に、13678.09をy0に置換することで、GeoRasterオブジェクトを地理参照できます。ラスターの適切に定義された正確なエンベロープや中心点のモデル座標など、GeoRasterオブジェクトに関する他の情報がある場合、(x0, y0)および空間解像度sを計算し、同じアプローチを使用してオブジェクトを地理参照できます。
次の例では、地上基準点(GCP)の情報を使用してGeoRasterオブジェクトを地理参照します。
DECLARE gr1 sdo_georaster; gr2 sdo_georaster; georefModel SDO_GEOR_GCPGEOREFTYPE; GCPs SDO_GEOR_GCP_COLLECTION; rms sdo_number_array; BEGIN SELECT georaster INTO gr1 from georaster_table WHERE georid=10 FOR UPDATE; GCPs := SDO_GEOR_GCP_COLLECTION( SDO_GEOR_GCP('1', '', 1, 2, sdo_number_array(25.625000, 73.875000), 2, sdo_number_array(237036.937500, 897987.187500), NULL, NULL), SDO_GEOR_GCP('2', '', 1, 2, sdo_number_array(100.625000, 459.125000), 2, sdo_number_array(237229.562500, 897949.687500), NULL, NULL), SDO_GEOR_GCP('3', '', 1, 2, sdo_number_array(362.375000, 77.875000), 2, sdo_number_array(237038.937500, 897818.812500), NULL, NULL), SDO_GEOR_GCP('4', '', 1, 2, sdo_number_array(478.875000, 402.125000), 2, sdo_number_array(237201.062500, 897760.562500), NULL, NULL), SDO_GEOR_GCP('5', '', 2, 2, sdo_number_array(167.470583, 64.030686), 2, sdo_number_array(237032.015343, 897916.264708), NULL, NULL), SDO_GEOR_GCP('6', '', 2, 2, sdo_number_array(101.456177, 257.915534), 2, sdo_number_array(237128.957767, 897949.271912), NULL, NULL) ); georefModel := SDO_GEOR_GCPGEOREFTYPE('Affine', GCPs.count, GCPs, NULL); rms := sdo_geor.georeference(gr1, georefModel, 'FALSE', 26986, 1); UPDATE georaster_table SET georaster=gr1 WHERE georid=10; COMMIT; END; /
7.33 SDO_GEOR.getBandDimSize
形式
SDO_GEOR.getBandDimSize( georaster IN SDO_GEORASTER ) RETURN NUMBER;
説明
GeoRasterオブジェクトのバンド数を戻します。
例
次の例では、GeoRasterオブジェクトの空間次元サイズおよびバンド数(この例では1)を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)出力は、読みやすくするために変更が加えられています。)
SELECT sdo_geor.getSpatialDimSizes(georaster) spatialDimSizes, sdo_geor.getBandDimSize(georaster) bandDimSize FROM georaster_table WHERE georid=21; SPATIALDIMSIZES BANDDIMSIZE -------------------------- ----------- SDO_NUMBER_ARRAY(512, 512) 1
7.34 SDO_GEOR.getBeginDateTime
形式
SDO_GEOR.getBeginDateTime( georaster IN SDO_GEORASTER ) RETURN TIMESTAMP WITH TIME ZONE;
説明
GeoRasterオブジェクトのメタデータから、ラスター・データ収集の開始日時を戻します。
使用上の注意
GeoRasterオブジェクトのメタデータで、ラスター・データ収集の開始日時を設定するには、SDO_GEOR.setBeginDateTimeプロシージャを使用します。
georaster
またはそのメタデータがNULLの場合、このファンクションはNULL値を戻します。
例
次の例では、GEORASTER_TABLEという表で、値4のGEORID列に含まれているGeoRasterオブジェクトのメタデータから、ラスター・データ収集の開始日時および終了日時を戻します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
SELECT sdo_geor.getBeginDateTime(georaster) beginDateTime, sdo_geor.getEndDateTime(georaster) endDateTime FROM georaster_table WHERE georid=4; BEGINDATETIME --------------------------------------------------------------------------- ENDDATETIME --------------------------------------------------------------------------- 01-JAN-00 05.00.00.000000000 AM +00:00 15-NOV-02 08.00.00.000000000 PM +00:00
7.35 SDO_GEOR.getBinFunction
形式
SDO_GEOR.getBinFunction( georaster IN SDO_GEORASTER, layerNumber IN NUMBER ) RETURN SDO_NUMBER_ARRAY;
説明
レイヤーに関連付けられたビン・ファンクションを取得します。
パラメータ
使用上の注意
このファンクションは、ビン・タイプ、ビンの合計数、最初のビン番号、最小セル値および最大セル値を指定する要素を含む配列として、ビン・ファンクションを戻します。SDO_NUMBER_ARRAY型は、VARRAY(1048576) OF NUMBER
として定義されます。
ビン・タイプがEXPLICIT
の場合、外部ビン表が使用され、このファンクションではNULL値が戻されます。
ビン・ファンクションの構文については、SDO_GEOR.setBinFunctionプロシージャの「使用上の注意」を参照してください。
layerNumber
がNULL、負、またはレイヤーの最大番号より大きい値の場合、例外が発生します。
例
次の例では、指定したGeoRasterオブジェクトのレイヤー3のビン・ファンクションを取得します。
SELECT sdo_geor.getBinFunction(georaster,3) FROM georaster_table WHERE georid=4; SDO_GEOR.GETBINFUNCTION(GEORASTER,3) -------------------------------------------------------------------------------- SDO_NUMBER_ARRAY(0, 10, 1, 0, 511)
7.36 SDO_GEOR.getBinTable
形式
SDO_GEOR.getBinTable( georaster IN SDO_GEORASTER, layerNumber IN NUMBER ) RETURN VARCHAR2;
説明
レイヤーに関連付けられたビン表の名前を戻します。
注意:
今回のリリースのGeoRasterでは、ビン表を使用した操作は実行されません。
パラメータ
使用上の注意
このファンクションは、ビン・タイプがEXPLICIT
の場合にのみ有効です。ビン・タイプを取得するには、SDO_GEOR.getBinTypeファンクションを使用します。
レイヤーにビン表を指定するには、SDO_GEOR.setBinTableプロシージャを使用します。
SDO_GEOR.getBinTypeファンクションの「使用上の注意」も参照してください。
georaster
またはそのメタデータがNULLの場合、このファンクションはNULL値を戻します。
layerNumber
がNULL、負、またはレイヤーの最大番号より大きい値の場合、例外が発生します。
例
次の例では、GEORASTER_TABLEという表で、指定されたGeoRasterオブジェクトのレイヤー番号4のビン表の名前を戻します。GEORASTER_TABLE表の定義は「記憶域パラメータ」の例1-1の次に説明されています。
SELECT sdo_geor.getBinTable(georaster, 4) FROM georaster_table WHERE georid=4;
7.37 SDO_GEOR.getBinType
形式
SDO_GEOR.getBinType( georaster IN SDO_GEORASTER, layerNumber IN NUMBER ) RETURN VARCHAR2;
説明
レイヤーに関連付けられたビン・タイプを戻します。
パラメータ
使用上の注意
このファンクションは、LINEAR
、LOGARITHM
またはEXPLICIT
のいずれかのビン・タイプ値を戻します。
LINEAR
ビン・タイプの定義は次のとおりです。
binNumber = numbins * (cellValue - min) / (max - min) + firstBinNumber if (binNumber less than 0) binNumber = firstBinNumber if (binNumber greater than or equal to numbins) binNumber = numbins + firstBinNumber - 1
LOGARITHM
ビン・タイプの定義は次のとおりです。
binNumber = numbins * (ln (1.0 + ((cellValue - min)/(max - min)))/ ln (2.0)) + firstBinNumber if (binNumber less than 0) binNumber = firstBinNumber if (binNumber greater than or equal to numbins) binNumber = numbins + firstBinNumber - 1
EXPLICIT
ビン・タイプの場合、各ビンの値(または値の範囲)はビン表に格納されます(この表は、SDO_GEOR.setBinTableプロシージャで設定し、SDO_GEOR.getBinTableファンクションで取得できます)。
ビン・ファンクションは、GeoRasterセルの値または値の範囲を、特定のビン番号にマップします。ビン番号はすべて整数です。GeoRasterでは、ビン・ファンクションの操作および処理を行うインタフェースは提供されません。
georaster
またはそのメタデータがNULLの場合、このファンクションはNULL値を戻します。
layerNumber
がNULL、負、またはレイヤーの最大番号より大きい値の場合、例外が発生します。
例
次の例では、GeoRasterオブジェクトのレイヤー0および1のビン・タイプを戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)出力は、読みやすくするために変更が加えられています。)
SELECT substr(sdo_geor.getBinType(georaster, 0),1,20) binType0, substr(sdo_geor.getBinType(georaster, 1),1,20) binType1 FROM georaster_table WHERE georid=4; BINTYPE0 BINTYPE1 --------------- --------------- EXPLICIT LINEAR
7.38 SDO_GEOR.getBitmapMask
形式
SDO_GEOR.getBitmapMask( georaster IN SDO_GEORASTER, layerNumber IN NUMBER, storageParam IN VARCHAR2, mask IN OUT SDO_GEORASTER);
説明
GeoRasterオブジェクトまたはGeoRasterオブジェクト内のレイヤーに関連付けられたビットマップ・マスクを取得します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- layerNumber
-
操作を実行するレイヤー・レベルを指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。
- storageParam
-
記憶域パラメータを示す文字列を指定します(「記憶域パラメータ」を参照)。
- mask
-
ビットマップ・マスクを格納する結果のGeoRasterオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、「空白のGeoRasterオブジェクトと空のGeoRasterオブジェクト」を参照してください)。入力されたGeoRasterオブジェクト(
georaster
パラメータ)と同じGeoRasterオブジェクトは指定できません。
使用上の注意
指定したGeoRasterオブジェクトのレイヤーにビットマップ・マスクが関連付けられていない場合、結果のGeoRasterオブジェクトは更新されません。
storageParam
パラメータがNULLの場合、結果のGeoRasterオブジェクトのcelldepth
値は1BITセル深度になり、圧縮タイプはDEFLATE
になり(入力されたGeoRasterオブジェクトが圧縮されている場合)、インターリーブ・タイプおよびブロック・サイズは入力されたGeoRasterオブジェクトと同じになります。また、入力されたGeoRasterオブジェクトにピラミッドが作成されている場合は、すべてのビットマップ・マスク・ピラミッドも含まれます。
ビットマップ・マスクには、空のラスター・ブロック(「空のラスター・ブロック」を参照)が含まれる場合があります。再ブロック化により部分的に空のラスター・ブロックが発生する場合、空のラスター・ブロックから導出されて部分的に空になるブロックのセルには、値0(ゼロ)が埋め込まれます。
ビットマップ・マスクの詳細は、「ビットマップ・マスク」を参照してください。
例
次の例では、指定したGeoRasterオブジェクトのオブジェクト・レイヤーに関連付けられたビットマップ・マスクを取得します。
DECLARE gr sdo_georaster; mk sdo_georaster; BEGIN SELECT georaster INTO gr FROM georaster_table WHERE georid=4; INSERT INTO georaster_table (georid, georaster) VALUES (100, sdo_geor.init('rdt_1', 100)) RETURNING georaster INTO mk; sdo_geor.getBitmapMask(gr, 0, 'compression=none', mk); UPDATE georaster_table SET georaster=mk WHERE georid=100; COMMIT; END; /
7.39 SDO_GEOR.getBitmapMaskSubset
形式
SDO_GEOR.getBitmapMaskSubset( georaster IN SDO_GEORASTER, layerNumber IN NUMBER, pyramidLevel IN VARCHAR2, window IN SDO_NUMBER_ARRAY, rasterBlob IN OUT NOCOPY BLOB, storageParam IN VARCHAR2 DEFAULT NULL);
または
SDO_GEOR.getBitmapMaskSubset( georaster IN SDO_GEORASTER, layerNumber IN NUMBER, pyramidLevel IN VARCHAR2, inWindow IN SDO_NUMBER_ARRAY, rasterBlob IN OUT NOCOPY BLOB, outWindow OUT SDO_NUMBER_ARRAY, storageParam IN VARCHAR2 DEFAULT NULL);
または
SDO_GEOR.getBitmapMaskSubset( georaster IN SDO_GEORASTER, layerNumber IN NUMBER, pyramidLevel IN VARCHAR2, window IN SDO_GEOMETRY, rasterBlob IN OUT NOCOPY BLOB, storageParam IN VARCHAR2 DEFAULT NULL);
または
SDO_GEOR.getBitmapMaskSubset( georaster IN SDO_GEORASTER, layerNumber IN NUMBER, pyramidLevel IN VARCHAR2, inWindow IN SDO_GEOMETRY, rasterBlob IN OUT NOCOPY BLOB, outWindow OUT SDO_NUMBER_ARRAY, storageParam IN VARCHAR2 DEFAULT NULL);
説明
ビットマップ・マスクのサブセットを取得します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- layerNumber
-
操作を実行するレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。
- pyramidLevel
-
指定したセルを含むピラミッド・レベルを指定します。
- window、inWindow
-
サブセットに対する矩形ウィンドウを指定します。左下と右上の座標を含む数値配列か、SDO_GEOMETRYオブジェクトとして指定します。SDO_NUMBER_ARRAY型は、
VARRAY(1048576) OF NUMBER
として定義されます。 - rasterBlob
-
出力内容(結果のサブセット)を格納するBLOBを指定します。
- outWindow
-
セル空間内で出力ウィンドウの左上角および右下角の座標を指定するSDO_NUMBER_ARRAYオブジェクトを指定します。
- storageParam
-
rasterBlob
の作成時に適用される記憶域パラメータを示す文字列を指定します。このプロシージャでサポートされているstorageParam
キーワードはcelldepth
、compression
、interleaving
およびquality
のみで、他のキーワードはすべて無視されます。記憶域パラメータについては、「記憶域パラメータ」を参照してください。storageParam
パラメータがNULLの場合、結果のGeoRasterオブジェクトのcelldepth
値は1BITセル深度になり、圧縮タイプはDEFLATE
になり(入力されたGeoRasterオブジェクトが圧縮されている場合)、インターリーブ・タイプは入力されたGeoRasterオブジェクトと同じになります。
使用上の注意
指定したラスター・レイヤーに指定のGeoRasterオブジェクトに関連付けられたビットマップが存在しない場合、または指定した入力ウィンドウがGeoRasterオブジェクトの空間エクステントと交差しない場合、このプロシージャは、長さが0 (ゼロ)に切り捨てられたrasterBlob
とNULL値が設定されたoutWindow
を戻します。
このプロシージャの処理は、単一のGeoRasterオブジェクト上で行われます。このプロシージャの構文は4種類あり、入力ウィンドウの指定がジオメトリ・オブジェクトによるものとウィンドウの左上角および右下角によるもののいずれであるか、およびoutWindow
パラメータを使用して出力ウィンドウの座標を戻すかどうかによって異なります。
window
またはinWindow
パラメータのデータ型がSDO_GEOMETRYの場合、SDO_SRID値は、NULL (ラスター空間を指定する)またはMDSYS.CS_SRS表のSRID列の値のいずれかである必要があります。
window
またはinWindow
パラメータ・ジオメトリとモデル空間のSDO_SRID値が異なる場合は、処理が実行される前に、ジオメトリ・パラメータは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、「GeoRasterデータ・モデル」を参照してください。)
window
パラメータで測地MBRを指定する場合、日付変更線をまたぐMBRは指定できません。測地MBRについては、『Oracle Spatial and Graph開発者ガイド』を参照してください。
プロシージャが完了すると、rasterBLOBパラメータには、タイル処理されていないクロッピング済のウィンドウのセル(ピクセル)データが含まれます。クロッピング済のウィンドウとは、処理対象として指定したウィンドウとソースGeoRasterオブジェクトの空間エクステントが重複する部分のことです。outWindow
パラメータを指定した場合は、プロシージャが完了すると、セル空間内のクロッピング済のウィンドウの座標がそのパラメータに含まれます。
ビットマップ・マスクには、空のラスター・ブロック(「空のラスター・ブロック」を参照)が含まれる場合があります。空のラスター・ブロックから導出される出力ウィンドウ内のすべてのセルは、出力のBLOBでは値0(ゼロ)が埋め込まれます。
BLOBには埋込みがありません。ただし、セル深度が8ビットより小さく、出力に必要なビット数の合計が8で除算できない場合を除きます。このような場合は、通常の埋込みとは異なり、結果の最後のバイトでのみ、後続のビットに対し0(ゼロ)が埋め込まれます。
入力されたGeoRasterオブジェクトが圧縮されているかどうかに関係なく、圧縮を指定できます。圧縮済の入力されたGeoRasterオブジェクトに対して、解凍された出力を得るには、storageParam
パラメータでcompression=NONE
を指定します。GeoRasterの圧縮および解凍の詳細は、「圧縮と解凍」を参照してください。
ビットマップ・マスクの詳細は、「ビットマップ・マスク」を参照してください。
例
次の例では、指定したGeoRasterオブジェクトのオブジェクト・レイヤーに関連付けられたビットマップ・マスクのサブセットを取得します。
DECLARE gr sdo_georaster; lb blob; BEGIN SELECT georaster INTO gr FROM georaster_table WHERE georid=4; dbms_lob.createTemporary(lb, TRUE); sdo_geor.getBitmapMaskSubset(gr, 0, 0, sdo_number_array(0,0,99,99), lb, 'compression=none'); dbms_lob.freeTemporary(lb); END; /
7.40 SDO_GEOR.getBitmapMaskValue
形式
SDO_GEOR.getBitmapMaskValue( georaster IN SDO_GEORASTER, layerNumber IN NUMBER, pyramidLevel IN VARCHAR2, rowNumber IN NUMBER, colNumber IN NUMBER ) RETURN NUMBER;
または
SDO_GEOR.getBitmapMaskValue( georaster IN SDO_GEORASTER, layerNumber IN NUMBER, pyramidLevel IN VARCHAR2, ptGeom IN SDO_GEOMETRY ) RETURN NUMBER;
説明
ビットマップ・マスクから単一のセルの値を取得します。
パラメータ
使用上の注意
セルを指定するには、行番号と列番号を使用するか、点ジオメトリ・オブジェクトを使用します。
指定したラスター・レイヤーに指定のGeoRasterオブジェクトに関連付けられたビットマップ・マスクがない場合、または指定したセルが空のラスター・ブロックに存在する場合、このファンクションはNULL値を戻します。
ビットマップ・マスクの詳細は、「ビットマップ・マスク」を参照してください。
例
次の例では、指定したGeoRasterオブジェクトに関連付けられたビットマップ・マスクから、4つのセルの値を取得します。
SELECT sdo_geor.getBitmapMaskValue(georaster,0,0,0,0) c1, sdo_geor.getBitmapMaskValue(georaster,0,0,9,9) c2, sdo_geor.getBitmapMaskValue(georaster,0,0,9,10) c3, sdo_geor.getBitmapMaskValue(georaster,0,0,10,9) c4 FROM georaster_table WHERE georid=0;
7.41 SDO_GEOR.getBitmapMaskValues
形式
SDO_GEOR.getBitmapMaskValues( georaster IN SDO_GEORASTER, layerNumber IN NUMBER, pyramidLevel IN VARCHAR2, rowNumbers IN SDO_NUMBER_ARRAY, colNumbers IN SDO_NUMBER_ARRAY ) RETURN SDO_NUMBER_ARRAY;
または
SDO_GEOR.getBitmapMaskValues( georaster IN SDO_GEORASTER, layerNumber IN NUMBER, pyramidLevel IN VARCHAR2, ptGeom IN SDO_GEOMETRY ) RETURN SDO_NUMBER_ARRAY;
説明
ビットマップ・マスクから複数のセルの値を取得します。
パラメータ
使用上の注意
セルを指定するには、行番号と列番号の配列を使用するか、複数点ジオメトリ・オブジェクトを使用します。
指定したラスター・レイヤーに指定のGeoRasterオブジェクトに関連付けられたビットマップ・マスクがない場合、または指定したセルが空のラスター・ブロックに存在する場合、このファンクションはNULL値を戻します。
ビットマップ・マスクの詳細は、「ビットマップ・マスク」を参照してください。
例
次の例では、指定したGeoRasterオブジェクトに関連付けられたビットマップ・マスクから、4つのセルの値を取得します。
SELECT sdo_geor.getBitmapMaskValues(georaster,0,0,sdo_number_array(0,9,9,10),sdo_number_array(0,9,10,9)) FROM georaster_table WHERE georid=0;
7.42 SDO_GEOR.getBlankCellValue
形式
SDO_GEOR.getBlankCellValue( georaster IN SDO_GEORASTER ) RETURN NUMBER;
説明
指定されたGeoRasterオブジェクトが空白のGeoRasterオブジェクトである場合に、すべてのセルのセル値を戻します。
使用上の注意
空白のGeoRasterオブジェクトでは、すべてのセルが同じセル値を持ちます。このファンクションは、指定されたGeoRasterオブジェクトが空白のGeoRasterオブジェクトである場合に、すべてのセルのセル値を戻します。
指定したGeoRasterオブジェクトが空白のGeoRasterオブジェクトである場合に使用されるセル値を設定するには、SDO_GEOR.setBlankCellValueプロシージャを使用します。指定したGeoRasterオブジェクトが空白のGeoRasterオブジェクトかどうかを確認するには、SDO_GEOR.isBlankファンクションを使用します。
georaster
がNULLか無効であるか、または空白のGeoRasterオブジェクトではない場合は、SDO_GEOR.getBlankCellValueファンクションはNULL値を戻します。
例
次の例では、表GEORASTER_TABLEのGEORASTER列に含まれているすべての空白のGeoRasterオブジェクトの空白のセル値を戻します。
SELECT georid, sdo_geor.getBlankCellValue(georaster) blankValue FROM georaster_table WHERE sdo_geor.isBlank(georaster)='TRUE'; GEORID BLANKVALUE ---------- ---------- 1 255 2 155
7.43 SDO_GEOR.getBlockingType
形式
SDO_GEOR.getBlockingType( georaster IN SDO_GEORASTER ) RETURN VARCHAR2;
説明
GeoRasterオブジェクトのブロック・タイプを戻します。
使用上の注意
このファンクションは、NONE
またはREGULAR
のいずれかの値を戻します。
-
NONE
: GeoRasterオブジェクトはブロック化されていませんが、単一のBLOBオブジェクトです。 -
REGULAR
: GeoRasterオブジェクトは通常のブロックを使用しています(各ブロックが同じ次元サイズを持ちます)。
georaster
またはそのメタデータがNULLの場合、このファンクションはNULL値を戻します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTER列)のセル深度、インターリーブ・タイプ、およびブロック・タイプを戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。
SELECT sdo_geor.getCellDepth(georaster) CellDepth, substr(sdo_geor.getInterleavingType(georaster),1,8) interleavingType, substr(sdo_geor.getBlockingType(georaster),1,8) blocking FROM georaster_table WHERE georid=21; CELLDEPTH INTERLEA BLOCKING ---------- -------- -------- 8 BSQ REGULAR
7.44 SDO_GEOR.getBlockSize
形式
SDO_GEOR.getBlockSize( georaster IN SDO_GEORASTER ) RETURN SDO_NUMBER_ARRAY;
説明
GeoRasterオブジェクトの各ブロックに含まれる各次元のセル数を配列で戻します。配列には、各行、列、およびバンド(関連する場合)のセル数が示されます。
使用上の注意
georaster
またはそのメタデータがNULLの場合、あるいはgeoraster
がブロック化されていない場合、このファンクションはNULL値を戻します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTER列)の各ブロックのセル数(各次元で512)を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」項の例1-1の次に説明されています。
SELECT sdo_geor.getBlockSize(georaster) blockSize FROM georaster_table WHERE georid=21; BLOCKSIZE -------------------------------------------------------------------------------- SDO_NUMBER_ARRAY(512, 512)
7.45 SDO_GEOR.getCellCoordinate
形式
SDO_GEOR.getCellCoordinate( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, modelCoordinate IN SDO_GEOMETRY, subCell IN VARCHAR2 DEFAULT NULL, height IN NUMBER DEFAULT NULL, vert_id IN NUMBER DEFAULT NULL, ellipsoidal IN VARCHAR2 DEFAULT NULL ) RETURN SDO_NUMBER_ARRAY;
または
SDO_GEOR.getCellCoordinate( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, modelCoordinate IN SDO_GEOMETRY, cellCoordinate OUT SDO_GEOMETRY, subCell IN VARCHAR2 DEFAULT NULL, height IN NUMBER DEFAULT NULL, vert_id IN NUMBER DEFAULT NULL, ellipsoidal IN VARCHAR2 DEFAULT NULL);
または
SDO_GEOR.getCellCoordinate( georaster IN SDO_GEORASTER, sourcePyramidLevel IN NUMBER, sourceCellCoordinate IN SDO_NUMBER_ARRAY, targetPyramidLevel IN NUMBER, subCell IN VARCHAR2 DEFAULT NULL, ) RETURN SDO_NUMBER_ARRAY;
または
SDO_GEOR.getCellCoordinate( georaster IN SDO_GEORASTER, sourcePyramidLevel IN NUMBER, sourceCellCoordinate IN SDO_GEOMETRY, targetPyramidLevel IN NUMBER, subCell IN VARCHAR2 DEFAULT NULL, ) RETURN SDO_GEOMETRY;
説明
最初の2つの構文を使用すると、指定したモデル(地上)座標のジオメトリに関連付けられたセル(ラスター)座標系の座標が戻されます。最後の2つの構文を使用すると、ピラミッド・レベル間のセル座標変換が行われます。
2つ目の構文はプロシージャであり、それ以外の構文はファンクションであることに注意してください。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- pyramidLevel
-
modelCoordinate
で指定するセルを含むピラミッド・レベルを指定します。 - modelCoordinate
-
変換するジオメトリを指定します。
- cellCoordinate
-
GeoRasterオブジェクトのセル空間内の出力ジオメトリを指定します。
- sourcePyramidLevel(最後の2つの構文の場合)
-
入力セルの座標が関連付けられているピラミッド・レベルを指定します。
- sourceCellCoordinate(最後の2つの構文の場合)
-
変換する入力セルの座標を指定します。2次元ジオメトリを指定してください(このセルのSDO_SRID値はNULLである必要があります)。
- targetPyramidLevel(最後の2つの構文の場合)
-
戻される(ターゲットの)GeoRasterオブジェクトのピラミッド・レベルを指定します。
- subCell
-
サブピクセル(浮動)値でセル座標を戻すかどうかを指定する文字列(
TRUE
またはFALSE
)を指定します。 - height
-
3次元(X, Y, Z)の地理参照で使用するZの値を指定します。
- vert_id
-
垂直参照IDを指定する番号を指定します。
- ellipsoidal
-
垂直参照系が楕円体であるか(
TRUE
)、楕円体でないか(FALSE
)を指定する文字列を指定します。
使用上の注意
このファンクションの最初の2つの構文は、指定されたモデル(地上)座標のジオメトリに関連付けられたセル(ラスター)座標系の座標を戻します。
-
最初の(
cellCoordinate
パラメータを指定しないファンクション)構文は、地上座標系の点(経度と緯度のペア)を、GeoRasterイメージ上の点の位置に変換する場合に使用します。 -
2つ目の(
cellCoordinate
パラメータを指定するプロシージャ)構文は、地上座標系のジオメトリを、GeoRasterオブジェクトのラスター空間に存在するジオメトリの位置に変換する場合に使用します。変換は、入力されたジオメトリの各頂点の座標を、地上座標系からGeoRasterオブジェクトのラスター空間に変換することで行われます。
このファンクションの最後の2つの構文を使用すると、ピラミッド・レベル間でセル座標の変換が行われます。sourceCellCoordinate
パラメータがSDO_NUMBER_ARRAY型の場合、このパラメータで指定されるのは、ソース・ピラミッド・レベルでのセル空間内にある点の<行,列>のペアです。sourceCellCoordinateパラメータがSDO_GEOMETRY型の場合、このパラメータで指定されるのは、ソース・ピラミッド・レベルでのセル空間内にあるジオメトリです。入力されたジオメトリの各頂点の座標は、指定したピラミッド・レベルに従って変換されます。
-
最初の(
cellCoordinate
パラメータを指定しない)構文は、地上座標系の点(経度と緯度のペア)を、GeoRasterイメージ上の点の位置に変換する場合に使用します。 -
2つ目の(
cellCoordinate
パラメータを指定する)構文は、地上座標系のジオメトリを、GeoRasterオブジェクトのラスター空間に存在するジオメトリの位置に変換する場合に使用します。変換は、入力されたジオメトリの各頂点の座標を、地上座標系からGeoRasterオブジェクトのラスター空間に変換することで行われます。
modelCoordinate
ジオメトリのSDO_SRID値がNULLの場合、このパラメータで指定されるのはラスター空間のジオメトリであり、NULL以外の場合は、地上座標系の点が指定されます。地上座標系がモデル座標系とは異なる場合は、処理が実行される前に、modelCoordinate
パラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。
このファンクションは、指定されたセル座標の点に関連付けられたモデル(地上)座標系の座標を含む点ジオメトリを戻すSDO_GEOR.getModelCoordinateと対照的です。
例
次の例では、指定したGeoRasterオブジェクトのモデル座標値(32343.64,7489527.23)に関連付けられたラスター・イメージのセル座標を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
SELECT sdo_geor.getCellCoordinate(georaster, 0, sdo_geometry(2001,82394, sdo_point_type(32343.64,7489527.23,null), null,null)) coord FROM georaster_table WHERE georid=4; COORD -------------------------------------------------------------------------------- SDO_NUMBER_ARRAY(100, 100)
次の例では、指定したジオメトリのピラミッド・レベル2と関連付けられたピラミッド・レベル0のジオメトリを戻します。この例では、ジオメトリが地理参照されておらず(モデル座標の位置がCENTER)、ultCoordinateが(100,-100,0)であることを想定しています。
SELECT sdo_geor.getCellCoordinate(georaster, 2, sdo_geometry(2003,NULL,NULL,sdo_elem_info_array(1,1003,3), sdo_ordinate_array(100.8,-100.2,220.15,0.3)), 0, 'true') coord FROM georaster_table WHERE georid=1; COORD -------------------------------------------------------------------------------- SDO_GEOMETRY(2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3), SDO_ORDINATE_ARR AY(104.7, -99.3, 582.1, 302.7))
7.46 SDO_GEOR.getCellDepth
形式
SDO_GEOR.getCellDepth( georaster IN SDO_GEORASTER ) RETURN NUMBER;
説明
セル深度をビット単位で戻します。
使用上の注意
セル深度によって、イメージの精度およびデータ・サイズが決定されます。セル深度の値が小さくなると、イメージの格納に必要なディスク領域は減少し、セル深度の値が大きくなると、イメージの格納に必要なディスク領域は増加します。
セル深度を、番号のかわりに文字列(32BIT_S
など)として戻すには、PL/SQLのXMLTypeインタフェースextract
を使用します。有効な文字列の値は、GeoRasterメタデータのXMLスキーマでcellDepthType
の定義に示されています(「GeoRasterメタデータのXMLスキーマ」を参照)。次の例では、GEORASTER_TABLE表でGEORID列の値が21であるGeoRasterオブジェクトのセル深度の文字列の値を戻します。
SELECT t.georaster.metadata.extract( '/georasterMetadata/rasterInfo/cellDepth/text()', 'xmlns=http://xmlns.oracle.com/spatial/georaster') FROM georaster_table t WHERE t.georid=21;
例
次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTER列)のセル深度、インターリーブ・タイプ、およびブロック・タイプを戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。
SELECT sdo_geor.getCellDepth(georaster) CellDepth, substr(sdo_geor.getInterleavingType(georaster),1,8) interleavingType, substr(sdo_geor.getBlockingType(georaster),1,8) blocking FROM georaster_table WHERE georid=21; CELLDEPTH INTERLEA BLOCKING ---------- -------- -------- 8 BSQ REGULAR
7.47 SDO_GEOR.getCellValue
形式
SDO_GEOR.getCellValue( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, rowNumber IN NUMBER, colNumber IN NUMBER, bandNumber IN NUMBER ) RETURN NUMBER;
または
SDO_GEOR.getCellValue( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, rowNumber IN NUMBER, colNumber IN NUMBER, bands IN VARCHAR2 ) RETURN SDO_NUMBER_ARRAY;
または
SDO_GEOR.getCellValue( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, ptGeom IN SDO_GEOMETRY, layerNumber IN NUMBER ) RETURN NUMBER;
または
SDO_GEOR.getCellValue( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, ptGeom IN SDO_GEOMETRY, layers IN VARCHAR2 ) RETURN SDO_NUMBER_ARRAY;
説明
GeoRasterオブジェクトの任意の位置にある単一のセルの値を戻します。セル座標系の行、列および1つ以上のバンド番号を指定するか、またはモデル座標系の点ジオメトリおよび1つ以上の論理レイヤー番号を指定します。
指定したセルが空のラスター・ブロックに存在する場合、このファンクションはNULL値を戻します。
GeoRasterオブジェクトの指定したウィンドウで、ラスター・データ・セルの値を変更するには、SDO_GEOR.changeCellValueプロシージャを使用します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- pyramidLevel
-
値を戻すセルを含むピラミッド・レベルを指定します。
- rowNumber
-
値を戻すセルを含む行の番号を指定します。
- colNumber
-
値を戻すセルを含む列の番号を指定します。
- bandNumber
-
値を戻すセルを含む物理バンドの番号を指定します。
- バンド
-
処理を実行する物理バンド番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、
1-3
はバンド1、2および3を示します)。 - ptGeom
-
値を戻すセルを示す点ジオメトリを指定します。
- layerNumber
-
値を戻すセルを含む論理レイヤーの番号を指定します。(「バンド、レイヤーおよびメタデータ」で説明したように、論理レイヤー番号は、物理バンドの番号に1を足した値です。)
- レイヤー
-
処理を実行する論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、
2-4
はレイヤー2、3および4を示します)。(「バンド、レイヤーおよびメタデータ」で説明したように、論理レイヤー番号は、物理バンドの番号に1を足した値です。)
使用上の注意
このファンクションは、ラスター・オブジェクトに格納されている元のセル値を戻します。このファンクションではセル値を使用した内挿は行われません。(内挿方法を使用して点の位置を評価するには、SDO_GEOR.evaluateDoubleファンクションを使用します。)このファンクションは、メタデータに定義されているスケール変更ファンクション(通常は、元のセル・データを希望する値または値の範囲にスケール変更するために使用)を適用しません。また、ビン・ファンクションも適用しません。スケール変更されたセル値を取得するには、次の手順を実行します。
-
SDO_GEOR.getCellValueファンクションをコールして元のセル値を戻します。
-
SDO_GEOR.getScalingファンクションをコールして、スケール変更ファンクションの係数(a0、a1、b0、b1)を戻します。
-
PL/SQLまたはその他のプログラミング言語で次の式を使用して、結果を計算します。
value = (a0 + a1 * cellvalue) / (b0 + b1 * cellvalue)
例
次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTERE列)の4つのセルの値を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。
SELECT sdo_geor.getCellValue(georaster,0,383,47,0) V383_47, sdo_geor.getCellValue(georaster,0,47,383,0) V47_383, sdo_geor.getCellValue(georaster,0,128,192,0) V128_192, sdo_geor.getCellValue(georaster,0,320,256,0) V320_256 FROM georaster_table WHERE georid=21; V383_47 V47_383 V128_192 V320_256 ---------- ---------- ---------- ---------- 48 55 52 53
次の例では、GEORASTER_TABLE表で、GEORID列値が1である行に含まれているGeoRasterオブジェクト(GEORASTER列)の行番号10、列番号10のバンド0、1、2のセルの値を戻します(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています)。
SELECT sdo_geor.getcellvalue(a.georaster,0,10,10,'0-2') FROM georaster_table a WHERE georid=1; SDO_GEOR.GETCELLVALUE(A.GEORASTER,0,10,10,'0-2') -------------------------------------------------------------------------------- SDO_NUMBER_ARRAY(88, 137, 32)
7.48 SDO_GEOR.getCellValues
形式
SDO_GEOR.getCellValues( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, rowNumbers IN SDO_NUMBER_ARRAY, colNumbers IN SDO_NUMBER_ARRAY, bandNumber IN NUMBER ) RETURN SDO_NUMBER_ARRAY;
または
SDO_GEOR.getCellValues( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, ptGeom IN SDO_GEOMETRY, layerNumber IN NUMBER ) RETURN SDO_NUMBER_ARRAY;
説明
セル座標空間の行/列/バンド番号を指定するか、またはモデル座標空間かセル座標空間の複数点ジオメトリおよび論理レイヤー番号を指定して、GeoRasterオブジェクトの任意の位置にある1つ以上のセルの値を戻します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- pyramidLevel
-
値を戻すセルを含むピラミッド・レベルを指定します。
- rowNumbers
-
値を戻すセルを含む行の番号を指定します。
- colNumbers
-
値を戻すセルを含む列の番号を指定します。
- bandNumber
-
値を戻すセルを含む物理バンドの番号を指定します。
- ptGeom
-
値を戻すセルを示す複数点ジオメトリを指定します。
- layerNumber
-
値を戻すセルを含む論理レイヤーの番号を指定します。(「バンド、レイヤーおよびメタデータ」で説明したように、論理レイヤー番号は、物理バンドの番号に1を足した値です。)
使用上の注意
このファンクションは、ラスター・オブジェクトに格納されている元のセル値を戻します。このファンクションではセル値を使用した内挿は行われません。(内挿方法を使用して点の位置を評価するには、SDO_GEOR.evaluateDoublesファンクションを使用します。)このファンクションは、メタデータに定義されているスケール変更ファンクション(通常は、元のセル・データを希望する値または値の範囲にスケール変更するために使用)を適用しません。また、ビン・ファンクションも適用しません。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTERE列)の4つのセルの値を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。
SELECT sdo_geor.getCellValues(georaster,0,SDO_NUMBER_ARRAY(383,47,128,320),SDO_NUMBER_ARRAY(47,383,192,256),0) FROM georaster_table WHERE georid=21; SDO_GEOR.GETCELLVALUES(A.GEORASTER,0,SDO_NUMBER_ARRAY(383,47,128,320),SDO_NUMBER_ARRAY(47,383,192,256),0) -------------------------------------------------------------------------------- SDO_NUMBER_ARRAY(48,55,52,53)
7.49 SDO_GEOR.getColorMap
形式
SDO_GEOR.getColorMap( georaster IN SDO_GEORASTER, layerNumber IN NUMBER ) RETURN SDO_GEOR_COLORMAP;
説明
GeoRasterオブジェクトのレイヤーの疑似カラー表示のカラーマップを戻します。
パラメータ
使用上の注意
このファンクションは、SDO_GEOR_COLORMAP型のオブジェクトを戻します。カラーマップおよびこのオブジェクト型については、「SDO_GEOR_COLORMAPオブジェクト型」で説明しています。
GeoRasterオブジェクトのレイヤーにカラーマップを設定するには、SDO_GEOR.setColorMapプロシージャを使用します。
georaster
またはそのメタデータがNULLの場合、このファンクションはNULL値を戻します。
layerNumber
がNULL、負、またはレイヤーの最大番号より大きい値の場合、例外が発生します。
例
次の例では、GeoRasterオブジェクトのレイヤー1のカラーマップを戻します。(一部の出力は省略します。)
SELECT sdo_geor.getColorMap(georaster, 1) FROM georaster_table WHERE georid = 4; SDO_GEOR.GETCOLORMAP(GEORASTER,1)(CELLVALUE, RED, GREEN, BLUE, ALPHA) -------------------------------------------------------------------------------- SDO_GEOR_COLORMAP(SDO_NUMBER_ARRAY(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255), SDO_NUMBER_ARRAY(180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 18 0, 127, 127, 100, 50, 50, 127, 159, 191, 223, 255, 255, 255, 255, 218, 182, 145, 109, 72, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 72, 109, 145, 182, 218, 255, 200, 206, 212, 218, 224, 230, 236, 242, 248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255), SDO_NUMBER_ARRAY(127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 180, 127, 50, 100, 50, 127, 159, 191, 223, 255, 200, 150, 100, 122, 144, 166, 188, 210, 232, 255, 255, 255, 248, 241, 234, 227, 220, 213, 206, 200, 150, 100, 87, 75, 62, 50, 37, 25, 12, 0, 200, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 56, 85, 113, 141, 170, 198, 226, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255), SDO_NUMBER_ARRAY(127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 180, 50, 50, 100, 127, 95, 63, 31, 0, 0, 0, 0, 18, 36, 54, 72, 90, 108, 127, 100, 50, 43, 37, 31, 25, 18, 12, 6, 0, 0, 0, 31, 63, 95, 127, 159, 191, 223, 255, 255, 255, 127, 108, 90, 72, 54, 36, 18, 0, 0, 28, 56, 85, 113, 141, 170, 198, 226, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255), SDO_NUMBER_ARRAY(255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255))
7.50 SDO_GEOR.getColorMapTable
形式
SDO_GEOR.getColorMapTable( georaster IN SDO_GEORASTER, layerNumber IN NUMBER ) RETURN VARCHAR2;
説明
GeoRasterオブジェクトのレイヤーの疑似カラー表示のカラーマップ表を戻します。
注意:
今回のリリースのGeoRasterでは、カラーマップ表を使用した操作は実行されません。
パラメータ
使用上の注意
このファンクションは、ユーザー定義のカラーマップ表の名前を戻します。カラーマップの詳細は、「SDO_GEOR_COLORMAPオブジェクト型」を参照してください。
GeoRasterオブジェクトのレイヤーにカラーマップ表を設定するには、SDO_GEOR.setColorMapTableプロシージャを使用します。
georaster
またはそのメタデータがNULLの場合、このファンクションはNULL値を戻します。
layerNumber
がNULL、負、またはレイヤーの最大番号より大きい値の場合、例外が発生します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー2のカラーマップ表を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。
SELECT sdo_geor.getColorMapTable(georaster, 2) FROM georaster_table WHERE georid=4; SDO_GEOR.GETCOLORMAPTABLE(GEORASTER,2) -------------------------------------------------------------------------------- CMT1 1 row selected.
7.51 SDO_GEOR.getCompressionType
形式
SDO_GEOR.getCompressionType( georaster IN SDO_GEORASTER ) RETURN VARCHAR2;
説明
GeoRasterオブジェクトの圧縮タイプを戻します。
使用上の注意
このファンクションは、DEFLATE
、JPEG-F
、またはGeoRasterオブジェクトが圧縮されていないことを示すNONE
を戻します。GeoRaster圧縮の詳細は、「圧縮と解凍」を参照してください。
例
次の例では、GEORASTER_TABLE表のGeoRasterオブジェクト(GEORASTER列)の圧縮タイプを戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。
SELECT georid, substr(sdo_geor.getCompressionType(georaster),1,20) compressionType FROM georaster_table; GEORID COMPRESSIONTYPE ---------- -------------------- 2 DEFLATE 4 JPEG-F
7.52 SDO_GEOR.getControlPoint
形式
SDO_GEOR.getControlPoint ( inGeoraster IN SDO_GEORASTER, controlPointID IN VARCHAR2 ) RETURN SDO_GEOR_GCP;
説明
指定した基準点ID値を持つ地上基準点(GCP)を戻します。
パラメータ
使用上の注意
GCPを使用した地理参照の詳細は、「地上基準点(GCP)地理参照モデル」を参照してください。
このファンクションは、SDO_GEOR_GCP型のオブジェクトを戻します(「SDO_GEOR_GCPオブジェクト型」を参照)。
基準点IDがinGeoraster
でNULLであるか、空であるか、または存在しない場合、例外が発生します。
例
次の例では、指定したGeoRasterオブジェクトでID値が25のGCPを戻します。
SELECT sdo_geor.getControlPoint(georaster, '25') FROM georaster_table WHERE georid =10; SDO_GEOR.GETCONTROLPOINT(GEORASTER,'25')(POINTID, DESCRIPTION, POINTTYPE, CELLDI -------------------------------------------------------------------------------- SDO_GEOR_GCP('25', NULL, 2, 2, SDO_NUMBER_ARRAY(167.470583, 64.030686), 2, SDO_N UMBER_ARRAY(237032.015, 897916.265), NULL, NULL)
7.53 SDO_GEOR.getDefaultAlpha
形式
SDO_GEOR.getDefaultAlpha( georaster IN SDO_GEORASTER ) RETURN NUMBER;
説明
GeoRasterオブジェクトを表示する際に、(RGBA色空間の)アルファの色構成要素に使用されるレイヤー番号を戻します。この値がメタデータに設定されていない場合、NULL値が戻されます。
使用上の注意
デフォルトの赤、緑、青およびアルファの値は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。これらの値はオプションで、マルチレイヤーまたはハイパースペクトルのGeoRasterオブジェクトを視覚化する場合にのみ使用されます。
SDO_GEOR.getDefaultColorLayerファンクションを使用すると、4つすべての色構成要素(RGBA)のレイヤー番号を戻すことができます。
例
次の例では、GEORASTER_TABLEという表でGeoRasterオブジェクトを表示する際に赤、緑、青およびアルファの色構成要素に使用されるレイヤー番号を戻します(GEORASTER_TABLE表の定義は「記憶域パラメータ」の例1-1の次に説明されています)。
SELECT georid, sdo_geor.getDefaultRed(georaster) red, sdo_geor.getDefaultGreen(georaster) green, sdo_geor.getDefaultBlue(georaster) blue, sdo_geor.getDefaultAlpha(georaster) alpha FROM georaster_table; GEORID RED GREEN BLUE ALPHA ---------- ---------- ---------- ---------- ---------- 1 1 2 3 4 2 3 31 20 13 10
7.54 SDO_GEOR.getDefaultBlue
形式
SDO_GEOR.getDefaultBlue( georaster IN SDO_GEORASTER ) RETURN NUMBER;
説明
GeoRasterオブジェクトを表示する際に、(RGB色空間の)青の色構成要素に使用されるレイヤー番号を戻します。
使用上の注意
デフォルトの赤、緑および青の値は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。これらの値はオプションで、マルチレイヤーまたはハイパースペクトルのGeoRasterオブジェクトを視覚化する場合にのみ使用されます。
SDO_GEOR.getDefaultColorLayerファンクションを使用すると、3つすべての色構成要素(RGB)のレイヤー番号を戻すことができます。
例
次の例では、GEORASTER_TABLEという表でGeoRasterオブジェクトを表示する際に赤、青および緑の色構成要素に使用されるレイヤー番号を戻します(GEORASTER_TABLE表の定義は「記憶域パラメータ」の例1-1の次に説明されています)。
SELECT georid, sdo_geor.getDefaultRed(georaster) red, sdo_geor.getDefaultGreen(georaster) green, sdo_geor.getDefaultBlue(georaster) blue FROM georaster_table; GEORID RED GREEN BLUE ---------- ---------- ---------- ---------- 1 1 2 3 2 3 31 20 13
7.55 SDO_GEOR.getDefaultColorLayer
形式
SDO_GEOR.getDefaultColorLayer( georaster IN SDO_GEORASTER ) RETURN SDO_NUMBER_ARRAY;
説明
GeoRasterオブジェクトを表示する際に、赤、緑、青およびアルファの各色構成要素に使用されるデフォルトのレイヤー番号を戻します。
使用上の注意
戻されるRGBレイヤー番号は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。
SDO_GEOR.getDefaultRed、SDO_GEOR.getDefaultGreen、SDO_GEOR.getDefaultBlueおよびSDO_GEOR.getDefaultAlphaファンクションを使用すると、各色構成要素(RGBA)のレイヤー番号を戻すことができます。
アルファの色構成要素は、オプションです。デフォルトのアルファの色構成要素がメタデータに存在する場合、このファンクションは、それぞれ赤、緑、青およびアルファの色構成要素を識別する4つの数値の配列を戻します。デフォルトの赤、緑および青の色構成要素のみがメタデータに存在する場合、このファンクションは、それぞれ赤、緑および青の色構成要素を識別する3つの数値の配列を戻します。
例
次の例では、GEORASTER_TABLE表に含まれるGeoRasterオブジェクト(GEORASTER列)のデフォルトの赤、緑および青の色レイヤーを設定して、それらのGeoRasterオブジェクトを表示する際に赤、緑および青の色構成要素に使用されるレイヤー番号の配列を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setDefaultRed(grobj, 2); sdo_geor.setDefaultGreen(grobj, 3); sdo_geor.setDefaultBlue(grobj, 1); sdo_geor.setDefaultAlpha(grobj, 4); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; / SELECT sdo_geor.getDefaultColorLayer(georaster) FROM georaster_table WHERE georid=4; SDO_GEOR.GETDEFAULTCOLORLAYER(GEORASTER) -------------------------------------------------------------------------------- SDO_NUMBER_ARRAY(2, 3, 1) SDO_NUMBER_ARRAY(2, 3, 1, 4) 1 row selected.
7.56 SDO_GEOR.getDefaultGreen
形式
SDO_GEOR.getDefaultGreen( georaster IN SDO_GEORASTER ) RETURN NUMBER;
説明
GeoRasterオブジェクトを表示する際に、(RGB色空間の)緑の色構成要素に使用されるレイヤー番号を戻します。
使用上の注意
デフォルトの赤、緑および青の値は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。これらの値はオプションで、マルチレイヤーまたはハイパースペクトルのGeoRasterオブジェクトを視覚化する場合にのみ使用されます。
SDO_GEOR.getDefaultColorLayerファンクションを使用すると、3つすべての色構成要素(RGB)のレイヤー番号を戻すことができます。
例
次の例では、GEORASTER_TABLEという表でGeoRasterオブジェクトを表示する際に赤、青および緑の色構成要素に使用されるレイヤー番号を戻します(GEORASTER_TABLE表の定義は「記憶域パラメータ」の例1-1の次に説明されています)。
SELECT georid, sdo_geor.getDefaultRed(georaster) red, sdo_geor.getDefaultGreen(georaster) green, sdo_geor.getDefaultBlue(georaster) blue FROM georaster_table; GEORID RED GREEN BLUE ---------- ---------- ---------- ---------- 1 1 2 3 2 3 31 20 13
7.57 SDO_GEOR.getDefaultPyramidLevel
形式
SDO_GEOR.getDefaultPyramidLevel( georaster IN SDO_GEORASTER ) RETURN NUMBER;
説明
GeoRasterオブジェクトを表示するためのデフォルトのピラミッド・レベルの数を戻します。この値がメタデータに設定されていない場合、NULL値が戻されます。
使用上の注意
ピラミッド・レベルは、必要な記憶域が小さくなる低解像度イメージ、または必要な記憶域が大きくなる高解像度イメージを表します。ピラミッドおよびピラミッド・レベルの詳細は、「ピラミッド」を参照してください。
SDO_GEOR.setDefaultPyramidLevelプロシージャを使用して、デフォルトのピラミッド・レベルを設定できます。
例
次の例では、GEORASTER_TABLE表に含まれている指定されたGeoRasterオブジェクトを表示するためのデフォルトのピラミッド・レベルを戻します(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています)。
SELECT georid, sdo_geor.getDefaultPyramidLevel(georaster) plevel, FROM georaster_table WHERE georid = 6; GEORID PLEVEL ---------- ---------- 6 3
7.58 SDO_GEOR.getDefaultRed
形式
SDO_GEOR.getDefaultRed( georaster IN SDO_GEORASTER ) RETURN NUMBER;
説明
GeoRasterオブジェクトを表示する際に、(RGB色空間の)赤の色構成要素に使用されるレイヤー番号を戻します。
使用上の注意
デフォルトの赤、緑および青の値は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。これらの値はオプションで、マルチレイヤーまたはハイパースペクトルのGeoRasterオブジェクトを視覚化する場合にのみ使用されます。
SDO_GEOR.getDefaultColorLayerファンクションを使用すると、3つすべての色構成要素(RGB)のレイヤー番号を戻すことができます。
例
次の例では、GEORASTER_TABLEという表でGeoRasterオブジェクトを表示する際に赤、青および緑の色構成要素に使用されるレイヤー番号を戻します(GEORASTER_TABLE表の定義は「記憶域パラメータ」の例1-1の次に説明されています)。
SELECT georid, sdo_geor.getDefaultRed(georaster) red, sdo_geor.getDefaultGreen(georaster) green, sdo_geor.getDefaultBlue(georaster) blue FROM georaster_table; GEORID RED GREEN BLUE ---------- ---------- ---------- ---------- 1 1 2 3 2 3 31 20 13
7.59 SDO_GEOR.getEndDateTime
形式
SDO_GEOR.getEndDateTime( georaster IN SDO_GEORASTER ) RETURN TIMESTAMP WITH TIME ZONE;
説明
GeoRasterオブジェクトのメタデータから、ラスター・データ収集の終了日時を戻します。
使用上の注意
GeoRasterオブジェクトのメタデータで、ラスター・データ収集の終了日時を設定するには、SDO_GEOR.setEndDateTimeプロシージャを使用します。
georaster
またはそのメタデータがNULLの場合、このファンクションはNULL値を戻します。
例
次の例では、GEORASTER_TABLEという表で、値4のGEORID列に含まれているGeoRasterオブジェクトのメタデータから、ラスター・データ収集の開始日時および終了日時を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
SELECT sdo_geor.getBeginDateTime(georaster) beginDateTime, sdo_geor.getEndDateTime(georaster) endDateTime FROM georaster_table WHERE georid=4; BEGINDATETIME --------------------------------------------------------------------------- ENDDATETIME --------------------------------------------------------------------------- 01-JAN-00 05.00.00.000000000 AM +00:00 15-NOV-02 08.00.00.000000000 PM +00:00
7.60 SDO_GEOR.getGCPGeorefMethod
形式
SDO_GEOR.getGCPGeorefMethod( inGeoraster IN SDO_GEORASTER ) RETURN VARCHAR2;
説明
GeoRasterオブジェクトの地上基準点(GCP)ベースの地理参照ジオメトリ・モデル・タイプを戻します。
使用上の注意
GCPを使用した地理参照の詳細は、「地上基準点(GCP)地理参照モデル」を参照してください。
inGeoraster
に有効な地理参照モデル情報が含まれる場合、Affine
、QuadraticPolynomial
、CubicPolynomial
、DLT
、QuadraticRational
またはRPC
のいずれかが戻されます。
inGeoraster
に地理参照モデル情報が含まれない場合、このファンクションではNULL値が戻されます。
例
次の例では、指定したGeoRasterオブジェクトのGCPベースの地理参照モデル情報が戻されます。(出力は、読みやすくするために変更が加えられています。)
SELECT sdo_geor.getGCPGeorefMethod(georaster) FROM georaster_table WHERE georid =10; SDO_GEOR.GETGCPGEOREFMETHOD(GEORASTER) -------------------------------------------------------------------------------- Affine
7.61 SDO_GEOR.getGCPGeorefModel
形式
SDO_GEOR.getGCPGeorefModel( inGeoraster IN SDO_GEORASTER ) RETURN SDO_GEOR_GCPGEOREFTYPE;
説明
GeoRasterオブジェクトの地上基準点(GCP)ベースの地理参照モデルに関するすべての情報を戻します。
使用上の注意
GCPを使用した地理参照の詳細は、「地上基準点(GCP)地理参照モデル」を参照してください。
SDO_GEOR_GCPGEOREFTYPE型の詳細は、「SDO_GEOR_GCPGEOREFTYPEオブジェクト型」を参照してください。
inGeoraster
に地理参照モデル情報が含まれない場合、このファンクションではNULL値が戻されます。
例
次の例では、指定したGeoRasterオブジェクトのGCPベースの地理参照モデル情報が戻されます。(出力は、読みやすくするために変更が加えられています。)
SELECT sdo_geor.getGCPGeorefModel(georaster) FROM georaster_table WHERE georid=10; SDO_GEOR.GETGCPGEOREFMODEL(GEORASTER)(FFMETHODTYPE, NUMBERGCP, GCPS(POINTID, DES... -------------------------------------------------------------------------------- SDO_GEOR_GCPGEOREFTYPE('Affine', 6, SDO_GEOR_GCP_COLLECTION( SDO_GEOR_GCP('21', NULL, 1, 2,SDO_NUMBER_ARRAY(25.625, 73.875), 2, SDO_NUMBER_ARRAY(237036.938,897987.188), NULL, NULL), SDO_GEOR_GCP('22', NULL, 1, 2,SDO_NUMBER_ARRAY(100.625, 459.125), 2,SDO_NUMBER_ARRAY(237229.563, 897949.688), NULL, NULL), SDO_GEOR_GCP('23', NULL, 1, 2, SDO_NUMBER_ARRAY(362.375, 77.875), 2, SDO_NUMBER_ARRAY(237038.938, 897818.813), NULL, NULL), SDO_GEOR_GCP('24', NULL, 1, 2, SDO_NUMBER_ARRAY(478.875, 402.125), 2, SDO_NUMBER_ARRAY(237201.063, 897760.563), NULL, NULL), SDO_GEOR_GCP('25', NULL, 2, 2, SDO_NUMBER_ARRAY(167.470583, 64.030686), 2, SDO_NUMBER_ARRAY(237032.015, 897916.265), NULL, NULL), SDO_GEOR_GCP('26', NULL, 2, 2, SDO_NUMBER_ARRAY(101.456177, 257.915534), 2, SDO_NUMBER_ARRAY(237128.958, 897949.272), NULL, NULL)), NULL)
7.62 SDO_GEOR.getGeoreferenceType
形式
SDO_GEOR.getGeoreferenceType( georaster IN SDO_GEORASTER ) RETURN NUMBER;
説明
GeoRasterオブジェクトの地理参照タイプを示す番号を戻します。
使用上の注意
このファンクションでは、地理参照タイプを示す次のいずれかの番号が戻されます。種類が不明かNULLのGeoRasterオブジェクトの場合は1、アフィン変換の場合は2、DLT (Direct Linear Transform)の場合は3、RPC (Rational Polynomial Coefficient)の場合は4、三次多項式の場合は5、二次有理多項式の場合は6、二次多項式の場合は7です。
地理参照の詳細は、「地理参照」を参照してください。
例
次の例では、GEORASTER_TABLEという表名のGeoRasterオブジェクトの地理参照タイプを戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
SELECT georid,sdo_geor.getGeoreferenceType(a.georaster) FROM georaster_table a ORDER BY georid; GEORID SDO_GEOR.GETGEOREFERENCETYPE(A.GEORASTER) ---------- ----------------------------------------- 1 1 2 1 3 1 4 1 5 1 7 1 8 2 9 1 10 1 12 1 13 1 14 2 15 1 16 1 17 1 18 1 19 2 20 2 21 4 22 4
7.63 SDO_GEOR.getGrayScale
形式
SDO_GEOR.getGrayScale( georaster IN SDO_GEORASTER, layerNumber IN NUMBER ) RETURN SDO_GEOR_GRAYSCALE;
説明
GeoRasterオブジェクトのレイヤーのグレースケール・マッピングを戻します。
パラメータ
使用上の注意
このファンクションは、SDO_GEOR_GRAYSCALE型のオブジェクトを戻します。グレースケール表示およびこのオブジェクト型については、「SDO_GEOR_GRAYSCALEオブジェクト型」で説明しています。
GeoRasterオブジェクトのレイヤーにグレースケール・マッピングを設定するには、SDO_GEOR.setGrayScaleプロシージャを使用します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が0である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー0のグレースケール・マッピングを戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。
SELECT sdo_geor.getGrayScale(georaster, 0) FROM georaster_table WHERE georid=0; SDO_GEOR.GETGRAYSCALE(GEORASTER,0)(CELLVALUE, GRAY) -------------------------------------------------------------------------------- SDO_GEOR_GRAYSCALE(SDO_NUMBER_ARRAY(10, 20, 30, 255), SDO_NUMBER_ARRAY(180, 210, 230, 250))
7.64 SDO_GEOR.getGrayScaleTable
形式
SDO_GEOR.getGrayScaleTable( georaster IN SDO_GEORASTER, layerNumber IN NUMBER ) RETURN VARCHAR2;
説明
GeoRasterオブジェクトのレイヤーのグレースケール・マッピング表を戻します。
注意:
今回のリリースのGeoRasterでは、グレースケール・マッピング表を使用した操作は実行されません。
パラメータ
使用上の注意
このファンクションは、ユーザー定義のグレースケール表の名前を戻します。グレースケール表示の詳細は、「SDO_GEOR_GRAYSCALEオブジェクト型」を参照してください。
GeoRasterオブジェクトのレイヤーにグレースケール・マッピング表を設定するには、SDO_GEOR.setGrayScaleTableプロシージャを使用します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー0、1、2および3のグレースケール・マッピング表を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)出力は、読みやすくするために変更が加えられています。)
SELECT substr(sdo_geor.getGrayScaleTable(georaster, 0),1,20) grayScaleTable0, substr(sdo_geor.getGrayScaleTable(georaster, 1),1,20) grayScaleTable1, substr(sdo_geor.getGrayScaleTable(georaster, 2),1,20) grayScaleTable2, substr(sdo_geor.getGrayScaleTable(georaster, 3),1,20) grayScaleTable3 FROM georaster_table WHERE georid=4; GRAYSCALETABLE0 GRAYSCALETABLE1 GRAYSCALETABLE2 GRAYSCALETABLE3 -------------------- -------------------- -------------------- ----------------- SCL0 SCL1 SCL2 SCL3
7.65 SDO_GEOR.getHistogram
形式
SDO_GEOR.getHistogram( georaster IN SDO_GEORASTER, layerNumber IN NUMBER ) RETURN SDO_GEOR_HISTOGRAM;
説明
GeoRasterオブジェクトのレイヤーのヒストグラムを戻します。
パラメータ
使用上の注意
このファンクションは、SDO_GEOR_HISTOGRAM型のオブジェクトを戻します。このオブジェクト型およびヒストグラムの概要は、「SDO_GEOR_HISTOGRAMオブジェクト型」で説明しています。
例
次の例では、GEORASTER_TABLE表に含まれている、4ビットGeoRasterオブジェクトのレイヤー1のヒストグラムを戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。
SELECT sdo_geor.getHistogram(georaster, 1) layer1 FROM georaster_table WHERE georid=17; LAYER1(CELLVALUE, COUNT) -------------------------------------------------------------------------------- SDO_GEOR_HISTOGRAM(SDO_NUMBER_ARRAY(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,12, 13, 14, 15), SDO_NUMBER_ARRAY(10, 18, 10, 110, 200, 120, 130, 150, 160, 103, 106, 190, 12, 17, 10, 5))
7.66 SDO_GEOR.getHistogramTable
形式
SDO_GEOR.getHistogramTable( georaster IN SDO_GEORASTER, layerNumber IN NUMBER ) RETURN VARCHAR2;
説明
GeoRasterオブジェクトのレイヤーのヒストグラム表を戻します。
注意:
今回のリリースのGeoRasterでは、ヒストグラム表を使用した操作は実行されません。
パラメータ
使用上の注意
このファンクションは、ユーザー定義のヒストグラム表を戻します。このオブジェクト型およびヒストグラムの概要は、「SDO_GEOR_HISTOGRAMオブジェクト型」で説明しています。
レイヤーにヒストグラム表の名前を設定するには、SDO_GEOR.setHistogramTableプロシージャを使用します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー0 (オブジェクト全体)、1、2および3のヒストグラム表を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)出力は、読みやすくするために変更が加えられています。)
SELECT substr(sdo_geor.getHistogramTable(georaster, 0),1,20) histogramTable0, substr(sdo_geor.getHistogramTable(georaster, 1),1,20) histogramTable1, substr(sdo_geor.getHistogramTable(georaster, 2),1,20) histogramTable2, substr(sdo_geor.getHistogramTable(georaster, 3),1,20) histogramTable3 FROM georaster_table WHERE georid=4; HISTOGRAMTABLE0 HISTOGRAMTABLE1 HISTOGRAMTABLE2 HISTOGRAMTABLE3 -------------------- -------------------- -------------------- ----------------- HIST0 HIST1 HIST2 HIST3
7.67 SDO_GEOR.getID
形式
SDO_GEOR.getID( georaster IN SDO_GEORASTER ) RETURN VARCHAR2;
説明
GeoRasterオブジェクトに関連付けられたユーザー定義の識別子の値を戻します。
使用上の注意
GeoRasterオブジェクトにユーザー定義の識別子の値を設定するには、SDO_GEOR.setIDプロシージャを使用します。
例
次の例では、GEORASTER_TABLE表のGeoRasterオブジェクト(GEORASTER列)のユーザー定義の識別子の値を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。
SELECT georid, substr(sdo_geor.getID(georaster),1,50) GEOR_ID FROM georaster_table; GEORID GEOR_ID ---------- -------------------------------------------------- 2 TM_102 4 TM_104
7.68 SDO_GEOR.getInterleavingType
形式
SDO_GEOR.getInterleavingType( georaster IN SDO_GEORASTER ) RETURN VARCHAR2;
説明
GeoRasterオブジェクトのインターリーブ・タイプを戻します。
使用上の注意
このファンクションは、BSQ
(順次バンド)、BIL
(ライン単位のバンドのインターリーブ)またはBIP
(ピクセル単位のバンドのインターリーブ)のいずれかの値を戻します。
GeoRasterオブジェクトのインターリーブ・タイプを変更するには、SDO_GEOR.changeFormatCopyプロシージャを使用し、storageParam
パラメータ文字列でinterleaving
キーワードを使用します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTER列)のセル深度、インターリーブ・タイプ、およびブロック・タイプを戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。
SELECT sdo_geor.getCellDepth(georaster) CellDepth, substr(sdo_geor.getInterleavingType(georaster),1,8) interleavingType, substr(sdo_geor.getBlockingType(georaster),1,8) blocking FROM georaster_table WHERE georid=21; CELLDEPTH INTERLEA BLOCKING ---------- -------- -------- 8 BSQ REGULAR
7.69 SDO_GEOR.getJP2TileSize
形式
SDO_GEOR.getJP2TileSize( georaster IN SDO_GEORASTER ) RETURN SDO_NUMBER_ARRAY;
説明
行、列の順序でJPEG2000圧縮したGeoRasterイメージのタイルのサイズを示す配列を戻します。
使用上の注意
JPEG2000圧縮したGeoRasterイメージのタイル処理が存在しない場合、NULLが戻されます。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているJPEG2000圧縮したGeoRasterオブジェクト(GEORASTER列)のタイル・サイズを戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。
SELECT sdo_geor.getJP2TileSize(georaster) JP2TileSize FROM georaster_table WHERE georid=21; JP2TILESIZE -------------------------------------------------------------------------------- SDO_NUMBER_ARRAY(350, 512)
7.70 SDO_GEOR.getLayerDimension
形式
SDO_GEOR.getLayerDimension( georaster IN SDO_GEORASTER ) RETURN SDO_STRING_ARRAY;
説明
GeoRasterオブジェクトの論理レイヤー次元としてマップされた次元を戻します。
使用上の注意
レイヤー次元とは、論理的な概念であるレイヤーに関連付けられた物理エンティティを指します。今回のリリースでサポートされているレイヤー次元は、BAND
のみです。つまり、論理的な概念であるレイヤーは、物理的な用語であるバンドに関連付けられています(「バンド、レイヤーおよびメタデータ」の図1-5を参照)。この場合、レイヤーはBAND
次元にマップされるため、最初のレイヤーはバンド0、2番目のレイヤーはバンド1のようになります。
例
次の例では、GEORASTER_TABLE表の各GeoRasterオブジェクト(GEORASTER列)のレイヤー次元を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。(出力は、読みやすくするために変更が加えられています。)
SELECT georid, sdo_geor.getLayerDimension(georaster) FROM georaster_table; GEORID SDO_GEOR.GETLAYERDIMENSION(GEORASTER) ---------- ------------------------------------------------------------------ 2 SDO_STRING_ARRAY('BAND') 4 SDO_STRING_ARRAY('BAND')
7.71 SDO_GEOR.getLayerID
形式
SDO_GEOR.getLayerID( georaster IN SDO_GEORASTER, layerNumber IN NUMBER ) RETURN VARCHAR2;
説明
GeoRasterオブジェクトのレイヤーに関連付けられたユーザー定義の識別子の値を戻します。
パラメータ
使用上の注意
GeoRasterオブジェクトのレイヤーにユーザー定義の識別子の値を設定するには、SDO_GEOR.setLayerIDプロシージャを使用します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー0、1、2および3のユーザー定義の識別子の値を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。
SELECT substr(sdo_geor.getLayerID(georaster, 0),1,12) layerID0, substr(sdo_geor.getLayerID(georaster, 1),1,12) layerID1, substr(sdo_geor.getLayerID(georaster, 2),1,12) layerID2, substr(sdo_geor.getLayerID(georaster, 3),1,12) layerID3 FROM georaster_table WHERE georid=4; LAYERID0 LAYERID1 LAYERID2 LAYERID3 ------------ ------------ ------------ ------------ TM543 TM3 TM4 TM5
7.72 SDO_GEOR.getLayerOrdinate
形式
SDO_GEOR.getLayerOrdinate( georaster IN SDO_GEORASTER, layerNumber IN NUMBER ) RETURN NUMBER;
説明
GeoRasterオブジェクトのレイヤーのバンド座標を戻します。
パラメータ
使用上の注意
戻される番号は、レイヤー(layerNumber
パラメータ値)が関連付けられている物理バンドを指します。今回のリリースのデフォルトでは、関連付けは、レイヤー1がバンド0、レイヤー2がバンド1のようになります(「バンド、レイヤーおよびメタデータ」の図1-5を参照)。
レイヤーにバンド座標の値を設定するには、SDO_GEOR.setLayerOrdinateプロシージャを使用します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー0、1、2および3に関連付けられているバンド番号を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。
SELECT sdo_geor.getLayerOrdinate(georaster, 0) layerOrdinate0, sdo_geor.getLayerOrdinate(georaster, 1) layerOrdinate1, sdo_geor.getLayerOrdinate(georaster, 2) layerOrdinate2, sdo_geor.getLayerOrdinate(georaster, 3) layerOrdinate3 FROM georaster_table WHERE georid=4; LAYERORDINATE0 LAYERORDINATE1 LAYERORDINATE2 LAYERORDINATE3 -------------- -------------- -------------- -------------- 0 1 2
7.73 SDO_GEOR.getModelCoordinate
形式
SDO_GEOR.getModelCoordinate( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, cellCoordinate IN SDO_NUMBER_ARRAY, height IN NUMBER DEFAULT NULL, ) RETURN SDO_GEOMETRY;
または
SDO_GEOR.getModelCoordinate( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, cellCoordinate IN SDO_GEOMETRY, modelCoordinate OUT SDO_GEOMETRY, height IN NUMBER DEFAULT NULL);
説明
指定したピラミッド・レベルの指定したセル(ラスター)座標に関連付けられたジオメトリを戻します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- pyramidLevel
-
cellCoordinate
で指定するセルを含むピラミッド・レベルを指定します。 - cellCoordinate
-
SDO_NUMBER_ARRAY型の場合、
cellCoordinate
にはセル座標系の点を示す2つの座標の配列を指定します(2つの座標とは、点の行番号と列番号のことです)。SDO_GEOMETRY型の場合、cellCoordinate
でセル座標系内のジオメトリを指定します。 - modelCoordinate
-
出力されるジオメトリを指定します。
- height
-
3次元(X, Y, Z)の地理参照で使用するZの値を指定します。
使用上の注意
SDO_GEOR.getModelCoordinateには2つの構文があります。
-
最初の(
modelCoordinate
パラメータを指定しないファンクション)構文は、GeoRasterオブジェクトのラスター空間に存在する点の位置を変換する場合に使用します。 -
2つ目の(
modelCoordinate
パラメータを指定するプロシージャ)構文は、GeoRasterオブジェクトのラスター空間に存在するジオメトリを変換する場合に使用します。変換は、入力されたジオメトリの各頂点の座標を変換することで行われます。出力されるジオメトリが有効なものになるように、適切な入力ジオメトリを使用してください。たとえば、モデル座標系が測地座標系である場合、入力ジオメトリには円弧が含まれないようにします。
SDO_GEOR.getModelCoordinateは、GeoRasterオブジェクト上の点の位置を、地上座標系の対応する点の経度と緯度の座標に変換する場合に使用します。
GeoRasterオブジェクトが地理参照されている場合は、出力されるジオメトリにモデル(地上)座標系の座標が含まれます。GeoRasterオブジェクトが地理参照されていない場合は、出力されるジオメトリに元のイメージ・レベルのセル座標が含まれます。
GeoRasterオブジェクトが地理参照されている場合、出力されるジオメトリのSDO_SRID値はGeoRasterオブジェクトのモデルSRIDと同じです。
SDO_GEOR.getModelCoordinateは、指定されたモデル(地上)座標の点に関連付けられたセル(ラスター)座標系の座標を戻すSDO_GEOR.getCellCoordinateと対照的です。
例
次の例では、指定したGeoRasterオブジェクトのセル座標(100,100)に関連付けられたモデル座標を含む点ジオメトリ・オブジェクトを戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
SET NUMWIDTH 20 SELECT sdo_geor.getModelCoordinate(georaster, 0, sdo_number_array(100,100)) mcoord FROM georaster_table WHERE georid=4; MCOORD(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES) -------------------------------------------------------------------------------- SDO_GEOMETRY(2001, 82394, SDO_POINT_TYPE(347.666315789474, 43274.9052631579, NUL L), NULL, NULL)
7.74 SDO_GEOR.getModelCoordLocation
形式
SDO_GEOR.getModelCoordLocation( georaster IN SDO_GEORASTER ) RETURN VARCHAR2;
説明
GeoRasterオブジェクトのモデル座標の位置を示す値を戻します。
使用上の注意
GeoRasterオブジェクトが地理参照されていない場合、またはmodelCoordinateLocation
要素がSRSメタデータに指定されていない場合、このファンクションはNULL値を戻します。それ以外の場合は、SRSメタデータに指定されたmodelCoordinateLocation
要素の値を戻します。
戻された値がNULLまたはCENTER
の場合は、中心を基準にしたセル座標系であることを示します。値がUPPERLEFT
の場合は、左上角を基準にしたセル座標系であることを示します。
GeoRasterオブジェクトのモデル座標の位置の値を設定または削除するには、SDO_GEOR.setModelCoordLocationプロシージャを使用します。
GCPを使用した地理参照の詳細は、「地上基準点(GCP)地理参照モデル」を参照してください。
例
次の例では、指定したGeoRasterオブジェクトのモデル座標位置を戻します。
SELECT sdo_geor.getModelCoordLocation(georaster) modelCoordLocation FROM georaster_table WHERE georid = 1;
7.75 SDO_GEOR.getModelSRID
形式
SDO_GEOR.getModelSRID( georaster IN SDO_GEORASTER ) RETURN NUMBER;
説明
GeoRasterオブジェクトのモデル(地上)空間に関連付けられた座標系(SDO_SRID値)を戻します。
使用上の注意
座標系がモデル空間に関連付けられていない場合、このファンクションはNULL値を戻します。
モデル空間に関連付けられた座標系(SDO_SRID値)を設定するには、SDO_GEOR.setModelSRIDプロシージャを使用します。
例
次の例では、GEORASTER_TABLE表のGeoRasterオブジェクト(GEORASTER列)に関連付けられているSDO_SRID値を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。
SELECT georid, sdo_geor.getModelSRID(georaster) SRID FROM georaster_table; GEORID SRID ---------- ---------- 2 82394 4 82394
7.76 SDO_GEOR.getNODATA
形式
SDO_GEOR.getNODATA( georaster IN SDO_GEORASTER, layerNumber IN NUMBER ) RETURN SDO_RANGE_ARRAY;
説明
GeoRasterオブジェクト内のNODATAセルを表す値または値の範囲を(重複値を除いて昇順に)戻します。
パラメータ
使用上の注意
GeoRasterオブジェクトの一部のセルでは、有効な値が割り当てられていないか、または収集されていない場合があります。このようなNODATA値を含むセルは、NODATAセルと呼ばれ、それらのセルが有効に定義されていないことを意味します。NODATAセルとして識別されたセルの意味または重要度の定義は、アプリケーションが行います。NODATA値および値の範囲の詳細は、「NODATA値および値の範囲」を参照してください。
このファンクションは、指定したGeoRasterオブジェクトの指定したラスター・レイヤーに関連付けられたすべてのNODATA値およびその値の範囲を、重複を除いた簡潔な形式で昇順で戻します。サブレイヤー(layerNumber
> 0)に関連付けられたNODATA値およびその値の範囲のセットは、常にオブジェクト・レイヤー(layerNumber
= 0)の値およびその値の範囲のスーパーセットになります。サブレイヤーの結果は、指定したサブレイヤー、オブジェクト・レイヤー、およびラスター定義情報の一部として格納されたリリース11g より前のすべてのNODATAメタデータに対するNODATAメタデータ・エントリを組み合せたものになります。
指定したGeoRasterオブジェクトまたはレイヤーに複数のNODATA値が含まれる場合は、SDO_RANGE_ARRAYオブジェクトを戻すファンクション構文を使用してください。SDO_RANGE_ARRAY型の詳細は、「NODATA値および値の範囲」を参照してください。
このファンクションがNULL値を戻す場合、GeoRasterオブジェクトまたは指定したレイヤーのすべてのセルが定義済であり、有効なセル値を持つことを示します。
GeoRasterオブジェクトにNODATA値を指定するには、SDO_GEOR.addNODATAプロシージャを使用します。
例
次の例では、GEORASTER_TABLE表のGeoRasterオブジェクト(GEORASTER列)のNODATAセルで使用されている値を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。
SELECT SDO_GEOR.getNODATA(georaster, 0) NODATA FROM georaster_table WHERE georid=0; NODATA ------------ SDO_RANGE_ARRAY(SDO_RANGE(5,7))
7.77 SDO_GEOR.getPyramidMaxLevel
形式
SDO_GEOR.getPyramidMaxLevel( georaster IN SDO_GEORASTER ) RETURN NUMBER;
説明
GeoRasterオブジェクトのピラミッドの最上位レベルの番号を戻します。
使用上の注意
ピラミッドの詳細は、「ピラミッド」を参照してください。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTER列)のピラミッド・タイプおよびピラミッドの最上位レベル番号を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。
SELECT substr(sdo_geor.getPyramidType(georaster),1,10) pyramidType, sdo_geor.getPyramidMaxLevel(georaster) maxLevel FROM georaster_table WHERE georid=21; PYRAMIDTYP MAXLEVEL ---------- ---------- DECREASE 3
7.78 SDO_GEOR.getPyramidType
形式
SDO_GEOR.getPyramidType( georaster IN SDO_GEORASTER ) RETURN VARCHAR2;
説明
GeoRasterオブジェクトのピラミッド・タイプを戻します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTER列)のピラミッド・タイプおよびピラミッドの最上位レベル番号を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。
SELECT substr(sdo_geor.getPyramidType(georaster),1,10) pyramidType, sdo_geor.getPyramidMaxLevel(georaster) maxLevel FROM georaster_table WHERE georid=21; PYRAMIDTYP MAXLEVEL ---------- ---------- DECREASE 3
7.79 SDO_GEOR.getRasterBlockLocator
形式
SDO_GEOR.getRasterBlockLocator( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, bandBlockNumber IN NUMBER, rowBlockNumber IN NUMBER, columnBlockNumber IN NUMBER, loc IN OUT NOCOPY BLOB, isBitmapMask IN VARCHAR2 DEFAULT NULL, lock_for_write IN VARCHAR2 DEFAULT NULL);
または
SDO_GEOR.getRasterBlockLocator( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, rowNumber IN NUMBER, colNumber IN NUMBER, bandNumber IN NUMBER, offset OUT NUMBER, loc IN OUT NOCOPY BLOB, isBitmapMask IN VARCHAR2 DEFAULT NULL, lock_for_write IN VARCHAR2 DEFAULT NULL);
または
SDO_GEOR.getRasterBlockLocator( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, ptGeom IN SDO_GEOMETRY, layerNumber IN NUMBER, offset OUT NUMBER, loc IN OUT NOCOPY BLOB, isBitmapMask IN VARCHAR2 DEFAULT NULL, lock_for_write IN VARCHAR2 DEFAULT NULL);
説明
このプロシージャには3つの構文があります。
-
最初にリストされている構文は、
pyramidLevel
、bandBlockNumber
、rowBlockNumber
およびcolumnBlockNumber
パラメータの指定によってラスター・ブロックのLOBロケータを戻します。 -
2番目と3番目にリストされている構文は、特定の単一セルを含むラスター・ブロックのLOBロケータおよびラスター・ブロック内のセルのオフセットを戻します。特定の単一セルは、
pyramidLevel
、rowNumber
、columnNumber
およびbandNumber
パラメータによって、またはセル座標空間かモデル座標空間の点ジオメトリ・パラメータ(ptGeom
)によって識別されます。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- pyramidLevel
-
ブロックのピラミッド・レベルを指定します。
- bandBlockNumber
-
ブロックのバンド番号を指定します。
- bandNumber
-
セルのバンド番号を指定します。
- rowBlockNumber
-
ブロックの行番号を指定します。
- rowNumber
-
セルの行番号を指定します。
- columnBlockNumber
-
ブロックの列番号を指定します。
- columnNumber
-
セルの列番号を指定します。
- ptGeom
-
セルの位置を特定する点ジオメトリを指定します。
- layerNumber
-
値を戻すセルを含む論理レイヤーの番号を指定します。(「バンド、レイヤーおよびメタデータ」で説明したように、論理レイヤー番号は、物理バンドの座標番号に1を足した値です。)
- offset
-
検索されるラスター・ブロック内のセルのオフセット(バイト単位)を含める出力パラメータを指定します。ラスター・ブロックが圧縮される場合、それは常にブロックの解凍バージョンに含まれるセルのオフセットを示します。
- loc
-
LOBロケータ。
- isBitmapMask
-
ビットマップ・マスク・ブロックにアクセスする場合は文字列
TRUE
を指定します。通常のラスター・ブロックにアクセスする場合は文字列FALSE
を指定します。このパラメータを指定しない場合は、通常のラスター・ブロックにアクセスします。ビットマップ・マスクの詳細は、「ビットマップ・マスク」を参照してください。 - lockForWrite
-
文字列
TRUE
を指定すると、ラスター・データ表の行がロックされ、現行のトランザクションが終了するまで、他のユーザーはその行をロックしたり更新することができなくなります。文字列FALSE
を指定すると、ラスター・データ表の行はロックされません。このパラメータを指定しない場合、行はロックされません。
使用上の注意
このプロシージャは、指定されたパラメータを使用してラスター・ブロック・ロケータ(および一部の構文ではオフセット)を取得します。LOBロケータはオープンされず、データの読取りや処理は行われません。LOBロケータのオープンおよびクローズ、LOBロケータからのデータの読取りおよびLOBロケータへのデータの書込みには、標準のLOB操作を使用する必要があります。
データの読取りまたは書込みが正しく行われるようにするには、ラスター・データの物理記憶域(「GeoRasterの物理記憶域」を参照)を理解しておく必要があります。また、必要に応じてラスター・データを圧縮および解凍する必要があります。
LOBロケータについては、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください。
例
次の例では、2つのラスター・ブロックのLOBロケータを取得します。1つ目は通常のラスター・ブロックで、2つ目はビットマップ・マスク・ブロックです。SDO_GEOR.getRasterBlockLocatorプロシージャへのいずれのコールも、ラスター・データ表の行がロックされます。
DECLARE gr sdo_georaster; lb blob; offset number; BEGIN select georaster into gr from georaster_table where georid=1; sdo_geor.getRasterBlockLocator(gr, 0, 0, 0, 0, offset,lb, null, 'TRUE'); sdo_geor.getRasterBlockLocator(gr, 0, 0, 0, 0, offset,lb, 'TRUE', 'TRUE'); END; /
7.80 SDO_GEOR.getRasterBlocks
形式
SDO_GEOR.getRasterBlocks( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, window IN SDO_NUMBER_ARRAY ) RETURN SDO_RASTERSET;
または
SDO_GEOR.getRasterBlocks( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, window IN SDO_GEOMETRY ) RETURN SDO_RASTERSET;
説明
指定されたピラミッド・レベルで、指定されたウィンドウと空間的に相互作用するすべてのブロックを識別する、SDO_RASTERSETコレクション型のオブジェクトを戻します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- pyramidLevel
-
指定したウィンドウと空間的に相互作用するブロックを戻すピラミッド・レベルを指定します。
- window
-
pyramidLevel
で指定したレベル内のブロックを戻すウィンドウを指定します。データ型はSDO_NUMBER_ARRAYまたはSDO_GEOMETRYのいずれかです。データ型がSDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合は、SDO_SRID要件の「使用上の注意」を参照してください。
使用上の注意
SDO_RASTERSETコレクション型の詳細は、「SDO_RASTERSETコレクション型」を参照してください。
window
パラメータのデータ型がSDO_GEOMETRYの場合、SDO_SRID値は次のいずれかの値である必要があります。
-
NULL(ラスター空間を指定)
-
MDSYS.CS_SRS表のSRID列の値
window
パラメータ・ジオメトリとモデル空間のSDO_SRID値が異なる場合は、処理が実行される前に、window
パラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、「GeoRasterデータ・モデル」を参照してください。)
例
次の例では、指定したウィンドウと空間的に相互作用するすべてのラスター・ブロックを識別するコレクション・セットを戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE gr sdo_georaster; ds sdo_rasterset; BEGIN SELECT georaster INTO gr FROM georaster_table WHERE georid=2; ds := sdo_geor.getRasterBlocks(gr, 0, sdo_number_array(11,65,192,244)); COMMIT; END; /
7.81 SDO_GEOR.getRasterData
形式
SDO_GEOR.getRasterData( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, rasterBlob IN OUT NOCOPY BLOB, storageParam IN VARCHAR2 DEFAULT NULL, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
説明
指定されたピラミッド・レベルで、入力されたGeoRasterオブジェクトのすべてのラスター・データを含む単一のBLOBオブジェクトを作成します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- pyramidLevel
-
操作を実行するピラミッド・レベルを指定します。
- rasterBlob
-
結果を格納するBLOBオブジェクトを指定します。
- storageParam
-
rasterBlob
の作成時に適用される記憶域パラメータを示す文字列を指定します。このプロシージャでサポートされているstorageParam
キーワードはcelldepth
、compression
、interleaving
およびquality
のみで、他のキーワードはすべて無視されます。記憶域パラメータについては、「記憶域パラメータ」を参照してください。storageParam
がNULLの場合、または指定されない場合は、セル深度、インターリーブ、圧縮タイプ(および該当する場合は圧縮品質)は、入力されたGeoRasterオブジェクトと同じになります。 - bgValues
-
スパース・データに入力する背景値を指定します。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、
SDO_NUMBER_ARRAY(1,5,10)
では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValues
は0 (ゼロ)です。このパラメータは、空のラスター・ブロック(「空のラスター・ブロック」を参照)がソースに含まれる場合に有効です。このパラメータを指定しない場合、空のラスター・ブロックから導出されるすべてのセルは、出力のBLOBでは値0(ゼロ)が埋め込まれます。
使用上の注意
GeoRasterオブジェクトがブロック化されている場合、指定したピラミッド・レベルのすべてのブロックのモザイクが戻されます。
プロシージャが完了すると、rasterBlob
オブジェクトには、タイル処理されていないセル(ピクセル)データが含まれます。
入力されたGeoRasterオブジェクトが圧縮されていない場合、またはstorageParam
パラメータで指定した以外の形式で圧縮されている場合でも、圧縮を指定できます。圧縮済の入力されたGeoRasterオブジェクトに対して、解凍された出力を得るには、storageParam
パラメータでcompression=NONE
を指定します。GeoRasterの圧縮および解凍の詳細は、「圧縮と解凍」を参照してください。
例
次の例では、フルフォーマット基準のJPEG(JPEG-F)圧縮を使用して、GEORASTER_TABLE表内でID値が2のGeoRasterオブジェクトのすべてのラスター・データからBLOBオブジェクトを作成します。この表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。
DECLARE gr sdo_georaster; lb blob; BEGIN SELECT georaster INTO gr FROM georaster_table WHERE georid=2; dbms_lob.createTemporary(lb, FALSE); sdo_geor.getRasterData(gr, 0, lb, 'compress=JPEG-F'); dbms_lob.freeTemporary(lb); END; /
7.82 SDO_GEOR.getRasterRange
形式
SDO_GEOR.getRasterRange( georaster IN SDO_GEORASTER, layerNumber IN NUMBER DEFAULT 0 ) RETURN SDO_NUMBER_ARRAY;
説明
GeoRasterオブジェクトの指定したレイヤーまたはGeoRasterオブジェクト自体(オブジェクト・レイヤー)の最小および最大のセル値を計算して戻します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- layerNumber
-
セル値の範囲を戻すレイヤーの番号を指定します。値が0 (ゼロ、デフォルト)の場合、オブジェクト・レイヤーが指定されます。(「バンド、レイヤーおよびメタデータ」で説明したように、論理レイヤー番号は、物理バンドの番号に1を足した値です。)
使用上の注意
このファンクションは、GeoRasterオブジェクトの指定したレイヤーのすべてのセル値を処理し、2つの値(セルの最小値と最大値)とともにSDO_NUMBER_ARRAYオブジェクトを戻します。
GeoRasterオブジェクトに、生成された統計メタデータがある場合、SDO_GEOR.getStatisticsファンクションをコールして、そのラスター範囲の最大値と最小値を簡単に直接取り出すことができます。
バンドとレイヤーの詳細は、「バンド、レイヤーおよびメタデータ」を参照してください。
例
次の例では、GeoRasterオブジェクト全体のラスター範囲を計算して戻します。
DECLARE gr sdo_georaster; range sdo_number_array; BEGIN select georaster into gr from georaster_table where georid=1; range:=sdo_geor.getRasterRange(gr, 0); END; /
7.83 SDO_GEOR.getRasterSubset
形式
SDO_GEOR.getRasterSubset( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, window IN SDO_NUMBER_ARRAY, bandNumbers IN VARCHAR2, rasterBlob IN OUT NOCOPY BLOB, storageParam IN VARCHAR2 DEFAULT NULL, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR.getRasterSubset( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, inWindow IN SDO_NUMBER_ARRAY, bandNumbers IN VARCHAR2, rasterBlob IN OUT NOCOPY BLOB, outWindow OUT SDO_NUMBER_ARRAY, storageParam IN VARCHAR2 DEFAULT NULL, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR.getRasterSubset( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, window IN SDO_GEOMETRY, layerNumbers IN VARCHAR2, rasterBlob IN OUT NOCOPY BLOB, storageParam IN VARCHAR2 DEFAULT NULL, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, polygonClip IN VARCHAR2 DEFAULT NULL);
または
SDO_GEOR.getRasterSubset( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, inWindow IN SDO_GEOMETRY, layerNumbers IN VARCHAR2, rasterBlob IN OUT NOCOPY BLOB, outWindow OUT SDO_NUMBER_ARRAY, storageParam IN VARCHAR2 DEFAULT NULL, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, polygonClip IN VARCHAR2 DEFAULT NULL);
または
SDO_GEOR.getRasterSubset( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, inWindow IN SDO_NUMBER_ARRAY, bandNumbers IN VARCHAR2, rasterData IN OUT SDO_NUMBER_ARRAY, outWindow OUT SDO_NUMBER_ARRAY, storageParam IN VARCHAR2 DEFAULT NULL, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR.getRasterSubset( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, inWindow IN SDO_GEOMETRY, layerNumbers IN VARCHAR2, rasterData IN OUT SDO_NUMBER_ARRAY, outWindow OUT SDO_NUMBER_ARRAY, storageParam IN VARCHAR2 DEFAULT NULL, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, polygonClip IN VARCHAR2 DEFAULT NULL);
説明
指定されたピラミッド・レベルで、指定された矩形ウィンドウまたはポリゴンのジオメトリ・オブジェクトの境界内または境界上に存在するすべてのセルを含む単一のBLOBオブジェクトまたは単一のSDO_NUMBER_ARRAYオブジェクトを作成します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- pyramidLevel
-
操作を実行するピラミッド・レベルを指定します。
- window、inWindow
-
セルのクロッピング元となる矩形ウィンドウまたはポリゴンのジオメトリ・オブジェクトを指定します。データ型がSDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYで
polygonClip
値がFALSE
の場合、ジオメトリ・オブジェクトのMBRがウィンドウとして使用されますが、データ型がSDO_GEOMETRYでpolygonClip
値がTRUE
の場合、ポリゴンのジオメトリ・オブジェクト(有効な場合)がウィンドウとして使用されます。データ型がSDO_GEOMETRYの場合は、SDO_SRID要件の「使用上の注意」も参照してください。window
またはinWindow
がSDO_NUMBER_ARRAY型の場合は、bandNumbers
パラメータを使用して、1つ以上のバンド番号を指定します。window
またはinWindow
がSDO_GEOMETRY型の場合は、layerNumbers
パラメータを使用して、1つ以上のレイヤー番号を指定します。 - layerNumbers
-
処理を実行する論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、
2-4
はレイヤー2、3および4を示します)。このパラメータにNULL値を指定した場合、すべてのレイヤーで処理が実行されます。 - bandNumbers
-
処理を実行する物理バンド番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、
1-3
はバンド1、2および3を示します)。このパラメータにNULL値を指定した場合、すべてのバンドで処理が実行されます。 - rasterBlob
-
処理の結果(モザイク処理されたラスター・サブセット)を格納するBLOBオブジェクトを指定します。処理の前に、存在しているか、または初期化されている必要があります。
- rasterData
-
処理の結果(モザイク処理されたラスター・サブセット)を格納するSDO_NUMBER_ARRAYオブジェクトを指定します。
(注意: SDO_NUMBER_ARRAYオブジェクトの要素番号の上限は1048576です。)
- outWindow
-
セル空間内で出力ウィンドウの左上角および右下角の座標を指定するSDO_NUMBER_ARRAYオブジェクトを指定します。
- storageParam
-
rasterBlob
の作成時に適用される記憶域パラメータを示す文字列を指定します。このプロシージャでサポートされているstorageParam
キーワードはcelldepth
、compression
、interleaving
およびquality
のみで、他のキーワードはすべて無視されます。記憶域パラメータについては、「記憶域パラメータ」を参照してください。storageParamがNULLの場合、または指定されない場合は、セル深度、インターリーブ、圧縮タイプ(および該当する場合は圧縮品質)は、入力されたGeoRasterオブジェクトと同じになります。
- bgValues
-
スパース・データに入力する背景値を指定します。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、
SDO_NUMBER_ARRAY(1,5,10)
では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValues
は0 (ゼロ)です。このパラメータは、空のラスター・ブロック(「空のラスター・ブロック」を参照)がソースに含まれる場合、および出力ウィンドウが空のラスター・ブロックと交差する場合に有効です。このパラメータを指定しない場合は、空のラスター・ブロックから導出される出力ウィンドウ内のすべてのセルは、出力のBLOBでは値0(ゼロ)が埋め込まれます。
- polygonClip
-
文字列
TRUE
では、window
またはinWindow
ジオメトリ・オブジェクトがサブセット操作で使用されますが、文字列FALSE
またはNULL値では、window
またはinWindow
ジオメトリ・オブジェクトの最小境界矩形(MBR)がサブセット操作で使用されます。
使用上の注意
このプロシージャの構文は8種類あり、入力ウィンドウの指定がジオメトリ・オブジェクトによるものとウィンドウの左上角および右下角によるもののいずれであるか、操作の結果がBLOBまたはSDO_NUMEBR_ARRAYオブジェクトであるかどうか、およびoutWindow
パラメータを使用して出力ウィンドウの座標を戻すかどうかによって異なります。
window
またはinWindow
パラメータのデータ型がSDO_GEOMETRYの場合、SDO_SRID値は次のいずれかの値である必要があります。
-
NULL(ラスター空間を指定)
-
MDSYS.CS_SRS表のSRID列の値
window
パラメータ・ジオメトリとモデル空間のSDO_SRID値が異なる場合は、処理が実行される前に、window
パラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、「GeoRasterデータ・モデル」を参照してください。)
window
またはinWindow
パラメータで測地MBRを指定する場合は、日付変更線をまたぐMBRは指定できません。測地MBRについては、『Oracle Spatial and Graph開発者ガイド』を参照してください。
プロシージャが完了すると、rasterBLOB
パラメータには、タイル処理されていないクロッピング済のウィンドウのセル(ピクセル)データが含まれます。クロッピング済のウィンドウとは、処理対象として指定したウィンドウとソースGeoRasterオブジェクトの空間エクステントが重複する部分のことです。outWindow
パラメータを指定した場合は、プロシージャが完了すると、セル空間内のクロッピング済のウィンドウの座標がそのパラメータに含まれます。
BLOBには埋込みがありません。ただし、セル深度が8ビットより小さく、出力に必要なビット数の合計が8で除算できない場合を除きます。このような場合は、通常の埋込みとは異なり、結果の最後のバイトでのみ、後続のビットに対し0(ゼロ)が埋め込まれます。
polygonClip
がTRUE
で、このプロシージャによって矩形イメージのサブセットが作成されるが、ジオメトリは矩形ではない場合、SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXTファンクションでinWindow
ジオメトリ・オブジェクトの妥当性を確認してください。無効なジオメトリに対しては、このプロシージャは、polygonClip
値がFALSE
またはNULL値の場合のように動作します。
入力されたGeoRasterオブジェクトが圧縮されていない場合、またはstorageParam
パラメータで指定した以外の形式で圧縮されている場合でも、圧縮を指定できます。圧縮済の入力されたGeoRasterオブジェクトに対して、解凍された出力を得るには、storageParam
パラメータでcompression=NONE
を指定します。GeoRasterの圧縮および解凍の詳細は、「圧縮と解凍」を参照してください。
サブセットを取得してそれを別の座標系に再投影する場合、このプロシージャは使用せず、かわりにrasterBlobパラメータを含む構文でSDO_GEOR.reproject
プロシージャを使用して、このBLOBに目的のサブセットが含まれるようにします。
例
次の2つの例は、指定されたウィンドウ内の指定されたピラミッド・レベルのラスター・データをBLOBオブジェクトおよびSDO_NUMBER_ARRAYオブジェクトに取得します。(GEORASTER_TABLE表を参照します。この表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)(GEORASTER_TABLE表を参照します。この表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE gr sdo_georaster; lb blob; win sdo_number_array; BEGIN SELECT georaster INTO gr FROM georaster_table WHERE georid=4; dbms_lob.createTemporary(lb, TRUE); win := sdo_number_array(-21,100,100,200); sdo_geor.getRasterSubset(gr, 0, win, null, lb); dbms_lob.freeTemporary(lb); END; / DECLARE gr sdo_georaster; data sdo_number_array; win sdo_number_array; BEGIN SELECT georaster INTO gr FROM georaster_table WHERE georid=4; win := sdo_number_array(-21,100,100,200); sdo_geor.getRasterSubset(gr, 0, win, null, data); END; /
次の例は、クロッピングの対象とするウィンドウの取得方法を示しています。(GEORASTER_TABLE表を参照します。この表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE gr sdo_georaster; lb blob; win1 sdo_geometry; win2 sdo_number_array; BEGIN SELECT georaster INTO gr FROM georaster_table WHERE georid=4; dbms_lob.createTemporary(lb, TRUE); win1 := sdo_geometry(2003,82263,null,sdo_elem_info_array(1,1003,3), sdo_ordinate_array(1828466,646447,1823400,642512)); sdo_geor.getRasterSubset(gr, 0, win1, '1-3', lb, win2, 'compression=NONE'); dbms_lob.freeTemporary(lb); IF win2 IS NOT NULL THEN dbms_output.put_line('output window: (' || win2(1) || ',' || win2(2) || ',' || win2(3) || ',' || win2(4) || ')'); END IF; END; /
次の例は、ポリゴンを使用してサブセットを問い合せる際にクリップを実行する方法を示しています。
DECLARE
gr sdo_georaster;
lb blob;
win1 sdo_geometry;
win2 sdo_number_array;
BEGIN
dbms_lob.createTemporary(lb, TRUE);
SELECT georaster INTO gr FROM rstpoly_table WHERE georid=1;
-- querying/clipping polygon
win1 := sdo_geometry(2003, 26986, null, sdo_elem_info_array(1,1003,1),
sdo_ordinate_array(237040, 897924,
237013.3, 897831.6,
237129, 897840,
237182.5, 897785.5,
237239.9, 897902.7,
237223, 897954,
237133, 897899,
237040, 897924));
sdo_geor.getRasterSubset(gr, 0, win1, '1-3',
lb, win2, NULL, NULL, 'TRUE');
-- Then work on the resulting subset stored in lb.
END;
/
7.84 SDO_GEOR.getScaling
形式
SDO_GEOR.getScaling( georaster IN SDO_GEORASTER, layerNumber IN NUMBER ) RETURN SDO_NUMBER_ARRAY;
説明
GeoRasterオブジェクトのレイヤーに対するスケール変更ファンクションの係数を戻します。
注意:
今回のリリースのGeoRasterでは、スケール変更ファンクションを使用した操作は実行されません。
パラメータ
使用上の注意
スケール変更ファンクションは、次のとおりです。
value = (a0 + a1 * cellvalue) / (b0 + b1 * cellvalue)
係数の順序は、a0、a1、b0、b1です。
例
次の例では、GEORASTER_TABLEという表で、指定されたGeoRasterオブジェクトのレイヤー番号が0 (オブジェクト全体)のスケール変更係数を戻します。GEORASTER_TABLE表の定義は「記憶域パラメータ」の例1-1の次に説明されています。ここでは、元の値の範囲0.0から1000.0を、0.0から250.0の範囲内にスケール変更します。
SELECT sdo_geor.getScaling(georaster, 0) FROM georaster_table WHERE georid=0; SDO_GEOR.GETSCALING(GEORASTER,0) -------------------------------------------------------------------------------- SDO_NUMBER_ARRAY(0.0, 0.25, 1, 0.0)
7.85 SDO_GEOR.getSourceInfo
形式
SDO_GEOR.getSourceInfo( georaster IN OUT SDO_GEORASTER, ) RETURN SDO_STRING2_ARRAY;
説明
GeoRasterオブジェクトのソース情報を取得します。
使用上の注意
このファンクションは、GeoRasterオブジェクトのメタデータの<sourceInfo>
要素(「GeoRasterメタデータのXMLスキーマ」を参照)に格納されたソース情報を戻します。
SDO_STRING2_ARRAY型はVARRAY(2147483647) OF VARCHAR2(4096)
として定義されます。
ソース情報を置換または削除する場合は、SDO_GEOR.setSourceInfoプロシージャを使用します。ソース情報を追加する場合は、SDO_GEOR.addSourceInfoプロシージャを使用します。
例
次の例では、指定したGeoRasterオブジェクトに複数のソース情報を設定および追加し、その後でソース情報を取得します。
declare gr sdo_georaster; begin select georaster into gr from georaster_table where georid=1 for update; sdo_geor.setSourceInfo(gr, 'Copyright (c) 2002, 2007, Oracle Corporation.'); sdo_geor.addSourceInfo(gr, 'All rights reserved.'); update georaster_table set georaster=gr where georid=1; end; / select * from table(select sdo_geor.getSourceInfo(georaster) from georaster_table where id=1); COLUMN_VALUE -------------------------------------------------------------------------------- Copyright (c) 2002, 2007, Oracle Corporation. All rights reserved.
7.86 SDO_GEOR.getSpatialDimNumber
形式
SDO_GEOR.getSpatialDimNumber( georaster IN SDO_GEORASTER ) RETURN NUMBER;
説明
GeoRasterオブジェクトの空間次元数を戻します。
使用上の注意
今回のリリースでは、このファンクションは常に2を戻します。
GeoRasterオブジェクトの各空間次元のセル数を戻すには、SDO_GEOR.getSpatialDimSizesファンクションを使用します。
例
次の例では、GEORASTER_TABLEという表で、GeoRasterオブジェクトの各空間次元のGEORID列値、空間次元数およびセル数を戻します。GEORASTER_TABLE表の定義は「記憶域パラメータ」の例1-1の次に説明されています。(出力は、読みやすくするために変更が加えられています。)
SELECT georid, sdo_geor.getSpatialDimNumber(georaster) spatialDim, sdo_geor.getSpatialDimSizes(georaster) spatialDimSizes FROM georaster_table; GEORID SPATIALDIM SPATIALDIMSIZES ---------- ---------- -------------------------------------------------------- 0 2 SDO_NUMBER_ARRAY(1024, 1024) 1 2 SDO_NUMBER_ARRAY(384, 251) 2 2 SDO_NUMBER_ARRAY(512, 512) 4 2 SDO_NUMBER_ARRAY(512, 512) 11 2 SDO_NUMBER_ARRAY(7957, 5828)
7.87 SDO_GEOR.getSpatialDimSizes
形式
SDO_GEOR.getSpatialDimSizes( georaster IN SDO_GEORASTER ) RETURN SDO_NUMBER_ARRAY;
説明
GeoRasterオブジェクトの各空間次元のセル数を戻します。
使用上の注意
GeoRasterオブジェクトの空間次元数を戻すには、SDO_GEOR.getSpatialDimNumberファンクションを使用します。
例
次の例では、GeoRasterオブジェクトの空間次元サイズおよびバンド数を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)出力は、読みやすくするために変更が加えられています。)
SELECT sdo_geor.getSpatialDimSizes(georaster) spatialDimSizes, sdo_geor.getBandDimSize(georaster) bandDimSize FROM georaster_table WHERE georid=21; SPATIALDIMSIZES BANDDIMSIZE -------------------------- ----------- SDO_NUMBER_ARRAY(512, 512) 1
7.88 SDO_GEOR.getSpatialResolutions
形式
SDO_GEOR.getSpatialResolutions( georaster IN SDO_GEORASTER ) RETURN SDO_NUMBER_ARRAY;
説明
GeoRasterオブジェクトの各空間次元の空間解像度の値を戻します。
使用上の注意
各値は、ピクセルの空間次元によって表現されるデータ領域に関連付けられた測定単位の数を示します。たとえば、空間解像度の値が(10,10)で、地上データの測定単位がmである場合、各ピクセルは10m×10mの領域を示します。
空間解像度は、特にGeoRasterオブジェクトが幾何補正されていない場合、地理参照情報との一貫性がない場合があります。SDO_GEOR.setSpatialResolutionsプロシージャを使用すると、空間解像度を、イメージの平均解像度またはデータ収集時の解像度に設定できます。この場合、精密な測定には地理参照情報を使用する必要があります。
例
次の例では、GeoRasterオブジェクトの列次元および行次元(X次元およびY次元)の空間解像度の値を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
SELECT sdo_geor.getSpatialResolutions(georaster) spatialResolution FROM georaster_table WHERE georid=42; SPATIALRESOLUTION -------------------------------------------------------------------------------- SDO_NUMBER_ARRAY(28.5, 28.5)
7.89 SDO_GEOR.getSpectralResolution
形式
SDO_GEOR.getSpectralResolution( georaster IN SDO_GEORASTER ) RETURN NUMBER;
説明
GeoRasterオブジェクトがハイパースペクトルまたはマルチバンド・イメージである場合、そのスペクトル解像度を戻します。
使用上の注意
バンドの波長幅は、スペクトル単位とスペクトル解像度を組み合せて示します。たとえば、スペクトル解像度の値が2で、スペクトル単位の値がMILLIMETER
である場合、バンドの波長幅は2mmです。
GeoRasterオブジェクトのスペクトル解像度を設定するには、SDO_GEOR.setSpectralResolutionプロシージャを使用します。
例
次の例では、GEORASTER_TABLE表に含まれている、空間参照されるすべてのGeoRasterオブジェクト(GEORASTER列)のスペクトル単位およびスペクトル解像度を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。
SELECT georid, substr(sdo_geor.getSpectralUnit(georaster),1,20) spectralUnit, sdo_geor.getSpectralResolution(georaster) spectralResolution FROM georaster_table WHERE sdo_geor.isSpatialReferenced(georaster)='TRUE'; GEORID SPECTRALUNIT SPECTRALRESOLUTION ---------- -------------------- ------------------ 4 MILLIMETER 0.075
7.90 SDO_GEOR.getSpectralUnit
形式
SDO_GEOR.getSpectralUnit( georaster IN SDO_GEORASTER ) RETURN VARCHAR2;
説明
バンドの波長幅を示す測定単位を戻します。
使用上の注意
このファンクションは、METER
、MILLIMETER
、MICROMETER
またはNANOMETER
のいずれかの値を戻します。
バンドの波長幅は、スペクトル単位とスペクトル解像度を組み合せて示します。たとえば、スペクトル解像度の値が2で、スペクトル単位の値がMILLIMETER
である場合、バンドの波長幅は2mmです。
GeoRasterオブジェクトのスペクトル単位を設定するには、SDO_GEOR.setSpectralUnitプロシージャを使用します。
例
次の例では、GEORASTER_TABLE表に含まれている、空間参照されるすべてのGeoRasterオブジェクト(GEORASTER列)のスペクトル単位およびスペクトル解像度を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。
SELECT georid, substr(sdo_geor.getSpectralUnit(georaster),1,20) spectralUnit, sdo_geor.getSpectralResolution(georaster) spectralResolution FROM georaster_table WHERE sdo_geor.isSpatialReferenced(georaster)='TRUE'; GEORID SPECTRALUNIT SPECTRALRESOLUTION ---------- -------------------- ------------------ 4 MILLIMETER 0.075
7.91 SDO_GEOR.getSRS
形式
SDO_GEOR.getSRS( georaster IN SDO_GEORASTER ) RETURN SDO_GEOR_SRS;
説明
GeoRasterオブジェクトの空間参照に関連する情報を含むSDO_GEOR_SRS型のオブジェクトを戻します。
使用上の注意
SDO_GEOR_SRSオブジェクト型の詳細は、「SDO_GEOR_SRSオブジェクト型」を参照してください。
例
次の例では、GEORASTER_TABLE表に含まれている、空間参照されるすべてのGeoRasterオブジェクト(GEORASTER列)の空間参照に関連する情報を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。
SELECT georid, sdo_geor.getSRS(georaster) SRS FROM georaster_table WHERE sdo_geor.isSpatialReferenced(georaster)='TRUE'; GEORID ---------- SRS(ISREFERENCED, ISRECTIFIED, ISORTHORECTIFIED, SRID, SPATIALRESOLUTION, SPATIA -------------------------------------------------------------------------------- 4 SDO_GEOR_SRS('TRUE', 'TRUE', NULL, 82262, SDO_NUMBER_ARRAY(28.5, 28.5), NULL, NU LL, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, NULL, NULL, NULL, SDO_NUMBER_ARRAY(1, 2, 1, 3, 32631.5614, 0, -.03508772), SDO_NUMBER_ARRAY(1, 0, 0, 1, 1), SDO_NUMBER_ARRAY(1 , 2, 1, 3, -7894.7544, .035087719, 0), SDO_NUMBER_ARRAY(1, 0, 0, 1, 1) , NULL, NULL, NULL, NULL, NULL)
7.92 SDO_GEOR.getStatistics
形式
SDO_GEOR.getStatistics( georaster IN SDO_GEORASTER, layerNumber IN NUMBER ) RETURN SDO_NUMBER_ARRAY;
説明
レイヤーに関連付けられた統計データを戻します。
パラメータ
使用上の注意
このファンクションは、GeoRasterメタデータのXMLスキーマ(「GeoRasterメタデータのXMLスキーマ」
を参照)の<statisticDatasetType>要素によって記述された統計データを戻します。このファンクションは、MIN
、MAX
、MEAN
、MEDIAN
、MODEVALUE
およびSTD
の値の配列を戻します。
レイヤーに関連する統計データを設定するには、SDO_GEOR.setStatisticsプロシージャを使用します。
例
次の例では、GeoRasterオブジェクトのレイヤー1の統計データを戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
SELECT sdo_geor.getStatistics(georaster, 1) layer1 FROM georaster_table WHERE georid=4; LAYER1 -------------------------------------------------------------------------------- SDO_NUMBER_ARRAY(0, 255, 100, 127, 95, 25)
7.93 SDO_GEOR.getTotalLayerNumber
形式
SDO_GEOR.getTotalLayerNumber( georaster IN SDO_GEORASTER ) RETURN NUMBER;
説明
GeoRasterオブジェクトのレイヤーの合計数を戻します。
使用上の注意
レイヤーの詳細は、「バンド、レイヤーおよびメタデータ」を参照してください。
例
次の例では、GEORASTER_TABLE表の各GeoRasterオブジェクト(GEORASTER列)のレイヤー合計数を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。
SELECT georid, sdo_geor.getTotalLayerNumber(georaster) totalLayerNumber FROM georaster_table; GEORID TOTALLAYERNUMBER ---------- ---------------- 2 1 4 3
7.94 SDO_GEOR.getULTCoordinate
形式
SDO_GEOR.getULTCoordinate( georaster IN SDO_GEORASTER ) RETURN SDO_NUMBER_ARRAY ;
説明
GeoRasterオブジェクトの左上角のセル座標を戻します。
使用上の注意
このファンクションは、2つまたは3つの数値を戻します。2つの数値が戻される場合、それらは行および列の座標です。3つの数値が戻される場合、それらは行、列およびバンドの座標です。
例
次の例では、GeoRasterオブジェクトの左上角の行、列およびバンドの座標を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
SELECT sdo_geor.getULTCoordinate(georaster) FROM georaster_table WHERE georid=23; SDO_GEOR.GETULTCOORDINATE(GEORASTER) -------------------------------------------------------------------------------- SDO_NUMBER_ARRAY(256, 0, 0)
7.95 SDO_GEOR.getVAT
形式
SDO_GEOR.getVAT( georaster IN SDO_GEORASTER, layerNumber IN NUMBER ) RETURN VARCHAR2;
説明
GeoRasterオブジェクトのレイヤーに関連付けられた値属性表(VAT)の名前を戻します。
パラメータ
使用上の注意
値属性表の詳細は、「地理情報システム」を参照してください。
GeoRasterオブジェクトのレイヤーに関連付ける値属性表の名前を設定するには、SDO_GEOR.setVATプロシージャを使用します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー0、1、2および3の値属性表を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)出力は、読みやすくするために変更が加えられています。)
SELECT substr(sdo_geor.getVAT(georaster, 0),1,20) vatTable0, substr(sdo_geor.getVAT(georaster, 1),1,20) vatTable1, substr(sdo_geor.getVAT(georaster, 2),1,20) vatTable2, substr(sdo_geor.getVAT(georaster, 3),1,20) vatTable3 FROM georaster_table WHERE georid=4; VATTABLE0 VATTABLE1 VATTABLE2 VATTABLE3 -------------------- -------------------- -------------------- ---------------- VAT0 VAT1 VAT2 VAT1
7.96 SDO_GEOR.getVersion
形式
SDO_GEOR.getVersion( georaster IN SDO_GEORASTER ) RETURN VARCHAR2;
説明
GeoRasterオブジェクトのユーザー指定のバージョンを戻します。
使用上の注意
バージョンは、「メジャー・バージョン番号.マイナー・バージョン番号」の形式で戻されます。
GeoRasterオブジェクトのユーザー指定のバージョンを設定するには、SDO_GEOR.setVersionプロシージャを使用します。
例
次の例では、GEORASTER_TABLE表に含まれているGeoRasterオブジェクト(GEORASTER列)のユーザー指定のバージョンを戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。(出力は、読みやすくするために変更が加えられています。)
SELECT georid, sdo_geor.getVersion(georaster) version FROM georaster_table; GEORID VERSION ---------- -------------------------------------------------------------------- 2 10.1 4 9i.2
7.97 SDO_GEOR.hasBitmapMask
形式
SDO_GEOR.hasBitmapMask( georaster IN SDO_GEORASTER, layerNumber IN NUMBER ) RETURN VARCHAR2;
説明
GeoRasterオブジェクトまたはレイヤーにビットマップ・マスクが関連付けられているかどうかを確認します。
使用上の注意
このファンクションは、GeoRasterオブジェクトまたはレイヤーにビットマップ・マスクが関連付けられている場合は文字列TRUE
を戻し、ビットマップ・マスクが関連付けられていない場合は文字列FALSE
を戻します。
ビットマップ・マスクの詳細は、「ビットマップ・マスク」を参照してください。
例
次の例では、指定したGeoRasterオブジェクトのレイヤー0から4にビットマップ・マスクが関連付けられているかどうかを確認します。
SELECT substr(sdo_geor.hasBitmapMask(georaster,0),1,12) BM0, substr(sdo_geor.hasBitmapMask(georaster,1),1,12) BM1, substr(sdo_geor.hasBitmapMask(georaster,2),1,12) BM2, substr(sdo_geor.hasBitmapMask(georaster,3),1,12) BM3 FROM georaster_table WHERE georid=0;
7.98 SDO_GEOR.hasGrayScale
形式
SDO_GEOR.hasGrayScale( georaster IN SDO_GEORASTER, layerNumber IN NUMBER ) RETURN VARCHAR2;
説明
GeoRasterオブジェクトのレイヤーにグレースケール情報が含まれているかどうかを確認します。
使用上の注意
このファンクションは、レイヤーにグレースケール情報が含まれる場合は文字列TRUE
を戻し、レイヤーでグレースケール表現が使用されていない場合はFALSE
を戻します。グレースケール表示の詳細は、「SDO_GEOR_GRAYSCALEオブジェクト型」を参照してください。
レイヤーにグレースケール情報が含まれる場合、グレースケール・マッピングとグレースケール・マッピング表名を取得および設定できます。SDO_GEOR.getGrayScaleファンクションとSDO_GEOR.getGrayScaleTableファンクション、およびSDO_GEOR.setGrayScaleプロシージャとSDO_GEOR.setGrayScaleTableプロシージャを参照してください。
例
次の例では、指定したGeoRasterオブジェクト(GEORASTER列)のレイヤー0および1に、グレースケール情報が含まれているかどうかを確認します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
SELECT substr(sdo_geor.hasGrayScale(georaster, 0),1,15) hasGrayScale0, substr(sdo_geor.hasGrayScale(georaster, 1),1,15) hasGrayScale1 FROM georaster_table WHERE georid=4; HASGRAYSCALE0 HASGRAYSCALE1 --------------- --------------- TRUE FALSE
7.99 SDO_GEOR.hasNODATAMask
形式
SDO_GEOR.hasNODATAMask( georaster IN SDO_GEORASTER, layerNumber IN NUMBER ) RETURN VARCHAR2;
説明
GeoRasterオブジェクトまたはレイヤーにNODATAビットマップ・マスクが関連付けられているかどうかを確認します。
使用上の注意
このファンクションは、GeoRasterオブジェクトまたはレイヤーにNODATAビットマップ・マスクが関連付けられている場合は文字列TRUE
を戻し、NODATAビットマップ・マスクが関連付けられていない場合は文字列FALSE
を戻します。
ビットマップ・マスクの詳細は、「ビットマップ・マスク」を参照してください。
例
次の例では、指定したGeoRasterオブジェクトのレイヤー0から4にNODATAビットマップ・マスクが関連付けられているかどうかを確認します。
SELECT substr(sdo_geor.hasNODATAMask(georaster,0),1,12) BM0, substr(sdo_geor.hasNODATAMask(georaster,1),1,12) BM1, substr(sdo_geor.hasNODATAMask(georaster,2),1,12) BM2, substr(sdo_geor.hasNODATAMask(georaster,3),1,12) BM3 FROM georaster_table WHERE georid=0;
7.100 SDO_GEOR.hasPseudoColor
形式
SDO_GEOR.hasPseudoColor( georaster IN SDO_GEORASTER, layerNumber IN NUMBER ) RETURN VARCHAR2;
説明
GeoRasterオブジェクトのレイヤーに疑似カラー情報が含まれているかどうかを確認します。
使用上の注意
このファンクションは、レイヤーに疑似カラー情報が含まれる場合は文字列TRUE
を戻し、レイヤーに疑似カラー情報が含まれていない(つまり疑似カラー表現を使用していない)場合はFALSE
を戻します。カラーマップおよび疑似カラー表示については、「SDO_GEOR_COLORMAPオブジェクト型」で説明しています。
レイヤーに疑似カラー情報が含まれる場合、カラーマップとカラーマップ表名を取得および設定できます。SDO_GEOR.getColorMapファンクションとSDO_GEOR.getColorMapTableファンクション、およびSDO_GEOR.setColorMapプロシージャとSDO_GEOR.setColorMapTableプロシージャを参照してください。
例
次の例では、指定したGeoRasterオブジェクト(GEORASTER列)のレイヤー0および1に、疑似カラー情報が含まれるかどうかを確認します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
SELECT substr(sdo_geor.hasPseudoColor(georaster, 0),1,15) hasPseudoColor0, substr(sdo_geor.hasPseudoColor(georaster, 1),1,15) hasPseudoColor1 FROM georaster_table WHERE georid=4; HASPSEUDOCOLOR0 HASPSEUDOCOLOR1 --------------- --------------- FALSE TRUE
7.101 SDO_GEOR.importFrom
形式
SDO_GEOR.importFrom( georaster IN OUT SDO_GEORASTER, storageParam IN VARCHAR2, r_sourceFormat IN VARCHAR2, r_sourceType IN VARCHAR2, r_sourceName IN VARCHAR2, h_sourceFormat IN VARCHAR2 DEFAULT NULL, h_sourceType IN VARCHAR2 DEFAULT NULL, h_sourceName IN VARCHAR2 DEFAULT NULL);
または
SDO_GEOR.importFrom( georaster IN OUT SDO_GEORASTER, storageParam IN VARCHAR2, r_sourceFormat IN VARCHAR2, r_sourceBLOB IN BLOB, h_sourceFormat IN VARCHAR2 DEFAULT NULL, h_sourceCLOB IN CLOB DEFAULT NULL);
説明
イメージ・ファイルまたはBLOBオブジェクトを、データベースに格納されたGeoRasterオブジェクトにインポートします。
パラメータ
- georaster
-
操作の結果を格納するGeoRasterオブジェクトを指定します。
- storageParam
-
記憶域パラメータを含む文字列を指定します。形式および使用方法については「記憶域パラメータ」を参照してください。この操作で現在サポートされているキーワードは、次のとおりです。
-
blocking
: (「記憶域パラメータ」の表1-1の説明を参照してください。) -
blocksize
: (「記憶域パラメータ」の表1-1の説明を参照してください。) -
compression
: (「記憶域パラメータ」の表1-1の説明を参照してください。)デフォルト値はNONE
で、RAWデータは圧縮せずにロードされます。 -
quality
: (「記憶域パラメータ」の表1-1の説明を参照してください。) -
raster
:TRUE
(デフォルト)を指定すると、GeoTIFF形式ファイルのラスター・イメージ・データが地理参照情報とともにロードされます。FALSE
を指定すると、GeoTIFF形式ファイルからラスター・イメージ・データを除く地理参照情報のみが既存のGeoRasterオブジェクトにロードされます。 -
spatialExtent
: デフォルトのFALSE
を指定すると、空間エクステントが生成されません。TRUE
を指定すると、SRIDが0 (ゼロ)以外で、既存のいずれかの空間エクステント索引のSRIDと一致した場合に空間エクステントが生成されます。 -
srid
: 座標系のSRIDの数値を指定します。これは、GeoTIFF形式ファイルのロード時のバックアップSRIDをオプションで指定するものです。このSRID値は、GeoTIFF構成値がOracle Spatial and Graphで認識されるSRID値のいずれとも一致しない場合に使用されます。
-
- r_sourceFormat
-
ラスターのソースの形式を指定します。
TIFF
、GIF
、BMP
、GeoTIFF
またはPNG
のいずれかを指定する必要があります。(JPEG
はこのプロシージャではサポートされていません。ただし、クライアント側のGeoRasterローダー・ツールを使用すると、JPEGファイルをインポートできます。「GeoRasterツール: ローダー、ビューア、エクスポータ」を参照してください。) - r_sourceType
-
インポート操作のソースのタイプを指定します。
FILE
を指定する必要があります。 - r_sourceName
-
r_sourceType
がFILE
の場合、ソース・ファイル名をフルパスで指定します。既存のGeoRasterオブジェクトへのワールド・ファイルのロードのみに、このプロシージャを使用する場合は、このパラメータにNULL値を指定します。 - r_sourceBLOB
-
ラスターのBLOB型のソース・オブジェクトを指定します。
- h_sourceFormat
-
ジオヘッダーのソースの形式を指定します。
WORLDFILE
を指定する必要があります。 - h_sourceType
-
インポート操作のソースのジオヘッダー・タイプを指定します。
FILE
を指定する必要があります。 - h_sourceName
-
h_sourceType
がFILE
の場合、ジオヘッダーのソース・ファイル名をフルパスで指定し、オプションでSRID値を指定します。SRID値を指定するには、ファイル名の後をカンマで区切り、SRID値を追加します。たとえば、'/mypath/mydir/worldfile.tfw,82934'
(UNIXまたはLinuxの場合)や、'C:\mypath\mydir\worldfile.tfw,82934'
(Windowsの場合)のようになります。 - h_sourceCLOB
-
ジオヘッダーのソースをCLOB型のオブジェクトとして指定します。
使用上の注意
このプロシージャの使用方法、またはGeoRasterローダー・ツールを使用してラスター・データをロードする方法の詳細は、「ラスター・データのロード」を参照してください。
非常に大きいイメージをロードする際にメモリー不足のエラーが発生した場合は、「ロード前のソース・ラスターの再フォーマット」を参照してください。
イメージをGeoRasterデータベースにロードする場合、常にブロック・サイズを指定する必要があります。通常512x512以上を指定する必要があります。
ラスター・イメージとジオヘッダーが別々のファイルまたはオブジェクトに存在する場合にのみ、名前の先頭にr_が付くパラメータおよびh_が付くパラメータに値を指定してください。
このプロシージャを使用すると、ファイルまたはCLOBオブジェクトから、ESRIワールド・ファイルをロードできます。
このプロシージャは、ソース・ファイル形式としてJPEGをサポートしていません。JPEGファイルをインポートするには、クライアント側のGeoRasterローダー・ツールを使用します(「GeoRasterツール: ローダー、ビューア、エクスポータ」を参照)。
GeoTIFF PixelIsArea
ラスター空間は、左上角を基準とするGeoRasterのセル座標系と同じです。GeoTIFFからのインポートは、常に中央を基準とするGeoRasterのセル座標系が対象となります(GeoTIFFファイルがPixelIsArea
ラスター空間で指定されている場合は、アフィン変換で2分の1ピクセル単位の調整が行われます)。
SDO_GEOR.importFromプロシージャを使用してGeoTIFFイメージをロードする場合は、xtiff-jai.jar
およびgeotiff-jai.jar
ライブラリが必要になります。これらのGeoTIFFライブラリの詳細は、「GeoRasterオブジェクトの地理参照」を参照してください。
このプロシージャは、セル深度値が2BIT
のラスター・データ、またはBILおよびBSQインターリーブ・タイプのソース・マルチバンド・ラスター・データをサポートしていません。
インポートされたGeoRasterオブジェクトは、BIPインターリーブ・タイプになります。
このプロシージャをコールする前に、コールしているユーザーおよびMDSYSユーザーには、インポートするファイルおよびファイルを含むディレクトリの読取り権限が必要です。次の例(ユーザーSYSTEM
として実行)では、ファイルに対する読取り権限をユーザーHERMAN
およびMDSYS
に付与します。
call dbms_java.grant_permission('HERMAN','SYS:java.io.FilePermission', '/mydirectory/myimages/img1.tif', 'read' ); call dbms_java.grant_permission('MDSYS','SYS:java.io.FilePermission', '/mydirectory/myimages/img1.tif', 'read' );
例
次の例では、TIFF形式の外部イメージをインポートする空のGeoRasterオブジェクトを初期化して、イメージをインポートします。例では、最初に必要な権限を付与し、最後に取り消します。
connect / as sysdba call dbms_java.grant_permission('HERMAN','SYS:java.io.FilePermission', '/mydirectory/myimages/img1.tif', 'read' ); call dbms_java.grant_permission('MDSYS','SYS:java.io.FilePermission', '/mydirectory/myimages/img1.tif', 'read' ); connect herman/<password> DECLARE geor SDO_GEORASTER; BEGIN -- Initialize an empty GeoRaster object into which the external image -- is to be imported. INSERT INTO georaster_table values( 1, 'TIFF', sdo_geor.init('rdt_1') ); -- Import the TIFF image. SELECT georaster INTO geor FROM georaster_table WHERE georid = 1 FOR UPDATE; sdo_geor.importFrom(geor, 'blocking=OPTIMALPADDING,blocksize=(512,512,3)', 'TIFF', 'file', '/mydirectory/myimages/img1.tif'); UPDATE georaster_table SET georaster = geor WHERE georid = 1; COMMIT; END;/ connect / as sysdba call dbms_java.revoke_permission('HERMAN','SYS:java.io.FilePermission', '/mydirectory/myimages/img1.tif', 'read' ); call dbms_java.revoke_permission('MDSYS','SYS:java.io.FilePermission', '/mydirectory/myimages/img1.tif', 'read' );
次の例では、BLOBからイメージを、CLOBからESRIワールド・ファイルをインポートします。
CREATE TABLE blob_table (blob_col BLOB, blobid NUMBER unique, clob_col CLOB); INSERT INTO blob_table VALUES (empty_blob(), 1, null); INSERT INTO blob_table VALUES (empty_blob(), 2, empty_clob()); COMMIT; DECLARE geor1 SDO_GEORASTER; lobd1 BLOB; lobd2 CLOB; fileName VARCHAR2(1024); file BFILE; wfile BFILE; wfname VARCHAR2(1024); amt INTEGER; amt1 INTEGER; BEGIN -- Import BLOB into GeoRaster object. -- First, if appropriate, load an existing image file into a BLOB object. EXECUTE IMMEDIATE 'CREATE DIRECTORY blob_test_one AS '''/xyz''''; fileName := '/parrot.tif'; file := BFILENAME('BLOB_TEST_ONE', fileName); wfname := '/parrot.tfw'; wfile := BFILENAME('BLOB_TEST_ONE', wfname); SELECT clob_col into lobd2 from blob_table WHERE blobid = 2 for update; SELECT blob_col into lobd1 from blob_table WHERE blobid = 2 for update; dbms_lob.fileopen(file, dbms_lob.file_readonly); dbms_lob.fileopen(wfile, dbms_lob.file_readonly); amt1 := dbms_lob.getLength(wfile); dbms_lob.loadfromfile(lobd1, file, amt); dbms_lob.loadfromfile(lobd2, wfile, amt1); COMMIT; dbms_lob.fileclose(file); dbms_lob.fileclose(wfile); -- Then, import this BLOB into a GeoRaster object. SELECT georaster INTO geor1 from georaster_table WHERE georid = 14 for update; sdo_geor.importFrom(geor1,'', 'TIFF', lobd1, 'WORLDFILE', lobd2); sdo_geor.setModelSRID(geor1, 82394); UPDATE georaster_table SET georaster = geor1 WHERE georid = 14; COMMIT; END; /
7.102 SDO_GEOR.init
形式
SDO_GEOR.init( rasterDataTable IN VARCHAR2 DEFAULT NULL, rasterID IN NUMBER DEFAULT NULL ) RETURN SDO_GEORASTER;
説明
空のGeoRasterオブジェクトを初期化します。このオブジェクトは初期化の後でxxx_SDO_GEOR_SYSDATAビューに登録する必要があります(「使用上の注意」を参照)。
パラメータ
- rasterDataTable
-
セル・データ・ブロックを格納するSDO_RASTER型のオブジェクト表の名前を指定します。空白、ピリオド、または大/小文字が混在する文字列を引用符で囲んだ値は使用できません(名前は、SDO_GEORASTERオブジェクトに格納される際に常に大文字に変換されます)RDTは、GeoRaster表に関連付けられるため、同じスキーマである必要があります。このパラメータを指定しない場合、GeoRasterはラスター・データ表に使用される一意の表名を生成します。このパラメータで指定した表がすでに存在しており、SDO_RASTER型のオブジェクト表ではない場合、例外が発生します。
- rasterID
-
ラスター・データ表で、このGeoRasterオブジェクトのブロックを一意に識別する番号を指定します。このパラメータを指定しない場合、ID用に一意の順序番号が生成されます。
使用上の注意
空のGeoRasterオブジェクトを初期化したら、オブジェクトに対して操作を実行する前に、空のGeoRasterオブジェクトをGeoRaster表に挿入してオブジェクトをxxx_SDO_GEOR_SYSDATAビューに登録する必要があります。(xxx_SDO_GEOR_SYSDATAビューの詳細は、「GeoRasterシステム・データ・ビュー(xxx_SDO_GEOR_SYSDATA)」を参照してください。GeoRaster操作の詳細は、「GeoRasterのデータベース作成および管理」および「GeoRasterのデータ問合せおよび操作」を参照してください。)
このファンクションは、rasterDataTable
属性およびrasterID
属性が設定された空のSDO_GEORASTERオブジェクトを戻します。SDO_GEORASTERオブジェクトの他のすべての属性は、NULLです。
このファンクションでは、指定されたラスター・データ表が存在する必要はありません。ただし、データを表に挿入するには表が存在している必要があるため、表を作成する必要があります。
複数のGeoRasterオブジェクト列が表に含まれていて、各列に対して、NULLのrasterDataTableまたはrasterID
パラメータ値を含む同一のパラメータ値を使用して、SDO_GEOR.initまたはSDO_GEOR.createBlank
ファンクションをコールする場合は、単一のINSERT文またはUPDATE文でこのようなすべての列に対してSDO_GEOR.initまたはSDO_GEOR.createBlankファンクションを使用しないでください。たとえば、georid NUMBER、type VARCHAR2(32)、image_date VARCHAR2(32)、image_15m SDO_GEORASTER、image_30m SDO_GEORASTER、image_60m SDO_GEORASTER
という列が含まれているLSAT_TABLE表がある場合、次のような文は使用しないでください。
INSERT INTO lsat_table VALUES(1, 'L1G', '2004-02-25', sdo_geor.init('RDT_1'), sdo_geor.init('RDT_1'), sdo_geor.init('RDT_1'));
このような場合は、かわりに次のいずれかを使用します。
-
ファンクションをコールする際に、必ずrasterIDパラメータ値を指定します。次の例では、最後の3列に挿入されるGeoRasterオブジェクトに対して1、2および3のラスターID値を指定します。
INSERT INTO lsat_table VALUES(1, 'L1G', '2004-02-25', sdo_geor.init('RDT_1', 1), sdo_geor.init('RDT_1', 2), sdo_geor.init('RDT_1', 3));
-
各INSERT文またはUPDATE文で、1つのGeoRasterオブジェクトのみを含むファンクションを使用します。次の例は、1つのGeoRasterオブジェクト列を初期化し、他の2つにNULLを指定する1行を挿入して、2列目および3列目のGeoRasterオブジェクト列を初期化するために行を2回更新します。
INSERT INTO lsat_table VALUES(1, 'L1G', '2004-02-25', sdo_geor.init('RDT_1'), null, null); UPDATE lsat_table SET image_30m = sdo_geor.init('RDT_1') WHERE georid = 1; UPDATE lsat_table SET image_60m = sdo_geor.init('RDT_1') WHERE georid = 1;
例
次の例では、初期化したGeoRasterオブジェクトをGEORASTER_TABLE表に挿入します。GeoRasterオブジェクトに関連付けられたラスター・データ表は、RDT_1です。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
INSERT INTO georaster_table (georid, georaster) VALUES (1, sdo_geor.init('RDT_1'));
7.103 SDO_GEOR.isBlank
形式
SDO_GEOR.isBlank( georaster IN SDO_GEORASTER ) RETURN VARCHAR2;
説明
GeoRasterオブジェクトが空白のGeoRasterオブジェクトの場合は文字列TRUE
を戻し、空白のGeoRasterオブジェクトでない場合は文字列FALSE
を戻します。
使用上の注意
空白のGeoRasterオブジェクトでは、すべてのセルが同じセル値を持ちます。
既存の空白のGeoRasterオブジェクトのセル値を変更するには、SDO_GEOR.setBlankCellValueプロシージャを使用します。指定されたGeoRasterオブジェクトのセル値を戻すには、SDO_GEOR.getBlankCellValueファンクションを使用します。
例
次の例では、GEORASTER_TABLE表のGEORASTER列に含まれている各GeoRasterオブジェクトが空白のGeoRasterオブジェクトかどうかを判断します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
SELECT georid, substr(sdo_geor.isBlank(georaster),1,7) isBlank FROM georaster_table; GEORID ISBLANK ---------- ------- 2 FALSE 4 FALSE
7.104 SDO_GEOR.isOrthoRectified
形式
SDO_GEOR.isOrthoRectified( georaster IN SDO_GEORASTER ) RETURN VARCHAR2;
説明
GeoRasterオブジェクトがオルソ補正済であると識別される場合は文字列TRUE
を戻し、オルソ補正済であると識別されない場合は文字列FALSE
を戻します。
使用上の注意
このファンクションは、オブジェクトのGeoRasterメタデータを確認して、オルソ補正済であると指定されているかどうかを確認します。オブジェクトが実際にオルソ補正されているかどうかは確認しません。GeoRasterオブジェクトの検証と、オルソ補正の実行の確認は、ユーザーが行います。
GeoRasterオブジェクトがオルソ補正済であると指定するには、SDO_GEOR.setOrthoRectifiedプロシージャを使用します。
例
次の例では、GEORASTER_TABLE表のGeoRasterオブジェクト(GEORASTER列)が、空間参照、幾何補正およびオルソ補正済であると指定されているかどうかを確認します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
SELECT georid, substr(sdo_geor.isSpatialReferenced(georaster),1,20) isSpatialReferenced, substr(sdo_geor.isRectified(georaster),1,20) isRectified, substr(sdo_geor.isOrthoRectified(georaster),1,20) isOrthoRectified FROM georaster_table; GEORID ISSPATIALREFERENCED ISRECTIFIED ISORTHORECTIFIED ---------- -------------------- -------------------- -------------------- 2 TRUE TRUE TRUE 4 TRUE TRUE FALSE
7.105 SDO_GEOR.isRectified
形式
SDO_GEOR.isRectified( georaster IN SDO_GEORASTER ) RETURN VARCHAR2;
説明
GeoRasterオブジェクトが幾何補正済であると識別される場合は文字列TRUE
を戻し、幾何補正済であると識別されない場合は文字列FALSE
を戻します。
使用上の注意
このファンクションは、オブジェクトのGeoRasterメタデータを確認して、幾何補正済であると指定されているかどうかを確認します。GeoRasterオブジェクトの検証と、幾何補正の実行の確認は、ユーザーが行います。
GeoRasterオブジェクトが幾何補正済であると指定するには、SDO_GEOR.setRectifiedプロシージャを使用します。
例
次の例では、GEORASTER_TABLE表のGeoRasterオブジェクト(GEORASTER列)が、空間参照、幾何補正およびオルソ補正済であると指定されているかどうかを確認します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
SELECT georid, substr(sdo_geor.isSpatialReferenced(georaster),1,20) isSpatialReferenced, substr(sdo_geor.isRectified(georaster),1,20) isRectified, substr(sdo_geor.isOrthoRectified(georaster),1,20) isOrthoRectified FROM georaster_table; GEORID ISSPATIALREFERENCED ISRECTIFIED ISORTHORECTIFIED ---------- -------------------- -------------------- -------------------- 2 TRUE TRUE TRUE 4 TRUE TRUE FALSE
7.106 SDO_GEOR.isSpatialReferenced
形式
SDO_GEOR.isSpatialReferenced( georaster IN SDO_GEORASTER ) RETURN VARCHAR2;
説明
GeoRasterオブジェクトが空間参照されている場合は文字列TRUE
を戻し、空間参照されていない場合は文字列FALSE
を戻します。
使用上の注意
GeoRasterオブジェクトを検証しておく必要があります。
例
次の例では、GEORASTER_TABLE表のGeoRasterオブジェクト(GEORASTER列)が、空間参照、幾何補正およびオルソ補正済であると指定されているかどうかを確認します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
SELECT georid, substr(sdo_geor.isSpatialReferenced(georaster),1,20) isSpatialReferenced, substr(sdo_geor.isRectified(georaster),1,20) isRectified, substr(sdo_geor.isOrthoRectified(georaster),1,20) isOrthoRectified FROM georaster_table; GEORID ISSPATIALREFERENCED ISRECTIFIED ISORTHORECTIFIED ---------- -------------------- -------------------- -------------------- 2 TRUE TRUE TRUE 4 TRUE TRUE FALSE
次の例では、地理参照されていないすべての空のGeoRasterオブジェクトを検索します。
SELECT georid FROM georaster_table a WHERE sdo_geor.isSpatialReferenced(a.georaster) IS NULL OR sdo_geor.isSpatialReferenced(a.georaster) = 'FALSE';
7.107 SDO_GEOR.mask
形式
SDO_GEOR.mask( inGeoRaster IN SDO_GEORASTER, bandNumbers IN VARCHAR2, mask IN SDO_GEORASTER, storageParam IN VARCHAR2, outGeoraster IN OUT SDO_GEORASTER, zeroMapping IN NUMBER DEFAULT 0, oneMapping IN NUMBER DEFAULT 1, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
説明
既存の(入力) GeoRasterオブジェクトの指定したレイヤーにマスクを適用します。マスクGeoRasterオブジェクトと入力GeoRasterオブジェクトは、同じ記憶域形式または異なる記憶域形式を持つことが可能で、出力GeoRasterオブジェクトの記憶域形式オプションを指定できます(ブロック化、セル深度またはインターリーブを変更するなど)。
使用するマスク値を決定する方法の詳細は、「使用上の注意」を参照してください。
パラメータ
- inGeoRaster
-
新しいオブジェクトを作成するためにマスク処理を実行するSDO_GEORASTERオブジェクトを指定します。
- bandNumbers
-
処理を実行する物理バンド番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、
1-3
は2、3、4番目のレイヤーを示します)。 - mask
-
出力GeoRasterオブジェクトを生成するために入力GeoRasterオブジェクトに対してマスクとして使用するSDO_GEORASTERオブジェクトを指定します。このパラメータをNULLとして指定すると、入力GeoRasterオブジェクトの使用可能なアタッチ済マスクが、指定したレイヤーに適用されます。
- storageParam
-
記憶域パラメータを示す文字列を指定します(「記憶域パラメータ」を参照)。
- outGeoRaster
-
マスク操作の結果を反映させる新しいSDO_GEORASTERオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、「空白のGeoRasterオブジェクトと空のGeoRasterオブジェクト」を参照してください)。
inGeoRaster
と同じGeoRasterオブジェクトは指定できません。出力GeoRasterオブジェクトに既存のラスター・データが含まれる場合、マスク操作が実行される前に削除されます。出力GeoRasterオブジェクトは、このファンクションの結果として上書きされます。
- zeroMapping
-
マスク・セル値0 (ゼロ)に使用する値を指定します。デフォルト値は0 (ゼロ)です。
- oneMapping
-
マスク・セル値1に使用する値を指定します。デフォルト値は1です。
- bgValues
-
部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(「空のラスター・ブロック」を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのレイヤーに同じ入力値を使用)またはバンド次元のサイズ(各レイヤーにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、
SDO_NUMBER_ARRAY(1,5,10)
では、1番目のレイヤーに1、2番目のレイヤーに5、3番目のレイヤーに10が入力されます。デフォルトのbgValues
は0 (ゼロ)です。入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。
使用上の注意
mask
パラメータと組み合せて使用するマスク値を決定するには、次のロジックを適用します。
If(cellValue_mask==0) cellValue_target=cellValue_source * zeroMapping; else cellValue_target=cellValue_source * oneMapping;
説明:
-
cellValue_source
は、座標(x,y)でのinGeoraster
のセル値です。 -
cellValue_target
は、座標(x,y)でのoutGeoraster
のセル値です。 -
cellValue_mask
は、座標(x,y)でのmask
のセル値です。
inGeoRaster
がNULLの場合、操作は実行されません。
inGeoRaster
にピラミッド・データが存在する場合、mask
GeoRasterオブジェクトに、inGeoRaster
と同じ数以上のピラミッド・レベルが含まれる必要があります。
mask
がNULLでない場合、次元(行および列)サイズをinGeoRaster
と同じにする必要があります。mask
はinGeoRaster
で重複している必要があります。(SDO_GEOR_RA.isOverlapファンクションを使用して、重複を確認できます。)
mask
がNULLで、指定したレイヤーで使用できるアタッチ済マスクがない場合、inGeoRaster
は、(storageParam
の指定に従って変更される) outGeoRaster
にコピーされます。
このファンクションとSDO_GEOR.setBitmapMaskファンクションの対比: SDO_GEOR.maskはレイヤーのセル値を計算してそれらをターゲットGeoRasterオブジェクトに格納しますが、SDO_GEOR.setBitmapMaskはマスク・データをソースGeoRasterオブジェクトの指定したレイヤーに関連付けます。
次の1つ以上の条件に該当する場合、例外が発生します。
-
inGeoRaster
が無効である。 -
outGeoRaster
が初期化されていない。 -
outGeoRaster
に対するラスター・データ表が存在せず、outGeoRaster
が空白のGeoRasterオブジェクトではない。
例
次の例では、マスクGeoRasterオブジェクトgr2
をソースGeoRasterオブジェクトgr1
に適用します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE gr1 sdo_georaster; gr2 sdo_georaster; gr3 sdo_georaster; BEGIN select tmimage into gr1 from landsat where id=103; select tmimage into gr3 from landsat where id=1015; select grobj into gr2 from grtab where id=1; SDO_GEOR.mask(gr1,null,gr2,'blocksize=(100,100,3)',gr3,0.1,0.9,null); update landsat set tmimage=gr3 where id=1007; END; /
次の例では、ソースGeoRasterオブジェクトgr1
のアタッチ済マスクをその2番目のレイヤーに適用します。
DECLARE gr1 sdo_georaster; gr2 sdo_georaster; gr3 sdo_georaster; BEGIN select tmimage into gr1 from landsat where id=103; select tmimage into gr3 from landsat where id=1015; gr2:=null; SDO_GEOR.mask(gr1,'1',gr2,'blocksize=(100,100,3)',gr3,0.1,0.9,null); update landsat set tmimage=gr3 where id=1007; END; /
7.108 SDO_GEOR.mergeLayers
形式
SDO_GEOR.mergeLayers( targetGeoRaster IN OUT SDO_GEORASTER, sourceGeoRaster IN SDO_GEORASTER, sourceLayerNumbers IN VARCHAR2 DEFAULT NULL, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR.mergeLayers( source1GeoRaster IN SDO_GEORASTER, source1LayerNumbers IN VARCHAR2, source2GeoRaster IN SDO_GEORASTER, source2LayerNumbers IN VARCHAR2, storageParam IN VARCHAR2, outGeoRaster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, pyramidLevel IN NUMBER DEFAULT NULL);
説明
2つのGeoRasterオブジェクトのレイヤーをマージします。マージ処理には、ソース・レイヤーをターゲットGeoRasterオブジェクトに追加する方法(最初の構文)か、和演算を実行する方法(2番目の構文)のいずれかを使用します。
パラメータ
- targetGeoRaster
-
sourceGeoRaster
に含まれるレイヤーの追加先となるGeoRasterオブジェクトを指定します。sourceGeoRaster
と同じGeoRasterオブジェクトは指定できません。(このプロシージャをコールする前に、このオブジェクトのコピーを作成しておいてください。) - sourceGeoRaster
-
targetGeoRaster
に追加する特定のレイヤーを含むGeoRasterオブジェクトを指定します。 - sourceLayerNumbers
-
sourceGeoRaster
からtargetGeoRaster
に追加するレイヤーを示す1つ以上のレイヤー番号を文字列で指定します。カンマで数字または範囲を区切り、ハイフンで範囲を指定します。たとえば、'1,3-5,7'
はレイヤー1、3、4、5および7を示します。 - source1GeoRaster
-
和演算で出力GeoRasterオブジェクト
outGeoRaster
内のsource2GeoRaster
のレイヤーと結合する特定のレイヤーを持つGeoRasterオブジェクトを1つ指定します。 - source1LayerNumbers
-
和演算で出力GeoRasterオブジェクト
outGeoRaster
内のsource2GeoRaster
のレイヤーと結合するsource1GeoRaster
内のレイヤーを示す1つ以上のレイヤー番号を文字列で指定します。カンマで数字または範囲を区切り、ハイフンで範囲を指定します。たとえば、'1,3-5,7'
はレイヤー1、3、4、5および7を示します。 - source2GeoRaster
-
和演算で出力GeoRasterオブジェクト
outGeoRaster
内のsource1GeoRaster
のレイヤーと結合する特定のレイヤーを持つGeoRasterオブジェクトを1つ指定します。 - source2LayerNumbers
-
和演算で出力GeoRasterオブジェクト
outGeoRaster
内のsource1GeoRaster
のレイヤーと結合するsource2GeoRaster
内のレイヤーを示す1つ以上の番号を文字列で指定します。カンマで数字または範囲を区切り、ハイフンで範囲を指定します。たとえば、'1,3-5,7'
はレイヤー1、3、4、5および7を示します。 - storageParam
-
outGeoRaster
の作成時に適用される記憶域パラメータを示す文字列を指定します。記憶域パラメータについては、「記憶域パラメータ」を参照してください。 - outGeoRaster
-
和演算の結果を反映させる新しいSDO_GEORASTERオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、「空白のGeoRasterオブジェクトと空のGeoRasterオブジェクト」を参照してください)。
source1GeoRaster
またはsource2GeoRasterと同じGeoRasterオブジェクトは指定できません。 - bgValues
-
部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(「空のラスター・ブロック」を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、
SDO_NUMBER_ARRAY(1,5,10)
では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValues
は0 (ゼロ)です。入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。
- pyramidLevel
-
ソースGeoRasterオブジェクトがマージされるピラミッド・レベルを示す番号を指定します。指定しない場合、ピラミッド・レベル0が使用されます。
使用上の注意
注意:
targetGeoRaster
に指定したGeoRasterオブジェクトへの変更は、このプロシージャが完了した後では元に戻せない場合があるため、このプロシージャをコールする前にtargetGeoRasterオブジェクトのコピーを作成しておいてください。
georaster
またはoutGeoRaster
パラメータで指定する結果のGeoRasterオブジェクトには、sourceGeoRaster
、source1GeoRaster
またはsource2GeoRaster
として指定したGeoRasterオブジェクトと同じオブジェクトを指定できません。
追加または結合する2つのGeoRasterオブジェクトは、同じ空間次元サイズで、同じ領域を覆っている必要があります。いずれかのGeoRasterオブジェクトが地理参照されている場合は、もう一方のオブジェクトも地理参照されている必要があり、モデルSRIDおよび空間解像度が同じで、モデル空間内の同じ領域を覆っている必要があります。いずれのGeoRasterオブジェクトも地理参照されていない場合は、それぞれのultCoordinatesが同一であることが必要です。
例
次の例では、2つのGeoRasterオブジェクト内の指定したレイヤーをマージして3つ目のGeoRasterオブジェクトに出力します。マージ処理には和演算を使用します。
declare gr1 sdo_georaster; gr2 sdo_georaster; gr3 sdo_georaster; begin select georaster into gr1 from georaster_table where georid=1; select georaster into gr2 from georaster_table where georid=2; insert into georaster_table(georid, georaster) values (3, sdo_geor.init('RDT_1')) returning georaster into gr3; sdo_geor.mergeLayers(gr1, '3', gr2, '2,1', 'blocking=false', gr3); update georaster_table set georaster=gr3 where georid=3; commit; end; /
SDO_GEOR.mergLayersを使用して複数のレイヤーを既存のGeoRasterオブジェクトに追加する例は、「バンドのマージ」の例を参照してください。
7.109 SDO_GEOR.mosaic
形式
SDO_GEOR.mosaic( georasterTableName IN VARCHAR2, georasterColumnName IN VARCHAR2, georaster IN OUT SDO_GEORASTER, storageParam IN VARCHAR2, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
説明
幾何補正され、同じSRIDに基づいて地理空間的に配置され、同じ解像度を持つソースGeoRasterオブジェクトのセットをモザイク処理します。
パラメータ
- georasterTableName
-
ソースとなるすべてのGeoRasterオブジェクトを含む表またはビューの名前を指定します。
- georasterColumnName
-
georasterTableName
で指定した表のSDO_GEORASTER型の列を指定します。 - georaster
-
モザイク処理の結果を格納するGeoRasterオブジェクトを指定します。
georasterTableName
内のgeorasterColumnName
に含まれるいずれのGeoRasterオブジェクトと同じGeoRasterオブジェクトは指定できません。 - storageParam
-
記憶域パラメータを示す文字列を指定します(「記憶域パラメータ」を参照)。このパラメータがNULLの場合、結果のGeoRasterオブジェクトは、モデル空間(存在する場合)またはセル空間の左上角の、ソースとなるGeoRasterオブジェクトと同じ記憶域パラメータ(
blockSize
、cellDepth
、interleaving
およびcompression
)を持ちます。ただし、モザイク処理する左上角のGeoRasterオブジェクトと同じ記憶域パラメータをモザイクに設定する場合を除き、出力モザイクのサイズに応じて記憶域パラメータ(特にブロック化サイズ)を指定することをお薦めします。 - bgValues
-
部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、現行の処理によって部分的に空のラスター・ブロック(「空のラスター・ブロック」を参照)が生成される場合のみです。これは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれているか、ソースGeoRasterオブジェクトが領域全体を覆っていない場合に発生する可能性があります。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、
SDO_NUMBER_ARRAY(1,5,10)
では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValues
は0 (ゼロ)です。入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。
使用上の注意
このプロシージャは、限定されたモザイク処理機能を持ち、事前処理されて完全に配置されたソースGeoRasterオブジェクトに対してのみ適切に動作します。これは、幾何補正されていないラスターに対しては動作せず、パラレル処理もサポートしていません。パラレル処理などの高度なモザイク処理機能では、SDO_GEOR_AGGR.mosaicSubsetプロシージャを使用します。詳細は、「大規模イメージのモザイク処理」を参照してください。
このプロシージャでは、ソースGeoRasterオブジェクトは、モザイク処理を直接実行できるように、イメージまたはラスター・データとして準備しておく必要があります。モザイク処理されるGeoRasterオブジェクトは、次の条件を満たしている必要があります。
-
地理参照されているオブジェクトと地理参照されていないオブジェクトを混在させないこと。すべてのオブジェクトが地理参照されているか、地理参照されているオブジェクトが1つもないこと。
-
オブジェクトが地理参照されている場合はSRID値が同じであり、地理参照の方法はアフィン変換である必要がある。GeoRasterオブジェクトのアフィン変換では、係数のセット(A、B、DおよびE)または(b、c、e、f)は同じである必要がある。つまり、イメージは、同じX解像度とY解像度(ただし、XとYの解像度は同じである必要はない)、同じ回転角度、同じひずみ係数を持つ必要がある(言い換えると、イメージは、同じ解像度を持ち、イメージが回転してひずんでいる場合は同じように回転してひずんでいる必要がある)。
-
同じレイヤー数またはバンド数を持つ。 ソース・オブジェクトの行および列の次元サイズに制限はない。たとえば、2の累乗値である必要はない。
-
バンド番号とレイヤー間のマッピングが同じである。
モザイク処理されるGeoRasterオブジェクトが地理参照される場合、これらのオブジェクトはその地理参照情報に従ってともに配置されます。GeoRasterオブジェクトが地理参照されない場合、これらのオブジェクトはULTCoordinate値に従ってともに配置されます。(ULTCoordinateの詳細は、「GeoRasterデータ・モデル」を参照してください。)
これらの条件を満たしている場合、結果のGeoRasterオブジェクトは、モデル空間の左上角の、ソースとなるGeoRasterオブジェクトから空間参照メタデータ情報を取得します。また、モデル空間の左上角のソースGeoRasterオブジェクトから、セル空間およびデフォルトの記憶域属性を取得します。
ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれるか、ソースGeoRasterオブジェクトが領域全体を覆っていない場合、モザイク処理された結果のGeoRasterオブジェクトには、空のラスター・ブロックまたは部分的に空のラスター・ブロック(空のラスター・ブロックを参照)が含まれます。いずれのソースGeoRasterオブジェクトにも含まれない結果のラスター・ブロックは、空のままです。部分的に空のラスター・ブロックにはbgValues
パラメータに指定した値が入力されます。bgValues
パラメータを指定しない場合は0 (ゼロ)が入力されます。
ソースGeoRasterオブジェクトが重複する場合、ソース・オブジェクトのデータが、その領域のデータになります。この場合のソース・オブジェクトは、重複している領域を覆い、かつすべてのソース・オブジェクトがともに配置されているセル空間で最大のultCoordinate
を持ちます。
ソースのGeoRasterオブジェクトに関連したビットマップ・マスクは考慮されません。bitmapmask
パラメータは、storageParam
文字列で指定されている場合でも無視されます。
ソースとなるすべてのGeoRasterオブジェクトが空白で、同じblankCellValue
値を持つ場合、結果のGeoRasterオブジェクトも空白になり、そのblankCellValue
値を持ちます。そうでない場合、結果のGeoRasterオブジェクトは空白にはなりません。
モザイク処理の結果を含めるGeoRasterオブジェクト(georaster
パラメータ)には、ソースGeoRasterオブジェクト(モザイク処理を行う対象となるオブジェクト)を指定することはできません。
モザイク処理では、一定の間隔で内部コミット操作が実行されるため、ロールバックできません。処理が中断された場合、ダングリング・ラスター・ブロックがラスター・データ表に存在する可能性があります。ダングリング・ラスター・ブロックは、GeoRasterオブジェクトおよびシステム・データをデータベースでメンテナンスすることにより処理できます(「データベースのGeoRasterオブジェクトおよびシステム・データのメンテナンス」を参照)。
例
次の例では、初期化されたGeoRasterオブジェクトをGEORASTER_TABLE表に挿入し、そのGeoRasterオブジェクトをgr
という変数に戻します。GRTABという表のGROBJ列のすべてのGeoRasterオブジェクトをモザイク処理して、モザイク処理によって生成されたGeoRasterオブジェクトを同じ変数に格納します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。GRTAB表の定義はこの例では重要ではないため、ここでは示していません。)
DECLARE gr sdo_georaster; BEGIN INSERT INTO georaster_table (georid, georaster) VALUES (12, sdo_geor.init('rdt_1')) RETURNING georaster INTO gr; sdo_geor.mosaic('grtab', 'grobj', gr, 'blocking=optimalpadding blocksize=(512,512,1)'); UPDATE georaster_table SET georaster=gr WHERE id=12; END; /
7.110 SDO_GEOR.rectify
形式
SDO_GEOR.rectify( inGeoRaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, elevationParam IN VARCHAR2, DEM IN SDO_GEORASTER, outSRID IN NUMBER, outModelCoordLoc IN NUMBER, cropArea IN SDO_GEOMETRY, polygonClip IN VARCHAR2, layerNumbers IN VARCHAR2, outResolutions IN SDO_NUMBER_ARRAY, resolutionUnit IN VARCHAR2, referencePoint IN SDO_GEOMETRY, resampleParam IN VARCHAR2, storageParam IN VARCHAR2, outGeoRaster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, parallelParam IN VARCHAR2 DEFAULT NULL);
または
SDO_GEOR.rectify( inGeoRaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, elevationParam IN VARCHAR2, DEM IN SDO_GEORASTER, outSRID IN NUMBER, outModelCoordLoc IN NUMBER, cropArea IN SDO_GEOMETRY, polygonClip IN VARCHAR2, layerNumbers IN VARCHAR2, outResolutions IN SDO_NUMBER_ARRAY, resolutionUnit IN VARCHAR2, referencePoint IN SDO_GEOMETRY, resampleParam IN VARCHAR2, storageParam IN VARCHAR2, rasterBlob IN OUT NOCOPY BLOB, outArea OUT SDO_GEOMETRY, outWindow OUT SDO_NUMBER_ARRAY, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, parallelParam IN VARCHAR2 DEFAULT NULL);
説明
地理参照されたGeoRasterオブジェクトの全部または一部に対して幾何補正を実行します。結果のオブジェクトは、新しいGeoRasterオブジェクト(永続記憶域目的)またはBLOB (一時使用目的)のいずれかです。入力モデル座標系(SRID)が3次元の場合、平均の標高または数値標高モデル(DEM)は、オルソ補正を実行するために使用できます。
パラメータ
- inGeoRaster
-
操作を実行するGeoRasterオブジェクトを指定します。これは、地理参照される必要があります(SDO_GEOR.georeferenceサブプログラムを参照)。
- pyramidLevel
-
操作用のソースGeoRasterオブジェクトのピラミッド・レベルを指定します。
-
BLOB出力では、このパラメータが必須です。
-
SDO_GEORASTER出力では、このパラメータがNULLで、
storageParam
pyramid
値がFALSE
の場合、ピラミッド・レベル0のみが幾何補正され、出力にはレベル0のみが含まれます。このパラメータがNULLで、storageParam
pyramid
値がTRUE
の場合、入力のすべてのピラミッド・レベルが幾何補正されます。 -
0以上の数値を指定すると、そのピラミッド・レベルのみが幾何補正に使用され、そのピラミッド・レベル・イメージに基づいてスケールの結果が生成されます。
-
- elevationParam
-
標高パラメータの
average
(平均表面高度)、scale
(すべてのDEM
値に適用されるスケール値)およびoffset
(すべてのDEM
値に適用されるオフセット)を1つ以上含む文字列を指定します(新しい値は、(value + offset) * scale
です)。このパラメータは、引用符で囲まれた文字列で、1つ以上のキーワード=値のペア('average=800 scale=3.2808399 offset=10'
など)を含める必要があります。このパラメータがNULLの場合、average
およびoffset
には0が、scale
には1が使用されます。DEM
が指定されていない場合、scale
およびoffset
値は無視されます。elevationParam
パラメータを使用する場合、入力GeoRasterオブジェクトには3DモデルSRIDが含まれる必要があります。入力GeoRasterオブジェクトに3DモデルSRIDが含まれる場合、出力イメージのエクステントを定義するために、平均の標高が重要になります。
DEM
を指定していても、この情報が使用可能である場合は指定する必要があります。平均の標高を指定しない場合、プロシージャによって、平均の標高の近似値が計算されます。注意:
GeoRasterのサブプログラムに対する文字列(VARCHAR2)パラメータの中に数値がある場合は、ロケールにかかわらず、小数点にはピリオド(.)を使用する必要があります。
- DEM
-
オルソ補正を実行するために使用する数値標高モデル(DEM)を含むGeoRasterオブジェクトを指定します(「使用上の注意」を参照)。outGeoRasterと同じSRIDを持つ必要があります。DEM領域は、
outGeoRaster
領域全体またはcropArea
(使用する場合)を対象とする必要があります。標高データは、DEM
GeoRasterオブジェクトの1番目のレイヤーに存在すると仮定されます。このパラメータがNULLの場合、elevationParam
値が使用されます。最適な結果を得るには、DEM
GeoRasterオブジェクトの解像度を入力GeoRasterオブジェクトの解像度に近づける必要があります。DEM
パラメータを使用する場合、入力GeoRasterオブジェクトには3DモデルSRIDが含まれる必要があります。入力GeoRasterオブジェクトに3DモデルSRIDが含まれる場合、出力イメージのエクステントを定義するために、平均の標高が重要になります。
DEM
を指定していても、この情報が使用可能である場合はelevationParam
パラメータに指定する必要があります。平均の標高を指定しない場合、プロシージャによって、平均の標高の近似値が計算されます。 - outSRID
-
出力GeoRasterオブジェクトの座標系を指定します。NULLか、またはMDSYS.CS_SRS表のSRID列の値を指定する必要があります。NULLの場合、出力GeoRasterオブジェクトには入力GeoRasterオブジェクトと同じSRIDが含まれます。
- outModelCoordLoc
-
セルによって表現される領域のベースのモデル位置を示す値を指定します。
CENTER
の場合は0
、UPPERLEFT
の場合は1
を指定します。NULLの場合、CENTER
が使用されます。 - cropArea
-
クロッピング領域を定義します。NULLの場合、クロッピングは実行されず、
polygonClip
は無視されます。polygonClip
がFALSE
の場合、cropArea
のMBRが出力イメージをクロッピングするために使用されます。polygonClip
がTRUE
の場合、cropArea
のジオメトリが出力イメージをクロッピングするために使用されます。クロッピング領域の外側の領域には、背景値が入力されます。 - polygonClip
-
cropArea
がNULLの場合は無視されます。それ以外の場合、文字列TRUE
ではモザイク処理されたデータをクロッピングするためにcropArea
値が使用され、文字列FALSE
またはNULL値では出力イメージをクロッピングするためにcropArea
のMBRが使用されます。 - layerNumbers
-
幾何補正および
outGeoRaster
への出力のための論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、2-4
はレイヤー2、3および4を示します)。 - outResolutions
-
空間次元ごとに1つの値を指定した、数値の配列を指定します。各値は、ピクセルの空間次元によって表現されるデータ領域に関連付けられた測定単位の数を示します。たとえば、空間解像度の値が(10,10)で、地上データの測定単位がmである場合、各ピクセルは10m×10mの領域を示します。NULLの場合、デフォルトは、指定したピラミッド・レベルのソース・データの解像度です。
- resolutionUnit
-
outResolutions
パラメータの単位を指定します。resolutionUnit
がoutGeoRaster
SRIDの単位と異なる場合、適切な変換が計算されます(出力解像度の値は、resolutionUnit
のoutResolutions
値を出力SRIDの単位に変換することによって計算されます)。resolutionUnit
がNULLの場合、デフォルトは出力SRIDの単位です。指定する場合、unit=valueという形式で、引用符で囲んだ文字列にする必要があります(valueは単位名)。このパラメータは、outResolutions
がNULLである場合は無視されます。 - referencePoint
-
referencePoint
と出力の左上角の距離がピクセルの整数になるように、outGeoRaster
オブジェクトを配置する必要のある場所への参照を示すSDO_GEOMETRY型の点を指定します。 - resampleParam
-
リサンプリング・パラメータを指定するため、キーワード=値のペアのカンマで区切られた引用符付き文字列を指定します。詳細は、「使用上の注意」を参照してください。
- storageParam
-
記憶域パラメータを示す文字列を指定します(「記憶域パラメータ」を参照)。
- outGeoRaster
-
操作の結果を格納するGeoRasterオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、「空白のGeoRasterオブジェクトと空のGeoRasterオブジェクト」を参照してください)。
inGeoRaster
と同じGeoRasterオブジェクトは指定できません。 - rasterBlob
-
幾何補正を反映した出力を保持するBLOBを指定します。処理の前に、存在しているか、または初期化されている必要があります。
- outArea
-
結果のオブジェクトのモデル座標系の最小境界矩形(MBR)を含むSDO_GEOMETRYオブジェクトを指定します。
- outWindow
-
セル空間内で出力ウィンドウの左上角および右下角の座標を指定するSDO_NUMBER_ARRAYオブジェクトを指定します。
- bgValues
-
部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(「空のラスター・ブロック」を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、
SDO_NUMBER_ARRAY(1,5,10)
では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValues
は0 (ゼロ)です。入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。
- parallelParam
-
操作の並列度を指定します。指定する場合、
parallel=
nという形式である必要があります(nは1より大きい)。データベース・オプティマイザでは、このパラメータによって指定された並列度を使用します。指定しない場合、デフォルトでパラレル処理は行われません。(詳細は、「GeoRasterでのパラレル処理」を参照してください。)並列性が指定されている場合、プロシージャによって内部コミット操作が実行されます。エラーが発生した場合(Oracle Parallel Serverが原因である場合でも)、操作をロールバックするために、出力結果のGeoRasterオブジェクトを明示的に削除する必要があります。
使用上の注意
このプロシージャには2つの構文があります。
-
一方の構文では、データベースへの永続的な格納のためにGeoRasterオブジェクトが生成されます。
-
他方の構文では、一時的な格納または即座の使用(画面へのデータの表示など)のためにBLOBが生成されます。
このプロシージャでは、入力GeoRasterオブジェクトから地理参照多項式を取得するパラメータなしの幾何補正メソッドを使用して、元のイメージ空間をターゲットのイメージ空間に変換します。したがって、入力GeoRasterオブジェクトを地理参照する必要があります(SDO_GEOR.georeferenceサブプログラムを参照)。
オルソ補正は、入力GeoRasterオブジェクトに3DモデルSRIDが含まれる場合に実行できます。数値標高モデル(DEM
) GeoRasterオブジェクトは、オルソ補正の精度を向上するために使用できます。DEM
パラメータを指定しない場合、elevationParam
average
値がターゲット領域全体の高さとして使用されます。elevationParam
average
値を指定しない場合、SRSおよびDEM情報に基づいて評価されます(「イメージのオルソ補正」を参照)。
resampleParam
は、指定する場合、それぞれ適切な値を指定した次の1つ以上のキーワードを含む引用符で囲んだ文字列にする必要があります。
-
resampling
(resampling=NN
など): リサンプリング・メソッドを指定します。NN
、BILINEAR
、BIQUADRATIC
、CUBIC
、AVERAGE4
またはAVERAGE16
のいずれかを指定する必要があります。詳細は、「リサンプリングおよび内挿」を参照してください。 -
nodata
(nodata=TRUE
など): プロシージャでの処理中にNODATA値およびその値の範囲を考慮するかどうかを指定します。TRUE
(NODATA値およびその値の範囲を考慮する)またはFALSE
(NODATA値およびその値の範囲を考慮しない)のいずれかを指定します。デフォルト値はFALSE
です。この値がTRUE
で、リサンプリング・メソッドがBILINEAR
、BIQUADRATIC
、CUBIC
、AVERAGE4
またはAVERAGE16
の場合、リサンプリングの計算に含まれるセル値がNODATA値であると、リサンプリングの結果も常にNODATA値になります。複数のNODATA値または値の範囲が存在する場合、結果のNODATA値は、現行のラスター・レイヤーに関連付けられているNODATA値の最小値になります。
例
次の例では、入力GeoRasterオブジェクトが同じSRIDに幾何補正されています。入力GeoRasterオブジェクトは、SRID 32619でGCPを使用して地理参照されています。
layerNumbers
パラメータは、入力GeoRasterオブジェクトの7つのバンドのうち、3つのバンドの選択順序を示しており、3つのバンドの出力GeoRasterオブジェクトが生成されます。
DECLARE gr1 sdo_georaster; gr2 sdo_georaster; BEGIN select raster into gr1 from georaster_table where georid = 1; insert into georaster_table values(2, 'Rectified image', sdo_geor.init('georaster_rdt')) returning raster into gr2; sdo_geor.rectify(inGeoRaster => gr1, pyramidLevel => null, elevationParam => null, dem => null, outSRID => null, outModelCoordLoc => null, cropArea => null, polygonClip => null, layerNumbers => '2,4,5', outResolutions => null, resolutionUnit => null, referencePoint => null, resampleParam => null, storageParam => null, outGeoraster => gr2); update georaster_table set georaster = gr2 where georid = 2; commit; END;
次の例では、入力GeoRasterオブジェクトは、SRID 32619で3D GCPを使用して地理参照され、ファンクションによって、SRID 4326でオルソ補正されたGeoRasterが生成されます。
-
dem
パラメータは、オルソ補正用のピクセルごとに高さの値を提供するため、数値標高モデルとしてGeoRasterオブジェクトgr3
を指定します。 -
resampleParam
は、BILINEAR
としてリサンプリング・メソッドを指定します。 -
storageParam
パラメータは、BSQ
としてinterleaving
を、DEFLATE
としてcompression
を指定します。 -
指定された
outResolutions
値は、resolutionUnit
がNULLのため、出力GeoRaster SRIDと同じ測定単位を持ちます。 -
referencePoint
によって指定された点のジオメトリによって、出力イメージの左上角が、それらの間でピクセルの整数(行および列の解像度)を使用してその座標に揃えられます。
DECLARE gr1 sdo_georaster; gr2 sdo_georaster; gr3 sdo_georaster; pto sdo_geometry; BEGIN pto := sdo_geometry(2001, 4326, sdo_point_type(-71.50,42.0, null)); select raster into gr1 from georaster_table where georid = 1; select raster into gr1 from georaster_table where georid = 3; insert into georaster_table values(2, 'Rectified image', sdo_geor.init('georaster_rdt')) returning raster into gr2; sdo_geor.rectify(inGeoRaster => gr1, pyramidLevel => 1, elevationParam => null, dem => gr3, outSRID => 4326, outModelCoordLoc => null, cropArea => null, polygonClip => null, layerNumbers => null, outResolutions => sdo_number_array(0.0025,0.0025), resolutionUnit => null, referencePoint => pto, resampleParam => 'resampling=BILINEAR', storageParam => 'interleaving=BSQ compress=DEFLATE', outGeoraster => gr2); update georaster_table set georaster = gr2 where georid = 2; commit; END;
次の例では、入力GeoRasterオブジェクトは、SRID 32619でGCPを使用して地理参照され、出力GeoRasterオブジェクトは、SRID 4326に投影されます。
-
resampleParam
は、CUBIC
としてリサンプリング・メソッドを指定します。 -
storageParam
パラメータは、blockSizeを(512,512,3)に指定します。interleaving
が指定されていないため、inGeoRaster
のインターリーブ・メソッドが使用されます。 -
outResolutions
およびresolutionUnit
は、outSRID
4316とは異なる単位のmで指定されています。この場合、SDO_NUMBER_ARRAY値の(30,30)は度数に変換されます。 -
cropArea
で指定されているSDO_GEOMETRYポリゴンは、そのポリゴンの範囲まで出力領域をクロッピングするために使用され、polygonClip
がTRUE
であるため、ポリゴンの外側のイメージ領域は背景値に設定されます。 -
outModelCoordLoc
が1
に指定されているため、出力オブジェクトのモデル座標の場所は、UpperLeft
になります。
DECLARE gr1 sdo_georaster; gr2 sdo_georaster; pol sdo_geometry; BEGIN pol := sdo_geometry(2003,4326,NULL,sdo_elem_info_array(1,1003,1), sdo_ordinate_array(-70.869495075803073, 42.349420282160885, -70.468523716196913, 42.813138293441916, -70.957334345349082, 43.218053058782452, -71.350984405166344, 42.736563729419181, -70.869495075803073, 42.349420282160885)); select raster into gr1 from georaster_table where georid = 1; insert into georaster_table values(2, 'Rectified image', sdo_geor.init('georaster_rdt')) returning raster into gr2; sdo_geor.rectify(inGeoRaster => gr1, pyramidLevel => 0, elevationParam => null, dem => null, outSRID => 4326, outModelCoordLoc => 1, cropArea => pol, polygonClip => 'true', layerNumbers => null, outResolutions => sdo_number_array(30,30), resolutionUnit => 'unit=meter', referencePoint => null, resampleParam => 'resampling=CUBIC', storageParam => 'blocking=optimalpadding blockSize=(512,512,3)', outGeoraster => gr2); update georaster_table set georaster = gr2 where georid = 2; commit; END;
7.111 SDO_GEOR.reproject
形式
SDO_GEOR.reproject( inGeoRaster IN SDO_GEORASTER, resampleParam IN VARCHAR2, storageParam IN VARCHAR2, outSRID IN NUMBER, outGeoraster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR.reproject( inGeoRaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, cropArea IN SDO_GEOMETRY, layerNumbers IN VARCHAR2, resampleParam IN VARCHAR2, storageParam IN VARCHAR2, outSRID IN NUMBER, outGeoraster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR.reproject( inGeoRaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, cropArea IN SDO_NUMBER_ARRAY, bandNumbers IN VARCHAR2, resampleParam IN VARCHAR2, storageParam IN VARCHAR2, outSRID IN NUMBER, outGeoraster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR.reproject( inGeoRaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, cropArea IN SDO_GEOMETRY, layerNumbers IN VARCHAR2, resampleParam IN VARCHAR2, storageParam IN VARCHAR2, outSRID IN NUMBER, rasterBlob IN OUT NOCOPY BLOB, outArea OUT SDO_GEOMETRY, outWindow OUT SDO_NUMBER_ARRAY, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR.reproject( inGeoRaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, cropArea IN SDO_NUMBER_ARRAY, bandNumbers IN VARCHAR2, resampleParam IN VARCHAR2, storageParam IN VARCHAR2, outSRID IN NUMBER, rasterBlob IN OUT NOCOPY BLOB, outArea OUT SDO_GEOMETRY, outWindow OUT SDO_NUMBER_ARRAY, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
説明
GeoRasterオブジェクトの全部または一部を、(outSRIDパラメータで指定された)異なるOracle Spatial and Graph座標系に再投影します。結果のオブジェクトは、新しいGeoRasterオブジェクト(永続記憶域目的)またはBLOB (一時使用目的)のいずれかです。
パラメータ
- inGeoRaster
-
新しいオブジェクトを作成するために再投影処理を実行するSDO_GEORASTERオブジェクトを指定します。
- pyramidLevel
-
ソースGeoRasterオブジェクトのピラミッド・レベルを示す番号を指定します。
- cropArea
-
クロッピング領域を定義します。
cropArea
がSDO_GEOMETRY型の場合は、layerNumbers
パラメータを使用して1つ以上のレイヤー番号を指定します。cropArea
がSDO_NUMBER_ARRAY型の場合は、bandNumbers
パラメータを使用して、1つ以上のバンド番号を指定します。データ型がSDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合、ジオメトリ・オブジェクトの最小境界矩形(MBR)がクロッピング領域として使用されます(SDO_SRID要件の「使用上の注意」も参照してください)。
- layerNumbers
-
処理を実行する論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、
2-4
はレイヤー2、3および4を示します)。 - bandNumbers
-
処理を実行する物理バンド番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、
1-3
はバンド1、2および3を示します)。 - resampleParam
-
リサンプリング・パラメータを含む文字列を指定します。使用可能なキーワードおよび値については、「使用上の注意」を参照してください。
- storageParam
-
記憶域パラメータを示す文字列を指定します(「記憶域パラメータ」を参照)。
- outGeoRaster
-
スケール変更処理の結果を反映させる新しいSDO_GEORASTERオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、「空白のGeoRasterオブジェクトと空のGeoRasterオブジェクト」を参照してください)。
inGeoRaster
と同じGeoRasterオブジェクトは指定できません。 - rasterBlob
-
新しい座標系を反映した出力を保持するBLOBを指定します。再投影処理の前に、これが存在しているか、または初期化されている必要があります。
- outArea
-
結果のオブジェクトのモデル座標系の最小境界矩形(MBR)を含むSDO_GEOMETRYオブジェクトを指定します。
- outWindow
-
セル空間内で出力ウィンドウの左上角および右下角の座標を指定するSDO_NUMBER_ARRAYオブジェクトを指定します。
- bgValues
-
部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(「空のラスター・ブロック」を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、
SDO_NUMBER_ARRAY(1,5,10)
では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValues
は0 (ゼロ)です。入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。
使用上の注意
このプロシージャには2つの一般的な種類のインタフェースがあります。
-
最初の3つの構文では、データベースに格納するための永続GeoRasterオブジェクトが生成されます。
-
残りの構文では、即座に使用するための一時的な格納(画面へのデータの表示など)のためにBLOBが生成されます。
inGeoRaster
は、地理参照され、MDSYS.CS_SRS表のSRID列のSRID値を持つ必要があります。outSRID
は、inGeoRaster
のSRIDとは異なる必要があります。再投影が不適切な場合もあります(たとえば、NAD83, Massachusetts Mainland (SRID = 26986)のGeoRasterオブジェクトを座標系NAD 27, UTMゾーン49N (SRID = 2032649)に再投影するなど)。この場合、再投影すると大規模なひずみが発生するため、実行されません。
inGeoRaster
とoutGeoRaster
には異なるGeoRasterオブジェクトを指定する必要があります。操作後に、結果のGeoRasterオブジェクトのULT座標は、0 (ゼロ)に設定されます。
ソースまたは宛先オブジェクトに3次元座標系が含まれる場合、高さ(Z)の値は0 (ゼロ)に設定されます。
pyramidLevel
パラメータを含む構文を使用して0 (ゼロ)より大きい値を指定した場合、再投影はソースGeoRasterオブジェクトの指定したピラミッド・レベルに基づきますが、それ以外の場合、再投影は、元のGeoRasterオブジェクト(pyramidLevel=0)に基づきます。出力GeoRasterオブジェクトにはピラミッド・データが含まれません。
cropArea
パラメータのデータ型がSDO_GEOMETRYの場合、SDO_SRID値は、MDSYS.CS_SRS表のSRID列の値である必要があります。cropArea
パラメータ・ジオメトリとinGeoraster
オブジェクト・モデル空間のSDO_SRID値が異なる場合は、処理が実行される前に、cropArea
パラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、「GeoRasterデータ・モデル」を参照してください。)
cropArea
パラメータで測地MBRを指定する場合、日付変更線をまたぐMBRは指定できません。(測地MBRについては、『Oracle Spatial and Graph開発者ガイド』を参照してください。)指定したクロッピング領域とソースGeoRasterオブジェクトの空間エクステントが重複する部分のみが再投影されます。
resampleParam
には、次の1つ以上のキーワードにそれぞれ適切な値を指定して、それらを引用符で囲んだ文字列を指定する必要があります。
-
resampling
(resampling=NN
など): リサンプリング・メソッドを指定します。NN
、BILINEAR
、CUBIC
、AVERAGE4
、AVERAGE16
のいずれかを指定する必要があります。詳細は、「リサンプリングおよび内挿」を参照してください。 -
nodata
(nodata=TRUE
など): プロシージャでの処理中にNODATA値およびその値の範囲を考慮するかどうかを指定します。TRUE
(NODATA値およびその値の範囲を考慮する)またはFALSE
(NODATA値およびその値の範囲を考慮しない)のいずれかを指定します。デフォルト値はFALSE
です。この値がTRUE
で、リサンプリング・メソッドがBILINEAR
、CUBIC
、AVERAGE4
またはAVERAGE16
の場合、リサンプリングの計算に含まれるセル値がNODATA値であると、リサンプリングの結果も常にNODATA値になります。複数のNODATA値または値の範囲が存在する場合、結果のNODATA値は、現行のラスター・レイヤーに関連付けられているNODATA値の最小値になります。
例
次の例では、SRID 32618によって定義された座標系にGeoRasterオブジェクトを再投影します。結果は、別のGeoRasterオブジェクトです。
DECLARE gr1 sdo_georaster; gr2 sdo_georaster; BEGIN SELECT georaster INTO gr1 from georaster_table WHERE georid=10; INSERT INTO reproject_table VALUES (21, 'WGS 84 / UTM zone 18N', SDO_GEOR.init('rdt_5', 21)) RETURNING georaster INTO gr2; sdo_geor.Reproject(gr1, 0, 0, SDO_NUMBER_ARRAY(0, 0, 517, 517), null, null, 'blocking=optimalpadding, blocksize=(512,512,3), interleaving=BSQ', 32618, gr2); UPDATE georaster_table SET georaster=gr2 WHERE georid=21; COMMIT; END; /
次の例では、SRID 32618によって定義された座標系にGeoRasterオブジェクトを再投影します。結果は、JPEG-F形式のデータを含む一時BLOBです。
DECLARE gr1 sdo_georaster; lob1 BLOB; outArea SDO_Geometry; outWindow SDO_NUMBER_ARRAY; BEGIN SELECT georaster INTO gr1 from georaster_table WHERE georid=10; dbms_lob.createTemporary(lob1, TRUE); sdo_geor.Reproject(gr1, 0, SDO_NUMBER_ARRAY(0, 0, 120, 300), '0', null, 'compression = JPEG-F', 32618, lob1, outArea, outWindow); dbms_lob.freeTemporary(lob1); COMMIT; END; /
7.112 SDO_GEOR.scaleCopy
形式
SDO_GEOR.scaleCopy( inGeoRaster IN SDO_GEORASTER, scaleParam IN VARCHAR2, resampleParam IN VARCHAR2, storageParam IN VARCHAR2, outGeoRaster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR.scaleCopy( inGeoRaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, scaleParam IN VARCHAR2, resampleParam IN VARCHAR2, storageParam IN VARCHAR2, outGeoRaster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
説明
行次元および列次元に沿ってイメージを拡大または縮小して、GeoRasterオブジェクトをスケール変更し、そのスケール変更が反映された結果を新しいオブジェクトに格納します。
パラメータ
- inGeoRaster
-
新しいオブジェクト(
outGeoRaster
)を作成するためにスケール変更処理を実行するSDO_GEORASTERオブジェクトを指定します。 - pyramidLevel
-
ソースGeoRasterオブジェクトのピラミッド・レベルを示す番号を指定します。
- scaleParam
-
スケール変更パラメータ・キーワード、およびその関連する値を示す文字列を指定します。キーワードは次のいずれかである必要があります。
注意:
GeoRasterのサブプログラムに対する文字列(VARCHAR2)パラメータの中に数値がある場合は、ロケールにかかわらず、小数点にはピリオド(.)を使用する必要があります。
-
scaleFactor
: 元のサイズに乗算して縮小または拡大を実行します。このキーワードには、0 (ゼロ)より大きい数値を指定する必要があります('scaleFactor=0.75'
など)。値が1.0の場合、現行のサイズは変更されません。値が1より小さい場合はイメージは縮小され、1より大きい場合はイメージは拡大されます。各次元のセル数は、元の数にscaleFactor
を掛けた値になります。たとえば、scaleFactor
値が2で、GeoRasterオブジェクトがXおよびY次元を持つ場合、各次元のセル数は2倍になります。 -
maxDimSize
: 各次元のセルの最大数によってサイズを指定します。このキーワードには、次元ごとの数値を指定する必要があります('maxDimSize=(512,512)'
など)。アスペクト比は変更されません。 -
rowMaxDimSize
およびcolumnMaxDimSize
: 行および列次元のセルの最大数によってサイズを指定します。このペアのキーワードには、次元ごとに数値を含める必要があります(たとえば、'rowMaxDimSize=512,columnMaxDimSize=256'
など)。アスペクト比は変更できません。2つのキーワードを一緒に指定する必要があります。 -
rowScaleFactor
およびcolumnScaleFactor
: 元のサイズに乗算して縮小または拡大を実行します。このペアのキーワードには、0(ゼロ)を超える数値を含める必要があります。値が1.0の場合、現行のサイズは変更されません。値が1より小さい場合はイメージは縮小され、1より大きい場合はイメージは拡大されます。行次元のセル数は、元の数にrowScaleFactor
を掛けた値になります。列次元のセル数は、元の数にcolumnScaleFactor
を掛けた値になります。rowScaleFactor
およびcolumnScaleFactor
は異なる数値を使用できますが、一緒に指定する必要があります。
-
- resampleParam
-
リサンプリング・パラメータを含む文字列を指定します。使用可能なキーワードおよび値については、「使用上の注意」を参照してください。
- storageParam
-
記憶域パラメータを示す文字列を指定します(「記憶域パラメータ」を参照)。
- outGeoRaster
-
スケール変更処理の結果を反映させる新しいSDO_GEORASTERオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、「空白のGeoRasterオブジェクトと空のGeoRasterオブジェクト」を参照してください)。
inGeoRaster
と同じGeoRasterオブジェクトは指定できません。 - bgValues
-
部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(「空のラスター・ブロック」を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、
SDO_NUMBER_ARRAY(1,5,10)
では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValues
は0 (ゼロ)です。入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。
使用上の注意
このプロシージャは、元のGeoRasterオブジェクトまたは元のGeoRasterオブジェクトに指定したピラミッド・レベルに基づき、指定したスケール変更が反映された新しいGeoRasterオブジェクトを作成する場合に使用します。このプロシージャを使用した後、元のGeoRasterオブジェクトのコピーで希望どおり変更されているかを確認し、必要に応じて元のGeoRasterオブジェクトを破棄します。
pyramidLevel
パラメータを含まない構文を使用すると、元のGeoRasterオブジェクト(pyramidLevel=0)を基にスケール変更が行われます。
スケール変更されたセル値を取得する必要がある場合は、SDO_GEOR.getCellValueファンクションの「使用上の注意」に示すプロシージャを使用します。
inGeoRaster
とoutGeoRaster
には異なるGeoRasterオブジェクトを指定する必要があります。
resampleParam
には、次の1つ以上のキーワードにそれぞれ適切な値を指定して、それらを引用符で囲んだ文字列を指定する必要があります。
-
resampling
(resampling=NN
など): リサンプリング・メソッドを指定します。NN
、BILINEAR
、BIQUADRATIC
、CUBIC
、AVERAGE4
、AVERAGE16
のいずれかを指定する必要があります。詳細は、「リサンプリングおよび内挿」を参照してください。 -
nodata
(nodata=TRUE
など): プロシージャでの処理中にNODATA値およびその値の範囲を考慮するかどうかを指定します。TRUE
(NODATA値およびその値の範囲を考慮する)またはFALSE
(NODATA値およびその値の範囲を考慮しない)のいずれかを指定します。デフォルト値はFALSE
です。この値がTRUE
で、リサンプリング・メソッドがBILINEAR
、BIQUADRATIC
、CUBIC
、AVERAGE4
またはAVERAGE16
の場合、リサンプリングの計算に含まれるセル値がNODATA値であると、リサンプリングの結果も常にNODATA値になります。複数のNODATA値または値の範囲が存在する場合、結果のNODATA値は、現行のラスター・レイヤーに関連付けられているNODATA値の最小値になります。
この処理中には、入力されるGeoRasterオブジェクトの上位レベルのピラミッド・データは考慮されず、出力されるGeoRasterオブジェクトにはピラミッド・データは含まれません。
スケールが変更されなかった場合(scaleFactor=1
の場合)でも、処理後、行と列のULT座標は常に0 (ゼロ)に設定されます。
このプロシージャは、バンド次元のスケール変更は行いません。
ソースGeoRasterオブジェクトが有効な多項式変換を使用して地理参照される場合、それとともに結果のGeoRasterオブジェクトの地理参照情報が生成されます。それ以外の場合、結果のGeoRasterオブジェクトには空間参照情報は含まれません。
次の1つ以上の条件に該当する場合、例外が発生します。
-
inGeoRaster
が無効である。 -
outGeoRaster
が初期化されていない。 -
outGeoRaster
に対するラスター・データ表が存在せず、outGeoRaster
が空白のGeoRasterオブジェクトではない。
例
次の例では、イメージを4分の3 (0.75)のサイズに縮小して、AVERAGE4
リサンプリングを指定し、記憶域パラメータで各次元の最適化されたブロック・サイズを512に指定します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE gr1 sdo_georaster; gr2 sdo_georaster; BEGIN INSERT INTO georaster_table (georid, georaster) VALUES (21, sdo_geor.init('RDT_1')) RETURNING georaster INTO gr2; SELECT georaster INTO gr1 FROM georaster_table WHERE georid=2; sdo_geor.scaleCopy(gr1, 'scaleFactor=0.75', 'resampling=AVERAGE4', 'blocking=optimalpadding blocksize=(512,512)', gr2); UPDATE georaster_table SET georaster=gr2 WHERE georid=21; COMMIT; END; /
7.113 SDO_GEOR.schemaValidate
形式
SDO_GEOR.schemaValidate( georaster IN SDO_GEORASTER ) RETURN VARCHAR2;
説明
GeoRasterオブジェクトのメタデータを、GeoRasterのXMLスキーマに対して検証します。
使用上の注意
このファンクションは、文字列TRUE
(メタデータが有効な場合)か、NULL値(GeoRasterオブジェクトまたはそのメタデータがNULLの場合)、あるいはメタデータが無効である理由とエラーの正確な位置を示す1つ以上のOracleエラー・コードを戻します。
このファンクションは、SDO_GEOR.validateGeoRasterファンクションとともに使用します。SDO_GEOR.validateGeoRasterファンクションによってGeoRasterオブジェクトが無効であると判断され、エラー・コード13454が戻された場合、そのオブジェクトのメタデータはGeoRasterのXMLスキーマに対して無効です。この場合、SDO_GEOR.schemaValidateファンクションをコールして、エラーに関する特定の情報(メタデータ内での位置を含む)を取得します。
例
次の例では、GeoRasterオブジェクトのメタデータを検証します。
SELECT t.georid, sdo_geor.schemavalidate(t.georaster) FROM georaster_table t WHERE t.georid = 1;
7.114 SDO_GEOR.setBeginDateTime
形式
SDO_GEOR.setBeginDateTime( georaster IN OUT SDO_GEORASTER, beginTime TIMESTAMP WITH TIME ZONE);
説明
GeoRasterオブジェクトのメタデータで、ラスター・データ収集の開始日時を設定します。または、beginTime
パラメータにNULLが指定された場合、既存の値を削除します。
使用上の注意
GeoRasterオブジェクトのメタデータで、現行の開始日時(存在する場合)を確認するには、SDO_GEOR.getBeginDateTimeファンクションを使用します。
beginTime
が、GeoRasterオブジェクトのメタデータで指定された終了日時(SDO_GEOR.setEndDateTimeプロシージャを参照)より後の日時に設定された場合、例外が発生します。
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
例
次の例では、GeoRasterオブジェクトのメタデータで、ラスター・データ収集の開始日時および終了日時を設定します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setBeginDateTime(grobj, timestamp '2002-11-15 15:00:00'); sdo_geor.setEndDateTime(grobj, timestamp '2002-11-15 15:00:10'); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; /
7.115 SDO_GEOR.setBinFunction
形式
SDO_GEOR.setBinFunction( georaster IN SDO_GEORASTER, layerNumber IN NUMBER binFunction IN SDO_NUMBER_ARRAY);
説明
レイヤーに関連付けられたビン・ファンクションを設定します。
パラメータ
使用上の注意
ビン・ファンクションは、GeoRasterセルの値または値の範囲を、特定のビン番号にマップします。ビン番号はすべて整数です。タイプがLINEAR
のビン・ファンクションが定義されている場合、このファンクションはSDO_GEOR.generateStatisticsファンクションでセル値に対する統計を算出するために使用されます。GeoRasterでは、ビン・ファンクションの操作および処理を行うインタフェースは提供されません。
binFunction
パラメータには、5つの数字からなる配列を指定します。各数字の意味は次のとおりです。
-
1番目の数字はビン・タイプを示します。0 (
LINEAR
)または1 (LOGARIGHM
)を指定する必要があります。 -
2番目の数字はビンの合計数を示します。
-
3番目の数字は最初のビンの番号を示します。
-
4番目の数字は範囲に含まれる最小セル値です。
-
5番目の数字は範囲に含まれる最大セル値です。
たとえば、binFunction
がSDO_NUMBER_ARRAY(0,10,1,0,511)
の場合、ビン・タイプはLINEAR
で、1から10までの番号が付けられた(1から始まる)10個のビンがあり、0から511のセル値がビン1からビン10に均一に分散されています。
layerNumber
がNULL、負、またはレイヤーの最大番号より大きい値の場合、例外が発生します。
例
次の例では、「使用上の注意」で説明したbinFunction
パラメータ値を使用して、指定したGeoRasterオブジェクトのレイヤー3のビン・ファンクションを設定します。
DECLARE gr sdo_georaster; BEGIN SELECT georaster INTO gr FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setBinFunction(gr, 3, sdo_number_array(0,10,1,0,511)); UPDATE georaster_table SET georaster=gr WHERE georid=4; END; /
7.116 SDO_GEOR.setBinTable
形式
SDO_GEOR.setBinTable( georaster IN OUT SDO_GEORASTER, layerNumber IN NUMBER, tableName IN VARCHAR2);
説明
レイヤーに関連付けられたビン表の名前を設定します。または、tableName
パラメータにNULLが指定された場合、既存の値を削除します。
注意:
今回のリリースのGeoRasterでは、ビン表を使用した操作は実行されません。
パラメータ
使用上の注意
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
このプロシージャは、ビン・タイプがEXPLICIT
の場合にのみ有効です。ビン・タイプを取得するには、SDO_GEOR.getBinTypeファンクションを使用します。
レイヤーのビン表を戻すには、SDO_GEOR.getBinTableファンクションを使用します。
SDO_GEOR.getBinTypeファンクションの「使用上の注意」も参照してください。
layerNumber
がNULLか、GeoRasterオブジェクトに対して無効な場合、またはtableName
が空の文字列(''
)の場合は例外が発生します。
例
次の例では、GEORASTER_TABLE表の指定したGeoRasterオブジェクトで、レイヤー番号3のビン表の名前をBINT1
に設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setBinTable(grobj, 3, 'BINT1'); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; /
7.117 SDO_GEOR.setBitmapMask
形式
SDO_GEOR.setBitmapMask( georaster IN OUT SDO_GEORASTER, layerNumber IN NUMBER, mask IN SDO_GEORASTER, NODATAMask IN VARCHAR2 DEFAULT NULL);
説明
GeoRasterオブジェクトにビットマップ・マスクをアタッチするか、現行のビットマップ・マスクを置換または削除します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- layerNumber
-
ビットマップ・マスクを関連付けるレイヤーを指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。
- mask
-
GeoRasterオブジェクトにアタッチするビットマップ・マスクを指定します。このパラメータがNULLの場合は、指定したGeoRasterオブジェクト・レイヤーに関連付けられた既存のビットマップ・マスクがすべて削除されます。
- NODATAMask
-
mask
をNODATAマスクとして解釈するかどうかを指定します。文字列TRUE
では、mask
はNODATAマスクとして解釈されますが、NULLを含む他の値では、mask
はNODATAマスクとして解釈されません。
使用上の注意
このプロシージャは、指定したGeoRasterオブジェクトまたはレイヤーにビットマップ・マスクがすでに関連付けられている場合、指定したマスクとの置換または削除(mask
パラメータにNULL値が指定されている場合)を行います。
mask
パラメータ値がNULLでない場合、ビットマップ・マスクは1つのバンドのみを持つ有効な1BITのGeoRasterオブジェクトであることが必要です。また、ビットマップ・マスクの行および列次元のサイズは、ターゲットのGeoRasterオブジェクトの行および列次元と同じであることが必要です。入力されたGeoRasterオブジェクト(georaster
パラメータ)と同じGeoRasterオブジェクトは指定できません。
ターゲットのGeoRasterオブジェクトが空白のGeoRasterオブジェクトの場合、このプロシージャでは例外が発生します。
ビットマップ・マスクの詳細は、「ビットマップ・マスク」を参照してください。
例
次の例では、GRTAB表にあるid=1のGeoRasterオブジェクトをビットマップ・マスクとして使用し、GEORASTER_TABLEにあるgeorid=1のGeoRasterオブジェクトの1番レイヤーにアタッチします。ビットマップ・マスクはNODATAマスクと解釈されます。
declare gr sdo_georaster; mk sdo_georaster; begin select georaster into gr from georaster_table where georid=1 for update; select grobj into mk from grtab where id=1; sdo_geor.setBitmapMask(gr, 1, mk, 'true'); update georaster_table set georaster=gr where georid=0; commit; end; /
7.118 SDO_GEOR.setBlankCellValue
形式
SDO_GEOR.setBlankCellValue( georaster IN OUT SDO_GEORASTER, value IN NUMBER);
説明
指定されたGeoRasterオブジェクトが空白のGeoRasterオブジェクトである場合に、すべてのセルに使用されるセル値を設定(変更)します。
使用上の注意
空白のGeoRasterオブジェクトでは、すべてのセルが同じセル値を持ちます。
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
空白のGeoRasterオブジェクトの空白のセル値を戻すには、SDO_GEOR.getBlankCellValueファンクションを使用します。指定したGeoRasterオブジェクトが空白のGeoRasterオブジェクトかどうかを確認するには、SDO_GEOR.isBlankファンクションを使用します。
value
がNULLか、またはcellDepth
の指定と一貫性がない場合、あるいはGeoRasterオブジェクトが空白以外の場合は、例外が発生します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が1である行に含まれているGeoRasterオブジェクト(GEORASTER列)のすべてのセルで使用する値に、255を指定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=1 FOR UPDATE; sdo_geor.setBlankCellValue(grobj, 255); UPDATE georaster_table SET georaster = grobj WHERE georid=1; COMMIT; END; /
7.119 SDO_GEOR.setColorMap
形式
SDO_GEOR.setColorMap( georaster IN OUT SDO_GEORASTER, layerNumber IN NUMBER, colorMap IN SDO_GEOR_COLORMAP);
説明
GeoRasterオブジェクトのレイヤーのカラーマップを設定します。または、colorMap
パラメータにNULLが指定された場合、既存の値を削除します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- layerNumber
-
操作を実行するレイヤーの番号を指定します。
- colorMap
-
SDO_GEOR_COLORMAP型のカラーマップ・オブジェクトを指定します(「SDO_GEOR_COLORMAPオブジェクト型」を参照)。
使用上の注意
指定するカラーマップ・オブジェクトは、次の条件に該当する必要があります。
-
cellValue
値は、GeoRasterオブジェクトのcellDepth
値と一貫性があり、その値の範囲内にある。 -
赤、緑、青およびアルファ値が、0から255の整数である。
-
cellValue
配列に含まれるエントリが重複していない。 -
cellValue
配列のエントリが、昇順である。
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
カラーマップを作成するか、または既存のGeoRasterオブジェクトからカラーマップを取得して使用できます。GeoRasterオブジェクトのレイヤーのカラーマップを戻すには、SDO_GEOR.getColorMapファンクションを使用します。
layerNumber
がNULLか、GeoRasterオブジェクトに対して無効である場合、colorMap
の中に赤、緑、青のいずれかが存在する場合、アルファ値がNULLか、範囲外である場合、cellValue
配列の中に重複値が存在する場合、cellValue
値のいずれかがNULL、範囲外または順序が適切でない場合は、例外が発生します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー2のカラーマップを設定します。ここでは、GeoRasterオブジェクトがビットマップであると想定しています。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; cmobj sdo_geor_colormap; BEGIN cmobj := sdo_geor_colormap(sdo_number_array(0, 1), sdo_number_array(0, 255), sdo_number_array(0, 0), sdo_number_array(0, 0), sdo_number_array(255, 255)); SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setColorMap(grobj, 2, cmobj); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; /
7.120 SDO_GEOR.setColorMapTable
形式
SDO_GEOR.setColorMapTable( georaster IN OUT SDO_GEORASTER, layerNumber IN NUMBER, tableName IN VARCHAR2);
説明
GeoRasterオブジェクトのレイヤーのカラーマップ表を設定します。または、tableName
パラメータにNULLが指定された場合、既存の値を削除します。
注意:
このプロシージャは、カラーマップ表の名前をGeoRasterに登録します。ただし、今回のリリースのGeoRasterでは、カラーマップ表を使用した操作は実行されません。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- layerNumber
-
操作を実行するレイヤーの番号を指定します。
- tableName
-
ユーザー定義のカラーマップ表の名前を指定します。カラーマップの詳細は、「SDO_GEOR_COLORMAPオブジェクト型」を参照してください。
使用上の注意
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
GeoRasterオブジェクトのレイヤーのカラーマップ表を戻すには、SDO_GEOR.getColorMapTableファンクションを使用します。
layerNumber
がNULLか、GeoRasterオブジェクトに対して無効な場合、またはtableName
が空の文字列(''
)の場合は例外が発生します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー2のカラーマップ表をNULLに設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setColorMapTable(grobj, 2, null); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; /
7.121 SDO_GEOR.setControlPoint
形式
SDO_GEOR.setControlPoint ( inGeoraster IN OUT SDO_GEORASTER, controlPoint IN SDO_GEOR_GCP);
説明
GeoRasterオブジェクトの地上基準点(GCP)を追加するか、既存のGCPを置き換えます(入力基準点と同じID値を持つ場合)。
パラメータ
- inGeoraster
-
GeoRasterオブジェクトを指定します。
- controlPoint
-
inGeoraster
に追加するGCPを指定します。SDO_GEOR_GCP型のオブジェクトを指定する必要があります(「SDO_GEOR_GCPオブジェクト型」を参照)。
使用上の注意
GCPを使用した地理参照の詳細は、「地上基準点(GCP)地理参照モデル」を参照してください。
controlPoint
がNULLの場合、ファンクションはアクションを実行せずに戻されます。GCPがcontrolPoint
で定義されているものと同じ点IDを持つGeoRasterオブジェクト・メタデータで検出されると、そのGCPは置換されますが、それ以外の場合はこのGCPが地理参照モデルに追加されます。
例
次の例では、指定したGeoRasterオブジェクトにGCPを追加します。
DECLARE gr1 sdo_georaster; GCP SDO_GEOR_GCP; BEGIN SELECT georaster INTO gr1 from georaster_table WHERE georid=10 FOR UPDATE; GCP := SDO_GEOR_GCP('21', 'Updated', 1, 2, sdo_number_array(25.625000, 73.875000), 2, sdo_number_array(237036.937500, 897987.187500), NULL, NULL); sdo_geor.setControlPoint(gr1, GCP); UPDATE georaster_table SET georaster=gr1 WHERE georid=10; COMMIT; END; /
7.122 SDO_GEOR.setDefaultAlpha
形式
SDO_GEOR.setDefaultAlpha( georaster IN OUT SDO_GEORASTER, defaultAlpha IN NUMBER);
説明
GeoRasterオブジェクトを表示する際に、(RGBA色空間の)アルファの色構成要素に使用されるレイヤー番号を設定します。または、defaultAlpha
パラメータにNULLが指定された場合、既存の値を削除します。
パラメータ
使用上の注意
デフォルトの赤、緑、青およびアルファの値は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。これらの値はオプションで、マルチレイヤーまたはハイパースペクトルのGeoRasterオブジェクトを視覚化する場合にのみ使用されます。
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
アルファの色構成要素のみで使用するレイヤー番号を設定しようとした場合、またはdefaultAlpha
が、GeoRasterオブジェクトの有効なレイヤー番号ではない場合は、例外が発生します。
例
次の例では、GEORASTER_TABLE表に含まれるGeoRasterオブジェクト(GEORASTER列)のデフォルトの赤、緑、青およびアルファの色レイヤーを設定して、それらのGeoRasterオブジェクトを表示する際に赤、緑、青およびアルファの色構成要素に使用されるレイヤー番号の配列を戻します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setDefaultRed(grobj, 5); sdo_geor.setDefaultGreen(grobj, 4); sdo_geor.setDefaultBlue(grobj, 3); sdo_geor.setDefaultAlpha(grobj, 2); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; / SELECT sdo_geor.getDefaultColorLayer(georaster) FROM georaster_table WHERE georid=4; SDO_GEOR.GETDEFAULTCOLORLAYER(GEORASTER) -------------------------------------------------------------------------------- SDO_NUMBER_ARRAY(5, 4, 3, 2) 1 row selected.
7.123 SDO_GEOR.setDefaultBlue
形式
SDO_GEOR.setDefaultBlue( georaster IN OUT SDO_GEORASTER, defaultBlue IN NUMBER);
説明
GeoRasterオブジェクトを表示する際に、(RGB色空間の)青の色構成要素に使用されるレイヤー番号を設定します。または、defaultBlue
パラメータにNULLが指定された場合、既存の値を削除します。
パラメータ
使用上の注意
デフォルトの赤、緑および青の値は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。これらの値はオプションで、マルチレイヤーまたはハイパースペクトルのGeoRasterオブジェクトを視覚化する場合にのみ使用されます。
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
青色の構成要素のみで使用するレイヤー番号を設定または削除しようとした場合、またはdefaultBlue
が、GeoRasterオブジェクトの有効なレイヤー番号ではない場合は、例外が発生します。
例
次の例では、GEORASTER_TABLE表に含まれるGeoRasterオブジェクト(GEORASTER列)のデフォルトの赤、緑および青の色レイヤーを設定して、それらのGeoRasterオブジェクトを表示する際に赤、緑および青の色構成要素に使用されるレイヤー番号の配列を戻します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setDefaultRed(grobj, 5); sdo_geor.setDefaultGreen(grobj, 4); sdo_geor.setDefaultBlue(grobj, 3); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; / SELECT sdo_geor.getDefaultColorLayer(georaster) FROM georaster_table WHERE georid=4; SDO_GEOR.GETDEFAULTCOLORLAYER(GEORASTER) -------------------------------------------------------------------------------- SDO_NUMBER_ARRAY(5, 4, 3) 1 row selected.
7.124 SDO_GEOR.setDefaultColorLayer
形式
SDO_GEOR.setDefaultColorLayer( georaster IN OUT SDO_GEORASTER, defaultRGB IN SDO_NUMBER_ARRAY);
説明
GeoRasterオブジェクトを表示する際に、赤、緑、青およびアルファの各色構成要素に使用されるデフォルトのレイヤー番号を設定します。または、defaultRGB
パラメータにNULLが指定された場合、既存の値を削除します。
パラメータ
使用上の注意
指定されたRGBAレイヤー番号は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
SDO_GEOR.setDefaultRed、SDO_GEOR.setDefaultGreen、SDO_GEOR.setDefaultBlueおよびSDO_GEOR.setDefaultAlphaプロシージャを使用すると、それぞれの色構成要素(RGB)のレイヤー番号を設定できます。
デフォルトのRGBAレイヤー番号は、同時に設定または削除する必要があります。デフォルトのアルファ・レイヤー番号はオプションです。デフォルトの赤、緑および青のレイヤー番号を設定する場合、デフォルトのアルファ・レイヤー番号を設定できます。デフォルトの赤、緑および青のレイヤー番号を削除する場合、デフォルトのアルファ・レイヤー番号も削除する必要があります。
デフォルトのアルファ・レイヤーはオプションであるため、(A)このプロシージャに3つの数値を指定してデフォルトの赤、緑および青の色構成要素を設定するか、(B)このプロシージャに4つの数値を指定してデフォルトの赤、緑、青およびアルファの色構成要素を設定できます。defaultRGB
が3つの数値の配列である場合、それは赤、緑および青の色構成要素のみを示します。defaultRGB
が4つの数値の配列である場合、それは赤、緑、青およびアルファの構成要素を示します。
defaultRGB
が不適切なサイズの場合、またはこのパラメータのいずれかの要素がNULLであるか、GeoRasterオブジェクトに対して無効なレイヤー番号である場合は、例外が発生します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が2である行に含まれているGeoRasterオブジェクト(GEORASTER列)を表示する際に、赤、緑、青およびアルファの色構成要素に使用するレイヤー番号として1を指定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=2 FOR UPDATE; sdo_geor.setDefaultColorLayer(grobj, sdo_number_array(1,1,1,1)); UPDATE georaster_table SET georaster = grobj WHERE georid=2; COMMIT; END; /
7.125 SDO_GEOR.setDefaultGreen
形式
SDO_GEOR.setDefaultGreen( georaster IN OUT SDO_GEORASTER, defaultGreen IN NUMBER);
説明
GeoRasterオブジェクトを表示する際に、(RGB色空間の)緑の色構成要素に使用されるレイヤー番号を設定します。または、defaultGreen
パラメータにNULLが指定された場合、既存の値を削除します。
パラメータ
使用上の注意
デフォルトの赤、緑および青の値は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。これらの値はオプションで、マルチレイヤーまたはハイパースペクトルのGeoRasterオブジェクトを視覚化する場合にのみ使用されます。
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
緑色の構成要素のみで使用するレイヤー番号を設定または削除しようとした場合、またはdefaultGreen
が、GeoRasterオブジェクトの有効なレイヤー番号ではない場合は、例外が発生します。
例
次の例では、GEORASTER_TABLE表に含まれるGeoRasterオブジェクト(GEORASTER列)のデフォルトの赤、緑および青の色レイヤーを設定して、それらのGeoRasterオブジェクトを表示する際に赤、緑および青の色構成要素に使用されるレイヤー番号の配列を戻します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setDefaultRed(grobj, 5); sdo_geor.setDefaultGreen(grobj, 4); sdo_geor.setDefaultBlue(grobj, 3); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; / SELECT sdo_geor.getDefaultColorLayer(georaster) FROM georaster_table WHERE georid=4; SDO_GEOR.GETDEFAULTCOLORLAYER(GEORASTER) -------------------------------------------------------------------------------- SDO_NUMBER_ARRAY(5, 4, 3) 1 row selected.
7.126 SDO_GEOR.setDefaultPyramidLevel
形式
SDO_GEOR.setDefaultPyramidLevel( georaster IN OUT SDO_GEORASTER, defaultPyramidLevel IN NUMBER);
説明
GeoRasterオブジェクトを表示する際に、デフォルトのピラミッド・レベルに使用されるレイヤー番号を設定します。または、defaultPyramidLevel
パラメータにNULLが指定された場合、既存の値を削除します。
パラメータ
使用上の注意
ピラミッド・レベルは、必要な記憶域が小さくなる低解像度イメージ、または必要な記憶域が大きくなる高解像度イメージを表します。ピラミッドおよびピラミッド・レベルの詳細は、「ピラミッド」を参照してください。
デフォルトのピラミッド・レベルの指定は、オプション操作であり、生成されたピラミッドでGeoRasterオブジェクトを視覚化する場合にのみ使用します。
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
ピラミッドが他の任意の操作(SDO_GEOR.deletePyramidやSDO_GEOR.subsetなど)によってGeoRasterオブジェクトから削除されると、オブジェクトのデフォルトのピラミッド・レベルもメタデータから削除されます。
GeoRasterオブジェクトに生成されたピラミッドが存在しない場合、またはdefaultPyramidLevel
がGeoRasterオブジェクトの有効なピラミッド・レベル番号ではない場合、例外が発生します。
デフォルトのピラミッド・レベルは、SDO_GEOR.getDefaultPyramidLevelファンクションを使用して取得できます。
例
次の例では、ピラミッドを生成し、GEORASTER_TABLE表の指定したGeoRasterオブジェクト(GEORASTER列)にデフォルトのピラミッド・レベルを設定して、GeoRasterオブジェクトに設定したデフォルトのピラミッド・レベルを戻します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=6 FOR UPDATE; sdo_geor.generatePyramid(grobj, 'rLevel=5, resampling=NN'); sdo_geor.setDefaultPyramidLevel(grobj, 3); UPDATE georaster_table SET georaster = grobj WHERE georid=6; COMMIT; END; / SELECT georid, sdo_geor.getDefaultPyramidLevel(georaster) FROM georaster_table WHERE georid=6; GEORID PLEVEL -------------- ---------- 6 3
7.127 SDO_GEOR.setDefaultRed
形式
SDO_GEOR.setDefaultRed( georaster IN OUT SDO_GEORASTER, defaultRed IN NUMBER);
説明
GeoRasterオブジェクトを表示する際に、(RGB色空間の)赤の色構成要素に使用されるレイヤー番号を設定します。または、defaultRed
パラメータにNULLが指定された場合、既存の値を削除します。
パラメータ
使用上の注意
デフォルトの赤、緑および青の値は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。これらの値はオプションで、マルチレイヤーまたはハイパースペクトルのGeoRasterオブジェクトを視覚化する場合にのみ使用されます。
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
赤色の構成要素のみで使用するレイヤー番号を設定または削除しようとした場合、またはdefaultRed
が、GeoRasterオブジェクトの有効なレイヤー番号ではない場合は、例外が発生します。
例
次の例では、GEORASTER_TABLE表に含まれるGeoRasterオブジェクト(GEORASTER列)のデフォルトの赤、緑および青の色レイヤーを設定して、それらのGeoRasterオブジェクトを表示する際に赤、緑および青の色構成要素に使用されるレイヤー番号の配列を戻します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setDefaultRed(grobj, 5); sdo_geor.setDefaultGreen(grobj, 4); sdo_geor.setDefaultBlue(grobj, 3); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; / SELECT sdo_geor.getDefaultColorLayer(georaster) FROM georaster_table WHERE georid=4; SDO_GEOR.GETDEFAULTCOLORLAYER(GEORASTER) -------------------------------------------------------------------------------- SDO_NUMBER_ARRAY(5, 4, 3) 1 row selected.
7.128 SDO_GEOR.setEndDateTime
形式
SDO_GEOR.setEndDateTime( georaster IN OUT SDO_GEORASTER, endTime IN TIMESTAMP WITH TIME ZONE);
説明
GeoRasterオブジェクトのメタデータで、ラスター・データ収集の終了日時を設定します。または、endTime
パラメータにNULLが指定された場合、既存の値を削除します。
使用上の注意
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
GeoRasterオブジェクトのメタデータで、現行の終了日時(存在する場合)を確認するには、SDO_GEOR.getEndDateTimeファンクションを使用します。
endTime
が、GeoRasterオブジェクトのメタデータで指定された開始日時(SDO_GEOR.setBeginDateTimeプロシージャを参照)より前の日時に設定された場合、例外が発生します。
例
次の例では、GeoRasterオブジェクトのメタデータで、ラスター・データ収集の開始日時および終了日時を設定します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setBeginDateTime(grobj, timestamp '2002-11-15 15:00:00'); sdo_geor.setEndDateTime(grobj, timestamp '2002-11-15 15:00:10'); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; /
7.129 SDO_GEOR.setGCPGeorefMethod
形式
SDO_GEOR.setGCPGeorefMethod( inGeoraster IN OUT SDO_GEORASTER gcpGeorefMethod IN VARCHAR2);
説明
GeoRasterオブジェクトのGCPベースの地理参照ジオメトリ・モデル・タイプを設定します。
パラメータ
使用上の注意
GCPを使用した地理参照の詳細は、「地上基準点(GCP)地理参照モデル」を参照してください。
inGeoraster
にGCPベースの地理参照情報が含まれない場合、アクションは実行されませんが、それ以外の場合、既存のモデル・タイプが指定したgcpGeorefMethod
値に置き換えられます。
プロシージャでは、モデル・タイプ値が設定されるのみで、新しいソリューションは計算されません。新しく設定したモデル・タイプのソリューションを取得するには、SDO_GEOR.georeferenceファンクションを使用します。
例
次の例では、指定したGeoRasterオブジェクトのGCPベースの地理参照ジオメトリ・モデル・タイプを設定し、オブジェクトを更新します。
DECLARE gr1 sdo_georaster; BEGIN SELECT georaster INTO gr1 from georaster_table WHERE georid=10 FOR UPDATE; sdo_geor.setGCPGeorefMethod(gr1, 'DLT'); UPDATE georaster_table SET georaster=gr1 WHERE georid=10; COMMIT; END; /
7.130 SDO_GEOR.setGCPGeorefModel
形式
SDO_GEOR.setGCPGeorefModel( inGeoraster IN OUT SDO_GEORASTER gcpGeorefModel IN SDO_GEOR_GCPGEOREFTYPE);
説明
GeoRasterオブジェクトのGCPベースの地理参照モデル情報を設定します。
パラメータ
使用上の注意
GCPを使用した地理参照の詳細は、「地上基準点(GCP)地理参照モデル」を参照してください。
SDO_GEOR_GCPGEOREFTYPE型の詳細は、「SDO_GEOR_GCPGEOREFTYPEオブジェクト型」を参照してください。
このプロシージャは、GeoRaster SRSメタデータ構成要素にGCP情報を格納します。gcpGeorefModel
がNULLで、GeoRasterオブジェクトに地理参照モデルが含まれる場合、このモデル情報は削除されます。
所定のジオメトリ・モデルに対してgcpGeorefModel
に指定されたGCPが十分ではない場合、ファンクションは成功しますが、このGeoRasterオブジェクトを指定してSDO_GEOR.georeferenceをコールすると、例外が発生します。
例
次の例では、指定したGeoRasterオブジェクトのGCPベースの地理参照モデル情報を設定します。
DECLARE gr1 sdo_georaster; georefModel SDO_GEOR_GCPGEOREFTYPE; GCPs SDO_GEOR_GCP_COLLECTION; rms sdo_number_array; BEGIN SELECT georaster INTO gr1 from herman.georaster_table WHERE georid=10 FOR UPDATE; GCPs:=SDO_GEOR_GCP_COLLECTION( SDO_GEOR_GCP('21', '', 1, 2, sdo_number_array(25.625000, 73.875000), 2, sdo_number_array(237036.937500, 897987.187500), NULL, NULL), SDO_GEOR_GCP('22', '', 1, 2, sdo_number_array(100.625000, 459.125000), 2, sdo_number_array(237229.562500, 897949.687500), NULL, NULL), SDO_GEOR_GCP('23', '', 1, 2, sdo_number_array(362.375000, 77.875000), 2, sdo_number_array(237038.937500, 897818.812500), NULL, NULL), SDO_GEOR_GCP('24', '', 1, 2, sdo_number_array(478.875000, 402.125000), 2, sdo_number_array(237201.062500, 897760.562500), NULL, NULL), SDO_GEOR_GCP('25', '', 2, 2, sdo_number_array(167.470583, 64.030686), 2, sdo_number_array(237032.015343, 897916.264708), NULL, NULL), SDO_GEOR_GCP('26', '', 2, 2, sdo_number_array(101.456177, 257.915534), 2, sdo_number_array(237128.957767, 897949.271912), NULL, NULL) ); georefModel := SDO_GEOR_GCPGEOREFTYPE('Affine', GCPs.count, GCPs, rms); sdo_geor.setGCPGeorefModel(gr1, georefModel); UPDATE georaster_table SET georaster=gr1 WHERE georid=10; COMMIT; END; /
7.131 SDO_GEOR.setGrayScale
形式
SDO_GEOR.setGrayScale( georaster IN OUT SDO_GEORASTER, layerNumber IN NUMBER, grayScale IN SDO_GEOR_GRAYSCALE);
説明
GeoRasterオブジェクトのレイヤーのグレースケール・マッピングを設定します。または、grayScale
パラメータにNULLが指定された場合、既存の値を削除します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- layerNumber
-
グレースケール・マッピングを設定するレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。
- grayScale
-
SDO_GEOR_GRAYSCALE型のオブジェクトを指定します(「SDO_GEOR_GRAYSCALEオブジェクト型」を参照)。
使用上の注意
指定するSDO_GEOR_GRAYSCALEオブジェクトは、次の条件に該当する必要があります。
-
cellValue
値は、GeoRasterオブジェクトのcellDepth
値と一貫性があり、その値の範囲内にある。 -
gray
値が、0から255の整数である。 -
cellValue
配列に含まれるエントリが重複していない。 -
cellValue
配列のエントリが、昇順である。
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
GeoRasterオブジェクトのレイヤーのグレースケール・マッピングを戻すには、SDO_GEOR.getGrayScaleファンクションを使用します。
layerNumber
がNULLか、GeoRasterオブジェクトに対して無効である場合、いずれかのグレー値がNULLか、範囲外である場合、cellValue
配列に重複値が含まれている場合、いずれかのcellValue
値がNULL、範囲外または順序が適切でない場合は、例外が発生します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー3のグレースケール・マッピングを設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; gsobj sdo_geor_grayscale; BEGIN gsobj := sdo_geor_grayscale(sdo_number_array(1, 10, 20, 30, 255), sdo_number_array(0, 180, 210, 230, 250)); SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setGrayScale(grobj, 3, gsobj); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; /
7.132 SDO_GEOR.setGrayScaleTable
形式
SDO_GEOR.setGrayScaleTable( georaster IN OUT SDO_GEORASTER, layerNumber IN NUMBER, tableName IN VARCHAR2);
説明
GeoRasterオブジェクトのレイヤーのグレースケール・マッピング表を設定します。または、tableName
パラメータにNULLが指定された場合、既存の値を削除します。
注意:
このプロシージャは、グレースケール・マッピング表の名前をGeoRasterに登録します。ただし、今回のリリースのGeoRasterでは、グレースケール・マッピング表を使用した操作は実行されません。
パラメータ
使用上の注意
グレースケール表示の詳細は、「SDO_GEOR_GRAYSCALEオブジェクト型」を参照してください。
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
GeoRasterオブジェクトのレイヤーのグレースケール・マッピング表を戻すには、SDO_GEOR.getGrayScaleTableファンクションを使用します。
layerNumber
がNULLか、GeoRasterオブジェクトに対して無効な場合、またはtableName
が空の文字列(''
)の場合は例外が発生します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー3のグレースケール・マッピング表として、GST1
を設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setGrayScaleTable(grobj, 3, 'GST1'); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; /
7.133 SDO_GEOR.setHistogramTable
形式
SDO_GEOR.setHistogramTable( georaster IN OUT SDO_GEORASTER, layerNumber IN NUMBER tableName IN VARCHAR2);
説明
GeoRasterオブジェクトのレイヤーのヒストグラム表を設定します。
注意:
このプロシージャは、ヒストグラム表の名前をGeoRasterに登録します。ただし、今回のリリースのGeoRasterでは、ヒストグラム表を使用した操作は実行されません。
パラメータ
使用上の注意
このプロシージャは、ユーザー定義のヒストグラム表を指定します。このオブジェクト型およびヒストグラムの概要は、「SDO_GEOR_HISTOGRAMオブジェクト型」で説明しています。
レイヤーのヒストグラム表の名前を戻すには、SDO_GEOR.getHistogramTableファンクションを使用します。
次の1つ以上の条件に該当する場合、例外が発生します。
-
layerNumber
がNULLか、またはGeoRasterオブジェクトに対して無効である。 -
tableName
が空の文字列(''
)である。 -
指定されたレイヤーに関連付けられた統計データが設定されていない。
レイヤーに統計データを設定するには、SDO_GEOR.setStatisticsプロシージャをコールします。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー3のヒストグラム表として、HIST1
を設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setHistogramTable(grobj, 3, 'HIST1'); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; /
7.134 SDO_GEOR.setID
形式
SDO_GEOR.setID( georaster IN OUT SDO_GEORASTER, id IN VARCHAR2);
説明
GeoRasterオブジェクトに関連付けるユーザー定義の識別子を設定します。または、id
パラメータにNULLが指定された場合、既存の値を削除します。
使用上の注意
このプロシージャを使用すると、GeoRasterオブジェクトに一意の有効な英数字の識別子を割り当てることができるため、ユーザーおよびアプリケーションがオブジェクトを簡単に識別できます。
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
GeoRasterオブジェクトのユーザー定義の識別子の値を戻すには、SDO_GEOR.getIDファンクションを使用します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が2である行に含まれているGeoRasterオブジェクト(GEORASTER列)のユーザー定義の識別子の値として、newid
を設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=2 FOR UPDATE; sdo_geor.setID(grobj, 'newid'); UPDATE georaster_table SET georaster = grobj WHERE georid=2; COMMIT; END; /
7.135 SDO_GEOR.setLayerID
形式
SDO_GEOR.setLayerID( georaster IN OUT SDO_GEORASTER, layerNumber IN NUMBER, id IN VARCHAR2);
説明
GeoRasterオブジェクトのレイヤーに関連付けるユーザー定義の識別子を設定します。または、id
パラメータにNULLが指定された場合、既存の値を削除します。
パラメータ
使用上の注意
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
GeoRasterオブジェクトのレイヤーのユーザー定義の識別子の値を戻すには、SDO_GEOR.getLayerIDファンクションを使用します。
layerNumber
がNULLか、GeoRasterオブジェクトに対して無効な場合、またはid
はNULLであるが、対応するレイヤー情報が存在する場合は、例外が発生します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー2のユーザー定義の識別子の値として、TM_Band_2
を設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setLayerID(grobj, 2, 'TM_Band_2'); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; /
7.136 SDO_GEOR.setLayerOrdinate
形式
SDO_GEOR.setLayerOrdinate( georaster IN OUT SDO_GEORASTER, layerNumber IN NUMBER, ordinate IN NUMBER);
説明
GeoRasterオブジェクトの指定されたレイヤーにバンド座標値を設定します。または、ordinate
パラメータにNULLが指定された場合、既存の値を削除します。
パラメータ
使用上の注意
レイヤーのバンド座標は、レイヤー(layerNumber
パラメータ値)が関連付けられている物理バンドを指します。今回のリリースでは、関連付けは、レイヤー1がバンド0、レイヤー2がバンド1のように指定する必要があります(「バンド、レイヤーおよびメタデータ」の図1-5を参照)。
オブジェクト・レイヤーのバンド座標は、GeoRasterでは無視されます。
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
レイヤーのバンド座標の値を戻すには、SDO_GEOR.getLayerOrdinateファンクションを使用します。
layerNumber
がNULLか、GeoRasterオブジェクトに対して無効な場合、ordinate
がNULLの場合、またはlayerNumber
がオブジェクト・レイヤーを指定していないときに座標がlayerNumber
-1と等しくない場合は、例外が発生します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー1のバンド座標値を0(ゼロ)に設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setLayerOrdinate(grobj, 1, 0); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; /
7.137 SDO_GEOR.setModelCoordLocation
形式
SDO_GEOR.setModelCoordLocation( georaster IN OUT SDO_GEORASTER modelCoordLoc IN VARCHAR2);
説明
GeoRasterオブジェクトのモデル座標の位置を示す値を設定するか、modelCoordLoc
パラメータにNULLが指定されている場合、現在のモデル座標の位置を示す値(存在する場合)を削除します。
パラメータ
使用上の注意
このプロシージャでは、CENTERからUPPERLEFTへ、またはUPPERLEFTからCENTERへセル座標系を変更できます。
このプロシージャは、地理参照されているGeoRasterオブジェクトのみに適用され、変更が適宜反映されるように(セル座標とモデル座標間の関係が変わらないようにするために)、GeoRaster SRSの関数フィッティング係数を自動的に調整します。
GeoRasterオブジェクトのモデル座標の位置を示す値を取得するには、SDO_GEOR.getModelCoordLocationファンクションを使用します。
GCPを使用した地理参照の詳細は、「地上基準点(GCP)地理参照モデル」を参照してください。
例
次の例では、GeoRasterオブジェクトのセル座標系をCENTERに変更します。
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setModelCoordLocation(grobj, 'CENTER'); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; /
7.138 SDO_GEOR.setModelSRID
形式
SDO_GEOR.setModelSRID( georaster IN OUT SDO_GEORASTER, srid IN NUMBER);
説明
GeoRasterオブジェクトのモデル(地上)空間に座標系(SDO_SRID値)を設定します。または、srid
パラメータにNULLが指定され、GeoRasterメタデータに空間参照情報が含まれていない場合は、既存の値を削除します。
パラメータ
使用上の注意
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
元のGeoRasterオブジェクトに異なるモデル空間SRID値が含まれる場合、このプロシージャはラスター・データ自体を変更せず、それに応じて地理参照の係数を調整しません。そのため、このプロシージャを使用しても、GeoRasterオブジェクトのセル・データの再投影またはリサンプリングは行われません。正しいSRIDを指定する必要があります。
GeoRasterオブジェクトのモデル空間に関連付けられた座標系(SDO_SRID値)を戻すには、SDO_GEOR.getModelSRIDファンクションを使用します。
例
次の例では、GeoRasterオブジェクトの座標系をLongitude / Latitude (WGS 66)に変更します。これは、MDSYS.CS_SRSシステム表のSRID値82394に関連付けられた座標系です。(この例は、GEORASTER_TABLEという名前の表を参照します。この表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setModelSRID(grobj, 82394); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; /
7.139 SDO_GEOR.setNODATAMask
形式
SDO_GEOR.setNODATAMask( georaster IN OUT SDO_GEORASTER, layerNumber IN NUMBER, isNODATAMask IN VARCHAR2);
説明
指定したGeoRasterレイヤーのビットマップ・マスクがNODATAマスクであるかどうかを指定し、それに従ってGeoRasterメタデータを更新します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- layerNumber
-
関連するビットマップ・マスクがあるレイヤーを指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。
- mask
-
GeoRasterオブジェクトにアタッチするビットマップ・マスクを指定します。このパラメータがNULLの場合は、指定したGeoRasterオブジェクト・レイヤーに関連付けられた既存のビットマップ・マスクがすべて削除されます。
- isNODATAMask
-
layerNumber
レイヤーのビットマップ・マスクをNODATAマスクとして解釈するかどうかを指定します。文字列TRUE
では、ビットマップ・マスクはNODATAマスクとして解釈されますが、文字列FALSE
では、ビットマップ・マスクはNODATAマスクとして解釈されません。
使用上の注意
特別なタイプのNODATAとして処理されるビットマップ・マスク(1つ以上の不規則な領域をNODATA領域として指定するNODATAマスク)の詳細は、「NODATA値および値の範囲」を参照してください。
例
次の例では、サブレイヤー1のビットマップ・マスクをNODATAマスクに設定します。
declare gr sdo_georaster; begin select georaster into gr from georaster_table where georid=1 for update; sdo_geor.setNODATAMask(gr, 1, 'true'); update georaster_table set georster=gr where georid=1; commit; end;
7.140 SDO_GEOR.setOrthoRectified
形式
SDO_GEOR.setOrthoRectified( georaster IN OUT SDO_GEORASTER, isOrthoRectified IN VARCHAR2);
説明
GeoRasterオブジェクトがオルソ補正されているかどうかを指定します。または、isOrthoRectified
パラメータにNULLが指定された場合、既存の値を削除します。
パラメータ
使用上の注意
このプロシージャは、オブジェクトのGeoRasterメタデータを変更します。オブジェクトを実際にオルソ補正するわけではありません。また、オルソ補正の実行の確認は、ユーザーが行います。
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
GeoRasterオブジェクトをオルソ補正済として設定するには、オブジェクトが空間参照および幾何補正されている必要があります。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)を、オルソ補正済であると設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setOrthoRectified(grobj, 'TRUE'); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; /
7.141 SDO_GEOR.setRasterType
形式
SDO_GEOR.setRasterType( georaster IN OUT SDO_GEORASTER, rasterType IN NUMBER);
説明
GeoRasterオブジェクトのラスター型を設定します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- rasterType
-
GeoRasterオブジェクトのrasterType属性として設定する数値を指定します。「rasterType属性」に示されている書式の5桁の有効な数値を指定する必要があります。
使用上の注意
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
rasterType
がNULLの場合、または既存のrasterType
値の最初の3桁が変更されている場合は、例外が発生します。
例
次の例では、GeoRasterオブジェクトのrasterType
属性値を20001
に設定します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=2 FOR UPDATE; sdo_geor.setRasterType(grobj, 20001); UPDATE georaster_table SET georaster = grobj WHERE georid=2; COMMIT; END; /
7.142 SDO_GEOR.setRectified
形式
SDO_GEOR.setRectified( georaster IN OUT SDO_GEORASTER, isRectified IN VARCHAR2);
説明
GeoRasterオブジェクトが幾何補正されているかどうかを指定します。または、isRectified
パラメータにNULLが指定された場合、既存の値を削除します。
パラメータ
使用上の注意
このプロシージャは、オブジェクトのGeoRasterメタデータを変更します。オブジェクトを実際に幾何補正するわけではありません。また、幾何補正の実行の確認は、ユーザーが行います。(GeoRasterオブジェクトを幾何補正またはオルソ補正するには、SDO_GEOR.rectifyプロシージャを使用できます。)
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
isRectified
をTRUE
に設定する場合は、GeoRasterオブジェクトが空間参照されている必要があります(SDO_GEOR.setSpatialReferencedプロシージャを参照)。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)を、幾何補正されていないと設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setRectified(grobj, 'false'); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; /
7.143 SDO_GEOR.setScaling
形式
SDO_GEOR.setScaling( georaster IN OUT SDO_GEORASTER, layerNumber IN NUMBER, scalingFunc IN SDO_NUMBER_ARRAY);
説明
レイヤーに関連付けられたスケール変更ファンクションを設定します。または、scalingFunc
パラメータにNULLが指定された場合、既存の値を削除します。
注意:
今回のリリースのGeoRasterでは、スケール変更ファンクションを使用した操作は実行されません。
パラメータ
使用上の注意
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
layerNumber
がNULLか、GeoRasterオブジェクトに対して無効である場合、scalingFunc
が不適切な配列サイズである場合、a0、a1、b0および1のいずれかがNULLの場合、またはb0と1の両方が0 (ゼロ)の場合は、例外が発生します。
例
次の例では、GeoRasterオブジェクトのレイヤー2に、スケール変更ファンクションの係数を設定します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setScaling(grobj, 2, sdo_number_array(1, 0.5, 1, 0)); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; /
7.144 SDO_GEOR.setSourceInfo
形式
SDO_GEOR.setSourceInfo( georaster IN OUT SDO_GEORASTER, sourceInfo IN VARCHAR2);
説明
GeoRasterオブジェクトのソース情報を設定します。または、sourceInfo
パラメータにNULLが指定された場合は、既存の値を削除します。
使用上の注意
指定したsourceInfo
文字列は、GeoRasterオブジェクトのメタデータの<sourceInfo>
要素に格納されます(「GeoRasterメタデータのXMLスキーマ」を参照)。
このプロシージャは、既存のソース情報の値をすべて置き換えます。既存の値を保持したまま1つ以上の値を追加する場合は、SDO_GEOR.addSourceInfoプロシージャを使用します。
例
次の例では、指定したGeoRasterオブジェクトに複数のソース情報を設定および追加し、その後でソース情報を取得します。
declare gr sdo_georaster; begin select georaster into gr from georaster_table where georid=1 for update; sdo_geor.setSourceInfo(gr, 'Copyright (c) 2002, 2007, Oracle Corporation.'); sdo_geor.addSourceInfo(gr, 'All rights reserved.'); update georaster_table set georaster=gr where georid=1; end; / select * from table(select sdo_geor.getSourceInfo(georaster) from georaster_table where id=1); COLUMN_VALUE -------------------------------------------------------------------------------- Copyright (c) 2002, 2007, Oracle Corporation. All rights reserved.
7.145 SDO_GEOR.setSpatialReferenced
形式
SDO_GEOR.setSpatialReferenced( georaster IN OUT SDO_GEORASTER, isReferenced IN VARCHAR2);
説明
GeoRasterオブジェクトが空間参照されているかどうかを指定します。または、isReferenced
パラメータにNULLが指定された場合、既存の値を削除します。
パラメータ
使用上の注意
このプロシージャは、GeoRasterオブジェクトが空間参照されているかどうかを設定します。
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)を、空間参照されていないと設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setSpatialReferenced(grobj, 'FALSE'); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; /
7.146 SDO_GEOR.setSpatialResolutions
形式
SDO_GEOR.setSpatialResolutions( georaster IN OUT SDO_GEORASTER, resolutions IN SDO_NUMBER_ARRAY);
説明
GeoRasterオブジェクトの各空間次元の空間解像度の値を設定します。または、resolutions
パラメータにNULLが指定された場合、既存の値を削除します。
パラメータ
使用上の注意
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
解像度がNULLではなく、GeoRasterメタデータに空間参照情報が含まれていない場合は、このプロシージャによって、最小のデフォルト値を持つ空間参照情報が追加されます。
SDO_GEOR.getSpatialResolutionsファンクションの「使用上の注意」も参照してください。
例
次の例では、GeoRasterオブジェクトの列次元および行次元(X次元およびY次元)の空間解像度の値を設定します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setSpatialResolutions(grobj, sdo_number_array(28.5,28.5)); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; /
7.147 SDO_GEOR.setSpectralResolution
形式
SDO_GEOR.setSpectralResolution( georaster IN OUT SDO_GEORASTER, resolution IN NUMBER);
説明
GeoRasterオブジェクトがハイパースペクトルまたはマルチバンド・イメージである場合、そのスペクトル解像度を設定します。または、resolution
パラメータにNULLが指定された場合、既存の値を削除します。
パラメータ
使用上の注意
バンドの波長幅は、スペクトル単位とスペクトル解像度を組み合せて示します。たとえば、スペクトル解像度の値が2で、スペクトル単位の値がMILLIMETER
である場合、バンドの波長幅は2mmです。
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
GeoRasterオブジェクトのスペクトル解像度を戻すには、SDO_GEOR.getSpectralResolutionファンクションを使用します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のスペクトル解像度の値を、0.5に設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setSpectralResolution(grobj, 0.5); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; /
7.148 SDO_GEOR.setSpectralUnit
形式
SDO_GEOR.setSpectralUnit( georaster IN OUT SDO_GEORASTER, unit IN VARCHAR2);
説明
バンドの波長幅を示す測定単位を設定します。または、unit
パラメータにNULLが指定された場合、既存の値を削除します。
パラメータ
使用上の注意
バンドの波長幅は、スペクトル単位とスペクトル解像度を組み合せて示します。たとえば、スペクトル解像度の値が2で、スペクトル単位の値がMILLIMETER
である場合、バンドの波長幅は2mmです。
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
GeoRasterオブジェクトのスペクトル単位を戻すには、SDO_GEOR.getSpectralUnitファンクションを使用します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のスペクトル単位を、MICROMETER
に設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setSpectralUnit(grobj, 'micrometer'); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; /
7.149 SDO_GEOR.setSRS
形式
SDO_GEOR.setSRS( georaster IN OUT SDO_GEORASTER, srs IN SDO_GEOR_SRS);
説明
GeoRasterオブジェクトの空間参照情報を設定します。または、srs
パラメータにNULLが指定された場合、既存の値を削除します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- srs
-
SDO_GEOR_SRS型のオブジェクトを指定します。SDO_GEOR_SRSオブジェクト型およびこのオブジェクト型のコンストラクタについては、「SDO_GEOR_SRSオブジェクト型」を参照してください。
このオブジェクトでは、
isReferenced
、isRectified
およびisOrthoRectified
は、TRUE
またはFALSE
に設定し(大文字/小文字は区別されません)、spatialResolution
は適切なサイズの配列にする必要があります。空間の許容差は負の値にはできません。CoordLocation
は0または1に設定する必要があります。多項式パラメータはNULLにはできません。
使用上の注意
このプロシージャを使用して、アフィン変換、DLT、RPCモデルなどの関数フィッティング地理参照モデルにGeoRaster SRSを設定できます。
ストアド・ファンクション(GCP)・モデルの場合のみ、このプロシージャを使用せず、かわりにSDO_GEOR.setGCPGeorefModelプロシージャを使用してストアド・ファンクション(GCP)・モデルを設定した方が有益である可能性があります。
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
GeoRasterオブジェクトのSDO_GEOR_SRS情報を戻すには、SDO_GEOR.getSRSファンクションを使用します。
例
次の例では、GeoRasterオブジェクトの空間参照属性を指定し、GeoRasterオブジェクトを更新します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)例の中で、詳しい処理内容を説明します。
最初の例は、GeoRasterオブジェクトにアフィン変換モデルを設定する方法を示しています。
DECLARE grobj sdo_georaster; srs sdo_geor_srs; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4; srs := sdo_geor_srs('TRUE', 'TRUE', null, 82262, sdo_number_array(28.5, 28.5),0.5,0, 0,0,0,0,0,1,1,1,1,1,0,0,0, SDO_NUMBER_ARRAY(1, 2, 1, 3, 32631.5614, 0, -.03508772), SDO_NUMBER_ARRAY(1, 0, 0, 1, 1), SDO_NUMBER_ARRAY(1, 2, 1, 3, -7894.7544, .03508772, 0), SDO_NUMBER_ARRAY(1, 0, 0, 1, 1)); sdo_geor.setSRS(grobj, srs); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; /
前述の例では、GeoRasterオブジェクトに次のアフィン変換が設定されています。
row = 32631.5614 + 0 * x + (-0.03508772) * y col = -7894.7544 + 0.03508772 * x + 0 * y
汎用関数フィッティング地理参照モデル(「関数フィッティング地理参照モデル」を参照)を使用する場合は、SRS属性の値は次のようになります。
xOff=yOff=zOff=0 rowOff=columnOff=0 xScale=yScale=zScale=1 rowScale=columnScale=1 polynomial p : pType=1, nVars=2, order=1, nCoefficients= 3 polynomial q : pType=1, nVars=0, order=0, nCoefficients= 1 polynomial r : pType=1, nVars=2, order=1, nCoefficients= 3 polynomial s : pType=1, nVars=0, order=0, nCoefficients= 1 rowNumerator = 32631.5614, 0, -0.03508772 rowDenominator = 1 columnNumerator = -7894.7544, 0.03508772, 0 columnDenominator = 1
SRS構造では、rowNumerator
、rowDenominator
、columnNumerator
およびcolumnDenominator
要素を使用してpType
、nVars
、order
およびnCoefficients
を指定し、残りの要素を使用して各多項式の係数を指定します。
2つ目の例は、GeoRasterオブジェクトにDLTモデルを設定する方法を示しています。一般的な写真測量アプリケーションでは、標定情報付きデジタル航空写真の内部標定パラメータおよび外部標定パラメータを使用して、DLTモデル(精密なモデルの簡略化および近似値化に広く使用されるモデル)を導出できます。次の例は、標準のフレーム・カメラ・モデルから導出されたDLTモデルの例です。
row = (-46507111.2127784 + 65.81484127*X + 13.13186856*Y - 49.62133265*Z) / (-41.47013322 + 0.00004128*X + 0.00009740*Y - 0.00655704*Z) col = (-5259855.00453679 - 12.07452653*X + 66.23319061*Y - 49.45792766*Z) / (-41.47013322 + 0.00004128*X + 0.00009740*Y - 0.00655704*Z)
この例の場合、対応するGeoRasterのSRSパラメータおよび係数は、次のとおりです。
rowOff=0, colOff=0; rowScale = colScale = 1; xOff = 0, yOff = 0, zOff = 0; xScale = yScale = zScale =1; polynomial p : pType=1, nVars=3, order=1, nCoefficients= 4 polynomial q : pType=1, nVars=3, order=1, nCoefficients= 4 polynomial r : pType=1, nVars=3, order=1, nCoefficients= 4 polynomial s : pType=1, nVars=3, order=1, nCoefficients= 4 rowNumerator = -5259855.00453679, -12.07452653, 66.23319061, -49.45792766 rowDenominator = -41.47013322, 0.00004128, 0.00009740, -0.00655704 columnNumerator = -46507111.2127784, 65.81484127, 13.13186856, -49.62133265 columnDenominator = -41.47013322, 0.00004128, 0.00009740, -0.00655704
次の例では、GeoRasterオブジェクトのDLTモデルを設定します。ここではSDO_GEOR_SRSコンストラクタを使用してSDO_GEOR_SRS型のインスタンスを作成し、適切な属性を設定します。
DECLARE grobj sdo_georaster; srs sdo_geor_srs; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid = 101; -- Initiate the SRS object. srs:=sdo_geor_srs(); -- Fill the parameters of the SRS object. srs.isReferenced := 'TRUE'; srs.isRectified := 'FALSE'; srs.isOrthoRectified := 'FALSE'; srs.srid := 7406; srs.spatialResolution := sdo_number_array(0.07, 0.07); srs.coordLocation := 1; srs.rowOff := 0; srs.columnOff := 0; srs.xOff := 0; srs.yOff := 0; srs.zOff := 0; srs.rowScale := 1; srs.columnScale := 1; srs.xScale := 1; srs.yScale := 1; srs.zScale := 1; srs.rowNumerator := SDO_NUMBER_ARRAY(1, 3, 1, 4, -5259855.00453679, -12.07452653,66.23319061,-49.45792766); srs.rowDenominator := SDO_NUMBER_ARRAY(1, 3, 1, 4, -41.4701332195, 0.0000412763, 0.0000974018, -0.0065570398); srs.columnNumerator := SDO_NUMBER_ARRAY(1, 3, 1, 4, -46507111.2127784, 65.81484127, 13.13186856, -49.62133265); srs.columnDenominator := SDO_NUMBER_ARRAY(1, 3, 1, 4, -41.4701332195, 0.0000412763, 0.0000974018, -0.0065570398); -- Set the SRS metadata to the GeoRaster object. sdo_geor.setSRS(grobj,srs); UPDATE georaster_table SET georaster = grobj WHERE georid= 101; COMMIT; END; /
7.150 SDO_GEOR.setStatistics
形式
SDO_GEOR.setStatistics( georaster IN OUT SDO_GEORASTER, layerNumber IN NUMBER, statistics IN SDO_NUMBER_ARRAY);
または
SDO_GEOR.setStatistics( georaster IN OUT SDO_GEORASTER, layerNumber IN NUMBER, statistics IN SDO_NUMBER_ARRAY, histogram IN SDO_GEOR_HISTOGRAM, samplingFactor IN NUMBER DEFAULT 1, samplingWindow IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR.setStatistics( georaster IN OUT SDO_GEORASTER, layerNumber IN NUMBER, statistics IN SDO_NUMBER_ARRAY, histogram IN SDO_GEOR_HISTOGRAM, samplingFactor IN NUMBER DEFAULT 1, samplingWindow IN SDO_GEOMETRY DEFAULT NULL);
説明
レイヤーに関連付けられた統計データを設定します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- layerNumber
-
統計を設定するレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。
- statistics
-
MIN
、MAX
、MEAN
、MEDIAN
、MODEVALUE
およびSTD
の数値の配列を指定します。配列のすべての値に、NULL以外の値を指定する必要があります。SDO_NUMBER_ARRAY型はVARRAY(1048576) OF NUMBER
として定義されます。このパラメータがNULLの場合、レイヤーに関連付けられたすべての統計情報は削除されます。
- histogram
-
SDO_GEOR_HISTOGRAM型のヒストグラムを指定します。このオブジェクト型およびヒストグラムの概要は、「SDO_GEOR_HISTOGRAMオブジェクト型」で説明しています。
- samplingFactor
-
サンプリング係数を指定します。1/nの分母nのことで、統計の算出時に使用するセルの数を表します。たとえば、
samplingFactor
が4の場合は、セルの4分の1が統計の算出に使用されます。デフォルトは1です。この場合、すべてのセルが使用されます。この数値が大きくなるほど統計の精度は下がる可能性がありますが、統計算出の速度は速くなります。 - samplingWindow
-
サンプリング・ウィンドウ: 統計を設定する矩形ウィンドウを指定します。左下と右上の座標を含む数値配列か、SDO_GEOMETRYオブジェクトとして指定します。SDO_NUMBER_ARRAY型は、
VARRAY(1048576) OF NUMBER
として定義されます。ウィンドウは、セル空間のエクステント内に収まっている必要があります。このパラメータのデフォルトはイメージ全体です。
使用上の注意
このプロシージャは、GeoRasterメタデータのXMLスキーマ(「GeoRasterメタデータのXMLスキーマ」
を参照)の<statisticDatasetType>要素によって記述された統計データを設定します。
histogram
をNULLに指定した場合、および既存のヒストグラムがあり、異なるサンプリング係数またはサンプリング・ウィンドウを使用した統計が設定されている場合、既存のヒストグラムは削除されます。
このプロシージャは、設定する統計を指定する場合に使用しますが、GeoRasterで統計の算出および設定を行う場合はSDO_GEOR.generateStatisticsファンクションを使用します。
レイヤーに関連付けられた統計データを取得するには、SDO_GEOR.getStatisticsファンクションを使用します。
layerNumber
がNULLか、GeoRasterオブジェクトに対して無効な場合、またはstatistics
が不適正な配列サイズであるか、NULLの配列要素を含んでいる場合は、例外が発生します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー0の統計データを設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setStatistics(grobj, 0, SDO_NUMBER_ARRAY(0, 255, 100, 127, 95, 25)); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; /
7.151 SDO_GEOR.setULTCoordinate
形式
SDO_GEOR.setULTCoordinate( georaster IN OUT SDO_GEORASTER, ultCoord IN SDO_NUMBER_ARRAY);
説明
GeoRasterオブジェクトの左上角のセル座標値を設定または調整します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- ultCoord
-
rasterType値が20001の場合は2つの数値の配列(行および列の座標)を、rasterType値が21001の場合は3つの数値の配列(行、列およびバンドの座標)を指定します。3つの数値を指定する場合、3つ目の数値(バンド番号)は0である必要があります。ULTCoordinateの詳細は、「GeoRasterデータ・モデル」を参照してください。
使用上の注意
メタデータに空間参照情報が含まれ、GeoRasterオブジェクトが地理参照されている場合、空間参照情報が有効かどうかが確認されます。有効な場合は、地理参照情報を含む空間参照情報は更新され、新しいULT座標に従って調整されますが、有効でない場合は、例外が発生します。
GeoRasterオブジェクトの左上の座標値を戻すには、SDO_GEOR.getULTCoordinateファンクションを使用します。
ultCoord
がNULLか、不適切な配列サイズある場合、またはNULLの配列要素を含んでいる場合は、例外が発生します。
例
次の例では、rasterType値が20001または21001のどちらであるかを処理するロジックによって、GeoRasterオブジェクトの左上角の行および列の座標を設定します。(この例は、GEORASTER_TABLEという名前の表を参照します。この表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=1 FOR UPDATE; if grobj.rasterType = 20001 then sdo_geor.setULTCoordinate(grobj, sdo_number_array(0, 0)); elsif grobj.rasterType = 21001 then sdo_geor.setULTCoordinate(grobj, sdo_number_array(0, 0, 0)); end if; UPDATE georaster_table SET georaster = grobj WHERE georid=1; COMMIT; END; /
7.152 SDO_GEOR.setVAT
形式
SDO_GEOR.setVAT( georaster IN OUT SDO_GEORASTER, layerNumber IN NUMBER, vatName IN VARCHAR2);
説明
GeoRasterオブジェクトのレイヤーに関連付けられた値属性表(VAT)の名前を設定します。または、vatName
パラメータにNULLが指定された場合、既存の値を削除します。
使用上の注意
処理の完了後、GeoRasterオブジェクトは自動的に検証されます。
値属性表の詳細は、「地理情報システム」を参照してください。
GeoRasterオブジェクトのレイヤーに関連付けられた値属性表の名前を戻すには、SDO_GEOR.getVATファンクションを使用します。
layerNumber
がNULLか、GeoRasterオブジェクトに対して無効な場合、またはvatName
が空の文字列(''
)の場合は、例外が発生します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー3に関連付ける値属性表として、VATT1
を指定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setVAT(grobj, 3, 'VATT1'); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; /
7.153 SDO_GEOR.setVersion
形式
SDO_GEOR.setVersion( georaster IN OUT SDO_GEORASTER, majorVersion IN VARCHAR2, minorVersion IN VARCHAR2);
説明
GeoRasterオブジェクトのユーザー指定のバージョンを設定します。
パラメータ
使用上の注意
メジャー・バージョン番号とマイナー・バージョン番号を示す文字列には、任意の方法で指定したバージョンを反映できます。majorVersion
値およびminorVersion
値には、任意の文字列を指定できますが、いずれの値にも空の文字列(''
)を指定することはできません。
GeoRasterオブジェクトのバージョンを示す文字列を取得するには、SDO_GEOR.getVersionファンクションを使用します。このファンクションは、「メジャー・バージョン番号.マイナー・バージョン番号」という書式でバージョンを戻します。
例
次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のバージョンを、15a.beta1
に設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE grobj sdo_georaster; BEGIN SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE; sdo_geor.setVersion(grobj, '15a', 'beta1'); UPDATE georaster_table SET georaster = grobj WHERE georid=4; COMMIT; END; /
7.154 SDO_GEOR.subset
形式
SDO_GEOR.subset( inGeoRaster IN SDO_GEORASTER, cropArea IN SDO_GEOMETRY, layerNumbers IN VARCHAR2, storageParam IN VARCHAR2, outGeoRaster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, polygonClip IN VARCHAR2 DEFAULT NULL);
または
SDO_GEOR.subset( inGeoRaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, cropArea IN SDO_GEOMETRY, layerNumbers IN VARCHAR2, storageParam IN VARCHAR2, outGeoRaster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, polygonClip IN VARCHAR2 DEFAULT NULL);
または
SDO_GEOR.subset( inGeoRaster IN SDO_GEORASTER, cropArea IN SDO_NUMBER_ARRAY, bandNumbers IN VARCHAR2, storageParam IN VARCHAR2, outGeoRaster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR.subset( inGeoRaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, cropArea IN SDO_NUMBER_ARRAY, bandNumbers IN VARCHAR2, storageParam IN VARCHAR2, outGeoRaster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
説明
(1)空間のクロッピング、切取りまたはクリップ、(2)レイヤーまたはバンドのサブセット化または複製のうち、いずれか(あるいは両方)の処理を実行します。
パラメータ
- inGeoRaster
-
処理を実行するSDO_GEORASTERオブジェクトを指定します。
- pyramidLevel
-
ソースGeoRasterオブジェクトのピラミッド・レベルを示す番号を指定します。
- cropArea
-
クロッピング領域を定義します。データ型がSDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合、ジオメトリ・オブジェクトの最小境界矩形(MBR)がクロッピング領域として使用されます(SDO_SRID要件の「使用上の注意」も参照してください)。
cropArea
がSDO_GEOMETRY型の場合は、layerNumbers
パラメータを使用して1つ以上のレイヤー番号を指定します。cropArea
がSDO_NUMBER_ARRAY型の場合は、bandNumbers
パラメータを使用して、1つ以上のバンド番号を指定します。 - layerNumbers
-
処理を実行する論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、
2-4
はレイヤー2、3および4を示します)。 - bandNumbers
-
処理を実行する物理バンド番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、
1-3
はバンド1、2および3を示します)。 - storageParam
-
記憶域パラメータを示す文字列を指定します(「記憶域パラメータ」を参照)。
- outGeoRaster
-
新しいSDO_GEORASTERオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、「空白のGeoRasterオブジェクトと空のGeoRasterオブジェクト」を参照してください)。
inGeoRaster
と同じGeoRasterオブジェクトは指定できません。 - bgValues
-
部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(「空のラスター・ブロック」を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、
SDO_NUMBER_ARRAY(1,5,10)
では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValues
は0 (ゼロ)です。入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。
- polygonClip
-
文字列
TRUE
では、サブセット操作にクリップ・ウィンドウ(cropArea
ジオメトリ・オブジェクト)が使用され、文字列FALSE
またはNULL値では、サブセット操作にクリップ・ウィンドウのMBR (最小境界矩形)が使用されます。
使用上の注意
このプロシージャには、様々な用途があります。たとえば、このプロシージャをコールしてGeoRasterオブジェクトの一部の領域をクロッピングしたり、いくつかのレイヤーのサブセットを取得すること、レイヤーを複製すること、および結果のオブジェクトの記憶域パラメータ(ブロック、インターリーブなど)を指定することもできます。
pyramidLevel
パラメータを含む構文を使用して0 (ゼロ)より大きい値を指定した場合、ソースGeoRasterオブジェクトの指定したピラミッド・レベルに基づいてクロッピングが行われます。それ以外の場合は、元のソースGeoRasterオブジェクト(pyramidLevel
= 0)に基づいてクロッピングが行われます。
ソースGeoRasterオブジェクトが地理参照されており、pyramidLevel
パラメータ値が0 (ゼロ)より大きい場合、変換後のGeoRasterオブジェクトに地理参照情報が生成されるのは、有効な多項式変換で地理参照されている場合のみです。
この処理では、入力されるGeoRasterオブジェクトの上位レベルのピラミッド・データは考慮されず、出力されるGeoRasterオブジェクトにはピラミッド・データは含まれません。
cropArea
パラメータのデータ型がSDO_GEOMETRYの場合、SDO_SRID値は次のいずれかの値である必要があります。
-
NULL(ラスター空間を指定)
-
MDSYS.CS_SRS表のSRID列の値
cropArea
パラメータ・ジオメトリとモデル空間のSDO_SRID値が異なる場合は、処理が実行される前に、window
パラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、「GeoRasterデータ・モデル」を参照してください。)
cropArea
パラメータで測地MBRを指定する場合、日付変更線をまたぐMBRは指定できません。測地MBRについては、『Oracle Spatial and Graph開発者ガイド』を参照してください。
クリップ・ウィンドウ・ジオメトリ・オブジェクト自体を使用してGeoRasterオブジェクトをサブセット化するには、ジオメトリ・オブジェクトが2nn3または2nn7という形式のSDO_GTYPE値を持つ有効な2次元ポリゴン・ジオメトリ(単純または複数のポリゴン)である必要があります。他のSDO_GTYPE値には、polygonClip
パラメータの値にかかわらず、ジオメトリ・オブジェクトのMBRが使用されます。(SDO_GTYPE値の詳細は、『Oracle Spatial and Graph開発者ガイド』を参照してください。)
クリップ・ウィンドウ・ジオメトリ・オブジェクト自体がサブセット・プロセスに適用される場合、ポリゴン内またはポリゴンのエッジに接しているすべてのセルが戻されますが、ジオメトリ・オブジェクトのMBR内の他のセルはクリップされます(指定した、またはデフォルトのbgValues
パラメータ値が入力されます)。
polygonClip
がTRUE
で、このプロシージャによって矩形イメージのサブセットが作成されるが、ジオメトリは矩形ではない場合、SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXTファンクションでinWindow
ジオメトリ・オブジェクトの妥当性を確認してください。無効なジオメトリに対しては、このプロシージャは、polygonClip
値がFALSE
またはNULL値の場合のように動作します。
inGeoRaster
とoutGeoRaster
には異なるGeoRasterオブジェクトを指定する必要があります。
処理対象として指定したウィンドウとソースGeoRasterオブジェクトの空間エクステントが重複する部分のみがコピーされます。
出力GeoRasterオブジェクトを異なる座標系に再投影する場合、SDO_GEOR.reprojectプロシージャを使用します。
次の1つ以上の条件に該当する場合、例外が発生します。
-
inGeoRaster
が無効である。 -
outGeoRaster
が初期化されていない。 -
outGeoRaster
に対するラスター・データ表が存在せず、outGeoRaster
が空白のGeoRasterオブジェクトではない。 -
処理対象として指定したウィンドウが、GeoRasterオブジェクトの空間エクステントの外にある。
例
次の例では、元のGeoRasterオブジェクトの指定したウィンドウの特定のバンドのみが含まれるGeoRasterオブジェクトを作成します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE gr1 sdo_georaster; gr2 sdo_georaster; BEGIN INSERT INTO georaster_table (georid, georaster) VALUES (41, sdo_geor.init('RDT_1')) RETURNING georaster INTO gr2; SELECT georaster INTO gr1 FROM georaster_table WHERE georid=4; sdo_geor.subset(gr1, sdo_geometry(2003, NULL, NULL, sdo_elem_info_array(1, 1003, 3), sdo_ordinate_array(0,256,255,511)), '3,1-2', null, gr2); UPDATE georaster_table SET georaster=gr2 WHERE georid=41; COMMIT; END; /
次の例は、ポリゴンを使用してGeoRasterオブジェクトをサブセット化する際にクリップを実行する方法を示しています。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE
gr sdo_georaster;
grsub sdo_georaster;
win1 sdo_geometry;
BEGIN
Delete from georaster_table where georid = 111;
INSERT INTO georaster_table VALUES (111, 'ClippedImage',
sdo_geor.init('georaster_RDT', 111))
RETURNING georaster INTO grsub;
SELECT georaster INTO gr FROM georaster_table WHERE georid=1;
win1 := sdo_geometry(2003, 26986, null, sdo_elem_info_array(1,1003,1),
sdo_ordinate_array(237040, 897924,
237013.3, 897831.6,
237129, 897840,
237182.5, 897785.5,
237239.9, 897902.7,
237223, 897954,
237133, 897899,
237040, 897924));
sdo_geor.subset(gr, 0, win1, '1-3',
'interleaving = BIL, compression=DEFLATE',
grsub, NULL, 'TRUE');
UPDATE georaster_table SET georaster=grsub WHERE georid=111;
COMMIT;
END;
/
7.155 SDO_GEOR.updateRaster
形式
SDO_GEOR.updateRaster( targetGeoRaster IN OUT SDO_GEORASTER, targetPyramidLevel IN NUMBER, targetLayerNumbers IN VARCHAR2, targetArea IN SDO_GEOMETRY, sourceGeoRaster IN SDO_GEORASTER, sourcePyramidLevel IN NUMBER, sourceLayerNumbers IN VARCHAR2, updateUpperPyramids IN VARCHAR2, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR.updateRaster( targetGeoRaster IN OUT SDO_GEORASTER, targetPyramidLevel IN NUMBER, targetBandNumbers IN VARCHAR2, targetArea IN SDO_NUMBER_ARRAY, sourceGeoRaster IN SDO_GEORASTER, sourcePyramidLevel IN NUMBER, sourceBandNumbers IN VARCHAR2, updateUpperPyramids IN VARCHAR2, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
説明
指定した領域の指定したピラミッド(1つのGeoRasterオブジェクトの重複部分)を、別のGeoRasterオブジェクトの選択したピラミッドと選択したバンドまたはレイヤーで更新できます。
パラメータ
- targetGeoRaster
-
更新するGeoRasterオブジェクトを指定します。(このオブジェクトを更新する前に、オブジェクトのコピーを作成しておいてください。)
- targetPyramidLevel
-
更新するターゲットGeoRasterオブジェクトのピラミッド・レベルを示す番号を指定します。
- targetLayerNumbers
-
targetGeoRaster
内の更新するレイヤーを示す1つ以上のレイヤー番号を文字列で指定します。カンマで数字または範囲を区切り、ハイフンで範囲を指定します。たとえば、'1,3-5,7'
はレイヤー1、3、4、5および7を示します。 - targetBandNumbers
-
targetGeoRaster
内の更新するバンドを示す1つ以上のバンド番号を文字列で指定します。カンマで数字または範囲を区切り、ハイフンで範囲を指定します。たとえば、'0,3-5,7'
はバンド0、3、4、5および7を示します。このパラメータに指定するバンドはすべて、ターゲットGeoRasterオブジェクト内の更新対象のバンドと互換性がある必要があります。 - targetArea
-
targetGeoRaster
内の更新対象の領域(矩形ウィンドウ)を指定します。左下と右上の座標を含む数値配列か、SDO_GEOMETRYオブジェクトとして指定します。SDO_NUMBER_ARRAY型はVARRAY(1048576) OF NUMBER
として定義されます。データ型がSDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合、ジオメトリ・オブジェクトの最小境界矩形(MBR)がターゲット領域として使用されます(SDO_SRID要件の「使用上の注意」も参照してください)。
targetArea
がSDO_GEOMETRY型の場合は、targetLayerNumbers
およびsourceLayerNumbers
パラメータを使用して1つ以上のレイヤー番号を指定します。targetArea
がSDO_NUMBER_ARRAY型の場合は、targetBandNumbers
およびsourceBandNumbers
パラメータを使用して、1つ以上のバンド番号を指定します。指定した領域が
targetGeoRaster
の空間エクステントと交差しない場合、更新は行われません。このパラメータにNULLを指定した場合は、重複するすべての領域が更新されます。このパラメータの使用方法の詳細は、「イメージのピラミッド化: パラレル生成および部分更新」を参照してください。
- sourceGeoRaster
-
targetGeoRaster
の更新に使用する特定のレイヤーを含むGeoRasterオブジェクトを指定します。 - sourcePyramidLevel
-
sourceGeoRaster
オブジェクトのピラミッド・レベルを示す番号を指定します。 - sourceLayerNumbers
-
targetGeoRaster
の更新に使用するsourceGeoRaster
内のレイヤーを示す1つ以上のレイヤー番号を文字列で指定します。カンマで数字または範囲を区切り、ハイフンで範囲を指定します。たとえば、'1,3-5,7'
はレイヤー1、3、4、5および7を示します。このパラメータに指定するレイヤーはすべて、ターゲットGeoRasterオブジェクト内の更新対象のレイヤーと互換性がある必要があります。
- sourceBandNumbers
-
targetGeoRaster
の更新に使用するsourceGeoRaster
内のバンドを示す1つ以上のバンド番号を文字列で指定します。カンマで数字または範囲を区切り、ハイフンで範囲を指定します。たとえば、'0,3-5,7'
はバンド0、3、4、5および7を示します。このパラメータに指定するバンドはすべて、ターゲットGeoRasterオブジェクト内の更新対象のバンドと互換性がある必要があります。
- updateUpperPyramids
-
上位レベルのピラミッドを更新するかどうかを指定する文字列(
TRUE
またはFALSE
)を指定します。(このパラメータにデフォルト値はありません。このパラメータは常に指定する必要があります。)このパラメータの使用方法の詳細は、「イメージのピラミッド化: パラレル生成および部分更新」を参照してください。 - bgValues
-
部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(「空のラスター・ブロック」を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、
SDO_NUMBER_ARRAY(1,5,10)
では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValues
は0 (ゼロ)です。入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。
使用上の注意
注意:
targetGeoRaster
に指定したGeoRasterオブジェクトへの変更は、このプロシージャが完了した後では元に戻せない場合があるため、このプロシージャをコールする前にtargetGeoRasterオブジェクトのコピーを作成しておいてください。
両方のGeoRasterオブジェクトが地理参照されている場合は、2つのGeoRasterオブジェクトで使用されている座標系およびセル深度が同じであり、指定したピラミッド・レベルでの空間解像度が同じである必要があります(ただし、targetPyramidLevel
とsourcePyramidLevel
には異なる値を指定できます)。両方のGeoRasterオブジェクトが地理参照されていない場合は、ULTCoordinatesが考慮されてこれらのオブジェクトが互いに共同配置されます。
2つのGeoRasterオブジェクトの次元およびサイズは、異なっていても構いません。
targetArea
パラメータのデータ型がSDO_GEOMETRYの場合、SDO_SRID値は次のいずれかの値である必要があります。
-
NULL(ラスター空間を指定)
-
MDSYS.CS_SRS表のSRID列の値
window
パラメータ・ジオメトリとモデル空間のSDO_SRID値が異なる場合は、処理が実行される前に、window
パラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、「GeoRasterデータ・モデル」を参照してください。)
targetArea
パラメータで測地MBRを指定する場合は、日付変更線をまたぐMBRは指定できません。測地MBRについては、『Oracle Spatial and Graph開発者ガイド』を参照してください。
既存のビットマップ・マスクは更新されません。
ソースGeoRasterオブジェクトにターゲット領域を埋め込むための十分な大きさがない場合は、覆われずに残った領域は更新されません。
ターゲットGeoRasterオブジェクトがピラミッドを持つか圧縮されている場合、またはその両方の場合、ピラミッドおよび圧縮にも更新が反映されます。
上位レベルのピラミッドを更新するには、updateUpperPyramids
パラメータをTRUE
に指定する必要があります。(このパラメータにデフォルト値はありません。常に、TRUE
またはFALSE
を指定する必要があります。)
例
次の例では、指定したターゲットGeoRasterオブジェクトのバンド1内の指定領域を、別のGeoRasterオブジェクトの同じ領域のバンド0で更新します。
DECLARE gr1 sdo_georaster; gr2 sdo_georaster; area sdo_number_array := sdo_number_array(-200,-50,201,162); BEGIN SELECT georaster INTO gr2 FROM georaster_table WHERE georid=0 FOR UPDATE; SELECT georaster INTO gr1 FROM georaster_table WHERE georid=1; SDO_GEOR.updateRaster(gr2, 0, '1', area, gr1, 0, '0', 'true'); UPDATE GEORASTER_TABLE SET georaster=gr2 WHERE georid=0; COMMIT; END; /
7.156 SDO_GEOR.validateBlockMBR
形式
SDO_GEOR.validateBlockMBR( georaster IN SDO_GEORASTER ) RETURN VARCHAR2;
説明
GeoRasterオブジェクトの各ブロックのblockMBR
属性を検証します。
使用上の注意
このファンクションは、指定したGeoRasterオブジェクトに関連付けられたラスター・データ表に含まれる各行のblockMBR
属性(「blockMBR属性」を参照)をチェックし、ジオメトリが実際にブロックの最小境界矩形(MBR)であるかどうかを確認します。
このファンクションは、blockMBR
属性が各ブロックのMBRである場合は文字列TRUE
を、GeoRasterオブジェクトがNULLの場合はNULL値を戻します。既知のエラーの場合はOracleエラー・コードを、不明なエラーの場合はFALSE
を戻します。
「新しいGeoRasterオブジェクトの作成」の説明に従ってGeoRasterオブジェクトを作成した場合はblockMBR
属性値が自動計算されるため、この属性値を検証したり生成する必要はありません。ただし、サード・パーティによって生成されたGeoRasterオブジェクトの場合は、このファンクションを使用してblockMBR
属性値を検証する必要があり、無効な値が含まれている場合は、SDO_GEOR.generateBlockMBRプロシージャをコールします。
例
次の例では、指定したGeoRasterオブジェクトの各ブロックのblockMBR
属性を検証します。
SELECT sdo_geor.validateBlockMBR(georaster) FROM georaster_table WHERE georid=1; SDO_GEOR.VALIDATEBLOCKMBR(GEORASTER) -------------------------------------------------------------------------------- TRUE
7.157 SDO_GEOR.validateGeoRaster
形式
SDO_GEOR.validateGeoRaster( georaster IN SDO_GEORASTER ) RETURN VARCHAR2;
説明
GeoRasterオブジェクトのラスター・データおよびメタデータを確認して、GeoRasterオブジェクトを検証します。
使用上の注意
このファンクションは、GeoRasterオブジェクトが有効な場合は文字列TRUE
を戻し、GeoRasterオブジェクトがNULLの場合はNULL値を戻します。既知のエラーの場合はOracleのエラー・コードを戻し、不明なエラーの場合はFALSE
を戻します。GeoRasterオブジェクトの作成、ロードまたは変更後は、次の処理を行う前に、このファンクションを使用してオブジェクトが有効であることを確認してください。
このファンクションによって、GeoRasterオブジェクトが無効であると識別され、エラー・コード13454が戻された場合、そのオブジェクトのメタデータは、GeoRasterのXMLスキーマに対して無効です。この場合は、SDO_GEOR.schemaValidateファンクションをコールして、エラーの具体的な位置およびエラーに関するその他の情報を取得します。
このファンクションは、GeoRasterメタデータをGeoRasterのXMLスキーマに基づいて検証するのみでなく、XMLスキーマには記述されていない今回のリリースの制限事項および要件も検証します。次に、このファンクションによって検証される制限事項および要件の一部を示します。
-
レイヤー番号は1からn である必要があります。n は、レイヤーの合計数です。
-
cellRepresentationType
値は、UNDEFINED
である必要があります。 -
totalBandBlocks
またはbandBlockSize
がメタデータで指定されている場合、両方を指定する必要があります。バンドが1つのみの場合、バンドのブロック化は実行できません。 -
次元のブロックの合計数とブロック・サイズを掛けた値は、次元サイズと埋込みサイズを足した値と一致する必要があります。また、各セル・データのBLOBオブジェクトのサイズは、ブロック化または非ブロック化(あるいは空であるかどうか)に関するメタデータの記述と一致する必要があります。
-
ラスター・データ表に格納されたGeoRasterデータ・ブロックのサイズおよび数は、メタデータの記述と一貫性がある必要があります。セル・データについては、ブロックの数とサイズがチェックされ、ブロックの内容はチェックされません。
-
サポートされているピラミッド・タイプは、
NONE
(ピラミッドが存在しない)およびDECREASE
のみです。(ピラミッドの詳細は、「ピラミッド」を参照してください。) -
ラスター・データ表の名前には、空白、ピリオド、または大/小文字が混在する文字列を引用符で囲った値は使用できません。すべての英数字は大文字である必要があります。
-
ラスター・データ表は、SDO_RASTER型のオブジェクト表である必要があり、GeoRasterオブジェクトが空白でない場合はラスター・データ表が存在する必要があります。Oracle Workspace ManagerまたはOracle Label Security (OLS)でGeoRasterを使用するには、SDO_RASTER型のオブジェクト・ビューを定義し、そのオブジェクト・ビューをラスター記憶域として使用できます。
-
ALL_SDO_GEOR_SYSDATAビューには、GeoRasterオブジェクト用のエントリが存在する必要があります。
-
関連付けられた各ビットマップ・マスクはRDTに適切な行数を保持する必要があります。
-
NODATA値およびその値の範囲はすべて、セル深度で設定された有効なセル値の範囲に含まれます。
-
圧縮されていないGeoRasterオブジェクトについては、各ラスター・ブロックのBLOBオブジェクトのサイズは、ブロック・サイズおよびセル深度に基づいてチェックされます。ただし圧縮されているGeoRasterオブジェクトについては、各ラスター・ブロックのBLOBオブジェクトのサイズはチェックされません。このため、圧縮されているGeoRasterオブジェクトを解凍すると、データのサイズが有効でない場合があります。(長さが0 (ゼロ)のBLOBは有効なBLOBです。これは空のラスター・ブロックです。)
-
圧縮されていないGeoRasterオブジェクトについては、各ビットマップ・マスクのラスター・ブロック・サイズは、ブロック・サイズおよび
1BIT
セル深度に基づいてチェックされます。(長さが0 (ゼロ)のBLOBは有効なBLOBです。これは空のビットマップ・マスクのラスター・ブロックです。) -
汎用関数フィッティング多項式モデルがサポートされています(「関数フィッティング地理参照モデル」を参照)。オフセット、スケール、RMS値、pType、nVarsおよび多項式の係数の数値に関する制限は、「関数フィッティング地理参照モデル」および「SDO_GEOR_SRSオブジェクト型」の表2-4を参照してください。
-
GeoRaster SRSメタデータのSRIDは、CS_SRS表に対してチェックされず、検証されません。SRIDを検証するには、SDO_GEOR.getModelSRIDおよびSDO_CS.VALIDATE_WKTをコールします(後者については、『Oracle Spatial and Graph開発者ガイド』を参照)。今回のリリースでは、
verticalSRID
値は使用されません。 -
StoredFunction地理参照モデルとして地上基準点(GCP)がサポートされます。メタデータの
gcpGeoreferenceModel
は、SDO_GEOR_GCPGEOREFTYPE型の定義に従う必要があり(「SDO_GEOR_GCPGEOREFTYPEオブジェクト型」を参照)、各GCPは、SDO_GEOR_GCP型の仕様に従う必要があります(「SDO_GEOR_GCPオブジェクト型」を参照)。GCPの数は、FFMethod
属性に対して確認されないため、GCPを段階的に追加する柔軟性を得ることができます。 -
RigorousModel
地理参照モデルはサポートされません。関数多項式の係数を設定する場合、modelType
値をFunctionalFitting
に設定し、isReferenced
値をTRUE
に設定する必要があります。GCPをメタデータに格納する場合、modelType
値をStoredFunction
に設定する必要があります。両方の条件が満たされる場合、StoredFunction
とFunctionalFitting
の両方の値を含むように2つのmodelType
値が追加されます。 -
GeoRasterオブジェクトが地理参照されている場合、空間解像度はアフィン変換スケールと一貫性がない場合があります。
-
GeoRaster時間参照およびバンド参照はサポートされていませんが、時間参照システム(TRS)およびバンド参照システム(BRS)では、開始日時、終了日時、スペクトル解像度、スペクトル単位および関連する記述情報を格納できます。
-
1つの
layerInfo
要素のみがサポートされています。レイヤーは、1つの次元のみに沿って定義可能であり、この次元はBAND
である必要があります。ただし、layerInfo
要素内では、subLayer
要素の数は、レイヤーの合計数によってのみ制限されます。objectLayer
要素のレイヤー番号は0、subLayer
要素のレイヤー番号は1からnであり、nはレイヤーの合計数です。 -
スケール変更ファンクション、ビン・ファンクション、および統計データやヒストグラムは、GeoRasterメタデータに格納できます。これらの項目は、XMLスキーマに対して有効である必要がありますが、値の範囲に制限はありません。このメタデータを使用するGeoRasterインタフェースは限られています。アプリケーションで、このオプションのメタデータを使用する前に、メタデータを検証する必要があります。
-
カラーマップ値およびグレースケール・マッピング値の数は制限されませんが、カラーマップ値またはグレースケール値が重複しないようにする必要があります。また、各配列の値は、GeoRasterオブジェクトの
cellDepth
値と一貫性があり、昇順である必要があります。赤、緑、青、アルファおよびグレーの構成要素値の範囲は、0から255の整数である必要があります。 -
複合
cellDepth
値はサポートされません。 -
このファンクションは、外部表(ビン表、ヒストグラム表、グレースケール表、カラーマップ表など)の中で名前がXMLメタデータに登録されているものはチェックしません。
-
このファンクションは、空間エクステント・ジオメトリを検証しません。つまり、ジオメトリとラスター・データ間の空間関係が正しいかどうかは検証しません。空間エクステント・ジオメトリを検証するには、SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXTまたはSDO_GEOM.VALIDATE_LAYER_WITH_CONTEXTプロシージャを使用します(『Oracle Spatial and Graph開発者ガイド』を参照)。
-
このファンクションは、ラスター・データ表の
blockMBR
属性で指定されたジオメトリを検証しません。つまり、ジオメトリが厳密にラスター・ブロックを囲んでいるかどうかは検証しません。(blockMBR
属性の詳細は、「blockMBR属性」を参照してください。)blockMBR
ジオメトリを検証する場合は、SDO_GEOR.validateBlockMBRファンクションを使用します。
ALL_SDO_GEOR_SYSDATAビュー(「GeoRasterシステム・データ・ビュー(xxx_SDO_GEOR_SYSDATA)」を参照)にGeoRasterオブジェクトのエントリがない場合、このプロシージャは、GeoRasterオブジェクトが未登録であることを示すエラーを戻します。このエラーを回避するには、GeoRaster表にGeoRasterオブジェクトが挿入され、必要なGeoRaster DMLトリガーがGeoRaster表に作成されていることを確認してください。クロススキーマ・アクセスを有効にするには、このプロシージャをコールするユーザーが、GeoRaster表および関連するラスター・データ表の両方について適切な権限を持っている必要があります。
例
次の例では、表のGeoRasterオブジェクトを検証します。
SELECT t.georid, sdo_geor.validategeoraster(t.georaster) isvalid from georaster_table t order by georid; GEORID ISVALID ---------- ---------- 3 TRUE 4 TRUE
7.158 SDO_GEOR.warp
形式
SDO_GEOR.warp( inGeoRaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, outSRS IN NUMBER, cropArea IN SDO_GEOMETRY, dimensionSize IN SDO_NUMBER_ARRAY, layerNumbers IN VARCHAR2, elevationParam IN VARCHAR2, resampleParam IN VARCHAR2, storageParam IN VARCHAR2, outGeoRaster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, parallelParam IN VARCHAR2 DEFAULT NULL);
または
SDO_GEOR.warp( inGeoRaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, outSRS IN NUMBER, cropArea IN SDO_GEOMETRY, dimensionSize IN SDO_NUMBER_ARRAY, layerNumbers IN VARCHAR2, elevationParam IN VARCHAR2, resampleParam IN VARCHAR2, storageParam IN VARCHAR2, rasterBlob IN OUT NOCOPY BLOB, outArea OUT SDO_GEOMETRY, outWindow OUT SDO_NUMBER_ARRAY, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, parallelParam IN VARCHAR2 DEFAULT NULL);
説明
入力GeoRasterオブジェクトのジオメトリ変換を実行して、指定された出力空間参照システムを使用して出力GeoRasterオブジェクトを生成します。
パラメータ
- inGeoRaster
-
操作を実行するGeoRasterオブジェクトを指定します。これは、地理参照される必要があります(「GeoRasterオブジェクトの地理参照」および「高度な地理参照」を参照)。
- pyramidLevel
-
操作用のソースGeoRasterオブジェクトのピラミッド・レベルを指定します。
-
BLOB出力では、このパラメータが必須です。
-
SDO_GEORASTER出力では、このパラメータがNULLの場合、入力GeoRasterオブジェクトのすべてのピラミッド・レベルが処理されます。
-
0以上の数値を指定すると、そのピラミッド・レベルのみが幾何補正に使用され、そのピラミッド・レベル・イメージに基づいてスケールの結果が生成されます。
-
- outSRS
-
出力GeoRasterオブジェクトの座標系(空間参照システム)を指定します。NULLか、またはMDSYS.CS_SRS表のSRID列の値を指定する必要があります。NULLの場合、出力GeoRasterオブジェクトには入力GeoRasterオブジェクトと同じSRIDが含まれます。
- cropArea
-
出力イメージに含まれる領域の形状を定義します。このポリゴン外部の領域は背景値が入力されます。このパラメータを指定しない場合は、クロッピングは行われません。
- dimensionSize
-
GeoRasterオブジェクトの次元サイズ配列。セル空間のイメージのエクステントを定義します。
- layerNumbers
-
inGeoRaster
からoutGeoRaster
に転送する1つ以上の数のレイヤーの文字列を指定します。カンマで数字または範囲を区切り、ハイフンで範囲を指定します。たとえば、’1,3-5,7’
はレイヤー1、3、4、5および7を示します。このパラメータがNULL(デフォルト)の場合、すべてのレイヤーが処理されます。 - elevationParam
-
標高パラメータの
average
(平均表面高度)、scale
(すべてのDEM
値に適用されるスケール値)およびoffset
(すべてのDEM
値に適用されるオフセット)を1つ以上含む文字列を指定します(新しい値は、(value + offset) * scale
です)。このパラメータは、引用符で囲まれた文字列で、1つ以上のキーワード=値のペア('average=800 scale=3.2808399 offset=10'
など)を含める必要があります。このパラメータがNULLの場合、average
およびoffset
には0が、scale
には1が使用されます。DEM
が指定されていない場合、scale
およびoffset
値は無視されます。elevationParam
パラメータを使用する場合、入力GeoRasterオブジェクトには3DモデルSRIDが含まれる必要があります。入力GeoRasterオブジェクトに3DモデルSRIDが含まれる場合、出力イメージのエクステントを定義するために、平均の標高が重要になります。
DEM
を指定していても、この情報が使用可能である場合は指定する必要があります。平均の標高を指定しない場合、プロシージャによって、平均の標高の近似値が計算されます。注意:
GeoRasterのサブプログラムに対する文字列(VARCHAR2)パラメータの中に数値がある場合は、ロケールにかかわらず、小数点にはピリオド(.)を使用する必要があります。
- resampleParam
-
リサンプリング・パラメータを指定するため、キーワード=値のペアのカンマで区切られた引用符付き文字列を指定します。詳細は、「使用上の注意」を参照してください。
- storaageParam
-
記憶域パラメータを示す文字列を指定します(「記憶域パラメータ」を参照)。
- outGeoRaster
-
操作の結果を格納するGeoRasterオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、「空白のGeoRasterオブジェクトと空のGeoRasterオブジェクト」を参照してください)。
inGeoRaster
と同じGeoRasterオブジェクトは指定できません。 - rasterBlob
-
幾何補正を反映した出力を保持するBLOBを指定します。処理の前に、存在しているか、または初期化されている必要があります。
- outArea
-
結果のオブジェクトのモデル座標系の最小境界矩形(MBR)を含むSDO_GEOMETRYオブジェクトを指定します。
- outWindow
-
セル空間内で出力ウィンドウの左上角および右下角の座標を指定するSDO_NUMBER_ARRAYオブジェクトを指定します。
- bgValues
-
部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(「空のラスター・ブロック」を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、
SDO_NUMBER_ARRAY(1,5,10)
では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValues
は0 (ゼロ)です。入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。
- parallelParam
-
操作の並列度を指定します。指定する場合、
parallel=
nという形式である必要があります(nは1より大きい)。データベース・オプティマイザでは、このパラメータによって指定された並列度を使用します。指定しない場合、デフォルトでパラレル処理は行われません。(詳細は、「GeoRasterでのパラレル処理」を参照してください。)並列性が指定されている場合、プロシージャによって内部コミット操作が実行されます。エラーが発生した場合(Oracle Parallel Serverが原因である場合でも)、操作をロールバックするために、出力結果のGeoRasterオブジェクトを明示的に削除する必要があります。
使用上の注意
このプロシージャには2つの構文があります。
-
一方の構文では、データベースへの永続的な格納のためにGeoRasterオブジェクトが生成されます。
-
他方の構文では、一時的な格納または即座の使用(画面へのデータの表示など)のためにBLOBが生成されます。
このプロシージャでは、入力GeoRasterオブジェクトから地理参照多項式を取得するパラメータなしの幾何補正メソッドを使用して、元のイメージ空間をoutSRS
で指定される地理参照多項式に変換します。したがって、入力GeoRasterオブジェクトを地理参照する必要があります(SDO_GEOR.georeferenceサブプログラムを参照)。
詳細は、「イメージのワーピング」を参照してください。
例
次の例では、出力(生成された)GeoRasterオブジェクトにoutSRS
と同じ空間参照システム(座標系)が含まれます。入力GeoRasterオブジェクトは、完全に地理参照されたイメージです。
DECLARE srs sdo_geor_srs; gr2 sdo_georaster; gr3 sdo_georaster; gr4 sdo_georaster; BEGIN select georaster into gr2 from georaster_table where georid = 2; srs := sdo_geor.getSRS(gr2); select georaster into gr3 from georaster_table where georid = 3; insert into georaster_table values(4, 'Warped', sdo_geor.init('warp_rdt',4)) returning raster into gr4; sdo_geor.warp( inGeoRaster => gr3, pyramidLevel => null, outSRS => srs, cropArea => null, dimensionSize => sdo_number_array(518,518), layerNumbers => ‘4,5,3’, elevationParam => `average=300`, resampleParam => ‘resampling=AVERAGE4’, storageParam => ‘pyramid=true’, outGeoRaster => gr4, bgValues => sdo_number_array(0,0,0), parallelParam => ‘parellel=4’ ); update georaster_table set georaster = gr4 where georid = 4; commit; END;