F-netメカニズム解01

GMT5.2.1

(データ)
NIED F-net メカニズム解の検索
GMT フォーマット psmeca -Sc でダウンロード。
出力は GMT のパラメータが付加されたスクリプト形式になっているのでlinuxならそのまま使用すればよい。
しかし、メカニズム解の重なる部分がでてくるので多少の書き直しは必要。

GMT (The Generic Mapping Tools) 5.2.1

(最近は使っていませんが)ノートパソコンにはGMT3を入れていました。SSDに交換したのを機にGMT5.2.1を入れました。
OSはZORIN 9lite -> SolydX に変更。

GMT5 は,gmt set でのコマンドが GMT4 から(もちろんGMT3からも)変更されています。

例えば、gmtset MEASURE_UNIT inch -> gmtset PROJ_LENGTH_UNIT inch

「メカニズム解の検索」でダウンロードしたスクリプトは警告はでますが、作図はちゃんとできました。

書き直したスクリプト(linux)

GMTのスクリプトです。

(注意)タイトルに日本語(Ryumin-Light-EUC-H)を使っているので、EUC-JPで保存しないと文字化けします。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
gmtset PROJ_LENGTH_UNIT inch
gmtset FONT_TITLE = 16p,Ryumin-Light-EUC-H,black
pscoast -Jc137.7500/35.0000/1:15000000 -R125/150.5/23/47 -B5 -BNSEW+t"震源メカニズム" -Df -Na -W -L135/24/24/500 -P -K -G204/255/204 -S204/204/255 -X0.9 > out.ps
#GMT psmeca format -Sc
#longitude latitude depth strike1 dip1 rake1(slip1) strike2 dip2 rake2(slip2) "mo(Nm) * 10^7" X Y text(origin_time(JST))
psmeca << END -J -R -Sc0.2/8 -C0.5pP0.05 -G255/0/0 -P -O >> out.ps
#[NIED F-net メカニズム解の検索](http://www.fnet.bosai.go.jp/event/search.php?LANG=ja)
#1997年(平成9年)5月13日 鹿児島県北西部地震
130.3050 31.9448 11 191 88 -175 101 85 -2 1.22 25 0 0 1997/05/13
#2000年(平成12年)10月6日 鳥取県西部地震
133.3498 35.2752 11 150 85 -9 241 81 -175 8.62 25 0 0 2000/10/06
#2001年(平成13年)3月24日 芸予地震
132.7087 34.1200 50 188 59 -56 315 45 -133 1.51 26 0 0 2001/03/24
#2003年(平成15年)9月26日 十勝沖地震
144.0785 41.7797 23 31 78 81 249 15 127 8.21 27 0 0 2003/09/26
#2004年(平成16年)10月23日 新潟県中越地震
138.8703 37.2895 5 212 47 93 27 43 87 7.53 25 139.5 36 2004/10/23
#2005年(平成17年)3月20日 福岡県西方沖地震
130.1763 33.7392 11 122 87 -11 213 79 -177 7.80 25 0 0 2005/03/20
#2007年(平成19年)3月25日 能登半島地震
136.6860 37.2207 8 58 66 132 173 48 34 1.36 26 0 0 2007/03/25
#2007年(平成19年)7月16日10時13分頃 新潟県中越沖地震
138.6095 37.5568 8 215 49 80 49 42 101 9.30 25 138.6095 39 2007/07/16
#2008年(平成20年)6月14日 岩手・宮城内陸地震
140.8807 39.0298 5 209 51 104 8 41 74 2.72 26 0 0 2008/06/14
#2011年(平成23年) 3月11日 東北地方太平洋沖地震
142.8610 38.1035 20 22 63 91 200 27 88 1.07 29 0 0 2011/03/11
#2011/03/12 長野県北部で地震
138.5978 36.9860 5 29 56 70 242 38 117 2.13 25 138 35 2011/03/12
#2011/04/11 福島県浜通り地震
140.6727 36.9457 5 132 50 -82 301 41 -99 9.58 25 0 0 2011/04/11
#2014/11/22 長野県北部で地震
137.8910 36.6928 5 25 50 65 241 47 117 2.76 25 136.8 36.2 2014/11/22
#2015/11/14 薩摩半島西方沖地震
128.5900 30.9432 17 190 80 -161 96 71 -10 1.66 26 0 0 2015/11/14
#2016年(平成28年)4月14日21時26分頃 熊本地震の前震
130.8087 32.7417 17 122 74 -1 212 89 -164 1.74 25 135 32 2016/04/14
#4月16日1時25分頃 熊本地震の本震
130.7630 32.7545 11 131 53 -7 226 84 -142 4.42 26 133 30 2016/04/16
END
#pngファイルも作成するときは#をとる。
#psconvert out.ps -Tg -E100

Rでメカニズム解を図示するにはRFOCが使えます。

しかし、地図上にプロットするのはGMTに限ります。

