クリーン(Clean)(カバレッジ)の仕組み
[クリーン(Clean)] を使用すると、ポリゴンまたはライン カバレッジのトポロジを作成できます。
ポリゴン トポロジを作成する場合:
- ポリゴン トポロジおよびポリゴン属性テーブル(PAT)が作成されます。AAT が存在している場合、自動的に更新されます。別途にもう 1 つのポリゴン(背景ポリゴンまたは外周ポリゴン)も作成されます。
- ポリゴン ユーザ ID をゼロ以外の値で指定し、ポリゴン属性を保持する場合、ラベル ポイントが必要です。ポリゴンのラベル ポイントが複数ある場合は、いずれか 1 つが任意に選択されてユーザ ID に割り当てられます。
- ルート システムが保持され、SEC と RAT が分割およびアークの再番号付けの調整値で更新されます。ただし、ルートおよびセクションは、ファジー許容値設定に従ってマージ対象となるアークにアタッチされている場合、削除されます。
- セクションは分割され、アークおよびアーク測定値は更新されます。
- リージョン トポロジは保持されます。入力カバレッジに予備のリージョン トポロジがある場合、PAT および PAT<サブクラス> が作成されます。
ライン トポロジを作成する場合:
- アークノード トポロジおよび AAT が作成または更新されます。
- 既存の PAT は更新されません。
- ルート システムが保持され、SEC と RAT が分割およびアークの再番号付けの調整値で更新されます。ただし、ルートおよびセクションは、ファジー許容値設定に従ってマージ対象となるアークにアタッチされている場合、削除されます。
- セクションは分割され、アークおよびアーク測定値は更新されます。
- リージョンおよびリージョン サブクラスは削除されます。
[クリーン(Clean)] は、カバレッジ アークおよびラベル ポイントに対してジオメトリック解析を実行し、カバレッジ ノードおよびポリゴンを識別して、ポリゴンおよびアークノード トポロジを構築します。[クリーン(Clean)] が実行する特定のジオメトリック解析操作を以下で説明します。
[クリーン(Clean)] は、アーク間の交差部を検索し、アークを分割して、交差部をノード(アーク端点)としてコーディングします。
[クリーン(Clean)] の実行中、ファジー許容値内にある複数のアーク座標はスナップされます(たとえば、同じ座標ポイントになります)。内部アーク座標とノード間やアーク間に違いは生まれません。ファジー許容値に応じてアーク頂点が動くという事実を踏まえると、ファジー許容値とカバレッジ解像度との関係を理解しておくことは大切です。以下の「クリーン(Clean)の許容値の設定」をご参照ください。
[クリーン(Clean)] は、アークで囲まれたエリアを識別することでポリゴンとアークノード トポロジを構築し、各ポリゴンの境界を画定するアークのリストを作成します。また、[クリーン(Clean)] は、ノード数を計数し、各ノードの開始ノードと終了ノード、および各アークの左右にある内部ポリゴン数を確定します。[ライン] オプションの場合、内部ポリゴン番号は 0 に設定されます。
Set of arcs enclosing each polygon Polygon number Number of Arcs Arc numbers 1 4 1,2,9,4 2 4 1,3,5,4 3 4 2,8,6,3 4 4 6,8,9,5
Polygons to the left and right of each arc Arc number From-node To-node Left Poly Right Poly 1 1 2 1 2 2 2 7 1 3 3 2 3 3 2 4 4 1 1 2 5 4 3 2 4 6 5 3 4 3 7 5 6 3 3 8 7 5 4 3 9 7 4 1 4
[クリーン(Clean)] は、ダングル アークの長さをダングル長と比較し、ダングル長より短いダングル アークを削除します。ダングル アークは、その左右に同じポリゴン内部番号が付いていて、ダングル ノードで終わります。
Polygons to the left and right of each arc Arc number Left poly Right poly Length 1 1 2 5.0 2* 1 1 0.2 3 1 3 8.8 4 2 3 1.2 5* 2 2 0.2 6 2 4 1.3 7* 1 1 0.2 8 4 3 1.9 9* 3 3 1.5 10 4 3 1.9 11* 1 1 0.2 12 4 1 3.1 * Dangling arcs + Arc length is longer than dangle length = 1.0
指定されたダングル長に基づき、アーク 9 はカバレッジ内に維持され、アーク 2、5、7、11 は削除されます。
[ポリゴン] オプションの場合、[クリーン(Clean)] は、ユーザ ID を各ポリゴンに割り当てるために使用できる各ポリゴン内のラベル ポイントを検索します。ラベル ポイントのないポリゴンは、ユーザ ID にゼロが割り当てられます。ポリゴンのラベル ポイントが複数ある場合は、いずれか 1 つが任意に選択されてポリゴンのユーザ ID に割り当てられます。
Polygon Internal no. Polygon User-ID 1 0 2 101 3 102 4 0
[クリーン(Clean)] は、使用するオプションに応じて、PAT または AAT を構築します。[クリーン(Clean)] は、各ポリゴンの面積と周長を計算し、この情報をポリゴンの内部番号およびユーザ ID と共に PAT 内に格納します。入力カバレッジ用に PAT がある場合、ポリゴンの元の内部番号を介して、その PAT 内の追加アイテムが出力カバレッジの PAT に結合されます。
EXCOV.PAT before Clean AREA PERIMETER EXCOV# EXCOV-ID COVER-TYPE -25.0 20.0 1 0 2.0 7.5 2 0 Shrub 3.0 9.0 3 13 Trees 9.0 11.0 4 10 Grass 3.5 8.0 5 13 Forest 1.0 2.5 6 0 Water 4.5 9.0 7 14 Shrub 2.0 5.0 8 0 Forest
EXCOV.PAT after Clean AREA PERIMETER EXCOV# EXCOV-ID COVER-TYPE -25.0 20.0 1 0 2.0 7.5 2 0 3.0 9.0 3 13 Trees 9.0 11.0 4 10 Grass 3.5 8.0 5 13 Forest 1.0 2.5 6 0 Water 4.5 9.0 7 14 Shrub 2.0 5.0 8 0
[ポリゴン] オプションで [クリーン(Clean)] を使用する場合、ポリゴンのラベル ポイントは必須ではありませんが、用意しておくことをお勧めします。ポリゴン ラベルは、[クリーン(Clean)] の中で属性を維持するために使用されます。必須ではありませんが、ラベル ポイントに一意な ID を与えることもお勧めします。
このカバレッジを構築すると、ラベル ポイントを持つすべてのポリゴンでは、COVER-TYPE 属性値が維持されます。ラベルのないポリゴンでは、この属性は維持されません。
[ライン] オプションの場合、[クリーン(Clean)] はカバレッジのライン属性(AAT など)を自動的に構築します。また、AAT のある入力カバレッジに [ポリゴン] オプションを使用すると、[クリーン(Clean)] は出力カバレッジ内に AAT を自動的に再作成します。入力 AAT 内の追加アイテムは、アークの古い内部番号をリレート アイテムとして使用して、出力 AAT に結合されます。AAT 内の LPOLY# および RPOLY# アイテムは、新しいポリゴン内部番号と等しくなります。
次の例は、[ライン] オプションで [クリーン(Clean)] を使用した AAT の作成を示しています。最初の例は、ポリゴン トポロジを含むカバレッジです。2 番目の例はポリゴン トポロジを含まないため、LPOLY と RPOLY の番号がゼロとして記録されています。
Items from VEG.AAT after Clean FNODE TNODE LPOLY RPOLY LENGTH VEG# VEG-ID 1 3 2 1 5.0 1 1 1 2 3 2 2.0 2 2 1 4 1 3 10.0 3 3 2 3 4 2 1.9 4 4 4 2 4 3 3.9 5 5 3 4 4 1 5.1 6 6
Items from ROADS.AAT after CLEAN FNODE TNODE LPOLY RPOLY LENGTH ROADS# ROADS-ID 1 2 0 0 1.0 1 1 2 3 0 0 1.2 2 2 3 5 0 0 0.8 3 3 4 4 0 0 0.9 4 4 5 6 0 0 1.0 5 5
クリーン(Clean)の許容値の設定
ファジー許容値の選択は、[クリーン(Clean)] にとって重要です。出力カバレッジ内の 2 つの座標は、互いのこの距離内には存在できないので、ファジー許容値は、出力カバレッジの解像度を決定します。ファジー許容値が小さすぎる場合、次の 2 通りの問題が考えられます。
- [クリーン(Clean)] では、一致する円弧線分(互いのファジー許容値範囲内にある平行な円弧線分)を解決できないことがあります。
- 既存のスリバーまたはアンダーシュートは、正常にクリーンされないことがあります。
逆に、ファジー許容値が大きすぎる場合、ポリゴンが崩壊したり、マージしてはならないアークをマージしてしまう可能性があります。
ダングル長の選択には、特別な注意を払ってください。指定したダングル長よりも短いダングル アークは、すべて削除されます。
[クリーン(Clean)] は、交差するアークを分割する必要があるライン カバレッジの処理や、編集後のアークノード トポロジの再作成に使用できます。
[ビルド(Build)] ツールは、同様の処理を実行します。[ポリゴン] オプションで [ビルド(Build)] を実行すると、ポリゴン トポロジと属性(PAT など)が作成されます。[ライン] オプションで [ビルド(Build)] を実行すると AAT が作成されます。AAT がすでに存在する場合は、再構築されます。しかし、[ビルド(Build)] は [クリーン(Clean)] と異なり、座標の編集は実行しません。たとえば、アークを、他のアークと交差する部分で分割できません。別のカバレッジ コマンドである [リノード(Renumber Nodes)] は、ノードの内部番号をリセットし、カバレッジ AAT 内の各アークの開始ノードと終了ノードの内部番号を自動的に更新することで、各アークのノード番号を再設定します。