古村落空心化怎么查?遥感影像如何提取?
你看到的“空村”,卫星早就在偷偷记录了
去年我在浙江参与一个传统村落保护项目时,遇到一个令人揪心的场景:某个明清古村,青石板路还在,马头墙也完整,但白天走在村里,几乎听不到人声——90%的房子门窗紧闭,只有三两位老人坐在祠堂门口晒太阳。当地干部说:“人都去城里打工了,房子空着,塌了都没人修。”

这,就是典型的“空心化”。而更棘手的是——很多地方政府根本不知道哪些村子“空”了、空到什么程度、从什么时候开始空的。 靠人工普查?成本高、周期长、数据滞后。这时候,遥感影像就成了我们的“天眼”。
别被“遥感”两个字吓到。本质上,它就是给地球拍高清照片+视频,只不过相机挂在天上,拍的是光谱,不是美颜。
空心化在遥感图上长什么样?教你一眼识别“鬼村”
很多人以为,空心化=房子没人住=屋顶塌了。错!真正的空心化,在初期往往“外表光鲜”。屋顶完好、院墙整齐,甚至门口还停着返乡过年的车。但如果你会看“细节纹理”和“时间序列”,就能发现端倪:
- 植被入侵庭院:原本硬化的院子或菜地,几年后长出杂草或小灌木——说明无人打理。类比一下:就像你家阳台花盆,一个月不浇水,仙人掌都蔫了。
- 屋顶颜色异常老化:有人居住的房子,屋顶瓦片/铁皮会定期更换或修补,反射率稳定;空置房则因风吹日晒加速褪色、破损,在近红外波段差异明显。
- 夜间灯光消失:用夜光遥感(如NPP-VIIRS)对比春节前后数据,如果节前灯火通明、节后一片漆黑——基本实锤“候鸟式空心”。
我在江西做试点时,就靠这个方法揪出了7个“表面繁荣”的空心村。当地政府一开始还不信:“我们去年才刷了白墙!”——直到我们把2018和2023年的NDVI变化动画放给他们看,院内植被覆盖率从5%飙到60%,他们才哑口无言。
实战教学:用QGIS+Python提取空心化区域(附代码)
理论懂了,怎么落地?下面我拆解一个最小可行流程,工具选免费的QGIS+少量Python脚本,学生党也能跑通。
Step 1:数据准备——找对“时空切片”
- 推荐数据源:
- 高分系列(GF-2/6):2米分辨率,适合看单体建筑,部分区域可免费申请。
- Landsat 8/9 或 Sentinel-2:30米/10米,免费,适合大范围筛查,重点看多时相变化。
- 夜光数据:NASA的 Black Marble(年度合成)或 VIIRS月度产品。
- 时间选择:至少选间隔3年以上的两期影像,避开雨季(云太多)和收割季(农田干扰大)。
Step 2:关键指标计算——让机器替你“数草”
核心思路:量化“人类活动痕迹衰退”。我常用的三个指数:
| 指数 | 作用 | 公式简写 |
|---|---|---|
| NDVI (归一化植被指数) | 检测院落/屋顶植被入侵 | (NIR - Red) / (NIR + Red) |
| NDBI (归一化建筑指数) | 识别建筑材质老化/废弃 | (SWIR - NIR) / (SWIR + NIR) |
| 夜光强度差值 | 捕捉人口流动导致的灯光骤减 | Night_light_t2 - Night_light_t1 |
在QGIS里用“栅格计算器”就能算,比如NDVI:
NDVI = ("B5@1" - "B4@1") / ("B5@1" + "B4@1")
Step 3:变化检测——锁定“退化热点区”
最简单粗暴的方法:做两期NDVI的差值图(ΔNDVI = NDVI_2023 - NDVI_2020)。正值区域(变绿了)大概率是废弃院落。再叠加NDBI下降区域(建筑反射率降低),交叉验证。
嫌手动麻烦?上Python自动化(需安装rasterio和numpy):
import rasterio
import numpy as np
# 读取两期NDVI
with rasterio.open('ndvi_2020.tif') as src1:
ndvi1 = src1.read(1)
with rasterio.open('ndvi_2023.tif') as src2:
ndvi2 = src2.read(1)
# 计算变化量
delta_ndvi = ndvi2 - ndvi1
# 标记显著增长区域(阈值可调)
abandoned_mask = delta_ndvi > 0.2 # 经验阈值,需实地校准
# 输出结果
with rasterio.open('delta_ndvi.tif', 'w', **src1.profile) as dst:
dst.write(delta_ndvi, 1)
跑完后,用QGIS加载结果,红色高亮区就是疑似空心化地块。再叠加上村庄边界矢量,直接导出统计报表。
避坑指南:Dr.Gis踩过的3个大雷
- 别迷信单一指数:某次我只用NDVI,结果把新建的生态停车场误判成“废弃院落”——人家种草皮美化环境呢!一定要结合NDBI和目视解译。
- 分辨率不是越高越好:GF-2虽然清晰,但重访周期长,云覆盖严重。不如用Sentinel-2的10米数据+多时相合成,稳定性更好。
- 地面验证不可省:算法标出的“空心区”,一定要抽样实地拍照。我吃过亏:算法把一片晒谷场当成“荒废空地”,其实村民只是换地方晾稻子了。
结语:技术是尺子,丈量的是乡愁
遥感提取空心化,本质不是冷冰冰的技术活,而是用空间数据为文化保护争取时间窗口。那些被算法标记的红色斑块,背后是一个个离散的家庭和正在消逝的生活记忆。
现在轮到你了:你们家乡有“空心村”吗?你试过用遥感影像分析过类似问题吗?欢迎在评论区贴出你的成果图或踩坑经历——说不定下次教程,我就用你的案例当素材!
-
ArcPy如何批量处理安然产品数据?GIS自动化巡检方案(含:脚本源码) 2026-03-03 08:30:02
-
ArcPy如何批量处理平安产品带图片?GIS属性关联与自动化制图全解(附:完整代码) 2026-03-03 08:30:02
-
ArcPy能做什么副业?GIS数据处理接单实战攻略(附:需求渠道清单) 2026-03-03 08:30:02
-
安睿驰数据如何批量处理?ArcPy自动化方案帮你解放双手(含:代码模板) 2026-03-03 08:30:02
-
安若初裴翊在GIS数据处理中能用ArcPy解决吗?(附:批量处理脚本) 2026-03-03 08:30:02
-
批量处理GIS数据太慢?ArcPy自动化脚本开发教程(附:常用代码集) 2026-03-03 08:30:01
-
ArcPy批量处理数据卡顿?优化脚本运行效率的实战技巧(附:代码模板) 2026-03-03 08:30:01
-
城乡规划数据批量处理太慢?ArcPy脚本自动化方案(含:蔼若春代码实例) 2026-03-03 08:30:01
-
安仁承坪腰鼓队GIS空间分析,ArcPy门票数据自动化怎么搞?(附:Python脚本) 2026-03-03 08:30:01
-
ArcGIS入门学习路径怎么规划?新手必备资源包(含:软件安装与操作手册) 2026-03-03 08:30:01
-
QGIS学习中如何处理dwg文件,附:CAD数据无缝衔接与坐标纠正常见问题集 2026-03-02 08:30:02
-
ArcGIS学习效率低怎么办?独家整理从入门到精通的实战心法(附:工具包) 2026-03-02 08:30:02
-
ArcGIS自学从入门到精通有多难?GIS研习社独家资源包(含:实战案例) 2026-03-02 08:30:02
-
ArcGIS学习效率低?arcgis基础教程视频合集(含:练习数据) 2026-03-02 08:30:02
-
ArcGIS实战教程:空间分析结果总是出错?排查思路与核心参数详解!(附:检查清单) 2026-03-02 08:30:02
-
ArcGIS初学总报错?环境配置和工具箱核心操作避坑指南(含:参数速查表) 2026-03-02 08:30:02
-
新手入门ArcGIS学习卡壳?arcgis基础教程实操详解(附:数据集) 2026-03-02 08:30:02
-
ArcGIS模型构建器总是报错?高效自动化制图的流程优化方案(附:脚本工具箱) 2026-03-02 08:30:02
-
ArcGIS初学者如何快速上手?掌握这4大核心功能与实操技巧(附:学习路线图) 2026-03-02 08:30:02
-
ArcGIS零基础入门如何避坑?实战教学路线图(附:数据练习包) 2026-03-02 08:30:02