共有エッジの単純化 (Simplify Shared Edges) (カートグラフィ)

概要

他のフィーチャと共有しているエッジとのトポロジ関係を維持しながら、入力フィーチャのエッジを単純化します。

共有エッジの単純化 (Simplify Shared Edges) ツールの例
入力 1 と入力 2 はすべてのエッジで単純化されます。共有エッジ ポリゴンおよび共有エッジ ラインは、入力 1 と入力 2 で共有されているエッジに沿ってのみ単純化されます。

使用法

  • このツールでは、次のように、それぞれの目的に応じた異なる単純化アルゴリズムを使用します。このアルゴリズムの詳細については、「ラインの単純化 (Simplify Line) とポリゴンの単純化 (Simplify Polygon) の詳細」をご参照ください。

    • [重要なポイントを保持 (Douglas-Peucker)] アルゴリズム (Python の algorithm='POINT_REMOVE') は、相対的に不要な頂点を識別して削除し、より小さな縮尺で表示できるようにデータを単純化する仕組みになっています。これは、このツールの単純化アルゴリズムのうちで最も高速です。このアルゴリズムは、多くの場合、データ圧縮または大まかな単純化のために使用されます。結果として生成されるラインの鋭角は、許容値が大きくなるにつれ大幅に鋭くなります。このアルゴリズムは、David Douglas と Thomas Peucker 共著「Algorithms for the reduction of the number of points required to represent a digitized line or its caricature」(『The Canadian Cartographer』10(2)、112–22 (1973)) による Douglas-Peucker アルゴリズムをベースとしています。
    • [重要な屈曲を保持 (Wang-Müller)] アルゴリズム (Python の algorithm='BEND_SIMPLIFY') は、相対的に意味のない屈曲を識別して削除し、より小さな縮尺で表示できるようにデータを単純化する仕組みになっています。これは、一般に、[重要なポイントを保持 (Douglas-Peucker)] アルゴリズムと比べて、入力ジオメトリにより忠実な結果を生成しますが、処理により多くの時間がかかることがあります。このアルゴリムは、Zeshen Wang と Jean-Claude Müller 共著「Line Generalization Based on Analysis of Shape Characteristics」(『Cartography and Geographic Information Systems』25(1)、3–15 (1998)) で定義されたアルゴリズムをベースとしています。
    • [加重エリアを保持 (Zhou-Jones)] アルゴリズム (Python の algorithm='WEIGHTED_AREA') は、最初に各頂点の有効エリアである三角形を識別する仕組みになっています。次に、各エリアの平坦度、歪度、凸性を比較するために、それらの三角形が一連のメトリクスによって重み付けされます。加重エリアを参考にしてそれらに対応する頂点を削除することで、可能な限り特徴を維持しながら、ラインを単純化します。このアルゴリズムは、Sheng Zhou と Christopher B. Jones 共著「Shape-Aware Line Generalisation with Weighted Effective Area」(Fisher, Peter F. (Ed.)『Developments in Spatial Handling 11th International Symposium on Spatial Handling』369–80 (2005)) で定義されたアルゴリズムをベースとしています。
    • [有効エリアを保持 (Visvalingam-Whyatt)] アルゴリズム (Python ではalgorithm='EFFECTIVE_AREA') は、頂点を削除することで、可能な限り特徴を維持しながら、ラインを単純化するために、各頂点の有効エリアである三角形を識別する仕組みになっています。このアルゴリズムは、M. Visvalingam と J. D. Whyatt 共著「Line Generalisation by Repeated Elimination of the Smallest Area」(『Cartographic Information Systems Research Group (CISRG) Discussion Paper 10』The University of Hull (1992)) で定義されたアルゴリズムをベースとしています。

  • このツールを実行すると、[入力フィーチャ] パラメーターと [共有エッジ フィーチャ] パラメーターが変更されます。新規の出力は生成されません。

  • 単純化は、すべての [入力フィーチャ] エッジに適用され、[共有エッジ フィーチャ] エッジの場合は、[入力フィーチャ] エッジとエッジを共有しているものにだけ適用されます。1 つ以上の [入力フィーチャ] エッジとエッジを共有していない [共有エッジ フィーチャ] エッジは単純化されません。

構文

SimplifySharedEdges(in_features, algorithm, tolerance, {shared_edge_features}, {minimum_area}, {in_barriers})
パラメーター説明データ タイプ
in_features
[in_features,...]

