これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド snaphu です。
プログラム:
NAME
snaphu - SAR干渉法用の位相アンラップアルゴリズム
SYNOPSIS
スナップー [オプション] [infile] [行の長さ] [オプション]
DESCRIPTION
スナップー s統計コスト nネットワークフロー aのアルゴリズム phASE uラッピング。 入力が与えられた場合
インターフェログラムやその他の観察可能なデータ、 スナップー 一致する位相を計算しようとします-
近似的に最も可能性の高いアンラップされた解 a アポステリオリ 検出。 の
アルゴリズムのソルバー ルーチンはネットワーク最適化に基づいています。 デフォルトでは、 スナップー と仮定する
その入力は合成開口レーダー (SAR) インターフェログラム測定面であること
地形。 変形測定は次の場合に想定されます。 -d オプションが与えられます。 スムーズ、
次の場合、一般的なデータが想定されます。 -s オプションが与えられます。
このマニュアルページはドキュメントのみです スナップーの構文と使用法。 その理論的基礎は次のとおりです。
以下に引用する参考文献で説明されています。
最も一般的な入力パラメータはコマンド ラインで指定できますが、他の多くの入力パラメータはコマンド ラインで指定できます。
twiddle パラメーターは、 -f オプションファイルと設定ファイル。 まさにその瞬間に
少なくとも、ラップされたフェーズ入力ファイルの名前とその行長を指定する必要があります。
範囲はインターフェログラムの右に向かって増加し、フラットアース段階になります。
ランプは、前に入力インターフェログラムから削除する必要があります。 スナップー が実行されます。 変形用
インターフェログラム、トポグラフィーによる位相変動も除去する必要があります。
入力ファイル名と行の長さを除き、すべての入力パラメータはデフォルト値を使用します。
指定されていない場合は値。 ただし、これらのパラメータは可能な限りカスタマイズする必要があります。
解の精度は推定の統計がどの程度正確であるかに依存するため、
問題がモデル化されています。 低品質のソリューションを避けるために、ユーザーは次のことを強くお勧めします。
関連する問題パラメータの最良の推定値を提供します。 パラメータは以下に設定されます
コマンドラインで指定される順序なので、複数の構成ファイルまたは
オプションを指定して、後の値で以前の値をオーバーライドすることもできます。
使用可能なファイル形式については、以下で詳しく説明します。 入力ファイルのデフォルトの形式は次のとおりです。
COMPLEX_DATA ですが、説明されている形式のいずれかを使用できます。 どちらかの場合、
ALT_LINE_DATA または ALT_SAMPLE_DATA 形式が使用され、振幅と位相 (ラジアン単位)
インターフェログラムは、ファイルの最初と XNUMX 番目のチャネルにそれぞれ存在する必要があります。
FLOAT_DATA 形式が使用される場合、入力ファイルには、
インターフェログラム (ラジアン単位); 大きさは、 -m オプションを選択します。
OPTIONS
-a アンプファイル
ファイルから輝度データを読み込みます アンプファイル。 ファイルには振幅が含まれている必要があります
インターフェログラムを形成する XNUMX つの個別の SAR 画像の(累乗ではない)
ALT_SAMPLE_DATA (デフォルト) または ALT_LINE_DATA 形式が使用されます。 含まれている必要があります
FLOAT_DATA 形式が使用されている場合は、これら 1 つのイメージの平均。 (XNUMX)の場合、
両方の画像の振幅が利用可能です。(2) インターフェログラムの大きさも
利用可能、および (3) -c オプションが使用されていない場合、コヒーレンス推定値は次のようになります。
利用可能なデータから自動的に形成されます。 このために使用されたルックの数
推定値は設定ファイルで設定できます。 振幅または電力データがない場合は、
指定すると、入力インターフェログラムの大きさが平均値として使用されます。
振幅が大きくなり、コヒーレンス推定値は形成されません。 の大きさに注意してください。
インターフェログラムは SAR 画像の平均振幅と等しくありません。 の
振幅データは入力に使用されるのと同じ単位系である必要があります。
インターフェログラムにも登録されています。
-A パワーファイル
に似て -a ただし、指定されたファイル内のデータは次のとおりであると想定されます。
は XNUMX つの個別の SAR 画像のパワーを表します。
-b ブペルプ
地形モードの場合は、次を使用します。 ブペルプ (メートル単位の XNUMX 進数値) を値として使用します。
干渉ベースラインの垂直成分。 記号は次のように定義されます
それ ブペルプ アンラップ位相が標高とともに増加する場合、負の値になります。 に
デフォルトでは、リピートパスまたはピンポンモードが想定されます。 シングルアンテナ送信用
データ、の値 ブペルプ 半分にするか、送信モードを設定する必要があります。
それに応じて設定ファイルに記述します ( -f オプション)。 ベースライン値は
地形モードでのみ使用されます。
-c 正しいファイル
ファイルから相関データを読み取ります 正しいファイル。 相関データは次のようになります。
入力インターフェログラムと同じサイズであり、入力インターフェログラムに登録されています。 したがって、生の
相関推定値に、より多くのルックが組み込まれている場合は、アップサンプリングが必要になる場合があります。
インターフェログラム。 もし -c オプションが指定されていない場合、コヒーレンス推定が形成されます
可能であれば利用可能なデータから。 それ以外の場合、均一なデフォルトのコヒーレンスは次のようになります。
インターフェログラム全体に対して仮定されます。 ALT_LINE_DATA (デフォルト) または
ALT_SAMPLE_DATA 形式が使用され、相関データは XNUMX 番目のデータに含まれている必要があります
ファイルのチャンネル。 最初のチャンネルは無視されます。 FLOAT_DATA 形式はまた、
利用される。 相関値は XNUMX から XNUMX までの範囲である必要があります。
-d 変形モードで実行します。 問題の統計と結果のコスト関数は次のとおりです。
真のアンラップ位相が表面を表すという仮定に基づく
標高ではなく変位です。
-e 見積もりファイル
ファイル内のアンラップされた位相推定を使用して平坦化します。 見積もりファイル。 見積もり
アンラップする前に入力インターフェログラムから減算され、再び挿入されます。
出力が書き込まれる直前にソリューションに追加されます。 見積もりも影響します
確率変数から定数を減算すると、コスト関数が使用されます。
確率変数の確率密度関数。 ALT_LINE_DATA 形式の場合
(デフォルト) または ALT_SAMPLE_DATA が使用される場合、ラップされていない推定値 (ラジアン単位) が必要になります。
ファイルの XNUMX 番目のデータ チャネルにあります。 最初のチャンネルは無視されます。 の
FLOAT_DATA 形式も使用できます。
-f 構成ファイル
ファイルから設定パラメータを読み取る 構成ファイル。 ファイルは次の行で解析されます
キーと値のペアの行。 テンプレート設定ファイルは
スナップー ソースコード: スナップフ.conf.フル すべての有効なキーと値のペアが含まれます。
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 が使用され、ラップされていないフェーズが書き込まれます。
インターフェログラムの大きさが XNUMX 番目のデータ チャネルに書き込まれます。
最初のチャンネル。 FLOAT_DATA 形式も使用できます。
-p 値
p= を指定して Lp-norm モードで実行します。値ここで、 値 は負でない小数です。 それ以外の
統計コスト関数、プログラムは統計的に Lp コスト関数を使用します。
ベースの重み (そうでない場合) -n も与えられます)。 解は依然として常に合同です。
さらに、合同性は事後処理としてではなく、ソルバー ルーチン内で適用されます。
最適化処理ステップ。 したがって、たとえば p=2 の場合、最小二乗コストは
関数が使用されていますが、解決策はおそらく XNUMX つの関数よりも正確です。
変換ベースの最小二乗アルゴリズムから生成されます。
-q 定量化専用モードで実行します。 入力データはすでにアンラップされていると想定されており、
このソリューションの総コストが計算され、出力されます。 アンラップされたフェーズは、
コスト計算のために合同であると仮定してラップされます。 丸め誤差により制限される可能性があります
定量化されたコストの精度。 を参照してください。 -u 許可されるファイルのオプション
フォーマット。
-s スムーズ ソリューション モードで実行します。 問題の統計と結果のコスト関数
真のアンラップされた位相が一般的な位相を表すという仮定に基づいています。
切れ目のない表面。 の変形モードと同じです。
DEFOMAX パラメータがゼロに設定されました。
-t 地形モードで実行します。 問題の統計と結果のコスト関数は次のとおりです。
真のアンラップ位相が表面の高さを表すという仮定に基づいています。
これがデフォルトです。
-u 入力ファイルがラップされているのではなく、ラップされていないと仮定します。 アルゴリズムにより、
初期化ルーチンを使用する代わりに、このソリューションを反復的に改善します。
入力ファイルの形式は ALT_LINE_DATA (デフォルト) または ALT_SAMPLE_DATA です。
インターフェログラムの大きさは最初のデータ チャネルとアンラップされたデータ チャネルにある必要があります。
位相は XNUMX 番目のデータ チャネルにある必要があります。 FLOAT_DATA 形式は次のようにすることもできます。
中古。
-v 詳細モードで実行します。 アルゴリズムの進行状況に関する追加情報が出力されます。
標準出力。
-w ウェイトファイル
ファイルから外部のスカラー重みを読み取ります ウェイトファイル。 重みは、次のようになります。
正の短整数は、使用されるコスト関数に適用されます。 そこには
は、ネットワーク内の各アークの XNUMX つの重み値です。 ウェイトファイル する必要があります
ラスターの水平方向の流れと垂直方向の流れのアーク ウェイトを連結したもの。 したがって、
N行×M列のインターフェログラム、 ウェイトファイル ラスター化された (N-1) で構成されます
by M 配列の後に短整数データのラスタライズされた N x (M-1) 配列が続きます。 これ
オプションは十分にテストされていません。
--ああ アンプファイル1 アンプファイル2
振幅データは指定されたファイルから読み取られます。 二人の個人からのデータ
インターフェログラムを構成するSAR画像は別途ファイルに保存されるものとする
アンプファイル1 アンプファイル2。 これらのファイルは FLOAT_DATA 形式である必要があります。 これ
オプションは次のようなものです -a オプションを選択します。
--AA pwrfile1 pwrfile2
に似て --ああ オプションを使用しますが、電力データは指定されたファイルから読み取られます。
- 組み立てる ディレクトリ名
指定されたディレクトリにタイル モードの一時ファイルをアセンブルします。 多くの
構成オプション (コマンドラインおよび任意の構成ファイルから) は次のようにする必要があります。
指定。 このオプションは、ユーザーがタイル アセンブリを変更したい場合に便利です。
個々のタイルを再度アンラップすることなくパラメータを変更できます。
--著作権、 - 情報
ソフトウェアの著作権表示とバグレポート情報を印刷して終了します。
--costinfile コストファイル
ファイルから統計コスト配列を読み取ります コストファイル。 このファイルの形式は次のとおりです。
によって書かれた --costoutfile オプション。 コスト ファイルは、 スナップー
トポグラフィー、変形、またはスムーズ ソリューション モードで実行します。 後の XNUMX つはそうでなければなりません
たとえ明示的に指定されていても、 コストファイル これらのモードでの実行中に生成されました。
--costoutfile コストファイル
統計コスト配列をファイルに書き込む コストファイル。 このオプションは、
--costinfile 同じ場合に統計コストを生成する時間を節約するオプション
コストは複数回使用されます。
- デバッグ、 --ダンポール
あらゆる種類の中間配列をファイルにダンプします。
--mst 初期化には最小スパニング ツリー (MST) アルゴリズムを使用します。 これは
デフォルト。
--mcf 初期化には最小コスト フロー (MCF) アルゴリズムを使用します。 cs2 ソルバーによる
ゴールドベルクとチェルカスキーが使われています。 L1 モードの修正されたネットワークシンプレックス ソルバー
cs2 ソルバーとは異なる結果が得られる可能性がありますが、原則として両方とも次のとおりである必要があります。
L1最適。
--nproc n
n タイルモード時の並列処理。 プログラムは新しいプロセスをフォークします
各タイルを並行してアンラップできるようにします。 せいぜい n プロセスが実行されます
同時に。 フォークはデータが読み取られる前に行われます。 の標準出力ストリーム
子プロセスは、一時タイル ディレクトリ内のログ ファイルに送られます。
- ピース 最初の行 最初の列 ナロウ ncol
入力インターフェログラムのサブセットまたは一部のみを読み取り、アンラップします。 読んだ作品
は ナロウ by ncol 左上隅が行のピクセルである長方形 最初の行
列 最初の列 (1 からインデックスが付けられます)。 すべての入力ファイル (振幅、
コヒーレンスなど) は、入力フェーズ ファイルと同じサイズであると想定されます。 全て
出力ファイルは ナロウ by ncol.
- タイル 半列 ニチレコール rowovrlp コロヴルプ
タイル モードでインターフェログラムをアンラップします。 インターフェログラムは次のように分割されます。
半列 by ニチレコール タイル。それぞれが個別にアンラップされます。 タイル
重なり合う rowovrlp コロヴルプ 行方向と列方向のピクセル。 の
次に、タイルはコスト関数に基づいて信頼できる領域にセグメント化され、
領域が再組み立てされます。 プログラムは一時ファイル用のサブディレクトリを次の場所に作成します。
最終的な出力ファイルのディレクトリ。 このオプションは現在のみ有効です
統計コスト関数の場合。
FILE 書式
入力ファイルの形式は構成ファイルで指定できます。 これらすべての形式
ラスター、単精度 (float、real*4、または complex*8) 浮動小数点データで構成されます
プラットフォームのネイティブ バイト オーダーで型を指定します。 データは XNUMX 行ずつ (横に、そして下に) 読み取られます。
ファイル形式に関係なく、すべての入力データ配列には同じ数のデータ配列が必要です。
幅と深さのサンプルを相互に登録する必要があります。 重さに注意してください
ファイルとコスト ファイルには独自の形式があります。 他のデータ ファイルに使用できる形式
以下に説明する。
複雑なデータ
交互のフロートは実数 (同相) と虚数 (直交) に対応します。
複雑なデータサンプルのコンポーネント。 指定する行の長さは数値でなければなりません
XNUMX 行あたりの複素サンプル (実数サンプルと虚数サンプルのペア) の数。
ALT_LINE_DATA
データの交互のライン (行) は、XNUMX つの純粋な実データのラインに対応します。
別々の配列。 多くの場合、最初の配列はインターフェログラムの大きさであり、
XNUMX 番目は、アンラップ位相、コヒーレンスなどです。これは、時々呼ばれることもあります。
うーん またはラインインターリーブ形式。
ALT_SAMPLE_DATA
交互のサンプルは、XNUMX つの別個の配列からの純粋に実際のサンプルに対応します。
この形式は、XNUMX つの SAR 画像の振幅に使用されることがあります。
FLOAT_DATA
ファイルには XNUMX つのチャネルまたは配列のデータのみが含まれており、データは純粋に実数です。
例
「wrapedfile」と呼ばれるラップされたトポグラフィック インターフェログラムをアンラップします。
1024 個の複雑なサンプル (出力は、コンパイルされた名前のファイルに書き込まれます)
プログラム):
スナップフ ラップファイル 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 configfile ラップファイル 1024
同じインターフェログラムをアンラップしますが、MST 初期化 (スカラーを使用) のみを使用します。
統計的重み) を作成し、出力を「mstfile」に書き込みます。
snaphu -f configfile -i ラップされたファイル 1024 -o mstfile
「mstfile」内のラップされていないデータを読み取り、それを変更されたファイルの初期化として使用します。
ネットワークシンプレックスソルバー:
snaphu -f configfile -u mstfile 1024 -o unwrappedfile
前の XNUMX つの例では、構成ファイル内の出力ファイル名は次のとおりであることに注意してください。
コマンドラインで指定したものによってオーバーライドされます。 前の XNUMX つのコマンドを合わせて、
原理は前述の原理と同等ですが、流量から位相までの丸め誤差は異なります。
変換により若干の違いが生じる可能性があります
上記のようにインターフェログラムをアンラップしますが、初期化には MCF アルゴリズムを使用します。
snaphu -f configfile ラップファイル 1024 --mcf
インターフェログラムをもう一度アンラップしますが、最初にアンラップされたデータを使用してフラット化します。
``estfile'' をアンラップした後、減算された位相を再挿入します。
snaphu -f configfile ラップファイル 1024 -e estfile
以下では、ラップされた入力インターフェログラムが変形を測定するのではなく、変形を測定すると仮定しています。
地形。 指定された相関データを使用してインターフェログラムをアンラップします。
snaphu -d ラップファイル 1024 -c corrfile
重み付けされていない合同 L2 ノルムを最小化して、入力インターフェログラムをアンラップします。
snaphu -p 2 -n ラップされたファイル 1024
インターフェログラムを、30 ピクセルずつ重なる XNUMX × XNUMX のタイルのセットとしてアンラップします。
XNUMX つのプロセッサを使用して、指定された構成ファイル:
snaphu ラップファイル 1024 -f configfile \
--タイル 3 4 30 30 --nproc 2
ヒント そして みんなが読んでいる
プログラムは、オーバーフローを避けるためにコストがクリップされることに関する警告メッセージを出力する場合があります。 もしも
クリップされるコストが多すぎるため、COSTSCALE の値を減らす必要がある場合があります。
設定ファイル ( -f オプション)。 プログラムが次の警告メッセージを出力する場合、
ソリューションの総コストが予想外に増加する場合、これはコストが多すぎることを示しています。
切り取られています。 通常、いくつかのコストが削減されるだけであれば問題ありません。
トポグラフィー モードで、アンラップされた結果に不連続部分が多すぎる場合は、次のことを試してください。
LAYMINEI の値を増やすか、LAYCONST の値を減らします。 前者
乗り継ぎの正規化された強度のしきい値を決定します。後者は相対的な値です。
乗り継ぎ確率。 方位角に走る不連続点が多すぎる場合は、次のことを試してください。
AZDZFACTOR の値を減少させます。これは、方位角と距離コストの比率に影響します。 もしも
ベースラインは不明です。推測して、その符号が正しいことを確認してください。 特定
SAR イメージングのジオメトリ パラメータも可能な限り考慮してください。 デフォルトでは ERS データを前提としています。
方位角で撮った XNUMX つの外観。
変形モードで、アンラップされた結果に不連続部分が多すぎる場合は、次のことを試してください。
DEFOTHRESHFACTOR の値を増やすか、DEFOCONST の値を減らします。 もし
表面変位はゆっくりと変化し、真の不連続性はまったく期待されません。
DEFOMAX_CYCLE はゼロに設定できます。 この動作は、次のコマンドでも呼び出されます。 -s オプション。 ザ·
結果として得られるコスト関数は、相関重み付けされた L2 コスト関数と似ていますが、
前者は、必ずしもラップされたグラデーションの中心にあるとは限りません。 一致はまだです
最適化後ではなく、最適化中に適用されます。
プログラムは初期化のみで実行できます (-i) クイックダウンアンドダーティ MST または MCF 用モード
ソリューションを提供しています。
信号
反復ソルバーが開始されると、 スナップー 割り込み (INT) とハングアップ (HUP) をトラップします。
信号。 たとえばユーザーが Ctrl-C を入力した場合など、割り込みを受信すると、プログラムは
マイナーな反復を終了し、現在の解を出力にダンプして終了します。 もし
最初の(キャッチされた)割り込みの後に XNUMX 番目の割り込みが発生すると、プログラムが終了します
すぐに。 ハングアップ信号を受信すると、プログラムは現在の解決策をダンプし、
は正常に実行を続けます。
EXIT ステータス
正常に終了すると、プログラムはコード 0 で終了します。エラーが発生した場合は終了コード 1 が発生します。
onworks.net サービスを使用してオンラインで snaphu を使用する
