哨兵2a 波段组合_遥感数据介绍—Sentinel 2A
今天介绍一下Sentinel卫星以及一些预处理的方法。
1.基本信息(成像仪/重访周期/波段数/分辨率)
哨兵2号是高分辨率多光谱成像卫星,携带一枚多光谱成像仪(MSI),用于陆地监测,可提供植被、土壤和水覆盖、内陆水路及海岸区域等图像,分为2A和2B两颗卫星,哨兵,2B与2015年6月发射的哨兵-2A卫星为同一组。哨兵-2号卫星高度为786km,覆盖13个光谱波段,幅宽达290千米。地面分辨率分别为10m、20m和60m、一颗卫星的重访周期为10天,两颗互补,重访周期为5天。从可见光和近红外到短波红外,具有不同的空间分辨率,在光学数据中,哨兵-2号数据是唯一一个在红边范围含有三个波段的数据,这对监测植被健康信息非常有效。
下载网站:https://scihub.copernicus.eu/dhus/#/home
Ps:夜里1:00下载会很快
成像仪:MSI 重访周期:5-10天 波段数:13 分辨率:10m/20m/60m
2.产品等级及插件介绍
欧空局仅发布了哨兵2号的L1C级多光谱数据(MSI),Sentinel-2 L1C是经过正射校正和几何精校正的大气表观反射率产品,并没有进行大气校正。同时,ESA还对S2 L2A级数据进行了定义,L2A级数据主要包含经过大气校正的大气底层反射率数据(Bottom-of-Atmosphere corrected reflectance),这个数据可以通过Sen2cor插件自行生产。
插件说明:1.Sen2cor 分为2.05/2.08版本,前者用于处理290km宽幅的16年老数据,后者用于处理新数据。L2A Process + 文件名完成辐射定标+大气校正。
2.Sen2Res,提供超分辨率合成功能。这是一个nbm文件,由于Sentinel2有10/20/60m三个分辨率的遥感数据,所以在对图像进行其他处理之前,需要先统一到一个分辨率,可以用重采样或者是超分辨率合成。具体操作步骤是在Snap中的plugins里添加已下载的插件并安装,此外该nbm文件还可以通过python调用实现批处理功能。
3.文件夹介绍
介绍一下数据的内容,这里分为16年和19年的数据,由于16年的影像是290km幅宽,所以存储方式和19年有所不同。
首先是16年的数据。其中xml文件是索引文件,索引到存储的数据,具体存放波段数据的文件是GRANULE文件夹,用10个文件夹把大图幅切片分别存储,打开某个图幅的IMG_DATA文件夹存储了13个波段的影像数据,jp2格式。通过最外层索引文件控制内层的文件,直接打开所有数据。也可以通过内层文件夹的xml文件打开单个图幅的数据。AUX_DATA为辅助文件,可能存储 太阳高度角、日地距离等信息。
19年的数据存储大小发生改变,减小了单幅图像的幅宽。GRANULE文件夹中只存放了一个图幅,存储所有波段数据(图4)。
接着对上述L1C级产品加工,做大气校正,得到L2A级产品,数据格式有所不同。校正后IMG_DATA把数据按照分辨率不同分成了三个文件夹进行存储。Sentinel2A数据没有全色波段,因此他提供了10m分辨率的四个波段数据,用于完成图像的超分辨率。此外10波段作为卷云波段,不进行大气校正,没有提供,需要从L1C产品获取取。
完成图像大气校正后,由于不同波段的分辨率各不相同,所以需要重采样到同一个分辨率,或者用Sen2Res完成超分辨率合成,速度较慢,不过质量很好。这样才能进行下一步处理所有波段分辨率统一了才能进行下一步处理,可以Snap保存为ENVI格式或者GTiff等等再做运算,这样计算NDVI等指数也就方便了。
L2A产品的文件里还有相关的分类文件,分类了植物、云、雪、水体等等,还有对应的index,但是精度太低。
4.数据的读取。
1)Snap软件:打开xml索引文件从而打开所有波段数据,或者打开单个文件xml来打开单个波段。
2)Python+GDAL
JP2格式的图像数据可以用GDAL读取,并且可以读取到文件的投影信息和地理参数,有需要可以用GDAL读取并且转换成Tiff文件。
这里还发现数据集ds可以直接调用ds.ReadAsArray()读取数组阵列,真是有点奇葩。。。我还一直以为ds只能ds.ReadRaster呢。
from osgeo importgdalimportnumpy as np
filename= r'S2A.jp2'
classsentinel:defread_img(self, filename):
ds=gdal.Open(filename)
Xsize=ds.RasterXSize
Ysize=ds.RasterYSize
bnum=ds.RasterCount
data=ds.ReadAsArray(0, 0, Xsize, Ysize) #太奇葩了,ds都能ReadAsArray()
proj=ds.GetProjection()
geotrans=ds.GetGeoTransform()returnproj, geotrans, data, Xsize, Ysize, bnumdefwrite_img(self, filename, outfile):
proj, geotrans, data, width, height, bands=self.read_img(filename)
driver= gdal.GetDriverByName('GTiff')
ds=driver.Create(outfile, width, height, bands, gdal.GDT_UInt16)
ds.SetGeoTransform(geotrans)
ds.SetProjection(proj)if bands==1:
ds.GetRasterBand(1).WriteArray(data)else:for i in range(1, bands+1):
ds.GetRasterBand(i).WriteArray(data)delds
run=sentinel()
proj, geotrans, data=run.read_img(filename)print(np.shape(data))
另外贴一下16年数据的读取代码,有所不同。
from osgeo importgdalimportos#这里打开了一个哨兵2A L1C zip文件
filename = ('S2A_MSIL1C_***.zip')
root_ds=gdal.Open(filename)#返回结果是一个list,list中的每个元素是一个tuple,每个tuple中包含了对数据集的路径,元数据等的描述信息
#读取所有子数据集
ds_list =root_ds.GetSubDatasets()
visual_ds= gdal.Open(ds_list[0][0]) #取出第一个图幅的第一个波段数据
visual_arr = visual_ds.ReadAsArray() #将数据集中的数据转为ndarray
delvisual_arr#获得栅格数据的一些重要信息
print(f'打开数据为:{ds_list[0][1]}')print(f'投影信息:{visual_ds.GetProjection()}')print(f'栅格波段数:{visual_ds.RasterCount}')print(f'栅格列数(宽度):{visual_ds.RasterXSize}')print(f'栅格行数(高度):{visual_ds.RasterYSize}')
以上就是本次学习Sentinel2A的一些心得,其实仔细看看发现和Landsat8都是有共通之处的。下次会介绍一下Sentinel3A卫星,这个数据的存储方式好像都是.nc文件,有点意思。
哨兵2a 波段组合_遥感数据介绍—Sentinel 2A相关推荐
- 哨兵2a 波段组合_基于Sentinel-2(哨兵2)遥感卫星的植被覆盖度提取
1 Sentinel-2简单介绍 哨兵-2系列卫星的主要载荷多光谱成像仪拥有13个谱段,从可见光到近红外再到短波红外,空间分辨率从10m到60m,能实现全所未有的陆地海洋监测水平.其幅宽高达290KM ...
- 哨兵2a 波段组合_一种针对哨兵2A影像的建筑物阴影提取处理方法与流程
本发明涉及建筑物阴影提取技术领域,尤其涉及一种针对哨兵2A影像的建筑物阴影提取处理方法. 背景技术: 阴影在遥感影像中是一种广泛分布,不可忽视的地物.在高分影像中,城市的建筑物阴影通常由于高大的建筑物 ...
- 哨兵2a 波段组合_基于多时相Sentinel-2A的县域农作物分类
基于多时相 Sentinel-2A 的县域农作物分类 吴 静 1 吕玉娜 2 李纯斌 1 李全红 1 [摘 要] 摘要: 利用遥感技术精准地获取区域农作物种植结构数据,对指导农 业生产.制定农业政策具 ...
- Venμs高分辨率(5米)多波段(12个)遥感数据介绍及下载
Venμs高分辨率遥感数据介绍及下载 一.THEIA及Venµs数据简介 由THEIA发布的Venµs数据采用知识共享署名-非商业性4.0国际许可协议进行许可. 对于使用该数据集的任何通信,包括以下信 ...
- 大数据介绍项目流程_大数据介绍
大数据介绍项目流程 About Big Data 关于大数据 什么是大数据?(What is Big Data?) In modern world, there are many big proble ...
- 遥感影像波段组合批处理-Landsat波段组合Sentinel-2波段组合-珠海一号辐射定标波段组合
目录 波段组合批处理 Landsat波段组合 加载需要处理的影像 选择波段组合顺序 点击"处理"按钮,等待处理完成 Sentinel-2波段组合 加载数据 选择波段组合顺序 点击& ...
- Suomi NPP VIIRS夜间灯光遥感数据简介与下载(一)——数据介绍,FTP下载与hdf5读取
失踪人口回归+爷青回,本篇介绍下Suomi NPP VIIRS夜间灯光遥感数据下载. 文章目录 1 夜间灯光遥感数据简介 2 夜间灯光遥感数据下载 1 年和月尺度产品下载 2 日尺度产品下载 3 NP ...
- Python遥感图像处理应用篇(二十五):Python+GDAL 波段组合
1.使用场景描述 之前使用arcpy python2.7写了一篇进行遥感数据波段组合计算的博文,使用场景是将所有单波段数据放在一个文件夹中(如下图),文件名称前缀一样,后缀波段编号用来区分不同的波段, ...
- python遥感影像分类代码_Python 实现遥感影像波段组合的示例代码
最近要做个遥感相关的小系统,需要波段组合功能,网上找了可以使用ArcGIS安装时自带的arcpy包,但是Python3.7不能使用现有ArcGIS10.2版本,也不想再装其他版本,所以只能自己想了个办 ...
最新文章
- 【java】Lombok的使用
- Windows、VMware、Linux及开发板间的网络连接
- C++11特性(模板类 initializer_list)
- Py之pygame:有趣好玩——利用pygame库实现一个移动底座弹球的小游戏
- Webkit for android
- C语言一趟冒泡交换最小值,C语言单链表冒泡排序为啥以下代码实现不了?
- Apache工作模式详解
- vscode无法打开源文件iostream_C++的iostream标准库介绍(1)
- 说要干掉苹果的罗永浩却打起了微软
- 9-3 数据分布概论
- postgresql 动态添加过滤条件_XsqlFilterResult----动态生成sql语句的类,过滤一些为空的查询条件...
- MATLAB (2014b) “doc” cannot load libxul.so from Java on Linux system解决办法
- c语言如何开发应用程序,怎样用c语言编写软件?如许多小的程序。
- Pyside2中嵌入Matplotlib的绘图并保存(指定Graphics View)
- Navigation网站收藏和导航平台
- github提交代码:schannel: failed to receive handshake, SSL/TLS connection failed
- 英语长语法难句——状语和状语从句
- Flutter组件--GridView使用详情
- 基于QT的电子相册设计与实现
- 【免费】傻瓜式一键内网穿透实现ssh连接远程局域网的电脑(利用免费frp服务器)