哨兵2号在SNAP中去云处理后

news2025/2/24 2:46:34

1.Fmask软件需要对1C级产品进行处理

软件下载,链接到github地址
在这里插入图片描述
我下载的是4.5版本,无脑安装即可。
双击打开软件(需要等一会),长这样
在这里插入图片描述
路径选择E:\S2\S2A_MSIL1C_20220806T032531_N0400_R018_T49RBQ_20220806T054540\S2A_MSIL1C_20220806T032531_N0400_R018_T49RBQ_20220806T054540.SAFE\GRANULE\L1C_T49RBQ_A037195_20220806T033824
在这里插入图片描述
点击run
在这里插入图片描述
状态会发生变化
在这里插入图片描述
当然也可以采用python实现,详见这个链接
Python会运行快一些,但是生成的是.img格式,转成tif好像多了些奇怪的值。故还是用软件吧!哪个简单用哪个
在这里插入图片描述
显示finished表示运行完毕

在这里插入图片描述
可以看到里面多了一个t文件夹,里面是Fmask.tif文件。
DN值所代表的含义如下:
0 => clear land pixel

1 => clear water pixel

2 => cloud shadow

3 => snow

4 => cloud

255 => no observation

运行完之后,我们会得到一个tif文件,因为我们只需要云掩膜也就是保留0和1的像元(纯净的陆地像素与纯净的水像素),其他和云相关的像元删掉,也就是将云所在的像素去掉。这里采用python实现,代码如下:

from osgeo import gdal, ogr, osr
import os
import datetime

path = r"cloud.tif"

if __name__ == '__main__':
    start_time = datetime.datetime.now()

    inraster = gdal.Open(path)
    inband = inraster.GetRasterBand(1)
    prj = osr.SpatialReference()
    prj.ImportFromWkt(inraster.GetProjection())

    outshp ="mask_cloud.shp"#记得改一下文件名路径
    drv = ogr.GetDriverByName("ESRI Shapefile")
    if os.path.exists(outshp):
        drv.DeleteDataSource(outshp)
    polygon = drv.CreateDataSource(outshp)
    poly_layer = polygon.CreateLayer(path[:-4], srs=prj, geom_type=ogr.wkbMultiPolygon)
    newfield = ogr.FieldDefn('value', ogr.OFTReal)
    poly_layer.CreateField(newfield)

    gdal.Polygonize(inband, None, poly_layer, 0)
    polygon.SyncToDisk()
    polygon = None

    # 打开生成的 Shapefile 文件
    shp_datasource = ogr.Open(outshp, 1)
    shp_layer = shp_datasource.GetLayer()

    # 遍历要素并删除 value 不为 0 或 1 的要素
    shp_layer_def = shp_layer.GetLayerDefn()
    delete_indices = []
    for i in range(shp_layer.GetFeatureCount()):
        feature = shp_layer.GetFeature(i)
        value = feature.GetField("value")
        if value != 0 and value != 1:
            delete_indices.append(i)
        feature = None

    # 从后往前删除要素,避免索引错位
    for idx in reversed(delete_indices):
        shp_layer.DeleteFeature(idx)

    # 重新同步文件
    shp_layer.ResetReading()
    shp_datasource.SyncToDisk()

    end_time = datetime.datetime.now()
    print("Succeeded at", end_time)
    print("Elapsed time:", end_time - start_time)

注意需要有gdal库,推荐本地安装,这里不会可以看这篇文章。

运行完这段代码后会得到一个掩膜文件
在这里插入图片描述

2.1C级产品生成云掩膜后再批量进行sen2cor大气校正

这我相信你会的!
然后把校正后的2A级产品用SNAP打开

3.批量重采样与掩膜操作

1.导入2A级产品在这里插入图片描述

你应该知道吧,先重采样到10m。然后用上面同样的方法导入对应的云掩膜shp文件,看看数据有没有问题。!!!

