防风固沙(八)植被因子的计算

大家好,我们今天学习植被因子C的计算,我是通过GEE计算的,下面让我们开始吧!!!

(1)植被因子C的计算公式

C=e^{aSC}

式中:当植被类型为林地时,a取-0.1535,草地:a取-0.1151,耕地:a取-0.0438,水域与建设用地:a取0,裸地:a取-0.0768.

(2)GEE计算植被因子C 

var start_year = 2020
var end_year = 2020

Map.addLayer(roi, {'color':'blue'}, 'StudyArea');
Map.centerObject(roi, 6);


for(var i = start_year; i <= end_year; i++){
    var start_date = (i) + '-05-01';
    var end_date   = (i + 1) + '-10-01';
    
    var dataset = ee.ImageCollection("MODIS/061/MOD13A1")
                    .filterBounds(roi)
                    .filterDate(start_date, end_date)
                    .select('NDVI');
                    
    var bestEVI = dataset.mosaic().clip(roi).multiply(0.0001);

    var EVIVis = {
      min: -0.2,
      max: 0.5,
      palette: ['bbe029', '0a9501', '074b03'],
    };
    Map.addLayer(bestEVI, EVIVis, 'EVI'+i);

    //calculate the 5% and 95% num of the image
    var num =bestEVI.reduceRegion({
          reducer:ee.Reducer.percentile([5,95]),
          geometry:roi,
          scale:500,
          maxPixels:1e13
        });
    
    var min = ee.Number(num.get("NDVI_p5"));
    var max = ee.Number(num.get("NDVI_p95"));
    print("min",min);
    print("max",max)
    
    //quantile and combine
    var greaterPart = bestEVI.gt(max);
    var lessPart    = bestEVI.lt(min);
    var middlePart  =ee.Image(1).subtract(greaterPart).subtract(lessPart); // get the middle part
    Map.addLayer(greaterPart, EVIVis, "greaterPart", false);
    Map.addLayer(lessPart, EVIVis, "lessPart", false);
    Map.addLayer(middlePart, EVIVis, "middlePart", false);
    //calculate FVC
    var tempf1=bestEVI.subtract(min).divide(max.subtract(min));
    //ee.Image(constant): creat a constatnt image
    var FVC=ee.Image(1).multiply(greaterPart)
                  .add(ee.Image(0).multiply(lessPart))
                  .add(tempf1.multiply(middlePart));
    Map.addLayer(FVC,{},"FVC" + i);
    
    var MODIS_LULC = ee.ImageCollection("MODIS/061/MCD12Q1")
                   .filterBounds(roi)
                   .filterDate(i+'-01-01',i+'-12-31')
                   .select('LC_Type1');
    var image_LULC = MODIS_LULC.first().clip(roi);
    var LULC = image_LULC.where(image_LULC.gte(1).and(image_LULC.lte(8)), 2)
                               .where(image_LULC.eq(9).or(image_LULC.eq(10)), 3)
                               .where(image_LULC.eq(11).or(image_LULC.eq(15)).or(image_LULC.eq(17)), 4)
                               .where(image_LULC.eq(12).or(image_LULC.eq(14)), 1)
                               .where(image_LULC.eq(13), 5)
                               .where(image_LULC.eq(16), 6);
    
    
    var a = LULC.where(LULC.gte(1), -0.0438)
                .where(LULC.gte(2), -0.1535)
                .where(LULC.gte(3), -0.1151)
                .where(LULC.gte(4), 0)
                .where(LULC.gte(5), 0)
                .where(LULC.gte(6), -0.0768);
    
    var C = a.multiply(FVC).exp();
    
    var CVis = {
      min: 0.2,
      max: 1,
      palette: ['#86d68a', 'bbe029', '0a9501', '074b03', '#21cfd6', '#2d0ed6','#ca09d6'],
    };
    Map.addLayer(C,CVis,"C");
    
    // export to drive
    Export.image.toDrive(
      {
        image: C,
        description: 'C_' + i,
        folder: 'C',
        region: roi,
        scale: 500,
        crs: "EPSG:4326",
        maxPixels: 1e13,
      })
}

结果如下:

 OK,今天的分享就到这里了,我们下期再见!!!

  • 22
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值