GeoserverでのWCS(Web Coverage Service)のリクエスト方法

現在、各種GISデータが、国土地理院基盤地図情報( http://www.gsi.go.jp/kiban/index.html )や、国交省の国土数値情報( http://nlftp.mlit.go.jp/ksj/ )などで提供されていますが、使い勝手がよくありません。データが必要になったときに、2次メッシュごとだったり、県ごとだったりするデータをダウンロードして、shpファイルに変換して、必要な範囲を切りだしてということを、毎回しなくてはいけません。これ結構、面倒です。

で、Geoserverの登場です。Geoserverでは、WMSWFS、WCSという3つのサービスを起動できます。WMSは、googlemapで見るような地図画像の配信サービスです。そして、WMSで配信される地図画像の元データを配信するのが、WFSとWCSのサービスです。つまり、WFSとWCSを使うと、WMSで配信される地図画像の元データ(shpファイルとかgeotiffとか)をダウンロードできるようになります。しかも、好きな範囲を、好きな投影法で、好きな形式で。なので、必要になりそうなデータをサイトから取ってきて、geoserverに入れておけば、リクエスト1つで、データを取ってこれるようになるわけです。

国土地理院とか国交省とか環境省とか、ばらばらにデータを独自の形式で公開してないで、一箇所からWMSWFS、WCSで配信してくださいよ〜と切に思うわけですが。。。


で、やっと本題ですが、そのリクエスト方法を、自分の覚書として、メモっておきます。

WCS1.0.0の場合

http://xxx.xx.jp:8080/geoserver/wcs?service=WCS&version=1.0.0&request=GetCoverage&coverage=topp:dem10&BBOX=140.5,39.0,140.55,39.05&crs=EPSG:4612&resx=0.001&resy=0.001&format=GeoTIFF

WCS1.1.1の場合

http://xxx.xx.jp:8080/geoserver/wcs?service=wcs&version=1.1.1&request=GetCoverage&identifier=topp:55&BOUNDINGBOX=37.0,140.00,37.05,140.05,urn:ogc:def:crs:EPSG:4612&format=image/geotiff&store=true

注意点

  • geoserver2.0.2ではWCS1.0.0とWCS1.1.1の新旧バージョン両方使えます。
  • WCS1.0.0とWCS1.1.1では、リクエスト方法が結構違ってます。
    • 特に、BBOXとBOUNDINGBOXでは、緯度と経度(X,Y)の順番が逆になってるので注意ください。
  • WCS1.0.0では、リクエストでgeotifデータをそのままダウンロードできます。
  • WCS1.1.1では、store=trueを付けないと、emlがダウンロードされて、その中にデータが添付されます。store=trueを付けると、サーバーにデータが作成されて、そのURLがxml中に表示されます。(ただし、google chromeだと、xmlが表示されませんでした。私だけ?)
  • WCS1.1.1では、投影法を変換できるようですが、WCS1.0.0ではできないのかもしれません。→これから検証します。

※関係ありそうな、ちょっと別のはなし
基盤地図情報の標高データをgeoserverに投入(epsg:4612)してWCS1.0.0でリクエストするときは、resxとresyを、元データの解像度と同じ0.0001111111にしておかないといけません。0.0001だと、gdademでhillshadeを作った時に、なぜかグリッド模様の線が入ってしまいます。あと、UTMに変換してからhillshadeを作るときには、gdawarp -r bilinear じゃないと、同様に線が入ってしまいます。