fr.ign.cogit.geoxygene.contrib.appariement.reseaux
Class Appariement

java.lang.Object
  extended by fr.ign.cogit.geoxygene.contrib.appariement.reseaux.Appariement

public abstract class Appariement
extends java.lang.Object

Cette classe supporte les methodes d'entrée pour executer l'appariement de réseaux inspiré de la méthode de [Devogele 97]. NB: Cette classe ne porte QUE les méthodes concernant l'appariement de cartes topo. Pour un appariement complet de jeux géo (création carte topo, appariement, export), voir la classe appariementIO.

Version:
1.0
Author:
Mustiere / IGN Laboratoire COGIT

Constructor Summary
Appariement()
           
 
Method Summary
static EnsembleDeLiens appariementArcs(CarteTopo reseau1, CarteTopo reseau2, EnsembleDeLiens liensPreAppAA, EnsembleDeLiens liensAppNoeuds, ParametresApp param)
          Appariement des arcs, s'appuyant sur un appariement préalable des noeuds, et sur un pré-appariement des arcs.
static EnsembleDeLiens appariementNoeuds(CarteTopo reseau1, CarteTopo reseau2, EnsembleDeLiens liensPreAppNN, EnsembleDeLiens liensPreAppAA, ParametresApp param)
          Appariement des Noeuds du reseau 1 avec les arcs et noeuds du reseau 1, comme proposé dans [Devogèle 97] + modif au filtrage Seb On crée les liens qui vont bien si le noeud est apparié.
static EnsembleDeLiens appariementReseaux(ReseauApp reseau1, ReseauApp reseau2, ParametresApp param)
          Appariement entre deux réseaux représentés par des carte topo.
static void decoupeNoeudsNonApparies(ReseauApp ref, ReseauApp comp, EnsembleDeLiens liens, ParametresApp param)
          Les noeuds de référence non appariés par les 'liens' sont projetés sur le réseau comp de manière à introduire un noeud dans le reséau Comp aux endroits qui pourraient correspondre à ces noeuds Ref non appariés.
static void decoupeNonApparies(ReseauApp ref, ReseauApp comp, EnsembleDeLiens liens, ParametresApp param)
          Découpe les arcs de référence non appariés par les 'liens' de manière à introduire un noeud dans le reséau Ref aux endroits où il s'éloigne du réseau Comp.
static void nettoyageLiens(ReseauApp res)
          Enlève tous les liens de la carte topo en entrée, et détruit les groupes
static void nettoyageLiens(ReseauApp reseau1, ReseauApp reseau2)
          Enlève tous les liens des cartes topo en entrée, et détruit les groupes
static void nettoyageLiens(ReseauApp reseau1, ReseauApp reseau2, EnsembleDeLiens liens)
          Enlève tous les liens "liens" des cartes topo en entrée, et vide les liens "liens"
static EnsembleDeLiens preAppariementArcArc(CarteTopo reseau1, CarteTopo reseau2, ParametresApp param)
          Préappariement entre arcs basé sur la "demi-distance de Hausdorff" (on ne prend en compte que la composante de réseau 2 vers réseau 1).
static EnsembleDeLiens preAppariementNoeudNoeud(CarteTopo reseau1, CarteTopo reseau2, ParametresApp param)
          Préappariement entre noeuds uniquement sur un critère de distance euclidienne, comme proposé dans [Devogèle 97].
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Appariement

public Appariement()
Method Detail

appariementReseaux

public static EnsembleDeLiens appariementReseaux(ReseauApp reseau1,
                                                 ReseauApp reseau2,
                                                 ParametresApp param)
Appariement entre deux réseaux représentés par des carte topo. Processus largement inspiré de celui défini dans la thèse de Thomas Devogèle (1997). Attention : les réseaux passés en entrée sont modifiés durant le traitement : des groupes y sont ajoutés.


nettoyageLiens

public static void nettoyageLiens(ReseauApp reseau1,
                                  ReseauApp reseau2,
                                  EnsembleDeLiens liens)
Enlève tous les liens "liens" des cartes topo en entrée, et vide les liens "liens"


