susan4syw/Wolf-Habitat-Suitability-Prediction
GitHub: susan4syw/Wolf-Habitat-Suitability-Prediction
基于开源 Python 技术栈重新实现华盛顿州狼群栖息地适宜性 GIS 分析,结合加权叠加与逻辑回归对栖息地质量进行空间建模与预测。
Stars: 0 | Forks: 0
# 华盛顿州狼群栖息地适宜性预测
本项目是对最初在 ArcGIS Pro 中执行的 GIS 分析的 Python 重新实现。它利用公开的开放数据,绘制了华盛顿州的狼群栖息地地图,识别了面临的威胁,并对整个区域的栖息地适宜性进行了评分。
## 项目概述
本项目回答了三个空间问题:
1. **华盛顿州目前的狼群分布在哪里?**
2. **这些栖息地面临着哪些威胁?**(道路、鹿群狩猎、牲畜、土地所有权)
3. **每个区域作为狼群栖息地的适宜程度如何?**(加权叠加 + 机器学习)
## 方法
### 地图 1 — 狼群栖息地
狼群质心数据来源于 [WDFW Open Data portal](https://geodataservices.wdfw.wa.gov/)。在每个狼群周围绘制 5 英里(8 047 米)的缓冲区以界定活动栖息地带。分析表明,狼群主要分布在华盛顿州东北部的森林地带。
### 地图 2 — 威胁分析
识别并叠加缓冲区内的潜在威胁:
- **道路** — 交通事故和栖息地破碎化(WA DOT)
- **鹿群狩猎区** — 靠近狼群领地的合法狩猎(WDFW Game Management Units)
- **畜牧场** — 存栏量 >600,000 头的设施(WSDA / USDA NASS proxy)
- **土地所有权** — 联邦、州、私人和部落土地(BLM Surface Management Agency)
### 地图 3 — 栖息地适宜性评分
每个因子按 1–10 分进行重分类,并通过加权叠加进行组合:
| 因子 | 权重 | 重分类逻辑 |
|--------|--------|------------------------|
| 海拔 | 30% | <8,000 英尺(2,438 米)得 10 分;高于此线性的递减 |
| 距道路距离 | 25% | 得分随距离增加而提高(越远 = 越安全) |
| 距鹿群狩猎区距离 | 25% | 得分随距离增加而提高 |
| 土地所有权 | 20% | 联邦 = 9,州 = 7,私人 = 4,部落 = 3 |
### 机器学习 — Logistic Regression
Logistic regression 模型根据四个原始输入特征预测二元的适宜性(`score ≥ 6` = 适宜)。通过 **5折分层交叉验证** 进行评估,并报告准确率和 ROC-AUC。
## 数据来源
| 图层 | 来源 | 获取方式 |
|-------|--------|--------|
| 狼群位置 | WDFW Open Data | ArcGIS REST API(自动下载) |
| 道路 | WA State DOT | ArcGIS REST API(自动下载) |
| 鹿群狩猎 (GMUs) | WDFW | ArcGIS REST API(自动下载) |
| 牲畜 (>600 k 头) | USDA NASS 2022 Census | 编制的县级质心 |
| 土地所有权 | BLM Surface Management Agency | ArcGIS REST API(自动下载) |
| 海拔 (DEM) | USGS 3DEP via `py3dep` | 自动下载(90 m SRTM fallback) |
| WA State 边界 | US Census (PublicaMundi) | 自动下载 |
所有图层都会在首次运行时自动下载并缓存在 `data/raw/` 中。如果任何 API 不可用,pipeline 会回退到逼真的合成数据,以确保始终能够端到端地运行。
## 项目结构
```
wolf-habitat-wa/
├── main.py # Entry point — runs the full pipeline
├── requirements.txt
├── src/
│ ├── data_loader.py # Download & cache all spatial datasets
│ ├── preprocessing.py # Reproject, clip, rasterize, distance transforms
│ ├── analysis.py # Buffer zones, reclassification, weighted overlay
│ ├── ml_model.py # Logistic regression training & evaluation
│ └── visualization.py # Static Matplotlib maps + interactive Folium map
├── data/
│ ├── raw/ # Downloaded source data (auto-created)
│ └── processed/ # Intermediate rasters (auto-created)
└── output/
├── maps/ # PNG maps + interactive HTML
│ ├── map1_wolf_habitat.png
│ ├── map2_threats.png
│ ├── map3_suitability.png
│ └── interactive_map.html
├── figures/
│ ├── feature_importance.png
│ └── roc_curve.png
└── wolf_habitat_model.pkl
```
## 安装与使用
```
# Clone repo
git clone https://github.com/susan4syw/Wolf-Habitat-Suitability-Prediction.git
cd Wolf-Habitat-Suitability-Prediction
# 创建 virtual environment
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# 运行完整 pipeline
python main.py
```
所有地图和图表均会写入 `output/` 目录。交互式地图(`output/maps/interactive_map.html`)可以直接在任何浏览器中打开。
## 结果
| 指标 | 5折交叉验证 均值 ± 标准差 |
|--------|----------------------|
| 准确率 (Accuracy) | 0.9700 ± 0.0014 |
| ROC-AUC | 0.9945 ± 0.0004 |
特征系数表明,**距道路的距离**和**海拔**是预测适宜性的最强指标,这与狼偏好偏远、低海拔的森林地形的事实一致。
## 依赖项
核心库:`geopandas`、`rasterio`、`shapely`、`scipy`、`scikit-learn`、`matplotlib`、`folium`、`contextily`、`py3dep`、`pygris`。
有关锁定的版本,请参阅 [requirements.txt](requirements.txt)。
## 许可证
MIT — 详见 [LICENSE](LICENSE)。
*最初的 GIS 分析是在 ArcGIS Pro 中为 ESRM 250(华盛顿大学)课程执行的。此 Python 重新实现仅使用开源工具和公开可用的数据。*
标签:Apex, GIS, Python, 地理空间数据, 无后门, 机器学习, 生态学分析, 逆向工具