サマリ
フィーチャクラスに存在するジオメトリの問題についてレポートを作成します。
有効な入力形式は、パーソナル ジオデータベースまたはファイル ジオデータベースに保存されているシェープファイル クラスおよびフィーチャクラスです。SDE ジオデータベースでは、アップロード時に各ジオメトリの有効性が自動的にチェックされるため、[ジオメトリのチェック (Check Geometry)] ツールと [ジオメトリの修正 (Repair Geometry)] ツールは SDE には使用しません。
ジオメトリの問題の詳細、ソフトウェアに与える影響、および可能性のある原因については、「ジオメトリのチェックと修正」をご参照ください。
使用法
[出力テーブル] には、発見されたジオメトリの問題ごとにレコードが格納されます。問題が見つからなかった場合は、テーブルは空になります。
[出力テーブル] には次のフィールドがあります。
- CLASS - 問題が見つかったフィーチャクラスの絶対パスおよび名前
- FEATURE_ID - ジオメトリの問題があるフィーチャのフィーチャ ID (FID) またはオブジェクト ID (OID)
- PROBLEM - 問題の簡単な説明
PROBLEM フィールドには、次のメッセージの 1 つが格納されます。
- Short segment : ジオメトリに関連付けられている空間参照のシステム単位で許可されている長さよりも短い線分があります。
- Null geometry : フィーチャにジオメトリがありません。または Shape フィールドにデータがありません。
- Incorrect ring ordering : ポリゴンのトポロジはシンプルですが、リングの向きが正しくない可能性があります (外部リングは時計回り、内部リングは反時計回り)。
- Incorrect segment orientation : 各セグメントの向きが一貫していません。線分 i の終点 は、線分 i+1 の始点と同じになる必要があります。
- Self intersections : ポリゴンは自己交差してはいけません。
- Unclosed rings : リング内の最後の線分の終点は、最初の線分の始点と同じになる必要があります。
- Empty parts : ジオメトリに複数のパートがあり、そのうちの 1 つが空です (ジオメトリがありません)。
- Duplicate vertex : ジオメトリに、座標が同一の 2 つ以上の頂点があります。
- 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_management (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
# The workspace in which the feature classes will be checked
arcpy.env.workspace = "C:/data/St_Lucia.gdb"
outTable = "checkGeometryResult"
# 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 {} feature classes".format(len(fcs)))
arcpy.CheckGeometry_management(fcs, outTable)
print("{} geometry problems found, see {} for details.".format(arcpy.GetCount_management(outTable)[0],
outTable))
環境
ライセンス情報
- ArcGIS for Desktop Basic: ○
- ArcGIS for Desktop Standard: ○
- ArcGIS for Desktop Advanced: ○