Memory

Geoskill: Drone Survey QC

Try it

Automated quality inspection for UAV/drone survey deliverables including aerial images, orthomosaics, DSM/DEM, control points, and aerial triangulation reports. Generates coverage, clarity, seam, and accuracy QA.

What it does

Automated quality inspection for UAV/drone survey deliverables including aerial images, orthomosaics, DSM/DEM, control points, and aerial triangulation reports. Generates coverage, clarity, seam, and accuracy QA.

The skill document

Prerequisites / 先准备 X 文件

⚠️ 必读 — 本 skill 不属于即用型,需要先准备特定文件才能跑。

本 skill 需要 无人机航测项目目录(含 ortho.tif / dsm.tif / 相机位置 / 控制点)。

👉 完整教程见仓库根目录 PREREQUISITES.md 2.2 节。

先准备 X 文件:把航测交付包按指定结构组织好;没有就先用 --synthetic 跑。

快速试跑命令:

python drone_survey_qc.py --project-dir ./my_drone_project --output-dir ./qc

Drone Survey QC

Automated quality inspection for UAV survey deliverables. Checks drone aerial images, orthomosaics, DSM/DEM, control points, and aerial triangulation reports. Generates coverage, clarity, seam, and accuracy QA.

Trigger

Use when the user wants to:

  • Check drone orthomosaic for holes, blur, or seam issues
  • Summarize control point residuals and generate acceptance reports
  • Verify image overlap and GSD meet project specifications
  • Inspect DSM/DEM for nodata holes and elevation anomalies
  • Generate a comprehensive QC report for survey deliverables

CLI Usage

# Synthetic demo mode (no input files needed)
python scripts/drone_survey_qc.py --output-dir ./dsq-output

# With project directory
python scripts/drone_survey_qc.py --project-dir ./survey-project --output-dir ./dsq-output

# With custom QC standards
python scripts/drone_survey_qc.py --standard-config ./my-standards.json --output-dir ./dsq-output

Parameters

ParameterDefaultDescription
--project-dirNoneProject directory to analyze
--orthomosaicNonePath to orthomosaic GeoTIFF
--dsmNonePath to DSM/DEM GeoTIFF
--camera-positionsNonePath to camera positions CSV/JSON
--control-pointsNonePath to control points CSV/JSON
--standard-configNonePath to QC standards JSON (default: references/qc_standards.json)
--output-dir./dsq-outputOutput directory

Output

FileDescription
qc.jsonComprehensive QC results with all metrics
issues.geojsonGeoJSON FeatureCollection of QC issues
image_quality.csvPer-image quality metrics (blur, exposure)
control_point_residuals.csvControl point residual analysis
qc_report.htmlHuman-readable HTML QC report
request.jsonAnalysis request metadata
dataset-manifest.jsonDataset inventory
output-manifest.jsonOutput file inventory
qa.jsonQuality assurance checks

QC Standards

Default thresholds from references/qc_standards.json:

CheckMinimumPreferred
Forward overlap70%80%
Side overlap60%70%
GSD<5.0 cm/px<3.0 cm/px
Blur (Laplacian var)>50>100
GCP RMSE_XY<5 cm<3 cm
Ortho nodata<2%-
DSM nodata<5%-

Key Algorithms

Blur Detection

Uses Laplacian variance — lower values indicate blurrier images. Threshold: variance < 50 = blurry.

Overlap Analysis

Computes ground footprint from camera parameters (altitude, focal length, sensor size) and calculates intersection-over-minimum-area for adjacent pairs. Classifies pairs as forward (same strip) or side (cross-strip) using strip clustering on cross-strip coordinate.

Control Point Analysis

Computes XY, Z, and 3D residuals. Reports RMSE, max residual, and detects outliers using Median Absolute Deviation (MAD) with σ ≈ 1.4826 × MAD.

GSD Computation

GSD (cm/px) = (altitude × sensor_width) / (focal_length × image_width) × 100

Exit Codes

CodeMeaning
0Success
2Argument error
3Dependency missing
6Data validation failure
7Processing failure

Limitations

  • Synthetic demo mode only; file-based mode requires GeoTIFF/CSV input
  • Blur detection is resolution-dependent; calibrate thresholds for your sensor
  • Control point outlier detection requires ≥7 points for MAD-based method
  • Does not replace certified survey inspection for legal/compliance purposes

References

  • CH/T 9024-2014 无人机航测规范
  • DJI Pilot flight planning specifications
  • ASPRS Positional Accuracy Standards for Digital Geospatial Data

数据下载

本 skill 可自动从 Microsoft Planetary Computer 下载数据 (无需 API key):

python drone_survey_qc.py --bbox 116,39,117,40 --date-range 2024-06-01,2024-06-30 --output-dir 
  • --bbox W,S,E,N: WGS-84 边界框 (西, 南, 东, 北)
  • --date-range START,END: 日期范围 (YYYY-MM-DD,YYYY-MM-DD)
  • --aoi-file : 替代 --bbox 的 GeoJSON 多边形
  • --cache-dir : 缓存目录 (默认 ~/.geoskill_cache)

当用户只给 --bbox + --date-range (没有 --orthomosaic) 时,skill 自动下载数据。 当用户给 --orthomosaic 时,走原文件路径 (向后兼容)。

Related skills

Unified geospatial data quality audit for GIS data packages. Checks raster, vector, table, NetCDF, and directory structure. Outputs JSON/HTML reports, issue layers, checksums, and machine-readable exit codes. Use when the user wants to validate data packages, check delivery quality, find CRS/nodata/ geometry issues, or generate QA reports.

1 installs

评估多光谱影像辐射质量(SNR/条纹/坏线)与几何质量(云量/清晰度),输出质量评分 JSON + HTML 报告。Assess radiometric (SNR, striping, dead lines) and geometric (cloud, sharpness) quality of multispectral imagery; outputs a scored JSON and HTML report.

1 installs

检查矢量几何有效性、拓扑错误、属性完整性与 CRS 一致性,输出分级质量报告。Validate geometry validity, topology, attribute completeness and CRS consistency for vector data and emit a graded quality report.

1 installs

Analyze land subsidence from InSAR displacement data. Use when the user wants to analyze changes, detect hazards, or generate assessment reports.

1 installs

Extract building footprints and estimate height, floor count proxy, and volume from DSM/DTM/LiDAR data. Produces 2.5D urban models for 3D city modeling, population downscaling, and risk exposure analysis.

1 installs

Monitor construction progress from multi-temporal satellite imagery. Classifies project stages (clearing, earthwork, foundation, structure, finishing, completed) using spectral indices and detects stagnation. Use when tracking infrastructure projects, auditing construction timelines, or generating progress reports from remote sensing data.

1 installs