专栏名称: 锐多宝
遥感技术教程、资讯与前沿论文
目录
相关文章推荐
英国大家谈  ·  英国大家谈商务合作及转载须知 ·  昨天  
英国大家谈  ·  视频号平台开放广告投放啦! ·  3 天前  
51好读  ›  专栏  ›  锐多宝

GEE:某种地类最长连续出现时间计算

锐多宝  · 公众号  ·  · 2024-08-08 21:33

正文

本文将介绍如何在 Google Earth Engine (GEE)平台上计算某一段时期内,某种地物连续存在的最长时间,比如,在2010-2024年之间,某个区域内撂荒地最长连续存在过多长时间、水体存在的最长时间、森林消失的最长时间、夜光灯光消失的最长时间、耕地存在的最长时间等等。单位为用户自己创建的数据集的时间间隔,可以是年、也可以是月或者日。

结果如下图所示。以土地利用数据为例,研究森林最长连续出现时间,灰色为底图颜色,黑色为5年,墨绿色3年 ,绿色2年 ,黄色1年。

一、核心函数

引入函数库,并调用计算函数:

var eemrl = require('users/949384116/lib:TimeSeriesAnalysis/MaxRunLength');
var result = eemrl.calMaxRunLength(collection);


二、完整示例代码链接

https://code.earthengine.google.com/7b4897b7b254228a834e3cdc7f344697?noload=true

三、完整示例代码

导入自己的研究区,之后直接运行。可以将输入数据集修改为自己的数据集,但是要提前二值化,将不需要关注的类别设置为0,只保留自己关注的类别的变化。

本文以‘COPERNICUS/Landcover/100m/Proba-V-C3/Global’数据集为例,收集了5年的土地利用数据,选择地类标签为114的类别进行计算。假如5年里,114地类最长连续出现时间为5,那么就输出像素值5。

// 加入研究区矢量数据var roi = table;Map.centerObject(roi, 7);
// 验证数据可视化for (var i = 2015; i <= 2019; i++) { var dataset = ee .Image('COPERNICUS/Landcover/100m/Proba-V-C3/Global/' + i) .select('discrete_classification') .clip(roi);
Map.addLayer(dataset.clip(roi), {}, 'Land Cover_' + i, false);}
// 影像二值化与裁剪function maskOffOtherClasses(img) { return img.neq(114).clip(roi);}
// 数据准备var collection = ee .ImageCollection('COPERNICUS/Landcover/100m/Proba-V-C3/Global') .select('discrete_classification') .map(maskOffOtherClasses);
// 导入函数库var eemrl = require('users/949384116/lib:TimeSeriesAnalysis/MaxRunLength');
// 调用函数var






请到「今天看啥」查看全文