【发布时间】:2019-09-09 10:55:05
【问题描述】:
我在从等高线图中提取坐标时遇到问题。我首先在 python 中绘制了等高线。然后我想只提取沿轮廓线的 x,y 坐标并将它们存储在 x 和 y 变量中,以便在下一个操作中使用它们。我在论坛中看到了一个提取轮廓坐标的代码,但这并没有给我点存储在单独的 x 和 y 变量中,以便我可以在下一个操作中使用它们。
如果这个操作有一个简单的python代码,请帮助我。我不是python专家。
我尝试了来自论坛的链接,但它没有给我像 x y 这样的坐标,它带有括号 x 和 y。我无法在此处编写代码,因为它在此编辑窗口中显示了一些错误。
def get_contour_verts(cp):
contours=[]
for cc in cp.collections:
paths=[]
for pp in cc.get_paths():
xy=[]
for vv in pp.iter_segments():
xy.append(vv[0])
paths.append(np.vstack(xy))
contours.append(paths)
return contours
contours=get_contour_verts(cp)
for ip,path in enumerate(contours):
for i,item in enumerate(path):
print(path[i])
使用此代码,我得到包含 x 和 y 的输出路径 [i] 一起放在括号内。我想将输出 x 和 y 坐标保存为数组。 输出数据看起来像,
[[-0.0018 -0.02222131]]
但我希望它们为 x=-0.0018 y= -0.02222131 谢谢,
我刚试过 对于 ip,枚举中的路径(轮廓): 对于我,枚举(路径)中的项目: 打印(项目[i][0],项目[i][1])
但它没有给我 x 和 y 值的列表,而是显示错误“IndexError: index 1 is out of bounds for axis 0 with size 1”
【问题讨论】:
-
你使用什么模块?你用什么代码?你说的轮廓是什么?论坛的链接是什么意思?放代码时遇到什么错误?
-
提出有问题的代码,否则它将被否决并关闭。
-
您好,我现在添加了用于从轮廓中提取点的代码。请看看您是否可以帮助我将输出点作为数组获取以在下一个处理中使用它们。
-
首先显示您的数据。我不知道你有什么,我无法在没有数据的情况下测试代码。第二个“括号”表示数组,因此您可能已经将坐标作为数组。我不知道你在哪里以及如何尝试保存它,但很可能你以错误的方式保存它,它会将数组转换为带括号的字符串,但你应该分别编写
x和y或手动格式化数据。 -
您是否尝试过简单地通过
path[i][0]和path[i][0]分别获取它 -print(path[i][0], path[i][0])或print(item[0], item[1])或在打印之前手动格式化它。