【GEE学习笔记】报错解决:Sentinel-2 数据集分为 L1C(大气顶层)和 L2A(地表反射率),如何选择波段进行去云处理?

【GEE学习笔记】报错解决:Sentinel-2 数据集分为 L1C(大气顶层)和 L2A(地表反射率),如何选择波段进行去云处理?

【GEE学习笔记】报错解决:Sentinel-2 数据集分为 L1C(大气顶层)和 L2A(地表反射率),如何选择波段进行去云处理?


文章目录

  • 【GEE学习笔记】报错解决:Sentinel-2 数据集分为 L1C(大气顶层)和 L2A(地表反射率),如何选择波段进行去云处理?
    • 报错信息
    • ⚠️ 报错原因分析
    • ✅ 解决方案
      • 方案 1:改用 `COPERNICUS/S2_SR` 数据集
      • 方案 2:改用 `MSK_CLASSI_OPAQUE` 波段
    • 推荐方案


欢迎宝子们点赞、关注、收藏!欢迎宝子们批评指正!
祝所有的硕博生都能遇到好的导师!好的审稿人!好的同门!顺利毕业!

大多数高校硕博生毕业要求需要参加学术会议,发表EI或者SCI检索的学术论文会议论文。详细信息可关注VX “学术会议小灵通”或参考学术信息专栏:https://blog.csdn.net/gaoxiaoxiao1209/article/details/146181282


报错信息

RGB Image: Tile error: Error in map(ID=20230901T043711_20230901T044129_T46RCT): 
Image.select: Band pattern 'QA60' did not match any bands. Available bands: [B1, B2, B3, B4, B5, B6, B7, B8, B8A, B9, B10, B11, B12, MSK_CLASSI_OPAQUE, MSK_CLASSI_CIRRUS, MSK_CLASSI_SNOW_ICE]

你的代码报错的原因是 QA60 波段不存在,但是你的 maskS2clouds(image) 函数中尝试选择 QA60 进行去云处理。

⚠️ 报错原因分析

Sentinel-2 数据集分为 L1C(大气顶层)和 L2A(地表反射率)

  • COPERNICUS/S2 (L1C)没有 QA60 波段,但有 MSK_CLASSI_OPAQUEMSK_CLASSI_CIRRUS
    等。
  • COPERNICUS/S2_SR(L2A) 有 QA60 波段,用于标记云和卷云。

你的代码使用的是 COPERNICUS/S2(L1C 级别),但 QA60 只在 COPERNICUS/S2_SR(L2A 级别)中可用,因此 image.select('QA60') 失败,导致代码崩溃。

✅ 解决方案

方案 1:改用 COPERNICUS/S2_SR 数据集

如果你希望继续使用 QA60 去云,需要将数据集换成 COPERNICUS/S2_SR

var dataset = ee.ImageCollection('COPERNICUS/S2_SR')  // 改成 S2_SR 版本.filterBounds(roi).filterDate('2023-05-01', '2023-10-31').filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 10)).map(maskS2clouds).median().clip(roi);
  • 🔹 优点:可以使用 QA60 进行去云,适合研究 地表反射率
  • 🔹 缺点:部分地区 L2A 级别数据可能不可用

方案 2:改用 MSK_CLASSI_OPAQUE 波段

如果仍要使用 COPERNICUS/S2,可以改用 MSK_CLASSI_OPAQUE(不透明云掩膜)代替 QA60

function maskS2clouds(image) {var mask = image.select('MSK_CLASSI_OPAQUE').eq(0);  // 0 表示无云return image.updateMask(mask).divide(10000);
}
  • 🔹 优点:适用于 COPERNICUS/S2 数据集
  • 🔹 缺点:可能不如 QA60 精确

推荐方案

  • 如果 可以 使用 COPERNICUS/S2_SR,请使用 方案 1,因为 QA60 更适合云去除。
  • 如果 必须 使用 COPERNICUS/S2,请使用 方案 2,用 MSK_CLASSI_OPAQUE 代替 QA60

✅ 改动后,你的代码应该能顺利运行! 🚀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/75007.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenVLA-OFT——微调VLA时加快推理的三大关键设计:支持动作分块的并行解码、连续动作表示以及L1回归(含输入灵活化及对指令遵循的加强)

前言 25年3.26日,这是一个值得纪念的日子,这一天,我司「七月在线」的定位正式升级为了:具身智能的场景落地与定制开发商 ,后续则从定制开发 逐步过渡到 标准产品化 比如25年q2起,在定制开发之外&#xff0…

IDEA 使用Maven打包时内存溢出

IDEA 使用Maven打包时内存溢出 解决办法: File -> settings -> Build,Excetion,Deployment-> Compiler 中添加配置“-Djps.track.ap.dependenciesfalse” 如图:

随机产生4位随机码(java)

Random类: 用于生成随机数 import java.util.Random; 导入必要的类 generateVerificationCode()方法: 这是一个静态方法,可以直接通过类名调用 返回一个6位数字的字符串,首位不为0 生成首位数字: random.nextInt…

C#调用C++动态库时出现`System.DllNotFoundException`错误的解决思路

文章目录 1. DLL文件路径问题2. 依赖的运行时库缺失3. 平台不匹配(x86/x64)4. 导出函数名称不匹配5. DLL文件损坏或权限问题6. 运行时库冲突(MT/MD不匹配)7. 使用DLLImport时的常见错误总结步骤 在C#中调用C动态库时出现System.Dl…

免费Deepseek-v3接口实现Browser-Use Web UI:浏览器自动化本地模拟抓取数据实录

