这是可以使用我们的多个免费在线工作站之一(例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器)在 OnWorks 免费托管服务提供商中运行的命令 snaphu
程序:
您的姓名
snaphu - 用于 SAR 干涉测量的相位展开算法
概要
斯内普 [选项] [输入文件] [行长] [选项]
商品描述
斯内普 是一个 s统计成本 n网络流 a的算法 ph酶 u包裹。 给定一个输入
干涉图和其他可观察数据, 斯内普 尝试计算全等相位-
在近似中最大可能的展开解 a 后 感觉。 这
算法的求解程序基于网络优化。 默认情况下, 斯内普 假设
其输入是合成孔径雷达 (SAR) 干涉图测量面
地形。 假设变形测量,如果 -d 给出了选项。 光滑的,
假设通用数据,如果 -s 给出了选项。
本手册页仅记录 斯内普的语法和用法。 其理论基础是
在下面引用的参考文献中讨论。
最常见的输入参数可能在命令行上给出,而许多其他的
旋转参数通过 -f 选项和配置文件。 在非常
至少,必须指定环绕相位输入文件的名称及其行长。
范围应在干涉图中向右增加,并且平地相位
斜坡应该从输入干涉图中删除之前 斯内普 正在运行。 对于变形
干涉图,由于地形引起的相位变化也应该被去除。
除输入文件名和行长外,所有输入参数均采用默认值
如果未指定,则为值。 但是,应尽可能自定义这些参数
因为解决方案的准确性取决于估计的统计数据
问题被建模。 为了避免低质量的解决方案,强烈鼓励用户
提供他们对相关问题参数的最佳估计。 参数设置在
它们在命令行上给出的顺序,因此多个配置文件或
可以给出选项,后面的值会覆盖前面的值。
允许的文件格式详述如下。 输入文件的默认格式是
COMPLEX_DATA,但可以使用任何描述的格式。 如果其中任何一个
使用 ALT_LINE_DATA 或 ALT_SAMPLE_DATA 格式,幅度和相位(以弧度为单位)
干涉图应分别位于文件的第一个和第二个通道中。
如果使用 FLOAT_DATA 格式,则输入文件应仅包含
干涉图(以弧度为单位); 大小可以通过 -m 选项。
配置
-a 放大器文件
从文件中读取亮度数据 放大器文件. 该文件应包含振幅
(不是幂)形成干涉图的两个单独的 SAR 图像,如果
使用格式 ALT_SAMPLE_DATA(默认)或 ALT_LINE_DATA。 它应该包含一个
如果使用 FLOAT_DATA 格式,则这两个图像的平均值。 如果(1)
两幅图像的幅值都可用,(2) 干涉图幅值也是
可用,和(3) -c 不使用选项,那么相干估计是
从可用数据自动形成。 用于此的外观数量
估计可以在配置文件中设置。 如果没有幅度或功率数据
指定,则输入干涉图的幅度用作平均值
幅度,并且没有形成相干估计。 请注意,幅度
干涉图不等于 SAR 图像的平均幅度。 这
幅度数据应在用于输入的同一单位制中
干涉图,并与之共同配准。
-A 文件
类似于 -a 选项,除了指定文件中的数据被假定为
代表两个单独的 SAR 图像的权力。
-b 贝普
对于地形模式,使用 贝普 (十进制值,以米为单位)作为
干涉基线的垂直分量。 符号定义为
这 贝普 如果展开的相位随着高度的增加而增加,则为负。 经过
默认情况下,假设为重复通过或乒乓模式; 单天线发射
数据,价值 贝普 应该减半,或者应该设置传输模式
相应地在配置文件中(请参阅 -f 选项)。 基线值为
仅用于地形模式。
-c 文件
从文件中读取关联数据 文件. 相关数据应该是
与输入干涉图大小相同并注册到输入干涉图。 因此,一个原始的
如果相关估计包含的外观多于
干涉图。 如果 -c 没有给出选项,形成了一个相干估计
如果可能,从可用数据中获取。 否则,统一的默认一致性是
假设为整个干涉图。 如果 ALT_LINE_DATA(默认)或
使用ALT_SAMPLE_DATA格式,相关数据应该在第二个数据中
文件的通道; 第一个通道被忽略。 FLOAT_DATA 格式也可以
使用。 相关值应介于 XNUMX 和 XNUMX 之间,包括 XNUMX 和 XNUMX。
-d 在变形模式下运行。 问题统计和由此产生的成本函数是
基于真正展开的相位代表表面的假设
位移而不是高度。
-e 估计文件
使用文件中的展开相位估计进行展平 估计文件. 估计
在展开之前从输入干涉图中减去,然后插入回
在写入输出之前进入解决方案。 估计也会影响
使用成本函数,因为从随机变量中减去一个常数会使
随机变量的概率密度函数。 如果格式为 ALT_LINE_DATA
(默认)或 ALT_SAMPLE_DATA 被使用,展开的估计(以弧度为单位)应该
位于文件的第二个数据通道中; 第一个通道被忽略。 这
也可以使用 FLOAT_DATA 格式。
-f 配置文件
从文件中读取配置参数 配置文件. 该文件被解析为
键值对行。 模板配置文件包含在
斯内普 源代码: snaphu.conf.full 包含所有有效的键值对;
snaphu.conf.brief文件 包含最重要的参数。 不以开头的行
字母数字字符被视为注释行。 命令行选项
之后指定 -f 将覆盖指定的参数 配置文件 和恶习
反之。 这 -f 可以使用不同的配置多次给出选项
文件,后面指定的文件中的参数会覆盖较早文件中的参数。
-g 掩码文件
为展开的解决方案生成连接组件掩码并将掩码写入
文件 掩码文件. 连通分量是解决方案中的像素区域
这被认为是在一个相对的、内部自洽的
根据所使用的统计成本方式。 小于一个的区域
预先选择的阈值被屏蔽。 此选项的参数可以在
配置文件。 连通分量文件由未签名的
字符,具有相同值的所有像素属于同一连接
分量和零对应于屏蔽像素。
-G 掩码文件
生成连接组件掩码(请参阅 -g 选项)用于输入数据数组,
假设它已经解包,并将掩码写入文件 掩码文件.
计算了用于形成掩码的统计成本函数,但一个新的解包
不计算解。
-h 打印总结命令行选项的帮助消息并退出。
-i 在仅初始化模式下运行。 一般, 斯内普 使用近似最小值
生成树 (MST) 算法或最小成本流 (MCF) 算法用于生成
对其迭代的、修改过的网络单纯形求解器的初始化。 如果 -i is
给定,初始化被写入输出并且程序退出而不
运行迭代求解器。
-l 日志文件
将所有运行时参数和一些其他环境信息记录到
指定的文件。 日志文件是与配置格式相同的文本文件
文件中。
-m 磁文件
从指定文件中读取干涉图幅度数据。 这个选项很有用
主要是如果包裹相位输入文件是作为一组实际相位值给出的
而不是复杂的干涉图值。 干涉图幅值用于
如果还给出了适当的幅度数据,则形成相干性估计。 这
默认文件格式为 FLOAT_DATA。 如果格式为 ALT_LINE_DATA 或 ALT_SAMPLE_DATA
使用时,幅度应在文件的第一个数据通道中; 第二
通道被忽略。 如果使用 COMPLEX_DATA 格式,则相位信息为
忽略了。
-n 在无统计成本模式下运行。 如果 -i or -p 给出了选项, 斯内普 将
不使用统计成本。 来自权重文件的信息 (-w 选项)仍然会
如果给出,则使用。
-o 输出文件
将解包的输出写入名为 输出文件. 如果文件格式
ALT_LINE_DATA(默认)或ALT_SAMPLE_DATA被使用,展开的阶段被写入
进入第二个数据通道,而干涉图幅度被写入
第一个频道。 也可以使用 FLOAT_DATA 格式。
-p 折扣值
以 p= 的 Lp 范数模式运行折扣值,其中 折扣值 是一个非负小数。 代替
统计成本函数,程序使用 Lp 成本函数与统计
基于权重(除非 -n 也给出)。 解决方案始终是一致的。
此外,一致性是在求解器例程中强制执行的,而不是作为后处理
优化处理步骤。 因此,例如,如果 p=2,则最小二乘成本
使用函数,但解决方案可能比一个更准确
由基于变换的最小二乘算法生成。
-q 在仅量化模式下运行。 假设输入数据已经解包,并且
计算并打印此解决方案的总成本。 展开阶段是
假设成本计算一致。 舍入误差可能会限制
量化成本的精度。 见 -u 允许文件的选项
格式。
-s 以平滑求解模式运行。 问题统计和由此产生的成本函数
是基于这样的假设,即真正的展开阶段代表一个通用的
表面没有间断。 这与变形模式相同
DEFOMAX 参数设置为零。
-t 在地形模式下运行。 问题统计和由此产生的成本函数是
基于真实展开阶段代表表面高程的假设。
这是默认设置。
-u 假设输入文件被解包而不是被包装。 该算法使
此解决方案的迭代改进,而不是使用初始化例程。
输入文件的格式可能为 ALT_LINE_DATA(默认)或 ALT_SAMPLE_DATA;
干涉图幅度应该在第一个数据通道中并且展开
相位应该在第二个数据通道中。 格式 FLOAT_DATA 也可能是
用过的。
-v 以详细模式运行。 关于算法进度的额外信息被打印到
标准输出。
-w 权重文件
从文件中读取外部标量权重 权重文件. 权重,应该是
正短整数,应用于使用的任何成本函数。 那里
是网络中每条弧的一个权重值,所以 权重文件 应该是
栅格水平流和垂直流弧权重的串联。 因此,对于
N行×M列干涉图, 权重文件 将包含一个光栅化 (N-1)
by M 数组后跟一个光栅化的 N by (M-1) 短整数数据数组。 这个
选项没有经过很好的测试。
--yy 文件1 文件2
从指定的文件中读取幅度数据。 来自两个人的数据
假设形成干涉图的 SAR 图像单独存储在文件中
文件1 和 文件2. 这些文件的格式应为 FLOAT_DATA。 这个
选项类似于 -a 选项。
--AA 文件1 文件2
类似于 --yy 选项,但功率数据是从指定的文件中读取的。
- 集合 目录名
在指定目录中组装平铺模式临时文件。 最多
配置选项(来自命令行和任何配置文件)必须是
指定的。 如果用户希望修改 tile-assembly,此选项很有用
参数而无需再次展开单个图块。
- 版权, - 信息
打印软件版权声明和错误报告信息,然后退出。
--costin文件 成本文件
从文件中读取统计成本数组 成本文件. 这个文件的格式应该是
由...撰写 --成本输出文件 选项。 成本文件不控制是否 斯内普
以地形、变形或平滑求解模式运行; 后两个必须是
明确指定即使 成本文件 是在这些模式下运行时生成的。
--成本输出文件 成本文件
将统计成本数组写入文件 成本文件. 此选项可与
--costin文件 如果相同,则可以选择节省生成统计成本的时间
成本被多次使用。
--调试, --转储波尔
将各种中间数组转储到文件中。
--mst 使用最小生成树 (MST) 算法进行初始化。 这是
默认。
--mcf 使用最小成本流 (MCF) 算法进行初始化。 cs2 求解器由
使用戈德堡和切尔卡斯基。 L1 模式下改进的网络单纯形求解器
可能会给出与 cs2 求解器不同的结果,但原则上两者都应该是
L1 最优。
--nproc n
使用 n 平铺模式下的并行进程。 该程序分叉了一个新的进程
每个瓦片,以便瓦片可以平行展开; 最多 n 进程将运行
同时。 在读取数据之前完成分叉。 标准输出流
子进程被定向到临时磁贴目录中的日志文件。
- 片 第一排 第一列 行 恩科尔
仅读取和展开输入干涉图的子集或部分。 阅读片段
是 行 by 恩科尔 左上角为行像素的矩形 第一排
和列 第一列 (从 1 开始索引)。 所有输入文件(例如振幅、
一致性等)被假定为与输入阶段文件的大小相同。 全部
输出文件是 行 by 恩科尔.
- 瓦 行 硝基苯 行列式 共济会
在平铺模式下展开干涉图。 干涉图被划分为
行 by 硝基苯 瓷砖,每个瓷砖都是独立展开的。 瓷砖
重叠 行列式 和 共济会 行和列方向的像素。 这
然后根据成本函数将瓦片分割成可靠的区域,并且
区域重新组合。 该程序为临时文件创建一个子目录
最终输出文件的目录。 此选项当前仅启用
用于统计成本函数。
文件 FORMATS
输入文件的格式可以在配置文件中指定。 所有这些格式
由栅格、单精度(浮点数、实数*4 或复数*8)浮点数据组成
平台的本机字节顺序中的类型。 数据被逐行读取(交叉然后向下)。
无论文件格式如何,所有输入数据数组都应具有相同数量的
样本的宽度和深度,应相互配准。 注意重量
文件和成本文件有自己的格式。 其他数据文件的允许格式
如下所述。
复杂数据
交替浮点数对应于实数(同相)和虚数(正交)
复杂数据样本的组成部分。 指定的行长应该是数字
每行的复杂样本(成对的实数和虚数样本)。
ALT_LINE_DATA
数据的交替行(行)对应于来自两个的纯真实数据行
单独的阵列。 第一个数组通常是干涉图的幅度,并且
第二个可能是展开的相位、相干性等。这有时也被称为
汞 或行交错格式。
ALT_样本_数据
交替样本对应于来自两个单独阵列的纯真实样本。
这种格式有时用于两个 SAR 图像的幅度。
浮动数据
该文件仅包含一个通道或阵列的数据,且数据纯属真实。
示例
展开一个名为“wrappedfile”的包裹地形干涉图,其线长为
1024个复杂样本(输出将写入一个文件,其名称被编译为
程序):
snaphu 包装文件 1024
解开与上面相同的文件,但使用文件“ampfile”中的亮度信息
在中带将垂直基线设置为 -165 m,并将输出放在一个文件中
称为“unwrappedfile”(如果“wrappedfile”,则自动生成一致性数据
包含复数数据,“ampfile”包含来自两幅 SAR 图像的幅度数据):
snaphu 包装文件 1024 -a ampfile \
-b -165 -o 解包文件
如上解开干涉图,但从文件中读取相关信息
``corrfile'' 而不是从干涉图和振幅数据生成它:
snaphu 包装文件 1024 -a ampfile -c corrfile \
-b -165 -o 解包文件
下面等价于前面的例子,但输入参数是从一个
配置文件,并显示详细输出:
猫 > 配置文件
# 这是一个将被忽略的注释行
AMPFILE 放大器文件
CORRFILE 相关文件
BPERP -165
OUTFILE 解包文件
snaphu -v -f 配置文件包装文件 1024
展开相同的干涉图,但仅使用 MST 初始化(使用标量
统计权重)并将输出写入“mstfile”:
snaphu -f 配置文件 -i 包装文件 1024 -o mstfile
读取 ``mstfile'' 中的解包数据并将其用作修改后的初始化
网络单纯形求解器:
snaphu -f 配置文件 -u mstfile 1024 -o unwrappedfile
注意前面两个例子中,配置文件中的输出文件名是
被命令行上给出的覆盖。 前两个命令一起在
原理等价于前一个,虽然流到相位的舍入误差
转换可能会导致细微的差异
如上解开干涉图,但使用 MCF 算法进行初始化:
snaphu -f 配置文件wrappedfile 1024 --mcf
再次展开干涉图,但首先用展开的数据将其展平
``estfile'',然后在展开后重新插入减去的相位:
snaphu -f 配置文件包装文件 1024 -e estfile
下面假设包裹的输入干涉图测量变形,而不是
地形。 用给定的相关数据展开干涉图:
snaphu -d 包装文件 1024 -c corrfile
通过最小化未加权的全等 L2 范数来展开输入干涉图:
snaphu -p 2 -n 包装文件 1024
将干涉图展开为 30×XNUMX 组重叠 XNUMX 像素的瓦片,其中
指定的配置文件,使用两个处理器:
snaphu 包装文件 1024 -f 配置文件 \
--图块 3 4 30 30 --nproc 2
HINTS AND TIPS
该程序可能会打印有关成本被削减以避免溢出的警告消息。 如果
削减了太多成本,COSTSCALE 的值可能需要在一段时间内减少
配置文件(通过 -f 选项)。 如果程序打印一条关于
总解决方案成本意外增加,这表明成本过多
被剪辑。 如果只削减一些成本通常是可以的。
在地形模式下,如果展开的结果包含太多不连续性,请尝试
增加 LAYMINEI 的值或减少 LAYCONST 的值。 前者
确定停留的归一化强度阈值,后者是相对
中转概率。 如果在方位角运行的不连续点太多,请尝试
降低 AZDZFACTOR 的值,这会影响方位角与距离成本的比率。 如果
基线未知,请对其进行猜测并确保其符号正确。 指定
SAR 成像几何参数。 默认值假设 ERS 数据
以方位角进行五次观察。
在变形模式下,如果展开的结果包含太多不连续性,请尝试
增加 DEFOTHRESHFACTOR 的值或减少 DEFOCONST 的值。 如果
表面位移变化缓慢,根本不会出现真正的不连续性,
DEFOMAX_CYCLE 可以设置为零。 此行为也被调用 -s 选项。 该
得到的成本函数将类似于相关加权的 L2 成本函数,尽管
前者不一定以包裹的渐变为中心。 一致性还在
在优化期间而不是在优化之后强制执行。
该程序可以在仅初始化(-i) 模式,用于快速脏乱的 MST 或 MCF
的解决方案。
讯号
一旦迭代求解器启动, 斯内普 捕获中断 (INT) 和挂断 (HUP)
信号。 收到中断后,例如如果用户键入 Ctrl-C,程序
完成小迭代,将其当前解决方案转储到输出,然后退出。 如果一个
在第一个(捕获的)中断之后给出第二个中断,程序退出
立即地。 如果收到挂断信号,程序会转储当前的解决方案,然后
继续正常执行。
退出 状态
成功终止后,程序以代码 0 退出。错误导致退出代码 1。
使用 onworks.net 服务在线使用 snaphu