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