Dear FME Community,
I am seeking assistance in developing a Python script for use within an FME workspace to automate the desurveying of diamond drill holes (DDH) using the minimum curvature method. I aim to create a flexible solution that allows users to specify a custom desurvey interval (e.g., 1m, 3m, etc.).
Background:
Desurveying a drill hole involves calculating the actual XYZ coordinates along its length based on the collar location and survey data (azimuth and dip at regular downhole distances).
I've researched existing methods and found the following resources helpful:
- Understanding Drillhole De-surveying: https://seequent.zendesk.com/hc/en-us/articles/360001547955-Understanding-drillhole-de-surveying
- Desurveying Methods and Interactive Tool: https://endarthur.github.io/writting/desurvey.html
- Drillhole Desurveying Python Code (GitHub): https://github.com/WilliamsB39/Drillhole-Desurveying
- QGIS Geoscience Plugin:
- I have also received a python script called Desurvey_intervals.py, that requires geoh5py and numpy.
Desired Functionality:
I need a Python script that can:
- Read DDH survey data: Input should include collar coordinates, downhole distance, azimuth, and dip.
- With any additional attributes: lithology, assays, etc.
- Implement the minimum curvature method: This is the preferred desurveying technique.
- Allow user-defined desurvey intervals:
- Users should be able to specify a desired interval (e.g., 1m, 3m, 5m) to resample the data.
- Users could decide to use the TOP/START, MIDDLE or BOTTOM/END intervals of a chosen qualitative attribute, i.e. lithology
- Output XYZ coordinates: The script should generate a table or feature class containing the calculated XYZ coordinates at the specified intervals.
Test Data:
I have attached a spreadsheet containing test data for a single DDH to aid in development and testing.
Specific Questions:
- Are there existing FME custom transformers or Python libraries that can streamline this process?
- What is the most efficient way to implement the minimum curvature algorithm within an FME PythonCaller transformer?
- What is the best way to handle the geoh5py and numpy dependancies within FME?
- Are there any examples of python scripts that resample data at a user defined interval that can be used as a starting point.
I appreciate any guidance or assistance you can provide.
Thank you for your time and expertise.
Francine
Attachments:
- DDH_Desurvey_FME_transfo_test.xlsx
- Various open source DDH desurveying python scripts