12
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

FOSS4GAdvent Calendar 2022

Day 24

あの凡例よもう一度〜QGISでArcGIS用の表示再現にチャレンジしてみた〜

Last updated at Posted at 2022-12-24

Dec-24-2022 11-32-50.gif

はじめに

聖なる夜のジオジサン向け記事です。

GISで用いられるSHPファイルの表示において、ユーザーが塗りの色やパターン、線種など指定できる定義ファイルをスタイルファイルといいます。このうち、、*.lyrという形式があり、ESRI社さんによる商用GISソフトであるArcGISで採用されています
さて、諸般の事情()により、せっかく頑張って作った.lyrファイルをQGIS環境でも再現したいというご相談をたまにいただきます(1.6667件/年くらい)ので、ニッチな手法でありますが、一応メモということでQiitaに書き留めておこうとおもいます。

結論

  • lyrはQGISのSLYRプラグインで読み込めました
    • でも完璧ではないかもしれない
    • でも完璧な凡例ってなんだ

サンプルから見たlyrにおける凡例表示とその経緯

今回のサンプルデータは、環境省が提供している2.5万分の1植生図データとします。
このデータには二次メッシュごとに植生図SHPファイル一式のほかに凡例verXX_esriXX.lyrというスタイルファイルが入っています。ArcGISなどではこのlyrファイルを読み取ることで、環境省が提供している植生図PDFなどと同じ凡例色が再現されるという仕組みです。

image.png
(↑このlyrをArcGISで読むと↓のような凡例などが再現される、はず)
image.png
image.png

環境省1/25,000 植生図「父島(ちちじま)」より

H25年発行の植生図GISデータ作成ガイドライン第2.2版によると、ArcGISでの作成作業かつlyrファイルの提供はたしかに仕様通りなので致し方なしですよね(というか私も以前このデータ作っていましたし、当時としてこんなすごい主題図表現ができるのはArcGISさんくらいしかありませんでした)。

image.png

その後QGISをメインとした企業や研究機関に移られた方から、植生図SHPはあってもこの凡例表現を再現するには、一つ一つPDFの凡例を見ながらそれっぽく手打ちで再現する一種の餅から米作業をやるのが大変であるというお嘆きと相談を1.6667件/年くらいの頻度でいただいており、今回のSLYRプラグインでのやり方を探ってみたわけです。なお、SLYRプラグイン自体は2018年あたりからちらほらとTwitterやFOSS4Gの国際コミュニティでは情報が出ておりました。

たしか出た頃試したのですが挙動も安定しておらずどんなもんかな…と思っていたのですが、去年今年あたりのFOSS4G国際カンファレンスでもまた話が出たりしていたので、ちょっと覗いてみたところかなり進化しており今回そのトライをしてみたわけです。

※それよりうんと前に某wataさんとか某PEmugiさんにも黒魔法でなんとかできないんですかねえ…と駒場のFOSS4GTokyoで酔っ払って絡んで聞いていたのをなんか思い出した

やりかた

ではQGISでのトライ方法を見ていきましょう

インストール

  1. QGISのプラグインメニュー→プラグインの管理とインストールを選択。
  2. 検索窓にSLY…と入力するとSLYR(Community Edition)が出てくるので選択後インストール
    (Community版じゃないLicencen版はもっといろいろすごいことができる)
    image.png
  3. プロセッシングツールバーのSAGAの下あたりに「SLYR」ツリーが建立されているとインストール完了
    image.png

※しかしこんなにメニュー増えてたんだ…(もちろんComuunity版での機能制限はあるのでお間違えなく)
image.png

読み込む

SLYRのHPにあるみたいにドラッグ&ドロップでぱっと出ると最&高なんですけどそう簡単にはいかないので今回は手順を追ってやっていきます
image.png

流れとしては

  1. lyrの入ったshpを準備
  2. lyrをqmlなどに変換
  3. qmlを所定のSHPなどに適用
  4. (゚д゚)ウマー

になります。なお、今回はMacOSでのQGIS3.22.14で試しています。

1. lyrの入ったshpを準備
もととなるshpファイルは環境省生物多様性センターの自然環境調査Web-GISの調査情報ダウンロードからもってきます。このアタリをクリックしましょう
image.png
そうすると父島のSHPのみが降ってくる…わけでなく、まずアンケート回答という苦行があり、それを乗り越えると東京都で一個()のZIPがDLされてきます。それを解凍して父島のメッシュ番号であるshp40241.zipを探し出してもう一回解凍します。メッシュ番号がわからない場合は、先程の自然環境調査Web-GISの調査情報ダウンロードリンクの末尾がメッシュ番号になります。
image.png

2. lyrをqmlなどに変換
上記でQGISに準備したSLYRプラグインを使います。

とくにやってもやらなくてもいいのですが、lyrの中身を参照してみましょう
QGISのファイルブラウザタブから解凍した先程の父島の凡例ファイルである「凡例ver1.7_esri91.lyr」(凄い名前だ…)を掘り出して、右クリックし、Extract Symbolsを選択します

