CN109426500B - 基于su软件包绘制十进制采样点的方法及系统 - Google Patents
基于su软件包绘制十进制采样点的方法及系统 Download PDFInfo
- Publication number
- CN109426500B CN109426500B CN201710492373.9A CN201710492373A CN109426500B CN 109426500 B CN109426500 B CN 109426500B CN 201710492373 A CN201710492373 A CN 201710492373A CN 109426500 B CN109426500 B CN 109426500B
- Authority
- CN
- China
- Prior art keywords
- blocks
- function
- windows
- software package
- equal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/206—Drawing of charts or graphs
Abstract
本发明提出了一种基于SU软件包绘制十进制采样点的方法及系统,该方法包括:获取X‑Windows绘图库函数的结构体定义中点的大小范围k;判断地震数据量n是否大于k;如果n>k,设定整型阈值a,把地震数据量n分块,块的个数用整型m表示,m=n/a;针对每个块依次进行绘制图像。本发明提出了一种能使SU软件包用X‑Windows绘制大数据的方法,通过分析X‑Windows绘图函数对点个数范围大小的限制,采用把大数据分成块的方法,使每个块内点的个数满足X‑Windows绘图函数要求,从而成功按照数据块绘制图像。
Description
技术领域
本发明属于地震勘探方法技术领域,具体涉及基于SU(Seismic Unix)软件包绘制十进制采样点的方法及系统,可以运用于处理、解释软件系统中,甚至也可以适于煤田、固体矿产等工程地质勘探领域软件中。
背景技术
随着地震勘探技术的发展,采集的地震数据也越来越大。地震处理人员经常需要分析数据量大的地震信息。Seismic Unix软件包有部分数据绘图的图形工具,可在X-Windows环境下在屏幕上显示,具有操作方便的特点。但是由于X-Windows的绘图库函数中,对点个数的定义是整型,限制了图像显示的大小。
因此,为了方便用户使用SU软件包,更好的开展地球物理学科研究,有必要针对X-Windows绘图库函数进行改进。
发明内容
本发明是为了让SU软件包能够用X-Windows绘制大数据图像,不再受数据大小的限制。
根据本发明的一个方面,提供一种基于SU软件包绘制十进制采样点的方法,包括:
获取X-Windows绘图库函数的结构体定义中点的大小范围k;
判断地震数据量n是否大于k;
如果n>k,设定整型阈值a,把地震数据量n分块,块的个数用整型m表示,m=n/a;
针对每个块依次进行绘制图像。
进一步地,如果n≤k,则直接调用X-Windows的绘图函数。
进一步地,设置a≤k,且使得块的个数m≤k。
进一步地,利用SU软件包的Ximage类变密度显示二进制数据,并转成十进制采样点文件。
进一步地,将针对每个块依次进行绘制图像的过程编译生成画图库函数,在Makefile里链接所述画图库函数,然后编译生成可执行绘图函数。
进一步地,所述可执行绘图函数存在Seismic Unix软件包的bin目录下。
根据本发明的另一方面,提供一种基于SU软件包绘制十进制采样点的系统,包括:
存储器,存储有计算机可执行指令;
处理器,所述处理器运行所述存储器中的计算机可执行指令,执行以下步骤:
获取X-Windows绘图库函数的结构体定义中点的大小范围k;
判断地震数据量n是否大于k;
如果n>k,设定整型阈值a,把地震数据量n分块,块的个数用整型m表示,m=n/a;
针对每个块依次进行绘制图像。
本发明提出了一种能使SU软件包用X-Windows绘制大数据的方法,通过分析X-Windows绘图函数对点个数范围大小的限制,采用把大数据分成块的方法,使每个块内点的个数满足X-Windows绘图函数要求,从而成功按照数据块绘制图像。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了本发明的方法流程图。
图2地震剖面图和十进制采样点图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
为了基于su软件包在X-Windows环境下绘制大数据量的十进制采样点文件,本发明通过分析数据结构和编程语言特点,避免X-Windows绘图函数对点个数范围大小的限制,采用把大数据分成块的方法,使每个块内点的个数满足X-Windows绘图函数要求,从而成功按照数据块绘制图像。本发明可以应用于处理、解释软件系统中,提高绘图效率。
根据本发明的一个方面,如图1所示,提供一种基于SU软件包绘制十进制采样点的方法,包括:
获取X-Windows绘图库函数的结构体定义中点的大小范围k;
判断地震数据量n是否大于k;
如果n>k,设定整型阈值a,把地震数据量n分块,块的个数用整型m表示,m=n/a;
针对每个块依次进行绘制图像。
进一步地,如果n≤k,则直接调用X-Windows的绘图函数。
进一步地,设置a≤k,且使得块的个数m≤k。
从X-Windows的头文件Xlib.h中可知,绘图函数的结构体定义中,点的大小都是短整型。C语言规定,整型一般在内存中占16位,大小的范围是-2(16-1)~2(16-1),即-32768~32767。那么绘图时,最多的点数不能超过32767个。以SU软件包中库文件drawcurve为例,来说明绘制数据量大的图像。该库文件调用了X-Windows里的XDrawPoints函数,该函数的定义为:
其中npoints为曲线点的总个数。地震数据量的个数用n表示,当n>32767时,就不能直接调用xDrawCurve函数,否则出错。
根据本发明的实施方式,用Seismic Unix软件包绘制大数据图的实现步骤如下:
首先,编写画图库函数。
在函数参数中定义ncurve为曲线点的总个数。地震数据量的个数用n表示,当n>32767时,就不能直接调用xDrawCurve函数,否则出错。采用把n分块的方法,进行处理。C语言数据类型中,最大数据存储时占用32位,取值范围是-2(32-1)~2(32-1)。
设定一个整型阈值a,用来把n分块,块的个数用整型m表示,m=n/a。其中a≤215,a不要设定太小,防止m>215。在绘制图像前,对n分块,然后对每个块依次进行绘制图像。
算法如下:
然后编译,生成新的画图库函数。
接下来,编写绘图函数。
利用SU软件包的Ximage类变密度显示二进制数据,并转换成十进制,把十进制采样点文件作为参数。画图函数读取十进制采样点文件,把采样点保存在数组中。在Makefile里链接上个步骤生成的画图库函数。然后编译生成新的可执行绘图函数。把生成的执行代码放在Seismic Unix软件包的bin目录下。
根据本发明的另一方面,提供一种基于SU软件包绘制十进制采样点的系统,包括:
存储器,存储有计算机可执行指令;
处理器,所述处理器运行所述存储器中的计算机可执行指令,执行以下步骤:
获取X-Windows绘图库函数的结构体定义中点的大小范围k;
判断地震数据量n是否大于k;
如果n>k,设定整型阈值a,把地震数据量n分块,块的个数用整型m表示,m=n/a;
针对每个块依次进行绘制图像。
为便于理解本发明实施例的方案及其效果,以下给出一个具体应用示例。本领域技术人员应理解,该示例仅为了便于理解本发明,其任何具体细节并非意在以任何方式限制本发明。
Seismic Unix绘图功能函数有好几个,在本实施例中选择ximage绘图命令为例说明。
本实施例的方法具体实施步骤为:
编写画图库函数,编译生成新的画图库函数lib_draw.a。
编写绘图函数,编译生成新的执行程序ximage_new。
选用一个二进制地震剖面裸数据和一个十进制的采样点文件绘图,效果如图2所示。
本发明提出了一种能使SU软件包用X-Windows绘制大数据的方法,通过分析X-Windows绘图函数对点个数范围大小的限制,采用把大数据分成块的方法,使每个块内点的个数满足X-Windows绘图函数要求,从而成功按照数据块绘制图像。
本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (3)
1.一种基于SU软件包绘制十进制采样点的方法,其特征在于,包括:
获取X-Windows绘图库函数的结构体定义中点的大小范围k;
判断地震数据量n是否大于k;
如果n≤k,则直接调用X-Windows的绘图函数;
如果n>k,设定整型阈值a,把地震数据量n分块,块的个数用整型m表示,m=n/a,其中,设置a≤k,且使得块的个数m≤k;
针对每个块依次进行绘制图像;
将针对每个块依次进行绘制图像的过程编译生成画图库函数,在Makefile里链接所述画图库函数,然后编译生成可执行绘图函数;
利用SU软件包的Ximage类变密度显示二进制数据,并转成十进制采样点文件。
2.根据权利要求1所述的基于SU软件包绘制十进制采样点的方法,其特征在于,所述可执行绘图函数存在Seismic Unix软件包的bin目录下。
3.一种基于SU软件包绘制十进制采样点的系统,其特征在于,包括:
存储器,存储有计算机可执行指令;
处理器,所述处理器运行所述存储器中的计算机可执行指令,执行以下步骤:
获取X-Windows绘图库函数的结构体定义中点的大小范围k;
判断地震数据量n是否大于k;
如果n≤k,则直接调用X-Windows的绘图函数;
如果n>k,设定整型阈值a,把地震数据量n分块,块的个数用整型m表示,m=n/a,其中,设置a≤k,且使得块的个数m≤k;
针对每个块依次进行绘制图像;
将针对每个块依次进行绘制图像的过程编译生成画图库函数,在Makefile里链接所述画图库函数,然后编译生成可执行绘图函数;
利用SU软件包的Ximage类变密度显示二进制数据,并转成十进制采样点文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710492373.9A CN109426500B (zh) | 2017-06-21 | 2017-06-21 | 基于su软件包绘制十进制采样点的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710492373.9A CN109426500B (zh) | 2017-06-21 | 2017-06-21 | 基于su软件包绘制十进制采样点的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109426500A CN109426500A (zh) | 2019-03-05 |
CN109426500B true CN109426500B (zh) | 2022-03-08 |
Family
ID=65497303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710492373.9A Active CN109426500B (zh) | 2017-06-21 | 2017-06-21 | 基于su软件包绘制十进制采样点的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109426500B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101982820A (zh) * | 2010-11-22 | 2011-03-02 | 北京航空航天大学 | 一种大数据量的曲线显示查询方法 |
CN102831577A (zh) * | 2012-08-29 | 2012-12-19 | 电子科技大学 | 基于gpu的二维地震图像的快速缩放方法 |
CN106021567A (zh) * | 2016-05-31 | 2016-10-12 | 中国农业大学 | 一种基于Hadoop的海量矢量数据划分方法及系统 |
CN106570049A (zh) * | 2016-08-20 | 2017-04-19 | 合肥国为电子有限公司 | 一种地质勘探中大数据量的曲线快速绘图方法及其系统 |
EP3163519A1 (en) * | 2015-10-30 | 2017-05-03 | Wipro Limited | Methods for detecting one or more aircraft anomalies and devices thereof |
-
2017
- 2017-06-21 CN CN201710492373.9A patent/CN109426500B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101982820A (zh) * | 2010-11-22 | 2011-03-02 | 北京航空航天大学 | 一种大数据量的曲线显示查询方法 |
CN102831577A (zh) * | 2012-08-29 | 2012-12-19 | 电子科技大学 | 基于gpu的二维地震图像的快速缩放方法 |
EP3163519A1 (en) * | 2015-10-30 | 2017-05-03 | Wipro Limited | Methods for detecting one or more aircraft anomalies and devices thereof |
CN106021567A (zh) * | 2016-05-31 | 2016-10-12 | 中国农业大学 | 一种基于Hadoop的海量矢量数据划分方法及系统 |
CN106570049A (zh) * | 2016-08-20 | 2017-04-19 | 合肥国为电子有限公司 | 一种地质勘探中大数据量的曲线快速绘图方法及其系统 |
Non-Patent Citations (1)
Title |
---|
核桃的博客.seismic unix 基本操作.《新浪博客,原文链接:http://blog.sina.com.cn/s/blog_4a7322eb0101buwl.html 》.2013, * |
Also Published As
Publication number | Publication date |
---|---|
CN109426500A (zh) | 2019-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096338B (zh) | 智能合约执行方法、装置、设备及介质 | |
Laganiere | OpenCV computer vision application programming cookbook second edition | |
US8972960B2 (en) | Optimization of an application to reduce local memory usage | |
US20160012350A1 (en) | Interoperable machine learning platform | |
US20200334083A1 (en) | Method, a device, and a computer program product for determining a resource required for executing a code segment | |
US9098292B1 (en) | Automatic generation of an optimized arrangement for a model and optimized code based on the model | |
US20190095181A1 (en) | Easy-To-Use Type Of Compile-Time Dependency Injection Method And Device In The Java Platform | |
EP1717719A1 (en) | Application conversion of source data | |
US9268537B1 (en) | Automatic generation of domain-aware phase ordering for effective optimization of code for a model | |
WO2012067803A2 (en) | Map transformation in data parallel code | |
CN110609687A (zh) | 一种编译方法、装置、电子设备和存储介质 | |
CN102591662B (zh) | 一种绘制皮肤图片的方法及装置 | |
CN104572034A (zh) | 一种撤销和/或重做的实现方法和装置 | |
WO2009009138A1 (en) | A programming environment with support for handle and non-handle user-created classes | |
CN108536584B (zh) | 一种基于Sikuli的自动化测试方法 | |
US20150020056A1 (en) | Methods and systems for file processing | |
US11645058B2 (en) | User interface resource file optimization | |
US8769498B2 (en) | Warning of register and storage area assignment errors | |
CN109426500B (zh) | 基于su软件包绘制十进制采样点的方法及系统 | |
CN111949312B (zh) | 数据模块的打包方法、装置、计算机设备和存储介质 | |
US9142184B1 (en) | Speed function module and numerical minimization module for an active contour model | |
Escrivá et al. | OpenCV 4 Computer Vision Application Programming Cookbook: Build complex computer vision applications with OpenCV and C++ | |
US10884719B2 (en) | Dynamic model reflection | |
Ledur et al. | A high-level dsl for geospatial visualizations with multi-core parallelism support | |
CN111459584B (zh) | 页面渲染方法、装置和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |