私はPythonを使用しています:
GPS ポイントの 2 つの配列があります - 経度と緯度 (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 より小さい場合は、最小距離を見つけて、経度、緯度を平均します。
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 フィルターがありますか?