好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基于VC++的SEGY数据格式地震剖面图绘制.docx

8页
  • 卖家[上传人]:ss****gk
  • 文档编号:234315427
  • 上传时间:2022-01-04
  • 文档格式:DOCX
  • 文档大小:489.08KB
  • / 8 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 基于VC++的SEGY数据格式地震剖面图绘制关键词:地震数据,地震剖面,显示波形图,变密度图I引言地鳶勘探采集的地鳶数据一般以地震道为单位进行组织,采用SEG・Y文件格式存储SEG-Y格式是山SEG (Society of Exploration Geophysicists)提出的标准磁带数据格式之一,它是右油勘探行业地克数据的最为普遍 的格式读取数据后经过处理可以得到有关地下构造和岩性等大量育用信息信息但是原始数据数据最庞 大而且杂乱无章,为了使大最的数据变得直观、易于理解,揭示数据间的内在联系,必须对原始数据经过一系 列变换转换成图形图像,将信息以更容易理解的形式展现出來VC++功能强大、界面友好且操作方便,因此 H前PC机上通常在VOF+环境下对这种格式存放地震勘探数据进行处理并实现可视化显示笔者■在做地震 数据可视化时利用VC++6.0编写了地馬数据的读取处理程序及绘图程序2读取SEG-Y数据2.1 SEG-Y格式地馬数据的文件结构[1,2]标准的SEG-Y文件结构如表I所示:前3600字表1 标准SEG-Y文件组织结构文件头ms体3200字节串文件头400 字节制文 件头第1道(240 字节)第1道(锂采样点节)Wit(240 字节)war采样点节)节为文件头通常被看做一个整体,紧跟其后的是数据体。

      非标准的SEG-Y文件可能没有前3600字节的文件 头文件头有3600字节分为两部分,第一部分长度为3200字节,以EBCDIC编码记录地鳶数据采集系统的有关 信息共有40行,毎行长度为80个字节,毎个字节表示一个字符‘EBCDIC码需先转化成ASCII码,才能在微 机中正确显示第二部分为二进制格式,长度400字节,数据类型为32位或16位的整型,记录数据体信息,如 每道的采样点数、采样率、数据格式等[3]数据体山多个数据道组成毎道数据分道头、道数据两部分道头是二进制数据,长度240字节,数据类型:32 位或16位的整型,记录采样点数、采样间隔、共深度采集点CDP(Common Depth Point)号、XLine号、YLine 号以及坐标信息等地震道的数据长度为采样点数x4个字节工作站SEG-Y数据的存储格式一般为TBM 格式,微机处理的SEG-Y数据存储格式一般为IEEE格式通过读取二进制文件头中第3225〜3226字节存 储的信息可以判定数据的存储类型2.2读取地震数据地憲数据的正确读取是数据处理的前提,任何一位参数的偏差都可能导致報SEG-Y数据文件出现内部参数 矛盾而无法进行数据解读。

      了解SEG-Y格式地恚数据的文件结构后对读取位置定位,读取完成存储为后血 的处理作准备微机版和工作站版SEG-Y数据结构一样,但是数据的存储格式不同,微机中的数据是低字节 在前,高字节在后在微机的操作系统环境下,对SEG-Y格式的数据进行处理时,首先必须对数据进行高位、 低位互换处理读取SEG-Y数据用到的类如下:在程序中定义了 2个结构体:ST_rcal_info和ST_tracc_info;||ij7i用來定义 SEGY卷头文件中400字节数据信息代表的变最,后者用來定义道头文件中头240个字节数据信息代表的变 最定义了读取SEG-Y数据的类CReadSegyDala,±要功能有:Ebcdic2Ascll ()完成EBCDIC码向ASCLL码 的转换;ibm _lo_ iloal ()^成地震数据IBM格式向IEEE数据格式转换;GelRealVar()完成卷头信息的读 出;GetOneTraceInfo()完成道头数据的读出;GetOneTraceData()完成道数据的读出等读道头和道数据时先要判断文件按令无文件头,如果令则第N道道头和道数据读取位置分别为: info_pos=3600+(N-1)(240 +SampleNum*DataSize)dala_pos=3600+(N -1)( 240+SampleNum*DalaSize)+240其中SampleNum是采样点数QataSize是一个数据点所占的字节数。

      如果没有卷头,则上面的式子中就没有 3600.读文件时用fscck()定位,用fwad()读取读完后判断SEG-Y格式,如果是IBM格式则必须要转化3地震的剖面显示图1 绘图参数设置对话框常见的地震剖面显示方式有波形显示、变面积显示和变密度显示,其中变面积显示又有三种方式:波形变面积 显示、单极性显示和双极性显示[3]图1是绘图参数设置对话框,可以根据显示的需要对各种参数进行设置, 比如道与道之间的间隔nTrnccIntcrval和采样点之间的间隔nTimcIrucrval、起始道m_StartTracc和终止道 m_EndTracc、起始时间m_StartTimc和终止时间m_EndTime等为类型设定组合框中的四个单选按钮添加 变最m_DrawOption,项H创建后系统fl动为我们创建了主框架CMainFrame类、应用程序App类,文档Doc 类和视图View类,在视图View类的实现文件中添加单击消息处理函数,单击波形图单选框则将 m_DrawOption赋值I,单击波形加面枳则将其赋值2,绘制波形图的函数DrawWaveArea()>绘制波形加面枳 的函数Draw Wave Area()>绘制双极性的函数DrawChromatoGraphO和绘制变密度的函数DrawVarDensityO 也在View类中,在绘图时对m_Draw Option值做判断,如果为1,则调用DrawGraphWaveO函数绘制波形图, 如果为2则调用DrawWaveAreaO函数绘制波形加面积图,依次类推。

      在Windows操作系统下,绝大多数具备图形界面的应用程序都离不开图形设备接口 GDI(Graphics Device Interface),®们利用GDI所提供的众多函数就可以方便的在屏幕、打印机及其它输出设备上输出图形在 GDI+模式下编程要gdiplus.dll动态链接库的支持,将其复制到程序当前日录,在应用程序App类中添加头文 件gdiptus.h,库文件#pragram comrnent(lib,uGdiplus.lib,,),if加成员变量保存GDI+初始化后在应用程序中的标 识,重载初始化函数和修改退出函数3.1绘制波形图地震数据值记录了反射波在检波点离平衡位置的振动情况,它的大小代表了振幅的强弱,正负表示了振动的 方向波形图楚将多道地震数据在一个平面内以曲线的形式表示出來波形图能够清晰的反应反射波的动 力学特征(如振幅、频率和波形等)图形区域与离客户区域左右边界的距离sx,sy道数据储存在数组onc_tracc_data中,则第i道第j个采样点的 横坐标位置 X=sx+i*nTraceInterval+one_trace_data[j],纵坐标位置 Y=sy+t*nTiineInterval,下一个采样点的横坐 标位置 X= sx+i*nTraceInte rval+one_lrace_data[j+1 ],纵坐标位置 Y= sy+(t+1)*nTime Interval,先根据起始时间 和终止时间循环读取一道数据,确定坐标(X,Y)后依次连接起來,得到一道数据的波形图,再根据起始道和终止 道循环读取并绘制每一道。

      如果时间间隔变人,右接将点与点相连曲线就变得不光滑看起來像折线,可以绘制贝塞尔Illi线來改善贝赛尔 曲线是一种以逼近为基础的参数多项式曲线,曲线逼近实际上是一种插值行为GDI+的 Graphics 类提供 f 绘制贝塞尔 |11| 线的函数:G raph ics::D rawBeziers( Pen * pen,PointF*points, INT count), 该函数有三个参数:指向训笔的指针、存储控制点坐标的数组和坐标的个数我们只需将地慮数据分组,将该 纽数据点对应的坐标作为控制点存放在数纽中,实例化一个Graphics对象和Pen对象后,调用该函数并传递参 数,则宙内部封闭的算法來自己完成贝赛尔(Bczie「川I线的绘制图2是绘制出來的地震剖面波形图,从图中町以看出地震数据分布情况以及偏离平衡位置的程度,从而了解 不同深度地震波的振动情况图2波形图的绘制3.2绘制变面积图在一系列地震道中,同一反射波的相同相位在相邻地震道上的到达时间是相近的,毎道记录的振幅也是相似 的,因此相邻地震道之间波形相似,波峰比较靠近波峰在地震剖面上相互盜套成串,一连串的波峰组成一条 线,形成同相轴°同相轴具有…共特点,如振幅显著增强、相邻道波形特征相似等。

      可以根据同相轴的这些特 点來识别地震层位[4]变面积图就是为了更好地表现同相轴,在绘制时通常将地震数据正值区域或负值区域 用特定的颜色來填充变面积显示有波形加血积、正极性、双极性显示这几种方式假设平衡位冒的右侧为正值区域,左侧为负值 区域波形加面积是对正值区域进行填充,负值区域以曲线表示;正极性是将正值区域填充,负值和零值区域 不做处理;双极性显示是将波峰和波谷分别填充不同的颜色DetaCi+1]图3 相邻数据点连线与平窝位置关系 填充的关键是要判断数据点与平衡位置的关系以及相邻数据点之间的关系图3波形中10个特殊点详细的 表现了它们之间的关系:第一种情况是相邻两点一个在平衡位置一个不在平衡位置,这样只需从不为0的点向平衡位置作垂线,垂足 与这两个点组成一个三角形第二种情况是一个点为正值一个点为负值,两点连线与平衡位置有个交点P, 同样分别作垂线,垂足、数据点和交点组成2个三角形第三种情况是相邻两点在平衡位置同一侧,分别作垂 线后两点与垂足之间用成一个梯形第四种情况两点都在平衡位置,这样不需要作处理在绘制波形变血积图或正极性图时,如呆二角形或梯形在平衡位實的右侧则将具填充,在左侧时不处理。

      在绘 制双极性图的时候才将处于平衡位置左侧的三角形或梯形填上与右侧不同的颜色GDI+的Graphics类为我们提供了绘制提供了区域填充的方法Graphics::FillPolygon(Bi-ush*brush,PointF*points,INT count,FillMode fillMode),创建一个 Graphics 和 Brush 对彖,顶点一般只有三个或 4 个而且摆 放是规则的,故ALTERNATE和WINDING两个填充模式效果一样将上面求得的多边形的顶点存在一个数 纽中,向函数传递参数,则可完成面积图的绘制a) 波形变面积显示r -L2030300(b) 正极性显示(c) 双极性显示图4 三种面积图图4是填充后绘制出來的三种面积图,从图中可以清晰的表现出自同一界面反射波的同相轴,大致反映层位 的基本走向3.3绘制变密度图变密度图是利用不同的颜色來表示地震数据的大小,用一个连续变化的彩色谱表示地震数据的不同振幅方 法是依据显示比例以采样点为中心画小矩形进行区域填充,根据该样点值的大小进行着色填充变密度图的关键是对颜色进行分级可以自己定义瑕大正振幅、故大负振幅和裟值是对应的颜色,数值从最 大到零时从一种颜色逐渐过渡到另一种颜色。

      以正值为例:设地震数据最大正值为MaxRight,如果最大正振 幅对应的颜色为(r 1 ,gl,b 1),零值对应的颜色为(2g2,b2),则当前数据Data[i]所对应颜色的红色分量I-r2-Data[i]*(r2-r I )/MaxRight,绿色分量 g=r2-Data[i]*(g2-g 1 )/MaxRight,蓝色分量b=b2-Data[i] *(b2-bl )/Max R igh l,。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.