【GEE】基于MODIS产品的NPP NDVI EVI数据提取

其中植被指数的获取,采用MOD13Q1、MOD13A1产品,NPP获取采用MOD17A3HGF产品。

MOD13Q1:全称为MODIS/Terra Vegetation Indices 16-Day L3 Global 250m SIN Grid

MOD17A3HGF: 提供有关像素分辨率为500米(m)的年度净初级生产(NPP)的信息。年度NPP来自给定年份的所有8天净光合作用(PSN)产品(MOD17A2H)的总和。PSN值是总初级生产力(GPP)和维持呼吸(MR)的差。

通过GEE进行数据获取的代码如下:

代码中的ROI为自己输入的研究区

//-----------------Modis 植被指数获取函数------------------//

function ModisVI(resultion, vindex, roi, startTime, endTime){

  startTime = ee.Date(startTime).millis();

  endTime = ee.Date(endTime).millis();

  if (resultion == "250m"){

    var Modis_250 = ee.ImageCollection("MODIS/006/MOD13Q1")

                      .filterDate(startTime, endTime)//时间筛选

                      .select(vindex)//产品类型筛选

                      .filterBounds(roi)

                      .map(function(image){

                        return image.clip(roi)

                      })

    print("MODIS_250m数据完成")

  }

  else {

    var Modis_500 = ee.ImageCollection("MODIS/006/MOD13A1")

                      .filterDate(startTime, endTime)

                      .select(vindex)

                      .filterBounds(roi)

                      .map(function(image){

                        return image.clip(roi)

                      })

    print("MODIS_500m data already")

  }

  if(!Modis_250){

    return Modis_500

  }

  else{

    return Modis_250

  }

}

//-----------------Modis NPP 获取函数------------------//

function ModisNpp(roi, startTime, endTime){

  startTime = ee.Date(startTime).millis();

  endTime = ee.Date(endTime).millis();

  var dataset = ee.ImageCollection("MODIS/006/MOD17A3HGF")

                  .filter(ee.Filter.date(startTime, endTime))

                  .filterBounds(roi)

                  .select('Npp')

                  .map(function(image){

                    return image.clip(roi)

                  });

  print("Modis NPP data already")

  return dataset

}

//-----------------导出------------------//

function exportImageCollection(imgCol, scale, roi, taskName, fileName) {

  var indexList = imgCol.reduceColumns(ee.Reducer.toList(), ["system:index"])

                        .get("list");

  indexList.evaluate(function(indexs) {

    for (var i=0; i<indexs.length; i++) {

      var image = imgCol.filter(ee.Filter.eq("system:index", indexs[i])).first();

      image = image.toInt16(); //

      Export.image.toDrive({ //将数据导出至云盘

        image: image,

        description: taskName+"_"+indexs[i],

        fileNamePrefix: fileName+"_"+indexs[i],

        region: roi.geometry().bounds(),  //当研究区域范围过大时,此处不直接写为region:roi

        scale: scale,

        crs: "EPSG:4326",

        maxPixels: 1e13

      });

    }

  });

}

//-----------------参数输入-------------------//

// MODIS NDVI数据

var Modis_NDVI = ModisVI("250m", "NDVI", ROI, "2018-01-01", "2018-12-31");

print(Modis_NDVI);//显示2018年所有NDVI影像信息

// MODIS NPP数据

var Modis_NPP = ModisNpp(ROI, "2018-01-01", "2018-12-31")

print(Modis_NPP);

//MODIS EVI数据

var Modis_EVI = ModisVI("250m", "EVI", ROI, "2018-01-01", "2018-12-31");

print(Modis_EVI);

//输入ROI

Map.centerObject(ROI, 7);

var empty = ee.Image().clip(ROI.geometry().bounds()).byte();

var shp = empty.paint({featureCollection: ROI,  width: 4});

Map.addLayer(shp, {palette: '#000000'}, 'DongBei_region');

//导出

exportImageCollection(Modis_NDVI, 250, ROI, "Modis_NDVI", "Modis_NDVI")

exportImageCollection(Modis_EVI, 250, ROI, "Modis_EVI", "Modis_EVI")

exportImageCollection(Modis_NPP, 500, ROI, "Modis_NPP", "Modis_NPP")

更多相关推文请关注公众号GIS攻略!如有问题可在公众号中提问,会给予回答!

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值