Oracle® Spatial

GeoRaster開発者ガイド

11gリリース2 (11.2)

B72086-03(原本部品番号:E11827-09)

2013年11月

Oracle Spatial and GraphのGeoRaster機能の使用方法およびリファレンス情報を提供します。GeoRasterを使用すると、ラスター・データ(ラスター・イメージ・データとグリッド・データおよびそれらに関連するメタデータ)の格納、索引付け、問合せ、分析および配信を行うことができます。

Oracle Spatial GeoRaster開発者ガイド 11gリリース2 (11.2)

B72086-03

Copyright © 1999, 2013, Oracle and/or its affiliates.All rights reserved.

原本著者: Chuck Murray

原本協力者:  Oracle Database 12cのドキュメントを、本リリースに携わった全員にとって創造の源となったMark Townsendに捧げます。

協力者: Fengting Chen、Ivan Lucena、Qingyun (Jeffrey) Xie、Zhihai Zhang

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

目次

例一覧

図一覧

表一覧

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

GeoRasterの新機能

- リリース11.2での変更内容

- リリース11.1での変更内容

1 GeoRasterの概要および概念

- 1.1 ベクトル・データおよびラスター・データ

- 1.2 ラスター・データ・ソース

- 1.2.1 リモート・センシング

- 1.2.2 写真測量

- 1.2.3 地理情報システム

- 1.2.4 地図作成法

- 1.2.5 デジタル・イメージ処理

- 1.2.6 地質学、地球物理学および地球化学

- 1.3 GeoRasterデータ・モデル

- 1.4 GeoRasterの物理記憶域

- 1.4.1 記憶域パラメータ

- 1.4.2 ラスター・データ表

- 1.4.3 空白のGeoRasterオブジェクトと空のGeoRasterオブジェクト

- 1.4.4 空のラスター・ブロック

- 1.4.5 GeoRasterにおけるクロススキーマのサポート

- 1.5 バンド、レイヤーおよびメタデータ

- 1.6 地理参照

- 1.6.1 関数フィッティング地理参照モデル

- 1.6.2 GCPを使用した地理参照

- 1.6.3 セル座標とモデル座標の変換

- 1.7 ピラミッド

- 1.8 ビットマップ・マスク

- 1.9 NODATA値および値の範囲

- 1.10 圧縮と解凍

- 1.10.1 GeoRasterオブジェクトのJPEG圧縮

- 1.10.2 GeoRasterオブジェクトのDEFLATE圧縮

- 1.10.3 GeoRasterオブジェクトの解凍

- 1.10.4 圧縮に使用するサード・パーティのプラグイン

- 1.10.5 SecureFilesの圧縮

- 1.11 GeoRasterおよびデータベースの管理

- 1.12 GeoRaster PL/SQL API

- 1.13 GeoRaster Java API

- 1.14 GeoRasterツール: ローダー、ビューア、エクスポータ

- 1.14.1 JAIベースのビューア、ローダーおよびエクスポータ

- 1.14.2 同時バッチ・ロードおよびエクスポートのためのGDALベースのETLウィザード

- 1.15 GeoRasterのPL/SQLおよびJavaデモ・ファイル

- 1.16 Spatialおよび関連機能のREADMEファイル

2 GeoRasterのデータ型および関連構造

- 2.1 SDO_GEORASTERオブジェクト型

- 2.1.1 rasterType属性

- 2.1.2 spatialExtent属性

- 2.1.3 rasterDataTable属性

- 2.1.4 rasterID属性

- 2.1.5 metadata属性

- 2.2 SDO_RASTERオブジェクト型およびラスター・データ表

- 2.2.1 rasterID属性

- 2.2.2 pyramidLevel属性

- 2.2.3 bandBlockNumber属性

- 2.2.4 rowBlockNumber属性

- 2.2.5 columnBlockNumber属性

- 2.2.6 blockMBR属性

- 2.2.7 rasterBlock属性

- 2.3 他のGeoRasterの型

- 2.3.1 SDO_GEOR_HISTOGRAMオブジェクト型

- 2.3.2 SDO_GEOR_COLORMAPオブジェクト型

- 2.3.3 SDO_GEOR_GRAYSCALEオブジェクト型

- 2.3.4 SDO_RASTERSETコレクション型

- 2.3.5 SDO_GEOR_SRSオブジェクト型

- 2.3.6 SDO_GEOR_GCPオブジェクト型

- 2.3.7 SDO_GEOR_GCP_COLLECTIONコレクション型

- 2.3.8 SDO_GEOR_GCPGEOREFTYPEオブジェクト型

- 2.4 GeoRasterシステム・データ・ビュー(xxx_SDO_GEOR_SYSDATA)

- 2.4.1 TABLE_NAME列

- 2.4.2 COLUMN_NAME列

- 2.4.3 METADATA_COLUMN_NAME列

- 2.4.4 RDT_TABLE_NAME列

- 2.4.5 RASTER_ID列

- 2.4.6 OTHER_TABLE_NAMES列

- 2.5 GeoRasterのXMLスキーマ

3 GeoRasterの操作

- 3.1 GeoRaster表およびラスター・データ表の作成

- 3.1.1 GeoRaster表の作成

- 3.1.2 ラスター・データ表の作成

- 3.1.3 GeoRaster DMLトリガー

- 3.2 新しいGeoRasterオブジェクトの作成

- 3.3 ラスター・データのロード

- 3.3.1 ロード前のソース・ラスターの再フォーマット

- 3.4 GeoRasterオブジェクトの検証

- 3.5 GeoRasterオブジェクトの地理参照

- 3.6 空間エクステントの生成と設定

- 3.6.1 GeoRaster表に空間索引が含まれる場合の特別な考慮事項

- 3.7 GeoRasterデータの索引付け

- 3.8 ラスター記憶域の変更と最適化

- 3.9 GeoRasterオブジェクトのコピー

- 3.10 GeoRasterメタデータの問合せおよび更新

- 3.11 GeoRasterセル・データの問合せおよび更新

- 3.12 GeoRasterオブジェクトの処理

- 3.13 GeoRasterオブジェクトの圧縮と解凍

- 3.14 GeoRasterオブジェクトの表示

- 3.15 GeoRasterオブジェクトのエクスポート

- 3.16 コミット前のGeoRasterオブジェクトの更新

- 3.17 テンプレート関連のサブプログラムを使用したGeoRasterアプリケーションの開発

- 3.18 Workspace ManagerおよびLabel SecurityでのGeoRasterの使用

- 3.18.1 Workspace ManagerでのGeoRasterの使用

- 3.18.2 Label SecurityでのGeoRasterの使用

- 3.19 GeoRasterオブジェクトによる表領域の効率的な使用のメンテナンス

- 3.20 データベースのGeoRasterオブジェクトおよびシステム・データのメンテナンス

- 3.21 データベース間でのGeoRasterデータの転送

- 3.21.1 競合の確認と解決

- 3.21.2 GeoRasterデータの転送の実行

- 3.22 GeoRasterデータでのトランスポータブル表領域の使用

4 SDO_GEORパッケージのリファレンス

- SDO_GEOR.addNODATA

- SDO_GEOR.addSourceInfo

- SDO_GEOR.calcCompressionRatio

- SDO_GEOR.changeCellValue

- SDO_GEOR.changeFormatCopy

- SDO_GEOR.copy

- SDO_GEOR.createBlank

- SDO_GEOR.createTemplate

- SDO_GEOR.deleteControlPoint

- SDO_GEOR.deleteNODATA

- SDO_GEOR.deletePyramid

- SDO_GEOR.evaluateDouble

- SDO_GEOR.exportTo

- SDO_GEOR.generateBlockMBR

- SDO_GEOR.generatePyramid

- SDO_GEOR.generateSpatialExtent

- SDO_GEOR.generateStatistics

- 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.getBlankCellValue

- SDO_GEOR.getBlockingType

- SDO_GEOR.getBlockSize

- SDO_GEOR.getCellCoordinate

- SDO_GEOR.getCellDepth

- SDO_GEOR.getCellValue

- SDO_GEOR.getColorMap

- SDO_GEOR.getColorMapTable

- SDO_GEOR.getCompressionType

- SDO_GEOR.getControlPoint

- SDO_GEOR.getDefaultBlue

- SDO_GEOR.getDefaultColorLayer

- SDO_GEOR.getDefaultGreen

- 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.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.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.mergeLayers

- SDO_GEOR.mosaic

- 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.setDefaultBlue

- SDO_GEOR.setDefaultColorLayer

- SDO_GEOR.setDefaultGreen

- 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.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

5 SDO_GEOR_ADMINパッケージのリファレンス

- SDO_GEOR_ADMIN.checkSysdataEntries

- SDO_GEOR_ADMIN.isRDTNameUnique

- SDO_GEOR_ADMIN.isUpgradeNeeded

- SDO_GEOR_ADMIN.listGeoRasterColumns

- SDO_GEOR_ADMIN.listGeoRasterObjects

- SDO_GEOR_ADMIN.listGeoRasterTables

- SDO_GEOR_ADMIN.listDanglingRasterData

- SDO_GEOR_ADMIN.listRDT

- SDO_GEOR_ADMIN.listRegisteredRDT

- SDO_GEOR_ADMIN.listUnregisteredRDT

- SDO_GEOR_ADMIN.maintainSysdataEntries

- SDO_GEOR_ADMIN.registerGeoRasterColumns

- SDO_GEOR_ADMIN.registerGeoRasterObjects

- SDO_GEOR_ADMIN.upgradeGeoRaster

6 SDO_GEOR_UTLパッケージのリファレンス

- SDO_GEOR_UTL.calcOptimizedBlockSize

- SDO_GEOR_UTL.calcRasterNominalSize

- SDO_GEOR_UTL.calcRasterStorageSize

- SDO_GEOR_UTL.createDMLTrigger

- SDO_GEOR_UTL.fillEmptyBlocks

- SDO_GEOR_UTL.makeRDTNamesUnique

- SDO_GEOR_UTL.renameRDT

A GeoRasterメタデータのXMLスキーマ

索引

例一覧

- 1-1 storageParamキーワードの使用

- 3-1 City ImagesのGeoRaster表の作成

- 3-2 BasicFilesを使用したラスター・データ表の作成

- 3-3 SecureFilesを使用したラスター・データ表の作成

- 3-4 SecureFilesを使用したラスター・データ表(リレーショナル)の作成

- 3-5 コミット前のGeoRasterオブジェクトの更新

- 3-6 BasicFile RasterBlock LOBセグメントの縮小

- 3-7 ラスター・データ表の縮小

図一覧

- 1-1 ラスター空間とモデル空間

- 1-2 2つのタイプのセル座標系

- 1-3 GeoRasterデータの物理記憶域

- 1-4 Oracle Database内のGeoRasterデータ

- 1-5 レイヤー、バンドおよびラスター・データ表

- 1-6 地理参照に使用される多項式

- 1-7 ピラミッド・レベル

表一覧

- 1-1 ラスター・データのstorageParamのキーワード

- 2-1 SDO_GEOR_HISTOGRAMオブジェクト型の属性

- 2-2 SDO_GEOR_COLORMAPオブジェクト型の属性

- 2-3 SDO_GEOR_GRAYSCALEオブジェクト型の属性

- 2-4 SDO_GEOR_SRSオブジェクト型の属性

- 2-5 SDO_GEOR_GCPオブジェクト型の属性

- 2-6 SDO_GEOR_GCPGEOREFTYPEオブジェクト型の属性

- 2-7 SDO_GEOR_XMLSCHEMA_TABLE表の列

はじめに

『Oracle Spatial開発者ガイド』では、Oracle SpatialのGeoRaster機能(このマニュアルではGeoRasterと表記します)の使用方法およびリファレンス情報について説明します。GeoRasterを使用すると、ラスター・イメージ・データとグリッド・データおよびそれらに関連するメタデータの格納、索引付け、問合せ、分析および配信を行うことができます。GeoRasterは、Oracle Spatialのデータ型および1つのオブジェクト・リレーショナル・スキーマを提供します。これらのデータ型およびスキーマ・オブジェクトを使用すると、地表面またはローカル座標系での位置を参照可能な多次元グリッド・レイヤーとデジタル・イメージを格納できます。

GeoRasterはスタンドアロン製品ではありません。Oracle Spatialとともにインストールされます。

注意:
GeoRasterを使用するには、Oracle Spatialの主な概念、データ型、使用方法、演算子、プロシージャおよびファンクションを理解しておく必要があります。これらの詳細は、『Oracle Spatial開発者ガイド』を参照してください。

対象読者

このマニュアルは、Oracle Databaseにラスター・データを格納する必要があるすべてのユーザーを対象としています。

Oracle Spatial、PL/SQLプログラミングおよびOracleのオブジェクト・リレーショナル・テクノロジを理解しておく必要があります。

また、ラスターの概念と用語、およびラスター・データを取得、作成または処理する方法も理解しておく必要があります。たとえば、このマニュアルでは、幾何補正されたデータを地理参照させることができることは示しますが、幾何補正の処理またはそれに関連する問題や方法については説明しません。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

Oracleサポート・サービスでは、My Oracle Supportを通して電子支援サービスを提供しています。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info) か、聴覚に障害のあるお客様は (http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。

関連ドキュメント

詳細は、次のドキュメントを参照してください。

- 『Oracle Spatial開発者ガイド』

表記規則

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

GeoRasterの新機能

ここでは、Oracle Databaseリリース11のOracle Spatial GeoRasterの新機能および変更された機能について説明します。

リリース11.2での変更内容

次の項では、Oracle Database 11gリリース2 (11.2)の情報統合の新機能について説明します。

Java API

GeoRasterには現在Java APIが含まれており、これは、Oracle SpatialのGeoRaster機能で使用可能な機能をサポートするインタフェースおよびクラスで構成されます。詳細は、1.13項を参照してください。

地上基準点(GCP)のサポート

地上基準点(GCP)を使用して、GeoRasterオブジェクトを地理参照できます。この機能のサポートには、いくつかの新しいデータ型とPL/SQLサブプログラムおよび一部の既存の型とサブプログラムの機能強化が含まれています。詳細は、次の項を参照してください。

- 1.6.2項「GCPを使用した地理参照」

- 2.3.5項「SDO_GEOR_SRSオブジェクト型」(すべてのGCP関連情報を含む)

- 2.3.6項「SDO_GEOR_GCPオブジェクト型」

- 2.3.7項「SDO_GEOR_GCP_ COLLECTIONコレクション型」

- 2.3.8項「SDO_GEOR_GCPGEOREFTYPEオブジェクト型」

- SDO_GEOR.deleteControlPointプロシージャ

- SDO_GEOR.georeference (GCPを使用するための新しいファンクション構文)

- SDO_GEOR.getControlPointファンクション

- SDO_GEOR.getGCPGeorefMethodファンクション

- SDO_GEOR.getGCPGeorefModelファンクション

- SDO_GEOR.getSRSファンクション(GCP関連情報を含む)

- SDO_GEOR.setControlPointプロシージャ

- SDO_GEOR.setGCPGeorefMethodプロシージャ

- SDO_GEOR.setGCPGeorefModelプロシージャ

- SDO_GEOR.setSRSプロシージャ(GCP関連情報を含む)

- 付録A「GeoRasterメタデータのXMLスキーマ」(新しいGCP関連情報を含む)

GeoRasterオブジェクトの再投影処理

第4章に記載の新しいSDO_GEOR.reprojectを使用して、異なるOracle Spatial座標系にGeoRasterオブジェクトを再投影できます。

埋込みスペースを減らすためのブロックの最適化

ブロックされているラスター・データでは、新しいOPTIMALPADDINGキーワードを使用すると、記憶域パラメータの任意のユーザー指定のblockSize値を自動的に最適な値に調整して、埋込みスペースを減らすことができます。詳細は、1.4.1項の表1-1「ラスター・データのstorageParamのキーワード」のblockingキーワードおよびblockSizeキーワードの説明を参照してください。

また、SDO_GEOR_UTL.calcOptimizedBlockSizeプロシージャ(第6章を参照)を使用して最適なblockSize値を計算することができ、この値により、GeoRasterオブジェクト記憶域で少ない埋込みスペースを使用して、storageParamパラメータを含むサブプログラムにその結果を適用できます。

グリッド内挿

新しいSDO_GEOR.evaluateDoubleファンクション(第4章を参照)は、指定された内挿方法を使用することで、隣接するセルの値に基づいて直接の場所を評価し、その場所に指定されたバンドまたはレイヤーのラスター値(倍精度の数値)を戻します。

問合せにおけるポリゴン・ベースのクリッピング

SDO_GEOR.getRasterSubsetおよびSDO_GEOR.subsetプロシージャ(第4章を参照)の機能が強化されています。以前のリリースでは、MBR(四角形)の問合せポリゴンのみが使用されていました。現在では、問合せ結果を(不規則な)ポリゴンの境界に沿ってクリップすることもできるようになりました。

setModelCoordLocationプロシージャ

SDO_GEOR.setModelCoordLocationプロシージャ(第4章を参照)では、CENTERからUPPERLEFTへ、またはUPPERLEFTからCENTERへセル座標系を変更できます。これは、地理参照されているGeoRasterオブジェクトのみに適用され、変更が適宜反映されるように(セル座標とモデル座標間の関係が変わらないようにするために)、GeoRaster SRSの関数フィッティング係数を自動的に調整します。

複数のバンドまたはレイヤーの値を戻すgetCellValueファンクション

SDO_GEOR.getCellValueファンクション(第4章に記載)が機能強化され、特定の場所の複数のレイヤーまたはバンドの値を戻すことができるようになりました。以前のリリースでは、指定したレイヤーまたはバンドの単一のセル値のみが返されていました。

getGeoreferenceTypeファンクションの戻り値

SDO_GEOR.getGeoreferenceTypeファンクション(第4章に記載)は、このマニュアルの以前のリリースに記載の値に加え、次の値の地理参照タイプを戻すことができます(三次多項式の場合は5、二次有理多項式の場合は6または二次多項式の場合は7)。

リリース11.1での変更内容

次に、Oracle Database 11gリリース1 (11.1)の新しい機能および変更された機能について説明します。

使いやすさ、信頼性および管理性の向上

今回のリリースのGeoRasterでは、以前は手動で実行する必要があった特定のタスクを自動化し、特殊なタスクを実行する必要があるユーザーに新しい管理ツールを提供しています。

- GeoRaster表を作成すると、表にGeoRaster DMLトリガーを作成する必要がなくなります。これらのDMLトリガーは自動的に作成され、この自動作成および操作により、信頼性が大きく向上しました。

- データ・ポンプ・インポート・ユーティリティを使用してGeoRasterデータをインポートすると、インポートした表に対するGeoRaster DMLトリガー、またはインポートしたGeoRasterオブジェクトのGeoRasterシステム・データ・エントリを作成する必要がなくなりました。これらのトリガーおよびエントリは自動的に作成されるようになりました。

- ラスター表のDDLイベントおよびGeoRasterシステム・データのアクティビティを監視するように内部的な機能強化を行ったことで、GeoRasterの管理性、信頼性、堅牢性および使いやすさが向上しました。

- 新しいSDO_GEOR_ADMIN PL/SQLパッケージには、移行操作とアップグレード操作を含む、GeoRasterデータベースの管理とメンテナンスに役立つ情報を取得するサブプログラムが格納されています。SDO_GEOR_ADMINサブプログラムについては、第5章で説明します。

- Oracle Workspace Managerを使用したラスター・データのバージョニングがサポートされています(3.18項を参照)。

- Oracle Label Securityを使用したラスター・データの行レベルのセキュリティがサポートされています(3.18項を参照)。

GeoRasterおよびデータベース管理の詳細は、1.11項を参照してください。

新しいメタデータとラスターのサポート

今回のリリースでは、次のような新しいGeoRasterのメタデータおよびラスター型をサポートしています。

- 幾何補正されているか、または幾何補正されていない航空写真や衛星イメージを地理参照するために、複雑な汎用関数フィッティング地理参照モデルがサポートされています。アフィン変換、DLT、RPCなどのモデルが、この汎用モデルの特殊ケースとしてサポートされています。詳細は、1.6項を参照してください。

- GeoRasterオブジェクトおよび個別のバンドやレイヤーに対するビットマップ・マスク(1ビット深度の特別な矩形ラスター・グリッドであり、各ピクセルが0または1の値を持つ)を格納できます。これらのマスクは、GeoRasterオブジェクトの内部に格納されます。また、マスクのピラミッドを作成してGeoRasterオブジェクトの内部に格納することもできます。ビットマップ・マスクの詳細は、1.8項を参照してください。

- GeoRasterオブジェクトおよび個別のバンドやレイヤーに対して、複数のNODATA値および複数のNODATA値の範囲がサポートされています。詳細は、1.9項を参照してください。

- GeoRasterオブジェクトでは、記憶領域を節約したり処理速度を向上させるために、空のラスター・ブロックを持つことができます。詳細は、1.4.4項を参照してください。

- ランダムなブロック化サイズがサポートされています。各ブロックのサイズは引き続き同じである必要がありますが、ラスター・ブロック・サイズは行次元および列次元に沿ってランダムに異なる数値を指定でき、2の累乗値である必要はありません。

新しいファンクション、プロシージャおよびその他の機能

今回のリリースでは、次に示すような、GeoRaster PL/SQL APIなどの機能に関連する多くの新しいサブプログラムとその他の機能強化が提供されています。

- 新しい地理参照モデルでの更新や問合せなどのDML操作、ビットマップ・マスク、および複数のNODATA値とその値の範囲がサポートされています。

- 既存のサブプログラムは、空のラスター・ブロック、ランダムなブロック化サイズおよび新しいメタデータをサポートできるように強化されました。

- モザイクのサポートにより、隙間、重複および欠落のあるソースGeoRasterオブジェクトを使用できます。モザイクのサポートの詳細は、第4章のSDO_GEOR.mosaicプロシージャの説明を参照してください。

- GeoRasterオブジェクトとレイヤーの結合またはマージがサポートされています。詳細は、第4章のSDO_GEOR.mergeLayersプロシージャの説明を参照してください。

- 別のイメージまたはグリッド・データを使用した、ラスター・データとそのピラミッドのウィンドウでの部分的な編集および更新がサポートされています。詳細は、第4章のSDO_GEOR.updateRasterプロシージャの説明を参照してください。

- サード・パーティのソフトウェアを簡単に統合できるように、新しいGeoRasterテンプレートのファンクションが提供されています。詳細は、3.17項を参照してください。

- 統計分析およびヒストグラムの生成がサポートされています。詳細は、第4章のSDO_GEOR.generateStatisticsプロシージャの説明を参照してください。

- GeoRasterのセル空間でのサブセルまたはサブピクセルのアドレッシング(浮動小数点の行番号および列番号)がサポートされています(1.3項を参照)。

- SDO_GEOR_SRSオブジェクト型に新しいコンストラクタが追加されました(2.3.5項を参照)。

- GeoRasterオブジェクトの実際の記憶域サイズおよび名目上の記憶域サイズの計算がサポートされています。(名目上のサイズは、圧縮データおよび疎データを考慮しません。)詳細は、第6章のSDO_GEOR_UTL.calcRasterStorageSizeおよびSDO_GEOR_UTL.calcRasterNominalSizeファンクションに関する項を参照してください。

- GeoRasterの検証が機能強化され、それぞれの有効なGeoRasterオブジェクトを(ALL_SDO_GEOR_SYSDATAビューで入力して)登録する必要があり、GeoRasterオブジェクトのラスター・データ表の名前属性は、引用符で囲んだ文字列にスペース、ピリオドを含んだり大文字小文字が混在していてはならず、またすべての英数字は大文字でなくてはなりません。GeoRasterの検証の詳細は、検証を実行する際の特定のファンクションについても説明している3.4項を参照してください。

- GeoRasterは、元のBasicFile LOBを補足するためにリリース11.1から導入されたSecureFile LOB(SecureFiles)の使用をサポートしています。詳細は、3.1.2項を参照してください。

- GeoRasterオブジェクトのロードとエクスポートを行うために、GeoTiff、JPEG 2000およびDigital Globe RPCの各ファイル形式がサポートされています。JPEGファイルは解凍せずにロードできます。GeoRasterローダーおよびエクスポータ・ツールの詳細は、1.14項を参照してください。

- マスク、汎用地理参照モデル、空のラスター・ブロックおよびその他の機能を表示できるように、GeoRasterビューアが強化されました。GeoRasterのビューア・ツールの詳細は、1.14項を参照してください。

次の表に、今回のリリースの新しいPL/SQLサブプログラムを示します。(この表には既存のサブプログラムは含まれていませんが、既存のサブプログラムも、このリリースで大幅に強化されています。)

PL/SQLパッケージ

新しいサブプログラム

SDO_GEOR(第4章を参照)

SDO_GEOR.addNODATA
SDO_GEOR.addSourceInfo

SDO_GEOR.createTemplate

SDO_GEOR.deleteNODATA

SDO_GEOR.generateBlockMBR

SDO_GEOR.generateStatistics

SDO_GEOR.getBinFunction

SDO_GEOR.getBitmapMask

SDO_GEOR.getBitmapMaskSubset

SDO_GEOR.getBitmapMaskValue

SDO_GEOR.getGeoreferenceType

SDO_GEOR.getModelCoordLocation

SDO_GEOR.getRasterBlockLocator

SDO_GEOR.getSourceInfo

SDO_GEOR.hasBitmapMask

SDO_GEOR.hasNODATAMask

SDO_GEOR.mergeLayers

SDO_GEOR.setBinFunction

SDO_GEOR.setBitmapMask

SDO_GEOR.setSourceInfo

SDO_GEOR.updateRaster

SDO_GEOR.validateBlockMBR

SDO_GEOR_ADMIN(第5章を参照)

(SDO_GEOR_ADMINパッケージは今回のリリースから導入されているため、すべてのサブプログラムが新しいサブプログラムとなります。)

SDO_GEOR_UTL(第6章を参照)

SDO_GEOR_UTL.calcRasterNominalSize
SDO_GEOR_UTL.calcRasterStorageSize

1 GeoRasterの概要および概念

GeoRasterはOracle Spatialの機能で、ラスター画像およびグリッド・データとその関連メタデータの格納、索引付け、問合せ、分析および配信を行います。GeoRasterは、Oracle空間データ型および1つのオブジェクト・リレーショナル・スキーマを提供します。これらのデータ型およびスキーマ・オブジェクトを使用すると、地表面またはローカル座標系での位置を参照可能な多次元グリッド・レイヤーとデジタル・イメージを格納できます。データが地理参照される場合、イメージ上のセルに対する地表の場所を検索したり、地表の場所に対して、その場所に関連付けられたイメージ上のセルを検索できます。

GeoRasterは、リモート・センシング、写真測量、主題図作成などの、イメージの取得または作成を行う任意のテクノロジからのデータに対して使用できます。ロケーション・ベースのサービス、地理イメージのアーカイブ、環境の監視とアセスメント、地質工学と地質学的調査、天然資源管理、防衛、緊急時対応、遠隔通信、輸送、都市計画、自国の保安などの広範囲な応用分野に利用できます。

注意:
GeoRasterを使用するには、Oracle Spatialの主な概念、データ型、使用方法、演算子、プロシージャおよびファンクションを理解しておく必要があります。これらの詳細は、『Oracle Spatial開発者ガイド』を参照してください。
また、ラスターとイメージの概念と用語、およびラスター・データを取得、作成または処理する方法も理解しておく必要があります。

GeoRasterは、Java仮想マシン(JVM)やOracle XML DBなど、Oracle Databaseに含まれるいくつかのコンポーネントを使用します。

インストールおよびアップグレードに関する注意:
Oracle XML DBリポジトリが適切にインストールされていること、およびCOMPATIBILITYデータベース初期化パラメータの値が10.0以上であることを確認してください。詳細は、『Oracle Spatial開発者ガイド』のインストール、互換性およびアップグレードに関する付録を参照してください。
データベースのアップグレード後に、SDO_GEOR_ADMIN.isUpgradeNeededファンクションをコールして、現在のリリースで無効なGeoRasterオブジェクトおよび無効なシステム・データを確認する必要があります。詳細は、3.20項を参照してください。

この章の内容は次のとおりです。

- 1.1項「ベクトル・データおよびラスター・データ」

- 1.2項「ラスター・データ・ソース」

- 1.3項「GeoRasterデータ・モデル」

- 1.4項「GeoRasterの物理記憶域」

- 1.5項「バンド、レイヤーおよびメタデータ」

- 1.6項「地理参照」

- 1.7項「ピラミッド」

- 1.8項「ビットマップ・マスク」

- 1.9項「NODATA値および値範囲」

- 1.10項「圧縮と解凍」

- 1.11項「GeoRasterおよびデータベースの管理」

- 1.12項「GeoRaster PL/SQL API」

- 1.13項「GeoRaster Java API」

- 1.14項「GeoRasterツール: ビューア、ローダー、エクスポータ」

- 1.15項「GeoRasterのPL/SQLおよびJavaデモ・ファイル」

- 1.16項「Oracle Spatialおよび関連機能のREADMEファイル」

1.1 ベクトル・データおよびラスター・データ

地理的な特徴は、ベクトル形式、ラスター形式、またはその両方で表現できます。ベクトル・データでは、点は明示的なx,y,z座標で表現され、線は点の連なりであり、領域は境界が線であるポリゴンとして表現されます。この種類のベクトル形式は、空間オブジェクトの場所および形状の正確な記録に使用できます。ラスター・データでは、オブジェクトを覆うセルに値を割り当てることで空間オブジェクトを表現でき、セルを配列として表現できます。この種類のラスター形式は、ベクトル形式よりも精度は低いですが、多くのタイプの空間分析に最適です。

ラスター地理情報システム(GIS)分野では、通常、この種類のラスター・データはグリッド・データと呼ばれます。イメージ処理システムでは、通常、ラスター・データ表現はグリッドではなくイメージと呼ばれます。グリッドとイメージの間に相違点はありますが、どちらの形式の空間情報も通常はマトリックス構造(セルの配列)で表現され、各セルは空間に規則的に配置されます。

1.2 ラスター・データ・ソース

ラスター・データは、リモート・センシング、航空写真測量、地図作成法およびグローバル・ポジショニング・システムなどの様々な地理情報テクノロジによって収集され、使用されています。データは、収集された後、デジタル・イメージ処理システム、コンピュータ・グラフィック・アプリケーションおよびコンピュータ画像認識テクノロジによって分析されます。これらのテクノロジでは、複数のデータ形式が使用され、様々な製品が作成されます。

この項では、アプリケーション開発時に知っておく必要のある概念および技術に焦点を当て、GeoRasterのいくつかの主要なデータ・ソースおよび使用方法について簡単に説明します。テクノロジの詳細は説明しないため、それらの情報については一般的な教本や参考資料を参照してください。

1.2.1 リモート・センシング

リモート・センシングでは、ある領域またはオブジェクトの情報を、その領域またはオブジェクトに物理的に接続していないデバイスを介して取得します。たとえば、センサーの例には、衛星、気球、飛行機、ボート、地上局などがあります。センサー・デバイスには、フレーム・カメラ、プッシュブルーム(走査)方式のセンサー、合成開口レーダー(SAR)、水路用ソナー、ペーパー・スキャナ、フィルム・スキャナなどの広範囲なデバイスを使用できます。リモート・センシング・アプリケーションには、環境のアセスメントや監視、地球変動の調査や監視、天然資源調査などのためのアプリケーションがあります。

リモート・センシングによって収集されたデータは、通常、地理イメージと呼ばれます。波長、バンド数およびその他の要因によって、地理イメージの放射特性が決定されます。地理イメージにはシングルバンド、マルチバンドまたはハイパースペクトルがあり、いずれもGeoRasterで管理できます。これらの地理イメージ(特に衛星で観測されたイメージ)は、地表のあらゆる領域を表現できます。気象衛星の場合などは高い時間解像度が得られるため、変更を簡単に検出できます。リモート・センシング・アプリケーションでは、多くの場合、様々なタイプの解像度(時間、空間、スペクトル、放射)が重要になります。

1.2.2 写真測量

写真測量では、写真による測定結果から測量情報を導出します。ほとんどの写真測量アプリケーションでは、航空写真や、衛星リモート・センシングによって収集された高解像度イメージが使用されます。従来の写真測量の主なデータは、白黒写真、カラー写真、立体写真セットなどのイメージです。

写真測量によって、イメージ作成時に存在したとおりのイメージとオブジェクトの精密な地理的関係が確立され、オブジェクトに関する情報をそのイメージから導出できます。イメージとオブジェクトの関係は、いくつかの方法によって確立できますが、その方法は、アナログ(光学的、機械的および電子的な構成要素を使用)または分析的(モデリングは数学的で処理はデジタル)の2つのカテゴリに分けられます。アナログのソリューションは、ソフトコピー写真測量とも呼ばれる、分析的/デジタルのソリューションに、次第に取って代わられています。

ソフトコピー写真測量システムでは、主に、数値標高モデル(DEM)やオルソ・イメージなどが生成されます。GeoRasterでは、これらのすべてのラスター・データを地理参照情報とともに管理できます。

1.2.3 地理情報システム

地理情報システム(GIS)は、地理参照情報を取得、格納および処理します。従来のGISソフトウェアはベクトルベースかラスターベースのいずれかでしたが、Oracle Spatialでは、GeoRaster機能によってラスターとベクトルの両方のデータを処理できます。

ラスターベースGISシステムは、通常、幾何補正されたグリッド・データを処理します。グリッド・データには、離散データまたは連続データがあります。離散データには行政的小区域、土地利用と土地被覆、バス路線、油井などがあり、これらは通常、整数グリッドとして格納されます。連続データには標高、アスペクト、汚染濃度、環境騒音レベル、風速などがあり、これらは通常、浮動小数点グリッドとして格納されます。GeoRasterでは、これらのすべてのデータを格納できます。

離散グリッド・レイヤーの属性は、値属性表(VAT)というリレーショナル表に格納されます。VATには、GISベンダーが指定した列が含まれており、ユーザーが定義した列を含めることもできます。VATは、単純な表としてOracle Databaseに格納できます。ラスターGISアプリケーションでそのVATを使用できるように、対応するGeoRasterオブジェクト内にVAT名を登録できます。

1.2.4 地図作成法

地図作成法は、地図を作成するための技術で、3次元の地表を(または地表以外の空間をローカル座標系を使用して)2次元で表すものです。今日では、地図をデジタルで作成したり、スキャンしてデジタル形式にできるようになり、地図作成が大幅に自動化されています。コンピュータに格納した地図では、高速な問合せ、分析および更新が可能です。

様々な使用方法や目的に対応する、多くのタイプの地図があります。地図のタイプの例には、基本図(背景)、主題図、地形図(3次元)、方位図、地籍図(土地利用)および差込み図などがあります。通常、地図には、縮尺棒、凡例、記号(北矢印など)、ラベル(都市名、河川名など)など、複数の注釈要素が含まれています。

地図は、ラスター形式(GeoRasterで管理可能)、ベクトル形式またはハイブリッド形式で格納できます。

1.2.5 デジタル・イメージ処理

デジタル・イメージ処理は、標準イメージ形式(TIFF、GIF、JFIF(JPEG)など)とSunラスター形式、および多くの地理イメージ形式(NITF、GeoTIFF、ERDAS IMG、PCI PIXなど)のラスター・データの処理に使用されます。イメージ処理技術は、リモート・センシング・アプリケーションおよび写真測量アプリケーションで広範囲に使用されています。これらの技術を必要に応じて使用して、解釈を容易にするためのイメージの強調、修正および復元や、ぶれ、ひずみ、その他のノイズの修正、および地理オブジェクトの自動分類とターゲット識別を行うことができます。GeoRasterでは、ソース・イメージ、中間イメージおよび結果イメージをロードして管理できます。

1.2.6 地質学、地球物理学および地球化学

地質学、地球物理学および地球化学のすべての分野ではデジタル・データが使用され、GeoRasterで管理可能ななんらかのデジタル・ラスター地図が作成されます。

- 地質学では、このデータには地域地質図、地層図、岩盤すべりの写真などが含まれます。地質学的調査および石油地質学で広く利用されるコンピュータによる地層シミュレーション、合成鉱物の推算、3次元での油田の特徴付けでは、ラスター・データが使用されます。

- 地球物理学では、重力、磁界、地震波の伝達およびその他の項目に関するデータを、地理参照情報とともに記録します。

- 地球化学では、複数の化学元素の含有量を分析および測定できます。多くの場合、Triangulated Irregular Network (TIN)技術を使用して、さらなる分析のためのラスター地図が作成され、イメージ処理も広範囲に使用されます。

1.3 GeoRasterデータ・モデル

ラスター・データには、次の要素の一部またはすべてを含めることができます。

- セルまたはピクセル

- 空間ドメイン(フットプリント)

- 空間参照情報、時間参照情報およびバンド参照情報

- セル属性

- メタデータ

- 処理データおよび地図サポート・データ

GeoRasterでは、論理レイヤーを含む、構成要素ベースで多次元の汎用ラスター・データ・モデルを使用します。ラスターのコア・データは、ラスター・セルの多次元のマトリックスです。各セルはマトリックスの1つの要素であり、セルの値はセル値と呼ばれ、セルの中心でサンプリングされます。GeoRasterオブジェクトをイメージとして表現する場合、セルはピクセルとも呼ばれ、1つのピクセルは1つの値のみを持ちます。(GeoRasterでは、セルとピクセルという用語は同義で使用されます。)マトリックスには、次元数、セル深度、各次元のサイズがあります。セル深度は、各セルの値のデータ・サイズです。セル深度は、すべてのセル値の範囲を定義し、この範囲は、セルの配列ではなく、個々のセルの範囲です。このコア・ラスター・データのセットをブロック化して、格納および取得を最適化できます。

このデータ・モデルには、論理レイヤー構造が含まれます。コア・データは、1つ以上の論理レイヤーで構成されています。たとえば、マルチチャネル・リモート・センシング・イメージの場合、このレイヤーを使用してイメージのチャネルがモデル化されます。(バンドおよびレイヤーの詳細は、1.5項を参照してください。)今回のリリースでは、各レイヤーは、行次元と列次元で構成されるセルの2次元マトリックスです。

GeoRasterデータにはメタデータと属性が含まれ、GeoRasterデータの各レイヤーには個別のメタデータと属性が含まれます。GeoRasterデータ・モデルでは、コア・セル・マトリックス以外のすべてのデータは、GeoRasterメタデータです。GeoRasterメタデータは、さらに様々な構成要素に分割され(このため構成要素ベースと呼ばれます)、これらの構成要素には、次の種類の情報が含まれます。

- オブジェクト情報

- ラスター情報

- 空間参照システム情報

- 日時(時間参照システム)情報

- バンド参照システム情報

- 各レイヤーのレイヤー情報

GeoRasterオブジェクトは、このデータ・モデルに基づいて、GeoRasterメタデータのXMLスキーマ(「付録A」を参照)によって記述され、このXMLスキーマを使用して、メタデータが構成されます。スキーマの一部のコンポーネントおよびサブコンポーネントは必須で、それ以外はオプションです。GeoRasterのローダー、エクスポータまたはその他のアプリケーションを開発する場合、このXMLスキーマを理解しておく必要があります。今回のリリースでは、メタデータに関するいくつかの制限事項があり、詳細は、第4章の「SDO_GEOR.validateGeoRaster」ファンクションの「使用上の注意」を参照してください(SDO_GEOR.validateGeorasterは、GeoRasterオブジェクトのメタデータの妥当性をチェックします)。

GeoRasterオブジェクトのデータ型(第2章を参照)は、GeoRasterデータ・モデルに基づいています。

このデータ・モデルでは、ラスター・マトリックス内の各ピクセル(セル)の座標、およびその座標が表す地表面の座標という、2つのタイプの座標を考慮する必要があります。このため、セル座標系とモデル座標系の2つのタイプの座標系(空間)が定義されています。

セル座標系(ラスター空間とも呼ばれる)は、ラスター・マトリックス内のセルおよびセルの間隔の記述に使用され、セル座標系の次元は、行、列およびバンド(この順序どおり)です。モデル座標系(地上座標系またはモデル空間とも呼ばれる)は、地表の点、またはOracle SRID値に関連付けられた任意の座標系の記述に使用されます。モデル座標系の空間次元は、XおよびY(この順序どおり)で、それぞれセル座標系の列次元と行次元に相当します。論理レイヤーは、セル空間のバンド次元に相当します。

図1-1に、ラスター・イメージとそれに関連付けられた地理(空間)エクステントの関係、およびイメージの部分とそれらに関連付けられた地理実体の関係を示します。

図1-1 ラスター空間とモデル空間

次に、図1-1について説明します。

- 左側のオブジェクトでは、中サイズの四角形はラスター・イメージを表し、その中の四角形の領域は国立公園、点は特定のレストランの位置を表しています。イメージ内の各ピクセルは、セル座標系(ラスター・イメージに関連付けられる座標系)の座標で表すことができます。中サイズの四角形の左上角は、このGeoRasterオブジェクトのセル空間のULTCoordinate値に関連付けられた座標値です。

- 右側のオブジェクトでは、大きい四角形は、ラスター・イメージに表される地理領域(モデル(地上)空間での)を表し、この四角形の中には、国立公園と特定のレストランを表す空間ジオメトリが存在します。地理領域全体とその中のジオメトリは、モデル(地上)座標系の座標(経度/緯度データ用のWGS 84など)を使用してそれぞれ表すことができます。

2次元の単一レイヤーGeoRasterデータの場合、下方向の行次元および右方向の列次元がセル座標系に含まれます(図1-1を参照)。セル空間の基点は常に(0,0)です。間隔は1セルまたは1ピクセルで、多くの場合、セル座標は、整数の行番号および列番号で識別されます。マルチバンド・イメージの場合、バンド方向の軸はバンド次元と呼ばれます。時系列のマルチレイヤー・イメージ(各レイヤーに異なる日付またはタイムスタンプが設定される)の場合、レイヤー方向の軸は時間次元と呼ばれます。3次元GeoRasterデータには、行次元と列次元の両方に対して垂直である、垂直次元が含まれます。

注意:
今回のリリースでは、セル座標系の行次元、列次元およびバンド次元のみがサポートされています。行次元と列次元は、2次元空間座標のモデル化に使用されます。バンド次元は、マルチチャネルのリモート・センシング・イメージまたは写真、およびその他のタイプのレイヤー(時間レイヤーや、複数のグリッドを含む主題など)のモデル化に使用できます。

ラスター・データが数値の配列として処理される場合、ほとんどのアプリケーションにおいて行番号および列番号を使用した整数のアドレスで十分です。ただし、一般的にラスター・データ配列は連続する空間の離散表現であるため、セルの値が領域の集合値または点の単一値のいずれを表しているかに関係なく、セル空間とモデル空間の間の座標の1対1マッピングが必要です。

つまり、セル空間のサブセル(サブピクセル)・アドレッシングが必要です。サブセル・アドレッシングをサポートするために、セルの基点(0,0)が定義されている場所に応じて、GeoRasterは2つのタイプのセル座標系を定義します。図1-2は、各四角形が1つのセルを表し、2つのタイプのセル座標系(中心を基準とする座標系と左上を基準とする座標系)を示します。

図1-2 2つのタイプのセル座標系

デフォルトのセル座標系は基点がセルの中心にあるため、中心を基準とするセル座標系と呼ばれます。もう1つのセル座標系では基点がセルの左上にあるため、左上を基準とするセル座標系と呼ばれます。どちらの座標系でも、セルは均等なサイズの四角形で、単位は1セルです。IおよびJは整数、xおよびyは浮動小数点数と想定しています。

- 中心を基準とするセル空間では、I-0.5 <= x < I+0.5およびJ-0.5 <= y < J+0.5である場合、座標(x, y)は(I,J)にマップされます。

- 左上を基準とするセル空間では、I <= x < I+1.0およびJ <= y < J+1.0である場合、座標(x, y)はセル(I,J)にマップされます。

たとえば、サブセル座標(0.3, 0.3)は両方の座標系で同じ整数セル座標(0,0)を持ちますが、(0.3,0.6)は中心を基準とするセル空間では(0,1)を意味し、左上を基準とするセル空間では(0,0)を意味します。この2つのタイプのセル座標系は、spatialReferenceInfoメタデータのmodelCoordinateLocation要素によって定義されますが、定義されていない場合、デフォルトは中心を基準とするタイプになります。GeoRasterは、Oracle Database 11gで有効な両方のセル座標系をサポートし、サブセル・アドレスは、GeoRaster PL/SQL APIでサポートされます。(サブセル・アドレスは、以前のリリースでは内部的にサポートされていました。)

GeoRasterでは、セル空間の基点は常に(0,0)ですが、ラスター・データ自体の左上角のセルには、セル空間の基点座標とは異なる、セル空間内の座標を指定できます。したがって、左上角のセルの整数(行,列)座標は、(0,0)である必要はありません。この左上角をULTCoordinateといい、その値はメタデータに登録されます。これは基本的には、セル空間内のデータの相対位置を定義します。バンド次元が存在する場合、ULTCoordinate値は常に(行,列,0)です。各セルの座標は、ULTCoordinate値ではなく、セル空間の基点を基準としています。セル座標系の基点は、ULTCoordinate値と同じである必要はありません。

モデル座標系は、空間次元およびその他の次元(存在する場合)で構成されます。空間次元はx次元、y次元、およびz次元と呼ばれ、これらの次元の値は、測地座標系、投影座標系またはローカル座標系に関連付けることができます。その他の次元には、スペクトル次元および時間次元(それぞれs次元およびt次元と呼ばれる)があります。GeoRaster SRSでは現在、モデル座標系の2つの空間次元(X,Y)および3つの空間次元(X, Y, Z)がサポートされています。(様々な座標系のタイプなど、座標系の詳細は、『Oracle Spatial開発者ガイド』を参照してください。)

GeoRasterモデル座標系は、Oracle Spatial SRIDによって定義されます。モデル座標は、指定したSRIDと同じ単位を持ち、モデル座標系で定義された値の範囲内にある必要があります。たとえば、8307などの測地座標系にGeoRasterオブジェクトを地理参照する場合、その空間参照システム(SRS)から導出されるモデル座標の単位は10進度で、経度の値は-180.0から+180.0の範囲内に、緯度の値は-90.0から+90.0の範囲内にあることが必要です。

セル座標とモデル座標の関係は、GeoRasterの参照システム(マッピング方法)によってモデル化されます。定義されているGeoRasterの参照システムを次に示します。

- 空間参照システム(GeoRaster SRS)では、セル座標(行,列,垂直位置)がモデル座標(X,Y,Z)にマップされます。GeoRasterデータに空間参照システムを使用することを、データを地理参照するといいます。(地理参照の詳細は、1.6項を参照してください。)

- 時間参照システム(GeoRaster TRS)では、セル座標(時間)がモデル座標(T)にマップされます。

- バンド参照システム(GeoRaster BRS)では、セル座標(バンド)がモデル座標(S (スペクトル(Spectral)のS))にマップされます。

今回のリリースでは、これらの各参照システムの少なくとも一部がGeoRasterのXMLスキーマに定義されています。ただし、今回のリリースでは、空間参照システムのみがサポートされています。つまり、(行,列)座標と(X,Y)または(X, Y, Z)座標の関係のみをマップ可能です。モデル座標系が測地座標系である場合、(X,Y)は(経度,緯度)を表します。ただし、時間参照システムおよびバンド参照システムを使用して、スペクトル分解や、ラスター・データの収集タイミングなどの有効な時間情報およびスペクトル情報を格納できます。

その他のメタデータは、1.5項に示すように、GeoRaster XMLメタデータの<layerInfo>要素に格納されます。

1.4 GeoRasterの物理記憶域

GeoRasterデータは、セルの多次元マトリックスおよびGeoRasterメタデータで構成されます(1.3項を参照)。多くのメタデータは、Oracle XMLTypeデータ型を使用してXML文書として格納されます。メタデータは、GeoRasterメタデータのXMLスキーマ(付録Aを参照)に従って定義されます。GeoRasterオブジェクトの空間エクステント(フットプリント)はメタデータの一部ですが、これはGeoRasterオブジェクトの属性として、個別に格納されます。この方法によって、GeoRasterで空間ジオメトリ型および関連機能(GeoRasterオブジェクトに対するRツリー索引付けなど)を利用できるようになります。空間エクステントの詳細は、2.1.2項を参照してください。

大規模なGeoRasterオブジェクトを格納したり、取得や処理のパフォーマンスを最適化するために、セルの多次元マトリックスを小さいサブセットにブロック化できます。各ブロックはバイナリ・ラージ・オブジェクト(BLOB)として表に格納され、(SDO_GEOMETRY型の)ジオメトリ・オブジェクトを使用してブロックの正確なエクステントが定義されます。表の各行には、1つのブロックと、そのブロックに関連するブロック化情報のみが格納されます。(このブロック化方法は、ピラミッドにも適用されます。)

次元サイズ(行次元、列次元、バンド次元)は、対応するブロック・サイズで均等に分割されない場合があります。GeoRasterでは、境界ブロックを完成するために十分な元のセルが存在しない場合、埋込みが追加されます。境界ブロックは、各次元の正の方向の終了ブロックです。埋込みセルのセル深度は他のセルと同一で、値は0(ゼロ)です。埋込みによって、各ブロックのBLOBサイズが同一になります。埋込みは、主に行ブロックおよび列ブロックに適用されますが、マルチバンド・イメージおよびハイパースペクトル・イメージの場合、バンド次元にも適用されます。たとえば、ライン単位のバンド・インターリーブ、(64,64,3)でのブロック化、8バンド、各バンドに64行および64列という仕様について考えてみます。この場合、次のようになります。

1. 1つ目のブロックには、バンド0、1および2がライン単位のインターリーブで格納されます。

2. 2つ目のブロックには、バンド3、4および5がライン単位のインターリーブで格納されます。

3. 3つ目のブロックには、バンド6のライン1、バンド7のライン1、埋め込まれた64個の列値、バンド6のライン2、バンド7のライン2、埋め込まれた64個の列値、のように、64個のすべての行が格納されるまでこの順番で格納されます。

ただし、ピラミッドの最上位レベルでは、そのピラミッド・レベルの行次元と列次元の両方のサイズがそれぞれ行ブロック・サイズと列ブロック・サイズの半分以下の場合、埋込みは行われません。ピラミッドの物理記憶域の詳細は、1.7項を参照してください。

各GeoRasterブロックのサイズは同一です。ブロックの次元サイズは2の累乗値である必要はありません。ランダムな整数値です。各GeoRasterオブジェクトで最小限の埋込みスペースのみが使用されるように、ブロック・サイズは、GeoRasterオブジェクトの次元サイズに基づいて自動的に最適化できます。詳細は、1.4.1項の表1-1を参照してください。

ラスター・ブロック(BLOB)には、ラスター・セル値のバイナリ表現が含まれます。具体的には、浮動小数点のセル値は、サポートされているプラットフォーム上でIEEE 754標準形式で表されます。セル深度が8ビットよりも大きい場合、GeoRasterのセル・データはラスター・ブロックにビッグエンディアン形式で格納されます。セル深度が8ビットよりも小さい場合、ラスター・ブロックの各バイトには2つ以上のセルが含まれるため、1バイトのすべてのビットには、セル・データが埋め込まれます。セルは、必ず左から右へとバイトに埋め込まれます。たとえばセル深度が4ビットの場合は、1つのバイトに2つのセルが含まれ、そのバイトの最初の4ビットにはセルの値が含まれ、後の4ビットには次のセルの値が含まれますが、これは、インターリーブ・タイプで決定されます。

この物理記憶域モデルに基づいて、ラスター・データ・セットと関連メタデータ用のSDO_GEORASTER、およびラスター・イメージ内の各ブロック用のSDO_RASTERという2つのオブジェクト型が提供されています。

- SDO_GEORASTERオブジェクトには、空間エクステント・ジオメトリ(フットプリントまたは範囲のエクステント)および関連メタデータが含まれます。このオブジェクト型の列を1つ以上含む表を、GeoRaster表といいます。

- SDO_RASTERオブジェクトには、GeoRasterオブジェクトのブロック(タイル)に関する情報が含まれ、BLOBオブジェクトを使用して、ブロックのラスター・セル・データが格納されます。このオブジェクト型のオブジェクト表は、ラスター・データ表(RDT)と呼ばれます。

各SDO_GEORASTERオブジェクトには、RDTを一意に識別する属性の組合せ(rasterDataTableとrasterID)、およびGeoRasterオブジェクトのラスター・セル・データを格納するRDT内の行が存在します。

図1-3に、様々な都市のイメージを持つ行を含む表内の、マサチューセッツ州ボストンのイメージを例にあげて、GeoRasterオブジェクトの記憶域を示します。

図1-3 GeoRasterデータの物理記憶域

次に、図1-3について説明します。

- CITY_IMAGES表内の各行には、SDO_GEORASTERオブジェクトを含む、特定の都市(ボストンなど)のイメージに関する情報が含まれています。

- SDO_GEORASTERオブジェクトには、イメージの全領域を占める空間エクステント・ジオメトリ、メタデータ、ラスターID、およびこのイメージに関連付けられたラスター・データ表の名前が含まれています。

- ラスター・データ表内の各行には、ブロックの最小境界矩形(MBR)およびイメージ・データ(BLOBとして格納)を含む、イメージのブロック(四角形)に関する情報が含まれています。ラスター・データ表の詳細は、1.4.2項を参照してください。

SDO_GEORASTERおよびSDO_RASTERオブジェクト型の詳細は、第2章を参照してください。

図1-4に、データベース内のGeoRasterデータ、およびいくつかの関連オブジェクトの物理記憶域を示します。

図1-4 Oracle Database内のGeoRasterデータ

次に、図1-4について説明します。

- GeoRaster表内の各GeoRasterオブジェクトには、1つのラスター・データ表が関連付けられています。この表には、ラスター・イメージの各ブロックに対応するエントリが含まれています。

- 各ラスター・イメージ・ブロックに対応するイメージ・データを含むBLOBは、ラスター表データとは別に格納されます。BLOBには、記憶域パラメータ(1.4.1項を参照)を指定できます。

- 各GeoRasterオブジェクトには、1つのラスター・データ表が関連付けられます。ただし、1つのラスター・データ表には複数のGeoRasterオブジェクトのブロックを格納できるため、GeoRaster表内の複数のGeoRasterオブジェクトは、1つのラスター・データ表に関連付けられる場合と、複数のラスター・データ表に関連付けられる場合があります。

- GeoRaster表とラスター・データ表の関係は、GeoRasterシステム・データ(2.4項を参照)に保持されます。

- GeoRaster表およびラスター・データ表には、索引(標準および空間)を作成できます。GeoRasterデータの索引付けの詳細は、3.7項を参照してください。

- 地上基準点(GCP)や値属性表(VAT)などの追加情報を、GeoRasterオブジェクトに関連付けることができます。

GeoRaster表と、それに関連するラスター・データ表の間では、1対多関係を保持する必要があります。つまり、ラスター・データ表には、同じGeoRaster表に属するGeoRasterオブジェクトのセル・データのみを含める必要があります。

次の考慮事項は、スキーマ、表、および任意のOracle Spatialメタデータ・ビューに格納されている列名に適用されます。たとえば、これらの考慮事項はジオメトリ表、GeoRaster表、ラスター・データ表、およびジオメトリとGeoRaster列に適用されます。

- 名前には、文字、数字、下線のみが使用できます。たとえば、名前に空白( )、アポストロフィ(')、引用符(")またはカンマ(,)を使用することはできません。

- 名前がジオメトリ・メタデータ・ビューまたはGeoRasterシステム・データ(xxx_SDO_GEOR_SYSDATA)ビューに格納される前、あるいは表にアクセスする前に、名前で使用されているすべての文字は大文字に変換されます。表名で指定されるすべてのスキーマ名も、同様に変換されます。

ラスター・データ表の詳細は、1.4.2項を参照してください。

GeoRaster表およびラスター・データ表におけるクロススキーマのサポートの詳細は、1.4.5項を参照してください。

1.4.1 記憶域パラメータ

一部のGeoRaster操作では、記憶域の形式を指定または変更できます。関連のサブプログラムには、storageParamというパラメータが含まれており、このパラメータでは、キーワードとその値の文字列を引用符で囲みます。storageParamパラメータのキーワードは、ラスター・データの特性を指定します(表1-1を参照)。

注意:
この項に示すキーワードは、SDO_GEOR.importFromプロシージャのstorageParamパラメータおよびSDO_GEOR.exportToプロシージャのsubsetParamパラメータには、部分的に該当するか、または該当しません。第4章に示す、これらの各プロシージャに該当するパラメータのリファレンス情報を参照してください。

注意:
GeoRasterのサブプログラムに対する文字列(VARCHAR2)パラメータの中に数値がある場合は、ロケールにかかわらず、小数点にはピリオド(.)を使用する必要があります。

表1-1 ラスター・データのstorageParamのキーワード

キーワード

説明

bitmapmask

ビットマップ・マスクを考慮するかどうかを指定します。関連付けられたビットマップ・マスクを考慮する場合はTRUE、ビットマップ・マスクを考慮しない場合はFALSEを指定します。SDO_GEOR.copy、SDO_GEOR.changeFormatCopy、SDO_GEOR.mergeLayers、SDO_GEOR.scaleCopyおよびSDO_GEOR.subsetの場合はデフォルトがTRUE、SDO_GEOR.mosaicの場合はデフォルトがFALSEです(SDO_GEOR.mosaicでは、TRUEは無効であり、無視されます)。

blocking

ラスター・データをブロック化するかどうかを指定します。TRUEを指定すると、指定したまたはデフォルトのblockSize値のブロックで、ラスター・データがブロック化されます。OPTIMALPADDINGは、指定したblockSize値が埋込みスペースを縮小するために最適値に調整されること以外、TRUEと同じです。FALSEを指定すると、ラスター・データはブロック化されません(イメージ全体に1つのブロックのみが使用されます)。OPTIMALPADDINGを指定すると、GeoRasterでSDO_GEOR_UTL.calcOptimizedBlockSizeプロシージャが内部的にコールされます。

blockingのデフォルト値は、blockSizeキーワードを指定した場合はTRUEです。blocking=TRUEを指定し、blockSizeキーワードを指定しない場合、デフォルトのblockSizeが(256,256,B)になります(Bは出力されるGeoRasterオブジェクトのバンド数です)。blockingとblockSizeのいずれも指定しない場合、ソースGeoRasterオブジェクトからデフォルト値が導出されます(元のデータがブロック化されていない場合、デフォルトでは、出力されるGeoRasterオブジェクトのデータはブロック化されず、元のデータがブロック化されている場合、出力されるGeoRasterオブジェクトのデータは、同じブロック化方法でブロック化されます)。

blockSize

ブロック・サイズ(ブロック当たりのセル数)を指定します。出力されるGeoRasterオブジェクトの各次元に1つの値を指定する必要があります。たとえば、blocksize=(512,512,3)の場合、行次元に512、列次元に512、およびバンド次元に3が指定され、blocksize=(256,256)の場合、バンド次元を含まないGeoRasterオブジェクトの行および列のブロック・サイズに256が指定されます。値は負以外の整数である必要があります。値が0 (ゼロ)である場合は、ブロック・サイズが対応する次元のサイズであることを意味します。値が対応する次元のサイズより大きい場合は、埋込みが適用されます。この表のblockingキーワードの説明および第6章のSDO_GEOR_UTL.calcOptimizedBlockSizeプロシージャの説明も参照してください。

通常のブロック化のみがサポートされます(すべてのブロックは常に同一サイズで、均等に配置されますが、ピラミッドの一部の最上位レベルはこのかぎりではありません)。ただし、ブロックの次元サイズは2の累乗値である必要はありません。ランダムな整数値です。たとえば、blockSize値として(589,1236,7)を指定できます。

ラスター・ブロックの物理記憶域サイズは、4GB以下である必要があります。

cellDepth

ラスター・データ・セットのセル深度を指定します(このセル深度は、すべてのセルのビット数およびデータ型の符号を示します)。ただし、セル深度を変更すると、データが消失したり、精度やイメージ品質が低下する場合があることに注意してください。値は、1BIT、2BIT、4BIT、8BIT_U、8BIT_S、16BIT_U、16BIT_S、32BIT_U、32BIT_S、32BIT_REALまたは64BIT_REAL(_Uは符号なし、_Sは符号付き)のいずれかである必要があります。(複合cellDepth型はサポートされません。)cellDepthを指定しない場合、デフォルトでは、ソースGeoRasterオブジェクトの値が使用されます。たとえば、celldepth=16BIT_Uのように指定します。

compression

GeoRasterオブジェクトに適用する圧縮タイプを指定します。JPEG-B、JPEG-F、DEFLATEまたはNONEのいずれかの値を指定する必要があります。(NONEを使用して、圧縮されたGeoRasterオブジェクトを解凍できます。)compressionを指定しない場合、デフォルトでは、ソースGeoRasterオブジェクトの圧縮タイプが使用されます。圧縮および解凍の詳細は、1.10項を参照してください。たとえば、compression=JPEG-Fのように指定します。

ソースGeoRasterオブジェクトが空白の場合は、SDO_GEOR.getRasterSubsetファンクションおよびSDO_GEOR.getRasterDataファンクションを除き、compressionキーワードは無視されます。(空白のGeoRasterオブジェクトの詳細は、1.4.3項を参照してください。)

interleaving

インターリーブ・タイプを指定します。(インターリーブの詳細は、1.5項を参照してください。)値は、BSQ(順次バンド)、BIL(ライン単位のバンド・インターリーブ)またはBIP (ピクセル単位のバンド・インターリーブ)のいずれかである必要があります。たとえば、interleaving=BSQのように指定します。

pyramid

元のピラミッド・データを保持する場合はTRUE、元のピラミッド・データを保持しない場合はFALSEを指定します。デフォルト値は、プロシージャによって異なり、SDO_GEOR.copyおよびSDO_GEOR.changeFormatCopyの場合はTRUE、SDO_GEOR.scaleCopy、SDO_GEOR.mosaicおよびSDO_GEOR.subsetの場合はFALSEです。(SDO_GEOR.scaleCopy、SDO_GEOR.mosaicまたはSDO_GEOR.subsetではTRUEは無効であり、無視されます。)

記憶域パラメータを使用してピラミッド・データを生成することはできません。ピラミッド・データを生成するには、GeoRasterオブジェクトの作成後にSDO_GEOR.generatePyramidプロシージャを使用する必要があります。

quality

JPEGの圧縮品質(圧縮によって発生する劣化の程度)を指定します。0 (最低の品質)から100 (最高の品質)までの整数値をGeoRasterオブジェクトに適用します。デフォルト値は75です。圧縮品質の詳細は、1.10.1項を参照してください。たとえば、quality=80のように指定します。

例1-1では、ブロック・サイズを変更し、元のオブジェクトのピラミッド・データをコピーせずに、GeoRasterオブジェクトをコピーします。

例1-1 storageParamキーワードの使用

DECLARE
gr1 sdo_georaster;
gr2 sdo_georaster;
BEGIN
INSERT INTO georaster_table (georid, georaster) VALUES (2, sdo_geor.init('RDT_1'))
RETURNING georaster INTO gr2;
SELECT georaster INTO gr1 FROM georaster_table WHERE georid=1;
sdo_geor.changeFormatCopy(gr1, 'blocksize=(128,128) pyramid=FALSE', gr2);
UPDATE georaster_table SET georaster=gr2 WHERE georid=2;
COMMIT;
END;
/

例1-1では、GeoRasterオブジェクトgr2のラスター・データ表はRDT_1です。ラスター・データを表RDT_1に書き込む場合、PL/SQLブロックの実行前にこの表が存在する必要があります。存在しない場合、SDO_GEOR.changeFormatCopyプロシージャでエラーが発生します。

注意:
GeoRasterのセル・データまたはメタデータを挿入、更新または削除する場合は、例1-1および3.16項に示すように、トランザクションをコミットする前にGeoRasterオブジェクトを更新します。

例1-1および第4章の複数の例では、次のように定義されているGEORASTER_TABLEという表を使用しています。

CREATE TABLE georaster_table
( georid    NUMBER PRIMARY KEY,
name      VARCHAR2(32),
georaster SDO_GEORASTER );

1.4.2 ラスター・データ表

ラスター・データ表は、SDO_RASTER型のオブジェクト表である必要があり、列(rasterID、pyramidLevel、bandBlockNumber、rowBlockNumber、columnBlockNumber)に主キーが定義されている必要があります。

各ラスター・データ表の名前は、引用符で囲まれていない有効な識別子と同じである必要があり、これらの名前は、スキーマ接頭辞を使用せずに、GeoRasterメタデータ・ビューおよびSDO_GEORASTERオブジェクトにすべて大文字で格納されます。(各GeoRaster列の名前は、引用符で囲まれていない有効な識別子と同じである必要があり、GeoRasterメタデータ・ビューにすべて大文字で格納されます。)また、各ラスター・データ表の名前は、データベース内で一意である必要があります。ラスター・データ表の名前の重複を解決するために、SDO_GEOR_ADMIN.maintainSysdataEntriesファンクションを使用できます(第5章を参照)。

ラスター・データ表の配置および記憶域特性は、ユーザーが制御できます(たとえば、パフォーマンスの向上のために表をパーティション化するなど)。大規模なGeoRasterオブジェクトの場合、ラスター・データを別のラスター・データ表に格納し、そのラスター・データ表をピラミッド・レベルまたはブロック番号(あるいはその両方)でパーティション化することをお薦めします。GeoRaster表およびラスター・データ表の格納には、SYSTEM表領域を使用しないでください。かわりに、GeoRaster表用の個別のローカル管理(デフォルト)表領域を作成してください。

ラスター・データ表の行を直接挿入または削除しないでください。該当するRDT内の行は、GeoRasterオブジェクトがラスター・データを使用して作成されたときやGeoRasterの表から削除されたときに、自動的に挿入または削除されます。

ラスター・データのブロック・サイズを選択する際は、次のことを考慮します。

- ラスター・ブロックの最大長は4GBです。4GBを超えるブロック・サイズを指定しないでください。

- 必要なラスター・ブロック・サイズを計算する際は、GeoRasterオブジェクトのcellDepth値を考慮します。

- 適切なブロック・サイズを選択するには、ラスター・ブロック・サイズと、GeoRasterオブジェクトに必要なブロック数のバランスを取ります。サイズの大きいラスター・データの場合、行および列の次元サイズとして最低でも(512,512)をお薦めします。ラスター・ブロックが4 KBに近くなるようなブロック化サイズ値は、4 KBがOracleのBLOBを表外に格納する場合のしきい値であるため、通常は適切ではありません。

BasicFile LOB(BasicFiles)およびSecureFile LOB(SecureFiles)を使用した例を含む、ラスター・データ表の作成の詳細は、3.1.2項を参照してください。

1.4.3 空白のGeoRasterオブジェクトと空のGeoRasterオブジェクト

空白のGeoRasterオブジェクトは、すべてのセルが同じ値を持つ、特別なタイプのGeoRasterオブジェクトです。このオブジェクトのセルは、SDO_RASTERブロックに格納する必要はなく、かわりに、このセル値はメタデータのblankCellValue要素に登録されます。それ以外の点では、空白のGeoRasterオブジェクトは他のGeoRasterオブジェクトと同様に処理されます。空白のGeoRasterオブジェクトを作成するにはSDO_GEOR.createBlankファンクションを使用し、GeoRasterオブジェクトが空白のGeoRasterオブジェクトかどうかを確認するには、SDO_GEOR.isBlankファンクションを使用し、また、空白のGeoRasterオブジェクト内のセルの値を戻すには、SDO_GEOR.getBlankCellValueファンクションを使用します。

空のGeoRasterオブジェクトには、rasterDataTable名およびrasterIDのみが含まれます。空のGeoRasterオブジェクトを作成するには、SDO_GEOR.initファンクションを使用します。新しいGeoRasterオブジェクトを出力する操作の前に、空のGeoRasterオブジェクトを作成する必要があり、これによって、新しいGeoRasterオブジェクトの出力が、初期化済の空のGeoRasterオブジェクトに格納されます。

1.4.4 空のラスター・ブロック

GeoRasterは、容量の大きいモザイク・オブジェクトで記憶領域を節約したり、ラスター処理速度を向上させるために、空のラスター・ブロックをサポートしています。空のラスター・ブロックは、容量の大きいGeoRasterオブジェクトの特定のラスター・ブロックに対して使用可能なラスター・データがない場合に使用します。このようなGeoRasterデータは、特別なスパース・データ型のデータです。空の各ラスター・ブロックのラスター・データ表内にはエントリが存在していますが、BLOBの長さは(空であることを示す)0(ゼロ)になります。

GeoRaster操作(SDO_GEOR.changeCellValue、SDO_GEOR.changeFormatCopy、SDO_GEOR.generatePyramid、SDO_GEOR.getRasterData、SDO_GEOR.getRasterSubset、SDO_GEOR.mergeLayers、SDO_GEOR.mosaic、SDO_GEOR.scaleCopy、SDO_GEOR.subset、SDO_GEOR.updateRasterなど)が、空のラスター・ブロックを持つソースGeoRasterオブジェクトに適用されると、空のまたは部分的に空の結果のラスター・ブロックが生成される可能性があります。

結果のラスター・ブロックは、そのブロック内のすべてのセルが空のソース・ラスター・ブロックから導出される場合に、空になります。結果のラスター・ブロックは、そのブロック内の一部のセルが空のソース・ラスター・ブロックから導出される場合にのみ、部分的に空になります。空のソース・ラスター・ブロックから導出された部分的に空の結果のラスター・ブロック内のセルは、特定の背景値(bgValuesパラメータで指定されている場合)または0(ゼロ)(bgValuesパラメータが指定されていない場合)に設定されます。この設定が行われると、部分的に空のラスター・ブロックは通常の空ではないラスター・ブロックと同様になり、操作を終了した後に、結果のGeoRasterオブジェクト内の各ラスター・ブロックは、空または空ではない状態になります。

部分的に空のラスター・ブロックにデータを入力するとラスター・データが永続的に変更されてしまうため、GeoRasterオブジェクトの操作を行う際には一貫性のある背景値を適切に選択する必要があります。背景値としては、GeoRasterメタデータに格納されているNODATA値(存在する場合)を選択することをお薦めしますが、一貫して使用されている値であれば、他の背景値も選択できます。

GeoRasterオブジェクトに空のラスター・ブロックが含まれている場合、SDO_GEOR.generatePyramidの操作中に、部分的に空のラスター・ブロックに背景値または0 (ゼロ)が入力されるため、GeoRasterオブジェクトのピラミッド・データに空のラスター・ブロックが格納されないことがあります。このファンクションをコールしてピラミッドを生成するときは、この項の説明のように一貫性のある背景値を選択するように注意してください。

ビットマップ・マスク(1.8項を参照)にも空のラスター・ブロックが含まれる場合があり、欠落しているセルの値は0(ゼロ)を示します。データの入力が必要な場合、欠落しているセルは必ず0(ゼロ)の値で充填されます。

1.4.5 GeoRasterにおけるクロススキーマのサポート

GeoRaster表と、それに関連するラスター・データ表では、所有者が同じである必要があります。ただし、適切な権限を持つユーザーは、他のスキーマが所有するGeoRaster表と、それに関連するラスター・データ表を作成でき、他のスキーマが所有しているGeoRasterオブジェクトを作成、問合せ、更新および削除することもできます。GeoRasterオブジェクトのクロススキーマ問合せでは、GeoRaster表と、それに関連するラスター・データ表についてSELECT権限を持っている必要があります。GeoRasterオブジェクトのクロススキーマ更新では、GeoRaster表と、それに関連するラスター・データ表についてSELECT、INSERT、UPDATEおよびDELETE権限を持っている必要があります。

2.4項で説明するALL_SDO_GEOR_SYSDATAビューには、現行ユーザーがアクセス可能なすべてのGeoRasterオブジェクトに関する情報が含まれています。リストされている各オブジェクトについて、現行ユーザーはGeoRaster表にアクセスできる必要があります。現行ユーザーがラスター・データにアクセスすることも必要な場合、そのユーザーは、関連するラスター・データ表に対する適切な権限も持っている必要があります。

すべてのSDO_GEORサブプログラムは、現行の接続スキーマ以外のスキーマに定義されているGeoRasterオブジェクトに対して機能できます。

1.5 バンド、レイヤーおよびメタデータ

GeoRasterでは、バンドとレイヤーの概念は異なります。バンドは、多次元ラスター・データ・セットの物理次元で、セル空間内の座標の1つです。たとえば、セル空間には行、列およびバンドという座標が存在する場合があります。バンドには、0からn-1の番号が付けられ、nは、最上位のレイヤー番号です。レイヤーは、GeoRasterデータ・モデル内の論理概念です。レイヤーは、バンドにマップされます。通常、1つのレイヤーは1つのバンドに対応し、rowDimensionSizeとcolumnDimensionSizeのサイズの2次元マトリックスで構成されます。レイヤーには、1からnの番号が付けられ、この番号は、layerNumber = bandNumber + 1として算出されます。

GeoRasterオブジェクトは、複数のバンド(複数のレイヤー)を含むことができます。たとえば、リモート・センシング・デバイスからの電磁波データは、特定の数のチャネルにグループ化されます(使用可能なチャネル数は、センシング・デバイスの性能によって異なります)。マルチスペクトル・イメージは複数のチャネルを含み、ハイパースペクトル・イメージは非常に多く(50以上)のチャネルを含みます。すべてのチャネルは、それぞれGeoRasterバンドにマップされ、これらのバンドはレイヤーに関連付けられます。

ラスターGISアプリケーションでは、データ・セットは複数のラスター・レイヤーを含むことができ、各レイヤーは、主題と呼ばれます。たとえば、ラスターに人口密度レイヤーを含めることができ、1平方マイルまたは1平方km当たりの平均住民数に応じて異なるセル値を使用します。その他の主題の例には、平均所得水準、土地利用(農地、宅地、工場用地など)、海抜標高などがあります。ラスターGISの複数の主題は、個別のGeoRasterオブジェクトまたは1つのGeoRasterオブジェクトに格納でき、各主題は、1つのレイヤーとしてモデル化されます。ラスターの主題およびマルチスペクトル・イメージ・チャネルも、それらが同じ次元を持つ場合は、1つのGeoRasterオブジェクトの個別のレイヤーとして格納できます。

図1-5に、複数のレイヤーおよび1つのラスター・データ表を持つイメージを示します。各レイヤーには複数のブロックが含まれ、各ブロックには通常多くのセルが含まれます。各ブロックに対応するエントリが、ラスター・データ表に含まれます。図1-5に示すとおり、GeoRasterではレイヤー番号は1から始まり、バンド番号は0(ゼロ)から始まることに注意してください。

図1-5 レイヤー、バンドおよびラスター・データ表

GeoRaster XMLメタデータは、オブジェクト・レイヤーおよび複数のレイヤーを参照します。オブジェクト・レイヤーは、GeoRasterオブジェクトが複数のレイヤーを含むか含まないかにかかわらず、そのオブジェクト全体を参照します。GeoRasterオブジェクトが複数のレイヤーを含む場合、各レイヤーはオブジェクト・レイヤーのサブレイヤーであり、1つのバンドを参照します。

各レイヤーには、オプションのメタデータ・セットを関連付けることができます。レイヤーのメタデータ項目は、ユーザー定義のレイヤーID、説明、ビットマップ・マスク、NODATA値および値範囲、スケール変更ファンクション、ビン・ファンクション、統計データ・セット(ヒストグラムなど)、グレースケール参照表、カラーマップ(疑似カラー参照表(PCT))などです。メタデータ項目は、GeoRasterメタデータのXMLスキーマで定義されます(GeoRasterメタデータのXMLスキーマについては、付録A、2.3.1項「SDO_GEOR_HISTOGRAMオブジェクト型」、2.3.2項「SDO_GEOR_COLORMAPオブジェクト型」、2.3.3項「SDO_GEOR_GRAYSCALEオブジェクト型」および2.3.5項「SDO_GEOR_SRSオブジェクト型」を参照してください)。

オブジェクト・レイヤーに関連付けられたメタデータは、GeoRasterオブジェクト全体に適用されます。1つのレイヤーに関連付けられたメタデータは、そのレイヤーのみに適用されます。たとえば、オブジェクト・レイヤーの統計データ・セットは、オブジェクトに含まれるレイヤーの数に関係なく、GeoRasterオブジェクトのすべてのセルに基づいて計算されますが、1つのレイヤーの統計データは、そのレイヤー内のセルのみに基づいて計算されます。

オブジェクト・レイヤーおよび他のレイヤーのメタデータは、<layerInfo>要素を使用してGeoRaster XMLメタデータに格納されますが、カラーマップ表やヒストグラム表など、個別の表に格納される場合もあります。GeoRaster XMLメタデータに格納されたメタデータは、GeoRasterによって管理され、ユーザーはGeoRaster APIを使用して、このメタデータを取得および変更できます。個別の表に格納されたメタデータの場合は、その表の名前をGeoRaster XMLスキーマに登録できます(この場合、アプリケーションで表の名前を取得できます)。ただし、GeoRasterでは、その表の存在または妥当性についてはチェックされず、その表に対して操作を行うこともできません。

インターリーブは、BSQ(順次バンド)、BIL(ライン単位のバンド・インターリーブ)およびBIP(ピクセル単位のバンド・インターリーブ)の3つのタイプがサポートされています。インターリーブは、バンド間またはレイヤー間のみに適用されます。また、GeoRasterオブジェクトの各ブロック内のセルのインターリーブのみに制限されています。これは、GeoRasterが常に、最初にGeoRasterオブジェクトのブロック化を実行し、次にブロックごとにインターリーブを実行することを意味します。ただし、同じGeoRasterオブジェクト内の各ブロックのインターリーブは、同じタイプになります。データをより効率的に処理および使用するために、SDO_GEOR.changeFormatCopyプロシージャをコールしてGeoRasterオブジェクトのコピーのインターリーブ・タイプを変更できます。

1.6 地理参照

GeoRaster空間参照システム(SRS)は、GeoRasterオブジェクトのメタデータ構成要素であり、地理参照に関連する情報が含まれます。地理参照によって、GeoRasterデータのセル座標と実際の地上座標(またはいくつかのローカル座標)が関連付けられます。地理参照を実行すると、地上座標がセル座標に割り当てられ、セル座標が地上座標に割り当てられます。

GeoRasterでは、地理参照は、地理補正、幾何補正またはオルソ補正とは異なります。後者の3つの処理では、ラスター・データのセルのリサンプリングが頻繁に行われ、結果のGeoRasterデータのモデル座標系および次元サイズが異なる場合があります。地理参照を実行すると、セル座標と実際の座標(またはいくつかのローカル座標)が関連付けられます。地理参照を実行するには、適切な数式、十分な数の地上基準点(GCP)座標、またはリモート・センシング・システムからの精密なモデル・データを提供する必要があります。地理参照では、セル座標系とモデル座標系間での座標変換を容易にするために必要な場合を除き、GeoRasterセル・データまたはその他のメタデータは変更されません。

GeoRasterは、地理参照のために関数フィッティング・モデル(1.6.1項を参照)およびストアド・ファンクション・モデル(1.6.2項を参照)の両方をサポートします。精密なモデルはサポートされていません。GeoRasterオブジェクトが関数フィッティング・モデルを使用して地理参照される場合は、SRSメタデータのisReferenced値がTRUEになり、参照されない場合、この値はFALSEです。

幾何補正は、水平座標に対して実行でき、これによって、GeoRasterデータ・セットのセルを投影図座標系にマップすることが可能になります。幾何補正後の各セルは、図で使用される単位の均等なサイズになり、モデル座標系(東西次元および南北次元)で配置されます。標高データ(DEM)を使用した幾何補正はオルソ補正と呼ばれ、これは、地形偏移を修正する特別な形式の幾何補正です。GeoRasterオブジェクトが幾何補正されており、関数フィッティング・モデルを使用して地理参照される場合は、そのメタデータのisRectified値がTRUEになり、それ以外の場合、この値はFALSEです。GeoRasterオブジェクトがオルソ補正されており、関数フィッティング・モデルを使用して地理参照される場合は、そのメタデータのisOrthoRectified値がTRUEになり、それ以外の場合、この値はFALSEです。

GeoRasterオブジェクトの地理参照の詳細は、3.5項を参照してください。

1.6.1 関数フィッティング地理参照モデル

GeoRasterは、GeoRasterメタデータに格納される汎用関数フィッティング地理参照モデルを定義します。これには、広範囲に使用される複数のジオメトリ・モデルが含まれ、このモデルを使用すると、幾何補正されていないGeoRasterオブジェクトを地理参照できるようになります。

このモデルでは、2次元または3次元の地上座標と2次元のセル座標との間の変換、または2次元のセル座標と2次元または3次元の地上座標との間の変換をサポートします。モデルを説明する等式を次に示します。

rn = p(Xn,Yn,Zn) / q(Xn,Yn,Zn)

cn = r(Xn,Yn,Zn) / s(Xn,Yn,Zn)

等式の各変数の意味は、次のとおりです。

- rnは、ラスター内のセルの正規化された行索引です。

- cnは、ラスター内のセルの正規化された列索引です。

- Xn , Yn , Znは、正規化された地上座標値です。

多項式p(Xn , Yn , Zn)、q(Xn , Yn , Zn)、r(Xn , Yn , Zn)およびs(Xn , Yn , Zn)は、図1-6に示す形式で指定されます。

図1-6 地理参照に使用される多項式

図1-6に示す多項式の形式では、ijkは多項式の係数です。

4つの多項式はそれぞれ異なることがあります。また、各多項式は次の変数によって個別に説明されます。

- pTypeは、多項式のタイプ(1または2)です。

- nVarsは、変数の合計数(地上座標の次元0、2または3)です。

- orderは、各変数の累乗の最大次数または多項式の各項の累乗の最大合計次数(最大で5)です。

- nCoefficientsは、係数の合計数です(前の3つの数値から導出する必要があります)。

pTypeは、多項式の最大合計次数を意味し、多項式の項の合計数に影響を与えます。pType = 1は、最大次数が、多項式の各項に含まれるすべての変数の最大合計次数であることを示します。pType = 2は、最大次数が、多項式のすべての項に含まれる各変数の最大次数であることを示します。nVarsは、地上座標系が2D (X, Y)または3D (X,Y,Z)のいずれかであるかを示します。セル座標系は常に2Dです。たとえば、これは2次元座標間のアフィン変換と、3次元から2次元座標へのDLTモデルおよびRPCモデルをサポートしています。

多項式の項およびその係数の合計数および順番は、次のループ疑似コードの論理によって決定されます。

n = 0;
For (k = 0; k <= order; k++)
For (j = 0; j <= order; j++)
For (i = 0; i <= order; i++)
{
if (pType == 1 & (i+j+k) > order )
break;
polynomialCoefficients[n]=COEF[ijk];
n++;
}

前述の疑似コードでは、iの次数、jの次数、およびkはZの次数と想定し、また、nはGeoRasterメタデータ要素<polynomialCoefficients>内の係数の指数と想定します。したがって、COEF[ijk]は分子pまたは分母qの項x(i)y(j)z(k)の係数であり、polynomialCoefficients[n]はXMLメタデータ内の<polynomialCoefficients>要素(倍精度のリスト型)のn番目の倍精度数であり、COEF[ijk]はpolynomialCoefficients[n]と1対1で一致します。

実際の値ではない正規化された値は、計算時のエラーの発生を最小限にするために、そのデータ自体によって、格納および使用される場合とされない場合があります。行値と列値(row,column)および正規化された行値と列値(rn, cn)の間の変換、およびモデル座標(x,y,z)と正規化されたモデル座標(Xn , Yn , Zn)の間の変換は、次の変換(オフセット)とスケールを正規化したセットにより定義されます。

- rn = (row - rowOff) / rowScale

- cn = (column - columnOff) / columnScale

- Xn = (x - xOff) / xScale

- Yn = (y - yOff) / yScale

- Zn = (z - zOff) / zScale

係数、スケールおよびオフセットはGeoRaster SRSメタデータに格納されます(2.3.5項を参照)。

この関数フィッティング・モデルは汎用モデルです。これには、アフィン変換、二次多項式、三次多項式、DLT(Direct Linear Transformation)、二次有理、RPC(Rational Polynomial CoefficientsまたはRapid Positioning Coefficients)などの特定のジオメトリ・モデルが含まれます。これらの標準モデルの係数は、GeoRasterに格納するために、この項で説明する順序に変換されます。

SDO_GEOR.setSRSプロシージャを使用すると、GeoRasterオブジェクトの空間参照情報を直接設定でき、SDO_GEOR.getGeoreferenceTypeファンクションを使用すると、GeoRasterオブジェクトの特定の地理参照モデル・タイプを検出できます。

最も単純な地理参照モデル・タイプは、次に示す特別なアフィン変換です。

row    = a + c * y
column = d - c * x

前述の計算式では、cが0(ゼロ)以外の値である場合、ラスター・データは幾何補正されているとみなされ、そのメタデータ内のisRectified値がTRUEになります。

アフィン変換では、pTypeは1または2のいずれかです。pおよびr多項式の場合、nVarsは2、orderは1、nCoefficientsは3で、qおよびs多項式の場合、nVarsは0、orderは0、nCoefficientsは1です。

二次多項式モデルでは、pTypeは1です。pおよびr多項式の場合、nVarsは2、orderは2、nCoefficientsは6で、qおよびs多項式の場合、nVarsは0、orderは0、nCoefficientsは1です。

三次多項式モデルでは、pTypeは1です。pおよびr多項式の場合、nVarsは2、orderは3、nCoefficientsは10で、qおよびs多項式の場合、nVarsは0、orderは0、nCoefficientsは1です。

DLTモデルでは、pTypeは1または2のいずれかです。すべての多項式について、nVarsは3、orderは1、nCoefficientsは4です。また、qおよびs多項式は同一である必要があります。

二次有理モデルでは、pTypeは1です。すべての多項式について、nVarsは3、orderは2、nCoefficientsは10です。

RPCモデルでは、pTypeは1です。すべての多項式について、nVarsは3、orderは3、nCoefficientsは20です。

DLT、RPCおよびその他のジオメトリ・モデルの詳細は、サード・パーティの関連するドキュメントを参照してください。

1.6.2 GCPを使用した地理参照

GeoRasterは、地上基準点(GCP)記憶域および地理参照をサポートしています。地上基準点(GCP)または単なる基準点は、一部の参照座標系のその座標(X,YまたはX,Y,Z)とGeoRasterオブジェクトのセル空間内の対応する位置(行,列)がわかる点です。参照座標系には、座標系が不明な場合のSRID 999999など、任意の有効なOracle Spatial座標系を指定できます。GCPのコレクションおよびそれに関連するジオメトリ・モデル(関数フィッティング・メソッド)は、GeoRasterではストアド・ファンクション地理参照モデルとも呼ばれます。

GeoRaster SRSに格納されているか、パラメータで指定されているGCPを使用して、関数フィッティング・モデルを生成できます。詳細は、SDO_GEOR.georeferenceファンクションを参照してください。

GCPを選択するためのガイドラインは、次のとおりです。

- 点は、GeoRasterオブジェクトと参照座標系の両方で簡単に識別できる必要があります。

- 点は、結果が非対称にならないようにするために、GeoRasterオブジェクトの対象となっている領域内で均等に分散される必要があります。

- 結果が安定するように、点は一列に配置することはできません。

GCPまたはストアド・ファンクションは、SDO_GEOR_GCPオブジェクト型(2.3.6項を参照)、SDO_GEOR_GCP_ COLLECTIONコレクション型(2.3.7項を参照)およびSDO_GEOR_GCPGEOREFTYPEオブジェクト型(2.3.8項を参照)を使用して指定されます。

GCPを使用して地理参照するには、ジオメトリ・モデル(つまり、GeoRasterオブジェクトのセル空間と参照座標系間の関係を数学的にモデル化する方法)も選択する必要があります。GeoRasterでは、GCP地理参照で次のジオメトリ・モデルがサポートされています: アフィン(デフォルト・モデル)、二次多項式、三次多項式、DLT、二次有理およびRPC。アフィン、二次多項式および三次多項式は、多項式の順番がそれぞれ1、2、3である2次元の多項式モデルであるのに対し、DLT、二次有理およびRPCは、多項式の順番がそれぞれ1、2、3である3次元の有理多項式モデルです。すべての多項式は多項式のタイプpType=1を持ちます。(地理参照モデル・タイプの詳細は、1.6.1項を参照してください。)

GCPを使用した地理参照では、GCPのセル座標およびモデル座標が多項式または有理多項式モデルの計算式で使用され、連立一次方程式が形成されます。計算式に加重は使用されません(つまり、すべての点で加重は同一の1.0です)。連立一次方程式は、指定した基準点に最適なモデルの係数を生成する最小2乗法によって解かれます。基準点のタイプを使用したGCPのみがソリューションの計算に含まれますが、チェック・ポイントのタイプを使用したGCPは解決されたモデルの位置精度の確認に使用されます。ソリューションの精度は、ソリューションに含まれるそれらの基準点のセル座標の残差に基づいて評価されます。

異なるジオメトリ・モデルには、異なるモデル座標の次元および異なるGCPの最小数が必要です。2次元のジオメトリ・モデルでは、モデル座標は2D (X,Y)、3次元のジオメトリ・モデルでは、モデル座標は3D (X, Y, Z)である必要があります。ジオメトリ・モデルに必要なGCPの最小数は、アフィン: 3、二次多項式: 6、三次多項式: 10、DLT: 7、二次有理: 19、RPC: 39です。ただし、地理参照を行うには、通常、GCPの最小数より大きい値を使用する必要があります。

1.6.3 セル座標とモデル座標の変換

GeoRasterは、関数フィッティング地理参照モデルを使用して、地上座標をセル座標に割り当て、セル座標を地上座標に割り当てます。特殊なケースとして、セルの整数座標(セル・マトリックス内のセルの配列索引)がモデル座標に変換されます(これにより、モデル空間内の点の正確な場所を特定します)。この点(モデル座標)は、セルによって表されるモデル空間内の領域の左上角または中心のいずれかになります。

同様に、モデル座標は地理参照を通してセル座標に変換できます。ただし、関数フィッティング地理参照モデルを直接変換した結果のセル座標は、ほとんどが浮動小数点数です。(modelCoordinateLocation要素で指定される)セル空間座標系のタイプは、浮動小数点座標が参照するセルを決定します(1.3項を参照)。Oracle Spatial 11gでは、GeoRasterは、浮動小数点(サブセル)セル座標および整数セル座標の両方を、そのAPIのすべての部分においてサポートします。

セル座標およびモデル座標の変換は、GeoRasterの空間参照システム(SRS)の関数フィッティング・モデルに基づいて行われます。GeoRaster SRSを使用する変換の前後では、セルの座標の値(行,列)はGeoRasterのセル空間を基準としており、ラスター・データ自体の左上角を必ずしも基準としません。ULTCoordinateでは、セル空間の基点座標とは異なる任意の座標(行および列の値)を指定できます。つまり、左上角の(行,列)座標は、(0,0)である必要はありません。

多くのイメージ・ファイル形式と同様に、ラスター・データの左上角を独自のセル空間の基点(0, 0)として定義するアプリケーションでは、GeoRaster ULTCoordinate (row0, column0)が(0, 0)ではない場合、GeoRaster SRSから導出される(行,列)を、この基点が基準となるように変換する必要があります。この変換では、次の計算式に示すように、GeoRaster ULTCoordinateを考慮する必要があります。

row = row0 + m
column = column0 + n

計算式の各変数の意味は、次のとおりです。

- rowは、GeoRasterセル空間の基点を基準としたセルの行索引です。

- columnは、GeoRasterセル空間の基点を基準としたセルの列索引です。

- row0は、GeoRasterセル空間の基点を基準としたULTCoordinateの行索引です。

- column0は、GeoRasterセル空間の基点を基準としたULTCoordinateの列索引です。

- mは、ULTCoordinateを基準としたセルの行索引です。つまり、先頭行を0から開始した場合のm番目の行です。

- nは、ULTCoordinateを基準としたセルの列索引です。つまり、先頭列を0から開始した場合のn番目の列です。

ほとんどのアプリケーションでは、ULTCoordinateと、セル空間の基点は同じ(つまりrow0 = 0およびcolumn0 = 0)になります。この場合、m = rowおよびn = columnとなります。

1.7 ピラミッド

ピラミッドは、ラスター・イメージまたはラスター・データを様々なサイズおよび解像度で表す、GeoRasterオブジェクトのサブオブジェクトです。サイズは、通常、アプリケーションでのイメージの取得および表示(特にWebを経由する場合)にかかる時間に影響します。つまり、イメージ・サイズが小さいほど表示速度が速くなり、詳細な解像度が必要ない場合は(ユーザーが十分にズーム・アウトしている場合など)、小さいイメージの表示品質で十分です。

ピラミッド・レベルは、必要な記憶域が小さくなる低解像度イメージ、または必要な記憶域が大きくなる高解像度イメージを表します。(GeoRasterでは、現在、低解像度のピラミッドのみがサポートされています。)値が0 (ゼロ)のピラミッド・レベルは、元のラスター・データを示します(この場合、イメージの解像度は低下せず、必要な記憶域は変化しません)。値が0 (ゼロ)より大きくなるほど、イメージの解像度のレベルが低くなり、必要な記憶域が小さくなります。

ピラミッド・タイプは、ピラミッドのタイプを表します。次のいずれかの値を指定できます。

- DECREASE: ピラミッド・レベルが高くなるほどピラミッド・サイズが小さくなります。

- NONE: GeoRasterオブジェクトに関連付けられたピラミッドが存在しません。

図1-7に、ピラミッド・タイプをDECREASEに指定した場合のピラミッド・レベルの概要を示します。この図では、ピラミッド・レベル番号が大きくなるほどファイル・サイズが小さくなり、イメージの表現に使用されるピクセルが減少するために解像度も低くなることを示しています。

図1-7 ピラミッド・レベル

各レベルのピラミッド・イメージのサイズは、次の計算式によって、元のイメージ・サイズとピラミッド・レベルに基づいて決定されます。

r(n) = (int)(r(0) / 2^n)
c(n) = (int)(c(0) / 2^n)

計算式の各変数の意味は、次のとおりです。

- r(0)およびc(0): 元の行次元および列次元のサイズです。

- r(n)およびc(n): ピラミッド・レベルn の行次元および列次元のサイズです。

- int: 任意の数値を、その数値未満の最も近い整数値に丸めます。

- 2^n: 2のn乗を表します。

最上位レベルの全体像(最上位レベルの最小ピラミッド)では、行次元と列次元のいずれか小さい方のサイズは1になります。最も低い解像度のピラミッド・レベルは、このサイズによって決まり、(int)(log2(a))という式で求められます。

式の各変数の意味は、次のとおりです。

- log2: 底が2の対数関数です。

- a: 元の次元サイズの行または列の小さい方です。

ピラミッド内のセル・アドレッシングでは、元のラスター・データに定義されているセル・アドレッシングと同じタイプを使用します(1.3項を参照)。各ピラミッド・レベルには独自のセル空間がありますが、ピラミッド・レベルのすべてのセル空間には、元のレベル(レベル・ゼロ)のセル座標系と同じタイプのセル座標系(中心または左上を基準とするセル座標系)があります。セルは均等なサイズの四角形で、単位は1セルです。各ピラミッド・レベルの左上角のセルにあるULTCoordinateは、メタデータに登録されている、元のラスター・データのULTCoordinateと同じです。このセル空間の定義とピラミッド・レベルに基づいて、1つのピラミッド・レベルのセル座標を別の座標に変換できます。

GeoRasterメタデータにはピラミッド・レベルごとに定義されている個々のSRSはありません。ピラミッド内のセルのモデル座標を導出するには、最初に別のピラミッド・レベルのセル座標をピラミッド・レベル・ゼロのセル座標に変換してから、GeoRaster SRSを適用します。逆に、ピラミッドの地上点のセル座標を導出するには、ピラミッド・レベル・ゼロのこれらの地上点のセル座標をGeoRaster SRSを使用して最初に取得してから、特定のピラミッド・レベルに変換します。Oracle Spatial 11gでは、GeoRasterがピラミッドのサブセル・アドレッシングを、そのAPIのすべての部分においてサポートします。

ピラミッドは、GeoRasterオブジェクトと同じラスター・データ表に格納されます。ラスター・データ表内のpyramidLevel属性は、特定のピラミッド・レベルに関連付けられたすべてのブロックを示します。通常、各ピラミッド・レベルでのブロック化方法は、(GeoRasterオブジェクト・メタデータに定義されている)元のレベルのブロック化方法と同じですが、次の例外があります。

- 元のGeoRasterオブジェクトがブロック化されておらず、元のセル・データがオブジェクトと同じサイズの1つのブロック(BLOB)に格納されている場合、各ピラミッド・レベルのセル・データは1つのブロックに格納され、各ピラミッド・レベルの実際のイメージと同じサイズになります。

- 元のGeoRasterオブジェクトがブロック化されている場合(1つのブロックとしてブロック化されている場合も)、各ピラミッド・レベルのセル・データは元のレベルのデータと同じ方法でブロック化され、各ブロックは、ピラミッド・レベルの実際のイメージの最大次元サイズがブロック・サイズより大きい場合、個別のBLOBオブジェクトに格納されます。ただし、生成されるピラミッド・レベルの解像度がより低くなる場合(ピラミッド・レベルの行次元と列次元の両方のサイズが、それぞれ行ブロック・サイズと列ブロック・サイズの半分以下である場合)、そのようなピラミッド・レベルのセル・データは1つのBLOBオブジェクトに格納され、そのピラミッド・レベルの実際のイメージと同じサイズになります。

GeoRasterオブジェクトのピラミッドを生成するか、またはGeoRasterオブジェクトをスケール変更する際は、セル・データのリサンプリングが必要になります。GeoRasterは、次の標準リサンプリング方法を提供します。

- 最近傍

- 周囲の4つのセルを使用する共1次内挿法

- 周囲の16個のセルを使用する3次畳込み内挿法

- 周囲の4つのセルを使用する4平均法

- 周囲の16個のセルを使用する16平均法

GeoRasterでのピラミッドのサポートに関連するサブプログラム(第4章を参照)を次に示します。

- SDO_GEOR.generatePyramid: GeoRasterオブジェクトのピラミッド・データを生成します。

- SDO_GEOR.deletePyramid: GeoRasterオブジェクトのピラミッド・データを削除します。

- SDO_GEOR.getPyramidMaxLevel: GeoRasterオブジェクトの最上位のピラミッド・レベルを戻します。

- SDO_GEOR.getPyramidType: GeoRasterオブジェクトのピラミッド・タイプを戻します。

1.8 ビットマップ・マスク

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

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

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

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

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

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

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

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

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

PL/SQLサブプログラムには、ビットマップ・マスクに対する操作を実行するものがあります。操作には、ビットマップ・マスクのGeoRasterオブジェクトへのアタッチ、既存のビットマップ・マスクの置換、ビットマップ・マスクの削除、GeoRasterオブジェクトが特定のビットマップ・マスクを持つかどうかのチェック、ビットマップ・マスク全体、ビットマップ・マスクのサブセットまたはビットマップ・マスクの単一のセル値の抽出などがあります。

1.9 NODATA値および値の範囲

NODATA値は、不明または無効な値を持つセルで使用されます。個別のラスター・レイヤーごとに、ラスター・レイヤーに関連付けられた複数のNODATA値またはNODATA値の範囲、あるいはその両方を持つことができます。GeoRasterメタデータ・スキーマには、各ラスター・レイヤーのNODATA情報が格納されます。具体的には、オブジェクト・レイヤーに関連付けられたNODATA値および値の範囲が他のサブレイヤーに適用されます。サブレイヤーのNODATA値および値の範囲は、オブジェクト・レイヤーのNODATA値および値の範囲と、サブレイヤーに存在するNODATAメタデータを結合したものです。サブレイヤーからNODATA値または値の範囲を削除しても、オブジェクト・レイヤーに存在する値または値の範囲は削除できません。

NODATA値および値の範囲は、リサンプリング中(スケール変更によるピラミッドの生成時、イメージの生成時など)に考慮されます。デフォルトで、NODATAセルは、拡大や縮小を回避するために通常のセルとして処理されます。ただし、NODATA値または値の範囲が考慮対象として選択され、リサンプリング・メソッドがBILINEAR、AVERAGE4、AVERAGE16またはCUBICの場合は、リサンプリングの計算に含まれるセル値がNODATA値であると、リサンプリングの結果もNODATA値となります。結果のNODATA値は、各リサンプリング・ウィンドウ内の最初のNODATA値です(セル値は左上角から右下角に向かって行ごとに順序付けされます)。

リリース11gより前からのGeoRasterオブジェクトがNODATAメタデータをラスターの記述に格納している場合、そのメタデータは下位互換性を確保するため現在のリリースでも有効です。古いNODATA値はオブジェクト全体の値とみなされます。この値は、オブジェクト・レイヤーに対してSDO_GEOR.addNODATAプロシージャをコールするとオブジェクト・レイヤーに移動され、SDO_GEOR.deleteNODATAプロシージャをコールすると古いNODATA値を削除せずにオブジェクト・レイヤーに移動されます。

NODATA値または値の範囲はSDO_RANGE_ARRAY型を使用して記述され、VARRAY(1048576) OF SDO_RANGEとして定義されます。SDO_RANGE型は、下限値と上限値を指定し、(LB NUMBER, UB NUMBER)として定義されます。

- SDO_RANGE定義で単一の数値を指定するには、LBに数値を、UBにNULLを指定します。次の例では、NODATA値として2を指定します。SDO_RANGE_ARRAY(SDO_RANGE(2,NULL))

- SDO_RANGE(LB, UB)。ここで、LB=UBは、SDO_RANGE(LB, NULL)と同じであるとみなされます。

- 実際のNODATA値の範囲(UBがNULL以外の値で、LBがUBより小さい値)には、下限が含まれ、上限は含まれません。

- 複数のNODATA値の範囲および個別のNODATA値を指定できます。次の例では、1つの単一のNODATA値(5)と、2つのNODATA値の範囲(1,3)および(7,8)を指定します。SDO_RANGE_ARRAY(SDO_RANGE(1,3), SDO_RANGE(5,NULL), SDO_RANGE(7,8))

いくつかのPL/SQLサブプログラムは、GeoRasterレイヤーに関連付けられたNODATA値および値の範囲に対して追加、削除、問合せなどの操作を実行します。

GeoRasterでは、ビットマップ・マスクは特別なタイプのNODATAとして処理されます(1つ以上の不規則な領域を指定するNODATAマスクはNODATA領域として処理されます)。この場合、ビットマップ・マスクはlayerInfoメタデータのbitmapMask要素で識別されるだけではなく、layerInfoメタデータのNODATA要素に登録されます。ただし、ビットマップ・マスクのNODATA値は、リサンプリング処理および統計分析中は考慮されません。

1.10 圧縮と解凍

GeoRasterには、GeoRasterオブジェクトに必要な記憶領域を縮小するために、JPEG (JPEG-BまたはJPEG-F)およびDEFLATEの2つのネイティブの圧縮タイプがあります。どちらのタイプも、それぞれのブロックは明確なラスター表現として個別に圧縮されます。圧縮されたGeoRasterオブジェクトを解凍すると、各ブロックは個別に解凍されます。

解凍された(圧縮されていない)GeoRasterオブジェクトで実行できるすべてのGeoRaster操作は、圧縮されたGeoRasterオブジェクトでも実行できます。GeoRasterでなんらかの操作が行われる場合、ソースGeoRasterオブジェクトが圧縮されていれば、必要に応じてそのソース・オブジェクトのブロックが内部的に解凍されてから、指定された操作が実行され、次に、その操作によって得られたオブジェクトがcompressionキーワードで指定された形式で圧縮されるか、または、compressionキーワードが指定されていない場合は、ソース・オブジェクトの圧縮形式で圧縮されます。このため、特定の操作では、その実行前に圧縮されているGeoRasterオブジェクトを解凍する必要はありませんが、実行前にオブジェクトを解凍しておくと、全体のパフォーマンスが向上する操作もあります。

データベース・ユーザーがGeoRasterオブジェクトを圧縮または解凍する前には、データベースがデフォルトの一時表領域で作成されていること、あるいはユーザーが一時表領域または表領域グループに割り当てられていることを確認してください。これ以外の場合、デフォルトでは、一時表領域としてSYSTEM表領域が使用され、GeoRasterの操作で生成された大容量の一時LOBデータがSYSTEM表領域に格納されるため、データベース全体のパフォーマンスに影響を与える可能性があります。一時表領域の管理については、『Oracle Database管理者ガイド』を参照してください。

GeoRasterオブジェクトの圧縮または解凍を指定するには、storageParamパラメータのcompressionキーワードを使用します(1.4.1項を参照)。compressionキーワードは、SDO_GEOR.changeFormatCopy、SDO_GEOR.getRasterData、SDO_GEOR.getRasterSubset、SDO_GEOR.importFrom、SDO_GEOR.mosaic、SDO_GEOR.scaleCopy、SDO_GEOR.subsetなど、様々なGeoRasterプロシージャのstorageParamパラメータで使用できます。(GeoRasterオブジェクトを圧縮および解凍するための個別のプロシージャはありません。)

ソースGeoRasterオブジェクトが空白の場合は、SDO_GEOR.getRasterSubsetファンクションおよびSDO_GEOR.getRasterDataファンクションを除き、compressionキーワードは無視されます。つまり、空白のGeoRasterオブジェクトが圧縮されることはなく、メタデータの圧縮タイプは常にNONEになります。(空白のGeoRasterオブジェクトの詳細は、1.4.3項を参照してください。)

この項には、次の項目が含まれます。

- GeoRasterオブジェクトのJPEG圧縮(1.10.1項)

- GeoRasterオブジェクトのDEFLATE圧縮(1.10.2項)

- GeoRasterオブジェクトの解凍(1.10.3項)

- GeoRasterオブジェクトの圧縮に使用するサード・パーティのプラグイン(1.10.4項)

- SecureFilesの圧縮(1.10.5項)

1.10.1 GeoRasterオブジェクトのJPEG圧縮

JPEG圧縮がサポートされているのは、cellDepth値が8BIT_Uで、ブロック当たりのバンド数が4以下(ただし、各ブロックでのバンド数が1、3または4であること)のGeoRasterオブジェクトのみです。(ブロック当たりのバンド数が2は、JPEG圧縮ではサポートされません。)バンド数が4より大きいGeoRasterオブジェクトの場合は、GeoRasterオブジェクトを1、3または4バンドのバンド・ブロック・サイズで再ブロック化するとJPEG圧縮できます。JPEG圧縮は、カラーマップを含むGeoRasterオブジェクトではサポートされていません。

JPEG圧縮は、あらゆるサイズのGeoRasterオブジェクトに対してサポートされていますが、GeoRasterオブジェクトの各ブロックの合計サイズ(columnsPerBlock * rowsPerBlock * bandsPerBlock * cellDepth / 8)は、50MB以下である必要があります。容量の大きいGeoRasterオブジェクトに対しては、SDO_GEOR.changeFormatCopyプロシージャをコールし、50MB未満のブロックになるようにGeoRasterオブジェクトをブロック化してからGeoRasterオブジェクトを圧縮するか、またはSDO_GEOR.changeFormatCopyプロシージャへの同じコールの中で、ブロック化および圧縮を実行できます。

GeoRasterは、JPEG-BおよびJPEG-Fの圧縮モードをサポートします。

- JPEG-Bモードは、簡易基準のJPEG形式でオブジェクトを圧縮します。

- JPEG-Fモードは、フルフォーマット基準のJPEG形式でオブジェクトを圧縮します。

これらのモードについては、CCITT Rec.T.81 JPEG Specification(またはICO/IEC IS 10918-1)を参照してください。これらのモードに対し、GeoRasterはCCITT Rec.T.81 JPEG Specificationの表K.2の量子化表と、(ハフマン表として)この仕様の表K.4およびK.6の標準クロミナンス表を使用します。量子化表は、圧縮プロセスでこの表がデータに適用される前に、圧縮品質によってスケール変更されます。

JPEG-Bモードの圧縮は簡易形式であるため、デコードに必要な量子化表およびハフマン表は、JPEG-Bの圧縮データには含まれません。JPEG-Fの圧縮データには、これらの表が含まれます。

JPEG-Bの簡易形式はJPEG-F形式よりも圧縮率が高いため、容量の大きいGeoRasterオブジェクトが、数多くの小さいブロックにブロック化されている場合は、必要な記憶領域が大幅に減少します。たとえば、75の品質で圧縮されたリモート・センシング・イメージの場合、JPEG-Bの平均圧縮率は約20:1ですが、JPEG-Fの平均圧縮率は約2.5:1になります。

JPEG-BおよびJPEG-Fは、両方とも不可逆圧縮形式です。storageParamパラメータにqualityキーワードを指定して、劣化の程度を制御できます。qualityキーワードには、0から100の整数値を指定できます。値に0(ゼロ)を指定すると圧縮率は最高になりますが、データの消失が大きくなります。値に75(GeoRasterのデフォルト)を指定すると、高圧縮率ではありますが、ほとんどの人が品質には劣化がないと感じる程度の画像になります。値に100を指定すると、圧縮率は最低になりますが品質は最高になります。

1.10.2 GeoRasterオブジェクトのDEFLATE圧縮

DEFLATE圧縮は、Deflate Compressed Data Format Specification (Network Working Group RFC 1951)に従ってオブジェクトを圧縮し、圧縮したデータをZLIB形式で格納します。詳細は、ZLIB Compressed Data Format Specification (Network Working Group RFC 1950)を参照してください。ZLIBのヘッダーおよびチェックサムのフィールドは、圧縮されたGeoRasterオブジェクトに含まれます。

DEFLATE圧縮は、あらゆるサイズのGeoRasterオブジェクトに対してサポートされていますが、GeoRasterオブジェクトの各ブロックの合計サイズ(columnsPerBlock * rowsPerBlock * bandsPerBlock * cellDepth / 8)は、1GB以下である必要があります。容量の大きいGeoRasterオブジェクトに対しては、SDO_GEOR.changeFormatCopyプロシージャをコールし、1GB未満のブロックになるようにGeoRasterオブジェクトをブロック化してからGeoRasterオブジェクトを圧縮するか、またはSDO_GEOR.changeFormatCopyプロシージャへの同じコールの中で、ブロック化および圧縮を実行できます。

DEFLATE圧縮は可逆圧縮であるため、圧縮品質は適用されません。圧縮品質を指定しても無視されます。

1.10.3 GeoRasterオブジェクトの解凍

storageParamパラメータでcompression=NONEを指定すると、圧縮されたGeoRasterオブジェクトを解凍できます。この場合、圧縮品質(適用可能な場合)は、JPEG-B圧縮のメタデータ、またはJPEG-F圧縮のヘッダー・データから取得されるため、記憶域パラメータとして圧縮品質を指定することはできません。

PL/SQL、Oracle Call Interface (OCI)などの既存のApplication Programming Interface (API)を使用すると、圧縮されたGeoRasterオブジェクトを、データベースの外(つまりクライアント側)で解凍して、GeoRasterオブジェクトのブロックに対応するBLOBオブジェクトを取得し、該当する圧縮形式の仕様に従って、圧縮されたそれぞれのブロックを個別にデコードできます。たとえば、GeoRasterオブジェクトがJPEG-Fモードで圧縮されている場合、デコーディング・プロセスでは最初にJPEGヘッダーが解析され、表およびブロック次元が取得されます。次に、ハフマンのデコーディングが適用され、イメージ・データが量子化されます。

JPEGの解凍をすべてユーザー自身で実装するのは、複雑で、細部まで気を配る必要のあるプロセスです。アプリケーションによっては、既存の実装を使用する方が適切な場合があります。Cのjpeglibなどのライブラリ、およびJavaのいくつかのイメージングAPI(SunのJ2SE、JAIなど)では、すでにJPEGの解凍を実装し、それらを使用して、JPEGで圧縮されたGeoRasterオブジェクトに対しデコーディング・プロセスを実行できます。DEFLATE圧縮に対しては、ZLIB CライブラリまたはJava APIを使用して、基本的に同様の方法を適用できます。

1.10.4 圧縮に使用するサード・パーティのプラグイン

GeoRasterは、サード・パーティの圧縮ソリューションのプラグイン・アーキテクチャを提供します。LizardTech社は、MrSIDおよびJPEG 2000の圧縮タイプで、ラスター・イメージをネイティブでOracle Spatial and Graph GeoRasterに圧縮して格納できるプラグインを提供しています。詳細は、LizardTech社に問い合せてください。

1.10.5 SecureFilesの圧縮

Oracle Database SecureFiles Compression (概要は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照)を使用して、GeoRasterラスター・データ表(RDT)の可逆圧縮を実現し、GeoRasterオブジェクトを圧縮できます。表の作成時に、LOB記憶域(RDTのrasterBlock列など)にSecureFilesの圧縮を指定すると、その表のすべての行のSecureFiles LOBがSecureFilesの圧縮を使用して圧縮されます。圧縮はGeoRasterに対して透過的になるため、アプリケーションの変更は必要ありません。ただし、RDTラスター・ブロック上で任意のGeoRaster固有の圧縮タイプ(JPEG、DEFLATEまたはサード・パーティのプラグインなど)も使用している場合は、これらのブロック上でSecureFilesの圧縮を使用しないようにする必要があります。

SecureFilesの圧縮を使用するには、Oracle Database Advanced Compression Optionのライセンス(『Oracle Databaseライセンス情報』を参照)が必要です。ただし、SecureFilesの圧縮を使用しないGeoRaster圧縮操作には、Oracle Database Advanced Compression Optionは必要ありません。

1.11 GeoRasterおよびデータベースの管理

GeoRasterでは、データベース管理タスクを実行できます。また、多くの管理タスクを自動的に実行し、自動管理操作を容易にするための複数のガイドラインが強化されています。

GeoRasterは、特別な管理タスクを実行する必要のあるユーザーに複数のサブプログラムを提供します。

- SDO_GEOR_ADMIN.isRDTNameUniqueはRDT名の一意性をチェックし、SDO_GEOR_UTL.renameRDTはデータの移行中に発生する可能性のある競合を解決するために、データベース内のRDTの名前を変更します。

- SDO_GEOR_ADMIN.checkSysdataEntriesおよびSDO_GEOR_ADMIN.maintainSysdataEntriesは、データベース接続に関連付けられた権限に応じて、現行のスキーマまたはデータベース内の破損したSYSDATAエントリをチェックして修正します。

- 次のサブプログラムは、データベース接続に関連付けられた権限に応じて、現行のスキーマまたはデータベース内の既存のGeoRasterオブジェクトおよび関連オブジェクトの状態をチェックします。SDO_GEOR_ADMIN.listGeoRasterObjects、SDO_GEOR_ADMIN.listGeoRasterColumns、SDO_GEOR_ADMIN.listGeoRasterTables、SDO_GEOR_ADMIN.listRDT、SDO_GEOR_ADMIN.listRegisteredRDTおよびSDO_GEOR_ADMIN.listUnregisteredRDT。

- 次のサブプログラムは、データベース接続に関連付けられた権限に応じて、現行のスキーマまたはデータベース内の既存のGeoRasterオブジェクトを登録できます。SDO_GEOR_ADMIN.registerGeoRasterObjectsおよびSDO_GEOR_ADMIN.registerGeoRasterColumns。

- SDO_GEOR_ADMIN.upgradeGeoRasterは、データベースの更新後にエラーをチェックして修正します。

GeoRasterのデータおよびメタデータの信頼性を保証するために、次の処理が実行され、次のガイドラインが強化されます。

- GeoRasterトリガーはGeoRasterによって管理され、ユーザーが直接発行するSQL文では削除および変更できません。

- 名前のパターンGRDMLTR_*は、GeoRasterトリガーで使用するために予約されています。ユーザーは、GRDMLTR_で始まる名前を持つトリガーを作成できません。

- 関連付けられたGeoRasterメタデータ・エントリが自動的に更新されるのは、GeoRaster表の削除、切捨て、名前の変更、または変更が行われた場合、GeoRaster列が削除された場合またはスキーマが削除された場合です。(ただし、ALTER TABLE文を使用して1つ以上のGeoRaster列を追加する場合は、SDO_GEOR_UTL.createDMLTriggerプロシージャをコールして、追加された各GeoRaster列にDMLトリガーを作成する必要があります。)

- ラスター・データ表(RDT)は、GeoRasterオブジェクトがそのRDTを参照している場合、標準のSQL文を使用して削除したり直接名前を変更することはできません。RDTの名前を変更するには、SDO_GEOR_UTL.renameRDTプロシージャをコールします。

1.12 GeoRaster PL/SQL API

GeoRasterは、SDO_GEOR、SDO_GEOR_UTLおよびSDO_GEOR_ADMIN PL/SQLというPL/SQLパッケージを提供します。これらのパッケージには、GeoRasterのデータおよびメタデータを処理するサブプログラム(ファンクションとプロシージャ)が含まれています。これらのサブプログラムのほとんどは、次の論理カテゴリのいずれかに適合し、サブプログラムの目的を反映します。

- GeoRasterデータの作成、ロードおよびエクスポート

- 地理参照およびGeoRasterオブジェクトの検証

- GeoRasterメタデータの問合せおよび更新

- GeoRasterセル・データの問合せおよび更新

- GeoRasterオブジェクトの処理

- GeoRaster管理機能の実行

GeoRasterは、setプロシージャまたはprocessプロシージャの完了後に、GeoRasterオブジェクトを自動的に検証します。

SDO_GEOR(第4章)、SDO_GEOR_ADMIN(第5章)およびSDO_GEOR_UTL(第6章)の各PL/SQLパッケージのサブプログラムの詳細なリファレンス情報は、それぞれの章を参照してください。これらの章では、サブプログラムをアルファベット順に記載しています。第3章では、サブプログラムをコールする一般的な手順など、これらの多くのサブプログラムの使用方法を含む操作について説明します。

1.13 GeoRaster Java API

Oracle Spatial GeoRasterのJava APIは、Oracle SpatialのGeoRaster機能で使用可能な機能をサポートするインタフェースおよびクラスで構成されます。このAPIは、SDO_GEORASTERオブジェクト型およびそのメタデータのJavaオブジェクトへのマッピングを完了し、GeoRasterオブジェクトを操作するJavaメソッドを提供します。

このAPIには次のパッケージが含まれています。

- oracle.spatial.georasterパッケージはこのAPIのコアです。これは、SDO_GEORASTERオブジェクト型およびそのメタデータのJavaオブジェクトへのマッピングを完了し、GeoRasterオブジェクトを操作するJavaメソッドを提供します。これはPure Javaであり、JAIに依存しません。

- oracle.spatial.georaster.sqlパッケージは、oracle.spatial.georasterパッケージに含まれるサポートが提供されない一部のGeoRaster PL/SQLサブプログラムのラップのサポートを提供します。

- oracle.spatial.georaster.imageパッケージは、GeoRasterオブジェクトまたはGeoRasterオブジェクトのサブセットからJavaイメージを生成し、イメージを処理するためのサポートを提供します。このパッケージはJAIに依存し、JAIを利用します。

これらのパッケージの詳細は、『Oracle Spatial Java API Reference』(Javadoc)を参照してください。

SpatialのJavaクラス・ライブラリは、<ORACLE_HOME>/md/jlib/ディレクトリの下の.jarファイルにあります。GeoRaster Java API .jarファイルは$ORACLE_HOME/md/jlib/georasterapi.jarです。

Oracle MapViewerでのGeoRasterの主題のサポートは、GeoRasterのJava APIに基づきます。MapViewer JavaおよびXML APIを使用して、GeoRasterデータにアクセスできます。MapViewerについては、『Oracle Fusion Middleware Oracle MapViewerユーザーズ・ガイド』を参照してください。

1.14 GeoRasterツール: ビューア、ローダー、エクスポータ

Oracleはサード・パーティと密接に連携して、各種ラスター・データ形式をロードおよびエクスポートする包括的なETL (抽出、変換、ロード)ツールと、GeoRasterオブジェクトを表示する視覚化クライアントを提供します。Spatial and Graphのパートナ・ソリューションの情報については、http://www.oracle.com/technetwork/database-options/spatialandgraph/learnmore/を、Spatial and Graphのオープン・ソース・コンポーネントについては、http://www.oracle.com/technetwork/database-options/spatialandgraph/documentation/を参照し、また$ORACLE_HOME/md/demo/georaster/java/READMEファイルも参照してください(制限を含む)。

GeoRasterには、次のクライアント側ツールも含まれています。

- JAIベースのGeoRasterビューア、ローダーおよびエクスポータ(1.14.1項を参照)

- 多数のイメージ・ファイルおよびラスター・ファイルの同時バッチ・ロードおよびエクスポートのためのGDALベースのETLウィザード(1.14.2項を参照)

これらのクライアント側ツールを使用するには、Oracle Database Examplesメディアからデモ・ファイルをインストールする必要があります(『Oracle Database Examplesインストレーション・ガイド』を参照)。インストール後、これらのツールは次の2つの.jarファイルに配置されます(Spatial and Graphのデフォルトのインストール・ディレクトリが$ORACLE_HOME/mdであるとします)。

$ORACLE_HOME/md/demo/georaster/java/georaster_tools.jar
$ORACLE_HOME/md/demo/georaster/etl/georaster_etl.jar

1.14.1 JAIベースのビューア、ローダーおよびエクスポータ

GeoRaster JAIベースのツールには、ビューア、ローダーおよびエクスポータが含まれます。これらのツールは、DBAおよびアプリケーション開発者向けです。ビューアは、GeoRasterオブジェクトのすべての型とそのメタデータを調査する場合に特に便利です。これによって、GeoRaster表またはビューのいずれか1つまたはリストとして定義された仮想モザイクも表示されます。ローダーおよびエクスポータは、限られた数のイメージ・ファイルおよびラスター・ファイルを1つずつ簡単にロードおよびエクスポートするための軽量ツールです。$ORACLE_HOME/md/demo/georaster/java/READMEファイルには、次のツールに役立つ使用情報や使用手順が記載されています。

- GeoRasterビューア: このツールは、GeoRasterオブジェクトとメタデータ、および仮想モザイクを表示します。複数のデータベースに同時に接続して、左側のペインに示される各データベースからGeoRasterオブジェクトを表示できます。元のイメージ(ピラミッド・レベル0)から概要的なイメージ(最高のピラミッド・レベル)まで、様々な解像度のビューを簡単に切り替えることができます。線形ストレッチ(自動、手動、またはピース単位)、正規化、均等化、および明るさ、コントラスト、しきい値の制御など、イメージを向上させるための操作を実行できます。(GeoRasterオブジェクトの表示方法の詳細は、3.14項を参照してください。)
ビューアからは、GeoRasterローダーおよびエクスポータ・ツールをコールできます。これにより、1つのツールを、すべてのGeoRasterツールの機能へのインタフェースとして使用できます。ローダーおよびエクスポータ・ツールについては、この項およびREADMEファイルで説明しています。

- GeoRasterローダー: このツールは、ラスター・データをGeoRasterオブジェクトにロードします。TIFF、GeoTIFF、JPEG、BMP、GIF、PNGおよびJP2イメージ形式をロードできます。地理参照情報は、ESRIワールド・ファイル、GeoTIFFファイルおよびDigital Globe RPCテキスト・ファイルからのロードが可能です。
GeoRasterローダーは、SDO_GEOR.importFromプロシージャ(第4章を参照)のかわりに使用できます。ただし、Windows以外のシステムでは、このローダー・ツールはBMPまたはGIFイメージ形式をサポートしないため、Windows以外のシステムでこれらの形式を使用するには、SDO_GEOR.importFromプロシージャを使用する必要があります。このツールは、セル深度値が2BITのラスター・データ、またはBILまたはBSQインターリーブ・タイプのソース・マルチバンド・ラスター・データをサポートしていません。インポートされたGeoRasterオブジェクトは、BIPインターリーブ・タイプになります。このツールでのロード操作はロールバックできません。

JPEGファイル形式でイメージをロードする場合、操作に必要なメモリーの容量は、圧縮されていないイメージのサイズによって異なります。これは、-Xmxオプション(java -Xmx256M oracle.spatial.georaster.tools.GeoRasterLoader ...など)を使用してコマンドライン・パラメータとして指定できます。

- GeoRasterエクスポータ: このツールは、GeoRasterオブジェクトをイメージ・ファイルにエクスポートします。GeoRasterエクスポータ・ツールは、宛先イメージ・ファイル形式としてTIFF、GeoTIFF、JPEG、BMP、GIF、PNGおよびJP2をサポートします。地理参照情報は、ESRIワールド・ファイル、GeoTIFFファイルおよびDigital Globe RPCテキスト・ファイルへのエクスポートが可能です。
このツールは、SDO_GEOR.exportToプロシージャ(第4章を参照)のかわりに使用できます。ただし、GeoRasterエクスポータ・ツールは、GIFを宛先ファイル形式としてサポートせず、SDO_GEOR.exportToプロシージャは、GIF、JPEGまたはJP2を宛先ファイル形式としてサポートしていません。GeoRasterエクスポータ・ツールは、cellDepth値が2BITのGeoRasterオブジェクトをサポートしていません。BSQまたはBILインターリーブ形式で8ビット以上のセル深度を持つGeoRasterオブジェクトは、BIPインターリーブ形式でエクスポートされます。

1回の操作でエクスポートできるGeoRasterデータの容量の制限については、SDO_GEOR.exportToプロシージャの「使用上の注意」を参照してください。

イメージのサイズおよびタイプに関して、ロード操作とエクスポート操作に制限事項が適用される場合があります。詳細は、GeoRasterツールのREADMEファイルを参照してください。

これらのツールはJavaで開発されているため、Oracle Databaseとネットワーク接続できるかぎり、イントラネットまたはインターネットを介して任意の場所で実行できます。

GeoRasterのクライアント側ツールでGeoTIFFイメージをロードまたはエクスポートするには、次のライブラリを現在のCLASSPATH定義に追加します。

- xtiff-jai.jar(SourceForge Extensible-TIFF-JAIグループから入手可能)

- geotiff-jai.jar(SourceForge GeoTIFF-JAIグループから入手可能)

JP2イメージのロードまたはエクスポートを行うには、CLASSPATH定義にライブラリjai-imageio.jar (Oracle Java Advanced Imaging Image I/O Toolsのダウンロード・ページから入手可能)を追加します。

ラスター・ファイルまたはイメージ・ファイルがGeoRasterオブジェクトにロードされた後、データ全体がGeoRasterオブジェクトのネイティブ・データ型で格納され、他の特定のファイル形式との関連性がなくなります。

独自のGeoRasterローダー・ツールおよびGeoRasterエクスポータ・ツールは、OCI、Oracle C++ Call Interface(OCCI)またはJavaを使用して開発できます。開発したツールは、クライアント側のコマンドまたはサーバー側のSQLプロシージャまたはファンクションとして実装できます。

1.14.2 同時バッチ・ロードおよびエクスポートのためのGDALベースのETLウィザード

GeoRasterには、GDALを使用して様々なイメージ・ファイルとラスター・ファイルの同時バッチ・ロードおよびエクスポートを自動化して有効化するためのETLウィザード・ツールが付属しています。この強力なツールによって、多数のラスター・ファイルとイメージ・ファイルを一括して同時にロードおよびエクスポートできます。

これは、XMLスキーマを定義し、XMLでロードおよびエクスポート記述ファイルを作成するためのGraphical User Interfaceを提供します。各記述ファイルには、GeoRasterを対象に一括して一連のラスター・ファイルをロードまたはエクスポートする方法が記述されています。XML記述ファイルが作成されると、同じウィザード・ツールを使用して複数の記述ファイルを呼び出し、ラスター・ファイルを一括して同時にロードおよびエクスポートできます。実行時障害は、発生すると捕捉されて記録されますが、バッチ・ロードまたはエクスポート・プロセスは停止しません。このツールは、GDALでサポートされるすべてのラスター形式に対応しています。

このウィザードを使用するには、Oracle Database Examplesメディアからデモ・ファイルをインストールする必要があります(『Oracle Database Examplesインストレーション・ガイド』を参照)。インストール後、このウィザードは次の.jarファイルに配置されます(Spatial and Graphのデフォルトのインストール・ディレクトリが$ORACLE_HOME/mdであるとします)。

$ORACLE_HOME/md/demo/georaster/etl/georaster_etl.jar

$ORACLE_HOME/md/demo/georaster/etl/READMEファイルには、GDALの設定方法とウィザードの起動方法が記述されています。

$ORACLE_HOME/md/demo/georaster/etl/georaster_etl_user_guide.pdfファイルには、使用方法の詳細が記述されています。

1.15 GeoRasterのPL/SQLおよびJavaデモ・ファイル

GeoRasterには、一般的な操作を示す、いくつかのPL/SQLおよびJavaデモ・ファイルが含まれています。Oracle Database Examplesメディアからデモ・ファイルをインストールした場合(『Oracle Database Examplesインストレーション・ガイド』を参照)、これらのファイルはSpatialのインストール・ディレクトリ(デフォルトでは$ORACLE_HOME/md)の下の次のディレクトリにあります。

/demo/georaster/plsql
/demo/georaster/java

PL/SQLの例では、GeoRaster PL/SQL APIを使用して、GeoRasterオブジェクトの初期化、インポート、挿入、削除、問合せ、処理、更新およびエクスポートを行う基本操作を示しています。

Javaの例では、GeoRaster Java APIを使用して、GeoRaster ETL(抽出、変換、ロード)ツールおよびアプリケーションを開発する方法を示しています。

1.16 Spatialおよび関連機能のREADMEファイル

README.txtファイルは、『Oracle Spatial開発者ガイド』、『Oracle Spatial GeoRaster開発者ガイド』(このマニュアル)および『Oracle Spatialトポロジおよびネットワーク・データ・モデル開発者ガイド』のマニュアルの情報を補足します。このファイルは次のディレクトリにあります。

$ORACLE_HOME/md/doc/README.txt

GeoRasterについては、$ORACLE_HOME/md/demo/georaster/java/READMEファイルも参照してください。

2 GeoRasterのデータ型および関連構造

GeoRasterのオブジェクト・リレーショナル実装は、データおよびシステム・データを格納するための一連のオブジェクト・データ型で構成されます。イメージまたはグリッド・ラスター・データはそれぞれSDO_GEORASTER型の列に格納され、そのラスター・データ内のブロックはSDO_RASTER型のラスター・データ表に格納されます(1.4項を参照)。この章の内容は次のとおりです。

- 2.1項「SDO_GEORASTERオブジェクト型」

- 2.2項「SDO_RASTERオブジェクト型およびラスター・データ表」

- 2.3項「他のGeoRasterの型」

- 2.4項「GeoRasterシステム・データ・ビュー(xxx_SDO_GEOR_SYSDATA)」

- 2.5項「GeoRasterのXMLスキーマ」

2.1 SDO_GEORASTERオブジェクト型

GeoRasterオブジェクト・リレーショナル・モデルでは、ラスター・イメージまたはグリッド・オブジェクトが、ユーザーが定義した表のSDO_GEORASTERオブジェクト型の1列に、1行で格納されます。1つ以上のSDO_GEORASTER型の列が含まれる表は、GeoRaster表と呼ばれます。

SDO_GEORASTERオブジェクト型の定義は次のとおりです。

CREATE TYPE sdo_georaster AS OBJECT (
rasterType       NUMBER,
spatialExtent    SDO_GEOMETRY,
rasterDataTable  VARCHAR2(32),
rasterID         NUMBER,
metadata         XMLType);

この項では、各SDO_GEORASTER属性の意味について説明します。

2.1.1 rasterType属性

rasterType属性には、[d][b][t][gt]という書式の5桁の値を指定する必要があります。各桁の内容は次のとおりです。

- [d]は、空間次元数を示します。今回のリリースでは、2を指定する必要があります。

- [b]は、バンドまたはレイヤーの情報を示します。0(ゼロ)は、バンドまたはレイヤーが1つであることを意味します。1は、バンドまたはレイヤーが1つまたは複数であることを意味します。このフィールドにはバンドまたはレイヤーの合計数を指定するのではないことに注意してください。(バンドおよびレイヤーの詳細は、1.5項を参照してください。)

- [t]は、将来使用するために予約されており、0(ゼロ)を指定する必要があります。

- [gt]は、2桁のGeoRaster型を示し、次の値のいずれかを指定する必要があります。

[gt]の値

意味

00

Oracleで使用するために予約されています。

01

任意のGeoRaster型です。今回のリリースでは、この値のみがサポートされています。この値を指定すると、GeoRasterで、将来のリリースで型が実装された場合に、その特定の型に関連付けられた制限が適用されなくなります。

02-50

Oracleで使用するために予約されています。

51-99

将来のリリースで顧客が使用するために予約されています。

たとえば、20001のRasterType値は、次のことを意味します。

- 2次元データである

- 1つのバンド(レイヤー)である

- 任意のGeoRaster型である

2.1.2 spatialExtent属性

spatialExtent属性は、ラスター・データに関連付けられた空間エクステント(フットプリント)を表します。空間エクステントは、SDO_GEOMETRY型のOracle Spatialジオメトリです。空間エクステント・ジオメトリは、必ずしもGeoRasterモデル空間内ではなく、任意の座標系に存在できます。また、ジオメトリを指定したSQLのUPDATE文で直接更新できます。ただし、空間エクステント・ジオメトリがGeoRasterオブジェクトのモデル(地上)空間内に存在するのは、GeoRasterオブジェクトが地理参照されていて、空間エクステント・ジオメトリを生成する際に、SDO_GEOR.generateSpatialExtentファンクションをコールしたか、あるいはspatialExtent=TRUEをSDO_GEOR.importFromプロシージャまたはGeoRasterのクライアント側ローダー(1.14項を参照)の記憶域パラメータとして指定した場合です。

SDO_CS.transformをコールすることにより、サポートされている他のすべての座標系に空間エクステント・ジオメトリを変換できます。SRIDの値がNULLまたは0(ゼロ)の場合、空間エクステントは、セル空間ではなくNULLに設定されます。SDO_GEOMETRYデータ型の詳細は、『Oracle Spatial開発者ガイド』を参照してください。

GeoRasterの空間エクステントは、通常、GeoRaster列に空間Rツリー索引を作成する際に使用されます。たとえば、すべてのGeoRasterオブジェクトが異なるローカル投影に存在する場合、すべての空間エクステントに対して測地SRIDを使用でき、全地球ベースの空間索引をGeoRaster表に作成して、GeoRasterオブジェクトの空間検索をグローバルに実行できます。空間索引の作成によってGeoRasterアプリケーションのパフォーマンスが向上する可能性があるため、ジオメトリは、XMLのmetadata属性(2.1.5項を参照)に含まれるのではなく、spatialExtent属性に関連付けられます。GeoRasterデータの索引付けの詳細は、3.7項を参照してください。

2.1.3 rasterDataTable属性

rasterDataTable属性は、ラスター・データ表の名前を識別します。ラスター・データ表は、SDO_RASTER型のオブジェクト表である必要があります。この表には、格納されている各ラスター・ブロックに対してSDO_RASTER型の行が1行含まれます。ラスター・データ表は作成および(必要に応じて)削除する必要があります。この表の行を直接変更することはできませんが、この表を問い合せてラスター・データにアクセスすることはできます。

この属性は、引用符で囲まれていない有効な識別子で、ピリオドで区切る必要はありません。また、英数字はすべて大文字であることが必要です。

ラスター・データ表およびSDO_RASTER型の詳細は、2.2項を参照してください。

2.1.4 rasterID属性

rasterID属性の値は、ラスター・データ表の行に格納され、GeoRasterオブジェクトに属する行を識別します。rasterDataTable属性とrasterID属性の組合せによって、データベース内でGeoRasterオブジェクトが一意に識別されます。各GeoRasterオブジェクトには1つのラスター・データ表が存在しますが、1つのラスター・データ表に複数のGeoRasterオブジェクトのデータが含まれる場合があります。

rasterIDおよびrasterDataTable属性は新しいGeoRasterオブジェクトに指定できます。ただし、それぞれの組合せがデータベース内で一意である必要があります。これらの値を指定しない場合、SDO_GEOR.initおよびSDO_GEOR.createBlankファンクションによって値が自動的に生成されます。

2.1.5 metadata属性

metadata属性には、オラクル社によって定義されたGeoRasterメタデータが含まれます。このメタデータは、GeoRasterメタデータのXMLスキーマによって記述されます(付録Aを参照。)すべてのGeoRasterオブジェクトのメタデータは、このXMLスキーマに対して検証する必要があります。また、SDO_GEOR.validateGeoRasterファンクションを使用して検証する必要もあります。このXMLスキーマでは定義されない追加の制限が、このファンクションによって適用されます。

2.2 SDO_RASTERオブジェクト型およびラスター・データ表

GeoRasterオブジェクト・リレーショナル・モデルでは、ラスター・データ表を使用して、ラスター・イメージ内のすべてのセル・データが格納されます。GeoRasterオブジェクトのセル・データはブロック化され、各ブロックは1つの行としてラスター・データ表に格納されます。この表はSDO_GEORASTERオブジェクトのrasterDataTable属性で指定します(2.1.3項を参照)。任意のセル・データを格納する前にラスター・データ表を作成する必要があります。

ラスター・データ表は、SDO_RASTERオブジェクト型の表として定義されたオブジェクト表です。SDO_RASTERオブジェクト型の定義は次のとおりです。

CREATE TYPE sdo_raster AS OBJECT (
rasterID           NUMBER,
pyramidLevel       NUMBER,
bandBlockNumber    NUMBER,
rowBlockNumber     NUMBER,
columnBlockNumber  NUMBER,
blockMBR           SDO_GEOMETRY,
rasterBlock        BLOB);

この項では、各SDO_RASTER属性の意味について説明します。

2.2.1 rasterID属性

SDO_RASTERオブジェクトのrasterID属性には、関連付けられたSDO_GEORASTERオブジェクトのrasterIDの値と一致する数値を指定する必要があります。(SDO_GEORASTERオブジェクトのrasterID属性については、2.1.4項を参照してください。)これらの数値が一致することによって、特定のGeoRasterオブジェクトに属しているラスター・ブロックが識別されます。

2.2.2 pyramidLevel属性

pyramidLevel属性は、セルの特定のブロックのピラミッド・レベルを識別します。ピラミッド・レベルには、0(ゼロ)または任意の正の整数を指定します。ピラミッド・レベルは、必要な記憶域が小さい低解像度のイメージを作成するために使用されます。値が0 (ゼロ)のピラミッド・レベルは、元のラスター・データを示します(この場合、イメージの解像度は低下せず、必要な記憶域は変化しません)。値が0 (ゼロ)より大きくなるほど、イメージの解像度のレベルが低くなり、必要な記憶域が小さくなります。ピラミッドの詳細は、1.7項を参照してください。

この属性とbandBlockNumber属性(2.2.3項を参照)は、ビットマップ・マスクおよびビットマップ・マスク・ピラミッドの指定にも使用します。ビットマップ・マスク、ビットマップ・マスク・ピラミッド、およびpyramidLevel属性とbandBlockNumber属性の使用方法は、1.8項を参照してください。

2.2.3 bandBlockNumber属性

bandBlockNumber属性は、バンド次元でのブロック番号を識別します。バンドおよびレイヤーの詳細は、1.5項を参照してください。ビットマップ・マスクおよびビットマップ・マスク・ピラミッドでのbandBlockNumber属性の使用方法は、1.8項を参照してください。

2.2.4 rowBlockNumber属性

rowBlockNumber属性は、行次元でのブロック番号を識別します。

2.2.5 columnBlockNumber属性

columnBlockNumber属性は、列次元でのブロック番号を識別します。

2.2.6 blockMBR属性

blockMBR属性は、特定のブロックの最小境界矩形(MBR)の(SDO_GEOMETRY型の)ジオメトリです。ジオメトリはセル空間に存在し(SRID値はNULL)、すべての座標は整数になります。座標は、このブロックに格納された最小行と最小列、および最大行と最大列を表します。

2.2.7 rasterBlock属性

rasterBlock属性には、特定のブロックのすべてのラスター・セル・データが含まれます。また、GeoRasterオブジェクトのビットマップ・マスクの格納にも使用されます。rasterBlock属性は、BLOB型です。

2.3 他のGeoRasterの型

GeoRasterでは、SDO_GEORASTER(2.1項を参照)、SDO_RASTER(2.2項を参照)およびSDO_RANGE_ARRAYとSDO_RANGE(1.9項を参照)の他に、特定の種類の操作に使用される他の複数のオブジェクト型およびコレクション型が提供されています。(表の列を定義する場合などに)データベースのストレージで使用されるSDO_GEORASTER型およびSDO_RASTER型とは異なり、この項で説明する型は、今回のリリースのGeoRaster PL/SQL APIでのみ使用されます。

2.3.1 SDO_GEOR_HISTOGRAMオブジェクト型

GeoRasterでは、XMLスキーマ(付録Aを参照)を使用してヒストグラムがGeoRasterメタデータに格納されます。SDO_GEOR_HISTOGRAMオブジェクト型は、GeoRasterオブジェクトまたはレイヤーのヒストグラム・データを含めるためにPL/SQL API内で使用されます。レイヤーは、ヒストグラム・データ構造が同じです。各セルは値を持ち、各セルの値または値の範囲に対して、その値を持つセルまたはその範囲内の値を持つセルが多数存在する可能性があります。

SDO_GEOR_HISTOGRAMオブジェクト型の定義は次のとおりです。

CREATE TYPE sdo_geor_histogram AS OBJECT(
cellValue  SDO_NUMBER_ARRAY,
count      SDO_NUMBER_ARRAY);

表2-1に、SDO_GEOR_HISTOGRAMオブジェクト型の属性の説明を示します。cellValueとcount配列の長さは同じである必要があります。

表2-1 SDO_GEOR_HISTOGRAMオブジェクト型の属性

属性

説明

cellValue

セル値の配列。

count

各セル値またはセル値の範囲に対応するセルの数。

ヒストグラムには、セル値(および暗黙的な値の範囲)、および各セル値または各セル値の範囲に関連するセルの合計数が含まれます。たとえば、(cellValue1, count1)と(cellValue2, count2)がヒストグラム内で昇順に隣接する2つのエントリである場合、暗黙的な値の範囲は(cellValue1, cellValue2)で、この範囲に含まれるセルの合計数はcount1です。セル値の範囲には、常に下限が含まれ、上限は含まれません。各範囲のサイズが同一である必要はありません。この例の場合は、cellValue1以上かつcellValue2未満が範囲になります。セル深度の下限(例: 1ビットから8ビットまでの整数)では、通常、セル値の範囲はセル値と同じです。

2.3.2 SDO_GEOR_COLORMAPオブジェクト型

GeoRasterでは、XMLスキーマ(付録Aを参照)を使用してカラー情報がGeoRasterメタデータに格納されます。SDO_GEOR_COLORMAPオブジェクト型は、カラーマップ情報を含めるためにPL/SQL APIで使用されます。カラーマップ情報とは、特定の値を持つセルまたは特定の値の範囲に含まれるセルの表示に使用される色の、赤、緑、青および(オプション)アルファの値を識別するための疑似カラー情報です。カラーマップは、疑似カラー表またはパレット表とも呼ばれます。GeoRasterのデフォルトのカラーマップは、sRGB ColorSpaceです。これは、標準のRGB色空間として勧告提案されています。詳細は、次のURLを参照してください。

http://www.w3.org/Graphics/Color/sRGB.html

赤、緑、青およびアルファの値はすべて、0から255の、8ビットの符号なし整数になります。

アルファは、不透明度とも呼ばれます。アルファ値が255の場合は色が完全に不透明であることを意味し、アルファ値が0(ゼロ)の場合は色が完全に透明であることを意味します。色構成要素値にアルファ値を掛けることはできません。

SDO_GEOR_COLORMAPオブジェクト型の定義は次のとおりです。

CREATE TYPE sdo_geor_colormap AS OBJECT(
cellValue  SDO_NUMBER_ARRAY,
red        SDO_NUMBER_ARRAY,
green      SDO_NUMBER_ARRAY,
blue       SDO_NUMBER_ARRAY,
alpha      SDO_NUMBER_ARRAY);

表2-2に、SDO_GEOR_COLORMAPオブジェクト型の属性の説明を示します。各属性は、数値の配列です。各配列の長さは同じで、各配列の同じ索引の値が相互に対応している必要があります。各cellValue値は、GeoRasterオブジェクトのcellDepth値と一貫性がある必要があります。

カラーマップには、セル値(および暗黙的な値の範囲)と、各セル値または各セル値の範囲に関連する赤、緑、青またはアルファの値が含まれます。たとえば、(cellValue1, red1, green1, blue1, alpha1)と(cellValue2, red2, green2, blue2, alpha2)がカラーマップ内で昇順に隣接する2つのエントリである場合、暗黙的な値の範囲は(cellValue1, cellValue2)で、この範囲に含まれるすべてのセルに関連付けられる色構成要素は(red1, green1, blue1, alpha1)です。セル値の範囲には、常に下限が含まれ、上限は含まれません。各範囲のサイズが同一である必要はありません。この例の場合は、cellValue1以上かつcellValue2未満が範囲になります。セル深度の下限(例: 1ビットから8ビットまでの整数)では、通常、セル値の範囲はセル値と同じです。

表2-2 SDO_GEOR_COLORMAPオブジェクト型の属性

属性

説明

cellValue

セル値の配列。値は昇順に格納する必要があります。

red

cellValueに値または値の範囲を持つセルの、疑似カラー表示用の赤の構成要素値の配列。0から255の整数値を指定する必要があります。

green

cellValueに値または値の範囲を持つセルの、疑似カラー表示用の緑の構成要素値の配列。0から255の整数値を指定する必要があります。

blue

cellValueに値または値の範囲を持つセルの、疑似カラー表示用の青の構成要素値の配列。0から255の整数値を指定する必要があります。

alpha

cellValueに値または値の範囲を持つセルの、疑似カラー表示用のアルファの構成要素値の配列。0から255の整数値を指定する必要があります。

2.3.3 SDO_GEOR_GRAYSCALEオブジェクト型

GeoRasterでは、XMLスキーマ(付録Aを参照)を使用してグレースケール情報がGeoRasterメタデータに格納されます。SDO_GEOR_GRAYSCALEオブジェクト型は、グレースケール値の識別用グレースケール情報を含めるためにPL/SQL APIで使用されます。グレースケール値は、特定の値を持つセルまたは特定の値の範囲に含まれるセルを表示する際に使用されます。グレースケール表のセル値は、このグレースケール表を使用して線形比率で伸縮できるため、元のラスター・データを適切に表示できます。グレースケール表の値は、0から255の、8ビットの符号なしの整数になります。グレースケール表は、コントラスト表または参照表とも呼ばれます。

SDO_GEOR_GRAYSCALEオブジェクト型の定義は次のとおりです。

CREATE TYPE sdo_geor_grayscale AS OBJECT(
cellValue  SDO_NUMBER_ARRAY,
gray       SDO_NUMBER_ARRAY);

表2-3に、SDO_GEOR_GRAYSCALEオブジェクト型の属性の説明を示します。cellValueとgray配列の長さは同じである必要があります。各cellValue値は、GeoRasterオブジェクトのcellDepth値と一貫性がある必要があります。

グレースケールには、セル値(および暗黙的な値の範囲)、および各セル値または各セル値の範囲に関連するグレー値が含まれます。たとえば、(cellValue1, gray1)と(cellValue2, gray2)がグレースケール表内で昇順に隣接する2つのエントリである場合、暗黙的な値の範囲は(cellValue1, cellValue2)で、この範囲に含まれるすべてのセルに関連付けられたグレー色はgray1です。セル値の範囲には、常に下限が含まれ、上限は含まれません。各範囲のサイズが同一である必要はありません。この例の場合は、cellValue1以上かつcellValue2未満が範囲になります。セル深度の下限(例: 1ビットから8ビットまでの整数)では、通常、セル値の範囲はセル値と同じです。

表2-3 SDO_GEOR_GRAYSCALEオブジェクト型の属性

属性

説明

cellValue

セル値の配列。値は昇順に格納する必要があります。

gray

cellValueに値または値の範囲を持つセルの、グレースケール表示用のグレーの構成要素値の配列。0から255の整数値を指定する必要があります。

2.3.4 SDO_RASTERSETコレクション型

SDO_RASTERSETコレクション型は、ラスター・データ・ブロック(1つまたは複数のブロック、全体またはサブセット)を問い合せるテーブル・ファンクションの戻り型として使用されます。

SDO_RASTERSETコレクション型の定義は次のとおりです。

CREATE TYPE sdo_rasterset AS TABLE of SDO_RASTER;

SDO_RASTER型の詳細は、2.2項を参照してください。

2.3.5 SDO_GEOR_SRSオブジェクト型

GeoRasterでは、XMLスキーマ(付録Aを参照)を使用して空間参照システム(SRS)情報がGeoRasterメタデータに格納されます。SDO_GEOR_SRSオブジェクト型は、GeoRasterオブジェクトの空間参照に関する情報を含めるためにPL/SQL APIで使用されます。メタデータとオブジェクト型には同じ情報が含まれます。オブジェクト型を使用して、GeoRasterオブジェクトからのSRS情報を取得したり、GeoRasterオブジェクトにSRS情報をロードして更新できます。

SDO_GEOR_SRSオブジェクト型の定義は次のとおりです。

CREATE TYPE sdo_geor_srs AS OBJECT (
isReferenced       VARCHAR2(5),
isRectified        VARCHAR2(5),
isOrthoRectified   VARCHAR2(5),
srid               NUMBER,
spatialResolution  SDO_NUMBER_ARRAY,
spatialTolerance   NUMBER,
coordLocation      NUMBER,
rowOff             NUMBER,
columnOff          NUMBER,
xOff               NUMBER,
yOff               NUMBER,
zOff               NUMBER,
rowScale           NUMBER,
columnScale        NUMBER,
xScale             NUMBER,
yScale             NUMBER,
zScale             NUMBER,
rowRMS             NUMBER,
columnRMS          NUMBER,
totalRMS           NUMBER,
rowNumerator       SDO_NUMBER_ARRAY,
rowDenominator     SDO_NUMBER_ARRAY,
columnNumerator    SDO_NUMBER_ARRAY,
columnDenominator  SDO_NUMBER_ARRAY,
xRMS               NUMBER,
yRMS               NUMBER,
zRMS               NUMBER,
modelTotalRMS      NUMBER,
GCPgeoreferenceModel SDO_GEOR_GCPGEOREFTYPE);

表2-4に、SDO_GEOR_SRSオブジェクト型の属性の説明を示します。

表2-4 SDO_GEOR_SRSオブジェクト型の属性

属性

説明

isReferenced

GeoRasterオブジェクトが地理参照されている場合はTRUE、地理参照されていない場合はFALSEを指定します。

isRectified

GeoRasterオブジェクトが幾何補正および地理参照されている場合はTRUE、幾何補正されていない場合はFALSEを指定します。

isOrthoRectified

GeoRasterオブジェクトがオルソ補正、幾何補正および地理参照されている場合はTRUE、オルソ補正されていない場合はFALSEを指定します。

srid

モデル(地上)座標系のSRID値を指定します。

spatialResolution

空間解像度の値(空間次元ごとに1つの値を指定した数値の配列)を指定します。各値は、セルの空間次元によって表現されるデータ領域に関連付けられた測定単位の数を示します。

spatialTolerance

精度を制御するための許容差を指定します。

coordLocation

モデル座標位置は、左上角(coordLocation=1)または中心(coordLocation=0)のいずれかを表すセル空間の種類を定義します。モデル空間およびセル(ラスター)空間の詳細は、1.3項を参照してください。

rowOff

行のオフセット値

columnOff

列のオフセット値

xOff

X座標のオフセット値

yOff

Y座標のオフセット値

zOff

Z座標のオフセット値

rowScale

行のスケール変更係数値

columnScale

列のスケール変更係数値

xScale

X座標のスケール変更係数値

yScale

Y座標のスケール変更係数値

zScale

Z座標のスケール変更係数値

rowRMS

行次元の精度。GCPを使用してSDO_GEOR.georeferenceをコールすると、基準点を使用して計算されます。

columnRMS

列次元の精度。GCPを使用してSDO_GEOR.georeferenceをコールすると、基準点を使用して計算されます。

totalRMS

行と列の合計精度。GCPを使用してSDO_GEOR.georeferenceをコールすると、基準点を使用して計算されます。

rowNumerator

pType、nVars、order、nCoefficientsおよび行多項式の分子のすべての係数を指定します。ここでpTypeは1または2、nVarsは0、2または3、orderは0以上5以下です。nCoefficientsはpType、nVars、orderから導出されます。多項式については、1.6.1項を参照してください。

rowDenominator

pType、nVars、order、nCoefficientsおよび行多項式の分母のすべての係数を指定します。ここでpTypeは1または2、nVarsは0、2または3、orderは0以上5以下です。nCoefficientsはpType、nVars、orderから導出されます。多項式については、1.6.1項を参照してください。

columnNumerator

pType、nVars、order、nCoefficientsおよび列多項式の分子のすべての係数を指定します。ここでpTypeは1または2、nVarsは0、2または3、orderは0以上5以下です。nCoefficientsはpType、nVars、orderから導出されます。多項式については、1.6.1項を参照してください。

columnDenominator

pType、nVars、order、nCoefficientsおよび列多項式の分母のすべての係数を指定します。ここでpTypeは1または2、nVarsは0、2または3、orderは0以上5以下です。nCoefficientsはpType、nVars、orderから導出されます。多項式については、1.6.1項を参照してください。

xRMS

X次元の精度。GCPを使用してSDO_GEOR.georeferenceをコールすると、チェック・ポイントを使用して計算されます。

yRMS

Y次元の精度。GCPを使用してSDO_GEOR.georeferenceをコールすると、チェック・ポイントを使用して計算されます。

zRMS

Z次元の精度。GCPを使用してSDO_GEOR.georeferenceをコールすると、チェック・ポイントを使用して計算されます。

modelTotalRMS

合計モデル精度。GCPを使用してSDO_GEOR.georeferenceをコールすると、チェック・ポイントを使用して計算されます。

GCPgeoreferenceModel

ストアド・ファンクション・モデル情報、つまり、GCPベースの地理参照モデルに関するすべての情報。GCPベースの地理参照モデル情報の詳細は、2.3.8項「SDO_GEOR_GCPGEOREFTYPEオブジェクト型」を参照してください。

ただし、直接および反転ソリューションが関数フィッティング・モデルから導出される場合、表2-4にリストされている精度の値は、今回のリリースのGeoRasterのセル座標とモデル座標の内部変換計算では考慮されません。

SDO_GEOR_SRSオブジェクト型には次の2つのコンストラクタが含まれます。

- 1つのコンストラクタは、パラメータを持たず、isReferenced属性がFALSEに設定され他の属性はNULL値に設定される型のインスタンスを作成します。このコンストラクタを使用すると、関数フィッティング・モデルまたはストアド・ファンクション(GCP)モデルのいずれかを設定するか、これらの両方を同時に設定できます。

- もう1つのコンストラクタは、ストアド・ファンクション(GCP)モデルに関連するものを除く、このオブジェクト型のすべての属性をパラメータとして取得します。

SDO_GEOR_SRSコンストラクタの使用例は、第4章のSDO_GEOR.setSRSプロシージャに関する項を参照してください。

2.3.6 SDO_GEOR_GCPオブジェクト型

GeoRasterでは、XMLスキーマ(付録Aを参照)を使用して地上基準点(GCP)情報がGeoRasterメタデータに格納されます。SDO_GEOR_GCPオブジェクト型は、GeoRasterオブジェクトの地理参照に関するGCP情報を含めるためにPL/SQL APIで使用されます。メタデータとオブジェクト型には同じ情報が含まれます。オブジェクト型を使用して、GeoRasterオブジェクトからのGCP情報を取得したり、GeoRasterオブジェクトにGCP情報をロードして更新できます。

SDO_GEOR_GCPオブジェクト型の定義は次のとおりです。

CREATE TYPE sdo_geor_gcp AS OBJECT (
pointID          VARCHAR2(32),
description      VARCHAR2(256),
pointType        NUMBER,
cellDimension    NUMBER,
cellCoordinates  SDO_NUMBER_ARRAY,
modelDimension   NUMBER,
modelCoordinates SDO_NUMBER_ARRAY,
accuracy         SDO_NUMBER_ARRAY,
status           NUMBER
);

表2-5に、SDO_GEOR_GCPオブジェクト型の属性の説明を示します。

表2-5 SDO_GEOR_GCPオブジェクト型の属性

属性

説明

pointID

基準点の一意のID。最大32文字です。

description

基準点の説明。

pointType

ポイント・タイプ: 1 (基準点)または2 (チェック・ポイント)。

cellDimension

セル座標の次元(次元数): 2または3。

cellCoordinates

基準点のセル座標の配列; 各点の(行,列)または(行,列,垂直)。

modelDimension

モデル座標の次元(次元数): 2または3。

modelCoordinates

セル空間内の点に対応する、基準点のモデル座標の配列; 各点の(X,Y)または(X,Y,Z)。

accuracy

(xRMS, yRMS)または(xRMS, yRMS, zRMS)の値で表される、基準点の精度。

status

GCPのステータス: Measured、Removed、Estimated、ValidatedまたはInvalid。この列の値は情報のみを示し、GeoRasterによるGCPの使用には影響しません。

SDO_GEOR_GCPコンストラクタは、このオブジェクト型の空のインスタンスを作成するために使用できます。このインスタンスを使用する前に、必要なデータを入力する必要があります。

2.3.7 SDO_GEOR_GCP_COLLECTIONコレクション型

SDO_GEOR_GCP_COLLECTIONコレクション型は、地上基準点(GCP)の配列(コレクション)を格納するために使用されます。

SDO_GEOR_GCP_COLLECTIONコレクション型の定義は次のとおりです。

CREATE TYPE sdo_geor_gcp_collection VARRAY(1048576) OF SDO_GEOR_GCP;

SDO_GEOR_GCP型の詳細は、2.3.6項を参照してください。

2.3.8 SDO_GEOR_GCPGEOREFTYPEオブジェクト型

GeoRasterでは、XMLスキーマ(付録Aを参照)を使用してGCPベースの地理参照モデル情報がGeoRasterメタデータに格納されます。SDO_GEOR_GCPGEOREFTYPEオブジェクトには、地理参照関数フィッティング・メソッド(ジオメトリ・モデル)、モデル・パラメータを解決するための基準点、およびソリューションの精度が含まれています。SDO_GEOR_GCPGEOREFTYPEオブジェクト型は、GeoRasterオブジェクトのGCPベースの地理参照に関する地理参照モデル情報を含めるためにPL/SQL APIで使用されます。メタデータとオブジェクト型には同じ情報が含まれます。オブジェクト型を使用して、GeoRasterオブジェクトからの地理参照モデル情報を取得したり、GeoRasterオブジェクトに地理参照モデル情報をロードして更新できます。

SDO_GEOR_GCPGEOREFTYPEオブジェクト型の定義は次のとおりです。

CREATE TYPE sdo_geor_gcpgeoreftype AS OBJECT (
FFMethodType     VARCHAR2(32),
numberGCP        NUMBER,
GCPs             SDO_GEOR_GCP_COLLECTION,
solutionAccuracy SDO_NUMBER_ARRAY
);

表2-6に、SDO_GEOR_GCPGEOREFTYPEオブジェクト型の属性の説明を示します。

表2-6 SDO_GEOR_GCPGEOREFTYPEオブジェクト型の属性

属性

説明

FFMethodType

関数フィッティング・メソッド。Affine、QuadraticPolynomial、CubicPolynomial、DLT、QuadraticRationalまたはRPCのいずれかを指定する必要があります。

numberGCP

GCPコレクション内の地上基準点の数(GCPsパラメータ)。

GCPs

SDO_GEOR_GCP_COLLECTION型のGCPコレクション(2.3.7項を参照)。

solutionAccuracy

次の形式で地理参照ソリューションの精度を格納する配列: (rowRMS, columnRMS, totalRMS, xRMS, yRMS, zRMS, modelTotalRMS)。最初の3つのRMS番号は基準点を使用して計算され、後の4つのRMS番号はチェック・ポイント(ある場合)を使用して計算されます。この情報は出力専用であるため、この属性の値を格納または変更しないでください。

SDO_GEOR_GCPGEOREFTYPEオブジェクト型には1つのコンストラクタが含まれます。そのコンストラクタは、パラメータを持たず、FFMethodType属性がAffineに設定され他の属性はNULL値に設定される型のインスタンスを作成します。

2.4 GeoRasterシステム・データ・ビュー(xxx_SDO_GEOR_SYSDATA)

GeoRasterは、システム・データ表(SYSDATA表)を使用して、GeoRaster表とそれに関連するラスター・データ表の間の関係を保持します。各GeoRasterオブジェクト(NULL以外の場合)には、ラスター・データ表が関連付けられており、地上基準点(GCP)や値属性表(VAT)など、その他の情報が関連付けられる場合もあります。

任意のユーザーに対して、ラスター・データ表の名前とrasterIDの組合せによって、GeoRasterオブジェクトが一意に識別されます。1つのGeoRaster表に含まれる(rasterID値が異なる)複数のGeoRasterオブジェクトが、1つのラスター・データ表を共有できます。

新しいGeoRasterオブジェクト(空および空白のGeoRasterオブジェクトを含む)が作成されるたびに、そのオブジェクトにラスター・データ表およびrasterID値が割り当てられます。すべてのSDO_GEORASTERオブジェクト(アトミックNULLオブジェクトを除く)は、作成時にシステム・データ表に自動的に記録されます。

GeoRasterのSYSDATA表は、MDSYSスキーマに存在します。GeoRasterシステム・データ表に含まれるほとんどの情報は、システム・データ・ビューを介して参照できるため、GeoRasterデータベースに含まれるすべてのGeoRasterオブジェクトのディクショナリまたはカタログとして使用できます。GeoRasterのユーザーには、自分に関連付けられたスキーマに次のシステム・データ・ビューが含まれます。

- USER_SDO_GEOR_SYSDATAには、現行ユーザーが所有するすべてのGeoRasterオブジェクトのシステム・データが含まれます。

- ALL_SDO_GEOR_SYSDATAには、現行ユーザーがアクセス可能なすべてのGeoRasterオブジェクトのシステム・データが含まれます。

ユーザーは、GeoRasterのSYSDATA表およびUSER_SDO_GEOR_SYSDATAビューとALL_SDO_GEOR_SYSDATAビューを直接変更することはできません。ただし、これらは各GeoRaster表の各SDO_GEORASTER列に自動作成されるDMLトリガーによって更新されます。

USER_SDO_GEOR_SYSDATAビューの定義は次のとおりです。

(
TABLE_NAME            VARCHAR2(32),
COLUMN_NAME           VARCHAR2(1024),
METADATA_COLUMN_NAME  VARCHAR2(1024),
RDT_TABLE_NAME        VARCHAR2(32),
RASTER_ID             NUMBER,
OTHER_TABLE_NAMES     SDO_STRING_ARRAY
);

ALL_SDO_GEOR_SYSDATAビューにはUSER_SDO_GEOR_SYSDATAビューのすべての列が含まれますが、TABLE_NAME列で指定された表を所有するスキーマを識別するOWNER列も含まれます。

この項では、両方のビューに共通する列について説明します。任意の列のVARCHAR2データの名前は、すべて大文字で格納されていることに注意してください。

2.4.1 TABLE_NAME列

TABLE_NAME列には、SDO_GEORASTER型の1つ以上の列を含むGeoRaster表の名前が含まれます。

2.4.2 COLUMN_NAME列

COLUMN_NAME列には、TABLE_NAME列で指定されたGeoRaster表のSDO_GEORASTER型の列の名前が含まれます。

2.4.3 METADATA_COLUMN_NAME列

今回のリリースでは、METADATA_COLUMN_NAME列は無視されます。

2.4.4 RDT_TABLE_NAME列

RDT_TABLE_NAME列には、TABLE_NAME列およびCOLUMN_NAME列で指定された表および列に関連付けられたラスター・データ表の名前が含まれます。(ラスター・データ表については、2.2項を参照してください。)

2.4.5 RASTER_ID列

RASTER_ID列には、RDT_TABLE_NAME列の値との組合せによって各GeoRasterオブジェクトを一意に識別する数値が含まれます。

2.4.6 OTHER_TABLE_NAMES列

今回のリリースでは、OTHER_TABLE_NAMES列は無視されます。

2.5 GeoRasterのXMLスキーマ

GeoRasterでは、GeoRasterメタデータを格納および管理するためにXMLスキーマを定義します。このXMLスキーマの定義については、付録Aを参照してください。GeoRaster XMLスキーマによって定義される名前空間はhttp://xmlns.oracle.com/spatial/georasterであり、Oracleで使用するために予約されています。SQL XMLファンクションまたはXMLTypeメソッドを使用してGeoRasterメタデータ・ドキュメントを操作する場合は、この名前空間を参照する必要があります。

GeoRasterは、SDO_GEOR_XMLSCHEMA_TABLEという名前の表を使用して、GeoRasterメタデータのXMLスキーマおよびその他の情報を格納します。この表は、MDSYSスキーマに存在します。この表を参照する場合、スキーマ名を含める必要があります。次に例を示します。

DESCRIBE mdsys.sdo_geor_xmlschema_table
Name                                      Null?    Type
----------------------------------------- -------- ----------------------------
ID                                        NOT NULL NUMBER
GEORASTERFORMAT                                    VARCHAR2(1024)
XMLSCHEMA                                          CLOB

表2-7に、SDO_GEOR_XMLSCHEMA_TABLE表の列の型の説明を示します。

表2-7 SDO_GEOR_XMLSCHEMA_TABLE表の列

列名

データ型

説明

id

NUMBER

Oracleによって割り当てられるID番号。値1から50は、Oracleで使用するために予約されています。

georasterFormat

VARCHAR2(1024)

Oracleによって割り当てられるGeoRasterフォーマット識別子。値GEORASTERは、Oracleで使用するために予約されています。

xmlSchema

CLOB

GeoRasterメタデータのXMLスキーマの定義。この定義については、付録Aを参照してください。

この表にはGeoRasterビューが定義されていません。これは、主に、この表でGeoRasterのXMLスキーマの情報を問い合せる上級ユーザーを対象としています。

GeoRasterのXMLスキーマに含まれていない他のメタデータに対する独自のXMLスキーマを定義して、この表の新しい行にそのメタデータを格納する場合を除き、この表の内容を変更しないことをお薦めします。独自のメタデータの行を追加する場合、ID列値に1から50またはGEORASTERFORMAT列値にGEORASTERを使用しないでください。これらの列値は、Oracleで使用するために予約されています。XMLSCHEMA列値を指定する場合は、独自のXMLスキーマに対して一意の名前空間を選択し、データベース内で一意である対応するスキーマURLを使用して登録する必要があります。(詳細は、『Oracle XML DB開発者ガイド』を参照してください。)

3 GeoRaster操作

この章では、GeoRasterの主な操作を実行する方法について説明します。GeoRasterの通常のワークフローは、次のほとんどまたはすべての手順で構成されます。

1. GeoRaster表およびラスター・データ表を作成します(3.1項を参照)。

2. GeoRasterオブジェクトを初期化または作成します(3.2項を参照)。

3. ラスター・イメージまたはグリッドをロードします(3.3項を参照)。

4. 検証されていないGeoRasterオブジェクトを検証します(3.4項を参照)。

5. 必要に応じて、GeoRasterオブジェクトを地理参照します(3.5項を参照)。

6. GeoRasterオブジェクトの空間エクステントを設定します(3.6項を参照)。

7. 空間索引またはその他の索引(あるいはその両方)を作成します(3.7項を参照)。

8. 必要に応じて、GeoRasterの記憶域形式を変更および最適化します(3.8項を参照)。

9. GeoRasterオブジェクトをコピーします(3.9項を参照)。

10. GeoRasterメタデータを問合せおよび更新します(3.10項を参照)。

11. セル・データを問合せおよび更新します(3.11項を参照)。

12. GeoRasterオブジェクトを処理します(3.12項を参照)。

13. 必要に応じて、GeoRasterオブジェクトを圧縮します(3.13項を参照)。

14. GeoRasterオブジェクトを表示します(3.14項を参照)。

15. GeoRasterオブジェクトをエクスポートします(3.15項を参照)。

16. トランザクションをコミットする前にGeoRasterオブジェクトを更新します(3.16項を参照)。

17. テンプレート関連のサブプログラムを使用してGeoRasterアプリケーションを開発します(3.17項を参照)。

18. Workspace ManagerおよびLabel SecurityでGeoRasterを使用します(3.18項を参照)。

19. GeoRasterオブジェクトによる表領域の効率的な使用をメンテナンスします(3.19項を参照)。

20. データベースのGeoRasterオブジェクトおよびシステム・データをメンテナンスします(3.20項を参照)。

21. データベース間でGeoRasterデータを転送します(3.21項を参照)。

22. GeoRasterデータにOracle Databaseのトランスポータブル表領域機能を使用します(3.22項を参照)。

GeoRasterオブジェクトを作成し、データをロードしてGeoRasterオブジェクトを検証した後は、アプリケーションの要件に応じて、残りの操作を任意の順序で実行できます。特定の操作をスキップすることもできます。

SQLを使用して実行できる操作と、PL/SQLブロックを使用して実行する必要がある操作があります。GeoRasterオブジェクトのメタデータやセル・データを削除または編集した後、変更をコミットする前にGeoRasterオブジェクトを更新する必要があります(3.16項を参照)。これらの操作の例については、1.15項のデモ・ファイルおよび第4章に示す例を参照してください。

この章の項では、GeoRasterの主な操作について説明します。

後続の章では、SDO_GEOR、SDO_GEOR_ADMINおよびSDO_GEOR_UTLパッケージに関する詳細なリファレンス情報を示します。これらのパッケージには、GeoRasterのデータおよびメタデータを処理するサブプログラム(ファンクションおよびプロシージャ)が含まれています。

3.1 GeoRaster表およびラスター・データ表の作成

GeoRasterオブジェクトで操作を行う前に、GeoRaster表および(作成していない場合は)1つ以上のラスター・データ表を作成する必要があります。

3.1.1 GeoRaster表の作成

GeoRaster表は、SDO_GEORASTER型の列を含む任意の表です。この列は、別のユーザー定義のオブジェクト型の属性列になることもできます。例3-1では、CITY_IMAGESというGeoRaster表を作成します。この表には、GeoRasterオブジェクトを格納するためのIMAGEという列が含まれています。

例3-1 City ImagesのGeoRaster表の作成

CREATE TABLE city_images (image_id NUMBER PRIMARY KEY, image_description VARCHAR2(50), image SDO_GEORASTER);

GeoRaster表の詳細は、1.4項を参照してください。

3.1.2 ラスター・データ表の作成

GeoRaster表を作成したら、GeoRaster表のオブジェクトとともに使用する1つ以上のラスター・データ表(RDT)を作成する必要があります。ラスター・データ表を作成するには、従来のLOB記憶域パラダイムのBasicFile LOB(BasicFiles)を使用するか、リリース11.1で導入されたLOB記憶域形式のSecureFile LOB(SecureFiles)を使用します。SecureFilesを使用すると、GeoRaster操作のパフォーマンスが大幅に向上します。

例3-2では、BasicFilesを使用してCITY_IMAGES_RDTという名前のラスター・データ表を作成します。RDTを使用して、CITY_IMAGES表に、各GeoRasterオブジェクトの各ブロックの情報を格納します。(GeoRasterオブジェクトを作成するまで、GeoRaster表とラスター表の関連は確立されません(3.2項を参照))。

例3-2 BasicFilesを使用したラスター・データ表の作成

CREATE TABLE city_images_rdt OF SDO_RASTER
(PRIMARY KEY (rasterID, pyramidLevel, bandBlockNumber,
rowBlockNumber, columnBlockNumber))
TABLESPACE im_tbs_1
LOB(rasterBlock) STORE AS
(
CHUNK 32768
CACHE READS
PCTVERSION 0
STORAGE (PCTINCREASE 0)
);

例3-3では、例3-2と同じ名前のラスター・データ表を作成しますが、ここではSecureFilesを使用します。

例3-3 SecureFilesを使用したラスター・データ表の作成

CREATE TABLE city_images_rdt OF SDO_RASTER
(PRIMARY KEY (rasterID, pyramidLevel, bandBlockNumber,
rowBlockNumber, columnBlockNumber))
TABLESPACE im_tbs_2
LOB(rasterBlock) STORE AS SECUREFILE
(CACHE);

例3-4では、例3-3と同様にSecureFilesを使用して例3-2および例3-3と同じ名前のラスター・データ表を作成しますが、オブジェクト表ではなくリレーショナル表としてそれを作成します。

例3-4 SecureFilesを使用したラスター・データ表(リレーショナル)の作成

CREATE TABLE city_images_rdt
(rasterID NUMBER,
pyramidLevel NUMBER,
bandBlockNumber NUMBER,
rowBlockNumber NUMBER,
columnBlockNumber NUMBER,
blockMBR SDO_GEOMETRY,
rasterBlock BLOB,
CONSTRAINT pkey PRIMARY KEY (rasterId, pyramidLevel, bandBlockNumber,
rowBlockNumber, columnBlockNumber))
LOB (rasterblock) STORE AS SECUREFILE(cache);

ラスター・データ表のCREATE TABLE文には、次の句を含める必要があります(前述の例に含まれています)。

(PRIMARY KEY (rasterID, pyramidLevel, bandBlockNumber,
rowBlockNumber, columnBlockNumber))

このPRIMARY KEY句によって、ラスター・データ表にBツリー索引を作成します(この索引は、最適な問合せパフォーマンスのために必須です)。

BasicFilesを使用する場合、より大きいCHUNKサイズ(16または32KB)を指定して、LOB記憶域のパフォーマンスを向上できます。SecureFilesでは、CHUNKサイズ・パラメータを指定する必要はありませんが、別のいくつかの記憶域パラメータを考慮する必要があります。SecureFile LOBを使用するラスター・データ表は、自動セグメント領域管理オプション付きの表領域に作成する必要があります。Oracle SecureFilesの使用方法とBasicFile LOBのパフォーマンス上の考慮事項の詳細は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください。

LOB記憶域の指定を含む、表の作成のリファレンス情報については、『Oracle Database SQL言語リファレンス』のCREATE TABLE文に関する項を参照してください。

ラスター・データ表を作成する場合のキーワードおよびオプションの詳細は、1.4.2項を参照してください。

3.1.3 GeoRaster DMLトリガー

GeoRasterの内部表とデータ構造の一貫性および整合性を保証するために、ユーザーがGeoRaster表(1つ以上のGeoRaster列を含む表)を作成すると、各GeoRaster列に対応する一意のDMLトリガーがGeoRasterにより自動的に作成されます。ただし、ALTER TABLE文を使用して1つ以上のGeoRaster列を追加する場合は、SDO_GEOR_UTL.createDMLTriggerプロシージャをコールして、追加した各GeoRaster列に対してDMLトリガーを作成する必要があります。

トリガーが起動されるのは、GeoRasterオブジェクトに影響を及ぼすデータ操作言語(DML)の各操作(行の挿入、GeoRasterオブジェクトの更新、および行の削除)の実行後です。

トリガーが起動されると、次のアクションが自動的に実行されます。

- 挿入操作を実行すると、トリガーによって、GeoRaster表の名前、GeoRaster列の名前、ラスター・データ表の名前およびrasterID値を含む行がUSER_SDO_GEOR_SYSDATAビューに挿入されます(2.4項を参照)。同一のエントリがすでに存在する場合、例外が発生します。

- 更新操作を実行すると、新しいGeoRasterオブジェクトがNULLまたは空である場合、トリガーによって、古いGeoRasterオブジェクトが削除されます。古いGeoRasterオブジェクトのUSER_SDO_GEOR_SYSDATAビューにエントリが存在しない場合(古いGeoRasterオブジェクトがNULLの場合)、トリガーによって、新しいGeoRasterオブジェクトのビューに行が挿入されます。古いGeoRasterオブジェクトのUSER_SDO_GEOR_SYSDATAビューにエントリが存在する場合、トリガーによって、新しいGeoRasterオブジェクトを反映するように情報が更新されます。

- 削除操作を実行すると、トリガーによって、GeoRasterオブジェクトのラスター・データ・ブロックがラスター・データ表から削除され、そのGeoRasterオブジェクトの行がUSER_SDO_GEOR_SYSDATAビューから削除されます。

3.2 新しいGeoRasterオブジェクトの作成

GeoRaster表にGeoRasterイメージを格納する前に、GeoRasterオブジェクトを作成し、作業の開始前にそのオブジェクトをGeoRaster表に挿入する必要があります。新しいGeoRasterオブジェクトを作成するには、次の方法があります。

- SDO_GEOR.initファンクションを使用して、空のGeoRasterオブジェクトを初期化します。

- SDO_GEOR.createBlankファンクションを使用して、空白のGeoRasterオブジェクトを作成します。

オブジェクトが適切に作成されていない場合(オブジェクトがアトミックなNULLの場合)、いずれのGeoRaster操作も実行できません。SDO_GEOR.initおよびSDO_GEOR.createBlankファンクションは、ラスター・データ表の名前およびラスターID値が指定されていない場合に、それらの値でGeoRasterオブジェクトを初期化します。GeoRaster DMLトリガーは、ラスター・データ表の名前とラスターID値の組合せが現行ユーザーに対して一意であることを保証します。

(SDO_GEOR.importFrom、SDO_GEOR.subset、SDO_GEOR.copyなどの別のGeoRasterプロシージャの結果として)新しいGeoRasterオブジェクトにラスター・セル・データが含まれ、この新しいGeoRasterオブジェクトに対するラスター・データ表が存在しない場合は、まずラスター・データ表を作成する必要があります。ラスター・データ表を作成する方法とその例については、3.1.2項を参照してください。

GeoRasterのデータについて考えられる問題(その一部は3.20項で説明しています)を防止するには、初期化済のGeoRasterオブジェクトがGeoRasterのシステム・ビューに登録されている必要がありますが、これはGeoRasterオブジェクトをGeoRasterの表に挿入したときに自動的に行われます。これは、そのGeoRasterオブジェクトに対して他のなんらかの操作を行う前に実行する必要があります。ソースまたはターゲットのGeoRasterオブジェクトが登録されていない場合、ラスター・データ表を操作する必要のあるGeoRaster操作を実行すると、例外が発生します。

3.3 ラスター・データのロード

イメージまたはラスター・データをロードおよびエクスポートする場合、常にサード・パーティのETLツールの使用を検討してください(1.14項の「注意」を参照)。

GeoRasterの機能を使用してラスター・データをロードする場合、次の方法があります。

- SDO_GEOR.importFromプロシージャをコールして、イメージをGeoRasterオブジェクトにロードします。

- GeoRasterローダー・ツールまたはビューア・ツールを使用します(1.14項を参照)。

両方の方法で、次の操作を実行できます。

- ラスター・データを圧縮し、データをJPEG圧縮またはDEFLATE圧縮されたGeoRasterオブジェクトに保存します。

- ESRIワールド・ファイルまたはDigital Globe RPCテキスト・ファイル(.rpb)を既存のGeoRasterオブジェクトにロードし、リロードせずにラスター・データを地理参照します。ワールド・ファイルでSRIDを指定し、データの空間エクステントを生成することもできます。

- ラスター・データの有無にかかわらず、地理参照とともにGeoTIFF形式のファイルをロードします。

GeoRasterオブジェクトにラスター・データをロードしたら、SDO_GEOR.validateGeoRasterファンクションをコールしてそのオブジェクトが有効であることを確認する必要があります(3.4項を参照)。

ESRIワールド・ファイルまたは.rpbファイルには座標系の情報が含まれていないため、ロード操作用に座標参照システムのSRID値を指定できます。ただし、SRIDを指定しない場合は、ローダーによりGeoRasterオブジェクトのモデルSRIDが0(ゼロ)に設定されます。これは、GeoRasterオブジェクトが無効であり、そのため、SDO_GEOR.setModelSRIDプロシージャを使用してこのオブジェクトに有効なモデル空間を指定する必要があることを意味します。モデル空間の座標系が不明である場合は、SRIDの値を999999に指定できます。これは、座標参照システムが不明であることを意味します。(具体的には、SRID 999999はunknown CRSという座標参照システムに関連付けられます。)モデル空間の実際の座標参照システムがわかった後で、それに応じてSRID値を設定できます。

unknown CRS(SRID 999999)の座標参照システムの詳細は、『Oracle Spatial開発者ガイド』を参照してください。

3.3.1 ロード前のソース・ラスターの再フォーマット

GeoRasterのローダーでは、BSQインターリーブ形式のソース・ラスター・ファイルがサポートされないため、ファイルが大きすぎるとメモリー不足のエラーが発生する可能性があり、また、その他の制限も適用される場合があります。このような問題を回避するには、ソース・ファイルが適切にロードされるようにソース・ファイルを再フォーマットおよび再ブロック化します。

たとえば、この操作を行う方法の1つに、GDALの使用があります(GDALは、http://www.gdal.orgから入手できるオープン・ソースのラスター変換ライブラリであり、JAI (Java Advanced Imaging)で処理するためにイメージ・ファイルやラスター・ファイルを再フォーマットまたは再ブロック化できます)。GDALは、GeoRasterをネイティブにサポートし、GeoRasterオブジェクトを直接インポートおよびエクスポートでき、また、GeoRasterオブジェクトを処理できます(詳細は、http://www.oracle.com/technetwork/database/enterprise-edition/getting-started-with-gdal-133874.pdfを参照してください)。また、GDALを使用してTFWファイルを生成することもできます。たとえば、GDALコマンドラインまたは(一括変換の場合は)シェルを使用して、それぞれ単一行で次の2つのようなコマンドを実行します。

gdal_translate -of GTiff -co "TFW=YES" -co "INTERLEAVE=PIXEL" -co "TILED=YES" D:\my_image.tif D:\my_new_image.tif

gdal_translate -of GTiff -co "TILED=YES" -co "TFW=YES" D:\my_image.ecw D:\my_new_image.tif

前述の例で、最初のコマンドはTFWファイルを生成し、インターリーブを(JAIでサポートされる)BIPに変更して、イメージを256x256に再ブロック化します。2つ目のコマンドは、ECWをTIFFに変換し、TFWを生成してイメージを再ブロック化します。

その後、GeoRasterローダー・ツール(1.14項を参照)を使用して再ブロック化を指定し、イメージを適切にロードして、後でデータベースから効率的に取得できるようにします。次に、単一コマンドの例を示します。

java -Xmx1024m oracle.spatial.georaster.tools.GeoRasterLoader mymachine db11 6521 georaster georaster thin 32 T globe image "blocking=true, blocksize=(512,512,3)" "D:my_image.tif,2,RDT_15, D:\my_image.tfw,82213"

SDO_GEOR.importFromをコールして非常に大きいイメージをロードしようとしたときにメモリー不足のエラーが発生した場合は、異なるブロック化サイズ・パラメータでイメージをロードするか、ロード前にGDALを使用してイメージをより小さい内部矩形サイズに再ブロック化してください。極端に大きいイメージの場合、GDALを使用して、そのイメージをより小さいサイズ(JAIで処理できるサイズ)の複数のイメージ・ファイルにタイル処理することや、GDALを使用してそのイメージを直接ロードおよびエクスポートすることも可能です。

3.4 GeoRasterオブジェクトの検証

GeoRasterオブジェクトを使用する前、またはGeoRasterオブジェクトのラスター・データおよびメタデータを手動で編集した後、そのオブジェクトが有効であることを確認する必要があります。GeoRasterオブジェクトの検証では、GeoRasterオブジェクトの登録の確認、メタデータとラスター・セル・データの確認、およびメタデータとデータに一貫性があるかどうかの確認が行われます。たとえば、検証では、ラスター型、ディメンション情報およびセル・ブロックの実際のサイズが確認され、その他の確認が行われます。

GeoRasterローダー・ツール(1.14項を参照)を使用した場合、GeoRasterオブジェクトはロード操作時に検証されています。

GeoRasterは、次の検証サブプログラムを提供します。

- SDO_GEOR.validateGeoRaster: セル・データおよびメタデータを含む、GeoRasterオブジェクトを検証します。オブジェクトが有効な場合はTRUEを戻します。有効でない場合は、GeoRasterオブジェクトが無効である理由を示すOracleエラー・コード、FALSE(不明な理由によって検証が失敗した場合)、またはNULL(GeoRasterオブジェクトがNULLの場合)のいずれかを戻します。GeoRasterオブジェクトの作成後は、常にこのファンクションを使用する必要があります。

- SDO_GEOR.schemaValidate: GeoRasterのXMLスキーマに対してメタデータを検証します。SDO_GEOR.validateGeoRasterファンクションによってエラー・コード13454が戻された場合、このファンクションを使用してエラーの場所を特定できます。SDO_GEOR.schemaValidateおよびSDO_GEOR.validateGeoRasterファンクションは、空間エクステント・ジオメトリを検証しません。

- SDO_GEOR.validateBlockMBR: ラスター・データ表に格納された各ラスター・ブロックに関連するblockMBRジオメトリを検証します。無効なblockMBRジオメトリが存在する場合は、SDO_GEOR.generateBlockMBRプロシージャをコールしてそれらを再生成します。

3.5 GeoRasterオブジェクトの地理参照

地理参照(1.6項を参照)によって、GeoRasterデータのセル座標と実際の地上座標(またはいくつかのローカル座標)が関連付けられます。GeoRasterオブジェクトを地理参照する必要がある場合、次の方法を使用できます。

- 元のイメージがすでに地理参照されており、その地理参照情報がESRIワールド・ファイルまたはRPC係数を含む.rpbファイルに格納されている場合は、SDO_GEOR.importFromプロシージャを使用して、ファイルまたはCLOBオブジェクトから、(FILEまたはBLOB形式の)イメージ・データ自体とともに、ESRIワールド・ファイルまたは.rpbファイルをロードできます。GeoRasterのクライアント側ローダー・ツール(1.14項を参照)を使用して、イメージ・ファイル自体とともに、ESRIワールド・ファイルまたは.rpbファイルをファイルからロードすることもできます。
ESRIワールド・ファイルまたは.rpbファイルではモデル座標系が指定されないため、Oracle SRIDを使用して地理参照されるGeoRasterオブジェクトのモデル空間を、次のいずれかの方法で設定できます。ワールド・ファイルとともにSDO_GEOR.importFromプロシージャまたはGeoRasterのクライアント側ローダー(1.14項を参照)に対してSRIDをパラメータとして指定するか、またはワールド・ファイルのロード後に、SDO_GEOR.setModelSRIDプロシージャをコールします。SDO_GEOR.setModelSRIDプロシージャをコールして、地理参照されるGeoRasterオブジェクトのモデル空間を変更することもできます。

- 元のイメージが、地理参照されるGeoTIFFイメージの場合、SDO_GEOR.importFromプロシージャを使用し、入力形式としてGEOTIFFを指定することで、地理参照とともにイメージをロードできます。GeoTIFFイメージからラスター・イメージ・データなしで地理参照情報のみを既存のGeoRasterオブジェクトにロードするには、raster=false記憶域パラメータを追加します。GeoTIFFの構成値が、Oracle Spatialによって認識されるSRIDと一致しない場合、srid記憶域パラメータ付きでバックアップSRIDを指定できます。
GeoTIFF PixelIsAreaラスター空間は、左上角を基準とするGeoRasterのセル座標系と同じです。GeoTiffへのエクスポートは、常にPixelIsAreaラスター空間が対象となります(GeoRasterオブジェクトが中央を基準とするセル座標系の場合は、アフィン変換で2分の1ピクセル単位の調整が行われます)。GeoTIFFからのインポートは、常に中央を基準とするGeoRasterのセル座標系が対象となります(GeoTIFFファイルがPixelIsAreaラスター空間で指定されている場合は、アフィン変換で2分の1ピクセル単位の調整が行われます)。

GeoRasterのクライアント側ローダー・ツール(1.14項を参照)を使用して、geotiff=true記憶域パラメータの指定により地理参照とともにGeoTIFFイメージをロードすることもできます。このパラメータを省略するか、geotiff=falseを指定すると、イメージは地理参照なしの単純なTIFFイメージとしてロードされます。rasterおよびsrid記憶域パラメータも、クライアント側ローダー・ツールに適用されます。

GeoRasterのクライアント側ツールでGeoTIFFイメージをロードまたはエクスポートするには、次のGeoTIFFライブラリを現在のCLASSPATH定義に追加します。

- xtiff-jai.jar(SourceForge Extensible-TIFF-JAIグループから入手可能)

- geotiff-jai.jar(SourceForge GeoTIFF-JAIグループから入手可能)

SDO_GEOR.importFromまたはSDO_GEOR.exportToプロシージャでGeoTIFFイメージをロードまたはエクスポートする場合は、これらのライブラリをMDSYSスキーマにロードする必要があります。これを行うには、SYSTEMユーザーとしてデータベースに接続し、xtiff-jai.jarおよびgeotiff-jai.jarファイルへのパスを反映するように必要に応じて$ORACLE_HOME/md/admin/sdoldgtf.sqlを編集し、sdoldgtf.sql SQL*Plusスクリプトを実行します。sdoldgtf.sqlスクリプトを使用するかわりに、次のコマンドを入力することもできます。

loadjava -user system/password@database -resolve -force -synonym -schema MDSYS -grant PUBLIC xtiff-jai.jar

loadjava -user system/password@database -resolve -force -synonym -schema MDSYS -grant PUBLIC geotiff-jai.jar

データベースをOracle Database 11g より前のリリースにダウングレードする場合は、$ORACLE_HOME/md/admin/sdormgtf.sqlのスクリプトを使用してこれらのライブラリをアンインストールする必要があります。これを行うには、xtiff-jai.jarおよびgeotiff-jai.jarファイルへのパスを反映するように必要に応じてスクリプトを編集し、sdormgtf.sqlスクリプトを実行するか、または次のコマンドを入力します。

dropjava -user system/password@database -resolve -force -synonym -schema MDSYS -grant PUBLIC xtiff-jai.jar

dropjava -user system/password@database -resolve -force -synonym -schema MDSYS -grant PUBLIC geotiff-jai.jar

- SDO_GEOR.setSRSプロシージャを使用して、GeoRaster SRSメタデータに直接アクセスすることで地理参照情報を追加、変更および削除できます。たとえば、SDO_GEOR_SRSオブジェクトを作成し、係数および関連する地理参照情報を割り当てた後、SDO_GEOR.setSRSプロシージャをコールして、任意のGeoRasterオブジェクトの空間リファレンス情報を追加または更新できます。SDO_GEOR.setSRSプロシージャを使用して、サポートされるすべての関数フィッティング地理参照モデルに対応する空間参照情報を設定できます。既存のDLTモデルや既存のRPCモデルからSRS情報を設定する方法の例は、SDO_GEOR.setSRSプロシージャのリファレンスの項を参照してください。
1つのGeoRasterオブジェクトが別のGeoRasterオブジェクトと同じSRS情報を持つことがわかっている場合、SDO_GEOR.getSRSファンクションをコールしてこのGeoRasterオブジェクトからSDO_GEOR_SRSオブジェクトを取得し、次にSDO_GEOR.setSRSプロシージャをコールして最初のGeoRasterオブジェクトを地理参照できます。

- アフィン変換を使用してGeoRasterオブジェクトを地理参照できる場合、SDO_GEOR.georeferenceプロシージャをコールしてGeoRasterオブジェクトを直接地理参照できます。SDO_GEOR.georeferenceのリファレンス情報に記載されているとおり、このプロシージャでは、係数A、B、C、D、E、Fおよびその他の情報を使用し、それらを係数a、b、c、d、e、fに変換してGeoRasterオブジェクトの空間参照情報に格納します。元のラスター・データが幾何補正されており、基点(左上角)のモデル座標が(x0, y0)で、空間解像度値(スケール)がsである場合、A = s、B = 0、C = x0、D = 0、E = -s、F = y0となります。

- 地上基準点(GCP)があり、ジオメトリ・モデルを使用して地理参照情報を計算する場合、SDO_GEOR.georeferenceプロシージャをコールして解を見つけます。GCPベースの地理参照モデルを取得して設定するには、SDO_GEOR.getGCPGeorefModelファンクションおよびSDO_GEOR.setGCPGeorefModelプロシージャを使用します。ジオメトリ・モデルのみを取得および設定するには、SDO_GEOR.getGCPGeorefMethodファンクションおよびSDO_GEOR.setGCPGeorefMethodプロシージャを使用します。GCPを操作するには、SDO_GEOR.getControlPointファンクションと、SDO_GEOR.setControlPointおよびSDO_GEOR.deleteControlPointプロシージャを使用します。

地理参照されるGeoRasterオブジェクトのSRS情報に基づいたGeoRasterの座標情報の変換では、特定のセル(ラスター)座標に関連付けられたモデル(地上)座標を検索します。または、その反対に特定のモデル(地上)座標に関連付けられたセル(ラスター)座標を検索します。つまり、次の操作を実行できます。

- 任意のセル座標に対して、SDO_GEOR.getModelCoordinateファンクションを使用して、関連付けられたモデル空間座標を検索できます。たとえば、イメージ上の点を指定して、その点に関連付けられた緯度と経度を検索できます。

- モデル空間座標に対して、SDO_GEOR.getCellCoordinateファンクションを使用して、関連付けられたセル座標を検索できます。たとえば、緯度と経度の座標を指定して、これらの座標に関連付けられたイメージ上のセルを検索できます。

3.6 空間エクステントの生成と設定

GeoRasterオブジェクトが作成される際、その空間エクステント(2.1.2項に示すspatialExtent属性)は、モデル空間の座標系の中では囲まれたジオメトリである必要はありません。空間エクステント(フットプリント)・ジオメトリは、最初はNULLであるか、またはセル空間の座標系や他の座標系を表すことがあります。空間エクステントを生成および設定する機能は、世界的な規模の範囲や広い地域の範囲の大容量のGeoRasterデータベースを作成する場合に便利です。この場合、空間エクステントは世界的な規模の1つの測地座標系の中にあり、GeoRasterオブジェクト(イメージ、DEMなど)は異なる投影座標系の中にあります。このような場合には、空間エクステント上に空間(Rツリー)索引を作成できますが、すべての空間エクステント・ジオメトリは同じSRID値を持つ必要があります。

表内の各GeoRasterオブジェクトの空間エクステント・ジオメトリがモデル空間の座標系(または使用する他の座標系)に対して正しくなるようにするには、空間エクステントを設定する必要があります。また、空間エクステント・ジオメトリで空間索引を使用する(3.7項を参照)には、索引付けされたすべてのジオメトリが同じ座標系に基づいている(つまり同じSRID値を持つ)必要があります。

空間エクステントは、次のいずれかの方法で設定できます。SDO_GEOR.importFromプロシージャまたはGeoRasterクライアント側のローダー(1.14項を参照)に対してspatialExtent=TRUEを記憶域パラメータとして指定するか、またはSQL UPDATE文を使用します。SDO_GEOR.importFromプロシージャまたはローダーを使用する場合、SRIDはNULLまたは0(ゼロ)にはできません。また、GeoRasterの空間エクステントにRツリー索引が存在する場合は、空間エクステントのSRIDは既存の空間索引のSRIDと一致する必要があります。それ以外の場合は、空間エクステントはNULLに設定されます。

さらに、空間エクステント・ジオメトリがない場合は、SDO_GEOR.generateSpatialExtentファンクションを使用して作成し、そのジオメトリを使用してGeoRasterオブジェクトを更新できます。次の例では、(3.1.1項の例3-1で作成した)CITY_IMAGES表のGeoRasterオブジェクトの空間エクステント・ジオメトリを更新し、そのオブジェクトの空間エクステント(モデル座標系を反映しているもの)を生成します。

UPDATE city_images c
SET c.image.spatialExtent = sdo_geor.generateSpatialExtent(image)
WHERE c.image_id = 100;
COMMIT;

GeoRasterオブジェクトの空間エクステント・ジオメトリがわかっている場合、または空間エクステント・ジオメトリをモデル空間以外の座標系に基づくようにする場合は、SDO_GEOMETRYオブジェクトを作成するか、または表から選択します。その後、次の例に示すように、GeoRasterオブジェクトを更新して、その空間エクステント属性が対象のジオメトリに設定されるようにします。

DECLARE
geom sdo_geometry;
BEGIN
-- Set geom to an SDO_GEOMETRY object that covers the spatial extent
-- of the desired GeoRaster object. If necessary, perform coordinate
-- system transformation before setting geom.
-- geom := sdo_geometry(...);
UPDATE city_images c
SET c.image.spatialExtent = geom WHERE c.image_id = 100;
COMMIT;
END;

3.6.1 GeoRaster表に空間索引が含まれる場合の特別な考慮事項

GeoRaster空間エクステントに空間Rツリー索引を作成する場合(3.7項を参照)、すべての空間エクステント・ジオメトリは同じSRID値を持つ必要があります。ただし、GeoRasterオブジェクトは異なるモデルSRIDを持つ場合があり、ほとんどのGeoRaster操作では、1つ以上のソースGeoRasterオブジェクトのモデルSRIDに基づいて、出力GeoRasterオブジェクトに空間エクステントが自動的に生成されます。これは、空間エクステントを持つ結果のGeoRasterオブジェクトがGeoRaster表に更新される場合、その表ではspatialExtent属性に基づいて作成された空間索引がすでに存在し、異なるSRIDが使用されている可能性があるため、問題となることがあります。

このような場合には、挿入または更新操作を行う前に、空間索引と同じSRIDに空間エクステントを変換する必要があります。次の例では、モザイク処理を実行しますが、結果のGeoRasterオブジェクトの空間エクステントをSRID 8307に変換してから、そのオブジェクトでGeoRaster表を更新しています。

DECLARE
gr sdo_georaster;
BEGIN
SELECT georaster INTO gr FROM mosaic_test WHERE georid=1 FOR UPDATE;
sdo_geor.mosaic('mosaic_data', 'georaster', gr, 'blocksize=(512,512)');
-- Transform the spatial extent geometry, if ncessary.
-- In this example example, the modelSRID of the mosaic is 27302,
-- but the SRID of the spatial index on mosaic_test is 8307.
gr.spatialExtent := sdo_cs.transform(gr.spatialExtent, 8307);
UPDATE mosaic_test SET georaster=gr WHERE georid=1;
END;
/

空間Rツリー索引が存在する場合、挿入または更新操作の後にコミット操作を行うと、挿入または更新されたGeoRasterオブジェクトに空間エクステント・ジオメトリが含まれている場合には、その索引は更新されます。これにより、各操作(特にイメージのバッチ・ロードなどのバッチ・ジョブ)の後にコミットを実行すると、一部の操作の処理速度が低下する可能性があります。通常、索引更新のパフォーマンスとGeoRaster操作とのバランスを取り、操作の後に一括してコミットする方がより効率的です。

たとえば、イメージ・データ・ロード(SDO_GEOR.importFromプロシージャおよびGeoRasterローダー)の後に内部コミット操作が続くため、spatialExtent=TRUEを指定して空間エクステントを生成している間にロードすることは効率的ではありません。かわりに、spatialExtent=FALSEを指定してから後でspatialExtent属性を更新した方が、ロード処理の速度を向上させることができます。

3.7 GeoRasterデータの索引付け

GeoRasterデータは、様々な方法で索引付けできます。GeoRasterオブジェクトに作成できる最も重要な索引は、GeoRasterオブジェクトの空間エクステント(フットプリント)・ジオメトリ(2.1.2項に示すspatialExtent属性)に対する空間索引ですが、GeoRaster表に空間索引がある場合は、特別な考慮事項について3.6.1項を参照してください。空間索引の作成については、『Oracle Spatial開発者ガイド』を参照してください。

次のような他の索引を作成することもできます。

- Oracle XMLTypeまたはOracle Textドキュメントの索引付け機能を使用した、メタデータ・オブジェクトに対するファンクション索引

- 雲、河川、湖、海、植物など、GeoRaster表の他のユーザー定義列に対する標準の索引

各ラスター・データ表のrasterId、pyramidLevel、bandBlockNumber、rowBlockNumberおよびcolumnBlockNumber列に対して単一のBツリー索引も作成する必要があります。

3.8 ラスター記憶域の変更と最適化

ラスター・ブロック・サイズ、セル深度、インターリーブ・タイプなど、ラスター・イメージ・データを格納する方法(または将来格納する方法)の一部を変更または指定できます。既存のGeoRasterオブジェクトに対してこのような変更を行うには、SDO_GEOR.changeFormatCopyプロシージャを使用して、storageParamパラメータで目的の記憶域パラメータ値を指定します。GeoRasterオブジェクトをロードおよび処理し、別のGeoRasterオブジェクトを作成するほとんどのサブプログラムを使用して、記憶域パラメータを指定できます。つまり、SDO_GEOR.importFrom、SDO_GEOR.subset、SDO_GEOR.mosaic、SDO_GEOR.reproject、SDO_GEOR.scaleCopy、SDO_GEOR.mergeLayers、SDO_GEOR.createTemplateなどのファンクションまたはプロシージャをコールするときに、出力形式を指定できます。

結果のGeoRasterオブジェクトのstorageParamパラメータは、ユーザーが決定するデータ・サイズ、次元サイズ、アプリケーション・ニーズなどの要素に基づいている必要があります。ただし、各GeoRasterオブジェクトで最小限の埋込みスペースのみが使用され、アプリケーション要件が引き続き満たされるように、ブロック・サイズは、GeoRasterオブジェクトの次元サイズとユーザーが必要とする目的の出力に基づいて自動的に最適化することもできます。

詳細は、1.4.1項の特に表1-1「ラスター・データのstorageParamのキーワード」を参照してください。

3.9 GeoRasterオブジェクトのコピー

GeoRasterオブジェクトをコピーするには、そのオブジェクトを空のGeoRasterオブジェクトにコピーするか、既存の有効なGeoRasterオブジェクトを上書きする必要があります。(空のGeoRasterオブジェクトの詳細は、1.4.3項を参照してください。)ソースGeoRasterオブジェクトと同一のコピーを作成するには、SDO_GEOR.copyプロシージャを使用します。記憶域形式の変更を伴うコピーを作成するには、SDO_GEOR.changeFormatCopyプロシージャ(3.8項を参照)を使用します。

空のGeoRasterオブジェクトを使用してGeoRasterオブジェクトをコピーするには、次の手順を実行します。

1. 空のGeoRasterオブジェクトを初期化して宛先表に挿入し、その空のGeoRasterオブジェクトを戻します。

2. SDO_GEOR.copyまたはSDO_GEOR.changeFormatCopyプロシージャを使用して、戻された空のGeoRasterオブジェクトに適切なGeoRasterオブジェクトをコピーします。

3. UPDATE文を使用して、コピーしたGeoRasterオブジェクトが宛先表のGeoRaster列に含まれるように宛先表の目的の行を更新します。

4. トランザクションのコミットの準備ができたら、COMMIT文を使用します。

空のGeoRasterオブジェクトを使用したコピー方法の例は、第4章のSDO_GEOR.copyプロシージャの例を参照してください。

既存のGeoRasterオブジェクトを上書き(置換)してGeoRasterオブジェクトをコピーするには、次の手順を実行します。

1. 更新する既存のGeoRasterオブジェクトを選択します。

2. SDO_GEOR.copyまたはSDO_GEOR.changeFormatCopyプロシージャを使用して、選択したGeoRasterオブジェクトを既存の有効なGeoRasterオブジェクトにコピーするか、または空のGeoRasterオブジェクトにコピーします。

3. UPDATE文を使用して、コピーしたGeoRasterオブジェクトが宛先表のGeoRaster列に含まれるように宛先表の目的の行を更新します。

4. トランザクションのコミットの準備ができたら、COMMIT文を使用します。

既存のGeoRasterオブジェクトを置換し、その記憶域形式を変更してコピーする方法の例は、第4章のSDO_GEOR.changeFormatCopyプロシージャの例を参照してください。

3.10 GeoRasterメタデータの問合せおよび更新

GeoRasterオブジェクトのメタデータを問い合せ、そのメタデータの多くの属性を更新できます。

多くのファンクション(ほとんどのファンクションは名前がget で始まる)を使用すると、メタデータおよび補助情報(SDO_GEOR.getTotalLayerNumberやSDO_GEOR.hasPseudoColorなど)を問い合せることができます。

いくつかのサブプログラム(ほとんどのサブプログラムは名前がset で始まる)を使用すると、メタデータおよび補助情報(SDO_GEOR.setSRSやSDO_GEOR.setColorMapなど)を更新できます。

getファンクションの多くには、名前がsetで始まる、対応するプロシージャが存在します。これらのプロシージャは、メタデータ属性の値を設定、変更または削除します。ほとんどのsetプロシージャでは、そのプロシージャがメタデータ属性の値を変更するように設計されている場合、メタデータ属性の値を削除するには、その属性値にNULLを指定します。たとえば、GeoRasterオブジェクトのレイヤーのビン表を削除するには、SDO_GEOR.setBinTableプロシージャをコールして、tableNameパラメータにNULLを指定します。ただし、ほとんどの場合、関連する他の属性に対してはNULL値は指定できません。たとえば、SDO_GEOR.setBinTableプロシージャへのコールでlayerNumberパラメータにNULLを指定することはできません。

次の推奨事項、要件および制限事項に注意してください。

- ほとんどのGeoRasterメタデータは、XMLTypeのメソッドまたはXML固有のSQLファンクション(extractやupdateXMLなど)を使用しても取得および変更できます。ただし、取得または変更するメタデータ属性に対応するGeoRasterのgetまたはsetサブプログラムが存在する場合、XMLTypeインタフェースではなくGeoRasterサブプログラムを使用してください。これは、GeoRasterサブプログラムでは、すべての変更が実行前に検証されるためです。XMLTypeのメソッドまたはXML固有のSQLファンクションをコールしてメタデータを更新する場合は、トランザクションをコミットする前にGeoRasterオブジェクトを検証する必要があります。

- メタデータを直接NULLに設定しないでください。

- GeoRasterオブジェクトのrasterType属性は直接更新しないでください(かわりに、SDO_GEOR.setRasterTypeプロシージャをコールします)。

- ラスター・データ表の名前を変更する場合は、SDO_GEOR_UTL.renameRDTプロシージャを使用します。

- 通常は、GeoRasterオブジェクトの属性を直接更新しないでください(spatialExtent属性を除く)。

3.11 GeoRasterセル・データの問合せおよび更新

ラスター・イメージの一部または全体を表示するには、GeoRasterオブジェクトに関連付けられた1つのセル(ピクセル)のデータ、特定の範囲のセルのデータまたはイメージ全体のデータを問い合せます。

- SDO_GEOR.getCellValueは、指定した場所の1つ以上のレイヤーまたはバンドのセル値を戻します。

- SDO_GEOR.evaluateDoubleは、指定された内挿方法を使用することで、隣接するセルの値に基づいて直接の場所を評価し、その場所に指定されたバンドまたはレイヤーのラスター値(倍精度の数値)を戻します。

- SDO_GEOR.getRasterSubsetは、(矩形ウィンドウまたはクリップ・ポリゴン・ジオメトリ、レイヤーまたはバンド番号、およびピラミッド・レベルで指定された) GeoRasterオブジェクトの厳密なサブセットのすべてのセルが含まれる、単一のBLOBオブジェクトを作成します。このBLOBオブジェクトにはラスター・セルのみが含まれ、関連するメタデータは含まれません。

- SDO_GEOR.reprojectは、ある投影座標系から別の投影座標系にGeoRasterオブジェクト全体を変換するのみでなく、問合せ結果(単一のBLOB)を異なる座標系に直接変換することで、SDO_GEOR.getRasterSubsetと同じ機能を組み入れることができます。

- SDO_GEOR.getRasterDataは、GeoRasterオブジェクトの、指定されたピラミッド・レベルのすべてのセルが含まれる、単一のBLOBオブジェクトを作成します。このBLOBオブジェクトにはラスター・セルのみが含まれ、関連するメタデータは含まれません。

- SDO_GEOR.getRasterBlocksは、指定されたウィンドウの内部に存在するか、またはそのウィンドウの境界に接するすべてのイメージ・データが含まれるオブジェクトを戻します。具体的には、指定されたピラミッド・レベルで、指定されたウィンドウの内部に存在するか、またはそのウィンドウの境界に接するすべてのブロックを識別する、SDO_RASTERSETコレクション型のオブジェクトを戻します。

SDO_GEOR.exportToプロシージャを使用して、ラスター・イメージの全体または一部を、BLOBオブジェクト(バイナリ・イメージ形式)または指定したファイル形式タイプのファイルにエクスポートすることもできます。

指定したウィンドウ内のラスター・セルの値を単一の値に更新または変更するには、SDO_GEOR.changeCellValueプロシージャを使用します。SDO_GEOR.updateRasterプロシージャをコールすると、指定した領域の指定したピラミッド(1つのGeoRasterオブジェクトの重複部分)を、別のGeoRasterオブジェクトの指定したピラミッドと指定したバンドまたはレイヤーで更新できます。SDO_GEOR.changeCellValueおよびSDO_GEOR.updateRasterプロシージャでは、元のラスター・データ(ピラミッド・レベル0)を含むすべてのピラミッド・レベルがサポートされます。

注意:
入力されたGeoRasterオブジェクトのデータに対して追加または上書きするプロシージャを使用する場合は、元のGeoRasterオブジェクトをコピーし、そのコピーしたオブジェクトに対してプロシージャを使用してください。プロシージャの結果を確認してから、必要に応じて元のGeoRasterオブジェクトを廃棄します。

ラスター・データ表の名前、GeoRasterオブジェクトの属性、または他の任意のメタデータを変更する場合、3.10項「GeoRasterメタデータの問合せおよび更新」に記載されている推奨事項、要件および制限事項を参照してください。

3.12 GeoRasterオブジェクトの処理

GeoRasterデータには、形式の変更、サブセット化(クロッピング)、スケール変更、(ある座標から別の座標への)再投影、ピラミッドの生成、統計およびヒストグラムの生成など、様々な処理操作を実行できます。関連するサブプログラムには、SDO_GEOR.changeFormatCopy、SDO_GEOR.subset、SDO_GEOR.mosaic、SDO_GEOR.reproject、SDO_GEOR.generatePyramid、SDO_GEOR.deletePyramid、SDO_GEOR.scaleCopy、SDO_GEOR.mergeLayersおよびSDO_GEOR.generateStatisticsが含まれます。

例および説明は、1.15項に記載されているGeoRaster PL/SQLデモ・ファイルも参照してください。

3.13 GeoRasterオブジェクトの圧縮と解凍

JPEG-B、JPEG-FまたはDEFLATE圧縮を使用してGeoRasterオブジェクトを圧縮することによって、GeoRasterオブジェクトに必要な記憶域を縮小できます。圧縮されたGeoRasterオブジェクトは解凍できます。ただし圧縮されていない(解凍されている)GeoRasterオブジェクト上で実行できるすべてのGeoRaster操作は、圧縮されたGeoRasterオブジェクトで実行できるため、解凍はすべてのGeoRaster操作で必須ではありません。

GeoRasterオブジェクトを圧縮または解凍するには、SDO_GEOR.changeFormatCopyプロシージャ、または他のGeoRasterオブジェクトを作成するためにGeoRasterオブジェクトをロードおよび処理する他のプロシージャ(SDO_GEOR.importFrom、SDO_GEOR.mosaic、SDO_GEOR.scaleCopy、SDO_GEOR.subsetなど)のstorageParamパラメータで圧縮キーワードを使用します。(GeoRasterオブジェクトを圧縮および解凍するための個別のプロシージャはありません。)

GeoRasterの圧縮および解凍の詳細は、1.10項を参照してください(サード・パーティの圧縮ソリューションのサポート情報は、1.10.4項を参照)。

3.14 GeoRasterオブジェクトの表示

GeoRasterデータを表示するには、次の方法があります。

- SDO_GEOR.exportToプロシージャをコールしてGeoRasterオブジェクトをイメージ・ファイルにエクスポートした後、イメージ・ツールまたはWebブラウザを使用してイメージを表示します。

- スタンドアロンのGeoRasterビューア・ツール(1.14項に示すツールの1つ)を使用します。

GeoRasterのビューア・ツールでは、データベース・スキーマ(ユーザー)のGeoRasterオブジェクトの選択、GeoRasterオブジェクトの全体またはサブセットの問合せと表示、ズームイン、ズームアウト、スクロール、および他の基本操作を実行できます。マウス・ポインタの位置の点について、ピラミッド・レベル、セル座標およびモデル座標(オブジェクトが地理参照されている場合)が表示されます。個々のセル値を表示して、RGBフルカラー表示のために、マルチバンド・イメージまたはハイパースペクトル・イメージの複数のレイヤーを選択できます。表示の最前面にブロック境界を重ねて表示できます。ビューアでは、データおよびユーザーの要件に応じて、イントラネットまたはインターネット上でラスター・データをグレースケール、疑似カラーおよび24ビット・トゥルーカラーで表示できます。一部の基本的なGeoRasterメタデータも表示されます。

GeoRasterのビューア・ツールには、GeoRasterオブジェクトの表示機能を強化するためのイメージ処理演算子のセットが含まれます。これらの演算子は、特にGeoRasterオブジェクトのセル深度が8を超える場合や、浮動小数点数である場合に役立ちます。また、このツールでは、GeoRasterオブジェクトにビットマップ・マスクがある場合に、そのビットマップ・マスクを表示および適用できます。

GeoRasterのビューア・ツールには、GeoRasterローダーおよびエクスポータ・ツールをコールするためのメニュー・コマンドも含まれています。これにより、1つのツールを、すべてのGeoRasterツールの機能へのインタフェースとして使用できます。

3.15 GeoRasterオブジェクトのエクスポート

イメージまたはラスター・データをロードおよびエクスポートする場合、常にサード・パーティのETLツールの使用を検討してください(1.14項の「注意」を参照)。

GeoRasterの機能を使用してGeoRasterオブジェクトをイメージ・ファイルにエクスポートする場合、次の方法があります。

- SDO_GEOR.exportToプロシージャをコールします(ファイルまたはBLOBオブジェクトのいずれかにエクスポートできます)。

- GeoRasterエクスポータ・ツールまたはビューア・ツールを使用します(1.14項を参照)。

3.16 コミット前のGeoRasterオブジェクトの更新

GeoRasterのセル・データまたはメタデータを挿入、更新または削除するデータベース・トランザクションをコミットする前に、GeoRasterオブジェクトを更新する必要があります。セル・データの変更後にGeoRasterオブジェクトを更新しないと、無効なGeoRasterオブジェクト、ダングリング・ラスター・データ、および一貫性のないメタデータの1つ以上が発生する可能性があります。GeoRasterメタデータの変更後にGeoRasterオブジェクトを更新しないと、メタデータの変更は反映されません。

トランザクションをコミットしないでロールバックする場合は、UPDATE文は必要ありません。

例3-5では、UPDATE文はSDO_GEOR.changeFormatCopyプロシージャのコールの後およびCOMMIT文の前に必要です。

例3-5 コミット前のGeoRasterオブジェクトの更新

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;
/

3.17 テンプレート関連のサブプログラムを使用したGeoRasterアプリケーションの開発

SDO_GEOR.createTemplateおよびSDO_GEOR.getRasterBlockLocatorサブプログラムを使用すると、Oracle XMLType、GeoRaster XMLスキーマおよびOracle BLOBを直接操作せずにGeoRasterメタデータとバイナリ・ラスター・データの読取りおよび書込みを行うことで、GeoRasterアプリケーション(GeoRasterオブジェクトを処理するETLツールやイメージ処理システムなど)を開発できます。

新しいGeoRasterオブジェクトを作成(3.2項を参照)すると、SDO_GEOR.createTemplateファンクションを使用して、ラスター型、次元サイズ、ULTCoordinate、セル深度、インターリーブ・タイプ、ブロック化とブロック・サイズ、ピラミッド・リサンプリング・メソッドと縮小レベル、圧縮方法と圧縮品質などの基本情報をGeoRasterオブジェクトのメタデータに移入できます。このファンクションでは、オプションで、正しい行数および空のBLOBを含むラスター・ブロックで構成される行データをラスター・データ表に移入できます。

SDO_GEOR.createTemplateファンクションにより生成されるXMLメタデータは、GeoRasterメタデータのスキーマに準拠します。そのため、他のGeoRasterサブプログラムを使用してメタデータの問合せや更新を行うことができます(3.10項を参照)。

SDO_GEOR.getRasterBlockLocatorプロシージャを使用すると、ピラミッド・レベルとブロック番号を指定することでラスター・ブロックのロケータを取得できます。ラスター・ブロックのロケータを取得したら、OCIまたはJava JDBC LOBインタフェースを使用してバイナリ・ラスター・データの読取りおよび書込みを行うことができます。(SDO_GEOR.getRasterBlockLocatorプロシージャは、それ自体ではLOBデータの読取りや処理を行いません。)この方法を使用するには、ラスター・データの物理記憶域(1.4項を参照)を理解しておく必要があり、BLOBの読取りおよび書込みの前に必要に応じてデータの圧縮と解凍を行う必要があります。

3.18 Workspace ManagerおよびLabel SecurityでのGeoRasterの使用

Oracle Workspace ManagerまたはOracle Label SecurityでGeoRasterを使用するには、SDO_RASTER型のオブジェクト・ビューを定義し、そのオブジェクト・ビューをラスター記憶域として使用する必要があります。このオブジェクト・ビューは、必要なすべての列と主キー定義が含まれる単一のリレーショナル表(ラスター・データの実表)に対して定義する必要があります。次の例は、表およびビューを作成する一般的な形式の文を示しています。

CREATE TABLE <rdt_base_table>
(  RASTERID NUMBER,
PYRAMIDLEVEL NUMBER,
BANDBLOCKNUMBER NUMBER,
ROWBLOCKNUMBER NUMBER,
COLUMNBLOCKNUMBER NUMBER,
BLOCKMBR SDO_GEOMETRY,
RASTERBLOCK BLOB,
PRIMARY KEY (RASTERID,PYRAMIDLEVEL,BANDBLOCKNUMBER,
ROWBLOCKNUMBER,COLUMNBLOCKNUMBER)
) LOB (RASTERBLOCK) STORE AS SECUREFILE(CACHE);

CREATE VIEW <rdt_view> OF SDO_RASTER
WITH OBJECT OID (RASTERID,PYRAMIDLEVEL,BANDBLOCKNUMBER,
ROWBLOCKNUMBER,COLUMNBLOCKNUMBER)
AS SELECT RASTERID,PYRAMIDLEVEL,BANDBLOCKNUMBER,ROWBLOCKNUMBER,COLUMNBLOCKNUMBER,
BLOCKMBR,RASTRBLOCK
FROM <rdt_base_table>;

オブジェクト・ビューの名前を使用して、GeoRasterオブジェクトを作成します。次に一般的な形式の例を示します。

INSERT INTO georaster_table (georid, georaster)
VALUES (0, SDO_GEOR.init(<rdt_view>));

オブジェクト・ビューの名前は、GeoRasterシステム・データ・ビュー(2.4項を参照)のRDT_TABLE_NAME列で使用されます。オブジェクト・ビューに対する権限として、ラスター・オブジェクト表の場合と同じ権限を付与します。次に一般的な形式の例を示します。

GRANT SELECT,INSERT,UPDATE,DELETE on <rdt_view> TO SCOTT;

3.18.1 Workspace ManagerでのGeoRasterの使用

Workspace Managerでは、異なる作業領域にラスター・データの異なるバージョンを保存して変更を加えることで、ラスター・データに対する変更を容易に管理できます。Workspace ManagerでGeoRasterを使用するには、ラスター記憶域用のラスター・データ・ビューを使用し、基礎となるラスター・データの実表をバージョン対応にする必要があります。次に一般的な形式の例を示します。

EXECUTE DBMS_WM.EnableVersioning (<rdt_base_table>, 'VIEW_WO_OVERWRITE');

注意:
バージョン対応にできるのは、ラスター・データ表のみです。GeoRasterオブジェクトが格納されているGeoRaster表は、バージョン対応にしないでください。また、作業領域での作業中にGeoRaster表を変更する必要のある操作は実行しないでください。

ラスター・データの実表(RDT実表)をバージョン対応にした後に、DBMS_WMパッケージのサブプログラムを使用してラスター・データの変更を管理できます。ラスター・ブロックを直接変更する必要がある場合は、次の例に示すとおり、操作の前にDBMS_WM.copyForUpdateプロシージャをコールします。

declare
geor sdo_georaster;
cond varchar2(1000);
lb   blob;
r1   raw(1024);
amt  number;
begin
r1 := utl_raw.copies(utl_raw.cast_to_raw('0'),1024);

select georaster into geor from georaster_table where georid=1;
cond := 'rasterId=' || geor.rasterId || ' AND pyramidLevel=0 AND ' ||
' bandBlockNumber=0 AND rowBlockNumber=0 AND columnBlockNumber=0';
dbms_wm.copyForUpdate(geor.rasterDataTable, cond);
sdo_geor.getRasterBlockLocator(geor, 0, 0, 0, 0, lb, null, 'TRUE');
amt := 1024;
dbms_lob.write(lb, amt, 1, r1);
end;
/

ただし、GeoRasterサブプログラムを使用してラスター・データを変更する場合は、事前にDBMS_WM.copyForUpdateプロシージャをコールする必要はありません。

Workspace Managerの詳細は、『Oracle Database Workspace Manager開発者ガイド』を参照してください。

3.18.2 Label SecurityでのGeoRasterの使用

Oracle Label Securityでは、ユーザーのセキュリティ・クリアランスのレベルに基づいて、機密データに対する行レベルのアクセス制御を実現できます。Label SecurityでGeoRasterを使用するには、次の基本手順を実行します。

1. GeoRaster表、RDT実表、および各RDTのSDO_RASTER型のオブジェクト・ビューを作成します。

2. Oracle Label Securityポリシーを作成してラベル・コンポーネントを定義します。

3. GeoRaster表とRDT実表に対してラベル付けファンクションを作成します。
GeoRaster表の行のラベルは、アプリケーションの要求に従って生成される必要があります。GeoRasterオブジェクトを格納する行と、関連するRDTベース表のGeoRasterオブジェクトのラスター行には、両方とも同じラベルを使用してください。異なるラベルを使用すると、GeoRasterオブジェクトが無効になるか、一貫性のないステータスになる可能性があります。

次の例では、RDT実表に対してラベル付けファンクションを作成します。

CREATE OR REPLACE FUNCTION gen_rdt_label(rdt_view_name varchar2, rid number)
RETURN LBACSYS.LBAC_LABEL
AS
tabname varchar2(80);
schema  varchar2(32);
grcol   varchar2(1024);
colname varchar2(30);
label   NUMBER;
BEGIN
EXECUTE IMMEDIATE
'SELECT v.owner, v.table_name, v.column_name grcol, p.column_name ' ||
'  FROM all_sdo_geor_sysdata v, all_sa_policies p, all_sa_table_policies t '
|| ' WHERE v.rdt_table_name=:1 AND v.raster_id=:2 AND ' ||
' v.owner=t.schema_name AND v.table_name=t.table_name AND ' ||
' p.policy_name=t.policy_name '
INTO schema, tabname, grcol, colname
USING upper(rdt_view_name), rid;
EXECUTE IMMEDIATE
'SELECT t.' || colname  ||
' FROM ' || schema || '.' || tabname || ' t ' ||
' WHERE t.' || grcol || '.rasterdatatable=:1 AND ' ||
'       t.' || grcol || '.rasterid=:2'
INTO label
USING upper(rdt), rid;
RETURN LBACSYS.LBAC_LABEL.NEW_LBAC_LABEL(label);
END;
/

4. Label SecurityポリシーをGeoRaster表とそれに関連するRDT実表に適用します。
次の一般的な形式の例では、前述の手順におけるラベル付けファンクションの例を使用して、Label Securityポリシーを1つのRDT実表に適用します。

BEGIN
SA_POLICY_ADMIN.REMOVE_TABLE_POLICY(<policy_name>,<schema_name>,<rdt_base_table>);
SA_POLICY_ADMIN.APPLY_TABLE_POLICY(
POLICY_NAME => <policy_name>,
SCHEMA_NAME => <schema_name>,
TABLE_NAME  => <rdt_base_table>,
TABLE_OPTIONS => 'READ_CONTROL,WRITE_CONTROL,CHECK_CONTROL',
LABEL_FUNCTION => '<schema_name>.gen_rdt_label(<rdt_view>,:new.rasterid)',
PREDICATE => NULL);
END;
/

5. ユーザーを作成して認可を行い、Label Securityに関連する他の管理タスクを完了します。

ポリシーを表に適用する前または後に、GeoRasterデータをロードできます。

ALL_SDO_GEOR_SYSDATAビュー(2.4項を参照)には、現行ユーザーがアクセス可能なすべてのGeoRasterオブジェクトに関するシステム・データが含まれます。この場合のアクセス可能性は、任意アクセス制御(DAC)のコンテキストで定義されたユーザーの権限によって決定されます。

GeoRaster表の行のラベルが更新されたら、各ラベルが同期するように、RDT実表の関連するデータ・ラベルも更新される必要があります。

Label Securityの詳細は、『Oracle Label Security管理者ガイド』を参照してください。

3.19 GeoRasterオブジェクトによる表領域の効率的な使用のメンテナンス

操作を削除またはロールバックしても、ラスター・データ表に割り当てられた未使用の領域は、基礎となる表領域にすぐに戻されないことがあります。これにより、表領域が無駄に使用されることがあり、ラスター・データのサイズが大きい場合は重大な問題となる可能性があります。自動セグメント領域管理の表領域でBasicFile LOBを使用してラスター・データ表を作成した場合、ラスター・データ表を変更することでrasterBlock LOBセグメントまたはラスター・データ表を明示的に縮小できます。次の例3-6および例3-7を参照してください。

例3-6 BasicFile rasterBlock LOBセグメントの縮小

ALTER TABLE city_images_rdt MODIFY LOB (rasterBlock) (SHRINK SPACE);

例3-7 ラスター・データ表の縮小

ALTER TABLE city_images_rdt ENABLE ROW MOVEMENT;
ALTER TABLE city_images_rdt SHRINK SPACE CASCADE;

SecureFilesを使用している場合、または手動セグメント領域管理の表領域で割り当てられたBasicFilesを使用している場合、前述の例のようにALTER TABLE文を使用して未使用の領域を再利用することはできません。かわりに、一時的に使用する作業用のラスター・データ表を作成し、断続的に発生する結果をそのRDTに配置して、不要になったらその作業用RDTを削除する必要があります。

3.20 データベースのGeoRasterオブジェクトおよびシステム・データのメンテナンス

GeoRasterには、無効なGeoRasterオブジェクトおよびシステム・データの作成を防止する内部データベース・メカニズムがありますが、特に以前のリリースからのアップグレード後や、GeoRasterシステム・データに対する操作で複数のユーザー・エラーが発生した後には、データベース内にそのような無効なGeoRasterオブジェクトやシステム・データが発生することがあります。無効なオブジェクトおよびシステム・データの例は、次のとおりです。

- GeoRasterシステム・データ・ビューのエントリ(2.4項のxxx_SDO_GEOR_SYSDATAを参照)が、存在しないGeoRaster表または列を示します。

- 2つ以上のGeoRasterオブジェクトに、RDT名とラスターID値の同じ組合せが含まれています。

- 一部のGeoRasterオブジェクト、表、列またはRDTが登録されていません。

- RDT名が一意ではありません。

- GeoRasterオブジェクトが空または空白ではないが、関連するRDTが存在しません。

データベースのアップグレード後に、SDO_GEOR_ADMIN.isUpgradeNeededファンクションをコールして、現在のリリースで無効なGeoRasterオブジェクトおよび無効なシステム・データを確認する必要があります。なんらかのエラーや無効なデータが検出された場合は、SDO_GEOR_ADMIN.upgradeGeoRasterファンクションをコールして問題を自動的に修正します。ユーザーMDSYSとして接続している場合、SDO_GEOR_ADMIN.upgradeGeoRasterファンクションをコールすると、データベース内のすべてのGeoRasterオブジェクトがアップグレードされます。それ以外の場合は、現行ユーザーのスキーマのGeoRasterオブジェクトのみがアップグレードされます。(詳細は、第5章でSDO_GEOR_ADMIN.upgradeGeoRasterに関するリファレンスおよび使用情報を参照してください。)

発生する可能性のあるユーザー・エラーに対する定期的なメンテナンスでは、無効なGeoRasterオブジェクトおよびシステム・データ・エントリを検出して修正するために次のファンクションおよびプロシージャが役立ちます。

- エラーを検出するには、SDO_GEOR_ADMIN.checkSysdataEntriesおよびSDO_GEOR_ADMIN.listUnregisteredRDTをコールします。

- ダングリング・ラスター・データを検出するには、SDO_GEOR_ADMIN.listDanglingRasterDataをコールします。

- すべての無効なシステム・データ・エントリを修正するには、SDO_GEOR_ADMIN.maintainSysdataEntriesをコールします。

- すべてのGeoRaster列に適切なDMLトリガーを作成するには、SDO_GEOR_ADMIN.registerGeoRasterColumnsをコールします。

- すべての既存のGeoRasterオブジェクトをシステム・データ表に登録するには、SDO_GEOR_ADMIN.registerGeoRasterObjectsをコールします。

詳細は、第5章でこれらのプロシージャとファンクションに関するリファレンスおよび使用情報を参照してください。

3.21 データベース間でのGeoRasterデータの転送

データ・ポンプ・エクスポート・ユーティリティおよびインポート・ユーティリティまたは従来のエクスポート・ユーティリティおよびインポート・ユーティリティのいずれかを使用して、データベース間でGeoRasterデータを転送できます。GeoRaster表と関連するラスター・データ表の両方から行をエクスポートし、インポートする必要があります。データの転送後、インポートしたGeoRasterオブジェクトのGeoRasterシステム・データをターゲット・スキーマのUSER_SDO_GEOR_SYSDATAビュー(2.4項を参照)に挿入する必要はありません。ただし、これらのオブジェクトになんらかの操作を実行する前に、SDO_GEOR.validateGeoRasterファンクションを使用して、インポートしたGeoRasterオブジェクトが有効かどうかを確認する必要があります。

データ・ポンプ・エクスポート・ユーティリティとインポート・ユーティリティ、および従来のエクスポート・ユーティリティとインポート・ユーティリティの詳細は、『Oracle Databaseユーティリティ』を参照してください。

データベース間でGeoRasterデータを転送するには、次の一般的な手順に従います。

1. 競合を確認して、解決します(3.21.1項を参照)。

2. データの転送を行います(3.21.2項を参照)。

3.21.1 競合の確認と解決

GeoRasterデータをターゲット・データベースに正常にインポートするには、ターゲット・スキーマのGeoRasterシステム・データが競合していない必要があります。次の条件では、競合が発生する可能性があります。

- ターゲット・データベース内の別のスキーマに、同じ名前を持つラスター・データ表がすでに定義されている。
たとえば、ラスター・データ表(RDT)をターゲット・スキーマに作成してGeoRasterオブジェクトをインポートする場合、ターゲット・スキーマの既存のRDTにすでに同じ名前が割り当てられている可能性があります。この場合、SDO_GEOR_ADMIN.listRDTまたはSDO_GEOR_ADMIN.isRDTNameUniqueファンクションを使用して、ソース・データベースとターゲット・データベースの両方を調査し、RDT名の競合が存在するかどうかを確認する必要があります。競合が存在する場合は、SDO_GEOR_UTL.renameRDTプロシージャを使用してターゲット・データベースのRDT名を異なる名前に変更し、GeoRasterオブジェクトをインポートする前に競合を解決します。

- ターゲット・スキーマのUSER_SDO_GEOR_SYSDATAビューに挿入するラスター・データ表の名前とラスターIDの組合せが一意ではない。
たとえば、ターゲット・データベースの既存のRDTにデータを追加することでRDTデータをインポートする場合に、この競合が発生する可能性があります。この場合、データをターゲット・データベースにインポートする前に、SDO_GEOR_ADMIN.listGeoRasterObjectsファンクションを使用してターゲット・スキーマに定義されているすべてのGeoRasterオブジェクトをリスト表示し、RDT名とラスターIDの組合せが既存のGeoRasterデータとインポートするGeoRasterデータの間で競合していないことを確認します。競合が存在する場合は、ターゲット・スキーマのGeoRasterオブジェクトのラスターIDを変更し、競合を解決します。この処理を行わないと、ダンプ・ファイル内に競合の存在するGeoRasterオブジェクトは、インポート・プロセスの実行時に拒否されます。

ダンプ・ファイルでラスター・データ表(RDT)の名前とラスターID(RID)の情報を確認する必要がある場合、いくつかの方法があります。ソース・データベースの情報を確認する方法、ダンプ・ファイルのプロバイダの情報をリクエストする方法、個別のテスト・データベースにダンプ・ファイルをロードしてそこでその情報を確認する方法、または(テスト用に個別のデータベースを使用できない場合)現行データベースのテスト・スキーマにダンプ・ファイルをロードしてその情報を確認する方法です。現行データベースのテスト・スキーマにダンプ・ファイルをロードして情報を確認するには、次の手順を実行します。

1. ターゲット・データベースにテスト・スキーマを作成します。

2. CONTENT = METADATA_ONLYパラメータを指定してデータ・ポンプ・インポート・ユーティリティを使用し、ダンプ・ファイルからこのテスト・スキーマにすべてのGeoRaster表をロードします。

3. MDSYSユーザーとしてデータベースに接続し、前述の手順でロードしたGeoRaster表のすべてのDMLトリガーを無効化します。

4. CONTENT = DATA_ONLYパラメータを指定してデータ・ポンプ・インポート・ユーティリティを使用し、GeoRaster表にデータをロードします。

5. テスト・スキーマのGeoRaster表からRDTとRID(ラスター・データ表の名前とラスターID)の組合せを直接取得します。

競合を解決したら、GeoRasterのメタデータおよびデータの整合性を確認する必要があります(3.20項を参照)。また、コミットなどの操作を実行する前に、修正したGeoRasterオブジェクトを検証する必要があります。

インポート操作時に競合を解決する方法の一般情報は、『Oracle Databaseユーティリティ』のデータ・ポンプ・インポートに関する章でTABLE_EXISTS_ACTIONパラメータの説明を参照してください。

3.21.2 GeoRasterデータの転送の実行

あるデータベースのGeoRasterデータをエクスポートして別のデータベースにインポートすると、ターゲット・データベースにGeoRaster表およびオブジェクトがインポートされた後に、必要なDMLトリガーとシステム・データ・エントリがGeoRasterのデータベース管理システムによって自動的に生成されます。

GeoRasterデータをエクスポートする方法は、他のタイプのデータをエクスポートする場合と同様です。次に例を示します。

expdp scott schemas=scott directory=dump_dir dumpfile=exp.dmp
Enter password: password

GeoRasterデータをインポートする方法は、他のタイプのデータをインポートする場合と同様ですが、GeoRasterの内部DMLトリガーは除外します。次に例を示します。

1. インポートするGeoRasterデータとターゲット・データベース内の既存のGeoRasterデータ間に競合が存在しないことを確認します(3.21.1項を参照)。
競合が解決されていない場合、複数の例外が発生します。競合のないGeoRasterデータのみがターゲット・データベースにインポートされます。

2. 他のタイプのデータをインポートする場合と同様にGeoRasterデータをインポートしますが、GeoRasterの内部DMLトリガー(名前がGRDMLTR_で始まるトリガー)は除外します。次に例を示します。

impdp scott schemas=scott directory=dump_dir dumpfile=exp.dmp parfile=exclude.par
Enter password: password

exclude.parファイルの内容は次のとおりです。

exclude=trigger:"like 'GRDMLTR_%'"

3.22 GeoRasterデータでのトランスポータブル表領域の使用

GeoRasterデータにOracle Databaseのトランスポータブル表領域機能を使用できます。

トランスポートする表領域に、GeoRaster表またはラスター・データ表(RDT)に対する空間索引が含まれる場合、状況によってはいくつかの準備手順を実行する必要があります。空間データでのトランスポータブル表領域機能の使用方法の詳細は、『Oracle Spatial開発者ガイド』のSDO_UTIL.PREPARE_FOR_TTSおよびSDO_UTIL.INITIALIZE_INDEXES_FOR_TTSプロシージャの使用上の注意を参照してください。

GeoRasterデータをターゲット・データベースに正常にインポートするには、ターゲット・スキーマのGeoRasterシステム・データが競合していない必要があります。表領域を別のデータベースまたはスキーマにトランスポートする前に、3.21.1項に記載されている手順に従って競合を確認および解決することをお薦めします(ただし必須ではありません)。そのため、ソース・データベースのトランスポータブル表領域を使用する前に、そのような予測可能な競合を避けるようにGeoRaster表およびRDT表を設計する必要があります。

トランスポートされる表領域に空間索引があるかどうかにかかわらず、GeoRasterオブジェクトを含む表領域をトランスポートした後で、次の手順を実行します。

1. SDO_GEOR_ADMIN.registerGeoRasterObjectsプロシージャ(第5章を参照)をコールして、現在のスキーマまたは新しいデータベースにすべてのGeoRasterオブジェクトを登録します。

2. トランスポートされたGeoRasterデータを使用する前に、定期的なメンテナンス操作(3.20項を参照)を実行して、GeoRasterオブジェクトおよびシステム・データを管理し、すべてのGeoRasterオブジェクトが正しくトランスポートされ、適切に登録されていることを確認します。

3. 競合が検出された場合は、SDO_GEOR_UTL.renameRDTプロシージャまたはSDO_GEOR_UTL.makeRDTNamesUniqueプロシージャをコールして、そうした競合を解決し、再度検証します。

トランスポータブル表領域と、表領域を他のデータベースにトランスポートする方法の詳細は、『Oracle Database管理者ガイド』を参照してください。

4 SDO_GEORパッケージのリファレンス

MDSYS.SDO_GEORパッケージには、GeoRasterオブジェクトに関する情報の作成、変更および取得を行うサブプログラム(ファンクションおよびプロシージャ)が含まれています。この章では、そのサブプログラムのリファレンス情報を、例を使用して説明します。

この章では、サブプログラムをアルファベット順に記載しています。これらは、いくつかの論理カテゴリに分類できます(1.12項を参照)。サブプログラムについては、第3章「GeoRasterの操作」も参照してください。

この章の複数の例では、GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項の例1-1の次に説明されています。

すべてのSDO_GEORサブプログラムは、現行の接続スキーマ以外のスキーマに定義されているGeoRasterオブジェクトに対して機能できます。

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型の詳細は、1.9項を参照してください。

使用上の注意

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

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

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;
/

SDO_GEOR.addSourceInfo

構文

SDO_GEOR.addSourceInfo(

georaster IN OUT SDO_GEORASTER,

sourceInfo IN VARCHAR2);

説明

GeoRasterオブジェクトのソース情報を追加します。

パラメータ

georaster

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

sourceInfo

ソース情報を文字列で指定します。最大4096文字です。

使用上の注意

指定したsourceInfo文字列は、GeoRasterオブジェクトのメタデータの<sourceInfo>要素に追加されます(付録Aを参照)。このプロシージャを必要な回数コールして、<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.

SDO_GEOR.calcCompressionRatio

構文

SDO_GEOR.calcCompressionRatio(

georaster IN SDO_GEORASTER

) RETURN NUMBER;

説明

指定されたGeoRasterオブジェクトの圧縮率を戻します。

パラメータ

georaster

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

使用上の注意

圧縮率は、圧縮されていないGeoRasterオブジェクト内の(ピラミッドを含めた)すべてのラスター・ブロックの合計サイズを、このオブジェクトの圧縮形式の合計サイズで除算したものです。入力されたGeoRasterオブジェクトが圧縮されていない場合は、圧縮率は1(つまり1:1)になります。

ある(元の)GeoRasterオブジェクトに対して、圧縮率が大きくなると、圧縮されたGeoRasterオブジェクトは小さくなります。たとえば、圧縮率が20(つまり20:1)の場合、データは元のサイズの5%に圧縮されています。

GeoRasterの圧縮の詳細は、1.10項を参照してください。

例

次の例では、GEORASTER_TABLE表のGEORASTER列内のGeoRasterオブジェクトについて圧縮タイプと圧縮率を戻します。ここでGEORID列の値は1とします。

SELECT sdo_geor.getCompressionType(georaster) compType,
sdo_geor.calcCompressionRatio(georaster) compRatio
FROM georaster_table WHERE georid=1;

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オブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(1.4.4項を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。

入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。

使用上の注意

このプロシージャは、入力されたGeoRasterオブジェクトのデータを上書きするため、元のGeoRasterオブジェクトをコピーし、そのコピーしたオブジェクトに対してこのプロシージャを使用してください。このプロシージャの結果を確認してから、必要に応じて元のGeoRasterオブジェクトを廃棄します。

このプロシージャは、イメージの一部をマスクする(隠す)ために使用できます。たとえば、イメージの必要な部分のみを強調するために、事前に関係ない部分をめだたない色に変更しておくことができます。

windowパラメータのデータ型がSDO_GEOMETRYの場合、SDO_SRID値は次のいずれかの値である必要があります。

- NULL(ラスター空間を指定)

- MDSYS.CS_SRS表のSRID列の値
windowパラメータ・ジオメトリとモデル空間のSDO_SRID値が異なる場合は、処理が実行される前に、windowパラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、1.3項を参照してください。)

windowパラメータで矩形以外のSDO_GEOMETRYオブジェクトを指定すると、このファンクションによってジオメトリのMBRが計算され、そのMBR内のセルが(MBRの境界上のセルも含め)更新されます。

windowパラメータで測地MBRを指定する場合、日付変更線をまたぐMBRは指定できません。測地MBRについては、『Oracle Spatial開発者ガイド』を参照してください。

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.4.1項の例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;
/

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

記憶域パラメータを示す文字列を指定します(1.4.1項を参照)。

outGeoRaster

コピーを格納するSDO_GEORASTERオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、1.4.3項を参照してください。)inGeoRasterと同じGeoRasterオブジェクトは指定できません。

bgValues

部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(1.4.4項を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。

入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。

使用上の注意

このプロシージャは、元の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.4.1項の例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;
/

SDO_GEOR.copy

構文

SDO_GEOR.copy(

inGeoRaster IN SDO_GEORASTER,

outGeoRaster IN OUT SDO_GEORASTER);

説明

既存のGeoRasterオブジェクトのコピーを作成します。

パラメータ

inGeoRaster

コピーするGeoRasterオブジェクトを指定します。

outGeoRaster

コピー操作の結果を格納するGeoRasterオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、1.4.3項を参照してください。)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.4.1項の例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;
/

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属性値を指定します(2.1.1項を参照)。

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ビューの詳細は、2.4項を参照してください。GeoRasterの操作は第3章を参照してください。)

作成された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.4.1項の例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')
);

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属性値を指定します(2.1.1項を参照)。

rasterSpec

ラスター仕様パラメータを示す文字列を指定します(「使用上の注意」を参照)。

maskLayers

ビットマップ・マスクが関連付けられた論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、2-4はレイヤー2、3および4を示します)。

initRDTEntry

文字列TRUEを指定すると、ラスター・データ表にデータが移入されますが、文字列FALSEを指定すると、ラスター・データ表にデータは移入されません。このパラメータを指定しない場合、ラスター・データ表にデータは移入されません。

使用上の注意

このファンクションは、GeoRasterオブジェクトに汎用パターンのメタデータを移入し、オプションで、空のラスター・ブロックを含む適切な行をラスター・データ表に挿入します。ラスター・データ表にデータを移入する場合は、ラスター・データ表が存在し、GeoRasterオブジェクトがGeoRaster SYSDATA表に登録されている必要があります。

通常、空のGeoRasterオブジェクトにこのプロシージャを使用すると、XMLメタデータとラスター・ブロックが移入されるだけです。既存の(適切な)GeoRasterオブジェクトを使用すると、GeoRasterオブジェクトは更新時に新しいテンプレート・オブジェクトに置き換えられます。

rasterSpecパラメータには、キーワードと値の組合せから1つ以上を選択し、引用符で囲んだ文字列として指定する必要があります。このパラメータでは次のキーワードがサポートされます。

- blocking (blocking=TRUEなど)。このキーワードの詳細は、1.4.1項「記憶域パラメータ」の表1-1を参照してください。

- blocksize (blocksize=(128,128,3)など)。このキーワードの詳細は、1.4.1項「記憶域パラメータ」の表1-1を参照してください。

- cellDepth (cellDepth=8BIT_Sなど)。このキーワードの詳細は、1.4.1項「記憶域パラメータ」の表1-1を参照してください。

- compression (compression=JPEG-Bなど)。このキーワードの詳細は、1.4.1項「記憶域パラメータ」の表1-1を参照してください。

- dimSize (dimSize=(256,256,3)など): 行、列およびバンド次元のサイズを指定します。このキーワードの指定は必須であり、rasterTypeパラメータと一致している必要があります。

- interleaving (interleaving=BIPなど)。このキーワードの詳細は、1.4.1項「記憶域パラメータ」の表1-1を参照してください。

- quality (quality=75など)。このキーワードの詳細は、1.4.1項「記憶域パラメータ」の表1-1を参照してください。

- resampling (resampling=NNなど): リサンプリング・メソッドを指定します。NN(元のGeoRasterオブジェクトで最も近いセルの値)、BILINEAR(元のGeoRasterオブジェクトで最も近い4個のセルを距離で重み付けした平均)、AVERAGE4(元のGeoRasterオブジェクトで最も近い4個のセルの単純平均)、AVERAGE16(元のGeoRasterオブジェクトで最も近い16個のセルの単純平均)、またはCUBIC(元のGeoRasterオブジェクトで最も近い16個のセルの3次畳込み)のいずれかを指定する必要があります。rLevelが設定されていない場合、このキーワードは無視されます。

- rLevel (rLevel=2など): ピラミッドの最大縮小レベルを指定します。正の整数にする必要があります。このキーワードを指定すると、メタデータのピラミッド・タイプがDECREASEに設定され、指定しない場合はピラミッド・タイプがNONEに設定されます。

- ultCoord(ultCoord=(0,0,0)など): GeoRasterオブジェクトの左上の座標を示す整数値を指定します。すべての次元で、デフォルト値は0(ゼロ)です。バンド次元の値には、0(ゼロ)を指定する必要があります。

(1.4.1項「記憶域パラメータ」の表1-1のbitmapmaskおよびpyramidキーワードは、rasterSpecパラメータではサポートされないことに注意してください。)

このファンクションを使用してGeoRasterアプリケーションを開発する方法については、3.17項を参照してください。

例

次の例では、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=(128,128,3) blocking=false rlevel=2',
null, 'TRUE');
UPDATE georaster_table set georaster=gr where georid=1;
COMMIT;
END;
/

SDO_GEOR.deleteControlPoint

構文

SDO_GEOR.deleteControlPoint (

inGeoraster IN SDO_GEORASTER,

controlPointID IN VARCHAR2);

説明

指定した基準点ID値を持つ地上基準点(GCP)を削除します。

パラメータ

inGeoraster

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

controlPointID

inGeorasterの基準点IDを指定します。32文字以下の文字列である必要があります。

使用上の注意

GCPを使用した地理参照の詳細は、1.6.2項を参照してください。

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;
/

SDO_GEOR.deleteNODATA

構文

SDO_GEOR.deleteNODATA(

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型の詳細は、1.9項を参照してください。

使用上の注意

NODATA値またはその値の範囲が削除された場合、GeoRasterオブジェクトのセル深度を使用して正しい範囲が新しく生成されます。セル深度に浮動セル値が指定されている場合、削除が可能なのは、既存の単一数値のNODATA値か、または既存のNODATA値の範囲の部分的な範囲のみです。

NODATA値およびその値の範囲の詳細は、1.9項を参照してください。

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;
/

SDO_GEOR.deletePyramid

構文

SDO_GEOR.deletePyramid(

georaster IN OUT SDO_GEORASTER);

説明

GeoRasterオブジェクトのピラミッド・データを削除します。

パラメータ

georaster

ピラミッド・データを削除するGeoRasterオブジェクトを指定します。

使用上の注意

ピラミッド・データの詳細は、1.7項を参照してください。

georasterがNULLか、またはピラミッド・データを持たない場合、このプロシージャは処理を実行しません。

georasterが無効な場合、例外が発生します。

例

次の例では、GeoRasterオブジェクトのピラミッド・データを削除します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は1.4.1項の例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;
/

SDO_GEOR.evaluateDouble

構文

SDO_GEOR.evaluateDouble(

georaster IN SDO_GEORASTER,

pyramidLevel IN NUMBER,

row IN NUMBER,

collumn 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.5項で説明したように、論理レイヤー番号は、物理バンド番号に1を足した値です。)

interpolationMethod

それぞれ適切な値を持つ1つ以上のキーワードを含む引用符で囲んだ文字列を指定します。使用可能なキーワードおよび値については、「使用上の注意」を参照してください。

使用上の注意

このファンクションは、内挿された倍精度のラスター値を戻します。GeoRasterでは、セル座標系タイプが中心を基準とするか、左上を基準とするかにかかわらず、元のセル値は常にセルの中心に関連付けられます。

GeoRasterオブジェクトの場所は、セル座標空間でその行、列およびバンド番号を指定するか、モデル座標空間またはセル座標空間で点ジオメトリを指定して識別します。

interpolationMethodには、次の1つ以上のキーワードにそれぞれ適切な値を指定して、それらを引用符で囲んだ文字列を指定する必要があります。

- interpolationMethod (interpolationMethod=NNなど): 内挿方法を指定します。NN(元のGeoRasterオブジェクトで最も近いセルの値)、BILINEAR(元のGeoRasterオブジェクトで最も近い4個のセルを距離で重み付けした平均)、AVERAGE4(元のGeoRasterオブジェクトで最も近い4個のセルの単純平均)、AVERAGE16(元のGeoRasterオブジェクトで最も近い16個のセルの単純平均)、またはCUBIC(元のGeoRasterオブジェクトで最も近い16個のセルの3次畳込み)のいずれかを指定する必要があります。

- nodata(nodata=TRUEなど): プロシージャでの処理中にNODATA値およびその値の範囲を考慮するかどうかを指定します。TRUE(NODATA値およびその値の範囲を考慮する)またはFALSE(NODATA値およびその値の範囲を考慮しない)のいずれかを指定します。デフォルト値はFALSEです。この値がTRUEで、内挿方法がBILINEAR、AVERAGE4、AVERAGE16またはCUBICの場合、内挿の計算に含まれるセル値がNODATA値であると、内挿の結果も常にNODATA値になります。複数のNODATA値または値の範囲が存在する場合、結果のNODATA値は、現行のラスター・レイヤーに関連付けられているNODATA値の最小値になります。

interpolationMethodを'interpolationMethod=NN'に指定した場合、このファンクションはSDO_GEOR.getCellValueファンクションをコールした場合と同じになります。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTER列)の指定した場所のラスター値を戻します(GEORASTER_TABLE表の定義は、1.4.1項の例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.

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オブジェクトのサブセットのエクスポート用)を指定します。形式および使用方法については1.4.1項を参照してください(ただし、その項で示すキーワードの中には、このプロシージャには適用されないものもあります)。サポートされているキーワードは、次のとおりです。

- pLevel: エクスポートするピラミッド・レベルを指定します。デフォルト値は0(ゼロ)です。

- cropArea: cropArea = (startRow, startCol, endRow, endCol)という形式でエクスポートする領域を指定します。これは、エクスポートする矩形ウィンドウの左上の座標(startRow、startCol)と右下の座標(endRow、endCol)を識別することで、ラスター空間が想定されます。cropAreaを指定しない場合は、イメージ全体がエクスポートされます。

- layerNumbers: エクスポートするレイヤーのレイヤー番号を指定します。たとえば、layerNumbers=(3-5)の場合はレイヤー3、4および5がエクスポートされ、layerNumbers=(1,3,5)の場合はレイヤー1、3および5がエクスポートされます。

r_destFormat

ラスターの宛先の形式を指定します。TIFF、BMP、GeoTIFFまたはPNGのいずれかを指定する必要があります。(JPEGおよびGIFは、このプロシージャではサポートされていません。)

r_destType

エクスポート操作の宛先のタイプを指定します。FILEを指定する必要があります。

r_destName

r_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エクスポータ・ツールを使用します(1.14項を参照)。

このプロシージャは、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ライブラリの詳細は、3.5項を参照してください。

このプロシージャをコールするには、出力ファイルまたはファイルを含めるディレクトリに対する書込み権限が必要です。次の例(ユーザー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;
/

SDO_GEOR.generateBlockMBR

構文

SDO_GEOR.generateBlockMBR(

georaster IN SDO_GEORASTER);

説明

GeoRasterオブジェクトの各ブロックの最小境界矩形(MBR)を算出し、ラスター・データ表内の各ラスター・ブロックのblockMBR属性を設定します。

パラメータ

georaster

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

使用上の注意

このプロシージャは、GeoRasterオブジェクトの変更は行いません。GeoRasterオブジェクトに関連付けられたラスター・データ表に含まれる各行のblockMBR属性(2.2.6項を参照)に値が設定されます。

3.2項の説明に従って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;
/

SDO_GEOR.generatePyramid

構文

SDO_GEOR.generatePyramid(

georaster IN OUT SDO_GEORASTER,

pyramidParams IN VARCHAR2,

bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);

説明

ピラミッド・データを生成して、元のデータとともに格納します。

パラメータ

georaster

ピラミッド・データを生成して格納するGeoRasterオブジェクトを指定します。

pyramidParams

ピラミッド・パラメータを含む文字列を指定します。使用可能なキーワードおよび値については、「使用上の注意」を参照してください。

bgValues

部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(1.4.4項を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。

入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。

使用上の注意

ピラミッド・データの詳細は、1.7項を参照してください。

pyramidParamsには、次の1つ以上のキーワードにそれぞれ適切な値を指定して、それらを引用符で囲んだ文字列を指定する必要があります。

- rLevel (rLevel=2など): 最大縮小レベルを指定します。元のオブジェクトより小さい(縮小した)サイズで作成する場合に使用するピラミッド・レベルの数値を指定します。このキーワードを指定しない場合、ピラミッド・レベルは、行または列の数の少ない方が64から128になるまで生成されます。低い解像度レベルでの各次元サイズは、その次に高い解像度レベルでの次元サイズを2で割って切り捨てた整数値と同じになります。

- resampling (resampling=NNなど): リサンプリング・メソッドを指定します。NN(元のGeoRasterオブジェクトで最も近いセルの値)、BILINEAR(元のGeoRasterオブジェクトで最も近い4個のセルを距離で重み付けした平均)、AVERAGE4(元のGeoRasterオブジェクトで最も近い4個のセルの単純平均)、AVERAGE16(元のGeoRasterオブジェクトで最も近い16個のセルの単純平均)、またはCUBIC(元のGeoRasterオブジェクトで最も近い16個のセルの3次畳込み)のいずれかを指定する必要があります。

- nodata(nodata=TRUEなど): プロシージャでの処理中にNODATA値およびその値の範囲を考慮するかどうかを指定します。TRUE(NODATA値およびその値の範囲を考慮する)またはFALSE(NODATA値およびその値の範囲を考慮しない)のいずれかを指定します。デフォルト値はFALSEです。この値がTRUEで、リサンプリング・メソッドがBILINEAR、AVERAGE4、AVERAGE16またはCUBICの場合、リサンプリングの計算に含まれるセル値が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;
/

SDO_GEOR.generateSpatialExtent

構文

SDO_GEOR.generateSpatialExtent(

georaster IN SDO_GEORASTER,

height IN NUMBER DEFAULT NULL

) RETURN SDO_GEOMETRY;

説明

GeoRasterオブジェクトの空間エクステント(フットプリント)を含む空間ジオメトリを生成します。

パラメータ

georaster

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

height

3次元(X, Y, Z)の地理参照で使用するZの値を指定します。

使用上の注意

戻されるSDO_GEOMETRYオブジェクトは、GeoRasterオブジェクトのモデル座標系に基づいています。GeoRasterオブジェクトが地理参照されていない場合、SDO_GEOMETRYオブジェクトのSDO_SRID値はNULLであり(つまり、フットプリント・ジオメトリはセル空間にある)、地理参照されている場合は、SDO_GEOMETRYオブジェクトのSDO_SRID値はモデルSRIDになります。具体的には次のようになります。

- GeoRasterオブジェクトが地理参照されていない場合、またはモデル座標系が投影座標の場合、空間エクステント・オブジェクトは8つの境界点から導出される単一のポリゴンです。

- モデル座標系が測地座標系の場合、空間エクステントはオブジェクトの空間フットプリントに応じて圧縮されます。フットプリントの領域が地表面積の半分以下の場合、結果は単一の測地ポリゴンです。それ以外の場合、生成された空間エクステント・オブジェクトとして測地MBRが戻され、この戻されたオブジェクトはOracle Spatialの検証ルールに従って無効なジオメトリになりますが、索引および問合せ操作はこの戻されたオブジェクトで動作します。

フットプリントは、モデル空間の領域全体を含むように、GeoRasterオブジェクトのモデル座標の位置(CENTERまたはUPPERLEFT)に基づいて自動的に調整されます。地理参照ではない場合、CENTERがモデル座標の位置のデフォルトです。

モデル座標系が3次元の場合、生成される空間エクステントは3次元のジオメトリです。生成された値に基づいて空間索引を作成するには、索引をGeoRasterオブジェクトのspatialExtent属性に保存する前に、2次元のジオメトリに変換する必要があります。異なる次元間の変換については、『Oracle Spatial開発者ガイド』を参照してください。

このファンクションはGeoRasterオブジェクトの空間エクステントを設定しません(2.1.2項に示すspatialExtent属性を参照)。空間エクステントの設定の詳細は、3.6項を参照してください。

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.4.1項の例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))

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;

説明

1つ以上のレイヤーに関連付けられた統計データを計算および設定します。

パラメータ

georaster

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

samplingFactor

サンプリング係数として、1/(n*n)の分母nを'samplingFactor=n'の書式で指定します。この値は、統計の算出時に行次元と列次元の両方でスキップするセルの数を表します。たとえば、samplingFactorが4の場合はセルの16分の1が統計の算出に使用されますが、samplingFactorが1の場合はすべてのセルが統計の算出に使用されます。この数値が大きくなるほど統計の精度は下がる可能性がありますが、統計算出の速度は速くなります。

samplingWindow

サンプリング・ウィンドウ: 統計を設定する矩形ウィンドウを指定します。左下と右上の座標を含む数値配列か、SDO_GEOMETRYオブジェクトとして指定します。SDO_NUMBER_ARRAY型はVARRAY(1048576) OF NUMBERとして定義されます。ウィンドウは、セル空間のエクステント内に収まっている必要があります。このパラメータのデフォルトはイメージ全体です。

数値配列またはSDO_GEOMETRYオブジェクトとして指定される、統計を生成するサンプリング・ウィンドウを指定します。データ型が(VARRAY(1048576) OF NUMBERとして定義された) SDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合、それはモデル空間にあるとラスター空間に変換され、ラスター空間のジオメトリ・オブジェクトの最小境界矩形(MBR)がウィンドウとして使用されます。デフォルト値はイメージ全体です。どちらの場合も、ラスター空間のサンプリング・ウィンドウのMBRとラスター空間のGeoRasterオブジェクトのMBRの共通部分が統計の計算に使用されます。

histogram

ヒストグラムの算出と格納を行う場合はTRUEを指定し、ヒストグラムの算出と格納を行わない場合はFALSEを指定します。ヒストグラムについては、2.3.1項を参照してください。<histogram>要素のXML定義およびhistogramType複合型は、付録Aに含まれています。

layerNumbers

統計を算出するレイヤーの番号を指定します。このパラメータは文字列で指定し、数値、ハイフン(-)で示した数値の範囲、および数値と数値の範囲を区切るカンマを使用できます。たとえば、'1,3-5,7'はレイヤー1、3、4、5および7を示します。レイヤー0(ゼロ)はオブジェクト・レイヤーを示します。

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値およびその値の範囲については、1.9項を参照してください。

使用上の注意

このファンクションは、GeoRasterメタデータのXMLスキーマ(付録Aを参照)の<statisticDatasetType>要素によって記述された統計データを算出および設定します。

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定義については、付録Aを参照してください。)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の場合、このファンクションでは次のようにビン・ファンクションが使用されます。

1. binFunctionパラメータで有効なビン・ファンクションが指定されている場合は、そのファンクションが使用されます。

2. それ以外の場合で、GeoRasterメタデータに有効なビン・ファンクションが定義されていれば、そのファンクションが使用されます。

3. 前述のいずれでもない場合、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;
/

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,

) 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,

) RETURN SDO_NUMBER_ARRAY;

または

SDO_GEOR.georeference(

georaster IN OUT SDO_GEORASTER,

FFMethodType IN VARCHAR2,

srid IN NUMBER DEFAULT NULL,

modelCoordinateLocation IN NUMBER 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で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コレクション(2.3.7項を参照)。

storeGCP

GCPをGeoRasterメタデータに格納する必要があるかどうかを示すフラグを指定します。文字列TRUE (デフォルト)では、GeoRasterメタデータに点が格納されますが、文字列FALSEではGeoRasterメタデータに点が格納されません。

使用上の注意

プロシージャ構文の注意

このプロシージャは、既存のアフィン変換に基づいてGeoRasterオブジェクトを地理参照する場合に使用します。地理参照については、1.6項および3.5項を参照してください。

このプロシージャでは、ソース・データ(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ローダー・ツール(1.14項を参照): 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を使用した地理参照の詳細は、1.6.2項を参照してください。

例

次の例では、アフィン変換の係数を直接使用してセルからモデルへ変換し、GeoRasterオブジェクトを地理参照します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は1.4.1項の例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;
/

SDO_GEOR.getBandDimSize

構文

SDO_GEOR.getBandDimSize(

georaster IN SDO_GEORASTER

) RETURN NUMBER;

説明

GeoRasterオブジェクトのバンド数を戻します。

パラメータ

georaster

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

使用上の注意

バンドの詳細は、1.5項を参照してください。

georasterまたはそのメタデータがNULLの場合、このファンクションはNULL値を戻します。

例

次の例では、GeoRasterオブジェクトの空間次元サイズおよびバンド数(この例では1)を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は1.4.1項の例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

SDO_GEOR.getBeginDateTime

構文

SDO_GEOR.getBeginDateTime(

georaster IN SDO_GEORASTER

) RETURN TIMESTAMP WITH TIME ZONE;

説明

GeoRasterオブジェクトのメタデータから、ラスター・データ収集の開始日時を戻します。

パラメータ

georaster

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

使用上の注意

GeoRasterオブジェクトのメタデータで、ラスター・データ収集の開始日時を設定するには、SDO_GEOR.setBeginDateTimeプロシージャを使用します。

georasterまたはそのメタデータがNULLの場合、このファンクションはNULL値を戻します。

例

次の例では、GEORASTER_TABLEという表で、値4のGEORID列に含まれているGeoRasterオブジェクトのメタデータから、ラスター・データ収集の開始日時および終了日時を戻します。(GEORASTER_TABLE表の定義は、1.4.1項の例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

SDO_GEOR.getBinFunction

構文

SDO_GEOR.getBinFunction(

georaster IN SDO_GEORASTER,

layerNumber IN NUMBER

) RETURN SDO_NUMBER_ARRAY;

説明

レイヤーに関連付けられたビン・ファンクションを取得します。

パラメータ

georaster

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

layerNumber

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

使用上の注意

このファンクションは、ビン・タイプ、ビンの合計数、最初のビン番号、最小セル値および最大セル値を指定する要素を含む配列として、ビン・ファンクションを戻します。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)

SDO_GEOR.getBinTable

構文

SDO_GEOR.getBinTable(

georaster IN SDO_GEORASTER,

layerNumber IN NUMBER

) RETURN VARCHAR2;

説明

レイヤーに関連付けられたビン表の名前を戻します。

注意:
今回のリリースのGeoRasterでは、ビン表を使用した操作は実行されません。

パラメータ

georaster

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

layerNumber

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

使用上の注意

このファンクションは、ビン・タイプがEXPLICITの場合にのみ有効です。ビン・タイプを取得するには、SDO_GEOR.getBinTypeファンクションを使用します。

レイヤーにビン表を指定するには、SDO_GEOR.setBinTableプロシージャを使用します。

SDO_GEOR.getBinTypeファンクションの「使用上の注意」も参照してください。

georasterまたはそのメタデータがNULLの場合、このファンクションはNULL値を戻します。

layerNumberがNULL、負、またはレイヤーの最大番号より大きい値の場合、例外が発生します。

例

次の例では、GEORASTER_TABLEという表で、指定されたGeoRasterオブジェクトのレイヤー番号4のビン表の名前を戻します。GEORASTER_TABLE表の定義は1.4.1項の例1-1の次に説明されています。

SELECT sdo_geor.getBinTable(georaster, 4) FROM georaster_table WHERE georid=4;

SDO_GEOR.getBinType

構文

SDO_GEOR.getBinType(

georaster IN SDO_GEORASTER,

layerNumber IN NUMBER

) RETURN VARCHAR2;

説明

レイヤーに関連付けられたビン・タイプを戻します。

パラメータ

georaster

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

layerNumber

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

使用上の注意

このファンクションは、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.4.1項の例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

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

記憶域パラメータを示す文字列を指定します(1.4.1項を参照)。

mask

ビットマップ・マスクを格納する結果のGeoRasterオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、1.4.3項を参照してください。)入力されたGeoRasterオブジェクト(georasterパラメータ)と同じGeoRasterオブジェクトは指定できません。

使用上の注意

指定したGeoRasterオブジェクトのレイヤーにビットマップ・マスクが関連付けられていない場合、結果のGeoRasterオブジェクトは更新されません。

storageParamパラメータがNULLの場合、結果のGeoRasterオブジェクトのcelldepth値は1BITセル深度になり、圧縮タイプはDEFLATEになり(入力されたGeoRasterオブジェクトが圧縮されている場合)、インターリーブ・タイプおよびブロック・サイズは入力されたGeoRasterオブジェクトと同じになります。また、入力されたGeoRasterオブジェクトにピラミッドが作成されている場合は、すべてのビットマップ・マスク・ピラミッドも含まれます。

ビットマップ・マスクには、空のラスター・ブロック(1.4.4項を参照)が含まれる場合があります。再ブロック化により部分的に空のラスター・ブロックが発生する場合、空のラスター・ブロックから導出されて部分的に空になるブロックのセルには、値0(ゼロ)が埋め込まれます。

ビットマップ・マスクの詳細は、1.8項を参照してください。

例

次の例では、指定した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;
/

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のみで、他のキーワードはすべて無視されます。記憶域パラメータについては、1.4.1項を参照してください。

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値が異なる場合は、処理が実行される前に、ジオメトリ・パラメータは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、1.3項を参照してください。)

windowパラメータで測地MBRを指定する場合、日付変更線をまたぐMBRは指定できません。測地MBRについては、『Oracle Spatial開発者ガイド』を参照してください。

プロシージャが完了すると、rasterBLOBパラメータには、タイル処理されていないクロッピング済のウィンドウのセル(ピクセル)データが含まれます。クロッピング済のウィンドウとは、処理対象として指定したウィンドウとソースGeoRasterオブジェクトの空間エクステントが重複する部分のことです。outWindowパラメータを指定した場合は、プロシージャが完了すると、セル空間内のクロッピング済のウィンドウの座標がそのパラメータに含まれます。

ビットマップ・マスクには、空のラスター・ブロック(1.4.4項を参照)が含まれる場合があります。空のラスター・ブロックから導出される出力ウィンドウ内のすべてのセルは、出力のBLOBでは値0(ゼロ)が埋め込まれます。

BLOBには埋込みがありません。ただし、セル深度が8ビットより小さく、出力に必要なビット数の合計が8で除算できない場合を除きます。このような場合は、通常の埋込みとは異なり、結果の最後のバイトでのみ、後続のビットに対し0(ゼロ)が埋め込まれます。

入力されたGeoRasterオブジェクトが圧縮されているかどうかに関係なく、圧縮を指定できます。圧縮済の入力されたGeoRasterオブジェクトに対して、解凍された出力を得るには、storageParamパラメータでcompression=NONEを指定します。GeoRasterの圧縮および解凍の詳細は、1.10項を参照してください。

ビットマップ・マスクの詳細は、1.8項を参照してください。

例

次の例では、指定した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;
/

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

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

layerNumber

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

pyramidLevel

指定したセルを含むピラミッド・レベルを指定します。

rowNumber

セル空間内の行番号を指定します。

colNumber

セル空間内の列番号を指定します。

ptGeom

セル空間またはモデル空間内の点ジオメトリを指定します。

使用上の注意

セルを指定するには、行番号と列番号を使用するか、点ジオメトリ・オブジェクトを使用します。

指定したラスター・レイヤーに指定のGeoRasterオブジェクトに関連付けられたビットマップ・マスクがない場合、または指定したセルが空のラスター・ブロックに存在する場合、このファンクションはNULL値を戻します。

ビットマップ・マスクの詳細は、1.8項を参照してください。

例

次の例では、指定した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;

SDO_GEOR.getBlankCellValue

構文

SDO_GEOR.getBlankCellValue(

georaster IN SDO_GEORASTER

) RETURN NUMBER;

説明

指定されたGeoRasterオブジェクトが空白のGeoRasterオブジェクトである場合に、すべてのセルのセル値を戻します。

パラメータ

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

SDO_GEOR.getBlockingType

構文

SDO_GEOR.getBlockingType(

georaster IN SDO_GEORASTER

) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのブロック・タイプを戻します。

パラメータ

georaster

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

使用上の注意

このファンクションは、NONEまたはREGULARのいずれかの値を戻します。

- NONE: GeoRasterオブジェクトはブロック化されていませんが、単一のBLOBオブジェクトです。

- REGULAR: GeoRasterオブジェクトは通常のブロックを使用しています(各ブロックが同じ次元サイズを持ちます)。

georasterまたはそのメタデータがNULLの場合、このファンクションはNULL値を戻します。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTERE列)のセル深度、インターリーブ・タイプ、およびブロック・タイプを戻します。GEORASTER_TABLE表の定義は、1.4.1項の例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

SDO_GEOR.getBlockSize

構文

SDO_GEOR.getBlockSize(

georaster IN SDO_GEORASTER

) RETURN SDO_NUMBER_ARRAY;

説明

GeoRasterオブジェクトの各ブロックに含まれる各次元のセル数を配列で戻します。配列には、各行、列、およびバンド(関連する場合)のセル数が示されます。

パラメータ

georaster

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

使用上の注意

georasterまたはそのメタデータがNULLの場合、あるいはgeorasterがブロック化されていない場合、このファンクションはNULL値を戻します。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTERE列)の各ブロックのセル数(各次元で512)を戻します。GEORASTER_TABLE表の定義は、1.4.1項の例1-1の次に説明されています。

SELECT sdo_geor.getBlockSize(georaster) blockSize
FROM georaster_table WHERE georid=21;

BLOCKSIZE
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(512, 512)

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.4.1項の例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))

SDO_GEOR.getCellDepth

構文

SDO_GEOR.getCellDepth(

georaster IN SDO_GEORASTER

) RETURN NUMBER;

説明

セル深度をビット単位で戻します。

パラメータ

georaster

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

使用上の注意

セル深度によって、イメージの精度およびデータ・サイズが決定されます。セル深度の値が小さくなると、イメージの格納に必要なディスク領域は減少し、セル深度の値が大きくなると、イメージの格納に必要なディスク領域は増加します。

セル深度を、番号のかわりに文字列(32BIT_Sなど)として戻すには、PL/SQLのXMLTypeインタフェースextractを使用します。有効な文字列の値は、GeoRasterメタデータのXMLスキーマでcellDepthTypeの定義に示されています(付録Aを参照)。次の例では、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オブジェクト(GEORASTERE列)のセル深度、インターリーブ・タイプ、およびブロック・タイプを戻します。GEORASTER_TABLE表の定義は、1.4.1項の例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

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.5項で説明したように、論理レイヤー番号は、物理バンド番号に1を足した値です。)

レイヤー

処理を実行する論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、2-4はレイヤー2、3および4を示します)。(1.5項で説明したように、論理レイヤー番号は、物理バンド番号に1を足した値です。)

使用上の注意

このファンクションは、ラスター・オブジェクトに格納されている元のセル値を戻します。このファンクションではセル値の内挿は行われません。(内挿方法を使用して点の位置を評価するには、SDO_GEOR.evaluateDoubleファンクションを使用します。)このファンクションは、メタデータに定義されているスケール変更ファンクション(通常は、元のセル・データを希望する値または値の範囲にスケール変更するために使用)を適用しません。また、ビン・ファンクションも適用しません。スケール変更されたセル値を取得するには、次の手順を実行します。

1. SDO_GEOR.getCellValueファンクションをコールして元のセル値を戻します。

2. SDO_GEOR.getScalingファンクションをコールして、スケール変更ファンクションの係数(a_0、a_1、b_0、b_1)を戻します。

3. PL/SQLまたはその他のプログラミング言語で次の式を使用して、結果を計算します。

value = (a_0 + a_1 * cellvalue) / (b_0 + b_1 * cellvalue)

例

次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTERE列)の4つのセルの値を戻します。GEORASTER_TABLE表の定義は、1.4.1項の例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.4.1項の例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)

SDO_GEOR.getColorMap

構文

SDO_GEOR.getColorMap(

georaster IN SDO_GEORASTER,

layerNumber IN NUMBER

) RETURN SDO_GEOR_COLORMAP;

説明

GeoRasterオブジェクトのレイヤーの疑似カラー表示のカラーマップを戻します。

パラメータ

georaster

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

layerNumber

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

使用上の注意

このファンクションは、SDO_GEOR_COLORMAP型のオブジェクトを戻します。カラーマップおよびこのオブジェクト型については、2.3.2項で説明しています。

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))

SDO_GEOR.getColorMapTable

構文

SDO_GEOR.getColorMapTable(

georaster IN SDO_GEORASTER,

layerNumber IN NUMBER

) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのレイヤーの疑似カラー表示のカラーマップ表を戻します。

注意:
今回のリリースのGeoRasterでは、カラーマップ表を使用した操作は実行されません。

パラメータ

georaster

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

layerNumber

カラーマップ表を戻すレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上の注意

このファンクションは、ユーザー定義のカラーマップ表の名前を戻します。カラーマップの詳細は、2.3.2項を参照してください。

GeoRasterオブジェクトのレイヤーにカラーマップ表を設定するには、SDO_GEOR.setColorMapTableプロシージャを使用します。

georasterまたはそのメタデータがNULLの場合、このファンクションはNULL値を戻します。

layerNumberがNULL、負、またはレイヤーの最大番号より大きい値の場合、例外が発生します。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTERE列)のレイヤー2のカラーマップ表を戻します。GEORASTER_TABLE表の定義は、1.4.1項の例1-1の次に説明されています。

SELECT sdo_geor.getColorMapTable(georaster, 2) FROM georaster_table WHERE georid=4;

SDO_GEOR.GETCOLORMAPTABLE(GEORASTER,2)
--------------------------------------------------------------------------------
CMT1

1 row selected.

SDO_GEOR.getCompressionType

構文

SDO_GEOR.getCompressionType(

georaster IN SDO_GEORASTER

) RETURN VARCHAR2;

説明

GeoRasterオブジェクトの圧縮タイプを戻します。

パラメータ

georaster

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

使用上の注意

このファンクションは、DEFLATE、JPEG-B、JPEG-F、またはGeoRasterオブジェクトが圧縮されていないことを示すNONEを戻します。GeoRasterの圧縮の詳細は、1.10項を参照してください。

例

次の例では、GEORASTER_TABLE表のGeoRasterオブジェクト(GEORASTERE列)の圧縮タイプを戻します。GEORASTER_TABLE表の定義は、1.4.1項の例1-1の次に説明されています。

SELECT georid, substr(sdo_geor.getCompressionType(georaster),1,20) compressionType
FROM georaster_table;

GEORID COMPRESSIONTYPE
---------- --------------------
2 DEFLATE
4 JPEG-B

SDO_GEOR.getControlPoint

構文

SDO_GEOR.getControlPoint (

inGeoraster IN SDO_GEORASTER,

controlPointID IN VARCHAR2

) RETURN SDO_GEOR_GCP;

説明

指定した基準点ID値を持つ地上基準点(GCP)を戻します。

パラメータ

inGeoraster

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

controlPointID

inGeorasterの基準点IDを指定します。32文字以下の文字列である必要があります。

使用上の注意

GCPを使用した地理参照の詳細は、1.6.2項を参照してください。

このファンクションは、SDO_GEOR_GCP型のオブジェクトを戻します(2.3.6項を参照)。

基準点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)

SDO_GEOR.getDefaultBlue

構文

SDO_GEOR.getDefaultBlue(

georaster IN SDO_GEORASTER

) RETURN NUMBER;

説明

GeoRasterオブジェクトを表示する際に、(RGB色空間の)青の色構成要素に使用されるレイヤー番号を戻します。

パラメータ

georaster

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

使用上の注意

デフォルトの赤、緑および青の値は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。これらの値はオプションで、マルチレイヤーまたはハイパースペクトルのGeoRasterオブジェクトを視覚化する場合にのみ使用されます。

SDO_GEOR.getDefaultColorLayerファンクションを使用すると、3つすべての色構成要素(RGB)のレイヤー番号を戻すことができます。

例

次の例では、GEORASTER_TABLEという表でGeoRasterオブジェクトを表示する際に赤、青および緑の色構成要素に使用されるレイヤー番号を戻します。GEORASTER_TABLE表の定義は1.4.1項の例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

SDO_GEOR.getDefaultColorLayer

構文

SDO_GEOR.getDefaultColorLayer(

georaster IN SDO_GEORASTER

) RETURN SDO_NUMBER_ARRAY;

説明

GeoRasterオブジェクトを表示する際に、赤、緑および青の各色構成要素に使用されるデフォルトのレイヤー番号を戻します。

パラメータ

georaster

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

使用上の注意

戻されるRGBレイヤー番号は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。

SDO_GEOR.getDefaultRed、SDO_GEOR.getDefaultGreenおよびSDO_GEOR.getDefaultBlueファンクションを使用すると、各色構成要素(RGB)のレイヤー番号を戻すことができます。

例

次の例では、GEORASTER_TABLE表に含まれるGeoRasterオブジェクト(GEORASTER列)のデフォルトの赤、緑および青の色レイヤーを設定して、それらのGeoRasterオブジェクトを表示する際に赤、緑および青の色構成要素に使用されるレイヤー番号の配列を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は1.4.1項の例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);
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)

1 row selected.

SDO_GEOR.getDefaultGreen

構文

SDO_GEOR.getDefaultGreen(

georaster IN SDO_GEORASTER

) RETURN NUMBER;

説明

GeoRasterオブジェクトを表示する際に、(RGB色空間の)緑の色構成要素に使用されるレイヤー番号を戻します。

パラメータ

georaster

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

使用上の注意

デフォルトの赤、緑および青の値は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。これらの値はオプションで、マルチレイヤーまたはハイパースペクトルのGeoRasterオブジェクトを視覚化する場合にのみ使用されます。

SDO_GEOR.getDefaultColorLayerファンクションを使用すると、3つすべての色構成要素(RGB)のレイヤー番号を戻すことができます。

例

次の例では、GEORASTER_TABLEという表でGeoRasterオブジェクトを表示する際に赤、青および緑の色構成要素に使用されるレイヤー番号を戻します。GEORASTER_TABLE表の定義は1.4.1項の例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

SDO_GEOR.getDefaultRed

構文

SDO_GEOR.getDefaultRed(

georaster IN SDO_GEORASTER

) RETURN NUMBER;

説明

GeoRasterオブジェクトを表示する際に、(RGB色空間の)赤の色構成要素に使用されるレイヤー番号を戻します。

パラメータ

georaster

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

使用上の注意

デフォルトの赤、緑および青の値は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。これらの値はオプションで、マルチレイヤーまたはハイパースペクトルのGeoRasterオブジェクトを視覚化する場合にのみ使用されます。

SDO_GEOR.getDefaultColorLayerファンクションを使用すると、3つすべての色構成要素(RGB)のレイヤー番号を戻すことができます。

例

次の例では、GEORASTER_TABLEという表でGeoRasterオブジェクトを表示する際に赤、青および緑の色構成要素に使用されるレイヤー番号を戻します。GEORASTER_TABLE表の定義は1.4.1項の例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

SDO_GEOR.getEndDateTime

構文

SDO_GEOR.getEndDateTime(

georaster IN SDO_GEORASTER

) RETURN TIMESTAMP WITH TIME ZONE;

説明

GeoRasterオブジェクトのメタデータから、ラスター・データ収集の終了日時を戻します。

パラメータ

georaster

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

使用上の注意

GeoRasterオブジェクトのメタデータで、ラスター・データ収集の終了日時を設定するには、SDO_GEOR.setEndDateTimeプロシージャを使用します。

georasterまたはそのメタデータがNULLの場合、このファンクションはNULL値を戻します。

例

次の例では、GEORASTER_TABLEという表で、値4のGEORID列に含まれているGeoRasterオブジェクトのメタデータから、ラスター・データ収集の開始日時および終了日時を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は1.4.1項の例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

SDO_GEOR.getGCPGeorefMethod

構文

SDO_GEOR.getGCPGeorefMethod(

inGeoraster IN SDO_GEORASTER

) RETURN VARCHAR2;

説明

GeoRasterオブジェクトの地上基準点(GCP)ベースの地理参照ジオメトリ・モデル・タイプを戻します。

パラメータ

inGeoraster

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

使用上の注意

GCPを使用した地理参照の詳細は、1.6.2項を参照してください。

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

SDO_GEOR.getGCPGeorefModel

構文

SDO_GEOR.getGCPGeorefModel(

inGeoraster IN SDO_GEORASTER

) RETURN SDO_GEOR_GCPGEOREFTYPE;

説明

GeoRasterオブジェクトの地上基準点(GCP)ベースの地理参照モデルに関するすべての情報を戻します。

パラメータ

inGeoraster

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

使用上の注意

GCPを使用した地理参照の詳細は、1.6.2項を参照してください。

SDO_GEOR_GCPGEOREFTYPEオブジェクト型は、2.3.8項で定義されています。

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)

SDO_GEOR.getGeoreferenceType

構文

SDO_GEOR.getGeoreferenceType(

georaster IN SDO_GEORASTER

) RETURN NUMBER;

説明

GeoRasterオブジェクトの地理参照タイプを示す番号を戻します。

パラメータ

georaster

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

使用上の注意

このファンクションでは、地理参照タイプを示す次のいずれかの番号が戻されます。種類が不明かNULLのGeoRasterオブジェクトの場合は1、アフィン変換の場合は2、DLT (Direct Linear Transform)の場合は3、RPC (Rational Polynomial Coefficient)の場合は4、三次多項式の場合は5、二次有理多項式の場合は6、二次多項式の場合は7です。

地理参照の詳細は、1.6項を参照してください。

例

次の例では、GEORASTER_TABLEという表名のGeoRasterオブジェクトの地理参照タイプを戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は1.4.1項の例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

SDO_GEOR.getGrayScale

構文

SDO_GEOR.getGrayScale(

georaster IN SDO_GEORASTER,

layerNumber IN NUMBER

) RETURN SDO_GEOR_GRAYSCALE;

説明

GeoRasterオブジェクトのレイヤーのグレースケール・マッピングを戻します。

パラメータ

georaster

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

layerNumber

グレースケール・マッピングを戻すレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上の注意

このファンクションは、SDO_GEOR_GRAYSCALE型のオブジェクトを戻します。グレースケール表示およびこのオブジェクト型については、2.3.3項で説明しています。

GeoRasterオブジェクトのレイヤーにグレースケール・マッピングを設定するには、SDO_GEOR.setGrayScaleプロシージャを使用します。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が0である行に含まれているGeoRasterオブジェクト(GEORASTERE列)のレイヤー0のグレースケール・マッピングを戻します。GEORASTER_TABLE表の定義は、1.4.1項の例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))

SDO_GEOR.getGrayScaleTable

構文

SDO_GEOR.getGrayScaleTable(

georaster IN SDO_GEORASTER,

layerNumber IN NUMBER

) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのレイヤーのグレースケール・マッピング表を戻します。

注意:
今回のリリースのGeoRasterでは、グレースケール・マッピング表を使用した操作は実行されません。

パラメータ

georaster

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

layerNumber

グレースケール・マッピング表を戻すレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上の注意

このファンクションは、ユーザー定義のグレースケール表の名前を戻します。グレースケール表示の詳細は、2.3.3項を参照してください。

GeoRasterオブジェクトのレイヤーにグレースケール・マッピング表を設定するには、SDO_GEOR.setGrayScaleTableプロシージャを使用します。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー0、1、2および3のグレースケール・マッピング表を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は1.4.1項の例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

SDO_GEOR.getHistogram

構文

SDO_GEOR.getHistogram(

georaster IN SDO_GEORASTER,

layerNumber IN NUMBER

) RETURN SDO_GEOR_HISTOGRAM;

説明

GeoRasterオブジェクトのレイヤーのヒストグラムを戻します。

パラメータ

georaster

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

layerNumber

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

使用上の注意

このファンクションは、SDO_GEOR_HISTOGRAM型のオブジェクトを戻します。このオブジェクト型およびヒストグラムの概要は、2.3.1項で説明しています。

例

次の例では、GEORASTER_TABLE表に含まれている、4ビットGeoRasterオブジェクトのレイヤー1のヒストグラムを戻します。GEORASTER_TABLE表の定義は、1.4.1項の例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))

SDO_GEOR.getHistogramTable

構文

SDO_GEOR.getHistogramTable(

georaster IN SDO_GEORASTER,

layerNumber IN NUMBER

) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのレイヤーのヒストグラム表を戻します。

注意:
今回のリリースのGeoRasterでは、ヒストグラム表を使用した操作は実行されません。

パラメータ

georaster

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

layerNumber

ヒストグラム表の名前を戻すレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上の注意

このファンクションは、ユーザー定義のヒストグラム表を戻します。ヒストグラムの概要は、2.3.1項を参照してください。

レイヤーにヒストグラム表の名前を設定するには、SDO_GEOR.setHistogramTableプロシージャを使用します。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー0 (オブジェクト全体)、1、2および3のヒストグラム表を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は1.4.1項の例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

SDO_GEOR.getID

構文

SDO_GEOR.getID(

georaster IN SDO_GEORASTER

) RETURN VARCHAR2;

説明

GeoRasterオブジェクトに関連付けられたユーザー定義の識別子の値を戻します。

パラメータ

georaster

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

使用上の注意

GeoRasterオブジェクトにユーザー定義の識別子の値を設定するには、SDO_GEOR.setIDプロシージャを使用します。

例

次の例では、GEORASTER_TABLE表のGeoRasterオブジェクト(GEORASTERE列)のユーザー定義の識別子の値を戻します。GEORASTER_TABLE表の定義は、1.4.1項の例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

SDO_GEOR.getInterleavingType

構文

SDO_GEOR.getInterleavingType(

georaster IN SDO_GEORASTER

) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのインターリーブ・タイプを戻します。

パラメータ

georaster

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

使用上の注意

このファンクションは、BSQ(順次バンド)、BIL(ライン単位のバンドのインターリーブ)またはBIP(ピクセル単位のバンドのインターリーブ)のいずれかの値を戻します。

GeoRasterオブジェクトのインターリーブ・タイプを変更するには、SDO_GEOR.changeFormatCopyプロシージャを使用し、storageParamパラメータ文字列でinterleavingキーワードを使用します。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTERE列)のセル深度、インターリーブ・タイプ、およびブロック・タイプを戻します。GEORASTER_TABLE表の定義は、1.4.1項の例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

SDO_GEOR.getLayerDimension

構文

SDO_GEOR.getLayerDimension(

georaster IN SDO_GEORASTER

) RETURN SDO_STRING_ARRAY;

説明

GeoRasterオブジェクトの論理レイヤー次元としてマップされた次元を戻します。

パラメータ

georaster

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

使用上の注意

レイヤー次元とは、論理的な概念であるレイヤーに関連付けられた物理エンティティを指します。今回のリリースでサポートされているレイヤー次元は、BANDのみです。つまり、論理的な概念であるレイヤーは、物理的な用語であるバンドに関連付けられています(1.5項の図1-5を参照)。この場合、レイヤーはBAND次元にマップされるため、最初のレイヤーはバンド0、2番目のレイヤーはバンド1のようになります。

例

次の例では、GEORASTER_TABLE表の各GeoRasterオブジェクト(GEORASTER列)のレイヤー次元を戻します。GEORASTER_TABLE表の定義は、1.4.1項の例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')

SDO_GEOR.getLayerID

構文

SDO_GEOR.getLayerID(

georaster IN SDO_GEORASTER,

layerNumber IN NUMBER

) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのレイヤーに関連付けられたユーザー定義の識別子の値を戻します。

パラメータ

georaster

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

layerNumber

ユーザー定義の識別子の値を戻すレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上の注意

GeoRasterオブジェクトのレイヤーにユーザー定義の識別子の値を設定するには、SDO_GEOR.setLayerIDプロシージャを使用します。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTERE列)のレイヤー0、1、2および3のユーザー定義の識別子の値を戻します。GEORASTER_TABLE表の定義は、1.4.1項の例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

SDO_GEOR.getLayerOrdinate

構文

SDO_GEOR.getLayerOrdinate(

georaster IN SDO_GEORASTER,

layerNumber IN NUMBER

) RETURN NUMBER;

説明

GeoRasterオブジェクトのレイヤーのバンド座標を戻します。

パラメータ

georaster

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

layerNumber

物理バンドの座標を戻すレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上の注意

戻される番号は、レイヤー(layerNumberパラメータ値)が関連付けられている物理バンドを指します。今回のリリースのデフォルトでは、関連付けは、レイヤー1がバンド0、レイヤー2がバンド1のようになります(1.5項の図1-5を参照)。

レイヤーにバンド座標の値を設定するには、SDO_GEOR.setLayerOrdinateプロシージャを使用します。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTERE列)のレイヤー0、1、2および3に関連付けられているバンド番号を戻します。GEORASTER_TABLE表の定義は、1.4.1項の例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

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.4.1項の例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)

SDO_GEOR.getModelCoordLocation

構文

SDO_GEOR.getModelCoordLocation(

georaster IN SDO_GEORASTER

) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのモデル座標の位置を示す値を戻します。

パラメータ

georaster

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

使用上の注意

GeoRasterオブジェクトが地理参照されていない場合、またはmodelCoordinateLocation要素がSRSメタデータに指定されていない場合、このファンクションはNULL値を戻します。それ以外の場合は、SRSメタデータに指定されたmodelCoordinateLocation要素の値を戻します。

戻された値がNULLまたはCENTERの場合は、中心を基準にしたセル座標系であることを示します。値がUPPERLEFTの場合は、左上角を基準にしたセル座標系であることを示します。

GeoRasterオブジェクトのモデル座標の位置の値を設定または削除するには、SDO_GEOR.setModelCoordLocationプロシージャを使用します。

GCPを使用した地理参照の詳細は、1.6.2項を参照してください。

例

次の例では、指定したGeoRasterオブジェクトのモデル座標位置を戻します。

SELECT sdo_geor.getModelCoordLocation(georaster) modelCoordLocation
FROM georaster_table
WHERE georid = 1;

SDO_GEOR.getModelSRID

構文

SDO_GEOR.getModelSRID(

georaster IN SDO_GEORASTER

) RETURN NUMBER;

説明

GeoRasterオブジェクトのモデル(地上)空間に関連付けられた座標系(SDO_SRID値)を戻します。

パラメータ

georaster

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

使用上の注意

座標系がモデル空間に関連付けられていない場合、このファンクションはNULL値を戻します。

モデル空間に関連付けられた座標系(SDO_SRID値)を設定するには、SDO_GEOR.setModelSRIDプロシージャを使用します。

例

次の例では、GEORASTER_TABLE表のGeoRasterオブジェクト(GEORASTERE列)に関連付けられているSDO_SRID値を戻します。GEORASTER_TABLEE表の定義は、1.4.1項の例1-1の次に説明されています。

SELECT georid, sdo_geor.getModelSRID(georaster) SRID FROM georaster_table;

GEORID       SRID
---------- ----------
2       82394
4       82394

SDO_GEOR.getNODATA

構文

SDO_GEOR.getNODATA(

georaster IN SDO_GEORASTER

) RETURN NUMBER;

または

SDO_GEOR.getNODATA(

georaster IN SDO_GEORASTER,

layerNumber IN NUMBER

) RETURN SDO_RANGE_ARRAY;

説明

GeoRasterオブジェクト内のNODATAセルを表す値または値の範囲を(重複値を除いて昇順に)戻します。

パラメータ

georaster

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

layerNumber

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

使用上の注意

注意:
最初の(数値を戻す)構文は非推奨であり、今後のリリースではサポートされなくなる予定です。2つ目の(SDO_RANGE_ARRAYオブジェクトを戻す)構文を使用することをお薦めします。

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

このファンクションは、指定したGeoRasterオブジェクトの指定したラスター・レイヤーに関連付けられたすべてのNODATA値およびその値の範囲を、重複を除いた簡潔な形式で昇順で戻します。サブレイヤー(layerNumber > 0)に関連付けられたNODATA値およびその値の範囲のセットは、常にオブジェクト・レイヤー(layerNumber = 0)の値およびその値の範囲のスーパーセットになります。サブレイヤーの結果は、指定したサブレイヤー、オブジェクト・レイヤー、およびラスター定義情報の一部として格納されたリリース11g より前のすべてのNODATAメタデータに対するNODATAメタデータ・エントリを組み合せたものになります。

指定したGeoRasterオブジェクトまたはレイヤーに複数のNODATA値が含まれる場合は、SDO_RANGE_ARRAYオブジェクトを戻すファンクション構文を使用してください。SDO_RANGE_ARRAY型の詳細は、1.9項を参照してください。

このファンクションがNULL値を戻す場合、GeoRasterオブジェクトまたは指定したレイヤーのすべてのセルが定義済であり、有効なセル値を持つことを示します。

GeoRasterオブジェクトにNODATA値を指定するには、SDO_GEOR.addNODATAプロシージャを使用します。

例

次の例では、GEORASTER_TABLE表のGeoRasterオブジェクト(GEORASTERE列)のNODATAセルで使用されている値を戻します。GEORASTER_TABLE表の定義は、1.4.1項の例1-1の次に説明されています。

SELECT SDO_GEOR.getNODATA(georaster, 0) NODATA FROM georaster_table WHERE georid=0;

NODATA
------------
SDO_RANGE_ARRAY(SDO_RANGE(5,7))

SDO_GEOR.getPyramidMaxLevel

構文

SDO_GEOR.getPyramidMaxLevel(

georaster IN SDO_GEORASTER

) RETURN NUMBER;

説明

GeoRasterオブジェクトのピラミッドの最上位レベルの番号を戻します。

パラメータ

georaster

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

使用上の注意

ピラミッドの詳細は、1.7項を参照してください。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTERE列)のピラミッド・タイプおよびピラミッドの最上位レベル番号を戻します。GEORASTER_TABLE表の定義は、1.4.1項の例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

SDO_GEOR.getPyramidType

構文

SDO_GEOR.getPyramidType(

georaster IN SDO_GEORASTER

) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのピラミッド・タイプを戻します。

パラメータ

georaster

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

使用上の注意

ピラミッド・タイプは、NONE(ピラミッドが存在しない)またはDECREASEのいずれかです。

ピラミッドの詳細は、1.7項を参照してください。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTERE列)のピラミッド・タイプおよびピラミッドの最上位レベル番号を戻します。GEORASTER_TABLE表の定義は、1.4.1項の例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

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);

説明

指定されたラスター・ブロックのLOBロケータを取得します。

パラメータ

georaster

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

pyramidLevel

ブロックのピラミッド・レベルを指定します。

bandBlockNumber

ブロックのバンド番号を指定します。

rowBlockNumber

ブロックの行番号を指定します。

columnBlockNumber

ブロックの列番号を指定します。

loc

LOBロケータを指定します。

isBitmapMask

ビットマップ・マスク・ブロックにアクセスする場合は文字列TRUEを指定します。通常のラスター・ブロックにアクセスする場合は文字列FALSEを指定します。このパラメータを指定しない場合は、通常のラスター・ブロックにアクセスします。ビットマップ・マスクの詳細は、1.8項を参照してください。

lockForWrite

文字列TRUEを指定すると、ラスター・データ表の行がロックされ、現行のトランザクションが終了するまで、他のユーザーはその行をロックしたり更新することができなくなります。文字列FALSEを指定すると、ラスター・データ表の行はロックされません。このパラメータを指定しない場合、行はロックされません。

使用上の注意

このプロシージャは、指定されたパラメータを使用してラスター・ブロック・ロケータを取得します。LOBロケータはオープンされず、データの読取りや処理は行われません。LOBロケータのオープンおよびクローズ、LOBロケータからのデータの読取りおよびLOBロケータへのデータの書込みには、標準のLOB操作を使用する必要があります。

データの読取りまたは書込みが正しく行われるようにするには、ラスター・データの物理記憶域(1.4項を参照)を理解しておく必要があります。また、必要に応じてラスター・データを圧縮および解凍する必要があります。

LOBロケータについては、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください。

例

次の例では、2つのラスター・ブロックのLOBロケータを取得します。1つ目は通常のラスター・ブロックで、2つ目はビットマップ・マスク・ブロックです。SDO_GEOR.getRasterBlockLocatorプロシージャへのいずれのコールも、ラスター・データ表の行がロックされます。

declare
gr sdo_georaster;
lb blob;
r1 raw(1024);

ln number;
begin
r1 := utl_raw.copies(utl_raw.cast_to_raw('0'),1024);

select georaster into gr from georaster_table where georid=1;
sdo_geor.getRasterBlockLocator(gr, 0, 0, 0, 0, lb, null, 'TRUE');
ln := 1024;
dbms_lob.write(lb, ln, 1, r1);

sdo_geor.getRasterBlockLocator(gr, 0, 0, 0, 0, lb, 'TRUE', 'TRUE');
ln := 128;
dbms_lob.write(lb, ln, 1, r1);
end;
/

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コレクション型の詳細は、2.3.4項を参照してください。

windowパラメータのデータ型がSDO_GEOMETRYの場合、SDO_SRID値は次のいずれかの値である必要があります。

- NULL(ラスター空間を指定)

- MDSYS.CS_SRS表のSRID列の値
windowパラメータ・ジオメトリとモデル空間のSDO_SRID値が異なる場合は、処理が実行される前に、windowパラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、1.3項を参照してください。)

例

次の例では、指定したウィンドウと空間的に相互作用するすべてのラスター・ブロックを識別するコレクション・セットを戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は1.4.1項の例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;
/

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のみで、他のキーワードはすべて無視されます。記憶域パラメータについては、1.4.1項を参照してください。

storageParamがNULLの場合、または指定されない場合は、セル深度、インターリーブ、圧縮タイプ(および該当する場合は圧縮品質)は、入力されたGeoRasterオブジェクトと同じになります。

bgValues

スパース・データに入力する背景値を指定します。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。

このパラメータは、空のラスター・ブロック(1.4.4項を参照)がソースに含まれる場合に有効です。このパラメータを指定しない場合、空のラスター・ブロックから導出されるすべてのセルは、出力のBLOBでは値0(ゼロ)が埋め込まれます。

使用上の注意

GeoRasterオブジェクトがブロック化されている場合、指定したピラミッド・レベルのすべてのブロックのモザイクが戻されます。

プロシージャが完了すると、rasterBlobオブジェクトには、タイル処理されていないセル(ピクセル)データが含まれます。

入力されたGeoRasterオブジェクトが圧縮されていない場合、またはstorageParamパラメータで指定した以外の形式で圧縮されている場合でも、圧縮を指定できます。圧縮済の入力されたGeoRasterオブジェクトに対して、解凍された出力を得るには、storageParamパラメータでcompression=NONEを指定します。GeoRasterの圧縮および解凍の詳細は、1.10項を参照してください。

例

次の例では、フルフォーマット基準のJPEG(JPEG-F)圧縮を使用して、GEORASTER_TABLE表内でID値が2のGeoRasterオブジェクトのすべてのラスター・データからBLOBオブジェクトを作成します。この表の定義は、1.4.1項の例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;
/

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);

説明

指定されたピラミッド・レベルで、指定された矩形ウィンドウまたはポリゴンのジオメトリ・オブジェクトの境界内または境界上に存在するすべてのセルを含む単一のBLOBオブジェクトを作成します。

パラメータ

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オブジェクトを指定します。処理の前に、存在しているか、または初期化されている必要があります。

outWindow

セル空間内で出力ウィンドウの左上角および右下角の座標を指定するSDO_NUMBER_ARRAYオブジェクトを指定します。

storageParam

rasterBlobの作成時に適用される記憶域パラメータを示す文字列を指定します。このプロシージャでサポートされているstorageParamキーワードはcelldepth、compression、interleavingおよびqualityのみで、他のキーワードはすべて無視されます。記憶域パラメータについては、1.4.1項を参照してください。

storageParamがNULLの場合、または指定されない場合は、セル深度、インターリーブ、圧縮タイプ(および該当する場合は圧縮品質)は、入力されたGeoRasterオブジェクトと同じになります。

bgValues

スパース・データに入力する背景値を指定します。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。

このパラメータは、空のラスター・ブロック(1.4.4項を参照)がソースに含まれる場合、および出力ウィンドウが空のラスター・ブロックと交差する場合に有効です。このパラメータを指定しない場合は、空のラスター・ブロックから導出される出力ウィンドウ内のすべてのセルは、出力のBLOBでは値0(ゼロ)が埋め込まれます。

polygonClip

文字列TRUEでは、windowまたはinWindowジオメトリ・オブジェクトがサブセット操作で使用されますが、文字列FALSEまたはNULL値では、windowまたはinWindowジオメトリ・オブジェクトの最小境界矩形(MBR)がサブセット操作で使用されます。

使用上の注意

このプロシージャの構文は4種類あり、入力ウィンドウの指定がジオメトリ・オブジェクトによるものとウィンドウの左上角および右下角によるもののいずれであるか、およびoutWindowパラメータを使用して出力ウィンドウの座標を戻すかどうかによって異なります。

windowまたはinWindowパラメータのデータ型がSDO_GEOMETRYの場合、SDO_SRID値は次のいずれかの値である必要があります。

- NULL(ラスター空間を指定)

- MDSYS.CS_SRS表のSRID列の値
windowパラメータ・ジオメトリとモデル空間のSDO_SRID値が異なる場合は、処理が実行される前に、windowパラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、1.3項を参照してください。)

windowまたはinWindowパラメータで測地MBRを指定する場合は、日付変更線をまたぐMBRは指定できません。測地MBRについては、『Oracle Spatial開発者ガイド』を参照してください。

プロシージャが完了すると、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の圧縮および解凍の詳細は、1.10項を参照してください。

サブセットを取得してそれを別の座標系に再投影する場合、このプロシージャは使用せず、かわりにrasterBlobパラメータを含む構文でSDO_GEOR.reprojectプロシージャを使用して、このBLOBに目的のサブセットが含まれるようにします。

例

次の例では、指定したウィンドウ内の指定したピラミッド・レベルのラスター・データを取得します。(GEORASTER_TABLE表を参照します。この表の定義は、1.4.1項の例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;
/

次の例は、クロッピングの対象とするウィンドウの取得方法を示しています。(GEORASTER_TABLE表を参照します。この表の定義は、1.4.1項の例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;
/

SDO_GEOR.getScaling

構文

SDO_GEOR.getScaling(

georaster IN SDO_GEORASTER,

layerNumber IN NUMBER

) RETURN SDO_NUMBER_ARRAY;

説明

GeoRasterオブジェクトのレイヤーに対するスケール変更ファンクションの係数を戻します。

注意:
今回のリリースのGeoRasterでは、スケール変更ファンクションを使用した操作は実行されません。

パラメータ

georaster

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

layerNumber

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

使用上の注意

スケール変更ファンクションは、次のとおりです。

value = (a_0 + a_1 * cellvalue) / (b_0 + b_1 * cellvalue)

係数の順序は、a_0、a_1、b_0、b_1です。

例

次の例では、GEORASTER_TABLEという表で、指定されたGeoRasterオブジェクトのレイヤー番号が0 (オブジェクト全体)のスケール変更係数を戻します。GEORASTER_TABLE表の定義は1.4.1項の例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)

SDO_GEOR.getSourceInfo

構文

SDO_GEOR.getSourceInfo(

georaster IN OUT SDO_GEORASTER,

) RETURN SDO_STRING2_ARRAY;

説明

GeoRasterオブジェクトのソース情報を取得します。

パラメータ

georaster

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

使用上の注意

このファンクションは、GeoRasterオブジェクトのメタデータの<sourceInfo>要素(付録Aを参照)に格納されたソース情報を戻します。

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.

SDO_GEOR.getSpatialDimNumber

構文

SDO_GEOR.getSpatialDimNumber(

georaster IN SDO_GEORASTER

) RETURN NUMBER;

説明

GeoRasterオブジェクトの空間次元数を戻します。

パラメータ

georaster

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

使用上の注意

今回のリリースでは、このファンクションは常に2を戻します。

GeoRasterオブジェクトの各空間次元のセル数を戻すには、SDO_GEOR.getSpatialDimSizesファンクションを使用します。

例

次の例では、GEORASTER_TABLEという表で、GeoRasterオブジェクトの各空間次元のGEORID列値、空間次元数およびセル数を戻します。GEORASTER_TABLE表の定義は1.4.1項の例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)

SDO_GEOR.getSpatialDimSizes

構文

SDO_GEOR.getSpatialDimSizes(

georaster IN SDO_GEORASTER

) RETURN SDO_NUMBER_ARRAY;

説明

GeoRasterオブジェクトの各空間次元のセル数を戻します。

パラメータ

georaster

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

使用上の注意

GeoRasterオブジェクトの空間次元数を戻すには、SDO_GEOR.getSpatialDimNumberファンクションを使用します。

例

次の例では、GeoRasterオブジェクトの空間次元サイズおよびバンド数を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は1.4.1項の例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

SDO_GEOR.getSpatialResolutions

構文

SDO_GEOR.getSpatialResolutions(

georaster IN SDO_GEORASTER

) RETURN SDO_NUMBER_ARRAY;

説明

GeoRasterオブジェクトの各空間次元の空間解像度の値を戻します。

パラメータ

georaster

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

使用上の注意

各値は、ピクセルの空間次元によって表現されるデータ領域に関連付けられた測定単位の数を示します。たとえば、空間解像度の値が(10,10)で、地上データの測定単位がmである場合、各ピクセルは10m×10mの領域を示します。

空間解像度は、特にGeoRasterオブジェクトが幾何補正されていない場合、地理参照情報との一貫性がない場合があります。SDO_GEOR.setSpatialResolutionsプロシージャを使用すると、空間解像度を、イメージの平均解像度またはデータ収集時の解像度に設定できます。この場合、精密な測定には地理参照情報を使用する必要があります。

例

次の例では、GeoRasterオブジェクトの列次元および行次元(X次元およびY次元)の空間解像度の値を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は1.4.1項の例1-1の次に説明されています。)

SELECT sdo_geor.getSpatialResolutions(georaster) spatialResolution
FROM georaster_table WHERE georid=42;

SPATIALRESOLUTION
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(28.5, 28.5)

SDO_GEOR.getSpectralResolution

構文

SDO_GEOR.getSpectralResolution(

georaster IN SDO_GEORASTER

) RETURN NUMBER;

説明

GeoRasterオブジェクトがハイパースペクトルまたはマルチバンド・イメージである場合、そのスペクトル解像度を戻します。

パラメータ

georaster

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

使用上の注意

バンドの波長幅は、スペクトル単位とスペクトル解像度を組み合せて示します。たとえば、スペクトル解像度の値が2で、スペクトル単位の値がMILLIMETERである場合、バンドの波長幅は2mmです。

GeoRasterオブジェクトのスペクトル解像度を設定するには、SDO_GEOR.setSpectralResolutionプロシージャを使用します。

例

次の例では、GEORASTER_TABLE表に含まれている、空間参照されるすべてのGeoRasterオブジェクト(GEORASTERE列)のスペクトル単位およびスペクトル解像度を戻します。GEORASTER_TABLE表の定義は、1.4.1項の例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

SDO_GEOR.getSpectralUnit

構文

SDO_GEOR.getSpectralUnit(

georaster IN SDO_GEORASTER

) RETURN VARCHAR2;

説明

バンドの波長幅を示す測定単位を戻します。

パラメータ

georaster

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

使用上の注意

このファンクションは、METER、MILLIMETER、MICROMETERまたはNANOMETERのいずれかの値を戻します。

バンドの波長幅は、スペクトル単位とスペクトル解像度を組み合せて示します。たとえば、スペクトル解像度の値が2で、スペクトル単位の値がMILLIMETERである場合、バンドの波長幅は2mmです。

GeoRasterオブジェクトのスペクトル単位を設定するには、SDO_GEOR.setSpectralUnitプロシージャを使用します。

例

次の例では、GEORASTER_TABLE表に含まれている、空間参照されるすべてのGeoRasterオブジェクト(GEORASTERE列)のスペクトル単位およびスペクトル解像度を戻します。GEORASTER_TABLE表の定義は、1.4.1項の例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

SDO_GEOR.getSRS

構文

SDO_GEOR.getSRS(

georaster IN SDO_GEORASTER

) RETURN SDO_GEOR_SRS;

説明

GeoRasterオブジェクトの空間参照に関連する情報を含むSDO_GEOR_SRS型のオブジェクトを戻します。

パラメータ

georaster

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

使用上の注意

SDO_GEOR_SRSオブジェクト型については、2.3.5項を参照してください。

例

次の例では、GEORASTER_TABLE表に含まれている、空間参照されるすべてのGeoRasterオブジェクト(GEORASTERE列)の空間参照に関連する情報を戻します。GEORASTER_TABLE表の定義は、1.4.1項の例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)

SDO_GEOR.getStatistics

構文

SDO_GEOR.getStatistics(

georaster IN SDO_GEORASTER,

layerNumber IN NUMBER

) RETURN SDO_NUMBER_ARRAY;

説明

レイヤーに関連付けられた統計データを戻します。

パラメータ

georaster

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

layerNumber

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

使用上の注意

このファンクションは、GeoRasterメタデータのXMLスキーマ(付録Aを参照)の<statisticDatasetType>要素によって記述された統計データを戻します。このファンクションは、MIN、MAX、MEAN、MEDIAN、MODEVALUEおよびSTDの値の配列を戻します。

レイヤーに関連する統計データを設定するには、SDO_GEOR.setStatisticsプロシージャを使用します。

例

次の例では、GeoRasterオブジェクトのレイヤー1の統計データを戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は1.4.1項の例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)

SDO_GEOR.getTotalLayerNumber

構文

SDO_GEOR.getTotalLayerNumber(

georaster IN SDO_GEORASTER

) RETURN NUMBER;

説明

GeoRasterオブジェクトのレイヤーの合計数を戻します。

パラメータ

georaster

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

使用上の注意

レイヤーの詳細は、1.5項を参照してください。

例

次の例では、GEORASTER_TABLE表の各GeoRasterオブジェクト(GEORASTERE列)のレイヤー合計数を戻します。GEORASTER_TABLE表の定義は、1.4.1項の例1-1の次に説明されています。

SELECT georid, sdo_geor.getTotalLayerNumber(georaster) totalLayerNumber
FROM georaster_table;

GEORID TOTALLAYERNUMBER
---------- ----------------
2                1
4                3

SDO_GEOR.getULTCoordinate

構文

SDO_GEOR.getULTCoordinate(

georaster IN SDO_GEORASTER

) RETURN SDO_NUMBER_ARRAY;

説明

GeoRasterオブジェクトの左上角のセル座標を戻します。

パラメータ

georaster

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

使用上の注意

このファンクションは、2つまたは3つの数値を戻します。2つの数値が戻される場合、それらは行および列の座標です。3つの数値が戻される場合、それらは行、列およびバンドの座標です。

例

次の例では、GeoRasterオブジェクトの左上角の行、列およびバンドの座標を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は1.4.1項の例1-1の次に説明されています。)

SELECT sdo_geor.getULTCoordinate(georaster) FROM georaster_table WHERE georid=23;

SDO_GEOR.GETULTCOORDINATE(GEORASTER)
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(256, 0, 0)

SDO_GEOR.getVAT

構文

SDO_GEOR.getVAT(

georaster IN SDO_GEORASTER,

layerNumber IN NUMBER

) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのレイヤーに関連付けられた値属性表(VAT)の名前を戻します。

パラメータ

georaster

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

layerNumber

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

使用上の注意

値属性表の詳細は、1.2.3項を参照してください。

GeoRasterオブジェクトのレイヤーに関連付ける値属性表の名前を設定するには、SDO_GEOR.setVATプロシージャを使用します。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー0、1、2および3の値属性表を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は1.4.1項の例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

SDO_GEOR.getVersion

構文

SDO_GEOR.getVersion(

georaster IN SDO_GEORASTER

) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのユーザー指定のバージョンを戻します。

パラメータ

georaster

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

使用上の注意

バージョンは、「メジャー・バージョン番号.マイナー・バージョン番号」の形式で戻されます。

GeoRasterオブジェクトのユーザー指定のバージョンを設定するには、SDO_GEOR.setVersionプロシージャを使用します。

例

次の例では、GEORASTER_TABLE表に含まれているGeoRasterオブジェクト(GEORASTER列)のユーザー指定のバージョンを戻します。GEORASTER_TABLE表の定義は、1.4.1項の例1-1の次に説明されています。(出力は、読みやすくするために変更が加えられています。)

SELECT georid, sdo_geor.getVersion(georaster) version FROM georaster_table;

GEORID VERSION
---------- --------------------------------------------------------------------
2  10.1
4  9i.2

SDO_GEOR.hasBitmapMask

構文

SDO_GEOR.hasBitmapMask(

georaster IN SDO_GEORASTER,

layerNumber IN NUMBER

) RETURN VARCHAR2;

説明

GeoRasterオブジェクトまたはレイヤーにビットマップ・マスクが関連付けられているかどうかを確認します。

パラメータ

georaster

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

layerNumber

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

使用上の注意

このファンクションは、GeoRasterオブジェクトまたはレイヤーにビットマップ・マスクが関連付けられている場合は文字列TRUEを戻し、ビットマップ・マスクが関連付けられていない場合は文字列FALSEを戻します。

ビットマップ・マスクの詳細は、1.8項を参照してください。

例

次の例では、指定した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;

SDO_GEOR.hasGrayScale

構文

SDO_GEOR.hasGrayScale(

georaster IN SDO_GEORASTER,

layerNumber IN NUMBER

) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのレイヤーにグレースケール情報が含まれているかどうかを確認します。

パラメータ

georaster

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

layerNumber

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

使用上の注意

このファンクションは、レイヤーにグレースケール情報が含まれる場合は文字列TRUEを戻し、レイヤーでグレースケール表現が使用されていない場合はFALSEを戻します。グレースケール表示の詳細は、2.3.3項を参照してください。

レイヤーにグレースケール情報が含まれる場合、グレースケール・マッピングとグレースケール・マッピング表名を取得および設定できます。SDO_GEOR.getGrayScaleファンクションとSDO_GEOR.getGrayScaleTableファンクション、およびSDO_GEOR.setGrayScaleプロシージャとSDO_GEOR.setGrayScaleTableプロシージャを参照してください。

例

次の例では、指定したGeoRasterオブジェクト(GEORASTER列)のレイヤー0および1に、グレースケール情報が含まれているかどうかを確認します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は1.4.1項の例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

SDO_GEOR.hasNODATAMask

構文

SDO_GEOR.hasNODATAMask(

georaster IN SDO_GEORASTER,

layerNumber IN NUMBER

) RETURN VARCHAR2;

説明

GeoRasterオブジェクトまたはレイヤーにNODATAビットマップ・マスクが関連付けられているかどうかを確認します。

パラメータ

georaster

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

layerNumber

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

使用上の注意

このファンクションは、GeoRasterオブジェクトまたはレイヤーにNODATAビットマップ・マスクが関連付けられている場合は文字列TRUEを戻し、NODATAビットマップ・マスクが関連付けられていない場合は文字列FALSEを戻します。

ビットマップ・マスクの詳細は、1.8項を参照してください。

例

次の例では、指定した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;

SDO_GEOR.hasPseudoColor

構文

SDO_GEOR.hasPseudoColor(

georaster IN SDO_GEORASTER,

layerNumber IN NUMBER

) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのレイヤーに疑似カラー情報が含まれているかどうかを確認します。

パラメータ

georaster

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

layerNumber

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

使用上の注意

このファンクションは、レイヤーに疑似カラー情報が含まれる場合は文字列TRUEを戻し、レイヤーに疑似カラー情報が含まれていない(つまり疑似カラー表現を使用していない)場合はFALSEを戻します。カラーマップおよび疑似カラー表示については、2.3.2項で説明しています。

レイヤーに疑似カラー情報が含まれる場合、カラーマップとカラーマップ表名を取得および設定できます。SDO_GEOR.getColorMapファンクションとSDO_GEOR.getColorMapTableファンクション、およびSDO_GEOR.setColorMapプロシージャとSDO_GEOR.setColorMapTableプロシージャを参照してください。

例

次の例では、指定したGeoRasterオブジェクト(GEORASTER列)のレイヤー0および1に、疑似カラー情報が含まれるかどうかを確認します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は1.4.1項の例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

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

記憶域パラメータを含む文字列を指定します。形式および使用方法については、1.4.1項を参照してください。この操作で現在サポートされているキーワードは、次のとおりです。

- blocking: FALSEを指定すると、イメージは単一のブロックとして格納されます。blocksizeパラメータを指定しない場合にTRUEを指定すると、イメージは、デフォルトの再ブロック・パラメータ値(256,256,B)で再ブロック化されます。Bは、イメージに含まれるバンドの合計数です。blocksizeパラメータを指定した場合、blockingは自動的にTRUEとして解釈されます。

- blocksize: 詳細は、1.4.1項の表1-1を参照してください。

- compression: 詳細は、1.4.1項の表1-1を参照してください。デフォルト値はNONEで、RAWデータは圧縮せずにロードされます。

- quality: 詳細は、1.4.1項の表1-1を参照してください。

- raster: TRUE(デフォルト)を指定すると、GeoTIFF形式ファイルのラスター・イメージ・データが地理参照情報とともにロードされます。FALSEを指定すると、GeoTIFF形式ファイルからラスター・イメージ・データを除く地理参照情報のみが既存のGeoRasterオブジェクトにロードされます。

- spatialExtent: デフォルトのFALSEを指定すると、空間エクステントが生成されません。TRUEを指定すると、SRIDが0(ゼロ)以外で、既存のいずれかの空間エクステント索引のSRIDと一致した場合に空間エクステントが生成されます。

- srid: 座標系のSRIDの数値を指定します。これは、GeoTIFF形式ファイルのロード時のバックアップSRIDをオプションで指定するものです。このSRID値は、GeoTIFF構成値がOracle Spatialで認識されるSRID値のいずれとも一致しない場合に使用されます。

r_sourceFormat

ラスターのソースの形式を指定します。TIFF、GIF、BMP、GeoTIFFまたはPNGのいずれかを指定する必要があります。(JPEGはこのプロシージャではサポートされていません。ただし、クライアント側のGeoRasterローダー・ツールを使用すると、JPEGファイルをインポートできます。1.14項を参照してください。)

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ローダー・ツールを使用してラスター・データをロードする方法の詳細は、3.3項を参照してください。

非常に大きいイメージをロードする際にメモリー不足のエラーが発生した場合は、3.3.1項を参照してください。

イメージをGeoRasterデータベースにロードする場合、常にブロック・サイズを指定する必要があります(通常は256x256以上にします)。

ラスター・イメージとジオヘッダーが別々のファイルまたはオブジェクトに存在する場合にのみ、名前の先頭にr_が付くパラメータおよびh_が付くパラメータに値を指定してください。

このプロシージャを使用すると、ファイルまたはCLOBオブジェクトから、ESRIワールド・ファイルをロードできます。

このプロシージャは、ソース・ファイル形式としてJPEGをサポートしていません。JPEGファイルをインポートするには、クライアント側のGeoRasterローダー・ツールを使用します(1.14項を参照)。

GeoTIFF PixelIsAreaラスター空間は、左上角を基準とするGeoRasterのセル座標系と同じです。GeoTIFFからのインポートは、常に中央を基準とするGeoRasterのセル座標系が対象となります(GeoTIFFファイルがPixelIsAreaラスター空間で指定されている場合は、アフィン変換で2分の1ピクセル単位の調整が行われます)。

SDO_GEOR.importFromプロシージャを使用してGeoTIFFイメージをロードする場合は、xtiff-jai.jarおよびgeotiff-jai.jarライブラリが必要になります。GeoTIFFライブラリの詳細は、3.5項を参照してください。

このプロシージャは、セル深度値が2BITのラスター・データ、またはBILおよびBSQインターリーブ・タイプのソース・マルチバンド・ラスター・データをサポートしていません。

インポートされたGeoRasterオブジェクトは、BIPインターリーブ・タイプになります。

このプロシージャをコールするには、インポートされるファイルまたはファイルを含むディレクトリに対する読取り権限が必要です。次の例(ユーザーSYSTEMとして実行)では、ファイルに対する読取り権限をユーザーHERMANに付与します。

call dbms_java.grant_permission('HERMAN','SYS:java.io.FilePermission',
'/mydirectory/myimages/img1.tif', 'read' );

例

次の例では、TIFF形式の外部イメージをインポートする空のGeoRasterオブジェクトを初期化して、イメージをインポートします。

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, NULL, 'TIFF', 'file',
'/mydirectory/myimages/img1.tif');
UPDATE georaster_table SET georaster = geor WHERE georid = 1;
COMMIT;
END;/

次の例では、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;
/

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ビューの詳細は、2.4項を参照してください。GeoRasterの操作は第3章を参照してください。)

このファンクションは、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.4.1項の例1-1の次に説明されています。)

INSERT INTO georaster_table (georid, georaster)
VALUES (1, sdo_geor.init('RDT_1'));

SDO_GEOR.isBlank

構文

SDO_GEOR.isBlank(

georaster IN SDO_GEORASTER

) RETURN VARCHAR2;

説明

GeoRasterオブジェクトが空白のGeoRasterオブジェクトの場合は文字列TRUEを戻し、空白のGeoRasterオブジェクトでない場合は文字列FALSEを戻します。

パラメータ

georaster

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

使用上の注意

空白のGeoRasterオブジェクトでは、すべてのセルが同じセル値を持ちます。

既存の空白のGeoRasterオブジェクトのセル値を変更するには、SDO_GEOR.setBlankCellValueプロシージャを使用します。指定されたGeoRasterオブジェクトのセル値を戻すには、SDO_GEOR.getBlankCellValueファンクションを使用します。

例

次の例では、GEORASTER_TABLE表のGEORASTER列に含まれている各GeoRasterオブジェクトが空白のGeoRasterオブジェクトかどうかを判断します。(GEORASTER_TABLE表の定義は、1.4.1項の例1-1の次に説明されています。)

SELECT georid, substr(sdo_geor.isBlank(georaster),1,7) isBlank
FROM georaster_table;

GEORID ISBLANK
---------- -------
2 FALSE
4 FALSE

SDO_GEOR.isOrthoRectified

構文

SDO_GEOR.isOrthoRectified(

georaster IN SDO_GEORASTER

) RETURN VARCHAR2;

説明

GeoRasterオブジェクトがオルソ補正済であると識別される場合は文字列TRUEを戻し、オルソ補正済であると識別されない場合は文字列FALSEを戻します。

パラメータ

georaster

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

使用上の注意

このファンクションは、オブジェクトのGeoRasterメタデータを確認して、オルソ補正済であると指定されているかどうかを確認します。オブジェクトが実際にオルソ補正されているかどうかは確認しません。GeoRasterオブジェクトの検証と、オルソ補正の実行の確認は、ユーザーが行います。

GeoRasterオブジェクトがオルソ補正済であると指定するには、SDO_GEOR.setOrthoRectifiedプロシージャを使用します。

例

次の例では、GEORASTER_TABLE表のGeoRasterオブジェクト(GEORASTER列)が、空間参照、幾何補正およびオルソ補正済であると指定されているかどうかを確認します。(GEORASTER_TABLE表の定義は、1.4.1項の例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

SDO_GEOR.isRectified

構文

SDO_GEOR.isRectified(

georaster IN SDO_GEORASTER

) RETURN VARCHAR2;

説明

GeoRasterオブジェクトが幾何補正済であると識別される場合は文字列TRUEを戻し、幾何補正済であると識別されない場合は文字列FALSEを戻します。

パラメータ

georaster

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

使用上の注意

このファンクションは、オブジェクトのGeoRasterメタデータを確認して、幾何補正済であると指定されているかどうかを確認します。GeoRasterオブジェクトの検証と、幾何補正の実行の確認は、ユーザーが行います。

GeoRasterオブジェクトが幾何補正済であると指定するには、SDO_GEOR.setRectifiedプロシージャを使用します。

例

次の例では、GEORASTER_TABLE表のGeoRasterオブジェクト(GEORASTER列)が、空間参照、幾何補正およびオルソ補正済であると指定されているかどうかを確認します。(GEORASTER_TABLE表の定義は、1.4.1項の例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

SDO_GEOR.isSpatialReferenced

構文

SDO_GEOR.isSpatialReferenced(

georaster IN SDO_GEORASTER

) RETURN VARCHAR2;

説明

GeoRasterオブジェクトが空間参照されている場合は文字列TRUEを戻し、空間参照されていない場合は文字列FALSEを戻します。

パラメータ

georaster

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

使用上の注意

GeoRasterオブジェクトを検証しておく必要があります。

例

次の例では、GEORASTER_TABLE表のGeoRasterオブジェクト(GEORASTER列)が、空間参照、幾何補正およびオルソ補正済であると指定されているかどうかを確認します。(GEORASTER_TABLE表の定義は、1.4.1項の例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

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);

説明

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の作成時に適用される記憶域パラメータを示す文字列を指定します。記憶域パラメータについては、1.4.1項を参照してください。

outGeoRaster

和演算の結果を反映させる新しいSDO_GEORASTERオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、1.4.3項を参照してください。)source1GeoRasterまたはsource2GeoRasterと同じGeoRasterオブジェクトは指定できません。

bgValues

部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(1.4.4項を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。

入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。

使用上の注意

注意:
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.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);

説明

複数のGeoRasterオブジェクトを、1つのGeoRasterオブジェクトにモザイク処理します。

パラメータ

georasterTableName

ソースとなるすべてのGeoRasterオブジェクトを含む表またはビューの名前を指定します。

georasterColumnName

georasterTableNameで指定した表のSDO_GEORASTER型の列を指定します。

georaster

モザイク処理の結果を格納するGeoRasterオブジェクトを指定します。georasterTableName内のgeorasterColumnNameに含まれるいずれのGeoRasterオブジェクトと同じGeoRasterオブジェクトは指定できません。

storageParam

記憶域パラメータを示す文字列を指定します(1.4.1項を参照)。このパラメータがNULLの場合、結果のGeoRasterオブジェクトは、モデル空間(存在する場合)またはセル空間の左上角の、ソースとなるGeoRasterオブジェクトと同じ記憶域パラメータ(blockSize、cellDepth、interleavingおよびcompression)を持ちます。ただし、モザイク処理する左上角のGeoRasterオブジェクトと同じ記憶域パラメータをモザイクに設定する場合を除き、出力モザイクのサイズに応じて記憶域パラメータ(特にブロック化サイズ)を指定することをお薦めします。

bgValues

部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、現行の処理によって部分的に空のラスター・ブロック(1.4.4項を参照)が生成される場合のみです。これは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれているか、ソースGeoRasterオブジェクトが領域全体を覆っていない場合に発生する可能性があります。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。

入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。

使用上の注意

ソースのGeoRasterオブジェクトは、モザイク処理を直接実行できるように、イメージまたはラスター・データとして準備しておく必要があります。モザイク処理されるGeoRasterオブジェクトは、次の条件を満たしている必要があります。

- 地理参照されているオブジェクトと地理参照されていないオブジェクトを混在させないこと。すべてのオブジェクトが地理参照されているか、地理参照されているオブジェクトが1つもないこと。

- オブジェクトが地理参照されている場合はSRID値が同じであり、地理参照の方法はアフィン変換である必要がある。GeoRasterオブジェクトのアフィン変換では、係数のセット(A、B、DおよびE)または(b、c、e、f)は同じである必要がある。つまり、イメージは、同じX解像度とY解像度(ただし、XとYの解像度は同じである必要はない)、同じ回転角度、同じひずみ係数を持つ必要がある(言い換えると、イメージは、同じ解像度を持ち、イメージが回転してひずんでいる場合は同じように回転してひずんでいる必要がある)。

- 同じレイヤー数またはバンド数を持つ。 ソース・オブジェクトの行および列の次元サイズに制限はない。たとえば、2の累乗値である必要はない。

- バンド番号とレイヤー間のマッピングが同じである。

モザイク処理されるGeoRasterオブジェクトが地理参照される場合、これらのオブジェクトはその地理参照情報に従ってともに配置されます。GeoRasterオブジェクトが地理参照されない場合、これらのオブジェクトはULTCoordinate値に従ってともに配置されます。(ULTCoordinateについては、1.3項を参照してください。)

これらの条件を満たしている場合、結果のGeoRasterオブジェクトは、モデル空間の左上角の、ソースとなるGeoRasterオブジェクトから空間参照メタデータ情報を取得します。また、モデル空間の左上角のソースGeoRasterオブジェクトから、セル空間およびデフォルトの記憶域属性を取得します。

ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれるか、ソースGeoRasterオブジェクトが領域全体を覆っていない場合、モザイク処理された結果のGeoRasterオブジェクトには、空のラスター・ブロックまたは部分的に空のラスター・ブロック(1.4.4項を参照)が含まれます。いずれのソースGeoRasterオブジェクトにも含まれない結果のラスター・ブロックは、空のままです。部分的に空のラスター・ブロックにはbgValuesパラメータに指定した値が入力されます。bgValuesパラメータを指定しない場合は0 (ゼロ)が入力されます。

ソースGeoRasterオブジェクトが重複する場合、ソース・オブジェクトのデータが、その領域のデータになります。この場合のソース・オブジェクトは、重複している領域を覆い、かつすべてのソース・オブジェクトがともに配置されているセル空間で最大のultCoordinateを持ちます。

ソースのGeoRasterオブジェクトに関連したビットマップ・マスクは考慮されません。bitmapmaskパラメータは、storageParam文字列で指定されている場合でも無視されます。

ソースとなるすべてのGeoRasterオブジェクトが空白で、同じblankCellValue値を持つ場合、結果のGeoRasterオブジェクトも空白になり、そのblankCellValue値を持ちます。そうでない場合、結果のGeoRasterオブジェクトは空白にはなりません。

モザイク処理の結果を含めるGeoRasterオブジェクト(georasterパラメータ)には、ソースGeoRasterオブジェクト(モザイク処理を行う対象となるオブジェクト)を指定することはできません。

ソースのGeoRasterオブジェクトのピラミッド・データは考慮されません。pyramidパラメータは、storageParam文字列で指定されている場合でも、無視されます。

モザイク処理では、一定の間隔で内部コミット操作が実行されるため、ロールバックできません。処理が中断された場合、ダングリング・ラスター・ブロックがラスター・データ表に存在する可能性があります。ダングリング・ラスター・ブロックは、GeoRasterオブジェクトおよびシステム・データをデータベースでメンテナンスすることにより処理できます(3.20項を参照)。

例

次の例では、初期化されたGeoRasterオブジェクトをGEORASTER_TABLE表に挿入し、そのGeoRasterオブジェクトをgrという変数に戻します。GRTABという表のGROBJ列のすべてのGeoRasterオブジェクトをモザイク処理して、モザイク処理によって生成されたGeoRasterオブジェクトを同じ変数に格納します。(GEORASTER_TABLE表の定義は、1.4.1項の例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, 'blocksize=(512,512,1)');
UPDATE georaster_table SET georaster=gr WHERE id=12;
END;
/

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座標系に再投影します。結果のオブジェクトは、新しい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

記憶域パラメータを示す文字列を指定します(1.4.1項を参照)。

outGeoRaster

スケール変更処理の結果を反映させる新しいSDO_GEORASTERオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、1.4.3項を参照してください。)inGeoRasterと同じGeoRasterオブジェクトは指定できません。

rasterBlob

新しい座標系を反映した出力を保持するBLOBを指定します。再投影処理の前に、これが存在しているか、または初期化されている必要があります。

outArea

結果のオブジェクトのモデル座標系の最小境界矩形(MBR)を含むSDO_GEOMETRYオブジェクトを指定します。

outWindow

セル空間内で出力ウィンドウの左上角および右下角の座標を指定するSDO_NUMBER_ARRAYオブジェクトを指定します。

bgValues

部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(1.4.4項を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。

入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。

使用上の注意

このプロシージャには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パラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、1.3項を参照してください。)

cropAreaパラメータで測地MBRを指定する場合、日付変更線をまたぐMBRは指定できません。(測地MBRについては、『Oracle Spatial開発者ガイド』を参照してください。)指定したクロッピング領域とソースGeoRasterオブジェクトの空間エクステントが重複する部分のみが再投影されます。

resampleParamには、次の1つ以上のキーワードにそれぞれ適切な値を指定して、それらを引用符で囲んだ文字列を指定する必要があります。

- resampling (resampling=NNなど): リサンプリング・メソッドを指定します。NN(元のGeoRasterオブジェクトで最も近いセルの値)、BILINEAR(元のGeoRasterオブジェクトで最も近い4個のセルを距離で重み付けした平均)、AVERAGE4(元のGeoRasterオブジェクトで最も近い4個のセルの単純平均)、AVERAGE16(元のGeoRasterオブジェクトで最も近い16個のセルの単純平均)、またはCUBIC(元のGeoRasterオブジェクトで最も近い16個のセルの3次畳込み)のいずれかを指定する必要があります。

- nodata(nodata=TRUEなど): プロシージャでの処理中にNODATA値およびその値の範囲を考慮するかどうかを指定します。TRUE(NODATA値およびその値の範囲を考慮する)またはFALSE(NODATA値およびその値の範囲を考慮しない)のいずれかを指定します。デフォルト値はFALSEです。この値がTRUEで、リサンプリング・メソッドがBILINEAR、AVERAGE4、AVERAGE16またはCUBICの場合、リサンプリングの計算に含まれるセル値が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=true, blocksize=(256,256,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;
/

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)'など)。アスペクト比は変更されません。

resampleParam

リサンプリング・パラメータを含む文字列を指定します。使用可能なキーワードおよび値については、「使用上の注意」を参照してください。

storageParam

記憶域パラメータを示す文字列を指定します(1.4.1項を参照)。

outGeoRaster

スケール変更処理の結果を反映させる新しいSDO_GEORASTERオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、1.4.3項を参照してください。)inGeoRasterと同じGeoRasterオブジェクトは指定できません。

bgValues

部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(1.4.4項を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。

入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。

使用上の注意

このプロシージャは、元のGeoRasterオブジェクトまたは元のGeoRasterオブジェクトに指定したピラミッド・レベルに基づき、指定したスケール変更が反映された新しいGeoRasterオブジェクトを作成する場合に使用します。このプロシージャを使用した後、元のGeoRasterオブジェクトのコピーで希望どおり変更されているかを確認し、必要に応じて元のGeoRasterオブジェクトを破棄します。

pyramidLevelパラメータを含まない構文を使用すると、元のGeoRasterオブジェクト(pyramidLevel=0)を基にスケール変更が行われます。

スケール変更されたセル値を取得する必要がある場合は、SDO_GEOR.getCellValueファンクションの「使用上の注意」に示すプロシージャを使用します。

inGeoRasterとoutGeoRasterには異なるGeoRasterオブジェクトを指定する必要があります。

resampleParamには、次の1つ以上のキーワードにそれぞれ適切な値を指定して、それらを引用符で囲んだ文字列を指定する必要があります。

- resampling (resampling=NNなど): リサンプリング・メソッドを指定します。NN(元のGeoRasterオブジェクトで最も近いセルの値)、BILINEAR(元のGeoRasterオブジェクトで最も近い4個のセルを距離で重み付けした平均)、AVERAGE4(元のGeoRasterオブジェクトで最も近い4個のセルの単純平均)、AVERAGE16(元のGeoRasterオブジェクトで最も近い16個のセルの単純平均)、またはCUBIC(元のGeoRasterオブジェクトで最も近い16個のセルの3次畳込み)のいずれかを指定する必要があります。

- nodata(nodata=TRUEなど): プロシージャでの処理中にNODATA値およびその値の範囲を考慮するかどうかを指定します。TRUE(NODATA値およびその値の範囲を考慮する)またはFALSE(NODATA値およびその値の範囲を考慮しない)のいずれかを指定します。デフォルト値はFALSEです。この値がTRUEで、リサンプリング・メソッドがBILINEAR、AVERAGE4、AVERAGE16またはCUBICの場合、リサンプリングの計算に含まれるセル値が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リサンプリングを指定し、記憶域パラメータで各次元のブロック・サイズを32に指定します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は1.4.1項の例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',
'blocksize=(32,32)', gr2);
UPDATE georaster_table SET georaster=gr2 WHERE georid=21;
COMMIT;
END;
/

SDO_GEOR.schemaValidate

構文

SDO_GEOR.schemaValidate(

georaster IN SDO_GEORASTER

) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのメタデータを、GeoRasterのXMLスキーマに対して検証します。

パラメータ

georaster

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

使用上の注意

このファンクションは、文字列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;

SDO_GEOR.setBeginDateTime

構文

SDO_GEOR.setBeginDateTime(

georaster IN OUT SDO_GEORASTER,

beginTime TIMESTAMP WITH TIME ZONE);

説明

GeoRasterオブジェクトのメタデータで、ラスター・データ収集の開始日時を設定します。または、beginTimeパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

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

beginTime

日時を指定します。

使用上の注意

GeoRasterオブジェクトのメタデータで、現行の開始日時(存在する場合)を確認するには、SDO_GEOR.getBeginDateTimeファンクションを使用します。

beginTimeが、GeoRasterオブジェクトのメタデータで指定された終了日時(SDO_GEOR.setEndDateTimeプロシージャを参照)より後の日時に設定された場合、例外が発生します。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

例

次の例では、GeoRasterオブジェクトのメタデータで、ラスター・データ収集の開始日時および終了日時を設定します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は1.4.1項の例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;
/

SDO_GEOR.setBinFunction

構文

SDO_GEOR.setBinFunction(

georaster IN SDO_GEORASTER,

layerNumber IN NUMBER

binFunction IN SDO_NUMBER_ARRAY);

説明

レイヤーに関連付けられたビン・ファンクションを設定します。

パラメータ

georaster

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

layerNumber

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

binFunction

ビン・タイプ、ビンの合計数、最初のビン番号、最小セル値および最大セル値を指定する要素を含む配列として、ビン・ファンクションを指定します。SDO_NUMBER_ARRAY型はVARRAY(1048576) OF NUMBERとして定義されます。詳細および例については、「使用上の注意」を参照してください。

使用上の注意

ビン・ファンクションは、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;
/

SDO_GEOR.setBinTable

構文

SDO_GEOR.setBinTable(

georaster IN OUT SDO_GEORASTER,

layerNumber IN NUMBER,

tableName IN VARCHAR2);

説明

レイヤーに関連付けられたビン表の名前を設定します。または、tableNameパラメータにNULLが指定された場合、既存の値を削除します。

注意:
今回のリリースのGeoRasterでは、ビン表を使用した操作は実行されません。

パラメータ

georaster

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

layerNumber

ビン表の名前を設定するレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

tableName

レイヤーに関連付けられたビン表の名前を指定します。

使用上の注意

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

このプロシージャは、ビン・タイプがEXPLICITの場合にのみ有効です。ビン・タイプを取得するには、SDO_GEOR.getBinTypeファンクションを使用します。

レイヤーのビン表を戻すには、SDO_GEOR.getBinTableファンクションを使用します。

SDO_GEOR.getBinTypeファンクションの「使用上の注意」も参照してください。

layerNumberがNULLか、GeoRasterオブジェクトに対して無効な場合、またはtableNameが空の文字列('')の場合は例外が発生します。

例

次の例では、GEORASTER_TABLE表の指定したGeoRasterオブジェクトで、レイヤー番号3のビン表の名前をBINT1に設定します。(GEORASTER_TABLE表の定義は、1.4.1項の例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;
/

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オブジェクトの場合、このプロシージャでは例外が発生します。

ビットマップ・マスクの詳細は、1.8項を参照してください。

例

次の例では、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;
/

SDO_GEOR.setBlankCellValue

構文

SDO_GEOR.setBlankCellValue(

georaster IN OUT SDO_GEORASTER,

value IN NUMBER);

説明

指定されたGeoRasterオブジェクトが空白のGeoRasterオブジェクトである場合に、すべてのセルに使用されるセル値を設定(変更)します。

パラメータ

georaster

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

value

空白のGeoRasterオブジェクトに使用するセル値を指定します。NULL値は指定できません。

使用上の注意

空白の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.4.1項の例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;
/

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型のカラーマップ・オブジェクトを指定します(2.3.2項を参照)。

使用上の注意

指定するカラーマップ・オブジェクトは、次の条件に該当する必要があります。

- 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.4.1項の例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;
/

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

ユーザー定義のカラーマップ表の名前を指定します。カラーマップの詳細は、2.3.2項を参照してください。

使用上の注意

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

GeoRasterオブジェクトのレイヤーのカラーマップ表を戻すには、SDO_GEOR.getColorMapTableファンクションを使用します。

layerNumberがNULLか、GeoRasterオブジェクトに対して無効な場合、またはtableNameが空の文字列('')の場合は例外が発生します。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー2のカラーマップ表をNULLに設定します。(GEORASTER_TABLE表の定義は、1.4.1項の例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;
/

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型のオブジェクトである必要があります(2.3.6項を参照)。

使用上の注意

GCPを使用した地理参照の詳細は、1.6.2項を参照してください。

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;
/

SDO_GEOR.setDefaultBlue

構文

SDO_GEOR.setDefaultBlue(

georaster IN OUT SDO_GEORASTER,

defaultBlue IN NUMBER);

説明

GeoRasterオブジェクトを表示する際に、(RGB色空間の)青の色構成要素に使用されるレイヤー番号を設定します。または、defaultBlueパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

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

defaultBlue

指定したGeoRasterオブジェクトを表示する際に、(RGB色空間の)青の色構成要素に使用されるレイヤー番号を指定します。指定する値は0(ゼロ)より大きく、GeoRasterオブジェクトのレイヤーの最大番号以下である必要があります。

使用上の注意

デフォルトの赤、緑および青の値は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。これらの値はオプションで、マルチレイヤーまたはハイパースペクトルのGeoRasterオブジェクトを視覚化する場合にのみ使用されます。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

青色の構成要素のみで使用するレイヤー番号を設定または削除しようとした場合、またはdefaultBlueが、GeoRasterオブジェクトの有効なレイヤー番号ではない場合は、例外が発生します。

例

次の例では、GEORASTER_TABLE表に含まれるGeoRasterオブジェクト(GEORASTER列)のデフォルトの赤、緑および青の色レイヤーを設定して、それらのGeoRasterオブジェクトを表示する際に赤、緑および青の色構成要素に使用されるレイヤー番号の配列を戻します。(GEORASTER_TABLE表の定義は、1.4.1項の例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.

SDO_GEOR.setDefaultColorLayer

構文

SDO_GEOR.setDefaultColorLayer(

georaster IN OUT SDO_GEORASTER,

defaultRGB IN SDO_NUMBER_ARRAY);

説明

GeoRasterオブジェクトを表示する際に、赤、緑および青の各色構成要素に使用されるデフォルトのレイヤー番号を設定します。または、defaultRGBパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

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

defaultRGB

指定したGeoRasterオブジェクトを表示する際の赤、緑および青の各色構成要素を示す3つの数値の配列を指定します。各数値は0(ゼロ)より大きく、GeoRasterオブジェクトのレイヤーの最大番号以下である必要があります。

使用上の注意

指定されたRGBレイヤー番号は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

SDO_GEOR.setDefaultRed、SDO_GEOR.setDefaultGreenおよびSDO_GEOR.setDefaultBlueプロシージャを使用すると、それぞれの色構成要素(RGB)のレイヤー番号を設定できます。

3つのレイヤー番号は同時に設定または削除する必要があるため、defaultRGB配列のすべての要素は、NULLまたはNULL以外である必要があり、NULLまたはNULL以外の配列要素を混在させることはできません。

defaultRGBが不適切なサイズの場合、またはこのパラメータのいずれかの要素がNULLであるか、GeoRasterオブジェクトに対して無効なレイヤー番号である場合は、例外が発生します。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が2である行に含まれているGeoRasterオブジェクト(GEORASTER列)を表示する際に、赤、緑および青の色構成要素に使用するレイヤー番号として1を指定します。(GEORASTER_TABLE表の定義は、1.4.1項の例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));
UPDATE georaster_table SET georaster = grobj WHERE georid=2;
COMMIT;
END;
/

SDO_GEOR.setDefaultGreen

構文

SDO_GEOR.setDefaultGreen(

georaster IN OUT SDO_GEORASTER,

defaultGreen IN NUMBER);

説明

GeoRasterオブジェクトを表示する際に、(RGB色空間の)緑の色構成要素に使用されるレイヤー番号を設定します。または、defaultGreenパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

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

defaultGreen

指定したGeoRasterオブジェクトを表示する際に、(RGB色空間の)緑の色構成要素に使用されるレイヤー番号を指定します。指定する値は0(ゼロ)より大きく、GeoRasterオブジェクトのレイヤーの最大番号以下である必要があります。

使用上の注意

デフォルトの赤、緑および青の値は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。これらの値はオプションで、マルチレイヤーまたはハイパースペクトルのGeoRasterオブジェクトを視覚化する場合にのみ使用されます。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

緑色の構成要素のみで使用するレイヤー番号を設定または削除しようとした場合、またはdefaultGreenが、GeoRasterオブジェクトの有効なレイヤー番号ではない場合は、例外が発生します。

例

次の例では、GEORASTER_TABLE表に含まれるGeoRasterオブジェクト(GEORASTER列)のデフォルトの赤、緑および青の色レイヤーを設定して、それらのGeoRasterオブジェクトを表示する際に赤、緑および青の色構成要素に使用されるレイヤー番号の配列を戻します。(GEORASTER_TABLE表の定義は、1.4.1項の例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.

SDO_GEOR.setDefaultRed

構文

SDO_GEOR.setDefaultRed(

georaster IN OUT SDO_GEORASTER,

defaultRed IN NUMBER);

説明

GeoRasterオブジェクトを表示する際に、(RGB色空間の)赤の色構成要素に使用されるレイヤー番号を設定します。または、defaultRedパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

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

defaultRed

指定したGeoRasterオブジェクトを表示する際に、(RGB色空間の)赤の色構成要素に使用されるレイヤー番号を指定します。指定する値は0(ゼロ)より大きく、GeoRasterオブジェクトのレイヤーの最大番号以下である必要があります。

使用上の注意

デフォルトの赤、緑および青の値は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。これらの値はオプションで、マルチレイヤーまたはハイパースペクトルのGeoRasterオブジェクトを視覚化する場合にのみ使用されます。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

赤色の構成要素のみで使用するレイヤー番号を設定または削除しようとした場合、またはdefaultRedが、GeoRasterオブジェクトの有効なレイヤー番号ではない場合は、例外が発生します。

例

次の例では、GEORASTER_TABLE表に含まれるGeoRasterオブジェクト(GEORASTER列)のデフォルトの赤、緑および青の色レイヤーを設定して、それらのGeoRasterオブジェクトを表示する際に赤、緑および青の色構成要素に使用されるレイヤー番号の配列を戻します。(GEORASTER_TABLE表の定義は、1.4.1項の例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.

SDO_GEOR.setEndDateTime

構文

SDO_GEOR.setEndDateTime(

georaster IN OUT SDO_GEORASTER,

endTime IN TIMESTAMP WITH TIME ZONE);

説明

GeoRasterオブジェクトのメタデータで、ラスター・データ収集の終了日時を設定します。または、endTimeパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

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

endTime

日時を指定します。

使用上の注意

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

GeoRasterオブジェクトのメタデータで、現行の終了日時(存在する場合)を確認するには、SDO_GEOR.getEndDateTimeファンクションを使用します。

endTimeが、GeoRasterオブジェクトのメタデータで指定された開始日時(SDO_GEOR.setBeginDateTimeプロシージャを参照)より前の日時に設定された場合、例外が発生します。

例

次の例では、GeoRasterオブジェクトのメタデータで、ラスター・データ収集の開始日時および終了日時を設定します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は1.4.1項の例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;
/

SDO_GEOR.setGCPGeorefMethod

構文

SDO_GEOR.setGCPGeorefMethod(

inGeoraster IN OUT SDO_GEORASTER

gcpGeorefMethod IN VARCHAR2);

説明

GeoRasterオブジェクトのGCPベースの地理参照ジオメトリ・モデル・タイプを設定します。

パラメータ

inGeoraster

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

gcpGeorefMethod

GeoRasterオブジェクトに設定する地理参照ジオメトリ・モデル・タイプを指定します。値には、文字列Affine、QuadraticPolynomial、CubicPolynomial、DLT、QuadraticRationalまたはRPCのいずれかを指定する必要があります。

使用上の注意

GCPを使用した地理参照の詳細は、1.6.2項を参照してください。

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;
/

SDO_GEOR.setGCPGeorefModel

構文

SDO_GEOR.setGCPGeorefModel(

inGeoraster IN OUT SDO_GEORASTER

gcpGeorefModel IN SDO_GEOR_GCPGEOREFTYPE);

説明

GeoRasterオブジェクトのGCPベースの地理参照モデル情報を設定します。

パラメータ

inGeoraster

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

gcpGeorefModel

FFMethodType、nGCP、GCPs、solutionAccuracyを含むオブジェクトを指定します。

使用上の注意

GCPを使用した地理参照の詳細は、1.6.2項を参照してください。

SDO_GEOR_GCPGEOREFTYPEオブジェクト型は、2.3.8項で定義されています。

このプロシージャは、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;
/

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型のオブジェクトを指定します(2.3.3項を参照)。

使用上の注意

指定する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.4.1項の例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;
/

SDO_GEOR.setGrayScaleTable

構文

SDO_GEOR.setGrayScaleTable(

georaster IN OUT SDO_GEORASTER,

layerNumber IN NUMBER,

tableName IN VARCHAR2);

説明

GeoRasterオブジェクトのレイヤーのグレースケール・マッピング表を設定します。または、tableNameパラメータにNULLが指定された場合、既存の値を削除します。

注意:
このプロシージャは、グレースケール・マッピング表の名前をGeoRasterに登録します。ただし、今回のリリースのGeoRasterでは、グレースケール・マッピング表を使用した操作は実行されません。

パラメータ

georaster

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

layerNumber

グレースケール・マッピング表を設定するレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

tableName

指定したGeoRasterオブジェクトのレイヤーのグレースケール・マッピング表の名前を指定します。

使用上の注意

グレースケール表示の詳細は、2.3.3項を参照してください。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

GeoRasterオブジェクトのレイヤーのグレースケール・マッピング表を戻すには、SDO_GEOR.getGrayScaleTableファンクションを使用します。

layerNumberがNULLか、GeoRasterオブジェクトに対して無効な場合、またはtableNameが空の文字列('')の場合は例外が発生します。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー3のグレースケール・マッピング表として、GST1を設定します。(GEORASTER_TABLE表の定義は、1.4.1項の例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;
/

SDO_GEOR.setHistogramTable

構文

SDO_GEOR.setHistogramTable(

georaster IN OUT SDO_GEORASTER,

layerNumber IN NUMBER

tableName IN VARCHAR2);

説明

GeoRasterオブジェクトのレイヤーのヒストグラム表を設定します。

注意:
このプロシージャは、ヒストグラム表の名前をGeoRasterに登録します。ただし、今回のリリースのGeoRasterでは、ヒストグラム表を使用した操作は実行されません。

パラメータ

georaster

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

layerNumber

ヒストグラム表の名前を設定するレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

tableName

ヒストグラム表の名前を指定します。このパラメータがNULLの場合、既存のヒストグラム表(実際の表ではない)のメタデータ情報は削除されます。レイヤーの統計情報が存在しない場合、このパラメータはNULLである必要があります。パラメータ値に空の文字列('')を指定することはできません。

使用上の注意

このプロシージャは、ユーザー定義のヒストグラム表を指定します。ヒストグラムの概要は、2.3.1項を参照してください。

レイヤーのヒストグラム表の名前を戻すには、SDO_GEOR.getHistogramTableファンクションを使用します。

次の1つ以上の条件に該当する場合、例外が発生します。

- layerNumberがNULLか、またはGeoRasterオブジェクトに対して無効である。

- tableNameが空の文字列('')である。

- 指定されたレイヤーに関連付けられた統計データが設定されていない。
レイヤーに統計データを設定するには、SDO_GEOR.setStatisticsプロシージャをコールします。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー3のヒストグラム表として、HIST1を設定します。(GEORASTER_TABLE表の定義は、1.4.1項の例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;
/

SDO_GEOR.setID

構文

SDO_GEOR.setID(

georaster IN OUT SDO_GEORASTER,

id IN VARCHAR2);

説明

GeoRasterオブジェクトに関連付けるユーザー定義の識別子を設定します。または、idパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

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

id

GeoRasterオブジェクトに関連付けるID値を指定します。

使用上の注意

このプロシージャを使用すると、GeoRasterオブジェクトに一意の有効な英数字の識別子を割り当てることができるため、ユーザーおよびアプリケーションがオブジェクトを簡単に識別できます。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

GeoRasterオブジェクトのユーザー定義の識別子の値を戻すには、SDO_GEOR.getIDファンクションを使用します。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が2である行に含まれているGeoRasterオブジェクト(GEORASTER列)のユーザー定義の識別子の値として、newidを設定します。(GEORASTER_TABLE表の定義は、1.4.1項の例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;
/

SDO_GEOR.setLayerID

構文

SDO_GEOR.setLayerID(

georaster IN OUT SDO_GEORASTER,

layerNumber IN NUMBER,

id IN VARCHAR2);

説明

GeoRasterオブジェクトのレイヤーに関連付けるユーザー定義の識別子を設定します。または、idパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

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

layerNumber

操作を実行するレイヤーの番号を指定します。

id

GeoRasterオブジェクトの指定したレイヤーに関連付けるID値を指定します。

使用上の注意

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

GeoRasterオブジェクトのレイヤーのユーザー定義の識別子の値を戻すには、SDO_GEOR.getLayerIDファンクションを使用します。

layerNumberがNULLか、GeoRasterオブジェクトに対して無効な場合、またはidはNULLであるが、対応するレイヤー情報が存在する場合は、例外が発生します。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー2のユーザー定義の識別子の値として、TM_Band_2を設定します。(GEORASTER_TABLE表の定義は、1.4.1項の例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;
/

SDO_GEOR.setLayerOrdinate

構文

SDO_GEOR.setLayerOrdinate(

georaster IN OUT SDO_GEORASTER,

layerNumber IN NUMBER,

ordinate IN NUMBER);

説明

GeoRasterオブジェクトの指定されたレイヤーにバンド座標値を設定します。または、ordinateパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

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

layerNumber

操作を実行するレイヤーの番号を指定します。

ordinate

レイヤーのバンド次元のバンド座標値を指定します。

使用上の注意

レイヤーのバンド座標は、レイヤー(layerNumberパラメータ値)が関連付けられている物理バンドを指します。今回のリリースでは、関連付けは、レイヤー1がバンド0、レイヤー2がバンド1のようになる必要があります(1.5項の図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.4.1項の例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;
/

SDO_GEOR.setModelCoordLocation

構文

SDO_GEOR.setModelCoordLocation(

georaster IN OUT SDO_GEORASTER

modelCoordLoc IN VARCHAR2);

説明

GeoRasterオブジェクトのモデル座標の位置を示す値を設定するか、modelCoordLocパラメータにNULLが指定されている場合、現在のモデル座標の位置を示す値(存在する場合)を削除します。

パラメータ

georaster

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

modelCoordLoc

GeoRasterオブジェクトに設定するモデル座標の位置を指定します。これには、NULLを指定するか(現在のモデル座標の位置を示す値を削除する場合)、文字列値のCENTER (セル座標系が中心を基準とする場合)またはUPPERLEFT (セル座標系が左上角を基準とする場合)のいずれかを指定する必要があります。

使用上の注意

このプロシージャでは、CENTERからUPPERLEFTへ、またはUPPERLEFTからCENTERへセル座標系を変更できます。

このプロシージャは、地理参照されているGeoRasterオブジェクトのみに適用され、変更が適宜反映されるように(セル座標とモデル座標間の関係が変わらないようにするために)、GeoRaster SRSの関数フィッティング係数を自動的に調整します。

GeoRasterオブジェクトのモデル座標の位置を示す値を取得するには、SDO_GEOR.getModelCoordLocationファンクションを使用します。

GCPを使用した地理参照の詳細は、1.6.2項を参照してください。

例

次の例では、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;
/

SDO_GEOR.setModelSRID

構文

SDO_GEOR.setModelSRID(

georaster IN OUT SDO_GEORASTER,

srid IN NUMBER);

説明

GeoRasterオブジェクトのモデル(地上)空間に座標系(SDO_SRID値)を設定します。または、sridパラメータにNULLが指定され、GeoRasterメタデータに空間参照情報が含まれていない場合は、既存の値を削除します。

パラメータ

georaster

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

srid

座標系を指定します。GeoRasterメタデータに空間参照情報が含まれている場合は、MDSYS.CS_SRS表のSRID列の値にする必要があり、GeoRasterメタデータに空間参照情報が含まれていない場合は、NULLにする(座標系をモデル空間に関連付けないようにする)必要があります。srid値に0 (ゼロ)を指定することはできません。

使用上の注意

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

元のGeoRasterオブジェクトが別のモデル空間のSRID値を持つ場合、このプロシージャはラスター・データ自体は変更しません。そのため、このプロシージャを使用しても、GeoRasterオブジェクトのセル・データの再投影またはリサンプリングは行われません。

GeoRasterオブジェクトのモデル空間に関連付けられた座標系(SDO_SRID値)を戻すには、SDO_GEOR.getModelSRIDファンクションを使用します。

例

次の例では、GeoRasterオブジェクトの座標系をLongitude / Latitude (WGS 66)に変更します。これは、MDSYS.CS_SRSシステム表のSRID値82394に関連付けられた座標系です。(この例は、GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項の例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;
/

SDO_GEOR.setOrthoRectified

構文

SDO_GEOR.setOrthoRectified(

georaster IN OUT SDO_GEORASTER,

isOrthoRectified IN VARCHAR2);

説明

GeoRasterオブジェクトがオルソ補正されているかどうかを指定します。または、isOrthoRectifiedパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

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

isOrthoRectified

GeoRasterオブジェクトがオルソ補正されていると指定する場合はTRUE、オルソ補正されていないと指定する場合はFALSEを指定します。GeoRasterメタデータに空間参照情報が含まれていない場合はNULLを指定します。GeoRasterメタデータに空間参照情報が含まれている場合は、TRUEまたはFALSE (大文字/小文字は区別されません)を指定する必要があります。

使用上の注意

このプロシージャは、オブジェクトのGeoRasterメタデータを変更します。オブジェクトを実際にオルソ補正するわけではありません。また、オルソ補正の実行の確認は、ユーザーが行います。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

GeoRasterオブジェクトをオルソ補正済として設定するには、オブジェクトが空間参照および幾何補正されている必要があります。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)を、オルソ補正済であると設定します。(GEORASTER_TABLE表の定義は、1.4.1項の例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;
/

SDO_GEOR.setRasterType

構文

SDO_GEOR.setRasterType(

georaster IN OUT SDO_GEORASTER,

rasterType IN NUMBER);

説明

GeoRasterオブジェクトのラスター型を設定します。

パラメータ

georaster

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

rasterType

GeoRasterオブジェクトのrasterType属性として設定する数値を指定します。2.1.1項に示す書式で、有効な5桁の数値を指定する必要があります。

使用上の注意

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

rasterTypeがNULLの場合、または既存のrasterType値の最初の3桁が変更されている場合は、例外が発生します。

例

次の例では、GeoRasterオブジェクトのrasterType属性値を20001に設定します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は1.4.1項の例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;
/

SDO_GEOR.setRectified

構文

SDO_GEOR.setRectified(

georaster IN OUT SDO_GEORASTER,

isRectified IN VARCHAR2);

説明

GeoRasterオブジェクトが幾何補正されているかどうかを指定します。または、isRectifiedパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

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

isRectified

GeoRasterオブジェクトが幾何補正されていると指定する場合はTRUE、幾何補正されていないと指定する場合はFALSEを指定します。GeoRasterメタデータに空間参照情報が含まれていない場合はNULLを指定します。GeoRasterメタデータに空間参照情報が含まれている場合は、TRUEまたはFALSE (大文字/小文字は区別されません)を指定する必要があります。

使用上の注意

このプロシージャは、オブジェクトのGeoRasterメタデータを変更します。オブジェクトを実際に幾何補正するわけではありません。また、幾何補正の実行の確認は、ユーザーが行います。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

isRectifiedをTRUEに設定する場合は、GeoRasterオブジェクトが空間参照されている必要があります(SDO_GEOR.setSpatialReferencedプロシージャを参照)。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)を、幾何補正されていないと設定します。(GEORASTER_TABLE表の定義は、1.4.1項の例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;
/

SDO_GEOR.setScaling

構文

SDO_GEOR.setScaling(

georaster IN OUT SDO_GEORASTER,

layerNumber IN NUMBER,

scalingFunc IN SDO_NUMBER_ARRAY);

説明

レイヤーに関連付けられたスケール変更ファンクションを設定します。または、scalingFuncパラメータにNULLが指定された場合、既存の値を削除します。

注意:
今回のリリースのGeoRasterでは、スケール変更ファンクションを使用した操作は実行されません。

パラメータ

georaster

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

layerNumber

操作を実行するレイヤーの番号を指定します。

scalingFunc

スケール変更ファンクションの係数ごとに1つの値を指定した、数値の配列を指定します。スケール変更ファンクションは、次のとおりです。

value = (a_0 + a_1 * cellvalue) / (b_0 + b_1 * cellvalue)

係数の順序は、a_0、a_1、b_0、b_1です。

使用上の注意

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

layerNumberがNULLか、GeoRasterオブジェクトに対して無効である場合、scalingFuncが不適切な配列サイズである場合、a_0、a_1、b_0および_1のいずれかがNULLの場合、またはb_0と_1の両方が0(ゼロ)の場合は、例外が発生します。

例

次の例では、GeoRasterオブジェクトのレイヤー2に、スケール変更ファンクションの係数を設定します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は1.4.1項の例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;
/

SDO_GEOR.setSourceInfo

構文

SDO_GEOR.setSourceInfo(

georaster IN OUT SDO_GEORASTER,

sourceInfo IN VARCHAR2);

説明

GeoRasterオブジェクトのソース情報を設定します。または、sourceInfoパラメータにNULLが指定された場合は、既存の値を削除します。

パラメータ

georaster

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

sourceInfo

ソース情報を文字列で指定します。最大4096文字です。

使用上の注意

指定したsourceInfo文字列は、GeoRasterオブジェクトのメタデータの<sourceInfo>要素に格納されます(付録Aを参照)。

このプロシージャは、既存のソース情報の値をすべて置き換えます。既存の値を保持したまま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.

SDO_GEOR.setSpatialReferenced

構文

SDO_GEOR.setSpatialReferenced(

georaster IN OUT SDO_GEORASTER,

isReferenced IN VARCHAR2);

説明

GeoRasterオブジェクトが空間参照されているかどうかを指定します。または、isReferencedパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

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

isReferenced

GeoRasterオブジェクトが空間参照されていると指定する場合はTRUE、空間参照されていないと指定する場合はFALSEを指定します。GeoRasterメタデータに空間参照情報が含まれていない場合はNULLを指定します。GeoRasterメタデータに空間参照情報が含まれている場合は、TRUEまたはFALSE (大文字/小文字は区別されません)を指定する必要があります。

使用上の注意

このプロシージャは、GeoRasterオブジェクトが空間参照されているかどうかを設定します。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)を、空間参照されていないと設定します。(GEORASTER_TABLE表の定義は、1.4.1項の例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;
/

SDO_GEOR.setSpatialResolutions

構文

SDO_GEOR.setSpatialResolutions(

georaster IN OUT SDO_GEORASTER,

resolutions IN SDO_NUMBER_ARRAY);

説明

GeoRasterオブジェクトの各空間次元の空間解像度の値を設定します。または、resolutionsパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

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

resolutions

空間次元ごとに1つの値を指定した、数値の配列を指定します。各値は、ピクセルの空間次元によって表現されるデータ領域に関連付けられた測定単位の数を示します。たとえば、空間解像度の値が(10,10)で、地上データの測定単位がmである場合、各ピクセルは10m×10mの領域を示します。

使用上の注意

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

解像度がNULLではなく、GeoRasterメタデータに空間参照情報が含まれていない場合は、このプロシージャによって、最小のデフォルト値を持つ空間参照情報が追加されます。

SDO_GEOR.getSpatialResolutionsファンクションの「使用上の注意」も参照してください。

例

次の例では、GeoRasterオブジェクトの列次元および行次元(X次元およびY次元)の空間解像度の値を設定します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は1.4.1項の例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;
/

SDO_GEOR.setSpectralResolution

構文

SDO_GEOR.setSpectralResolution(

georaster IN OUT SDO_GEORASTER,

resolution IN NUMBER);

説明

GeoRasterオブジェクトがハイパースペクトルまたはマルチバンド・イメージである場合、そのスペクトル解像度を設定します。または、resolutionパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

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

解像度

スペクトル解像度の値を指定します。GeoRasterメタデータにバンド参照情報が含まれていない場合は、NULLにする必要があります。

使用上の注意

バンドの波長幅は、スペクトル単位とスペクトル解像度を組み合せて示します。たとえば、スペクトル解像度の値が2で、スペクトル単位の値がMILLIMETERである場合、バンドの波長幅は2mmです。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

GeoRasterオブジェクトのスペクトル解像度を戻すには、SDO_GEOR.getSpectralResolutionファンクションを使用します。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のスペクトル解像度の値を、0.5に設定します。(GEORASTER_TABLE表の定義は、1.4.1項の例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;
/

SDO_GEOR.setSpectralUnit

構文

SDO_GEOR.setSpectralUnit(

georaster IN OUT SDO_GEORASTER,

unit IN VARCHAR2);

説明

バンドの波長幅を示す測定単位を設定します。または、unitパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

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

unit

スペクトル単位を指定します。GeoRasterメタデータにバンド参照情報が含まれている場合は、METER、MILLIMETER、MICROMETER、NANOMETERのいずれかの値にする必要があります。GeoRasterメタデータにバンド参照情報が含まれていない場合は、NULLにする必要があります。

使用上の注意

バンドの波長幅は、スペクトル単位とスペクトル解像度を組み合せて示します。たとえば、スペクトル解像度の値が2で、スペクトル単位の値がMILLIMETERである場合、バンドの波長幅は2mmです。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

GeoRasterオブジェクトのスペクトル単位を戻すには、SDO_GEOR.getSpectralUnitファンクションを使用します。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のスペクトル単位を、MICROMETERに設定します。(GEORASTER_TABLE表の定義は、1.4.1項の例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;
/

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オブジェクト型およびこのオブジェクト型のコンストラクタについては、2.3.5項を参照してください。

このオブジェクトでは、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.4.1項の例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

汎用関数フィッティング地理参照モデル(1.6.1項を参照)を使用する場合は、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;
/

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型のヒストグラムを指定します。このオブジェクト型およびヒストグラムの概要は、2.3.1項で説明しています。

samplingFactor

サンプリング係数を指定します。1/nの分母nのことで、統計の算出時に使用するセルの数を表します。たとえば、samplingFactorが4の場合は、セルの4分の1が統計の算出に使用されます。デフォルトは1です。この場合、すべてのセルが使用されます。この数値が大きくなるほど統計の精度は下がる可能性がありますが、統計算出の速度は速くなります。

samplingWindow

サンプリング・ウィンドウ: 統計を設定する矩形ウィンドウを指定します。左下と右上の座標を含む数値配列か、SDO_GEOMETRYオブジェクトとして指定します。SDO_NUMBER_ARRAY型はVARRAY(1048576) OF NUMBERとして定義されます。ウィンドウは、セル空間のエクステント内に収まっている必要があります。このパラメータのデフォルトはイメージ全体です。

使用上の注意

このプロシージャは、GeoRasterメタデータのXMLスキーマ(付録Aを参照)の<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.4.1項の例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;
/

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の詳細は、1.3項を参照してください。

使用上の注意

メタデータに空間参照情報が含まれ、GeoRasterオブジェクトが地理参照されている場合、空間参照情報が有効かどうかが確認されます。有効な場合は、地理参照情報を含む空間参照情報は更新され、新しいULT座標に従って調整されますが、有効でない場合は、例外が発生します。

GeoRasterオブジェクトの左上の座標値を戻すには、SDO_GEOR.getULTCoordinateファンクションを使用します。

ultCoordがNULLか、不適切な配列サイズある場合、またはNULLの配列要素を含んでいる場合は、例外が発生します。

例

次の例では、rasterType値が20001または21001のどちらであるかを処理するロジックによって、GeoRasterオブジェクトの左上角の行および列の座標を設定します。(この例は、GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項の例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;
/

SDO_GEOR.setVAT

構文

SDO_GEOR.setVAT(

georaster IN OUT SDO_GEORASTER,

layerNumber IN NUMBER,

vatName IN VARCHAR2);

説明

GeoRasterオブジェクトのレイヤーに関連付けられた値属性表(VAT)の名前を設定します。または、vatNameパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

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

layerNumber

操作を実行するレイヤーの番号を指定します。

vatName

値属性表の名前を指定します。

使用上の注意

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

値属性表の詳細は、1.2.3項を参照してください。

GeoRasterオブジェクトのレイヤーに関連付けられた値属性表の名前を戻すには、SDO_GEOR.getVATファンクションを使用します。

layerNumberがNULLか、GeoRasterオブジェクトに対して無効な場合、またはvatNameが空の文字列('')の場合は、例外が発生します。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー3に関連付ける値属性表として、VATT1を指定します。(GEORASTER_TABLE表の定義は、1.4.1項の例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;
/

SDO_GEOR.setVersion

構文

SDO_GEOR.setVersion(

georaster IN OUT SDO_GEORASTER,

majorVersion IN VARCHAR2,

minorVersion IN VARCHAR2);

説明

GeoRasterオブジェクトのユーザー指定のバージョンを設定します。

パラメータ

georaster

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

majorVersion

GeoRasterオブジェクトのメジャー・バージョン番号を示す文字列を指定します。たとえば、バージョン全体を示す文字列が15a.beta1の場合、majorVersion値には15aを指定します。

パラメータ値がNULLの場合、GeoRasterオブジェクトの既存のmajorVersion値は削除されます。

minorVersion

GeoRasterオブジェクトのマイナー・バージョン番号を示す文字列を指定します。たとえば、バージョン全体を示す文字列が15a.beta1の場合、minorVersion値にはbeta1を指定します。

パラメータ値がNULLの場合、GeoRasterオブジェクトの既存のminorVersion値は削除されます。

使用上の注意

メジャー・バージョン番号とマイナー・バージョン番号を示す文字列には、任意の方法で指定したバージョンを反映できます。majorVersion値およびminorVersion値には、任意の文字列を指定できますが、いずれの値にも空の文字列('')を指定することはできません。

GeoRasterオブジェクトのバージョンを示す文字列を取得するには、SDO_GEOR.getVersionファンクションを使用します。このファンクションは、「メジャー・バージョン番号.マイナー・バージョン番号」という書式でバージョンを戻します。

例

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のバージョンを、15a.beta1に設定します。(GEORASTER_TABLE表の定義は、1.4.1項の例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;
/

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

記憶域パラメータを示す文字列を指定します(1.4.1項を参照)。

outGeoRaster

新しいSDO_GEORASTERオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、1.4.3項を参照してください。)inGeoRasterと同じGeoRasterオブジェクトは指定できません。

bgValues

部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(1.4.4項を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。

入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。

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パラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、1.3項を参照してください。)

cropAreaパラメータで測地MBRを指定する場合、日付変更線をまたぐMBRは指定できません。測地MBRについては、『Oracle Spatial開発者ガイド』を参照してください。

クリップ・ウィンドウ・ジオメトリ・オブジェクト自体を使用してGeoRasterオブジェクトをサブセット化するには、ジオメトリ・オブジェクトが2nn3または2nn7という形式のSDO_GTYPE値を持つ有効な2次元ポリゴン・ジオメトリ(単純または複数のポリゴン)である必要があります。他のSDO_GTYPE値には、polygonClipパラメータの値にかかわらず、ジオメトリ・オブジェクトのMBRが使用されます。(SDO_GTYPE値の詳細は、『Oracle Spatial開発者ガイド』を参照してください。)

クリップ・ウィンドウ・ジオメトリ・オブジェクト自体がサブセット・プロセスに適用される場合、ポリゴン内またはポリゴンのエッジに接しているすべてのセルが戻されますが、ジオメトリ・オブジェクトの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.4.1項の例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.4.1項の例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;
/

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オブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(1.4.4項を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。

入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。

使用上の注意

注意:
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パラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、1.3項を参照してください。)

targetAreaパラメータで測地MBRを指定する場合は、日付変更線をまたぐMBRは指定できません。測地MBRについては、『Oracle Spatial開発者ガイド』を参照してください。

既存のビットマップ・マスクは更新されません。

ソース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;
/

SDO_GEOR.validateBlockMBR

構文

SDO_GEOR.validateBlockMBR(

georaster IN SDO_GEORASTER

) RETURN VARCHAR2;

説明

GeoRasterオブジェクトの各ブロックのblockMBR属性を検証します。

パラメータ

georaster

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

使用上の注意

このファンクションは、指定したGeoRasterオブジェクトに関連付けられたラスター・データ表に含まれる各行のblockMBR属性(2.2.6項を参照)をチェックし、ジオメトリが実際にブロックの最小境界矩形(MBR)であるかどうかを確認します。

このファンクションは、blockMBR属性が各ブロックのMBRである場合は文字列TRUEを、GeoRasterオブジェクトがNULLの場合はNULL値を戻します。既知のエラーの場合はOracleエラー・コードを、不明なエラーの場合はFALSEを戻します。

3.2項の説明に従って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

SDO_GEOR.validateGeoRaster

構文

SDO_GEOR.validateGeoRaster(

georaster IN SDO_GEORASTER

) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのラスター・データおよびメタデータを確認して、GeoRasterオブジェクトを検証します。

パラメータ

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のみです。(ピラミッドの詳細は、1.7項を参照してください。)

- ラスター・データ表の名前には、空白、ピリオド、または大/小文字が混在する文字列を引用符で囲った値は使用できません。すべての英数字は大文字である必要があります。

- ラスター・データ表は、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です。これは空のビットマップ・マスクのラスター・ブロックです。)

- 汎用関数フィッティング多項式モデルがサポートされています(1.6.1項を参照)。オフセット、スケール、RMS値、pType、nVarsおよび多項式の係数の数の制限については、1.6.1項および2.3.5項の表2-4を参照してください。

- GeoRaster SRSメタデータのSRIDは、CS_SRS表に対してチェックされず、検証されません。SRIDを検証するには、SDO_GEOR.getModelSRIDおよびSDO_CS.VALIDATE_WKTをコールします(後者については、『Oracle Spatial開発者ガイド』を参照)。今回のリリースでは、verticalSRID値は使用されません。

- StoredFunction地理参照モデルとして地上基準点(GCP)がサポートされます。メタデータのgcpGeoreferenceModelは、SDO_GEOR_GCPGEOREFTYPE型の定義に従う必要があり(2.3.8項を参照)、各GCPは、SDO_GEOR_GCP型の仕様に従う必要があります(2.3.6項を参照)。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属性については、2.2.6項を参照してください。)blockMBRジオメトリを検証する場合は、SDO_GEOR.validateBlockMBRファンクションを使用します。

ALL_SDO_GEOR_SYSDATAビュー(2.4項を参照)に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

5 SDO_GEOR_ADMINパッケージのリファレンス

MDSYS.SDO_GEOR_ADMINパッケージには、GeoRasterに関連する管理操作を行うためのサブプログラム(ファンクションおよびプロシージャ)が含まれています。この章では、そのサブプログラムのリファレンス情報を、例を使用して説明します。

SDO_GEOR_ADMIN.checkSysdataEntries

構文

SDO_GEOR_ADMIN.checkSysdataEntries() RETURN SDO_STRING2_ARRAY;

説明

USER_SDO_GEOR_SYSDATAビューで無効なエントリがあるかどうかを確認します。

パラメータ

なし

使用上の注意

このファンクションは、無効なGeoRasterシステム・データ・エントリのカンマ区切りリストの配列を戻します。このファンクションでは次のようなエラーを確認します。

- RDT名が一意でない。

- GeoRaster表が存在しない。

- GeoRaster列が存在しない。

- GeoRasterオブジェクトが存在しない。

- GeoRasterオブジェクトが空または空白ではないが、RDTが存在しない。

- GeoRasterオブジェクトが重複して存在する(RDTとラスターIDの一意ではない組合せが1つ以上存在する)。

MDSYSユーザーとして接続してこのファンクションをコールすると、USER_SDO_GEOR_METADATAビューのかわりにALL_SDO_GEOR_SYSDATAビューのエントリを確認します。

USER_SDO_GEOR_DATAビューおよびALL_SDO_GEOR_SYSDATAビューの詳細は、2.4項を参照してください。

例

次の例では、USER_SDO_GEOR_SYSDATAビューで無効なエントリがあるかどうかを確認します。

SELECT * FROM THE (SELECT SDO_GEOR_ADMIN.checkSysdataEntries FROM DUAL);

COLUMN_VALUE
--------------------------------------------------------------------------------
The RDT name "RDT1" is not unique
The GeoRaster object GEOR_TEST1.TABLE1.GEOR: RDT=RDT2 RID=3 is associated with a
non-existing RDT table!
The specification of GeoRaster column GEOR_TEST1.TABLE1.c1  is not correct.
The GeoRaster object GEOR_TEST1.TABLE1.geor: RDT=dt3 RID=2 doesn't exist!
The GeoRaster table GEOR_TEST1.t1  doesn't exist!

SDO_GEOR_ADMIN.isRDTNameUnique

構文

SDO_GEOR_ADMIN.isRDTNameUniquer(

rdtName VARCHAR2)

RETURN VARCHAR2;

説明

指定したラスター・データ表(RDT)の名前が、データベース内で一意のRDT名であるかどうかを確認します。

パラメータ

rdtName

一意かどうかを確認する名前を指定します。

使用上の注意

このファンクションを使用すると、指定しようとしているRDT名が一意かどうか、RDTを作成する前に確認できます。

このファンクションは、名前が一意の場合は文字列TRUEを戻し、名前が一意でない場合は文字列FALSEを戻します。

例

次の例では、MY_RDTが一意の名前かどうかを確認します。

SELECT SDO_GEOR_ADMIN.IsRDTNameUnique('MY_RDT')  FROM DUAL;

SDO_GEOR_ADMIN.ISRDTNAMEUNIQUE('MY_RDT')
--------------------------------------------------------------------------------
TRUE

SDO_GEOR_ADMIN.isUpgradeNeeded

構文

SDO_GEOR_ADMIN.isUpgradeNeeded() RETURN SDO_STRING2_ARRAY;

説明

現行のスキーマのGeoRasterシステム・データ・エントリおよびGeoRasterデータを確認します。

パラメータ

なし

使用上の注意

このファンクションは、無効なGeoRasterシステム・データ・エントリ、無効なGeoRaster列および無効なGeoRasterオブジェクトのカンマ区切りリストの配列を戻します。このファンクションでは次のようなエラーを報告します。

- システム・データ・エントリ・エラー: RDT名が一意でない。

- システム・データ・エントリ・エラー: RDTとRIDのペアが一意でない。

- システム・データ・エントリ・エラー: GeoRaster表が存在しない。

- システム・データ・エントリ・エラー: GeoRaster列が存在しない。

- システム・データ・エントリ・エラー: GeoRasterオブジェクトが存在しない。

- GeoRasterオブジェクトが空または空白ではないが、RDTが存在しない。

- GeoRasterオブジェクトが重複して存在する(RDTとラスターIDの一意ではない組合せが1つ以上存在する)。

- (GeoRaster列、GeoRasterオブジェクト)のペアで、登録されていないものがある。

MDSYSユーザーとして接続してこのファンクションをコールすると、データベース全体のGeoRasterシステム・データ・エントリおよびGeoRasterデータを確認します。

例

次の例では、GeoRasterシステム・データ・エントリおよびGeoRasterデータを確認します。MDSYSユーザーとして接続していることを想定しています。

SELECT * FROM THE (SELECT SDO_GEOR_ADMIN.isUpgradeNeeded FROM DUAL);

COLUMN_VALUE
--------------------------------------------------------------------------------
The following GeoRaster columns aren't registered:
SCHEMA:GEOR_TEST TABLE:TABLE1 COLUMN:GEOR
The following GeoRaster objects aren't registered:
SCHEMA:GEOR_TEST TABLE:TABLE1 COLUMN:GEOR RDT:RDT RID:3
SCHEMA:GEOR_TEST TABLE:TABLE1 COLUMN:GEOR RDT:RDT RID:4

SDO_GEOR_ADMIN.listGeoRasterColumns

構文

SDO_GEOR_ADMIN.listGeoRasterColumns() RETURN SDO_STRING2_ARRAYSET;

説明

現行のスキーマに定義されているGeoRaster列を示します。

パラメータ

なし

使用上の注意

このファンクションは、GeoRaster列とその登録ステータスのカンマ区切りリストの配列を戻します。このリストの内容は次のとおりです。

- スキーマ名(MDSYSユーザーとして接続している場合のみ)

- GeoRaster表の名前

- GeoRaster列の名前

- ステータス: registered(登録済: GeoRaster列にDMLトリガーが作成されている)またはunregistered(未登録: GeoRaster列にDMLトリガーが作成されていない)

MDSYSユーザーとして接続してこのファンクションをコールすると、データベースに定義されているすべてのGeoRaster列が示されます。

例

次の例では、現行のスキーマに定義されているGeoRaster列を示します。

SELECT * FROM THE (SELECT SDO_GEOR_ADMIN.listGeoRasterColumns FROM DUAL);

COLUMN_VALUE
---------------------------------------------------------------------------------
SDO_STRING2_ARRAY('TEST_TABLE1', 'GEOR', 'registered')
SDO_STRING2_ARRAY('TEST_TABLE2', 'GEOR', 'registered')

SDO_GEOR_ADMIN.listGeoRasterObjects

構文

SDO_GEOR_ADMIN.listGeoRasterObjects() RETURN SDO_STRING2_ARRAYSET;

説明

現行のスキーマに定義されているGeoRasterオブジェクトを示します。

パラメータ

なし

使用上の注意

このファンクションは、GeoRasterオブジェクトとその登録ステータスのカンマ区切りリストの配列を戻します。このリストの内容は次のとおりです。

- スキーマ名(MDSYSユーザーとして接続している場合のみ)

- GeoRaster表の名前

- GeoRaster列の名前

- RDTの名前

- ラスターID

- ステータス: registered(GeoRasterオブジェクトがSYSDATA表に登録されている)またはunregistered(GeoRasterオブジェクトがSYSDATA表に登録されていない)

MDSYSユーザーとして接続してこのファンクションをコールすると、データベースに定義されているすべてのGeoRasterオブジェクトが示されます。

例

次の例では、現行のスキーマに定義されているGeoRasterオブジェクトを示します。

SELECT * FROM THE (SELECT SDO_GEOR_ADMIN.listGeoRasterObjects FROM DUAL);

COLUMN_VALUE
---------------------------------------------------------------------------------
SDO_STRING2_ARRAY('TEST_TABLE1', 'GEOR', 'RDT_REGULAR_01', '1', 'registered')
SDO_STRING2_ARRAY('TEST_TABLE2', 'GEOR', 'RDT_REGULAR_01', '2', 'registered')

SDO_GEOR_ADMIN.listGeoRasterTables

構文

SDO_GEOR_ADMIN.listGeoRasterTables() RETURN SDO_STRING2_ARRAYSET;

説明

現行のスキーマに定義されているGeoRaster表を示します。

パラメータ

なし

使用上の注意

このファンクションは、GeoRaster表のカンマ区切りリストの配列を戻します。このリストの内容は次のとおりです。

- スキーマ名(MDSYSユーザーとして接続している場合のみ)

- GeoRaster表の名前

MDSYSユーザーとして接続してこのファンクションをコールすると、データベースに定義されているすべてのGeoRaster表が示されます。

例

次の例では、データベースに定義されているGeoRaster表を示します。MDSYSユーザーとして接続していることを想定しています。

SELECT * FROM THE (SELECT SDO_GEOR_ADMIN.listGeoRasterTables FROM DUAL);

COLUMN_VALUE
---------------------------------------------------------------------------------
SDO_STRING2_ARRAY('GEOR_TEST', 'TEST_TABLE1')
SDO_STRING2_ARRAY('GEOR_TEST', 'TEST_TABLE2')

SDO_GEOR_ADMIN.listDanglingRasterData

構文

SDO_GEOR_ADMIN.listDanglingRasterData() RETURN SDO_STRING2_ARRAYSET;

説明

GeoRasterシステム・データ・エントリおよびGeoRasterデータを確認し、すべてのダングリング・ラスター・データを示します。

パラメータ

なし

使用上の注意

ラスター・データ表(RDT)には、存在しないGeoRasterオブジェクトまたはSYSDATA表で参照されないGeoRasterオブジェクトに対する行が存在することがあります。このような行に関連付けられたラスター・ブロックを、ダングリング・ブロックといいます。ダングリング・ラスター・ブロックが存在すると、RDTに必要な主キーが定義されているかぎり問題は発生しませんが、RDTのディスク領域が無駄に消費されます。現行のスキーマ内またはすべてのスキーマ内にあるダングリング・ブロックを検索するには、SDO_GEOR_ADMIN.listDanglingRasterDataファンクションをコールします。

このファンクションをコールする前に、SDO_GEOR_ADMIN.registerGeoRasterObjectsをコールしてすべての既存のGeoRasterオブジェクトを登録する必要があります。

ダングリング・ラスター・ブロック・データをRDTから削除するには、SDO_GEOR_ADMIN.listDanglingRasterDataファンクションによって検出された問題に関連する行を削除します。

このファンクションは、ダングリング・ラスター・データのカンマ区切りリストの配列を戻します。このリストの内容は次のとおりです。

- スキーマ名(MDSYSユーザーとして接続している場合のみ)

- RDTの名前

- ラスターID

MDSYSユーザーとして接続してこのファンクションをコールすると、データベース内のすべてのダングリング・ラスター・データが示されます。

例

次の例では、現行のスキーマにあるすべてのダングリング・ラスター・データを示します。

SELECT * FROM THE (SELECT SDO_GEOR_ADMIN.listDanglingRasterData FROM DUAL);

COLUMN_VALUE
--------------------------------------------------------------------------------
SDO_STRING2_ARRAY('RDT11', '3')

SDO_GEOR_ADMIN.listRDT

構文

SDO_GEOR_ADMIN.listRDT() RETURN SDO_STRING2_ARRAYSET;

説明

現行のスキーマに定義されているラスター・データ表(RDT)を示します。

パラメータ

なし

使用上の注意

このファンクションは、RDTのカンマ区切りリストの配列を戻します。このリストの内容は次のとおりです。

- スキーマ名(MDSYSユーザーとして接続している場合のみ)

- RDTの名前

MDSYSユーザーとして接続してこのファンクションをコールすると、データベースに定義されているすべてのRDTが示されます。

例

次の例では、現行のスキーマに定義されているRDTを示します。

SELECT * FROM THE (SELECT SDO_GEOR_ADMIN.listRDT FROM DUAL);

COLUMN_VALUE
---------------------------------------------------------------------------------
SDO_STRING2_ARRAY('RDT_REGULAR_01')
SDO_STRING2_ARRAY('RDT_REGULAR_02')

SDO_GEOR_ADMIN.listRegisteredRDT

構文

SDO_GEOR_ADMIN.listRegisteredRDT() RETURN SDO_STRING2_ARRAYSET;

説明

現行のスキーマに定義されている登録済のラスター・データ表(RDT)を示します。SYSDATA表内の1つ以上のエントリから参照されていれば、RDTは登録済です。

パラメータ

なし

使用上の注意

このファンクションは、RDTのカンマ区切りリストの配列を戻します。このリストの内容は次のとおりです。

- スキーマ名(MDSYSユーザーとして接続している場合のみ)

- RDTの名前

MDSYSユーザーとして接続してこのファンクションをコールすると、データベースに定義されているすべての登録済のRDTが示されます。

例

次の例では、現行のスキーマに定義されている登録済のRDTを示します。

SELECT * FROM THE (SELECT SDO_GEOR_ADMIN.listRegisteredRDT FROM DUAL);

COLUMN_VALUE
---------------------------------------------------------------------------------
SDO_STRING2_ARRAY('RDT1_REGULAR_01')

SDO_GEOR_ADMIN.listUnregisteredRDT

構文

SDO_GEOR_ADMIN.listUnregusteredRDT() RETURN SDO_STRING2_ARRAYSET;

説明

現行のスキーマに定義されている未登録のラスター・データ表(RDT)を示します。SYSDATA表内のエントリから参照されていない場合、RDTは未登録です。

パラメータ

なし

使用上の注意

このファンクションは、RDTのカンマ区切りリストの配列を戻します。このリストの内容は次のとおりです。

- スキーマ名(MDSYSユーザーとして接続している場合のみ)

- RDTの名前

MDSYSユーザーとして接続してこのファンクションをコールすると、データベースに定義されているすべての未登録のRDTが示されます。

例

次の例では、現行のスキーマに定義されている未登録のRDTを示します。

SELECT * FROM THE (SELECT SDO_GEOR_ADMIN.listUnregisteredRDT FROM DUAL);

COLUMN_VALUE
---------------------------------------------------------------------------------
SDO_STRING2_ARRAY('RDT_REGULAR_02')

SDO_GEOR_ADMIN.maintainSysdataEntries

構文

SDO_GEOR_ADMIN.maintainSysdataEntries() RETURN SDO_STRING2_ARRAY;

説明

USER_SDO_GEOR_SYSDATAビューで無効なエントリを確認し、必要に応じて修正処理を行います。

パラメータ

なし

使用上の注意

このファンクションはSDO_GEOR_ADMIN.checkSysdataEntriesファンクションと同じ確認を実行し、(該当する修正処理がある場合は)適切な修正処理を行います。次の各エラーについて、このファンクションでは次の修正処理を行います。

- RDT名が一意でない。MDSYS以外のユーザーとして接続している場合は何も処理が行われません。ユーザーMDSYSとして接続している場合は、RDT名が一意になるように、重複しているRDTの名前が変更されます。

- GeoRaster表が存在しない。エントリが削除されます。

- GeoRaster列が存在しない。エントリが削除されます。

- GeoRasterオブジェクトが存在しない。エントリが削除されます。

- GeoRasterオブジェクトが空または空白ではないが、RDTが存在しない。エントリが削除されます。

- GeoRasterオブジェクトが重複して存在する(RDTとラスターIDの一意ではない組合せが1つ以上存在する)。エントリが削除されます。

MDSYSユーザーとして接続してこのファンクションをコールすると、USER_SDO_GEOR_METADATAビューのかわりにALL_SDO_GEOR_SYSDATAビューのエントリを確認します。

USER_SDO_GEOR_DATAビューおよびALL_SDO_GEOR_SYSDATAビューの詳細は、2.4項を参照してください。

例

次の例では、USER_SDO_GEOR_SYSDATAビューで無効なエントリを確認し、必要に応じて修正処理を行います。

DECLARE
ret SDO_STRING2_ARRAY;
BEGIN
ret:=sdo_geor_admin.MAINTAINSYSDATAENTRIES;
for i in 1..ret.count loop
dbms_output.put_line(ret(i));
end loop;
END;
/
The RDT name GEOR_TEST1.RDT2 is renamed to GEOR_TEST1.RDT1!
The sysdata entry (SCHEMA=GEOR_TEST1 RDT=dt1 RID=1) is deleted!

PL/SQL procedure successfully completed.

SDO_GEOR_ADMIN.registerGeoRasterColumns

構文

SDO_GEOR_ADMIN.registerGeoRasterColumns;

説明

現行のスキーマに定義されているすべてのGeoRaster列にDMLトリガーを作成します。

パラメータ

なし

使用上の注意

通常、このプロシージャを実行する必要はありません。なんらかのエラーまたは他の条件により、GeoRaster列とDMLトリガーとの関連付けが失われた場合のみ、このプロシージャを実行するようにしてください。

MDSYSユーザーとして接続してこのプロシージャを実行すると、すべてのスキーマに定義されているすべてのGeoRaster列にDMLトリガーが作成されます。

例

この例では、現行のスキーマに定義されているすべてのGeoRaster列にDMLトリガーを作成します。

EXECUTE sdo_geor_admin.registerGeoRasterColumns;

SDO_GEOR_ADMIN.registerGeoRasterObjects

構文

SDO_GEOR_ADMIN.registerGeoRasterObjects;

説明

現行のスキーマに定義されているすべてのGeoRasterオブジェクトを登録します。

パラメータ

なし

使用上の注意

MDSYSユーザーとして接続してこのプロシージャを実行すると、すべてのスキーマに定義されているすべてのGeoRasterオブジェクトが登録されます。

例

次の例では、現行のスキーマに定義されているすべてのGeoRasterオブジェクトを登録します。

EXECUTE sdo_geor_admin.registerGeoRasterObjects;

SDO_GEOR_ADMIN.upgradeGeoRaster

構文

SDO_GEOR_ADMIN.upgradeGeoRaster() RETURN SDO_STRING2_ARRAY;

説明

現行のスキーマのGeoRasterシステム・データ・エントリおよびGeoRasterデータを確認し、必要に応じて修正処理を実行します。

パラメータ

なし

使用上の注意

このファンクションはSDO_GEOR_ADMIN.isUpgradeNeededファンクションと同じ確認を実行し、次のエラーに対して(該当する修正処理がある場合は)適切な修正処理を行います。

- システム・データ・エントリ・エラー: RDT名が一意でない。

- システム・データ・エントリ・エラー: RDTとRIDのペアが一意でない。

- システム・データ・エントリ・エラー: GeoRaster表が存在しない。

- システム・データ・エントリ・エラー: GeoRaster列が存在しない。

- システム・データ・エントリ・エラー: GeoRasterオブジェクトが存在しない。

- GeoRasterオブジェクトが空または空白ではないが、RDTが存在しない。

- GeoRasterオブジェクトが重複して存在する(RDTとラスターIDの一意ではない組合せが1つ以上存在する)。

- (GeoRaster列、GeoRasterオブジェクト)のペアで、登録されていないものがある。

MDSYSユーザーとして接続してこのファンクションをコールすると、データベース全体のGeoRasterシステム・データ・エントリおよびGeoRasterデータを確認し、適切な修正処理を行います。

例

次の例では、現行のスキーマのGeoRasterシステム・データ・エントリおよびGeoRasterデータを確認し、必要に応じて修正処理を実行します。

DECLARE
ret SDO_STRING2_ARRAY;
BEGIN
ret:=sdo_geor_admin.upgradeGeoraster;
for i in 1..ret.count loop
dbms_output.put_line(ret(i));
end loop;
END;
/

6 SDO_GEOR_UTLパッケージのリファレンス

MDSYS.SDO_GEOR_UTLパッケージには、GeoRasterに関連するユーティリティ操作を行うためのサブプログラム(ファンクションおよびプロシージャ)が含まれています。この章では、そのサブプログラムのリファレンス情報を、例を使用して説明します。

SDO_GEOR_UTL.calcOptimizedBlockSize

構文

SDO_GEOR_UTL.calcOptimizedBlockSize(

dimensionSize IN SDO_NUMBER_ARRAY,

blockSize IN OUT SDO_NUMBER_ARRAY,

pyramidLevel IN number default 0);

説明

GeoRaster次元サイズおよびユーザー指定のブロック・サイズ値に基づいて、最適なblockSize値を計算および設定することで、使用するGeoRasterオブジェクト記憶域の埋込みスペースが少なくなります。

パラメータ

dimensionSize

GeoRasterオブジェクトの次元サイズ配列。

blockSize

ブロック・サイズ配列。この配列には、ユーザー指定のブロック・サイズ値が格納され、プロシージャが調整された最適なブロック・サイズ値を出力します。

pyramidLevel

最大ピラミッド・レベル。デフォルト値は0(ゼロ)です。

使用上の注意

このプロシージャでは、適切なブロック・サイズ値(最適ではない場合があります)を提供して自動的にそれらを調整し、GeoRasterオブジェクト記憶域の埋込みスペースの容量を削減するために最も適した特定のGeoRaster次元サイズ配列のブロック・サイズ配列値を決定します。調整は、常にユーザー指定の値を基準に行われます。詳細は、1.4.1項の表1-1「ラスター・データのstorageParamのキーワード」のblockingキーワードおよびblockSizeキーワードの説明を参照してください。

入力されたdimensionSizeパラメータまたはblockSizeパラメータに無効な値が含まれている場合、例外が発生します。

例

次の例では、指定した次元サイズ配列の(12371,11261,13)および指定したブロック・サイズ配列の(512,512,5)に基づいて、最適なブロック・サイズ値を計算して表示します。戻された最適なrowBlockSize値は、元の値の512ではなく538であり、戻された最適なbandBlockSize値は、元の値の5ではなく1であることに注意してください。

DECLARE
dimensionSize    sdo_number_array;
blockSize        sdo_number_array;
BEGIN
dimensionSize:=sdo_number_array(12371,11261,13);
blockSize:=sdo_number_array(512,512,5);
sdo_geor_utl.calcOptimizedBlockSize(dimensionSize,blockSize);
dbms_output.put_line('Optimized rowBlockSize = '||blockSize(1));
dbms_output.put_line('Optimized colBlockSize = '||blockSize(2));
dbms_output.put_line('Optimized bandBlockSize = '||blockSize(3));
END;
/
Optimized rowBlockSize = 538
Optimized colBlockSize = 512
Optimized bandBlockSize = 1

SDO_GEOR_UTL.calcRasterNominalSize

構文

SDO_GEOR_UTL.calcRasterNominalSize(

geor IN SDO_GEORASTER,

padding IN VARCHAR2 DEFAULT 'TRUE',

pyramid IN VARCHAR2 DEFAULT 'TRUE',

bitmapMask IN VARCHAR2 DEFAULT 'TRUE'

) RETURN NUMBER;

説明

GeoRasterオブジェクトが圧縮されておらず空のラスター・ブロックが含まれていないものとして、GeoRasterオブジェクトのラスター・ブロックの合計長(バイト単位)を戻します。

パラメータ

geor

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

padding

文字列TRUE(デフォルト)を指定すると、ラスター・ブロック内の埋込みが考慮されます。文字列FALSEを指定すると、ラスター・ブロック内の埋込みは考慮されません。

pyramid

文字列TRUE(デフォルト)を指定すると、ピラミッドのサイズが考慮されます。文字列FALSEを指定すると、ピラミッドのサイズは考慮されません。

bitmapMask

文字列TRUE(デフォルト)を指定すると、関連付けられたビットマップ・マスクが考慮されます。文字列FALSEを指定すると、関連付けられたビットマップ・マスクは考慮されません。ビットマップ・マスクの詳細は、1.8項を参照してください。

使用上の注意

このファンクションでは、LOB記憶域のオーバーヘッドが考慮されないため、結果はGeoRasterオブジェクトに実際に必要な記憶域の近似値となります。

このファンクションの結果は、同じGeoRasterオブジェクトでのSDO_GEOR_UTL.calcRasterStorageSizeファンクションの結果と同じか、またはそれ以上の値になります。このファンクションによって、同じGeoRasterオブジェクトのSDO_GEOR_UTL.calcRasterStorageSizeファンクションより大きな値が戻された場合、これらの値の差は、圧縮または空のラスター・ブロック、あるいはその両方を使用することによって節約された領域を反映しています。

GeoRasterの圧縮の詳細は、1.10項を参照してください。

例

次の例では、現行のブロック化方法に基づいて、GeoRasterオブジェクトの名目上のラスター・サイズ(バイト単位)を計算します。戻されるサイズには、(デフォルトで)ラスター・ブロック内の埋込み、関連付けられたビットマップ・マスクおよびピラミッドが含まれています。

SELECT SDO_GEOR_UTL.calcRasterNominalSize(georaster) nsize FROM georaster_table
WHERE georid=1;

NSIZE
----------
289150

SDO_GEOR_UTL.calcRasterStorageSize

構文

SDO_GEOR_UTL.calcRasterStorageSize(

geor IN SDO_GEORASTER

) RETURN NUMBER;

説明

GeoRasterオブジェクトのすべてのラスター・ブロックの実際の長さ(バイト単位)を戻します。

パラメータ

geor

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

使用上の注意

このファンクションは、GeoRasterオブジェクトのすべてのラスター・ブロックの実際の長さを計算します。このファンクションでは、LOB記憶域のオーバーヘッドが考慮されないため、結果はGeoRasterオブジェクトの実際の記憶域サイズの近似値となります。基本的に、このファンクションは次の文を実行します。

EXECUTE IMMEDIATE
'SELECT SUM(DBMS_LOB.getLength(rasterBlock)) FROM ' || geor.rasterDataTable || ' WHERE rasterId=' || geor.rasterId;

このファンクションの結果は、同じGeoRasterオブジェクトのSDO_GEOR_UTL.calcRasterNominalSizeファンクションの結果と同じか、またはそれ以下の値になります。このファンクションによって、同じGeoRasterオブジェクトのSDO_GEOR_UTL.calcRasterNominalSizeファンクションより小さな値が戻された場合、これらの値の差は、圧縮または空のラスター・ブロック、あるいはその両方を使用することによって節約された領域を反映します。

例

次の例では、指定したGeoRasterオブジェクトの実際のサイズと名目上のサイズの比率を(小数として)計算します。この例では、実際のサイズは名目上のサイズの約20分の1(1/20)です。

SELECT SDO_GEOR_UTL.calcRasterStorageSize(georaster)/
SDO_GEOR_UTL.calcRasterNominalSize(georaster) ratio
FROM georaster_table WHERE georid=1;

RATIO
----------
.056198816

SDO_GEOR_UTL.createDMLTrigger

構文

SDO_GEOR_UTL.createDMLTrigger(

tableName VARCHAR2,

columnName VARCHAR2);

説明

GeoRaster表のGeoRaster列に、必要な標準のGeoRasterデータ操作言語(DML)トリガーを作成します。これによって、そのDMLに関連付けられたトリガーが起動された際に、適切な操作が実行されます。

パラメータ

tableName

GeoRaster表(GeoRasterオブジェクト列が1列以上存在する行が含まれる表)の名前を指定します。

columnName

GeoRaster表内のSDO_GEORASTER型の列の名前を指定します。

使用上の注意

3.1.3項に示すとおり、GeoRasterの内部表とデータ構造の一貫性および整合性を保証するために、ユーザーがGeoRaster表(1つ以上のGeoRaster列を含む表)を作成すると、各GeoRaster列に対応する一意のDMLトリガーがGeoRasterにより自動的に作成されます。この場合、SDO_GEOR_UTL.createDMLTriggerプロシージャをコールして、追加した各GeoRaster列に対してDMLトリガーを作成する必要があります。

それ以外の場合、通常はこのプロシージャをコールする必要はありませんが、データベース・アップグレードやデータ移行などの一部の使用例では、DMLトリガーを再作成する場合に役立ちます。

例

次の例では、GEOR_COLという名前のGeoRaster列を含むXYZ_GEOR_TABという名前の表に、標準のGeoRaster DMLトリガーを作成します。

EXECUTE sdo_geor_utl.createDMLTrigger('XYZ_GEOR_TAB', 'GEOR_COL');

SDO_GEOR_UTL.fillEmptyBlocks

構文

SDO_GEOR_UTL.fillEmptyBlocks(

georaster IN OUT SDO_GEORASTER,

bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);

説明

すべての空のブロックに、指定した背景値を入力します。

パラメータ

georaster

空のブロックに埋め込むGeoRasterオブジェクトを指定します。

bgValues

空のラスター・ブロックに入力する背景値を指定します。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。このパラメータがNULLの場合、bgValuesは0(ゼロ)になります。

使用上の注意

georasterがNULLの場合、このプロシージャは処理を実行しません。

georasterにピラミッド・データが存在する場合、メタデータに格納されているピラミッド情報に基づいて、ピラミッドが再生成されます。

例

次の例では、すべての空のブロックに背景値(255,0,0)が入力されます。

DECLARE
geor  SDO_GEORASTER;
BEGIN
SELECT georaster INTO geor FROM georaster_table WHERE georid = 3 FOR UPDATE;
SDO_GEOR_UTL.fillEmptyBlocks(geor, SDO_NUMBER_ARRAY(255,0,0));
UPDATE georaster_table SET georaster = geor WHERE georid = 3;
COMMIT;
END;
/

SDO_GEOR_UTL.makeRDTNamesUnique

構文

SDO_GEOR_UTL.makeRDTNamesUnique;

説明

名前が一意でない既存の登録済ラスター・データ表の名前を変更し、データベース内ですべてのラスター・データ表の名前が一意になるようにし、新しい名前が反映されるよう、GeoRasterシステム・データおよび影響を受けるGeoRasterのすべてのオブジェクトを更新します。

パラメータ

なし

使用上の注意

1つ以上の登録済ラスター・データ表に(異なるスキーマで)同じ名前が定義されている場合は、このプロシージャか、SDO_GEOR_UTL.renameRDTプロシージャ、または両方を使用して重複を解消できます。

DBAロールでデータベースに接続する際に、このプロシージャを実行します。

このプロシージャはトランザクションではないため、結果はロールバックできません。

例

次の例では、名前が一意でない既存の登録済ラスター・データ表の名前を自動的に変更し、データベース内ですべての登録済ラスター・データ表の名前が一意になるようにし、新しい名前が反映されるよう、GeoRasterシステム・データおよび影響を受けるGeoRasterのすべてのオブジェクトを更新します。

EXECUTE sdo_geor_utl.makeRDTNamesUnique;

SDO_GEOR_UTL.renameRDT

構文

SDO_GEOR_UTL.renameRDT(

oldRDTs VARCHAR2,

newRDTs VARCHAR2 DEFAULT NULL);

説明

現行ユーザーが所有する1つ以上の既存の登録済ラスター・データ表の名前を変更し、その新しい名前が反映されるように、GeoRasterシステム・データおよび影響を受けるGeoRasterのすべてのオブジェクトを更新します。

パラメータ

oldRDTs

名前を変更する登録済ラスター・データ表の名前を指定します。複数の表を指定する場合は、カンマ区切りリストを使用します。

newRDTs

oldRDTsで指定されたラスター・データ表に割り当てる新しい名前を指定します。複数の表を指定する場合は、カンマ区切りリストを使用します。指定する順序は、oldRDTsで指定した名前と正確に対応するようにします。このパラメータにNULLを指定すると、GeoRasterは入力されたそれぞれのラスター・データ表に対して新しい一意の名前を割り当てます。

使用上の注意

別のユーザーが所有する1つ以上の登録済ラスター・データ表に同じ名前が定義されている場合は、このプロシージャか、SDO_GEOR_UTL.makeRDTNamesUniqueプロシージャ、または両方を使用して重複を解消できます。

このプロシージャを使用する前に、ラスター・データ表の所有者としてデータベースに接続する必要があります。このプロシージャでは、他のユーザーが所有しているラスター・データ表の名前を変更することはできません。

oldRDTsのいずれの表もGeoRasterシステム・データに含まれていない場合、その表は無視されます。

newRDTsのいずれかの表がGeoRasterシステム・データの名前と競合する場合、または現行ユーザーが所有している他のオブジェクトの名前と競合する場合は、例外が発生します。

このプロシージャはトランザクションではないため、結果はロールバックできません。

例

次の例では、登録済ラスター・データ表RDT_1およびRDT_2の名前を、それぞれST_RDT_1およびST_RDT_2に変更します。

EXECUTE sdo_geor_utl.renameRDT('RDT_1,RDT_2','ST_RDT_1,ST_RDT_2');

A GeoRaster メタデータのXMLスキーマ

この付録では、GeoRasterメタデータのXMLスキーマの定義を示します。GeoRasterメタデータのXMLスキーマの定義は次のとおりです。(この定義は、SDO_GEOR_XMLSCHEMA_TABLE表を問い合せても参照できます。2.5項を参照してください。)

<?xml version="1.0" encoding="UTF-8"?>
<!-- Oracle GeoRaster Metadata Schema -->
<xsd:schema targetNamespace="http://xmlns.oracle.com/spatial/georaster" xmlns="http://xmlns.oracle.com/spatial/georaster" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="0.0">
<xsd:annotation>
<xsd:documentation>====================================================
This is the XML Schema defining the metadata of Oracle GeoRaster object type
It consists of two parts: data type definitions and its element content
Part 1: Data Types
Part 1.1: Data Types for Object Info
Part 1.2: Data Types for Raster Info
Part 1.3: Data Types for Spatial-Temporal-Band Reference Systems
Part 1.3.1: Data Types for Raster Spatial Reference Systems
Part 1.3.2: Data Types for Raster Temporal Reference Systems
Part 1.3.3: Data Types for Raster Band Reference Systems
Part 1.4: Data Types for Layer Metadata
Part 2: GeoRaster Metadata Elements or Content Structure
=============================================================
</xsd:documentation>
</xsd:annotation>
<xsd:annotation>
<xsd:documentation> ===============================================
Part 1:      Data Types
================================================
</xsd:documentation>
</xsd:annotation>
<xsd:annotation>
<xsd:documentation> ==============================
Part 1.1: Data Types for Object Info
=============================
</xsd:documentation>
</xsd:annotation>
<xsd:complexType name="objectDescriptionType">
<xsd:sequence>
<xsd:element name="rasterType" type="xsd:integer"/>
<xsd:element name="ID" type="xsd:string" minOccurs="0"/>
<xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="majorVersion" type="xsd:string" minOccurs="0"/>
<xsd:element name="minorVersion" type="xsd:string" minOccurs="0"/>
<xsd:element name="isBlank" type="xsd:boolean" default="false"/>
<xsd:element name="blankCellValue" type="xsd:double" minOccurs="0"/>
<xsd:element name="defaultRed" type="xsd:positiveInteger" minOccurs="0"/>
<xsd:element name="defaultGreen" type="xsd:positiveInteger" minOccurs="0"/>
<xsd:element name="defaultPyramidLevel" type="xsd:positiveInteger" minOccurs="0"/>
<xsd:any minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation> ==============================
Part 1.2: Data Types for Raster Info
==============================
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType name="cellRepresentationType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="POINT"/>
<xsd:enumeration value="SEGMENT"/>
<xsd:enumeration value="TRIANGLE"/>
<xsd:enumeration value="SQUARE"/>
<xsd:enumeration value="RECTANGLE"/>
<xsd:enumeration value="CUBE"/>
<xsd:enumeration value="TETRAHEDRON"/>
<xsd:enumeration value="HEXAHEDRON"/>
<xsd:enumeration value="UNDEFINED"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="cellDepthType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="1BIT"/>
<xsd:enumeration value="2BIT"/>
<xsd:enumeration value="4BIT"/>
<xsd:enumeration value="8BIT_U"/>
<xsd:enumeration value="8BIT_S"/>
<xsd:enumeration value="16BIT_U"/>
<xsd:enumeration value="16BIT_S"/>
<xsd:enumeration value="32BIT_U"/>
<xsd:enumeration value="32BIT_S"/>
<xsd:enumeration value="32BIT_REAL"/>
<xsd:enumeration value="64BIT_REAL"/>
<xsd:enumeration value="64BIT_COMPLEX"/>
<xsd:enumeration value="128BIT_COMPLEX"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="supportedDimensionNumber">
<xsd:restriction base="xsd:integer">
<xsd:minInclusive value="2"/>
<xsd:maxInclusive value="3"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="cellDimensionType">
<xsd:annotation>
<xsd:documentation>
The "Band" dimension can be treated as any other semantic dimension
or any "Layer" if not remote sensing imagery or photographs
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="ROW"/>
<xsd:enumeration value="COLUMN"/>
<xsd:enumeration value="VERTICAL"/>
<xsd:enumeration value="BAND"/>
<xsd:enumeration value="TEMPORAL"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="cellDimensionSizeType">
<xsd:sequence>
<xsd:element name="size" type="xsd:positiveInteger" default="1"/>
</xsd:sequence>
<xsd:attribute name="type" type="cellDimensionType" use="required"/>
</xsd:complexType>
<xsd:complexType name="cellCoordinateType">
<xsd:sequence>
<xsd:element name="row" type="xsd:integer" default="0"/>
<xsd:element name="column" type="xsd:integer" default="0"/>
<xsd:element name="vertical" type="xsd:integer" minOccurs="0"/>
<xsd:element name="band" type="xsd:integer" minOccurs="0"/>
<xsd:element name="temporal" type="xsd:integer" minOccurs="0"/>
<xsd:any minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="compressionType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="NONE"/>
<xsd:enumeration value="RLE"/>
<xsd:enumeration value="JPEG-B"/>
<xsd:enumeration value="JPEG-F"/>
<xsd:enumeration value="DEFLATE"/>
<xsd:enumeration value="LT-MG2"/>
<xsd:enumeration value="LT-MG3"/>
<xsd:enumeration value="LT-JP2"/>
<xsd:enumeration value="JP2-C"/>
<xsd:enumeration value="JP2-F"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="compressionQuality">
<xsd:restriction base="xsd:integer">
<xsd:minInclusive value="0"/>
<xsd:maxInclusive value="100"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="compressionDescriptionType">
<xsd:sequence>
<xsd:element name="type" type="compressionType" default="NONE"/>
<xsd:element name="quality" type="compressionQuality" minOccurs="0"/>
<xsd:any minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="blockingType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="NONE"/>
<xsd:enumeration value="REGULAR"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="blockingDescriptionType">
<xsd:sequence>
<xsd:element name="type" type="blockingType" default="NONE"/>
<xsd:element name="totalRowBlocks" type="xsd:positiveInteger" default="1"/>
<xsd:element name="totalColumnBlocks" type="xsd:positiveInteger" default="1"/>
<xsd:element name="totalBandBlocks" type="xsd:positiveInteger" default="1" minOccurs="0"/>
<xsd:element name="rowBlockSize" type="xsd:positiveInteger"/>
<xsd:element name="columnBlockSize" type="xsd:positiveInteger"/>
<xsd:element name="bandBlockSize" type="xsd:positiveInteger" minOccurs="0"/>
<xsd:any minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="cellInterleavingType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="BSQ"/>
<xsd:enumeration value="BIL"/>
<xsd:enumeration value="BIP"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="pyramidType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="NONE"/>
<xsd:enumeration value="DECREASE"/>
<xsd:enumeration value="INCREASE"/>
<xsd:enumeration value="BIDIRECTION"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="resamplingType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="NN"/>
<xsd:enumeration value="BILINEAR"/>
<xsd:enumeration value="CUBIC"/>
<xsd:enumeration value="AVERAGE4"/>
<xsd:enumeration value="AVERAGE16"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="pyramidDescriptionType">
<xsd:sequence>
<xsd:element name="type" type="pyramidType" default="NONE"/>
<xsd:element name="resampling" type="resamplingType" default="NN" minOccurs="0"/>
<xsd:element name="maxLevel" type="xsd:nonNegativeInteger" default="0" minOccurs="0"/>
<xsd:any minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="rasterDescriptionType">
<xsd:sequence>
<xsd:element name="cellRepresentation" type="cellRepresentationType" default="UNDEFINED"/>
<xsd:element name="cellDepth" type="cellDepthType" default="8BIT_U"/>
<xsd:element name="NODATA" type="xsd:double" minOccurs="0"/>
<xsd:element name="totalDimensions" type="supportedDimensionNumber" default="2"/>
<xsd:element name="dimensionSize" type="cellDimensionSizeType" maxOccurs="5"/>
<xsd:element name="ULTCoordinate" type="cellCoordinateType"/>
<xsd:element name="blocking" type="blockingDescriptionType"/>
<xsd:element name="interleaving" type="cellInterleavingType" default="BSQ"/>
<xsd:element name="pyramid" type="pyramidDescriptionType"/>
<xsd:element name="compression" type="compressionDescriptionType"/>
<xsd:any minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>===========================================================
Part 1.3.1: Data Types for GeoRaster Spatial Reference System

Spatial extent (footprint) is recorded as an attribute of GeoRaster object.
ts type is SDO_GEOMETRY. So it is not included in the metadata
The cell space coordinates are named as (row, column, vertical)
The model space coordinates are named as (x, y, z)
Spatial unit information is stored in the WKT of the specified SRID
============================================================
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType name="modelDimensionType">
<xsd:annotation>
<xsd:documentation>
The following "S" means "Spectral" for remote sensing imagery. Any of X, Y,
and Z can be horizontal or vertical or any other spatial direction
(depending on user interpretation in "modelDimensionDescription").
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="X"/>
<xsd:enumeration value="Y"/>
<xsd:enumeration value="Z"/>
<xsd:enumeration value="T"/>
<xsd:enumeration value="S"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="resolutionType">
<xsd:sequence>
<xsd:element name="resolution" type="xsd:double" default="1"/>
</xsd:sequence>
<xsd:attribute name="dimensionType" type="modelDimensionType" use="required"/>
</xsd:complexType>
<xsd:simpleType name="doubleNumberListType">
<xsd:list itemType="xsd:double"/>
</xsd:simpleType>
<xsd:complexType name="polynomialType">
<xsd:sequence>
<xsd:element name="polynomialCoefficients" type="doubleNumberListType"/>
</xsd:sequence>
<xsd:attribute name="pType" type="xsd:nonNegativeInteger" use="optional" default="1"/>
<xsd:attribute name="nVars" type="xsd:nonNegativeInteger" use="required"/>
<xsd:attribute name="order" type="xsd:nonNegativeInteger" use="required"/>
<xsd:attribute name="nCoefficients" type="xsd:nonNegativeInteger" use="required"/>
<xsd:anyAttribute/>
</xsd:complexType>
<xsd:complexType name="rationalPolynomialType">
<xsd:annotation>
<xsd:documentation>
row    =   pPolynomial(x, y, z) / qPolynomial(x, y, z)
column =   rPolynomial(x, y, z) / sPolynomial(x, y, z)
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="pPolynomial" type="polynomialType"/>
<xsd:element name="qPolynomial" type="polynomialType"/>
<xsd:element name="rPolynomial" type="polynomialType"/>
<xsd:element name="sPolynomial" type="polynomialType"/>
<xsd:any minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="rowOff" type="xsd:double" use="required"/>
<xsd:attribute name="columnOff" type="xsd:double" use="required"/>
<xsd:attribute name="xOff" type="xsd:double" use="required"/>
<xsd:attribute name="yOff" type="xsd:double" use="required"/>
<xsd:attribute name="zOff" type="xsd:double" use="required"/>
<xsd:attribute name="rowScale" type="xsd:double" use="required"/>
<xsd:attribute name="columnScale" type="xsd:double" use="required"/>
<xsd:attribute name="xScale" type="xsd:double" use="required"/>
<xsd:attribute name="yScale" type="xsd:double" use="required"/>
<xsd:attribute name="zScale" type="xsd:double" use="required"/>
<xsd:attribute name="rowRMS" type="xsd:double" use="optional"/>
<xsd:attribute name="columnRMS" type="xsd:double" use="optional"/>
<xsd:attribute name="totalRMS" type="xsd:double" use="optional"/>
<xsd:attribute name="xRMS" type="xsd:double" use="optional"/>
<xsd:attribute name="yRMS" type="xsd:double" use="optional"/>
<xsd:attribute name="zRMS" type="xsd:double" use="optional"/>
<xsd:attribute name="modelTotalRMS" type="xsd:double" use="optional"/>
<xsd:anyAttribute/>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation>
The following types and definitions are for GCP support. It stores
GCP collection for the GeoRaster object. It also optionally specify
the Functional Fitting method for generating FFM using the GCP collection.
cellDimension can 2 or 3 (only 2 is supported in current release).
modelDimension can be 2, 3, -2, -3. cellCoordinate must be (row, column)
in current release.
modelCoordinate must be (X, Y) or (X, Y, Z) in current release.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType name="gcpPointType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="ControlPoint"/>
<xsd:enumeration value="CheckPoint"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="gcpPointStatusType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Measured"/>
<xsd:enumeration value="Removed"/>
<xsd:enumeration value="Estimated"/>
<xsd:enumeration value="Validated"/>
<xsd:enumeration value="Invalid"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="GCPType">
<xsd:attribute name="ID" type="xsd:string" use="optional"/>
<xsd:attribute name="description" type="xsd:string" use="optional"/>
<xsd:attribute name="type" type="gcpPointType" use="required"/>
<xsd:attribute name="cellDimension" type="xsd:nonNegativeInteger" use="required"/>
<xsd:attribute name="row" type="xsd:double" default="0" />
<xsd:attribute name="column" type="xsd:double" default="0" />
<xsd:attribute name="vertical" type="xsd:integer" use="optional"/>
<xsd:attribute name="modelDimension" type="xsd:nonNegativeInteger" use="required"/>
<xsd:attribute name="X" type="xsd:double" default="0"/>
<xsd:attribute name="Y" type="xsd:double" default="0"/>
<xsd:attribute name="Z" type="xsd:double" use="optional"/>
<xsd:attribute name="xRMS" type="xsd:double" use="optional"/>
<xsd:attribute name="yRMS" type="xsd:double" use="optional"/>
<xsd:attribute name="zRMS" type="xsd:double" use="optional"/>
<xsd:attribute name="status" type="gcpPointStatusType" use="optional"/>
<xsd:anyAttribute/>
</xsd:complexType>
<xsd:simpleType name="FFMethodType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Affine"/>
<xsd:enumeration value="QuadraticPolynomial"/>
<xsd:enumeration value="CubicPolynomial"/>
<xsd:enumeration value="DLT"/>
<xsd:enumeration value="QuadraticRational"/>
<xsd:enumeration value="RPC"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="GCPGeoreferenceType">
<xsd:sequence>
<xsd:element name="gcp" type="GCPType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="FFMethod" type="FFMethodType" use="optional"/>
</xsd:complexType>
<xsd:simpleType name="rasterSpatialReferenceModelType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="RigorousModel"/>
<xsd:enumeration value="StoredFunction"/>
<xsd:enumeration value="FunctionalFitting"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="rasterSpatialReferenceSystemType">
<xsd:sequence>
<xsd:element name="isReferenced" type="xsd:boolean" default="false"/>
<xsd:element name="isRectified" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="isOrthoRectified" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="description" type="xsd:string" minOccurs="0"/>
<xsd:element name="SRID" type="xsd:nonNegativeInteger" default="0"/>
<xsd:element name="verticalSRID" type="xsd:integer" minOccurs="0"/>
<xsd:element name="modelDimensionDescription" type="xsd:string" minOccurs="0"/>
<xsd:element name="spatialResolution" type="resolutionType" minOccurs="0" maxOccurs="3"/>
<xsd:element name="spatialTolerance" type="xsd:double" minOccurs="0"/>
<xsd:element name="modelCoordinateLocation" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="CENTER"/>
<xsd:enumeration value="UPPERLEFT"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="modelType" type="rasterSpatialReferenceModelType"
minOccurs="0" maxOccurs="3"/>
<xsd:element name="polynomialModel" type="rationalPolynomialType"
minOccurs="0"/>
<xsd:choice minOccurs="0">
<xsd:element name="gcpGeoreferenceModel" type="GCPGeoreferenceType"/>
<xsd:element name="gcpTableName" type="xsd:string" minOccurs="0"/>
</xsd:choice>
<xsd:any minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation> =================================================
Part 1.3.2: Data Types for GeoRaster Temporal Reference System

The TRS will be modeled by formulas in the future.
=================================================
</xsd:documentation>
</xsd:annotation>
<xsd:complexType name="rasterTemporalReferenceSystemType">
<xsd:sequence>
<xsd:element name="isReferenced" type="xsd:boolean" default="false"/>
<xsd:element name="description" type="xsd:string" minOccurs="0"/>
<xsd:element name="beginDateTime" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="endDateTime" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="temporalResolutionDescription" type="xsd:string" minOccurs="0"/>
<xsd:any minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation> ==================================================
Part 1.3.3: Data Types for GeoRaster Band Reference System

For multispectral remote sensing images, each band is optionally
described in the layerDescriptionType.
The BRS is modeled by formulas for hyperspectral imagery
based on number of spectral segments, min and max wavelength
and number of bands for each segment.
Detailed radiometric info will be added in the future.
=====================================================
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType name="wavelengthUnit">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="METER"/>
<xsd:enumeration value="MILLIMETER"/>
<xsd:enumeration value="MICROMETER"/>
<xsd:enumeration value="NANOMETER"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="extentType">
<xsd:sequence>
<xsd:element name="min" type="xsd:double"/>
<xsd:element name="max" type="xsd:double"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="segmentationDataType">
<xsd:sequence>
<xsd:element name="totalSegNumber" type="xsd:positiveInteger" default="1"/>
<xsd:element name="firstSegNumber" type="xsd:integer" default="1"/>
<xsd:element name="extent" type="extentType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="bandReferenceType">
<xsd:sequence>
<xsd:element name="bands" type="segmentationDataType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:any minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="rasterBandReferenceSystemType">
<xsd:sequence>
<xsd:element name="isReferenced" type="xsd:boolean" default="false"/>
<xsd:element name="description" type="xsd:string" minOccurs="0"/>
<xsd:element name="radiometricResolutionDescription" type="xsd:string" minOccurs="0"/>
<xsd:element name="spectralUnit" type="wavelengthUnit" default="MICROMETER"/>
<xsd:element name="spectralTolerance" type="xsd:double" minOccurs="0"/>
<xsd:element name="spectralResolutionDescription" type="xsd:string" minOccurs="0"/>
<xsd:element name="minSpectralResolution" type="resolutionType" minOccurs="0"/>
<xsd:element name="spectralExtent" type="extentType"/>
<xsd:element name="bandReference" type="bandReferenceType" minOccurs="0"/>
<xsd:any minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation> ====================================================
Part 1.4: Data Types for Layer Metadata

For each sub-layer the layerNumber is a positive integer, i.e., layers are
logically numbered from 1 to n if the size of the specified layerDimension is
n. The layerDimensionOrdinate of each sublayer must be in the range of the
dimension and must be in the order of band ordinates.
For objectLayer, the layerNumber should be 0 but its layerDimensionOrdinate
is not used.
=======================================================
</xsd:documentation>
</xsd:annotation>
<xsd:complexType name="NODATAType">
<xsd:sequence>
<xsd:element name="value" type="xsd:double" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="range" type="extentType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="mask" type="xsd:boolean" minOccurs="0"/>
<xsd:any minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="scalingFunctionType">
<xsd:annotation>
<xsd:documentation>
value = (a0 + a1 * cellValue)  /  (b0 + b1 * cellValue)
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="a0" type="xsd:double" default="1"/>
<xsd:element name="a1" type="xsd:double" default="0"/>
<xsd:element name="b0" type="xsd:double" default="1"/>
<xsd:element name="b1" type="xsd:double" default="0"/>
<xsd:any minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="binType">
<xsd:annotation>
<xsd:documentation>
LINEAR bin function:
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 bin function:
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 bin function means explicit (or direct) value (or value range)
for each bin and it will be stored in a table
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="LINEAR"/>
<xsd:enumeration value="LOGARITHM"/>
<xsd:enumeration value="EXPLICIT"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="binFunctionType">
<xsd:annotation>
<xsd:documentation>
The MAX and MIN in statistic dataset will be used if they are not provided
here. binTableName is used by EXPLICIT type only.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:choice>
<xsd:element name="binFunctionData" type="segmentationDataType"/>
<xsd:element name="binTableName" type="xsd:string"/>
<xsd:any minOccurs="0" maxOccurs="unbounded"/>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="type" type="binType" use="required"/>
</xsd:complexType>
<xsd:complexType name="rectangularWindowType">
<xsd:sequence>
<xsd:element name="origin" type="cellCoordinateType"/>
<xsd:element name="rowHeight" type="xsd:positiveInteger"/>
<xsd:element name="columnWidth" type="xsd:positiveInteger"/>
<xsd:any minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="cellCountType">
<xsd:attribute name="value" type="xsd:double" use="required"/>
<xsd:attribute name="count" type="xsd:nonNegativeInteger" use="required"/>
<xsd:anyAttribute/>
</xsd:complexType>
<xsd:complexType name="rasterCountType">
<xsd:sequence>
<xsd:element name="cell" type="cellCountType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="histogramType">
<xsd:sequence>
<xsd:choice>
<xsd:element name="counts" type="rasterCountType"/>
<xsd:element name="tableName" type="xsd:string"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="statisticDatasetType">
<xsd:sequence>
<xsd:element name="samplingFactor" type="xsd:positiveInteger" default="1"/>
<xsd:element name="samplingWindow" type="rectangularWindowType" minOccurs="0"/>
<xsd:element name="MIN" type="xsd:double"/>
<xsd:element name="MAX" type="xsd:double"/>
<xsd:element name="MEAN" type="xsd:double"/>
<xsd:element name="MEDIAN" type="xsd:double"/>
<xsd:element name="MODEVALUE" type="xsd:double"/>
<xsd:element name="STD" type="xsd:double"/>
<xsd:element name="histogram" type="histogramType" minOccurs="0"/>
<xsd:any minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="cellGrayType">
<xsd:attribute name="value" type="xsd:double" use="required"/>
<xsd:attribute name="gray" type="xsd:integer" use="required"/>
<xsd:anyAttribute/>
</xsd:complexType>
<xsd:complexType name="rasterGrayType">
<xsd:sequence>
<xsd:element name="cell" type="cellGrayType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="grayScaleType">
<xsd:sequence>
<xsd:choice>
<xsd:element name="grays" type="rasterGrayType"/>
<xsd:element name="tableName" type="xsd:string"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="cellPseudoColorType">
<xsd:attribute name="value" type="xsd:double" use="required"/>
<xsd:attribute name="red" type="xsd:integer" use="required"/>
<xsd:attribute name="green" type="xsd:integer" use="required"/>
<xsd:attribute name="blue" type="xsd:integer" use="required"/>
<xsd:attribute name="alpha" type="xsd:double" use="optional"/>
<xsd:anyAttribute/>
</xsd:complexType>
<xsd:complexType name="rasterPseudoColorType">
<xsd:sequence>
<xsd:element name="cell" type="cellPseudoColorType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="colorMapType">
<xsd:sequence>
<xsd:choice>
<xsd:element name="colors" type="rasterPseudoColorType"/>
<xsd:element name="tableName" type="xsd:string"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="layerType">
<xsd:sequence>
<xsd:element name="layerNumber" type="xsd:nonNegativeInteger"/>
<xsd:element name="layerDimensionOrdinate" type="xsd:integer"/>
<xsd:element name="layerID" type="xsd:string"/>
<xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="bitmapMask" type="xsd:boolean" minOccurs="0" default="false"/>
<xsd:element name="NODATA" type="NODATAType" minOccurs="0"/>
<xsd:element name="scalingFunction" type="scalingFunctionType" minOccurs="0"/>
<xsd:element name="binFunction" type="binFunctionType" minOccurs="0"/>
<xsd:element name="statisticDataset" type="statisticDatasetType" minOccurs="0"/>
<xsd:element name="grayScale" type="grayScaleType" minOccurs="0"/>
<xsd:element name="colorMap" type="colorMapType" minOccurs="0"/>
<xsd:element name="vatTableName" type="xsd:string" minOccurs="0"/>
<xsd:any minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="layerDescriptionType">
<xsd:sequence>
<xsd:element name="layerDimension" type="cellDimensionType" default="BAND"/>
<xsd:element name="objectLayer" type="layerType" minOccurs="0"/>
<xsd:element name="subLayer" type="layerType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:any minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:annotation>
<xsd:documentation> =======================================================
Part 2: Metadata Elements / Content Structure of Oracle GeoRaster Object
==========================================================
</xsd:documentation>
</xsd:annotation>
<xsd:element name="georasterMetadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="objectInfo" type="objectDescriptionType"/>
<xsd:element name="rasterInfo" type="rasterDescriptionType"/>
<xsd:element name="spatialReferenceInfo" type="rasterSpatialReferenceSystemType" minOccurs="0"/>
<xsd:element name="temporalReferenceInfo" type="rasterTemporalReferenceSystemType" minOccurs="0"/>
<xsd:element name="bandReferenceInfo" type="rasterBandReferenceSystemType" minOccurs="0"/>
<xsd:element name="layerInfo" type="layerDescriptionType" maxOccurs="unbounded"/>
<xsd:element name="sourceInfo" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
<xsd:any minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

索引
A  B  C  D  E  F  G  H  I  J  L  M  N  O  P  Q  R  S  T  U  V  W  X  Z

A

addNODATAプロシージャ, 4

管理操作を行うためのサブプログラム

GeoRaster, 5

ALL_SDO_GEOR_SYSDATAビュー, 2.4 アルファ(不透明度)値, 2.3.2 AVERAGE16リサンプリング・メソッド, 4, 4 AVERAGE4リサンプリング・メソッド, 4, 4

B

バンド番号, 1.5

bandBlockNumber属性, 2.2.3

バンド参照システム(BRS)

説明, 1.3

SDO_RASTERのbandBlockNumber属性, 2.2.3 バンド

説明, 1.5

BILINEARリサンプリング・メソッド, 4, 4 ビットマップ・マスク, 1.8 bitmapmaskキーワード

storageParamパラメータ, 1.4.1

空白のGeoRasterオブジェクト, 1.4.3 BLOBデータ

ラスター・ブロック・データ, 2.2.7

ブロック・サイズ

最適値の算出, 6

blockingキーワード

importFromのstorageParamパラメータ, 4, 4

storageParamパラメータ, 1.4.1

SDO_RASTERのblockMBR属性, 2.2.6 storageParamのblockSizeキーワード, 1.4.1 BMPイメージ形式

GeoRasterでのサポート, 1.14

BRS(バンド参照システム)

説明, 1.3

C

calcCompressionRatioファンクション, 4

calcOptimizedBlockSizeプロシージャ, 6

calcRasterNominalSizeファンクション, 6

calcRasterStorageSizeファンクション, 6

地図作成法

説明, 1.2.4

セル座標系, 1.3

モデル座標系との関係, 1.3

セル・データ

問合せおよび更新, 3.11

storageParamのcellDepthキーワード, 1.4.1 changeCellValueプロシージャ, 4 changeFormatCopyプロシージャ, 4 checkSysdataEntriesファンクション, 5 カラーマップ

アルファ(不透明度)値, 2.3.2

取得, 4

表の取得, 4

疑似カラー情報, 4

SDO_GEOR_COLORMAPオブジェクト型, 2.3.2

COLUMN_NAME列(USER_SDO_GEOR_SYSDATAビュー), 2.4.2 SDO_RASTERのcolumnBlockNumber属性, 2.2.5 COMPATIBILITYデータベース初期化パラメータ

アップグレード時の要件, 1

圧縮

圧縮率, 4

GeoRasterオブジェクトの解凍, 1.10.3

DEFLATE形式, 1.10.2

JPEG形式, 1.10.1

storageParamパラメータのキーワード, 1.4.1

LizardTech社のプラグイン, 1.10.4

GeoRasterオブジェクト, 1.10, 3.13

パフォーマンスの考慮事項, 1.10

品質, 1.4.1, 1.10.1

SecureFilesの圧縮, 1.10.5

サード・パーティのプラグイン, 1.10.4

コントラスト表

グレースケール表, 2.3.3

copyプロシージャ, 4 createBlankファンクション, 4 createDMLTriggerプロシージャ, 6 createTemplateファンクション, 4 GeoRasterにおけるクロススキーマのサポート, 1.4.5 CUBICリサンプリング・メソッド, 4, 4

D

ダングリング・ラスター・ブロック

モザイク処理の中断に起因, 4

検索, 5

データ・モデル

GeoRaster, 1.3

解凍

GeoRasterオブジェクト, 1.10.3, 3.13

パフォーマンスの考慮事項, 1.10

DEFLATE圧縮, 1.10.2 deleteControlPointプロシージャ, 4 deleteNODATAファンクション, 4 deletePyramidプロシージャ, 4 GeoRasterのデモ・ファイル

PL/SQLとJava, 1.15

デジタル・イメージ処理

説明, 1.2.5

DMLトリガー

作成, 3.1, 3.1.3, 6

E

空のブロック

入力, 6

空のGeoRasterオブジェクト, 1.4.3 ESRIワールド・ファイル

ロード, 4

GeoRasterでのサポート, 1.14

ETL(抽出、変換、ロード)ソリューション

ツール, 1.14

開発でのJava APIの使用, 1.15

evaluateDoubleファンクション, 4 GeoRasterのエクスポータ・ツール, 1.14 エクスポート

GeoRasterオブジェクト, 3.15

exportToプロシージャ, 4 抽出、変換、ロード(ETL)・ソリューション

ツール, 1.14

開発でのJava APIの使用, 1.15

F

fillEmptyBlocksプロシージャ, 6

フットプリント, 2.1.2

形式

イメージ(GeoRasterでのサポート), 1.14

ベクトルおよびラスター, 1.1

関数フィッティング多項式モデル

GeoRasterでのサポート, 1.6.1

G

generateBlockMBRファンクション, 4

generatePyramidプロシージャ, 4

generateSpatialExtentファンクション, 4

generateStatisticsプロシージャ, 4

地球化学

使用するラスター・データ, 1.2.6

地理情報システム(GIS)

ラスターベース, 1.2.3

地質学

使用するラスター・データ, 1.2.6

地理メタデータ, 2.1.5 地球物理学

使用するラスター・データ, 1.2.6

GeoRaster BRS, 1.3 GeoRasterデータ・モデル, 1.3 GeoRasterの管理, 1.11 GeoRasterオブジェクト

空白, 1.4.3

形式の変更, 4

物理記憶域の変更, 3.8

圧縮, 3.13

コピー, 3.9, 4

形式のコピーおよび変更, 4

コピーおよびスケール変更, 4

作成, 3.2

空白の作成, 4

テンプレートの作成, 4

解凍, 3.13

空, 1.4.3

エクスポート, 1.14, 3.15

地理参照, 3.5

空間エクステント・ジオメトリの索引付け, 3.7

初期化, 4

ロード, 1.14, 3.3

物理記憶域の最適化, 3.8

物理記憶域, 1.4

変更, 3.8

最適化, 3.8

処理, 3.12 ピラミッド

定義, 1.7

セル・データの問合せおよび更新, 3.11 メタデータの問合せおよび更新, 3.10 登録, 3.2 再投影, 4 スケール変更, 4 データベース間での転送, 3.21 座標情報の変換, 3.5 コミット前の更新, 3.16 検証, 3.4 表示, 1.14, 3.14 GeoRaster SRS, 1.3 GeoRaster表

GeoRasterオブジェクトが含まれる列, 2.4.2

作成, 3.1

クロススキーマのサポート, 1.4.5

定義, 1.4

メタデータ列, 2.4.3

名前, 2.4.1

その他の関連表, 2.4.6

ラスター・データ表, 2.4.4

ラスターID, 2.4.5

GeoRasterツール, 1.14 GeoRaster TRS, 1.3 GeoRasterのXMLスキーマ表, 2.5 georaster_tools.jarファイル, 1.14, 1.14.2 地理参照プロシージャ, 4 地理参照

セル座標とモデル座標の変換, 1.6.3

説明, 1.6

関数フィッティング・モデルの詳細および計算式, 1.6.1

実行用メソッド, 3.5

GeoTIFFファイル

sdoldgtf.sqlスクリプトを使用したライブラリのロード, 3.5

GeoTIFFイメージ形式

GeoRasterでのサポート, 1.14

getBandDimSizeファンクション, 4 getBeginDateTimeファンクション, 4 getBinFunctionファンクション, 4 getBinTableファンクション, 4 getBinTypeファンクション, 4 getBitmapMaskプロシージャ, 4 getBitmapMaskSubsetプロシージャ, 4 getBitmapMaskValueプロシージャ, 4 getBlankCellValueファンクション, 4 getBlockingTypeファンクション, 4 getBlockSizeファンクション, 4 getCellCoordinateファンクション, 4 getCellDepthファンクション, 4 getCellValueファンクション, 4 getColorMapファンクション, 4 getColorMapTableファンクション, 4 getCompressionTypeファンクション, 4 getControlPointファンクション, 4 getDefaultBlueファンクション, 4 getDefaultColorLayerファンクション, 4 getDefaultGreenファンクション, 4 getDefaultRedファンクション, 4 getEndDateTimeファンクション, 4 getGCPGeorefMethodファンクション, 4 getGCPGeorefModelファンクション, 4 getGeoreferenceTypeファンクション, 4 getGrayScaleファンクション, 4 getGrayScaleTableファンクション, 4 getHistogramファンクション, 4 getHistogramTableファンクション, 4 getIDファンクション, 4 getInterleavingTypeファンクション, 4 getLayerDimensionファンクション, 4 getLayerIDファンクション, 4 getLayerOrdinateファンクション, 4 getModelCoordinateファンクション, 4 getModelCoordLocationファンクション, 4 getModelSRIDファンクション, 4 getNODATAファンクション, 4 getPyramidMaxLevelファンクション, 4 getPyramidTypeファンクション, 4 getRasterBlockLocatorプロシージャ, 4 getRasterBlocksファンクション, 4 getRasterDataプロシージャ, 4 getRasterSubsetプロシージャ, 4 getScalingファンクション, 4 getSourceInfoプロシージャ, 4 getSpatialDimNumberファンクション, 4 getSpatialDimSizesファンクション, 4 getSpatialResolutionsファンクション, 4 getSpectralResolutionファンクション, 4 getSpectralUnitファンクション, 4 getSRSファンクション, 4 getStatisticsファンクション, 4 getTotalLayerNumberファンクション, 4 getULTCoordinateファンクション, 4 getVATファンクション, 4 getVersionファンクション, 4 GIFイメージ形式

GeoRasterでのサポート, 1.14

グレースケール

確認, 4

マッピング表の取得, 4

マッピング取得, 4

SDO_GEOR_GRAYSCALEオブジェクト型, 2.3.3

マッピング表の設定, 4

レイヤーのマッピングの設定, 4

グレースケール表, 2.3.3 GRDMLTR_

GRDMLTR_で始まるユーザー・トリガー名の使用不可, 1.11

グリッド・データ, 1.1 地上基準点(GCP)

GeoRasterオブジェクトの追加, 4

GCPを使用した地理参照, 1.6.2

SDO_GEOR_GCPオブジェクト型, 2.3.6

SDO_GEOR_GCP_ COLLECTIONコレクション型, 2.3.7

SDO_GEOR_GCPGEOREFTYPEオブジェクト型, 2.3.8

地上座標系, 1.3

H

hasBitmapMaskファンクション, 4

hasGrayScaleファンクション, 4

hasNODATAMaskファンクション, 4

hasPseudoColorファンクション, 4

ヒストグラム表

取得, 4

設定, 4

ヒストグラム

取得, 4

SDO_GEOR_HISTOGRAMオブジェクト型, 2.3.1

I

イメージ形式

GeoRasterでのサポート, 1.14

importFromプロシージャ, 4 索引付け

GeoRasterデータ, 3.7

initファンクション, 4 初期化

GeoRasterオブジェクト, 4

インターリーブ, 1.5

タイプの取得, 4

storageParamのキーワード, 1.4.1

interpolationMethodキーワード, 4 interpolationMethodパラメータ, 4 isBlankファンクション, 4 isOrthoRectifiedファンクション, 4 isRDTNameUniqueファンクション, 5 isRectifiedファンクション, 4 isSpatialReferencedファンクション, 4 isUpgradeNeededファンクション, 5

J

GeoRasterのJavaデモ・ファイル, 1.15

Java仮想マシン(JVM)

GeoRasterでの使用, 1

JPEG圧縮, 1.10.1 JPEGイメージ形式

ロード(GeoRasterローダー・ツールのみ), 4

GeoRasterでのサポート, 1.14

JPEG-B圧縮モード, 1.10.1 JPEG-F圧縮モード, 1.10.1

L

レイヤー番号, 1.5

layerInfo要素, 1.5

レイヤー

説明, 1.5

次元, 4

ID, 4

layerInfo要素に格納されているメタデータ, 1.5

座標, 4

listDanglingRasterDataファンクション, 5 listGeoRasterColumnsファンクション, 5 listGeoRasterObjectsファンクション, 5 listGeoRasterTablesファンクション, 5 listRDTファンクション, 5 listRegisteredRDTファンクション, 5 listUnregieteredRDTファンクション, 5 LizardTech社

MrSIDおよびJPEG 2000圧縮のプラグイン, 1.10.4

GeoRasterのローダー・ツール, 1.14 ロード

GeoRasterデータ, 3.3

参照表

グレースケール表, 2.3.3

劣化, 1.4.1, 1.10.1

M

maintainSysdataEntriesファンクション, 5

makeRDTNamesUniqueプロシージャ, 6

GeoRasterオブジェクトの管理, 1.11

地図

GeoRasterを使用した管理, 1.2.4

マスク

ビットマップ, 1.8

MBR(最小境界矩形)

blockMBR属性, 2.2.6

mergeLayersプロシージャ, 4 メタデータ

GeoRaster, 2.1.5

XMLスキーマ, A

SDO_GEORASTERのメタデータ属性, 2.1.5 METADATA_COLUMN_NAME列(USER_SDO_GEOR_SYSDATAビュー), 2.4.3 最小境界矩形(MBR)

blockMBR属性, 2.2.6

モデル座標系, 1.3

セル座標系との関係, 1.3

モデル空間, 1.3 mosaicプロシージャ, 4 MrSID

圧縮に使用するLizardTech社のプラグイン, 1.10.4

N

名前の考慮事項

Spatialの表名および列名, 1.4

Nearest Neighbor (NN)内挿方法, 4 Nearest Neighbor(NN)リサンプリング・メソッド, 4 NN (Nearest Neighbor)内挿方法, 4 NN(Nearest Neighbor)リサンプリング・メソッド4 データのないセル

追加, 4

削除, 4

値の取得, 4

名目上のサイズ

ラスター, 6

O

オブジェクト・レイヤー, 1.5

不透明度

アルファ値, 2.3.2

Oracle Label Security(OLS)

GeoRasterの使用, 4

Oracle SecureFiles

GeoRasterでの使用, 3.1.2

オルソ補正, 1.6

確認, 4

設定, 4

「幾何補正」も参照

OTHER_TABLE_NAMES列(USER_SDO_GEOR_SYSDATAビュー), 2.4.6

P

埋込み, 1.4

パレット表, 2.3.2

写真測量

説明, 1.2.2

物理記憶域

GeoRasterオブジェクト, 1.4

GeoRasterのPL/SQLデモ・ファイル, 1.15 PNGイメージ形式

GeoRasterでのサポート, 1.14

疑似カラー

確認, 4

疑似カラー表, 2.3.2 storageParamのpyramidキーワード, 1.4.1 ピラミッド・レベル

定義, 1.7

SDO_GEORASTERのpyramidLevel属性, 2.2.2

ピラミッド・タイプ, 1.7 SDO_RASTERのpyramidLevel属性, 2.2.2 pyramidParamsパラメータ, 4 ピラミッド, 1.7

データの削除, 4

決定する計算式, 1.7

データの生成, 4

図, 1.7

ピラミッド・パラメータ, 4

ピラミッドの最上位レベルの番号の取得, 4

Q

品質

storageParamパラメータのキーワード, 1.4.1

R

ラスター

名目上のサイズ, 6

記憶域サイズ, 6

ラスター・ブロック・データ, 2.2.7 ラスター・データ

概要, 1.1

ラスター・データ表(RDT)

作成, 3.1

クロススキーマのサポート, 1.4.5

定義, 1.4

名前を一意にする, 6

SDO_RASTER型のオブジェクト表, 2.2

rasterDataTable属性, 2.1.3

RDT_TABLE_NAME列, 2.4.4

名前変更, 6

ラスターID, 2.1.4, 2.2.1 ラスター空間, 1.3 ラスター型, 2.1.1 RASTER_ID列(USER_SDO_GEOR_SYSDATAビュー)2.4.5 SDO_RASTERのrasterBlock属性, 2.2.7 SDO_GEORASTERのrasterDataTable属性, 2.1.3 SDO_GEORASTERのrasterID属性, 2.1.4 SDO_RASTERのrasterID属性, 2.2.1 SDO_GEORASTERのrasterType属性, 2.1.1 RDT_TABLE_NAME列(USER_SDO_GEOR_SYSDATAビュー), 2.4.4 READMEファイル

GeoRasterツール, 1.14.1

Spatial、GeoRasterおよびトポロジとネットワークのデータ・モデル, 1.16

幾何補正, 1.6

確認, 4

設定, 4

「オルソ補正」も参照

registerGeoRasterColumnsプロシージャ, 5 registerGeoRasterObjectsプロシージャ, 5 GeoRasterオブジェクトの登録, 3.2 リモート・センシング

説明, 1.2.1

renameRDTプロシージャ, 6 reprojectプロシージャ, 4 GeoRasterオブジェクトの再投影, 3.12 resampleParamパラメータ, 4, 4 リサンプリング・メソッド, 4 解像度

スペクトル, 4

rLevelキーワード, 4 SDO_RASTERのrowBlockNumber属性, 2.2.4

S

scaleCopyプロシージャ, 4

schemaValidateファンクション, 4

SDO_GEORパッケージ

addNODATA, 4

calcCompressionRatio, 4

changeCellValue, 4

changeFormatCopy, 4

コピー, 4

createBlank, 4

createTemplate, 4

deleteControlPoint, 4

deleteNODATA, 4

deletePyramid, 4

evaluateDouble, 4

exportTo, 4

fillEmptyBlocks, 6

generateBlockMBR, 4

generatePyramid, 4

generateSpatialExtent, 4

generateStatistics, 4

地理参照, 4

getBandDimSize, 4

getBeginDateTime, 4

getBinFunction, 4

getBinTable, 4

getBinType, 4

getBitmapMask, 4

getBitmapMaskSubset, 4

getBitmapMaskValue, 4

getBlankCellValue, 4

getBlockingType, 4

getBlockSize, 4

getCellCoordinate, 4

getCellDepth, 4

getCellValue, 4

getColorMap, 4

getColorMapTable, 4

getCompressionType, 4

getControlPoint, 4

getDefaultBlue, 4

getDefaultColorLayer, 4

getDefaultGreen, 4

getDefaultRed, 4

getEndDateTime, 4

getGCPGeorefMethod, 4

getGCPGeorefModel, 4

getGeoreferenceType, 4

getGrayScale, 4

getGrayScaleTable, 4

getHistogram, 4

getHistogramTable, 4

getID, 4

getInterleavingType, 4

getLayerDimension, 4

getLayerID, 4

getLayerOrdinate, 4

getModelCoordinate, 4

getModelCoordLocation, 4

getModelSRID, 4

getNODATA, 4

getPyramidMaxLevel, 4

getPyramidType, 4

getRasterBlockLocator, 4

getRasterBlocks, 4

getRasterData, 4

getRasterSubset, 4

getScaling, 4

getSourceInfo, 4

getSpatialDimNumber, 4

getSpatialDimSizes, 4

getSpatialResolutions, 4

getSpectralResolution, 4

getSpectralUnit, 4

getSRS, 4

getStatistics, 4

getTotalLayerNumber, 4

getULTCoordinate, 4

getVAT, 4

getVersion, 4

hasBitmapMask, 4

hasGrayScale, 4

hasNODATAMask, 4

hasPseudoColor, 4

importFrom, 4

init, 4

isBlank, 4

isOrthoRectified, 4

isRectified, 4

isSpatialReferenced, 4

mergeLayersレイヤー

マージ, 4

mosaic, 4 参照情報, 4 reproject, 4 scaleCopy, 4 schemaValidate, 4 setBeginDateTime, 4 setBinFunction, 4 setBinTable, 4 setBitmapMask, 4 setBlankCellValue, 4 setColorMap, 4 setColorMapTable, 4 setControlPoint, 4 setDefaultBlue, 4 setDefaultColorLayer, 4 setDefaultGreen, 4 setDefaultRed, 4 setEndDateTime, 4 setGCPGeorefMethod, 4 setGCPGeorefModel, 4 setGrayScale, 4 setGrayScaleTable, 4 setHistogramTable, 4 setID, 4 setLayerID, 4 setLayerOrdinate, 4 setModelCoordLocation, 4 setModelSRID, 4 setOrthoRectified, 4 setRasterType, 4 setRectified, 4 setScaling, 4 setSourceInfo, 4, 4 setSpatialReferenced, 4 setSpatialResolutions, 4 setSpectralResolution, 4 setSpectralUnit, 4 setSRS, 4 setStatistics, 4 setULTCoordinate, 4 setVAT, 4 setVersion, 4 subset, 4 updateRaster, 4 validateBlockMBR, 4 validateGeoRaster, 4 SDO_GEOR_ADMINパッケージ

checkSysdataEntries, 5

isRDTNameUnique, 5

isUpgradeNeeded, 5

listDanglingRasterData, 5

listGeoRasterColumns, 5

listGeoRasterObjects, 5

listGeoRasterTables, 5

listRDT, 5

listRegisteredRDT, 5

listUnregisteredRDT, 5

maintainSysdataEntries, 5

参照情報, 5

registerGeoRasterColumns, 5

registerGeoRasterObjects, 5

upgradeGeoRaster, 5

SDO_GEOR_COLORMAPオブジェクト型, 2.3.2 SDO_GEOR_GCPオブジェクト型, 2.3.6 SDO_GEOR_GCP_ COLLECTIONコレクション型, 2.3.7 SDO_GEOR_GCPGEOREFTYPEオブジェクト型, 2.3.8 SDO_GEOR_GRAYSCALEオブジェクト型, 2.3.3 SDO_GEOR_HISTOGRAMオブジェクト型, 2.3.1 SDO_GEOR_SRSコンストラクタ, 2.3.5 SDO_GEOR_SRSオブジェクト型, 2.3.5 SDO_GEOR_UTLパッケージ

calcOptimizedBlockSize, 6

calcRasterNominalSize, 6

calcRasterStorageSize, 6

createDMLTrigger, 6

makeRDTNamesUnique, 6

参照情報, 6

renameRDT, 6

SDO_GEOR_XMLSCHEMA_TABLE表, 2.5 SDO_GEORASTERオブジェクト型, 2.1

metadata属性, 2.1.5

rasterDataTable属性, 2.1.3

rasterID属性, 2.1.4

rasterType属性, 2.1.1

spatialExtent属性, 2.1.2

SDO_RASTERオブジェクト型, 2.2

bandBlockNumber属性, 2.2.3

blockMBR属性, 2.2.6

columnBlockNumber属性, 2.2.5

pyramidLevel属性, 2.2.2

rasterBlock属性, 2.2.7

rasterID属性, 2.2.1

rowBlockNumber属性, 2.2.4

SDO_RASTERSETコレクション型, 2.3.4 sdoldgtf.sqlスクリプト, 3.5 SecureFiles

GeoRasterでのOracle SecureFilesの使用, 3.1.2

SecureFilesの圧縮, 1.10.5 setBeginDateTimeプロシージャ, 4 setBinFunctionプロシージャ, 4 setBinTableプロシージャ, 4 setBitmapMaskプロシージャ, 4 setBlankCellValueプロシージャ, 4 setColorMapプロシージャ, 4 setColorMapTableプロシージャ, 4 setControlPointプロシージャ, 4 setDefaultBlueプロシージャ, 4 setDefaultColorLayerプロシージャ, 4 setDefaultGreenプロシージャ, 4 setDefaultRedプロシージャ, 4 setEndDateTimeプロシージャ, 4 setGCPGeorefMethodプロシージャ, 4 setGCPGeorefModelプロシージャ, 4 setGrayScaleプロシージャ, 4 setGrayScaleTableプロシージャ, 4 setHistogramTableプロシージャ, 4 setIDプロシージャ, 4 setLayerIDプロシージャ, 4 setLayerOrdinateプロシージャ, 4 setModelCoordLocationプロシージャ, 4 setModelSRIDプロシージャ, 4 setOrthoRectifiedプロシージャ, 4 setRasterTypeプロシージャ, 4 setRectifiedプロシージャ, 4 setScalingプロシージャ, 4 setSourceInfoプロシージャ, 4, 4 setSpatialReferencedプロシージャ, 4 setSpatialResolutionsプロシージャ, 4 setSpectralResolutionプロシージャ, 4 setSpectralUnitプロシージャ, 4 setSRSプロシージャ, 4 setStatisticsプロシージャ, 4 setULTCoordinateプロシージャ, 4 setVATプロシージャ, 4 setVersionプロシージャ, 4 ソース情報

追加, 4

取得, 4

設定、置換、削除, 4

空間エクステント, 2.1.2

生成および設定, 3.6

空間参照システム(SRS)

説明, 1.3

空間解像度の値

取得, 4

設定, 4

SDO_GEORASTERのspatialExtent属性, 2.1.2

生成および設定, 3.6

スペクトル解像度

取得, 4

設定, 4

スペクトル単位

取得, 4

設定, 4

sRGB ColorSpace, 2.3.2 SRID 999999(unknown CRS), 3.3 SRS(空間参照システム)

説明, 1.3

記憶域パラメータ, 1.4.1 記憶域サイズ

ラスター, 6

storageParamパラメータ, 1.4.1 subsetプロシージャ, 4

T

TABLE_NAME列(USER_SDO_GEOR_SYSDATAビュー), 2.4.1

テンプレート

GeoRasterアプリケーションの開発, 3.17

時間参照システム(TRS)

説明, 1.3

主題

ラスター・レイヤー, 1.5

TIFFイメージ形式

GeoRasterでのサポート, 1.14

送信

データベース間のGeoRasterデータ, 3.21

変換

GeoRasterの座標情報, 3.5

トランスポータブル表領域

GeoRasterデータでの使用, 3.22

トリガー

GeoRaster DMLトリガーの作成, 3.1, 3.1.3, 6

TRS(時間参照システム)

説明, 1.3

U

ULTCoordinate

定義, 1.3

unknown CRS座標参照システム, 3.3 updateRasterプロシージャ, 4 更新

GeoRasterオブジェクトのコミット前, 3.16

upgradeGeoRasterファンクション, 5 以前のリリースからのアップグレード

要件, 1

USER_SDO_GEOR_SYSDATAビュー, 2.4 ユーティリティ・サブプログラム

GeoRaster, 6

V

validateBlockMBRファンクション, 4

validateGeoRasterファンクション, 4

検証

GeoRasterオブジェクト, 3.4

値属性表(VAT)

説明, 1.2.3

名前の取得, 4

名前の設定, 4

ベクトル・データ

説明, 1.1

GeoRasterのビューア・ツール, 1.14 ビュー

ALL_SDO_GEOR_SYSDATA, 2.4

USER_SDO_GEOR_SYSDATA, 2.4

W

Workspace Manager

GeoRasterの使用, 4

ワールド・ファイル(ESRI)

ロード, 4

GeoRasterでのサポート, 1.14

X

XML DB

GeoRasterでの使用, 1

XML DBリポジトリ

アップグレード時にインストールが必要, 1

GeoRasterメタデータのXMLスキーマ, A GeoRasterのXMLスキーマ表, 2.5

Z

ZLIB形式

圧縮されたデータの格納, 1.10.2

オラクル社の法律上の注意点について

コピーライトについて

Copyright © 1994-2014, Oracle and/or its affiliates.All rights reserved.

商標と登録商標について

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

ライセンス制約の保証と結果的に生じる損害の免責

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

保証免責

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

制限付権利

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

危険な用途への使用について

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション（人的傷害を発生させる可能性があるアプリケーションを含む）への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性（redundancy）、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

第三者のコンテンツ、製品、サービスに対する免責事項

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

ドラフトのアルファ版およびベータ版ドキュメントについて

このドキュメントが試作版の場合:

このドキュメントは試作版であり、デモおよび暫定使用のみを目的としたものです。このソフトウェアを使用するハードウェアに限定するものではありません。オラクル社およびその関連会社は、このドキュメントに関して一切の責任を負わず、いかなる保証もいたしません。また、このドキュメントを使用したことによって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。