=== versions === python 3.12.0 | laspy 2.7.0 | lazrs 0.8.2 | numpy 2.5.4 | scipy 1.18.1 | rasterio 1.5.2 | shapely 2.2.0 | geopandas 1.2.0 | osmnx 2.1.1 === STAC search === area of interest: 1000 m x 1000 m centred on the Wisconsin State Capitol USGS_LPC_WI_4CountyStatewide_2017_A17_0922 points=4,838,400 USGS_LPC_WI_4CountyStatewide_2017_A17_0872 points=8,367,037 USGS_LPC_WI_4CountyStatewide_2017_A17_0871 points=6,874,459 === madison_downtown.laz === CRS: NAD83 / UTM zone 16N + NAVD88 height points: 5,134,845 | density 5.1 points/m² class points share name 1 432,774 8.4% Unclassified 2 2,327,880 45.3% Ground 5 865,795 16.9% High vegetation 6 1,474,900 28.7% Building 7 1,075 0.0% Low noise 9 31,027 0.6% Water 10 253 0.0% Rail 17 494 0.0% Bridge deck 18 647 0.0% High noise === rasterise to 1 m === DTM cells with a ground or water return: 60.4% DTM 245.6..284.0 m | building nDSM max 86.3 m === building mask === cells with a class 6 return > 2.5 m above ground: 360,203 (36.0%) after closing, hole filling and opening: 371,854 cells, 251 connected footprints of 20 m² or more === split at roof-height steps === 723 roof segments; 117 of 251 footprints were split at height steps > 3.0 m === polygonise and regularise === footprints: 251 polygons | vertices 136 -> 16 on average | {'orthogonal': 177, 'simplified': 59, 'rectangle': 15} | IoU with staircase median 0.889, min 0.800 | area 371,854 -> 381,536 m² roof segments: 723 polygons | vertices 81 -> 11 on average | {'orthogonal': 484, 'simplified': 216, 'rectangle': 23} | IoU with staircase median 0.884, min 0.615 | area 371,854 -> 377,549 m² === heights per polygon === 251 footprints contain 1,443,984 of 1,474,900 class 6 points footprints: area_m2 h_median h_p95 h_max n_points mean 1520.1 10.1 14.4 16.0 5752.9 50% 402.0 8.6 11.1 12.0 1810.0 90% 5297.0 18.3 34.0 37.2 16592.0 max 20512.0 43.5 57.1 86.3 97667.0 tallest five roof segments by 95th-percentile height: bid area_m2 h_median h_p95 h_max floors_est lon lat 385 584.0 65.4 73.8 86.3 19 -89.38417 43.07469 211 449.0 35.1 56.7 59.8 10 -89.38215 43.07645 621 188.0 52.0 54.1 55.0 15 -89.38171 43.07191 476 1085.0 45.0 50.6 53.1 13 -89.37858 43.07404 536 3385.0 46.6 50.5 52.4 13 -89.38824 43.07231 Capitol footprint: 9,486 m², median roof 23.4 m, highest return 86.3 m above ground, 0.8 m from the footprint centroid official height 86.7 m: difference -0.4 m the Capitol footprint was split into 9 roof segments === OpenStreetMap buildings === 601 OSM building polygons in the area, 359,592 m²; 5 have a numeric height tag pixel IoU as downloaded: 0.781; best whole-metre shift +1 m east, -1 m north gives 0.789 applied the shift to the OSM layer pixel level: IoU 0.789 | precision 0.857 | recall 0.909 object level (a match is IoU >= 0.5), 601 OSM buildings: footprints roof segments lidar polygons 251 723 lidar matched 1:1 46.6% 35.5% OSM matched 1:1 19.5% 42.8% lidar matched many:1 78.9% 46.3% median IoU 1:1 0.465 0.28 covering 2+ OSM 99 90 OSM buildings less than 10% covered by lidar footprints: 19, median area 54 m², total 8,741 m²; tags {'yes': 9, 'apartments': 3, 'house': 3} lidar footprints less than 10% covered by OSM: 26, median area 41 m², median p95 height 3.6 m === export === wrote madison_buildings.gpkg (layers: footprints, roof_segments, footprints_staircase, osm_buildings), ndsm_buildings.tif and roof_segment_heights.csv figures written