【发布时间】:2013-03-06 20:22:21
【问题描述】:
所以这是我之前的问题的一个小后续问题:Generate coordinates inside Polygon 和我的回答 https://stackoverflow.com/a/15243767/1740928 事实上,我想将多边形数据合并到规则网格中。因此,我计算了多边形内的几个坐标,并将它们的纬度/经度组合转换为它们各自的网格列/行组合。
目前,行/列信息存储在一个numpy数组中,其行数对应于数据多边形的数量,其列数对应于多边形中的坐标。
整个代码不到一秒钟,但这段代码是目前的瓶颈(大约 7 秒):
for ii in np.arange(len(data)):
for cc in np.arange(data_lats.shape[1]):
final_grid[ row[ii,cc], col[ii,cc] ] += data[ii]
final_grid_counts[ row[ii,cc], col[ii,cc] ] += 1
数组“data”只包含每个多边形的数据值 (80000,)。数组“row”和“col”包含多边形中坐标的行号和列号(形状:(80000,16))。 如您所见,我正在汇总每个网格单元格中的所有数据值并计算匹配数。因此,我知道每个网格单元的平均值,以防不同的多边形相交。 不过,这两个 for 循环怎么会花费大约 7 秒呢?你能想出更快的方法吗?
【问题讨论】:
-
这个更适合codereview.stackexchange.com。