ラスタメニューでの補間機能について

1,339 views
Skip to first unread message

sakuya_izayoi

unread,
May 16, 2017, 12:54:57 AM5/16/17
to QGIS初心者質問グループ
お世話になります。
ラスタメニューの補完機能について、ちょっと気になったことがあるのでお聞きしたいです。

補間プラグインの中の、カラム数(列数のことかな)、行数、セルサイズX、セルサイズY
というのはどのようなことを表ししているのでしょう?

なんとなくやってみて感じたことは、セルサイズという項目に関しては、ラスタの一つの格子あたりの長さを規定しているという感じです。
つまり、直交座標系のデータの時に、セルサイズを100と設定すると、縦横100mの格子で補間してくれているという感じ。
セルサイズを100、10に設定すると、横100mで縦10mの長方形格子での補間をしてくれている感覚。

この感覚的なことであっているのでしょうか?
仮に上記のことで大丈夫そうならば、格子内に複数の点が入っていた場合には平均値補間になるのでしょうか?

情報をお持ちの方がお見えでしたら、お教え願います。

Auto Generated Inline Image 1

福岡

unread,
May 16, 2017, 9:51:47 AM5/16/17
to QGIS初心者質問グループ
sakuya_izayoi 様

こんばんは

補完機能について勉強する良い機会と思って調べてみました。
もし間違っているところがありましたら、ご存じの方が訂正してくださるとありがたいです。m(__)m

参考にしたのは、次のサイトの図6です。
測量に関するミニ知識-国土地理院-
http://www.gsi.go.jp/chubu/minichishiki12.html

これをみると、セルの中心点について値を補完するという意味に思えます。
そして補完方法なのですが、セルの中心点が含まれる3角形の頂点で作られた面を利用して、セルの中心点を得ているのではないでしょうか?
高さを持つ3点で三次元の面を形成できるということに気がつくのにちょっと時間が掛かりましたが、一応自分なりには納得できましたので投稿いたします。

sakuya_izayoi

unread,
May 16, 2017, 10:27:26 AM5/16/17
to QGIS初心者質問グループ
福岡さま
返信ありがとうございます。

遅くなりましたが、
自分でも三角形メッシュを作成して、重心を求めて値を算出したところ、3点の値を平均したものを重心の値、つまりTINメッシュの値としているみたい。
一応力技で検証してみた結果でした。

上記の質問でのセルサイズは、これらの重心の点をさらに平均するための設定なのでしょうか?セルサイズを大きくすれば全体的に平均化した値であり
データサイズは小さくできるが、特徴を捉えにくくなる。セルサイズを小さくすればもとの値に近い感じとなり、特徴は反映されるが、データサイズが大きくなる。

作業の内容に分けて試行が必要という感じでしょうか?

福岡

unread,
May 16, 2017, 8:41:14 PM5/16/17
to QGIS初心者質問グループ
sakuya_izayoi 様

おはようございます。

「測量に関するミニ知識-国土地理院-」 http://www.gsi.go.jp/chubu/minichishiki12.html からイメージなのですが、
DEMのメッシュ幅を狭くするとDEMメッシュ内に計測点を持たないものが増えると思います。
そうすると「計測点がある場合は、精度(標準偏差)が0.3m以内、ない場合には2.0m以内」ということですので、精度の問題も出てくるように思います。

それと3点の平均というのは意外でした。
これも図6から受けた私のイメージなので間違っているかもしれませんが、3点から平面の式を求め、その式へDEMのセルのXY座標を入れてZを求めるのかな、と思っていました。
検証用に計算式を入れたエクセル(念のため添付します)を作ってみました。
日中はまとまった時間が取れないので、帰宅後に検証してみたいと思います。
z値試算用.xlsx

sakuya_izayoi

unread,
May 16, 2017, 9:00:36 PM5/16/17
to QGIS初心者質問グループ
福岡様
勘違いさせてしまったようで、申し訳ありません。
3点の平均値になっていそうなのは、あくまで、TINメッシュの中心の値となります。DEMの値ではないです。
で、そのTINメッシュの中心値をそのTIN全体の値とし、特定の大きさの四角形内に交差していれば、交差している部分の値をすべて取り込んで、平滑化することによりDEMを作っているような印象を参考URLから受けました。
力技で検証したのですが、それが大体一致したということです。TINはあくまで三角形要素であり、DEMは四角形要素なのでそういう計算をしているんだろうなという推測もありますが・・・。

参考で頂いたファイル
その式のx,yの値がセルサイズに関連してくるのかなとも思いました。
なかなか奥が深いですね。何も考えずにできたと使えると一番楽なのですが、技術者としては原理も知っていないと説明できないので、日々勉強中です。


sakuya_izayoi

unread,
May 17, 2017, 1:25:08 AM5/17/17
to QGIS初心者質問グループ
福岡様

私の考え方では、Z座標値が標高でなく、単なる値として計算されるだけになってしまっていました。

