17 Web Coverage Service (WCS)のサポート
この章では、"カバレージ"の取得をサポートするWeb Coverage Service Interface Standard (WCS)のOpen GIS Consortium (OGC)標準のOracle Spatial and Graphの実装について説明します。(OGCによると、"カバレージ"とは地理空間データの電子的エンコーディング、つまり、空間および時間で変化する現象を表すデジタル地理空間情報のことです)。
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サービス管理コンソールでは、WCS管理がサポートされています。 - WCSのOracle実装の拡張
Oracle WCS拡張では、WCSリクエストのwcs:Extension要素内にオプションの要素を定義し、リクエスト処理の次の点の制御を可能にします。 - WCSの操作: XMLを使用したリクエストとレスポンスの例
WCSでは3つの主要な操作が提供され、各操作にリクエストとレスポンスの形式があります。 - 実装されているWCS拡張
このトピックでは、実装されているWCS拡張について説明し、各拡張で定義される要素のいくつかについて例を示します。 - WCSの問題の診断
WCSログ・ファイルには診断情報が含まれています。
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表を持つ任意のデータベース・スキーマで、SDO_WCS.Initプロシージャを使用して作成する必要があります。カバレージ情報はWCSスキーマに格納されます。
このドキュメントの一部の例で使用される、WCS_USERという名前の特別に作成されたデータベース・ユーザーのスキーマはWCSスキーマです。
特定のOracle Databaseスキーマは、ユーザー・スキーマの場合も、WCSスキーマの場合も、ユーザー・スキーマとWCSスキーマの両方の場合もあります。
各WCSインスタンスには、アプリケーション・コンテナ内でJDBCデータ・ソースとして構成されたWCSスキーマが必要です。通常、特定のデータベースに対して構成されるWCSスキーマは1つのみですが、多数のWCSインスタンスを構成し、同一のデータベースで異なる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スキーマを構成するには、次の手順に従います。
-
メタデータ表を作成します。これを行うには、SQL*Plusを使用して、WCSユーザーとするユーザー(この例では、WCS_USERという名前のユーザー)としてOracle Databaseに接続し、次のように入力します。
CALL SDO_WCS.init();
-
GeoRasterオブジェクトを格納するデータベース・ユーザー(この例では、IMAGEという名前のGeoRaster表を所有するSCOTT)として接続します。
connect scott/<passworf-for-scorr> 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');
17.5.2 WCSデータ・ソースの設定
WCSエンジンには、1つのデータ・ソースが必要です。次の手順に従ってWCSデータ・ソースを構成します。
-
WebLogic Server(WLS)コンソールにログインします。
-
左側のペインの「ドメイン構造」で「データ・ソース」を選択します
-
「新規」、「汎用データ・ソース」の順にクリックします。
-
「新規JDBCデータ・ソースの作成」ページで、次のように指定します。
-
名前:
WCS_DATA_SOURCE
-
JNDI名:
jdbc/wcs_admin_ds
-
データベースのタイプ:
Oracle
-
-
データベース・ドライバに「Oracle's Driver (Thin) for Instance connections; バージョン: 任意」を選択します。
-
「グローバル・トランザクションのサポート」は省略できます。
-
「接続プロパティ」ページで、次の指定を行います。
-
データベース名
-
ホスト名
-
ポート
-
データベース・ユーザー名(たとえば、
WCS_USER
) -
パスワード
-
-
次のページで、この接続をテストします。接続が正常の場合、このデプロイメントに対して適切なサーバー名(
AdminServer
または管理対象サーバー名)を選択します。 -
新しいデータ・ソースが検出されるようWebLogic Serverを再起動するか、少なくとも
sdows
アプリケーションを再起動します。
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コマンドを実行します。
gdalinfo --formats
-
必要なGDALドライバおよび希望のGDAL出力形式ドライバをインストールしたら、GDALライブラリ・ディレクトリをLD_LIBRARY_PATHに追加します。次に例を示します(Linux/UNIX)。
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:<path_to_directory_for_libgdal_so>
-
gdal.jar
(gdal/lib
ディレクトリ内)をWebLogic Serverドメインのlib
ディレクトリにコピーします。 -
WebLogic Serverを再起動します。
-
WCS管理コンソールの「構成ファイル」タブを使用してGDALデータベース接続パラメータを構成します。
-
オプションで、GetCoverage操作(WCS)リクエストにGDALへの作成オプション(
。CreationOption
)を指定します
17.6 WCS管理コンソール
Oracle Spatial Webサービス管理コンソールでは、WCS管理がサポートされます。
次の形式のURLに移動すると、Web Coverage Service管理コンソールを使用できます。
http://<system-name>:<port>/oraclespatial/
WCS管理コンソールには、構成、テストおよび問題の診断を行うための画面が用意されています。このリージョンには次のタブがあります。
-
構成ファイル
-
カバレージのパブリッシュ
-
テスト
-
ログ
「構成ファイル」タブ
URL: http://<host>:<port>/oraclespatial/wcs/configfile.jsp
このタブでは、管理者がsdows.ear/WEB-INF/conf/WCSConfig.xml
ファイルを変更できます。このファイルでWCSロギング、GDALパラメータおよびGetCapabilities
レスポンス(ServiceIdentification
およびServiceProvider
)を構成します。
-
ログ・レベル、ログ・ファイルのサイズの上限、ログ・ファイルの数などのロギング属性を構成できます。
-
ファイル・サイズに基づいたログ・ローテーションがサポートされます。ファイルの数を制限することにより、ログ・ファイルによって使用されるディスク領域を制限できます。ログ・ファイルは
sdows/web/WEB-INF/log/
ディレクトリに作成され、wcs_
n.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が使用して出力ファイルを生成する、書込み可能なディレクトリを指す必要があります。
GDALが適切に構成されていることを確認するには、Oracle Spatial Webサービス管理コンソール(http://<host>:<port>/oraclespatial/home.jsp
)の「情報」タブに移動します。GDALが適切に構成されている場合は、GDALのバージョンが表示されます。
適切な要素をコメント解除し、http://schemas.opengis.net/ows/2.0/owsGetCapabilities.xsdのXMLスキーマに従って必要な情報を指定して、ServiceIdentification
およびServiceProvider
を構成できます。
「変更の保存」をクリックすると、変更内容に従ってファイルが変更されます。ファイルが正常に更新されたら、実行中のWCSインスタンスに変更を適用するか、次のアプリケーション・サーバーの起動まで待機するかを選択できます。
カバレージのパブリッシュ・タブ
URL: http://<host>:<port>/oraclespatial/wcs/publishCoverage.jsp
このタブでは、新しいカバレージをパブリッシュできます。管理者の資格証明が必要です。
すべてのGeoRasterオブジェクトとそのパブリッシュ・ステータスを表示するには、「すべてのGeoRasterオブジェクトをリスト」をクリックします。
SDO_GEORASTER型の1つの列を戻す選択問合せを指定することで、GeoRasterオブジェクトをカバレージとしてパブリッシュできます。選択問合せによって戻されたすべてのGeoRasterオブジェクトがパブリッシュされます。次の要素を使用して選択問合せを指定します。(簡単にするために、「ラスター表(スキーマ、表、列)の選択」から任意のエントリを選択し、「問合せパラメータの入力」をクリックしてこれらのフィールドに移入することもできます。)
-
列名: From句に指定した表のSDO_GEORASTER列名
-
From句: スキーマ名、表名、および別名(WHERE句で必要な場合)を含む有効なFROM句。
-
WHERE句: 有効なWHERE句。空間操作を含めることができます。WHERE句が空の場合、SELECT文は、指定した表のすべての行を戻します。
「GeoRasterをリスト」をクリックして、指定したすべてのGeoRasterオブジェクトをHTML表に移入できます。個々のGeoRasterオブジェクトのパブリッシュまたはパブリッシュ解除を選択することもできます。
GeoRasterを複数回WCSにパブリッシュすることはできません。
「テスト」タブ
URL: http://<host>:<port>/oraclespatial/wcs/client.jsp
このタブでは、POSTリクエストを送信できます。「テスト」タブは最初は空です。GetCapabilitiesリクエストを送信して次の要素に移入する必要があります。
-
操作: 前回のGetCapabilitiesレスポンスで検出されたすべての操作を含むHTML select要素。
-
カバレージ: 前回のGetCapabilitiesレスポンスの内容が移入されたHTML select要素。受信したGetCapabilitiesレスポンスのすべてのカバレージIDが含まれます。
リクエストの作成: 指定した操作に対するリクエスト、カバレージID、操作URLを「リクエスト」テキスト領域に移入します。
リクエスト: テキスト領域。この内容が操作URLにPOSTリクエストで送信されます。この要素は「リクエストの作成」をクリックして移入できます。必要に応じてそのリクエストを編集できます。
操作URL: リクエストの送信先URL。この要素は「リクエストの作成」をクリックして移入できます。必要に応じてそのリクエストを編集できます。
リクエストの送信: リクエストの内容を使用して操作URLにHTTP POSTリクエストを送信します。HTTP POSTリクエストのレスポンスは「レスポンス」に表示されます。
レスポンス: 「リクエストの送信」操作のレスポンスが移入されるテキスト領域。
「ログ」タブ
URL: http://<host>:<port>/oraclespatial/wcs/log.jsp
このタブでは、WCSログ・ファイルを表示およびダウンロードできます。管理者の資格証明が必要です。
Oracle WCSログ・ファイルはすべてsdows.ear/WEB-INF/log/
ディレクトリにあり、ファイル名はwcs_
n.log
(nは連続番号)という形式です。
このタブには、WCSサーバーで生成された最新のログ・メッセージを含むwcs_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://machine-name:port/oraclespatial/wcs?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/tiff
(GDALが構成されている場合)です。次に例を示します。
<wcs:format>image/tiff</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ログ・ファイルには診断情報が含まれています。
これらのログ・ファイルは、sdows.ear/WEB-INF/log
ディレクトリ内にあります。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>