一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

邻接地质剖面中地层边界的一致化自动处理方法及装置

2022-08-21 15:31:30 来源:中国专利 TAG:


1.本发明涉及地理信息和地质学领域,尤其涉及一种地质剖面数据中地层边界一致化的处理方法及装置。


背景技术:

2.三维地质建模是地理信息科学领域与地质学的重要结合,通过三维地质建模可以形象直观地再现地下地质结构。三维地质建模的基础原始数据主要为钻孔数据、地质剖面图等。邻接地质剖面图是地质剖面图中的一种,邻接地质剖面是指在研究区域中相邻且距离较近的地质剖面。充分利用现有的邻接地质剖面图进行三维地质建模,是很有必要的。
3.地质剖面三维建模领域中,主流的三维地质剖面建模方法主要是用插值曲面构造和连接地质剖面的方法建立地质模型(李陈.基于剖面的三维复杂地质体建模技术研究[d].成都理工大学,2018)。插值曲面构造方法主要适用于层次结构明晰的地质结构,而连接地质剖面的方法则可以适应于更普遍的邻接地质剖面数据,但是这种方法要求剖面之间的相同地层边界线能够做到较好的对应。然而,由于断层、褶皱、侵入等地质作用,导致邻接地质剖面中的地层的接触关系有较大变化,大多数情况下,邻接地质剖面中的地层边界线难以对应。
[0004]
目前,解决邻接地质剖面中的地层边界线对应问题,主要是依靠专家经验通过人工解译找到边界线对应情况,同时人工构建接触关系变化过程中过渡剖面的方式来辅助建模(屈红刚,潘懋,王勇,等.基于含拓扑剖面的三维地质建模[j].北京大学学报:自然科学版,2006(06):24-30)。这样的辅助建模方式效率低,且结果质量因人而异。


技术实现要素:

[0005]
发明目的:本发明针对现有技术存在的问题,提供一种高效率的地质剖面数据中地层边界一致化的处理方法及装置。
[0006]
技术方案:本发明所述的邻接地质剖面中地层边界的一致化自动处理方法包括:
[0007]
(1)加载待处理的两个邻接地质剖面,记为剖面a和剖面b,获取所有地层的地层代码集合fd、剖面a的地层集合sectiona和剖面b的地层集合sectionb;
[0008]
(2)分别提取sectiona、sectionb的边界线以及边界线端点,存入边界线集合arcsa、arcsb以及边界线端点集合nodesa、nodesb;
[0009]
(3)根据sectiona、arcsa、nodesa的几何属性,建立剖面a中边界线与地层的拓扑接触关系表fa1、边界线端点与边界线的拓扑接触关系表fa2、地层与地层的邻接关系表fa3;对于sectionb、arcsb、nodesb,同样处理得到剖面b中边界线与地层的拓扑接触关系表fb1、边界线端点与边界线的拓扑接触关系表fb2、地层与地层的邻接关系表fb3;
[0010]
(4)根据邻接关系表fa3、fb3生成剖面a、剖面b中所有连通地层的组合,并分别合并每种组合的连通地层,合并后地层的边界线分别存入合并地层边界线集合la、lb;
[0011]
(5)取出la,lb内相互对应的任意两条合并边界线,根据fa1、fa2、fb1、fb2检查其
合并前的地层边界线是否对应,得到不一致线分组后的集合la
block
,lb
block
,对应关系存入关系表pair
block

[0012]
(6)对于la
block
、lb
block
中的每个元素,分别生成虚拟地层,存入虚拟地层集合sa
virtual
、sb
virtual

[0013]
(7)将虚拟地层集合sa
virtual
、sb
virtual
中的虚拟地层,基于关系表pair
block
重新编号,并分别与sectiona和sectionb合并,形成拓扑关系一致的剖面a
fit
、剖面b
fit
,剖面a
fit
、剖面b
fit
为一致化处理后结果。
[0014]
进一步的,步骤(1)具体包括:
[0015]
(1-1)将待处理的两个邻接地质剖面记为剖面a和剖面b,读取剖面a和剖面b的矢量图层,并从矢量图层中读取所有地层的地层代码,存入地层代码集合fd={fi|i=1,2,

,fn},其中,fi表示第i个地层代码,fn表示地层代码数量;
[0016]
(1-2)读取剖面a中的所有地层数据,并对地层进行重新编号,存入地层集合secitona={straaa|a=1,2,

,san},其中,straaa表示第a个地层,san表示sectiona中的地层数量;
[0017]
(1-3)读取剖面b中的所有地层数据,并对地层进行重新编号,存入地层集合secitonb={strabb|b=1,2,

,sbn},其中,strabb表示第b个地层,sbn表示sectionb中的地层数量。
[0018]
进一步的,步骤(2)具体包括:
[0019]
(2-1)从地层集合sectiona中读取任意一个地层straai;
[0020]
(2-2)从地层集合sectiona中读取其余所有地层straaj,j=1,2,...,san,且j≠i;并分析straai与straaj的拓扑关系,若两地层接触,则获取两地层的公共边界线arc
t