源码 https://github.com/browser-use/web-ui 我们按照官方教程,修订几个环节,更快地部署 步骤 1:克隆存储库 git clone https://github.com/browser-use/web-ui.git cd web-ui Step 2: Set Up Python Environment 第 2 步:设置…

ES 参数调优

1、refresh_interval 控制索引刷新的时间间隔。增大这个值可以减少I/O操作,从而提升写入性能,但会延迟新文档的可见性 查看 GET /content_erp_nlp_help_202503191453/_settings?include_defaultstrue 动态修改:refresh_interval 是一个动态…

【Easylive】视频删除方法详解:重点分析异步线程池使用

【Easylive】项目常见问题解答(自用&持续更新中…) 汇总版 方法整体功能 这个deleteVideo方法是一个综合性的视频删除操作,主要完成以下功能: 权限验证:检查视频是否存在及用户是否有权限删除核心数据删除&…

《比特信使的七重试炼:从数据丢失到CA认证的守护史诗》

点击下面图片带您领略全新的嵌入式学习路线 🔥爆款热榜 88万阅读 1.6万收藏 第一章:初现危机——数据丢失的阴云 比特城的清晨总是被数据流的光芒点亮,但这一天,工程师艾琳的实验室却笼罩在阴霾中。她刚刚尝试通过古老的“疾风…

如何更好的理解 beforeEach 全局前置守卫,在处理路由跳转前触发,怎么实现常用的全局权限校验、登录状态检查的呢?

以下将深入讲解 Vue Router 的全局前置守卫 beforeEach 在权限系统中的实现原理和实战应用,结合企业级项目代码进行拆解(基于 Vue 3 TypeScript Pinia)。 一、前置守卫核心机制 1.1 执行时机与特性 全局前置守卫在路由跳转前触发&#xf…

VMware上的windows虚拟机安装使用Docker方法

因为在实体机上使用Docker会导致VMware无法启动虚拟机,所以尝试了在虚拟机中安装Docker. 1. 创建Windows虚拟机. windows至少是Win10 1.9***或者Win 11. 这是Docker Desktop要求的。 2. 虚拟机CPU要开启虚拟化功能。 虚拟机的CPU开启虚拟化 虚拟机的memory要不小…

项目中集成ECharts图表(通过定时任务SpringTask统计每天的订单金额)

项目应用Echarts ①、前端终端安装Echarts npm install echarts --save ②、src/views创建order目录,在order目录下创建orderStatistics.vue ③、src/router/modules目录下创建order.js,配置路由 const layout ()>import(/layout/index.vue) …

2022第十三届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组(题解解析)

记录刷题的过程、感悟、题解。 希望能帮到,那些与我一同前行的,来自远方的朋友😉 大纲: 1、九进制转十进制-(解析)-简单的进制转化问题😄 2、顺子日期-(解析)-考察日期 3…

python应用之使用pdfplumber 解析pdf文件内容

目录标题 一. 通过 pdfplumber.open() 解析复杂PDF:1-2. 报错:V2 : 1-3. v3 使用tk 库,弹框选择文件运行环境准备完整代码保存运行测试步骤方式二:命令行方式(适用于自动化) 测试用例示例常见问…

力扣热题100刷题day61|234.回文链表(两种方法)

一、回文链表 234.回文链表 两种解法 解法1:时间复杂度O(n) 空间复杂度O(n) 遍历链表,计算链表长度,创建同样长度大小的数组,用数组存储链表中所有元素,之后双指针遍历链表,一个从头开始,一…

vue3+element-plus动态与静态表格数据渲染

一、表格组件&#xff1a; <template> <el-table ref"myTable" :data"tableData" :header-cell-style"headerCellStyle" header-row-class-name"my-table-header" cell-class-name"my-td-cell" :row-style"r…

Kafka 中的生产者分区策略

Kafka 中的 生产者分区策略 是决定消息如何分配到不同分区的机制。这个策略对 Kafka 的性能、负载均衡、消息顺序性等有重要影响。了解它对于高效地使用 Kafka 进行消息生产和消费至关重要。 让我们一起来看 Kafka 中 生产者的分区策略&#xff0c;它如何工作&#xff0c;以及…

《从零搭建Vue3项目实战》(AI辅助搭建Vue3+ElemntPlus后台管理项目)零基础入门系列第二篇:项目创建和初始化

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 《从零搭建Vue3项目实战》&#xff08;AI辅助…

全国产FMC子卡-16bit 8通道2.4G

国产化FMC DA子卡&#xff0c;16bit 8通道2.4GS/s 全国产FMC子卡是一款高分辨率、高采样率的全国产多通道标准双宽DAC FMC子板。其接口电气和结构设计均依据FMC标准(ANSI/VITA 57.1)&#xff0c;通过两个高密度FMC连接器&#xff08;HPC&#xff09;连接至FPGA载板。它提供8路A…

linux-添加开机自启动指定脚本

一、systemd 服务&#xff08;主流方法&#xff09; 适用于使用systemd的现代发行版&#xff08;Ubuntu 16.04/CentOS 7&#xff09; 创建服务文件 sudo nano /etc/systemd/system/your_script.service写入服务配置&#xff08;示例&#xff09;&#xff1a; [Unit] Descri…

Spring MVC 返回 JSON 视图的方式及对比(6种)

Spring MVC 返回 JSON 视图的方式及对比&#xff08;新增 MappingJackson2JsonView&#xff09; 1. 方式一&#xff1a;ResponseBody 注解 作用&#xff1a;直接返回对象&#xff0c;由消息转换器&#xff08;如 Jackson&#xff09;序列化为 JSON。 适用场景&#xff1a;简单…