Open jonathanlintott opened 7 years ago
Planned solution:
I plan to completely re-write how Prospero handles faults. I will use the Trimesh package which has methods to find intersections between different trimeshes. This will require the horizons to be internally converted to trimeshes for intersection-location.
Well, be aware that creating Trimeshes from Fault sticks is not trivial. However, we figured out a way to create Gocad trimesh files from Petrel.
If I can get the Trimesh solution working I will abandon fault sticks altogether and make use of the Gocad importer you have already written for CanopyGeo.
Have a word with Trine regarding that solution because getting a fault surface in Petrel is apparently non-trivial.
No success with trying Trimesh, but after a chat with Adam I've implemented a binary search algorithm instead. My test cases look better. Let me know how it goes for you.
For handover:
If anyone is able to design a better method for finding fault-horizon intersects then it can be implemented in Prospero simply by re-writing the 'find_fault_intersect' method in the BaseModel in the data_model module. It accepts the name of the fault and horizon as arguments and returns an internal Polygon class with the intersect as its x and y data.
From Trine:
Faults are currently not treated correctly. When used with some surfaces they don’t show at all (e.g. LKT80_depth_interpolated_extrapolated_common_grid_Ext_grid1). With surfaces on other grids they show but look very wrong (e.g. LKT80_depth_common_grid). Note that if fault is first shown at the surface where it shows (but looks wrong) it will keep being visible if the surface is changed until the fault is removed. The error message in the folder is given when the fault is loaded onto LKT80_depth_interpolated_extrapolated_common_grid_Ext_grid1
Data files in geophys\geophys\tje048\Prospero\Errors\Faults