Romain Commandé, Python et le logiciel libre

{ }

recherche

Aller au contenu | Aller au menu | Aller à la recherche

Conversion de coordonnées géographiques en Python

Au boulot, j'ai eu à convertir des coordonnées géographiques exprimées en Lambert III carto vers du WGS84 afin de les utiliser avec l'API Google Map.

J'ai eu du mal à trouver comment faire, les algos disponibles sont beaucoup trop complexes pour un non mathématicien comme moi.

Je suis finalement tombé sur une bibliothèque écrite en C, publié sous licence MIT, dédiée à cette tâche: Proj4. Par chance, il existe un binding en Python afin de l'exploiter: pyproj. C'est que du bonheur!

L'installation

C'est assez simple, cela fonctionne aussi bien sur Windows ou Linux à condition de disposer d'un compilateur. Comme toujours très souvent, l'installation de pyproj s'installe avec la commande easy_install:

easy_install pyproj

Un petit test dans le shell interactif pour voir si cela fonctionne correctement:

import pyproj

La conversion

Je ne vais pas détailler ici le fonctionnement du module parce ce n'est pas le but, et de toute façon je n'ai fait que l'effleurer très rapidement.

import pyproj
lat, lon = 656936.8, 3042238.0
wgs84 = pyproj.Proj('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')
lambert = pyproj.Proj('+proj=lcc +nadgrids=ntf_r93.gsb,null +towgs84=-168.0000,-60.0000,320.0000 +a=6378249.2000 +rf=293.4660210000000 +pm=2.337229167 +lat_0=44.100000000 +lon_0=0.000000000 +k_0=0.99987750 +lat_1=44.100000000 +x_0=600000.000 +y_0=3200000.000 +units=m +no_defs') 
x, y = pyproj.transform(lambert, wgs84,lat,lon)

Pour les paramètres à passer aux constructeurs, je suis basé sur ce qui a été fourni par l'IGN ici
Voila, en espérant que cela vous dépannera ^^

PyCON FR 2010 - Le programme est en ligne

Je me permet de faire suivre l'annonce officielle:

L'Association Francophone Python organise comme à son habitude son rendez-vous annuel autour de Python : Pycon FR.

Venez échanger sur Python avec des passionnés à la Cyberbase de la Villette à Paris les 28 et 29 août.

Des dizaines de conférences, courtes présentations et tutoriels seront égrainés tout au long du week-end, sur des sujets "tous publics" ou parfois un peu plus techniques.

L'intégralité de l'évènement est gratuit ! Vous pouvez vous inscrire sur le site et indiquer à quelles présentations vous comptez assister et imprimer votre planning personnalisé.

http://www.pycon.fr

Pour rappel, Python est un langage de programmation interprété placé sous licence libre proche de la BSD (la Python Software Foundation License). Il est populaire et fonctionne sur la plupart des systèmes d'exploitation. Disposant d'une syntaxe claire et simple, Python est un langage particulièrement bien adapté à l'apprentissage de la programmation tout en restant très puissant pour une utilisation avancée.

Navigateurs Web, qui croire?

Un petit billet rapide. Pour les besoins de mon entreprise, j'avais besoin de télécharger un certain nombre de navigateurs Web pour tester une application. J'ai été assez surpris de la page d'accueil du site officiel de chacun d'entre eux. Finalement, quand on est un simple utilisateur, on peut se retrouver un peu...perdu!

Safari 5:
Téléchargez Safari 5 Le navigateur le plus rapide au monde..

Opera:
Opera 10.60 Navigateur Web Le navigateur le plus rapide au monde

Firefox:
Faites la mise à jour vers un navigateur qui parle votre langue ! Firefox est le plus rapide, le plus sécurisé et le meilleur moyen de naviguer sur le Web.

Internet explorer:
IE 8, Internet Explorer 8 est plus sûr, plus rapide, plus simple que jamais, sécurité.

Étonnant, non?

Installation de Turbogears 2 sous Ubuntu

Un petit billet rapide pour présenter l'installation de Turbogears 2.0 sous Ubuntu, ayant eu quelques difficultés.

