嘴苦是什么原因引起的| 什么食物补铁| 第一个月怀孕有什么反应| 胃在什么地方| 猫眼石是什么| 什么的向日葵| 茯苓什么人不能吃| 做什么生意好挣钱| 脉率是什么| 曹植是什么生肖| 湿疹不能吃什么食物| 属鸡的贵人是什么属相| 王八看绿豆是什么意思| 距离产生美是什么意思| 普门品是什么意思| 梦见老公怀孕什么预兆| 梦见舅舅是什么意思| 睡觉掉床下是什么预兆| 腹水是什么意思| 江与河有什么区别| 蜘蛛痣长什么样| act是什么意思| 仰天长叹的意思是什么| 肝气不舒吃什么中成药| 玛卡是什么| 避孕套有什么牌子| 决明子配什么喝最减肥| 肌酐高是什么原因造成的| 疏肝解郁是什么意思| 大便不成型吃什么药| 淋病是什么病| 克拉是什么意思| 为什么会有灰指甲| 什么是工作性质| 鼻头发红是什么原因| 大便黑色的是什么原因| 牙龈萎缩是什么原因引起的| 做美甲师容易得什么病| 考试前不能吃什么| 人体成分分析是检查什么| 姥爷是什么意思| 弱碱水是什么水| 什么病不能吃秋葵| 今天天气适合穿什么衣服| 为什么有的人晒不黑| 由加页念什么| 什么叫流年| 灵芝与什么相克| 常委是什么级别| 喝红酒对身体有什么好处| 乳腺钙化灶是什么意思| 局气是什么意思| 急得很什么| 脸热发红是什么原因| 今日农历是什么日子| 三观不合是什么意思| 红玫瑰的花语是什么| 什么颜色代表友谊| 粉瘤是什么东西| 斐乐什么档次| 什么的春寒| 黄金有什么作用与功效| 青春期指什么年龄段| 雾霾是什么意思| 父亲b型血母亲o型血孩子什么血型| 婴儿泡奶粉用什么水好| 总ige高是什么意思| 五月一日是什么星座| 口腔溃疡需要补充什么维生素| 翻墙软件是什么| 始终是什么意思| 梦到拉粑粑是什么意思| 脱发去医院挂什么科| 返图是什么意思| 爱新觉罗是什么意思| 99年属什么| 长期抽烟清肺喝什么茶| 慢性气管炎吃什么药最有效| 生肠是什么| 心思重是什么意思| 小人痣代表什么意思| 睾丸扭转是什么意思| 笑靥是什么意思| 甲亢什么症状表现| 妊娠期是指什么时候| 羽衣甘蓝是什么| 感冒为什么不能吃鸡蛋| 小孩脾胃虚弱吃什么药| 周易和易经有什么区别| 肺活量5000什么水平| 吃什么月经会推迟| 吃什么润肺| 里番是什么| 4岁小孩流鼻血是什么原因| 小ck是什么牌子| 吃茄子有什么好处| 卧轨什么意思| 看牙挂什么科| 狂鸟读什么| 水杨酸有什么作用| 怀孕什么时候打掉最好| 逍遥丸主治什么病| 猫的五行属什么| 为什么叫丁克| 早餐吃什么减肥| 酸中毒是什么意思| 桂林山水甲天下是什么意思| 什么是带状疱疹| 牙齿经常出血是什么原因| 蝉喜欢吃什么| 梅雨是什么| 肺部疼痛什么原因| 二级烫伤是什么程度| kako是什么牌子| 黄痰是什么原因| 风疹病毒igg阳性是什么意思| 苍蝇吃什么食物| 西洋参有什么作用和功效| 脾是干什么用的| c类火灾是指什么| 中元节是什么节日| 莲子心和什么搭配泡水喝最好| 前程无量是什么意思| 哺乳期吃避孕药对孩子有什么影响| 护士节送什么鲜花| 菊花可以和什么一起泡水喝| 胡萝卜和什么不能一起吃| 晚上睡觉出汗是什么原因| 天秤男和什么星座最配| 肾阴虚吃什么中药| 猫鼻支是什么症状| 吃什么提神醒脑抗疲劳| ml代表什么单位| 低频是什么意思| 牛腩炖什么好吃| 干性皮肤适合什么牌子的护肤品| 舌头下面的筋叫什么| 泪目是什么意思| 生气容易得什么病| 河水像什么| ck是什么| 三个降号是什么调| 验孕棒一深一浅代表什么| 嘴巴里长血泡是什么原因| 平行班是什么意思| 股癣是什么样的| 食指是什么经络| 白子是什么东西| 鼻炎用什么药| 人什么什么事的成语| 补钙吃什么最好| 梦见打死蛇是什么预兆| 为什么大拇指只有两节| 夜明珠是什么东西| navy是什么意思| 关节错缝术是什么意思| 性生活出血是什么原因| 医学检验技术是干什么的| trendiano什么牌子| 眼睛流泪用什么眼药水| 做梦被杀了是什么征兆| 1994属什么生肖| 欲是什么生肖| 补钙吃什么食物最好最快中老年| 南京有什么好玩的| 尿等待吃什么药最好| 蛛网膜囊肿挂什么科| 单的姓氏读音是什么| 主动脉夹层是什么原因引起的| 东厂是什么意思| 喘不上气吃什么药见效| 什么牌子| 韩字五行属什么| 骨折忌口什么食物| 五月二十四是什么星座| 复方阿胶浆适合什么样的人喝| 普乐安片治什么病| 英雄难过美人关是什么意思| 唐僧姓什么| 上海的特产是什么| 吃什么解辣| 今天拉警报什么意思| 可乐煮姜有什么作用| 伤风胶囊又叫什么| 包皮炎是什么症状| 什么是维生素| hr医学上是什么意思| 金银花什么时候采摘最好| 4.20是什么星座| 宫腔内高回声是什么意思| 为什么腰疼| 吻合是什么意思| 毛尖茶属于什么茶| 隐翅虫长什么样子| 被蚂蚁咬了擦什么药| 为什么不建议做融合手术| 嗜酸性粒细胞偏高是什么意思| 女人八卦是什么意思| 肌酸激酶高挂什么科| 北京户口有什么好处| skap是什么牌子| pet一ct是一种什么检查| 吃维生素c有什么好处| 长期吃二甲双胍有什么副作用| 结石排出来是什么感觉| 胃炎吃什么中成药效果好| 举人相当于什么官| 金针菇为什么叫明天见| 什么是换手率| 肠胃炎吃什么食物| 快递客服主要做什么| 头什么脚什么| 一龙一什么填十二生肖| 养肝护肝吃什么药效果最好| 上半身皮肤痒什么原因| 高我是什么意思| 画地为牢是什么意思| 心眼多是什么意思| 缺维生素c会得什么病| 受精卵着床失败有什么症状| chloe是什么意思| 甲状腺低回声什么意思| 小孩肠胃炎吃什么药| 特发性震颤是什么病| 经血逆流的症状是什么| 蚊子怕什么植物| 什么一色| 壁虎为什么是五毒之一| 梦见自己丢钱了什么征兆| 黄加蓝色是什么颜色| 月经期不能吃什么| 梦见上楼梯是什么意思| 水命中什么水命最好| 晚饭吃什么| 做活检意味着什么| 卡介疫苗是预防什么的| 吃什么食物有助于睡眠| c反应蛋白是什么| 定心丸什么意思| 血糖高的人吃什么主食| 什么然起什么| 美莎片是什么药| 64岁属什么生肖| 凤凰代表什么生肖| 草字头有什么字| 舌头发白是什么情况| 区长什么级别| 李晨的爷爷叫什么| 口臭舌苔白厚吃什么药| 甲状腺结节吃什么食物好| 什么什么万分| 对乙酰氨基酚片是什么药| 莲藕是荷花的什么部位| 包皮龟头炎用什么药膏| 条件致病菌是什么意思| 阴虚是什么意思| 什么是关键词| 参事是什么级别| 乘晕宁又叫什么| 晒伤了涂什么药| 药品gmp是什么意思| 螺蛳粉为什么叫螺蛳粉| 爆冷是什么意思| 百岁老人叫什么| 百度
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >利用GEE计算遥感生态指数(RSEI)

