使用GEE提取多年JRC global surface water

使用GEE提取1990-2020逐年JRC global surface water

所用数据

JRC Yearly Water Classification History, v1.4

该数据集包含 1984 年至 2021 年地表水位置和时间分布图,并提供有关这些水面范围和变化的统计数据。欲了解更多信息,请参阅相关期刊文章: High-resolution mapping of global surface water and its long-term changes (Nature, 2016)和在线数据用户指南(chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://storage.googleapis.com/global-surface-water/downloads_ancillary/DataUsersGuidev2021.pdf)。

这些数据是利用 1984 年 3 月 16 日至 2021 年 12 月 31 日期间采集的 Landsat 5、7 和 8 号卫星的 4,716,475 个场景生成的。使用专家系统将每个像素单独分类为水域/非水域,并将结果整理为整个时间段的月度历史数据和两个时间段(1984-1999 年,2000-2021 年)的变化检测数据。

年度季节性分类集包含根据全年检测到的出现值对水的季节性进行的逐年分类。

该数据分辨率为30m。
共一个波段
0:无数据
1:无水
2:季节性水体
3:永久性水体

在这里插入图片描述

代码

代码实现了以下功能:
1.读取JRC/GSW1_4/YearlyHistory数据
2.读取assets中的shp文件
3.提取出该shp范围内的1990-2020每年的数据,并自动命名,命名格式为“sw”+该年份
4.将所有的坐标系换为EPSG:3395
5.将空间分辨率换为1km
6.在gee中显示每年的结果,默认关闭所有的年份图层
7.将结果导出至Google drive

使用该代码需要替换自己的shp范围
可根据需要改变分辨率、坐标系、导出位置等。

下面展示一些 内联代码片

// 1. 读取JRC/GSW1_4/YearlyHistory数据集
var gswYearly = ee.ImageCollection('JRC/GSW1_4/YearlyHistory');

// 2. 读取assets中的shp文件
var yrb = ee.FeatureCollection('users/yourUsername/shp'); // 此处需替换!!!

// 3. 定义一个函数,用于提取给定年份的数据
function extractAndExportYearlyData(year) {
  var start = ee.Date.fromYMD(year, 1, 1);
  var end = start.advance(1, 'year');
  
  var yearlyImage = gswYearly.filterDate(start, end)
                             .first()
                             .clip(yrb);
  
  // 4. 将所有的坐标系换为EPSG:3395
  var reprojectedImage = yearlyImage.reproject({
    crs: 'EPSG:3395',
    // 5. 将空间分辨率换为1km
    scale: 1000
  });
  
  var imageName = 'sw' + year.toString();//可根据自己需要改名
  
  // 6. 在Map中显示每年的结果
  Map.addLayer(reprojectedImage, {bands: 'waterClass', min: 0, max: 3, palette: ['ffffff', '0000ff']}, imageName, false); // 默认不显示
  
  // 7. 将结果导出至Google drive
  Export.image.toDrive({
    image: reprojectedImage,
    description: imageName,
    folder: 'surface_water', // 你可以修改为你喜欢的文件夹名称
    scale: 1000,
    region: yrb.geometry(),
    fileFormat: 'GeoTIFF',
    crs: 'EPSG:3395'
  });
}

// 对1990到2020年之间的每个年份执行上述函数
for (var i = 1990; i <= 2020; i++) {
  extractAndExportYearlyData(i);
}

Map.centerObject(yrb, 6);

运行代码后,在task中执行任务,将其导出至Google网盘,然后下载
在这里插入图片描述

批量运行task可参考 此链接

最终结果在ArcGIS中打开如图
在这里插入图片描述

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值