Invest模型年产水量最简洁明了之教程

 

Tips數據空間分辨率建议重采样至一致,但基于目前的尝试来说不进行空间分辨率统一并不对结果产生影响,栅格和矢量数据要定義投影坐標系以保證具有綫性單位

一、必须数据及数据格式

Workspace:工作空間 建一個專屬文件夾

PrecipitationRaster):降水数据

EvapotranspirationRaster)):蒸发数据

Root Restricting Layer DepthRaster):植被根系限制层数据

植被根系限制层数据如果较难直接找到,根据官方文档的参考该数据可以使用土层深度进行替换

Plant Available Water ContentRaster):土层内植被可用水量

Land Use/Land CoverRaster):土地利用数据

Biophysical TableCSV):植被生理系数表

Z Parameter(键入数字):水文地质特征及降水季节分布

Watersheds:研究区边界文件

二、标红数据

标红数据是本人认为较难下载处理的数据,与传统的数据下载所见即所得不同,此类数据下载后处理较为繁琐,需要借助较多软件

1.Root Restricting Layer DepthRaster):植被根系限制层数据和Plant Available Water ContentRaster)):土层内植被可用水量

使用HWSD数据(https://www.fao.org/soils-portal/data-hub/soil-maps-and-databases/harmonized-world-soil-database-v12/en/

 

图 1HWSD官网

 

图 2数据下载处

点击   Download database (.mdb)   HWSD Raster

下载后的处理参见世界土壤数据库(HWSD)全球土壤数据下载处理 - 知乎

2. Biophysical TableCSV):植被生理系数表!!!!!!

该表内的数据不能随意填写,不然结果会有很大的影响

表 1样表

lucode

LULC_desc

lulc_veg

root_depth

kc

0

Nodata

0

-1

0

1

Cropland

1

-1

0.614

2

Forest

1

-1

0.929

3

Shrub

1

-1

0.88

4

Grassland

1

-1

0.88

5

Water

0

-1

0.184

6

Sonw/Ice

0

-1

0.184

7

Barren

0

-1

0

8

Impervious

0

-1

0

Lucode:你所使用的土地利用数据的每一类土地利用类型的值代码

LULC_desc:(可有可无):土地利用类型描述

root_depth:除有植被的土地利用类型以外全部不填,有植被的土地利用类型如草地,林地查不到类似数据的可以以-1替代

lulc_veg:依据官方文档该处是用于对于除湿地之外的所有植被类别输入 1,对于所有其他类别输入 0,包括湿地、城市地区、水体等。

Kc:土地利用类型的植被系数 需要用到计算工具(其实就是官方提供的一个excel表)

下载链接http://data.naturalcapitalproject.org/invest-data/Kc_calculator.xlsx

 

 

图 3 kc tool界面

Kc工具需要用到研究区的研究年的每月蒸发量数据,这里我们使用Google earth engine调用MOD16A2进行相关计算,当然你也可以自己下载相关数据查看

本人已写好并检查完美运行的代码链接如下

https://code.earthengine.google.com/f453cc3af9ab21f9b7a3da3ae5035a09

图4代码界面

 

// 定义 shapefile 文件路径
var shpFile = ee.FeatureCollection('users/lioucc/1');

// 获取区域几何信息
var region = shpFile.geometry();

// 定义时间范围
var startDate = '2022-01-01';
var endDate = '2022-12-31';

// 调用 MODIS/006/MOD16A2 数据集
var dataset = ee.ImageCollection('MODIS/006/MOD16A2')
                  .filterBounds(region)
                  .filterDate(startDate, endDate);

// 选择感兴趣的蒸发数据(ET)
var evapotranspiration = dataset.select('ET');

// 定义时间范围
var months = ee.List.sequence(1, 12);

// 定义一个函数来计算每月最大蒸发量
var calculateMaxEvapotranspiration = function(month) {
  var filtered = evapotranspiration.filter(ee.Filter.calendarRange(month, month, 'month'));
  var monthlyMax = filtered.max();
  var clipped = monthlyMax.clip(region);
  return clipped.set('month', month);
};

// 对每个月应用函数来计算每月最大蒸发量
var monthlyMaxEvapotranspiration = ee.ImageCollection.fromImages(months.map(calculateMaxEvapotranspiration));

// 转换为列表
var monthlyMaxEvapotranspirationList = monthlyMaxEvapotranspiration.toList(monthlyMaxEvapotranspiration.size());

// 定义一个空表格
var table = [];

// 遍历每个月的数据
for (var i = 0; i < months.length().getInfo(); i++) {
  var month = ee.Number(months.get(i));
  var image = ee.Image(monthlyMaxEvapotranspirationList.get(i));
  var evapotranspirationValue = image.reduceRegion({
    reducer: ee.Reducer.mean(),
    geometry: region,
    scale: 1000 // 根据需要修改分辨率
  }).get('ET');
  
  table.push([month, evapotranspirationValue]);
}

// 打印表格
print(ee.List(table));


代码中进行了每个步骤的详细介绍不再赘述,最终的计算结果会出现在console内,计算出结果后按照Kc tool内的要求进行填写就好了

最后就只需要点击RUN等待结果了

前面的其他数据也可以使用gee进行最大值合成并导出以下是代码链接

蒸发数据年最大值合成导出   

https://code.earthengine.google.com/9f97ee9f7f2590279df8cef2a5d5013d

  • 4
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值