| Création du fond de carte hexagonal |
| Pour le calcul et la représentation des données obtenues par estimation de densité, on s'appuie sur une grille hexagonale. La valeur est calculée par chaque point centre d'hexagone ; pour la représentation cartographique, on attribue à l'ensemble de l'hexagone la valeur obtenue pour son centre. Le premier ensemble de programme s'appelle polygon. Il permet de calculer les centres d'une grille hexagonale à partir d'un ensemble de polygones en entrée représentant les contours des zones, en vérifiant si le point est inclu ou non dans un des polygones. L'exemple permet ainsi de recréer le fond de carte hexagonal pour la France avec le pas de maillage que l'on désire. Il s'appuie sur le fond de carte GéoFla® Départements de l'IGN, téléchargeable soit en coordonnées Lambert 2, soit en coordonnées Lambert 93. Pour ma part, j'ai utilisé le premier. A pertir de l'archive ZIP, il faut ensuite décompresser le fichier DEPARTEMENT.MIF, le seul qui soit utile. Il faut ensuite le transformer pour être utilisable par le premier programme. C'est l'objet du script awk cree_pol présent dans l'archive polygon.tar.gz, qui crée un fichier france.pol, que l'on doit entrer plus tard comme argument du script poly.sh. Le programme polygon, écrit en C++ et dont les sources figurent dans l'archive, se compile simplement avec la commande make sous Linux. Le fichier Makefile peut être adapté au contexte local. Le programme a besoin de 7 arguments : le fichier en entree, le fichier en sortie, les coordonnées d'un rectangle dans lequel sont situés les points que l'on veut tester et le pas entre 2 points situés sur la même ligne (les mosaïques d'hexagones ne sont pas très simples pour les calculs...) polygon in out xmin xmax ymin
ymax pas Le programme ne calcule pas directement les coordonnées mais les index correspondants. Cela permet de calculer une fois pour toutes une grille très fine et d'identifier les points présents dans les grilles à pas plus grossier en regardant les restes des divisions par 2. De plus le fichier grille doit ensuite être trié selon X,Y pour être utilisable dans le programme densite. Un petit script bash permet d'automatiser les tâches : poly.sh. Il prend 6 paramètres en entrée : le nom choisi (exemple : france), auquel cas le fichier nom.pol doit exister. Il crée en sortie le fichier nom.hex. Exemple pour la France : ./poly.sh france 0 1200000 1600000 2700000 4000 fournit le centre de 13212 hexagones pour la France avec un pas de 4000 m, soit 4 km. |
| Géoréférencer les données à cartographier dans le même système de coordonnées que la grille |
| Avant d'effectuer le cacul dans l'étape suivante, il faut disposer des coordonnées auxquelles se rapportent les valeurs observées, dans le même système que celui qui a été choisi par la grille (Lambert2 ou Lambert93 par exemple). C'est un point délicat : une solution, s'il y a peu de communes, est de passer par le site de l'IGN. Une autre solution est d'utiliser des sources libres de droit comme http://www.galichon.org/codesgeo/ ou http://www.nima.mil/gns/html/cntry_files.html. On peut ensuite télécharger CIRCE2000 pour effectuer les conversions vers les coordonnées Lambert. Bref tout cela n'est pas très simple pour l'instant tant que l'IGN n'a pas libéré les droits sur le fichier de l'ensemble des coordonnées des communes. |
| Calcul de la densité biweight |
| Cette étape concerne le calcul proprement dit. Il s'agit de calculer pour chaque point de la grille hexagonale précédente la valeur obtenue à partir des données collectés sur un ensemble de points quelconque (par exemple l'ensemble des communes françaises). Le programme densite est disponible ici. densite arg1-arg5 [arg6] Dessin de arg1 = Identifiant_point(inutilisé) X Y var1
var2 ... varn |
| Représentation cartographique |
| Il faut maintenant représenter ces données. Si l'on dispose d'un logiciel type SIG, c'est la meilleure solution : on crée le fond de carte hexagonal dans le format adapté. On se retyrouve ensuite dans un cas classique : un fond de carte avec des identifiants et des valeurs disponibles pour chacun de ces identifiants. Pour ma part, ne disposant pas de logiciel de ce type, j'ai utilisé la librairie PDFLib qui permet de générer des fichiers PDF à la volée et qui est librement disponible pour des usages non commerciaux, ce qui est mon cas. Voici par exemple le programme C++ maphex2 qui m'a permis de constituer les cartes du premier tour (exemple : celle de Chirac). Cette solution peut être largement améliorée mais elle présente l'avantage de fonctionner... |
Dernière modification : 06/10/2002