一、前言
Doris软件全称为Delft Object-oriented Radar Interferometric Software,是荷兰Delft大学的Kampes等人用面向对象的C++语言编写的。该软件主要开发目的是为研究地表的三维地形及地表变形,为完全免费软件,其源代码是开放的,利于研究者使用。该软件的主要运行环境为Unix系统,但其在Linux及Cygwin环境下运行效率也很高。
Doris数据处理大致可以分为四个模块:原始数据读取模块、配准和参考椭球相位计算模块、复相位图像和相干图计算模块、DEM和形变干涉图生成模块。每个模块中有独立的小模块,在进行数据处理时,每个模块进行独立的计算,处理完后有输出纪录处理的结果及数据,下一模块在执行时则先读取所需的参数及数据,这样每个模块都可以单独进行测试,同时也可以选择不同的算法和软件来实现其中的任意流程,以了解其运算的情形来选择最合适的参数值。由于Doris处理的对象是图像矩阵,所以,为了便于再开发和再研究,doris各模块运行产生的中间数据皆为裸矩阵(无头无尾文件)。
Doris的文件命令是由多个批处理文件组成,文件里先规定了要进程(PROCESS)哪些步骤,然后在每个进程(PROCESS)的步骤后,添加执行的关键字(CARD)。各主要proc
ess如下表所示:
# | 进程 | 说明 |
1 | M_READFILES | 为主图像读入slc的进程参数 |
2 | M_PROBITS | 利用getorb包重新获取精确的Delft轨道参数。 |
3 | M_CROP | 用“raw”格式(2b/2b复短整型交叉存储格式)将paf格式的slc数据写入磁盘 |
4 | S_READFILES | 为辅图像读入slc的进程参数 |
5 | S_PORBITS | 利用getorb包重新获取精确的Delft轨道参数。 |
6 | S_CROP | 用“raw”格式(2b/2b复短整型交叉存储格式)将paf格式的slc数据写入磁盘 |
7 | M_FILTAZI | 为主图像进行方位向谱滤波 |
8 | S_FILTAZI | 为辅图像进行方位向谱滤波 |
9 | COARSEORB | 利用轨道参数计算主辅图像之间的平移量(30像素级) |
10 | COARSECORR | 利用相关法在像素级计算主辅图像之间的平移量 |
11 | FINE | 在亚像素级计算整幅图像的平移量 |
12 | COREGPM | doris 计算主辅图像行列的真实相位转换模型 |
13 | RESAMPLE | 根据配准的转换模型对辅图像进行重采样 |
14 | FILTRANGE | 对主辅图像进行距离向滤波 |
15 | INTERFERO | 计算干涉复数图 |
16 | COMPREFPHA | 计算椭球体参考相位 |
17 | SUBTRREFPHA | 减去干涉图的椭球体参考相位 |
18 | COMPREFDEM | 计算一幅DEM数据的参考相位 |
19 | COHERENCE | 减去干涉图的DEM参考相位 |
20 | FILTRHASE | 计算复数相干图 |
21 | UNWRAP | 解缠干涉图 |
22 | SLANT2H | 在雷达编码系统中计算像素的高程值 |
23 | DINSAR | 3轨差分和4轨差分法 |
24 | GEOCODE | 对像素进行地理编码 |
上面已经概要地介绍了每个进程的作用,下面的章节将对具体的进程和关键字做介绍并附加具体实验结果。为了方便起见,本文将一整套Doris工作流程分为七个步骤,每个步骤由一个批处理文件进行。这七个批处理文件是:
1. input.m_initial
2. input.s_initial
3. istration
4. sample
5. input.products
6. input.filter_unwrap
7. input.s2h_geocode
以上七个文件有着相同的规格,包括题头、一般性选项、I/O文件和进程四部分。其中,题头
主要包括文件生成时间、作者和文件名等等。一般性选项主要是文件读写指令。I/O文件主要是该批处理进程所需要的进出口文件。进程则包括该批处理文件所用到的所有指令。下面章节将以每个批处理文件为单独章节详细说明各个进程指令的作用。
二、 input.m_initial批处理
本批处理文件作用对象是主图像,并序列执行了下面3个进程:读入文件、获取精轨数据和格式转换。
PROCESS m_readfiles
为主图像从SLC文件读取要处理的参数。以下的参数设置就是需要读入的数据。
M_IN_METHOD ERS|ASAR(ENVISAT)|RSAT(RADARSAT)|ATLANTIS|JERS
文件输入的方法、格式的说明,这些方法有ERS、ASAR(ENVISAT)、RSAT(RADARSAT)、JERS、ATLANTIS。这里需要注意的是,对于ERS的头文件、ENVISAT、RADARSAT 的数据,原则上它们的主副图像必须来自同一个传感器。JERS和ERS的使用方法是一样的,ATLANTIS和RSAT的方法一样。
M_IN_VOL filename
需要输入的卷标文件,对于ASAR这个并不需要。
M_IN_LEA filename
需要输入的SLC头文件。
M_IN_DAT filename
需要输入的SLC数据文件,这个文件也是ASAR中唯一需要的文件。
M_IN_NULL filename
SLC的空文件,这个可以是个虚拟的名字,因为并没有用到。
另外,SLC文件是以二进制的方式打开的,文件的头指针是从右边以字节的形式读取每个字,然后每个字以字符数组形式进行记录,遇到空字符就结束。依次循环,直到所有需要的字都读进来。
PROCESS m_porbits
用GETORB这个软件包获得精确的轨道数据。这个步骤需要在READFILES后面才能进行,因为这里所用用到的方位向时间需要从SLC中的头文件读入。这个步骤就是先调用GETORB这个软件,然后把其输出转换为4列格式的表:时间、X、Y、Z。这里就需要一个轨道数据记录文件(ODR)和一个轨道弧度列表(arclist)来进行计算。这个步骤引入了一个新的星历表代替了原来的从SLC头文件中读取的星历表。新的星历表(X,Y,Z)默认范围从首行的前4秒到末行的后4秒,一般其时间都是以秒来计算,默认是1秒时间间隔。这里用的是普通的3次曲线差值方法,这里我们用了30秒的时间间隔和21个点来进行差值。这里要注意的是所用的轨道系统是WGS84。
M_ORBDIR directory name
需要用到的ORBDIR的文件路径。
M_ORB_EXTRATIME 3(默认)
一般来说在差值后,都需要在星历表的第一行前和最后一行后加上几个时间点(按秒计)。
因为这里的差值用的是3次曲线差值,所以要至少3个额外的数据点在首行前和末行后。
M_ORB_INTERVAL 1(默认)
在星历表中以秒为单位计算时间。
另外,这里的星历表首先是通过GETORB这个程序得到一个精确轨道文件(scratchorbit)然后进行必要的差值,最后把scratchorbit文件转换为result file中(参数只有t,x,y,z)。
这里,ODR和ARCLIST文件可以从DELFT大学网站上下载获得,目前只能获取ERS1/2和ENVISAT的轨道文件。网址为:www.deos.tudelft.nl/ers/precorbs/orbits/
PROCESS m_crop
把数据转化为DORIS可以处理的格式,从SLC数据转化为.raw格式的短整型复数格式(4个字节)。输出的文件是master.raw,格式为complex_short。对于ENVISAT,需要另外的一个程序来读取。
M_CROP_IN filename
输入需要的SLC数据文件。
M_CROP_OUT master.raw
输出读入的转化后数据文件。
M_DBOW 1 5000 1 1000
主图像输出数据的窗口大小。后面的数字是零坐标系中剪切窗口的起始点和终点坐标,经过2:10的多视处理以后形成的图像大小为500×500。
M_DBOW_GEO lat_0 lon_0 height width
功能和前面一个一样,其中的参数是可以设置窗口中心点的经纬度(为十进制的WGS84坐标系统),而高度和宽度则用像元级,对于ERS来说,一般的宽度为5。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论