Arcpy-如何将数据列表添加到边界上

问题描述 投票:0回答:1

我创建了对年度数据进行平均并创建列表列表的代码,如下所示: [['1988', 0.09680851063829785, 1.2444680851063827], ['1989', 0.2046808510638298, 1.0231914893617025]]

我想将此数据附加到我拥有的边界,但是当我这样做时,它只添加第一行数据。 如何将此数据附加到更多行?

# Add necessary fields if they don't already exist
if not arcpy.ListFields(outlayer, "YEAR"):
    arcpy.AddField_management(outlayer, "YEAR", "SHORT")
if not arcpy.ListFields(outlayer, "NITRATE"):
    arcpy.AddField_management(outlayer, "NITRATE", "FLOAT")
if not arcpy.ListFields(outlayer, "AMMONIA"):
    arcpy.AddField_management(outlayer, "AMMONIA", "FLOAT")

print(f"Processing boundary data for '{outlayer}'...")

# Update the feature layer with data from ndata
with arcpy.da.UpdateCursor(outlayer, ['YEAR', 'NITRATE', 'AMMONIA']) as cursor:
    for row, yearly_avg in zip(cursor, ndata):
        year_value = yearly_avg[0]
        no3_value = yearly_avg[1]
        nh4_value = yearly_avg[2]
        
        # Update cursor row with new values
        row[0] = year_value
        row[1] = no3_value
        row[2] = nh4_value
        
        # Update the row in the feature layer
        cursor.updateRow(row)
python arcgis arcpy
1个回答
0
投票

arcpy.da.UpdateCursor
仅更新现有记录(请参阅doc),使用
arcpy.da.InsertCursor
追加新记录(请参阅doc)。

无法确定所提供的信息(正如furas评论的那样,使用一些打印语句进行更多调试会很有帮助),但是您尝试附加到的要素类(

outLayer
)可能只有要更新一条记录/行。

© www.soinside.com 2019 - 2024. All rights reserved.