我使用 Python:
我有 2 个 GPS 点阵列 - 经度和纬度(超过 500 000 个点)。
我有 1 个日期时间数组。
lon = numpy.array(lon)
lat = numpy.array(lat)
dt = numpy.array(dt)
我有位置错误(GPS 传感器错误)。例如 15 米。
GPS_sensor_error = 0.015
我需要从轨道上没有星号的坐标中排除 GPS_sensor_error。
(我不画一个坐标相同的点)
我怎么能做到?
现在:
我计算点之间的距离。
我找到最小距离,如果它小于 GPS_sensor_error,那么我平均 lon,lat。
重复 1。
重复2。
重复直到所有距离都不再是 GPS_sensor_error
更新:
lon = numpy.array()
lat = numpy.array()
flag = True
while flag:
lon1 = lon[:-1]
lon2 = lon[1:]
lat1 = lat[:-1]
lat2 = lat[1:]
'''distance'''
x = (lon2 - lon1)
y = (lat2 - lat1)
d = numpy.sqrt(x * x + y * y)
min = numpy.min(d)
if min < GPS_sensor_error:
j = numpy.where(d == min)[0][0]
lon[j] = (lon[j] + lon[j + 1]) / 2
lat[j] = (lat[j] + lat[j + 1]) / 2
lon = numpy.delete(lon, j + 1)
lat = numpy.delete(lat, j + 1)
else:
flag = False
绕过所有点在纯python上工作很长时间...... 请提示,如何使用scipy,numpy实现它?
谢谢
Ps可能已经在scipy,numpy中有一个GPS过滤器?