[0021]
(2-3)检查arc
t
是否存在于边界线集合arcsa中,若不存在,则将arc
t
存入边界线集合arcsa中;
[0022]
(2-4)循环执行步骤(2-1)-(2-3),直到sectiona中所有地层均完成遍历,得到完整的边界线集合arcsa;
[0023]
(2-5)从边界线集合arcsa中读取一个任意边界线arc
t
,并提取arc
t
上的首尾端点p1、p2;
[0024]
(2-6)检查p1、p2是否存在于边界线端点集合nodesa中,若不存在,则存入边界线端点集合nodesa中;
[0025]
(2-7)循环执行步骤(2-5)-(2-6),直至arcsa被遍历完,将所有的边界线端点都存入nodesa;
[0026]
(2-8)针对集合sectionb,按照步骤(2-1)-(2-7)同样处理,得到边界线集合arcsb,边界线端点集合nodesb。
[0027]
进一步的,步骤(3)具体包括:
[0028]
(3-1)读取arcsa中任一边界线arc
t

[0029]
(3-2)将arc
t
与和sectiona中所有地层进行拓扑接触关系检查,若arc
t
与某地层straaa接触,则将startaa的编号a存入拓扑接触关系表fa1中的arc
t
对应的一行;
[0030]
(3-3)循环执行步骤(3-1)-(3-2),直到arcsa中所有边界线都被遍历,得到记录所有边界线的接触地层编号的拓扑接触关系表fa1;
[0031]
(3-4)读取nodesa中任意一点pk;
[0032]
(3-5)对pk与集合arcsa中所有边界线进行拓扑检查,若pk在某一边界线arc
t
上,则将arc
t
的编号t存入拓扑接触关系表fa2中的点pk对应的一行;
[0033]
(3-6)循环执行步骤(3-4)-(3-5),直到nodesa中所有的点都被遍历,得到记录所有边界线端点的接触边界线编号的拓扑接触关系表fa2;
[0034]
(3-7)从集合sectiona中取出任意一地层straaa;
[0035]
(3-8)从集合sectiona取出其余所有地层straa
a’,其中a≠a’;对straaa与straa
a’进行接触拓扑检查,若存在接触关系,则将(a,a’)存入地层与地层的邻接关系表fa3;
[0036]
(3-9)循环执行步骤(3-7)-(3-8),直到sectiona中所有地层均被遍历,得到sectiona中所有地层的邻接关系表fa3;
[0037]
(3-10)对于sectionb,arcsb以及nodesb,按照步骤(3-1)-(3-7)同样处理,得到拓扑接触关系表fb1、拓扑接触关系表fb2、邻接关系表fb3。
[0038]
进一步的,步骤(4)具体包括:
[0039]
(4-1)将sectiona和sectionb中所有地层编号,存入地层编号集合ser={sern|n=1,2,

,n},其中,sern是第n个地层的编号,n是地层总个数;
[0040]
(4-2)对于地层编号集合ser,生成任意个地层编号的所有组合,存入集合comb={combm|m=1,2,

,m},其中combm是第m个地层编号组合,m是集合的总数;
[0041]
(4-3)读取集合comb中的一个组合combm;
[0042]
(4-4)根据邻接关系表fa3,获取combm中所有的地层与combm中其他地层的相邻情况,将相邻的地层编号组合存入集合linkam={(u,v)|u,v∈combm,(u,v)∈fa3},其中,u、v分别是相邻的地层的编号,(u,v)代表u、v两地层是相邻的;
[0043]
(4-5)将sectiona中的地层作为节点,将集合linkam中的相邻关系作为边,从而构建并查集unionseta,并将linkam中所有的关系均添加进unionseta;
[0044]
(4-6)针对地层邻接关系表fb3,按照步骤(4-4)-(4-5)同样处理,得到集合linkbm={(u,v)|u,v∈combm,(u,v)∈fb3}和并查集unionsetb;
[0045]
(4-7)检查combm中所有的地层编号是否在unionseta中同属同一个父节点,同时是否在unionsetb中同属同一个父节点,若均分别同属同个父节点,则将combm对应在sectiona中的所有地层合并成为新地层straam,将combm对应在sectionb中的所有地层合并成为新地层strabm;
[0046]
(4-8)提取straam的合并边界线ea,存入合并边界线集合la={eam|m≤m},其中,eam表示编号为m的合并边界线,m是combm在comb中对应组合的序号;提取strabm的合并边界线eb,存入合并边界线集合lb={ebm|m≤m},其中,ebm表示编号为m的合并边界线;
[0047]
(4-9)循环执行步骤(4-3)-(4-8),直到comb中的所有的组合都被遍历,生成了完整的合并边界线集合la,lb。
[0048]
进一步的,步骤(5)具体包括:
[0049]
(5-1)读取la中任一合并边界线eam,以及lb中同编号的合并边界线ebm;
[0050]
(5-2)遍历arcsa中的所有边界线,将与eam完全重合的边界线存入集合arcs
ea
;遍历arcsb中的所有边界线,将与ebm完全重合的所有边界线存入集合arcs
eb

