|
1. SAC
SAC波形数据是以数据处理为目的的格式,这种格式一般只包含单个台站单个分量或多分量的数据。
在SAC用户指南中描述了SAC波形数据输入格式,利用读入的数据,可以进一步做其他处理,如绘制波形图。
2. SEED
SEED波形数据是以归档和交换为目的的格式,这种格式要求一个文件中包含足够多的数据信息。
SEED格式的地震波形数据文件包括两个部分:第一部分是文件的头段,以ASCII码写成,其中包含了生成该段波形数据的台网信息、地震信息和波形数据本身的信息,为波形数据的元数据;第二部分是波形数据本身,以二进制编码写成,通常是按一定算法生成的压缩数据。
掌握至少一种SEED格式数据的读出工具软件,从而能用它读出关于该段波形数据的元数据信息和把SEED格式波形数据转换成可由自己的程序读入的格式,例如SAC二进制或ASCII格式。
SEED 手册参考链接:https://www.fdsn.org/pdf/SEEDManual_V2.4.pdf
3. miniSEED
miniSEED 格式是 SEED 格式的一个子集,其只包含时间序列和极少量的其他信息。
国际数字地震仪网络联合会(FDSN)将miniSEED定义为数字数据和相关信息的格式。主要用途是数据收集、存档和交换地震数据。
该格式也适用于时间序列数据从其他地球物理测量,如压力,温度,倾斜等。除时间序列外,存储的相关状态为健康状态支持记录系统状态的参数。
与miniSEED对应的FDSN元数据是StationXML用于描述解释数据所需的特征,如位置、仪器响应等。
参考链接
名称 | 链接 |
---|---|
miniSEED3 格式记录定义 | Record definition — FDSN miniSEED 3 |
miniSEED3 的重大改动 | Background — FDSN miniSEED 3 |
开源SEED-StationXML数据转换工具(python,Java) | 4. StationXML Tools — FDSN StationXML |
ObsPy是一个开源项目,致力于提供处理地震数据的Python框架。 | https://github.com/obspy?language=javascript |
libmseed是一个比较友好的c函数库,可以用于读写 miniSEED 文件。 | https://github.com/EarthScope/libmseed |
miniSEED3数据格式
Field | Description | 描述 | Type | Length | Offset | Content | 备注 |
---|---|---|---|---|---|---|---|
1 | Record header indicator | 记录头指示器 | CHAR | 2 | 0 | ASCII ‘MS’ | ASC11"77"和"83" |
2 | Format version | 版本格式 | UINT8 | 1 | 2 | Value of 3 | 当前使用的miniSEED版本:3 |
3 | Flags | 标志 | UINT8 | 1 | 3 | 位字段标志:0-7;0效正信号存在,1时间标签有问题,2时钟锁定,3-7备用 | |
4 | Record start time | 记录开始时间 | 以下4a-4f的开始时间使用UTC时间;如果记录中不包含时间序列数据,则时间改成其他任何标志头 | ||||
4a | Nanosecond (0 - 999999999) | 纳秒 | UINT32 | 4 | 4 | 无符号 32 位整数(小端字节顺序) | |
4b | Year (0-65535) | 年 | UINT16 | 2 | 8 | 无符号 16 位整数(小端字节顺序) | |
4c | Day-of-year (1 - 366) | 天 | UINT16 | 2 | 10 | 无符号 16 位整数(小端字节顺序) | |
4d | Hour (0 - 23) | 小时 | UINT8 | 1 | 12 | 无符号 8 位整数 | |
4e | Minute (0 - 59) | 分钟 | UINT8 | 1 | 13 | 无符号 8 位整数 | |
4f | Second (0 - 60) | 秒 | UINT8 | 1 | 14 | 60秒值用于表示正闰秒期间的时间值 | |
5 | Data payload encoding | 数据有效载荷编码 | UINT8 | 1 | 15 | 编码格式的代码,如果不包含数据负载,则将此值设置为0;详见下表:数据有效载荷编码 | |
6 | Sample rate/period | 采样率 | FLOAT64 | 8 | 16 | 64-bit IEEE-754 浮点格式编码的采样率(小端字节顺序)。如果不包含时间序列数据,则设置为0.0 | |
7 | Number of samples | 样本数量 | UINT32 | 4 | 24 | 无符号 32 位整数(小端字节顺序);没有样本数量或者数量未知,则设置为0 | |
8 | CRC of the record | CRC效验 | UINT32 | 4 | 28 | 无符号 32 位整数(小端字节顺序) | |
9 | Data publication version | 数据发布版本 | UINT8 | 1 | 32 | 0表示未知版本;1表示原始数据;2表示修订版本,2+n 表示后续修订(n大于等于1) | |
10 | Length of identifier | 标识符长度 | UINT8 | 1 | 33 | 字段 13 中源标识符的长度(以字节为单位) | |
11 | Length of extra headers | 额外标头的长度 | UINT16 | 2 | 34 | 字段 14 中额外标头的长度(以字节为单位)。如果没有额外标头,请将此值设置为 0。 | |
12 | Length of data payload | 数据有效载荷长度 | UINT32 | 4 | 36 | 无符号 32 位整数(小端字节顺序),从字段 15 开始的数据有效负载的长度(以字节为单位)。如果不存在数据有效负载,则将此值设置为 0。 | |
13 | Source identifier | 源标识符 | CHAR | V | 40 | URI identifier | ASCII 编码的字符数据 |
14 | Extra header fields | 额外的报头字段 | JSON | V | 40 + field 10 | ||
15 | Data payload | 数据负载 | encoded | V | 40 + field 10 + field 11 |
数据总长度可变,报头固定长度40+额外报头长度10+有效载荷长度(可变),建议原始数据长度在256到4096字节之间。
数据有效载荷编码
Code | Description | 描述 |
---|---|---|
0 | Text, UTF-8 allowed, use ASCII for maximum portability, no structure defined | 文本,允许UTF-8,使用ASCII以获得最大的可移植性,没有结构定义 |
1 | 16-bit integer (two’s complement), little endian byte order | 16位整数(二进制补码),小字节序 |
3 | 32-bit integer (two’s complement), little endian byte order | 32位整数(二进制补码),小字节序 |
4 | 32-bit floats (IEEE float), little endian byte order | 32位浮点数(IEEE浮点数),小端字节顺序 |
5 | 64-bit floats (IEEE double), little endian byte order | 64位浮点数(IEEE double),小端字节顺序 |
10 | Steim-1 integer compression, big endian byte order | Steim-1整数压缩,大端字节顺序;详见:SEED 2.4 manual , Appendix B. |
11 | Steim-2 integer compression, big endian byte order | Steim-2整数压缩,大端字节顺序;详见:SEED 2.4 manual , Appendix B. |
19 | Steim-3 integer compression, big endian (not in common use in archives) | Steim-3整数压缩,大端(在存档中不常用) |
100 | Opaque data - only for use in special scenarios, not intended for archiving | 不透明数据——仅用于特殊场景,不打算归档 |
miniSEED2数据格式
[1000] Data Only SEED Blockette(8字节)
Field | Field name | 描述 | Length | Offset | 备注 |
---|---|---|---|---|---|
1 | Blockette type - 1000 | 块类型 | 2 | 0 | 固定值,为1000 |
2 | Next blockette’s byte number | 下一个块的字节数 | 2 | 2 | 如果没有更多的块将跟随,则使用0 |
3 | Encoding Format | 编码格式 | 1 | 4 | 0 字符串(ASCII text) 1 2字节整数 2 3字节整数 3 4字节整数 4 浮点数 5 双精度浮点数 |
4 | Word order | 单词顺序 | 1 | 5 | 0 表示小端序,1表示大端序 |
5 | Data Record Length | 数据记录长度的指数,值为2的幂 | 1 | 6 | 数据记录可以小到256字节,可以大到2的256次方。 |
6 | Reserved | 保留字段 | 1 | 7 |
miniSEED2示例
假设文件里的字节数据为[3, -24, 0, 0, 5, 1, 0, 0, 64, -20, 19, 64, 0, 0, 0, 0]
参照下表可以获取到地震波形数据,数据为[57498.0]
字节数据说明
前面8字节为固定信息。详细请参考文档:https://www.fdsn.org/pdf/SEEDManual_V2.4.pdf 第200页。
Offset | Length | Byte | Description | 备注 |
---|---|---|---|---|
0 | 2 | [3, -24] | UWORD : Blockette type (1000): Data Only SEED | 数据块类型,固定值,该值为1000 |
2 | 2 | [0, 0] | UWORD : Byte number of next blockette. (Calculate this as the byte offset from the beginning of the logical record - including the fixed section of the data header; use 0 if no more blockettes will follow.) | 下一个块的字节数,如果没有更多的块则设置0 |
4 | 1 | 5 | BYTE : A code indicating the encoding format. This number is assigned by the FDSN Data Exchange Working 0 ASCII text, byte order as specified in field 4 | 编码格式 0 字符串(ASCII text) 1 2字节整数 2 3字节整数 3 4字节整数 4 浮点数 5 双精度浮点数 |
5 | 1 | 1 | The byte swapping order for 16 bit and 32 bit words. A 0 indicates little endian order and a 1 indicates big endian word order. See fields 11 and 12 of blockette 50. | 单词顺序 0 表示小端序,1表示大端序 |
6 | 1 | 0 | The exponent (as a power of two) of the record length for these data. The data record can be as small as 256 bytes and, in Data Only SEED format as large as 2 raised to the 256 power | 数据记录长度,值为2的指数,例如数据长度为1,则该项值为0 |
7 | 1 | 0 | Reserved | 保留字段,暂设置为0 |
8 | V | 64, -20, 19, 64, 0, 0, 0, 0 | Data load | 数据负载,解析为 [ 57498.0 ] |