2.导入我们在第1步生成的云掩膜文件

这时候就要进行我们的掩膜操作了(有什么疑问的去看官方文档,点一下“帮助”认真读一下)
在这里插入图片描述
找到vector Data文件夹,选中之后点击上方菜单栏Vector-import-shp
在这里插入图片描述
在这里插入图片描述
记得这里选否不然每个多边形都生成一个文件
在这里插入图片描述
可以看导在Vector Data下面和Masks下面多了一个mask
双击打开可以看到它的属性值,1代表有效像素,0代表无效像素,我们需要抠掉的像素
在这里插入图片描述
在这里插入图片描述
这里最好先重采样到10m,我找了一景重采样之后的影像来做演示
在这里插入图片描述看看效果,mask是否完全覆盖了云
在这里插入图片描述
然后进行掩膜操作,说白了就是把有云的地方抠掉,然后再进行后续的镶嵌操作补上来,云多真没办法,哎!误差大。

3.SNAP掩膜操作

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
波段那里全选。点击run运行即可。
可以看到掩膜之后相当于把云抠掉了
在这里插入图片描述

然后再选取同一传感器,同一地点,相近时间的影像在SNAP软件中做同样的处理
然后把他们镶嵌在一起,可以选择中值合成
在这里插入图片描述
就可以得到一幅完整的影像啦!

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

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

相关文章

每天一道leetcode:剑指 Offer 12. 矩阵中的路径(中等DFS深度优先遍历)

今日份题目: 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元…

一文讲述什么是数字孪生?

当前世界正处于百年未有之大变局,数字经济在各国已成为经济发展的重点。数字经济也是我国社会经济发展的必经之路。 近些年,大数据、人工智能、数字孪生等技术的发展促使技术与国内各产业进一步融合,从而推动了各产业在智能化、数字化等方面…

雷军写的代码上热搜了!

就在昨天,「雷军写的代码」相关话题先后上了一波热搜和热榜。 出于好奇,第一时间点进去围观了一波。 原来雷总马上要在8月14日举办他的2023年度演讲了,并且也放出了对应的演讲海报。 这个海报可以说暗藏玄机,放大后仔细一看&#…

前端部署流程详解

部署流程 1.打包前端项目成一个dist文件夹 命令: npm run build作用:用vue-cli内部集成的webpack,把 .vue, .less, .js 等打包成浏览器可直接执行的代码 html,css,js。 结果:会在项目根目录下创建 /dist目录&…

UEFI+win7+多系统安装

物理主机先安装的Windows10,同时需要安装Windows7的双系统 1.在https://next.itellyou.cn/下载Windows 7 ISO 2.使用Rufus制作U盘安装盘 注意一定要选择FAT32格式,否则安装过程会卡住 3.由于官方纯净的安装镜像默认不支持UEFI安装,有两种解决…

github的issue最大支持的字符数为65536 characters

Issue templates and forms are currently unavailable. Please try again later. Comment is too long (maximum is 65536 characters) There was an error creating your Issue: body is too long (maximum is 65536 characters). 所以不能存储内容过大的markdown笔记&…

互联网医院|线上医疗平台如何建设运营服务商?

互联网医院平台紧密结合了大数据和人工智能技术,为医疗服务提供了更精准和个性化的解决方案。通过对海量的医疗数据进行分析和挖掘,平台能够为医生提供更多准确可靠的参考依据,辅助医生做出更好的诊断和治疗决策。 在选择互联网医院建设运营服…

Spring kafka源码分析——消息是如何消费的

文章目录 概要端点注册创建监听容器启动监听容器消息拉取与消费小结 概要 本文主要从Spring Kafka的源码来分析,消费端消费流程;从spring容器启动到消息被拉取下来,再到执行客户端自定义的消费逻辑,大致概括为以下4个部分&#x…

直播|深入解析 StarRocks 存算分离—云原生湖仓 Meetup#2

