|||
stamps是时序分析软件,所以前面的预处理,需要各种软件完成,比如snap,doris,gamma,isce,将预处理完成的数据,输送给stamps,做后续的处理,一般给stamps的数据主要包含以下几个层面:
1.配准后的干涉对
2.干涉数据(ps和单主影像两两干涉、sbas各个干涉对两两干涉)
3.地形数据
4.空间坐标数据,lon.raw和lat.raw文件
5.其他辅助定义文件,比如文件路径、位置、宽度等等,一般用文本明码表示
stamps要做的就是根据后向散射稳定性,去选取候选点位,然后进行时序处理。
stamps(1,2),是进行数据信息的加载,一些参数的计算,就是将二进制文件格式、其他文件格式,统一转换为matlab文件格式;
stamps(3,4), 是进行点位的二次选择,尤其第三步,可能重新计算相干性,进行ps点的选择
stamps(5,8),时序分析、噪声相位去除等工作
所以,如果,数据转换过来,问题出在1、2步,可能是某些数据准备存在问题,常见问题有以下几种:
1.文件夹命名不规范,怎么规范,就得参考手册了
2.文件位数不对,例如需要进行swap_byte 进行转换
3.DEM有问题,表现为hgt.mat文件里面的数值不对
4.lon.raw lon.raw里面的数值有问题,表现为ps1.mat 下面的lonlat变量数值不是经纬度
等等等
网络上不常见gamma转stamps的介绍,国外谷歌论坛小组上有一些人用的是gamma_resampled_setup命令,以及一系列操作准备数据,该操作的本质是将gamma的数据结果转为doris格式,再通过doris软件进stamps的流程就行。相当于
gamma-->doris-->stamps
即使你顺利活过了ps的处理流程,到small_baseline的处理流程,也会折戟沉沙,而且排除小基线处理流程的错误,需要对整个流程比较深的理解,才能修改掉错误。
所以,既然stamps有专门的转换流程,干嘛舍近求远,先转doris,再转stamps呢?
当然,直接使用gamma的流程,也有坑,但坑小的多,下面进入正题,说说如何转换。
下图是手册中,对于gamma需要准备的文件的定义,主要包含:
(1)配准后的文件
gamma配准后的文件,主文件后缀为slc,其他slave文件后缀为rslc,就这一点要注意的
(2)干涉文件
slave 和master的干涉文件,使用mk_diff_2d(gamma命令)生成。比如主影像日期为20210402,有2个slave影像[20210222,20210321],mk_diff_2d运行完之后会有以下文件
20210402_20210222.diff
20210402_20210222.base
20210402_20210222.cc
20210402_20210321.diff
20210402_20210321.base
20210402_2021032.cc
相干系数文件cc,是后续不需要的,把diff文件和base文件,进行重命名,放在diff0文件夹下,重命名后如下:
diff0/20210222.diff
diff0/20210222.base
diff0/20210321.diff
diff0/20210321.base
注意!主影像不用和自己干涉哈
这样配准影像和干涉对,都准备好了。
(3)geo 文件准备
geo文件中的dem文件,就是gamma做干涉用的dem(雷达向,和主影像大小一致 的那个),注意直接改名拿过来用,不用做swap_byte!!!
重要的事情再说一遍,DEM不用做swap_byte !!!!
下面就是最头疼的两个lon、lat文件的准备,网上很多人在问,但是国内国外论坛中,都没看到有说准备的方法,还有人说不准备这两个文件也是可以的,emm……当然是不可以的!!!
花了一段时间,摸索出来了准备方法,亲测可行,步骤如下(以下都是gamma的命令):
①使用mkgird 命令,建立一个和主影像大小一致的pointlist 文件,比如,主影像是9000*12000的,就建一个9000*12000的文件
②使用data2pt 文件,把栅格的dem转换为点格式的,这一步是给第三步用的
③用pt2geo对第一步生成的pointlist,就是主影像的每个像元,生成其对应的空间经纬度数据,pt2geo的函数说明如下:
图中打红色箭头的,就是我们想要的文件。
这个文件是二进制存储的,里面的数据是这样的:[104.01,30.02,0.1.02,30.03……],经纬度交替分布,而我们想要的lon文件是[104.01,104.02……],lat文件是[30.01,30.02……]
所以需要把上述文件拆开,python可以做这件事情,不过首先要将
plat_lon 进行swap_byte plat_lon plat_lon4 4
然后用Python进行拆分,当然用matlab或者其他自己熟悉的软件也行,python进行转换的代码如下:
```python
import numpy as np
dataPath="your path"
cors=np.fromfile(dataPath+'plat_lon4 ',np.float32)
lon=cors[0:len(cors):2]
lat=cors[1:len(cors):2]
lon.tofile(dataPath+'lon.raw')
lat.tofile(dataPath+'lat.raw')
print('done!')
```
注意,拆分后的lon和lat文件,我这了还要做一次swap_byte 4,真的是神奇。
至此,全部数据准备好了,后续使用mt_prep_gamma命令,就能进行ps数据的准备,可以成功生成path了。你以为坑就完了?NONONO
手册里,说明了子文件夹应该整理成啥样,但是没说上一级目录的命名,而stamps获取主影像的日期的方法是通过上一级目录的文件名,这里我把上一级目录命名为
INSAR_20210402
最后,准备好的文件目录如下:
INSAR_20210402
----rslc/20210402.slc
----rslc/20210402.slc.par
----rslc/20210222.slc
----rslc/20210222.slc.par
----diff0/20210222.diff
----diff0/20210222.base
----geo/20210402_dem.rdc
----geo/20210402.lon
----geo/20210402.lat
这样stamps就能通过文件名,获取正确的主影像日期,到这……差不多就完事了。
后续small_baseline的处理方式,可以如法炮制,然后就是合并ps、sb的结果,做MTI处理……
作者:很Q的GIS
链接:https://www.jianshu.com/p/a34bc5c54cc5
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-28 13:22
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社