因为最近要使用哨兵数据,所以花费了好几天在网上学习怎样获取哨兵数据,终于学会了怎样下载和处理哨兵数据,在这里就特意的做了一篇笔记来记录一下整个过程。


文章目录

  • 一、哨兵数据的下载
  • 二、Sen2Cor软件下载和配置
  • 三、哨兵L1C数据处理
  • 四、小结


一、哨兵数据的下载

1、欧空局网址:https://scihub.copernicus.eu/dhus/#/home

python处理哨兵2号L2A数据_python处理哨兵2号L2A数据

2、如果你是第一次进入这个网站下载数据,需要注册一个账号(这个账号好像还有一个名字叫哥白尼天文中心账号,记不太清了哈哈)

python处理哨兵2号L2A数据_数据分析_02


3、左上角可以查询你要下载那个地址,但是我当时没搜出来,所以就手动的找了一下位置。

4、找到了位置之后,就按住(是按住)滑轮,拖动鼠标即可以选中你要下载的区域,如下所示:

python处理哨兵2号L2A数据_数据_03


5、选中要下载的区域之后,下面就是要设置你要下载的数据类型了

python处理哨兵2号L2A数据_软件下载_04


6、填写完上述的参数之后,点击查询按钮即可得到你想要下载的数据,如下所示:

python处理哨兵2号L2A数据_环境变量_05

python处理哨兵2号L2A数据_软件下载_06


在这里要注意一下,如果你没有设置云量的限制,只是单纯的想下载清晰的图像,那么可以先观察左侧的预览图,然后再进行下载:

python处理哨兵2号L2A数据_数据分析_07


7、找到你要下载的数据之后,点击下载即可。不过在这里要推荐一下IDM,好像它采用了多线程的技术,使用这个下载器下载数据会快一点。

python处理哨兵2号L2A数据_数据_08


8、下载好的数据是这个样子的,如下所示:

python处理哨兵2号L2A数据_数据_09


如果你想要加载该数据,你可以下载欧空局的SNAP软件,使用该软件就可以加载S2A_MSIL1C数据了。不过我没下载该软件,我想着是把数据处理成S2A_MSIL2A数据之后,使用ENVI软件加载查看就可以了,如果想下载的话可以到下面的网址中下载SNAP软件。

SNAP下载地址:http://step.esa.int/main/download/snap-download/

注:也可以去USGS:https://earthexplorer.usgs.gov/下载图像,网上有这方面的教程在这就不多讲了。

二、Sen2Cor软件下载和配置

1、进入网址下载Sen2Cor软件,如下所示:

Sen2Cor软件下载:http://step.esa.int/main/third-party-plugins-2/sen2cor/

python处理哨兵2号L2A数据_数据分析_10


你可以仔细读一下这两个版本后面的说明文字,按自己的需求下载即可。

2、下载好软件之后,我原来一直以为要安装它,到最后才发现其实你不需要安装它。因为他是一个独立的插件,所以我直接将它放到了C盘的目录下(事后再看,其实可以不放在C盘下,只需要添加环境变量即可),当然只是这要还是不行的,那么我们还需要将它的路径添加到环境变量中去才行,如下所示:下载的Sen2Cor软件:

python处理哨兵2号L2A数据_数据分析_11


设置环境变量:

(1)右击【此电脑】中的【属性】,进入下面的界面,点击【高级系统设置】。

python处理哨兵2号L2A数据_数据_12

(2)点击【环境变量】,并找到系统变量中的【path】变量。

python处理哨兵2号L2A数据_数据_13

python处理哨兵2号L2A数据_python处理哨兵2号L2A数据_14


(3)双击【path】变量进入编辑界面,点击【新建】按钮将Sen2Cor文件夹路径添加进来就行了。

python处理哨兵2号L2A数据_数据_15

python处理哨兵2号L2A数据_python处理哨兵2号L2A数据_16


在这里要多说一句,之前添加环境变量时,总感觉让我不太理解,就是为啥要添加这个变量。而这个问题在我学习了一点Linux知识之后,得到了很好的解答,其实【path】变量相当于一个string(字符串)数组,而且我感觉它也相当于我们编写的程序中的全局变量,它主要的作用就是用于记录路径信息。你要这样想就好理解了,其实电脑是很笨的,你不给他指明了方向他就不知道往哪里走,【path】变量中的路径就是我们给电脑指明的方向,让他优先搜索这些路径下所存储的文件。

4、最后就是试一下我们安放的插件能不能使用。

(1) 打开Windows命令提示符窗口(win+r,输入cmd),如下所示:

python处理哨兵2号L2A数据_环境变量_17


(2)在这个界面下输入L2A_Process --help命令,看是否出现了下面的情况。

python处理哨兵2号L2A数据_环境变量_18


如果出现了上述情况,说明Sen2Cor插件可以进行使用,如果有问题,就检查一下添加的环境变量是否正确无误。

三、哨兵L1C数据处理

1、将命令提示符窗口中的路径切换到你要处理的L1C数据的路径下,如下图所示:

python处理哨兵2号L2A数据_环境变量_19


python处理哨兵2号L2A数据_数据_20


注:(1)这一步很重要,否则你如果执行下面的操作,电脑会提示你找不到你要处理的数据在哪,再次说一遍“电脑是很笨的,你需要为他指明方向,他才能为你服务”。

(2)放置哨兵数据(还有Sen2Cor软件)的路径不能包含中文名,否则可能会在处理数据的过程中发生错误。2、执行L2A_Process 文件名 --resolution=10 --refresh命令来处理S2A_MSIL1C数据,将其转化为S2A_MSIL2A数据。这些命令参数其实你可以使用L2A_Process --help来进行查找。

python处理哨兵2号L2A数据_软件下载_21


3、具体的生成过程就不再展示了,主要是处理过程要花费一定的时间哈哈,最后生成的L2A数据如下所示:

python处理哨兵2号L2A数据_软件下载_22

python处理哨兵2号L2A数据_python处理哨兵2号L2A数据_23


python处理哨兵2号L2A数据_python处理哨兵2号L2A数据_24


python处理哨兵2号L2A数据_数据分析_25

四、小结

哨兵数据的获取的确有些麻烦,但是在这其中也是让我更深入了解了一些东西,如环境变量、插件的使用、命令提示符窗口中命令的使用等等,虽然整个过程花费的时间有点长(大约有5、6天),但是总的来说还是值得的,算是多劳多得吧。