【问题标题】:How to extract coordinates from contour lines in python and store them in new x and y variables?如何从python中的轮廓线中提取坐标并将它们存储在新的x和y变量中?
【发布时间】: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]) 或在打印之前手动格式化它。

标签: python extract contour


【解决方案1】:

如果path[i] 给出[[-0.0018 -0.02222131]] 那么

 x = path[i][0][0]
 y = path[i][0][1] 

【讨论】:

  • 我刚刚使用了你的建议,但我只得到了一行 x 和 y 值。我应该得到坐标列表。
  • 然后为数据和append()值创建列表。
猜你喜欢
  • 1970-01-01
  • 2016-02-09
  • 2022-11-13
  • 1970-01-01
  • 2013-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-08
相关资源
最近更新 更多