StarRocks 3.0 正式开启极速统一的湖仓新范式,借助云原生存算分离构架、极速数据湖分析、物化视图等重量级特性实现湖仓架构升级,兼具数据仓库查询高性能与数据湖低成本可扩展的优势,让用户更简单地实现极速统一的湖仓分析。 作为 StarRocks…

05-bean工厂的准备工作

入口方法 prepareBeanFactory(beanFactory);protected void prepareBeanFactory(ConfigurableListableBeanFactory beanFactory) {// Tell the internal bean factory to use the contexts class loader etc.// 设置beanFactory的classloader为当前context的classloaderbeanF…

计算机组成原理-笔记-第六章

目录 六、第六章——总线 1、总线(基本概念) (1)总线的定义 & 特性 (2)串行 &并行 (3)总线的分类 (4)总线分类——功能 (4.1&…

分布式数据库视角下的存储过程

存储过程很好呀,那些用不好的人就是自己水平烂,不接受反驳!我就有过这样念头,但分布式数据库,更倾向少用或不用存储过程。 1 我从C/S时代走来 C/S架构时代的末期最流行开发套件是PowerBuilder和Sybase数据库&#xf…

性能测试最佳实践的思考,7个要点缺一不可!

性能测试是软件开发和应用过程中至关重要的环节。它是评估系统性能、稳定性和可扩展性的有效手段,可以确保软件在真实环境中高效运行。在现代技术快速发展的时代,性能测试的重要性愈发显著。 性能测试在软件开发和应用过程中的重要性不可低估。它是保障…

程序员怎么利用ChatGPT解放双手=摸鱼?

目录 1. 当你遇到问题时为你生成代码ChatGPT 最明显的用途是根据查询编写代码。我们都会遇到不知道如何完成任务的情况,而这正是人工智能可以派上用场的时候。例如,假设我不知道如何使用 Python 编写 IP 修改器,只需查询 AI,它就…

模拟实现string类

string类的接口有很多,这里我来梳理一下自己觉得有意思的几个,并模拟实现一下可以凑合用的my_string,话不多说直接开干: 注意事项 为了和库里的string冲突,所以就将自己实现的my_string放在一个命名空间里 namespace …

采用pycharm在虚拟环境使用pyinstaller打包python程序

一年多以前,我写过一篇博客描述了如何虚拟环境打包,这一次有所不同,直接用IDE pycharm构成虚拟环境并运行pyinstaller打包 之前的博文: 虚拟环境venu使用pyinstaller打包python程序_伊玛目的门徒的博客-CSDN博客 第一步&#xf…

明天就要去面试软件测试岗了,现在我能怎么做呢?

首先,时间已经不允许你进行大面积的专业复习,所以你应该做好能够立竿见影的准备工作: 1、整理好自己的仪表 先去理个发,让自己看起来精神一点,尤其是男生,整理头发,修修鬓角能够快速让人对自己…

安卓13不再支持PPTP怎么办?新的连接解决方案分享

随着Android 13的发布,我们迎来了一个令人兴奋的新品时刻。然而,对于一些用户而言,这也意味着必须面对一个重要的问题:Android 13不再支持PPTP协议。如果你是一个习惯使用PPTP协议来连接换地址的用户,那么你可能需要重…

机器学习实战——波士顿房价预测

波士顿房价预测 波士顿房地产市场竞争激烈,而你想成为该地区最好的房地产经纪人。为了更好地与同行竞争,你决定运用机器学习的一些基本概念,帮助客户为自己的房产定下最佳售价。幸运的是,你找到了波士顿房价的数据集,…

tabBar的使用

参考Api:全局配置 | 微信开放文档 (qq.com) 1.使用说明 2.使用详情 3.使用案例 在全局配置的app.json中 "tabBar": {"color": "#333","selectedColor": "#d43c33","backgroundColor": "#fff&qu…