鳥取県の地図に鳥取県西部地震のメカニズム解を図示したスクリプト

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
library(RFOC)
library(mapdata)
library(GEOmap)
tottori =map("japan","tottori", plot=FALSE )
mlon = mean(tottori$x, na.rm=TRUE)
mlat = mean(tottori$y, na.rm=TRUE)
Gtottori= maps2GEOmap(tottori)
############for mercator projection type = 1
PROJ = GEOmap::setPROJ(type = 1, LAT0 = mlat , LON0 = mlon)
Glocs = GEOmap::GLOB.XY(Locs$y, Locs$x, PROJ)
LIMlat = expandbound(Gtottori$POINTS$lat)
LIMlon = expandbound(Gtottori$POINTS$lon)
PLAT = pretty(LIMlat)
PLON = pretty(LIMlon)
###############plot the map
plotGEOmapXY(Gtottori,LIM = c(min(PLON), min(PLAT) , max(PLON) , max(PLAT)) ,
PROJ=PROJ, axes=FALSE, xlab="", ylab="",MAPcol ="black")
#133.3498 , 35.2752 , 150 ,85, -9
MEC = SDRfoc(150,85,-9, u=FALSE, ALIM=c(-1,-1, +1, +1), PLOT=FALSE)
fcol = foc.color(foc.icolor(-9), pal=1)
XY = GEOmap::GLOB.XY(35.2752,133.3498 ,PROJ)
justfocXY(MEC, x=XY$x, y =XY$y , size = c(5,5), fcol =fcol , fcolback = "white", xpd = TRUE)

(図は省略)

RFOC パッケージは メカニズムを並べて比較したいときに便利

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
library(RFOC)
#strike1 dip1 rake1(slip1)
Z1<-c(
#1997年(平成9年)5月13日 鹿児島県北西部地震
191, 88 ,-175 ,
#2000年(平成12年)10月6日 鳥取県西部地震
150 ,85, -9,
#2001年(平成13年)3月24日 芸予地震
188 ,59 ,-56 ,
#2005年(平成17年)3月20日 福岡県西方沖地震
122 ,87 ,-11 ,
#2016年(平成28年)4月14日21時26分頃 熊本地震の前震
122, 74 ,-1,
#4月16日1時25分頃 熊本地震の本震
131 ,53 ,-7)
#
MZ = matrix(Z1, ncol=3, byrow=TRUE)
#
eqname=c("1997/5/13 鹿児島県北西部地震","2000/10/6 鳥取県西部地震","2001/3/24 芸予地震","2005/3/20 福岡県西方沖地震","2016/4/14 熊本地震の前震","2016/416 熊本地震の本震")
#png("jpn_w.png",width=1000,height=800)
par(mfrow=c(2,3))
par(family = "TakaoExMincho")
for(i in 1:length(MZ[,1]))
{
MEC = SDRfoc(MZ[i,1], MZ[i,2], MZ[i,3], u=FALSE, ALIM=c(-1,-1, +1, +1), PLOT=F)
fcol = foc.color(foc.icolor(MEC$rake1), pal=1)
Beachfoc(MEC, fcol=fcol, fcolback="white")
addPTarrows(MEC)
title(eqname[i],cex.main = 2)
}
par(mfrow=c(1,1))
#dev.off()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#strike1 dip1 rake1(slip1)
Z1<-c(
#2003年(平成15年)9月26日 十勝沖地震
31, 78, 81,
#2004年(平成16年)10月23日 新潟県中越地震
212, 47, 93,
#2007年(平成19年)3月25日 能登半島地震
58 ,66 ,132 ,
#2007年(平成19年)7月16日10時13分頃 新潟県中越沖地震
215 ,49 ,80 ,
#2008年(平成20年)6月14日 岩手・宮城内陸地震
209 ,51, 104,
#2011年(平成23年) 3月11日 東北地方太平洋沖地震
22 ,63, 91)
#
MZ = matrix(Z1, ncol=3, byrow=TRUE)
#
eqname=c("2003/9/26 十勝沖地震","2004/10/23 新潟県中越地震","2007/3/25 能登半島地震","2007/7/16 新潟県中越沖地震","2008/6/14 岩手・宮城内陸地震 ","2011/3/11 東北地方太平洋沖地震")
#png("jpn_e.png",width=1000,height=800)
par(mfrow=c(2,3))
par(family = "TakaoExMincho")
for(i in 1:length(MZ[,1]))
{
MEC = SDRfoc(MZ[i,1], MZ[i,2], MZ[i,3], u=FALSE, ALIM=c(-1,-1, +1, +1), PLOT=F)
fcol = foc.color(foc.icolor(MEC$rake1), pal=1)
Beachfoc(MEC, fcol=fcol, fcolback="white")
addPTarrows(MEC)
title(eqname[i],cex.main = 2)
}
par(mfrow=c(1,1))
#dev.off()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Z1<-c(
#2011/03/12 長野県北部で地震
29, 56, 70,
#2011/04/11 福島県浜通り地震
132, 50, -82,
#2014/11/22 長野県北部で地震
25, 50, 65,
#2015/11/14 薩摩半島西方沖地震
190, 80, -161)
#
MZ = matrix(Z1, ncol=3, byrow=TRUE)
#
eqname=c("2011/03/12 長野県北部で地震","2011/04/11 福島県浜通り地震","2014/11/22 長野県北部で地震","2015/11/14 薩摩半島西方沖地震")
#png("jpn_cmt03.png",width=1000,height=800)
par(mfrow=c(2,3))
par(family = "TakaoExMincho")
for(i in 1:length(MZ[,1]))
{
MEC = SDRfoc(MZ[i,1], MZ[i,2], MZ[i,3], u=FALSE, ALIM=c(-1,-1, +1, +1), PLOT=F)
fcol = foc.color(foc.icolor(MEC$rake1), pal=1)
Beachfoc(MEC, fcol=fcol, fcolback="white")
addPTarrows(MEC)
title(eqname[i],cex.main = 2)
}
par(mfrow=c(1,1))
#dev.off()