[0051]
(5-3)将集合arcs
ea
中的所有边界线根据拓扑接触关系表fa2中的连接关系重新排
序,使得编号相邻的边界线相连接;将集合arcs
eb
中的所有边界线根据拓扑接触关系表fb2中的连接关系重新排序,使得编号相邻的边界线相连接;
[0052]
(5-4)对比集合arcs
ea
与集合arcs
eb
中的边界线,分别按照fa1,fb1中边界线与地层的接触关系进行匹配,若能匹配到唯一拓扑不一致连续的边界线集合,则分别存入集合lam、lbm,并将lam存入集合la
block
,将lbm存入集合lb
block
,将lam、lbm的对应关系(am,bm)存入关系集合pair
block

[0053]
(5-5)循环执行步骤(5-1)-(5-4),直到遍历了集合la和lb中所有合并边界线,得到完整的对应关系集合pair
block

[0054]
进一步的,步骤(5-4)具体包括:
[0055]
(5-4-1)遍历arcs
ea
中边界线,直至得到一条边界线l
t1
,其接触地层编号与arcs
eb
中的某一接触地层编号唯一的边界线l
t2
相同;
[0056]
(5-4-2)将集合arcs
ea
中元素的顺序调整至以l
t1
为第一个元素;将集合arcs
eb
中元素的顺序调整至以l
t2
为第一个元素;
[0057]
(5-4-3)从集合arcs
ea
中按从前到后的顺序读取一个元素l
ea
,根据边界线与地层的拓扑接触关系表fa1获取与l
ea
接触的地层d
ea1
,d
ea2
;从集合arcs
eb
中按从前到后的顺序读取一个元素l
eb
,根据边界线与地层的拓扑接触关系表fb1获取与l
eb
接触的地层d
eb1
,d
eb2

[0058]
(5-4-4)判断(d
ea1
,d
ea2
)与(d
eb1
,d
eb2
)是否相同,若相同则返回执行步骤(5-4-3)时,若不同,则停止循环,记录停止时读取的元素在arcs
ea
、arcs
eb
中的位置pa1,pb1;
[0059]
(5-4-5)检查是否遍历完arcs
ea
或arcs
eb
,若未遍历完成则继续执行步骤(5-4-6);若遍历完成,则表明该合并边界线上的实际边界线均能一一对应,或仅在末尾有拓扑不一致且另一合并边界线末尾对应位置为空,同时说明该线中不含唯一拓扑不一致的连续边界线,无新元素存入集合la
block
、集合lb
block
、集合pair
block
,执行步骤(5-5);
[0060]
(5-4-6)从集合arcs
ea
中按照从后往前的顺序读取一个元素l
ea
,根据边界线与地层的拓扑接触关系表fa1获取与l
ea
接触的地层d
ea1
,d
ea2
;从集合arcs
eb
中按照从后往前的顺序读取一个元素l
eb
,根据边界线与地层的拓扑接触关系表fb1获取与l
eb
接触的地层d
eb1
,d
eb2

