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が異なることがあります。

  • ServiceMetadataformatSupported要素では、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:GridRectifiedGridCoveragesの場合はタイプ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:RectifiedGridgml: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>