Sentinel-2数据以其高时空分辨率获得了越来越多的应用,然而由于Sentinel-2数据空间分辨率高,光谱分辨率高,数据量也较Landsat数据大幅上升。好在ESA SNAP软件批处理功能也很强大,可以支撑起大数据量的应用。下面就介绍一下如何使用SNAP批量处理Sentinel-2数据。
Sentinel-2数据的下载和由L1C数据处理为L2A数据过程请见往期文章:
Sentinel-2数据简介与下载加工更新2019.6.16
SNAP一些基础操作请参阅:
推荐一个好用的免费遥感软件ESA SNAP
首先,打开数据,一幅幅的都好说,如何批量打开文件夹中的L2A数据呢?
File-Product Library
打开Product Library后,依次点击下图中的添加文件夹(Add Folder)按钮,导入文件夹中的数据;全选所有产品(Select all products);打开(Open)按钮,即可完成Sentinel-2数据的批量导入工作。
接下来要使用Graph Builder工具创建工作流,我的目的是选取可见光和近红外波段进行10m分辨率的遥感解译,因此我在这里只需要添加一个Band select工具即可。Graph builer的用法请参阅前面引用的第二篇文章,这里不再赘述。
Graph builder中工作流创建好后,保存,即可进行下一步,批处理(Batch Processing)。批处理的启动按钮如下图所示:
点击Add opened将打开的数据导入批处理工具中
File-Load Graph导入刚刚建立的工作流文件
切换到BandSelect选项卡,设置参数
指定好输出位置和文件类型后,点击Run,即可运行。由于SNAP目前存在一些BUG和缺陷,光学影像镶嵌工作无法集成在工作流中,在执行完影像的波段融合后,只能手动一步步进行后面的镶嵌和裁剪操作。Raster-Geometric Operations-Mosaicing即可打开镶嵌对话框。
对话框里面有三个选项卡,I/O Parameters(输入输出参数),Map Projection Definition(定义投影)和Variables & Coniditions(变量和条件)。首先我们在输入输出参数选项卡中指定输入的影像,点击下面箭头指向的“加号”即可选择所需影像文件。在本选项卡内还需要对Name(文件名)、文件输出类型和目录进行设置。
接下来要定义投影,建议选择已经定义好的WGS84/UTM投影,如果研究区范围大,可以再选择别的适合更大范围的投影,具体投影选择请参阅往期文章:GIS基础教程之坐标系,然后还需要设置输出影像大小,在这里选择10m,Sentinel-2数据的最高分辨率,也是前面选择的B2,3,4,8波段的分辨率。
接下来要从第三个选项卡中选择要输出的波段,点击下图箭头所指按钮,选择2,3,4,8波段即可。
所有设置完毕后,点击RUN,运行,这样,影像镶嵌这一步就算完成了。接下来要对镶嵌完成的影像进行裁剪,保留研究区内部,去除不需要的部分。
在导入矢量数据前,先打开影像融合后的mosaic1图层中的Vector Data文件夹,这样就可以将矢量导入这个图层了,否则可能会出现矢量数据无法导入或不显示等情况。
点击Vector-Import-ESRI Shapefile,选择要裁剪的SHP文件,即可导入完成。
SNAP的裁剪命令隐藏的比较深,我是从ESA FORM论坛上面看了半天官方人员的解释才搞明白的。Raster-Masks-Land/Sea Mask打开陆地海洋裁剪后,先在输入输出选项卡中指定好要裁剪的文件,然后,切到第二个选项卡。
选择波段,Use Vector as Mask,选择刚刚导入的矢量层,即可执行裁剪。
裁剪后的影像导入ENVI如图所示:
这样,SNAP中Sentinel-2数据的批量处理工作就完成了。