[0061]
(5-4-7)判断(d
ea1
,d
ea2
)与(d
eb1
,d
eb2
)是否相同,若相同则返回执行步骤(5-4-6)时,若不同,则停止循环,记录停止时读取的元素在arcs
ea
、arcs
eb
中的位置pa2,pb2;
[0062]
(5-4-8)若pa2-pa1=0或pb2-pb1=0,则说明该线中不含唯一拓扑不一致的连续边界线,无新元素存入集合la
block
、集合lb
block
、集合pair
block
,执行步骤(5-5);否则继续执行步骤(5-4-9);
[0063]
(5-4-9)若pa2-pa1》1且pb2-pb1》1,则遍历arcs
ea
中位于区间[pa1 1,pa2-1]中的元素,若能在arcs
eb
中位于区间[pb1 1,pb2-1]找到接触的两地层完全相同的元素,则说明区间[pb1 1,pb2-1]中包含多组拓扑不一致的连续边界线,将找到完全相同接触地层的元素在剖面a、剖面b中位置记为pat、pbt,并执行步骤(5-4-10);否则,执行步骤(5-4-11);
[0064]
(5-4-10)将集合arcs
ea
以位置pat为界分成集合arcs
ea1
,arcs
ea2
左右两集合,将集合arcs
eb
以位置pbt为界分成集合arcs
eb1
,arcs
eb2
左右两集合,分别对arcs
ea1
、arcs
eb1
,arcs
ea2
、arcs
eb2
执行步骤(5-4)以求得左右集合中各自的拓扑不一致位置;
[0065]
(5-4-11)将arcs
ea
中位于区间[pa1 1,pa2-1]中的元素存入集合lam;将arcs
eb
中位
于区间[pb1 1,pb2-1]中的元素存入集合lbm;
[0066]
(5-4-12)将lam存入集合la
block
,将lbm存入集合lb
block
,将lam、lbm的对应关系存入集合pair
block

[0067]
进一步的,步骤(6)具体包括:
[0068]
(6-1)读取la
block
中的任一集合lam;
[0069]
(6-2)创建一个与集合lam距离小于预设值的缓冲区sm,作为lam的虚拟地层存入虚拟地层集合sa
virtual

[0070]
(6-3)读取lb
block
中的任一集合lbm;
[0071]
(6-4)创建一个与集合lbm距离小于预设值的缓冲区sm,作为lam的虚拟地层存入虚拟地层集合sb
virtual

[0072]
进一步的,步骤(7)具体包括:
[0073]
(7-1)将sectiona中地层与sa
virtual
中虚拟地层重合部分擦除,并将剩余部分存入集合sectiona
new

[0074]
(7-2)将sectionb中地层与sb
virtual
中虚拟地层重合部分擦除,并将剩余部分存入集合sectionb
new

[0075]
(7-3)读取集合pair
block
中任一元素(am,bm),读取虚拟地层集合sa
virtual
、sb
virtual
中对应的地层sam、sbm;
[0076]
(7-4)赋予地层sam、sbm同一个全新的地层编号,并将地层sam存入sectiona
new
,将地层sbm存入sectionb
new