福岡様の記載の方が的を得ています。
私の考え方の場合だと、メッシュの中にTINの中心点があればある程度問題なく計算しますが(しかしこれは単なる偶然の産物)
ない場合には近傍のTINの値をそのまま持ってきて平滑化してしまっているために
せっかくの斜面平面計算している意味がなくなっていました。

鉛直方向のZ座標が与えられているのに、これを単なる値としてみていたため、話をややこしくしてしまいました。
特定の四角形メッシュの中心座標と、TINの平面方程式から求める方法が技術的に説明できます。

ありがとうございました。

福岡

unread,
May 17, 2017, 9:09:06 AM5/17/17
to QGIS初心者質問グループ

sakuya_izayoi 様

こんばんは
検証してみましたが、私のイメージした理論値とQGISで出力された数値が一致しませんでした。

方法としては、
DEMを生成するときに補完法を選ぶ行の右端にあるボタンを押して出てくるダイアログで「補完後に三角形網をシェープにエクスポートする」にチェックを入れて三角形網を得ておきます。


算出されたDEMを ラスタ - 変換 - 変換(形式変換)を使って「ASCII Gridded XYZ」で保存。
デリミテッドテキストとして読み込んで、属性テーブルにx、y、zの値を持つShapeファイルとして保存。
見やすくするために、グリッドも生成。


これから値を拾い出して、以前添付したエクセルに入力して検証しました。

値の平滑化が行われている可能性もあるかと考え、影響が少なくするためにDEMのサイズを10mと極端に小さくした検証もしてみましたが、これも一致しません
もう少し考えたいと思いますが、ちょっと手詰まり状況です。うーん、残念。(x_x)

sakuya_izayoi

unread,
May 17, 2017, 11:35:31 AM5/17/17
to QGIS初心者質問グループ
福岡さま
返信ありがとうございます。

本題に入る前に、謝罪をさせてください。
以前私が述べた、3点から平均が出ていたというのは私の失態でした。
数値計算ソフトの機能を使い、三角形の重心にあたる値を計算させたのちに、再度自分で三角形の各頂点の値の平均値をとって
それらの二つが一致したと言っていただけの大間抜けなことをやっておりました。QGISで計算した結果と、自分で頂点座標の平均値をとったものと
比較しなければならないのに全然関係ないことをやって報告していました。ご迷惑をおかけしました。

本題。

福岡さまの式を参考にこちらでも検証してみようと実験を行ってみました。
結果は検証できませんでした。
いかに検証方法並びに検証できなかった理由を述べます。

10m四方の正方形をFEM解析ソフトのメッシュ作成機能を利用して
1m感覚の三角形メッシュを作り、この頂点に適当な標高を与えてやれば綺麗な1m感覚のプロット
ができるだろうと思い、以下のような図を作りました。


 ↑    図1 FEM解析用三角形メッシュ 

この作成した点をQGISに取り込むと


図2 図1の節点座標を取り込ませたQGISの状況

上記のように狙った通りにプロットできました。(平面直角座標系なら何でもいいです。)
そのプロットした点を補完機能を使いTINを作成してやれば図1のような三角形メッシュができるだろうと思い
以下のように設定して補完図を作りました。

↑ 図3 QGISの補完機能を使用したTIN並びにラスターの作成


図3にて作成されたTINやラスタを見ると以下のように右側下部が抜けてしまっています。


なんででしょう?場合によってはTIN作成の方法が何か違うのか、それとも設定が何か変なのか・・・

現在ちょっと私も手詰まりになってきました。

今回作成したポイントデータとTINおよびラスタを添付させていただきます。
上記のようなTINでなく、図1のようなTINが作れる方法をご存じでしたら是非とも教えてください。

Tria_mesh.zip
Auto Generated Inline Image 1
Auto Generated Inline Image 2
Auto Generated Inline Image 3
Auto Generated Inline Image 4

福岡

unread,
May 17, 2017, 9:41:28 PM5/17/17
to QGIS初心者質問グループ

sakuya_izayoi 様

単に図形として分割する方法としては、「プロセッシングツール - QGISジオアルゴリズム - ベクタジオメトリツール - ドロネー三角形分割」で出来るようです。
「Create DEM from points」でググったときに出てきた「How Can I Create a Tin from Elevation Points in QGIS」で見つけたものですので、
DEMの作成に関連性はあるツールだと思いますが、充分に理解できていません。
とりあえずのツールの紹介ということで、ご容赦ください。

How Can I Create a Tin from Elevation Points in QGIS
https://gis.stackexchange.com/questions/150291/how-can-i-create-a-tin-from-elevation-points-in-qgis

ツールを使ってみた結果です。三角形はポリゴンで生成されています。


現在、DEMの生成に関するアルゴリズムに関しては足踏み状態です。何かヒントでも掴みましたら投稿いたしますので、よろしくお願いいたします。

福岡

unread,
May 23, 2017, 9:21:10 PM5/23/17
to QGIS初心者質問グループ
sakuya_izayoi 様

