01-SNAP与snappy介绍及安装
转载自:https://blog.csdn.net/lidahuilidahui/article/details/99679554
01-SNAP与snappy介绍及安装
- 前言
- 关于SNAP
- SNAP介绍
- STEP
- SNAP
- Sentinel工具箱:
- 总结
- SNAP安装
- 相关资源:
- 关于snappy
- snappy简介
- snappy安装
- snappy包生成
- 方法1----在安装SNAP直接生成:
- 方法二----利用SNAP的snappy-conf.bat脚本生成
- snappy包解译
- snappy包测试
- 结语
- 参考文献
(原创文章,转载请注明来源,谢谢!)
前言
关于SNAP
SNAP介绍
STEP
SNAP
SNAP(Sentinel Application Platform)是哨兵数据应用平台,是所有哨兵工具箱的基础平台(公共架构),为桌面端C-S平台。具有可扩展性、可移植性和模块化界面。
- 所有工具箱的通用架构;
- 可以实现千兆影像快速显示和导航;
- 图形处理框架(GPF):用于创建用户定义的处理链;
- 高级图层管理:允许添加和操作新的叠加层,例如其他波段的图像,来自WMS服务器或ESRI shapefile的图像;
- 丰富感兴趣区ROI定义,统计数据和各种出图;
- 简单的波段计算和叠加;
- 使用灵活的数学表达式;
- 对常见地图投影进行准确的重投影和正射校正;
- 使用地面控制点进行地理编码和整理;
- 自动SRTM DEM下载和选择;
- 用于高效扫描和编目大型档案的产品库;
- 多线程和多核处理器支持;
- 集成的WorldWind可视化;
Sentinel工具箱:
- 继承并拓展了NEST工具箱的大部分特性,主要用于处理SAR数据:辐射定标、相干斑处理、地形校正、椭球校正、重投影、配准、时序分析、极化分解、分类、干涉等处理
- 支持的SAR卫星数据:Sentinel-1、ERS-1&2、Envisat、ALOS PALSAR,TerraSAR-X,COSMO-SkyMed、RADARSAT-2等第三方SAR数据;
- 主要用于处理多光谱数据,包括掩膜、裁剪、重采样、直方图统计、波谱分析、重投影、波段运算、多种指数运算器(如NDVI,NDWI,LAI,CCC等),无监督和监督分类等众多操作
- 支持多光谱卫星数据:Sentinel-2、Envisat(MERIS和AATSR)、ERS(ATSR)、RapidEye,SPOT、MODIS(Aqua和Terra)、Landsat(TM),ALOS的第三方数据(AVNIR&PRISM)等;
- 支持数据可视化(栅格金字塔,栅格图层色带等)设置,数据分析(剖面图,散点图,相关分析),栅格数据处理(重投影、镶嵌、聚类、分类)等处理
- 支持数据类型:Sentinel-3中的OLCI和SLSTR、Envisat(MERIS和AATSR)、ERS(ATSR)、SMOS、MODIS(Aqua和Terra),Landsat(TM),ALOS(AVNIR&)、PRISM等。
- PolSARPro:PolSARpro软件提出了大量著名的Pol-SAR算法和工具,为科学开发利用极化测量技术奠定了基础,并使用Pol-SAR、Pol-InSAR、Pol-TomoSAR和Pol-TimeSAR数据刺激研究和应用开发,接触过PolSAR研究方向的应该比较熟悉。
- 第三方插件
- Sen2cor:Sentinel-2 L2A产品生成和格式化处理器;它对L1C级大气输入数据进行大气、地形和卷云校正。Sen2Cor创建底部大气,可选地形和卷云校正反射图像;此外,还会创建气溶胶光学厚度,水汽,场景分类地图和带有质量指标性质的云和雪概率掩膜图像。其输出的产品格式和L1C级用户产品格式相同:JPEG 2000格式图像,三种不同的分辨率,60、20和10 m。。
- Sen2Three:一个Sentienl-2 L3级处理器,用于大气校正Sentinel-2 L2A级图像的时间序列影像合成,Sen2Three以某一地理区域(tiles) L2A级图像的时间序列为输入,通过将之前输入图像的所有“坏”像素逐步替换为随后场景的“好”像素,生成合成输出图像,可以实现Sentinel-2 L2A数据去云处理。
- Sen2Res:一种将Sentinel-2产品的空间分辨率提高到10m/像素的处理器,可以保持产品的反射率。Sentinel-2 MSI没有全色波段,但它包含4个10m/pixel波段。Sen2Res的工作原理是建立一个模型,描述这些波段之间如何共享信息(即独立于反射率的像素内容),以及哪些信息是特定于这些波段的(即像素内容的颜色)。然后应用该模型对20m/pixel波段和60m/pixel波段进行解调,同时保持其反射率。
- SNAPHU:斯坦福大学开发免费的用于InSAR的相位解缠工具,可集成在SNAP中用于对Sentinel-1 IW SLC级产品进行InSAR处理的相位解缠。
总结
- 开源(GPLv3 license), 使用java通用框架开发
- 原生态的Sentinel系列卫星处理平台
- 支持图形处理框架(gpt)批量处理
- 可扩展java/Python源码(snappy)的插件
- 支持引擎和云平台操作
- 跨平台单独安装
总之一句话,SNAP是优秀的开源遥感处理软件,值得学习和研究。
SNAP安装
SNAP 已更新至7.0版本,还在使用旧版本的SNAP,建议升级一下。实际上SNAP V8.0已经进入开发阶段了。
SNAP用户者日大会(SNAP User Day)将于2019年9月10 日召开:届时欧空局SNAP开发专家将会出席该大会,并对SNAP的有关问题进行解答。会分享硬核干货,感兴趣的话,一定要关注。
博主目前使用的是Windows系统,下面简介一下Windows系统下面的关键步骤。
鼠标左键双击下载esa-snap_all_windows-x64_7_0.exe(这里是Windows系统下的.exe文件)即可。
可以选择安装的路径:
可以选择安装的工具箱,默认就行。
相关资源:
关于snappy
snappy简介
- 如果您需要使用Python的科学扩展库,如numpy、scipy、matplotlib等;
- 你已经有了CPython代码,你想要合并SNAP中的函数;
- 您计划用Python实现一个快速数据处理器插件;
- 您不打算开发SNAP桌面用户界面扩展;
- 您不需要在所有平台上都具有完全的可移植性;
- 您的代码依赖于(或将依赖于)许多非标准库。
如果你有以上需求,请安装标准Python (CPython)的snappy。
目前SNAP论坛绝大部分人安装的都是CPython类型的snappy,下面就Cpython类型的snappy的安装进行介绍(博主使用的是Win10系统)。
snappy安装
snappy包生成
方法1----在安装SNAP直接生成:
见前面的SNAP安装教程,在SNAP安装过程直接配置,前提是你已经安装好了Python(v2.7, v3.3-3.4)。
看到这,你可能会问,能不能安装更高版本的Python(Python3.4以上版本),现在回答你这个问题,Python(v2.7, v3.3-3.4)这三个版本是欧空局推荐的版本,是经过欧空局官方测试的,最好使用这三个版本,另外,论坛也有使用Python3.5, 3.6安装成功的,但是不能保证里面是否有些代码使用是否会出错,至于更高版本Python3.7-3.8, 目前还没有人成功安装上,你可以自己试下。毫无疑问,欧空局后面会提升更高版本Python的支持,只是还需要一定的时间
博主的配置(或者说是建议吧):
不建议使用Python 2版本,这个版本在Python 官方会2020年停止维护。博主使用的两个版本的Python,分别是标准版Python 3.4.4(Python 3.4版本也已经失去支持了,但是Python3.4)以及Anaconda的Python3.6.7。使用Python 3.6,为了紧跟Python官方快速迭代更新的脚步,因为Python 3.4以下的版本有些库(例如gdal等库)已经失去支持了。另一方面,使用Python 3.4,是为了防止Python 3.6有些操作不支持。如无意外,博主后面将使用Python 3.6进行介绍。
- 先说一下Python 3.4.4的问题:Python官网只提供了Python 3.4.5 -10版本的源码,需要自己编译(Python的源码是C语言编写的)才能安装,并且在Windows系统编译的话需要安装VS 2010(Visual Studio 2010),更高版本的VS好像编译通过不了。尽管编译不麻烦,但是VS安装包太大(安装后更是占用大量存储空间)了,我是肯定不会装的这样的庞然大物。因此,博主只好使用Python官网提供的编译好的最高版本的python 3.4.4,省去麻烦,见网址:
https://www.python.org/downloads/release/python-344/
点击该网址后往下拉,会看到编译好的MSI installer文件。下载后直接安装就行了。
- 再说Python 3.6的安装:博主使用的是最新版的Anaconda,里面预装的是Python 3.7,需要建议一个Python 3.6的虚拟环境,这样的教程太多了,我不在复述了,随便粘贴一个教程:https://blog.csdn.net/Fhujinwu/article/details/85851587
- Anaconda的spder, jupyter notebook等编辑器有时自动填充不够方便,还可以使用Pycharm作为IDE编辑器,Pycharm配置Python编译器网上有诸多教程,随便粘贴一个:https://blog.csdn.net/wingygrandam/article/details/79378286
方法二----利用SNAP的snappy-conf.bat脚本生成
在SNAP的安装路径(就是你配置安装的路径)下的snap/bin文件夹下可以看到一个snapp-conf.bat的脚本文件:
(里面还有gpt命令行工具,利用gpt可以帮助snappy更好地处理代码,往后再介绍)
注意需在snappy-conf.bat脚本所在目录调用命令行(cmd)才可以直接使用下面命令,如果不是在snappy-conf前面加上绝对路径或者你将SNAP的bin文件路径添加到环境变量中。
配置的命令如下:
snappy-conf <python-exe> <snappy-dir>
- 1
< p y t h o n − e x e > <python-exe><python−exe>为python解释器(python.exe文件)的绝对路径,注意,必须是绝对路径。
< s n a p p y − d i r > <snappy-dir><snappy−dir>为要放置生成的snappy包的目录路径,一般来说Python非标准库(第三方库)都放置在Python安装路径下Lib/dist-packages/目录下。这是一个可选参数。如果空缺的话将会生成在C:\Users\XXXXXX.snap\snap-python目录下(XXXXXX为用户名)。
Python 3.4为例:
博主的snappy-conf.bat文件所在绝对路径(见上图)为:
E:\SNAP\install_path\snap\bin\snappy-conf.bat
博主的使用的Python 3.4,python.exe文件所在的绝对路径为:
C:Python34\python.exe
要放置的snappy包的绝对路径为:
C:\Python34\Lib\site-packages
于是总的生成snappy包命令为:
E:\SNAP\install_path\snap\bin\snappy-conf.bat C:Python34\python.exe C:\Python34\Lib\site-packages
- 1
命令很长,可以新建一个.txt文件,写好命令再复制到命令行。博主很早就配置好了,没保留截图。贴一张官方的截图,注意路径需要修改为自己的:
说下Anaconda的Python3.6:
如果是使用Anaconda虚拟环境安装Python3.6的话,在Anaconda的安装目录下会找envs这个文件夹,里面会有你装好的虚拟环境,例如楼主虚拟环境名称为py36,于是可以找到以下该目录:
进入该目录后可以找到python.exe(解释器):
该Python3.6虚拟环境的非准库也是在Lib\site-packages相对路径下:
博主配置snappy是在snappy-conf.bat所在目录使用 Windows PowerShell(Win10命令行Shell,命令有点像linux系统csh(C Shell)命令,但又不全支持,有点鸡肋,不过也是可以执行.bat脚本的)配置的,如果你在win10当前目录启动PowerShell的话非常简单,例如博主在snappy-conf.bat目录下:
鼠标移动左上方的文件菜单栏,可以看到:
鼠标左键单击一下即可打开,很方便,它的样子是这样的:
前面会提示当前路径
配置snappy的命令如下:
运行.bat脚本文件或者.exe有时需要在前面添加".",否则可能会报错。成功后如下图所示
同时可以到配置的路径下,看到下面的文件夹:
snappy包解译
<python-exe> setup.py install
< p y t h o n − e x e > <python-exe><python−exe>为对应的Python解释器,最好使用绝对路径。
setup.py 位于上一步生成的的snappy目录下
E:\Anaconda\Anaconda3\envs\py36\python.exe setup.py install
snappy包测试
为了检查snappy是否安装成功可以用简单的小代码测试一下。
在生成的snappy下有一个testdata文件夹,会看到.dim格式的测试数据文件
博主在Python 3.6环境下写的简单测试程序(注意,file_path为测试数据所在目录的完整绝对路径,当然你也可以使用Sentinel-1, Sentinel-2数据做测试):
from snappy import ProductIO
file_path = r'E:\Anaconda\Anaconda3\envs\py36\Lib\sitepackages\snappy\testdata\MER_FRS_L1B_SUBSET.dim'
p = ProductIO.readProduct(file_path)
list(p.getBandNames())
# print(list(p.getBandNames()))
如果你执行上述程序,没有报错,恭喜你成功安装上snappy。
关于snappy的入门级教程请看:
https://github.com/techforspace/sentinel
结语
参考文献
01-SNAP与snappy介绍及安装相关推荐
- 【opencv系列01】OpenCV4.X介绍与安装
点击上方"AI搞事情"关注我们 一.介绍 OpenCV(开源计算机视觉库:http://opencv.org)是英特尔开源的一个跨平台计算机视觉的BSD许可库,包含数百种计算机视觉 ...
- LNMP基础架构介绍与安装
1.LNMP架构介绍 LNMP==Linux+Nginx+Mysql+PHP nginx:省资源,省cpu,所以在高并发时能够处理更多的请求,高端能达到3万到5万的并发量. nginx和LAMP不 ...
- Azkaban的介绍、安装与使用
转载:https://blog.csdn.net/Sven119/article/details/90144843 目录 1.概述 1.1.为什么需要工作流调度器 1.2.工作流调度实现方式 1.3. ...
- Snappy压缩库安装和使用之一
近日需要在毕业设计中引入一个压缩库,要求压缩与解压缩速度快,但是压缩率可以不那么苛刻.查找资料发现Google的snappy库比较合适,而且该库开源,由C++写成.所以就拿来使用一下,下面权作记 ...
- 尚硅谷大数据技术Zookeeper教程-笔记01【Zookeeper(入门、本地安装、集群操作)】
视频地址:[尚硅谷]大数据技术之Zookeeper 3.5.7版本教程_哔哩哔哩_bilibili 尚硅谷大数据技术Zookeeper教程-笔记01[Zookeeper(入门.本地安装.集群操作)] ...
- scom2012 监控linux,System center 2012 R2 实战六、SCOM2012R2介绍及安装
~~ 诸位,周末好,答应了要写SCOM2012R2,结果这几天一直没写,因为项目那面确实每天都很忙.这会周末,总算是可以轻松下来了,于是我决定今天多写几篇博客.==================== ...
- hadoopsnappy解压_Hadoop Snappy 压缩的安装和配置
snappy是google的一个开源的压缩库,在合理的压缩率的前提下提供了提供了一个很高的压缩/解压的速度,利用单颗Intel Corei7处理器内核处理达到每秒处理250MB~500MB的数据流.s ...
- Oralce介绍与安装
title: Oralce介绍与安装 date: 2020-01-01 15:01:56 categories: Oracle tags: 基础概念 数据库系统 数据库(DB) 数据存放的仓库 数据库 ...
- Scrapy-Splash的介绍、安装以及实例
scrapy-splash的介绍 在前面的博客中,我们已经见识到了Scrapy的强大之处.但是,Scrapy也有其不足之处,即Scrapy没有JS engine, 因此它无法爬取JavaScrip ...
最新文章
- phonegap 2.7 ios配置安装详细教程(2.9通用)
- 定义__asm块作为C宏
- SQL Server 2005 数据库邮件 使用要点
- OpenJDK install
- 上币至iamToken
- spring-boot注解详解(五)
- 机器学习之超参数调优——超参数调优的方法
- JAVA入门级教学之(连接运算符)
- Mybatis MySQL批量更新
- C语言之“#“和“##“用法(十四)
- oracle 偶尔登录超时,OracleClient,间歇性连接问题:应用程序挂起在OracleConnection.Open()上,没有超时,没有引发异常...
- 20200708每日一句
- Java初级程序员面试中应该如何准备?一般公司对Java开发的要求有哪些?
- linux 实时查看cpu温度
- 大白话C++:新手入门教程(附源码及详解、视频课程资料推荐)
- 计算机无法上无线网络连接到internet,电脑连接不上无线网络,教您怎么解决电脑连接不上无线网络...
- Web应用跨域访问解决方案
- NBA 大量球迷敏感信息被泄露
- 【清新的田园女孩杨璐绮☆U☆桌面壁纸】
- python图案绘制解锁_PythonAppium实现安卓手机图形解锁案例
热门文章
- 蓝牙BLE芯片PHY6222之烧录以及调试
- mysql workbench 报 tables could not be fetched.
- python做excel数据分析带gui_Python进阶量化交易专栏场外篇25-GUI工具实现excel功能...
- python列表题目_Python列表练习题
- win7防火墙开启ping
- jar包打补丁 jar -uf_Java加密jar包流程
- 6-6 Isleap (5 分)
- 戴尔硬件服务器参数,戴尔_PowerEdge R540_机架式服务器参数_服务器推荐购买 | Dell 中国大陆...
- 怎么查看浪潮服务器型号,供应 浪潮服务器 各种型号
- 快速查询出中通快运物流信息,将信息导出EXCEL表格