我有一项任务是在Petrel中创建一个新表面。我应该使用Ocean for Petrel软件生成两个表面的平均值并从中创建一个新表面(如中间表面)。
这可能吗?我从哪里开始?我也非常感谢能够帮助我的资源链接。
答案 0 :(得分:3)
Seslie,
你可以从Collection中创建表面调用方法CreateRegularHeightFieldSurface(字符串名称,SpatialLatticeInfo点阵);
创建属性为RegularHeightFieldSurface.CreateProperty(模板模板);
然后,您可以通过I和J索引访问表面和属性的节点。表面的X和Y将从格子自动生成。
Point2[] world = …
var surf = c.CreateRegularHeightFieldSurface(name, oldSurf.SpatialLattice, PetrelProject.PrimaryProject.CoordinateReferenceSystem));
SurfaceProperty prop = surf.CreateProperty(PetrelProject.WellKnownTemplates.PetrophysicalGroup.Pressure);
prop.Name = " Pressure ";
var sizeIj = surf.SpatialLattice.OriginalLattice.Arrays.SizeIJ;
for (int i = 0; i < sizeIj.I; i++)
{
for (int j = 0; j < sizeIj.J; j++)
{
surf[i, j] = …;
prop[i, j] = …;
}
}
答案 1 :(得分:1)
安装Ocean SDK,它附带样本和文档。您应该使用的类是RegularHeightFieldSurface - 请检查Ocean.chm。有一个名为PreStackSample的示例,其中有一个关于如何创建这样一个表面的示例。