【GEE】Google Earth Engine(GEE)注册详细教程&无需教育邮箱-CSDN博客
数据下载代码
// Map the function over 3 months of data and take the median.
// Load Landsat-8 surface reflectance data.
var landsat8 = ee.ImageCollection("LANDSAT/LC08/C02/T1_L2")
.filterBounds(table)
.filterDate('2023-10-1','2024-1-15')
// Pre-filter to get less cloudy granules.
.filter(ee.Filter.lte('CLOUD_COVER',10))
.median()
.clip(table);
print(landsat8);// visualize the datasets
var rgbVis = {
min: 8400,
max: 15000,
gamma:1.5,
bands: ['SR_B4', 'SR_B3', 'SR_B2'],
};
Map.addLayer(landsat8,rgbVis,'landsat8');
var imgselect = landsat8.select('SR_B2','SR_B3','SR_B4','SR_B5', 'ST_B10');
//Export image to google drive and then download
Export.image.toDrive({
image:imgselect,
description:'s4',
scale:30,
region:table,
folder:"result",
crs: "EPSG:4326",
maxPixels: 1e13
});
摄影时间代码
Map.setCenter(113.07676218077592, 34.04984227876722, 6)
//选泽河南省一个点为地图显示中心
var bounds = Map.getBounds(true)
var scale = Map.getScale()
var images = ee.ImageCollection("LANDSAT/LC08/C02/T1_L2")
.select([5,4,2])
.filterBounds(table)
.filterDate('2023-12-1','2024-1-1')
var text = require('users/gena/packages:text')
// 呈现带注释的图像
function annotate(images) {
return images.map(function(i) {
var geom = i.select(0).geometry()
var center = ee.List(geom.centroid().coordinates())
// 在图像周围添加边缘
var edge = ee.Image(0).toByte().paint(geom, 1, 2)
edge = edge.mask(edge)
.visualize({palette:['cccc00'], opacity: 0.9})
// 定义文本属性
var props = { textColor: '000000', outlineColor: 'ffffff', outlineWidth: 2.5, outlineOpacity: 0.6}
// 绘制拍摄时间及云量
var pos = translate(center, 0.7, -0.4)
var s = ee.String(i.get('DATE_ACQUIRED'))
var textDate = text.draw(s, pos, scale, props)
pos = translate(center, 0.7, -0.1)
s = ee.String(i.get('SCENE_CENTER_TIME')).slice(0, 5)
var textTime = text.draw(s, pos, scale, props)
return ee.ImageCollection([edge, textDate, textTime]).mosaic() // merge results
})
}
// 转换dx, dy点的坐标
function translate(pt, dx, dy) {
var x1 = ee.Number(pt.get(0)).subtract(dx)
var y1 = ee.Number(pt.get(1)).subtract(dy)
return ee.Geometry.Point(ee.List([x1, y1]))
}
//在地图上显示
Map.addLayer(images, {}, '图像')
Map.addLayer(annotate(images), {}, '文本')
2023.10-15-10.31
GEE学习篇:Landsat地表温度反演的方法-CSDN博客
【GEE】基于GEE-Landsat8数据集地表温度反演(LST热度计算)_gee温度繁衍-CSDN博客
var roi = table //感兴趣的区域信息
var style_set = {color:"red",fillColor:"00000000"}; //设置地图中要素的颜色和填充颜色
Map.addLayer(roi.style(style_set),{},"shape") //使用之前定义的样式集将roi添加到地图中。该地图层默认使用几何形状(例如多边形)来表示区域
Map.centerObject(roi,10) //将地图中心设置为roi对象,并设置缩放级别为10
//本示例演示了使用Landsat 8 Collection 2,Level 2的QA_PIXEL波段(CFMask)来屏蔽不需要的像素。
//定义函数maskL8sr,接受一个图像作为输入,并对图像进行处理
function maskL8sr(image) {
// Bit 0 - Fill
// Bit 1 - Dilated Cloud
// Bit 2 - Cirrus
// Bit 3 - Cloud
// Bit 4 - Cloud Shadow
var qaMask = image.select('QA_PIXEL').bitwiseAnd(parseInt('11111', 2)).eq(0);
//从输入图像中选择QA_PIXEL波段,使用位运算和掩码来识别填充、云、云影等像素
var saturationMask = image.select('QA_RADSAT').eq(0); //从输入图像中选择QA_RADSAT波段,并识别未饱和的像素。
// 将缩放因子应用于适当的频带
var opticalBands = image.select('SR_B.').multiply(0.0000275).add(-0.2);
// 从输入图像中选择光学波段,并应用归一化处理。
var thermalBands = image.select('ST_B.*').multiply(0.00341802).add(149.0);
// 从输入图像中选择热红外波段,并应用归一化处理。
// 用缩放的带替换原始带并应用掩码。
return image.addBands(opticalBands, null, true)
.addBands(thermalBands, null, true)
.updateMask(qaMask)
.updateMask(saturationMask);
}
// 将函数映射到一年的数据上
var collection = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
.filterDate('2023-10-15','2023-10-31')
.map(maskL8sr)
.median() //中值合成
.clip(roi); //裁剪
// Display the results.
// Map.setCenter(-4.52, 40.29, 7); // Iberian Peninsula
// print(dataset)
var img = collection.select("ST_B10") //从处理后的图像集合中选择热红外波段('ST_B10')
var lst = img.expression(
'B1-273.15',
{
B1:img.select('ST_B10'),
}); //对选择的热红外波段进行计算表达式操作
print("LST直方图", ui.Chart.image.histogram(lst, roi, 100, 258)) //打印直方图,显示热红外波段处理后的数据分布情况
print(lst) //打印热红外波段处理后的数据
Map.addLayer(lst, {'min':2,'max':49,'palette':["eff3ff","c6dbef","9ecae1","6baed6","4292c6","2171b5","084594",
"fff5f0","fee0d2","fcbba1","fc9272","fb6a4a","ef3b2c","cb181d","99000d"]}, 'lst')
// 将处理后的热红外波段数据添加到地图上,并设定显示范围和颜色映射
function exportImage(image, roi, fileName) {
Export.image.toDrive({
image: image,
description: "Landsat8"+fileName,
fileNamePrefix: fileName, //文件命名
folder: "Landsat 8", //保存的文件夹
scale: 30, //分辨率
region: roi, //研究区
maxPixels: 1e13, //最大像元素
crs: "EPSG:4326" //设置投影
});
}
exportImage(lst,roi,"lst")