一種海量地震數(shù)據(jù)的地質(zhì)曲面重建方法
【專利摘要】本發(fā)明提供了一種海量地震數(shù)據(jù)的地質(zhì)曲面重建方法。所述地質(zhì)曲面重建方法首先進(jìn)行大規(guī)模地震數(shù)據(jù)的地形分塊,將層位數(shù)據(jù)和地質(zhì)約束多邊形數(shù)據(jù)劃分入不同地形塊內(nèi)并保存至外存中;然后以每個(gè)地形塊為基本單位進(jìn)行曲面重建;所述方法還包括在內(nèi)存開辟緩存區(qū),在曲面重建操作中,執(zhí)行外存與緩存區(qū)間的交互以及內(nèi)存與緩存區(qū)間的交互。本發(fā)明針對數(shù)據(jù)量很大的情況提出一種新的曲面重建方法,有效地利用有限的內(nèi)存完成海量數(shù)據(jù)的處理。
【專利說明】
一種海量地震數(shù)據(jù)的地質(zhì)曲面重建方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及地質(zhì)勘探技術(shù)領(lǐng)域,更具體地講,涉及一種大規(guī)模工區(qū)產(chǎn)生的海量勘 探數(shù)據(jù)的三維地質(zhì)曲面重建方法。
【背景技術(shù)】
[0002] 在三維地質(zhì)建模的領(lǐng)域,對三維大規(guī)模海量地震數(shù)據(jù)進(jìn)行曲面重建、三維可視化 乃至進(jìn)行人機(jī)交互的操作,都已經(jīng)成為常規(guī)而且必要的工業(yè)需求。然而,在大規(guī)模地震數(shù)據(jù) 進(jìn)行曲面重建有一定的難度,原因之一在于原始數(shù)據(jù)量過大,數(shù)據(jù)范圍過廣。在現(xiàn)有的條件 下,一臺普通PC機(jī)的硬件條件有限,尤其是內(nèi)存方面,一般來說只有幾GB到十幾GB,大規(guī)模 地震勘探數(shù)據(jù),原始數(shù)據(jù)一般有GB級別,在曲面重建過程中還會(huì)出現(xiàn)大量中間數(shù)據(jù),因而難 以將所有大規(guī)模的地震勘探數(shù)據(jù)同時(shí)放入電腦內(nèi)存中進(jìn)行曲面重建。
【發(fā)明內(nèi)容】
[0003] 針對現(xiàn)有技術(shù)中存在的不足,本發(fā)明的目的之一在于解決上述現(xiàn)有技術(shù)中存在的 一個(gè)或多個(gè)問題。例如,本發(fā)明的目的之一在于針對原始地震數(shù)據(jù)量很大的情況下提出一 種新的曲面重建方法,以有效地利用有限的內(nèi)存完成海量數(shù)據(jù)的處理。
[0004] 為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種海量地震數(shù)據(jù)的地質(zhì)曲面重建方法,其特 征在于,所述方法首先進(jìn)行大規(guī)模地震數(shù)據(jù)的地形分塊,將層位數(shù)據(jù)和地質(zhì)約束多邊形數(shù) 據(jù)劃分入不同地形塊內(nèi)并保存至外存中;然后以每個(gè)地形塊為基本單位進(jìn)行曲面重建;所 述方法還包括在內(nèi)存開辟緩存區(qū),在曲面重建操作中,執(zhí)行外存與緩存區(qū)間的交互以及內(nèi) 存與緩存區(qū)間的交互,具體地,在進(jìn)行緩存區(qū)地形塊調(diào)度時(shí),首先判斷當(dāng)前處理的地形塊及 其鄰近地形塊(即,與當(dāng)前處理的地形塊相鄰的地形塊)是否讀入緩存區(qū),如果在緩存區(qū)中 找到當(dāng)前處理地形塊及其臨近地形塊,則直接從緩存區(qū)中選取對應(yīng)地形塊;如果在緩存區(qū) 中沒有找到當(dāng)前處理地形塊及其臨近地形塊,則判斷緩存區(qū)是否已滿,若緩存區(qū)未滿且緩 存區(qū)剩余空間足夠,從外存中將需要的數(shù)據(jù)塊添加到緩存區(qū)中;若緩存區(qū)已滿或者緩存區(qū) 剩余空間小于處理當(dāng)前塊所需要的空間,則采用地形塊置換策略,將距離當(dāng)前處理的地形 塊最遠(yuǎn)的地形塊移出緩存區(qū),將當(dāng)前處理的地形塊的臨近塊移入緩存區(qū)。
[0005] 根據(jù)本發(fā)明海量地震數(shù)據(jù)的地質(zhì)曲面重建方法的一個(gè)實(shí)施例,所述曲面重建步驟 包括:從對應(yīng)路徑下的外存中讀取地形塊內(nèi)部的層位數(shù)據(jù)和地質(zhì)約束多邊形數(shù)據(jù),然后在 地形塊內(nèi)構(gòu)建初始網(wǎng)格,在每個(gè)初始網(wǎng)格內(nèi)進(jìn)行約束De Iaunay三角剖分并進(jìn)行三維空間三 角網(wǎng)恢復(fù),得到三維拓?fù)?,最后對三維拓?fù)渖系狞c(diǎn)進(jìn)行曲面插值,得到三維地質(zhì)曲面。
[0006] 根據(jù)本發(fā)明海量地震數(shù)據(jù)的地質(zhì)曲面重建方法的一個(gè)實(shí)施例,在對地質(zhì)約束多邊 形數(shù)據(jù)進(jìn)行分塊處理時(shí),當(dāng)一個(gè)地形塊內(nèi)只有一個(gè)地質(zhì)約束多邊形點(diǎn)時(shí),求出兩個(gè)相鄰地 質(zhì)約束多邊形點(diǎn)連成的線段與地形塊邊界的交點(diǎn),并加入對應(yīng)的地形塊內(nèi)的地質(zhì)約束多邊 形數(shù)據(jù)中。
[0007] 根據(jù)本發(fā)明海量地震數(shù)據(jù)的地質(zhì)曲面重建方法的一個(gè)實(shí)施例,所述方法還可以包 括保留一份整體的封閉多邊形數(shù)據(jù),并且,在對每個(gè)地形塊進(jìn)行曲面重建操作時(shí),都要調(diào)用 封閉多邊形數(shù)據(jù)進(jìn)行屬性判斷;具體地,定義封閉多邊形數(shù)據(jù)集合P:
[0008] p={Pl,p2,...,Pm}等式(1)
[0009] 其中
[0010] Pi= {upi,lpi,idi}等式(2)
[0011]在等式(1)和等式(2)中,P表示封閉多邊形的集合,P1表示封閉多邊形集合P中的 第i個(gè)封閉多邊形,為封閉多邊形的總個(gè)數(shù),Upi表示第i個(gè)封閉多邊形的上盤多 邊形點(diǎn)集合,Ip1表示第i個(gè)封閉多邊形的下盤多邊形點(diǎn)集合,icU表示第i個(gè)封閉多邊形的根 多邊形id。
[0012] 根據(jù)本發(fā)明海量地震數(shù)據(jù)的地質(zhì)曲面重建方法的一個(gè)實(shí)施例,所述方法還可以包 括引入地質(zhì)約束多邊形點(diǎn)的索引屬性,以標(biāo)識地質(zhì)約束多邊形點(diǎn)在整個(gè)地質(zhì)約束多邊形中 的位置,并用于判斷地質(zhì)約束多邊形點(diǎn)之間是否相鄰,只有索引相鄰的兩個(gè)地質(zhì)約束多邊 形點(diǎn)才能連接形成約束邊,具體地,定義地質(zhì)約束多邊形點(diǎn)集合:
[0013] Vp=IV1Jf^V1J 等式(3)
[0014] 其中
[0015] ν」={Χ」,Υ」,Ι0」,Ιικ!θχ」}等式(4)
[0016] 在等式(3)和等式(4)中,Vp表示一個(gè)地質(zhì)約束多邊形上所有地質(zhì)約束多邊形點(diǎn)的 集合,Vj表示地質(zhì)約束多邊形上第j個(gè)地質(zhì)約束多邊形點(diǎn),KjSn,η為一個(gè)地質(zhì)約束多邊 形上地質(zhì)約束多邊形點(diǎn)的總個(gè)數(shù),Xj和Yj表示地質(zhì)約束多邊形點(diǎn)的位置,IDj表示第j個(gè)地質(zhì) 約束多邊形點(diǎn)所在的地質(zhì)約束多邊形在地質(zhì)約束多邊形集合中的ID,Index j表示第j個(gè)地 質(zhì)約束多邊形點(diǎn)在地質(zhì)約束多邊形中的位置索引。
[0017] 根據(jù)本發(fā)明海量地震數(shù)據(jù)的地質(zhì)曲面重建方法的一個(gè)實(shí)施例,所述插值步驟包括 對地形塊的非邊界點(diǎn)和邊界點(diǎn)進(jìn)行深度插值,其中,對非邊界點(diǎn)進(jìn)行深度插值的步驟為對 網(wǎng)格點(diǎn)插值,再對斷層多邊形點(diǎn)進(jìn)行插值,最后進(jìn)行補(bǔ)償插值;對地形塊的邊界點(diǎn)進(jìn)行深度 插值的過程中,所有與當(dāng)前邊界點(diǎn)拓?fù)溥B接的點(diǎn)都要作為種子點(diǎn)參與當(dāng)前邊界點(diǎn)的深度插 值計(jì)算;并且,對邊界點(diǎn)添加插值與否的屬性,將插值后的邊界點(diǎn)的屬性設(shè)置為已插值,對 已插值的點(diǎn)不進(jìn)行二次插值。
[0018] 根據(jù)本發(fā)明海量地震數(shù)據(jù)的地質(zhì)曲面重建方法的一個(gè)實(shí)施例,所述方法讀取大規(guī) 模地震數(shù)據(jù)中的預(yù)定行,并對所述預(yù)定行的地震數(shù)據(jù)進(jìn)行地形分塊處理,然后重復(fù)進(jìn)行所 述讀取和地形分塊操作,直至大規(guī)模地震數(shù)據(jù)被讀取和處理完。
[0019] 根據(jù)本發(fā)明海量地震數(shù)據(jù)的地質(zhì)曲面重建方法的一個(gè)實(shí)施例,所述對初始給定的 地形塊進(jìn)行擴(kuò)充時(shí)保證整個(gè)區(qū)域呈矩形。
[0020] 根據(jù)本發(fā)明海量地震數(shù)據(jù)的地質(zhì)曲面重建方法的一個(gè)實(shí)施例,在所述保存步驟 中,為每個(gè)地形塊設(shè)置一個(gè)id,并采用二維數(shù)組的方式進(jìn)行地形塊的id索引,確定一個(gè)二維 數(shù)組a[M][N],其中所述二維數(shù)組的第一維表示地形塊的X方向,二維數(shù)組的第二維表示地 形塊的Y方向,二維數(shù)組中的值為地形塊的id。
[0021] 根據(jù)本發(fā)明海量地震數(shù)據(jù)的地質(zhì)曲面重建方法的一個(gè)實(shí)施例,所述方法還可以包 括在所述地形塊內(nèi)構(gòu)建初始網(wǎng)格步驟之前,對地形塊中的層位數(shù)據(jù)和地質(zhì)約束多邊形數(shù)據(jù) 進(jìn)行預(yù)處理。
[0022] 根據(jù)本發(fā)明海量地震數(shù)據(jù)的地質(zhì)曲面重建方法的一個(gè)實(shí)施例,所述方法對不同的 地形塊,根據(jù)地形的分布確定不同的分辨率,具體地,采用能量函數(shù)法計(jì)算地形塊初始的分 辨率,然后對計(jì)算出來的分辨率值結(jié)合地形塊內(nèi)的斷層分布狀況進(jìn)行微調(diào),如果一個(gè)地形 塊內(nèi)存在的斷層約束多邊形越多,分辨率越高。
[0023] 根據(jù)本發(fā)明海量地震數(shù)據(jù)的地質(zhì)曲面重建方法的一個(gè)實(shí)施例,所述方法采用離散 LOD模型進(jìn)行曲面重建。
[0024] 根據(jù)本發(fā)明海量地震數(shù)據(jù)的地質(zhì)曲面重建方法的一個(gè)實(shí)施例,所述方法采用 Constrained Delaunay約束三角剖分,例如,循環(huán)換邊法。
[0025] 與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果包括:有效地解決了單臺PC機(jī)內(nèi)存難以實(shí)現(xiàn) 對整個(gè)大規(guī)模地質(zhì)工區(qū)的勘探數(shù)據(jù)進(jìn)行整體曲面重建的問題。
【附圖說明】
[0026] 通過下面結(jié)合附圖進(jìn)行的描述,本發(fā)明的上述和其他目的和特點(diǎn)將會(huì)變得更加清 楚,其中:
[0027] 圖1是對原始點(diǎn)集進(jìn)行分割歸并法進(jìn)行三角剖分示意圖。
[0028] 圖2是Constrained Delaunay三角剖分流程示意圖。
[0029] 圖3基于地形分塊的大規(guī)模地震數(shù)據(jù)曲面重建整體流程。
[0030] 圖4是根據(jù)本發(fā)明示例性實(shí)施例的海量地震數(shù)據(jù)的地質(zhì)曲面重建方法對大規(guī)模地 震原始數(shù)據(jù)進(jìn)行地形分塊示意圖。
[0031] 圖5是根據(jù)本發(fā)明示例性實(shí)施例的海量地震數(shù)據(jù)的地質(zhì)曲面重建方法動(dòng)態(tài)地形分 塊的不意圖。
[0032] 圖6是地形塊數(shù)據(jù)在硬盤中分布示意圖。
[0033] 圖7是根據(jù)本發(fā)明示例性實(shí)施例的海量地震數(shù)據(jù)的地質(zhì)曲面重建方法地質(zhì)多邊形 數(shù)據(jù)劃分至地形塊示意圖。
[0034] 圖8是地形塊中封閉多邊形示意圖。
[0035] 圖9是地質(zhì)多邊形重復(fù)跨越同一地形塊示意圖。
[0036] 圖10是地根據(jù)本發(fā)明示例性實(shí)施例的海量地震數(shù)據(jù)的地質(zhì)曲面重建方法形塊與 緩存區(qū)域示意圖。
[0037] 圖11是根據(jù)本發(fā)明示例性實(shí)施例的海量地震數(shù)據(jù)的地質(zhì)曲面重建方法緩存區(qū)置 換地形塊示意圖。
[0038] 圖12是根據(jù)本發(fā)明示例性實(shí)施例的海量地震數(shù)據(jù)的地質(zhì)曲面重建方法采用緩存 區(qū)對地形塊進(jìn)行數(shù)據(jù)調(diào)度的整體流程示意圖。
[0039] 圖13是根據(jù)本發(fā)明示例性實(shí)施例的海量地震數(shù)據(jù)的地質(zhì)曲面重建方法地形塊邊 界點(diǎn)插值示意圖。
【具體實(shí)施方式】
[0040] 在下文中,將結(jié)合附圖和示例性實(shí)施例詳細(xì)地描述根據(jù)本發(fā)明的海量地震數(shù)據(jù)的 地質(zhì)曲面重建方法。
[0041] 根據(jù)本發(fā)明示例性實(shí)施例的海量地震數(shù)據(jù)的地質(zhì)曲面重建方法首先進(jìn)行大規(guī)模 地震數(shù)據(jù)的地形分塊,然后以每個(gè)地形塊(簡稱為塊)為基本單位進(jìn)行曲面重建。
[0042]本發(fā)明主要解決的問題是:首先要完成大規(guī)模地震數(shù)據(jù)的地形分塊,其中涉及到 層位數(shù)據(jù)的分塊以及約束多邊形數(shù)據(jù)的分塊。其次,為了進(jìn)一步簡化地形數(shù)據(jù),引入多分辨 的概念,不同地形塊的數(shù)據(jù)分辨率與具體塊內(nèi)的地形相關(guān),相鄰的地形塊可能由于分辨率 的不同,而產(chǎn)生裂縫現(xiàn)象,應(yīng)該采取一定的措施加以避免。再次,將整個(gè)大規(guī)模地質(zhì)工區(qū)劃 分為地形塊,雖然解決了大規(guī)模地質(zhì)數(shù)據(jù)下曲面重建內(nèi)存不足的問題,但是地形塊數(shù)量假 如過多,勢必會(huì)導(dǎo)致內(nèi)存與硬盤間的頻繁交互,因此,確定一個(gè)合適的內(nèi)存調(diào)度算法,以實(shí) 現(xiàn)相對高效的曲面重建過程也是很必要的。最后,要解決多個(gè)地形塊之間邊界的插值問題。 [0043]為便于理解,
【申請人】就本申請所涉及的理論進(jìn)行簡單介紹。
[0044] I、Delaunay三角剖分技術(shù)
[0045] Delaunay三角剖分的定義如下:假設(shè)平面上點(diǎn)集合為V,邊集合為E,對于E中的任 意一條邊e,如果存在圓C,只包含e的兩個(gè)端點(diǎn),而不包含其他任意點(diǎn),則邊e為一條 Delaunay邊。假設(shè)T為平面散點(diǎn)集合的一個(gè)三角剖分,如果T的所有邊均為Delaunay邊,則T 為Delaunay三角剖分。
[0046] Delaunay三角剖分是一種優(yōu)化的三角剖分方法,產(chǎn)生的三角網(wǎng)有諸多良好的特 性,比如外接圓的空圓性、最小內(nèi)角最大性、唯一性、局部性、凸包性等。
[0047]下面簡要介紹一下Delaunay三角剖分的幾個(gè)常用方法:
[0048] (1)逐點(diǎn)插入法
[0049]逐點(diǎn)插入法的流程是:首先,確定能夠涵蓋所有離散點(diǎn)數(shù)據(jù)的一個(gè)凸包作為邊界 多邊形。其次,依次將原始點(diǎn)數(shù)據(jù)插入邊界多邊形中,每次插入點(diǎn)時(shí),對新插入點(diǎn)的位置加 以判斷,連接新插入點(diǎn)與其周圍的三角形頂點(diǎn)。再次,對連接好的新邊,依照外接圓準(zhǔn)則拉 進(jìn)行LOP優(yōu)化。最終,所有點(diǎn)都被插入,完成三角網(wǎng)的構(gòu)建。現(xiàn)在常用的一些De Iaunay三角剖 分,生成三角網(wǎng)格的方法都可歸類為逐點(diǎn)生成法,只是在一些數(shù)據(jù)結(jié)構(gòu)還有初始的邊界多 邊形構(gòu)建方面有所區(qū)分。
[0050] (2)分割歸并算法(分治法)
[0051] 將復(fù)雜的問題先劃分為比較簡單的子問題進(jìn)行求解,再將所有子問題以一定的規(guī) 則合并,解決原問題的思想稱為分治思想。采用分割歸并法進(jìn)行Delaunay三角剖分主要有 以下幾個(gè)步驟:首先,對離散的點(diǎn)集合數(shù)據(jù)進(jìn)行排序,一般的順序是X方向由左到右,Y方向 由上到下,先對X方向排完序以后再對Y方向排序。其次,對散點(diǎn)集合數(shù)據(jù)進(jìn)行遞歸劃分,直 到所有劃分出來的子集合內(nèi)的點(diǎn)數(shù)不大于3。再次,將所有子集合中的點(diǎn)連接為三角形。最 終,合并子集三角網(wǎng),每次合并時(shí)依照外接圓準(zhǔn)則進(jìn)行局部優(yōu)化,使合并之后仍為Delaunay 三角網(wǎng),最終得到整體的Delaunay三角網(wǎng)。如圖1所示為對6個(gè)原始散點(diǎn)采用分割歸并算法 進(jìn)行三角剖分的過程示意圖,其中(a)顯示了經(jīng)過排序后的原始數(shù)據(jù),(b)表示分別對子集 進(jìn)行劃分,(c)表示對子集進(jìn)行合并。
[0052] (3)三角網(wǎng)增長法
[0053]三角網(wǎng)增長法的主要流程如下:首先,在所有離散點(diǎn)集合V中選取一點(diǎn)A,并找到歐 氏距離上距離A最近的一點(diǎn)B,得到邊AB。其次,以AB邊為基礎(chǔ),尋找符合Delaunay三角剖分 外接圓判定準(zhǔn)則的第三點(diǎn)C,得到AABC。再次,以AABC的三條邊為基礎(chǔ),依次尋找符合條件 的三角形,最終得到Delaunay三角剖分產(chǎn)生的三角網(wǎng)。
[0054] 2 ·約束Delaunay三角網(wǎng)技術(shù)
[0055] 在實(shí)際的地質(zhì)建模過程中,地質(zhì)勘探數(shù)據(jù)往往不是獨(dú)立的,而是彼此之間存在一 定的約束關(guān)系,比較常見的約束關(guān)系有地層的斷裂線、逆斷層的斷層上下盤走向線、地質(zhì)勘 探人員人為繪制的地勢走向約束線等等。由于這些約束的存在,采用普通的Delaunay剖分 方法產(chǎn)生的三角網(wǎng)雖然能夠得到一定的數(shù)字地面模型,但是無法呈現(xiàn)出地表實(shí)際的復(fù)雜約 束關(guān)系,也就對實(shí)際地質(zhì)建模的需求上貢獻(xiàn)較小。于是,在Delaunay三角剖分的過程中加入 一定的約束關(guān)系,成為非常關(guān)鍵的技術(shù)及研究方向。實(shí)現(xiàn)中常用的是Constrained Delaunay約束三角剖分。
[0056] Constrained Delaunay約束三角剖分是將約束邊進(jìn)行整條嵌入的,并不進(jìn)行加點(diǎn) 操作,也不進(jìn)行分割,所以對原始拓?fù)涞挠绊懶∮贑onforming Delaunay方法。也是本發(fā)明 在復(fù)雜約束下進(jìn)行Delaunay三角剖分使用的方法。循環(huán)換邊法作為一種比較有代表性的 Constrained Delaunay約束三角剖分方法,其步驟如下:
[0057] (1)將約束邊兩個(gè)端點(diǎn)插入原始的非約束三角網(wǎng)。
[0058] (2)計(jì)算三角網(wǎng)中與約束邊相交的非端點(diǎn)相交邊,得到相交邊集合E={eo,ei, ..., θη} 〇
[0059] (3)遍歷找到的相交邊集合Ε,對每條邊&,找到以&為對角線的兩個(gè)三角形,判斷 兩個(gè)三角形所組成的四邊形的凹凸性。如果四邊形為嚴(yán)格凸多邊形,則交換四邊形對角線, 否則跳過中的其他邊進(jìn)行判斷。如確定要交換四邊形對角線,則將邊 eiWE中去除,判 斷交換對角線后產(chǎn)生的新邊是否與約束邊非端點(diǎn)相交。對相交邊集合E進(jìn)行更新。
[0060] (4) 一輪遍歷結(jié)束后,如果不存在非端點(diǎn)相交的邊,說明約束邊已經(jīng)被完整嵌入。 如果仍存在,則重復(fù)步驟(3),直至約束邊與每條三角網(wǎng)格中的邊均無非端點(diǎn)相交。
[0061 ] Constrained Delaunay約束三角剖分的流程圖如圖2所示,流程順序按照從(a)至Ij ⑴。
[0062] 3、大規(guī)模地震數(shù)據(jù)下曲面重建的理論基礎(chǔ)
[0063]大規(guī)模的工區(qū)地質(zhì)勘探數(shù)據(jù),特點(diǎn)為數(shù)據(jù)區(qū)域范圍大,數(shù)據(jù)點(diǎn)多。在某些超大的工 區(qū)下,地質(zhì)勘探的原始數(shù)據(jù)甚至達(dá)到了G或者T級別,而現(xiàn)有的普通PC機(jī)的內(nèi)存范圍卻只有 4G-32G不等。由于受到客觀硬件條件的制約,為了解決大規(guī)模地震數(shù)據(jù)下進(jìn)行三維地質(zhì)建 模的問題,很多專家學(xué)者進(jìn)行了研究和探索,主要方法是對原始地震數(shù)據(jù)進(jìn)行處理,減少需 要處理的總數(shù)據(jù)量和一次讀入內(nèi)存的數(shù)據(jù)量。地形分塊技術(shù)和層次細(xì)節(jié)技術(shù)也是針對于大 規(guī)模數(shù)據(jù)進(jìn)行地質(zhì)建模的過程中數(shù)據(jù)組織技術(shù),接下來對其加以介紹。
[0064] 3.1地形分塊技術(shù)
[0065]地形分塊技術(shù),顧名思義,就是將整個(gè)地質(zhì)工區(qū)按照所在的地理坐標(biāo),劃分為面積 一樣的若干塊。在單機(jī)模式下,通過合理的分塊方案,可以解決任意大小的大規(guī)模地震數(shù)據(jù) 的曲面重建與繪制問題。對存放在外存的大規(guī)模地震數(shù)據(jù)進(jìn)行基于空間分布的分塊操作, 使每個(gè)產(chǎn)生的地形塊數(shù)據(jù)均可以一次性裝入內(nèi)存。地形分塊步驟有以下幾步:
[0066] (1)確定每一塊的大小,常用的為大小相同的正方形塊。
[0067] (2)將地震數(shù)據(jù)放入到塊中,若某一塊不存在數(shù)據(jù),則為了整體的完整性添加空 白。
[0068] (3)如果塊內(nèi)存在網(wǎng)格,則盡量保證每塊的網(wǎng)格點(diǎn)數(shù)為(2k+l)X(2 k+l)。
[0069] (4)將生成好的地形塊數(shù)據(jù)文件保存在硬盤中,方便實(shí)時(shí)調(diào)用。
[0070] 在實(shí)際的地形分塊過程中,有幾個(gè)問題是需要考慮的:首先就是分塊的大小,若地 形分塊過大,可能內(nèi)存無法存放單個(gè)塊文件,影響內(nèi)存效率。如果分塊過小,雖然內(nèi)存方面 不存在問題,但是可能會(huì)導(dǎo)致過多的內(nèi)外存I/O交互,影響整體效率,同時(shí),塊文件過多,也 會(huì)增加額外的外存存儲(chǔ)管理開銷。其次,每個(gè)塊邊界上的數(shù)據(jù)點(diǎn),不止受當(dāng)前塊的影響,周 圍塊也會(huì)對其有影響,所以進(jìn)入內(nèi)存處理時(shí),往往是同時(shí)使幾個(gè)相鄰塊進(jìn)入內(nèi)存,這時(shí)就涉 及到緩存設(shè)計(jì)的問題,即如何建立緩存機(jī)制來處理內(nèi)存與外存間的頻繁交互問題。
[0071] 3.2層次細(xì)節(jié)技術(shù)
[0072] 層次細(xì)節(jié)L0D(Level of Detail)技術(shù)常用于實(shí)時(shí)顯不,在實(shí)際曲面重建以及顯不 的過程中,有的區(qū)域地質(zhì)勘探點(diǎn)比較密集,且存在斷層或者褶皺等地質(zhì)規(guī)律約束,在這些區(qū) 域往往要應(yīng)用較多的原始點(diǎn),構(gòu)建比較密集的網(wǎng)格數(shù)據(jù)。而在另一些區(qū)域,地形比較平坦, 主要以層位為主,不存在約束,用少部分原始點(diǎn)構(gòu)建簡單網(wǎng)格即可完成區(qū)域重建。這樣,在 不同層次和不同范圍,采用不同分辨率的網(wǎng)格對原始數(shù)據(jù)進(jìn)行重建,既保證了運(yùn)行的效率, 又保證了重建的曲面效果。
[0073]目前常用的LOD模型有以下兩種:
[0074] (1)離散LOD模型
[0075]離散LOD模型指的是事先通過計(jì)算,得到整個(gè)工區(qū)的多個(gè)副本,每個(gè)副本對應(yīng)著一 重分辨率,這樣得到了一個(gè)基于不同分辨率的金字塔狀數(shù)據(jù)模型。在曲面重建與顯示時(shí),根 據(jù)實(shí)際要求選取對應(yīng)分辨率。該方法實(shí)現(xiàn)較簡單,但是在不同分辨率的區(qū)域切換時(shí),會(huì)產(chǎn)生 比較明顯的跳變感。而且會(huì)存儲(chǔ)冗余的分辨率網(wǎng)格點(diǎn),造成存儲(chǔ)的浪費(fèi)。
[0076] (2)連續(xù)的 LOD(CLOD)模型
[0077] 因?yàn)殡x散的LOD模型在很多地方有所不足,連續(xù)LOD模型的概念被提出。連續(xù)LOD模 型的概念和離散LOD類似,區(qū)別在于連續(xù)LOD模型并不事先存儲(chǔ)好不同分辨率的數(shù)據(jù),而是 實(shí)時(shí)計(jì)算具體的分辨率。
[0078] 離散LOD模型實(shí)現(xiàn)較簡單,計(jì)算量不大,一次生成多次使用,對CPU的負(fù)擔(dān)也較小。 缺點(diǎn)在于要存儲(chǔ)多個(gè)分辨率下的網(wǎng)格數(shù)據(jù),還有跳變現(xiàn)象。連續(xù)LOD模型在顯示上效果要優(yōu) 于離散LOD模型,但計(jì)算較多,復(fù)雜且耗時(shí)。由于本發(fā)明并不涉及分辨率的動(dòng)態(tài)變化,在曲面 重建的過程中,數(shù)據(jù)只需保存一次,所以綜合考慮采用離散LOD模型的思想。
[0079] 在一個(gè)示例性實(shí)施例中,采用基于地形分塊的方法進(jìn)行大規(guī)模地震數(shù)據(jù)下的曲面 重建,具體包括以下操作:
[0080] A、大規(guī)模地震數(shù)據(jù)的地形分塊整體流程
[0081] 首先,將原始的大規(guī)模地震數(shù)據(jù)和約束多邊形數(shù)據(jù)按照地形劃分入不同地形塊 內(nèi),并保存至外存(例如,硬盤)中。其次,以每個(gè)地形塊為基本單位進(jìn)行曲面重建,先對地形 塊中的層位數(shù)據(jù)和斷層數(shù)據(jù)進(jìn)行預(yù)處理,然后對處理后的數(shù)據(jù)進(jìn)行二維網(wǎng)格構(gòu)建,根據(jù)網(wǎng) 格數(shù)據(jù)構(gòu)建二維Delaunay三角剖分并進(jìn)行三維空間三角網(wǎng)恢復(fù),最后進(jìn)行曲面插值并保存 重建后的曲面拓?fù)鋽?shù)據(jù),在顯示時(shí)將所有地形塊內(nèi)的曲面拓?fù)湟黄痫@示,從而實(shí)現(xiàn)整個(gè)大 規(guī)模工區(qū)的曲面重建和顯示。大規(guī)模地質(zhì)工區(qū)地震數(shù)據(jù)曲面重建方法的整體流程如圖3所 示。這里,本申請中出現(xiàn)的約束多邊形和地質(zhì)多邊形是地質(zhì)約束多邊形的簡稱,本發(fā)明說的 地質(zhì)約束多邊形特指斷層多邊形。
[0082]由于單臺PC機(jī)內(nèi)存難以實(shí)現(xiàn)對整個(gè)大規(guī)模地質(zhì)工區(qū)的勘探數(shù)據(jù)進(jìn)行整體曲面重 建,所以使用地形分塊技術(shù),將整體區(qū)域劃分為若干地形塊,如圖4所示。由于在整體數(shù)據(jù)全 部讀入完之前,無法確定整體的最大值最小值,也無法確定地形塊的個(gè)數(shù),所以要使用地形 塊動(dòng)態(tài)添加的方法,動(dòng)態(tài)對地形塊的地形和屬性進(jìn)行判定。
[0083] a、大規(guī)模地震數(shù)據(jù)下地形分炔基本流程
[0084]大規(guī)模地震數(shù)據(jù)的地形分塊的步驟主要有以下幾步:
[0085] (1)給定初始地形塊屬性
[0086]主要有以下幾項(xiàng):地形塊的長度、X方向地形塊個(gè)數(shù)、Y方向地形塊個(gè)數(shù)。這幾項(xiàng)屬 性由工區(qū)的實(shí)際大小決定,可以由外部進(jìn)行指定,X方向與Y方向的地形塊的最小值為1,即 最起碼對于大規(guī)模地震工區(qū)數(shù)據(jù)存在一個(gè)地形塊,此時(shí)該塊的范圍為整個(gè)地質(zhì)工區(qū)。
[0087] (2)讀取原始數(shù)據(jù)
[0088] 讀取地質(zhì)勘探原始數(shù)據(jù),包括層位數(shù)據(jù)和斷層多邊形數(shù)據(jù)。在大規(guī)模工區(qū)數(shù)據(jù)下 原始地質(zhì)勘探數(shù)據(jù)的數(shù)據(jù)量較大,如果在所有數(shù)據(jù)均從文件中讀取之后再進(jìn)行地形分塊操 作,數(shù)據(jù)操作量較大,花費(fèi)時(shí)間較長。而如果每讀入一個(gè)數(shù)據(jù)就進(jìn)行分塊操作,操作會(huì)相對 頻繁,影響效率。因此使用類似分塊的思想進(jìn)行數(shù)據(jù)讀入,即每次讀取地震數(shù)據(jù)文件中的若 干行,對這若干行數(shù)據(jù)進(jìn)行地形分塊操作,操作完以后再繼續(xù)進(jìn)行讀入操作,直至地震數(shù)據(jù) 文件被讀取和處理完。
[0089] 在常見的地形分塊操作中,初始化對全部原始數(shù)據(jù)進(jìn)行讀入,獲取數(shù)據(jù)的最大最 小值,根據(jù)數(shù)據(jù)的具體范圍以及制定的單個(gè)塊長度確定地形塊在X方向和Y方向的個(gè)數(shù)。而 在大規(guī)模工區(qū)地震數(shù)據(jù)的曲面重建過程中,數(shù)據(jù)量較大,如果預(yù)先對原始數(shù)據(jù)進(jìn)行全部讀 入,會(huì)消耗一定的時(shí)間,為了提高處理效率,本發(fā)明優(yōu)選使用一種動(dòng)態(tài)添加地形塊的方法, 即初始給定一定范圍的地形塊,如果讀入的地震數(shù)據(jù)在初始給定的地形塊內(nèi),則將地震數(shù) 據(jù)分配到地形塊中。如果讀入的地震數(shù)據(jù)在初始給定的地形塊之外,則對給定的地形塊進(jìn) 行擴(kuò)充,使之包含讀入地震數(shù)據(jù)。進(jìn)一步優(yōu)選地,為了方便曲面重建操作和曲面顯示,對地 形塊擴(kuò)充時(shí)要保證整個(gè)區(qū)域呈矩形狀。
[0090] 如圖5所示,初始設(shè)置默認(rèn)X方向和Y方向各有兩個(gè)地形塊,對數(shù)據(jù)進(jìn)行讀入時(shí),V1、 V2、V 3、V4等點(diǎn)經(jīng)判斷在已經(jīng)存在的地形塊內(nèi),就直接添加進(jìn)相應(yīng)的地形塊內(nèi)部。點(diǎn)V5不在已 經(jīng)存在的地形塊內(nèi)部,就對現(xiàn)有地形塊進(jìn)行動(dòng)態(tài)添加,添加新的地形塊以包含點(diǎn)V 5,同時(shí)為 了保證整體區(qū)域的完整性,添加了空白的地形塊。
[0091] (4)將數(shù)據(jù)分布到地形塊中
[0092] 原始地質(zhì)勘探數(shù)據(jù)主要是層位數(shù)據(jù)和斷層數(shù)據(jù),按照地震數(shù)據(jù)的二維坐標(biāo),尋找 對應(yīng)的地形塊,將地震數(shù)據(jù)放入對應(yīng)的地形塊即可。
[0093] (5)保存地形塊內(nèi)數(shù)據(jù)
[0094]將地形塊內(nèi)的地震數(shù)據(jù)保存至硬盤中,為了方便確定保存位置,對每個(gè)地形塊給 定一個(gè)塊id,本發(fā)明使用二維數(shù)組的方式進(jìn)行塊的id索引,確定一個(gè)二維數(shù)組a[M][N],其 中數(shù)組的第一維表示地形塊的X方向,數(shù)組的第二維表示地形塊的Y方向,數(shù)組中的值為地 形塊的id。例如,a [ 0 ] [ 0 ]的值為0,說明X方向的第0個(gè)、Y方向的第0個(gè)地形塊中塊id為0。隨 著地形塊的動(dòng)態(tài)添加,二維數(shù)組a[M][N]也會(huì)動(dòng)態(tài)變化,時(shí)刻改變對應(yīng)位置的地形塊id。同 一地形塊內(nèi)的文件最終保存在同一個(gè)地形塊id對應(yīng)的路徑下。
[0095] 經(jīng)過以上的操作后,完成對所有原始地震數(shù)據(jù)的讀入,原始的大規(guī)模地震數(shù)據(jù)轉(zhuǎn) 化為地形塊數(shù)據(jù)并保存在硬盤中,為下一步操作做準(zhǔn)備,地形塊數(shù)據(jù)在硬盤中的分布如圖6 所示,后綴名為block的文件為地形塊文件,地形塊文件以"地形塊idj也形塊分辨率"的規(guī) 則命名。
[0096] b、大規(guī)模地震數(shù)據(jù)下復(fù)雜約束分塊處理。
[0097] 在大規(guī)模地震數(shù)據(jù)的處理中,除原始的層位數(shù)據(jù)之外,還存在多種復(fù)雜約束信息, 以地質(zhì)約束多邊形的形式存在。其中,斷層多邊形數(shù)據(jù)為地質(zhì)勘探人員人工繪制的多邊形, 在本發(fā)明中,地質(zhì)約束多邊形指斷層多邊形,另外,封閉多邊形也特指斷層多邊形,也就是 說本發(fā)明所有的多邊形都是指斷層多邊形。在大規(guī)模地震數(shù)據(jù)下進(jìn)行地形分塊處理時(shí),地 質(zhì)約束多邊形數(shù)據(jù)的處理有以下幾個(gè)難點(diǎn):
[0098]首先要考慮的是地質(zhì)約束多邊形點(diǎn)的分布問題。地質(zhì)多邊形在二維平面上均顯示 為折線段的形式,地質(zhì)約束多邊形數(shù)據(jù)相鄰的兩個(gè)點(diǎn)往往間距較遠(yuǎn),在實(shí)際地質(zhì)數(shù)據(jù)分布 中,很有可能出現(xiàn)兩個(gè)相鄰的多邊形點(diǎn)跨越地形塊的情況,此時(shí)可能在一個(gè)地形塊內(nèi)只有 一個(gè)地質(zhì)多邊形點(diǎn)。由于本發(fā)明使用地形塊作為曲面重建的基本單位,在每個(gè)地形塊內(nèi)只 有一個(gè)地質(zhì)多邊形點(diǎn)的情況下,無法構(gòu)建約束邊實(shí)現(xiàn)后續(xù)的Delaunay約束三角剖分運(yùn)算, 所以要做出相應(yīng)處理。在一個(gè)示例性實(shí)施例中,采取的處理方法是求出這兩個(gè)相鄰地質(zhì)多 邊形點(diǎn)連成的線段與地形塊邊界的交點(diǎn),并加入對應(yīng)的地形塊內(nèi)的地質(zhì)多邊形數(shù)據(jù)中。如 圖7所示,V 1J2J3為地質(zhì)多邊形上的三個(gè)連接點(diǎn),首先找到地質(zhì)約束多邊形與地形塊的交 點(diǎn)V 4、V5,將V4、V5點(diǎn)分別放入對應(yīng)的地形塊,此時(shí)要注意的是由于是邊界點(diǎn),所以在相鄰的 地形塊中都要放入。進(jìn)行操作以后,地形塊1內(nèi)的地質(zhì)多邊形點(diǎn)為V 3、V4,塊2內(nèi)的多邊形點(diǎn)為 V4J1,塊3內(nèi)的地質(zhì)多邊形點(diǎn)為V 5、V2。
[0099]大規(guī)模地震數(shù)據(jù)下的復(fù)雜約束信息劃分至地形塊內(nèi)的另一個(gè)復(fù)雜之處在于,地質(zhì) 約束多邊形中存在不封閉的垂直斷層多邊形,也存在逆斷層多邊形、正斷層多邊形、倒轉(zhuǎn)多 邊形等封閉的多邊形,如圖8所示。進(jìn)行地質(zhì)曲面重建的過程中會(huì)應(yīng)用多邊形的邊界數(shù)據(jù)對 點(diǎn)的重?cái)?shù)和屬性進(jìn)行判定。而封閉多邊形的分塊操作可能會(huì)出現(xiàn)與實(shí)際不符的情況,如圖8 中的塊1內(nèi)部,點(diǎn)A為地質(zhì)約束多邊形點(diǎn),點(diǎn)B、C為地質(zhì)約束多邊形與地形塊的交點(diǎn),塊1中的 約束多邊形被判斷為點(diǎn)A、B、C連接而成的封閉多邊形,明顯與實(shí)際不符。所以一方面要將地 質(zhì)約束多邊形的點(diǎn)數(shù)據(jù)劃分到各個(gè)地形塊內(nèi),另一方面要保留一份整體的封閉地質(zhì)多邊形 數(shù)據(jù)(簡稱封閉多邊形)。
[0100]定義封閉多邊形集合P:
[0101] p={Pl,p2,...,pm}等式(1)
[0102] 多邊形數(shù)據(jù)如下,包含上盤多邊形點(diǎn)集合,下盤多邊形點(diǎn)集合與根多邊形id
[0103] Pi= {upi,lpi,idi}等式(2)
[0104] 也即,在等式(2)中,Upi表示上盤多邊形點(diǎn)集合,Ipi表示下盤多邊形點(diǎn)集合,icU表 示根多邊形id,在二維平面上,對所有的點(diǎn)都給了一個(gè)id,這里根多邊形icU指的是當(dāng)前第i 個(gè)多邊形中該點(diǎn)在二維點(diǎn)集中的i d。
[0105] 也就是說,在等式(1)和等式(2)中,P表示所有封閉多邊形數(shù)據(jù)的集合,每一AP1 都是一個(gè)封閉多邊形,集P1表示封閉多邊形集合P中的第i個(gè)封閉多邊形,為封閉 多邊形的總個(gè)數(shù),等式(2)是針對等式(1)某一個(gè)多邊形P 1的數(shù)據(jù)結(jié)構(gòu),每一個(gè)多邊形結(jié)構(gòu) 都是一樣,Up1表示第i個(gè)封閉多邊形的上盤多邊形點(diǎn)集合,Ip1表示第i個(gè)封閉多邊形的下盤 多邊形點(diǎn)集合,icU表示第i個(gè)封閉多邊形的根多邊形id。
[0106] 封閉多邊形數(shù)據(jù)是作為一個(gè)整體存在的,對每個(gè)地形塊進(jìn)行曲面重建操作時(shí),都 要調(diào)用封閉多邊形數(shù)據(jù)進(jìn)行屬性判斷。
[0107] 還有一點(diǎn)需要考慮的,就是地質(zhì)多邊形線段重復(fù)經(jīng)過同一個(gè)地形塊的情況。如圖9 所示,地質(zhì)多邊形重復(fù)進(jìn)入地形塊1和地形塊2,此時(shí),如果按照上文提到的劃分方法,則塊1 內(nèi)部的多邊形點(diǎn)依次為:由于地形塊是進(jìn)行曲面重建的基本單位,在塊 內(nèi)進(jìn)行約束Delaunay三角剖分時(shí)是以多邊形的線段組合作為約束的,即V 2、V5組成的線段也 會(huì)成為約束,而實(shí)際上這兩個(gè)點(diǎn)并不相連,也不存在約束。只有索引相鄰的兩點(diǎn)才能連接形 成約束邊。為了解決這個(gè)問題,引入一個(gè)屬性:地質(zhì)多邊形點(diǎn)的索引。即當(dāng)前的一個(gè)地質(zhì)多 邊形點(diǎn)在整個(gè)多邊形中處于怎樣的一個(gè)位置。在此定義多邊形點(diǎn)集合:
[0108] Vp=IV1Jf^VrJ 等式(3)
[0109] 其中Vi為第i個(gè)點(diǎn),Vi中的數(shù)據(jù)包括多邊形點(diǎn)的位置、點(diǎn)對應(yīng)的多邊形i d、點(diǎn)在多邊 形中的位置索引。
[0110] Vi={Xi,Yi JDiJndeXiI 等式(4)
[0111] 也即,在等式(4)中,Xi和Yi表示地質(zhì)約束多邊形點(diǎn)的位置,IDi表示第i個(gè)點(diǎn)對應(yīng)的 地質(zhì)約束多邊形ID,Index i表示第i個(gè)點(diǎn)在地質(zhì)約束多邊形中的位置索引;Ki彡n,n為地 質(zhì)約束多邊形點(diǎn)的總個(gè)數(shù)。
[0112]需要補(bǔ)充說明的是,等式(3)中的Vp指的是某一個(gè)地質(zhì)約束多邊形上所有點(diǎn)(即地 質(zhì)約束多邊形點(diǎn))集合,等式(4)中Vi為該地質(zhì)約束多邊形上第i個(gè)點(diǎn),Xi和Yi表示地質(zhì)約束 多邊形點(diǎn)的位置。由于每個(gè)多邊形都有一個(gè)ID,所以ID 1表示的是該點(diǎn)所在的地質(zhì)多邊形它 在地質(zhì)多邊形集合的多邊形ID,IndeXl才表示該點(diǎn)在該地質(zhì)約束多邊形上的位置索引,是 該點(diǎn)在該地質(zhì)約束多邊形上的唯一標(biāo)識。
[0113]以圖9為例,引入多邊形點(diǎn)的索引屬性后,經(jīng)判斷可知…、…在原始地質(zhì)多邊形上的 位置值并不相鄰,不會(huì)連接成為約束邊,保證了結(jié)果的正確性。
[0114] B、大規(guī)模地震數(shù)據(jù)的多分辨率設(shè)置
[0115] 為了進(jìn)一步對大規(guī)模的地震數(shù)據(jù)進(jìn)行簡化,提高曲面重建的效率,本發(fā)明示例性 實(shí)施例使用多分辨的層次細(xì)節(jié)方法,對不同的地形塊,根據(jù)地形的分布確定不同的分辨率。
[0116] 在一個(gè)示例性實(shí)施例中,采用的是能量函數(shù)法,設(shè)z = H(x,y)為點(diǎn)(x,y)處的深度 值,對于一塊η個(gè)數(shù)據(jù)點(diǎn)的地形區(qū)域,定義f。為該區(qū)域所有點(diǎn)的能量函數(shù)。
[0117]
等式(5)
[0118] 其中P1為該區(qū)域的相對深度分布:
[01191
等式(6).
[0120]在等式(6)中,Zo為該區(qū)域中最小深度值,ε是為了防止分母為零添加的很小的安 全的數(shù)。
[0121] 采用能量函數(shù)的方法,分辨率能夠很好的體現(xiàn)出地形的起伏狀況,由于所有點(diǎn)都 參與了運(yùn)算,防止了出現(xiàn)局部點(diǎn)過密的情況導(dǎo)致分辨率偏差。本發(fā)明采用能量函數(shù)法計(jì)算 初始的分辨率,然后對計(jì)算出來的分辨率值結(jié)合塊內(nèi)的斷層分布狀況進(jìn)行微調(diào),如果一個(gè) 地形塊內(nèi)存在的斷層或者倒轉(zhuǎn)約束較多,分辨率就會(huì)相對較高。
[0122] 在本發(fā)明示例性實(shí)施例中,實(shí)際曲面拓?fù)渲亟ǖ姆椒ㄊ窃诘匦螇K內(nèi)構(gòu)建初始四邊 形網(wǎng)格,在四邊形網(wǎng)格內(nèi)進(jìn)行約束De I aunay三角剖分得到二維拓?fù)?,最后將二維拓?fù)浠謴?fù) 為三維拓?fù)?。每個(gè)地形塊內(nèi)需要構(gòu)建一定過個(gè)數(shù)的四邊形網(wǎng)格,地形塊內(nèi)的分辨率與網(wǎng)格 密度直接相關(guān),假設(shè)在一個(gè)地形塊內(nèi),分辨率為P,則該地形塊內(nèi)構(gòu)建的初始四邊形網(wǎng)格的 個(gè)數(shù)為2 PX2P。
[0123] C、大規(guī)模地震數(shù)據(jù)下的地形塊調(diào)度
[0124] 由于數(shù)據(jù)規(guī)模和指定塊長度的問題,有可能進(jìn)行地形分塊操作之后產(chǎn)生多個(gè)地形 塊,此時(shí)如果逐一對地形塊進(jìn)行曲面重建操作,可能會(huì)涉及到多次內(nèi)存與硬盤的交互,影響 曲面重建效率。考慮到以上的問題,本發(fā)明示例性實(shí)施例進(jìn)一步開辟一部分內(nèi)存空間作為 緩存區(qū),在曲面重建操作中,執(zhí)行硬盤-緩存區(qū)間的交互以及內(nèi)存-緩存區(qū)間的交互,這樣一 方面避免了地形塊個(gè)數(shù)過多時(shí)產(chǎn)生的頻繁交互,另一方面可以保證地形塊內(nèi)拓?fù)潼c(diǎn)的深度 值的正確性。
[0125] 對于每個(gè)地形塊而言,在曲面三維拓?fù)渲亟ㄟ^程中,地形塊邊界上的網(wǎng)格點(diǎn)的深 度值不能僅由當(dāng)前地形塊內(nèi)部的點(diǎn)進(jìn)行插值操作獲取,還要將臨近塊內(nèi)的點(diǎn)的深度值考慮 進(jìn)來,涉及到了地形塊的邊界縫合問題,這一點(diǎn)就對緩存區(qū)大小的設(shè)置以及地形塊在緩存 區(qū)內(nèi)的調(diào)度提出了要求,大規(guī)模地震數(shù)據(jù)下的地形塊調(diào)度主要有以下幾個(gè)方面:
[0126] (1)緩存區(qū)設(shè)置
[0127] 緩存區(qū)的大小與地形塊的個(gè)數(shù)和每個(gè)地形塊的大小相關(guān),如果單個(gè)地形塊數(shù)據(jù)量 較大,整個(gè)內(nèi)存都無法放入多個(gè)地形塊,自然會(huì)限制緩存區(qū)內(nèi)的地形塊個(gè)數(shù)。如果地形塊個(gè) 數(shù)比較少且數(shù)據(jù)量不大,完全可以將所有地形塊放入緩存區(qū)。對于一般的大規(guī)模地震數(shù)據(jù), 地形塊較多,整體數(shù)據(jù)較大,對每個(gè)地形塊操作時(shí)不僅要用到當(dāng)前地形塊內(nèi)的數(shù)據(jù),還要用 到其周圍8個(gè)地形塊的數(shù)據(jù)(邊界區(qū)域地形塊除外),因此緩存區(qū)設(shè)置的最小值至少為9個(gè)地 形塊。
[0128] (2)緩存區(qū)內(nèi)添加地形塊
[0129] 進(jìn)行緩存區(qū)地形塊調(diào)度時(shí),首先在緩存區(qū)中尋找當(dāng)前處理的地形塊和其臨近地形 塊。在上文地形分塊的過程中,已經(jīng)建立了表示塊索引關(guān)系的二維數(shù)組a[M][N],通過該二 維數(shù)組,對某一個(gè)地形塊進(jìn)行處理時(shí),能夠快速的得到其相鄰地形塊的id。即二維數(shù)組中的 相鄰關(guān)系就對應(yīng)了地形塊間實(shí)際的相鄰關(guān)系,如當(dāng)前地形塊的位置對應(yīng)到二維數(shù)組中為a [m] [η],則其相鄰的地形塊為a[m-l][n-l]、a[m-l] [n]、a[m-l][n+l]、a[m][n+l]、a[m+l][n + 1]、a[m+l] [n]、a[m+l] [n-1]、a[m] [n-1]所對應(yīng)的地形塊,進(jìn)而得到地形塊id以及對應(yīng)的 塊數(shù)據(jù)文件。如果在緩存區(qū)中找到當(dāng)前處理地形塊及其臨近地形塊,直接從緩存區(qū)中選取 對應(yīng)地形塊進(jìn)行操作。否則判斷緩存區(qū)是否已滿,如果緩存區(qū)未滿且緩存區(qū)剩余空間足夠, 從硬盤文件中將需要的數(shù)據(jù)塊文件添加到緩存區(qū)中。如圖10所示,紅色區(qū)域?yàn)楫?dāng)前處理的 地形塊1,塊2、3、4為其臨近地形塊,在對塊1進(jìn)行處理時(shí),在緩存區(qū)內(nèi)尋找塊1、2、3、4,未找 到對應(yīng)地形塊且緩存區(qū)未滿,則從硬盤中添加塊1、2、3、4的數(shù)據(jù)到緩存區(qū)域內(nèi)。
[0130] (3)緩存區(qū)內(nèi)進(jìn)行地形塊置換
[0131]如果緩存區(qū)已滿或者緩存區(qū)剩余空間小于處理當(dāng)前塊所需要的空間,要采用地形 塊置換策略,用新的地形塊數(shù)據(jù)替換將緩存區(qū)內(nèi)的一部分地形塊。常用的緩存區(qū)調(diào)度方法 主要根據(jù)地形塊進(jìn)入緩存區(qū)的時(shí)間以及使用次數(shù)決定。對于本發(fā)明而言,要考慮地形塊之 間的臨近關(guān)系,保證對某個(gè)地形塊進(jìn)行處理時(shí),該地形塊的臨近地形塊均在緩存區(qū)內(nèi)。在此 基礎(chǔ)上本發(fā)明使用一種基于距離的地形塊置換方法,對當(dāng)前地形塊進(jìn)行處理時(shí),如果緩存 區(qū)空間不足,將距離當(dāng)前地形塊最遠(yuǎn)的地形塊移出緩存區(qū),將當(dāng)前地形塊的臨近塊移入緩 存區(qū)。如圖11所示,初始狀態(tài)處理的地形塊為塊12,塊12及其臨近塊都在緩存區(qū)內(nèi)。處理完 塊12后對塊13進(jìn)行處理,需要將塊13的臨近塊移入緩存區(qū),此時(shí)緩存區(qū)已滿,經(jīng)過位置判 斷,塊13的臨近塊中塊7、塊14、塊17不在緩存區(qū)內(nèi),將緩存區(qū)中距離塊13最遠(yuǎn)的三塊:塊10、 塊11、塊20移出緩存區(qū),將塊7、塊14、塊17移入緩存區(qū)。
[0132] 采用緩存區(qū)對地形塊進(jìn)行數(shù)據(jù)調(diào)度的整體流程示意圖如圖12所示。
[0133] D、大規(guī)模地震數(shù)據(jù)下的地形塊插值
[0134] 地形塊內(nèi)執(zhí)行的操作,是在一個(gè)地形塊內(nèi),先從對應(yīng)路徑下的硬盤文件中讀取該 地形塊內(nèi)部的層位數(shù)據(jù)文件和約束多邊形數(shù)據(jù)文件,再根據(jù)本地形塊的分辨率建立一定步 長的初始網(wǎng)格,在每個(gè)網(wǎng)格內(nèi)部進(jìn)行約束Delaunay三角剖分構(gòu)建,得到三角形網(wǎng)格拓?fù)洌?對構(gòu)建好的二維拓?fù)溥M(jìn)行拼接操作,得到三維拓?fù)洌罱K對拓?fù)渖系狞c(diǎn)進(jìn)行深度插值,得到 真實(shí)的三維地質(zhì)曲面。地形塊內(nèi)點(diǎn)深度插值主要有以下兩步:
[0135] (1)非邊界點(diǎn)插值
[0136] 對于非地形塊邊界點(diǎn),深度插值步驟是先對網(wǎng)格點(diǎn)插值,再對斷層多邊形點(diǎn)進(jìn)行 插值,最后進(jìn)行補(bǔ)償插值。
[0137] 首先對網(wǎng)格點(diǎn)進(jìn)行插值,連接好的曲面拓?fù)?,網(wǎng)格點(diǎn)占據(jù)點(diǎn)的絕大多數(shù),所以先對 網(wǎng)格點(diǎn)進(jìn)行插值,在曲面拓?fù)涞慕⑦^程中,已經(jīng)把原始的層位點(diǎn)作為種子點(diǎn)分配到對應(yīng) 的網(wǎng)格中,網(wǎng)格點(diǎn)的值由對應(yīng)網(wǎng)格的種子點(diǎn)進(jìn)行插值而得。其次對多邊形上的點(diǎn)進(jìn)行插值。 多邊形上的點(diǎn)相對于網(wǎng)格點(diǎn)來說數(shù)量較小,而且一般均與網(wǎng)格點(diǎn)連成拓?fù)溥?。完成網(wǎng)格點(diǎn) 的插值過程后,得到了網(wǎng)格點(diǎn)的實(shí)際深度值,可以使用網(wǎng)格點(diǎn)數(shù)據(jù)對與網(wǎng)格點(diǎn)相連接的多 邊形點(diǎn)進(jìn)行插值。
[0138] 最后進(jìn)行補(bǔ)償插值,經(jīng)過網(wǎng)格插值和多邊形點(diǎn)插值兩步,只有少部分點(diǎn)可能依然 沒有實(shí)際深度值,此時(shí)要進(jìn)行補(bǔ)償插值操作,使用經(jīng)過上面兩步所得到的拓?fù)渲幸呀?jīng)有實(shí) 際深度值的點(diǎn),對仍然沒有實(shí)際深度值的點(diǎn)進(jìn)行插值。補(bǔ)償插值不規(guī)定次數(shù),直至所有拓?fù)?連接上的點(diǎn)均具有實(shí)際深度值。
[0139] (2)邊界點(diǎn)插值
[0140] 對地形塊的邊界點(diǎn)進(jìn)行深度插值的過程中,不僅要考慮當(dāng)前地形塊內(nèi)點(diǎn)的影響, 還要考慮相鄰塊內(nèi)部的點(diǎn)對其進(jìn)行的影響。如圖13所示,在左上角地形塊的邊界點(diǎn)A,對點(diǎn)A 進(jìn)行深度值插值時(shí),利用的是與點(diǎn)A連接拓?fù)涞钠渌c(diǎn),在本地形塊內(nèi)部的拓?fù)渲悬c(diǎn)A和點(diǎn) B、C、F、G相連接,而在其臨近地形塊內(nèi)點(diǎn)A和點(diǎn)C、D、E、F相連接,以上所有與點(diǎn)A拓?fù)溥B接的 點(diǎn)都要作為種子點(diǎn)參與點(diǎn)A的深度插值計(jì)算。
[0141] 另一個(gè)需要注意的地形塊邊界點(diǎn)插值問題的是不同地形塊之間的重復(fù)插值問題, 即多個(gè)地形塊均對同一個(gè)點(diǎn)進(jìn)行插值的情況。以圖13中的點(diǎn)A為例,在對左下地形塊進(jìn)行點(diǎn) 插值時(shí),已經(jīng)尋找了各個(gè)地形塊中與點(diǎn)A相連接的點(diǎn)對點(diǎn)A進(jìn)行插值,在對左上地形塊中進(jìn) 行點(diǎn)插值操作時(shí)還會(huì)對點(diǎn)A進(jìn)行一次插值,對相同點(diǎn)的重復(fù)插值操作勢必會(huì)對整體算法效 率產(chǎn)生影響。為了避免重復(fù)插值,對邊界點(diǎn)添加插值與否的屬性,每次對邊界點(diǎn)插值后該點(diǎn) 的屬性設(shè)置為已插值,對已插值的點(diǎn)不進(jìn)行二次插值。
[0142] 綜上所述,本發(fā)明結(jié)合大規(guī)模地質(zhì)工區(qū)地震數(shù)據(jù)的實(shí)際情況,提出了海量地震數(shù) 據(jù)的地質(zhì)曲面重建方法,將整體區(qū)域劃分為若干地形塊,有效地解決了單臺PC機(jī)內(nèi)存難以 實(shí)現(xiàn)對整個(gè)大規(guī)模地質(zhì)工區(qū)的勘探數(shù)據(jù)進(jìn)行整體曲面重建的問題。本發(fā)明對海量數(shù)據(jù)的處 理有著非常重要的意義,在物探領(lǐng)域應(yīng)用前景廣闊。
[0143] 盡管上面已經(jīng)通過結(jié)合示例性實(shí)施例描述了本發(fā)明,但是本領(lǐng)域技術(shù)人員應(yīng)該清 楚,在不脫離權(quán)利要求所限定的精神和范圍的情況下,可對本發(fā)明的示例性實(shí)施例進(jìn)行各 種修改和改變。
【主權(quán)項(xiàng)】
1. 一種海量地震數(shù)據(jù)的地質(zhì)曲面重建方法,其特征在于,所述方法首先進(jìn)行大規(guī)模地 震數(shù)據(jù)的地形分塊,將層位數(shù)據(jù)和地質(zhì)約束多邊形數(shù)據(jù)劃分入不同地形塊內(nèi)并保存至外存 中;然后以每個(gè)地形塊為基本單位進(jìn)行曲面重建; 所述方法還包括在內(nèi)存開辟緩存區(qū),在曲面重建操作中,執(zhí)行外存與緩存區(qū)間的交互 以及內(nèi)存與緩存區(qū)間的交互,具體地,在進(jìn)行緩存區(qū)地形塊調(diào)度時(shí),首先判斷當(dāng)前處理的地 形塊及其鄰近地形塊是否讀入緩存區(qū), 如果在緩存區(qū)中找到當(dāng)前處理地形塊及其臨近地形塊,則直接從緩存區(qū)中選取對應(yīng)地 形塊; 如果在緩存區(qū)中沒有找到當(dāng)前處理地形塊及其臨近地形塊,則判斷緩存區(qū)是否已滿, 若緩存區(qū)未滿且緩存區(qū)剩余空間足夠,從外存中將需要的數(shù)據(jù)塊添加到緩存區(qū)中;若緩存 區(qū)已滿或者緩存區(qū)剩余空間小于處理當(dāng)前塊所需要的空間,則采用地形塊置換策略,將距 離當(dāng)前處理的地形塊最遠(yuǎn)的地形塊移出緩存區(qū),將當(dāng)前處理的地形塊的臨近塊移入緩存 區(qū)。2. 根據(jù)權(quán)利要求1所述的海量地震數(shù)據(jù)的地質(zhì)曲面重建方法,其特征在于,所述曲面重 建步驟包括:從對應(yīng)路徑下的外存中讀取地形塊內(nèi)部的層位數(shù)據(jù)和地質(zhì)約束多邊形數(shù)據(jù), 然后在地形塊內(nèi)構(gòu)建初始網(wǎng)格,在每個(gè)初始網(wǎng)格內(nèi)進(jìn)行約束Delaunay三角剖分并進(jìn)行三維 空間三角網(wǎng)恢復(fù),得到三維拓?fù)洌詈髮θS拓?fù)渖系狞c(diǎn)進(jìn)行曲面插值,得到三維地質(zhì)曲 面。3. 根據(jù)權(quán)利要求2所述的海量地震數(shù)據(jù)的地質(zhì)曲面重建方法,其特征在于,在對地質(zhì)約 束多邊形數(shù)據(jù)進(jìn)行分塊處理時(shí),當(dāng)一個(gè)地形塊內(nèi)只有一個(gè)地質(zhì)約束多邊形點(diǎn)時(shí),求出兩個(gè) 相鄰地質(zhì)約束多邊形點(diǎn)連成的線段與地形塊邊界的交點(diǎn),并加入對應(yīng)的地形塊內(nèi)的地質(zhì)約 束多邊形數(shù)據(jù)中。4. 根據(jù)權(quán)利要求2所述的海量地震數(shù)據(jù)的地質(zhì)曲面重建方法,其特征在于,所述方法還 包括保留一份整體的封閉多邊形數(shù)據(jù),并且,在對每個(gè)地形塊進(jìn)行曲面重建操作時(shí),都要調(diào) 用封閉多邊形數(shù)據(jù)進(jìn)行屬性判斷;具體地, 定義封閉多邊形數(shù)據(jù)集合P: Ρ={Ρι,Ρ2,···,Ρη} 等式(1) 其中, Pi={upi,lpi,idi} 等式(2) 在等式(1)和等式(2)中,P表示封閉多邊形的集合,Pi表示封閉多邊形集合P中的第i個(gè) 封閉多邊形,1 <m,m為封閉多邊形的總個(gè)數(shù),uPi表示第i個(gè)封閉多邊形的上盤多邊形點(diǎn) 集合,lPl表示第i個(gè)封閉多邊形的下盤多邊形點(diǎn)集合,icU表示第i個(gè)封閉多邊形的根多邊形 id〇5. 根據(jù)權(quán)利要求2所述的海量地震數(shù)據(jù)的地質(zhì)曲面重建方法,其特征在于,所述方法還 包括引入地質(zhì)約束多邊形點(diǎn)的索引屬性,以標(biāo)識地質(zhì)約束多邊形點(diǎn)在整個(gè)地質(zhì)約束多邊形 中的位置,并用于判斷地質(zhì)約束多邊形點(diǎn)之間是否相鄰,只有索引相鄰的兩個(gè)地質(zhì)約束多 邊形點(diǎn)才能連接形成約束邊,具體地, 定義地質(zhì)約束多邊形點(diǎn)集合: νΡ={Υι,ν2,···,νη} 等式(3) 其中, Vj = {Xj,Yj,IDj,Indexj} 等式(4) 在等式(3)和等式(4)中,VP表示一個(gè)地質(zhì)約束多邊形上所有地質(zhì)約束多邊形點(diǎn)的集合, Vj表示地質(zhì)約束多邊形上第j個(gè)地質(zhì)約束多邊形點(diǎn),l<j<n,n為一個(gè)地質(zhì)約束多邊形上地 質(zhì)約束多邊形點(diǎn)的總個(gè)數(shù),Xj和Yj表示地質(zhì)約束多邊形點(diǎn)的位置,IDj表示第j個(gè)地質(zhì)約束多 邊形點(diǎn)所在的地質(zhì)約束多邊形在地質(zhì)約束多邊形集合中的ID,Indexj表示第j個(gè)地質(zhì)約束 多邊形點(diǎn)在地質(zhì)約束多邊形中的位置索引。6. 根據(jù)權(quán)利要求2所述的海量地震數(shù)據(jù)的地質(zhì)曲面重建方法,其特征在于,所述插值步 驟包括對地形塊的非邊界點(diǎn)和邊界點(diǎn)進(jìn)行深度插值,其中, 對非邊界點(diǎn)進(jìn)行深度插值的步驟為對網(wǎng)格點(diǎn)插值,再對斷層多邊形點(diǎn)進(jìn)行插值,最后 進(jìn)行補(bǔ)償插值; 對地形塊的邊界點(diǎn)進(jìn)行深度插值的過程中,所有與當(dāng)前邊界點(diǎn)拓?fù)溥B接的點(diǎn)都要作為 種子點(diǎn)參與當(dāng)前邊界點(diǎn)的深度插值計(jì)算;并且,對邊界點(diǎn)添加插值與否的屬性,將插值后的 邊界點(diǎn)的屬性設(shè)置為已插值,對已插值的點(diǎn)不進(jìn)行二次插值。7. 根據(jù)權(quán)利要求1所述的海量地震數(shù)據(jù)的地質(zhì)曲面重建方法,其特征在于,所述方法讀 取大規(guī)模地震數(shù)據(jù)中的預(yù)定行,并對所述預(yù)定行的地震數(shù)據(jù)進(jìn)行地形分塊處理,然后重復(fù) 進(jìn)行所述讀取和地形分塊操作,直至大規(guī)模地震數(shù)據(jù)被讀取和處理完。8. 根據(jù)權(quán)利要求1所述的海量地震數(shù)據(jù)的地質(zhì)曲面重建方法,其特征在于,所述對初始 給定的地形塊進(jìn)行擴(kuò)充時(shí)保證整個(gè)區(qū)域呈矩形。9. 根據(jù)權(quán)利要求1所述的海量地震數(shù)據(jù)的地質(zhì)曲面重建方法,其特征在于,在所述保存 步驟中,為每個(gè)地形塊設(shè)置一個(gè)id,并采用二維數(shù)組的方式進(jìn)行地形塊的id索引,確定一個(gè) 二維數(shù)組a[M][N],其中所述二維數(shù)組的第一維表示地形塊的X方向,二維數(shù)組的第二維表 示地形塊的Y方向,二維數(shù)組中的值為地形塊的id。10. 根據(jù)權(quán)利要求1所述的海量地震數(shù)據(jù)的地質(zhì)曲面重建方法,其特征在于,所述方法 采用能量函數(shù)法計(jì)算地形塊初始的分辨率,然后對計(jì)算出來的分辨率值結(jié)合地形塊內(nèi)的斷 層分布狀況進(jìn)行微調(diào),如果一個(gè)地形塊內(nèi)存在的斷層約束多邊形越多,分辨率越高。
【文檔編號】G06T17/05GK106056669SQ201610397573
【公開日】2016年10月26日
【申請日】2016年6月7日
【發(fā)明人】王頎, 趙洲, 孫健, 陸林超, 張亨, 羅文 , 唐浩, 劉璞, 范曉, 劉開元, 吳秋波, 鄒文
【申請人】中國石油集團(tuán)川慶鉆探工程有限公司地球物理勘探公司