サマリ
ラインの鋭角を滑らかにして、見た目の品質やカートグラフィック品質を向上させます。
図
使用法
次の 2 つのスムージング方法を選択できます。
- [PAEK (Polynomial Approximation with Exponential Kernel)](Python では PAEK) による方法は、スムージング許容値に基づいてラインを滑らかにします。滑らかになったラインには、元のラインよりも頂点が多くなる可能性があります。[スムージングの許容値] パラメーターは、新しい頂点の計算に使用する「移動」経路の長さを制御します。長さが短いほど詳細が維持されますが、処理時間は長くなります。
- [ベジェ補間] による方法 (Python では BEZIER_INTERPOLATION) は、入力ラインに適合させるベジェ曲線を作成することにより、許容値を使用しないでラインを滑らかにします。出力がシェープファイルの場合は、近似のベジェ曲線が作成されます。シェープファイルには真のベジェ曲線を保存できないためです。
スムージングにより、ラインの交差などのトポロジ エラーが発生する場合があります。このようなエラーを特定するには、[トポロジ エラーの処理] パラメーターの [フラグ エラー] オプション (Python では FLAG_ERRORS) を使用します。[InLine_FID] と [SmoLnFlag] という 2 つのフィールドが、入力フィーチャ ID とトポロジ エラーを格納するために追加されます。[SmoLnFlag] フィールドの値が 1 の場合はトポロジ エラーがあり、0 (ゼロ) の場合はエラーがないことを示します。[InLineFID] フィールドは、出力されたラインをそれぞれの入力ラインに関連付けます。[フラグ エラー] オプションは、編集セッション中は使用できません。
スムージング プロセス中に無効な (自己交差する) ジオメトリが作成される場合があります。修正は行われますが、改善されません。たとえば、ラインが自己交差している場合、このラインはマルチパート ラインになりますが、やはり自己交差しているように見えます。
構文
SmoothLine_cartography (in_features, out_feature_class, algorithm, tolerance, {endpoint_option}, {error_option})
パラメータ | 説明 | データ タイプ |
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 |
コードのサンプル
SmoothLine (ラインのスムージング) の例 (Python ウィンドウ)
次の Python ウィンドウ スクリプトは、イミディエイト モードで SmoothLine (ラインのスムージング) ツールを使用する方法を示しています。
import arcpy
from arcpy import env
import arcpy.cartography as CA
env.workspace = "C:/data"
CA.SmoothLine("contours.shp", "C:/output/output.gdb/smoothed_contours", "PAEK", 100)
SmoothLine (ラインのスムージング) の例 2 (スタンドアロン スクリプト)
次のスタンドアロン スクリプトは、SmoothLine (ラインのスムージング) ツールの使用方法を示しています。
# Name: SmoothLine_Example2.py
# Description: Simplify and then Smooth coastlines
# Import system modules
import arcpy
from arcpy import env
import arcpy.cartography as CA
# Set environment settings
env.workspace = "C:/data/Portland.gdb/Hydrography"
# Set local variables
inCoastlineFeatures = "coastlines"
simplifiedFeatures = "C:/data/PortlandOutput.gdb/coastlines_simplified"
smoothedFeatures = "C:/data/PortlandOutput.gdb/coastlines_smoothed"
# Simplify coastlines.
CA.SimplifyLine(inCoastlineFeatures, simplifiedFeatures, "POINT_REMOVE", 50, "RESOLVE_ERRORS", "KEEP_COLLAPSED_POINTS", "CHECK")
# Smooth coastlines.
CA.SmoothLine(simplifiedFeatures, smoothedFeatures, "PAEK", 100, "", "FLAG_ERRORS")
環境
ライセンス情報
- ArcGIS for Desktop Basic: ×
- ArcGIS for Desktop Standard: ○
- ArcGIS for Desktop Advanced: ○