Pour ceux qui ne savent pas ce qu'est Turbogears, demandons à wikipedia:

TurboGears est un framework orienté Web/Ajax et MVC basé sur des templates , des plugins écrits en Python.

Très chère amie, merci pour cette intervention :-).
Tout d'abord, sur Ubuntu, il faut savoir que c'est la version 2.6 de Python qui est installée par défaut. A ce sujet, voici ce que dit la documentation de TG:

TurboGears works with any version of python between 2.4 and 2.6. The most widely deployed version of python at the moment of this writing is version 2.5. Both python 2.4 and python 2.6 require additional steps which will be covered in the appropriate sections. Python 3.0 is currently unsupported due to lack of support in many of our upstream packages.

Bon en gros, ça doit marcher sur Python 2.4, 2.5 et 2.6 mais, pour la version 2.6, il y a une étape en plus qui sera traitée dans un section adéquate. Malheureusement, je n'ai jamais trouvé cette section dans la documentation...
On va donc installer Turbogears avec la version 2.5 de Python et, oh miracle! Ça fonctionne!

On commence déjà par installer python 2.5 avec le gestionnaire de paquets de la distribution:

sudo aptitude install python2.5 python2.5-dev python-virtualenv



Ensuite, on va créer un environnement virtuel python pour notre installation de Turbogears, histoire d'éviter tout conflit avec les modules installés sur le système. Je l'appelerais, comme la documentation officielle, "tg2env":

virtualenv --no-site-packages -p python2.5 tg2env
cd tg2env
source bin/activate

Normalement, si tout c'est bien passé, "(tg2env)" devrait apparaitre devant chaque ligne du prompt pour informer qu'on est bien dans l'environnement virtuel.

Passons au chose sérieuses, installons Turbogears:

easy_install -i http://www.turbogears.org/2.0/downloads/current/index tg.devtools

L'installation est automatique et va prendre quelques 10ène de secondes. Quand le shell rend la main, c'est bon,Turbogears 2.0 est correctement installé.

On peut, tout de même, valider l'installation:

(tg2env)$ paster --help

doit renvoyer l'aide de la commande paster.

Usage: paster [paster_options] COMMAND [command_options]

Options:
  --version         show program's version number and exit
  --plugin=PLUGINS  Add a plugin to the list of commands (plugins are Egg
                    specs; will also require() the Egg)
  -h, --help        Show this help message

Commands:
  create       Create the file layout for a Python distribution
  help         Display help
  make-config  Install a package and create a fresh config file/directory
  points       Show information about entry points
  post         Run a request for the described application
  request      Run a request for the described application
  serve        Serve the described application
  setup-app    Setup an application, given a config file

TurboGears2:
  quickstart   Create a new TurboGears 2 project.
  tginfo       Show TurboGears 2 related projects and their versions

J'ai tester l'installation de Turbogears 2.1b1 avec Python 2.6. Visiblement aucun problème avec cette future version.

Maintenant que tout est en place: a vos marques, prêts,..codez!!!! (mais pas moi, faut d'abord que je bouffe la doc :-p)

Gaim-netsoul: le plugin Netsoul pour Pidgin



Netsoul est un protocole de communication réseau réservé aux étudiants du groupe Ionis.
Pidgin est un client de messagerie instantanée multiprotocole et multiplateforme. Une extension nommée Gaim-netsoul permet d'ajouter le support de Netsoul avec Pidgin.

L'installation avec un paquet

Nous n'aborderons ici que l'installation depuis un paquet pré-compilé car c'est la méthode la plus simple et que cela à parfaitement fonctionné pour moi.
en root:
wget http://tombcore.free.fr/netsoul_0.2.2-1_i386.deb && dpkg -i netsoul_0.2.2-1_i386.deb
Et voilà pour pouvez maintenant communiquer via le procole Netsoul depuis Pidgin.
Attention cela n'a pas l'air de fonctionner sur une Debian stable, très certainement parce que la version de Pidgin disponible sur cette distribution est trop ancienne. Pour un système 64 bits, privilégier une installation via les sources (documentation http://doc.ubuntu-fr.org/netsoul).

- page 1 de 6