1 SEGY数据由文件头和数据体组成 1.1

文件头总长度为3600字节,分两部分。

1.1.1 文件头第一部分 长度: 3200bytes;组成:

80bytes*40;特性:EBCDIC字符集,参数卡,需要转换为ASCII码后才能显示。

1.1.2 文件头第二部分

长度:400bytes;数据类型:32位、16位的整型;特性:二进制头,记录数据体信息。

1.2

数据体由多个数据道组成。每道数据分两部分:道头、采样数据。

1.2.1 数据道道头 长度:240

bytes;数据类型:32位、16位的整型;特性:记录采样点数、采样间隔、CDP号、XLine号、Line号以及坐标信息等。

1.2.2 采样数据

长度:采样数*采样点字节数;数据类型:32位的浮点型。

2

工作站SEGY数据存储格式有两种:IEEE和IBM

3 IEEE和IBM格式与微机格式互转

3.1 32位、16位的整型格式数据

3.1.1 IEEE和IBM的整型存储与微机格式的存储不同之处

IEEE和IBM的高字节在前、低字节在后,即BigEndian,微机则是低字节在前、高字节在后,即LittleEndian

3.1.2 IEEE和IBM的32位、16位的整型转换成微机格式:只需交换高、低位即可。

以BIGENDIAN位码方式从文件的数据流DATASTREAM读取到Q_INT32、Q_INT16类型的变量中,可实现在微机上读取SEGY数据体中的整型值。

以BIGENDIAN位码方式将Q_INT32、Q_INT16类型的变量值写入文件的数据流DATASTREAM,可实现在微机上向SEGY数据体中写入整型值。

3.2 32位浮点型格式数据

3.2.1

IEEE格式32位浮点型与微机格式的32位浮点型相比:只要进行高、低位交换即可。

BIGENDIAN位码方式,Q_UINT32类型变量,可实现微机上读写SEGY IEEE格式的32位浮点型值。

3.2.2

IBM格式32位浮点型要转换位微机格式:需要分拆字位,重新进行数值计算才能得到正确的微机数值。

BIGENDIAN位码方式、Q_UINT32类型变量,读后计算浮点数值,写之前先转换数值。

3.2.2.1 读出SEGY

IBM格式的32位浮点型数,按如下方式可计算出浮点数的值: float

FormSegyDataAna::ibm2num(Q_UINT32 DataUint32) { float result ; //

gain sign from first bit double sign = (double)( DataUint32

>>31) ; // gain exponent from first

byte, last 7 bits double exp =(double )( (DataUint32

&0x7f000000)>>24) ;

// remove bias from exponent exp = exp - 64 ; // gain mantissa from

last 3 bytes double frac = (double )(DataUint32

&0x00ffffff) ; frac = frac/ (pow(2,24) ); result =

( 1-2*sign)*( pow( 16 ,exp) ) *frac; return result; }

3.2.2.2 32位浮点型数值要先转换再写入SEGY

IBM格式数据体中。 ……该转换方法尚不清楚!

4 已经完成的工作

4.1 读取SEGY数据

4.1.1IBM 32bit floating point

:BigEndian, Q_INT32 -> int ,Q_INT16

-> short ,Q_UINT32转换ibm2num(Q_UINT32)

-> float 。

4.1.2 32bit fixed point :

BigEndian,Q_INT32 -> int ,Q_INT16 ->

short 。

4.1.3 16bit fixed point :

BigEndian,Q_INT32 -> int ,Q_INT16 ->

short 。

4.1.4 IEEE 32bit floating point :

BigEndian,Q_INT32 -> int ,Q_INT16 ->

short ,Q_UINT32 -> float

。(目前,用的是自己所写的IEEE数据体,有待进一步验证)

4.2 写SEGY

4.2.1 32bit fixed point :

BigEndian,int -> Q_INT32 , short ->

Q_INT16

4.2.2 16bit fixed point :

BigEndian,int -> Q_INT32 , short ->

Q_INT16 。

4.2.3 IEEE 32bit floating point :

BigEndian,int -> Q_INT32 , short ->

Q_INT16 ,float -> Q_UINT32。(有待比较)

5 遗留问题 以IBM 32bit floating

point格式写SEGY数据。解决思路:可分析SU软件中segywrite相关代码。

