カテゴリ:GPS・GIS( 60 )

高度なデジタイジングツール解説

(QGIS2.14)

FOSS4G Advent Calendar 2016 6日目の記事です。
http://qiita.com/advent-calendar/2016/foss4g
ここで一気にハードルを下げますw
2つめに投稿した方が良かったと思いつつ、ちょいと先走って登録してしまったので…


さて2年ほど前に、『諸君、私はポリゴンが好きだ』と仰った方がいましたが
(僕もポリゴン大好きです)
http://d.hatena.ne.jp/wata909/20141222
大した技術もない僕にとっては、QGISの機能が底上げされていくということが非常にありがたいわけで。

このところQGISのデジタイジングツールも飛躍的に向上してきましたが、あまり解説しているサイトを見かけないので まとめておこうと思った次第。
(まぁ今さらまとめるまでもない、というのが多くの認識かもしれませんが…)


まず、デジタイズ時に欠かせいないスナップオプションですが、QGISの設定から、
a0122776_18473943.png
『ドックウィンドウ内でスナップオプションを開く』にチェックを入れておくと
a0122776_18491079.png
スナップオプションのウィンドウを独立させて常に表示しておけるので便利です。


では、改めてデジタイジングツールの説明に入ります。


a0122776_18495809.png

高度なデジタイズパネル

a0122776_18504480.png
このアイコンをクリックするとパネルが開きます。
a0122776_18595863.png
d【距離】、a【角度】、x【x座標】、y【y座標】を直接入力することができます。
また、値を相対値で表示したり、値をロックすることができます。

右上のオプションから
a0122776_19012715.png
作図時にスナップする角度や、スナップオプションの適用方法を設定することができます。

正確な作図をする際に役立ちます。
a0122776_19034516.png

トレース

a0122776_21125920.png
既存のレイヤをトレースして作図することができます。
始点と終点をクリックすれば、
a0122776_21084718.png
a0122776_21094293.png
ラインやポリゴンの縁をトレースしてくれますが、
a0122776_21105147.png
思った方にトレースしてくれない場合は経由点をクリックしましょう。


Undo Redo

a0122776_21141846.png
取消と再実行。説明いりませんね。


地物の回転

a0122776_21152034.png
回転させたい地物をクリックすると、入力パネルが表示されます。
マウスを動かして回転させても良いし、パネルに直接入力でも可。
a0122776_21170169.png
スナップ先を指定することで、指定した角度毎に回転させられます。


地物の簡素化

a0122776_21181157.png

簡素化させたい地物をクリックすると、簡素化ツールが開きます。
a0122776_21190028.png
許容範囲を設定しながら、
a0122776_21194786.png
地物の頂点数をどのくらい減らすか調整しましょう。
a0122776_21201796.png
a0122776_21205995.png
個人的に使ったことがない機能ですが、海岸線を簡素化して地図をイラスト化したり、ハンディGPSのトラックログを間引きするのに便利かもしれませんね。


リングの追加

a0122776_21220410.pngいわゆるドーナツ状のポリゴンを作るための機能です。


a0122776_21225313.png
a0122776_21225324.png
a0122776_21225421.png

部分の追加

a0122776_21235456.png元となる地物を選択した後、
a0122776_21244460.png
部分を作図して追加します。
a0122776_21244569.png
a0122776_21244524.png
見かけ上 複数のポリゴンですが、1つの地物として扱うことができます(マルチポリゴン)。


リングの充填

a0122776_21260432.pngドーナツの穴を作りつつ、


a0122776_21263587.png
a0122776_21263568.png
a0122776_21263552.png
新しい地物で埋めてくれます(ポリゴンが重なっているわけではない)。


リングの削除

a0122776_21283453.png穴を埋めます。


a0122776_21225421.png
a0122776_21225313.png

部分の削除

a0122776_21333329.pngマルチポリゴンの一部を削除できます。


a0122776_21343226.png
a0122776_21343291.png
地物の数は変わりません。


地物の変形

a0122776_21353777.pngラインを引くことで、その形に地物を変形できます。


a0122776_21363356.png
a0122776_21363487.png
a0122776_21364328.png
a0122776_21364412.png
隣接したポリゴンを変形した場合、
a0122776_21375302.png
a0122776_21375468.png
a0122776_21375401.png
トポロジ編集してくれます。


