ジオメトリのチェック(Check Geometry) (データの管理)
サマリ
フィーチャクラスに存在するジオメトリの問題についてレポートを作成します。
有効な入力形式は、パーソナル ジオデータベースまたはファイル ジオデータベースに保存されているシェープファイル クラスおよびフィーチャクラスです。SDE ジオデータベースでは、アップロード時に各ジオメトリの有効性が自動的にチェックされるため、[ジオメトリのチェック(Check Geometry)] ツールと [ジオメトリの修正(Repair Geometry)] ツールは SDE には使用しません。
ジオメトリの問題の詳細、ソフトウェアに与える影響、および可能性のある原因については、「ジオメトリのチェックと修正」をご参照ください。
使用法
-
[出力テーブル] には、発見されたジオメトリの問題ごとにレコードが格納されます。問題が見つからなかった場合は、テーブルは空になります。
-
[出力テーブル] には次のフィールドがあります。
- CLASS - 問題が見つかったフィーチャクラスの絶対パスおよび名前
- FEATURE_ID - ジオメトリの問題があるフィーチャのフィーチャ ID(FID)またはオブジェクト ID(OID)
- PROBLEM - 問題の簡単な説明
-
PROBLEM フィールドには、次のメッセージの 1 つが格納されます。
- Short segment(短い線分)- ジオメトリに関連付けられている空間参照のシステム単位で許可されている長さよりも短い線分があります。
- Null geometry(NULL ジオメトリ)- フィーチャにジオメトリがありません。または Shape フィールドにデータがありません。
- Incorrect ring ordering(不正なリングの順序)- ポリゴンのトポロジはシンプルですが、リングの向きが正しくない可能性があります(外部リングは時計回り、内部リングは反時計回り)。
- Incorrect segment orientation(不正なセグメントの方向)- 個々のセグメントの方向が同じではありません。セグメント i の終点はセグメント i+1 の始点と同じになる必要があります。
- Self intersections(自己交差)- ポリゴンは自己交差してはいけません。
- Unclosed rings(閉じていないリング)- リングの最後の線分の終点は、最初の線分の始点と同じになる必要があります。
- Empty parts(空のパート)- ジオメトリに複数のパートがあり、そのうちの 1 つが空です(ジオメトリがありません)。
- Duplicate vertex(重複した頂点)- ジオメトリに座標が同一の頂点が複数あります。
- Mismatched attributes(一致しない属性)- 線分の端点の Z 座標または M 座標が、一致する必要がある次の線分の端点の Z 座標または M 座標に一致しません。
- Discontinuous parts(不連続な部分)- ジオメトリのパートの 1 つが接続されていないか、不連続な部分で構成されています。
- Empty Z values(空の Z 値)- Z 値が空(NaN など)の頂点が 1 つ以上ジオメトリに存在します。
-
このツールで特定された問題には、次の方法で対処することができます。
- ジオメトリの問題があるフィーチャを手動で編集して修正します。シンプルではないジオメトリなど、エディタでは修正できない問題もあります。
- ジオメトリの問題があると特定されたフィーチャクラスに対して [ジオメトリの修正(Repair Geometry)] ツールを実行します。
-
ポイント フィーチャの場合は、NULL ジオメトリの問題だけが適用されます。
-
ArcMap でジオメトリの問題があると報告されたフィーチャを確認しやすくするために、[テーブル結合(Add Join)] ツールを使用して [入力フィーチャ] を [出力テーブル] に結合することができます。入力の [ObjectID] フィールドと出力テーブルの [FEATURE_ID] フィールドを使用して単純に結合してください。[すべて保存] オプションをオフにして、ジオメトリの問題があるフィーチャだけを表示することもできます。
10.0 リリース以降では、ライン ジオメトリが自己交差していても「自己交差」の問題があると見なされなくなりました。この種類のジオメトリへの悪影響はないため、[ジオメトリのチェック(Check Geometry)] ツールではこのようなフィーチャは問題として報告されなくなり、[ジオメトリの修正(Repair Geometry)] ツールではフィーチャのジオメトリの「修正」が行われなくなりました。10.0 よりも前のリリースでは、[ジオメトリの修正(Repair Geometry)] によって、「自己交差している」ラインの交点に頂点が追加されます。ライン フィーチャが自己交差している場合に頂点が追加されるようにするには [インテグレート(Integrate)] ツールを使用してください。
構文
パラメータ | 説明 | データ タイプ |
in_features [in_features,...] |
ジオメトリの問題をチェックする対象となる 1 つ以上のフィーチャクラスまたはフィーチャ レイヤ。有効な入力形式は、パーソナル ジオデータベースまたはファイル ジオデータベースに保存されているシェープファイル クラスおよびフィーチャクラスです。 | Feature Layer |
out_table |
入力フィーチャで発見された問題のリストを格納するテーブル | Table |
コードのサンプル
次の Python ウィンドウ スクリプトで、CheckGeometry(ジオメトリのチェック)関数をイミディエイト モードで使用する方法を示します。
import arcpy
arcpy.env.workspace = "c:/data/data.gdb"
arcpy.CheckGeometry_management (["contours", "roads", "vegetation"], "CG_Result")
次のスタンドアロン スクリプトでは、ジオデータベース内のすべてのフィーチャクラスにループをかけて CheckGeometry(ジオメトリのチェック)を使用します。
# BatchCheckGeometry.py
# Description:
# Loops through all the feature classes in a geodatabase, and generates
# a report of the problems encountered with feature geometry.
# Requirements: Python
# Import modules
import arcpy
# The workspace in which the feature classes will be checked
outTable = "C:/data/St_Lucia.gdb/checkGeometryResult"
arcpy.env.workspace = "C:/data/St_Lucia.gdb"
# A variable that will hold the list of all the feature classes
# inside the geodatabase
fcs = []
# List all feature classes in feature datasets
for fds in arcpy.ListDatasets("","featuredataset"):
fcs += arcpy.ListFeatureClasses("*","",fds)
# List all standalone feature classes
fcs = arcpy.ListFeatureClasses()
print "Running the check geometry tool on %i feature classes" % len(fcs)
arcpy.CheckGeometry_management(fcs, outTable)
print (str(arcpy.GetCount_management(outTable)) + " geometry problems were found.")
print ("See " + outTable + " for full details")