0

我计划制作可以测试钻孔是否穿过断层的功能。我的第一个想法是制作一个工作步骤组件,该组件将钻孔和故障解释作为输入并返回交叉点的数量。我已经做了一个检查故障解释是否与表面相交的工作步骤。该函数的核心如下:

ICoordinateReferenceSystem inputCRS = PetrelProject.PrimaryProject.CoordinateReferenceSystem;
SpatialUnitsPolicy unitsPolicy = SpatialUnitsPolicy.AllDataInSI;
SpatialContext spatialCtx = new SpatialContext(inputCRS, unitsPolicy);
ISurfaceIntersectionService sis = CoreSystem.GetService<ISurfaceIntersectionService>(arguments.Surface);
foreach (FaultInterpretationPolyline p in arguments.Fault.GetPolylines()) {
    IEnumerable<PolylineSurfaceIntersection> intersections = sis.GetSurfacePolyLineIntersection(arguments.Surface, p.Polyline);
    foreach (PolylineSurfaceIntersection intersection in intersections) {
        arguments.NumberOfIntersections++;
    }
}

以上工作正常,我想我可以沿着相同的线做一些事情来计算折线(井轨迹)和从代表故障解释的折线集合生成的表面之间的交点。关键问题是,有没有办法从一组折线中获取/生成表面?故障解释可以显示为一个表面(三角化),这个表面是否可以从 api 访问?从 api 返回的表面必须能够用作 ISurfaceIntersectionService 的参数。如果通过 Ocean api 无法做到这一点,有没有一种方法可以让用户从断层解释中预先准备断层解释?或者也许有一种完全不同的方法可以有效地解决上述问题?

4

1 回答 1

1

您将遇到的问题是曲面的创建。目前您只能创建一个RegularHeightFieldSurface,它是一个点位于格子上的表面。FaultIntersection 通常不适合此模型,因为它的点不是在常规晶格上选取的。因此,从一组故障解释选择中为点创建表面是问题所在。

于 2011-12-22T19:52:20.423 回答