-
Notifications
You must be signed in to change notification settings - Fork 0
Workflow Overview
AdriΓ‘n JosΓ© Riquelme Guill edited this page Sep 15, 2026
·
4 revisions
DSEpy provides a complete semi-automatic workflow for rock mass discontinuity analysis on 3D point clouds [1, 2]. Built directly inside CloudCompare (CC), it seamlessly bridges raw point cloud editing and advanced geomechanical characterisation.
- Direct Point Cloud Preprocessing: Users can leverage CloudCompare's full suite of editing tools prior to analysisβremoving vegetation, cleaning structural noise, or segmenting specific rock faces.
-
Flexible Normal Vector Sources: DSEpy works directly with any pre-existing normal vectors assigned to the point cloud. Normals can be obtained via:
- Standard CloudCompare computation (
Edit$\rightarrow$ Normals$\rightarrow$ Compute). - The Hough Normals plugin (
Plugins$\rightarrow$ Hough Normals). - External software import (e.g., pre-calculated normals saved in
.ply,.e57, or.ptsfiles).
- Standard CloudCompare computation (
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CloudCompare Preprocessing (Edit/Filter) β
β β’ Noise/Vegetation removal & spatial segmentation β
β β’ Compute normals (CC / Hough Normals / Imported) β
βββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Stage 1: Colour Optimisation β
β β’ Map normals (Nx, Ny, Nz) to 3D color spaces β
β β’ Visual orientation mapping (HSV, CIELAB, OKLCH...) β
βββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Stage 2: Stereonet Analysis & Pole Identification β
β β’ Spherical kernel density estimation (KDE) β
β β’ Locate principal discontinuity set (DS) poles β
βββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Stage 3: Point Cloud Set Classification β
β β’ Angular proximity thresholding (theta) β
β β’ Scalar field assignment per DS in CloudCompare β
βββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Stage 4: Spatial Clustering & Geomechanical Metrics β
β β’ DBSCAN spatial segmentation per family β
β β’ Planar equation fitting (Fixed / Free orientation) β
β β’ Spacing, Persistence, and 3D Facet Mesh extraction β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-
DBTree Selection: Upon launching DSEpy, the module automatically targets the active point cloud entity selected in CloudCompare's Database Tree (
DBTree). -
Validation & Refresh: If no point cloud is highlighted in CC, DSEpy notifies the user that no active entity is detected. To resolve this:
- Clean or segment your point cloud in CC if necessary.
- Ensure normal vectors
$(N_x, N_y, N_z)$ are present (via CCEdit > Normals, Hough Normals, or file import). - Highlight the target point cloud in CC's
DBTree. - Click the Update / Refresh button in DSEpy to establish the connection.
Once connected, switch to the 1. Principal poles tab to begin processing:
-
Cylindrical Colour Map Visualisation:
Inspect structural orientation domains directly on the 3D model. If an optimized rotation matrix was previously calculated (via
Tools$\rightarrow$ Normal Colour Optimisation), select it from the rotation dropdown menu; otherwise, DSEpy operates in the original geographic coordinate space. -
Stereonet Projection & Density Estimation:
- Project normal vectors onto a lower-hemisphere stereonet using Equal-angle (Wulff) or Equal-area (Schmidt) projections.
- Compute spherical Kernel Density Estimation (KDE) to generate density contours for poles and principal pole peaks [1].
-
Principal Poles Summary & Manual Editing:
- Clicking the Automatic calculation button extracts density peaks and populates the Principal Poles Summary panel on the right [1, 2].
- Geologists can manually edit, reorder, add, or delete principal poles to reflect field observations.
- Pairwise Angles: The Pairwise Angles table displays inter-set angular distances (in degrees) between all identified principal poles.
- Progressive Interface Unlocking: Downstream workflow tabs (Clustering, Geomechanical metrics) remain disabled until point cloud classification and set assignments are computed.
Assigning principal poles to individual points classifies the point cloud into Discontinuity Sets (DS) based on angular proximity (
- Scalar Field Generation: DSEpy generates a new Scalar Field (SF) on the active point cloud in CloudCompare containing the set index for each point.
-
Unclassified Points (Value 0): Points exceeding the maximum angular threshold are designated as unclassified noise and assigned a scalar value of
0. -
Filtering Unclassified Points in CloudCompare:
To isolate classified families, use CC's Filter by Value tool (
Edit$\rightarrow$ Scalar Fields$\rightarrow$ Filter by Value):-
Minimum: Set to
1(excludes unassigned0points). - Maximum: Keep at the maximum family index.
-
Minimum: Set to
- Iterative Classification Validation: Inspect the provisional classification in CC's 3D window. If the set boundary assignments require refinement, return to DSEpy, adjust the principal pole orientations or thresholds, and re-run the point assignment. DSEpy will automatically overwrite the existing scalar field in CC.
Once the provisional classification is accepted, DSEpy unlocks the Cluster Analysis tab:
- DBSCAN Clustering: Point cloud sets are spatially segmented into individual joint faces using density-based spatial clustering (DBSCAN) [1, 2].
-
Plane Fitting Options: For each detected cluster, 3D plane equations are calculated under two modal conditions:
- Fixed Orientation: Constrains individual plane normals to the mean set pole direction.
- Free Orientation: Performs an unconstrained local planar fit per cluster.
-
Sensitivity Warning: Cluster extraction depends heavily on DBSCAN parametersβspecifically the search radius (
$\epsilon$ ) and minimum points ($N_{\text{min}}$ ). Ensure parameters match the spatial resolution and point density of your dataset.
| Parameter | Requirement / Value | Notes |
|---|---|---|
| Entity Format | CloudCompare Point Cloud (ccPointCloud) |
Standard point cloud object selected in DBTree |
| Normal Vectors |
|
Generated via CC (Edit > Normals), Hough Normals, or imported externally |
| Coordinate System | Metric scale (meters recommended) | Essential for correct spacing and area values |
| Point Density | Uniform density preferred | Pre-filter vegetation and outliers in CloudCompare |
- Learn about color mapping algorithms in Color Optimization.
- See details on density estimation and stereonets in Stereonet & Poles.
- Riquelme, A. J., AbellΓ‘n, A., TomΓ‘s, R., & Jaboyedoff, M. (2014). A new approach for semi-automatic rock mass joints recognition from 3D point clouds. Computers & Geosciences, 68, 38β52. https://doi.org/10.1016/j.cageo.2014.03.014
- Riquelme, A. (2015). Desarrollo de mΓ©todos para la caracterizaciΓ³n del macizo rocoso mediante nubes de puntos 3D (Doctoral dissertation, Universidad de Alicante). RUA Repository: https://rua.ua.es/entities/publication/78d254b9-1a7b-49b1-a35a-c0edbdeeb225