版权声明:本文为博主原创文章,转载请注明原文出处!
作者:阿振
写作时间:2020年4月14日 周二
SNAP软件使用Java语言开发,提供了Python接口snappy,官方教程中也多以Python接口进行示范。但是我在使用Python接口过程中,发现并不是很好用,你必须要同时懂Java语言才能很好地使用Python接口,在IDEA中使用Python接口的代码基本上没有提示,报错了也是Java的错误提示。而且,Java本来是运行在虚拟机上的语言,效率不高,再用Python包一层,更加降低了运行效率。
所以,对于我来说,SNAP的Python接口就是鸡肋,没有使用的必要。直接使用Java接口,方便程序直接进行调试,有问题可以直接去看源代码,解决了官方资料不足的问题。
SNAP推荐使用GPF(Graph Processing Framework)进行数据处理。GPF的使用也很简单,首先基于Operation创建Product,然后写入Product。在写入过程中会自动执行Operation完成你想要的数据处理流程,处理的算法是封装在Operation中的。
使用GPF的好处是你可以进行多个Operation的流程处理,前一个处理结果直接进入后一个处理,不需要写入磁盘,可以减少磁盘IO带来的时间消耗。
下面以对Sentinel-1 GRD数据进行一系列预处理流程演示SNAP Java接口的使用。
预处理的流程包括:首先对GRD各个极化波进行段辐射校正输出后向散射系数(Sigma nought),然后进行数据裁剪,最后进行地形校正的。
下面是使用Better Java (Kotlin)进行entinel-1 GRD数据处理的源码。其中,方法需要传入Operation的名称和参数,这些信息都可以通过查看Java源代码的方式找到。
代码运行过程中需要下载DEM数据,可能会比较耗时。如果不对数据裁剪,由于原始数据太大,可能会造成内存溢出。我的笔记本根本跑不动。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/java-jiao-cheng/17579.html