#1 Wed 05 September 2007 15:08
- michael_douchin
- Participant occasionnel
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 11
Lisser des trajectoires issues de données GPS
Bonjour à tous,
J'ai une base de données geo PostGreSQL + PostGIS
un fichier texte qui contient entre autre une colonne latitude et une longitude, obtenu via un boitier electronique comprenant un gps.
Je l'importe dans postgis en 2 étapes : création d'un shape à partir d'un CSV puis import du shape dans postgis via l'outil ogr2ogr
Je me retrouve donc avec une table postgis (type de la géométrie = POINT) que je peux afficher dans openjump ou quantum gis.
Cette table a autant de lignes que de points représentés sur la carte : un point par donnee du GPS en fait.
Le rendu est plutôt bon, mais la précision GPS varie en fonction des conditions extérieures. Donc le rendu de ma trajectoire est parfois un peu "secoué".
Je cherche donc un moyen (libre de préférence, gratuit sinon) pour lisser cette trajectoire.
J'ai cherché sur google et sur des forums spécialisés avec "gps lisser trajectoire" et autres jolis mots-clés, sans succès.
Quelqu'un connait-il un algorythme, une fonction (postgis, grass, ), un plugin OpenJump ou autre pour faire cela ?
Merci d'avance
Hors ligne
#2 Wed 05 September 2007 15:20
Re: Lisser des trajectoires issues de données GPS
Bonjour,
Vous devriez d'abord créer votre polyligne avec vos points avec un script SQL, puis utiliser la fonction de simplification de postgis : simplify(geoemtrey, tolerance)
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#3 Wed 05 September 2007 15:58
- michael_douchin
- Participant occasionnel
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 11
Re: Lisser des trajectoires issues de données GPS
Merci de votre réponse.
Je n'ai pas trouvé dans l'aide postgis comment obtenir des lignes à partir de points via une requête sql.
Bien sûr, il faudrait pouvoir donner l'ordre pour relier les points (ça tombre bien, j'ai une colonne date-heure).
J'ai regardé à cette page, mais cela ne m'a pas aidé:
http://www.postgis.fr/node/223
Il y a des fonctions aussi ici, mais pas évidentes à comprendre.
JE vais essayer
Merci
Hors ligne
#4 Wed 05 September 2007 16:45
- Guillaume Sueur
- Participant assidu
- Lieu: Toulouse
- Date d'inscription: 23 Sep 2005
- Messages: 331
- Site web
Re: Lisser des trajectoires issues de données GPS
il faut écrire soit une procédure stockée qui, bouclant sur les
enregistements ponctuels créera un WKT de type ligne ; ou sinon un
script (php, python...) faisant la même chose
Hors ligne
#5 Wed 05 September 2007 16:55
- michael_douchin
- Participant occasionnel
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 11
Re: Lisser des trajectoires issues de données GPS
Bonjour,
J'ai trouvé la solution, c'est faisable entièrement via des requêtes POSGIS.
Dans mon cas, il suffit donc que je crée la vue suivante :
CREATE OR REPLACE VIEW v_ligne_03 AS
SELECT date, simplify(makeline(the_geom),5)
FROM v_03
GROUP BY date
ORDER BY date;
ALTER TABLE public.v_ligne_03 OWNER TO postgres;
INSERT INTO geometry_columns VALUES ( '', 'public', 'v_ligne_03', 'the_geom', 2, 27572, 'LINESTRING' );
Le makeline permet de faire une ligne à partir d'une sélection de points. Ici j'ai sélectionné mes points dans la table v_03, groupé par date.
De cette manière, j'ai bien une ligne par date qui trace la trajectoire de tous mes points, et je peux modifier le paramètre de simplification (ici 5) directement dans la requête.
Voilà
Merci encore
Dernière modification par michael_douchin (Wed 05 September 2007 16:58)
Hors ligne