点击上方蓝字关注我们
遥感影像细碎化耕地提取往往代表小农经济的基本单位,是我国农业的重要研究方向。通过遥感影像提取细碎化耕地信息,可以准确掌握小尺度耕地的数量、分布和动态变化,为精细化农业管理、精准施肥和灌溉提供科学依据,从而提高土地生产力和资源利用效率,推动农业现代化进程。本文我们利用GEE快速实现细碎化耕地的提取,附代码。
1 内容
本文我们采用欧空局的ESA数据为例,以成都市为研究范例(全球尺度只需要按行政或者区块进行分区处理即可),提取细碎化耕地。首先,我们根据ESA的数据,提取耕地的分布情况,代码如下:
// 过滤感兴趣区域(ROI),选择城市为成都的数据
var roi = table.filter(ee.Filter.eq('city', 'chengdu'));
// 加载数据集,并筛选出目标类别为40的区域,裁剪到ROI
var dataset = ESA.first().eq(40).clip(roi);
Map.addLayer(dataset, {palette: ['#d68121', '#42d60c']}, 'Landcover', false);
显示结果如下(蓝色为耕地,橙色为非耕地):
接下来,我们只需要利用GEE的connectedPixelCount函数,就可以实现对于细碎化耕地的提取,connectedPixelCount函数的解析如下:
函数简介
connectedPixelCount
是 Google Earth Engine(GEE)中用于计算每个像素所在连通区域中像素数量的函数。它通过分析图像中每个像素与其相邻像素的连通性,返回一个单波段图像,其中每个像素的值是其所在连通区域的像素总数。参数说明
maxSize
(必需,整数型):定义连通区域的最大像素数。
函数将计算每个像素所在连通区域的像素数量,但如果区域大小超过
maxSize
,将忽略这些超限的像素。范围:0 到 1024(GEE 限制)。
connectivity
(可选,布尔型或整数型):false
(默认):使用 4 连通性(上下左右相邻的像素相连)。true
:使用 8 连通性(上下左右及对角线方向的像素相连)。用于设置像素间的连通性规则:
返回值
类型:
ee.Image
波段:单波段,值为每个像素所在连通区域的像素总数。
这里,我们假设小于30个像元的耕地为细碎化耕地,利用connectedPixelCount函数代码如下:
// 计算连通区域的像素数量
var connectedSize = dataset.connectedPixelCount(30, true); // 使用8连通性
var filteredClassified = dataset.updateMask(connectedSize.lt(30));
// 显示过滤后的结果
Map.addLayer(roi)
Map.addLayer(filteredClassified, {palette: ['#d68121', '#d63000']}, 'Filtered Classified Image');
显示结果如下(红色为提取后的细碎化耕地,绿色为非细碎化耕地,橙色为非耕地,放大后呈现细节):
2 讨论