ArcGIS/Python:如何根据公共ID累加行

0 投票
1 回答
1780 浏览
提问于 2025-04-18 08:29

我想要一种方法,可以根据一个共同的标识符来对表格中的值进行求和(在下面的表格中,这个字段是'IWUP')。我的表格大概是这样的:

+--------------------+--------------------+--------------------+--------------------+
|IWUP                |Site                |Date                |PPG
+--------------------+--------------------+--------------------+--------------------+
|1985001             |1234                |01/01/2012          | .03                |
|1985001             |1235                |01/01/2012          | .23                |
|1985001             |1236                |01/01/2012          | .35                |
|1985001             |1234                |01/02/2012          | .03                |
|1985001             |1235                |01/02/2012          | .03                |
|1985001             |1236                |01/02/2012          | .03                |
|1985001             |1234                |01/03/2012          | .03                |
|1985001             |1235                |01/03/2012          | .03                |
|1985001             |1236                |01/03/2012          | .03                |

这是通过一些arcpy代码生成的临时表,代码如下:

arcpy.MakeTableView_management(PUMPAGE_PPG_DATA, PPG_DATA_View, "IWUP =1985001", "", "IWUP; SITE; DATE; PPG")

我想要对每个地点和每个月的PPG数据进行求和,得到类似这样的结果:

 +--------------------+--------------------+----------------------------+
 |IWUP                |Date                |PPG
 +--------------------+--------------------+----------------------------+
 |1985001             |01/02/2012          |SUM(Sites 1234, 1235, 1236) |          
 |1985001             |01/03/2012          |SUM(Sites 1234, 1235, 1236) |   
 |1985001             |01/04/2012          |SUM(Sites 1234, 1235, 1236) |    

然后我可以把这些结果绘制成图表。

x = []
y = []
fig = plt.figure()
table = QUERY
fields = ["Date", "PPG"]
with arcpy.da.SearchCursor(table, fields) as rows:
for row in rows:
        x.append(row[0])
        y.append(row[1])


plt.plot(x,y, marker='o', linestyle='-', color='b')
plt.show()

1 个回答

1

你应该使用 空间统计,把 PPG 作为统计字段,IWUP 和日期作为案例字段。具体的代码是:arcpy.Statistics_analysis(in_table, out_table, [["PPG", "SUM"]], ["IWUP", "Date"])

撰写回答