HOME/Articles/

Rで走時曲線を描く

Article Outline

Rで走時曲線を描く

">Hits

OSはLinuxを想定しています。

(参考)

教材用「走時曲線」描画用 地震月報データからのデータ抽出スクリプト備忘録(改訂版)

(データ)

https://www.data.jma.go.jp/svd/eqev/data/bulletin/catalog/table3/d201610t.zip

解凍して出てきた「d201610c.txt」から鳥取県中部地震(2016年10月21日14時7分、地震の規模はM6.6、震源の深さは11 km) のデータを切り出して、「tottorityubu」というファイル名で保存しておく。

プロット

souji01

プロット範囲を狭くして描画、単回帰直線を2本加える

souji02

最初の散布図に、(上で得た)単回帰直線を2本加える

souji03

切り出して、保存した「tottorityubu」ファイル

被害のあった地震の場合、被害状況も書いてありますが、そこは削除します。

1行目、2行目は地震の起こった日時、震源地マグニチュード等。3行目は空行。4行目はヘッダー。5行目からプロットするデータ。

1行目からはawkを使って、地震発生時間を秒に変換します。

              2016Y 10M 21D 14H  7M 22.57S +/-0.03 EASTERN TOTTORI PREF     R=(6,221) MAXI=C
              LAT=35 22.83N +/-0.15 LONG=133 51.37E +/-0.12 DEPTH= 11KM +/-0.49 MAG1=6.6D MAG2=6.2W

