上周开始到这几天,要读取miniseed格式的数据,困难很多。
1 rdmseed.m rdmseedfast.m
matlab2017运行rdmseed遇到有gap的数据,或者数据不完整的,会报错。暂时不懂怎么处理。sanhua说matlab版本低的可以运行,不会报错。
rdmseedfast.m读取快速,但是读取的时间和rdmseed读取的不一致,不知道哪个是对的。
2 没办法,试试mseed2sac。
mseed2sac QT-5314_4-20170809062553 QT-5314_4-20170809073939
安装与使用参考http://www.cnblogs.com/seisjun/p/6225189.html
Building mseed2sac :
1) $ tar xvf mseed2sac-2.0.tar.gz
2) $ cd mseed2sac-2.0/
3) $ make
... and the executable 'mseed2sac' is created.
4) Installing : $ sudo cp mseed2sac /usr/local/bin/
mseed2sac nc_stations.mseed
它与rdseed相比较的弊端在于:
但解压出来的 SAC 文件中只有台站名和台网名,与用 rdSEED 解压出来的 SAC 数据相比, 少了 cmpaz、cmpinc、stla、stlo、stel、stdp、kcmpnm 信息,因而需要手动添加台站信息。
http://seisman.info/convert-seed-to-sac.html
在使用 mseed2sac 时,还可以加上额外的 metafile 和 selectfile 文件,以及地震事件信息。比如:
mseed2sac -m metafile -I selectfile -E 2006,123,15:27:08.7/-20.33/-174.03/65.5/Tonga
其中 metafile 提供了台站的基本信息,selectfile 中列出了要提取哪些台站的数据。具体文件格式参考官方文档。
metafile 可以自己根据格式生成,也可以直接使用 IRIS 提供的 FetchMetadata 脚本获取。
批量处理
#!/bin/bash
clear all
path="/home/ling/software/mseed2sac-master/20171109"
cd $path
filelist=$(ls $dir)
for filename in $filelist
do
mseed2sac $filename
done
convert mseed to sac
http://blog.163.com/weijia_sun/blog/static/16659249720154763955973/
#!/bin/sh
# step 1: convert miniSEED to SAC
for file in `ls`
do
if [ -d "${file}" ]; then
echo "$file is a directory"
mkdir ${file}/SAC
rm ${file}/SAC/*
cd ${file}/t/
rm *SAC
mseed2sac -O *BHE *BHZ *BHN
cd ../../
mv ${file}/t/*SAC ${file}/SAC/
fi
done
# remove blank in the filename after the conversion
ls -R */SAC/* |
awk '{printf "mv "%s"",$0;gsub(/[[:blank:]]/,"");print " " $0}' > blank.list
ls -R */SAC/*BH.* | awk '{print "rm " $0}' >> blank.list
chmod u+x blank.list
./blank.list