ポリゴンのスムージング(Smooth Polygon) (カートグラフィ)
サマリ
ポリゴンのアウトラインの鋭角を滑らかにして、見た目の品質やカートグラフィック品質を向上させます。
図
使用法
-
次の 2 つのスムージング方法を選択できます。
- [PAEK](Polynomial Approximation with Exponential Kernel)による方法は、スムージング許容値に基づいてポリゴンを滑らかにします。滑らかになったポリゴンは、元のポリゴンよりも頂点が多くなる可能性があります。[スムージングの許容値] パラメータは、新しい頂点の計算に使用する「移動」経路の長さを制御します。長さが短いほど詳細が維持されますが、処理時間は長くなります。
- [BEZIER_INTERPOLATION] による方法は、入力ポリゴンに適合させるベジェ曲線を作成することにより、許容値を使用せずに滑らかにします。出力がシェープファイルの場合は、近似のベジェ曲線が作成されます。シェープファイルには真のベジェ曲線を保存できないためです。
-
スムージングにより、ポリゴンのアウトラインの交差などのトポロジ エラーが発生する場合があります。このようなエラーを特定するには、[トポロジ エラーの処理] パラメータの [FLAG_ERRORS] オプションを使用します。[InPoly_FID] と [SmoPlyFlag] という 2 つのフィールドが、入力フィーチャ ID とトポロジ エラーを格納するために追加されます。[SmoPlyFlag] フィールドの値が 1 の場合はトポロジ エラーがあり、0(ゼロ)の場合はエラーがないことを示します。[InPoly_FID] フィールドは、出力されたポリゴンをそれぞれの入力ポリゴンに関連付けます。[FLAG_ERRORS] オプションは、編集セッション中は使用できません。
-
スムージング プロセス中に無効な(自己交差する)ジオメトリが作成される場合があります。修正は行われますが、改善されません。たとえば、ポリゴンが自己交差している場合、このポリゴンはマルチパート ポリゴンになりますが、やはり自己交差しているように見えます。
構文
パラメータ | 説明 | データ タイプ |
in_features |
スムージングの対象となるポリゴン フィーチャ。 | Feature Layer |
out_feature_class |
作成される出力ポリゴン フィーチャクラス。 | Feature Class |
algorithm |
スムージング アルゴリズムを指定します。
| String |
tolerance |
PAEK アルゴリズムで使用する許容値を設定します。許容値には、0(ゼロ)より大きい値を指定する必要があります。単位は自由に指定できます。デフォルトはフィーチャの単位です。スムージング アルゴリズムに [BEZIER_INTERPOLATION] を使用するときは、プレースホルダとして 0 を入力する必要があります。 | Linear unit |
endpoint_option (オプション) |
孤立したポリゴン リングの端点を維持するかどうかを指定します。このオプションは、PAEK アルゴリズムでのみ機能します。
| Boolean |
error_option (オプション) |
ラインの交差や重なりなど、プロセスで発生する可能性があるトポロジ エラーの処理方法を指定します。
| String |
コードのサンプル
次の Python ウィンドウ スクリプトは、イミディエイト モードで SmoothPolygon(ポリゴンのスムージング)ツールを使用する方法を示しています。
import arcpy
from arcpy import env
import arcpy.cartography as CA
env.workspace = "C:/data"
CA.SmoothPolygon("soils.shp", "C:/output/output.gdb/smoothed_soils", "PAEK", 100)
次のスタンドアロン スクリプトは、SmoothPolygon(ポリゴンのスムージング)ツールの使用方法を示しています。
# Name: SmoothPolygon_Example2.py
# Description: Eliminate small islands before simplifying and smoothing lake boundaries
# Import system modules
import arcpy
from arcpy import env
import arcpy.cartography as CA
import arcpy.management as DM
# Set environment settings
env.workspace = "C:/data/Portland.gdb/Hydrography"
# Set local variables
inLakeFeatures = "lakes"
eliminatedFeatures = "C:/data/PortlandOutput.gdb/lakes_eliminated"
simplifiedFeatures = "C:/data/PortlandOutput.gdb/lakes_simplified"
smoothedFeatures = "C:/data/PortlandOutput.gdb/lakes_smoothed"
# Eliminate small islands in lake polygons.
DM.EliminatePolygonPart(inLakeFeatures, eliminatedFeatures, 100, "OR", 0, "CONTAINED_ONLY")
# Simplify lake polygons.
CA.SimplifyPolygon(eliminatedFeatures, simplifiedFeatures, "POINT_REMOVE", 50, 200, "RESOLVE_ERRORS", "KEEP_COLLAPSED_POINTS", "CHECK")
# Smooth lake polygons.
CA.SmoothPolygon(simplifiedFeatures, smoothedFeatures, "PAEK", 100, "", "FLAG_ERRORS")