segy地震数据的读取python_SEGY地震数据格式分析与读写
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地震数据格式分析与读写相关推荐
- matlab的seg是什么,地震数据文件读取——以SEG-Y格式为例
1.引 言 地震勘探是利用地下介质弹性和密度的差异,通过观测和分析大地对人工激发地震波的响应,推断地下岩层的性质和形态的地球物理勘探方法,是钻探前勘测石油与天然气资源的重要手段,在煤田和工程地质勘查. ...
- segy地震数据的读取python_Python-segy格式地震资料segyio读写包说明(二),pythonsegy,数据,学习,笔记...
python segy格式地震数据读写包segyio学习笔记(二) 最近大致搞明白了segyio读取叠后和叠前segy数据的方法,以及内部存储结构,以两段代码为例: 叠后数据读取.这是一个从给定时窗内 ...
- matlab地震处理小程序,地震数据处理程序-matlab Matlab地震处理小程序 - 下载 - 搜珍网...
文件名大小更新时间 94254010S4M\S4M\Geophysics_2.01\@struct\abs.m2912006-07-02 94254010S4M\S4M\Geophysics_2.01 ...
- livechart 只显示 y 值_基于Python语言的SEGY格式地震数据读取与显示编程
敬请关注<地学新视野> 摘要:本文简单介绍了SEG-Y地震数据文件格式,以及如何用Python语言编写读写SEG-Y格式的地震数据并绘制地震剖面,其中用到了Segyio和matplotli ...
- 计算机与地震论文,地震数据论文,关于地震处理技术新进展相关参考文献资料-免费论文范文...
导读:本论文是一篇免费优秀的关于地震数据论文范文资料,可用于相关论文写作参考. (胜利石油管理局, 山东 东营 257000) 摘 要:近年来科学技术的发展,尤其是先进的计算机技术和计算技术应用于地震 ...
- 地震数据SEGY格式介绍及其查看分析(附示例地震数据)
SEGY简介 segy指的是"segy格式地震数据". 地震数据一般以地震道(trace)为单位进行组织,采用SEG-Y文件格式存储.SEG-Y格式是由SEG (Society o ...
- python segy格式地震数据读写包segyio学习笔记(二)
python segy格式地震数据读写包segyio学习笔记(二) 最近大致搞明白了segyio读取叠后和叠前segy数据的方法,以及内部存储结构,以两段代码为例: 叠后数据读取.这是一个从给定时窗内 ...
- python 读取地震道头数据_python地震数据可视化详解
本文实例为大家分享了python地震数据可视化的具体代码,供大家参考,具体内容如下 准备工作: 在windows10下安装python3.7,下载参考源码到本地. 1. demo绘图测试 demo绘图 ...
- 全球地震数据下载方法
美国地质调查局地震数据 这份数据是美国 1977 年设立USGS 地震灾害计划,由美国地质调查局及其合作伙伴监测和报告地震,评估地震影响和危害,并对地震的成因和影响进行研究. 数据下载网址如下,访问该 ...
- usgs地震记录如何下载_用大叶草绘制USGS地震数据
usgs地震记录如何下载 One of the many services provided by the US Geological Survey (USGS) is the monitoring ...
最新文章
- 谷歌放弃python-老大离开Google,去了Dropbox
- 按ctrl+shift 无法切换输入法了
- 直播预告|灵动MM32 MCU助力全国大学生智能汽车竞赛——基础培训第二讲
- UG NX12.0安装教程
- android——fragment长时间home或者锁屏java.lang.IllegalArgumentException:No view found for id for.......
- 《JavaScript高级程序设计》阅读笔记(五):ECMAScript中的运算符(一)
- C语言、嵌入式重点知识:回调函数
- ?php echo $this-_里面怎么加入图片地址,PHP如何获取图片同时展现在页面上?
- 计算机是如何启动的?(转载)
- CSS显示:内联vs内联块[重复]
- ssh连接局域网内两台主机
- 聚类 6 Affinity Propagation
- java与xml转换 -- XStreamAlias
- HTML5基础学习-表格标签
- plsql 查看表空间使用情况
- 嵌入式ttf字体裁减说明
- 【软件工程】需求分析文档——需求规格说明书
- 项目启动报 myql字符集报错的问题
- php代码实现微信代扣,PHP是如何实现微信H5支付的?
- Excel做曲线拟合