17 Web Coverage Service (WCS)のサポート
この章では、"カバレッジ"の取得をサポートするWeb Coverage Service Interface Standard (WCS)のOpen GIS Consortium (OGC)標準のOracle Spatial and Graphの実装について説明します。(OGCによると、"カバレッジ"とは地理空間データの電子的エンコーディング、つまり、空間および時間で変化する現象を表すデジタル地理空間情報のことです)。
ノート:
Oracle Cloud MarketplaceからOracle Spatial Webサービスをデプロイできます。このパッケージ・アプリケーションを使用すると、Oracle Cloud Infrastructure (OCI)上のApache Tomcat Webサーバー・インスタンスにデプロイされたOracle Spatial Webサービス(Web Feature Service (WFS)、Web Coverage Services (WCS)およびCatalog Services for the Web (CSW))をインストールできます。Oracle Spatial and Graphでの実装をWeb Coverage ServiceまたはWCSと呼びます。
Web Coverage Service (WCS)を使用すると、地理空間データをカバレッジとして電子的に取得できます。WCSでは、データと説明、データの問合せの構文、および様々な操作(ビジュアル化、解釈、外挿など)の実行対象となるデータを戻す機能が提供されます。WCSでは、GridCoverage(座標参照系のないGeoRasterオブジェクト)とRectifiedGridCoverage(座標参照系があり、アフィン変換で地理参照されるGeoRasterオブジェクト)の両方のラスター・タイプの格納がサポートされます
Oracle Spatial and Graphでは、次のOGC標準を実装します。
-
09-110r4 WCS Core 2.0 Interface Standard - Core。
-
09-146r2 OGC GML Application Schema – Coverages。
-
09-147r3 OGC Web Coverage Service 2.0 Interface Standard – KVP Protocol Binding Extension – Corrigendum。
-
09-148r1 OGC Web Coverage Service 2.0 Interface Standard – XML/POST Protocol Binding Extension。
-
09-149r1 OGC Web Coverage Service 2.0 Interface Standard – XML/SOAP Protocol Binding Extension。
-
11-053r1 OGC Web Coverage Service Interface Standard – CRS Extension
-
12-039 OGC Web Coverage Service Interface Standard – Scaling Extension。
-
12-040 OGC Web Coverage Service Interface Standard – Range Subsetting Extension。
-
12-049 OGC Web Coverage Service Interface Standard – Interpolation Extension。
-
12-052 OGC WCS 2.0.1 Corrigendum Release Notes。
-
12-100r1 OGC GML Application Schema – Coverages – GeoTIFF Coverage Encoding Profile。
Oracle WCSはOGC標準を拡張し、GetCoverageリクエストの出力形式としてGDALでサポートされるすべてのイメージまたはラスター・フィーチャをサポートします。
ノート:
WCSを使用する前に、「空間Webサービスの概要」で説明されている概念を理解し、その章での説明に従って必要な構成作業を実行しておく必要があります。
- Web Coverage Serviceのアーキテクチャ
Oracle Spatial and Graphでは、WCSはJava Webアプリケーションとして実装され、WebLogic 12.1.3以上にデプロイできます。 - WCSのデータベース・スキーマ
このドキュメントでは、Web Coverage Service用のOracle Databaseスキーマを例として使用します。このスキーマは、ユーザー・スキーマまたはWCSスキーマ(あるいはその両方)です。 - WCSに使用されるデータベース・オブジェクト
いくつかの表とそれ以外のデータベース・オブジェクトがWCS操作の実装に使用されます。 - WCSを使用するためのPL/SQLサブプログラム
SDO_WCSプロシージャおよびファンクションを使用すると、次の処理を含む操作を実行できます。 - WebLogic Serverを使用したWCSの設定
WCSを設定するには、WebLogic Server (WLS) 12.1.3以上が必要です。 - WCS管理コンソール
Oracle Spatial Webサービス管理コンソールは、次の形式のURLに移動することでアクセスできる単一ページ・アプリケーションです。 - WCSのOracle実装の拡張
Oracle WCS拡張では、WCSリクエストのwcs:Extension要素内にオプションの要素を定義し、リクエスト処理の次の点の制御を可能にします。 - WCSの操作: XMLを使用したリクエストとレスポンスの例
WCSでは3つの主要な操作が提供され、各操作にリクエストとレスポンスの形式があります。 - 実装されているWCS拡張
このトピックでは、実装されているWCS拡張について説明し、各拡張で定義される要素のいくつかについて例を示します。 - WCSの問題の診断
WCSログ・ファイルには診断情報が含まれています。
親トピック: 空間Webサービス
17.1 Web Coverage Serviceのアーキテクチャ
Oracle Spatial and Graphでは、WCSはJava Webアプリケーションとして実装され、WebLogic 12.1.3以上にデプロイできます。
必要なJavaバージョンはJDK 1.8以降です。このWCSの実装は、$ORACLE_HOME/md/jlib
ディレクトリのSpatial Webサービスsdows.ear
ファイルにパッケージされています。このファイルのデプロイの詳細は、「空間Webサービスのデプロイと構成」を参照してください。
WCSでは、KVP (HTTP GET)、XML/POST (HTTP/POST)およびXML/SOAPの3つのプロトコル・バインディング拡張を実装します。GDAL Java APIを使用して、GDALでサポートされるイメージ形式の生成も行います。GDALインスタンスは、Spatial Webサービスがデプロイされているアプリケーション・コンテナと同じシステムで構成する必要があります。
Oracle Database内のSDO_WCSパッケージに、WCSスキーマの初期化、WCSカバレッジとしてのGeoRasterオブジェクトのパブリッシュ、WCSリクエストの処理を行うプロシージャが含まれています。
次の図に、WCSのアーキテクチャを示します。
17.2 WCSのデータベース・スキーマ
このドキュメントでは、Web Coverage Service用のOracle Databaseスキーマを例として使用します。このスキーマは、ユーザー・スキーマまたはWCSスキーマ(あるいはその両方)です。
-
ユーザー・スキーマは、GeoRasterオブジェクトの格納に使用する任意のスキーマです。
このドキュメントの一部の例で使用される、SCOTTという名前のデータベース・ユーザーのスキーマはユーザー・スキーマです。
-
WCSスキーマはSDO_WCS_COVERAGE表を持つ任意のデータベース・スキーマで、WCS管理コンソールまたはSDO_WCS.Initプロシージャを使用して作成する必要があります。カバレッジ情報はWCSスキーマに格納されます。
このドキュメントの一部の例で使用される、WCS_USERという名前の特別に作成されたデータベース・ユーザーのスキーマはWCSスキーマです。
特定のOracle Databaseスキーマは、ユーザー・スキーマの場合も、WCSスキーマの場合も、ユーザー・スキーマとWCSスキーマの両方の場合もあります。
各WCSインスタンスには、アプリケーション・コンテナ内でJDBCデータ・ソースとして構成されたWCSスキーマが必要です。通常、特定のデータベースに対して構成されるWCSスキーマは1つのみですが、同一のデータベースで使用するために多数のWCSインスタンスを構成することができます。
17.3 WCSに使用されるデータベース・オブジェクト
いくつかの表とそれ以外のデータベース・オブジェクトがWCS操作の実装に使用されます。
WCSスキーマの詳細は、次のとおりです。
-
表SDO_WCS_COVERAGEには、すべてのパブリッシュされたカバレッジに対するメタデータが含まれています。メタデータには、カバレッジID、ラスターIDおよびラスター・データ表が含まれます。各行が各カバレッジに対応します。
-
順序SDO_WCS_COVERAGE_ID_SEQを使用して一意のカバレッジID値が生成されます。
ユーザー・スキーマの詳細は、次のとおりです。
-
表WCS_TEMP_TABLEは、GetCoverage操作(WCS)リクエストを処理する際、再投影や変換が必要な場合にGeoRasterオブジェクトの一時格納場所として使用されます。GeoRasterオブジェクトは、オブジェクトが表から削除された後、レスポンスが送信されるまでこの表に保持されます。
-
表WCS_TEMP_RDTは、WCS_TEMP_TABLE表内のGeoRasterオブジェクトのラスター・データ表です。
17.4 WCSを使用するためのPL/SQLサブプログラム
SDO_WCSプロシージャおよびファンクションを使用すると、次の処理を含む操作を実行できます。
-
WCSスキーマの初期化。
-
再投影または変換が必要な場合にGeoRasterを格納するための一時表の作成。(CRS ExtensionまたはScaling Extension。)。
-
WCSスキーマへの権限の付与および取消し。
-
カバレッジのパブリッシュ
-
カバレッジの削除(パブリッシュの解除)
SDO_WCS.InitはSDO_WCS_COVERAGE表を作成し、そのデータベース・スキーマはWCSスキーマになります。
SDO_WCS.PublishCoverageには2つの構文があります。1つの構文では、GeoRasterオブジェクトをカバレッジとしてパブリッシュし、SDO_WCS_COVERAGE表にメタデータを格納して一意のカバレッジIDを割り当てます。もう1つの構文では、指定した列のすべてのパブリッシュされていないGeoRasterオブジェクトをパブリッシュします。
SDO_WCS.CreateTempTableは、ユーザー・スキーマごとに1回実行します。このプロシージャでは、GetCoverage操作(WCS)リクエストを処理する際、再投影や変換が必要な場合にGeoRasterオブジェクトを一時的に格納するためのGeoRaster表およびRDT表を作成します。
17.5 WebLogic Serverを使用したWCSの設定
WCSを設定するには、WebLogic Server (WLS) 12.1.3以上が必要です。
このトピックでは、次の点を前提とする例を使用します。
-
ユーザー・スキーマSCOTTは、次の定義のIMAGEという名前の表を持っています。
CREATE TABLE IMAGE ( id NUMBER PRIMARY KEY, name VARCHAR2(32), raster MDSYS.SDO_GEORASTER);
-
WCSスキーマの名前はWCS_USERです。
WCSサーバーの設定には、WebLogic Serverへのsdows.ear
ファイルのデプロイ(「空間Webサービスのデプロイと構成」を参照)および次の処理が伴います。
17.5.1 データベース・スキーマの構成
ノート:
同じOracle DatabaseスキーマをGeoRasterオブジェクトの格納とWCSを介したGeoRasterオブジェクトへのアクセスの両方に使用する場合は、この項をスキップし、「WCSデータ・ソースの設定」に進んでください。
Oracle Databaseスキーマを構成するには、次のステップに従います。
-
メタデータ表を作成します。これを行うには、SQL*Plusを使用して、WCSユーザーとするユーザー(この例では、WCS_USERという名前のユーザー)としてOracle Databaseに接続し、次のように入力します。
CALL SDO_WCS.init();
-
GeoRasterオブジェクトを格納するデータベース・ユーザー(この例では、IMAGEという名前のGeoRaster表を所有するSCOTT)として接続します。
connect scott/<password-for-scott> CALL SDO_WCS.createTempTable(); CALL SDO_WCS.grantPrivilegesToWCS('IMAGE','WCS_USER');
-
WCSユーザー(この例では、WCS_USER)として接続し、GeoRasterイメージを目的のGeoRasterオブジェクトを含むユーザー表から(たとえば、SCOTT.IMAGES表のRASTER列から)パブリッシュします。
connect wcs_user/<password-for-wcs_user> CALL SDO_WCS.publishCoverage('SCOTT','IMAGE','RASTER');
親トピック: WebLogic Serverを使用したWCSの設定
17.5.2 WCSデータ・ソースの設定
各データベースにはWCSスキーマを複数保持でき、各スキーマはWebLogicの1つのデータ・ソースに対応します。また、WebLogic Serverでは、WCS用に構成されたデータ・ソースを複数保持できます。各データ・ソースには異なるURLを介してアクセスでき、URLの最後の部分はWebLogic Serverの構成されたデータ・ソース名に対応します。
wcsdata1
という名前のWLSデータ・ソースを使用したサンプル・リンクを次に示します。
http://localhost:80/oraclespatial/wcs/wcsdata1?service=WCS& version=2.0.1&request=GetCapabilities
次のステップに従ってWCSデータ・ソースを構成します。
-
WebLogic Server(WLS)コンソールにログインします。
-
左側のペインの「ドメイン構造」で「データ・ソース」を選択します
-
「新規」、「汎用データ・ソース」の順にクリックします。
-
「新規JDBCデータ・ソースの作成」ページで、次のように指定します。
-
名前: 空白を含まない任意の名前
-
JNDI名:
jdbc/
で始まる任意の名前 -
データベースのタイプ:
Oracle
-
-
データベース・ドライバに「Oracle's Driver (Thin) for Instance connections; バージョン: 任意」を選択します。
-
「グローバル・トランザクションのサポート」は省略できます。
-
「接続プロパティ」ページで、次の指定を行います。
-
データベース名
-
ホスト名
-
ポート
-
データベース・ユーザー名(たとえば、
WCS_USER
) -
パスワード
-
-
次のページで、この接続をテストします。接続が正常の場合、このデプロイメントに対して適切なサーバー名(
AdminServer
または管理対象サーバー名)を選択します。
親トピック: WebLogic Serverを使用したWCSの設定
17.5.3 WCSサーバーに対するGDALの構成
Oracle WCS実装で、GDALでサポートされる形式を生成できます。WebLogic Serverと同じシステムでGDALインスタンスを構成する必要があります。WCSサーバーとの通信には、GDAL VRTドライバおよびGDAL Oracle GeoRasterドライバが必要です。(GDALを入手するには、http://www.gdal.orgからダウンロードするか、Oracle DatabaseインストールからLinux版またはWindows版を入手できます(『Oracle Spatial and Graph GeoRaster開発者ガイド』を参照)。)
-
必要なGDALドライバがあるかどうかを確認するには、次のGDALコマンドを実行します。
<GDAL_HOME>/bin/gdalinfo --formats
-
必要なGDALドライバおよび希望のGDAL出力形式ドライバをインストールしたら、GDALライブラリ・ディレクトリをWLS
setDomainEnv
スクリプトへのLD_LIBRARY_PATHに追加します。たとえば、Linux/UNIX環境の場合:export GDAL_HOME=<path to gdal home directory> export GDAL_DATA=${GDAL_HOME}/data export GDAL_DRIVER_PATH=${GDAL_HOME}/lib/gdalplugins export PATH=${GDAL_HOME}/bin:${PATH} export LD_LIBRARY_PATH=${GDAL_HOME}/lib:${LD_LIBRARY_PATH}
Windowsの場合:
set GDAL_HOME=<path to gdal home directory> set GDAL_DATA=%GDAL_HOME%\data set GDAL_DRIVER_PATH=%GDAL_HOME%\bin\gdalplugins set PATH=%GDAL_HOME%\bin;%PATH% set LD_LIBRARY_PATH=<path to gdal's .dll>;%LD_LIBRARY_PATH%
-
gdal.jar
(gdal/lib
ディレクトリ内)をWebLogic Serverドメインのlib
ディレクトリにコピーします。 -
WebLogic Serverを再起動します。
-
WCS管理コンソールの「構成ファイル」タブを使用してGDALデータベース接続パラメータを構成します。
-
オプションで、GetCoverage操作(WCS)リクエストにGDALへの作成オプション(
。CreationOption
)を指定します
親トピック: WebLogic Serverを使用したWCSの設定
17.6 WCS管理コンソール
Oracle Spatial Webサービス管理コンソールは、次の形式のURLに移動することでアクセスできる単一ページ・アプリケーションです。
http://<system-name>:<port>/oraclespatial/
管理コンソール・ページを使用するには、すべての使用可能なデータ・ソース名のリストからWCSデータ・ソースを選択します。(現在選択されているデータ・ソースは右上隅に表示されますが、いつでもそこで変更できます。)
WCS管理コンソールには、構成、テストおよび問題の診断を行うための画面が用意されています。このリージョンには次のタブがあります。
-
構成ファイル
-
カバレッジのパブリッシュ
-
テスト
-
ログ
「構成ファイル」タブ
このタブでは、管理者がWCSConfig.xml
ファイルを変更できます。このファイルでWCSロギング、GDALパラメータおよびGetCapabilities
レスポンス(ServiceIdentification
およびServiceProvider
)を構成します。
-
ログ・レベル、ログ・ファイルのサイズの上限、ログ・ファイルの数などのロギング属性を構成できます。
-
ファイル・サイズに基づいたログ・ローテーションがサポートされます。ファイルの数を制限することにより、ログ・ファイルによって使用されるディスク領域を制限できます。ログ・ファイルは
sdows java
プロパティで参照されるディレクトリ内に生成され、wcs_n<data source name>.log
という形式の名前が付けられます(wcs_0.log
に最新のログ・メッセージが含まれます)。ファイル・サイズの上限に達すると、最も古いファイルが削除され、すべてのログ・ファイルの名前が変更されてwcs_0.log
が次のログ・メッセージ・セットに使用されます。 -
ログ・レベルは、
SEVERE
、WARNING
、INFO
(デフォルト)、CONFIG
、FINE
、FINER
、FINEST
またはALL
です。 -
ログ・サイズの上限は、ファイル・サイズの上限(メガバイト、デフォルトは10)です。
-
ログ・ファイル数は、ログ・ファイルの最大数です。
GDALデータベース接続は、次のようにgdalParameters
要素を使用して構成します。
-
<gdalParameters user="<user>" password="!<password>" connectionString="<db_host:port:sid>" temporaryDirectory="<directory>" />
-
指定するユーザーは、カバレッジとしてパブリッシュされたすべてのGeoRasterオブジェクトの読取り権限を持っている必要があります。このユーザーはWCSユーザーと同じユーザーにすることをお薦めします。
-
パスワードはサーバーによって暗号化される必要があります。パスワード属性の先頭に感嘆符文字(!)を追加して、サーバーでパスワードが暗号化されるようにする必要があります。
-
一時ディレクトリは、GDALが使用して出力ファイルを生成する、書込み可能なディレクトリを指す必要があります。例:
/tmp
GDALが適切に構成されていることを確認するには、Oracle Spatial Webサービス管理コンソール(http://<host>:<port>/oraclespatial
)の「情報」タブに移動します。GDALが適切に構成されている場合は、GDALのバージョンが表示されます。
適切な要素をコメント解除し、http://schemas.opengis.net/ows/2.0/owsGetCapabilities.xsdのXMLスキーマに従って必要な情報を指定して、ServiceIdentification
およびServiceProvider
を構成できます。
「変更の保存」をクリックすると変更が適用され、再起動する必要はありません。
カバレッジのパブリッシュ・タブ
このタブでは、新しいカバレッジをパブリッシュできます。管理者の資格証明が必要です。
SDO_GEORASTER型の1つの列を戻す選択問合せを指定することで、GeoRasterオブジェクトをカバレッジとしてパブリッシュできます。選択問合せによって戻されたすべてのGeoRasterオブジェクトがパブリッシュされます。次の要素を使用して選択問合せを指定します。(簡単にするために、「ラスター表(スキーマ、表、列)の選択」から任意のエントリを選択し、「問合せパラメータの入力」をクリックしてこれらのフィールドに移入することもできます。)
-
列名: From句に指定した表のSDO_GEORASTER列名
-
From句: スキーマ名、表名、および別名(WHERE句で必要な場合)を含む有効なFROM句。
-
WHERE句: 有効なWHERE句。空間操作を含めることができます。WHERE句が空の場合、SELECT文は、指定した表のすべての行を戻します。
このページでは、すべてのGeoRasterオブジェクトがHTML表に表示されます。目的の行を右クリックして、個々のGeoRasterオブジェクトのパブリッシュまたはパブリッシュ解除を選択できます。
GeoRasterを複数回WCSにパブリッシュすることはできません。
「テスト」タブ
このタブでは、POSTリクエストを送信できます。「テスト」タブは最初は空です。GetCapabilitiesリクエストを送信して次の要素に移入する必要があります。
-
操作: 前回のGetCapabilitiesレスポンスで検出されたすべての操作を含むHTML select要素。
-
カバレッジ: 前回のGetCapabilitiesレスポンスの内容が移入されたHTML select要素。受信したGetCapabilitiesレスポンスのすべてのカバレッジIDが含まれます。
リクエストの作成: 指定した操作に対するリクエスト、カバレッジID、操作URLを「リクエスト」テキスト領域に移入します。
リクエスト: テキスト領域。この内容が操作URLにPOSTリクエストで送信されます。この要素は「リクエストの作成」をクリックして移入できます。必要に応じてそのリクエストを編集できます。
操作URL: リクエストの送信先URL。この要素は「リクエストの作成」をクリックして移入できます。必要に応じてそのリクエストを編集できます。
リクエストの送信: リクエストの内容を使用して操作URLにHTTP POSTリクエストを送信します。HTTP POSTリクエストのレスポンスは「レスポンス」に表示されます。
レスポンス: 「リクエストの送信」操作のレスポンスが移入されるテキスト領域。
「ログ」タブ
このタブでは、WCSログ・ファイルをビジュアル化およびダウンロードできます。ログ・ファイルは、sdows java
プロパティで参照されるディレクトリ内に生成されます。「ログ」タブを使用するには、管理者の資格証明が必要です。
Oracle WCSログ・ファイルにはすべて、wcs_
n.log
という形式のファイル名が付いています(nは連続した番号で、最も新しいログ・ファイルのnは0 (ゼロ)です)。
このタブには、WCSサーバーで生成された最新のログ・メッセージを含むwcs_<data_source_name>_0.log
ファイルの内容が表示されます。ただし、他のログ・ファイルを選択してその内容を表示できます。表示をリフレッシュして、ページのロードまたは前回のリフレッシュ以降に生成された新しいログ・メッセージが含まれるようにすることもできます。
「ダウンロード」で、選択したログ・ファイルをzip形式でダウンロードできます。
17.7 WCSのOracle実装の拡張
Oracle WCS拡張では、WCSリクエストのwcs:Extension要素内にオプションの要素を定義し、リクエスト処理の次の点の制御を可能にします。
-
GetCoverageリクエスト内のGDAL
CreationOption
-
GetCoverageリクエスト内の
CompressResponseFile
GDALインストールに含まれるすべての形式がGetCoverageリクエストでサポートされます。形式とその名前の完全なリストは、機能のXMLドキュメントで確認できます。
GetCoverageリクエスト内のGDAL CreationOption
この要素では、GetCoverageリクエストで-co
パラメータをGDALに送信します。各GDALドライバで、独自の作成オプション・パラメータを定義します。
例:
-
XMLリクエスト:
<wcs:GetCoverage xmlns:wcs="http://www.opengis.net/wcs/2.0" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wcs/2.0 http://schemas.opengis.net/wcs/2.0/wcsAll.xsd" xmlns:ora="http://www.oracle.com/spatial/wcs" service="WCS" version="2.0.1"> <wcs:Extension> <ora:CreationOption>WORLDFILE=YES</ora:CreationOption> </wcs:Extension> <wcs:CoverageId>C0005</wcs:CoverageId> <wcs:format>image/jpeg</wcs:format> </wcs:GetCoverage>
-
KVPリクエスト:
http://.../oraclespatial/wcs?service=WCS&version=2.0.1&request=GetCoverage&format=image/jpeg&coverageId=C0005&CO=WORLDFILE=YES
GetCoverageリクエスト内のCompressResponseFile
この要素では、生成されたイメージをzipファイルに圧縮します。
例:
-
XMLリクエスト:
<wcs:GetCoverage xmlns:wcs="http://www.opengis.net/wcs/2.0" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wcs/2.0 http://schemas.opengis.net/wcs/2.0/wcsAll.xsd" xmlns:ora="http://www.oracle.com/spatial/wcs" service="WCS" version="2.0.1"> <wcs:Extension> <ora:CompressResponseFile>true</ora:CompressResponseFile> </wcs:Extension> <wcs:CoverageId>C0005</wcs:CoverageId> <wcs:format>image/jpeg</wcs:format> </wcs:GetCoverage>
-
KVPリクエスト:
http://.../oraclespatial/wcs?service=WCS&version=2.0.1&request=GetCoverage&format=image/jpeg&coverageId=C0005&COMPRESS=YES
17.8 WCSの操作: XMLを使用したリクエストとレスポンスの例
WCSでは3つの主要な操作が提供され、各操作にリクエストとレスポンスの形式があります。
クライアントが一連のWCSリクエストを実行する場合、まずサーバーにGetCapabilitiesリクエストを発行し、使用可能なデータの最新のリストを取得します。その後、DescribeCoverageリクエストを発行して、提供される特定のカバレッジの詳細を取得します。カバレッジまたはカバレッジの一部を取得するには、クライアントはGetCoverageリクエストを発行します。
17.8.1 GetCapabilities操作(WCS)
GetCapabilities操作では、WCSクライアントはWCSサーバーによって提供されるサービスとカバレッジのメタデータを取得できます。
すべてのWCSサーバーはGetCapabilitiesリクエスト用にKVPプロトコルを実装する必要があります。ユーザーは、KVPプロトコルを使用してGetCapabilitiesリクエスト(HTTP GETリクエスト)をURLに送信し、WCSサーバーとの対話を開始します。たとえば:
http://host:port/oraclespatial/wcs/<data source name>?service=WCS&request=GetCapabilities
GetCapabilities操作は、クライアントがリクエストできるサービスとカバレッジの簡単な説明を示したXMLドキュメントを戻します。クライアントは通常GetCapabilities操作を実行してその結果をキャッシュし、セッションの間中使用したり、複数のセッションに再利用します。
GetCapabilitiesレスポンスには次の内容が含まれます。
-
WCSレスポンスのバージョン。リクエストで目的のレスポンスのバージョンを指定しない場合、サーバーはサポートされている最新のバージョンを戻します。
-
ServiceIdentification
のプロファイル・リストは、OGC Interface Standard準拠クラスを識別します。 -
OperationsMetadata
の操作要素には、各プロトコルの各WCS操作のURLが含まれます。各WCSプロトコルの各WCS操作でURLが異なることがあります。 -
ServiceMetadata
のformatSupported
要素では、GetCoverageリクエストで使用可能なすべての出力形式がリストされます。このリストには、GDALでサポートされる形式が含まれます(構成されている場合)。たとえば:<wcs:ServiceMetadata> <wcs:formatSupported>image/tiff</wcs:formatSupported> <wcs:formatSupported>image/jp2</wcs:formatSupported> <wcs:formatSupported>application/x-ogc-nitf</wcs:formatSupported> <wcs:formatSupported>application/x-ogc-aaigrid</wcs:formatSupported> <wcs:formatSupported>image/png</wcs:formatSupported> <wcs:formatSupported>image/jpeg</wcs:formatSupported> </wcs:ServiceMetadata>
-
拡張要素では、WCS拡張標準で個々の追加サービス・メタデータを定義できます。この要素には、最近傍、双一次、双四次などの16.8.2 12-039 OGC Web Coverage Service Interface Standard – Scaling Extension要素が含まれます。また、16.8.1 11-053r1 OGC Web Coverage Service Interface Standard – CRS Extensionも含まれ、crsSupported要素が含まれます。
-
このサーバーで提供されるカバレッジのリストには、DescribeCoverageおよびGetCoverage操作リクエストで使用される一意の識別子であるカバレッジIDとカバレッジ・サブタイプが含まれます。
17.8.2 DescribeCoverage操作(WCS)
DescribeCoverage操作で、クライアントはWCSサーバーによって提供される1つ以上のカバレッジの詳細メタデータをリクエストできます。これによってドメインおよび範囲セットで予想されるデータ量の見積もりが示されます。DescribeCoverageリクエストでカバレッジ識別子のリストを提供し、識別子ごとに対応するカバレッジの記述を戻すようサーバーに要求します。XML/POST DescribeCoverageリクエストの例は、次のとおりです。
<wcs:DescribeCoverage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wcs="http://www.opengis.net/wcs/2.0" xsi:schemaLocation="http://schemas.opengis.net/wcs/2.0 ../wcsAll.xsd" service="WCS" version="2.0.1"> <wcs:CoverageId>C0001</wcs:CoverageId> <wcs:CoverageId>C0002</wcs:CoverageId> ... </wcs:DescribeCoverage>
DescribeCoverageレスポンスには、リクエストで渡された各カバレッジ識別子に対応するカバレッジ・メタデータのリストが含まれます。カバレッジ・メタデータは、GridCoverages
の場合はタイプgml:Grid
、RectifiedGridCoverages
の場合はタイプgml:rectifiedGrid
のXMLドキュメントです。それらのドキュメントのxsdスキーマは、http://schemas.opengis.net/wcs/2.0/にあります。
gml:Grid
要素は、暗黙的にグリッドを定義します。2つ以上の曲線のセットで構成されるネットワークで、各セットのメンバーは他のセットのメンバーと一定の規則で交差します。グリッド内の対象領域はそのgml:limits
で指定されます。これは、矩形領域の対角に位置する角のグリッド座標です。gml:axisLabels
にはグリッドの軸のラベルのリストが示されます(gml:axisName
は非推奨になりました)。gml:dimension
ではグリッドの次元が指定されます。
gml:limits
要素には、1つのgml:GridEnvelope
が含まれます。エンベロープのgml:low
およびgml:high
プロパティ要素は、座標タプルである整数のリストです。座標は、矩形の対象領域の対角に位置する角の各軸に沿ったグリッドの原点からのオフセットとして測定されます。
偏位修正グリッドは,グリッド座標と外部座標参照系の座標の間のアフィン変換が存在するグリッドです。これは、グリッドの"原点"の位置およびグリッド点の配置場所を指定するベクトルの位置を(ある幾何空間で)指定することによって定義されます。
グリッド範囲(配置の指標)および軸名のプロパティはgml:GridType
から継承されること、gml:RectifiedGrid
はgml:origin
プロパティ(gml:Point
を含むか参照)およびgml:offsetVector
プロパティのセットを追加することに注意してください。
17.8.3 GetCoverage操作(WCS)
GetCoverage操作は、通常GetCapabilitiesおよびDescribeCoverage操作のレスポンスで使用可能なリクエストおよび使用可能なデータが示された後で実行します。GetCoverage操作は、well-knownカバレッジ形式でエンコードされたカバレッジ(地理的位置のセットの値またはプロパティ)を戻します。
GetCoverageリクエストは、サービスのオファリングから選択された特定のカバレッジを処理し、導出されたカバレッジを戻すようWCSサービスに要求します。
WCS Core標準ではドメイン・サブセッティング操作が定義されます。この操作では、カバレッジのエンベロープを基準とした、指定したリクエスト・エンベロープ("境界ボックス")内のカバレッジのデータ(より正確に言うと、リクエスト・エンベロープとカバレッジ・エンベロープの交差のデータ)をすべて配信します。
ドメイン・サブセッティングはトリミングとスライシングに分けられます。トリム操作は、次元および上下限(両方ともカバレッジのドメイン内にある必要がある)を識別し、指定された次元で新しく、範囲が狭められたドメインのカバレッジを配信します。結果のカバレッジの次元は、入力カバレッジの次元と同一です。DimensionTrim
要素の例を次に示します。
<wcs:DimensionTrim> <wcs:Dimension>N</wcs:Dimension> <wcs:TrimLow>8.16270027015798</wcs:TrimLow> <wcs:TrimHigh>8.34362402047258</wcs:TrimHigh> </wcs:DimensionTrim>
ドメイン・スライス操作は次元と位置(カバレッジのドメイン内にある必要がある)を受信し、指定された切断位置で取得されたカバレッジのスライスであるカバレッジを配信します。結果のカバレッジの次元は、元のカバレッジと比較して1つ少なくなります。
トリミングとスライシングの両方の組合せは、1つのリクエストにも、必要なだけ多くの次元にも使用できます。ただし、任意のリクエストで、次元ごとに適用できる操作は最大1つです。DimensionSlice
要素の例を次に示します。
<wcs:DimensionSlice> <wcs:Dimension>N</wcs:Dimension> <wcs:SlicePoint>8.16270027015798</wcs:SlicePoint> </wcs:DimensionSlice>
カバレッジが戻されるエンコーディング形式は、format要素とmediaType要素の組合せで指定されます。サポートされる形式は、サーバーの機能のドキュメントに記載された形式で、デフォルトはapplication/gml+xml
またはimage/jpeg
(GDALが構成されている場合)です。たとえば:
<wcs:format>image/jpeg</wcs:format> <wcs:mediaType>multipart/related</wcs:mediaType>
17.9 実装されているWCS拡張
このトピックでは、実装されているWCS拡張について説明し、各拡張で定義される要素のいくつかについて例を示します。
最後に、すべての拡張を含むGetCoverageリクエストの例を示します。
11-053r1 OGC Web Coverage Service Interface Standard – CRS Extension
このWCS CRS Extensionでは、ネイティブCRS以外のCRSでカバレッジをリクエストおよび取得する方法を定義します。また、ネイティブCRS以外のCRSでサブセッティングの境界ボックスを指定する方法も定義します。このWCS CRS ExtensionをサポートするWCSサーバーは、その機能のドキュメントにCRS識別子をリストすることで、サポートするCRSを示します。たとえば:
<wcscrs:subsettingCrs>http://www.opengis.net/def/crs/EPSG/0/4326</wcscrs:subsettingCrs> <wcscrs:outputCrs>http://www.opengis.net/def/crs/EPSG/0/4326</wcscrs:outputCrs>
112-039 OGC Web Coverage Service Interface Standard – Scaling Extension
この拡張では、GetCoverageリクエストでのサーバー側の処理時に1つ以上の軸に沿ってカバレッジをスケール変更できます。たとえば:
<scal:ScaleByFactor> <scal:axis>E</scal:axis> <scal:scaleFactor>0.5</scal:scaleFactor> </scal:ScaleByFactor>
112-040 OGC Web Coverage Service Interface Standard – Range Subsetting Extension
この拡張では、GetCoverageリクエストでのカバレッジのサーバー側の処理時に、範囲タイプの指定に従ってカバレッジの範囲セットから特定のフィールドを抽出できます。たとえば:
<rsub:RangeSubset> <rsub:RangeItem> <rsub:RangeComponent>band1</rsub:RangeComponent> </rsub:RangeItem> <rsub:RangeItem> <rsub:RangeInterval> <rsub:startComponent>band3</rsub:startComponent> <rsub:endComponent>band5</rsub:endComponent> </rsub:RangeInterval> </rsub:RangeItem> </rsub:RangeSubset>
112-049 OGC Web Coverage Service Interface Standard – Interpolation Extension
この拡張では、サーバー側の処理時にカバレッジの内挿を制御できます。
これによって、WCSクライアントが、サーバー側の処理時にカバレッジに適用される内挿メカニズムを制御および指定できます。たとえば:
<int:Interpolation> <int:globalInterpolation> http://www.opengis.net/def/interpolation/OGC/1/nearest-neighbor </int:globalInterpolation> </int:Interpolation>
112-100r1 OGC GML Application Schema – Coverages – GeoTIFF Coverage Encoding Profile
このエンコーディング・プロファイルは、GMLカバレッジのエンコーディングにGeoTIFFデータ形式の使用を指定します。たとえば:
<wcs:format>image/tiff</wcs:format>
すべての拡張を示す例
すべての拡張を含むGetCoverageリクエストの例を次に示します。
<wcs:GetCoverage xmlns:wcs="http://www.opengis.net/wcs/2.0" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wcs/2.0 http://schemas.opengis.net/wcs/2.0/wcsAll.xsd" xmlns:scal="http://www.opengis.net/wcs/scaling/1.0" xmlns:wcscrs="http://www.opengis.net/wcs/service-extension/crs/1.0" xmlns:rsub="http://www.opengis.net/wcs/rangesubsetting/1.0" xmlns:int="http://www.opengis.net/wcs/interpolation/1.0" service="WCS" version="2.0.1"> <wcs:Extension> <wcscrs:subsettingCrs>http://www.opengis.net/def/crs/EPSG/0/4326</wcscrs:subsettingCrs> <wcscrs:outputCrs>http://www.opengis.net/def/crs/EPSG/0/4326</wcscrs:outputCrs> <rsub:RangeSubset> <rsub:RangeItem> <rsub:RangeComponent>L3</rsub:RangeComponent> </rsub:RangeItem> </rsub:RangeSubset> <int:Interpolation> <int:globalInterpolation> http://www.opengis.net/def/interpolation/OGC/1/nearest-neighbor </int:globalInterpolation> </int:Interpolation> <scal:ScaleByFactor> <scal:scaleFactor>0.5</scal:scaleFactor> </scal:ScaleByFactor> </wcs:Extension> <wcs:CoverageId>C0005</wcs:CoverageId> <wcs:DimensionSlice> <wcs:Dimension>N</wcs:Dimension> <wcs:SlicePoint>8.16270027015798</wcs:SlicePoint> </wcs:DimensionSlice> <wcs:DimensionTrim> <wcs:Dimension>E</wcs:Dimension> <wcs:TrimLow>112.990337346209</wcs:TrimLow> <wcs:TrimHigh>113.028655200765</wcs:TrimHigh> </wcs:DimensionTrim> <wcs:format>image/tiff</wcs:format> <wcs:mediaType>multipart/related</wcs:mediaType> </wcs:GetCoverage>
17.10 WCSの問題の診断
WCSログ・ファイルには診断情報が含まれています。
WCS管理コンソールの「構成ファイル」タブでロギングを構成でき、「ログ」タブでWCSログ・ファイルをビジュアル化およびダウンロードできます。
このトピックでは、いくつかのエラー・メッセージとその対処方法について説明します。
"DataSource jdbc/wcs_admin_ds not found" GetCapabilitiesレスポンス・エラー・メッセージ
次のようなOWSエラー・レスポンスです(読みやすくするために再フォーマットしています)。
<?xml version='1.0' encoding='UTF-8'?> <ows:ExceptionReport xmlns:ows="http://www.opengis.net/ows/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ows/2.0 http://schemas.opengis.net/ows/2.0/owsExceptionReport.xsd" version="2.0.1"> <ows:Exception exceptionCode="NoApplicableCode" locator="DataSource jdbc/wcs_admin_ds not found"/> </ows:ExceptionReport>
これは、WCSデータ・ソースが構成されていないか、WebLogic Serverがデータベースに接続できないということです。WCSデータ・ソースの構成の詳細は、「WCSデータ・ソースの設定」を参照してください。
WebLogic Serverを起動するたびにWCSログ・ファイルに記録される"INFO: GDAL was not found"メッセージ
GDALでサポートされる形式が必要ない場合、このメッセージは無視できます。このメッセージは、WebLogic Serverライブラリにgdal.jarが見つからないか、LD_LIBRARY_PATHが適切に構成されていないことを示しています。
-
java.lang.NoClassDefFoundError: org/gdal/gdal/gdal
がWCSログに記録されている場合、gdal.jar
ファイルが見つかりませんでした。 -
java.lang.UnsatisfiedLinkError: org.gdal.gdal.gdalJNI.GetDriverCount()I
がWCSログに記録されている場合、libgdal.so
ファイルがLD_LIBRARY_PATHに見つかりませんでした。
詳細は、「WCSサーバーに対するGDALの構成」を参照してください
GDALParameterエラー・レスポンス
GDALが適切に構成されていない場合、次のようなエラー・メッセージが生成されます。
<?xml version='1.0' encoding='UTF-8'?> <ows:ExceptionReport xmlns:ows="http://www.opengis.net/ows/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ows/2.0 http://schemas.opengis.net/ows/2.0/owsExceptionReport.xsd" version="2.0.1"> <ows:Exception exceptionCode="NoApplicableCode" locator="GDALParameters"> <ows:ExceptionText>...</ows:ExceptionText> </ows:Exception> </ows:ExceptionReport>
このエラーは、GDALデータベース接続パラメータが正しくないことを示しています。WCS管理コンソールで「構成ファイル」タブを確認してください
データベース接続エラー
WCSログ内の次のメッセージは、データベースが稼働していないことを示しています。
SEVERE: Error discovering coverages java.sql.SQLRecoverableException: No more data to read from socket
WCS管理コンソールの「ログ」タブの"Error reading log file"メッセージ
認証されたユーザーがWCSサーバー管理コンソールと一定時間対話しないと、ブラウザのユーザー・セッションがタイムアウトする場合があります。この場合、ブラウザの表示をリフレッシュし、再認証を受けて新しいセッションを取得します。
受信したドキュメントがプロトコル構文に準拠していない
次のようなエラー・メッセージは、OGC仕様に定義されていないXML要素または文字要素がリクエストに含まれていることを示しています。
<?xml version='1.0' encoding='UTF-8'?> <ows:ExceptionReport xmlns:ows="http://www.opengis.net/ows/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ows/2.0 http://schemas.opengis.net/ows/2.0/owsExceptionReport.xsd" version="2.0.1"> <ows:Exception exceptionCode="InvalidEncodingSyntax" locator="asdc"> <ows:ExceptionText>Document received does not conform with protocol syntax.</ows:ExceptionText> </ows:Exception> </ows:ExceptionReport>