当前位置: 首页 > news >正文

GEE 按范围导出 Sentinel-2 卫星影像


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(image=selected_bands,description=aoi.first().get('name').getInfo(),folder=output_directory,fileNamePrefix=aoi.first().get('name').getInfo(),region=geometry,scale=10,maxPixels=1e13
)
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(image=selected_bands,description=aoi.first().get('name').getInfo(),folder=output_directory,fileNamePrefix=aoi.first().get('name').getInfo(),region=geometry,scale=10,maxPixels=1e13)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。

如果这对您有所帮助,希望点赞支持一下作者! 😊

详细全文-点击查看

file

相关文章:

GEE 按范围导出 Sentinel-2 卫星影像

Sentinel-2 卫星提供了高分辨率的地表覆盖图像&#xff0c;广泛应用于农业监测、城市规划、环境变化分析等诸多领域。在 Google Earth Engine (GEE) 中&#xff0c;我们能够按特定地理范围导出这些影像&#xff0c;以支持更深入的研究和分析。 使用方法 &#x1f4bb; GEE 提供…...

队列OJ题——用队列实现栈

文章目录 一、题目链接二、解题思路三、解题代码 一、题目链接 用队列实现栈 二、解题思路 三、解题代码 class MyStack {public Queue<Integer> queue1;public Queue<Integer> queue2;public int usedSize;public MyStack() {queue1 new LinkedList<>()…...

RK3588镜像打包制作,替换文件系统

1.在开发板上安装async apt-get async 2.在另一台linux机器上执行命令拷贝文件系统 注意&#xff1a; 这里使用root权限或者账户 mkdir rootfs rsync -avx root192.168.1.3:/ rootfs 3.制作空镜像文件 先去开发板上验证自己的系统使用了多少空间&#xff0c;然后输入命令制…...

Open-Sora代码详细解读(2):时空3D VAE

Diffusion Models视频生成 前言&#xff1a;目前开源的DiT视频生成模型不是很多&#xff0c;Open-Sora是开发者生态最好的一个&#xff0c;涵盖了DiT、时空DiT、3D VAE、Rectified Flow、因果卷积等Diffusion视频生成的经典知识点。本篇博客从Open-Sora的代码出发&#xff0c;深…...

基于微信平台的旅游出行必备商城小程序+ssm(lw+演示+源码+运行)

摘 要 随着社会的发展&#xff0c;社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;它主要是采用java语言技术和mysql数据库来完成对系统的设计。整个…...

AI绘画:科技赋能艺术的崭新时代

&#x1f4af;AI绘画&#xff1a;走进艺术创新的新时代 人工智能在改变世界的过程中&#xff0c;AI绘画工具逐渐成为创新的典范。 本文将为您揭示AI绘画背后的技术秘密、潜在的应用场景&#xff0c;并为您推荐几款出色的AI绘画工具&#xff0c;助您领略这一技术带来的艺术新体…...

性能诊断的方法(四):自下而上的资源诊断方法和发散的异常信息诊断方法

关于性能诊断的方法&#xff0c;我们可以按照“问题现象—直接原因—问题根源”这样一个思路去归纳。我们先从问题的现象去入手&#xff0c;包括时间的分析、资源的分析和异常信息的分析。接下来再去分析产生问题现象的直接原因是什么&#xff0c;这里我们归纳了自上而下的资源…...

GDPU Vue前端框架开发 计数器

计数器算不到你双向绑定的进度。 重要的更新公告 &#xff01;&#xff01;&#xff01;GDPU的小伙伴&#xff0c;感谢大家的支持&#xff0c;希望到此一游的帅哥美女能有所帮助。本学期的前端框架及移动应用&#xff0c;采用专栏订阅量达到50才开始周更了哦( •̀ .̫ •́ )✧…...

最大流笔记

概念 求两点间的路径中可在同一时间内通过的最大量 EK算法 通过bfs找通路&#xff0c;找到后回溯&#xff1b; 每确定一条边时&#xff0c;同时建立一天反方向的边以用来进行反悔操作&#xff08;毕竟一次性找到正确方案的概率太低了&#xff09; code #include<bits/st…...

el-tree父子不互相关联时,手动实现全选、反选、子级全选、清空功能

el-tree父子不互相关联时&#xff0c;手动实现全选、反选、子级全选、清空功能 1、功能实现图示 2、实现思路 当属性check-strictly为true时&#xff0c;父子节点不互相关联&#xff0c;如果需要全部选中或选择某一节点下的全部节点就必须手动选择每个节点&#xff0c;十分麻…...

模板与泛型编程笔记(一)入门篇

1. 推荐书籍 《C新经典 模板与泛型编程》难得的很容易看得懂的好书&#xff0c;作者讲技术不跳跃&#xff0c;娓娓道来&#xff0c;只要花点时间就能看懂。 2. 笔记 2.1 模板基础 模板为什么要用尖括号&#xff1f;因为便于编译器解析&#xff0c;可以将模板和普通函数声明…...

浅谈WebApi

一、基本介绍 Web API&#xff08;Web应用程序编程接口&#xff09;是一种用于构建应用程序的接口&#xff0c;它允许软件应用程序通过HTTP请求与Web服务器进行交互。Web API通常用于构建客户端-服务器应用程序&#xff0c;其中客户端可以是Web浏览器、移动应用程序、桌面应用程…...

9月14日,每日信息差

第一、宝马集团宣布对设计部门进行重组&#xff0c;并将于 2024 年 10 月 1 日成立一个跨品牌设计团队&#xff0c;由范・霍伊顿克领导。该团队将引入极星汽车设计主管马克西米利安・米索尼&#xff0c;负责宝马中高档和豪华车型以及宝马 Alpina 的设计工作。 第二、小鹏汇天飞…...

无人机控制与三维AI感知处理平台正式上线!

低空经济被誉为推动我国经济高质量发展的全新增长引擎&#xff0c;是一种以民用有人驾驶和无人驾驶航空器的各类低空飞行活动为牵引&#xff0c;辐射带动相关领域融合发展的综合性经济形态&#xff0c;2024年全国两会首次被纳入政府工作报告。 大势智慧积极响应国家低空经济政…...

9.11-kubeadm方式安装k8s

一、安装环境 编号主机名称ip地址1k8s-master192.168.2.662k8s-node01192.168.2.773k8s-node02192.168.2.88 二、前期准备 1.设置免密登录 [rootk8s-master ~]# ssh-keygen [rootk8s-master ~]# ssh-copy-id root192.168.2.77 [rootk8s-master ~]# ssh-copy-id root192.168…...

限流,流量整形算法

写在前面 源码 。 本文看下流量整形相关算法。 目前流量整形算法主要有三种&#xff0c;计数器&#xff0c;漏桶&#xff0c;令牌桶。分别看下咯&#xff01; 1&#xff1a;计数器 1.1&#xff1a;描述 单位时间内只允许指定数量的请求&#xff0c;如果是时间区间内超过指…...

【C++知识扫盲】------C++ 中的引用入门

在 C 中&#xff0c;引用&#xff08;reference&#xff09; 是一个非常重要的概念&#xff0c;它提供了一种别名机制&#xff0c;让我们可以给已经存在的变量起一个新的名字&#xff0c;并且能够通过这个别名直接操作原始变量。本文将详细介绍引用的定义、使用场景及其与指针的…...

【机器学习】6 ——最大熵模型

机器学习6——最大熵模型 目录 机器学习6——最大熵模型最大熵&#xff08;maximum entropy&#xff09;模型模型模型学习&#xff08;估计参数&#xff09;模型评价应用 最大熵&#xff08;maximum entropy&#xff09;模型 选择熵最大的概率模型 熵是衡量不确定性的&#xf…...

小程序——生命周期

文章目录 运行机制更新机制生命周期介绍应用级别生命周期页面级别生命周期组件生命周期生命周期两个细节补充说明总结 运行机制 用一张图简要概述一下小程序的运行机制 冷启动与热启动&#xff1a; 小程序启动可以分为两种情况&#xff0c;一种是冷启动&#xff0c;一种是热…...

基于微信小程序的宠物之家的设计与实现

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于微信小程序JavaSpringBootVueMySQL的宠物之家/宠物综合…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统&#xff0c;它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间&#xff0c;使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的&#xff0c;要在 …...