+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

如何使用Python根据所有位置数据确定机器向哪个方向移动?

发布于2020-08-04 18:31     阅读(689)     评论(0)     点赞(9)     收藏(2)


问题说明:

我有一个相当大的文件(最多一百万行),其中包含来自采矿机的数据。数据包括机器的X和Y坐标。机器只能向左(-X方向)或向右(+ X方向)进行挖掘,并且发生在“车道”上。它应该不能再次挖掘相同的区域,但是它可以随时更改Y坐标(即可以随时更改车道)并跳过某些区域。我想确定给定时间机器朝哪个方向移动。例如,我想查看机器向左或向右移动的位置。尽管这听起来很简单,但是我有点麻烦。

我的尝试:

我目前正在找到X坐标差异数组的100个值的总和(差异数组给出了机器移动的距离)。理想情况下,如果X坐标以100个点的间隔减小,则它应该向左移动,如果X坐标在该间隔中增大,则应该向右移动。因此,如果总和为负,它将100次附加到数组“ 0”。我选择100是因为考虑到大量样本,我认为这将是相当准确的。

# miner_x = array of the x-coordinates of the machine
# miner_x_diff = numpy.diff(miner_x)
# 0 = Negative X direction
# 1 = Positive X direction

diffSample= [sum(miner_x_diff[i:i+100]) for i in range(0, len(miner_x_diff), 100)]
Direction = np.array([])
for value in diffSample:
    if value < 0:
        for _ in itertools.repeat(None, 100):
           Direction = np.append(Direction,0)
    else:
        for _ in itertools.repeat(None, 100):
            Direction = np.append(Direction,1)
# correct size 
if Direction.size > miner_x.size:
    Direction = Direction[0:Direction.size-(Direction.size-miner_x.size)]

我遇到的问题是它从左向右改变方向,反之亦然,这主要发生在换道时。这是可以预期的,因为该区域周围的总和可能接近0。但是我不确定如何使用当前方法考虑这一变化。有没有更准确的方法来确定机器的方向?

下面显示了使用一个特定数据集绘制机器位置的示例(省略了代码,因为它是不必要的)。黄点是发生错误结果的位置。在此示例中,不应有任何黄点。在此示例中,我没有显示方向颜色,但是如果我说开始位置在右下角,您当然可以看到它。 机器位置

我将不胜感激任何帮助/建议/提示:)

编辑: 这是我想要的图片(注意绘画技巧)。请注意,我不想“看到”一条直线,只是想知道它在这些点上朝这些方向移动。绿色是起点。 理想的结果


解决方案


首先使用较小的示例窗口。100个采样点代表多少时间?间隔应该足够小,以便您可以简单地查看初始位置和最终位置之间的位移,并为该时间段指定方向。(您确实意识到,将连续的数字对的差相加等于从最后一个数字中减去第一个数字,对吗?)如果您在机器旋转的那一刻抓住机器,则可能会得到不确定的数据,但是前后的样本将显示直线向量。



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接: https://www.pythonheidong.com/blog/article/471382/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

9 0
收藏该文
已收藏

评论内容:(最多支持255个字符)