segy地震数据的读取python_SEGY地震数据格式分析与读写相关推荐

  1. matlab的seg是什么,地震数据文件读取——以SEG-Y格式为例

    1.引 言 地震勘探是利用地下介质弹性和密度的差异,通过观测和分析大地对人工激发地震波的响应,推断地下岩层的性质和形态的地球物理勘探方法,是钻探前勘测石油与天然气资源的重要手段,在煤田和工程地质勘查. ...

  2. segy地震数据的读取python_Python-segy格式地震资料segyio读写包说明(二),pythonsegy,数据,学习,笔记...

    python segy格式地震数据读写包segyio学习笔记(二) 最近大致搞明白了segyio读取叠后和叠前segy数据的方法,以及内部存储结构,以两段代码为例: 叠后数据读取.这是一个从给定时窗内 ...

  3. matlab地震处理小程序,地震数据处理程序-matlab Matlab地震处理小程序 - 下载 - 搜珍网...

    文件名大小更新时间 94254010S4M\S4M\Geophysics_2.01\@struct\abs.m2912006-07-02 94254010S4M\S4M\Geophysics_2.01 ...

  4. livechart 只显示 y 值_基于Python语言的SEGY格式地震数据读取与显示编程

    敬请关注<地学新视野> 摘要:本文简单介绍了SEG-Y地震数据文件格式,以及如何用Python语言编写读写SEG-Y格式的地震数据并绘制地震剖面,其中用到了Segyio和matplotli ...

  5. 计算机与地震论文,地震数据论文,关于地震处理技术新进展相关参考文献资料-免费论文范文...

    导读:本论文是一篇免费优秀的关于地震数据论文范文资料,可用于相关论文写作参考. (胜利石油管理局, 山东 东营 257000) 摘 要:近年来科学技术的发展,尤其是先进的计算机技术和计算技术应用于地震 ...

  6. 地震数据SEGY格式介绍及其查看分析(附示例地震数据)

    SEGY简介 segy指的是"segy格式地震数据". 地震数据一般以地震道(trace)为单位进行组织,采用SEG-Y文件格式存储.SEG-Y格式是由SEG (Society o ...

  7. python segy格式地震数据读写包segyio学习笔记(二)

    python segy格式地震数据读写包segyio学习笔记(二) 最近大致搞明白了segyio读取叠后和叠前segy数据的方法,以及内部存储结构,以两段代码为例: 叠后数据读取.这是一个从给定时窗内 ...

  8. python 读取地震道头数据_python地震数据可视化详解

    本文实例为大家分享了python地震数据可视化的具体代码,供大家参考,具体内容如下 准备工作: 在windows10下安装python3.7,下载参考源码到本地. 1. demo绘图测试 demo绘图 ...

  9. 全球地震数据下载方法

    美国地质调查局地震数据 这份数据是美国 1977 年设立USGS 地震灾害计划,由美国地质调查局及其合作伙伴监测和报告地震,评估地震影响和危害,并对地震的成因和影响进行研究. 数据下载网址如下,访问该 ...

  10. usgs地震记录如何下载_用大叶草绘制USGS地震数据

    usgs地震记录如何下载 One of the many services provided by the US Geological Survey (USGS) is the monitoring ...

最新文章

  1. 谷歌放弃python-老大离开Google,去了Dropbox
  2. 按ctrl+shift 无法切换输入法了
  3. 直播预告|灵动MM32 MCU助力全国大学生智能汽车竞赛——基础培训第二讲
  4. UG NX12.0安装教程
  5. android——fragment长时间home或者锁屏java.lang.IllegalArgumentException:No view found for id for.......
  6. 《JavaScript高级程序设计》阅读笔记(五):ECMAScript中的运算符(一)
  7. C语言、嵌入式重点知识:回调函数
  8. ?php echo $this-_里面怎么加入图片地址,PHP如何获取图片同时展现在页面上?
  9. 计算机是如何启动的?(转载)
  10. CSS显示:内联vs内联块[重复]
  11. ssh连接局域网内两台主机
  12. 聚类 6 Affinity Propagation
  13. java与xml转换 -- XStreamAlias
  14. HTML5基础学习-表格标签
  15. plsql 查看表空间使用情况
  16. 嵌入式ttf字体裁减说明
  17. 【软件工程】需求分析文档——需求规格说明书
  18. 项目启动报 myql字符集报错的问题
  19. php代码实现微信代扣,PHP是如何实现微信H5支付的?
  20. Excel做曲线拟合

热门文章

  1. uniapp uView 微信小程序弹框二维码canvas不显示,以及显示后跟随滑动的问题
  2. Vagrant安装CentOS7镜像
  3. 整车车辆七自由度垂向动力学模型
  4. 用强化学习来玩Atari游戏(基于Tensorflow的深度Q学习模型)
  5. 在线运行此php解密navicat导出的密码!(用于navicat已经连接数据库但是忘记了密码)
  6. excel常用功能记录(不断更新)
  7. ssh远程连接阿里云服务器
  8. 各省GTFP绿色全要素生产率面板数据(2004-2018年)
  9. 两款常用的 MQTT 调试工具
  10. 上个前端的交接文档 感觉真的不错