CN107728201B - 一种基于Web的二维地震剖面绘制方法 - Google Patents
一种基于Web的二维地震剖面绘制方法 Download PDFInfo
- Publication number
- CN107728201B CN107728201B CN201710915732.7A CN201710915732A CN107728201B CN 107728201 B CN107728201 B CN 107728201B CN 201710915732 A CN201710915732 A CN 201710915732A CN 107728201 B CN107728201 B CN 107728201B
- Authority
- CN
- China
- Prior art keywords
- drawn
- section
- data
- web
- layer position
- 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
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000005516 engineering process Methods 0.000 claims abstract description 4
- 238000010422 painting Methods 0.000 claims description 38
- 238000005070 sampling Methods 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 14
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000007667 floating Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 5
- 230000009467 reduction Effects 0.000 claims description 4
- 238000009877 rendering Methods 0.000 claims description 4
- 230000009471 action Effects 0.000 claims description 3
- 238000005538 encapsulation Methods 0.000 claims description 3
- 230000007717 exclusion Effects 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 3
- 238000012986 modification Methods 0.000 claims description 3
- 238000012856 packing Methods 0.000 claims description 3
- 238000004321 preservation Methods 0.000 claims description 3
- 230000011218 segmentation Effects 0.000 claims description 3
- 230000026676 system process Effects 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 5
- 238000011017 operating method Methods 0.000 abstract description 2
- 230000018109 developmental process Effects 0.000 description 5
- 241001416181 Axis axis Species 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008140 language development Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 235000013446 pixi Nutrition 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01V—GEOPHYSICS; GRAVITATIONAL MEASUREMENTS; DETECTING MASSES OR OBJECTS; TAGS
- G01V1/00—Seismology; Seismic or acoustic prospecting or detecting
- G01V1/28—Processing seismic data, e.g. for interpretation or for event detection
- G01V1/282—Application of seismic models, synthetic seismograms
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01V—GEOPHYSICS; GRAVITATIONAL MEASUREMENTS; DETECTING MASSES OR OBJECTS; TAGS
- G01V1/00—Seismology; Seismic or acoustic prospecting or detecting
- G01V1/28—Processing seismic data, e.g. for interpretation or for event detection
- G01V1/30—Analysis
- G01V1/301—Analysis for determining seismic cross-sections or geostructures
-
- 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/203—Drawing of straight lines or curves
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01V—GEOPHYSICS; GRAVITATIONAL MEASUREMENTS; DETECTING MASSES OR OBJECTS; TAGS
- G01V2210/00—Details of seismic processing or analysis
- G01V2210/60—Analysis
- G01V2210/64—Geostructures, e.g. in 3D data cubes
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01V—GEOPHYSICS; GRAVITATIONAL MEASUREMENTS; DETECTING MASSES OR OBJECTS; TAGS
- G01V2210/00—Details of seismic processing or analysis
- G01V2210/70—Other details related to processing
- G01V2210/74—Visualisation of seismic data
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Remote Sensing (AREA)
- Life Sciences & Earth Sciences (AREA)
- Theoretical Computer Science (AREA)
- Acoustics & Sound (AREA)
- Environmental & Geological Engineering (AREA)
- Geology (AREA)
- General Life Sciences & Earth Sciences (AREA)
- Geophysics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明的公开了一种基于Web的二维地震剖面绘制方法,使用HTML5、WebGL技术来绘制地震剖面的坐标系、振幅曲线、层位图形三种要素,并通过独立绘制、分层叠加的方式组合成有机整体;用户在底图上横着或竖着切片;在剖面页面上根据用户横切或竖切的相关数据,查询数据库,获取剖面的地震振幅数据,加载数据,绘制地震剖面的坐标系、振幅曲线;用户在剖面页面的振幅曲线图形上绘制层位图形,层位图形是一层层独立绘制,分层叠加的方式显示在剖面页面上的。本发明具有制图高效、准确,操作步骤简单、耗时短、开发效率高的特点。
Description
技术领域
本发明涉及一种二维地震剖面绘制方法,一种基于Web的二维地震剖面绘制方法。
背景技术
在勘探开发领域,每一组地震数据绘制成一条线,形成二维地震数据的剖面,一个地震剖面由很多地震道组成,地震道的位置映射到X轴,地震波双向传播时间或者深度映射到Y轴;如果Y轴是时间信息,就称为时间域剖面;如果Y轴的时间信息转换成了深度,就称为深度域剖面;地震解释人员可以通过解释地震剖面建立地层格架,分析地下构造形态,了解地质时期的自然环境,进而预测油气成藏的有利位置。
传统的勘探开发软件采用客户端/服务器(C/S)架构软件,使用Java、Qt、C/C++等开发语言开发,基于GDI、OpenGL等接口,在一个画布(canvas)上绘制二维剖面。本发明描述的系统采用浏览器/服务器(B/S)架构软件,使用Javascript语言开发,基于WebGL接口,将二维剖面的多种要素独立绘制、分层叠加,这种新的架构和实现方式不仅降低了要素间耦合性和错误的扩散范围,而且提升了显示效率。
发明内容
本发明的目的在于,针对现有技术的不足,提供一种基于Web的二维地震剖面绘制方法,该方法使用浏览器HTML5、WebGL技术来绘制地震剖面坐标系、Wiggle曲线和层位三种要素,并通过独立绘制、分层叠加的方式组合成有机整体。
本发明采用的技术方案如下。
一种基于Web的二维地震剖面绘制方法,包括下列步骤。
步骤1:在底图页面上绘制底图;
步骤2:用户在底图上横着或竖着切片;在剖面页面上根据用户横着切片或竖着切片获得的工区、测线数据,查询MySQL数据库,获取剖面的地震振幅数据,加载该数据,在剖面页面上绘制地震剖面的坐标系、振幅曲线;
步骤3:用户在剖面页面的振幅曲线图形上绘制层位图形,层位图形是一层层独立绘制,分层叠加的方式显示在剖面页面上的,形成基于Web的二维地震剖面。
进一步,绘制底图包括如下步骤:
1)加载文档对象模型;
2)选择渲染器画布;
3)初始化全局变量、容器;
4)根据当前绘制的工区号加载工区数据、绘制工区图形;
5)根据当前绘制的工区号加载层位数据、更新层位栏;
6)绘制坐标轴;
7)对坐标轴和工区、层位画布进行居中偏移。
进一步,在地震剖面页面上绘制坐标系、振幅曲线、层位图形时,均基于画布进行绘制,绘制流程为:
1)创建画布;
2)获取剖面的地震振幅数据;
3)在画布上绘制点、线、面、颜色。
进一步,在地震剖面页面上绘制坐标系、振幅曲线、层位图形时,通过分层画布绘制,减少单个画布中的内容,降低重绘成本。
进一步,绘制地震剖面的坐标系的流程分为三步:
1)设置坐标轴数据,初始化变量;
2)构建剖面图形,将图像添加到对象的容器中;
3)在根级容器中添加上一步返回的容器,并进行渲染绘制。
进一步,为了实现坐标轴的动态生成,坐标轴分为x轴和y轴,分别封装成类XCoordinate和YCoordinate。
进一步,为了实现坐标轴的动态生成,绘制坐标系流程:
1)绘制坐标轴轴主轴;
2)计算坐标轴锚点和间隔;
3)从锚点开始,将坐标轴按对应间隔进行分段;
4)在每个分段上标注刻度;在刻度旁创建数字;
5)坐标轴偏移,在创建坐标轴后,根据预设的偏移量加上自身的宽度进行偏移,避免相互遮挡;
6)缩放坐标系时,重新计算坐标轴描点、间隔,并重新绘制。
进一步,绘制的坐标系与剖面属于平级关系,分别绘制到不同的画布上;容器是存放图形对象的容器集合,可以对其包含的图形对象进行统一的操作;容器之间可以嵌套;根级容器不属于其他容器,将直接作为参数传入进行绘制。
进一步,渲染器绘制后,包含的图形将在画布中显示。
进一步,地震剖面的振幅曲线的绘制,绘制流程如下:
1)剖面加载文档对象模型;
2)选择渲染器画布;
3)初始化全局变量、容器;
4)根据当前绘制的工区号,当前绘制的方向,当前绘制方向的值,加载相应剖面采样点振幅数据,绘制多边形振幅曲线;
5)根据当前绘制的工区号加载层位数据,绘制层位的表格和层位的图形,层位颜色为表格中设置的颜色;
6)绘制坐标轴;
7)对坐标轴和剖面画布进行居中偏移。
进一步,如权利要求10所述的一种基于Web的二维地震剖面绘制方法,其特征在于:在剖面的振幅曲线绘制中,将一个剖面分成两个部分进行构建:
1)根据散点绘制而成的完整曲线,采用多边形批量连线,提升绘制性能,颜色为黑;
2)根据完整曲线绘制全填充曲线,然后通过掩码进行遮罩实现只显示大于中轴部分的填充曲线;
3)将步骤1和步骤2合成,得到最终曲线。
进一步,剖面的采样算法,根据当前绘制的工区号,当前绘制的方向,当前绘制方向的值获取对应剖面的点数据,点数据以字符串形式存储,需要进行解析和采样,获取二维点从而在页面上进行绘制,采样算法流程:
1)预先批量计算映射后的纵坐标;
2)将字符串按空格切分成一个个字符串类型、内容为浮点数的字段;
3)将字符串字段转换为浮点数;
4)进行横坐标采样,结合纵坐标,构成点对存入数组;
5)返回采样结果数组。
进一步,剖面的采样公式为
let ratio=(end-begin)/(maxSampleTime-minSampleTime);
let_value=begin+(value-minSampleTime)*ratio;
其中:end是最终值;begin是起始值;maxSampleTime是最大采样时间;minSampleTime是最小采样时间;ratio是采样率;value是采样值;_value是剖面最终采样值。
进一步,剖面的层位绘制方法,包括如下步骤:
1)从数据库查询获取层面数据,在层位表格中进行展示;
2)将层位数据进行转换,映射到当前剖面图上形成转换后的层位数据;
3)将转换后的层位数据添加到根级容器中进行渲染绘制;
4)层位的绘制通过三个容器实现,绘制容器存放当前正在绘制的层面图形;
5)层位容器,存放己绘制好的横向(曲线)层位图形;
6)层位点容器,存放己绘制好的纵向(点)层位图形。
进一步,为了减轻前端计算负担,将层位中间点的计算移到后端进行,这种做法同时减少的前后端的通信量,提高了加载速度。
进一步,当在当前层位绘制新的点时,将新曲线添加到draw container中,并执行连线操作。
进一步,当用户绘制完成后,draw container被清空,其中的数据被更新到后台,同时horizonContainer被重绘.
进一步,对于新建的层位,创建惟一的标识符(guid),只有标识符(guid)被激活(active)时才和后台进行通信,在数据库中建立新的层位记录,并得到真正的标识号(id),在获得真正的标识号(id)后,用户才能进行绘制。
进一步,层位的数据共享,底图和剖面通过没有时间限制的数据存储(localStorage)进行数据交换,两者都监听数据变化,在事件触发时从没有时间限制的数据存储(localStorage)中读取数据,执行重绘,交换的存储数据定义如下:update表示是否发生更新,如果数据变化时发现被设置为true,则执行数据更新,进行画面重绘;survey_id表示当前绘制的工区ID;index表示当前绘制的方向,1为inline,2为cdp;value表示当前绘制方向的值。
进一步,层位表格的绘制,通过封装的SlickGrid.js实现,用户对表格的操作事件都被控件接管,由控件进行独立的处理,自定义了选择控件和颜色控件:
(1)选择控件,能够选择表格中层位相应的行,并对该行进行选择和操作,所有的选择控件互斥,即同时只能选中一行,保证了用户同时能够操作的层面的唯一性;
(2)颜色控件,能够弹出系统的颜色选择器,让用户进行颜色选择,在选择后能够实时显示,并能够通过颜色值属性获取到对应的属性代码,在加载层面时,也能够根据颜色代码显示相应的颜色。
进一步,层位的渐变条实现,pixi.js中没有实现渐变功能,通过间接方法进行绘制,通过画布2D的LinearGradient进行实现,然后以该画布作为材质创建sprite,最后再进行渲染;在实现上通过绘制一个矩形,然后设置其为线性渐变,在经过插值后导入sprite绘制而成,通过屏幕自适应算法保证其垂直居中。
进一步,剖面的层位算法的处理流程如下:
层位在数据库horizon_data表对应点记录集合Array=[A1,A2,...AN],记录结构[id,Hi,500,cdp,sample_time,“inline”,has_next];用户激活Hi后,新画的点记录集合Brray=[B1,B2,...BN],记录结构[-2,Hi,500,cdp,sample_time,“inline”,has_next];层位曲线起止点在CDP方向的投影值记录集合Crray=[C1,C2,...CN],记录结构[group,cdp,location],group字段是层位曲线的编号,编号体现了绘制的顺序,如果重叠,用编号大的曲线部分覆盖编号小的;location字段标记该点是曲线的起点还是终点,值设置为字符串“start”、”end”:
(1)遍历Array,根据has_next属性,对曲线进行编号,并且将编号写入Array点记录的属性[id,Hi,500,cdp,sample_time,“inline”,has_next,group],将曲线起止点信息放入Crray;
(2)尝试将Brray简单拆分成多条曲线Drray,保证每条曲线不存在折线的情况,经过处理,得到Drray=[{-2,Hi,500,4,sample_time,“inline”,true},];
(3)将Drray接着第一步的group值继续编号,并且将编号写入Drray点记录的属性[-2,Hi,500,cdp,sample_time,“inline”,has_next,group],将起止点信息放入Crray;
(4)Crray按照CDP值升序排列,相同CDP,如果group有多个值,Crray只保留group最大的点,也就说只保留该CDP值处的最近修改,group第二大的点移入Crray2,用于生成中断节点;
(5)处理重叠部分,生成新的曲线起止点,Crray从左向右遍历,根据需要生成新的[group1,cdp1,”start”]、[group1,cdpN,”end”];
(6)根据Array、Drray、Crray,生成Frray,Crray只是确定了每组曲线的起止点,一组曲线中其他的点要从Array或者Drray中找回来,如果曲线的起止点是virt类型的中断点,还要计算sample_time属性值,处理重叠部分,生成新的曲线起止点,重新生成cArray;
(7)先删除层位Hi在数据库horizon_data表所有记录,再把Frray写入horizon_data表,去除fArray中的重复点,得到gArray。
进一步,剖面的坐标系绘制、振幅曲线绘制、层位图形绘制时,在缩放的时候重新绘制曲线包括下列步骤:
1)通过全局变量记录当前浏览距离中点的偏移量,用于缩放后进行相应的偏移调整;
2)根据保存的位置和缩放量重新计算新的偏移量;
3)设置剖面、层位的偏移量为计算出的偏移量,并重设缩放倍数,进行重绘;
4)根据新的偏移量和缩放量,更改坐标轴的起始点和间隔,进行重绘。
本发明的有益效果是:本发明的使用WebGL技术来绘制地震剖面的坐标系、振幅曲线、层位图形三种要素,并通过独立绘制、分层叠加的方式组合成有机整体;用户在底图上横着或竖着切片;在剖面页面上根据用户横切或竖切的相关数据,查询数据库获取数据,绘制地震剖面的坐标系、振幅曲线;用户在剖面页面的振幅曲线图形上通过鼠标点击、拖动、拉线绘制层位图形,层位图形是一层层独立绘制,分层叠加的方式显示在剖面页面上的曲线图形。本发明具有制图高效、准确,操作步骤简单、耗时短、开发效率高的特点。本发明描述的系统使用浏览器/服务器(B/S)架构,利用浏览器缓存的事件模型,只需要实现捕获事件和事件处理两步,这种新的架构和实现方式不仅极大提升了开发效率,而且优化了用户的操作体验。
附图说明
图1是底图剖面层位的绘制流程图。
具体实施方式
下面,结合附图和实施例对本发明作进一步说明。
实施例1。一种基于Web的二维地震剖面绘制方法,包括下列步骤:
步骤1:在底图页面上绘制底图;
步骤2:用户在底图上横着或竖着切片;在剖面页面上根据用户横着切片或竖着切片获得的工区、测线数据,查询MySQL数据库,获取剖面的地震振幅数据,加载该数据,在剖面页面上绘制地震剖面的坐标系、振幅曲线;地震剖面通常在一屏显示多道的数据,每道地震数据采用一振幅曲线来描述。振幅曲线是由许多小线段组成,线段的顶点的横坐标、纵坐标分别于地震波的振幅、时间相对应,把这些顶点两两相连,即可得到Wiggle曲线。
步骤3:用户在剖面页面的振幅曲线图形上通过鼠标点击、拖动、拉线绘制层位图形,层位图形是一层层独立绘制,分层叠加的方式显示在剖面页面上的,形成基于Web的二维地震剖面。
绘制底图包括如下步骤:
1)加载文档对象模型;
2)选择渲染器画布;
3)初始化全局变量、容器;
4)根据当前绘制的工区号加载工区数据、绘制工区图形;
5)根据当前绘制的工区号加载层位数据、更新层位栏;
6)绘制坐标轴;
7)对坐标轴和工区、层位画布进行居中偏移。
在地震剖面页面上绘制坐标系、振幅曲线、层位图形时,均基于画布进行绘制,绘制流程为:
1)创建画布;
2)获取剖面的地震振幅数据;
3)在画布上绘制点、线、面、颜色。
在地震剖面页面上绘制坐标系、振幅曲线、层位图形时,通过分层画布绘制,每层画布绘制不同部分的内容,减少单个画布中的内容,降低重绘成本。
绘制地震剖面的坐标系的流程分为三步:
1)设置坐标轴数据,初始化变量;
2)构建剖面图形,将图像添加到对象的容器中;
3)在根级容器中添加上一步返回的容器,并进行渲染绘制。
为了实现坐标轴的动态生成,坐标轴分为x轴和y轴,分别封装成类XCoordinate和YCoordinate。
为了实现坐标轴的动态生成,绘制坐标系流程:
1)绘制坐标轴轴主轴;
2)计算坐标轴锚点和间隔;
3)从锚点开始,将坐标轴按对应间隔进行分段;
4)在每个分段上标注刻度;在刻度旁创建数字;
5)坐标轴偏移,在创建坐标轴后,根据预设的偏移量加上自身的宽度进行偏移,避免相互遮挡;
6)缩放坐标系时,重新计算坐标轴描点、间隔,并重新绘制。
绘制的坐标系与剖面属于平级关系,分别绘制到不同的画布上;容器是存放图形对象的容器集合,可以对其包含的图形对象进行统一的操作;容器之间可以嵌套;根级容器不属于其他容器,将直接作为参数传入进行绘制。
渲染器绘制后,包含的图形将在画布中显示。
地震剖面的振幅曲线的绘制,绘制流程如下:
1)剖面加载文档对象模型;
2)选择渲染器画布;
3)初始化全局变量、容器;
4)根据当前绘制的工区号,当前绘制的方向,当前绘制方向的值,加载相应剖面采样点振幅数据,绘制多边形振幅曲线;
5)根据当前绘制的工区号加载层位数据,绘制层位的表格和层位的图形,层位颜色为表格中设置的颜色;
6)绘制坐标轴;
7)对坐标轴和剖面画布进行居中偏移。
在剖面的振幅曲线绘制中,将一个剖面分成两个部分进行构建:
1)根据散点绘制而成的完整曲线,采用多边形批量连线,提升绘制性能,颜色为黑;
2)根据完整曲线绘制全填充曲线,然后通过掩码进行遮罩实现只显示大于中轴部分的填充曲线;
3)将步骤1和步骤2合成,得到最终曲线。
剖面的采样算法,根据当前绘制的工区号,当前绘制的方向,当前绘制方向的值获取对应剖面的点数据,点数据以字符串形式存储,需要进行解析和采样,获取二维点从而在页面上进行绘制,采样算法流程:
1)预先批量计算映射后的纵坐标;
2)将字符串按空格切分成一个个字符串类型、内容为浮点数的字段;
3)将字符串字段转换为浮点数;
4)进行横坐标采样,结合纵坐标,构成点对存入数组;
5)返回采样结果数组。
剖面的采样公式为
let ratio=(end-begin)/(maxSampleTime-minSampleTime);
let_value=begin+(value-minSampleTime)*ratio;
其中:end是最终值;begin是起始值;maxSampleTime是最大采样时间;minSampleTime是最小采样时间;ratio是采样率;value是采样值;_value是剖面最终采样值。
剖面的层位绘制方法,包括如下步骤:
1)从数据库查询获取层面数据,在层位表格中进行展示;
2)将层位数据进行转换,映射到当前剖面图上形成转换后的层位数据;
3)将转换后的层位数据添加到根级容器中进行渲染绘制;
4)层位的绘制通过三个容器实现,绘制容器存放当前正在绘制的层面图形;
5)层位容器,存放己绘制好的横向(曲线)层位图形;
6)层位点容器,存放己绘制好的纵向(点)层位图形。
为了减轻前端计算负担,将层位中间点的计算移到后端进行,这种做法同时减少的前后端的通信量,提高了加载速度。
当在当前层位绘制新的点时,将新曲线添加到绘制容器中,并执行连线操作。
当用户绘制完成后,绘制容器被清空,其中的数据被更新到后台,同时层位容器被重绘。
对于新建的层位,创建惟一的标识符(guid),只有标识符(guid)被激活(active)时才和后台进行通信,在数据库中建立新的层位记录,并得到真正的标识号(id),在获得真正的标识号(id)后,用户才能进行绘制。
层位的数据共享,底图和剖面通过浏览器的存储缓存(localStorage)进行数据交换,实现对层位的数据共享,两者都监听存储数据的变化,在事件触发时从数据存储(localStorage)中读取数据,执行重绘;交换的存储数据定义如下:update表示是否发生更新,如果数据变化发现被设置为真,则执行数据更新,进行画面重绘;survey_id表示当前绘制的工区ID;index表示当前绘制的方向,1为inline,2为cdp;value表示当前绘制方向的值。
层位表格的绘制,通过封装的SlickGrid.js实现,用户对表格的操作事件都被控件接管,由控件进行独立的处理,自定义了选择控件和颜色控件:
(1)选择控件,能够选择表格中层位相应的行,并对该行进行选择和操作,所有的选择控件互斥,即同时只能选中一行,保证了用户同时能够操作的层面的唯一性;
(2)颜色控件,能够弹出系统的颜色选择器,让用户进行颜色选择,在选择后能够实时显示,并能够通过颜色值属性获取到对应的属性代码,在加载层面时,也能够根据颜色代码显示相应的颜色。
剖面的层位算法的处理流程如下:
层位在数据库horizon_data表对应点记录集合Array=[A1,A2,...AN],记录结构[id,Hi,500,cdp,sample_time,“inline”,has_next];用户激活Hi后,新画的点记录集合Brray=[B1,B2,...BN],记录结构[-2,Hi,500,cdp,sample_time,“inline”,has_next];层位曲线起止点在CDP方向的投影值记录集合Crray=[C1,C2,...CN],记录结构[group,cdp,location],group字段是层位曲线的编号,编号体现了绘制的顺序,如果重叠,用编号大的曲线部分覆盖编号小的;location字段标记该点是曲线的起点还是终点,值设置为字符串“start”、”end”:
(1)遍历Array,根据has_next属性,对曲线进行编号,并且将编号写入Array点记录的属性[id,Hi,500,cdp,sample_time,“inline”,has_next,group],将曲线起止点信息放入Crray;
(2)尝试将Brray简单拆分成多条曲线Drray,保证每条曲线不存在折线的情况:
经过处理,得到Drray=[{-2,Hi,500,4,sample_time,“inline”,true},];
(3)将Drray接着第一步的group值继续编号,并且将编号写入Drray点记录的属性[-2,Hi,500,cdp,sample_time,“inline”,has_next,group],将起止点信息放入Crray;
(4)Crray按照CDP值升序排列,相同CDP,如果group有多个值,Crray只保留group最大的点,也就说只保留该CDP值处的最近修改,group第二大的点移入Crray2,用于生成中断节点;
(5)处理重叠部分,生成新的曲线起止点,Crray从左向右遍历,根据需要生成新的[group1,cdp1,”start”]、[group1,cdpN,”end”];
(6)根据Array、Drray、Crray,生成Frray,Crray只是确定了每组曲线的起止点,一组曲线中其他的点要从Array或者Drray中找回来,如果曲线的起止点是virt类型的中断点,还要计算sample_time属性值,处理重叠部分,生成新的曲线起止点,重新生成cArray;
(7)先删除层位Hi在数据库horizon_data表所有记录,再把Frray写入horizon_data表,去除fArray中的重复点,得到gArray。
剖面的坐标系绘制、振幅曲线绘制、层位图形绘制时,在缩放的时候重新绘制曲线包括下列步骤:
1)通过全局变量记录当前浏览距离中点的偏移量,用于缩放后进行相应的偏移调整;
2)根据保存的位置和缩放量重新计算新的偏移量;
3)设置剖面、层位的偏移量为计算出的偏移量,并重设缩放倍数,进行重绘;
4)根据新的偏移量和缩放量,更改坐标轴的起始点和间隔,进行重绘。
以上所列举的实施方式仅供理解本发明之用,并非是对本发明所描述的技术方案的限定,有关领域的普通技术人员,在权利要求所述技术方案的基础上,还可以作出多种变化或变形,所有等同的变化或变形都应涵盖在本发明的权利要求保护范围之内。本发明未详述之处,均为本技术领域技术人员的公知技术。
Claims (17)
1.一种基于Web的二维地震剖面绘制方法,其特征在于,该方法使用浏览器HTML5、WebGL技术来绘制地震剖面坐标系、振幅曲线和层位图形三种要素,并通过独立绘制、分层叠加的方式组合成有机整体,包括下列步骤:
步骤1:在底图页面上绘制底图;
步骤2:用户在底图上横着或竖着切片;在剖面页面上根据用户横着切片或竖着切片获得的工区、测线数据,查询MySQL数据库,获取剖面的地震振幅数据,加载该数据,在剖面页面上绘制地震剖面的坐标系、振幅曲线;
步骤3:用户在剖面页面的振幅曲线图形上通过鼠标点击、拖动、拉线绘制层位图形,层位图形是一层层独立绘制,分层叠加的方式显示在剖面页面上的,形成基于Web的二维地震剖面。
2.如权利要求1所述的一种基于Web的二维地震剖面绘制方法,其特征在于,绘制底图包括如下步骤:
1)加载文档对象模型;
2)选择渲染器画布;
3)初始化全局变量、容器;
4)根据当前绘制的工区号加载工区数据、绘制工区图形;
5)根据当前绘制的工区号加载层位数据、更新层位栏;
6)绘制底图坐标轴;
7)对坐标轴和工区、层位画布进行居中偏移。
3.如权利要求1所述的一种基于Web的二维地震剖面绘制方法,其特征在于:在地震剖面页面上绘制坐标系、振幅曲线、层位图形时,均基于画布进行绘制,绘制流程为:
1)创建画布;
2)获取剖面的地震振幅数据;
3)在画布上绘制点、线、面、颜色。
4.如权利要求3所述的一种基于Web的二维地震剖面绘制方法,其特征在于:在地震剖面页面上绘制坐标系、振幅曲线、层位图形时,通过分层画布绘制,每层画布绘制不同部分的内容,减少单个画布中的内容,降低重绘成本。
5.如权利要求1所述的一种基于Web的二维地震剖面绘制方法,其特征在于:绘制地震剖面的坐标系的流程分为三步:
1)设置坐标轴数据,初始化变量;
2)构建剖面图形,将图像添加到对象的容器中;
3)在根级容器中添加上一步返回的容器,并进行渲染绘制。
6.如权利要求5所述的一种基于Web的二维地震剖面绘制方法,其特征在于:为了实现坐标轴的动态生成,坐标轴分为x轴和y轴,分别封装成类XCoordinate和YCoordinate。
7.如权利要求5所述的一种基于Web的二维地震剖面绘制方法,其特征在于:为了实现坐标轴的动态生成,绘制坐标系流程:
1)绘制坐标轴主轴;
2)计算坐标轴锚点和间隔;
3)从锚点开始,将坐标轴按对应间隔进行分段;
4)在每个分段上标注刻度;在刻度旁创建数字;
5)坐标轴偏移,在创建坐标轴后,根据预设的偏移量加上自身的宽度进行偏移,避免相互遮挡;
6)缩放坐标系时,重新计算坐标轴描点、间隔,并重新绘制。
8.如权利要求5所述的一种基于Web的二维地震剖面绘制方法,其特征在于:绘制的坐标系与剖面属于平级关系,分别绘制到不同的画布上;容器是存放图形对象的容器集合,可以对其包含的图形对象进行统一的操作;容器之间可以嵌套;根级容器不属于其他容器,将直接作为参数传入进行绘制。
9.如权利要求8所述的一种基于Web的二维地震剖面绘制方法,其特征在于:渲染器绘制后,包含的图形将在画布中显示。
10.如权利要求1所述的一种基于Web的二维地震剖面绘制方法,其特征在于:地震剖面的振幅曲线的绘制,绘制流程如下:
1)剖面加载文档对象模型;
2)选择渲染器画布;
3)初始化全局变量、容器;
4)根据当前绘制的工区号,当前绘制的方向,当前绘制方向的值,加载相应剖面采样点振幅数据,绘制多边形振幅曲线;
5)根据当前绘制的工区号加载层位数据,绘制层位的表格和层位的图形,层位颜色为表格中设置的颜色;
6)绘制坐标轴;
7)对坐标轴和剖面画布进行居中偏移。
11.如权利要求10所述的一种基于Web的二维地震剖面绘制方法,其特征在于:在剖面的振幅曲线绘制中,将一个剖面分成两个部分进行构建:
a根据散点绘制而成的完整曲线,采用多边形批量连线,提升绘制性能,颜色为黑;
b根据完整曲线绘制全填充曲线,然后通过掩码进行遮罩实现只显示大于中轴部分的填充曲线;
c将a步骤和b步骤合成,得到最终曲线。
12.如权利要求10所述的一种基于Web的二维地震剖面绘制方法,其特征在于:剖面的采样算法,根据当前绘制的工区号,当前绘制的方向,当前绘制方向的值获取对应剖面的点数据,点数据以字符串形式存储,需要进行解析和采样,获取二维点从而在页面上进行绘制,采样算法流程:
1)预先批量计算映射后的纵坐标;
2)将字符串按空格切分成一个个字符串类型、内容为浮点数的字段;
3)将字符串字段转换为浮点数;
4)进行横坐标采样,结合纵坐标,构成点对存入数组;
5)返回采样结果数组。
13.如权利要求10所述的一种基于Web的二维地震剖面绘制方法,其特征在于:剖面的采样公式为
ratio=(end-begin)/(maxSampleTime-minSampleTime);
_value=begin+(value-minSampleTime)*ratio;
其中:end是最终值;begin是起始值;maxSampleTime是最大采样时间;minSampleTime是最小采样时间;ratio是采样率;value是采样值;_value是剖面最终采样值。
14.如权利要求10所述的一种基于Web的二维地震剖面绘制方法,其特征在于:
剖面的层位绘制方法,包括如下步骤:
1)从数据库查询获取层面数据,在层位表格中进行展示;
2)将层位数据进行转换,映射到当前剖面图上形成转换后的层位数据;
3)将转换后的层位数据添加到根级容器中进行渲染绘制;
4)层位的绘制通过三个容器实现,绘制容器存放当前正在绘制的层面图形;
5)层位容器,存放己绘制好的横向层位,绘制成曲线图形;
6)层位点容器,存放己绘制好的纵向层位,绘制成点图形。
15.如权利要求1所述的一种基于Web的二维地震剖面绘制方法,其特征在于:底图和剖面通过浏览器的缓存进行数据交换,实现对层位的数据共享,两者都监听存储数据的变化,在事件触发时从缓存中读取数据,执行重绘;交换的存储数据定义如下:参数update是保存在浏览器缓存中,方便底图和剖面两个页面在本地完成数据交换;参数index用于区分inline、cdp的类型;参数Value代表inline/cdp具体的值;然后设置update=true,触发标记位修改,剖面页面捕获到该信息,根据survey_id、index、value参数,进入地震剖面页面绘制;其中survey_id表示工区编号。
16.如权利要求14所述的一种基于Web的二维地震剖面绘制方法,其特征在于:层位表格的绘制,通过封装的SlickGrid.js实现,用户对表格的操作事件都被控件接管,由控件进行独立的处理,自定义了选择控件和颜色控件:
(1)选择控件,能够选择表格中层位相应的行,并对该行进行选择和操作,所有的选择控件互斥,即同时只能选中一行,保证了用户同时能够操作的层面的唯一性;
(2)颜色控件,能够弹出系统的颜色选择器,让用户进行颜色选择,在选择后能够实时显示,并能够通过颜色值属性获取到对应的属性代码,在加载层面时,也能够根据颜色代码显示相应的颜色。
17.如权利要求1所述的一种基于Web的二维地震剖面绘制方法,其特征在于:剖面的坐标系绘制、振幅曲线绘制、层位图形绘制时,在缩放的时候重新绘制曲线包括下列步骤:
1)通过全局变量记录当前浏览距离中点的偏移量,用于缩放后进行相应的偏移调整;
2)根据保存的位置和缩放量重新计算新的偏移量;
3)设置剖面、层位的偏移量为计算出的偏移量,并重设缩放倍数,进行重绘;
4)根据新的偏移量和缩放量,更改坐标轴的起始点和间隔,进行重绘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710915732.7A CN107728201B (zh) | 2017-09-29 | 2017-09-29 | 一种基于Web的二维地震剖面绘制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710915732.7A CN107728201B (zh) | 2017-09-29 | 2017-09-29 | 一种基于Web的二维地震剖面绘制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107728201A CN107728201A (zh) | 2018-02-23 |
CN107728201B true CN107728201B (zh) | 2019-07-12 |
Family
ID=61208475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710915732.7A Active CN107728201B (zh) | 2017-09-29 | 2017-09-29 | 一种基于Web的二维地震剖面绘制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107728201B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109543983A (zh) * | 2018-11-15 | 2019-03-29 | 阳光保险集团股份有限公司 | 一种对报表指标进行彩色评价的方法和装置 |
CN111489410B (zh) * | 2019-01-25 | 2023-11-28 | 中国石油天然气集团有限公司 | 观测系统炮检点数据绘制方法及装置 |
CN112579067A (zh) * | 2019-09-30 | 2021-03-30 | 北京国双科技有限公司 | 子弹图显示方法及装置 |
CN110767272A (zh) * | 2019-10-29 | 2020-02-07 | 青海盐湖工业股份有限公司 | 一种水盐体系相图的绘制方法 |
CN114063155B (zh) * | 2020-07-30 | 2024-04-09 | 中国石油化工股份有限公司 | 优化地震剖面分析的方法、系统、存储介质和电子设备 |
CN112215739B (zh) * | 2020-10-12 | 2024-05-17 | 中国石油化工股份有限公司 | 一种用于AutoCAD的正射影图文件处理方法、装置及存储介质 |
CN112305607A (zh) * | 2020-10-28 | 2021-02-02 | 中国石油天然气集团有限公司 | 地震数据纵剖面图形绘制方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831577A (zh) * | 2012-08-29 | 2012-12-19 | 电子科技大学 | 基于gpu的二维地震图像的快速缩放方法 |
CN103714167A (zh) * | 2013-12-31 | 2014-04-09 | 上海师范大学 | 一种灾害信息时空数据在线三维显示方法 |
CN104849755A (zh) * | 2015-05-04 | 2015-08-19 | 中国石油天然气集团公司 | 并行地震数据绘制方法 |
CN105260170A (zh) * | 2015-07-08 | 2016-01-20 | 中国科学院计算技术研究所 | 一种基于案例的突发事件态势推演方法及系统 |
CN105676290A (zh) * | 2016-04-03 | 2016-06-15 | 北京工业大学 | 基于曲面细分的地震数据三维显示方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130321407A1 (en) * | 2012-06-02 | 2013-12-05 | Schlumberger Technology Corporation | Spatial data services |
US20150074181A1 (en) * | 2013-09-10 | 2015-03-12 | Calgary Scientific Inc. | Architecture for distributed server-side and client-side image data rendering |
-
2017
- 2017-09-29 CN CN201710915732.7A patent/CN107728201B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831577A (zh) * | 2012-08-29 | 2012-12-19 | 电子科技大学 | 基于gpu的二维地震图像的快速缩放方法 |
CN103714167A (zh) * | 2013-12-31 | 2014-04-09 | 上海师范大学 | 一种灾害信息时空数据在线三维显示方法 |
CN104849755A (zh) * | 2015-05-04 | 2015-08-19 | 中国石油天然气集团公司 | 并行地震数据绘制方法 |
CN105260170A (zh) * | 2015-07-08 | 2016-01-20 | 中国科学院计算技术研究所 | 一种基于案例的突发事件态势推演方法及系统 |
CN105676290A (zh) * | 2016-04-03 | 2016-06-15 | 北京工业大学 | 基于曲面细分的地震数据三维显示方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107728201A (zh) | 2018-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107728201B (zh) | 一种基于Web的二维地震剖面绘制方法 | |
US8736600B2 (en) | Systems and methods for imaging a three-dimensional volume of geometrically irregular grid data representing a grid volume | |
CN101493528B (zh) | 海量地震三维可视化显示方法 | |
AU2008205064B8 (en) | Systems and methods for selectively imaging objects in a display of multiple three-dimensional data-objects | |
CA2918499C (en) | Dynamically updating compartments representing one or more geological structures | |
EP2677347A2 (en) | Spatial data services | |
Ruzinoor et al. | A review on 3D terrain visualization of GIS data: techniques and software | |
GB2474740A (en) | Gridless geological modeling of a structural framework | |
CN103069460B (zh) | 用于呈现钻井记录值的方法和系统 | |
CN110058298B (zh) | 一种三维地质体空间插值方法及系统 | |
CN107729105B (zh) | 一种基于Web的地震底图与剖面联动方法 | |
Carrell | Tools and techniques for 3D geologic mapping in Arc Scene: Boreholes, cross sections, and block diagrams | |
US20210055439A1 (en) | Real Time Deformation of Seismic Slices Using Programmable Shaders | |
de Haan | Scalable visualization of massive point clouds | |
George et al. | Interactive visual analytics of coastal oceanographic simulation data | |
Ragnemalm | Visualization of Climate Data | |
Zhang et al. | Application of 3D-visualization of carbonate rock pore facies based on ray casting algorithm | |
Zhu et al. | Design and realization of thematic mapping in Web 3 DGIS | |
Jiang et al. | An Implementation of 3D Landslide Geological Modeling and Visualization |
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 |