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, 地理空间数据, 无后门, 机器学习, 生态学分析, 逆向工具