在三維中,任何的體素點(i,j,k)的聯合機率函式可表示為:
\displaystyle P\big(x(v_{ijk})\big)=\prod_{l=0}^i\prod_{m=0}^j\prod_{n=0}^kP\big(x_{lmn}|x_{l-1,m,n},x_{l,m-1,n},x_{l,m,n-1}\big)
式中
\displaystyle V_{LMN}=\left\{(l,m,n),0< l< L, 0< m< M, 0< n< N \right\}
具有L行、M列、N層個正方體體素的長方體網格:
-
(i,j,k)——位於第i行、第j列和第k層體素;
-
x——體素(i,j,k)所處的狀態;
-
V_{ijk}——長寬高分別為i、j、k長方體網格;
-
x(V_{ijk})——V_{ijk}的狀態。
11點的鄰域條件機率和12點鄰域條件機率分別寫作:
\displaystyle P\bigg(x_{i,j,k}\bigg|x\big(N_{11}(i,j,k)\big)\bigg)=\alpha\left[ \begin{aligned} P(x_{i,j,k}|x(N_{i,5}(i,j,k)))+\\ P(x_{i,j,k}|x(N_{j,6}(i,j,k)))+\\ P(x_{i,j,k}|x(N_{k,5}(i,j,k))) \end{aligned} \right]\\{}\\ P\bigg(x_{i,j+1,k}\bigg|x\big(N_{12}(i,j+1,k)\big)\bigg)=\alpha\left[ \begin{aligned} P(x_{i,j+1,k}|x(N_{i,6}(i,j+1,k)))+\\ P(x_{i,j+1,k}|x(N_{j,6}(i,j+1,k)))+\\ P(x_{i,j+1,k}|x(N_{k,6}(i,j+1,k))) \end{aligned} \right]
其中\alpha為平均化引數,\alpha可由原圖測量得到孔隙度和計算重構出的三維介質的孔隙度來確定,機率平均化引數首先由修正係數,透過調價\alpha值可使生成的數字岩心與真實岩心由相同的孔隙度。
對於邊界來說,可以用簡化的7點、8點、10點、11點鄰域來代替11點和12點鄰域,比如,若i為2,j為1,那麼11點和12點鄰域就退化為7點和8點鄰域。
利用 MCMC 法構建三維數字岩心的具體步驟:
-
採用岩心掃描影像的孔隙度作為第一個體素狀態的條件機率。
-
沿y方向生成第一層第一行上的體素。第一行第二個體素使用2鄰居進行模擬,之後的體素使用3鄰居進行生成。其條件機率由xy平面的岩心掃描影像的6鄰域系統進行推導得出。
-
重複步驟,實現X方向各行體素的生成。在邊緣體素使用3、4鄰居進行模擬,內部體素使用5、6鄰居進行模擬。其條件機率由xy平面岩心掃描影像的6鄰域系統進行推導得出。
-
重複步驟,實現Z方向各行體素的生成。在邊緣體素使用3、4鄰居進行模擬,內部體素使用5、6鄰居進行模擬,其條件機率由同方向平面的 岩心掃描影像6鄰域系統進行推導得出。從第二層第二行開始,邊緣體素使用9、10鄰居進行模擬,內部體素14、15鄰居進行模擬,其條件機率由3個平面岩心掃描影像的6鄰域系統組合得到。
演算法虛擬碼:
for i=1 to height
for j=1 to width
for k=1 to length
ConditionalProbabilityMatrix 遍歷掃描演算法獲得機率分佈函式
next k
next j
next i
for i=1 to height
for j=1 to width
for k=1 to length
generatePoint 根據條件機率給體素點賦值
next k
next j
next i
本作品採用《CC 協議》,轉載必須註明作者和本文連結