[technique] YunoSeeMe: Une application pour faire des profiles d'altitudes entre deux points

Riri B richardbaret at gmail.com
Ven 3 Juil 07:57:10 CEST 2015


Le mec il développe une ptite appli super utile en 300 lignes, OKLM...
Ca part bien et c'est super comme idée :)
Richard
Le 2 juil. 2015 23:54, "Florian Morgan" <florian.morgan at gmail.com> a écrit :

> Bonjour à tous,
>
> J'ai commencé à développé une application pour pouvoir faire des profiles
> d'altitudes (un peu comme heywhatsthat).
> L'idée de base est de prendre deux coordonnées GPS et de générer quelque
> chose qui ressemble à ça :
>
> ​Cela représente un profile (vue en coupe) de l'altitude (niveau au sol)
> entre les deux points, avec le trait droit représentant la "ligne de vison"
> entre ces points.
>
> Actuellement ce service existe et est rendu par
> http://www.heywhatsthat.com/. Le "problème" avec heywhatsthat est qu'on a
> pas accès aux données brutes (liste des altitudes).
> C'est pour ça que je souhaite développer un programme pour avoir les
> données brutes et éventuellement "ajouter" de l'intelligence dessus.
>
> L'objectif par rapport à tetaneutral est de pouvoir entrer une coordonnées
> GPS avec altitude (par exemple la position de ma maison avec la hauteur au
> niveau de mon toit) et de calculer tous les profiles possibles entre cette
> position et les antennes déjà existantes du réseau.
> Ensuite à partir du profile on pourra attribuer une note qui donnera la
> "qualité" possible de la liaison. On pourrait ainsi plus facilement choisir
> une antenne ou une autre pour faire relai.
>
> Actuellement j'ai codé une petite appli en python (environ 200-300 lignes
> de code, ce qui est peu).
> Le résultat est :
>
> $ ./profile.py 43.561725 1.444796 43.671348 1.225619
> $HOME/Downloads/EUD_CP-DEMS_3500025000-AA.tif
> elevation profile between coordinates 43.561725, 1.444796 and 43.671348,
> 1.225619 is
> [{'lat': 43.561725, 'distance': 0.0, 'elevation': 226.31865, 'long':
> 1.444796, 'overhead': 0.0}, {'lat': 43.56193910742188, 'distance':
> 41.88788248425599, 'elevation': 224.31079, 'long': 1.444367919921875,
> 'overhead': 0.0703612706860941}, ...]
>
> J'ai tronqué le tableau résultant qui fait ~500 points.
>
> Le tableau renvoyé correspond à la liste des
>  - latitudes
>  - distances depuis le point de départ
>  - altitudes
>  - longitude
>  - correction par rapport à la courbure de la terre
> entre les deux points entrés en paramètre.
> Tracé en graph à partir de Numbers (OS X) ça donne :
>
> ​Le trait bleu correspond aux altitudes "brutes", le trait vert représente
> la courbure de la terre entre les deux points et enfin le trait jaune
> correspond à la somme des deux.
>
> Pour info, les points correspondent à Pech David (départ) et le Ratelier
> (arrivée), un restaurant du côté de la forêt de Bouconne.
>
> Pour y arriver, je suis parti d'une carte DEM publique (le fichier
> *EUD_CP-DEMS_3500025000-AA.tif* passé en ligne de commande) provenant de
> l'agence européene de l'environnement résultant du programme Copernic (
> http://www.eea.europa.eu/data-and-maps/data/eu-dem). La carte représente
> une grosse partie de la France (un peu tronqué au nord) et a une résolution
> de 25m au niveau de la surface.
> Cette carte est censée représenter le niveau du sol au point demandé en
> mètres.
> Pour info, la carte utilisé par heywhatsthat est la carte américaine SRTM qui
> a une définition de 90m environ (donc beaucoup moins précise).
> Ces cartes sont souvent les cartes utilisées par Google Maps et autres
> pour fournir le même genre de service. L'idée dans mon cas est d'avoir une
> appli offline sans aucune dépendance.
>
> Pour cet exemple, le programme python met ~ 900ms pour générer la liste
> des points sur mon ordi portable, ce que est largement acceptable pour moi.
> ça serait probablement plus lent sur un Raspberry Pi ... Des optimisations
> sont surement possibles ...
>
> Actuellement il manque :
>  - la ligne de vue entre les deux points à partir d'altitudes spécifiées
> aux points de départ et d'arrivée.
>  - le "score" : Cette partie là est plus compliquée, ça consisterait à
> donner une note au profile pour qualifier la "qualité" de la ligne de vue.
>
> Le code est dispo sur le dépot GitHub suivant :
> https://github.com/superbob/YunoSeeMe
>
> Il y a un README avec des infos sur comment exécuter le programme.
>
> Qu'en pensez-vous ?
>
>
> _______________________________________________
> technique mailing list
> technique at lists.tetaneutral.net
> http://lists.tetaneutral.net/listinfo/technique
>
>
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://lists.tetaneutral.net/pipermail/technique/attachments/20150703/94208729/attachment.htm>
-------------- section suivante --------------
Une pièce jointe autre que texte a été nettoyée...
Nom: profile-curvature2.png
Type: image/png
Taille: 77239 octets
Desc: non disponible
URL: <http://lists.tetaneutral.net/pipermail/technique/attachments/20150703/94208729/attachment.png>
-------------- section suivante --------------
Une pièce jointe autre que texte a été nettoyée...
Nom: profile-0904.png
Type: image/png
Taille: 1904 octets
Desc: non disponible
URL: <http://lists.tetaneutral.net/pipermail/technique/attachments/20150703/94208729/attachment-0001.png>


Plus d'informations sur la liste de diffusion technique