GEE用MODIS计算RSEI以及四个分量

简介

结合 Google Earth Engine(GEE)遥感云计算平台和20期MODIS遥感影像提取绿度指标、湿度指标、干度指标和热度指标信息,通过主成分变换耦合各指标得到遥感生态指数(Remote Sensing Ecological Index,RSEI)。

效果图

任务界面有四个分量以及RSEI
在这里插入图片描述
输出界面有PCA的方差贡献率、特征值以及特征向量
在这里插入图片描述

代码块

var MOD09A1 = ee.ImageCollection("MODIS/006/MOD09A1"),
var MOD11A2 = ee.ImageCollection("MODIS/006/MOD11A2"),
var MOD13A1 = ee.ImageCollection("MODIS/006/MOD13A1"),
var sa = ee.FeatureCollection("projects/ee-h1181408226/assets/henan");
//去云
function bitwiseExtract(value, fromBit, toBit) {
   
  if (toBit === undefined) toBit = fromBit
  var maskSize = ee.Number(1).add(toBit).subtract(fromBit)
  var mask = ee.Number(1).leftShift(maskSize).subtract(1)
  return value.rightShift(fromBit).bitwiseAnd(mask)}
  
function cloudfree_mod09a1(image){
   
  var qa = image.select('StateQA')
  var cloudState = bitwiseExtract(qa, 0, 1) 
  var cloudShadowState = bitwiseExtract(qa, 2)
  var cirrusState = bitwiseExtract(qa, 8, 9)
  var mask = cloudState.eq(0) // Clear
  .and(cloudShadowState.eq(0)) // No cloud shadow
  .and(cirrusState.eq(0)) // No cirrus
  return image.updateMask(mask)}

//定义时间范围
var dr0 = ee.DateRange('2002-06-01','2002-06-25');
var dr1 = ee.DateRange('2003-06-01','2003-06-25');
var dr2 = ee.DateRange('2004-06-01','2004-06-25');
var dr3 = ee.DateRange('2005-06-01','2005-06-25');
var dr4 = ee.DateRange('2006-06-01','2006-06-25');
var dr5 = ee.DateRange('2007-06-01','2007-06-25');
var dr6 = ee.DateRange('2008-06-01','2008-06-25');
var dr7 = ee.DateRange('2009-06-01','2009-06-25');
var dr8 = ee.DateRange('2010-06-01','2010-06-25');
var dr9 = ee.DateRange('2011-06-01','2011-06-25');
var dr10 = ee.DateRange('2012-06-01','2012-06-25');
var dr11 = ee.DateRange('2013-06-01','2013-06-25');
var dr12 = ee.DateRange('2014-06-01','2014-06-25');
var dr13 = ee.DateRange('2015-06-01','2015-06-25');
var dr14 = ee.DateRange('2016-06-01','2016-06-25');
var dr15 = ee.DateRange('2017-06-01','2017-06-25');
var dr16 = ee.DateRange('2018-06-01','2018-06-25');
var dr17 = ee.DateRange('2019-06-01','2019-06-25');
var dr18 = ee.DateRange('2020-06-01','2020-06-10');
var dr19 = ee.DateRange('2021-06-01','2021-06-25');
var DateRG = ee.List([dr0,dr1,dr2,dr3,dr4,dr5,dr6,dr7,dr8,dr9,dr10,dr11,dr12,dr13,dr14,dr15,dr16,dr17,dr18,dr19])

//水体掩膜
function cal_mndwi(image){
    return image.normalizedDifference(['sur_refl_b04', 'sur_refl_b06']).rename('mndwi')}
var rencentIMG = MOD09A1.filterDate(dr19).filterBounds(sa).map(cloudfree_mod09a1).mean().clip(sa)
var WaterMask = cal_mndwi(ee.Image(rencentIMG)).lt(0.2)

function GetIMGLST(dr){
     //计算LST
  function sts_minmax (image){
      获取输入的最小值和最大值
    var minmax = image.reduceRegion({
   
    reducer: ee.Reducer.minMax(),
    geometry:sa,
    scale: 500,
    maxPixels: 1e9}).values();
    return minmax;}
    var rawLST =  MOD11A2.filterDate(dr)
                    .filterBounds(sa).mosaic().clip(sa).select('LST_Day_1km')
                    .multiply(0.02).subtract(273.15).rename('lst').updateMask(WaterMask)
    
  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 25
    评论
计算20年的RSEI,您需要做以下几个步骤: 1. 获取20年的遥感数据,可以使用Landsat、MODIS等数据源。您可以通过GEE的数据目录来获取这些数据。 2. 计算每个时期的NDVI和NDWI指数。您可以使用GEE提供的函数来计算这些指数。 3. 根据计算出的NDVI和NDWI指数,计算每个时期的RSEI值。您可以使用GEE提供的函数来计算RSEI值。 4. 将计算出的RSEI值导出为CSV文件或其他格式的文件,以便进行后续的分析。 下面是一个简单的代码示例,可以帮助您计算20年的RSEI值: ```javascript // 定义时间范围 var startYear = 2000; var endYear = 2019; var startDate = ee.Date.fromYMD(startYear, 1, 1); var endDate = ee.Date.fromYMD(endYear, 12, 31); // 获取MODIS数据 var modis = ee.ImageCollection('MODIS/006/MOD13Q1') .select(['NDVI', 'NDWI']); // 定义计算RSEI的函数 var calculateRSEI = function(image) { var ndvi = image.select('NDVI'); var ndwi = image.select('NDWI'); var rsei = ndwi.multiply(ndvi).rename('RSEI'); return image.addBands(rsei); }; // 计算RSEI var rsei = modis.filterDate(startDate, endDate) .map(calculateRSEI); // 导出为CSV文件 Export.table.toDrive({ collection: rsei.select(['RSEI']), description: 'rsei_2000_2019', fileFormat: 'CSV' }); ``` 这段代码将计算2000年至2019年期间的RSEI值,并将结果导出为CSV文件。您可以根据自己的需求调整时间范围和数据源,并进行进一步的分析和可视化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值