网站 备案 几天,沧州网站建设,深圳住房建设和保障局官网,海外短视频软件app下载安装Sentinel-2 卫星提供了高分辨率的地表覆盖图像#xff0c;广泛应用于农业监测、城市规划、环境变化分析等诸多领域。在 Google Earth Engine (GEE) 中#xff0c;我们能够按特定地理范围导出这些影像#xff0c;以支持更深入的研究和分析。 使用方法 #x1f4bb;
GEE 提供… Sentinel-2 卫星提供了高分辨率的地表覆盖图像广泛应用于农业监测、城市规划、环境变化分析等诸多领域。在 Google Earth Engine (GEE) 中我们能够按特定地理范围导出这些影像以支持更深入的研究和分析。 使用方法
GEE 提供了一个强大的平台用于处理和导出 Sentinel-2 数据。本文将介绍如何利用 Python 与 GEE API 来按指定地理范围导出 Sentinel-2 卫星影像。
https://developers.google.com/earth-engine/datasets/catalog/sentinel-2
代码详解
下面是一个使用 Python 和 GEE API 导出 Sentinel-2 卫星影像的代码详解
获取边界信息
aoi ee.FeatureCollection(area_of_interest)
feature_count aoi.size().getInfo()这里加载了地理兴趣区域并检查了这个区域是否包含有效的特征。如果没有任何特征则会打印一条消息提示集合为空。
获取兴趣区域的几何信息
geometry aoi.geometry()获取了地理兴趣区域的几何形状这将用于后续的图像过滤和裁剪操作。
加载 Sentinel-2 图像集合
s2_collection ee.ImageCollection(COPERNICUS/S2_HARMONIZED) \.filterBounds(geometry) \.filterDate(datetime(year, 1, 1), datetime(year 1, 1, 1)) \.filter(ee.Filter.lt(CLOUDY_PIXEL_PERCENTAGE, 20))从 Copernicus Sentinel-2 数据集中加载图像集合并过滤出感兴趣区域内的图像。接着进一步筛选出指定年份的图像并排除云层占比超过 20% 的图像。
定义云遮蔽函数
def mask_s2clouds(image):qa image.select(QA60)cloud_mask qa.bitwiseAnd(1 10).eq(0).And(qa.bitwiseAnd(1 11).eq(0))return image.updateMask(cloud_mask).divide(10000)这个函数通过选择 QA60 波段并应用位运算来检测云层。然后更新掩膜来移除检测到的云并将像素值标准化因为 Sentinel-2 图像的原始像素值是 10000 倍的实际反射率。
对图像集合应用云遮蔽函数
masked_collection s2_collection.map(mask_s2clouds)应用前面定义的云遮蔽函数到整个 Sentinel-2 图像集合上。
计算图像集合的中值图像并按兴趣区域裁剪
median_image masked_collection.median().clip(aoi)计算了图像集合的中值图像这有助于减少噪声和云的影响。之后按照地理兴趣区域裁剪图像。
选择正确的波段顺序 selected_bands median_image.select([B4, B3, B2])选择了红绿蓝RGB波段作为输出图像的显示这是常见的视觉化方式。
导出图像到 Google Drive
export_task ee.batch.Export.image.toDrive(imageselected_bands,descriptionaoi.first().get(name).getInfo(),folderoutput_directory,fileNamePrefixaoi.first().get(name).getInfo(),regiongeometry,scale10,maxPixels1e13
)
export_task.start()设置了导出任务将裁剪后的中值图像导出到 Google Drive 上指定的目录下。导出的文件名基于地理兴趣区域的名称以方便识别。
完整案例 ️
在此示例中我们首先初始化了必要的变量并加载了地理兴趣区域的边界数据集。随后创建了 Sentinel-2 卫星影像的集合并应用了云遮蔽函数。最后计算了中值影像并将其导出到了 Google Drive。
import ee
from datetime import datetime# 初始化 Earth Engine
ee.Initialize()def crop_image_sentinel(area_of_interest, year, output_directory):导出 Sentinel-2 图像到 Google Drive.参数:area_of_interest -- 地理兴趣区域的 FeatureCollection URL.year -- 导出图像的年份.output_directory -- Google Drive 中保存图像的目录.# 获取边界信息aoi ee.FeatureCollection(area_of_interest)feature_count aoi.size().getInfo()if feature_count 0:# 获取兴趣区域的几何信息geometry aoi.geometry()# 加载 Sentinel-2 图像集合s2_collection ee.ImageCollection(COPERNICUS/S2_HARMONIZED) \.filterBounds(geometry) \.filterDate(datetime(year, 1, 1), datetime(year 1, 1, 1)) \.filter(ee.Filter.lt(CLOUDY_PIXEL_PERCENTAGE, 20))# 定义云遮蔽函数def mask_s2clouds(image):qa image.select(QA60)cloud_mask qa.bitwiseAnd(1 10).eq(0).And(qa.bitwiseAnd(1 11).eq(0))return image.updateMask(cloud_mask).divide(10000)# 对图像集合应用云遮蔽函数masked_collection s2_collection.map(mask_s2clouds)# 计算图像集合的中值图像并按兴趣区域裁剪median_image masked_collection.median().clip(aoi)# 选择正确的波段顺序selected_bands median_image.select([B4, B3, B2])# 导出图像到 Google Driveexport_task ee.batch.Export.image.toDrive(imageselected_bands,descriptionaoi.first().get(name).getInfo(),folderoutput_directory,fileNamePrefixaoi.first().get(name).getInfo(),regiongeometry,scale10,maxPixels1e13)export_task.start()else:print(The FeatureCollection is empty.)注意事项 ⚠️
权限: 确保您的 GEE 账户拥有足够的权限来执行数据导出操作。数据范围: 确认指定的地理兴趣区域和年份是准确的避免不必要的数据导出。云遮蔽: 根据实际情况调整云遮蔽函数以提高云检测的准确性。
术语解释表
术语/函数解释eeGoogle Earth Engine Python API 包用于访问和处理遥感数据。datetimePython 内置模块用于日期和时间处理。ee.FeatureCollection表示地理矢量数据的集合。ee.ImageCollection表示遥感图像集合。filterBounds过滤图像集合中的图像只保留那些与给定地理区域相交的图像。filterDate过滤图像集合中的图像只保留那些在给定日期范围内的图像。filter用于过滤图像集合中的图像这里用来排除云层比例过高的图像。updateMask更新图像的掩膜通常用于去除不需要的部分如云层等。median计算图像集合的中值图像用于减少噪声和云的影响。clip按给定的地理区域裁剪图像。select从图像中选择特定的波段。Export.image.toDrive将图像导出到 Google Drive。
如果这对您有所帮助希望点赞支持一下作者 详细全文-点击查看