Sample app pile drive prediction with Machine Learning



Predict pile drive speed with machine learning
With this open-source sample application you can predict the time it takes to drive piles into a given depth using one of the two available trained Machine Learning models. The sample app provides visualizations that can be used to inspect the soil layout from the information obtained from the uploaded GEF files, which are automatically classified using the Robertson method. Also, a force estimation plot is presented, as well as a map view of the location of the CPT.
artificial intelligence AI machine learning ML engineering construction
Download the White Paper and get INSPIRED

Find out how you can use Artificial Intelligence and Machine Learning to automate engineering processes!

Using the functionality

There are two ways in which you can use the functionality:

  • With VIKTOR, out-of-the-box, using our free version.
  • Without VIKTOR, in that case you create the logic to extract the GEF file data to the structured format needed for the machine learning model to make the prediction yourself.

This is a snippet of the functionality’s code from the VIKTOR GitHub repository.

1@SVGAndDataView("ML prediction plot", duration_guess=3) 2def visualize_prediction(self, params, **kwargs): 3 """ 4 Plot predictions of the penetration speed next to the CPT data (qc and fs) 5 """ 6 data_dict = params.section_2.gef_data 7 diameter = params.section_2.diameter 8 model_option = params.section_3.model_option 9 10 # Predict penetration speed with ML model 11 predictions, elevation_df = ML_processing.ML_prediction( 12 data_dict, 13 diameter, 14 model_option 15 ) 16 17 # Plot ML prediction and CPT data 18 fig, axs = plt.subplots(1, 3, sharey=True, figsize=(7, 6)) 19 axs = axs.flatten() 20 21 fig.suptitle('Pile diameter: '+str(diameter)+r' m') 22 axs[0].plot(predictions, elevation_df, color='black', lw=2) 23 axs[0].set_xlim([0, 1.5 * max(predictions)]) 24 axs[0].set_ylabel('Elevation (from mudline) [m]', fontsize=12) 25 axs[0].set_xlabel('Penetration speed [m/s]', fontsize=12) 26 axs[0].grid() 27 28 ... 29 30 plt.tight_layout() 31 32 # Save fig 33 svg_data = StringIO() 34 fig.savefig(svg_data, format='svg') 35 plt.close() 36 37... 38 39 return SVGAndDataResult(svg_data, ...)

The code snippet reveals how the pile drive prediction is visualized (partially). The input variables needed for the prediction, which is the cpt data (data_dict), the pile diameter (diameter) and the machine learning model name (model_option), are fed into the machine learning function to calculate the predicted speed for all depths of the elevations given by the GEF file.

The results that were calculated are subsequently plotted using Matplotlib’s library, and visualized within the VIKTOR environment using the SVGAndDataResult object. The full code can be found in the repository.

In the video, you can see how pile drive speed is predicted using one of the Machine Learning models in a VIKTOR application in the demo environment.

Apply for a demo account to get access to this and all other VIKTOR sample applications.

Pile drive prediction in 3 steps

As you can see in the video, the process of predicting pile drive speed with the Machine Learning model consists of 3 steps.

  1. Upload a GEF file. This can be done by clicking on the button "Create new object", and uploading a GEF file. A sample GEF file can be found in app/gef/gef_files for testing purposes.
  2. Define the pile diameter, and select the ML model and the depth to be estimated.
  3. Check out the results.

Use the free version or apply for a demo account to try the functionality yourself!

illustration of free trial

Start building apps now

Try for free

Related Blog Posts

Hackathon stimulates knowledge development

Read more
automate chemical engineering web application

Molecule visualization and initial value problems sample apps

Read more
Automatic machine learning sample app

Sample app automatic machine learning

Read more

Free Trial

Start building apps now
Try for free