FAQ
ArcPy (ArcMap): 入力データの数値フィールドで集計し、出力データに付与したい (フィールド マッピング)

ナレッジ番号:3151 | 登録日:2023/05/29 | 更新日:2023/06/21

概要

空間結合やマージなど一部のツールで、出力フィーチャのフィールドについて詳細設定をするためのオプションを利用することができます。その設定は、フィールド マッピングオブジェクトの操作で行います。ここでは、出力テーブルに対して、入力テーブルがもつ数値フィールドの値の平均を格納したフィールドを追加します。

Python ソース コード

下図のような都道府県の年別人口の値から平均を算出し、[平均人口] というフィールドにその値を格納します。

Image

Image

# coding:cp932
import arcpy

# ワークスペースの設定
arcpy.env.workspace = r"c:/Temp/a.gdb"

in_file = "都道府県別人口推移"
out_file = "都道府県別人口統計"

# フィールドマップおよびフィールドマッピング オブジェクトの作成
fm1 = arcpy.FieldMap()
fm2 = arcpy.FieldMap()
fms = arcpy.FieldMappings()

#都道府県名のフィールドを追加
fm1.addInputField(in_file, "都道府県名")

# 先頭に「人口」と付くフィールドを入力フィールドとして追加
for field in arcpy.ListFields(in_file, "人口*"):
    fm2.addInputField(in_file, field.name)

#追加するフィールドのマージ ルールを指定
fm2.mergeRule = "Mean"

# 追加するフィールドの各種プロパティを設定
f_name = fm2.outputField
f_name.name = "平均人口"
f_name.aliasName = "平均人口"
fm2.outputField = f_name

# フィールドマップをフィールド マッピング オブジェクトに追加
fms.addFieldMap(fm1)
fms.addFieldMap(fm2)

# [テーブル→テーブル] を実行
arcpy.TableToTable_conversion(in_file,arcpy.env.workspace,out_file,where_clause="",field_mapping=fms, config_keyword="")

メタデータ

種類

製品