データのお砂場(73) R言語、quakes、フィジー周辺の地震、3次元分布とな

Joseph Halfmoon

今回は日本人には馴染み深い、地震データです。といっても場所は南太平洋、フィジー周辺のもの。最近も火山の大噴火がありましたが、フィジーも日本同様のプレート沈み込み帯、それもプレート2枚に挟まれたそれなりに複雑な地域みたいっす。Rのサンプルデータを見てもプレートの存在が一目瞭然じゃないかと。ホントか?

※「データのお砂場」投稿順Indexはこちら

今回のサンプルデータセット

今回の quakes というサンプルデータセットの解説ページは以下です。

Locations of Earthquakes off Fiji

フィジー周辺で1964年以降で起こった MB > 4.0 の1000個の地震の3次元的位置とリヒター・スケールのマグニチュード(ローカルマグニチュード)、および地震を観測した観測所の数のデータです。細かいこと言わせてもらうと、Locationsというほんわかした言い方なんだけれども、それは震源ということで良いのかい? また、何も説明せずにMB > 4.0 などと書かれているのは、BODY WAVEで計算したマグニチュード、日本語でいうと実体波マグニチュードってやつで絞り込みをしたっていうことですかい?「地震にうるさい」日本人向けにはも少し注釈が欲しいです。

なお、元は5000点くらいのデータからフィルタしたデータらしいです。昔のことなので、現在主流のモーメントマグニチュード(MW)も、日本で定番の気象庁マグニチュードとも違うと。なお、ご存じのとおり、実体波マグニチュードMBに対するに表面波マグニチュードという計算方法もあり。マグニチュードの計算だけでもRの良い題材になりそうですが。今回は無し。

rglパッケージ

さて、3次元的に広がる地震の「多分震源」位置です。3次元のプロットは必須と思いました。ただ、素のRでは3次元用のプロットパッケージが無いので、以下のパッケージをインストールさせていただきました。あざーす。

rgl: 3D Visualization Using OpenGL

3次元空間に散布図などをプロットできる優れものです。そして別ウインドウにて、自由自在に視点を回転できます。

まずは生データ

生データをロードしたところが以下に。緯度(Latitude)、経度(Longitude)、震源深さ[km]、ローカルマグニチュード、観測点数からなるレコード1000点のデータフレームです。quakesRawData

summary関数でデータの範囲を確認しておくと以下のようでした。summaryQuakes

緯度にして約30度近く、経度で25度近い広い領域です。深さは40kmから680kmとな。かなり深いところまでのデータです。どうもトンガ・ケルマディック海溝というのは、太平洋プレートが非常な急角度で落ち込んでいるらしいっす。どうもそれで深いところまで地震があるのね。日本付近の落ち込み方と比べるとよく分かるかもしれません。マグニチュードの方は、4.00から6.40ということなので、小さな地震は事前のフィルタで取り除かれており、それなりの規模の厳選?された1000個であるようです。

処理例

解説ページに処理例があったので、今回は先にそちらをやってしまいます。こんな処理です。examplePairOpr

以下のように lat と longを組み合わせれば、地図的な震源の広がり(右に見えるのがトンガ・ケルマディック、左でV字を描いているのがニューヘブリデーズかと。depthみると、ニューヘブリデーズよりもトンガ・ケルマディックの方が深いところまで地震が起きているみたい。マグニチュードが大きいものほど少なくなるのは当然(リヒター則というのだっけ?知らんけど)ではあるけれど、結構深いところまで地震が起きているのね。観測点の数はマグニチュードがデカければ多いだろ~と、まあ順当か。examplePair

解説ページの処理例では、追加モジュールなどは基本使わずに処理していることが多いので、分かるのだけれど間接的な感じです。

3次元表示

rgl ライブラリをロードして plot3d を使えば、その辺の不満は解消っと。

plot3d(x=quakes$lat, y=quakes$long, z=quakes$depth, col=rgb((quakes$mag-3)/4, 0.1, 0), xlab="LAT", ylab="LONG", zlab="DEPTH" )

上のコマンド打ってから数々の問題点に気づきました

    1. Depthの数字をZ軸にそのままとっているので、初期状態では上下逆さま
    2. 緯度で約30度、3000kmにおよぶ範囲と600kmほどの深さなどが、同一の立方体に成り行きで収まっている。縦横高さのスケールが不ぞろいです。
    3. また、単純XYZで3次元化しているので、地球の丸みを無視

初期状態の3次元プロットはこちら。マグニチュードにより赤色が明るくなるようにしてみたのですが、イマイチわからず。なお上下ひっくり返っているので、下が地球表面、上が中心後方デス。colPlot0

トンガ・ケルマディック側と思われる震源域が「板状」になっているのが見てとれるので、ちょいと回転して「真横から」みてみました。こんな感じ。colPlot1

これは上記の上から(実際には地球の中心方向から)上を見上げた感じ。colPlot2

やはり3次元化すると雰囲気わかるな。でも問題点を解決してもっとカッコよくしたいケド。それに表面に地図も貼り付けたいかも。野望は広がるけど。。。

データのお砂場(72) R言語、pressure、水銀の蒸気圧、単位はミリメートルHgで へ戻る

データのお砂場(74) R言語、randu、線形合同法の「乱数は平面に落ちる」とな、ほんとだ へ進む