見出し画像

Juliaで物理探査#1 弾性波探査・屈折法

弾性波探査の屈折法は、地中を伝わる弾性波の中で、地層の境界面で屈折し、そのあと地層の境界を伝わり,再び屈折して地表に戻ってくる波を利用して地質構造を推定する方法です。地中を伝播する弾性波にはP波やS波がありますが、屈折法では”P波の初動”を利用した測定方法が一般的です。主に土木・建設の分野で利用されています。屈折法で求められる弾性波速度は、地盤強度と関係があるので、岩盤分類や地山区分の情報として利用されていて、構造物の設計・施工時の有益な情報となっています。このように屈折法は、土木構造物や資源開発および一般地質構造調査などを目的として広範囲に利用されています。

屈折法の測定概念図

屈折法では、測線に沿って等間隔に弾性波センサ(ジオフォン)を置いて、人工地震を起こし、最初に到達した地震波の時間を記録します。横軸に距離を取って、縦軸に初動の時間をとってグラフにしたものが走時曲線と呼ばれます。ここでは、直接波の走時と屈折派の走時を計算して、時間が早い方を初動として採用しています。詳しい理論については、拙著『はじめの一歩 物理探査学入門』の52-55ページを参考にして下さい。

using Plots, Ranges

function TimeDistance(v1, v2, h, x)
    T1=x/v1
    T2=2.0*h*sqrt(v2^2-v1^2)/(v1*v2)+x/v2
    return T1, T2
end

function FirstBreak(v1, v2, h, x)
    T1, T2 = TimeDistance(v1, v2, h, x)
    min(T1, T2)
end

xp = range(0, 100, length=100)
tm1 = FirstBreak.(100.0, 200.0, 10.0, xp)
tm2 = FirstBreak.(200.0, 300.0, 10.0, xp)
plot(xp, tm1, xlabel="Distance (m)", ylabel="First Arrival (s)")
plot!(xp, tm2)

Julia側の準備としては、2つのパッケージの準備が必要です。まずはパッケージモードに入って、「add Plots」と「add Ranges」とコマンドを叩けば、PlotsとRangesが使える環境になります。この計算例では、速度を変えて2つの走時曲線を描いています。プログラム自体は、シンプルな2つの関数で構成されているので、”プログラミングと物理探査の知識”があれば理解は容易だと思います。

屈折法の走時曲線

この記事が気に入ったらサポートをしてみませんか?