7.158 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開発者ガイド』を参照)。今回のリリースでは、
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開発者ガイド』を参照)。
-
このファンクションは、ラスター・データ表の
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
親トピック: SDO_GEORパッケージのリファレンス