La spatialisation libre avance : tour d'horizon

Posté par (page perso) . Modéré par Nÿco.
0
21
oct.
2004
Communauté
La spatialisation de l'information est un thème à la mode depuis quelques années, et progressivement on voit poindre et évoluer pour nos OS libres des logiciels efficaces, puissants et crédibles répondant à toutes sortes de besoins. Je vous propose un petit tour d'horizon sur les dernières évolutions des outils principaux et pour commencer deux petits mots pour ceux qui ne seraient pas familiers avec ces outils :

* Outils SIG
Pour manipuler à proprement parler des données géographiques, avec des applications aussi variées que : réaliser des modèles de terrain en 3D (traitement d'images satellites + import de points GPS par exemple), évaluer le plus court chemin en terme de contraintes entre deux points, etc.

* Les bases de données spatialisées
Historiquement, le stockage de l'information géographique se fait dans des fichiers texte contenant les coordonnées des objets géographiques de type vecteur, indépendamment des données attributaires. Les bases de données spatialisées apportent de nouveaux types, de nouvelles fonctions (conversion de système de coordonnées, etc) permettant de stocker de l'information géographique et d'y accéder de manière pertinente avec tous les atouts des SGBD modernes (intégrité, backup, multi-utilisateur, etc) comme décrit par SQL99.

* Les serveurs cartographiques
Les serveurs cartographiques permettent de rendre accessible un système d'information géographique via un simple navigateur pour effectuer essentiellement de la consultation. Un exemple valant mieux qu'un long discours ... Pensez à Mappy aussi.

* Les bibliothèques pour le développement
Que ce soit pour faire du traitement d'image, des conversions de système de coordonnées, accéder à un GPS ou encore autre chose, ce ne sont pas les bibliothèques qui manquent !

Les exemples présentés ci après illustrent bien que le modèle «logiciel libre» permet à l'ensemble des outils d'étendre leur portée en s'appuyant sur les fonctionnalités des autres outils (utilisation de bibliothèques libres, connectivité avec les bases de données libres, etc). L'ensemble forme désormais un tout assez cohérent et offre une alternative pour le moins intéressante aux solutions commerciales. Faisons le tour des dernières évolutions autour des logiciels phares du secteur :

Outils SIG
* GRASS, 5.7, CVS
Le logiciel SIG, particulièrement performant pour les traitements raster (sur les images). La version de développement (la dernière version stable, 5.3, date de Mai 2004) propose de nombreuses améliorations, dont en particulier le support des standards de facto (SHP), de PostGIS pour le stockage des données géographiques, grâce à la bibliothèque OGR, un système d'indexation spatiale amélioré, une meilleure connectivité avec les principales bases libres + ODBC, support des requêtes SQL pour les objets géographiques, une optimisation de certains algorithmes (recherche chemin le plus court, etc), ...
GRASS peut utiliser de nombreuses bibliothèques pour étendre ses fonctionnalités, par exemple, R-GRASS, permettant de rajouter à GRASS des fonctionnalités statistiques (ou à R une dimensions spatiale, à choisir).

* QGIS, 0.5, 2 Octobre 2004
Cet outil développé en Qt présente une interface sympathique permettant désormais d'accéder à des bases de données PostGIS, d'accéder aux projets GRASS, de digitaliser, de modifier ces fichiers, etc. PostGIS permet également d'éditer les fichiers SHP ce qui en fait un bon outil de visionnage pour les fichiers de type SHP. Son interface est également plus attractive que celle de GRASS pour les non-initiés. À découvrir !

* les autres sont à découvrir sur freegis.org


Bases de données spatialisées
* PostgreSQL/PostGIS 0.9, 9 Septembre 2004
PostGIS est une extension spatiale à postgreSQL apportant le support pour les objets géographiques ainsi que nombre de fonctions associées (intersection(obj1, obj2) retourne par exemple l'objet de l'intersection de deux objets géographiques). PostGIS sera soumis à l'épreuve de la conformité aux spécifications OpenGIS pour la version 1.0. Ça approche !

* MySQL, 4.1
MySQL a introduit dans sa dernière version le support pour les objets géographiques. Ces fonctionnalités ne sont pour le moment disponibles que pour les tables de type MyISAM. De nombreuses fonctions sont déjà disponibles et ne demande qu'à être testées. Les fonctionnalités manquantes par rapport aux spécifications OpenGIS devraient être apportées pour la 4.2 en même temps que l'amélioration de celles existantes.


Serveurs cartographiques
* MapServer, 4.2.5, 18 Octobre 2004
MapServer est en fait un environnement de développement pour construire des applications cartographiques sur internet. L'API C est rendu accessible à des langages de scripts tels que perl, python, php et bientôt Java avec leurs bindings MapScript. Les CGI tout prêt MapServer permettent de faire déjà tout plein de choses à partir de fichiers SHP, de PostGIS et plein d'autres via OGR.
MapServer est un outil très utilisé dans le monde professionnel.

* GeoServer, 1.2.3, 14 Octobre 2004
GeoServer est une implémentation J2EE des spécifications OpenGIS pour les serveurs d'application cartographiques. À terme, il devrait permettre à l'utilisateur d'accéder au système d'information géographique, en mode consultation / modification. GeoServer est un projet assez récent mais fortement soutenu et assez actif.


Bibliothèques de développement
* PROJ4, 4 Octobre 2004, C
PROJ4 permet de réaliser des changements de système de coordonnées / projection, chose très fréquemment requise lorsque l'on travaille avec des images satellites, par exemple.

* OGR, C++
OGR permet d'accéder à divers formats de fichiers de données vectorielles, standards divers : SHP, MIF/MID, GML, etc. Un must-have pour toute application orientée cartographie.

* Les autres ...
Voir freegis.com, il y a certainement de quoi satisfaire tout le monde.

Aller plus loin

  • # spatialisation de l'information ou

    Posté par . Évalué à 7.

    représentation de l'information spatiale.
    En effet, dans mon boulot, cela fait une différence directe. D'un côté, on retrouve des trucs genre Kartoo et de l'autre les projets mentionnés ci-dessus.

    Sinon, très chouette article. Bon tour d'horizon ! J'avais eu l'occasion de réfléchir un peu sur ce qui existait dans le domaine du libre, et j'avais été surpris du nombre de projets existants.
  • # QGIS

    Posté par (page perso) . Évalué à 3.

    J'ai testé QGIS il y a quelques temps, et c'est vrai que l'interface est très agréable à utiliser. Je n'utilise pas trop ce genre de logiciel de visualisation mais il ressemble beaucoup à ArcView (logiciel propriétaire et très cher), après à savoir si il propose exactement les mêmes fonctionnalités ...
    De plus QGIS peut importer des données au format ArcInfo (ou un truc du genre).

    QGIS propose également une API qui permet d'accéder à diverses sources de données en utilisant plusieurs librairies (postGIS, grass ...). Cette API a l'air bien documentée :-).

    En tout cas, merci pour cette revue des outils existant aujourd'hui. Comme tu dis, c'est à la mode, je rajouterai que ça coûte très cher. Les solutions libres sont donc à étudier, ais la migration aussi doit coûter cher, sujet très délicat ...
    à suivre
  • # base de donnée géographique

    Posté par . Évalué à 4.

    A ce propos, savez vous ou l'on peut trouver des bases de données géographiques ??
    J'en ai trouvé sur le site de l'IGN http://www.ign.fr/affiche_rubrique.asp?rbr_id=753&lng_id=FR(...) mais c'est quand même assez cher : 20 000 Euros pour géoroute (base de donnée routiere)...
  • # Lien sur le site de GRASS

    Posté par . Évalué à 2.

    Attention, le lien sur la page de Grass n'est certainement pas le meilleur en France : Grass est à présent essentiellement pris en charge par les européens : voir http://grass.itc.it(...)
  • # cartographie en php pour projet Wifi

    Posté par . Évalué à 3.

    bonjour,

    je suis en train de réaliser un système intéractif de cartographie tres simplifiée pour présenter des vue de réseau wifi.

    j'ai besoin de :

    1 - représenter une vue 2D, meme approximative ; j'ai deja réalisé quelque classes qui me permettent d'afficher (sans projection) les coordonnées géographiques sur une image générée a la volée.

    2- j'ai aussi créé la notion de lien.

    3 - la carte est en phase de devenir intéractive. Les objets affichés vont bientot réagir aux intéractions.

    j'aurais besoin d'informations complémentaires :

    1 - un algorythme permettant de trouver les nodes les plus proches. Je pensais creer un arbre de type b-tree. La fonction de comparaison pour insersion dans les noeuds et sous-noeuds étant tout simplement la distance.

    Il suffit de comparer recursivement la distance, a gauche, a droite et de rentrer judicieusement dnas les sous-arbres.

    Par la suite, pour détecter les voisin, il suffit de parcourir l'arbre.

    J'espere que cet algo tient la route, je n'en n'ai pas la certitude, mais c'est intéressant de voir ... Je suppose qu'il doit exister d'autres methodes avec un decoupage par zone.


    2 - j'aimerai bien evaluer les distances en kilometre et metres, meme sans une grande précision. Pour cela j'ai trouvé quelque sites :

    http://www.lion1906.com/Pages/Orthodromie.html(...)
    http://www.ign.fr/telechargement/education/fiches/geodesie/coordonn(...)

    étant donné que les distances utilisées dans le cadre de ce projet sont tres courtes, la courbure de la terre ne devrait pas avoir une importance significative. Aussi je pensais calculer la distance en applicant le théoreme de Pythagore, connaissance le rayon moyen de la terre, ca devrait suffir. Mais les resultats obtenus ne sont pas statisfaisants : trop grande erreur par rapport a des valeurs de reference trouvées sur le net.

    Dans mon algo, j'ai défini une classe Terre avec un rayon de 6366 (lion1906). J'en déduit les dimensions d'un degré d'arc (a l'equateur) : 111km. Il est plus petit sous nos latitudes : reduit de cos(latitude). A partir de ces données, une simple triangulation avec un triangle rectangle (donc Pythagore) devrait suffir, hors, j'obtient des décalage de 25 à 50%.

    ou est mon errreur ?


    voici mes 2 methodes php :

    function distance(){
    # théoreme de pythagore devrait suffire sur des petites distances !
    $width = ($this->p1->x - $this->p2->x);
    $height = ($this->p1->y - $this->p2->y);
    # manque cos(latitude)
    return ( $this->terre->degre * sqrt(pow($width, 2) + pow($height,2)));
    }

    # http://www.lion1906.com/Pages/OrthodromieCap.html(...)
    function distance_orthodromique(){

    $LatA = deg2rad($this->p1->latitude());
    $LatB = deg2rad($this->p2->latitude());

    $LongA = deg2rad($this->p1->longitude());
    $LongB = deg2rad($this->p2->longitude());

    return 6366 * acos(cos($LatA) * cos($LatB) * cos($LongB-$LongA)+sin($LatA) * sin($LatB));

    }
    • [^] # Re: cartographie en php pour projet Wifi

      Posté par . Évalué à 3.

      j'ai corrigé la premiere methode, et maintenant, c'est OK, j'ai 2 formules completement différentes qui donnent sensiblement le meme résultat a moins de 1cm d'ecart, via 2 formules différentes.


      $cugnaux = new Point(1.367, 43.533);
      $seysses = new Point(1.317, 43.500);

      $seg = new WifiLink($cugnaux, $seysses);
      echo 'distance = ' . $seg->distance() . "\n";
      echo 'distance ortho = ' . $seg->distance_orthodromique() . "\n";


      resultat :

      distance = 5.4473367205683
      distance ortho = 5.4473365237337


      la methode (pour ceux que ca intéresse) :

      function distance(){
      $cos = cos(deg2rad(($this->p1->y+$this->p2->y)/2));
      $width = ($this->p1->x - $this->p2->x) * $this->terre->degre * $cos;
      $height = ($this->p1->y - $this->p2->y) * $this->terre->degre;
      return ( sqrt(pow($width, 2) + pow($height,2)));
      }

      pour info, $this->terre->degre = rayon_terre(km) * 2PI / 360 =~ 111 km
    • [^] # Re: cartographie en php pour projet Wifi

      Posté par (page perso) . Évalué à 1.

      Et ce logiciel est logiciel libre? Si oui, donne nous une url!!
  • # Puisque personne n'en parle...

    Posté par (page perso) . Évalué à 4.

    Je trouve un peu étonnant que le nouveau sous-projet de Debian soit passé sous silence dans cette news. Bon c'est vrai que c'est encore très récent mais il me parait important de le mentionner malgré tout:

    Introducing the DebianGis subproject:

    http://lists.debian.org/debian-devel-announce/2004/10/msg00007.html(...)
  • # Et Jump!

    Posté par . Évalué à 3.

    Beau tour d'horizon des différents logiciels :-)
    Manque simplement un petit projet qui grandi bien : Jump dont une traduction (ainsi que d'autres outils carto) sont disponibles sur la page du projet SIGLE : http://www.projet-sigle.org(...)
    Il manque cependant pas mal de plugins d'ouverture de fichier, mais je pense que ca sera vite corrigé.
    Perso je trouve QGIS beaucoup plus ergonomique et facile que GRASS, il ne manque plus que le support du format ECW sous linux pour être parfait (dans quelques mois disent les devs d'ERMapper).
  • # un point c'est tout !

    Posté par . Évalué à 1.

    on m'a transmis ce site qui est fort intéressant ...

    http://www.upct.org/(...)

    (merci Julien)
  • # GIS Knoppix

    Posté par . Évalué à 2.

    Pour tester la plupart des logiciels cités sans se farcir leur installation (parfois pénible ...) on peut ausi se graver une GIS Knoppix

    http://www.sourcepole.com/sources/software/gis-knoppix/(...)

    Pas très récente mais fonctionnelle !
  • # GDAL / OGR

    Posté par . Évalué à 3.

    Il faut noter que la librairie OGR (accés (read/write) générique et performant à différents (une quinzaine) formats vectoriels géospatials) est inclue dans la librairie GDAL http://www.remotesensing.org/gdal/(...) qui elle permet un accés (read/write) générique et performant à un cinquantaine de formats d'image, aussi bien orientés géospatial (GeoTIFF, JPEG2000, MrSID, Erdas, ECW, ...) que autre (BMP, JPEG, GIF, ....).

    L'architecture de GDAL/OGR permet de rajouter facilement de nouveaux "drivers" (chargeables dynamiquement) pour supporter de nouveau formats.

    La librairie permet de lire la donnée et les informations de géolocalisation de l'image de manière générique.

    Tout ça est écrit en C++ avec aussi une interface C et Python.

    Les binaires sur la page web embarquent des utilitaires pour passer d'un format à un autre, reprojeter les images/vecteurs dans d'autres projections cartographiques, ... et propose aussi un viewer simple, intuitif et optimisé : OpenEV http://www.remotesensing.org/gdal/download.html(...)

    Bien sûr tout ça est "under an X/MIT style Open Source license".


    Julien

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.