Estimate forest carbon stock from remote sensing data using BEF, allometric equations, or IPCC Tier 1/2 methods. Includes Monte Carlo uncertainty analysis. Supports raster (GeoTIFF) and tabular (CSV) inputs.
Coding
geoskill-precision-forestry-monitoring
Try itCHM tree height and crown width allometric volume, NDVI/NDRE health grading and SAR biomass fusion for precision forestry
What it does
CHM tree height and crown width allometric volume, NDVI/NDRE health grading and SAR biomass fusion for precision forestry
The skill document
精准林业遥感监测 | Precision Forestry Monitoring
Integrates multi-source remote sensing for stand-scale precision forestry monitoring, covering four levels — individual tree, stand, health and biomass — to support forest resource inventory, carbon sink estimation and management decisions.
Tree height / individual trees: CHM = DSM − DTM, with local peak detection (non-maximum suppression) extracting individual tree locations and heights. Crown width is used to invert diameter at breast height (DBH = k·CW), and the allometric equation V = a·DBH^b·H^c estimates individual-tree volume, which is summed into stand volume. Canopy closure is the proportion of canopy pixels whose CHM exceeds a threshold (∈[0,1]). Health is graded by a combination of NDVI and NDRE (healthy / moderate / stressed). Biomass is estimated from SAR backscatter σ⁰ (dB) → linear → power-function empirical relationships, and management recommendations are generated from canopy closure / stand volume / health.
Dependencies / 依赖
pip install 'numpy' 'rasterio' 'scipy' 'scikit-learn'
Usage / 使用方法
Basic usage
python geoskill-precision-forestry-monitoring.py --bbox 116.0 39.0 117.0 40.0 [other options]
Example 1 (synthetic stand, offline)
python geoskill-precision-forestry-monitoring.py --bbox 116 39 117 40 --synthetic --output-dir ./out
Example 2 (real 6-band imagery (DSM/DTM/Red/NIR/RedEdge/SAR))
python geoskill-precision-forestry-monitoring.py --input forest.tif --output-dir ./out
Example 3 (health grading using NDVI only)
python geoskill-precision-forestry-monitoring.py --input forest.tif --health-method ndvi --output-dir ./out
Example 4 (increase the minimum detection height and window)
python geoskill-precision-forestry-monitoring.py --input forest.tif --min-height 5 --footprint 7 --output-dir ./out
Example 5 (adjust the canopy closure threshold)
python geoskill-precision-forestry-monitoring.py --input forest.tif --closure-threshold 3 --output-dir ./out
Output / 输出
| File | Format | Description |
|---|---|---|
chm.tif | GeoTIFF | Canopy height model (tree height, m) |
health_grade.tif | GeoTIFF | Health grade (3 healthy / 2 moderate / 1 stressed / 0 bare ground) |
biomass_t_ha.tif | GeoTIFF | SAR-derived above-ground biomass (t/ha) |
canopy_mask.tif | GeoTIFF | Canopy cover mask |
trees.geojson | GeoJSON | Individual tree locations (height / crown width / DBH / volume) |
forestry_report.json | JSON | Stand statistics + management recommendations |
output-manifest.json | JSON | Run manifest |
Data Source / 数据源 / Source
Multi-band GeoTIFF with band order DSM / DTM / Red / NIR / RedEdge / SAR. Alternatively, use --synthetic to generate physically consistent simulated data (fully offline).
Privacy / 隐私声明 / Privacy
- Runs offline by default;
--syntheticmode requires no network at all. - All processing is performed locally; user data is never uploaded.
License / License
MIT
name: geoskill-precision-forestry-monitoring description: 'CHM tree height and crown width allometric volume, NDVI/NDRE health grading and SAR biomass fusion for precision forestry'
精准林业遥感监测 | Precision Forestry Monitoring
融合多源遥感实现林分尺度精准林业监测,覆盖“单木—林分—健康—生物量”四个层次,支撑森林资源调查、碳汇估算与经营决策。
树高/单木:CHM = DSM − DTM,局部峰值检测(非极大值抑制)提取单木位置与树高;由冠幅反演胸径 (DBH = k·CW),再用异速生长方程 V = a·DBH^b·H^c 估单木蓄积量并累加为林分蓄积量。郁闭度取 CHM 高于阈值的冠层像元占比(∈[0,1])。健康由 NDVI 与 NDRE 组合分级(健康/中等/胁迫)。生物量由 SAR 后向散射 σ⁰(dB)→线性→幂函数经验关系估算,并据郁闭度/蓄积量/健康生成经营建议。
依赖
pip install 'numpy' 'rasterio' 'scipy' 'scikit-learn'
使用方法
基本用法
python geoskill-precision-forestry-monitoring.py --bbox 116.0 39.0 117.0 40.0 [其他参数]
示例 1(合成林分,离线)
python geoskill-precision-forestry-monitoring.py --bbox 116 39 117 40 --synthetic --output-dir ./out
示例 2(真实 6 波段影像(DSM/DTM/Red/NIR/RedEdge/SAR))
python geoskill-precision-forestry-monitoring.py --input forest.tif --output-dir ./out
示例 3(仅用 NDVI 分级健康)
python geoskill-precision-forestry-monitoring.py --input forest.tif --health-method ndvi --output-dir ./out
示例 4(调高最小检测树高与窗口)
python geoskill-precision-forestry-monitoring.py --input forest.tif --min-height 5 --footprint 7 --output-dir ./out
示例 5(调整郁闭度阈值)
python geoskill-precision-forestry-monitoring.py --input forest.tif --closure-threshold 3 --output-dir ./out
输出
| 文件 | 格式 | 说明 |
|---|---|---|
chm.tif | GeoTIFF | 冠层高度模型(树高,m) |
health_grade.tif | GeoTIFF | 健康分级(3 健康 / 2 中等 / 1 胁迫 / 0 裸地) |
biomass_t_ha.tif | GeoTIFF | SAR 反演地上生物量(t/ha) |
canopy_mask.tif | GeoTIFF | 冠层覆盖掩膜 |
trees.geojson | GeoJSON | 单木位置(树高/冠幅/胸径/蓄积量) |
forestry_report.json | JSON | 林分统计 + 经营建议 |
output-manifest.json | JSON | 运行清单 |
数据源 / Source
多波段 GeoTIFF,波段顺序 DSM / DTM / Red / NIR / RedEdge / SAR。 或使用 --synthetic 生成物理一致的模拟数据(完全离线)。
隐私声明 / Privacy
- 默认离线运行,
--synthetic模式完全无网络。 - 所有处理在本地完成,不上传用户数据。
License
MIT
Related skills
Monitor forest canopy vitality decline, drought stress, pest damage, or wind throw from multi-temporal spectral indices. Distinguishes short-term fluctuations from persistent decline using historical baselines, persistence state machines, and climate attribution. Use when assessing forest health, detecting anomalies, or planning field sampling.
Detect forest disturbance from multi-temporal NDVI. Use when the user wants to analyze changes, detect hazards, or generate assessment reports.
基于 CHM 峰值检测与模板匹配统计果树株数与冠幅。Counts orchard trees and crown widths from CHM peak detection and template matching.
SAR 森林生物量估算:由后向散射 σ⁰ 用线性/饱和经验模型反演森林地上生物量 AGB (t/ha),支持 C/L 波段与地面样本标定
Compute forest fire burn severity from pre/post-fire NIR and SWIR imagery using differenced Normalized Burn Ratio (dNBR). Classifies severity into unburned, low, moderate, and high categories. Use when the user wants to assess burn severity, map fire damage, or generate burn severity reports.