概要
フィーチャクラスに存在するジオメトリの問題についてレポートを作成します。
有効な入力形式は、シェープファイルおよびパーソナル ジオデータベースまたはファイル ジオデータベースに保存されているフィーチャクラスです。エンタープライズ ジオデータベースでは、アップロード時に各ジオメトリの有効性が自動的にチェックされるため、[ジオメトリのチェック (Check Geometry)] ツールと [ジオメトリの修正 (Repair Geometry)] ツールはエンタープライズ ジオデータベースには使用しません。
ジオメトリの問題の詳細、ソフトウェアに与える影響、および可能性のある原因については、「ジオメトリのチェックと修正」をご参照ください。
使用法
[出力テーブル] には、発見されたジオメトリの問題ごとにレコードが格納されます。問題が見つからなかった場合は、テーブルは空になります。
[出力テーブル] には次のフィールドがあります。
- CLASS - 問題が見つかったフィーチャクラスの絶対パスおよび名前
- FEATURE_ID - ジオメトリの問題があるフィーチャのフィーチャ ID (FID) またはオブジェクト ID (OID)
- PROBLEM - 問題の簡単な説明
PROBLEM フィールドには、次のメッセージのいずれかが格納されます。
- Short segment - ジオメトリに関連付けられている空間参照のシステム単位で許可されている長さよりも短い線分があります。
- Null geometry - フィーチャにジオメトリがありません。または 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 値が空 (NaN など) の頂点が 1 つ以上ジオメトリに存在します。
- Bad envelope - エンベロープがジオメトリの座標範囲に一致しません。
- Bad dataset extent - データセットの範囲にすべてのフィーチャが含まれていません。
このツールで特定された問題には、次の方法で対処することができます。
- ジオメトリの問題があるフィーチャを手動で編集して修正します。一部の問題は、編集によって修正することができません。
- ジオメトリの問題があると特定されたフィーチャクラスに対して [ジオメトリの修正 (Repair Geometry)] ツールを実行します。
ポイント フィーチャの場合は、NULL ジオメトリの問題だけが適用されます。
ジオメトリの問題があると報告されたフィーチャを確認しやすくするために、[テーブルの結合 (Add Join)] ツールを使用して、入力の OBJECTID または FID フィールドと出力テーブルの FEATURE_ID フィールドとともに、[入力フィーチャ] を [出力テーブル] に結合することができます。
構文
CheckGeometry(in_features, out_table)
パラメーター | 説明 | データ タイプ |
in_features [in_feature,...] | ジオメトリの問題をチェックする 1 つ以上のフィーチャクラスまたはフィーチャ レイヤー。有効な入力は、シェープファイルおよびパーソナル ジオデータベースまたはファイル ジオデータベースに保存されているフィーチャクラスです。 | Feature Layer |
out_table | 入力フィーチャで検出されたジオメトリの問題が含まれる出力テーブル。 | Table |
コードのサンプル
CheckGeometry (ジオメトリのチェック) の例 1 (Python ウィンドウ)
次の Python ウィンドウ スクリプトは、イミディエイト モードで CheckGeometry 関数を使用する方法を示しています。
import arcpy
arcpy.env.workspace = "c:/data/data.gdb"
arcpy.CheckGeometry_management(["contours", "roads", "vegetation"], "CheckGeom_Result")
CheckGeometry (ジオメトリのチェック) の例 2 (スタンドアロン スクリプト)
次のスタンドアロン スクリプトでは、ジオデータベース内のすべてのフィーチャクラスにループをかけて CheckGeometry (ジオメトリのチェック) 関数を使用します。
# BatchCheckGeometry.py
# Description:
# Loops through all the feature classes in a geodatabase, and generates
# a report of the problems encountered with feature geometry.
# Import modules
import arcpy
import os
# The geodatabase in which the feature classes will be checked
arcpy.env.workspace = "C:\\data\\St_Lucia.gdb"
out_table = "checkGeometryResult"
# A variable that will hold the list of all the feature classes
# inside the geodatabase
fc_list = []
# Identify all feature classes in the geodatabase
for path, dirnames, fcs in arcpy.da.Walk(arcpy.env.workspace,
datatype='FeatureClass'):
for fc in fcs:
fc_list.append(os.path.join(path, fc))
print("Running the check geometry tool on {} feature classes".format(
len(fc_list)))
arcpy.CheckGeometry_management(fc_list, out_table)
print("{} geometry problems found, see {} for details.".format(
arcpy.GetCount_management(out_table)[0], out_table))
環境
ライセンス情報
- Basic: はい
- Standard: はい
- Advanced: はい