LineJoiner
パラメータ付きのトランスフォーマーを使用できますList Name
。ただし、追加のデータ処理を行う必要があります。
LengthCalculator
長さの計算に使用します。
Sorter
行を長さでソートするために使用します(数値ソート、降順)。
LineJoiner
行を結合するために使用します。最大のものを最初に(ステップ2のおかげで)。新しいリスト属性の-名前のパラメータList Name
を指定しますLineJoiner
。
ListIndexer
リストインデックス0で使用-最初に結合されたフィーチャ(最大のもの)の属性をリストから取得します。
これはどのように見えるかです:
編集1:
100万未満の機能のみを大きな機能に結合できるようにするために、さらに使用する必要があります。
Tester
テスト付きLengthCalculator後のトランスフォーマー: _length < 1
- 使用
SpatialFilter
(テストでは、パラメータを実行します:TOUCHES
)テスターの後にのみタッチが<1メートル特長ことをフィルタリングします。次に、<1mのフィーチャを使用して、それらをライン結合します。<1mに触れない機能、直接出力(またはさらに処理)。
モデル:
EDIT2:
2つの大きな線に接する1m未満の線がある場合、それらはすべて一緒に結合されます。データでこのようなケース(1m未満の機能が2つ以上の大きなものに接触する)が可能である場合は、そのようなケースの処理を追加する必要があります。パラメータMerge Attributes
とAttribute Prefix
トランスフォーマを見てみましょうSpatialFilter
。これらのパラメーターを使用すると、このようなケースを検出して、追加のフィルター処理を行うことができます。
EDIT3:
2つの大きな線が1つの小さな線(<1m)に接触している場合を解決しましょう。小さなラインとの結合に参加するには、大きなラインの1つだけをとる必要があります。
このようなフィルタリングを実行できるようにするには、これら2つの大きな機能に、接触している小さな機能のIDでマークを付ける必要があります。EDIT2で述べたように、SpatialFilter
パラメーターMerge Attributes
とを使用してトランスフォーマーで実行できますAttribute Prefix
。
次に、変圧器を使用します DuplicateRemover
をこのような重複する機能(2つ大きい)をフィルター処理し、そのうちの1つだけを取得します。
ヒント:Inspector
モデルの作成中にトランスフォーマーを使用し、不明な場合は中間結果を表示してください。このようにして、各トランスがどのように機能しているかをよりよく理解できます。データを試してみてください!:)