曲線のオフセット

a0122776_21400975.png個人的に使い道が思い浮かばないので、何が出来るのかは、スクショを参考に。


a0122776_21482191.png

地物の分割

a0122776_21425366.png
地物をぶった斬ることが出来ます。


a0122776_21494517.png
a0122776_21495426.png

他にラインレイヤがあったりした場合は、上記のトレース機能を併用することができます。
a0122776_21495720.png
a0122776_21495884.png


部分の分割

a0122776_21525099.png『地物の分割』との違いが分かりにくいですが、『部分の分割』の場合は地物は1つのままです(マルチポリゴン化)。


a0122776_21535524.png
a0122776_21535541.png
a0122776_21544148.png
『地物の分割』を使った場合は、スクショの例では地物が4つになります。
a0122776_21551178.png
a0122776_21551183.png
個人的には、「部分に分割」なのでは、と思ってます。


地物の結合

a0122776_20495045.png結合させたい地物を選択して、


a0122776_20513778.png
a0122776_20513820.png
引き継ぐ属性データを設定すれば地物が1つになります。
a0122776_21244460.png
例では属性フィールドが1つだけですが、フィールド毎に引き継ぐデータを設定することができます。
また、隣接していないポリゴンを選択して結合した場合は、
a0122776_20572840.png
a0122776_20513869.png
マルチポリゴンになります。


地物の属性結合

a0122776_20572756.png地物の属性のみを結合します。フィールド毎に引き継ぐデータを設定できるのは『地物の結合』と同じです。


a0122776_20572840.png
今回は、属性データBを適用してみます。
a0122776_21004590.png
a0122776_20584387.png
『地物の結合』とは違い、地物は2つのままです。
a0122776_20584318.png
a0122776_20584475.png

ポイントシンボルの回転

a0122776_21031858.pngシンボルを回転させるには、少し下準備が必要です。

a0122776_21032067.png
まず、ポイントデータの属性テーブルを開いて、新しいフィールドを追加します。
a0122776_21032139.png
名前は何でも良いです。タイプは整数値、長さは最低でも3に。
a0122776_21032117.png
データは、NULLのままで良いです。

次に、レイヤのプロパティを開いてスタイル設定をします。
a0122776_21044477.png
回転の右にあるボタンをクリックして、追加したフィールドで設定します。

これで、地物をクリックすればシンボルが回転できるようになっています。
a0122776_21044407.png
属性データに直接入力でも良いです。
a0122776_21044473.png

さて、如何だったでしょうか。
徹底解説というほどに丁寧に説明したわけでもありませんが(スミマセン…)、多少なりとも参考になったと思ってくれる方がいれば幸いであります。



以下、ダラダラと雑談

今回、デジタイズツールを取り上げたのは、自分が最も使っているツールだからです。
せっかくのGISなんだから、解析して云々だとか意思決定支援ツールとして、だとか色々とあるんでしょうが、個人的には その前段となるデジタイズが最も楽しい。
そんな僕がOpenStreetMapに手を出すと
http://dohokugeo.blogspot.jp/2015/12/blog-post.html
こんなことになります。それはさておき…


うちの職場、北海道に307万ha(北海道の約4割)の土地を持っています。
この広大な面積の図面も管理しているわけですが、未だに修正は手書きです。
手書きで修正した図面を(コピーしたりスキャンしたり諸々歪ませて)毎年、上局に提出しています。それがさらに上局にある図面に(恐らく)手作業で書き写され、その後 外部にGISデータの作成が発注され、デジタル化されて1年後くらいに帰ってきます(詳しくは知らないけど、おおよその流れはこんな感じのはず…)。
常に、1~2年遅れのデータをGISで使っているというわけです。
さらに言えば、データ作成を請け負った事業者が(多分)林業に精通しているわけもなく、業界内の人間から見たら「それはないだろ」と言いたくなるような間違いがあったりします。
あと、ドーナツ状であるべきポリゴンも全て紐付だったり……
a0122776_21110795.png
こいつが原因で、解析やら何やらでエラー吐きまくりです。まぁ簡単に修正できるので良いんですが、修正方法を知るまでは泣きそうでした。
(いまだに紐付ポリゴンとか隙間のあるポリゴンを見ると殺意が湧きますが)

