0
.shpファイル内の各ポリゴンの領域を取得し、それを属性テーブルの新しい列に追加しようとしています。以下はSHAPE @ AREAを使用して領域を検索しようとしています
import os
import arcpy
import math
folderpath = 'C:\Users\Michaelf\Desktop\GEOG M173'
arcpy.env.workspace = folderpath
arcpy.env.overwriteOutput = True
input_shp = folderpath + r'\lower48_county_2012_election.shp'
equal_shape = folderpath + r'\project_lower48.shp'
out_point = folderpath + r'\lower_48_centroid.shp'
out_shp = folderpath + r'\48_State_Centroids.shp'
totarea = []
arcpy.AddField_management(input_shp, "totarea")
geometryField = arcpy.Describe(totarea).shapeFieldName
cursor = arcpy.UpdateCursor(totarea)
for row in cursor:
AreaValue = row.getValue(geometryField).area
row.setValue("total_area",AreaValue)
cursor.updateRow(row)
del row, cursor
print AreaValue
は、私が受け取った1つの提案ですが、私はかなり理解していないこと。ここ
with arcpy.da.SearchCursor(input_shp, ("[email protected]", "[email protected]")) as cursor:
for row in cursor:
print("Feature {0} has an area of {1}".format(row[0], row[1]))
は私のエラーメッセージです:それは幾何学中心のデータベースがありますので
Traceback (most recent call last):
File "C:/Users/Michaelf/Desktop/GEOG M173/test2.py", line 16, in <module>
geometryField = arcpy.Describe(totarea).shapeFieldName
File "C:\Program Files (x86)\ArcGIS\Desktop10.3\ArcPy\arcpy\__init__.py", line 1246, in Describe
return gp.describe(value)
File "C:\Program Files (x86)\ArcGIS\Desktop10.3\ArcPy\arcpy\geoprocessing\_base.py", line 374, in describe
self._gp.Describe(*gp_fixargs(args, True)))
RuntimeError: Object: Describe input value is not valid type
あなたはアーク10.1以上を使用していますか? (DAカーソルは使いやすく、以前のバージョンでは利用できませんでした。) – Erica
Describe関数とUpdateCursor関数には空の配列(totarea)paramではなくinput_shpパラメータが必要です。計算された行の領域のみを必要とする場合は、totareaは必要ありません。これはそれぞれの領域を持つinput_shpに新しい列を追加するはずです。 Calcフィールドを使用してこれを一度に行うことができます。 – Tom