如何在R中使用s2_mask函数掩盖Sentinel 2图像中的云?

问题描述

我想使用工具箱sen2r处理R中的Sentinel 2 L2A数据。我已经手动下载了.SAFE格式的图像。

我已经使用s2_translate()将.SAFE格式转换为geotif:

in_dir <- "D:/data/s2"
out_dir <-"D:/s2_geotifs"

## translate .safe to geotif

s2_example <- file.path(
  in_dir,"S2B_MSIL2A_20200525T104619_N0214_R051_T31UFT_20200525T133932.SAFE")

s2_raster_dir <- s2_translate(s2_example,format="GTiff",outdir = out_dir)

这是一块11层的栅格砖,据我所知,所有这些都对应于前哨2的光学带。

现在,我想应用s2_mask函数(特别是要用于频段4和8,因为我要制作NDVI),但是代码文档说您需要SCL产品作为输入。 SCL产品是带有用于遮罩的分类云像素的频段。如果我将.SAFE图像加载到SNAP中,例如我可以看到SCL产品。但是,在此情况下,我无法在s2_translate()输出或原始的.SAFE中找到SCL。

根据文档,输入应如下:

sen2r.ranghetti.info/reference/s2_mask.html

所以问题是我在任何地方都找不到SCL产品。我已根据需要应用s2_translate。

解决方法

默认情况下,s2_translate仅生成BOA输出。我认为您还需要再次使用s2_translate从SAFE显式生成SCL文件,并使用以下内容:

s2_translate(s2_example,prod_type = "SCL",format="GTiff",outdir = out_dir)

在此处查看文档:

http://sen2r.ranghetti.info/reference/s2_translate.html http://sen2r.ranghetti.info/reference/safe_shortname.html

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...