結局、1年も待っていられないし、待っていても間違ったデータが来るのが分かっているので、僕は常に自分で修正・最新化しているわけです。その上で、QGISを使える他の職員と共有したり、誤りを上局に報告しています。
ある意味で、図面修正しているだけで幸せな僕には良い状況なのかも……いや良くないだろ。


まぁそんなこんなで、
高度なデジタイズツールが実装された時の僕の喜びようを分かっていただけるのでは。


Let’s digitizing!


[PR]
by thorb38 | 2016-12-06 21:15 | GPS・GIS

Freehand raster georeferencer

(QGIS2.14)
さて、前回ラスタをドラッグで移動させる方法を紹介しましたが、
http://denthor.exblog.jp/22581100/
あくまでも位置情報のついたラスタを移動させるものでした。

今回のFreehand raster georeferencerプラグインは、位置情報のないラスタをQGISに表示し、マウスドラッグで操作して位置情報を与えることができます。

操作は非常に簡単です。
【AD】をクリックし、取り込むラスタデータを選択します(jpg、bmp、png)。
a0122776_18213487.png




【MO】をクリックしてから、マウスドラッグでラスタを移動できます。
a0122776_18262144.png
a0122776_18275318.jpg

【RO】で回転。
a0122776_18305917.png
a0122776_18315656.jpg


【SC】【AD】で変形。
a0122776_18325973.png
a0122776_1833232.png
a0122776_1835555.jpg

【T-】【T+】透明度の変更。
a0122776_18371590.png
a0122776_18371899.png






【II】でエクスポート(jpg、bmp、png)。ワールドファイルも作成されます。
a0122776_18394943.png

a0122776_18431845.gif

[PR]
by thorb38 | 2016-07-14 18:48 | GPS・GIS

ラスタデータをちょっとズラす

(QGIS2.8)

例えば、紙図面をデジタル化してGISに表示させたい、というような時。
スキャナでPCに取り込んで、ジオリファレンサで位置情報を与えるわけですが、ピッタリ合うことなんて ほとんどないわけです。

こんな感じ(わざと大きめにズラしてます)
a0122776_20432264.png

さてそんなとき、もう1度ジオリファレンスし直すか否か。
誤差の大きさにもよるのでしょうが、一時的にしか使わないようなデータだったりすると、わざわざやり直すのも面倒な訳で…

「マウスでドラッグして、ちょいとズラしたいなぁ」と思ったこと ありませんか?

というわけで、プラグイン【rasmover】の紹介です。

ラスタレイヤを選択した後に、
a0122776_20451355.pngrasmoverのアイコンをクリック。




その後に、画像をドラッグしてズラしましょう。
a0122776_20465923.png
画面上では、赤い始点と移動先を示す線が表示され、ドラッグ後に画像が移動します。
※ラスタデータのファイル名などに日本語が混じっているとエラーが出ます。

いかがでしょうか
a0122776_2049086.png
だいぶマシになりましたね。
移動させたラスタは【moved】という名前で一時レイヤとして追加されます。
a0122776_20491254.png
【名前をつけて保存】しておかないと、QGISを終了させた時に消えるので注意してください。


ジオリファレンサについては、↓ こちらが大変参考になります。
http://www.geopacific.org/opensourcegis/gcngisbook/QGIS_book/7b2c17ae0/7b2c27ae07b2c17bc0

[PR]
by thorb38 | 2016-03-09 20:54 | GPS・GIS

Cartogramプラグインを使ってみた

統計地図(カルトグラム)とは…
主題地図の一種であり、人口や移動時間、国民総生産などを土地面積と距離に置き換えた地図である。面積統計地図と距離統計地図の2種類あり、それぞれ数値を地図化することにより地形が歪んでいる。
Wikipediaより引用

ということで、QGISにCartogramのプラグインがあったので試してみました。
(QGIS2.8)

テーマは、
北海道はどれくらい札幌なのか?

「北海道といえば札幌」とは道北在住者として言いたくはないのですが、人口は200万人を突破しようか、という勢いであり、野球もサッカーもバスケットボールも、プロチームは全て札幌が本拠地です。
『北海道日本ハムファイターズ』と名乗ったところで、札幌以外の人が日ハムに愛着が持てるかと言ったら、かなり微妙な気がします。
(地方から熱心に応援に行っている人たちがいることも承知していますが…)

