AI Geological Survey Analysis System for Construction

We design and deploy artificial intelligence systems: from prototype to production-ready solutions. Our team combines expertise in machine learning, data engineering and MLOps to make AI work not in the lab, but in real business.
Showing 1 of 1 servicesAll 1566 services
AI Geological Survey Analysis System for Construction
Complex
~2-4 weeks
FAQ
AI Development Areas
AI Solution Development Stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1212
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    852
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1041
  • image_logo-advance_0.png
    B2B Advance company logo design
    561
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    822

Development of an AI system for analyzing geological surveys for construction

Engineering geological surveys are a costly process that determines fundamental project decisions. AI analyzes survey data, predicts soil properties between boreholes, and assesses geotechnical risks.

Interpretation of engineering survey data

Processing of sounding data (CPT):

Static penetration testing (CPTU/CPT) is the most informative survey method: the cone measures soil resistance (qc), lateral friction (fs) and pore pressure (u2) continuously over depth.

import numpy as np
import pandas as pd
from sklearn.ensemble import RandomForestClassifier

class CPTSoilClassifier:
    """Классификация грунтов по данным статического зондирования (СП 47.13330)"""

    # Классификатор Robertson (1990) — международный стандарт
    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):
        """
        Классификация по методу Robertson (1990).
        qc: МПа, fs: кПа
        """
        # Normalization
        Pa = 0.1013  # МПа (атмосферное давление)
        sigma_v = unit_weight * depth_m / 1000  # МПа (вертикальное напряжение)
        qt = qc  # упрощение (без поправки на поровое давление)

        # Normalized tip resistance
        Qtn = (qt - sigma_v) / Pa * (Pa / sigma_v) ** 0.381

        # Normalized friction ratio
        Fr = fs / max(qt - sigma_v, 0.001) * 100  # %

        # Soil Behaviour Type Index (Ic)
        Ic = np.sqrt((3.47 - np.log10(Qtn))**2 + (1.22 + np.log10(Fr))**2)

        # Классификация по Ic
        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)  # угол трения (Kulhawy & Mayne)
            params['relative_density'] = 100 * (qc / 100) ** 0.5  # Dr, %
            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

Spatial interpolation of soil properties

Kriging of geological parameters:

There is no data between the wells. Geostatistics (kriging) constructs a probabilistic model of the parameter field:

from pykrige.ok import OrdinaryKriging
import numpy as np

def interpolate_bearing_capacity(borehole_locations, bearing_capacity_values, grid_resolution_m=5):
    """
    Построение карты несущей способности грунта по данным скважин.
    borehole_locations: (n, 2) координаты xy скважин
    bearing_capacity_values: (n,) несущая способность кПа
    """
    x = borehole_locations[:, 0]
    y = borehole_locations[:, 1]
    z = bearing_capacity_values

    # Ordinary Kriging с автоматическим подбором вариограммы
    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)  # предсказание + неопределённость

Geotechnical risk assessment

Soil subsidence:

For loess soils of Central Russia and the south, the critical parameter is: - ML classifier based on laboratory research data + CPT: subsidence/non-subsidence - Forecast of the depth of the subsidence layer between wells

Risk of liquefaction during seismic events:

Japanese method (Ishihara) + ML-correction: - CRR (Cyclic Resistance Ratio) according to CPT - CSR (Cyclic Stress Ratio) according to seismic conditions - Factor of Safety FL = CRR/CSR < 1.0 → liquefaction is probable

Swelling soils:

ML regression of swelling pressure based on mineralogical composition and humidity (relevant for the south of the Russian Federation, Kazakhstan).

Generation of geological documentation

Report automation:

Based on survey data + regulatory framework → autogeneration: - Tables of physical and mechanical characteristics of soils (according to SP 22.13330) - Engineering and geological columns (GOST R 59623) - Text part of the report: template + ML filling from measurement data

3D visualization of the geological model:

PyVista/VTK + interpolated data → 3D engineering-geological model: - Soil layers across the site - Groundwater level - Risk zones (subsidence, liquefaction)

Development time: 4-6 months for an AI survey interpretation system with spatial interpolation and risk assessment.