[0077]
(7-5)循环执行步骤(7-3)-(7-4),直到pair
block
中所有元素均被遍历;
[0078]
(7-6)分别将sectiona
new
、sectionb
new
生成拓扑关系一致的剖面a
fit
、剖面b
fit
,剖面a
fit
、剖面b
fit
为一致化处理后结果。
[0079]
本发明所述的邻接地质剖面中地层边界的一致化自动处理装置,包括处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。
[0080]
有益效果:本发明与现有技术相比,其显著优点是:本专利将在邻接地质剖面中的地层对应关系已知的基础上,根据剖面中地层几何图形的拓扑特征,实现一种邻接地质剖面中地层边界线一致化的自动处理方法。本专利方法,实现了自动地实现边界线一致化处理,自动化程度高、效率高、质量高,能够便于后续进行连接地质剖面的三维建模。本专利方法对于辅助连接地址剖面三维建模方法的实现和充分利用邻接地质剖面进行建模有一定的应用价值和研究意义。
附图说明
[0081]
图1是本实施例中采用的邻接地质剖面矢量数据图;
[0082]
图2是本发明提供的邻接地质剖面中地层边界的一致化自动处理方法的流程图;
[0083]
图3是本实施例邻接地质剖面提取地层边界线与端点后的示意图;
[0084]
图4是本实施例中的唯一拓扑不一致边界线的求解过程图;
[0085]
图5是合并边界线上拓扑关系对应不同情况示意图;
[0086]
图6是本实施例结果,以及虚拟地层和虚拟地层的边界线对应示意图。
具体实施方式
[0087]
下面对本发明技术方案作进一步详细的说明,本实施例选取了某矿区龙头山的邻接地质剖面作为实验数据,如图1所示,该实验数据采用的投影坐标系为cgcs2000。下面结合附图,并通过描述一个具体的实施例,来进一步说明。
[0088]
如图2所示,本实施例提供的邻接地质剖面中地层边界的一致化自动处理方法包括如下步骤:
[0089]
(1)加载待处理的两个邻接地质剖面,记为剖面a和剖面b,获取所有地层的地层代码集合fd、剖面a的地层集合sectiona和剖面b的地层集合sectionb。
[0090]
该步骤具体包括:
[0091]
(1-1)将待处理的两个邻接地质剖面记为剖面a和剖面b,读取剖面a和剖面b的矢量图层,并从矢量图层中读取所有地层的地层代码,存入地层代码集合fd={fi|i=1,2,

,fn},其中,fi表示第i个地层代码,fn表示地层代码数量;在本实施例中,fn=5;
[0092]
(1-2)读取剖面a中的所有地层数据,并对地层进行重新编号,存入地层集合secitona={straaa|a=1,2,

,san},其中,straaa表示第a个地层,san表示sectiona中的地层数量;在本实施例中,san=5;
[0093]
(1-3)读取剖面b中的所有地层数据,并对地层进行重新编号,存入地层集合secitonb={strabb|b=1,2,

,sbn},其中,strabb表示第b个地层,sbn表示sectionb中的地层数量。在本实施例中,sbn=5,一般来说实施例中的邻接地层剖面需保证san=sbn=fn。
[0094]
(2)分别提取sectiona、sectionb的边界线以及边界线端点,存入边界线集合arcsa、arcsb以及边界线端点集合nodesa、nodesb。
[0095]
该步骤具体包括:
[0096]
(2-1)从地层集合sectiona中读取任意一个地层straai;
[0097]
(2-2)从地层集合sectiona中读取其余所有地层straaj,j=1,2,...,san,且j≠i;并分析straai与straaj的拓扑关系,若两地层接触,则获取两地层的公共边界线arc
t

[0098]
(2-3)检查arc
t
是否存在于边界线集合arcsa中,若不存在,则将arc
t
存入边界线集合arcsa中;
[0099]
(2-4)循环执行步骤(2-1)-(2-3),直到sectiona中所有地层均完成遍历,得到完整的边界线集合arcsa;本实施例中,arcsa中边界线共12个;
[0100]
(2-5)从边界线集合arcsa中读取一个任意边界线arc
t
,并提取arc
t
上的首尾端点p1、p2;
[0101]
(2-6)检查p1、p2是否存在于边界线端点集合nodesa中,若不存在,则存入边界线端点集合nodesa中;
[0102]
(2-7)循环执行步骤(2-5)-(2-6),直至arcsa被遍历完,将所有的边界线端点都存入nodesa;本实施例中,nodesa中点共有8个;
[0103]
(2-8)针对集合sectionb,按照步骤(2-1)-(2-7)同样处理,得到边界线集合arcsb,边界线端点集合nodesb。本实施例中,arcsa,nodesa,arcsb,nodesb中包含元素如图3所示。
[0104]
(3)根据sectiona、arcsa、nodesa的几何属性,建立剖面a中边界线与地层的拓扑
接触关系表fa1、边界线端点与边界线的拓扑接触关系表fa2、地层与地层的邻接关系表fa3;对于sectionb、arcsb、nodesb,同样处理得到剖面b中边界线与地层的拓扑接触关系表fb1、边界线端点与边界线的拓扑接触关系表fb2、地层与地层的邻接关系表fb3。
[0105]
该步骤具体包括:
[0106]
(3-1)读取arcsa中任一边界线arc
t