単純化の対象となるラインまたはポリゴン。

Feature Layer
algorithm

単純化アルゴリズムを指定します。

  • POINT_REMOVEポリゴンのアウトラインの基本的な形状を保つ重要なポイントを保持し、他のすべてのポイントを削除します (Douglas-Peucker)。これがデフォルトです。
  • BEND_SIMPLIFY 重要な屈曲を保持し、不要な屈曲をラインから削除します (Wang-Müller)。
  • WEIGHTED_AREA三角形で重み付けされた有効エリアである三角形を形成する頂点を保持します (Zhou-Jones)。
  • EFFECTIVE_AREA 有効エリアである三角形を形成する頂点を保持します (Visvalingam-Whyatt)。
String
tolerance

単純化の度合いを決定します。単位を指定しないと、入力の単位が使用されます。

  • POINT_REMOVE アルゴリズムの場合、許容値は、各頂点と新規作成されたラインとの間の最大許容垂直距離を示します。
  • BEND_SIMPLIFY アルゴリズムの場合、許容値は、有意な屈曲に近似する円の半径を意味します。
  • WEIGHTED_AREA アルゴリズムの場合、許容値の二乗は、3 つの隣接する頂点によって定義される有意な三角形の面積を示します。三角形が正三角形から逸脱するほど、与えられる重み付けが大きくなり、削除される可能性が低くなります。
  • EFFECTIVE_AREA アルゴリズムの場合、許容値の二乗は、3 つの隣接する頂点によって定義される有意な三角形の面積を示します。
Linear Unit
shared_edge_features
[shared_edge_features,...]
(オプション)

入力フィーチャと共有しているエッジに沿って単純化されるラインまたはポリゴン フィーチャ。それ以外のエッジは単純化されません。

Feature Layer
minimum_area
(オプション)

ポリゴンを保持するための最小エリア。デフォルト値は 0 であり、すべてのポリゴンが保持されます。単位を指定できます。単位を指定しないと、入力の単位が使用されます。このパラメーターを使用できるのは、入力のうちの 1 つ以上がポリゴン フィーチャクラスの場合に限ります。

Areal Unit
in_barriers
[in_barriers,...]
(オプション)

単純化でバリアの役割を果たすポイント、ライン、またはポリゴン フィーチャ。単純化後のフィーチャはバリア フィーチャに接することも、バリア フィーチャを横切ることもありません。

Feature Layer

派生した出力

名前説明データ タイプ
out_feature_class

スムージング後の入力フィーチャ。

フィーチャ レイヤー
out_shared_edge_feature_class

共有エッジ フィーチャ。

フィーチャ レイヤー

コードのサンプル

SimplifySharedEdges (共有エッジの単純化) の例 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、SimplifySharedEdges ツールをイミディエイト モードで使用する方法を示しています。

import arcpy
arcpy.env.workspace = "C:/data/LandUse.gdb"
arcpy.SimplifySharedEdges_cartography
arcpy.SimplifySharedEdges_cartography("Water;Parks;", 
                                      "POINT_REMOVE", 
                                      "10 Meters", 
                                      "Commercial;Highways;Buildings", 
                                      "0 SquareMeters")
SimplifySharedEdges (共有エッジの単純化) の例 (スタンドアロン スクリプト)

このスタンドアロン スクリプトは、SimplifySharedEdges (ベクター タイル パッケージの作成) ツールの使用例を示しています。

# Name: SimplifySharedEdges_standalone_script.py
# Description: Simplifies input features while maintaining topological 
#              relationships along shared edges. For features included as 
#              shared_edge_features (4th argument of 
#              SimplifySharedEdges_cartography()) only the edges that are shared 
#              with in_features (1st argument) are simplified. 

# Import system modules
import arcpy

# Set environment settings
arcpy.env.workspace = "C:/data/LandUse.gdb"

# Set local variables
in_features = "Water;Parks"
algorithm = "POINT_REMOVE"
tolerance = "10 Meters"
shared_edge_features = "Commercial;Highways;Buildings"
minimum_area = "0 SquareMeters"
barriers = None

# Execute Simplify Shared Edges
arcpy.SimplifySharedEdges_cartography(in_features, algorithm, tolerance, 
                                      shared_edge_features, minimum_area, 
                                      barriers)

ライセンス情報

  • Basic: いいえ
  • Standard: はい
  • Advanced: はい

関連トピック