一応自分なりの結論がでましたので、報告します。

まず、QGISのデータ補間で補間法をTINとした場合のアルゴリズムはわかりませんでした。

計算方法については、次のサイトからダウンロードできるパワポのスライドの9ページ目に解説しているのを見つけました。

地理情報スライド第48

http://curricula.csis.u-tokyo.ac.jp/slide/4-8.html

ただし、この計算方法でも計算は合致しません。


このままだと投稿できなかったのですが、プロセッシングツールに「SAGA - Raster creastion tools -Triangulation」があるという情報を発見して試してみました。

検証結果ですが、3点で平面を作り、DEM中央のxy座標から高さを計算するというイメージで作成・添付したエクセルでの計算値と合致しました。


もし自分でDEMを制作するのなら、計算方法が理解できるこちらの方法を採用するということが現時点での結論です。

sakuya_izayoi

unread,
May 24, 2017, 10:34:53 PM5/24/17
to QGIS初心者質問グループ
福岡様
こちらsakuya_izayoiです。

前回、返信いただいていたのに返信できずにすみません。
現場作業で斜面を滑り落ちて昨日まで病院にいました。
現場は気を付けないと危ないですね。油断していました。


こちらでもQGISの計算アルゴリズムを調べたのですが、不明です。pythinライブラリまで突っ込まないとわからないのでしょうか?
ちょっとお手上げの段階です。


プロセッシングツールに「SAGA - Raster creastion tools -Triangulation」

という機能についてですが、申し訳ありませんが、このプログラムの起動方法を教えて頂けませんでしょうか?

QGISに同梱されていたSAGAというのを起動してみたのですが、福岡様に記載していただいている項目を見つけられませんでした。


QGISのGUI機能はある程度使用可能なのですが、QGISインストール時についてきたGRASSやSAGAというソフトについては

全く知識がなく、QGIS GRASSというのも何がQGISと違うのかが分かっていない状況です。

福岡

unread,
May 25, 2017, 12:19:49 AM5/25/17
to QGIS初心者質問グループ

sakuya_izayoi 様

こんにちは
お怪我をなさったとのことで、驚いております。心よりお見舞い申し上げます。

さて、プロセッシングツールですが、デフォルトでは右端にプロセッシングツールボックスが表示されていると思います。
また、表示されていない場合は、メニューのプロセッシングからツールボックスをクリックすると表示されると思います。
プロセッシングツールではGRASSやSAGAの機能をQGIS内で使うことができますので、とても重宝しています。

是非ともお試しください。


sakuya_izayoi

unread,
May 25, 2017, 1:01:13 AM5/25/17
to QGIS初心者質問グループ
福岡様
ありがとうございます。
SAGAの方からでなく、QGIS上から使うことが出来るのですね。
最初のころに画面が狭く感じたので自分で閉じてしまった記憶が・・・。

療養中の今をチャンスと思い、機能もちょいちょい確認しながら色々と試してみます。
福岡様のおすすめのSAGA機能の参照ページなどがありましたらお教え願えますか?

wata909

unread,
May 25, 2017, 2:00:17 AM5/25/17
to QGIS初心者質問グループ
横から、失礼します

interpolation pluginですが、pythonではなく、C++言語で書かれています。
ソースコードは、以下で公開されています。

きっと、これを見るとどの様なアルゴリズムをつかているか、わかると思うのですが、
私もプログラムを書けるわけではないので、どこかに書いてあるはず・・・としか、いえません。

お役に立つ情報ではありませんが、一応、参考までに。

福岡

unread,
May 25, 2017, 2:01:52 AM5/25/17
to QGIS初心者質問グループ
sakuya_izayoi 様

こんにちは

SAGAについての日本語情報は非常に少ないように思います。
私の場合、やりたいことの検索結果でSAGAのツールが紹介されている際に、プロセッシングツールに搭載されているか確認して使うということがほとんどだと思います。

SAGAのホームページ(英語)です。
http://www.saga-gis.org/en/index.html

Dr.kobaの「森林情報管理学」講座
http://gpsrsgis.seesaa.net/article/205835055.html?seesaa_related=category

東京大学大学院農学生命科学研究科附属演習林 浅野友子 ホームページ
http://park.itc.u-tokyo.ac.jp/asano/sub_SAGAintro.html

森林土木memo(知床半島のCS立体図の制作に利用なさっています)
http://koutochas.seesaa.net/article/444206567.html

手持ちの情報が少なくて、申し訳ありません。m(__)m

福岡

unread,
May 25, 2017, 2:20:56 AM5/25/17
to QGIS初心者質問グループ
wata909 様

こんにちは

貴重な情報ありがとうございます。m(__)m
ただ残念ながら、遙か昔に初級シスアドを趣味で取得した程度の実力ですので、ごく簡単なHTMLやSQLを読み書きするくらいしかできません。

ソースを読み解いてアルゴリズムを解説してくださる賢者が出現することを心待ちにすることといたします。
Reply all
Reply to author
Forward
0 new messages