Cast line is obtained from the front row of pre-blast shotplan or boretrak, translating with average 3D burdens distance towards blast direction. In the below image, it displays as the blue dotted line.
Centroid is calculated by each holes. We draw an imaginary perpendicular line to the cast line, passing each hole, and find the cross points with fragmentation outlines (red line in the screenshot).
Two centroid points are calculated. One is preblast center, which is obtained as (0.5 * preblast_avg_3d_burden, 0.5 * bench_height).
The another is postblast center. We obtained a cross section along the imaginary perpendicular line, and calculated weighted X and weighted Y.
deltaY = sample_point.y - minY
weighted_x = Sum (sample_point.x * deltaY) / Sum (deltaY)
weighted_y = Sum (sample_point.y + minY) / sample_point_nums
Then we calculate 2D distance (horizontal distance) and 3D distance between two centroid points.
We are calculating centroid point for each hole, i.e. we are generating the imaginary perpendicular line across each preblast hole. The result is sensitive to muckpile boundary shapes and preblast hole positions. And it might show great difference for different holes.
To calculate cast volume, we require an input from users to indicate the estimated spoil pile degree. we are generating a cut line (blue dotted line in the graph) based on the input value and calculate cast volume (volume below the cut line). Cast volume is not dependent on holes. It would only depend on spoil pile degree input value and muckpile geometries.