まぁ、それはともかく
では北海道が実際のところ、どれくらい札幌なのか視覚化してみよう、というのが今回の趣旨です。

まず、データを集めます。
・北海道の地図データ(Shapefile)
  国土数値情報の行政区域
  http://nlftp.mlit.go.jp/ksj/
・市町村別人口データ(csv)
  e-Stat 平成22年度国勢調査
  http://www.e-stat.go.jp/SG1/estat/eStatTopPortal.do
・観光客数
  北海道観光入込客数調査報告書
  http://www.pref.hokkaido.lg.jp/kz/kkd/irikomi.htm


QGISに、北海道の地図を表示します。
(統計データのない北方領土を削除したり、小さい島を削除したり、飛び地になっている市町村をマルチポリゴン化したり、多少編集しています)
a0122776_19302081.png


統計データを、属性データに追加します。
(csvファイルを若干、編集してます)
a0122776_19331299.jpg

属性データにcsvファイルを追加する方法の詳細は、こちら↓
https://sites.google.com/site/qgismemo/040-bian-ji/shu-xingdetanicsvmatahadbffairuwo-jie-heshitai


あとは、Cartogramプラグインを起動して、
a0122776_19344888.jpg
レイヤ(北海道の地図)と、変換元にする属性データ(人口データ等)を選択するだけです。
※Cartogramプラグインは、変換元にマイナスのデータや【0】【null】が含まれていると動きません。


人口(2010年)によるカルトグラム↓
a0122776_19355818.png

観光客数↓
a0122776_19363611.png
後志地方が盛り返している印象。


北海道でも、オープンデータの公開が徐々に広まってきており
室蘭市 http://www.city.muroran.lg.jp/main/org2260/odlib.php
森町 http://www.town.hokkaido-mori.lg.jp/docs/2014101000041/
札幌市 http://www4.city.sapporo.jp/opendata/
北海道庁 http://www.pref.hokkaido.lg.jp/ss/jsk/opendata/opendata.htm

様々なデータが扱いやすい状態で公開されるケースが増えてきています。
これらのデータを使って面白い地図が作れるかもしれませんね。



余談:
このネタは本来、もうちょい色々とデータを使ったりして煮詰めた上でFOSS4G Advent Calendar 2015に投稿するつもりでしたが、色々あって間に合いませんでした。
今年の年末まで温めておいても仕方がないので、公開しておきます。

今から年末のネタ探しが心配ですw
[PR]
by thorb38 | 2016-01-23 19:49 | GPS・GIS

第4回QGIS勉強会

第1回 基礎・地図表示・設定
第2回 GPS連携
第3回 Excelデータ活用・デジタイズ

第4回は【プラグイン紹介】です。
(QGIS2.8使用)

扱ったプラグインは下記のとおり

・OpenLayers plugin
・QuickMapServices
・Qgis2threejs
・go2streetview
・Table Manager
・Value Tool
・Rectangles Ovals Digitizing
・Point Sampling Tool
・Multi-distance buffer
・空間検索
・realcentroid
・Quick Finder
・Numerical Digitize
・VoGIS-profilTool


資料については以下よりダウンロードが可能です。

 PDFファイル
 ODFファイル
 PPTXファイル

背景地図は、過去回のデータから変わりありません。
[PR]
by thorb38 | 2015-12-20 18:41 | GPS・GIS

第3回QGIS勉強会

第1回 基礎・地図表示・設定
第2回 GPS連携

第3回は【Excelデータの活用】と【デジタイズ】です。
(QGIS2.8使用)

内容は、
【Excelデータの活用】
・xlsxファイル → csvファイル
・csvtファイルの作成
・属性データの結合

Excelファイル(xlsx)をcsvファイルに変換して、シェープファイルの属性データに追加する方法。
用途としては、小班データに森林調査の結果を追加するなど。
定期的に更新する必要のあるデータは、ExcelなどでまとめておいてGISに反映させることで、直接属性データを編集するよりも手間を掛けずに、データの更新を行えます。

※QGIS2.10以降は、xlsファイル(Excel2003以前の形式)を取り込めるらしいです。


【デジタイズ】
・ジオリファレンサ
・デジタイズ

