• GEE:LST地表温度反演函数


    最近做了一些有关 LST 反演的代码,使用到了 Landsat-8 的 L1 级别数据和 L2 级别数据。因此,本文分别举例了针对 image 和 imageCollection 做 LST 反演的代码。


    Landsat-8-T1 反演LST

    数据集:LANDSAT/LC08/C01/T1
    反演对象:影像
    操作波段:B10
    结果展示:

    var roi = table;
    Map.centerObject(roi,10);
    
    var L8 = ee.ImageCollection("LANDSAT/LC08/C01/T1")
                      .filterBounds(roi)
                      .filterDate('2020-06-01','2020-6-30')
                      .filterMetadata('CLOUD_COVER',"less_than",50)
                      .map(remove_cloud) 
                      .map(radiance)
                      .select(['B2', 'B3', 'B4', 'B5', 'B6', 'B10', 'B7', 'B6_radiance'], ['B1', 'B2', 'B3', 'B4', 'B5', 'B6','B7', 'B6_radiance'])
                      .mean()
                      .clip(roi)
    print(L8)
                      
    //Landsat-8去云              
    function remove_cloud(image){
       var image_qa = image.select('BQA'); 
       var maskComposite = image_qa.bitwiseAnd(1 << 4).eq(0)
       return image.updateMask(maskComposite)
    }
    
    //Landsat-8辐射校正
    function radiance(image){
        var ThermalRadiance=ee.Algorithms.Landsat.calibratedRadiance(image.select('B6')).rename('B6_radiance');
        return image.addBands(ThermalRadiance)
    }
    
    //LST函数
    function calLST(img){
      var NDVI  = img.normalizedDifference(['B4','B3']).rename('ndvi');
      var B6 = img.select('B6').multiply(0.1)
      var imgFVC = ((NDVI.subtract(ee.Image(0.05))).divide((ee.Image(0.95)).subtract(ee.Image(0.05)))).float();
      var FVC=((imgFVC.lt(0)).multiply(0))
    			      .add(((imgFVC.gt(0)).and(imgFVC.lte(1))).multiply(imgFVC))
    			      .add((imgFVC.gt(1)).multiply(1))
      var c = FVC.expression("0.004*FVC+0.986", {FVC: FVC})
      var LST = B6.expression('(L8_B10/(1 + (0.00109* (L8_B10 / 1.438))*log(c)))-273.15', {
    				 L8_B10: L8_B10,
    				    c: c,
    					})
      return img.addBands(LST.multiply(0.01).rename('LST'))
      }
    
    var LST = calLST(L8);
    
    Map.addLayer(LST.select('LST'),{min:29, max:33, palette:['adff2f','c0e366', 'ccc68b', 'd2a8aa', 'd388c7', 'd063e3', 'c72fff']},'LST');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    Landsat-8-T1_L2 反演LST

    数据集:LANDSAT/LC08/C02/T1_L2
    反演对象:影像集合
    操作波段:ST_B10
    结果展示:

    var roi = table
    Map.centerObject(roi,9)
    
    var landsat8 = ee.ImageCollection("LANDSAT/LC08/C02/T1_L2")
    
    var landsat8Col = landsat8.filterDate('2020-6-1', '2020-6-30')
                                .filterBounds(roi)
                                .filter(ee.Filter.lte('CLOUD_COVER',15))
                                .select('SR_B1','SR_B2','SR_B3','SR_B4','SR_B5','SR_B6','SR_B7','ST_B10','QA_PIXEL','QA_RADSAT')
                                .map(roiClip)
                                .sort('system:index')
                                
    //按矢量边界裁剪
    function roiClip(image){
      return image.clip(roi)
    }
    
    //计算LST
    function CalLST(image) {
      var b1 = image.select('ST_B10');
      var Albedo = image.select('ST_B10');
      return Albedo.multiply(0.00341802).add(149.0).subtract(273.15).rename(['LST']).copyProperties(image, image.propertyNames());
    }
    
    var LST = landsat8Col.map(CalLST);
    
    Map.addLayer(LST.select('LST'),{min:36, max:47, palette:['adff2f','c0e366', 'ccc68b', 'd2a8aa', 'd388c7', 'd063e3', 'c72fff']},'LST');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
  • 相关阅读:
    设计模式之单例和原型
    巧用 CSS 变量,实现动画函数复用,制作高级感拉满的网格动画
    java.sql.SQLSyntaxErrorException: Unknown column ‘create_name‘ in ‘field list‘
    C++语法——详解运算符重载
    ERROR: No matching distribution found for tensorflow==1.14.0
    PPIO边缘云聚焦音视频底层技术,探索元宇宙“登月工程”
    PotPlayer+Alist挂载并播放网盘视频
    牛客刷题<二>异步复位的串联T触发器
    程序员的实用神器之——通义灵码
    遥感期刊影响因子(中科院分区)
  • 原文地址:https://blog.csdn.net/qq_35591253/article/details/127754097