·如果你爱一个行业,就让它变成风口;如果你

作者头像
Twcat_tree
发布于 2025-08-06 19:02:31
发布于 2025-08-06 19:02:31
百度 还有,我们真不应该将违反公共秩序,获得某种蝇头小利,作为一种可以炫耀的人类自我张扬的手段,这除了表明缺乏教养和愚不可及之外,不能彰显任何其他内容。 1.9K00
代码可运行
举报
文章被收录于专栏:二猫の家二猫の家
运行总次数:0
代码可运行

城市生态与人类生活息息相关,快速 、准确 、客 观地了解城市生态状况已成为生态领域的一个研究重点 。基于遥感技术,提出一个完全基于遥感技术 ,以自然因子为主的遥感生态指数 (RSEI)来对城市的生态状况进行快速监测与评价 。该指数利用主成分分析技术集成了植被指数 、湿度分量、地表温度和建筑指数等 4个评价指标,它们分别代表了绿度、湿度、热度和干度等4大生态要素。 本文基于GEE平台,实现RSEI算法。 运行结果:

第一步:定义研究区,自行更换自己的研究区 第二步:加载数据集,定义去云函数 第三步:主函数,计算生态指标 第四步:PCA融合,提取第一主成分 第五步:利用PC1,计算RSEI,并归一化

