geemap学习笔记015:下载哨兵2号(Sentinel-2)数据

前言

使用GEE下载数据应该是最常见的功能了,今天就介绍一下如何使用geemap下载哨兵2号(Sentinel-2)数据,分别包括自己画感兴趣,以及利用Assets中的shp文件进行下载。

1 自己画感兴趣下载哨兵2号影像

import geemap
import ee

Map = geemap.Map(height=800)
collection = (
    ee.ImageCollection('COPERNICUS/S2_SR')
    .filterDate('2021-01-01', '2022-01-01')
    .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 5))
) #获取哨兵2号数据,过滤2021年一年的数据,过滤云量小于5的影像

image = collection.median() #这一行代码很有意思,是对覆盖同一区域的影像取均值,以消除云的影响
  
vis = {
    'min': 0.0,
    'max': 3000,
    'bands': ['B4', 'B3', 'B2'],
} #设置可视化参数

Map.setCenter(119.276370, 37.774189, 11) #设置中心
Map.addLayer(image, vis, 'Sentinel-2')
Map

自己画的roi区域
image.png

feature = Map.draw_last_feature #获取自己画的roi
roi = feature.geometry() #返回给定要素的几何形状
print(roi.getInfo()) #打印roi信息

geemap.ee_export_image_to_drive(
  image.select('B4', 'B3', 'B2'), description='huanghe', folder='export', region=roi, scale=90
) #选择4、3、2三个波段,裁剪roi区域,并以分辨率scale进行导出到drive中

2 利用Assets中的shp文件进行下载

roi_ass = ee.FeatureCollection('projects/******/assets/shape/yantai_qu')
print(roi_ass.getInfo())
Map.addLayer(roi_ass, {}, 'Land cover') #展示数据
Map.centerObject(roi_ass,10)
Map

Assets中的shp文件加载显示
image.png

geemap.ee_export_image_to_drive(
  image.select('B4', 'B3', 'B2'), description='yantai', folder='export', region=roi_ass.geometry(), scale=90
) #选择4、3、2三个波段,裁剪roi_ass区域,并以分辨率scale进行导出到drive中,注意roi_ass.geometry()

3 出图结果展示

请添加图片描述

后记

大家如果有地信遥感方面的问题需要请教或者有项目需要合作,可以在闲 鱼软件的用户中搜索:遥感GIS工作室,请认准头像,谢谢。

### 使用 GEE API 下载 Sentinel-1 卫星数据 要通过 Google Earth Engine (GEE) API 下载 Sentinel-1 数据,可以按照以下方式实现。这种方法无需手动下载每张图像,而是利用 GEE 的云计算能力来处理和导出所需的数据。 #### 初始化 GEE 并加载 Sentinel-1 集合 首先,确保已安装 `earthengine-api` 库,并完成身份验证。以下是初始化代码: ```python import ee ee.Authenticate() ee.Initialize() ``` 接着定义感兴趣区域(AOI),这可以通过 GeoJSON 文件或其他地理空间格式指定。例如: ```python aoi = ee.Geometry.Rectangle([longitude_min, latitude_min, longitude_max, latitude_max]) ``` 或者从 Shapefile 加载 AOI: ```python shapefile_url = 'path_to_your_shapefile.shp' aoi = ee.FeatureCollection(ee.Algorithms.GeoJSONToFeatureCollection(shapefile_url)) ``` #### 过滤 Sentinel-1 数据集 使用 `ee.ImageCollection` 来访问 Sentinel-1 GRD 数据集,并过滤时间范围和地理位置: ```python sentinel1_collection = ee.ImageCollection('COPERNICUS/S1_GRD') \ .filterBounds(aoi) \ .filterDate('2023-01-01', '2023-12-31') \ .filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VV')) \ .filter(ee.Filter.eq('instrumentMode', 'IW')) ``` 上述代码中: - `'COPERNICUS/S1_GRD'` 是 Sentinel-1 地面射频退化(GRD)产品的 ID[^2]。 - `.filterBounds(aoi)` 限定影像覆盖的地理范围。 - `.filterDate()` 设置时间范围。 - `.filter(ee.Filter.listContains())` 和 `.filter(ee.Filter.eq())` 分别用于选择极化模式(如 VV 或 VH)以及成像模式(如 IW 表示干涉宽幅模式)。 #### 可视化与预览 为了确认所选数据的质量,在浏览器中可视化部分结果: ```python url = sentinel1_collection.first().select('VV').getThumbURL({ 'min': -25, 'max': 0, 'palette': ['black', 'white'] }) print(url) ``` 此代码生成一张缩略图 URL,便于快速检查数据质量。 #### 导出至 Google Drive 或资产目录 最后一步是将选定的影像导出到 Google Drive 或 GEE 资产目录。以下是一个完整的导出命令: ```python task = ee.batch.Export.image.toDrive( image=.sentinel1_collection.mean(), description='Sentinel1_Export', folder='gee_exports', region=aoi.bounds().getInfo()['coordinates'], scale=10, crs='EPSG:4326', maxPixels=1e13 ) task.start() ``` 参数说明: - `image`: 输入为经过均值计算后的合成影像。 - `description`: 输出文件名前缀。 - `folder`: 存储在 Google Drive 中的目标文件夹名称。 - `region`: 定义裁剪范围的几何坐标。 - `scale`: 像素分辨率(单位:米)。对于 Sentinel-1,默认分辨率为 10 米。 - `crs`: 投影系统,通常为 WGS84 (`EPSG:4326`)- `maxPixels`: 允许的最大像素数,防止因尺寸过大而导致失败。 以上流程涵盖了从加载、筛选到最终导出的过程。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值