Question

Attempting to duplicate ARCGIS Make Route Event Layer


  • Within FME I have a PolylineZM shapefile with about ~12,000 different routes on it.
  • These routes are wells, they straight down into the ground and then go horizontally.
  • From within ARCGIS I can see that the PolylineZM shapefile coordinates already have Z values as well as measures associated with it.
  • In that polyline shapefile I have an attribute column with called depth that has a distance value which represents the 3D distance along the line.
  • I am wanting in FME to create a point shapefile that overlays the line at that given depth.

Does anybody have an approach that they think would work to accomplish this?

Thanks


2 replies

Badge

If I understand you correctly, you want to extract the vertices that match a separate table or file (ie intermediate casing, completion zones, etc.)

So from your 3D wellbores, I would do the following to simulate extracting the vertices (ie directional survey points) from the wellbore into a new file.

  • Chopper

     

    • Mode: By Vertex
    • Max Vertices: 1
  • MeasureExtractor
    • Type: Individual Vertex by Index
    • Dest Att: _point_measure
    • Index: 0
  • Next step can be done one of a few ways.
    • You can hardcode it in with an Attribute Range Filter or
    • Programmatically extract the vertices with a TestFilter and the values from your text file as it can do ranges as well.
    • If you need to extract the same vertex multiple times you will need to create a custom transformer and loop the output back to the start. Also you will want a counter so itdoesn't loop infinitely.
    • I can explain in more detail if this approach is what you are looking for.

In this example I've added an AttributeRangeFilter for _point_measure 0 - 10000 to simulate casing from the surface to the heal and colored in RED.

Also I filtered on 15000 to 18000 to simulate a completion zone or other section of interest in GREEN.

If you want a line or linear feature instead of vertices simply add a PointConnector with a GroupBy clause.

Matt...

Userlevel 4
Badge +25

A quick solution (although I may not fully understand the problem) use a BoundsExtractor to find the minimum Z value, then use a 3DForcer setting the value to the minimum Z. That way you're flattening out the feature into a line at the correct depth. Then - to get points - use a Chopper transformer.

Reply