ecological-agent-skills 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENT_CONTEXT.md +191 -0
- package/CATALOG.md +329 -0
- package/LICENSE +692 -0
- package/README.md +347 -0
- package/bin/install.mjs +168 -0
- package/docs/comparison-with-alternatives.md +38 -0
- package/docs/global-examples-index.md +103 -0
- package/docs/repository-statistics.md +101 -0
- package/docs/theoretical-foundations.md +188 -0
- package/environment.yaml +106 -0
- package/examples/community/arctic_tundra_vegetation_example.md +247 -0
- package/examples/community/bird_landuse_example.md +63 -0
- package/examples/community/phytoplankton_reservoir_example.md +60 -0
- package/examples/community/reef_fish_indopacific_example.md +221 -0
- package/examples/impact/baci_road_example.md +57 -0
- package/examples/impact/ecosystem_services_atlantic_forest.md +83 -0
- package/examples/impact/forest_loss_borneo_timeseries_example.md +225 -0
- package/examples/occupancy/puma_camera_example.md +61 -0
- package/examples/occupancy/snow_leopard_himalayas_example.md +204 -0
- package/examples/reproducible/whittaker_biome_sdm_example.md +406 -0
- package/examples/sdm/anteater_cerrado_example.md +69 -0
- package/examples/sdm/jaguar_amazon_example.md +80 -0
- package/examples/sdm/koala_climate_change_example.md +170 -0
- package/examples/sdm/wolf_recolonization_europe_example.md +193 -0
- package/package.json +43 -0
- package/renv.lock +194 -0
- package/skills/SKILL_INDEX.json +1020 -0
- package/skills/acoustic-monitoring/SKILL.md +163 -0
- package/skills/acoustic-monitoring/examples/example-prompts.md +100 -0
- package/skills/acoustic-monitoring/examples/temperate_forest_birds_example.md +285 -0
- package/skills/acoustic-monitoring/resources/acoustic-indices-reference.md +93 -0
- package/skills/acoustic-monitoring/resources/soundscape-ecology-guide.md +90 -0
- package/skills/acoustic-monitoring/resources/species-id-tools-comparison.md +89 -0
- package/skills/acoustic-monitoring/scripts/batch_species_detection.py +360 -0
- package/skills/acoustic-monitoring/scripts/compute_acoustic_indices.R +235 -0
- package/skills/acoustic-monitoring/scripts/compute_acoustic_indices.py +374 -0
- package/skills/biostatistics-workbench/SKILL.md +140 -0
- package/skills/biostatistics-workbench/examples/example-prompts.md +39 -0
- package/skills/biostatistics-workbench/resources/effect-size-reference.md +81 -0
- package/skills/biostatistics-workbench/resources/glm-family-link-reference.md +47 -0
- package/skills/biostatistics-workbench/resources/test-selection-guide.md +93 -0
- package/skills/biostatistics-workbench/scripts/glm_pipeline.R +78 -0
- package/skills/biostatistics-workbench/scripts/glm_pipeline.py +210 -0
- package/skills/camera-trap-processing/SKILL.md +159 -0
- package/skills/camera-trap-processing/examples/example-prompts.md +103 -0
- package/skills/camera-trap-processing/examples/leopard_serengeti_example.md +231 -0
- package/skills/camera-trap-processing/resources/activity-patterns-reference.md +113 -0
- package/skills/camera-trap-processing/resources/camtrapR-workflow-guide.md +130 -0
- package/skills/camera-trap-processing/resources/detection-event-definition-guide.md +89 -0
- package/skills/camera-trap-processing/scripts/estimate_activity.R +169 -0
- package/skills/camera-trap-processing/scripts/process_camtrap_data.R +179 -0
- package/skills/camera-trap-processing/scripts/process_camtrap_data.py +192 -0
- package/skills/community-ecology-ordination/SKILL.md +133 -0
- package/skills/community-ecology-ordination/examples/example-prompts.md +35 -0
- package/skills/community-ecology-ordination/resources/dissimilarity-metric-guide.md +53 -0
- package/skills/community-ecology-ordination/resources/nmds-interpretation-guide.md +104 -0
- package/skills/community-ecology-ordination/scripts/__pycache__/community_analysis.cpython-311.pyc +0 -0
- package/skills/community-ecology-ordination/scripts/community_analysis.R +143 -0
- package/skills/community-ecology-ordination/scripts/community_analysis.py +231 -0
- package/skills/ecological-data-foundation/SKILL.md +129 -0
- package/skills/ecological-data-foundation/examples/example-prompts.md +40 -0
- package/skills/ecological-data-foundation/resources/coordinate-cleaning-flags.md +66 -0
- package/skills/ecological-data-foundation/resources/darwin-core-glossary.md +91 -0
- package/skills/ecological-data-foundation/resources/data-citation-guide.md +265 -0
- package/skills/ecological-data-foundation/resources/gbif-data-citation-guide.md +193 -0
- package/skills/ecological-data-foundation/resources/qa-checklist.md +83 -0
- package/skills/ecological-data-foundation/scripts/__pycache__/clean_occurrences.cpython-311.pyc +0 -0
- package/skills/ecological-data-foundation/scripts/__pycache__/download_from_ebird.cpython-311.pyc +0 -0
- package/skills/ecological-data-foundation/scripts/__pycache__/download_from_inat.cpython-311.pyc +0 -0
- package/skills/ecological-data-foundation/scripts/__pycache__/download_from_iucn.cpython-311.pyc +0 -0
- package/skills/ecological-data-foundation/scripts/__pycache__/download_from_obis.cpython-311.pyc +0 -0
- package/skills/ecological-data-foundation/scripts/clean_occurrences.R +230 -0
- package/skills/ecological-data-foundation/scripts/clean_occurrences.py +268 -0
- package/skills/ecological-data-foundation/scripts/download_from_ebird.R +251 -0
- package/skills/ecological-data-foundation/scripts/download_from_ebird.py +364 -0
- package/skills/ecological-data-foundation/scripts/download_from_gbif.R +315 -0
- package/skills/ecological-data-foundation/scripts/download_from_gbif.py +407 -0
- package/skills/ecological-data-foundation/scripts/download_from_inat.R +238 -0
- package/skills/ecological-data-foundation/scripts/download_from_inat.py +304 -0
- package/skills/ecological-data-foundation/scripts/download_from_iucn.R +273 -0
- package/skills/ecological-data-foundation/scripts/download_from_iucn.py +344 -0
- package/skills/ecological-data-foundation/scripts/download_from_obis.R +248 -0
- package/skills/ecological-data-foundation/scripts/download_from_obis.py +318 -0
- package/skills/ecological-impact-assessment/SKILL.md +123 -0
- package/skills/ecological-impact-assessment/examples/example-prompts.md +32 -0
- package/skills/ecological-impact-assessment/resources/baci-design-guide.md +55 -0
- package/skills/ecological-impact-assessment/resources/fragmentation-metrics-reference.md +86 -0
- package/skills/ecological-impact-assessment/resources/pressure-index-template.md +78 -0
- package/skills/ecological-impact-assessment/resources/study-design-guide.md +168 -0
- package/skills/ecological-impact-assessment/scripts/baci_analysis.R +161 -0
- package/skills/ecological-impact-assessment/scripts/fragmentation_analysis.py +141 -0
- package/skills/ecological-impact-assessment/scripts/power_analysis_baci.R +274 -0
- package/skills/ecosystem-services-assessment/SKILL.md +125 -0
- package/skills/ecosystem-services-assessment/examples/example-prompts.md +24 -0
- package/skills/ecosystem-services-assessment/resources/es-indicator-reference.md +45 -0
- package/skills/ecosystem-services-assessment/resources/invest-parameter-guide.md +86 -0
- package/skills/ecosystem-services-assessment/resources/rusle-coefficients.md +88 -0
- package/skills/ecosystem-services-assessment/scripts/__pycache__/compute_es.cpython-311.pyc +0 -0
- package/skills/ecosystem-services-assessment/scripts/compute_es.py +189 -0
- package/skills/ecosystem-services-assessment/scripts/tradeoff_analysis.R +161 -0
- package/skills/environmental-time-series/SKILL.md +125 -0
- package/skills/environmental-time-series/examples/example-prompts.md +33 -0
- package/skills/environmental-time-series/resources/anomaly-indices-reference.md +88 -0
- package/skills/environmental-time-series/resources/bfast-parameter-guide.md +69 -0
- package/skills/environmental-time-series/scripts/__pycache__/recovery_trajectory.cpython-311.pyc +0 -0
- package/skills/environmental-time-series/scripts/__pycache__/trend_analysis.cpython-311.pyc +0 -0
- package/skills/environmental-time-series/scripts/recovery_trajectory.R +305 -0
- package/skills/environmental-time-series/scripts/recovery_trajectory.py +178 -0
- package/skills/environmental-time-series/scripts/trend_analysis.R +192 -0
- package/skills/environmental-time-series/scripts/trend_analysis.py +184 -0
- package/skills/geoprocessing-for-ecology/SKILL.md +123 -0
- package/skills/geoprocessing-for-ecology/examples/example-prompts.md +32 -0
- package/skills/geoprocessing-for-ecology/resources/crs-reference.md +62 -0
- package/skills/geoprocessing-for-ecology/resources/global-predictor-sources.md +331 -0
- package/skills/geoprocessing-for-ecology/resources/resampling-methods.md +57 -0
- package/skills/geoprocessing-for-ecology/scripts/__pycache__/download_predictors.cpython-311.pyc +0 -0
- package/skills/geoprocessing-for-ecology/scripts/download_predictors.R +239 -0
- package/skills/geoprocessing-for-ecology/scripts/download_predictors.py +379 -0
- package/skills/geoprocessing-for-ecology/scripts/stack_and_extract.R +224 -0
- package/skills/geoprocessing-for-ecology/scripts/stack_and_extract.py +172 -0
- package/skills/landscape-connectivity/SKILL.md +170 -0
- package/skills/landscape-connectivity/examples/example-prompts.md +96 -0
- package/skills/landscape-connectivity/examples/jaguar_mesoamerica_corridor_example.md +271 -0
- package/skills/landscape-connectivity/resources/circuitscape-parameter-guide.md +155 -0
- package/skills/landscape-connectivity/resources/graph-theory-for-ecology.md +134 -0
- package/skills/landscape-connectivity/resources/resistance-surface-guide.md +141 -0
- package/skills/landscape-connectivity/scripts/connectivity_analysis.py +387 -0
- package/skills/landscape-connectivity/scripts/connectivity_metrics.R +274 -0
- package/skills/landscape-connectivity/scripts/resistance_surface.R +239 -0
- package/skills/model-validation-and-uncertainty/SKILL.md +131 -0
- package/skills/model-validation-and-uncertainty/examples/example-prompts.md +30 -0
- package/skills/model-validation-and-uncertainty/resources/extrapolation-risk-guide.md +236 -0
- package/skills/model-validation-and-uncertainty/resources/metric-selection-guide.md +52 -0
- package/skills/model-validation-and-uncertainty/resources/threshold-selection-guide.md +64 -0
- package/skills/model-validation-and-uncertainty/scripts/__pycache__/validate_model.cpython-311.pyc +0 -0
- package/skills/model-validation-and-uncertainty/scripts/extrapolation_risk.R +315 -0
- package/skills/model-validation-and-uncertainty/scripts/validate_model.py +226 -0
- package/skills/model-validation-and-uncertainty/scripts/validate_sdm.R +162 -0
- package/skills/occupancy-and-detection/SKILL.md +126 -0
- package/skills/occupancy-and-detection/examples/example-prompts.md +33 -0
- package/skills/occupancy-and-detection/resources/detection-history-format.md +100 -0
- package/skills/occupancy-and-detection/resources/occupancy-study-design.md +47 -0
- package/skills/occupancy-and-detection/scripts/__pycache__/occupancy_analysis.cpython-311.pyc +0 -0
- package/skills/occupancy-and-detection/scripts/occupancy_analysis.R +160 -0
- package/skills/occupancy-and-detection/scripts/occupancy_analysis.py +159 -0
- package/skills/population-viability-analysis/SKILL.md +161 -0
- package/skills/population-viability-analysis/examples/african_elephant_pva_example.md +266 -0
- package/skills/population-viability-analysis/examples/example-prompts.md +95 -0
- package/skills/population-viability-analysis/resources/extinction-risk-thresholds.md +128 -0
- package/skills/population-viability-analysis/resources/matrix-model-guide.md +139 -0
- package/skills/population-viability-analysis/resources/sensitivity-elasticity-reference.md +182 -0
- package/skills/population-viability-analysis/scripts/matrix_pva.R +258 -0
- package/skills/population-viability-analysis/scripts/pva_analysis.py +442 -0
- package/skills/population-viability-analysis/scripts/stochastic_pva.R +353 -0
- package/skills/predictive-modeling-best-practices/SKILL.md +136 -0
- package/skills/predictive-modeling-best-practices/examples/example-prompts.md +58 -0
- package/skills/predictive-modeling-best-practices/resources/collinearity-decision-tree.md +65 -0
- package/skills/predictive-modeling-best-practices/resources/sampling-bias-correction.md +267 -0
- package/skills/predictive-modeling-best-practices/resources/spatial-cv-guide.md +73 -0
- package/skills/predictive-modeling-best-practices/scripts/__pycache__/spatial_cv.cpython-311.pyc +0 -0
- package/skills/predictive-modeling-best-practices/scripts/collinearity_check.R +112 -0
- package/skills/predictive-modeling-best-practices/scripts/spatial_cv.py +182 -0
- package/skills/reproducible-ecology-pipeline/SKILL.md +139 -0
- package/skills/reproducible-ecology-pipeline/examples/example-prompts.md +35 -0
- package/skills/reproducible-ecology-pipeline/resources/directory-structure-template.md +94 -0
- package/skills/reproducible-ecology-pipeline/resources/params-yaml-template.yaml +84 -0
- package/skills/reproducible-ecology-pipeline/resources/reproducibility-checklist-template.md +66 -0
- package/skills/reproducible-ecology-pipeline/scripts/generate_file_manifest.py +110 -0
- package/skills/reproducible-ecology-pipeline/scripts/init_project.sh +53 -0
- package/skills/spatial-prioritization/SKILL.md +162 -0
- package/skills/spatial-prioritization/examples/biodiversity_hotspot_prioritization_example.md +289 -0
- package/skills/spatial-prioritization/examples/example-prompts.md +93 -0
- package/skills/spatial-prioritization/resources/cost-surface-reference.md +130 -0
- package/skills/spatial-prioritization/resources/marxan-vs-prioritizr-comparison.md +125 -0
- package/skills/spatial-prioritization/resources/prioritizr-formulation-guide.md +188 -0
- package/skills/spatial-prioritization/resources/representation-targets-guide.md +186 -0
- package/skills/spatial-prioritization/scripts/prioritization_sensitivity.R +320 -0
- package/skills/spatial-prioritization/scripts/run_prioritization.R +336 -0
- package/skills/species-distribution-modeling/SKILL.md +139 -0
- package/skills/species-distribution-modeling/examples/example-prompts.md +36 -0
- package/skills/species-distribution-modeling/resources/algorithm-comparison.md +25 -0
- package/skills/species-distribution-modeling/resources/calibration-area-guide.md +71 -0
- package/skills/species-distribution-modeling/resources/climate-scenario-preparation.md +170 -0
- package/skills/species-distribution-modeling/resources/maxent-calibration-guide.md +211 -0
- package/skills/species-distribution-modeling/resources/sdm-checklist.md +37 -0
- package/skills/species-distribution-modeling/scripts/predict_distribution.R +236 -0
- package/skills/species-distribution-modeling/scripts/predict_distribution.py +286 -0
- package/skills/species-distribution-modeling/scripts/prepare_future_layers.R +351 -0
- package/skills/species-distribution-modeling/scripts/project_scenarios.R +220 -0
- package/skills/species-distribution-modeling/scripts/run_ensemble_sdm.R +99 -0
- package/skills/species-distribution-modeling/scripts/sdm_pipeline.py +318 -0
- package/skills/species-distribution-modeling/scripts/tune_maxnet.R +344 -0
- package/templates/SKILL_TEMPLATE.md +225 -0
- package/templates/checklists/data-submission-checklist.md +38 -0
- package/templates/checklists/post-analysis-checklist.md +55 -0
- package/templates/checklists/pre-analysis-checklist.md +31 -0
- package/templates/prompts/debug-skill.md +47 -0
- package/templates/prompts/invoke-skill.md +34 -0
- package/templates/prompts/invoke-workflow.md +45 -0
- package/templates/reports/technical-report-template.md +80 -0
- package/templates/scripts/logger_setup.R +79 -0
- package/templates/scripts/logger_setup.py +119 -0
- package/templates/scripts/params_loader.R +28 -0
- package/templates/scripts/params_loader.py +38 -0
- package/workflows/analyze-community-structure/WORKFLOW.md +72 -0
- package/workflows/analyze-environmental-change/WORKFLOW.md +73 -0
- package/workflows/assess-ecological-impact/WORKFLOW.md +75 -0
- package/workflows/assess-ecosystem-services/WORKFLOW.md +68 -0
- package/workflows/assess-landscape-connectivity/WORKFLOW.md +84 -0
- package/workflows/build-fire-risk-map/WORKFLOW.md +79 -0
- package/workflows/produce-technical-report/WORKFLOW.md +113 -0
- package/workflows/run-camera-trap-occupancy/WORKFLOW.md +87 -0
- package/workflows/run-conservation-prioritization/WORKFLOW.md +89 -0
- package/workflows/run-multispecies-screening/WORKFLOW.md +197 -0
- package/workflows/run-occupancy-analysis/WORKFLOW.md +74 -0
- package/workflows/run-population-viability/WORKFLOW.md +90 -0
- package/workflows/run-sdm-study/WORKFLOW.md +99 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
# Worked Example: Forest Loss Time Series — Oil Palm Expansion in Borneo
|
|
2
|
+
|
|
3
|
+
**Workflow:** assess-ecological-impact
|
|
4
|
+
**System:** Tropical rainforest of Borneo (Malaysia: Sabah/Sarawak; Indonesia: Kalimantan)
|
|
5
|
+
**Disturbance:** Oil palm concession establishment (2008--2012)
|
|
6
|
+
**Analysis:** BFAST breakpoint detection + landscape fragmentation (MESH) + BACI design
|
|
7
|
+
**Highlight:** Integration of NDVI time series with fragmentation metrics to quantify commodity-driven deforestation impact
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Step 1 --- Data Sources
|
|
12
|
+
|
|
13
|
+
| Dataset | Source | Spatial resolution | Temporal extent | Access |
|
|
14
|
+
|---------|--------|-------------------|----------------|--------|
|
|
15
|
+
| Hansen Global Forest Change (GFC) | University of Maryland / USGS | 30 m | 2000--2023 | Open; doi:10.1126/science.1244693 |
|
|
16
|
+
| MODIS NDVI (MOD13Q1) | NASA LP DAAC | 250 m, 16-day composites | 2000--2023 | Open; MODIS product |
|
|
17
|
+
| Oil palm concession boundaries | WRI Global Forest Watch | Vector polygons | Updated 2023 | Open; WRI |
|
|
18
|
+
| Borneo DEM (SRTM) | NASA / USGS | 90 m | Static (2000) | Open; SRTM v4.1 |
|
|
19
|
+
|
|
20
|
+
Hansen GFC layers used: `treecover2000` (baseline canopy cover %), `lossyear` (annual loss 2001--2023), `gain` (binary gain 2000--2012).
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Step 2 --- Study Design (BACI)
|
|
25
|
+
|
|
26
|
+
| Component | Description |
|
|
27
|
+
|-----------|-------------|
|
|
28
|
+
| Impact sites | 12 oil palm concession areas established 2008--2012 |
|
|
29
|
+
| Control sites | 12 matched protected forest areas (Sabah Parks, Heart of Borneo corridor) |
|
|
30
|
+
| Matching criteria | Elevation (< 150 m difference), slope (< 5 deg difference), initial tree cover (> 85% in both) |
|
|
31
|
+
| Before period | 2000--2007 (pre-concession baseline) |
|
|
32
|
+
| After period | 2013--2023 (post-conversion monitoring) |
|
|
33
|
+
| Buffer | 2008--2012 excluded as transition window |
|
|
34
|
+
|
|
35
|
+
**Response variables:**
|
|
36
|
+
|
|
37
|
+
| Variable | Source | Unit |
|
|
38
|
+
|----------|--------|------|
|
|
39
|
+
| NDVI trend | MODIS MOD13Q1 | Dimensionless (0--1) |
|
|
40
|
+
| Tree cover | Hansen GFC treecover2000 + lossyear | % canopy cover |
|
|
41
|
+
| Effective mesh size (MESH) | Derived from GFC binary forest mask | ha |
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Step 3 --- NDVI Time Series Analysis (BFAST)
|
|
46
|
+
|
|
47
|
+
BFAST decomposition applied to each site's mean NDVI time series (n = 552 composites per site over 2000--2023):
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
Y_t = T_t + S_t + e_t
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
where T_t = trend component, S_t = seasonal component, e_t = remainder.
|
|
54
|
+
|
|
55
|
+
### Breakpoint Detection Summary
|
|
56
|
+
|
|
57
|
+
| Metric | Impact sites (n = 12) | Control sites (n = 12) |
|
|
58
|
+
|--------|----------------------|----------------------|
|
|
59
|
+
| Sites with significant negative breakpoint | 10 (83%) | 1 (8%) |
|
|
60
|
+
| Sites with breakpoint within 2 yr of concession start | 10 (87% of detected) | 0 (0%) |
|
|
61
|
+
| Mean breakpoint year | 2010.4 +/- 1.1 | --- |
|
|
62
|
+
| Mean NDVI at breakpoint (drop magnitude) | -0.28 +/- 0.06 | -0.04 +/- 0.02 |
|
|
63
|
+
| Mean pre-breakpoint NDVI | 0.82 +/- 0.03 | 0.84 +/- 0.02 |
|
|
64
|
+
| Mean post-breakpoint NDVI | 0.54 +/- 0.08 | 0.80 +/- 0.03 |
|
|
65
|
+
|
|
66
|
+
Control site breakpoint (1 site) attributable to localised drought event (2015--2016 El Nino).
|
|
67
|
+
|
|
68
|
+
### Seasonal Component
|
|
69
|
+
|
|
70
|
+
Seasonal amplitude remained stable in control sites (mean = 0.06) but collapsed post-conversion in impact sites (pre: 0.07, post: 0.03), consistent with replacement of heterogeneous canopy by monoculture.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Step 4 --- Tree Cover Change
|
|
75
|
+
|
|
76
|
+
| Group | Period | Mean tree cover (%) | SD (%) |
|
|
77
|
+
|-------|--------|-------------------|--------|
|
|
78
|
+
| Impact | Before (2000--2007) | 89.2 | 4.1 |
|
|
79
|
+
| Impact | After (2013--2023) | 31.4 | 18.7 |
|
|
80
|
+
| Control | Before (2000--2007) | 91.1 | 3.2 |
|
|
81
|
+
| Control | After (2013--2023) | 87.3 | 5.1 |
|
|
82
|
+
|
|
83
|
+
| Summary | Impact | Control |
|
|
84
|
+
|---------|--------|---------|
|
|
85
|
+
| Absolute change (pp) | **-57.8** | -3.8 |
|
|
86
|
+
| Relative change (%) | -64.8% | -4.2% |
|
|
87
|
+
| Net BACI effect | **-54.0 pp** | --- |
|
|
88
|
+
|
|
89
|
+
The 18.7% SD in post-conversion impact sites reflects heterogeneity among concessions: some retained small forest set-asides (high residual cover) while others cleared to near-zero canopy.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Step 5 --- Fragmentation Analysis (MESH)
|
|
94
|
+
|
|
95
|
+
Effective mesh size (MESH) computed from binary forest mask (tree cover >= 60%) within a 10 km buffer around each site centroid.
|
|
96
|
+
|
|
97
|
+
### Primary Metric: Effective Mesh Size
|
|
98
|
+
|
|
99
|
+
| Group | MESH before (ha) | MESH after (ha) | Change (ha) | Change (%) |
|
|
100
|
+
|-------|-----------------|----------------|------------|-----------|
|
|
101
|
+
| Impact | 4,230 | 142 | -4,088 | **-96.6%** |
|
|
102
|
+
| Control | 5,180 | 4,890 | -290 | -5.6% |
|
|
103
|
+
|
|
104
|
+
### Supplementary Fragmentation Metrics (Impact Sites Only)
|
|
105
|
+
|
|
106
|
+
| Metric | Before (2007) | After (2023) | Change |
|
|
107
|
+
|--------|-------------|------------|--------|
|
|
108
|
+
| Number of patches (NP) | 8.3 +/- 2.1 | 47.6 +/- 12.3 | +473% |
|
|
109
|
+
| Edge density (m/ha) | 42.1 +/- 8.4 | 218.7 +/- 31.2 | +419% |
|
|
110
|
+
| Largest patch index (%) | 78.4 +/- 6.2 | 12.1 +/- 9.8 | -84.6% |
|
|
111
|
+
| Mean patch area (ha) | 1,412 +/- 340 | 38.2 +/- 21.4 | -97.3% |
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Step 6 --- BACI Statistical Model
|
|
116
|
+
|
|
117
|
+
### NDVI Model
|
|
118
|
+
|
|
119
|
+
```r
|
|
120
|
+
library(lme4)
|
|
121
|
+
m_ndvi <- lmer(ndvi ~ period * treatment + (1 | site_pair), data = baci_data)
|
|
122
|
+
anova(m_ndvi, type = "III")
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
| Term | Sum Sq | df | F | p |
|
|
126
|
+
|------|--------|----|----|---|
|
|
127
|
+
| period | 0.012 | 1 | 2.14 | 0.152 |
|
|
128
|
+
| treatment | 0.038 | 1 | 6.71 | 0.014 |
|
|
129
|
+
| **period x treatment** | **0.268** | **1** | **47.3** | **< 0.001** |
|
|
130
|
+
| Residual | 0.249 | 44 | --- | --- |
|
|
131
|
+
|
|
132
|
+
**Effect size (Cohen's d):** 2.8 (very large)
|
|
133
|
+
**95% CI for interaction coefficient:** [-0.34, -0.22]
|
|
134
|
+
|
|
135
|
+
### MESH Model
|
|
136
|
+
|
|
137
|
+
```r
|
|
138
|
+
m_mesh <- lmer(log(mesh + 1) ~ period * treatment + (1 | site_pair), data = baci_data)
|
|
139
|
+
anova(m_mesh, type = "III")
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
| Term | Sum Sq | df | F | p |
|
|
143
|
+
|------|--------|----|----|---|
|
|
144
|
+
| period | 1.42 | 1 | 4.87 | 0.033 |
|
|
145
|
+
| treatment | 3.18 | 1 | 10.91 | 0.002 |
|
|
146
|
+
| **period x treatment** | **9.10** | **1** | **31.2** | **< 0.001** |
|
|
147
|
+
| Residual | 12.84 | 44 | --- | --- |
|
|
148
|
+
|
|
149
|
+
**Effect size (Cohen's d):** 2.1 (very large)
|
|
150
|
+
**Observed statistical power (post hoc):** 0.99 for NDVI interaction; 0.97 for MESH interaction
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Step 7 --- Spatial Pattern of Loss
|
|
155
|
+
|
|
156
|
+
### Lossyear Raster Analysis
|
|
157
|
+
|
|
158
|
+
| Year | Area lost (ha) within concessions | Cumulative loss (%) |
|
|
159
|
+
|------|----------------------------------|-------------------|
|
|
160
|
+
| 2008 | 8,420 | 12.1 |
|
|
161
|
+
| 2009 | 14,630 | 33.2 |
|
|
162
|
+
| 2010 | 16,210 | 56.5 |
|
|
163
|
+
| 2011 | 12,870 | 75.0 |
|
|
164
|
+
| 2012 | 7,340 | 85.6 |
|
|
165
|
+
| 2013--2023 | 10,030 | 100.0 |
|
|
166
|
+
|
|
167
|
+
Peak conversion occurred 2009--2011, accounting for 62.8% of total forest loss within concession boundaries.
|
|
168
|
+
|
|
169
|
+
### Frontier Progression
|
|
170
|
+
|
|
171
|
+
| Distance from existing plantation edge | Proportion of loss |
|
|
172
|
+
|--------------------------------------|-------------------|
|
|
173
|
+
| 0--1 km | 34% |
|
|
174
|
+
| 1--3 km | 28% |
|
|
175
|
+
| 3--5 km | 16% |
|
|
176
|
+
| > 5 km | 22% |
|
|
177
|
+
|
|
178
|
+
**78% of all forest loss occurred within 5 km of existing plantation boundaries**, consistent with a frontier-expansion model of conversion.
|
|
179
|
+
|
|
180
|
+
### Riparian Buffer Compliance
|
|
181
|
+
|
|
182
|
+
| Buffer criterion | Concessions in compliance | Concessions in violation |
|
|
183
|
+
|-----------------|--------------------------|------------------------|
|
|
184
|
+
| 50 m riparian buffer (Malaysian standard) | 7 / 12 (58%) | **5 / 12 (42%)** |
|
|
185
|
+
| 100 m riparian buffer (RSPO guideline) | 3 / 12 (25%) | **9 / 12 (75%)** |
|
|
186
|
+
|
|
187
|
+
43% of concessions violated the 50 m riparian buffer requirement under Malaysian national law; 75% violated the more stringent RSPO voluntary standard.
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Ecological Interpretation
|
|
192
|
+
|
|
193
|
+
1. **Near-total habitat loss.** Oil palm conversion causes abrupt, near-complete canopy removal (mean loss = -57.8 pp) rather than gradual degradation. The BFAST breakpoint timing closely tracks concession establishment dates, confirming a direct causal link between concession licensing and forest loss.
|
|
194
|
+
|
|
195
|
+
2. **Functional isolation of remnant patches.** MESH reduction from approximately 4,230 ha to 142 ha (96.6%) indicates that remaining forest patches are too small and isolated to sustain area-sensitive species. Patch count increased nearly five-fold while mean patch area declined by 97%.
|
|
196
|
+
|
|
197
|
+
3. **Corridor severance.** Riparian buffer violations in 43--75% of concessions (depending on standard applied) sever hydrological and terrestrial corridor connectivity between remaining forest blocks, compounding the isolation effect measured by MESH.
|
|
198
|
+
|
|
199
|
+
4. **Monoculture homogenisation.** Collapse of NDVI seasonal amplitude post-conversion (from 0.07 to 0.03) reflects the replacement of structurally complex rainforest canopy by uniform oil palm plantation, reducing microhabitat heterogeneity.
|
|
200
|
+
|
|
201
|
+
5. **BACI design validation.** Control sites showed minimal change over the same period (tree cover loss = -3.8 pp, MESH loss = -5.6%), confirming that observed impacts at concession sites are attributable to conversion rather than regional climatic trends.
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Recommendations
|
|
206
|
+
|
|
207
|
+
1. **BFAST for abrupt change detection.** BFAST is effective for detecting commodity-driven land-use change in tropical forests where conversion is rapid (1--3 year clearing window). It outperforms linear trend analysis which underestimates the magnitude and timing of impact.
|
|
208
|
+
|
|
209
|
+
2. **Paired response variables.** Combining NDVI time series (intensity of change) with fragmentation metrics (spatial pattern of change) provides complementary evidence: NDVI captures the magnitude and timing of canopy loss while MESH captures the ecological consequences for landscape connectivity.
|
|
210
|
+
|
|
211
|
+
3. **Riparian compliance as standard metric.** Riparian buffer compliance should be included as a routine metric in environmental impact assessments for plantation development. The high violation rate observed here (43--75%) suggests current enforcement is insufficient.
|
|
212
|
+
|
|
213
|
+
4. **Statistical power.** The 12-site-pair design provided observed power >= 0.97 for the detected effect sizes. For smaller effect sizes (Cohen's d >= 0.8), a minimum of 20 site pairs is recommended.
|
|
214
|
+
|
|
215
|
+
5. **Temporal buffer.** Excluding the transition period (2008--2012) from both Before and After groups avoids ambiguity in assignment and strengthens causal inference under the BACI framework.
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## References
|
|
220
|
+
|
|
221
|
+
- Hansen, M.C. et al. (2013). High-resolution global maps of 21st-century forest cover change. *Science*, 342(6160), 850--853. doi:10.1126/science.1244693
|
|
222
|
+
- Verbesselt, J. et al. (2010). Detecting trend and seasonal changes in satellite image time series. *Remote Sensing of Environment*, 114(1), 106--115. doi:10.1016/j.rse.2009.08.014
|
|
223
|
+
- Gaveau, D.L.A. et al. (2016). Rapid conversions and avoided deforestation: examining four decades of industrial plantation expansion in Borneo. *Scientific Reports*, 6, 32017. doi:10.1038/srep32017
|
|
224
|
+
- Jaeger, J.A.G. (2000). Landscape division, splitting index, and effective mesh size: new measures of landscape fragmentation. *Landscape Ecology*, 15, 115--130. doi:10.1023/A:1008129329289
|
|
225
|
+
- Carlson, K.M. et al. (2012). Committed carbon emissions, deforestation, and community land conversion from oil palm plantation expansion in West Kalimantan, Indonesia. *Proceedings of the National Academy of Sciences*, 109(19), 7559--7564. doi:10.1073/pnas.1200452109
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Worked Example: Puma Occupancy from Camera Traps
|
|
2
|
+
|
|
3
|
+
**Workflow:** run-occupancy-analysis
|
|
4
|
+
**Species:** Puma concolor
|
|
5
|
+
**Method:** Single-season occupancy (unmarked)
|
|
6
|
+
**Survey:** 60 camera trap stations, 6 survey occasions (12-day periods), Atlantic Forest
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Detection History Summary
|
|
11
|
+
|
|
12
|
+
- Sites: 60
|
|
13
|
+
- Occasions: 6 (each = 12 days)
|
|
14
|
+
- Total trap-nights: 60 × 72 = 4,320
|
|
15
|
+
- Detections: 89 independent events
|
|
16
|
+
- Sites with ≥ 1 detection: 31 / 60
|
|
17
|
+
- **Naive occupancy:** 0.517
|
|
18
|
+
|
|
19
|
+
## Candidate Models
|
|
20
|
+
|
|
21
|
+
| Model | ψ covariates | p covariates | AICc | ΔAIC | Weight |
|
|
22
|
+
|-------|-------------|-------------|------|------|--------|
|
|
23
|
+
| m3 | forest_cover + dist_to_road | effort | 184.2 | 0.0 | 0.61 |
|
|
24
|
+
| m4 | forest_cover | effort | 186.1 | 1.9 | 0.24 |
|
|
25
|
+
| m2 | dist_to_road | effort | 189.3 | 5.1 | 0.05 |
|
|
26
|
+
| m1 | 1 (null) | effort | 191.7 | 7.5 | 0.02 |
|
|
27
|
+
| m0 | 1 | 1 | 192.4 | 8.2 | 0.01 |
|
|
28
|
+
|
|
29
|
+
## Goodness-of-Fit
|
|
30
|
+
|
|
31
|
+
MacKenzie-Bailey χ² test (1,000 parametric bootstrap iterations):
|
|
32
|
+
χ²_observed = 12.4, p = 0.34 → **No evidence of lack of fit (ĉ ≈ 1.1, use AICc)**
|
|
33
|
+
|
|
34
|
+
## Best Model Results (m3)
|
|
35
|
+
|
|
36
|
+
### Occupancy (ψ)
|
|
37
|
+
|
|
38
|
+
| Covariate | Estimate (logit) | SE | 95% CI (prob) |
|
|
39
|
+
|-----------|----------------|----|--------------|
|
|
40
|
+
| Intercept | 0.42 | 0.31 | — |
|
|
41
|
+
| forest_cover (std) | 1.18 | 0.29 | — |
|
|
42
|
+
| dist_to_road (std) | 0.64 | 0.22 | — |
|
|
43
|
+
|
|
44
|
+
**Mean ψ = 0.71** (95% CI: 0.58–0.81)
|
|
45
|
+
|
|
46
|
+
### Detection (p)
|
|
47
|
+
|
|
48
|
+
| Covariate | Estimate (logit) | SE | p (prob scale) |
|
|
49
|
+
|-----------|----------------|----|--------------|
|
|
50
|
+
| Intercept | -1.24 | 0.19 | — |
|
|
51
|
+
| effort (std) | 0.38 | 0.11 | — |
|
|
52
|
+
|
|
53
|
+
**Mean p per occasion = 0.22** (95% CI: 0.17–0.28)
|
|
54
|
+
|
|
55
|
+
### Minimum surveys for absence confirmation (p = 0.22, α = 0.05)
|
|
56
|
+
|
|
57
|
+
K ≥ log(0.05) / log(1 − 0.22) ≈ **10.4 → 11 surveys needed to confirm absence**
|
|
58
|
+
|
|
59
|
+
## Ecological Interpretation
|
|
60
|
+
|
|
61
|
+
Puma occupancy was positively associated with forest cover (β = 1.18, p < 0.001) and distance from roads (β = 0.64, p = 0.004). Sites with > 80% forest cover within 2 km had predicted occupancy of 0.89 (95% CI: 0.74–0.96), compared to 0.31 (95% CI: 0.14–0.55) for sites with < 30% forest cover.
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
# Worked Example: Snow Leopard Occupancy in the Central Himalayas
|
|
2
|
+
|
|
3
|
+
**Workflow:** run-occupancy-analysis
|
|
4
|
+
**Species:** Panthera uncia (snow leopard)
|
|
5
|
+
**Study area:** Central Himalayas, Nepal/India border (Kanchenjunga-Makalu landscape)
|
|
6
|
+
**Method:** Single-season occupancy model (unmarked)
|
|
7
|
+
**Survey:** 64 camera trap stations across 4 valleys, 3 survey occasions (30-day periods), Oct--Dec 2023
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Step 1 --- Survey Design
|
|
12
|
+
|
|
13
|
+
| Parameter | Value |
|
|
14
|
+
|-----------|-------|
|
|
15
|
+
| Camera trap stations | 64 (16 per valley) |
|
|
16
|
+
| Valleys surveyed | Ghunsa, Olangchung, Thudam, Papung |
|
|
17
|
+
| Altitude range | 3,200--5,100 m a.s.l. |
|
|
18
|
+
| Survey period | 1 October -- 31 December 2023 |
|
|
19
|
+
| Sampling occasions | 3 (each = 30-day window) |
|
|
20
|
+
| Total trap-nights | 64 x 90 = **5,760** |
|
|
21
|
+
| Camera model | Reconyx HyperFire HP2X |
|
|
22
|
+
| Minimum station spacing | 2.5 km (based on estimated female home range) |
|
|
23
|
+
| Placement protocol | Ridge lines, cliff bases, scent-marking rocks along game trails |
|
|
24
|
+
|
|
25
|
+
Station placement followed a systematic random design stratified by altitude band (3,200--3,800 m, 3,800--4,400 m, 4,400--5,100 m) to ensure representation across the elevational gradient. Two cameras were deployed per station (opposing angles) to maximise individual capture probability and reduce false negatives.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Step 2 --- Detection History Summary
|
|
30
|
+
|
|
31
|
+
| Metric | Value |
|
|
32
|
+
|--------|-------|
|
|
33
|
+
| Total independent detections | 47 events |
|
|
34
|
+
| Stations with >= 1 detection | 22 / 64 |
|
|
35
|
+
| **Naive occupancy** | **0.344** |
|
|
36
|
+
|
|
37
|
+
### Detections per occasion
|
|
38
|
+
|
|
39
|
+
| Occasion | Period | Stations with detection | Detection rate |
|
|
40
|
+
|----------|--------|------------------------|---------------|
|
|
41
|
+
| occ1 | 01 Oct -- 30 Oct | 14 | 0.219 |
|
|
42
|
+
| occ2 | 01 Nov -- 30 Nov | 11 | 0.172 |
|
|
43
|
+
| occ3 | 01 Dec -- 31 Dec | 9 | 0.141 |
|
|
44
|
+
|
|
45
|
+
Detection frequency declined across occasions, consistent with increasing snow accumulation reducing camera trigger reliability and potentially restricting animal movement at the highest stations.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Step 3 --- Site Covariates (Occupancy)
|
|
50
|
+
|
|
51
|
+
All continuous covariates were standardised to zero mean and unit variance (z-score) prior to modelling.
|
|
52
|
+
|
|
53
|
+
| Covariate | Description | Mean | SD | Range |
|
|
54
|
+
|-----------|-------------|------|----|-------|
|
|
55
|
+
| altitude | Elevation (m a.s.l.) | 4,150 | 520 | 3,200--5,100 |
|
|
56
|
+
| ruggedness | Terrain Ruggedness Index (TRI, SRTM 30 m) | 287 | 94 | 112--518 |
|
|
57
|
+
| distance_to_ridge | Distance to nearest ridgeline (km) | 1.42 | 0.87 | 0.08--3.91 |
|
|
58
|
+
| prey_index | Blue sheep (Pseudois nayaur) pellet group count within 500 m radius | 8.3 | 5.1 | 0--24 |
|
|
59
|
+
| human_disturbance | Distance to nearest permanent settlement (km) | 6.7 | 3.4 | 0.9--18.2 |
|
|
60
|
+
|
|
61
|
+
Prey index was derived from systematic pellet transects conducted at each camera station during the deployment visit. Blue sheep pellet groups were counted within a 500 m radius following the protocol of Jackson et al. (2006).
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Step 4 --- Detection Covariates
|
|
66
|
+
|
|
67
|
+
| Covariate | Description | Type | Mean / Levels | Range |
|
|
68
|
+
|-----------|-------------|------|---------------|-------|
|
|
69
|
+
| snow_depth | MODIS fractional snow cover (MOD10A1), 30-day composite per occasion | Continuous | 42% | 0--98% |
|
|
70
|
+
| temperature | Minimum temperature from on-site data logger (degrees C), occasion mean | Continuous | -8.3 | -22.1 -- 3.6 |
|
|
71
|
+
| trail_width | Trail type at station | Categorical | game trail (n=28), livestock trail (n=21), none (n=15) | --- |
|
|
72
|
+
|
|
73
|
+
Snow depth and temperature were expected to influence camera trap performance (battery life, trigger speed) and animal activity patterns. Trail type was hypothesised to affect the probability that a snow leopard, if present, would pass within the camera detection zone.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Step 5 --- Model Selection
|
|
78
|
+
|
|
79
|
+
Models were fitted using the `unmarked` package in R (`occu()` function). Model selection was based on AICc given the moderate sample size (n = 64 sites).
|
|
80
|
+
|
|
81
|
+
| Rank | Model | psi covariates | p covariates | K | AICc | dAICc | w |
|
|
82
|
+
|------|-------|---------------|-------------|---|------|-------|---|
|
|
83
|
+
| 1 | m5 | altitude + altitude^2 + prey_index + ruggedness | snow_depth + trail | 9 | 342.1 | 0.0 | 0.42 |
|
|
84
|
+
| 2 | m4 | altitude + altitude^2 + prey_index | snow_depth + trail | 8 | 343.4 | 1.3 | 0.22 |
|
|
85
|
+
| 3 | m6 | altitude + altitude^2 + prey_index + human_dist | snow_depth | 8 | 344.2 | 2.1 | 0.15 |
|
|
86
|
+
| 4 | m3 | altitude + altitude^2 + ruggedness | snow_depth + trail | 8 | 345.8 | 3.7 | 0.07 |
|
|
87
|
+
| 5 | m2 | altitude + altitude^2 | snow_depth | 5 | 348.9 | 6.8 | 0.01 |
|
|
88
|
+
| 6 | m1 | prey_index | snow_depth | 4 | 352.3 | 10.2 | <0.01 |
|
|
89
|
+
| 7 | m0 | 1 (null) | 1 (null) | 2 | 360.5 | 18.4 | <0.001 |
|
|
90
|
+
|
|
91
|
+
### Goodness-of-fit
|
|
92
|
+
|
|
93
|
+
MacKenzie--Bailey chi-squared test (1,000 parametric bootstrap iterations):
|
|
94
|
+
chi-squared_observed = 14.7, p = 0.28 --> **No evidence of lack of fit (c-hat = 1.12; AICc retained)**
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Step 6 --- Parameter Estimates (Top Model m5)
|
|
99
|
+
|
|
100
|
+
### Occupancy covariates (logit scale)
|
|
101
|
+
|
|
102
|
+
| Covariate | Beta | SE | z | P |
|
|
103
|
+
|-----------|------|----|---|---|
|
|
104
|
+
| Intercept | -0.12 | 0.34 | -0.35 | 0.724 |
|
|
105
|
+
| altitude (linear, std) | 0.41 | 0.28 | 1.46 | 0.143 |
|
|
106
|
+
| altitude^2 (std) | **-0.84** | 0.31 | -2.71 | **0.007** |
|
|
107
|
+
| prey_index (std) | **1.12** | 0.38 | 2.95 | **0.003** |
|
|
108
|
+
| ruggedness (std) | **0.67** | 0.29 | 2.31 | **0.021** |
|
|
109
|
+
|
|
110
|
+
The quadratic altitude term (beta = -0.84) indicates a unimodal response with peak predicted occupancy at approximately 4,200 m a.s.l. Prey availability (beta = 1.12) was the strongest positive predictor: a one-SD increase in pellet count raised the odds of occupancy by a factor of 3.06 (exp(1.12)). Rugged terrain (beta = 0.67) was positively associated with occupancy, consistent with the species' preference for broken cliff habitat.
|
|
111
|
+
|
|
112
|
+
### Detection covariates (logit scale)
|
|
113
|
+
|
|
114
|
+
| Covariate | Beta | SE | z | P |
|
|
115
|
+
|-----------|------|----|---|---|
|
|
116
|
+
| Intercept | -1.14 | 0.26 | -4.38 | <0.001 |
|
|
117
|
+
| snow_depth (std) | **-0.53** | 0.21 | -2.52 | **0.012** |
|
|
118
|
+
| trail_type: game trail | **0.89** | 0.34 | 2.62 | **0.009** |
|
|
119
|
+
| trail_type: livestock trail | 0.31 | 0.36 | 0.86 | 0.389 |
|
|
120
|
+
|
|
121
|
+
Deep snow reduced detection probability (beta = -0.53), likely through impaired camera trigger mechanisms and altered animal movement routes. Cameras on game trails had significantly higher detection than random placements (beta = 0.89), translating to a 2.4-fold increase in the odds of detection per occasion.
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Step 7 --- Derived Estimates
|
|
126
|
+
|
|
127
|
+
| Parameter | Estimate | SE | 95% CI |
|
|
128
|
+
|-----------|----------|----|--------|
|
|
129
|
+
| Model-averaged occupancy (psi-hat) | **0.47** | 0.08 | 0.32--0.63 |
|
|
130
|
+
| Mean detection probability (p-hat) | **0.31** | 0.05 | 0.22--0.42 |
|
|
131
|
+
| Naive occupancy | 0.34 | --- | --- |
|
|
132
|
+
|
|
133
|
+
- Naive occupancy (0.34) **underestimates true occupancy by 28%** (0.47 vs 0.34), underscoring the importance of accounting for imperfect detection in low-density carnivore surveys.
|
|
134
|
+
- Model-averaging was conducted across all models with dAICc < 7 using Burnham--Anderson weights.
|
|
135
|
+
|
|
136
|
+
### Minimum surveys for absence confirmation
|
|
137
|
+
|
|
138
|
+
Given p-hat = 0.31 and a desired confidence of alpha = 0.05:
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
K >= log(0.05) / log(1 - 0.31) = 8.1 --> 9 occasions minimum
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
With only 3 occasions in this study, the probability of detecting the species at an occupied site was:
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
P(detect | present) = 1 - (1 - 0.31)^3 = 0.672
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
This means roughly one-third of occupied sites may go undetected with the current design --- reinforcing that at minimum **4 occasions** are required for reliable inference when p < 0.35.
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Step 8 --- Predicted Occupancy Map
|
|
155
|
+
|
|
156
|
+
Occupancy probability was predicted across a 1 km^2 grid covering the 1,840 km^2 study area using the top model and spatially explicit covariate layers.
|
|
157
|
+
|
|
158
|
+
| Occupancy class | psi range | Area (km^2) | % of study area | Description |
|
|
159
|
+
|-----------------|-----------|-------------|-----------------|-------------|
|
|
160
|
+
| **High** | > 0.6 | 423 | 23% | Alpine ridgelines, 3,900--4,500 m; high prey density; remote from settlements |
|
|
161
|
+
| **Medium** | 0.3--0.6 | 626 | 34% | Transitional slopes; moderate ruggedness; mixed prey availability |
|
|
162
|
+
| **Low** | < 0.3 | 791 | 43% | Valley floors near settlements; very high altitude (> 4,800 m) with sparse prey |
|
|
163
|
+
|
|
164
|
+
High-occupancy zones concentrated along the ridgeline corridor connecting Ghunsa and Thudam valleys, forming a potential dispersal axis for the regional population. The lowest predicted occupancy occurred at elevations above 4,800 m where blue sheep density drops sharply and terrain becomes predominantly glacial.
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Ecological Interpretation
|
|
169
|
+
|
|
170
|
+
1. **Unimodal altitude effect.** The quadratic altitude term reveals peak occupancy at approximately 4,200 m a.s.l., closely matching the upper distribution of blue sheep herds in the study area. Occupancy declines both at lower elevations (where human disturbance increases) and at the highest elevations (where prey becomes scarce and snow cover is persistent). This pattern is consistent with range-wide assessments by the Snow Leopard Trust (2023).
|
|
171
|
+
|
|
172
|
+
2. **Prey availability as the dominant driver.** The prey index (beta = 1.12) emerged as the single strongest predictor of snow leopard site use. This finding aligns with Jackson et al. (2006), who identified ungulate biomass as the primary determinant of snow leopard density across their range. Sites in the upper quartile of prey index (>= 13 pellet groups) had predicted occupancy of 0.74 (95% CI: 0.56--0.87), compared to 0.19 (95% CI: 0.08--0.39) at sites with zero pellet detections.
|
|
173
|
+
|
|
174
|
+
3. **Rugged terrain preference.** Positive association with TRI (beta = 0.67) reflects the species' well-documented reliance on broken cliff habitat for stalking prey, denning, and avoiding interspecific competition. Flat or gently undulating terrain within the study area was largely avoided.
|
|
175
|
+
|
|
176
|
+
4. **Low detection probability.** Mean per-occasion detection of 0.31 confirms that snow leopards are among the most difficult large carnivores to survey. Naive occupancy underestimated model-based occupancy by 28%, a magnitude consistent with findings from other high-altitude felid studies. This underscores the necessity of occupancy modelling frameworks (MacKenzie et al., 2002) for reliable inference on elusive species.
|
|
177
|
+
|
|
178
|
+
5. **Human disturbance signal.** Although distance to settlement did not appear in the top model, it featured in the third-ranked model (dAICc = 2.1, w = 0.15), suggesting a marginal negative effect. Given the conservation relevance of human--wildlife conflict in the region, further investigation with a larger sample is warranted.
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## Recommendations
|
|
183
|
+
|
|
184
|
+
### Survey design
|
|
185
|
+
- **Minimum 4 occasions** recommended for species with p < 0.35 to achieve detection probability > 0.80 at occupied sites.
|
|
186
|
+
- **Camera placement on game trails** increases detection 2.4x relative to random placement; prioritise ridgeline game trails with scent-marking evidence.
|
|
187
|
+
- **Winter surveys (Oct--Dec)** are optimal: reduced vegetation obstruction, snow tracking aids station selection, and snow leopard territorial marking behaviour peaks during pre-mating season.
|
|
188
|
+
|
|
189
|
+
### Conservation priorities
|
|
190
|
+
- Protect the high-occupancy ridgeline corridor (3,900--4,500 m) connecting Ghunsa and Thudam valleys as a priority zone for anti-poaching patrols and livestock management programmes.
|
|
191
|
+
- Expand blue sheep monitoring to quantify prey population trends --- occupancy of the predator is tightly coupled to prey availability.
|
|
192
|
+
- Investigate human disturbance effects with a targeted design including stations at varying distances from settlements to inform community-based conservation interventions.
|
|
193
|
+
|
|
194
|
+
### Analytical considerations
|
|
195
|
+
- With c-hat = 1.12, model fit is acceptable but not exemplary; consider multi-season models as additional years of data accumulate to assess colonisation-extinction dynamics.
|
|
196
|
+
- Bayesian estimation may be preferable for very sparse detection histories (few detections per site) to stabilise parameter estimates.
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## References
|
|
201
|
+
|
|
202
|
+
- Jackson, R.M., Roe, J.D., Wangchuk, R. & Hunter, D.O. (2006). Estimating snow leopard population abundance using photography and capture-recapture techniques. *Wildlife Society Bulletin*, 34(3), 772--781. doi:10.2193/0091-7648(2006)34[772:ESLPAU]2.0.CO;2
|
|
203
|
+
- MacKenzie, D.I., Nichols, J.D., Lachman, G.B., Droege, S., Royle, J.A. & Langtimm, C.A. (2002). Estimating site occupancy rates when detection probabilities are less than one. *Ecology*, 83(8), 2248--2255. doi:10.1890/0012-9658(2002)083[2248:ESORWD]2.0.CO;2
|
|
204
|
+
- Snow Leopard Trust (2023). Range-wide monitoring data. https://snowleopard.org
|