计算断层解释和折线交叉口

时间:2011-11-30 08:59:08

标签: ocean

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

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无法做到这一点,那么用户是否可以通过故障解释预先准备故障解释?或者也许有一种完全不同的方法可以有效地解决上述问题?

1 个答案:

答案 0 :(得分:1)

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