完整代码

代码如下(示例):

代码语言:javascript
代码运行次数:0
运行
复制
// 第一步:定义研究区,自行更换自己的研究区
var roi = 
    /* color: #98ff00 */
    /* displayProperties: [
      {
        "type": "rectangle"
      }
    ] */
    ee.Geometry.Polygon(
        [[[120.1210075098537, 35.975189051414006],
          [120.1210075098537, 35.886229778229115],
          [120.25764996590839, 35.886229778229115],
          [120.25764996590839, 35.975189051414006]]], null, false);
          
Map.centerObject(roi);
 
// 第二步:加载数据集,定义去云函数
function removeCloud(image){
  var qa = image.select('BQA')
  var cloudMask = qa.bitwiseAnd(1 << 4).eq(0)
  var cloudShadowMask = qa.bitwiseAnd(1 << 8).eq(0)
  var valid = cloudMask.and(cloudShadowMask)
  return image.updateMask(valid)
}

// 数据集去云处理
var L8 = ee.ImageCollection('LANDSAT/LC08/C01/T1_TOA')
           .filterBounds(roi)
           .filterDate('2025-08-06', '2025-08-06')
           .filterMetadata('CLOUD_COVER', 'less_than',50)
           .map(function(image){
                    return image.set('year', ee.Image(image).date().get('year'))                           
                  })
           .map(removeCloud)
 

// 影像合成
var L8imgList = ee.List([])
for(var a = 2018; a < 2020; a++){
   var img = L8.filterMetadata('year', 'equals', a).median().clip(roi)
   var L8img = img.set('year', a)
   L8imgList = L8imgList.add(L8img)
 }

// 第三步:主函数,计算生态指标
var L8imgCol = ee.ImageCollection(L8imgList)
                 .map(function(img){
                      return img.clip(roi)
                   })
                 