[0107]
(3-2)将arc
t
与和sectiona中所有地层进行拓扑接触关系检查,若arc
t
与某地层straaa接触,则将startaa的编号a存入拓扑接触关系表fa1中的arc
t
对应的一行;
[0108]
(3-3)循环执行步骤(3-1)-(3-2),直到arcsa中所有边界线都被遍历,得到记录所有边界线的接触地层编号的拓扑接触关系表fa1,如表1所示;
[0109]
表1剖面a边界线与地层拓扑关系表
[0110][0111]
其中,边界线的编号在步骤(2)中根据循环顺序从0开始赋予,本实施例中剖面a的边界线编号为0至11。通常一个边界线与两个地层有接触关系,当边界线接触的地层只有一个时,则接触地层序列中添加编号-1使得边界线地层数量统一。
[0112]
(3-4)读取nodesa中任意一点pk;
[0113]
(3-5)对pk与集合arcsa中所有边界线进行拓扑检查,若pk在某一边界线arc
t
上,则将arc
t
的编号t存入拓扑接触关系表fa2中的点pk对应的一行;
[0114]
(3-6)循环执行步骤(3-4)-(3-5),直到nodesa中所有的点都被遍历,得到记录所有边界线端点的接触边界线编号的拓扑接触关系表fa2,如下表2;
[0115]
表2剖面a边界线与端点拓扑关系表
[0116][0117]
(3-7)从集合sectiona中取出任意一地层straaa;
[0118]
(3-8)从集合sectiona取出其余所有地层straa
a’,其中a≠a’;对straaa与straa
a’进行接触拓扑检查,若存在接触关系,则将(a,a’)存入地层与地层的邻接关系表fa3
[0119]
(3-9)循环执行步骤(3-7)-(3-8),直到sectiona中所有地层均被遍历,得到sectiona中所有地层的邻接关系表fa3,如下表3;
[0120]
表3剖面a地层邻接关系表
[0121][0122][0123]
其中,若某地层存在某边界不与任何其他地层接触,则在邻接表中加入虚拟地层straa-1
,确保地层存在某边界不与其他地层接触的特征能够记录下来。
[0124]
(3-10)对于sectionb,arcsb以及nodesb,按照步骤(3-1)-(3-7)同样处理,得到拓扑接触关系表fb1、拓扑接触关系表fb2、邻接关系表fb3。
[0125]
(4)根据邻接关系表fa3、fb3生成剖面a、剖面b中所有连通地层的组合,并分别合并每种组合的连通地层,合并后地层的边界线分别存入合并地层边界线集合la、lb。
[0126]
该步骤具体包括:
[0127]
(4-1)将sectiona和sectionb中所有地层编号,存入地层编号集合ser={sern|n=1,2,

,n},其中,sern是第n个地层的编号,n是地层总个数;n=5
[0128]
(4-2)对于地层编号集合ser,生成任意个地层编号的所有组合,存入集合comb={combm|m=1,2,

,m},其中combm是第m个地层编号组合,m是集合的总数;本实施例中,m=30;
[0129]
(4-3)读取集合comb中的一个组合combm;
[0130]
(4-4)根据邻接关系表fa3,获取combm中所有的地层与combm中其他地层的相邻情况,将相邻的地层编号组合存入集合linkam={(u,v)|u,v∈combm,(u,v)∈fa3},其中,u、v分别是相邻的地层的编号,(u,v)代表u、v两地层是相邻的;在本实施例中,情况如图4所示时,combm={4,5};
[0131]
(4-5)将sectiona中的地层作为节点,将集合linkam中的相邻关系作为边,从而构建并查集unionseta,并将linkam中所有的关系均添加进unionseta;
[0132]
(4-6)针对地层邻接关系表fb3,按照步骤(4-4)-(4-5)同样处理,得到集合linkbm={(u,v)|u,v∈combm,(u,v)∈fb3}和并查集unionsetb;
[0133]
(4-7)检查combm中所有的地层编号是否在unionseta中同属同一个父节点,同时是否在unionsetb中同属同一个父节点,若均分别同属同个父节点,则将combm对应在sectiona中的所有地层合并成为新地层straam,将combm对应在sectionb中的所有地层合并成为新地层strabm;在本实施例中,情况如图4所示时,straam为剖面a中灰色斜线区域,strabm为剖面b中灰色斜线区域;
[0134]
(4-8)提取straam的合并边界线ea,存入合并边界线集合la={eam|m≤m},其中,eam表示编号为m的合并边界线,m是combm在comb中对应组合的序号;提取strabm的合并边界线eb,存入合并边界线集合lb={ebm|m≤m},其中,ebm表示编号为m的合并边界线;在本实施例中,情况如图4所示时,剖面a中黑色粗线(以及空心线)所示为eam,剖面b中黑色粗线(以及空心线)所示为ebm;
[0135]
(4-9)循环执行步骤(4-3)-(4-8),直到comb中的所有的组合都被遍历,生成了完整的合并边界线集合la,lb。
[0136]
(5)取出la,lb内相互对应的任意两条合并边界线,根据fa1、fa2、fb1、fb2检查其合并前的地层边界线是否对应,得到不一致线分组后的集合la
block
,lb
block
,对应关系存入关系表pair
block

