Puoi scremarli in maniera brutale appunto prendendo un punto ogni tot; in Python sarebbe ad esempio:
codice:
# prende il 20% dei punti
percentualePunti = 0.2
numeroPunti=len(listaPunti)*percentualePunti
for i in range(0, numeroPunti):
    # lo "step" tra i punti è l'inverso della percentuale
    listaOutput.append(listaPunti[int(i/percentualePunti)])
O anche, potresti invece sostituire ogni punto con una media (eventualmente pesata) sulla "finestra di punti" che va a sostituire (un po' il concetto dello smoothing).

Ma secondo me questi metodi non sono una buona idea, se hai una rotta è facile che ti serva poco dettaglio in punti dove è sostanzialmente dritta, ma tanti dove gira molto. Personalmente cercherei calibrare l'accuratezza in maniera diversa in zone diverse, ad esempio andando a vedere - ad esempio - la norma del laplaciano discretizzato calcolato sulla successione dei tuoi punti, che dovrebbe darti la velocità di cambiamento della direzione della tua curva sul piano. Ottenuta la successione dei valori della norma del laplaciano nei vari punti ci applicherei uno smooth e userei i valori così ricavati per determinare l'importanza relativa dei vari punti, in base a cui andrei a scegliere in quali zone campionare maggiormente per il mio "percorso semplificato".