L8imgCol = L8imgCol.map(function(img){
  
  // 湿度函数:Wet
  var Wet = img.expression('B*(0.1509) + G*(0.1973) + R*(0.3279) + NIR*(0.3406) + SWIR1*(-0.7112) + SWIR2*(-0.4572)',{
       'B': img.select(['B2']),
       'G': img.select(['B3']),
       'R': img.select(['B4']),
       'NIR': img.select(['B5']),
       'SWIR1': img.select(['B6']),
       'SWIR2': img.select(['B7'])
     })   
  img = img.addBands(Wet.rename('WET'))
  
  
  // 绿度函数:NDVI
  var ndvi = img.normalizedDifference(['B5', 'B4']);
  img = img.addBands(ndvi.rename('NDVI'))
  
  
  // 热度函数:lst 直接采用MODIS产品
  var lst = ee.ImageCollection('MODIS/006/MOD11A1').map(function(img){
                return img.clip(roi)
           })
           .filterDate('2025-08-06', '2025-08-06')
  
  var year = img.get('year')
  lst=lst.filterDate(ee.String(year).cat('-01-01'),ee.String(year).cat('-12-31')).select(['LST_Day_1km', 'LST_Night_1km']);
      
  // reproject主要是为了确保分辨率为1000
  var img_mean=lst.mean().reproject('EPSG:4326',null,1000);
  //print(img_mean.projection().nominalScale())
  
  img_mean = img_mean.expression('((Day + Night) / 2)',{
      'Day': img_mean.select(['LST_Day_1km']),
      'Night': img_mean.select(['LST_Night_1km']),
       })
  img = img.addBands(img_mean.rename('LST'))
  
  
  // 干度函数:ndbsi = ( ibi + si ) / 2
  var ibi = img.expression('(2 * SWIR1 / (SWIR1 + NIR) - (NIR / (NIR + RED) + GREEN / (GREEN + SWIR1))) / (2 * SWIR1 / (SWIR1 + NIR) + (NIR / (NIR + RED) + GREEN / (GREEN + SWIR1)))', {
      'SWIR1': img.select('B6'),
      'NIR': img.select('B5'),
      'RED': img.select('B4'),
      'GREEN': img.select('B3')
    })
  var si = img.expression('((SWIR1 + RED) - (NIR + BLUE)) / ((SWIR1 + RED) + (NIR + BLUE))', {
      'SWIR1': img.select('B6'),
      'NIR': img.select('B5'),
      'RED': img.select('B4'),
      'BLUE': img.select('B2')
    }) 
  var ndbsi = (ibi.add(si)).divide(2)
  return img.addBands(ndbsi.rename('NDBSI'))
})
 
 
var bandNames = ['NDVI', "NDBSI", "WET", "LST"]
L8imgCol = L8imgCol.select(bandNames)
 
//定义归一化函数:归一化
var img_normalize = function(img){
      var minMax = img.reduceRegion({
            reducer:ee.Reducer.minMax(),
            geometry: roi,
            scale: 1000,
            maxPixels: 10e13,
        })
      var year = img.get('year')
      var normalize  = ee.ImageCollection.fromImages(
            img.bandNames().map(function(name){
                  name = ee.String(name);
                  var band = img.select(name);
                  return band.unitScale(ee.Number(minMax.get(name.cat('_min'))), ee.Number(minMax.get(name.cat('_max'))));
                    
              })
        ).toBands().rename(img.bandNames()).set('year', year);
        return normalize;
}
var imgNorcol  = L8imgCol.map(img_normalize);
 
 
// 第四步:PCA融合,提取第一主成分
var pca = function(img){
      
      var bandNames = img.bandNames();
      var region = roi;
      var year = img.get('year')
      // Mean center the data to enable a faster covariance reducer
      // and an SD stretch of the principal components.
      var meanDict = img.reduceRegion({
            reducer:  ee.Reducer.mean(),
            geometry: region,
            scale: 1000,
            maxPixels: 10e13
        });
      var means = ee.Image.constant(meanDict.values(bandNames));
      var centered = img.subtract(means).set('year', year);
      
      
      // This helper function returns a list of new band names.
      var getNewBandNames = function(prefix, bandNames){
            var seq = ee.List.sequence(1, 4);
            //var seq = ee.List.sequence(1, bandNames.length());
            return seq.map(function(n){
                  return ee.String(prefix).cat(ee.Number(n).int());
              });      
        };
      
      // This function accepts mean centered imagery, a scale and
      // a region in which to perform the analysis.  It returns the
      // Principal Components (PC) in the region as a new image.
      var getPrincipalComponents = function(centered, scale, region){
            var year = centered.get('year')
            var arrays = centered.toArray();
        
            // Compute the covariance of the bands within the region.
            var covar = arrays.reduceRegion({
                  reducer: ee.Reducer.centeredCovariance(),
                  geometry: region,
                  scale: scale,
                  bestEffort:true,
                  maxPixels: 10e13
              });
            
            // Get the 'array' covariance result and cast to an array.
            // This represents the band-to-band covariance within the region.
            var covarArray = ee.Array(covar.get('array'));
            
            // Perform an eigen analysis and slice apart the values and vectors.
            var eigens = covarArray.eigen();
        
            // This is a P-length vector of Eigenvalues.
            var eigenValues = eigens.slice(1, 0, 1);
            // This is a PxP matrix with eigenvectors in rows.
            var eigenVectors = eigens.slice(1, 1);
        
            // Convert the array image to 2D arrays for matrix computations.
            var arrayImage = arrays.toArray(1)
            // Left multiply the image array by the matrix of eigenvectors.
            var principalComponents = ee.Image(eigenVectors).matrixMultiply(arrayImage);
        
            // Turn the square roots of the Eigenvalues into a P-band image.
            var sdImage = ee.Image(eigenValues.sqrt())
            .arrayProject([0]).arrayFlatten([getNewBandNames('SD',bandNames)]);
        
            // Turn the PCs into a P-band image, normalized by SD.
            return principalComponents
            // Throw out an an unneeded dimension, [[]] -> [].
            .arrayProject([0])
            // Make the one band array image a multi-band image, [] -> image.
            .arrayFlatten([getNewBandNames('PC', bandNames)])
            // Normalize the PCs by their SDs.
            .divide(sdImage)
            .set('year', year);
        }
        
        // Get the PCs at the specified scale and in the specified region
        img = getPrincipalComponents(centered, 1000, region);
        return img;
  };
  
