Agent skill · data analytics · datadrivenconstruction

drone-site-survey

Process drone survey data for construction sites. Generate orthomosaics, DEMs, point clouds, calculate volumes, track progress, and integrate with BIM models for comparison.

Why this skill is useful

Provides domain-specific algorithms for processing drone survey data, including volume calculations and integration with BIM models.

What it needs

Requires python3 installed locally. About 7k tokens when loaded. Last updated 2026-02-14. 265 stars on the source repository.

What this skill does

Drone Site Survey Processing Overview This skill implements drone data processing for construction site monitoring. Process aerial imagery to generate maps, measure volumes, track progress, and compare with design models. Capabilities: Orthomosaic generation Digital Elevation Model (DEM) creation Point cloud processing Volume calculations Progress monitoring BIM comparison Stockpile measurement Quick Start Comprehensive Drone Survey System Image Processing Pipeline Volume Calculation Engine Progress Monitoring BIM Comparison `python class BIMDroneComparator: """Compare drone survey with BIM model""" def init(self, bimsurface: np.ndarray, dronepointcloud: PointCloud): self.bim = bimsurface self.drone = dronepointcloud def compareelevations(self, gridsize: float = 1.0) -> Dict: """Compare drone elevations with BIM design""" # Create comparison grid xmin = max(np.min(self.bim[:, 0]), np.min(self.drone.points[:, 0])) xmax = min(np.max(self.bim[:, 0]), np.max(self.drone.points[:, 0])) ymin = max(np.min(self.bim[:, 1]), np.min(self.drone.points[:, 1])) ymax = min(np.max(self.bim[:, 1]), np.max(self.drone.points[:, 1])) xgrid = np.arange(xmin, xmax, gridsize) ygrid = np.arange(ymin, ymax, gridsize) xx, yy = np.meshgrid(xgrid, ygrid) # Interpolate both surfaces bimz = griddata(self.bim[:, :2], self.bim[:, 2], (xx, yy), method='linear') dronez = griddata( self.drone.points[:, :2], self.drone.points[:, 2], (xx, yy), method='linear' ) # Calculate differences diff = dronez - bimz validmask = ~np.isnan(diff) validdiff = diff[validmask] return { 'meandiffm': float(np.mean(validdiff)), 'stddiffm': float(np.std(validdiff)), 'maxdiffm': float(np.max(validdiff)), 'mindiffm': float(np.min

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills datadrivenconstruction/drone-site-survey

View the source on GitHub

Browse the @skills marketplace