2014-11-06 78 views
1

我在海洋框架中很新。我有一個關於複製具有不同大小的SeismicCube對象的問題。我必須調整立方體的K指數以進行時間/深度重採樣。我所知道的是克隆一個具有完全相同屬性的立方體。像這樣:克隆和調整SeismicCube

Template template = source.Template; 
clone = collection.CreateSeismicCube(source, template); 

與源是原始的多維數據集和克隆是結果。是否有可能找到一種方法將克隆大小調整爲不同大小?特別是指標K(跡線長度)的大小。我已經探索了CreateSeismicCube的重載方法,但仍然無法理解如何填充正確的參數。你們有解決這個問題的方法嗎?提前致謝。

回答

1

當您使用克隆來自另一個地震立方體的超載創建地震立方體時,您無法在任何方向(I,J或K)調整其大小。如果您希望爲您的新多維數據集創建不同的K維,則必須創建它,以提供包含描述其旋轉和間距的向量的長列參數。您可以使用最接近原始地震立方體原點樣本(0,0,0)的樣本,從原始立方體生成矢量。

請考慮您在由其I,J,K指標表示的立方體中具有以下位置。由於K矢量很容易生成,只需要採樣率,我將在這裏專注於I和J。

首先,獲取原點位置和兩條鄰接軌跡。

Point3 I0J0 = inputCube.PositionAtIndex(new IndexDouble3(0, 0, 0)); 
Point3 I1J0 = inputCube.PositionAtIndex(new IndexDouble3(1, 0, 0)); 
Point3 I0J1 = inputCube.PositionAtIndex(new IndexDouble3(0, 1, 0)); 

現在在I和J方向上創建段並使用它們來創建矢量。

Vector3 iVector = new Vector3(new Segment3(I0J0, I1J0)); 
Vector3 jVector = new Vector3(new Segment3(I0J0, I0J1)); 

現在從輸入多維數據集採樣中創建K向量。請注意,您必須否定該值。

Vector3 kVector = new Vector3(0, 0, -inputCube.SampleSpacingIJK.Z); 
+0

非常感謝。最後有人提出了一個答案。問題解決了另一個解決方案,我發現我更容易理解。但是你的回答給了我更多的選擇來解決這個問題。 – 2014-11-11 14:29:10