STATION  PHA  TIME        RES   PHA  TIME     RES   N-S AMP    E-W AMP    U-D AMP          DELTA   AZM    MAG  MRES
KURAYO   P    14 07 24.38  -0.2 S    07 25.84  -0.1                                            3.5 271.8
N.SKGH   IP   14 07 25.08  -0.1 S    07 27.08   0.2  2257  0.1  3070  0.1  1569  0.3           9.9 259.9          
N.KSBH   IP   14 07 25.48   0.0 S    07 27.66   0.2  1545  0.1  2287  0.1  1891  0.7          12.6 149.5          
DP2SNT   IP   14 07 25.95   0.1                                                               15.2  75.9
N.AKSH   IP   14 07 26.92  -0.0                                 2288  0.5  1672  0.2          22.6 295.1          
N.YBRH   IP   14 07 27.83   0.1 ES   07 31.73   0.4  1324  0.5  1311  0.1 608.2  0.4          27.5 216.5          
N.KWHH   IP   14 07 28.41   0.1 S    07 32.81   0.5  1228  0.4  1149  0.5 700.6  0.5          31.2  87.0          
DP.QMT   IP   14 07 28.48   0.0 S    07 32.83   0.3                                           32.1 181.6
N.MZKH   IP   14 07 28.55  -0.1 IS   07 33.14   0.2  1301  0.6 519.5  0.3 367.9  0.5          33.2 265.3          
N.CHZH   IP   14 07 28.96  -0.1 S    07 33.82   0.3 701.1  0.2 359.6  0.9 638.8  0.7          35.4 112.0          
DP.TTT   IP   14 07 29.37  -0.0 S    07 34.00  -0.1  2759  0.5  1258  0.2 818.3  0.3          37.6  66.0          
N.SYOH   IP   14 07 30.03   0.0 S    07 35.44   0.2 871.6  0.5  1373  0.3 818.5  0.6          41.5 145.2          
N.HINH   P    14 07 30.66   0.0 S    07 36.73   0.4  1038  0.4 722.5  0.6 571.7  0.9          45.4 248.8          
N.IAMH   IP   14 07 31.14  -0.1 S    07 37.47   0.1  1022  0.8 552.2  0.6 266.5  0.4          49.0  64.1          
N.OHAH   IP   14 07 31.67  -0.1 S    07 38.44   0.2 569.9  0.8 364.8  0.7 298.0  0.7          52.4 126.3          
N.HKBH   IP   14 07 31.88  -0.2 S    07 38.70   0.0 278.0  0.4 190.8  0.7 268.3  0.3          53.8 203.6          
N.MHSH   IP   14 07 32.34   0.2 S    07 39.62   0.9  1671  0.3 874.8  0.5 642.7  0.3          54.2 291.5          
N.HKTH   IP   14 07 32.02  -0.2 S    07 39.24   0.2 414.8  0.6 231.4  1.0                     55.0 260.4
AIDA     IP   14 07 32.33  -0.1 S    07 39.35   0.0                       471.7  0.5          56.1 149.8          
AIDA     M    14 07                                  3266  4.6  5732  4.6            *        56.1 149.8  6.5D -0.1
N.TKBH   IP   14 07 32.46  -0.1                     329.8  0.5 386.3  0.8 280.8  0.7          56.8 180.3          
N.SGOH   IP   14 07 33.10  -0.2                     302.7  0.3 281.5  1.2 280.2  0.5          61.3 233.4          
N.TTAH   IP   14 07 33.95  -0.2                     315.2  0.3 274.2  0.3 337.6  0.3          66.4 218.3          
DP.TRT   IP   14 07 33.91  -0.3 S    07 42.66   0.2                                           67.2 243.2
N.KMGH   IP   14 07 34.32  -0.2 S    07 42.74  -0.1 421.5  0.3 293.9  0.3 243.5  0.5          68.5 141.0          
N.SETH   IP   14 07 35.03  -0.1 S    07 43.89  -0.1 173.5  0.6 344.7  0.6 201.1  0.6          72.6 164.3          
DP2OYT   IP   14 07 35.11  -0.2 S    07 44.53   0.3                       205.0  0.5          73.4  94.2          
IKUMA    IP   14 07 35.80   0.0                                           581.0  1.1          76.4 280.1          
IKUMA    M    14 07                                  6182  8.8  3906  8.4            *        76.4 280.1
KASUMI   IP   14 07 35.69  -0.1                                           330.3  1.0          76.7  72.1          
KASUMI   M    14 07                                  5614  8.4  2159  8.2            *        76.7  72.1
N.KSIH   IP   14 07 35.77  -0.1                     681.7  0.8 282.7  0.4 359.1  0.7          77.3 282.1          
SAIJYO   IP   14 07 35.90  -0.4                                           266.1  0.7          79.6 238.4          
SAIJYO   M    14 07                                  4960  5.0  2301  5.8            *        79.6 238.4  6.6D -0.0
N.SGUH   IP   14 07 36.15  -0.2 S    07 45.72  -0.3 256.6  0.6 230.9  0.6 207.5  0.2          79.9 128.4          
N.HNSH   IP   14 07 36.49  -0.1 S    07 46.44  -0.1 327.2  0.5 570.5  0.4 291.1  0.3          81.8 152.1          
N.BSEH   IP   14 07 36.82  -0.1                     213.0  0.4 157.5  0.7 196.7  0.6          83.7 201.0          
SAKAUR   IP   14 07 38.03  -0.3                                           308.6  0.6          92.4 278.6          
SAKAUR   M    14 07                                  5974  9.7  1662  4.0            *        92.4 278.6
KASAI    IP   14 07 39.31  -0.2                                           304.7  0.2          99.9 115.7          
KASAI    M    14 07                                  1629  3.3  2010  4.1            *        99.9 115.7  6.4D -0.2
N.KAMH   IP   14 07 39.45  -0.2                     265.9  0.3 162.1  0.3 198.3  0.6         100.3 107.7          
JOUGE    M    14 07                                  2624  5.0  1593  3.8            *       103.9 218.4  6.4D -0.2
N.UUMH   IP   14 07 40.98  -0.3                     134.1  0.3 264.9  0.4 128.1  0.7         111.0 157.2          
SAKAID   IP   14 07 41.02  -0.4 S    07 54.53  -0.2                       463.0  0.3         111.5 176.6          
OKI2     IP   14 07 41.44  -0.5                                                              115.0 331.6
OKI2     M    14 07                                  7238  2.0  6860  1.9            *       115.0 331.6  7.0D  0.4
YASAKA   IP   14 07 42.23   0.1                                                              116.3  75.8
YASAKA   M    14 07                                  5600  2.5  2665  4.4            *       116.3  75.8  6.8D  0.2
MIKI     M    14 07                                  2278  3.2  2974  3.4            *       126.0 119.8  6.6D  0.0
GOTSU2   P    14 07 43.50  -0.4                                                              127.8 254.4
GOTSU2   M    14 07                                  4225  8.1  1626  3.7            *       127.8 254.4
AWJNGS   P    14 07 45.16  -0.3 S    08 01.81   0.0                                          137.8 135.8
AWJNGS   M    14 07                                  2613  6.0  2415  4.1            *       137.8 135.8  6.6D  0.0
WACHI    P    14 07 45.74  -0.1                                                              140.6  93.8
WACHI    M    14 07                                  1592  3.1  1292  4.6            *       140.6  93.8  6.4D -0.2
MIMANA   M    14 07                                  1288  4.3  4292  5.3            *       150.8 169.6  6.8D  0.2
TOYOHI   P    14 07 47.50  -0.2                                                              153.3 239.3
TOYOHI   M    14 07                                  3452  3.9  1655  3.8            *       153.3 239.3  6.7D  0.1
MONOBE   M    14 07                                  1621  2.7  3192  6.2            *       182.9 179.4
KURAHA   M    14 07                                  1116  6.1  1472  3.7            *       183.5 221.9
AIOI     P    14 07 52.15   0.2                                                              184.0 162.6
AIOI     M    14 07                                  1216  5.3  3255  5.3            *       184.0 162.6  6.8D  0.2
HEGURI   P    14 07 51.96  -0.1                                                              185.1 115.2
HEGURI   M    14 07                                   852  4.1   981  4.0            *       185.1 115.2  6.4D -0.2
TANBAR   P    14 07 53.16   0.1                                                              192.2 203.0
TANBAR   M    14 07                                   987  4.0   962  3.7            *       192.2 203.0  6.4D -0.2
MIHAMA   M    14 07                                  2687  3.0  1110  3.7            *       193.6  84.4  6.8D  0.2
HIKIMI   M    14 07                                  3421  8.2  1204  4.5            *       199.7 242.5
KOUYA    M    14 07                                   775  9.4   553  8.8            *       204.1 128.5
KHARUN   M    14 07                                   707  1.7  1979  5.8            *       210.1 189.1  6.7D  0.1
MINABE   P    14 07 55.65  -0.8                                                              218.0 140.6
MINABE   M    14 07                                  1050  9.4  1211 10.2            *       218.0 140.6
KIRAGA   M    14 07                                  1030  5.1  2255  6.5            *       222.4 173.2
TENKAW   M    14 07                                   593  4.5   385  3.8            *       222.7 123.0  6.2D -0.4
EIGENJ   M    14 07                                  1149  4.3  1090  5.7            *       231.9  95.9  6.6D  0.0
KUDAMA   M    14 07                                  1486  3.1  1691  6.4            *       233.6 231.7
TANABE   M    14 07                                   766  5.0   962  8.5            *       236.5 136.6
NAGAHA   M    14 07                                   777  3.8   517  9.1            *       238.4 212.5
KUBOKA   P    14 07 59.15  -0.3                                                              240.7 197.9
KUBOKA   M    14 07                                   819  4.4  1190  4.2            *       240.7 197.9  6.6D -0.0
KAGA     M    14 07                                  1375 11.9  1436  9.2            *       244.7  65.2
KATADA   P    14 07 59.50  -0.5                                                              245.0 106.9
KATADA   M    14 07                                   571  2.0   661  4.2            *       245.0 106.9  6.4D -0.2
KIHOKU   P    14 08 00.32  -0.9                                                              254.9 119.1
KIHOKU   M    14 08                                   384  2.8   447  4.2            *       254.9 119.1  6.2D -0.4
HAGIMI   M    14 08                                  2688  8.7   750  3.5            *       256.3 255.8
TANIAI   P    14 08 02.36   0.1                                                              262.3  84.0
TANIAI   M    14 08                                  1993  4.6   450  7.0            *       262.3  84.0
HIROMI   M    14 08                                   705  3.6   698  5.6            *       265.5 205.7  6.5D -0.1
ICHIAK   M    14 08                                  1908  5.6  1434  1.9            *       271.7  91.0  6.9D  0.3
KUSIMO   M    14 08                                  1287  4.4  1012  3.4            *       276.4 140.2  6.7D  0.1
ISE      P    14 08 03.91  -0.9                                                              282.3 112.0
ISE      M    14 08                                   388  7.8   466  3.6            *       282.3 112.0
YTOYOT   M    14 08                                  2023 10.4  1352  9.8            *       283.9 245.0
KUNIMI   M    14 08                                  1214  3.2  1521  3.6            *       285.8 228.0  6.8D  0.2
TOSASH   M    14 08                                   583  5.5   903  4.7            *       295.7 199.5  6.6D  0.0
OBARA    M    14 08                                  1437  6.0   400  4.4            *       309.1  91.3  6.8D  0.2
HAKUI    M    14 08                                   884  2.9   887  3.5            *       314.1  56.0  6.7D  0.1
KUROKA   M    14 08                                  1582  6.7   379  3.1            *       318.4  84.5
BEPPUA   M    14 08                                  1170  2.3  1531  3.5            *       319.6 225.5  6.9D  0.3
USUKI    M    14 08                                   479  3.1   743  5.2            *       321.6 217.7  6.6D -0.0
NIUKAW   M    14 08                                  1082  7.6   447  4.6            *       326.2  72.3
TT1OBS   P    14 08 10.89  -0.3                                                              332.2 125.1
AKAIKE   M    14 08                                  1663  5.7   888 11.5            *       336.4 237.6
SKAMAE   M    14 08                                   556  4.8   352  4.2            *       338.5 212.8  6.5D -0.1
TTATEY   M    14 08                                  1411  6.8   804  3.5            *       341.6  65.5
TT2OBS   P    14 08 12.43  -0.2                                                              343.5 121.2
TAKISA   M    14 08                                   780  9.0   326  5.9            *       356.8  98.2
YASUOK   M    14 08                                  1235  9.7   570  5.3            *       363.8  89.2
NAKATS   M    14 08                                   746  8.7   828  9.0            *       371.3 228.5
KITAKA   M    14 08                                   437  4.0   674  8.5            *       377.5 216.7
SINONB   M    14 08                                  1307  4.4   889  5.1            *       383.1  99.3  6.9D  0.3
HICHIY   M    14 08                                   413  4.1   307  3.6            *       385.0 212.8  6.5D -0.1
ITAYA    M    14 08                                  1174  7.7   836  8.7            *       385.4 236.8
TAKATO   M    14 08                                  1228  9.1   508  5.0            *       391.1  80.7
KUROMA   M    14 08                                  1408  8.2   470  5.9            *       397.6  93.7
NSAKAI   M    14 08                                   778  8.7   451  9.8            *       399.6  72.2
SAGARA   M    14 08                                  1308  9.4  1536  4.2            *       402.4  99.9
TSUNO    M    14 08                                   321  4.7   245  4.7            *       410.0 212.8  6.4D -0.2
IKI      M    14 08                                  1688  6.6   625  3.3            *       417.2 246.3
ODAWA2   P    14 08 28.70  -0.8                                                              475.6  90.0
OKUSHM   P    14 09 21.07  -0.5                                                              889.8  31.5

