GEE哨兵二号查询代码
时间: 2023-09-08 07:12:26 浏览: 160
以下是使用Python代码在Google Earth Engine中查询Sentinel-2影像的示例:
import ee
# 初始化 Earth Engine
ee.Initialize()
# 定义区域
roi = ee.Geometry.Point([-122.4439, 37.7538])
# 定义时间范围
start_date = ee.Date('2022-01-01')
end_date = ee.Date('2022-01-31')
# 选择Sentinel-2影像集
sentinel2 = ee.ImageCollection('COPERNICUS/S2_SR')
# 根据区域和时间过滤影像集
filtered = sentinel2.filterBounds(roi).filterDate(start_date, end_date)
# 按云量排序并选择第一个影像
image = filtered.sort('CLOUD_COVERAGE_ASSESSMENT').first()
# 打印影像信息
print('Selected image:', image.getInfo()['id'])
这段代码首先初始化了Google Earth Engine,然后定义了一个点状区域和时间范围。接着选择了Sentinel-2的影像集,并根据区域和时间过滤影像集。然后按云量排序,并选择第一个影像。最后打印了所选择的影像的ID。
相关问题
GEE查询哨兵二号影像代码
以下是查询哨兵二号影像的代码示例,需要在Google Earth Engine平台上运行:
// 导入哨兵二号影像数据集
var sentinel2 = ee.ImageCollection('COPERNICUS/S2');
// 设置查询时间范围和空间范围
var startDate = '2021-01-01';
var endDate = '2021-12-31';
var region = ee.Geometry.Polygon(
[[[120, 30], [120, 31], [121, 31], [121, 30], [120, 30]]], null, false);
// 过滤影像集合
var filtered = sentinel2
.filterDate(startDate, endDate)
.filterBounds(region);
// 选择需要的波段
var image = ee.Image(filtered.first()).select(['B4', 'B3', 'B2']);
// 在地图上显示影像
Map.centerObject(region, 10);
Map.addLayer(image, {min:0, max:3000}, 'Sentinel-2 Image');
上述代码中,我们首先导入了哨兵二号影像数据集,然后设置了查询的时间范围和空间范围。接着,我们过滤掉了符合条件的影像集合,选择了需要的波段并显示在地图上。其中,B4
、B3
和B2
表示红、绿、蓝三个波段。在添加图层时,我们将最小值设置为0,最大值设置为3000,以便更好地显示影像。
GEE下载哨兵2号 MSI
使用 Google Earth Engine (GEE) 下载 Sentinel-2 MSI 数据
准备工作
在 GEE 中下载 Sentinel-2 MSI 数据前,需完成以下准备工作:
- 创建并登录到自己的 GEE 账户。
- 安装 GEE 的 Python API 或者使用在线 Code Editor 进行操作。
编写脚本
以下是用于筛选、处理以及导出 Sentinel-2 MSI 数据的代码示例:
// 定义研究区域(以宁夏为例)
var roi = ee.Geometry.Rectangle([105, 36, 107, 38]);
// 加载 Sentinel-2 数据集
var sentinel2 = ee.ImageCollection('COPERNICUS/S2')
.filterDate('2023-01-01', '2023-01-31') // 设置时间范围
.filterBounds(roi); // 筛选覆盖 ROI 的图像
// 打印集合信息至控制台
print(sentinel2);
// 计算 NDVI 并添加为新波段
var addNDVI = function(image) {
var ndvi = image.normalizedDifference(['B8', 'B4']).rename('NDVI');
return image.addBands(ndvi);
};
var withNDVI = sentinel2.map(addNDVI);
// 导出带有 NDVI 波段的数据
Export.image.toDrive({
image: withNDVI.first(), // 只导出第一个影像
description: 'sentinel2_ndvi_export',
scale: 10, // 输出分辨率为 10 米
region: roi,
maxPixels: 1e13 // 增加最大像素数限制
});
上述代码实现了以下几个功能:
- **定义感兴趣区域 (ROI)**:通过
ee.Geometry
方法指定地理边界[^2]。 - 加载数据:利用
ImageCollection
和过滤器获取特定时间和空间范围内的 Sentinel-2 图像。 - 计算 NDVI:基于近红外波段 (
B8
) 和红光波段 (B4
) 计算归一化植被指数 (NDVI)[^1]。 - 导出数据:将处理后的图像保存到用户的 Google Drive 上。
注意事项
- 需要调整日期范围和地理位置来匹配具体需求。
- 如果目标区域内存在大量云层,则可以引入哨兵-2 L2A 数据中的场景分类图层 (SCL),剔除被标记为高概率云或阴影的部分[^3]。
相关推荐
