[0137]
该步骤具体包括:
[0138]
(5-1)读取la中任一合并边界线eam,以及lb中同编号的合并边界线ebm;在本实施例中,情况如图4所示时,剖面a中黑色粗线(以及空心线)所示为eam,剖面b中黑色粗线(以及空心线)所示为ebm;
[0139]
(5-2)遍历arcsa中的所有边界线,将与eam完全重合的边界线存入集合arcs
ea
;遍历arcsb中的所有边界线,将与ebm完全重合的所有边界线存入集合arcs
eb
;本实施例中,情况如图4所示时,arcs
ea
中边界线编号集合为{3,6,7,1,2},arcs
eb
中边界线编号集合为{1,6,7,2,3},即与合并边界线完全重合的实际地层边界线;
[0140]
(5-3)将集合arcs
ea
中的所有边界线根据拓扑接触关系表fa2中的连接关系重新排序,使得编号相邻的边界线相连接;将集合arcs
eb
中的所有边界线根据拓扑接触关系表fb2中的连接关系重新排序,使得编号相邻的边界线相连接;
[0141]
(5-4)对比集合arcs
ea
与集合arcs
eb
中的边界线,分别按照fa1,fb1中边界线与地层的接触关系进行匹配,若能匹配到唯一拓扑不一致连续的边界线集合,则分别存入集合lam、lbm,并将lam存入集合la
block
,将lbm存入集合lb
block
,将lam、lbm的对应关系(am,bm)存入关系集合pair
block
;在本实施例中,情况如图4所示时,剖面a中空心线所示为lam,剖面b中中空线所示为lbm;
[0142]
(5-5)循环执行步骤(5-1)-(5-4),直到遍历了集合la和lb中所有合并边界线,得到完整的对应关系集合pair
block
。本实施例中pair
block
的元素个数为1。
[0143]
如图4与图5所示,(5-4)具体包括:
[0144]
(5-4-1)遍历arcs
ea
中边界线,直至得到一条边界线l
t1
,其接触地层编号与arcs
eb
中的某一接触地层编号唯一的边界线l
t2
相同;
[0145]
(5-4-2)将集合arcs
ea
中元素的顺序调整至以l
t1
为第一个元素;将集合arcs
eb
中元素的顺序调整至以l
t2
为第一个元素;
[0146]
(5-4-3)从集合arcs
ea
中按从前到后的顺序读取一个元素l
ea
,根据边界线与地层的拓扑接触关系表fa1获取与l
ea
接触的地层d
ea1
,d
ea2
;从集合arcs
eb
中按从前到后的顺序读取一个元素l
eb
,根据边界线与地层的拓扑接触关系表fb1获取与l
eb
接触的地层d
eb1
,d
eb2

[0147]
(5-4-4)判断(d
ea1
,d
ea2
)与(d
eb1
,d
eb2
)是否相同,若相同则返回执行步骤(5-4-3)时,若不同,则停止循环,记录停止时读取的元素在arcs
ea
、arcs
eb
中的位置pa1,pb1;
[0148]
(5-4-5)检查是否遍历完arcs
ea
或arcs
eb
,若未遍历完成则继续执行步骤(5-4-6);若遍历完成,则如图5(a)中情况两条合并边界线上所有的地层实际边界线完全一一对应,或图5(b)中情况的特例,即仅在末尾有拓扑不一致且另一合并边界线末尾对应位置为空,总之都说明该组合并边界线中不含唯一拓扑不一致的边界线,无新元素存入集合la
block
、集合lb
block
、集合pair
block
,执行步骤(5-5);
[0149]
(5-4-6)从集合arcs
ea
中按照从后往前的顺序读取一个元素l
ea
,根据边界线与地
层的拓扑接触关系表fa1获取与l
ea
接触的地层d
ea1
,d
ea2
;从集合arcs
eb
中按照从后往前的顺序读取一个元素l
eb
,根据边界线与地层的拓扑接触关系表fb1获取与l
eb
接触的地层d
eb1
,d
eb2

