geopandas 1.2.0 | shapely 2.2.0 | matplotlib 3.11.2 | python-ags4 1.2.0 === Step 1: load the logs === item 173984: 112 holes | Phase 2A (item 173975): 20 holes | together 132 holes and 1,766 GEOL intervals === Step 2: project the holes onto the section line === section A-I: 8 legs, 3,217 m long | corridor ±60 m 45 holes within 60 m (cone penetration tests left out: they have no GEOL descriptions) | 35 boreholes 10 m or deeper, 10 trial pits and shallow holes | 11 from Phase 2A distance off the line: median 21 m, 21 within 20 m LOCA_TYPE LOCA_GL LOCA_FDEP chainage offset LOCA_ID CP102 RC 127.6 20.0 51.0 -4.1 CP200 RC 129.7 14.5 213.7 -14.3 DSRC205 RC 167.2 30.0 581.5 -56.2 CP217 RC 195.0 33.5 629.7 45.4 CP210 RC 174.3 25.0 649.5 -54.0 CP211 RC 183.4 35.0 652.8 -21.7 CP214 RC 186.4 25.0 744.1 -15.1 CP215 RC 186.0 25.0 784.3 -33.1 DSRC229 RC 200.4 25.0 877.4 32.1 DSRC107 RC 191.9 30.2 1036.6 -11.8 DSRC108 RC 193.6 49.5 1066.6 -1.3 DSRC301 RC 234.2 105.0 1205.2 28.2 DSRC109 RC 233.0 105.0 1242.7 43.9 RC507 RC 235.2 45.6 1270.9 -7.0 DSRC302 RC 234.5 35.2 1357.3 -1.2 RC508 RC 234.5 41.7 1375.4 14.1 DSRC303 RC 236.2 41.0 1410.5 28.3 DSRC406 RC 238.6 60.0 1413.8 -7.5 OH405 RO 239.5 40.0 1418.6 -19.3 RC509 RC 238.2 49.2 1425.1 19.2 DSRC110 RC 240.0 60.2 1467.8 41.0 RC510 RC 245.0 16.0 1552.5 20.8 DSRCOH410 RC 253.9 60.0 1617.5 -28.4 RC511 RC 264.3 31.3 1739.6 -34.0 DSRCOH306 RC 264.8 60.2 1803.4 56.5 DSRC351 RC 269.1 30.3 1840.4 -8.0 DSRC307 RC 271.8 25.8 1942.0 34.4 RC503 RC 271.7 35.0 1970.5 12.7 RC504 RC 270.7 31.0 2072.9 6.4 DSRCOH308 RC 271.4 70.4 2121.4 9.7 DSRCOH308A RC 271.8 18.5 2131.2 3.4 RC516 RC 277.4 22.2 2372.9 -0.7 OH411 RC 280.5 101.0 2617.1 -1.3 DSRC312 RC 282.2 25.1 2617.6 -40.5 OH413 RC 270.6 100.4 3216.9 2.1 === Step 3: ground profile from Environment Agency LIDAR === 1,609 samples every 2 m: ground 121.0 to 281.0 m OD | steepest 20 m stretch 31 deg across the ±60 m corridor the ground varies by up to 34.4 m (median 13.0 m) LOCA_GL minus LIDAR at the hole: median -0.09 m, 43 of 45 within 0.5 m LOCA_GL minus the profile on the line: up to 15.5 m (CP210, 54 m off the line) === Step 4: pick the contacts in each log === 25 contacts picked in 20 holes (1 fall in a gap with no recovery, up to 0.90 m thick) holes lowest highest surface top of Marlstone Rock 4 157.4 174.2 base of Inferior Oolite 13 190.1 212.0 base of Bridport Sand 2 193.9 195.5 top of Fuller's Earth 3 254.0 270.6 top of Inferior Oolite 3 231.4 274.8 CP217: the sequence repeats from 19.10 m; contacts are taken from the lower, in-place sequence base of the Inferior Oolite in 24 holes; more than 8 m from the median of their neighbours: RC507 (-13.9 m), RC508 (-11.2 m), RC509 (-15.2 m) plane through 21 contacts: dip 1.3 deg towards 76 deg (bearing) | residuals RMS 7.8 m, largest 15.7 m (DSRC404) moving each contact from its hole to the line along that plane changes it by 0.14 m (median), 0.93 m at most === Step 5: correlate the contacts and measure how much is inferred === surface a b gap dz agree FE OH411 DSRC312 0 -3.1 False FE DSRC312 OH413 599 -13.6 True IOG RC516 OH411 244 -16.2 True IOG OH411 OH413 600 -27.1 True BDS DSRC301 DSRC109 38 0.3 True BDS DSRC109 DSRC302 115 -4.3 True BDS DSRC302 DSRC303 53 -2.4 True BDS DSRC303 DSRC406 3 -0.4 True BDS DSRC406 DSRC110 54 0.4 True BDS DSRC110 DSRCOH410 150 3.3 True BDS DSRCOH410 DSRCOH306 186 3.0 True BDS DSRCOH306 DSRCOH308 318 0.3 True BDS DSRCOH308 OH411 496 -17.7 True WHM DSRC301 DSRC109 38 -1.6 True MRB CP217 CP211 23 -16.8 False MRB CP211 CP214 91 13.3 False MRB CP214 CP215 40 -1.4 True how much of each correlation line rests on a log: surface holes drawn_m between_close_holes_m across_wide_gaps_m carried_to_ground_m within_50m_of_a_log neighbours_agree top of Fuller's Earth 3 600 0 599 0.0 17% 1 of 2 top of Inferior Oolite 3 968 0 844 244.0 24% 2 of 2 base of Inferior Oolite 10 1447 412 1000 60.0 47% 9 of 9 base of Bridport Sand 2 84 38 0 90.0 76% 1 of 1 top of Marlstone Rock 4 92 40 0 100.0 73% 1 of 3 where each surface is carried up to the ground (chainage, m): top of Inferior Oolite 2129, base of Inferior Oolite 1145, base of Bridport Sand 1115, top of Marlstone Rock 530 logs on the section that record steep bedding or slickensides: DSRC110, RC507, RC509 CP217: Marlstone Rock at 180.3 m OD in the upper sequence and 174.2 m OD in the lower | neighbours on the line: CP211 157.4, CP214 170.7, CP215 169.3 === Figures === figures written: 01-cross-section.png, 02-section-line-map.png, 03-ground-profile.png, 04-how-much-is-inferred.png, 05-close-ups.png === Step 6: write a GeoPackage for QGIS === section_line 1 LineString corridor 1 Polygon bends 9 Point holes 45 Point Z intervals 699 Point Z contacts 25 Point Z wrote output/a417_section.gpkg, a417_section_dtm_2m.tif (1440 x 830 cells) and ground_profile.csv