nettoyageLiens

public static void nettoyageLiens(ReseauApp reseau1,
                                  ReseauApp reseau2)
Enlève tous les liens des cartes topo en entrée, et détruit les groupes


nettoyageLiens

public static void nettoyageLiens(ReseauApp res)
Enlève tous les liens de la carte topo en entrée, et détruit les groupes


preAppariementNoeudNoeud

public static EnsembleDeLiens preAppariementNoeudNoeud(CarteTopo reseau1,
                                                       CarteTopo reseau2,
                                                       ParametresApp param)
Préappariement entre noeuds uniquement sur un critère de distance euclidienne, comme proposé dans [Devogèle 97]. On crée des liens 1-n (n candidats noeuds de BDcomp pour chaque noeud de BDref). Comme suggéré dans [Devogèle 97], la taille de la recherche peut varier selon le type du noeud de la BD de reférence (rond point, changement d'attribut...). NB1: On préfère largement une taille de recherche sur-évaluée que sous-évaluée. NB2: On ne traite pas les noeuds isolés.


preAppariementArcArc

public static EnsembleDeLiens preAppariementArcArc(CarteTopo reseau1,
                                                   CarteTopo reseau2,
                                                   ParametresApp param)
Préappariement entre arcs basé sur la "demi-distance de Hausdorff" (on ne prend en compte que la composante de réseau 2 vers réseau 1). Pour chaque arc du reseau 2, on garde les arcs du reseau 1 qui sont à la fois 1/ à moins distanceMax de l'arc comp 2/ à moins de D + distanceMin de l'arc comp, D étant la distance entre l'arc ref le plus proche de arc comp NB: ce pré-appariement est différent de ce qui est proposé dans [Devogèle 97], pour minimiser la sensibilité aux seuils. On crée des liens 1-n: (1 arc de comp) - (n arcs de ref). Un arc de ref peut être alors concerné par plusieurs liens différents. Au total on a donc des relations n-m codées sous la forme de n relations 1-m


appariementNoeuds

public static EnsembleDeLiens appariementNoeuds(CarteTopo reseau1,
                                                CarteTopo reseau2,
                                                EnsembleDeLiens liensPreAppNN,
                                                EnsembleDeLiens liensPreAppAA,
                                                ParametresApp param)
Appariement des Noeuds du reseau 1 avec les arcs et noeuds du reseau 1, comme proposé dans [Devogèle 97] + modif au filtrage Seb On crée les liens qui vont bien si le noeud est apparié. Une évaluation de l'appariement est stockée sur les liens (note de 0, 0.5 ou 1) Une explication plus détaillée du résultat est stockée sur les noeuds ref et comp.


appariementArcs

public static EnsembleDeLiens appariementArcs(CarteTopo reseau1,
                                              CarteTopo reseau2,
                                              EnsembleDeLiens liensPreAppAA,
                                              EnsembleDeLiens liensAppNoeuds,
                                              ParametresApp param)
Appariement des arcs, s'appuyant sur un appariement préalable des noeuds, et sur un pré-appariement des arcs. S'appuie essentiellement sur la notion de 'plus proche chemin d'un arc', défini comme le chemin minimisant la surface entre le chemin et l'arc.


decoupeNoeudsNonApparies

public static void decoupeNoeudsNonApparies(ReseauApp ref,
                                            ReseauApp comp,
                                            EnsembleDeLiens liens,
                                            ParametresApp param)
Les noeuds de référence non appariés par les 'liens' sont projetés sur le réseau comp de manière à introduire un noeud dans le reséau Comp aux endroits qui pourraient correspondre à ces noeuds Ref non appariés.


decoupeNonApparies

public static void decoupeNonApparies(ReseauApp ref,
                                      ReseauApp comp,
                                      EnsembleDeLiens liens,
                                      ParametresApp param)
Découpe les arcs de référence non appariés par les 'liens' de manière à introduire un noeud dans le reséau Ref aux endroits où il s'éloigne du réseau Comp. Remarque: utilisé pour les GR par exemple pour traiter le cas des GR hors sentier.