C# 克隆地震活动并调整其大小

C# 克隆地震活动并调整其大小,c#,ocean,petrel,C#,Ocean,Petrel,我对海洋框架很陌生。我有一个关于复制不同大小的地震活动对象的问题。我需要调整立方体的K索引以进行时间/深度重采样。我只知道克隆一个具有完全相同属性的立方体。大概是这样的: Template template = source.Template; clone = collection.CreateSeismicCube(source, template); 源是原始多维数据集,克隆是结果。是否有可能找到将克隆大小调整为不同大小的方法?索引K(跟踪长度)的大小。我已经探索了CreateSeis

我对海洋框架很陌生。我有一个关于复制不同大小的地震活动对象的问题。我需要调整立方体的K索引以进行时间/深度重采样。我只知道克隆一个具有完全相同属性的立方体。大概是这样的:

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

源是原始多维数据集,克隆是结果。是否有可能找到将克隆大小调整为不同大小的方法?索引K(跟踪长度)的大小。我已经探索了CreateSeismicCube的重载方法,但仍然无法理解如何填充正确的参数。你们有解决这个问题的办法吗?提前感谢。

使用从另一个地震多维数据集克隆的重载创建地震多维数据集时,您无法在任何方向(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 );

谢谢。最后有人提出了答案。这个问题用另一种我觉得更容易理解的方法解决了。但是你的回答给了我更多的选择来解决这个问题。