非矩形区域绘制Python压力等高线时遇alphashape迭代错误求解
非矩形区域绘制压力等高线问题
我需要在非矩形形状上绘制压力等高线,此前已完成以下操作:
- 创建矩形网格,过滤掉远离实际采样点的网格点
- 将压力值插值到剩余的过滤后网格点上
现在想为这些过滤后的点生成等高线图,但contourf函数无法直接使用——过滤后的点及其值的结构不满足该函数的输入要求。
我尝试通过定义数据轮廓并裁剪的方式解决问题,但在使用alphashape库时遇到了错误:
TypeError: 'MultiPoint' object is not iterable.
完整报错栈信息:
alpha = 0.95 * alphashape.optimizealpha(points_filt_coord_pairs) File "C:\Python310\lib\site-packages\alphashape\optimizealpha.py", line 100, in optimizealpha if _testalpha(points, test_alpha): File "C:\Python310\lib\site-packages\alphashape\optimizealpha.py", line 41, in _testalpha return all([polygon.intersects(point) for point in points]) TypeError: 'MultiPoint' object is not iterable.
我尝试的代码如下:
points_filt_coord_pairs = [] for a,b in zip(xx_filtered, yy_filtered): points_filt_coord_pairs.append((a, b)) alpha = 0.95 * alphashape.optimizealpha(points_filt_coord_pairs) hull = alphashape.alphashape(points, alpha) hull_pts = hull.exterior.coords.xy
编辑:我已在下方发布了该问题的答案。
内容的提问来源于stack exchange,提问作者user2882635
相关产品推荐
相关产品推荐

