1

我在海洋框架中很新。我有一个关于复制不同大小的 SeismicCube 对象的问题。我必须调整立方体的 K 索引以进行时间/深度重采样。我所知道的只是克隆一个具有完全相同属性的立方体。像这样的东西:

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

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

4

1 回答 1

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 );
于 2014-11-10T09:33:37.887 回答