Segd 2.1格式注释

参考了Segd2.1标准文档的加上自己理解和测试后得出的,如有错误欢迎大家指摘:

segd 2.1 标准包括主要包括以下几项:

先上图:

1.  General Header Block1     32字节,主要负责标记地震数据编号,格式,记录时间, 设置参数总数(Segd Channel Set)和扩展项长度( Extended Header,External Header)

2.  General Header Block2     32字节,主要定义版本号,记录时长等

3.  General Header Block3     32字节,主要标记对应的线号桩号

4.  Segd Channel Set             定义长度为  8*32 (8 以上个类型的参数),地震数据设置的参数,比如采样率,记录每一道时长,检波器参数,该参数在当前文件存在多少道

5.  Segd Extended Header     扩展的的针对性的描述,扩展的辅助道,或者道数类型等

6.  Segd External Header       一些自定义的震源位置,TB时间等

再上图:

7.  地震数据 (Segd2 Seis Trace Harder)     主要包括上述描述的Segd Channel Set的地震数据,数据的编码格式8058

     7.1       Segd Trace Headers      负责记录Segd Channel Set的类型,扫描或者检测类型,当前道的序列号,切割时间的偏移量等

     7.2       Extension Headers1       负责记录当前道震源的位置,当前道的样点数

     7.3       Extension Headers2       负责记录当前道的TB的GPS时间,补偿时间等

     7.4       Extension Headers3       负责记录当前道震源接收的位置

     7.5       Extension Headers4       可以自定义震源位置

     7.6       Extension Headers5       可以自定义

     7.7       Extension Headers6       可以自定义  

     7.8       Extension Headers7       可以自定义

     7.9       地震数据                         每一个采样为4*8 bit 浮点数,具体大小参考当前道的样点数

第 1 - 6 项主要包括定义当前的SEGD的数据概况:

    SSegdGeneralHeaderBlock1 ;
    SSegdGeneralHeaderBlock2 ;
    SSegdGeneralHeaderBlock3 ;
    SSegdChannelSet ;
    SSegdExtendedHeader ;
    SSegdExternalHeader ;

第 7 项主要详细描述地震数据的每一道的概况和值:

每一道包括道头(7.1 - 7.8)和数据(7.9)

    SSegdTraceHeaders ;
    SExtensionHeaders1 ;
    SExtensionHeaders2 ;
    SExtensionHeaders3 ;
    SExtensionHeaders4 ;
    SExtensionHeaders5 ;
    SExtensionHeaders6 ;
    SExtensionHeaders7 ;

以下详细定义下C++枚举方便大家理解,其他的就只要赋值即可:

typedef struct SSegdGeneralHeaderBlock1
{
 unsigned char iFileNumber[2] = { 0x00, 0x00 };    // 0-1                 文件号  最大9999 当超过9999时置为FFFF
 unsigned char iFormatCode[2] = { (unsigned char)0x80, (unsigned char)0x58 };   // 2-3                 非必要,暂时固定值(数据的编码格式为8058)
 unsigned char iGeneralConstants[6] = {0};            // 4-9                 非必要,暂时固定值,未使用
 unsigned char iYear = 0x20;                          // 10                  年的后两位,比如2020年,这里填0x20
 unsigned char iNumAddBocksAndDays[2] = { 0x20, 0x00 };                      // 11=1/2 up           非必要,暂时固定值0x20
                                                                         // 11-12 (11=1/2 down) 儒略日,一年的第几天
 unsigned char iHour = 0x00;                          // 13                  
 unsigned char iMinute = 0x00;                        // 14                  
 unsigne
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值