python处理地震sac数据_地震数据SAC格式
1.endian介绍
字节存储格式 big endian 大端 和 little endian 小端 两种
MSB:最重要的位或字节,通常是一个bit序列或byte序列中对其影响最大的bit和byte
LSB:最不重要的位或字节,影响最小
在消息序列传输过程中支持先传输MSB的为big endian,支持LSB的为little endian.
big endian:在计算机中,MSB存放在最低端的地址上,高位数据存放于低地址,数据bit位编号从最高位开始为0,最低位最大
通常在TCP/IP协议栈所说的网络序(Network Order)就是遵循 Big-Endian规则。
JAVA编写的程序是唯一采用bigendian方式存储数据的。所有网络协议也都是采用bigendian的方式来传输数据的
little endian:LSB在最低位,低位数据在低地址,数据bit位编号从最低位开始为0,最高位最大。通常说的主机序(host order)就是这个,
则2个主机之间通过TCP/IP协议进行通信时需要相应程序完成little endian到big endian的转换。
C/C++都是little endian 方式。
2.相关概念
子程序:在源程序内反复出现的程序段
子程序库:c/c++里面有很多标准库文件,库文件可以看做子程序的集合,库文件中有子程序名,子程序的目标代码,以及连接需要的重定位信息,当某目标文件与库文件相连接时,LINK程序只把目标文件所用到的子程序从库文件中找出来,并合并到最终的可执行文件中,而不是把库中所含的全部子程序都纳入最后的可执行文件。
子程序库的介绍:
RSAC1读取等间隔文件,RSAC2读取非等间隔文件和频谱文件;WSAC1写入等间隔文件,WSAC2写入非等间隔数据,
WSAC0写入比另外两个包含更多头段信息的SAC文件(如果是新文件,那么它首先需要使用一个新的子程序NEWHDR来定义头段变量。如果是写入一个已经存在的文件则不应该调用NEWHDR,在写入这样一个文件之前,它要更新如DEPMAX和BAZ这样的头段变量)
儒略日的计算:年月日分别为I、J、K
儒略日= K - 32075 + 1461 * (I + 4800 + (J-14)/12)/4+367*(J-2-(J-14)/12*12)/12-3*((I+4900+(J-14)/12)/100)/4
3.SAC数据格式
sac可以操作任意的endian数据,也就是big endian 的系统可以读取 little endian 系统(Linux、Mac、i686、Cygwin)的sac文件, sac在各个系统中是通用的。
数据组成:头段区(固定长度)+ 数据区(1或2个)
头段区包含浮点型、整型、逻辑型以及字符型变量。
等采样间隔的数据文件:在头段中包含了自变量的最小值、最大值以及采样间隔,因而只需要一个包含因变量的数据区。
非等间隔数据或者频谱数据则包含两个数据区,非等间隔数据的两个数据区分别为因变量和自变量(注意顺序),频谱数据的两个数据区包含振幅和相位或者实部和虚部。
sac二进制数据格式:最常用,可以被sac(read/write)以及子程序库(RSAC1,RSAC2,WSAC1,WSAC2,WSAC0)使用。整个头段长度为152个字,1个字为32位,之后是数据区。
头段区 第一数据区 第二数据区(可选)
============= =========== ===================
起始字: 0 158 158+NPTS
长度(字): 158 NPTS NPTS
因变量 自变量-------非等间隔数据
振幅 相位 --------频谱数据
sac头段区:
变量类型说明如下:
类型 数据类型 未定义值 描述
==== ======== ======== ==================================
F 浮点型 -12345.0 单精度
N 整型 -12345 变量名以N开头
I 枚举型 -12345 变量名以I开头,在有限个整数值中取值,每个值有特定的名字,代表特定的情形,
子程序使用与之等价的字母数据型名称
L 逻辑型 FALSE 变量名以L开头,值取TRUE或FALSE.
K 字符型 "-12345.." 变量名以K开头,长为8或16个字符
A 辅助型 头段中不存在,由其他变量导出
变量名为INTERNAL时,该变量为SAC内部变量,用户不需要对其操作;变量名为UNUSED代表这个变量暂时没有使用(为以后占位),这些变量值目前没有任何意义,可称之为未定义变量。对于某一类型的变量,以上表中类似于-12345之类的数据表明该变量未定义。
sac头段中一般来说每行有5个字,word为那一行头段变量的起始字,type为变量类型
二进制格式:
Word Type NAMES
======= ======= ======== ======== ======== ======= ========
0 F DELTA DEPMIN DEPMAX SCALE ODELTA
5 F B E O A INTERNAL
10 F T0 T1 T2 T3 T4
15 F T5 T6 T7 T8 T9
20 F F RESP0 RESP1 RESP2 RESP3
25 F RESP4 RESP5 RESP6 RESP7 RESP8
30 F RESP9 STLA STLO STEL STDP
35 F EVLA EVLO EVEL EVDP MAG
40 F USER0 USER1 USER2 USER3 USER4
45 F USER5 USER6 USER7 USER8 USER9
50 F DIST AZ BAZ GCARC INTERNAL
55 F INTERNAL DEPMEN CMPAZ CMPINC XMINIMUM
60 F XMAXIMUM YMINIMUM YMAXIMUM UNUSED UNUSED
65 F UNUSED UNUSED UNUSED UNUSED UNUSED
70 I NZYEAR NZJDAY NZHOUR NZMIN NZSEC
75 I NZMSEC NVHDR NORID NEVID NPTS
80 I INTERNAL NWFID NXSIZE NYSIZE UNUSED
85 I IFTYPE IDEP IZTYPE UNUSED IINST
90 I ISTREG IEVREG IEVTYP IQUAL ISYNTH
95 I IMAGTYP IMAGSRC UNUSED UNUSED UNUSED
100 I UNUSED UNUSED UNUSED UNUSED UNUSED
105 L LEVEN LPSPOL LOVROK LCALDA UNUSED
110 K KSTNM KEVNM*
116 K KHOLE KO KA
122 K KT0 KT1 KT2
128 K KT3 KT4 KT5
134 K KT6 KT7 KT8
140 K KT9 KF KUSER0
146 K KUSER1 KUSER2 KCMPNM
152 K KNETWK KDATRD KINST
其中KEVNM为16字符(4字)长,其他K类型的变量为8字符(2字)长。
ASCII格式:
行号 格式 NAMES
======= ======= ======== ======== ======== ======= ========
01 (5G15.7) DELTA DEPMIN DEPMAX SCALE ODELTA
02 (5G15.7) B E O A INTERNAL
03 (5G15.7) T0 T1 T2 T3 T4
04 (5G15.7) T5 T6 T7 T8 T9
05 (5G15.7) F RESP0 RESP1 RESP2 RESP3
06 (5G15.7) RESP4 RESP5 RESP6 RESP7 RESP8
07 (5G15.7) RESP9 STLA STLO STEL STDP
08 (5G15.7) EVLA EVLO EVEL EVDP MAG
09 (5G15.7) USER0 USER1 USER2 USER3 USER4
10 (5G15.7) USER5 USER6 USER7 USER8 USER9
11 (5G15.7) DIST AZ BAZ GCARC INTERNAL
12 (5G15.7) INTERNAL DEPMEN CMPAZ CMPINC XMINIMUM
13 (5G15.7) XMAXIMUM YMINIMUM YMAXIMUM ADJTM UNUSED
14 (5G15.7) UNUSED UNUSED UNUSED UNUSED UNUSED
15 (5I10) NZYEAR NZJDAY NZHOUR NZMIN NZSEC
16 (5I10) NZMSEC NVHDR NORID NEVID NPTS
17 (5I10) NSPTS NWFID NXSIZE NYSIZE UNUSED
18 (5I10) IFTYPE IDEP IZTYPE UNUSED IINST
19 (5I10) ISTREG IEVREG IEVTYP IQUAL ISYNTH
20 (5I10) IMAGTYP IMAGSRC UNUSED UNUSED UNUSED
21 (5I10) UNUSED UNUSED UNUSED UNUSED UNUSED
22 (5I10) LEVEN LPSPOL LOVROK LCALDA UNUSED
23 (A8,A16) KSTNM KEVNM
24 (3A8) KHOLE KO KA
25 (3A8) KT0 KT1 KT2
26 (3A8) KT3 KT4 KT5
27 (3A8) KT6 KT7 KT8
28 (3A8) KT9 KF KUSER0
29 (3A8) KUSER1 KUSER2 KCMPNM
30 (3A8) KNETWK KDATRD KINST
头段变量说明:
========= ===== =============================================================
Name Type Description
========= ===== =============================================================
NPTS N 每个数据分量的点数。[必须]
DEPMIN F 因变量最小值。
DEPMAX F 因变量最大值。
DEPMEN F 因变量平均值。
DELTA F 等间隔采样点之间的增量(标称值)。[必须]
ODELTA F 观测到的采样点增量,如果其不等于DELTA则有值
NZYEAR N GMT年,文件基准时间,GMT即格林尼治平时
NZJDAY N GMT儒略日,此处儒略日大致相当于该日一年中的第多少天,比月、日少用一个变量
NZHOUR N GMT时
NZMIN N GMT分
NZSEC N GMT秒
NZMSEC N GMT毫秒
NZDTTM N GMT时间数组,不在头段中,用于子程序读取SAC文件.该数据包含了上面6个变量,年、日、时、分、秒、毫秒
KZDATE A 不在头段中,字母数字格式的GMT基准日期,由NZYEAR和NZJDAY导出
KZTIME A 不在头段中,字母数字格式的GMT基准时间,由NZHOUR, NZMIN, NZSEC和NZMSEC导出
B F 自变量起始值(相对参考时间的秒数)。[必须]
E F 自变量结束值(相对参考时间的秒数)。[必须]
O F 事件发生时间(相对参考时间的秒数)*
KO A 事件发生时间标志
IZTYPE I 等效基准时间,可选值如下
- IUNKN (未知)
- IB (文件开始时间)
- IDAY (基准GMT的午夜)
- IO (事件发生时间)
- IA (初动到时)
- ITn (用户自定义的读取时间Tn, n=0-9)
IDEP I 因变量类型
- IUNKN (未知)
- IDISP (位移:nm)
- IVEL (速度:nm/sec)
- IVOLTS (速度:volts)
- IACC (加速度:nm/sec/sec)
SCALE F 因变量比例因子放大系数[目前未使用]
NVHDR N 头段版本号,目前为6,对于老的SAC文件(NVHDR>6)在读入SAC时会自动更新。[必须]
IFTYPE I 文件类型[必须]:
- ITIME {时间序列文件}
- IRLIM {频谱文件--实虚部格式}
- IAMPH {频谱文件--振幅相位格式}
- IXY {一般的x-y数据}
- IXYZ {一般的XYZ(3-D)文件}
LEVEN L 若为等间隔则为真。[必须]
关于SAC时间的说明:
SAC头段中与时间有关的变量很多,NZYEAR, NZJDAY, NZHOUR, NZMIN, NZSEC,NZMSEC六个变量定义了某年某日的某个时刻,一般用 等效的KZDATE和KZTIME来表示,这个时间只是一个参考(基准)时间,你可以任意设置,通常其为第一个数据点所对应的时间,但是也可以为事件的发生时间、某个午夜或你的生日。所有的其他时间(如B、E、O等等)都是相对于这个时间的秒数,根据基准时间以及各个时间变量的相对值即可以确定该数据中任意时刻的绝对时间。
与震相有关的变量:
Name Type Description
------ ------- -------------------
A F 初动到时(相对参考时间的秒数)
KA K 初动到时标志
F F 事件结束时间(相对参考时间的描述,注意与文件结束时间的区别)
KF A 事件结束标志
Tn F 用户定义的时间,在拾取震相时使用,n = 0-9(相对参考时间的秒数),T0-T9
KT{n} K 用户定义的时间标志, n为变量可取 0-9,KT0到KT9
与仪器有关的变量:
Name Type Description
------ ------- -------------------
KINST K 记录仪器名称
IINST I 记录仪器类型[未使用]
RESPn F 仪器响应参数,n=0-99. [未使用]
与台站有关的变量:
Name Type Description
------ ------- -------------------
KNETWK K 地震台网名
KSTNM K 台站名
ISTREG I 台站地理区域[未使用]
STLA F 台站纬度(度,北为正)
STLO F 台站经度(度,东为正).
STEL F 台站高程(m). [未使用]
STDP F 台站相对地表深度(m). [未使用]
CMPAZ F 分量方位角(从北开始顺时针度数).
CMPINC F 分量入射角(从垂直开始的度数).
KCMPNM K 分量名称
KSTCMP A 台站分量,由KSTNM, CMPAZ和CMPINC导出
LPSPOL L 如果台站分量为正极性则为真(左手规则)
与事件有关的变量:
Name Type Description
------ ------- -------------------
KEVNM K 事件名
IEVREG I 事件地理区域[未使用]
EVLA F 事件纬度(度,北为正)
EVLO F 事件经度(度,东为正)
EVEL F 事件高程(m). [未使用]
EVDP F 事件相对地表深度(m). [未使用]
MAG F 事件震级
IMAGTYP I 震级类型:
- IMB (Bodywave Magnitude)
- IMS (Surfacewave Magnitude)
- IML (Local Magnitude)
- IMW (Moment Magnitude)
- IMD (Duration Magnitude)
- IMX (User Defined Magnitude)
IMAGSRC I 震级来源信息:
- INEIC (National Earthquake Information Center)
- IPDE (Preliminary Determination of Epicenter)
- IISC (Internation Seismological Centre)
- IREB (Reviewed Event Bulletin)
- IUSGS (US Geological Survey)
- IBRK (UC Berkeley)
- ICALTECH (California Institute of Technology)
- ILLNL (Lawrence Livermore National Laboratory)
- IEVLOC (Event Location (computer program) )
- IJSOP (Joint Seismic Observation Program)
- IUSER (The individual using SAC2000)
- IUNKNOWN (unknown)
IEVTYP I 事件类型:
- IUNKN (未知)
- INUCL (核爆事件)
- IPREN (核爆前事件)
- IPOSTN (核爆后事件)
- IQUAKE (地震)
- IPREQ (前震)
- IPOSTQ (余震)
- ICHEM (化学爆炸)
- IQB (Quarry or mine blast confirmed by quarry)
- IQB1 (Quarry/mine blast with designed shot
info-ripple fired)
- IQB2 (Quarry/mine blast with observed shot
info-ripple fired)
- IQBX (Quarry or mine blast - single shot)
- IQMT (Quarry/mining-induced events: tremors
and rockbursts)
- IEQ (Earthquake)
- IEQ1 (Earthquakes in a swarm or aftershock sequence)
- IEQ2 (Felt earthquake)
- IME (Marine explosion)
- IEX (Other explosion)
- INU (Nuclear explosion)
- INC (Nuclear cavity collapse)
- IO (Other source of known origin)
- IL (Local event of unknown origin)
- IR (Regional event of unknown origin)
- IT (Teleseismic event of unknown origin)
- IU (Undetermined or conflicting information)
- IOTHER (Other)
NEVID N Event ID (CSS 3.0)
NORID N Origin ID (CSS 3.0)
NWFID N Waveform ID (CSS 3.0)
KHOLE K 核爆事件的孔眼标志
DIST F 事件台站距离,即震中距(km).
AZ F 事件到台站的方位角(度).
BAZ F 台站到事件的方位角(度).
GCARC F 台站到事件的大园弧长,即另一种震中距(度).
其他变量:
Name Type Description
------ ------- -------------------
LCALDA L 如果DIST, AZ, BAZ 和 GCARC可以由台站和事件的坐标计算出来则为真
IQUAL I 数据质量[未使用]:
- IGOOD (Good data)
- IGLCH (Glitches)
- IDROP (Dropouts)
- ILOWSN (Low signal to noise ratio)
- IOTHER (Other)
ISYNTH I 合成数据标志[未使用]:
- IRLDTA (Real data)
- ????? (Flags for various synthetic seismogram codes)
KDATRD K 数据被读入计算机的日期
USER{n} F 用户定义变量存储区, n = 0-9.
KUSER{n} K 用户定义变量存储区, n = 0-2.
LOVROK L 如果文件可覆盖则为真,类似于写权限
NXSIZE N 频谱长度(限于谱文件)
NYSIZE N 频谱宽度(限于谱文件)
XMINIMUM F X的最小值(限于谱文件)
XMAXIMUM F X的最大值(限于谱文件)
YMINIMUM F Y的最小值(限于谱文件)
YMAXIMUM F Y的最大值(限于谱文件)
枚举类型头段取值:这些枚举头段值在头段中以整型存储,如下表所示
Name ID
======== =====
itime 01
irlim 02
iamph 03
ixy 04
iunkn 05
idisp 06
ivel 07
iacc 08
ib 09
iday 10
io 11
ia 12
it0 13
it1 14
it2 15
it3 16
it4 17
it5 18
it6 19
it7 20
it8 21
it9 22
iradnv 23
itannv 24
iradev 25
itanev 26
inorth 27
ieast 28
ihorza 29
idown 30
iup 31
illlbb 32
iwwsn1 33
iwwsn2 34
ihglp 35
isro 36
inucl 37
ipren 38
ipostn 39
iquake 40
ipreq 41
ipostq 42
ichem 43
iother 44
igood 45
iglch 46
idrop 47
ilowsn 48
irldta 49
ivolts 50
ixyz 51
imb 52
ims 53
iml 54
imw 55
imd 56
imx 57
ineic 58
ipde 59
iisc 60
ireb 61
iusgs 62
ibrk 63
icaltech 64
illnl 65
ievloc 66
ijsop 67
iuser 68
iunknown 69
iqb 70
iqb1 71
iqb2 72
iqbx 73
iqmt 74
ieq 75
ieq1 76
ieq2 77
ime 78
iex 79
inu 80
inc 81
io 82
il 83
ir 84
it 85
iu 86
python处理地震sac数据_地震数据SAC格式相关推荐
- 海量数据寻找最频繁的数据_寻找数据科学家的“原因”
海量数据寻找最频繁的数据 Start with "Why" - Why do we do the work we do? 从"为什么"开始-我们为什么要做我们所 ...
- python架构师工作职责_大数据架构师岗位的工作职责
大数据架构师需要负责深入理解业务需求,对业务建模,设计系统架构,满足业务需求.以下是学习啦小编整理的大数据架构师岗位的工作职责. 大数据架构师岗位的工作职责1 职责: 1.负责数据仓库建设,基于数据驱 ...
- python架构师工作职责_大数据架构师工作的岗位职责
大数据架构师负责研发技术发展方向,新技术领域的探索,将新技术应用到公司大数据平台,提升公司效能.下面是学习啦小编整理的大数据架构师工作的岗位职责. 大数据架构师工作的岗位职责1 职责: 1.负责大数据 ...
- 数字经济的核心是对大数据_大数据崛起为数字世界的核心润滑剂
数字经济的核心是对大数据 "Information is the oil of the 21st century, and analytics is the combustion engin ...
- hive 导入hdfs数据_将数据加载或导入运行在基于HDFS的数据湖之上的Hive表中的另一种方法。
hive 导入hdfs数据 Preceding pen down the article, might want to stretch out appreciation to all the well ...
- 管道过滤模式 大数据_大数据管道配方
管道过滤模式 大数据 介绍 (Introduction) If you are starting with Big Data it is common to feel overwhelmed by t ...
- 海量数据寻找最频繁的数据_在数据中寻找什么
海量数据寻找最频繁的数据 Some activities are instinctive. A baby doesn't need to be taught how to suckle. Most p ...
- kaggle比赛数据_表格数据二进制分类:来自5个Kaggle比赛的所有技巧和窍门
kaggle比赛数据 This article was originally written by Shahul ES and posted on the Neptune blog. 本文最初由 Sh ...
- 同时删除两张表的数据_把数据表中对应工作表的数据首先删除,然后导入数据...
大家好,我们今日继续讲解VBA数据库解决方案的第28讲内容:利用VBA,把数据表中对应工作表的数据首先删除,然后向数据表中导入工作表数据.数据库的讲解已经持续一段时间了,从对简单数据库的认识到利用VB ...
- print的describe的展示全部数据_大数据项目中的QA需要迎接新的挑战
根据IDC全球半年度大数据和分析支出指南的最新预测,到2022年全球大数据和业务分析解决方案的收入将达到2600亿美元.在大数据和业务分析解决方案上投资增长最快的行业包括银行(复合年增长率13.3%) ...
最新文章
- UML用例图概要(转)
- python3爬虫(2)下载有固定链接的视频
- Linux kernel 本地拒绝服务漏洞
- Study to Innovation 的一般步骤总结
- JS 中 call()、apply()、bind() 的用法
- [Qt]用QItemDelegate的来修改QStandardItem字体颜色
- 2019年的流水账和总结
- 部署系统到linux服务器,若依管理系统部署到linux(上)
- 讯飞输入法(原讯飞语音输入法) V2.1.1708 官方版-完美软件下载
- [C#]关于逆变与协变的基本概念和修饰符in与out的意义
- 对js运算符“||”和“”的总结
- EXCEL——处理大批量数据
- 银河麒麟ARM64 飞腾FT2000 linuxdeployqt linux打包qt
- (ZT)中国姓氏韦氏拼音拼法
- 多肽细胞穿膜肽TAT修饰牛血清白蛋白BSA/人血清白蛋白HSA/卵清白蛋白OVA纳米粒(实验要求)
- 安卓双摄像头录像_USB双摄像头app手机版下载-USB双摄像头apk安卓版下载 - 口袋手机站...
- angular Tabs (ui.bootstrap.tabs)
- 无穷小进课堂,历史在召唤
- 小数除以整数在c语言,小数除法竖式计算的错因分析
- 第7章 嵌入式uClinux及其应用开发(1)
热门文章
- error:LNK2005 已经在*.obj中定义
- Qt_qDebug 原理详解
- python多元线性回归_多元线性回归模型精度提升 虚拟变量
- 元素内容必须由格式正确的字符数据或标记组成_字符编码是什么?html5如何设置字符编码?...
- html遮罩水印,CSS滤镜遮罩,图片水印效果
- 学生宿舍管理系统HTML代码,学生宿舍管理系统源代码.doc
- Dynamics AX2012 保留上一次操作记录
- 转载Prince_vegeta制作的VC知识库1-53期合订本索引文件。
- python自动交易 缠论_缠论自动交易系统实现了
- 微服务 订单交易支付系统架构演进