フィールドの削除(Delete Field) (データの管理)
サマリ
テーブル、フィーチャクラス、フィーチャ レイヤ、またはラスタ データセットから 1 つ以上のフィールドを削除します。
使用法
-
このツールは、任意のテーブル(ArcSDE、ファイル、またはパーソナル ジオデータベース フィーチャクラス、カバレッジ、ラスタ データセット、シェープファイル)で使用できます。
-
フィールドは、VPF や CAD データセットなど、ArcGIS で非ネイティブの読み取り専用データ形式からは削除できません。
-
[削除するフィールド] パラメータの [フィールドの追加] ボタンは、ModelBuilder だけで使用されます。ModelBuilder では、先のツールが実行されていないか、出力データが存在しないために、[削除するフィールド] パラメータにフィールド名が表示されない場合があります。[フィールドの追加] ボタンを使用すると、[フィールドの削除] ダイアログ ボックスを完了してモデルの作成を続行できるように、必要なフィールドを追加することができます。
構文
DeleteField_management (in_table, drop_field)
パラメータ | 説明 | データ タイプ |
in_table |
削除するフィールドを含むテーブル。既存の入力テーブルが変更されます。 | Mosaic Layer; Raster Catalog Layer; Raster Layer; Table View |
drop_field [drop_field,...] | 入力テーブルから削除するフィールド。不要なフィールドのみを削除できます。 | Field |
コードのサンプル
DeleteField(フィールドの削除)の例(Python ウィンドウ)
次の Python ウィンドウ スクリプトは、イミディエイト モードで DeleteField(フィールドの削除)ツールを使用する方法を示しています。
import arcpy from arcpy import env env.workspace = "C:/data" arcpy.CopyFeatures_management("majorrds.shp", "C:/output/majorrds_copy.shp") arcpy.DeleteField_management("C:/output/majorrds_copy.shp", ["STREET_NAM", "LABEL", "CLASS"])
DeleteField(フィールドの削除)の例 2(スタンドアロン スクリプト)
次のスタンドアロン スクリプトは、DeleteField(フィールドの削除)ツールの使用方法を示しています。
# Name: DeleteField_Example2.py # Description: Delete several fields from a feature class # Author: ESRI # Import system modules import arcpy from arcpy import env # Set environment settings env.workspace = "C:/data" # Set local variables inFeatures = "accident.dbf" outFeatureClass = "C:/output/new_accident.dbf" dropFields = ["STREET_NAM", "LABEL", "CLASS"] # Execute CopyFeatures to make a new copy of the feature class # Use CopyRows if you have a table arcpy.CopyFeatures_management(inFeatures, outFeatureClass) # Execute DeleteField arcpy.DeleteField_management(outFeatureClass, dropFields)
DeleteField(フィールドの削除)の例 3(スタンドアロン スクリプト)
DeleteField(フィールドの削除)を使用して、フィーチャクラスまたはテーブルから不要なすべてのフィーチャを消去します。
# Name: DeleteFields_clearfields.py # Description: Delete unrequired fields from a feature class or tble. # Author: ESRI # Import system modules import arcpy from arcpy import env try: # Get user-supplied input and output arguments inTable = arcpy.GetParameterAsText(0) updatedTable = arcpy.GetParameterAsText(1) # Describe the input (need to test the dataset and data types) desc = arcpy.Describe(updatedTable) # Make a copy of the input (so we can mantain the original as is) if desc.datasetType == "FeatureClass": arcpy.CopyFeatures_management(inTable, updatedTable) else: arcpy.CopyRows_management(inTable, updatedTable) # Use ListFields to get a list of field objects fieldObjList = arcpy.ListFields(updatedTable) # Create an empty list that will be populated with field names fieldNameList = [] # For each field in the object list, add the field name to the # name list. If the field is required, exclude it, to prevent errors for field in fieldObjList: if not field.required: fieldNameList.append(field.name) # dBASE tables require a field other than an OID and Shape. If this is # the case, retain an extra field (the first one in the original list) if desc.dataType in ["ShapeFile", "DbaseTable"]: fieldNameList = fieldNameList[1:] # Execute DeleteField to delete all fields in the field list. arcpy.DeleteField_management(updatedTable, fieldNameList) except Exception, e: # If an error occurred, print line number and error message import traceback, sys tb = sys.exc_info()[2] print "Line %i" % tb.tb_lineno print e.message
関連項目
ライセンス情報
ArcView: はい
ArcEditor: はい
ArcInfo: はい
7/10/2012