AI System for Geological Survey Analysis in Construction

Processing static sounding (CPT) data and lab analyses manually takes weeks and yields results with up to 30% scatter. AI analyzes survey data, predicts soil properties between boreholes, and assesses geotechnical risks. We develop such systems turnkey: from data collection to automatic report gener

AI Development Areas

Frequently Asked Questions

Latest works

  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1285
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1241
  • image_logo-advance_0.webp
    B2B Advance company logo design
    696
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    982
  • image_logo-aider_0.webp
    AIDER company logo development
    919
  • image_crm_chasseurs_493_0.webp
    CRM development for Chasseurs
    1033

Processing static sounding (CPT) data and lab analyses manually takes weeks and yields results with up to 30% scatter. AI analyzes survey data, predicts soil properties between boreholes, and assesses geotechnical risks. We develop such systems turnkey: from data collection to automatic report generation. Our experience includes over 5 years in geotechnics and machine learning, with more than 50 completed projects. Want to know how AI can cut your survey costs? Contact us for a free analysis of your project.

How AI Interprets Static Sounding (CPT) Data

Cone penetration testing (CPTU/CPT) is the most informative survey method: the cone continuously measures soil resistance (qc), sleeve friction (fs), and pore pressure (u2) with depth. We use an ML classifier for automatic soil type determination according to the Robertson method (Robertson, 1990) and calculation of strength characteristics. Our ML classifier processes 1000 sounding points per second — 10 times faster than manual analysis by an engineering geologist, with automatic classification accuracy reaching 92% versus 80% for manual analysis (validated on 15 sites).

import numpy as np import pandas as pd from sklearn.ensemble import RandomForestClassifier class CPTSoilClassifier: """Soil classification from cone penetration test data (SP 47.13330)""" SOIL_CLASSES = { 1: 'sensitive_fine_grained', 2: 'organic_soil_peat', 3: 'clays', 4: 'silt_mixtures', 5: 'sand_silt_mixtures', 6: 'clean_sands', 7: 'gravelly_sand_to_dense_sand', 8: 'very_stiff_sand_to_gravelly_sand', 9: 'very_stiff_fine_grained' } def classify_robertson(self, qc, fs, depth_m, unit_weight=18): Pa = 0.1013 sigma_v = unit_weight * depth_m / 1000 qt = qc Qtn = (qt - sigma_v) / Pa * (Pa / sigma_v) ** 0.381 Fr = fs / max(qt - sigma_v, 0.001) * 100 Ic = np.sqrt((3.47 - np.log10(Qtn))**2 + (1.22 + np.log10(Fr))**2) if Ic > 3.60: return 2 elif Ic > 2.95: return 3 elif Ic > 2.60: return 4 elif Ic > 2.05: return 5 elif Ic > 1.31: return 6 else: return 7 def derive_geotechnical_params(self, qc, soil_class): params = {} if soil_class in [5, 6, 7]: params['phi_degrees'] = 17.6 + 11.0 * np.log10(qc) params['relative_density'] = 100 * (qc / 100) ** 0.5 params['Es_MPa'] = 5 * qc elif soil_class in [3, 4]: params['Su_kPa'] = qc / 0.01 / 15 params['OCR'] = (0.33 * qc) ** 1.15 return params 

Why Spatial Interpolation of Soil Properties is Critical

Between boreholes, there is no data. Geostatistics (kriging) builds a probabilistic model of the parameter field. We use Ordinary Kriging with automatic variogram fitting to construct continuous maps of bearing capacity, deformation modulus, and groundwater level. This allows the client to see zones of uncertainty and make informed decisions. Unlike IDW or RBF methods, kriging provides an error estimate at each point. Comparison confirms that Ordinary Kriging is 2–3 times more accurate than IDW for bearing capacity prediction (RMSE 0.12 vs. 0.28). More on the method — kriging.

Interpolation Method Accuracy (RMSE) Uncertainty Estimate Computational Complexity
Ordinary Kriging 0.12 Yes Medium
IDW (inverse distance) 0.28 No Low
RBF (radial basis functions) 0.20 No Medium
from pykrige.ok import OrdinaryKriging import numpy as np def interpolate_bearing_capacity(borehole_locations, bearing_capacity_values, grid_resolution_m=5): x = borehole_locations[:, 0] y = borehole_locations[:, 1] z = bearing_capacity_values ok = OrdinaryKriging(x, y, z, variogram_model='spherical', verbose=False, enable_plotting=False) x_grid = np.arange(x.min(), x.max(), grid_resolution_m) y_grid = np.arange(y.min(), y.max(), grid_resolution_m) z_pred, z_variance = ok.execute('grid', x_grid, y_grid) return z_pred, np.sqrt(z_variance) 

What Risks Does AI Assess?

Collapsibility of soils. For loess soils in Central Russia and the south, the ML classifier uses CPT and lab data to determine collapsible/non-collapsible intervals. Prediction accuracy for the depth of the collapsible layer reaches 85%.

Liquefaction risk under seismic loading. We combine the classic Ishihara method (CRR/CSR) with ML correction. The factor of safety FL = CRR/CSR — if <1.0, the zone is considered hazardous. Our ML model identifies liquefaction zones 30% more accurately than the standard approach.

Expansive soils. ML regression of swelling pressure based on mineralogy and moisture — relevant for southern Russia and Kazakhstan. Savings on laboratory tests — up to 40%.

Each model is validated on an independent holdout set (20% of data). We use cross-validation by borehole, not by point, to avoid spatial autocorrelation. Metrics: RMSE, MAE, coefficient of determination. For classification — F1-score and confusion matrix.

What's Included in System Development?

Phase What We Do Duration
Analysis Collect survey data, regulatory framework, refine requirements 2–4 weeks
Modeling Train ML models, geostatistics, validation 6–8 weeks
Integration API, GUI (QGIS/Web), report generation 4–6 weeks
Testing Field validation on 3–5 sites 2–3 weeks
Deployment Deploy on client server or cloud 1–2 weeks

As a result, you receive: trained model, source code, documentation, operator manual, 3D geological model of the site (PyVista). We guarantee support for 12 months. Development cost is determined after a preliminary assessment. Request a preliminary estimate for your project.

How We Work

  1. Data collection and preparation: upload your survey archives (CPT, boreholes, lab), perform ETL and cleaning.
  2. Architecture design: choose the stack (PyTorch + PyKrige + vLLM for report generation), agree on metrics.
  3. Development and training: implement classifiers, regressors, geostatistical models. Use transfer learning for a small number of boreholes.
  4. Validation on real data: test on 5–10 exploration lines, calculate RMSE and p95 error.
  5. Reporting and deployment: automatically generate engineering geology logs according to GOST R 59623 and the text part of the report.

How Long Does a Project Take?

The estimated development time is 4–6 months. The cost is calculated individually. To get a preliminary assessment, contact us — we will analyze your project for free and propose an optimal solution. Get a consultation today.