[0150]
(5-4-7)判断(d
ea1
,d
ea2
)与(d
eb1
,d
eb2
)是否相同,若相同则返回执行步骤(5-4-6)时,若不同,则停止循环,记录停止时读取的元素在arcs
ea
、arcs
eb
中的位置pa2,pb2;
[0151]
(5-4-8)若pa2-pa1=0或pb2-pb1=0,则说明该线中不含唯一拓扑不一致的连续边界线,无新元素存入集合la
block
、集合lb
block
、集合pair
block
,执行步骤(5-5);否则继续执行步骤(5-4-9);
[0152]
(5-4-9)若pa2-pa1》1且pb2-pb1》1,则遍历arcs
ea
中位于区间[pa1 1,pa2-1]中的元素,若能在arcs
eb
中位于区间[pb1 1,pb2-1]找到接触的两地层完全相同的元素,则说明区间[pb1 1,pb2-1]中包含多组拓扑不一致的连续边界线,将找到完全相同接触地层的元素在剖面a、剖面b中位置记为pat、pbt,并执行步骤(5-4-10);否则,执行步骤(5-4-11);
[0153]
(5-4-10)将集合arcs
ea
以位置pat为界分成集合arcs
ea1
,arcs
ea2
左右两集合,将集合arcs
eb
以位置pbt为界分成集合arcs
eb1
,arcs
eb2
左右两集合,分别对arcs
ea1
、arcs
eb1
,arcs
ea2
、arcs
eb2
执行步骤(5-4)以求得左右集合中各自的拓扑不一致位置;
[0154]
(5-4-11)将arcs
ea
中位于区间[pa1 1,pa2-1]中的元素存入集合lam;将arcs
eb
中位于区间[pb1 1,pb2-1]中的元素存入集合lbm;如图5(d)中情况,此时区间[pa1 1,pa2-1]中的就是一组拓扑不一致的连续边界线,本实施例中,如图4情况时,剖面a,剖面b上的空心线所示位置就是一组拓扑不一致的连续边界线;
[0155]
(5-4-12)将lam存入集合la
block
,将lbm存入集合lb
block
,将lam、lbm的对应关系存入集合pair
block

[0156]
(6)对于la
block
、lb
block
中的每个元素,分别生成虚拟地层,存入虚拟地层集合sa
virtual
、sb
virtual

[0157]
该步骤具体包括:
[0158]
(6-1)读取la
block
中的任一集合lam;
[0159]
(6-2)创建一个与集合lam距离小于预设值的缓冲区sm,作为lam的虚拟地层存入虚拟地层集合sa
virtual
;本实施例中sa
virtual
的元素个数为nv=1,剖面a中的虚拟地层如图6中剖面a虚拟地层所示;
[0160]
(6-3)读取lb
block
中的任一集合lbm;
[0161]
(6-4)创建一个与集合lbm距离小于预设值的缓冲区sm,作为lam的虚拟地层存入虚拟地层集合sb
virtual
。剖面b中的虚拟地层如图6中剖面b虚拟地层所示。
[0162]
(7)将虚拟地层集合sa
virtual
、sb
virtual
中的虚拟地层,基于关系表pair
block
重新编号,并分别与sectiona和sectionb合并,形成拓扑关系一致的剖面a
fit
、剖面b
fit
,剖面a
fit
、剖面b
fit
为一致化处理后结果。
[0163]
该步骤具体包括:
[0164]
(7-1)将sectiona中地层与sa
virtual
中虚拟地层重合部分擦除,并将剩余部分存入集合sectiona
new

[0165]
(7-2)将sectionb中地层与sb
virtual
中虚拟地层重合部分擦除,并将剩余部分存入集合sectionb
new

[0166]
(7-3)读取集合pair
block
中任一元素(am,bm),读取虚拟地层集合sa
virtual
、sb
virtual
中对应的地层sam、sbm;
[0167]
(7-4)赋予地层sam、sbm同一个全新的地层编号,并将地层sam存入sectiona
new
,将地层sbm存入sectionb
new
;本实施例中,虚拟地层sam、sbm如图6中所示,其与相邻地层的边界线可以完全做到一一对应,拓扑关系一致;
[0168]
(7-5)循环执行步骤(7-3)-(7-4),直到pair
block
中所有元素均被遍历;
[0169]
(7-6)分别将sectiona
new
、sectionb
new
生成拓扑关系一致的剖面a
fit
、剖面b
fit
,剖面a
fit
、剖面b
fit
为一致化处理后结果。如图6所示,sectiona
new
、sectionb
new
中的地层边界线完全对应,其中在本实施例中创建的虚拟地层的边界线对应情况如图6所示。
[0170]
本发明所述的邻接地质剖面中地层边界的一致化自动处理装置,包括处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。
[0171]
本发明实施例中基于开源类库gdal提供部分gis操作,相关步骤也可以使用supermap、arcgis object等软件的api进行相应gis操作。
[0172]
以上所揭露的仅为本发明一种较佳实施例而已,不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献