不确定如何正确表达此词。我有经度数据,例如,连续数据点有时会从-150变为150。我想用图形表示最小的差异。 因此,对于点x1 = -150和点x2 = 150,最小差实际上仅是60,因为到达-180后,它会翻转符号并计数到150(与从-150到0的另一种方法相反,然后从0到150,相差300)。 考虑到数据的最小值和最大值(例如,-140和160),我想创建一个图形,其中y轴会像这样(从上到下):
[160, 170, +-180, -170, -160, -150, -140]
但是,我希望y轴的值不小于-180。取而代之的是,我希望它返回正数,所以它更准确(因此,低于-180时,它将变为179、178等)。
答案 0 :(得分:1)
将角度数据转换为弧度后,可以使用numpy的内置unwrap
method。每次数据从-180到180时,它将自动添加2 * pi。
答案 1 :(得分:0)
def normalize(l):
l2 = [l[0]]
for i in range(1, len(l)):
diff = (l[i] - l2[i-1])%360
if diff != 0:
diff2 = diff - (diff/abs(diff))*360
if abs(diff2) < abs(diff):
diff = diff2
l2.append(l2[i-1] + diff)
return l2