image.png

そうすると、大量の塗り凡例が読み出されています。
aDec-24-2022 16-23-51.gif

では、qmlに変換しましょう。
プロセッシングツールボックス下部の[LYR datasets]→[Convert LYR to QML]を選択(上記のlyrファイル右クリックから、Save as QMLでも同じですし、ツール内のSet style from LYR fileでも一発でできますがが正攻法ということで)。

image.png

先程の父島の凡例ファイルである[凡例ver1.7_esri91.lyr]をinputに選択し
出力するqmlを任意(今回はデスクトップ)場所・名称で指定

image.png

実行を押すと「そんなフォント無いよ」とエラー出るけど一応成功します。
image.png
ここで問題になってるのはArcGISで特定のフォントテキストを凡例の模様(○とか☆とか💩とか)もしくはラベルに使っている場合、変換先の環境に特定のフォントを求めてもそりゃモノがないので困る、というわけです。

3.qmlを所定のSHPなどに適用

DLしてきた父島のshpポリゴンをQGISに読み込みます。任意の一色塗りになるのは仕様なのでそりゃそうですよね
image.png

植生のp494241レイヤをダブルクリックし、左からペンキアイコンのスタイル→下部のスタイル→スタイルを読み込むを選択
image.png

ファイルからスタイルを読み込み、先程作ったqmlを指定し、下部の「スタイルを読み込む」を押す
image.png

全部出ているようなどうかはっきりしないけど
image.png

一番左上の▶を押すと、お、なんか読み込めている!
image.png

そして、OKを押すとSHP表示の色が変わるのですが、父島の真ん中に色指定がない…
image.png

これはSHPに同梱されてた[凡例ver1.7_esri91.lyr]の凡例定義ファイルが属性に対して全部を網羅していないのが原因かもしれません。あまりしっかりみていないですが、例えば空白の[HANREI_C]=350715が定義にはない(もともと無いのか、qmlに持ってこれてないのかはよくわからない)
image.png

なお、大島(p523903)などでは比較的出てたりします
image.png

また、本州内でもあきる野市(p522941)あたりもnullはほぼなさそうです。
image.png

ここで比較のために環境省webGISの植生タイルと比較をしてみます
image.png

ソースを読んでいるとhttp://gis.biodic.go.jp/webgis/files/vg67/tile/vg67/{z}/{x}/{y}.png
がタイルのURLぽいのでこれをお借りしてきます
ここでは割愛しますが、QGISへのタイル登録はこの辺などをご参照ください。

読み込んでみましたら、あきるの市付近はまあまあ良さげですね(わかりやすくするために、SHPの方は赤フチにしています)

Dec-24-2022 11-32-50.gif

でもここまで書いてて気がついた!単に色付き植生図見るだけでだったらタイル読んでくるだけでいいやん!
…とはいえ地図タイルの凡例と公表されている植生図のパターンとwebGISとももなんか微妙に差があるような気もしている…🤔うーむ。

まとめ

…ということでおそらくArcGIS用の凡例スタイルが読めたっぽいではありますが、上記のようにフォントが未対応な場合やそもそも何が正しいのか問題もあり、なんか読めたような読めなかったのかモヤモヤしますが、少なくとも手作業による「餅から米」苦行で延々とスタイルを制作しなくてもよいかもしれません。

しかし、それぞれのユーザーが使っているSHPが同じでも、GISソフト特有のツライ凡例定義によって閉じられていて、環境によって見え方が異なるのは要改善ですね。概念的にはこんなかんじ。

image.png

これらのギャップはちょっとした定義ファイルのやりくりによるものですが、GISにおける表現バイアスの古くて新しい問題と思います。

なお、このような凡例定義ファイルと表現ギャップ問題について悩むひとは国内に38人くらいしかいないとおもいますが、その参考となれば幸いです。

しかし産総研のシームレス地質図さんはスタイルファイルとしてLYRもSLDもQMLもAVL(!)も出しているのですごいです(AVL(ArcView3.x用スタイルファイル)なんて20年ぶりくらいに聞いた)。比較的汎用性が高くオープン仕様なスタイルファイルはいったいどれがベターなんでしょうか…
OGCにはSLDとかも載ってたりするのだけれど植生図などのような独特の表現に対応するかは未確認ですね。
…ああそうか、上記の植生データの地図タイルをつくったときのSLD出してもらったらいいのかな…

ということでまとめ。

  • lyrはQGISのSLYRプラグインで読み込めました
    • でも完璧ではかもしれない
    • でも完璧な凡例ってなんだ

かとおもいます。あとポイントとかラインとかラベルデータでは未検証なので、トライしてくれる勇者はおりませぬでしょうか。このほかにも、有償版SLYRではMXDのコンバートもできると書いてあるが人柱で17万円くらいはちょっとつらい、ヒー、サンタさ~ん🎅

 

12
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?