# Core concept

Diagramme de classe de Track

TODO

## Obs

Les coordonnées peuvent être sphériques ou cartésiennes

## Track

Les attributs speed et abs_curv ne sont pas calculés. Ils le seront automatiquement en appelant les fonctions: * getAbsCurv * getSpeed

Ces 2 attributs font partie des AF de Track. Il faut lancer le calcul si on veut les utiliser pour d’autres calculs d’AF.

Figure 1 : Comparaison de profils de vitesse dans les domaines spatial (en bleu) et temporel (en rouge). On voit bien que le profil spatial est systématiquement plus contracté aux zones de faibles vitesses, et à l’inverse plus dilaté à haute vitesse.

### Changement de projection

### Opérations mathématiques

De nouvelles surcharges d’opérateurs pour Track et TrackCollection:

- - concatène 2 traces/collections

- - calcule le profil de différence entre 2 traces

- - sur-échantillonne la trace/collection du facteur voulu

- ** rééchantillonne une trace / collection au nombre de points voulu

- / divise une trace/collection en portions à peu près égales

- // rééchantillonne une trace pour faire correspondre ses timestamps à une autre trace

- % supprime des points à intervalle régulier

- < (flèche vers la gauche) supprime les n derniers points d’une trace

- > (flèche vers la droite) supprime les n premiers points d’une trace

- [i] retourne ou modifie la ieme observation / trace

- len( ) nombre d’observations / traces

- le moins “unaire”, abs, “!=”, “>=” et “<=” restent disponibles si tu as des idées

### Tools to query observations in a track with SQL-like commands

Output depends on the SELECT clause:

If `SELECT *` then output is a copied track of the original track (with all its AF hopefully)

    trace = self.track.query("SELECT *")

## Track collection