0
点赞
收藏
分享

微信扫一扫

AI Earth ——开发者模式案例8:利用Landsat-8数据进行地表温度反演


利用 Landsat-8 数据进行地表温度反演​​¶​​

初始化环境​​¶​​

import aie

aie.Authenticate()
aie.Initialize()

Landsat-8 数据检索​​¶​​

指定区域、时间、云量检索 Landsat-8 ,并对数据进行去云处理。

region = aie.FeatureCollection('China_Province') \
.filter(aie.Filter.eq('province', '上海市')) \
.geometry()

dataset = aie.ImageCollection('LANDSAT_LC08_C02_T1_L2') \
.filterBounds(region) \
.filterDate('2019-06-01', '2019-08-31') \
.filter(aie.Filter.lte('eo:cloud_cover', 10.0))

print(dataset.size().getInfo())

image = dataset.median()
map = aie.Map(
center=image.getCenter(),
height=800,
zoom=7
)
rgb_params = {
'bands': ['SR_B4', 'SR_B3', 'SR_B2'],
'min': 8000,
'max': 13000
}
map.addLayer(
image,
rgb_params,
'raw_img',
bounds = image.getBounds()
)
map

计算 NDVI​​¶​​

ndvi = image.normalizedDifference(['SR_B5', 'SR_B4']).rename(['NDVI'])
ndvi_params = {
'min': -1.0,
'max': 1.0,
'palette': [
'#FFFFFF', '#CE7E45', '#DF923D', '#F1B555', '#FCD163', '#99B718', '#74A901',
'#66A000', '#529400', '#3E8601', '#207401', '#056201', '#004C00', '#023B01',
'#012E01', '#011D01', '#011301'
]
}

map.addLayer(
ndvi,
ndvi_params,
'NDVI',
bounds = image.getBounds()
)
map

计算 Fractional Vegetation​​¶​​

min = aie.Image(-0.38)
max = aie.Image(0.68)
fv = (ndvi.subtract(min).divide(max.subtract(min))).pow(aie.Image(2)).rename(['FV'])

fv_params = {
'min': 0,
'max': 1
}
map.addLayer(
fv,
fv_params,
'fv',
bounds = image.getBounds()
)
map

计算 Thermal​​¶​​

th = image.select('ST_B10').multiply(aie.Image(0.00341802)).add(aie.Image(149)).rename(['TH'])

th_params = {
'min': 260,
'max': 320,
'palette': [
'#0000FF', '#FFFFFF', '#008000'
]
}
map.addLayer(
th,
th_params,
'thermal',
bounds = image.getBounds()
)
map

计算比辐射率 Emissivity​​¶​​

a = aie.Image(0.004)
b = aie.Image(0.986)
em = fv.multiply(a).add(b).rename(['EM'])

em_params = {
'min': 0.9865619146722164,
'max': 0.989699971371314
}
map.addLayer(
em,
em_params,
'emissivity',
bounds = image.getBounds()
)
map

计算地表温度 ( LST )​​¶​​

tb = th.select(['TH'])
eb = em.select(['EM'])
lst = tb.divide(tb.multiply(aie.Image(0.00115)).divide(aie.Image(1.4388)).multiply(eb.log()).add(aie.Image(1))).rename(['LST'])

lst_params = {
'min': 291,
'max': 330,
'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(
lst,
lst_params,
'lst',
bounds = image.getBounds()
)
map

AI Earth ——开发者模式案例8:利用Landsat-8数据进行地表温度反演_云计算

AI Earth ——开发者模式案例8:利用Landsat-8数据进行地表温度反演_云计算_02

 

AI Earth ——开发者模式案例8:利用Landsat-8数据进行地表温度反演_earth_03

 

AI Earth ——开发者模式案例8:利用Landsat-8数据进行地表温度反演_云计算_04

 

AI Earth ——开发者模式案例8:利用Landsat-8数据进行地表温度反演_云计算_05

 

AI Earth ——开发者模式案例8:利用Landsat-8数据进行地表温度反演_云计算_06

 

举报

相关推荐

0 条评论