下载地震数据更新
以下是地震数据下载脚本更新。
1 | import os |
与之前的脚本:下载地震数据练习不同的地方是多了文件sta.lst。其格式为:
TA|140A|32.6408|-93.573997|56.0|
台网|台站|纬度|经度|高程
以下是地震数据下载脚本更新。
1 | import os |
与之前的脚本:下载地震数据练习不同的地方是多了文件sta.lst。其格式为:
TA|140A|32.6408|-93.573997|56.0|
台网|台站|纬度|经度|高程
有些时候需要抓取别人图片中的点的信息,应该怎么整?当然是找作者要咯!不过有时可能没办法(例如可能联系不上作者/作者找不到数据了/作者不想给你/作者说你自己提取吧)或则并不需要他图片中的点的准确信息的时候,我们可以自己去点。之前有个perl脚本,但找不到了(这又体现了整理资料和做笔记的必要性),现在python很方便的,调用pynput的Listener就好了。记录鼠标点击的脚本如下:
1 | from pynput.mouse import Listener |
这个脚本会记录鼠标左键的位置,输出到mouse_clicks.log文件中。mouse_clicks.log文件有三列:
2025-05-07T17:01:33 1977 1576
分别表示点击的时间,x和y坐标。其中y坐标是下面大上面小。此外点击鼠标右键或者输入Ctrl+C就可以结束记录。我一般是怎么做的呢?我先点击图片左下角得到(x0,y0),点击右下角得到(x1,y0),点击左上角得到(x0,y1),然后点击你想要的点。得到mouse_clicks.log以后就可以这么画图(gmt)。
1 | dat=mouse_clicks.log |
注意,这种方法仅仅适用于线性笛卡尔坐标,其他的各种投影都不行。
以后得加上这句:脚本/程序不保证正确性,自求多幅(no warranty/use at your own risk)。
用gmt画箭头还是挺常见的。GMT document和GMT中文手册虽好,但如果网络不好不就歇菜了,还是记录一下吧,自己翻起来方便。画箭头参数是Sv(或SV),自己调Sv之后的参数可以看效果。输入参数表示是x,y,angle,length。x,y表示箭头的起始坐标。angle是箭头指向,逆时针为正,x轴正向为0。length就是那个length了。
1 | echo 0 0 60 0.5i | gmt psxy -R -J -O -K -Sv0.25c+e0.2c -W0.5p -Gblack >>$ps |
接收函数或者其他方法需要下载地震波形数据。这里给出结合FetchEvent和obspy进行数据下载的例子。
FetchEvent从地址https://github.com/EarthScope/fetch-scripts下载。他是用perl脚本写的。运行例子如下:
1 | ./FetchEvent -s 2006-01-01 -e 2007-05-01 --radius 5:12:95:28 --mag 5:10 -o event.lst |
表示下载发生时间为2006-01-01到2007-05-01,位于以(5,12)(lat,lon)为中心,半径28-95度,震级5-10级的地震信息,保存到event.lst中。
下载到的event.lst内容如下:
1 | 8037834 |2006/01/23 20:50:46.19Z | 6.9168| -77.7951| 24.0355|ISC|||MS,5.86,ISC|mb,6.16,ISC|Near west coast of Colombia |
表示ID|时间|纬度|经度|深度|目录|||震级类型,震级,目录|震级类型,震级,目录|位置
可以看出地震信息来自ISC目录,其实到ISC直接检索也很方便。
接下来,下载XB台网所有台站接收到的地震理论P波到时前50秒到后150秒三分量数据。其中P波到时调用taup来计算。接下来去仪器响应,最后再截取P波前10秒到后60秒。保存为SAC格式,每个地震每个台站保存一个SAC,名称需包含地震时间震级及台站名。利用多线程ThreadPoolExecutor加速。脚本如下:
1 | import os |
用我的脚本下载了一堆的miniseed放在seed下,仪器响应文件放在resp文件夹下,利用obspy去除仪器响应,还保存为miniseed。
1 | import os |
感谢Seisman写了FnetPy,可以很方便地下载数据。
安装:
1 | pip install https://github.com/seisman/FnetPy/archive/master.zip |
例子:
1 | import os |
这个脚本可以下载2013到2025年Fnet所有台站的LHZ连续波形数据,数据长度为25小时,overlap 1小时。去除仪器响应后的速度记录存放在seed文件夹中。每天的数据名称为%Y_%m_%d_%H_%M_%S.seed。账户需要去NIED去申请,当然用我的也可以。
利用obspy的MassDownloader下载连续的波形示例。
1 | import obspy |