numpy简单应用---等值线(多边形)平滑

2020-11-04 18:01:32 浏览数 (1)

风向条件下的气体扩散模型计算得到的数据,相当于等值线需要在地图上展示。如下图,可以看到,离中心最近的多边形毛糙锯齿严重。

使用滑动窗口平均方法可以平滑多边形,而且滑动窗口大小根据每一个多边形的点数量动态计算,效果如下。

对比如下图

代码如下:

代码语言:python代码运行次数:0复制
import numpy as np
import matplotlib.pyplot as plt

for i,vvL in enumerate(v):
	w=i 3
	ids=list(range(len(vvL)))
	vvA=np.array(vvL)
	vvA=np.vstack((vvA[-w:],vvA,vvA[:w]))
	vvA=list(map(lambda x:vvA[x:x 1 w w].mean(axis=0).tolist(),ids))
	vvA=np.array(vvA)
	vvA=np.vstack((vvA,vvA[0]))
	plt.plot(vvA[:,0],vvA[:,1])

0 人点赞