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.
记忆
Geoskill: Drone Survey QC
试用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.
它能做什么
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.
技能文档
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
| Parameter | Default | Description |
|---|---|---|
--project-dir | None | Project directory to analyze |
--orthomosaic | None | Path to orthomosaic GeoTIFF |
--dsm | None | Path to DSM/DEM GeoTIFF |
--camera-positions | None | Path to camera positions CSV/JSON |
--control-points | None | Path to control points CSV/JSON |
--standard-config | None | Path to QC standards JSON (default: references/qc_standards.json) |
--output-dir | ./dsq-output | Output directory |
Output
| File | Description |
|---|---|
qc.json | Comprehensive QC results with all metrics |
issues.geojson | GeoJSON FeatureCollection of QC issues |
image_quality.csv | Per-image quality metrics (blur, exposure) |
control_point_residuals.csv | Control point residual analysis |
qc_report.html | Human-readable HTML QC report |
request.json | Analysis request metadata |
dataset-manifest.json | Dataset inventory |
output-manifest.json | Output file inventory |
qa.json | Quality assurance checks |
QC Standards
Default thresholds from references/qc_standards.json:
| Check | Minimum | Preferred |
|---|---|---|
| Forward overlap | 70% | 80% |
| Side overlap | 60% | 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
| Code | Meaning |
|---|---|
| 0 | Success |
| 2 | Argument error |
| 3 | Dependency missing |
| 6 | Data validation failure |
| 7 | Processing 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 时,走原文件路径 (向后兼容)。
相关技能
评估多光谱影像辐射质量(SNR/条纹/坏线)与几何质量(云量/清晰度),输出质量评分 JSON + HTML 报告。Assess radiometric (SNR, striping, dead lines) and geometric (cloud, sharpness) quality of multispectral imagery; outputs a scored JSON and HTML report.
检查矢量几何有效性、拓扑错误、属性完整性与 CRS 一致性,输出分级质量报告。Validate geometry validity, topology, attribute completeness and CRS consistency for vector data and emit a graded quality report.
Analyze land subsidence from InSAR displacement data. Use when the user wants to analyze changes, detect hazards, or generate assessment reports.
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.
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.