2016年12月12日月曜日

FOSS4Gで電子海図の世界をのぞく2016 延長戦

これは「FOSS4G 二個目だよ Advent Calendar 2016」の12日目の記事です。

1個目のほうでは、OpenCPNというソフトウェアを使えば、電子海図(ENC)を正しく表示できることをお話ししました。

でもやっぱりQGISで見たい


昨年の記事の中で、ENCをQGISで表示させてみましたが、どうも見た目がいまいちな感じなので、「もう少しマシにならないのか??」と思っていたところ、これを実現させている方がいらっしゃいました。

その方のブログ記事はこちら(フランス語)

やり方はこんな感じです。

  1. SVGファイルをQGISにセットしておく。
  2. ogr2ogrを使って、ENCのオブジェクトごとにshapefileに変換して保存する。
  3. あらかじめレイヤーの設定をしたQGISプロジェクトファイル(.qgs)をshapefileと同じフォルダーにコピーし、プロジェクトファイルをQGISで開く(プロジェクトファイルも上記記事からダウンロードできます)。


早速試してみる


まず、手順の1ですが、上記サイトからダウンロードしたzipファイルを展開し、nauticalフォルダーごと、QGISのSVGが入っているフォルダーにコピーします。私の環境では、Windowsでバージョン2.18を使っているので、"C:\Program Files\QGIS 2.18\apps\qgis\svg"の下に置きます。


次に、手順2として、ogr2ogrを使ってENCをshapefileに変換します。
コマンドはこんな感じ(US4HA51M.000というのがENCのファイルです)。エラーが大量にでるので、-skipfailuresオプションをつけるのがミソっぽい。
ogr2ogr -skipfailures . .\US4HA51M.000
実行すると、大量のshapefileが出来上がります。


手順3の前に、プロジェクトファイルの中を見ると、svgファイルの指定のところで、ファイル名がフルパスでべた書きされており、このままだと動きませんので、動作環境に合わせて書き換えます(この辺はもう少しうまいやり方があるのかもしれない)。

書き換えたqgsファイルをGISTに置いておきます。

これでQGISのプロジェクトを開くと…
おお!!

細かいことを言えば改善したい点はたくさんあるのですが、ここまでENCに近い表示ができるのは、ほんとうに素晴らしいです。

というわけで、QGISでENCをもっとご活用ください。

0 件のコメント:

コメントを投稿