在Cloned Seismic Cube中设置数据

时间:2014-09-07 19:41:49

标签: ocean

我对Ocean Framework很新。我克隆了一个预先存在的地震立方体,以创建一个新的地震立方体。

// Getting the Parent Cube
SeismicCube ParentCube = InputSeismicLine3D.SeismicCube;
// Getting the Seismic Collection
SeismicCollection Sc = ParentCube.SeismicCollection;

//
if (Sc.CanCreateSeismicCube(ParentCube))
{
SeismicCube NewCube = Sc.CreateSeismicCube(ParentCube, ParentCube.Template);
}

任何人都可以告诉我如何在" NewCube"中设置跟踪数据。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

SeismicCubeTraces属性。

从SDK:

  

只能对多维数据集进行写入,这些多维数据集将IsWritable返回为true,并且多维数据集在事务中被锁定。当您使用trace[12] = 123.0前进到下一个跟踪时,会定期自动刷新跟踪值更改(如enumerator.MoveNext())。迭代完成后重新计算值范围(MoveNext()返回false)。

在你的例子中:

if (Sc.CanCreateSeismicCube(ParentCube))
{
    SeismicCube NewCube = Sc.CreateSeismicCube(ParentCube, ParentCube.Template);
    if (!NewCube.IsWriteable) 
        return;

    using (ITransaction trans = DataManager.NewTransaction()) {
        trans.Lock(NewCube);
        foreach (ITrace trace in NewCube.Traces)
        {
            //Do some setting of trace values here. Example only:
            for (int i = 0; i < trace.Length; i++)
            {
                trace[i] = trace.I + trace.J + i;
            }
        }
        trans.Commit();
    }
}