3.2.3 数据文件的读和写
1.READ命令
SAC命令只能对SAC2000工作内存中而不是磁盘上的数据进行操作。READ命令可以将磁盘上的数据读入内存(最多可同时读入100个数据文件),只要不超过SAC2000工作内存(32位下其上限一般是100万字节),文件可以任意大小[2]。READ命令可以使用通配符将磁盘上文件名中含有相同字符的一组数据文件一次读入,当READ命令把数据读入后,当前内存即被刷新。READ命令有一个MORE选项,可以使数据在读入内存时不冲掉前面的数据。
另有READALPHA命令可以直接将字符型数据文件读入内存,详见“SAC2000命令参考手册”。
2.WRITE命令
操作命令(如ADD、DECIMATE和FFT)只是处理当前内存中的数据,并不修改磁盘上的文件,WRITE命令可以随时将分析过程中处理过的数据写回磁盘,其OVER选项会覆盖磁盘上的原有文件,或者指定文件名创建新的数据文件。
3.几个例子
下面举出几个使用READ和WRITE命令的例子。第一个例子把两个文件读入内存后,分别让各个文件中的数据点乘以一个常量,并将结果作为两个新文件写入磁盘中:
READ FILE1 FILE2
MUL 10 20
WRITE FILE3 FILE4
下面的例子将一个文件读入内存,用因子5对数据解样(即每5个数据点只取一个,同时进行抗混淆滤波),然后将结果用相同文件名写回磁盘:
READ FILE5
DECIMATE 5
WRITE OVER
①文件数和SAC2000工作内存的大小均可以改变,只需要对源码做较小的修改并重新编译即可。
4.数据文件举例
现在可以准备一些数据文件便于接下来的绘图使用,或者用它们试验本指南后面讨论的其他命令。如果找不到现成的SAC数据文件,不妨用FUNCGEN生成几个。例如:
FUNCGEN TRIANGLE NPTS 200 DELTA 1
WRITE FILE1
FUNCGEN BOXCAR
WRITE FILE2
FUNCGEN STEP
WRITE FILE3这些结果保存为SAC2000工作目录中的FILE1、FILE2和FILE3三个文件,它们分别是三角形函数、方波函数和阶跃函数的数据,每个文件有200个数据点,采样率为1秒。注意,如果工作目录中已有同名文件,它们将被新生成的文件覆盖。
5.一些实际地震数据的例子
除了上面的简单函数外,DATAGEN命令可以生成实际的地震数据,给出Livermore台站的三次不同地震事件(一次地方震、一次近震和一次远震)的三分量地震记录。例如,用下述命令可以从地方震生成三个不同的垂直分量数据:
DATAGEN SUB LOCAL CAL.Z CAO.Z CDA.Z
WRITE FILE1 FILE2 FILE3如果要生成单台记录的远震事件的三分量数据,可以输入以下命令:
DATAGEN SUB TELESEIS NYKL.Z NYKL.N NYKL.E
WRITE FILE1 FILE2 FILE3这些地震事件(包括记录台网、文件长度和文件名等)信息,可在“SAC命令参考手册”中关于DATAGEN命令的说明中找到。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。