ArcGIS for Desktop

  • ドキュメント
  • 価格
  • サポート

  • My Profile
  • ヘルプ
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

組織のマッピング プラットフォーム

ArcGIS for Desktop

完全なプロ仕様の GIS

ArcGIS for Server

エンタープライズ GIS

ArcGIS for Developers

位置情報利用アプリの開発ツール

ArcGIS Solutions

各種業界向けの無料のテンプレート マップおよびテンプレート アプリケーション

ArcGIS Marketplace

組織で使えるアプリとデータを取得

  • ドキュメント
  • 価格
  • サポート
Esri
  • サイン イン
user
  • マイ プロフィール
  • サイン アウト

ヘルプ

  • ホーム
  • はじめに
  • マップ
  • 解析
  • データ管理
  • ツール
  • その他...

ジオメトリの修正 (Repair Geometry)

  • サマリ
  • 使用法
  • 構文
  • コードのサンプル
  • 環境
  • ライセンス情報

サマリ

フィーチャクラスの各フィーチャにジオメトリの問題があるかどうかを検査します。ジオメトリの問題が検出されると、適切な修正が適用され、対象のフィーチャと発生した問題を特定する 1 行分の説明が出力されます。

有効な入力としては、シェープファイル、パーソナル ジオデータベース フィーチャクラス、ファイル ジオデータベース フィーチャクラスなどがあります。

ジオメトリの確認と修正に関する詳細

使用法

    注意:

    このツールを使用すると入力データが変更されます。詳しい説明および不適切なデータ変更を防ぐための方法については、「出力を伴わないツール」をご参照ください。

  • このツールは、[ジオメトリのチェック (Check Geometry)] ツールと同じロジックを使用して、フィーチャ ジオメトリに問題があるかどうかを評価します。

  • 以下に、ジオメトリの問題とそれに対処するためにツールで実行される修正を示します。

    • Null geometry - フィーチャクラスからレコードを削除します。NULL ジオメトリを含むレコードを保持するには、[NULL ジオメトリを含むフィーチャを削除] をオフにします (Python の delete_null パラメーターの KEEP_NULL オプションを使用します)。
    • Short segment - ジオメトリの短い線分を削除します。
    • Incorrect ring ordering - リングの順序が正しくなるように、ジオメトリを更新します。
    • Incorrect segment orientation - 線分の方向が正しくなるように、ジオメトリを更新します。
    • Self intersections - ポリゴンの重複を解消します。
    • Unclosed rings - リングの端点を接続して、閉じていないリングを閉じます。
    • Empty parts - 無効または空のパートを削除します。
    • Duplicate vertex - 頂点の 1 つを削除します。
    • Mismatched attributes - Z 座標または M 座標を一致するように更新します。
    • Discontinuous parts - 既存の不連続パートから複数のパートを作成します。
    • Empty Z values - Z 値を 0 に設定します。
    • Bad envelope - フィーチャのエンべロープを修正するように更新します。
  • 上記の修正を適用し終えると、結果のジオメトリがツールによって再評価されます。別の問題が検出された場合は、適切な修正が実行されます。たとえば、Incorrect ring ordering の問題のあるジオメトリの修正結果によって、Null geometry の問題のあるジオメトリが発生する場合もあります。

  • [ジオメトリの修正 (Repair Geometry)] には、bad dataset extent の問題を解決する修正はありません。この問題を解決するには、データセットで [空間インデックスの追加 (Add Spatial Index)] ツールを実行します。

  • SDE ジオデータベースではフィーチャをデータベースにアップロードする際に、フィーチャ ジオメトリが自動的に検査、修復されます。したがって、SDE フィーチャクラスに対して [ジオメトリのチェック (Check Geometry)] ツールと [ジオメトリの修正 (Repair Geometry)] ツールを使用する必要はありません。

構文

RepairGeometry_management (in_features, {delete_null})
パラメータ説明データ タイプ
in_features

修正対象のフィーチャクラスまたはレイヤー。入力として有効なフィーチャとしては、シェープファイル、パーソナル ジオデータベース フィーチャクラス、ファイル ジオデータベース フィーチャクラスなどがあります。

Feature Layer
delete_null
(オプション)

NULL ジオメトリに対して実行するアクションの内容を指定します。

  • DELETE_NULL — NULL ジオメトリが格納されているフィーチャを入力から削除します。これがデフォルトです。
  • KEEP_NULL — NULL ジオメトリが格納されているフィーチャを入力から削除しません。
Boolean

コードのサンプル

RepairGeometry (ジオメトリの修正) の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、イミディエイト モードで RepairGeometry (ジオメトリの修正) 関数を使用する方法を示しています。

import arcpy
arcpy.RepairGeometry_management ("c:/data/sketchy.shp")
RepairGeometry (ジオメトリの修正) の例 2 (スタンドアロン スクリプト)

次のスタンドアロン スクリプトは、RepairGeometry (ジオメトリの修正) 関数をスクリプティングに適用する例を示しています。

# Description: 
#   Goes through the table generated by the Check Geometry tool and does 
#   the following
#   1) backs-up all features which will be 'fixed' to a "_bad_geom" feature class
#   2) runs repairGeometry on all feature classes listed in the table 

import arcpy
import os
 
# Table that was produced by Check Geometry tool
table = r"c:\temp\data.gdb\cg_sample1"
 
# Create local variables
fcs = []
 
# Loop through the table and get the list of fcs
for row in arcpy.da.SearchCursor(table, ("CLASS")):
    # Get the class (feature class) from the cursor
    if not row[0] in fcs:
        fcs.append(row[0])
 
# Now loop through the fcs list, backup the bad geometries into fc + "_bad_geom"
# then repair the fc
print("> Processing {0} feature classes".format(len(fcs)))
for fc in fcs:
    print("Processing " + fc)
    lyr = 'temporary_layer'
    if arcpy.Exists(lyr):
        arcpy.Delete_management(lyr)
    
    tv = "cg_table_view"
    if arcpy.Exists(tv):
        arcpy.Delete_management(tv)

    arcpy.MakeTableView_management(table, tv, ("\"CLASS\" = '%s'" % fc))
    arcpy.MakeFeatureLayer_management(fc, lyr)
    arcpy.AddJoin_management(lyr, arcpy.Describe(lyr).OIDFieldName, tv, "FEATURE_ID")
    arcpy.CopyFeatures_management(lyr, fc + "_bad_geom")
    arcpy.RemoveJoin_management(lyr, os.path.basename(table))
    arcpy.RepairGeometry_management(lyr)

環境

  • 現在のワークスペース
  • 範囲

ライセンス情報

  • ArcGIS for Desktop Basic: ○
  • ArcGIS for Desktop Standard: ○
  • ArcGIS for Desktop Advanced: ○

関連トピック

  • フィーチャ ツールセットの概要
  • ジオメトリのチェックと修正
このトピックへのフィードバック

ArcGIS for Desktop

  • ホーム
  • ドキュメント
  • 価格
  • サポート

ArcGIS プラットフォーム

  • ArcGIS Online
  • ArcGIS for Desktop
  • ArcGIS for Server
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Esri について

  • 会社概要
  • 採用情報
  • スタッフ ブログ
  • ユーザ カンファレンス
  • デベロッパ サミット
Esri
© Copyright 2016 Environmental Systems Research Institute, Inc. | プライバシー | リーガル