基于C语言的地震数据接口开发实验的实现
2024-07-05
来源:步旅网
学科探索 Dtsciplines Exploration 基于C语言的地震数据接口开发实验的实现 单刚 ¨乜 韩立国n 张丽华 ([1]吉林大学地球探测科学与技术学院 吉林·长春[2]吉林大学现代地球物理数据处理中心摘要130026; 130026) 吉林·长春地震数据是地震采集系统把接收到的地震波在介质中传播过程中的信息记录下来的一种数据形式。本文通 过C语言编程实现了两种不同数据格式的转换,在实验教学环节帮助学生加深对地震数据的理解,提高学生编程的能 力,并有助于学生提高开发研究地震数据处理技术。 关键词地震数据地震采集系统C语言实验教学 文献标识码:A DOI:10.16400 ̄.cnki.kjdks.2018.01.020 中图分类号:TP312 Realization of Development Experiment of Seismic Data Interface Based on C Language SHAN Gangyi ,HAN Liguo[1】,ZHANG Lihuan ([1]School of Geodesy Science and Technology,Jilin University,Changchun,Jilin 1 30026; [2]Modem Geophysical Data Processing Center,Jilin Universiy,Changchun,Jitlin 1 30026) Abstract Seismic data is a form of data recorded by the seismic acquisition system in the process of receiving the seismic waves propagating in the medium.This article through the C language programming to achieve two diferent data format con— version in the experimental teaching session to help students deepen the understanding of seismic data and improve students’ ability to program,and help students to improve the research and development of seismic data processing technology. Keywords seismic data;earthquake acquisition system;C Language;experimental teaching 0引言 (1)运行Makeadvance命令创建学生开发实验目录结构 (2)以本文开发实验目录结构为例,运行下列命令:cd/ home/promardsoft/promax5000/ProMAX/port/src/exe 地震数据是地震勘探过程中把采集到的信号保存下来的一 种数据形式。“ 国际上通用的地震数据格式是SEG.Y格式, 是SEG学会制定的标准SEG—Y地震数据记录格式,不是按照 SEG学会制定的格式记录的SEG.Y地震数据称为非标准SEG. 实验目录转到上面所列目录下。 (3)本实验包括c语言主程序(CSTinput.c)、主程序菜单 Y地震数据格式。从各自软件平台开发环节开始,不同的地震 (CSTinput.menu)、CGG内部数据说明头文件(CSTinput.h、 a.h)等内容,主程序内容包括如下: 数据处理平台拥有各自的内部地震数据格式。本文从ProMAX CSTDat软件平台内部地震数据与CGG软件平台内部数据格式的转换 出发, 设计开发了基于C语言 的地震数据接口开发实验,通 最 f 量 过本实验的编写实现可以帮助学生更好地理解地震数据结 构。 。。。 。≠≠ifndefRCS C H #define RCS C H #include”sccsinc/silent running.h’’ static const char*rcsid=”ProM^X¥Id: SEPinput.C.V 1实验编译环境 账户,在C shell环境变量文件.csrc中增加下列变量:h setenv PROMAXHOME/ProMAX 20031.5 2001/06/25 07:40:06 build Exp¥¥Revision:20031.5¥¥ 本实验在linux5.6 64位操作系统下进行。…。 先登录学生 Date:2001/06/25 07:40:06¥”: #include”sccsinc/normal running.h” #endif/*RCS C H / #include<stdio.h> set path=(¥path¥PROMAXHOME/sys/bin¥PROMAX_HOME/port/bin) alias gmake’/usr/bin/make-I¥PROMAXHOME/port/in- #include<stdlib_h> #include<math.h> #include<fcntl-h> clude/make’ alias Makeexec’¥PROMAXHOME/port/bin/Makeexec—I S _#include”cgloba1.h” PROMAXHOME/port/include/make’ _#include”cpromax.h” #include”cSocketToo1.h” #include”CSTinput.h” #include”CSTData.h” 2实验步骤 实验环境搭建好后,重新登录学生账户按下列实验步骤进 行程序编译: 44 2018年/第1期/1月r上j 学科探索 Disciplines Exploration 脚e嚏 _ m_n■ 脚 L f l II l『 Assuming/soft/promax5908/ProHAX/tlnux64/llb/1lbCfortran.so 1s up—t0-date ASsumlng/soft,promaxseee/ProH^x/ lnux64/lIb/11betspack.so 1s up·to·date Assumlng/SOlt/promax5OOOIProMAXIllnux64/l1bitIbmaxut11.SO ls up—tO·date ASSumlng/soft/promax5ORe/ProHAXItXnux64/ltbltlh*ultithread.so 1s up-to—date Assumlng/solt/promax5608/ProHAX/ ̄lnux64/llb/llbpagef1Le.so 1s up·to·date Assumlr ̄/SOft/promax58Oe/ProXAX/ inux64/llb/ tbpropath.so is up·to-date Assuming/soft/promax5OSe/Pro ̄AX/ lnux64, 1b, IOpvm.so Is up·to-date Assumlng/sott/promax58Oe/ProHAX/llnux6411lb/ lbuiut1ls.so 1s up·tO·date AnS1 C ComP1l1nq CST1nput.c {l r1 {l 】J l l Ansi C ColP1l1n口CSTOata.c CSTread : j一l /home/promax/soft/Promax5OOe/PrOMAX/port/Src/exe/CST1nput/csTData.c:In function I /home/pfomax/soft,promax58OO/ProMAX/port/src/exe/CS1i put/csTOata,c:139:wafnIng{i :lncompatlble Imp1Icit declaratIon of bullt·In function memcpy :1rlcompat1ble imp1lcit decIarat1on of Uu1It·1n fUrCCt10n nte ̄tset’ 。CSTwrlte : ll} I l /home/promax/soft/promax50es/ProMAX/port/src/exe,csTinput/csT0ata.c:148:warnlng1 l /home/prosax/soft/promax5686/ProHAX/port/src,exe,csT1nput/csTData.c:In funct1on{l /home/promax/solt/promaxSOOO/ProMAX/port/Src/exe/CSTlnput/CSTData.c:153:warnlngl{ :lncompatible lmp1Icit dec arat1on of bullt·in functton。memset’ :lncompatlble Impllclt dectaration of bullt—ln funct1on。memcpy’ Linklnq/hoir ̄e/promax/soft/promax5808/ProHAX/l1nux64/exe/CSTlnput.exe 5 1 I}l /home/promax/soft/promaxSOOO/ProRAX/port/src,exe/csT1nPut,csTData.c:154:warntng J fpromax ̄dell5 CSTlnputls m 一】 图1 int iCompareFun(const void a。const void b) 图2、图3地震数据显示,两种地震数据显示保持一致,进 一{ retum*((int*)a) ((int )b); } main(int ac,char av) { int ij.nth; char primaryKeym]secondaryKey ,步验证该开发实验的准确性。 通讯作者:张丽华 ★基金项目:国家863计划课题:金属矿多波地震资料处 理解释新技术、新方法(2006AA062108)资助 参考文献 …1 何樵髓,熊维纲.应用地球物理教程一地震勘探[M] 地质出版社,1991:82-89. [2】王增波,李雁鸿,赵剑等.SEGY-Y地震数据格式解析及转换方法[J】.物探装 备。2012-22(3):177-182 [3】刘继承,姚亮.基于Vc++的SEGY数据格式地震剖面图绘制[J].计算机应 用。2012.31(3):24-28. int iProHead,*iProHeadX,*iCggHead; int iProHeadtmp; loat tracetfmp,*rProHeadtmp; [4]SEG web site:http://www.seg.org/下载SEG Y标准rev O、rcv 1. } [5】ProMAX5000随机帮助文档:ProMAX Developers Programming Guide. 【6]谭浩强.C程序设计【M】.清华大学出版社,1991. [7]罗福龙.地震数据存储技术综述[J1.石油仪器。2006.20(3):1-6. [8]马承杰.地震数据访问技术研究[J].石油工业计算机应用,2005.23(4):5-8. [9】杨红霞,赵改善.21世纪的地震数据处理系统【J】_石油物探,2001.40(4): l25—140. 把该程序拷到实验步骤2中所列实验目录下。 (4)运行下列命令:gmake language=C,执行完以后,程序 编译执行成功后当前终端会返回下列信息:(见图1) 表示编译执行成功生成可执行文件CSTinput.exe文件,就 【10】Charles C Mosher等.可扩展的地震数据并行处理【J].石油物探译丛,1997 可以把该文件拷到目录/ProMAX/linux64/exe下集成到Pro- (4):l2.I7. MAX软件平台上去。 (5)开发实验主程序菜单(CSTinput.menu)分别拷到/Pro— MAX/port/menu/promax和/ProMAX/port/menu/promax2d两个 目录下,这样在ProMAX软件平台就可以运行开发实验了。 [1l】邢如意.Linux系统下计算机c语言的编程技巧分析[J】.电脑知识与技术, 2014.10(36):8674—8675. n2]李俊玲.浅谈Linux操作系统下的C程序开发[J].中国科技财富2012.5(5):314. [13】王晓明.计算机C语言编辑程序探讨[J].长春教育学院学报,2014.30(5): l45.146. 3实验效果分析 在ProMAX软件平台运行CSTinput读取CGG内部地震 [14】余勃,王捷.浅谈C语言编程技巧在C语言学习中的应用[J】_信息通信, 2013.7(7):1O8. 【15]张锦涛.Linux系统下的语言编程技巧探析[J]_电脑编程技巧与维护,2012.20 (Ol9):l0 11. 数据格式并与传统读取地震数据方式显示对比(图2、图3): 图2开发实验显示 图3传统显示 2018年/第1期/1月r上J 45