var PCA_imgcol = imgNorcol.map(pca)
 
Map.addLayer(PCA_imgcol.first(), {"bands":["PC1"]}, 'pc1')
 
// 第五步:利用PC1,计算RSEI,并归一化
var RSEI_imgcol = PCA_imgcol.map(function(img){
        img = img.addBands(ee.Image(1).rename('constant'))
        var rsei = img.expression('constant - pc1' , {
             constant: img.select('constant'),
             pc1: img.select('PC1')
         })
        rsei = img_normalize(rsei)
        return img.addBands(rsei.rename('rsei'))
    })
print(RSEI_imgcol)
 
var visParam = {
    palette: '040274, 040281, 0502a3, 0502b8, 0502ce, 0502e6, 0602ff, 235cb1, 307ef3, 269db1, 30c8e2, 32d3ef, 3be285, 3ff38f, 86e26f, 3ae237, b5e22e, d6e21f, fff705, ffd611, ffb613, ff8b13, ff6e08, ff500d, ff0000, de0101, c21301, a71001, 911003'
 };
 
Map.addLayer(RSEI_imgcol.first().select('rsei'), visParam, 'rsei')
本文参与?腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-08-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体同步曝光计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 完整代码
相关产品与服务
云函数
云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码。您只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。云函数是实时文件处理和数据处理等场景下理想的计算平台。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
女性下小腹痛挂什么科 为什么怀孕前三个月不能说 小脑是控制什么的 牙疼吃什么药最管用 长期大便不成形是什么原因造成的
郡肝是什么 屏幕发黄是什么原因 开黄腔什么意思 玉化是什么意思 腰椎膨出是什么意思
什么是绿色食品 什么叫老人临终骨折 为什么很多人不去庐山 非分之想什么意思 吃榴莲对女人有什么好处
月经前有褐色分泌物是什么原因 明哲保身是什么生肖 男人性功能不好吃什么药 鸽子吃什么粮食 为什么小便是红色的尿
香蕉和什么不能一起吃zhiyanzhang.com 孩子黑眼圈很重是什么原因hcv8jop0ns3r.cn 今期难过美人关是什么生肖hcv8jop0ns1r.cn 动脉硬化吃什么hcv7jop9ns8r.cn 游手好闲是什么意思hcv9jop0ns6r.cn
前卫是什么意思hcv9jop1ns3r.cn 心肌供血不足用什么药hcv7jop6ns7r.cn 幽门螺杆菌阳性什么意思hcv8jop5ns1r.cn 什么是ugangsutong.com 等边三角形又叫什么三角形hcv8jop8ns6r.cn
三角形为什么具有稳定性xscnpatent.com 屁股长痣代表什么hcv8jop6ns8r.cn 越南有什么特产hcv8jop7ns4r.cn 90年是什么年hcv8jop5ns7r.cn 接盘侠什么意思hcv8jop5ns0r.cn
睡觉盗汗是什么原因hcv8jop6ns2r.cn 胸口疼痛什么原因hcv9jop3ns1r.cn 月经肚子疼是什么原因hcv7jop9ns1r.cn 手比脸白是什么原因tiangongnft.com 矿物油是什么油hcv8jop0ns0r.cn
百度