Skip to main content
Question

FME Python Script for Automated DDH Desurveying (Minimum Curvature, Flexible Intervals)


3d_ff
Contributor
Forum|alt.badge.img+6
  • Contributor

@daveatsafe 

 

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:

Desired Functionality:

I need a Python script that can:

  1. Read DDH survey data: Input should include collar coordinates, downhole distance, azimuth, and dip.
    • With any additional attributes: lithology, assays, etc.
  2. Implement the minimum curvature method: This is the preferred desurveying technique.
  3. 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
  4. 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

3 replies

3d_ff
Contributor
Forum|alt.badge.img+6
  • Author
  • Contributor
  • April 8, 2025

We have been wanting to automate our drill hole desurveys using FME since 2022, any insights anyone? 


hkingsbury
Celebrity
Forum|alt.badge.img+53
  • Celebrity
  • April 11, 2025

I’ll be honest, I didn’t look at any of the python you included, just looked at the leapfrog documentation to ensure I understood what desurveying was.

I’ve attached an example that is pure fme (no python). The process first calculates the relative offset of each point, then cumulatively calculates the appropriate xyz. Finally it offsets the result from the starting location.

The example was built in 2024.2


3d_ff
Contributor
Forum|alt.badge.img+6
  • Author
  • Contributor
  • April 11, 2025

@hkingsbury Thank you, I will check it out and get back to you. Much appreciated.


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings