我对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"中设置跟踪数据。 提前谢谢。
答案 0 :(得分:0)
SeismicCube
有Traces
属性。
从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();
}
}