手書きの図面などをスキャナでデータ化(jpgf等)し、ジオリファレンサによって位置情報を追加することによって、GISで表示することができます。
画像をトレースすることによってベクタ化し、データ解析等を可能な状態にします。


というわけで
勉強会の資料として

・スライド
 PDFファイル12
 ODPファイル12(LibreOffice)
 pptxファイル12(パワポ)

サンプルデータ

をダウンロードできるようにしておきます。

サンプルデータには、
森林調査簿と林況調査結果(ともに擬似データ、xlsxファイル)
csvtファイル作成用のxlsxファイル
ジオリファレンサで取り込むための画像データが入っています。

背景地図は、第1・2回と同様に室蘭市オープンデータ(cc by2.1)を使用しています。
[PR]
by thorb38 | 2015-10-30 17:58 | GPS・GIS

第2回QGIS勉強会

受講者の要望により、第2回は【ハンディGPSとの連携】で勉強会を行いました。
(QGISのバージョンは2.8)


内容は、
・前回のおさらい (第1回勉強会については、こちら
・GPSの基礎知識
・GPS→GISの活用
・GIS→GPSの活用


【GPSの基礎知識】
うちの職場では、ハンディGPS機種選定の基準が一切なく、個々の判断に任されているという状況のため、転勤後などにGPSの購入を判断する立場となった時、無駄な買い物をしないで済むようになればと思い、30分程度の話をさせてもらいました。

【GPS→GISの活用】
ハンディGPSで取得したデータ(waypoint、track)をGISで表示し、面積や路網延長距離を算出する方法を実習形式で。

【GIS→GPSの活用】
シェープファイルからGarminGPS用地図(imgファイル)を作成する方法と、
GarminCustomMapプラグインを使ってカスタムマップ(kmzファイル)を作る方法を実習形式で。
ついでに、道路地図などをGPSで表示するために、OpenStreetMapを使用していることを紹介させてもらいました。


というわけで
勉強会の資料として

・スライド
 PDFファイル
 ODPファイル(LibreOffice)
 pptxファイル(パワポ)

・サンプルデータ
 GPSデータ等(waypoint、track etc.)

をダウンロードできるようにしておきます。

背景地図は、第1回勉強会で使ったベクタデータを使っています。


第3回(Excelデータ活用・デジタイズ)はこちら
[PR]
by thorb38 | 2015-09-17 20:47 | GPS・GIS

第1回QGIS勉強会

職場内研修という扱いで、GISに興味のある職員を対象にQGIS勉強会を開催しました。
(QGIS2.8使用)

第1回は、

1.ベクタデータの表示
2.ラスタデータの表示
3.座標参照系について
4.QGISの設定
5.プロジェクトの設定

というカリキュラムで行いました。

一部職員には、すでにベクタ・ラスタデータとともに僕が作ったプロジェクトファイルを配布して、ある程度地図が出来上がっているところからQGISを使ってもらっていたのですが、このままでは転勤した瞬間にQGISを使えなくなるのでは、という不安があったので、自分でデータを用意・表示することができるようになってもらうため、基礎からガッチリやることにしました。

まずは何よりもQGISを操作してもらおう、ということで設定は後回しにして、まずベクタ・ラスタデータとは何か?を説明しつつ、シェープファイルやGeoTIFFをQGISに表示してもらってから、座標参照系や設定の話をして、最後にプロジェクトファイルを保存して終了という感じです。

勉強会用のベクタ・ラスタデータとして、室蘭市が公開しているオープンデータを使わせてもらいました。
http://www.city.muroran.lg.jp/main/org2260/odlib.php


勉強会の資料として、

・スライド
  PDFファイル
  ODPファイル(LibreOffice)
・サンプルデータ
  ベクタ(室蘭市オープンデータ・擬似林小班データ)

をアップしておきます。
残念ながらラスタデータは、容量が大きいのでアップしていません。

また、勉強会では、様々なWebサイトやGoogle Earthを使ったり、実際にQGISを操作しているところを見せながら講義しているので、この資料だけでは、ちょいと不十分かもしれません。


第2回は、勉強会後に要望の大きかったハンディGPSとの連携の予定。

・GPSで取得したデータをQGISで活用する方法
・QGISで作成したデータをGPSで活用する方法
・シェープファイルをGarmin用地図ファイルに変換する方法

で資料作成中です。

第2回(GPS連携)はこちら
[PR]
by thorb38 | 2015-09-06 21:48 | GPS・GIS

意外と使えるメモ帳

『ワンポイントアドバイス』

よく分からない形式のファイルは、とりあえず【メモ帳】で開いてみる。

GISなどで使用するGeo系のファイルは様々あり、普段見慣れないものもたくさんあります。
訳の分からないファイルがあったら、とりあえず【メモ帳】で開くと
ファイルの中身を確認できる場合が結構あります(個人的経験による)。

【xml】【gpx】【kml】【geojson】【prj】【tfw】などなど

前回使った避難所のxmlファイルを開くとこんな感じです。
a0122776_13004177.jpg
※直接は開けないので、メモ帳にファイルをドラッグ&ドロップする。
※間違って上書き保存しないように気をつけよう。


[PR]
by thorb38 | 2015-01-31 13:02 | GPS・GIS

QGISでxmlを可視化する

【QGIS 2.0.1】

あけましておめでとうございます(ちょっと遅い)。今年もよろしく。
新年一発目ですが、昨年末の予告通り小ネタで行きます。

今回は、xmlファイルをQGISで表示する方法です。
※xmlファイルに緯度経度の情報が入っていることが前提です。

xmlファイルの例として、
福井県鯖江市のオープンデータ『避難所、一時避難所等(xml)』を使用します。
ライセンスは、『CC BY』です。

途中でcsvファイルに変換するので、
csvファイルをQGISに表示する方法でもあります。


では、鯖江市の避難所をQGISに表示させてみましょう。

まず ↓こちらから
【XML】を右クリックして『名前をつけてリンク先を保存』
a0122776_14535618.jpg
xmlファイルをダウンロードします。

Excelを開いて、xmlファイルをドラッグ&ドロップすると
【XMLを開く】ウィンドウが開くので
a0122776_14541784.jpg
XMLテーブルとして開く

以下のようなエラーが出ても そのままOKすれば
a0122776_14543227.jpg

xmlファイルの内容が表示されるはずです。
a0122776_14545426.jpg
避難所の住所や座標、連絡先などが確認できますね。

【名前をつけて保存】します。
a0122776_14553082.jpg
ファイルの種類は、【csv】です。
a0122776_14554820.jpg

QGISを起動させたら、【デリミティッドテキストレイヤを追加する】
a0122776_14560259.jpg
Xフィールドに【経度】Yフィールドに【緯度】を設定して【OK】
a0122776_14562406.jpg
CRSを【WGS84】に設定
a0122776_14563803.jpg

避難所が表示されます。
a0122776_14565154.jpg
※背景地図は、OpenStreetMapの道路データです。

避難所を種類別に区分してみたり、可視化することでデータを活かすことができます。
a0122776_14572430.jpg

表示させたポイントデータを編集したい場合は、
レイヤを【名前をつけて保存】して、shpファイルに保存し直しましょう。


(了)


近頃、オープンデータというものが流行っておりまして
数年前から国をあげてIT化を推し進めますよ、と言ってきた訳ですが
少なくともうちの職場には全く関わりがない状態ですw

それはともかく、
数多くの地方公共団体などでオープンデータの公開が進んできている状況があります。

オープンデータは、機械判読できるファイル形式が望ましく(PDFとかは 止めてってこと)
例えば、真っ先にオープンデータの公開に踏み切った福井県鯖江市を見てみると
xmlファイルで公開されていたりするわけです。

そこでプログラミングなどに疎い人たちは思うわけです。
「xmlって何?」と。
wikipediaで調べてみても、「マークアップ言語って何?」と。
『?』が消えることは決してないわけです。使い方が分からないわけです。

Google先生に『QGIS xml 表示』などでお伺いを立てると、
国土地理院の基盤地図情報を専用のコンバートソフトを使って
xmlをshpに変換する方法が出てきます。
もちろんこのコンバートソフトは国土地理院のデータ専用なので、
他のところから持ってきたxmlファイルを変換しようとしてもエラーが出ます。

というわけで、今回はQGISでxmlファイルを表示する方法でした。


[PR]
by thorb38 | 2015-01-11 15:01 | GPS・GIS