ラインまたはポリゴンの単純化(Simplify Line Or Polygon) (カバレッジ)
サマリ
カバレッジのラインまたはポリゴンの本質的な形状は維持しながら、細かな変動や外側の曲げを取り除くことによって、ラインまたはポリゴンの境界を単純化します。
図
使用法
-
入力カバレッジの中に交差しているラインがすでに含まれている場合や、結果をすぐに得られれば出力カバレッジのトポロジ エラーは気にしない場合、トポロジ エラーをチェックしないデフォルトのオプションを使用します。処理によって発生したトポロジ エラーは、チェックおよび修正されません。入力カバレッジの中に交差しているラインが含まれていて、トポロジ エラーをチェックする場合、入力データの検証中にエラーが発生し、プログラムは「in_cover に交差しているラインが見つかりました。プログラムを終了します。(Intersecting lines are found in in_cover. The program is terminated.)」というメッセージを表示して終了します。
-
入力カバレッジの中に交差するラインがない場合、[トポロジ エラーの確認] オプションをオンにして、単純化処理で生成されるエラーを検出および回避します。トポロジ エラーが見つかった場合、関連するアークが許容値を下げて再生成されます。その結果に対して、トポロジ エラーが再びチェックされます。エラーがなくなるまで、この処理が繰り返されます。このオプションを使用すると、デフォルト オプションのときと比べて、プログラムの実行に非常に時間がかかります。
-
input_coverage.AAT がない場合以外は、output_coverage.AAT は TOLFLAG という新しいアイテムを含みます。これは、各アークに使用される許容値を小数で格納します。[単純化許容値] より小さい許容値は、トポロジ エラーを避けるため、よりゆるやかな単純化が行われたアークを示しています。
-
ポリゴン トポロジが入力カバレッジに存在する場合、出力カバレッジでは維持されません。ただし、カバレッジ PAT は維持されます。ポリゴン トポロジを再作成するには、[ビルド(Build)] を使用する必要があります。ラベルが存在する場合、ラベルは維持されます。ポリゴンの境界が単純化されたために、ラベルが境界外になった場合、ポリゴン境界の最も近いライン セグメントの内部にラベルが移動します。
-
入力カバレッジにリージョンが存在している場合、出力カバレッジのリージョンは予備のリージョンになります。[ビルド(Build)] ツールを使用してポリゴン トポロジを再作成すると、リージョン トポロジも再作成されます。
-
出力カバレッジの座標精度は、[出力カバレッジの精度] 環境設定で設定された現在の処理ルールによって決定されます。処理ルールが確立されていない場合、出力カバレッジの精度は入力カバレッジと同じになります。
構文
パラメータ | 説明 | データ タイプ |
in_cover |
単純化するアークまたはポリゴンを含むカバレッジ。 | Coverage |
out_cover |
作成されるカバレッジ。出力カバレッジ名は、入力カバレッジ名と異なる必要があります。 | Coverage |
simplification_tolerance |
許容値をカバレッジ単位で設定します。許容値には、ゼロより大きい値を指定する必要があります。 | Double |
simplification_operator (オプション) |
単純化演算子を指定します。
| String |
ErrorCheck (オプション) |
トポロジ エラーをチェックするかどうかを指定します。チェックする内容には、ラインの交差、ラインの重複、長さゼロのライン、面積がゼロになったポリゴン、ポリゴンの外にはみ出た穴などがあります。
| Boolean |
コードのサンプル
次のスタンドアロン スクリプトで、湖カバレッジを単純化する方法を示します。
# Name: SimplifyLineOrPolygon_Example.py
# Description: Simplifies a lake coverage
# Requirements: ArcInfo Workstation
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Set local variables
inCover = "lakeshore"
outCover = "C:/output/cartolake"
simplificationTolerance = 110
simplificationOperator = "BEND_SIMPLIFY"
# Execute SimplifyLineOrPolygon
arcpy.SimplifyLineOrPolygon_arc(inCover, outCover, simplificationTolerance,
simplificationOperator, "")