Rコード

データの編集

loc="tottorityubu"
# 地震の起こった時刻を秒にする(時*60*60+分*60+秒)
command= paste("cat",loc,"  | awk 'NR == 1{print($4,$5,$6)}' | sed -e 's/H//g' |  sed -e 's/M//g' |  sed -e 's/S//g' | awk '{print ($1*60*60+$2*60+$3) }' ")
event=as.numeric(system( command,intern=TRUE))
# 必要な箇所の切り出し。時間を秒に変換する。output.csvというファイル名で保存。
command= paste("cat",loc," | awk 'NR>4{if ( substr($0,10,1) == \"P\" || substr($0,10,1) == \"E\" || substr($0,10,1) == \"I\") print $0}' | awk 'BEGIN {FIELDWIDTHS = \"6 3 2 3 2 1 2 1 5 2 4 1 2 3 2 1 5 2 4 2 4 6 5 2 3 1 5 2 3 8 6 1 5 2 4 1 4\"; OFS=\",\"}
{print($1,$5*60*60+$7*60+$9,$5*60*60+$15*60+$17,$31,$33)}' > output.csv ")
system( command)
dat=read.csv("output.csv",header=FALSE)

グラフを描く(1)

xmax=max(dat[,4],na.rm =TRUE)
ymax=max(max(dat[,2]-event ,na.rm =TRUE),max(dat[,3]-event ,na.rm =TRUE))
#
# png("souji01.png",width=600,height=600)
plot(x=dat[,4],y=dat[,2]-event,xlim=c(0,xmax),ylim=c(0,ymax),las=1,xlab="震央距離(km)",ylab="絶対時刻(秒)",bty="n",pch=3,col="brown3",
    panel.first = grid(lty = 2, col = "gray50"),xaxs="i",yaxs="i",xpd=TRUE)
box(bty="l",lwd=2)
points(x=dat[,4],y=dat[,3]-event,pch=4,col="royalblue3",xpd=TRUE)
legend("topleft",inset=0.05,legend=c("P波","S波"),pch=c(3,4),col=c("brown3","royalblue3"),bg="gray90")
title("走時曲線 (データ:気象庁地震月報データ)")
# dev.off()

グラフを描く(2)

## xmax,ymax を変更
xmax=500
ymax=70
# png("souji02.png",width=600,height=600)
plot(x=dat[,4],y=dat[,2]-event,xlim=c(0,xmax),ylim=c(0,ymax),las=1,xlab="震央距離(km)",ylab="絶対時刻(秒)",bty="n",pch=3,col="brown3",
    panel.first = grid(lty = 2, col = "gray50"),xaxs="i",yaxs="i",xpd=TRUE)
box(bty="l",lwd=2)
points(x=dat[,4],y=dat[,3]-event,pch=4,col="royalblue3",xpd=TRUE)
legend("topleft",inset=0.05,legend=c("P波","S波"),pch=c(3,4),col=c("brown3","royalblue3"),bg="gray90")
title("走時曲線 (データ:気象庁地震月報データ)")
# 震央距離<=150
dat1=dat[dat[,4]<=150,]
# 200<=震央距離<=500
dat2=dat[dat[,4]>=200 & dat[,4]<=500,]
# 単回帰直線を引く
# 原点を通る(切片なし)
lm1 <- lm( (V2-event)~V4+0, data=dat1)
abline(lm1,col="green") 
# 切片あり
lm2 <- lm( (V2-event)~V4, data=dat2)
abline(lm2,col="orange") 
# dev.off()

グラフを描く(3)

# 最初の散布図に単回帰直線を引いてみる。
xmax=max(dat[,4],na.rm =TRUE)
ymax=max(max(dat[,2]-event ,na.rm =TRUE),max(dat[,3]-event ,na.rm =TRUE))
# png("souji03.png",width=600,height=600)
plot(x=dat[,4],y=dat[,2]-event,xlim=c(0,xmax),ylim=c(0,ymax),las=1,xlab="震央距離(km)",ylab="絶対時刻(秒)",bty="n",pch=3,col="brown3",
    panel.first = grid(lty = 2, col = "gray50"),xaxs="i",yaxs="i",xpd=TRUE)
box(bty="l",lwd=2)
points(x=dat[,4],y=dat[,3]-event,pch=4,col="royalblue3",xpd=TRUE)
legend("topleft",inset=0.05,legend=c("P波","S波"),pch=c(3,4),col=c("brown3","royalblue3"),bg="gray90")
title("走時曲線 (データ:気象庁地震月報データ)")
abline(lm1,col="green") 
abline(lm2,col="orange") 
# dev.off()