1
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?

More than 3 years have passed since last update.

QGISで鉛直(深さ)方向の震源分布を作りたい!

Posted at

#はじめに
QGIS3で深さ方向の震源分布って作れそうなのに意外と誰も作っていないのね・・・。
こんなやつ。
コメント 2020-05-01 215339.png
プログラムで書こうと思っていたのだけれど、ちょっとしたことでつまずいてしまったため後回し。
とりあえずグラフィカルモデラーで作成します。
とはいえ微妙な仕上がりというね。。。いつかきちんとプラグインに仕上げます
###環境など
QGIS3 == 3.12.0

・使用プラグイン
  Data Plotly == 3.6
  (データプロットで使用しました)

・データ
  今回も気象庁の震源データベース検索から。
image.png
  という形式で90程のデータを集めた。これをCSVファイルで書きだす
  (今回はスクレイピングのプログラムを書いて適当な数の震源データを集めた。
                       →整理してから公開します)
  ※欠損値は空白にした。IDがないデータでも何かしらの連番を振っておくと便利

QGIS3その1も参考にしてください。

#グラフィカルモデラ―の作成
###方針
Lineジオメトリのレイヤは自力で作成
作成したレイヤを選択して水平方向にある程度幅を持たせて震源のPointジオメトリを抽出
(Lineのレイヤ・震源のレイヤ・水平方向の幅は変えられるようにしておく)
抽出した震源Pointを直線上での相対的な距離に直す
X軸を直線状での相対距離、Y軸を深さとしてグラフにする

下図で要約すると
オレンジの点が震源のPointだが、グラフ化するために赤の直線上に点を落として距離を考える。
コメント 2020-05-01 170422.png

###作成
プロセシング>グラフィカル・モデラ―をクリック
コメント 2020-05-01 171000.png
すると以下のようなウィンドウが開く。
コメント 2020-05-01 204941.png
左下の「アルゴリズム」から使うものを選び右側にフローを作っていきます。
タブから「入力」を選ぶと
コメント 2020-05-01 205325.png
というタブにも切り替えができます。
これは、使用するアルゴリズムで入力が必要な時に使います。
今回だと、Lineのレイヤ・震源のレイヤ・水平幅の値が必要なので
それぞれ「ベクタレイヤ」・「ベクタレイヤ」・「数値」の入力に対応するので選択します。(ダブルクリックでもドラッグドロップでも可)
例えば数値だと選択するとこのようなウィンドウが開くのでそれぞれ必要に応じて指定します。
ここでの指定がモデルを実行したときの数値指定を限定します。
(例えばWGS84で作成していると幅の指定も(面倒なため)度で受け付けるようにしますが、その時に最大を1.0、最小を0.0としておくと入力ミスで計算が破綻したりすることを防げます。既定値はよく使いそうな値を入れておくと入力が省けて楽)
コメント 2020-05-01 210018.png
パラメータ名はモデル完成後実行したときの入力の際に使われる名前なので分かりやすくしておきましょう。
最終的にはこうなりますので、、、
コメント 2020-05-01 210947.png
並べるとこのような形です。
コメント 2020-05-01 211257.png
次にプロセスを並べていきます。
まずは、「バッファ」でLineに水平方向の幅を持たせます。
コメント 2020-05-01 211554.png
次にこのバッファ内の震央を抜き出します。
2プロセスで抜き出します。
1プロセス目はバッファ内の震央を選択。「場所による選択」です。
コメント 2020-05-01 211824.png
2プロセス目は選択した震央を抜き出してレイヤに保存。「選択した地物で別レイヤ」です。
コメント 2020-05-01 212134.png
親子関係で1プロセス目と結んでおきます。

「ジオメトリをスナップ」でLine上に地物をスナップさせてから
「フィールド計算機」で相対距離をだしてフィールドにdistanceという名前で付加させています。
コメント 2020-05-01 212433.png
使い方は普通のフィールド計算機と同じです(私も別に投稿しているので詳細は省略)。

圧倒的な欠点はここです。計算式内のレイヤ名をここで決めてしまわなければならないです。
プログラムを書いているときも別の個所でレイヤの取り扱いで詰まったので悲しい。
誰か教えてください!

とりあえず一時スクラッチレイヤをデフォルトで作成するとこの名前になるので妥協しました・・・。

最終的にこのようになれば完成です。
コメント 2020-05-01 213430.png

モデルの名前を入力して保存します。

###使い方
まず、レイヤ>レイヤを作成>新しい一時スクラッチレイヤ をクリック

ジオメトリタイプはラインストリングで作成をします。
するとレイヤに「新しいスクラッチレイヤ」が増えます。

レイヤの編集で直線を適当に作成し、保存します。idは1です。
(本当はここがダサくてダサくて、、、投稿を悩むレベルでしたが誰か教えてくれると期待しての公開です)

ツールボックス内にモデルの項目が増えているのでそこからクリックします。

実行すると直線状にスナップされたこのようなレイヤが増えます。
コメント 2020-05-01 214458.png

あとはプラグイン「Data Plotly」で出力されたデータを読み込むだけです。
「Data Plotry」は様々なデータのプロットに使える便利なプラグインなので詳細な情報も後日アップしておこうと思います。マグニチュードに合わせて色と大きさを変化させています。
コメント 2020-05-01 215339.png
X軸が角度で出ていますが、座標変換の関数がQGISにあるのでそれを使うか、111.・・・を掛けるかしてしまうとkmに直せます。私は角度ばかり使ってきたのでこのように出力しました。

10クリック以内でこんな断面図を出すのを目標にしていたから、まぁ、ね、妥協。


ほんと、誰か分かりやすいのを作ってください。教えてください。
プラグインとかも資料が不足していてなかなか進まない。。。

何かご意見等ございましたら
twitterまでお気軽にご連絡ください@ohcelot
2020/05/01新規作成

1
0
2

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
1
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?