FAQ
ArcPy (ArcMap): フィーチャの個数を取得する

ナレッジ番号:2834 | 登録日:2023/05/29 | 更新日:2024/03/27

概要

Python を用いてフィーチャの個数を取得する方法をご紹介します。

サンプル コード 1

指定ワークスペース内のフィーチャクラス名とフィーチャ数を出力します。

# coding:cp932
import arcpy
import os

db = r"C:\gis_work\Mesh.gdb"

arcpy.env.workspace = db
fcs=arcpy.ListFeatureClasses()

for fc in fcs:
    # fc_path = os.path.join(db, fc)
    fc_count = arcpy.GetCount_management(fc)
    print "{0} : {1} rows".format(fc.encode('cp932') , fc_count)

サンプル コード 2

Python を用いて指定したフィールドの値と個数を取得する方法です。

マップに追加している一番上位のレイヤを対象としています。

変数 field に代入する頻度を取得するフィールド名は適宜変更してください

# coding:cp932
#
#-------------------------------------------------------------------------------
# Name:          FieldFrequency
# Purpose:      指定したフィールドの値と頻度を取得します。
#
# Author:        ESRI Japan
#-------------------------------------------------------------------------------

# ArcPy サイト パッケージのインポート
import arcpy
mxd = arcpy.mapping.MapDocument("Current")
df = mxd.activeDataFrame
field = "KEN"

lyr = arcpy.mapping.ListLayers(mxd,"",df)[0]

cur = arcpy.SearchCursor(lyr,"","",field)
dic = {}
for row in cur:
    if row.getValue(field) in dic:
        dic[row.getValue(field)] += 1
    else:
        dic[row.getValue(field)] = 1

# ArcGIS 10.1 以降は、データ アクセス モジュールでも可能
#cur = arcpy.da.SearchCursor(lyr,field)
#dic = {}
#for row in cur:
#    if row[0] in dic:
#        dic[row[0]] += 1
#    else:
#        dic[row[0]] = 1

for val in dic:
    print val,dic[val]

こちらのサンプルはあくまでもコーディングの見本であり、実行時に発生したエラーの対処方法につきましては、サポート対象外とさせていただきます。また、操作方法やソースコードに関するご質問は別途有償の開発者サポート契約にてご対応させていただきます。なお、コードを実行して生じたいかなる損害についても弊社では責任を負いかねます。

メタデータ

種類

製品