indexation et visualisation des données de champs continus ...theses.insa-lyon.fr › publication...
TRANSCRIPT
N° ordre 2001ISAL0078 Année 2001
Thèse Spécialité
Informatique Présentée devant
L’Institut National des Sciences Appliquées de Lyon Pour obtenir
Le grade de docteur Formation doctorale : Documents multimedia, Images et Systèmes d'Information
Communicants (DISIC)
École doctorale : Ecole Doctorale Informatique et Information pour la Société (EDIIS)
Par Myoung-Ah KANG
Attaché Temporaire à l’Enseignement et à la Recherche
Indexation et Visualisation des données de Champs Continus dans les SIG
(Systèmes d'Information Géographique)
Jury MM.
P. BERGOUGNOUX Professeur à l'Université Toulouse III Directeur R. LAURINI Professeur à l'Université Lyon 1
K.-J. LI Professeur à l'Université Nationale de Pusan (Corée du Sud) Co-directeur S. SERVIGNE Maître de Conférence à l'INSA de Lyon
Rapporteur S. SPACCAPIETRA Professeur à l'Ecole Polytechnique Fédérale de Lausanne (Suisse)
Rapporteur G. ZURFLUH Professeur à l'Université Toulouse I
Cette thèse a été préparée au Laboratoire d'Ingénierie des Systèmes d'Information (LISI) de l'INSA de Lyon.
2
Sommaire INTRODUCTION......................................................................... 8
PARTIE 1 Indexation par valeurs des données de type champs
continus dans les SIG ................................................................. 16
1. Définition et Représentation d’un champ continu ...........................18
1.1 Définition des champs continus .................................................................... 18 1.2 Modèles existants ......................................................................................... 20
1.2.1 Les grilles régulières de cellules ............................................................. 21 1.2.2 Les tessellations polygonales.................................................................. 22 1.2.3 Les réseaux de triangles irréguliers (TIN)............................................... 23 1.2.4 Les grilles de cellules carrées pour DEM (Digital Elevation Model)....... 23 1.2.5 Les courbes de niveau ............................................................................ 24
1.3 Modèle générique de champ continu............................................................. 25 1.4 Conlusion ..................................................................................................... 27
2. Problématiques dans l'interrogation de BD de champs continus....28
2.1 Requêtes conventionnelles............................................................................ 29 2.2 Requêtes par valeurs..................................................................................... 30
2.2.1 Comment déterminer l'intervalle des valeurs d'une cellule ? ................... 32 2.2.2 Pourquoi ne pas indexer simplement des points-échantillons par un index comme le B-tree ?............................................................................................... 35
2.3 Motivation des travaux ................................................................................. 37 2.4 Remarque et hypothèse ................................................................................. 37 2.5 Limitation de la méthode d’indexation.......................................................... 42 2.6 Requête par valeurs et modèle des courbes de niveau ................................... 43 2.7 Conclusion ................................................................................................... 44
3. Etat de l’art ........................................................................................46
3.1 Indexation par valeurs .................................................................................. 47 3.1.1 Extraction des iso-surfaces ..................................................................... 47
3
3.1.2 Application de Navigation de terrains aidée par l’IP-Index..................... 47 3.1.2.1 IP-index ............................................................................................ 48 3.1.2.2 Comment utiliser l’IP-index dans cette application ? ......................... 49 3.1.2.3 Conclusion ........................................................................................ 49
3.2 Méthode d'indexation des données intervalles............................................... 50 3.2.1 Méthodes d'indexation basées sur les B-trees.......................................... 51
3.2.1.1 Time-Index........................................................................................ 52 3.2.1.2 Interval B-tree ................................................................................... 54 3.2.1.3 MAP21.............................................................................................. 55
3.2.2 Méthodes d'indexation basées sur les R-trees.......................................... 56 3.2.2.1 R-tree ................................................................................................ 57 3.2.2.2 1-D R-tree ......................................................................................... 58 3.2.2.3 2-D R-tree avec transformation ......................................................... 59
3.2.3 Conclusion ............................................................................................. 62 3.3 Conclusion ................................................................................................... 64
4. Indexation par valeurs.......................................................................66
4.1 Méthode simple : Méthode I-All ................................................................... 66 4.1.1 Structure des données ............................................................................. 67 4.1.2 Procédure de recherche........................................................................... 67 4.1.3 Problèmes............................................................................................... 68
4.2 Sous-champs ................................................................................................ 69 4.2.1 Définition d’un sous-champ.................................................................... 70 4.2.2 Stratégies de traitement des requêtes basées sur l’approche des sous-champs ............................................................................................................... 72 4.2.3 Exemple d’application de la stratégie ..................................................... 73 4.2.4 Intérêts de l'exploitation des sous-champs .............................................. 74 4.2.5 Implémentation des sous-champs............................................................ 75
4.3 Méthode Interval Quadtree ........................................................................... 76 4.3.1 Définition ............................................................................................... 76
4.3.1.1 La façon de découper l'espace ........................................................... 76 4.3.1.2 La similarité des valeurs d’un sous-champ ........................................ 76
4.3.2 Exemple de génération des sous-champs par Interval Quadtree .............. 77 4.3.3 Deux implémentations de l’Interval Quadtree ......................................... 79
4.3.3.1 Interval Quadtree implémenté par Pointeur (Pointer-based Interval Quadtree)......................................................................................................... 79
4.3.3.1.1 Structure de données ................................................................... 79 4.3.3.1.2 Procédure de recherche................................................................ 80
4.3.3.2 Interval Quadtree Linéaire (Linear Interval Quadtree) ...................... 82 4.3.3.2.1 Structure de données ................................................................... 82 4.3.3.2.2 Procédure de recherche................................................................ 83
4.3.4 Implémentation, Performance et Remarques ........................................... 84 4.3.5 Conclusion et Critique de l'Interval Quadtree ......................................... 86
4.4 Méthode I-Hilbert ......................................................................................... 88 4.4.1 Définition ............................................................................................... 88
4
4.4.1.1 La façon de découper l'espace ........................................................... 88 4.4.1.2 La similarité des valeurs d’un sous-champ ........................................ 91
4.4.2 Exemples de génération des sous-champs par I-Hilbert .......................... 95 4.4.3 Implémentation....................................................................................... 99
4.4.3.1 Structure de données ......................................................................... 99 4.4.3.2 Procédure de recherche.....................................................................100
4.5 Conclusion ..................................................................................................101
5. Implémentation et performance...................................................... 104
5.1 Données réelles ...........................................................................................105 5.1.1 Données de terrain.................................................................................105 5.1.2 Données sonores urbaines......................................................................107
5.2 Données simulées par une méthode fractale .................................................108 5.2.1 Génération des données de terrain fractal ..............................................108
5.2.1.1 Midpoint Displacement à 1 dimension..............................................109 5.2.1.2 Génération des données fractales par Diamond-Square.....................111
5.2.2 Expérimentations sur des données de terrains fractals............................114 5.3 Données simulées monotones ......................................................................118
5.3.1 Données monotones dans l'espace d'origine ...........................................119 5.3.2 Données monotones dans l'espace linéarisé ...........................................120
5.4 Conclusion ..................................................................................................125
6. Traitement des requêtes par valeurs .............................................. 126
6.1 Transformation des valeurs d'une requête ....................................................128 6.2 Procédure de traitement des requêtes par valeurs .........................................132 6.3 Conclusion ..................................................................................................133
7. Applications ..................................................................................... 134
7.1 Système d'Information Sonore Urbain : MITHRA .......................................134 7.1.1 Fonctionnalités ......................................................................................134
7.1.1.1 Formules de calcul du niveau sonore ................................................135 7.1.1.2 Carte horizontale ..............................................................................135
7.1.2 Problématiques ......................................................................................137 7.1.3 Comment utiliser la méthode I-Hilbert dans MITHRA ? ........................137 7.1.4 Performances.........................................................................................138 7.1.5 Perspectives...........................................................................................138
7.2 Visualisation des données spatio-temporelles de l'environnement ................139 7.2.1 Modèle de volume .................................................................................139 7.2.2 Visualisation par la méthode d'indexation I-Hilbert ...............................141
7.3 Application de Navigation sur des terrains...................................................143
5
7.4 Conclusion ..................................................................................................143
PARTIE 2 Visualisation dynamique de la temporalité :
Application à un SIG sonore urbain......................................... 144
8. Problématique de la visualisation des données sonores urbaines..146
8.1 Carte de son et visualisation de la continuité spatiale : Cartes statiques .......147 8.2 Visualisation de la temporalité : Cartes animées ..........................................148 8.3 Problématiques et caractéristiques de l'animation des données sonores ........150 8.4 Conclusion ..................................................................................................152
9. Etat de l'art sur les cartes animées ................................................. 154
9.1 Méthodes de génération et d'affichage d'une animation................................154 9.2 Animation temporelle et non temporelle ......................................................155
9.2.1 Animation temporelle ............................................................................155 9.2.2 Animation non temporelle .....................................................................156
9.3 Variables graphiques d'animation et variables dynamiques ..........................157 9.4 Exemples d'applications des cartes animées .................................................160 9.5 Animation cartographie interactive ..............................................................161 9.6 Cartes animées sur Internet..........................................................................164 9.7 Conclusion ..................................................................................................165
10. Visualisation dynamique de la temporalité dans un SIG sonore
urbain ....................................................................................................... 166
10.1 Objectif d'un SIG pour environnement sonore urbain ...............................167 10.2 Les données sonores temporelles utilisées ................................................168
10.2.1 Représentation de la temporalité de chaque type de données ..............168 10.2.2 Mode de visualisation de chaque type de données ..............................172
10.3 Carte animée interactive ...........................................................................173 10.3.1 IHM et paramètres d’animation ..........................................................174 10.3.2 Contrôleur interactif d’animation .......................................................176 10.3.3 Exemple .............................................................................................178
6
10.4 Conclusion ...............................................................................................182
CONCLUSION et PERSPECTIVES......................................... 184
REFERENCES BIBLIOGRAPHIQUES .................................. 196
8
INTRODUCTION
10
Le concept de « champ », « field » en anglais, est parfaitement adapté à la représentation des
phénomènes naturels et environnementaux continus. Les domaines des sciences de la terre sont
particulièrement concernés comme l’océanographie, la météorologie, la géologie ou encore la
physique atmosphérique.
Un champ continu repose notamment sur des points-échantillons et la subdivision de l'espace en
cellules. Il peut donc être représenté par un ensemble de cellules contenant des points-
échantillons mesurés explicitement, et par des méthodes d'interpolation afin d'estimer des va-
leurs implicites sur les points non échantillonnés. La forme des cellules dépend des modèles
spécifiques utilisés dans une application, comme par exemple des triangles dans le cas de repré-
sentation de l'espace par un réseau de triangles irréguliers (TIN : Triangulated Irregular Net-
works).
L’interrogation et l’analyse de données champs amènent à considérer deux classes de
requêtes. Les requêtes basées sur :
Q1) Une condition spatio-temporelle : e.g. " Quelle est la valeur du champ en un point
donné (x, y, z, t) ? "
Q2) Une condition d'une valeur de champ : e.g. " Quelles sont les régions qui présentent
des précipitations supérieures à 2000 mm par an ? "
La première classe de requêtes (dites requêtes conventionnelles) est classique dans une
base de données (BD) d’un champ continu. Elle consiste à trouver la valeur d'un champ en un
point donné. A l’inverse, pour la seconde classe (dites requêtes par valeurs), il s’agit de déter-
miner des régions où le champ a une valeur donnée. Des requêtes complexes peuvent être com-
posées par la combinaison de ces requêtes de base.
Bien que ces deux classes de requêtes impliquent des données de type champs, leurs
méthodes de traitement sont différentes. Contrairement aux requêtes conventionnelles, pouvant
être supportées par une méthode d'indexation spatiale existante, le deuxième type de requêtes
est plus difficile à traiter. En effet, à notre connaissance il n'existe aucune méthode d'indexation
dans ce but, et cela conduit à tester toutes les cellules, c'est-à-dire à effectuer un balayage sé-
quentiel de toute la base de données. Cette procédure induit des coûts élevés à cause du volume
important des données champs.
11
Pourtant, dans de nombreuse applications, les requêtes par valeurs sont importantes.
Citons deux exemples de requêtes par valeurs dans deux applications différentes :
- Dans les bases de données environnementales de l'océan stockant des données de
champs continus de la température de l'océan et de la salinité, supposons que les
saumons se trouvent dans les conditions d'une température et d'une salinité de la
mer. Les requêtes par valeurs que l'on peut poser pour pêcher des saumons pour-
raient être par exemple "Quelle sont les parties de la mer où la température est
comprise entre 20° et 25° et la salinité est comprise entre 12% et 15% ?"
- Dans un système de bruit urbain, une requête typique pour connaître des régions
bruyante pourrait être "Quelle sont les régions où le niveau sonore est plus élevé que
85dB ? ", où dB est un unité de niveau sonore.
- etc..
Malgré l'importance du besoin de méthodes efficaces de traitement des requêtes par va-
leurs, aucune attention particulière ne leur a été portée, et aucun travail significatif n'a été effec-
tué sur ces méthodes d'indexation. Dans notre travail, nous voulons donc proposer de nouvelles
méthodes d'indexation par valeurs qui améliorent le traitement des requêtes par valeurs dans les
grandes bases de données de champs continus. Ceci constitue la motivation et la contribution
pratique de cette thèse.
Nous proposons un nouveau concept de sous-champ et montrons comment exploiter ce
concept pour indexer des données sur les valeurs dans les bases de données champs continus.
Nous avons alors divisé un espace en plusieurs sous-champs pour que toutes les valeurs explici-
tes et implicites à l'intérieur d'un sous-champ soient similaires les unes aux autres sur le do-
maine de valeur. Les intervalles des sous-champs peuvent alors être indexés par une méthode
d'indexation des données intervalles pour le traitement des requêtes par valeurs. Cette méthode
permet de filtrer les zones afin d'éliminer celles qui n’ont aucune possibilité d’être résultat de la
requête.
Nous présentons deux méthodes d'implémentation des sous-champs. La première mé-
thode nommée "Interval Quadtree" est basée sur une division de l'espace en Quadtree pour
l’indexation par valeur de champ. Quant à la seconde, la méthode "I-Hilbert", elle linéarise les
cellules selon l'ordre des clés de Hilbert des centres de cellules, et forme des sous-champs en
12
regroupant séquentiellement des cellules linéarisées sur la base d'un modèle de coût d'accès à
un sous-champ proposé dans cette thèse. L'algorithme pour générer (former) des sous-champs
est proposé afin de minimiser la possibilité d'accès au disque dur en utilisant ce modèle de coût.
Nous analysons la performance des méthodes proposées. Les expérimentations avec
des données réelles de terrain et des données simulées par une méthode fractale montrent que
les méthodes d'indexation proposées réduisent notablement le temps de traitements des requêtes
par valeurs dans une grande base de données du champ.
Par ailleurs, nous nous intéressons à une autre problématique, à savoir la visualisation
de la temporalité des données de type champs continus.
En général, les données de type champs continus sont spatio-temporelles. Cela veut
dire que les phénomènes naturels évoluent en fonction de l'espace et en fonction du temps. Afin
de mieux faire comprendre et analyser un champ continu du point de vue temporel, il est impor-
tant de représenter son évolution selon le temps. Du point de vue thématique applicative, nous
avons travaillé sur une application d'un Système d'Information Géographique (SIG) sonore ur-
bain qui permet de visualiser l’environnement sonore d’un quartier.
Malgré la caractéristique spatio-temporelle de l’environnement sonore, seules exis-
taient jusqu'à maintenant des cartes statiques. Si les outils existants sont certes performants pour
certains aspects, ils se limitent à la production de cartes statiques qui n’attirent pas l’attention
sur des problèmes posés par la caractéristique spatio-temporelle du phénomène bruit. Cela nous
a conduit à adopter la technique de l'animation pour représenter l'évolution temporelle du son
car elle est reconnue comme la méthode la plus efficace pour ce type de problématique.
La prise en compte des problématiques et caractéristiques spécifiques de l'animation
des donnés sonores permet de mieux représenter la temporalité des données sonores et analyser
des données par l'animation. Par exemple, l'intégration de données multimédias pour l'anima-
tion. D'ailleurs, les utilisateurs peuvent avoir besoin d’accéder aux données multimédias asso-
ciées à un instant durant l’animation pour explorer des données pertinentes. Autrement dit, un
utilisateur peut stopper l’animation à un moment quand il aperçoit une scène intéressante. Et il
peut écouter la séquence du son ou bien consulter des documents liés pour avoir plus
d’information.
13
La nécessité d'utiliser une carte animée comme un outil d'exploration des données
conduit à spécifier une carte animée interactive permettant aux utilisateurs de pouvoir contrôler
non seulement l'affichage de l'animation mais aussi la génération de l'animation. Afin de réali-
ser une telle carte animée interactive, nous proposons quelques paramètres contrôlant (spéci-
fiant) la génération des scènes de l'animation. Les utilisateurs peuvent générer plusieurs types
d'animation en variant les valeurs de ces paramètres. Nous proposons aussi un contrôleur inte-
ractif afin de contrôler l'affichage de l'animation. Ce contrôleur possède plus de fonctionnalités
que celles de type magnétoscope (qui existent déjà) afin de mieux analyser et d'explorer des
données temporelles. Ces spécifications d’une cartographie animée interactive ont été validées
dans un prototype développé intégrant un SIG.
ORGANISATION DU MEMOIRE
Après cette introduction, ce mémoire est organisé en deux parties. La première couvre les sept
chapitres traitant le problème de l'indexation par valeurs pour l'accélération du traitement des
requêtes par valeurs. La seconde partie est consacrée à la visualisation de la temporalité no-
tamment dans le cadre d'une application d'un SIG sonore urbain. Nous donnons un aperçu de
chaque chapitre selon chaque partie.
PARTIE 1
Indexation par valeurs des données de type champs continus dans les SIG
Le chapitre 1 présente la définition des champs continus. Le besoin d'une méthode d'estimation
est justifié. Ainsi, un modèle générique des champs continus est proposé en se basant sur des
modèles existants.
Dans le chapitre 2, nous présentons les procédures de traitement des requêtes conventionnelles
et des requêtes par valeurs. La problématique pour le traitement des requêtes par valeurs est ex-
posée, laquelle nous conduit à proposer une nouvelle méthode d'indexation par valeurs.
Le chapitre 3 présente un état de l'art des méthodes d'indexation par valeurs et des méthodes
d'indexation des données intervalles.
14
Nous proposons, dans le chapitre 4, de nouvelles méthodes d'indexation par valeurs reposant sur
le nouveau concept "sous-champ" proposé ainsi dans ce mèmoire. Nous définissons deux
aspects, "la façon de découper l'esapce" et "la similarité des valeurs d'un sous-champ", à
prendre en compte pour implémenter des sous-champs. Deux nouvelles méthodes (les méthodes
"Interval Quadtree" et "I-Hilbert") sont proposées selon la définition de ces deux aspects. En
effet, la méthode "I-Hilbert" est issue de la réflection sur l'amélioration de la méthode "Interval
Quadtree".
Le chapitre 5 présente des tests effectués pour mesurer les performances des méthodes propo-
sées. Nous utilisons non seulement des données réelles mais aussi des données simulées par une
méthode fractale pour tester divers types de données.
Dans le chapitre 6, nous expliquons les traitements des requêtes par valeurs selon différents
opérateurs.
Les applications pouvant bénéficier de notre méthode d'indexation sont illustrées dans le chapi-
tre 7.
PARTIE 2
Visualisation dynamique de la temporalité : Application à un SIG sonore urbain
Le chapitre 8 est une présentation de la problématique actuelle pour la visualisation des données
sonores, laquelle ne représente pas la temporalité malgré les caractéristiques de l'évolution tem-
porelles du son. Cela nous conduit à adopter la technique de l'animation. Les problématiques et
les caractéristiques (à prendre en compte pour l'animation des données sonores) sont ainsi évo-
quées.
Le chapitre 9 est un état de l'art des cartes animées existantes. Une carte animée interactive peut
être utilisée comme un outil d'exploration des données au delà d'un simple affichage rapide
d'une sequénce de scènes.
Nous présentons, dans le chapitre 10, un prototype de l'application d'un SIG sonore urbain per-
mettant de réaliser une carte animée interactive des données sonores (en prenant compte des
problématiques et des caractéristiques évoquées dans le chapitre 8). Nous proposons de nou-
15
veaux paramètres et fonctionnalités pour mieux contrôler la génération et l'affichage de l'anima-
tion.
CONCLUSION et PERSPECTIVES
Enfin, après avoir présenté notre travail suivant deux parties séparées couvrant dix chapitres,
nous concluons ce mémoire en résumant chaque chapitre. Les contributions de ce travail sont
mises en évidence, et les perspectives sont présentées pour les deux parties de ce mémoire.
16
PARTIE 1 Indexation par valeurs des données de type champs continus dans les SIG
Chapitre 1. Définition et Représentation d’un champ continu
18
1. Définition et Représentation d’un champ continu
Dans ce chapitre, nous présentons la définition des champs continus et quelques exemples
d’applications des champs continus dans les SIG. Nous justifions aussi le besoin d’une méthode
d’estimation en nous basant, par exemple, sur un champ continu pour la température.
Dans un deuxième temps, nous présentons donc les méthodes de représentation des
champs continus les plus couramment utilisées dans les SIG [KEMP 93] [PARIENTE 94]
[GOODCHILD 97]. Par la suite, nous définirons un modèle générique de champs continus.
1.1 Définition des champs continus
Le domaine des champs continus a un grand intérêt pour les SIG afin de décrire la distribution
de plusieurs propriétés physiques qui varient continuellement dans un espace et aussi dans le
temps. En particulier, des champs continus représentent des PHENOMENES continus naturels
et environnementaux.
Selon [PARIENTE 94]: "Un champ continu est une portion de l'espace où la force ap-
pliquée à un point dépend de sa position seule. Ces champs sont appelés 'continuous fields', ap-
pellation qui renforce la notion de continuité des valeurs des champ : le nombre de points con-
tenu dans un champ est infini, la représentation des valeurs de ce champ est donc continue."
Un exemple typique est l'altitude dans un espace à 2 dimensions pour décrire un ter-
rain. D'autres exemples en 2 dimensions sont la distribution des températures, la pression, la
pollution etc., sur un territoire. Les champs continus dans un espace à 3 dimensions peuvent
modéliser les structures géologiques, et en général les propriétés physiques distribuées dans un
espace [MAGILLO et al. 00]. On peut citer d'autres exemples comme :
Chapitre 1. Définition et Représentation d’un champ continu
19
- végétation, type de sol, texture du sol, potentiel d’érosion, précipitations, vitesse et di-
rection du vent, acidité du sol, nivaux de pollution, pression de l’air, la densité de miné-
ral, etc..
Un champ est scalaire ou vectoriel en fonction du nombre de valeurs associées en un
point. Alors qu’une simple valeur est définie en un point dans un champ scalaire (ex. tempéra-
ture, acidité, …), les valeurs scalaires multiples sont assignées en un point d’un champ vecteur
(ex. le vent contenant deux champs scalaires, comme par exemple, vitesse et direction du vent).
Il est donc possible de représenter un champ vecteur par un champ scalaire multiple. C’est
pourquoi nous avons focalisé notre attention, dans ce travail, sur les champs scalaires.
Dans de nombreux cas, un champ continu considéré ne peut être échantillonné en tout
point pour des raisons évidentes d’espace mémoire (tous les points de l’espace ne pouvant être
mémorisés). En effet, il est rare de connaître l’ensemble des informations spatio-temporelles :
pour des raisons de coûts, les valeurs sont mesurées en certains points (points- échantillons) ou
dans certaines zones (zones privilégiés) [PARIENTE 94]. Il est donc nécessaire d'utiliser une
méthode d’estimation pour définir les valeurs des points non échantillonnés.
Nous illustrons un exemple de champ continu pour la température représenté par des
points-échantillons. Les valeurs de la température sont mesurées en certains points comme le
montre la Figure 1.a. Déterminer la température en des points (tel que le point A) autres que ces
points-échantillons requiert une estimation (interpolation ou extrapolation). Cette estimation est
fonction des valeurs et de la position des points-échantillons. La Figure 1.b illustre le champ de
la température après avoir estimé les valeurs de tous les points. La valeur estimée de chaque
point est représentée par une nuance de gris correspondante.
Figure 1. Exemple de champ continu pour la température.
Quelle est la température au point A ?Température après estimationsur tous les points
21
3
3 32
9 10A ?
a. b.
Chapitre 1. Définition et Représentation d’un champ continu
20
D'autre part, les valeurs de champs peuvent être mesurées sur des zones (ex. une tem-
pérature moyenne sur chaque région). La valeur associée à une zone est valable pour toute la
zone considérée. L’information est donc homogène sur toute la zone. Toutefois, la plupart des
phénomènes géographiques ne sont pas homogènes [LAM 83] [PARIENTE 94]. Il est difficile
d’imaginer que les températures puissent être totalement homogènes sur une région. En plus il
n'existe pas de continuité entre zones voisines. Ainsi, la représentation d’un champ continu par
des zones privilégiées n’est pas souhaitable. Un mécanisme d’interpolation est nécessaire pour
que les valeurs d’une zone ne soient pas homogènes.
En revanche, [PARIENTE 94] a utilisé des zones privilégiées pour représenter des
contraintes statistiques sur l’estimation (ex. la moyenne, l’intégrale, etc.). La considération de
ces contraintes peut enrichir l’information. Ainsi, des zones privilégiées seules sans interpola-
tion ne sont pas adaptées pour représenter un champ continu mais elles peuvent être utilisées
pour représenter certaines contraintes sur des zones.
1.2 Modèles existants
Comme dit précédemment, un champ continu considéré ne peut être échantillonné et stocké en
tout point. Les valeurs sont donc mesurées en certains points ou dans certaines zones. Des mé-
thodes d’interpolation sont alors appliquées afin d’estimer la valeur du champ des points non
connus. Les représentations de champs continus les plus courants sont :
• les grilles régulières de cellules,
• les tessellations polygonales,
• les réseaux de triangles irréguliers (TIN : Triangulated Irregular Networks),
• les courbes de niveau.
Chapitre 1. Définition et Représentation d’un champ continu
21
1.2.1 Les grilles régulières de cellules
Des lignes droites perpendiculaires aux axes des abscisses et des ordonnées, régulièrement es-
pacées, partitionnent intégralement l’espace d’étude en cellules. L'exemple type de grille de cel-
lules est le raster (des images numériques). Chaque cellule est définie par sa longueur et sa lar-
geur. La Figure 2 présente un exemple de maillage régulier de cellules carrées et rectangulaires.
Figure 2. Grilles de cellules.
La valeur de champ est représentée par une valeur unique pour toute la surface cou-
verte par la cellule. La valeur pourrait être soit une valeur représentative de la cellule, par
exemple une valeur mesurée au centre de la cellule, soit une moyenne, un maximum ou autres
valeurs d’agrégation sur la cellule. Le modèle est donc basé sur l'existence des zones privilé-
giées des cellules plutôt que sur des points-échantillons pour tout l’espace d’étude.
Puisque les cellules sont régulières, la règle d'appartenance d’un point à une cellule et
la détermination de la valeur d'attribut sont simples : la valeur du phénomène est représentée
par une valeur unique pour toute la surface de chaque cellule ; par conséquent tout point de la
cellule aura donc la même valeur d’attribut.
Cellules carrées Cellules rectangulaires
Chapitre 1. Définition et Représentation d’un champ continu
22
1.2.2 Les tessellations polygonales
Elles partitionnent également tout l’espace par des formes régulières ou irrégulières de polygo-
nes. La valeur du phénomène peut être déterminée de différentes façons selon la manière de
former les polygones. Ces polygones peuvent être basés sur :
• Des zones privilégiées de cellules ; cas identique à celui des champs continus repré-
sentés par des grilles régulières de cellules en permettant des polygones réguliers ou
non réguliers à la place des carrés. Par conséquent, la valeur de champ telle qu’une va-
leur de l’agrégation du polygone, d’une classe de végétation, d’un type de sol, est re-
présentée par une valeur unique pour toute la surface couverte par la cellule (Figure
3.a).
• Des points-échantillons ; les polygones contiennent des points-échantillons. Dans la
plupart des cas les points-échantillons sont les sommets du polygone (Figure 3.b).
Lorsque la valeur d’un point non échantillonné doit être estimée, le polygone auquel le
point appartient est déterminé. Ensuite une interpolation définie s’applique sur les
points-échantillons appartenant au polygone trouvé ; parce que la valeur d’un point est
principalement influencée par les points-échantillons les plus proches, et les points-
échantillons du polygone considéré sont en général les plus proches du point à estimer.
Le modèle Voronoi (Figure 3.c) est un exemple de ce type. Dans Voronoi, l’espace est
partitionné de telle manière que chaque polygone possède un point-échantillon en son
centre et que ce point-échantillon soit le plus proche de tous les points dans ce poly-
gone [SAMET 90a] [SAMET 90b]. Lorsque la valeur d’un point non échantillonné doit
être estimée, le polygone auquel le point appartient est déterminé, et une interpolation
s’applique par exemple en calculant la distance entre le point à estimer et le point-
échantillon du polygone.
Figure 3. Différentes variantes du modèle polygonal irrégulier.
2140
3023
3810
a) b) c)
Chapitre 1. Définition et Représentation d’un champ continu
23
1.2.3 Les réseaux de triangles irréguliers (TIN)
Cette méthode est très utilisée pour représenter notamment des terrains [KEMP 93] [van KRE-
VELD 94] [YU et al. 96] [MAGILLO et al. 00]. Elle partitionne l’espace en régions triangulai-
res, les sommets de ces triangles correspondant aux points-échantillons (Figure 4). Lorsque la
valeur d’un point non échantillonné doit être estimée, le triangle auquel appartient le point est
déterminé, et une interpolation par exemple linéaire est calculée depuis les trois sommets du
triangle.
Figure 4. Réseau de triangles irréguliers (TIN).
1.2.4 Les grilles de cellules carrées pour DEM (Digital Elevation Model)
Un modèle DEM1 (Digital Elevation Model) conventionnel basé sur les grilles de cellules car-
rées n’est pas adapté pour représenter un champ continu comme les terrains, car une seule va-
leur homogène est définie pour tous les points à l’intérieur de la cellule, par exemple l’altitude
au centre de la cellule, ce qui ne correspond pas à la réalité. De plus la continuité entre cellules
voisines n’est pas assurée.
Afin qu’un DEM (ou grilles de cellules) puisse être considéré comme un champ conti-
nu, une méthode d’interpolation doit être spécifiée [YU et al. 96]. Nous pouvons générer (ou
mesurer) des points-échantillons à chaque sommet de la grille et spécifier une fonction (Figure
5), par exemple une interpolation linéaire. La valeur d’un point dans une cellule peut donc être
estimée par l’interpolation spécifiée depuis les quatre sommets de la cellule.
1
Nous avons préféré écrire DEM plutôt que MNT (Modèle Numérique de Terrain) car nous pensons qu'il est plus spécifique à notre problème.
Chapitre 1. Définition et Représentation d’un champ continu
24
Figure 5. Exemple d’une grille de cellule pour un champ continu.
De nombreuses méthodes de visualisation tri-dimensionnelle des surfaces continues
sont basées sur ce modèle modifié, notamment l'extraction des iso-surfaces ou iso-lignes pour la
visualisation scientifique comme dans le domaine de l’imagerie médicale [SHEN et JOHNSON
95] [CIGNONI et al. 96] [CIGNONI et al. 97].
1.2.5 Les courbes de niveau
Les courbes de niveau sont l’intersection de la surface topographique avec des plans horizon-
taux équidistants. Chaque courbe relie des points de la surface qui ont la même valeur (voir la
Figure 6).
Figure 6. Courbes de niveau.
Pour calculer la valeur en un point n’appartenant pas à une courbe de niveau, les cour-
bes les plus proches du point sont déterminées et une interpolation est effectuée [KEMP 93].
40
c1
48 56 80
50 60 90 84
88
1201108080
64 11074
c6
c2 c 3
c 4 c5
c 7 c 8 c 9
+ Interpolation
50 60 70
Chapitre 1. Définition et Représentation d’un champ continu
25
1.3 Modèle générique de champ continu
Un champ continu s'appuyant sur un ensemble de points-échantillons peut donc être modélisé
comme suit :
Un ensemble de points-échantillons dans un champ continu de d-dimension est
l’ensemble des paires (v, w)
{ (v, w) | v ∈ Rd , w ∈ Rk },
où
• v est un ensemble de points ayant des coordonnées cartésiennes dans le domaine Rd,
• d représente la dimension du champ, par exemple :
si d = 2 alors v = (x, y) ,
si d = 3 alors v = (x, y, z), dans le cas de 3 dimensions où z est l’altitude : le lo-
calisant correspond à un point dans l’espace tridimensionnel,
si d = 4 alors v = (x, y, z, t), où le point inclut le paramètre temporel t, etc. ,
• w est l’ensemble des valeurs du champ (attribut) provenant de la fonction d'interpola-
tion w = f(v) ,
• k est un entier indiquant si le champ est scalaire ou vecteur :
si k = 1 alors scalaire,
si k >= 2 alors vecteur.
Un champ consistant en un ensemble de points-échantillons (v, w) peut être modélisé
par une subdivision c du domaine Rd en cellules ci (c1, c2, … ,cn) telle que chaque cellule c est de
la forme :
(A, PE, f) ,
où
• A représente l'aire courante de la cellule c,
• PE est l'ensemble de certains points-échantillons dans des points v. PE peuvent être les
sommets d'une cellule ou bien les points-échantillons à l’intérieur d’une cellule. Lors
de la détermination d'une valeur en un point à l'intérieur de la cellule, les points-
Chapitre 1. Définition et Représentation d’un champ continu
26
échantillons PE sont concernés pour le calcul d'interpolation. Nous appelons ces
points-là ‘points-échantillons de la cellule’.
• f est la fonction d'interpolation qui représente la cellule. Cela signifie qu’il est possible
de définir plusieurs méthodes d’interpolation pour représenter un champ continu, si
nécessaire, non seulement par des méthodes bien connues mais aussi des méthodes dé-
finies par les utilisateurs. Il est possible de représenter une cellule d’une zone privilé-
giée (voir la partie ‘ zones privilégiées’ de la section 1.2) en définissant une fonction f
qui retourne une valeur constante (unique) pour l’estimation de toute la surface de la
cellule.
Comme dit précédemment, les cellules peuvent être régulières ou non régulières. Le
nombre de points-échantillons d’une cellule peut varier même à l'intérieur d'un champ. Par
exemple, dans un DEM à 2 dimensions, les cellules sont des carrés réguliers composés par qua-
tre points-échantillons aux sommets des carrés. De la même manière, dans un TIN à 2 dimen-
sions, les cellules sont des triangles irréguliers composés par trois points-échantillons aux som-
mets. Nous pouvons aussi représenter un champ à 3 dimensions (volumique) par un modèle
hybride des hexaèdres ou tétraèdres composés par six ou quatre points-échantillons pour une
cellule.
Comme dans les exemples de modèles spécifiques de champs donnés ci-dessus, les
points-échantillons d’une cellule sont dans la plupart des cas les sommets de la cellule qui déli-
mitent l’espace d’une cellule. Toutefois nous n’exclurons pas la possibilité de définir des
points-échantillons qui se trouvent à l’intérieur d’une cellule dans le cas où l’interpolation défi-
nie le nécessite.
Selon la définition du modèle proposé ci-dessus, la fonction fi est utilisée pour interpo-
ler les valeurs du champ sur tous les points à l’intérieur de la cellule ci en appliquant fi sur les
points-échantillons de la cellule ci. La raison est que les points-échantillons d’une cellule sont
en général l’ensemble des points-échantillons les plus proches du point donné à estimer. Ainsi
la valeur d’un champ sur un point a plutôt tendance d'être influencée par les points les plus pro-
ches. Cela repose sur la caractéristique principale des champs, à savoir la continuité dans
l’espace et parfois dans le temps. Par exemple, dans le cas des TIN à 2 dimensions, il faut con-
sidérer trois sommets, les points-échantillons de la cellule, du triangle contenant le point à
questionné pour estimer la valeur. En revanche, il faut huit sommets des points-échantillons
Chapitre 1. Définition et Représentation d’un champ continu
27
pour le cas d’un DEM à 3 dimensions pour appliquer l’interpolation trilinéaire (voir
http://astronomy.swin.edu.au/pbourke/analysis/trilinear/).
1.4 Conlusion
Dans ce chapitre, nous avons présenté la définition d'un champ continu dans les SIG pour repré-
senter des phénomènes continus et environnementaux. De nombreuses applications des champs
continus sont illustrées. Bien que nous ayons présenté la notion de continuité des champs trai-
tés, les phénomènes continus sont malgré tout représentés de façon discrète par leurs points-
échantillons ou par leurs zones privilégières. Une méthode d'interpolation est donc nécessaire
afin de déterminer les valeurs des points non connus.
Nous avons aussi présenté les modèles des champs continus les plus couramment utili-
sés dans les SIG. Le modèle DEM conventionnel (une valeur homogène pour tous les points de
la grille) est très utilisé pour représenter des terrains. En revanche, ce modèle n'est pas très
adapté à la représentation des champs continus. Nous avons donc proposé de modifier le DEM,
a) en définissant un point-échantillon sur chaque sommet de la grille, b) en spécifiant une mé-
thode d'interpolation pour estimer une valeur d'une grille. Le modèle DEM référencé dans cette
thèse correspond donc à ce modèle modifié.
En se basant sur les modèles présentés, nous avons proposé un modèle générique pour
représenter un champ continu. Ce modèle est basé sur la notion de points-échantillons et la sub-
division de l'espace en cellules. Chaque cellule est de la forme :
(A, PE, f),
où A représente la surface de la cellule et PE est l'ensemble des points-échantillons
(appelé points-échantillons de la cellule) qui vont permettre de déterminer une valeur pour tous
les points à l'intérieur de la cellule. f est la fonction d'interpolation représentant l'espace de la
cellule. Ce modèle représente une tessellation spatiale complétée par la notion de points-
échantillons d’une cellule et par la notion de la méthode d'interpolation.
Ayant proposé un modèle générique des champs continus, nous nous intéressons, dans
le chapitre suivant à l'intégration des données de type champs continus.
Chapitre 2. Problématiques dans l’interrogation de BD de champs continus
28
2. Problématiques dans l'interrogation de BD de champs continus
Comme dit précédemment, l’interrogation et l’analyse de données champs amènent à considérer
deux classes de requêtes. Les requêtes basées sur :
Q1) une condition spatio-temporelle : “ Quelle est la valeur du champ sur un point don-
né v'(x, y, z, t) ? ”
Q2) une condition d'une valeur de champ : “ Quelles sont les régions qui présentent une
température égale à 28° ? ”
La première classe de requêtes (dites requêtes conventionnelles) est classique et
conventionnelle dans une base de données (BD) d’un champ continu. Elle demande la valeur du
champ correspondant à un point donné, ce qui revient à trouver la valeur d’un champ en une po-
sition donnée. A l’inverse, pour la seconde classe, il s’agit de déterminer des régions où le
champ a une valeur donnée. Nous appelons la deuxième classe de requêtes requêtes par valeurs.
Des requêtes complexes peuvent être composées par la combinaison de ces requêtes de base.
Bien que ces deux classes de requêtes impliquent des données de type champs, leurs méthodes
de traitement sont très différentes et induisent des coûts élevés, de par le volume important des
données champs.
Dans ce chapitre, nous présentons la procédure du traitement de requêtes selon leur
classe (présentée ci-dessus). Nous présentons particulièrement les problématiques posées pour
le traitement des requêtes de type Q2. La motivation de cette thèse est donc d'essayer de résou-
dre ces problématiques. Ensuite, nous illustrons la limitation de la méthode et quelques remar-
ques.
Chapitre 2. Problématiques dans l’interrogation de BD de champs continus
29
2.1 Requêtes conventionnelles
Ce type de requêtes peut être noté F(v') où v' est la position donnée (la condition de la requête)
et la fonction F représente le champ. La condition de la requête peut être étendue à une ligne ou
une région. Lorsque la condition de la requête est un point, le résultat de la requête peut être une
valeur de champ ou un gradient. Le résultat peut être interprété différemment, lorsque la condi-
tion est une région, par exemple un minimum, un maximum, une intégrale ou une moyenne des
valeurs sur la région. En effet, une autre requête de ce type pourrait être : “ Déterminer la va-
leur moyenne dans une région S ”. Dans tous les cas, retrouver la valeur d’un champ en un point
ou en une région est nécessaire pour le traitement de ces requêtes relatives à un minimum, un
maximum, une intégrale, une moyenne et même les gradients.
Comme nous l'avons vu brièvement dans le chapitre précédent, la procédure de traite-
ment de ce type de requêtes pourrait être définie comme suit :
Etape C1) Déterminer la cellule ci auquel le point v' appartient.
Etape C2) Appliquer F(v') sur la cellule ci de manière à obtenir f (v', points-échantillons
( ci )).
Dans un premier temps, une cellule contenant le point v’ de la requête doit être déter-
minée. Ensuite, la fonction d’interpolation f correspondante doit être appliquée sur les points-
échantillons voisins du point v' à savoir les points-échantillons de la cellule ci issue de l’étape
C1.
La question qui se pose donc dans une Base de Données (BD) contenant un grand
nombre de cellules, est de trouver efficacement la cellule contenant le point de la requête. En
effet, ce traitement implique une opération spatiale courante dans les BD spatiales et ces requê-
tes peuvent donc être supportées par une méthode d’indexation spatiale conventionnelle comme
le R-tree ou une de ses variantes [GUTTMAN 84] [SELLIS et al. 87] [BECKMANN et al. 90].
D’ailleurs dans le cas des cellules régulières comme dans les DEM, nous pouvons ac-
céder directement à la cellule correspondante grâce à l’organisation physique des données. Par
exemple, en ce qui concerne son stockage sur disque, un DEM à 2 dimensions peut être linéarisé
Chapitre 2. Problématiques dans l’interrogation de BD de champs continus
30
dans un tableau à une dimension ordonné selon les lignes. Dans ce cas, l’adresse physique d’une
cellule peut être calculée facilement sans aucune méthode d’indexation.
2.2 Requêtes par valeurs
L’objectif des requêtes de type Q2 est de déterminer des régions à partir d’une valeur donnée
w’. La condition de la valeur d’une requête w’ porte soit sur une valeur soit sur un intervalle.
Par exemple, les requêtes telles que “Quelles sont les régions qui présentent des précipitations
supérieures à 2000 mm par an ? ” ou bien “Quelles sont les régions qui présentent une tempé-
rature entre [20oC, 25oC] ? ” appartiennent à ce type de requêtes.
La plupart des applications des champs continus s'intéressent peu aux requêtes exactes
comme "Quelles sont les régions où la valeur est exactement égale à w' ?". En revanche, elles
semblent s'intéresser plutôt aux requêtes du type : "Quelles sont les régions où la valeur est ap-
proximativement égale à w' ?" car les valeurs mesurées sur les points échantillons peuvent
comporter des erreurs et des incertitudes. Ces requêtes peuvent être notées :
F-1(w’- e <w< w’+ e),
où e est la marge d’erreur tolérée. Plus généralement, nous pouvons définir ce type de requêtes
par F-1(w’ < w < w”) représentant une requête d'intervalle.
Contrairement aux requêtes Q1, les requêtes de type Q2 sont plus difficiles à traiter car
il existe plus d’une cellule dans lesquelles la valeur est égale, supérieure ou inférieure à w’. La
Figure 7 illustre l’exemple d’une requête dans un champ continu à 2 dimensions. Notons que le
plan XY a été projeté sur l’axe des V afin de simplifier le schéma. Le deuxième axe des w donne
les valeurs des champs.
Le champ est vu comme continu par ces points-échantillons et par les fonctions
d’interpolation. La cellule c1 contient les points-échantillons <v1, v2 ,v3 > et est représentée par
la fonction d’interpolation f1. La cellule c2 contient <v3, v4, v5> et elle est également représentée
par f2. Nous pouvons remarquer qu’à partir des valeurs des points-échantillons d’une cellule il
est possible de déduire l’intervalle de toutes les valeurs possibles à l’intérieur de la cellule : non
seulement les valeurs explicites mais aussi les valeurs implicites qui seront estimées par une in-
terpolation. Ces intervalles sont représentés par Ii pour chaque cellule ci .
Chapitre 2. Problématiques dans l’interrogation de BD de champs continus
31
Figure 7. Exemple d'une requête par valeurs dans un champ continu.
Supposons que la valeur de la requête donnée soit w’ dans la Figure 7. Les points pour
lesquels les valeurs sont égales à w’ sont v’ et v”. Ils sont le résultat de la requête. Ces points du
résultat peuvent être calculés par interpolation après avoir déterminé les cellules <c1, c3> dont
l'intervalle chevauche la valeur de la requête w’. Plus précisément, v’ peut être calculé en appli-
quant la fonction inverse de l’interpolation correspondant, notée f1-1(w’), sur les points-
échantillons de c1, c’est-à-dire < v1, v2, v3>. Et v” peut également être déterminé par la fonction
f3-1(w’) sur les points-échantillons de c3, <v5, v6, v7>.
La procédure de traitement de ce type de requêtes pourrait alors être définie comme
suit :
Etape V1) Déterminer les cellules ci dont les intervalles de valeurs chevauchent la valeur
de la requête w' .
Etape V2) Appliquer F-1(w') sur les cellules ci : f -1(w', points-echantillons (ci)).
Reprenons la Figure 5 représentant un champ continu. Supposons la requête suivante :
“Déterminer les régions où la valeur est comprise entre 55 and 59”. Pour traiter cette requête,
Requête w'
v’ v ”
×
I1 I2 I3
v1
v2
v3
v4
v5
v6
v7
Valeur w
Espace v
( c1, f 1) ( c2, f 2) ( c3, f 3)
×
: point-échantillon
Chapitre 2. Problématiques dans l’interrogation de BD de champs continus
32
nous devons premièrement déterminer les carrés <c1, c2, c3, c4 >. Les régions exactes de la ré-
ponse à la requête pourront ensuite être calculées.
Le problème des requêtes par valeurs dans un champ continu se ramène à « trouver
toutes les cellules dont les intervalles de valeurs chevauchent la valeur de la requête ». Sans
indexation, toute la base de données serait à analyser séquentiellement, ce qui entraînerait une
dégradation dramatique de la performance du système. Nous appelons cette méthode, la mé-
thode de ‘Balayage Séquentiel’. Dans ce mémoire, nous allons proposer des méthodes
d’indexation efficaces pour supporter les requêtes par valeurs dans les BD de champ continu en
accélérant la recherche des cellules satisfaisant aux conditions de ces requêtes.
2.2.1 Comment déterminer l'intervalle des valeurs d'une cellule ?
Comme nous l'avons vu, le traitement des requêtes par valeurs se base sur le traitement des in-
tervalles des cellules. L'intervalle d'une cellule ci peut être déterminé comme suit :
Ii = FI(ci) = FI(Ai , PEi , fi),
où FI est une fonction qui détermine un intervalle à partir de : Ai (l'aire couvrant exactement ci),
PEi (points-échantillons de la cellule ci) et fi (la fonction d'interpolation représentant ci).
Afin de déterminer l'intervalle d'une cellule, trois paramètres sont donc nécessaires.
Mais dans le cas où les points-échantillons de la cellules sont les sommets de la cellule (ex. des
TIN), Ai peut être absent car les points-échantillons peuvent représenter l'aire de la cellule.
Quelques exemples de déduction d'intervalles de cellules seront présentés par la suite.
Exemples :
La Figure 8 illustre quelques exemples de champs continus. En effet, cette figure montre com-
ment les intervalles des cellules peuvent être déduits dans un modèle spécifique.
Chapitre 2. Problématiques dans l’interrogation de BD de champs continus
33
Figure 8. Détermination de l'intervalle des cellules dans des champs continus.
a) DEM
Les points-échantillons d'une cellule sont les sommets de la cellule. Supposons que la
fonction d'interpolation fi soit une fonction bilinéaire. Les valeurs sur tous les points à l'intérieur
d'une cellule sont délimitées par les valeurs de points-échantillons de la cellule.
Soit Ii l'intervalle de la cellule ci. Les intervalles Ii seront donc [40-60], [48-90], [50-
74], [60-110] pour i=1, 2, 3, 4.
40
c1
48 56
50 60 90
64 11074
c2
c3 c4
c2c1
c3 : 40
c2 : 30c1 : 23
c1
c2
c3
c4
c3
c5
40
48
61 60
50
40
63
80
a. DEM b.TIN
c.Voronoid.Tessellation polygonale
60
36
: point-échantillon
10
9
10
12 4
R : la distance entre le point-échantillonet le point le plus loin dans la cellule
R
Chapitre 2. Problématiques dans l’interrogation de BD de champs continus
34
b) TIN
Les points-échantillons d'une cellule sont les sommets de la cellule. Supposons que la
fonction d'interpolation fi soit la fonction linéaire.
Les intervalles Ii seront donc [40-50], [48-60], [48-61] pour i=1, 2, 3.
c) Voronoi
Chaque cellule possède un point-échantillon en son centre. Supposons que la fonction
d'interpolation fi soit une fonction par pondération de la distance. En effet, la distance est défini
comme la distance d entre le point-échantillon et le point à estimer dans la cellule. Par exemple,
la valeur à estimer sur un point est définie comme w/d où w est la valeur du centre. Le maxi-
mum des valeurs possible à l'intérieur d'une cellule sera donc la valeur du point-échantillon. Le
minimum sera la valeur sur le point le plus loin du point-échantillon (c'est-à-dire le point cen-
tral) de la cellule. Pour chaque cellule, la distance entre le point-échantillon et le point le plus
loin est représentée dans la Figure 8.c.
Les intervalles Ii seront donc [36-3], [40-4], [60-15], [80-8], [63-7] pour i = 1, 2, 3, 4,
5.
Les résultats de l'estimation des points sur les frontières entre deux cellules ne sont pas
nécessairement identiques. En effet, les points sur les frontières peuvent être calculés soit à par-
tir de la première cellule soit à partir de la seconde. Une autre définition de l'estimation est donc
nécessaire pour des points sur les frontières (ex. prendre la moyenne de deux valeurs estimées
provenant des deux cellules voisines de la frontière). En d'autre termes, pour certaines méthodes
d'estimation, il se peut que la continuité ne soit pas assurée.
d) Tessellation polygonale
Les cellules sont des zones privilégiées qui possèdent une valeur unique pour tous les
points à l'intérieur de la cellule. La valeur unique pour chaque cellule est représentée dans la
Figure 8.d. La fonction d'interpolation fi peut donc être définie comme une fonction qui retourne
une valeur unique quelque soit le point considéré dans la cellule.
Chapitre 2. Problématiques dans l’interrogation de BD de champs continus
35
Les intervalles Ii seront donc [23-23], [30-30], [40-40] pour i = 1, 2, 3.
2.2.2 Pourquoi ne pas indexer simplement des points-échantillons par un index comme le B-tree ?
Nous aurions pu pensé qu’il est possible d'indexer simplement les valeurs de points-échantillons
afin de traiter les requêtes par valeurs. Pour cela, le B-tree (ou le B+-Tree) [KNUTH 73]
[KORTH et SILBERSCHATZ 91] peut être utilisé. En effet, le B-tree est la méthode d'indexa-
tion la plus courante et populaire pour indexer ce genre de données alphanumériques comme des
valeurs de points-échantillons. Dans cette section, nous expliquons la raison pour laquelle nous
ne pouvons pas simplement indexer les valeurs des points-échantillons par le B-tree pour les re-
quêtes par valeurs. Cela signifie que nous devons finalement trouver une autre méthode d'in-
dexation pour accélérer la procédure présentée ci-dessus.
Supposons que la Figure 9 représente un terrain de type DEM et que la fonction d'in-
terpolation bilinéaire soit utilisée pour transformer les altitudes des points-échantillons discrets
en un terrain continu. Les chiffres entre parenthèses représentent les altitudes mesurées sur les
points-échantillons vi aux sommets des cellules. Les méthodes conventionnelles utiliseront les
valeurs discrètes des points-échantillons comme clé. Prenons des exemples de requêtes par va-
leurs :
Figure 9. Terrain de type DEM.
v2(46) v3(54) v4(80)
v5(50)v6(60) v7(90) v8(84)
v12(88)
v15(120)v14(112)v13(80)v12(80)
v9(64) v11(110)v10(74)
xx
x
xx
x
Réponses implicitespour R1
Réponses implicites pour R2
v1(40)
x
Chapitre 2. Problématiques dans l’interrogation de BD de champs continus
36
R1 : “ Quelles sont les régions où l'altitude est égale à 115 ? ”
Une méthode d'indexation classique renverra Null car il n’y a aucune valeur explicite
égale à 115. En revanche, nous pouvons obtenir des points à l'intérieur de la cellule en-
tourée par les points-échantillons <v11, v12, v14, v15> en utilisant la procédure de trai-
tement des requêtes présentée précédemment (voir la Figure 9).
R2 : “ Quelles sont les régions où l'altitude est égale à 50 ? ”
Une méthode d'indexation classique renverra uniquement la position du point v5,
alors que la réponse correcte doit aussi inclure des points implicites se trouvant à l'inté-
rieur des cellules entourées par les points-échantillons <v1, v2, v5, v6> et <v2, v3, v6,
v7> (marquées dans la Figure 9).
R3 : “ Quelles sont les régions où l'altitude est entre 115 et 118 ? ”
Par la procédure que nous proposons, il est possible d’obtenir les régions répondant
aux critères de la requête. En revanche, il n'est pas possible de trouver la réponse à la
requête par une méthode d'indexation classique car les valeurs 115 et 118 de la requête
sont implicites.
D'une manière générale, les requêtes R1 et R2 doivent renvoyer une ligne ou un ensem-
ble de lignes de type "courbe de niveaux". Quand à R3, la zone de réponse est définie par l'es-
pace compris entre deux courbes de niveaux.
Par conséquent, nous ne pouvons donc pas utiliser une méthode d'indexation classique
(telle que le B-tree) avec des valeurs de points-échantillons car elle ne permet pas de trouver
des valeurs implicites provenant de la définition de continuité des champs considérés.
Chapitre 2. Problématiques dans l’interrogation de BD de champs continus
37
2.3 Motivation des travaux
Comme nous l'avons vu, sans indexation le traitement des requêtes par valeurs requiert un ba-
layage séquentiel de toute la base de données. Malgré l'importance des méthodes efficaces de
traitement des requêtes par valeurs, aucune attention particulière ne leur a été portée, et aucun
travail significatif n'a été effectué sur ces méthodes d'indexation. Dans notre travail, nous vou-
lons donc proposer de nouvelles structures d'index qui améliorent le traitement des requêtes par
valeurs dans les grandes bases de données de champs continus. Ceci constitue la motivation et
la contribution pratique de cette thèse.
2.4 Remarque et hypothèse
Les méthodes d'interpolation peuvent être classifiées en méthodes globales ou locales [JEAN-
SOULIN 91] [PARIENTE 94]. Le modèle générique et les procédures de traitements des requê-
tes présentés dans la section précédente sont basés sur l'hypothèse de l'utilisation d'une méthode
d'interpolation locale. Pour mieux comprendre cette hypothèse, nous présentons d'abord la défi-
nition des méthodes globales et locales.
1) Méthodes globales:
Les méthodes d'interpolation globales tiennent compte de toutes les valeurs échantillon-
nées, donc de tous les points-échantillons (voir Figure 10.a.). Citons quelques méthodes
globales parmi les plus connues, comme les méthodes de pondération de la distance, la
méthode des différences finies [LAM 83], et le krigeage [MATHERON 67].
2) Méthodes locales:
Elles ne prennent en considération que les points-échantillons les plus proches (voir
Figure 10.b). Le nombre de ces points varie selon les méthodes (en général, au minimum
trois points sont nécessaires). Les méthodes locales courantes sont l'interpolation poly-
nomiale [LAM 83], les méthodes reposant sur une triangulation de l'espace d'étude, et
les splines [BARTELS et al. 87], [HERRING 91].
Chapitre 2. Problématiques dans l’interrogation de BD de champs continus
38
Figure 10. a) Méthode d'estimation globale. b) Méthode d'estimation locale.
Comme nous l’avons vu dans le modèle proposé, l'espace d'un champ est divisé en un
grand nombre de cellules et la fonction d'interpolation ne considère, pour une requête donnée,
que des points-échantillons d'une cellule. Il est évidemment possible de diviser l'espace en une
seule cellule et d'utiliser une méthode globale qui considère tous les points-échantillons pour les
traitements des requêtes. Dans ce cas, les procédures des requêtes présentées perdent leur intérêt
pour les raisons suivantes :
a) La procédure de traitement des requêtes conventionnelles : l'étape 1 "Déterminer
la cellule ci à laquelle le point v' (à estimer) appartient" n'est plus nécessaire car le ré-
sultat est toujours la cellule qui représente l'espace total. Cela entraîne finalement un
grand temps de calcul pour l'exécution de l'étape 2 à cause du parcours complet du fi-
chier de points-échantillons pour chaque nouvelle estimation.
b) La procédure de traitement des requêtes par valeurs : puisqu'il n’existe qu’une
seule cellule et un seul intervalle de valeurs, et que cet intervalle chevauche toujours les
valeurs des requêtes, nous avons besoin de tous les points-échantillons pour appliquer la
fonction inverse d'interpolation comme c'est le cas pour la résolution des requêtes clas-
siques. Cela signifie qu'une méthode d'indexation est inutile pour améliorer la perfor-
mance des traitements des requêtes. En effet, les données devront obligatoirement être
intégralement parcourues.
? ?
: point-échantillon, : point à estimer?
a) b)
Chapitre 2. Problématiques dans l’interrogation de BD de champs continus
39
Nous avons ainsi expliqué la raison pour laquelle nos travaux sont basés sur
l’utilisation d'une méthode d'indexation locale. En revanche, nous voulons insister sur le fait
que notre approche est aussi adaptée pour une méthode globale. En effet :
Les méthodes globales telles que la méthode des différences finies (MDF), Krigeage,
etc. proposent de discrétiser l'espace d'étude en cellules régulières ou non régulières
[KEMP 93] [PARIENTE 94]. En général, la discrétisation se fait sous la forme d'une
grille de cellules.
Les méthodes globales déterminent les points représentant chaque cellule en l'espace.
Les méthodes globales estiment les valeurs sur les points représentant une cellule en
considérant tous les points-échantillons originaux à chaque estimation. Ainsi, cela est
fait pour toutes les cellules. Les points représentant une cellule peuvent être les sommets
de la cellule (comme dans la Figure 11), ou le point au centre, ou bien encore d’autres
points définis par la représentation d'une application.
Les résultats du calcul de l'estimation sont stockés sur le disque dur et le processus de
traitement des requêtes accède à ces résultats plutôt qu’aux données originales. La rai-
son est que le temps de calcul d'une méthode globale est généralement très long pour de
grandes bases de données, et il n'est pas raisonnable d'effectuer le calcul à chaque exé-
cution d’une requête. Lorsque la valeur sur un point doit être estimée, nous déterminons
la cellule à laquelle appartient le point à estimer et nous ne prenons en compte que les
points représentant la cellule pour l'estimation plutôt que la totalité des points-
échantillons originaux. Nous appelons ces points, des représentants de points-
échantillons générés.
Il existe des systèmes qui génèrent une valeur unique pour toute une cellule, en général
au centre, et qui représente la valeur de champ en tous les points à l'intérieur de la cel-
lule (comme dans le modèle Raster) [PARIENTE 94] [BROWN 97]. Comme nous
l’avons vu dans la section 1.1, cette représentation n'est pas adaptée pour représenter un
champ continu. En effet, elle implique une seule valeur homogène pour tous les points
inclus dans une cellule. Celle-ci serait adaptée si la résolution de la discrétisation de
l'espace était suffisamment précise (élevée) pour qu’une cellule ne représente, en fait,
qu’un seul point. Mais malheureusement, cela n'est pas le cas en réalité.
Chapitre 2. Problématiques dans l’interrogation de BD de champs continus
40
Il est alors préférable de générer les valeurs sur plusieurs points pour représenter les va-
leurs d'une cellule, et d'appliquer une méthode d'interpolation locale à partir de ces
points générés lors de la demande d'une valeur sur un point.
La Figure 11 représente l'architecture générale de définition d'un champ utilisant une
méthode globale. Dans la Figure 11, la méthode globale s'exécute une fois pour générer des ré-
sultats. Ensuite, le processus de requêtes utilise une méthode locale, comme par exemple, une
interpolation linéaire avec des résultats stockés.
Il est possible de trouver un exemple d’utilisation de cette architecture dans un système
d'information des données spatio-temporelles de l'environnement [BROWN 97], qui sera
présenté dans la section 7.2.
En conclusion, nous remarquerons que les résultats des points-échantillons générés
dans un espace discrétisé peuvent finalement être représentés par le modèle que nous proposons,
et qu’ils doivent également être vus comme continus. Cela signifie qu’il est possible d’adopter
les procédures de traitements des requêtes présentées dans la section précédente et aussi
d’utiliser les méthodes d'indexation qui vont être proposées dans cette thèse pour accélérer le
temps de traitement des requêtes, spécifiquement des requêtes par valeurs.
Chapitre 2. Problématiques dans l’interrogation de BD de champs continus
41
Figure 11. Architecture générale d'un champ continu utilisant une méthode globale.
Discrétiser l’espace du champ
Estimer les valeurs sur tous les sommets par uneméthode globale
doit être vucomme continu
= points-échantillons originaux
Résultats
= points-échantillons générés
Stocker les résultatsdu calcul
ou , etc...
Requêtes
Chapitre 2. Problématiques dans l’interrogation de BD de champs continus
42
2.5 Limitation de la méthode d’indexation
Dans cette section, nous expliquons la limitation de la méthode d'indexation pour les traitements
des requêtes par valeurs. En effet, pour quelques méthodes d'interpolation, il existe des cas où
l'étape (V1) ne trouve pas certaines cellules, alors qu’elles devraient être prises en compte pour
l'étape (V2). La Figure 12 montre un exemple de ce cas.
Figure 12. Limitation de la méthode d'indexation.
Supposons qu'il existe deux cellules, c1 et c2 possédant les points-échantillons <v1, v2>
et < v2, v3, v4> (comme le montre la Figure 12). Pour répondre à la requête par valeurs "Quelles
sont les régions où la valeur est égale à w' ?", la fonction inverse d'interpolation f2-1(w’) doit
être appliquée sur les points-échantillons de la cellule c2 afin de trouver les positions des points
marqués par le signe "x" dans la Figure 12. Cependant la cellule c2 ne peut pas être trouvée par
l'étape (V1) car l'intervalle des valeurs c1, I1 ne chevauche pas la valeur de la requête w'. Ce
problème provient du fait que cette interpolation introduit de nouveaux points (appelés points
extrêmes) dans la base de données originale.
La limitation de nos méthodes d'indexation est qu’elles ne fonctionnent que pour les
méthodes d'interpolation qui n'introduisent pas de nouveaux points extrêmes. Néanmoins, si des
méthodes d'interpolation peuvent prévoir les points extrêmes par un simple calcul mathémati-
Requête w'
I2
Valeur w
Espace v
( c1 , f1 ) ( c2 , f 2)
I1 v1
v2
v3 v4x x
: point-échantillon
Chapitre 2. Problématiques dans l’interrogation de BD de champs continus
43
que, nos méthodes d'indexation peuvent fonctionner en utilisant des intervalles de valeurs pre-
nant en compte les points extrêmes.
2.6 Requête par valeurs et modèle des courbes de niveau
Les courbes de niveau sont des isolignes et chaque ligne relie des points qui ont la même valeur
(voir Figure 6).
Les résultats des requêtes par valeurs dans un champ continu représentent finalement
des courbes de niveau d'une valeur donnée par la requête. Ainsi, nous aurions pu pensé qu’il se-
rait préférable d'utiliser des courbes de niveau pour traiter les requêtes par valeurs. Pourtant,
dans la section 1.2 et la section 1.3, nous n'avons pas pris en compte ce modèle pour définir un
modèle générique de champs continus car il est peu satisfaisant pour la représentation des
champs continus. Les raisons sont les suivantes [van KREVELD 94] :
- Les courbes de niveau ne sont pas adaptées pour calculer facilement des inclinaisons ;
l'inclinaison étant une caractéristique importante à considérer dans un champ continu.
- Les courbes de niveau ne sont pas adaptées pour créer des modèles en relief.
- Les valeurs des points entre les courbes de niveau ont besoin d’être déterminées (esti-
mées). Calculer de nouvelles courbes de niveau (par exemple intermédiaires) qui ne sont
pas définies dans les courbes de niveau stockées constitue un processus difficile et grand
consommateur de temps .
Ainsi, le modèle de courbes de niveau est utilisé plutôt comme une structure intermé-
diaire, car des courbes de niveau peuvent, en effet, être calculées à partir des autres modèles il-
lustrés précédemment (voir 1.2). C’est la raison pour laquelle nous ne considérons pas ce mo-
dèle dans le traitement des requêtes.
Chapitre 2. Problématiques dans l’interrogation de BD de champs continus
44
Nous proposons donc une méthode d’indexation qui accélère le calcul des courbes de
niveaux, et qui peut s’appliquer pour plusieurs modèles de représentation comme par exemple
TIN, DEM, etc. Cette approche possède aussi un autre avantage : les courbes de niveau peuvent
être extraites pour n’importe quelle valeur (par des requêtes par valeurs). Ainsi, au lieu de stoc-
ker des courbes de niveau en plus d’un modèle primaire (ex. TIN, DEM, etc.) et de les interpo-
ler, nous utilisons seulement le modèle primaire et une méthode efficace pour extraire de ma-
nière interactive les courbes de niveaux (pour n’importe qu’elle valeur). Cela fournit une
solution flexible et efficace en terme de stockage.
2.7 Conclusion
Dans ce chapitre, nous avons présenté la procédure de traitement des requêtes sur les champs
continus. Les requêtes sur les champs continus peuvent être classées en deux catégories :
- requêtes conventionnelles basées sur une condition spatio-temporelle,
- requêtes par valeurs basées sur la condition d'une valeur de champ.
Contrairement aux requêtes conventionnelles pouvant être supportées par une méthode
d'indexation spatiale existante, les requêtes par valeurs sont plus difficiles à traiter. Nous avons
montré que le traitement de la requête consistait finalement à "trouver les cellules dont l'inter-
valle intersecte la valeur de la requête" (noté "étape V1"). La fonction inverse de l'interpolation
doit être appliquée sur les cellules trouvées pour les régions du résultat. Or, nous ne portons no-
tre attention que sur des méthodes accélérant l'étape V1 car cette étape est grande consomma-
trice de temps pour le cas des bases de données de grand volume. Cela signifie que notre mé-
thode est indépendante de la méthode d'interpolation pouvant être spécifiée selon les
caractéristiques des données. L'objectif de nos travaux est donc de développer une méthode
d'indexation accélérant l'étape V1 pour le traitement efficace des requêtes par valeurs.
Le traitement des requêtes par valeurs repose sur le traitement des intervalles des cel-
lules. L'intervalle des cellules est une information que l'on peut extraire facilement selon diffé-
rents modèles et différentes méthodes d'interpolation.
Chapitre 2. Problématiques dans l’interrogation de BD de champs continus
45
Les méthode d'interpolation peuvent être classées en méthodes globales ou locales se-
lon leurs stratégies de prise en compte des points-échantillons. En effet, nos travaux reposent
sur l'hypothèse de l'utilisation d'une méthode locale. Cela peut impliquer une limitation de nos
travaux. En revanche, en pratique, les applications avec une méthode globale se ramènent au
modèle générique, et à l'utilisation d'une méthode locale pour le traitement des requêtes. Cela
justifie la nécessité et l’utilité de nos travaux.
Le chapitre suivant présente un état de l'art des travaux sur les méthodes d'indexation
par valeurs et les méthodes d'indexation pour les données intervalles.
Chapitre 3. Etat de l’art
46
3. Etat de l’art
Peu de recherche se sont intéressées à l’indexation et au traitement des requêtes des
données champs continus et aucun travail significatif n’a été produit à notre connaissance. Les
recherches actuelles et antérieures se sont focalisées plutôt sur les problèmes de modélisation
conceptuelle et de représentation des données champs continus [KEMP 93] [PARIENTE 94]
[VCKOVSKI 95] [KEMP 97a] [KEMP 97b] [GORDILLO et BALAGUER 98] [OUATIK EL
ALAOUI 99]. Dans [PARIENTE 94], un modèle orienté objet pour implémenter une nouvelle
méthode d’estimation de champs continus basée sur une approche neuronale a été spécifié. Un
raffinement de ce modèle a été étudié dans [GORDILLO et BALAGUER 98] permettant de
changer dynamiquement la méthode d’estimation en fonction des caractéristiques des phénomè-
nes à estimer. [LAURINI et PARIENTE 96] a spécifié un langage pour la déclaration et de ma-
nipulation des champs continus. Le langage proposé est construit sur une extension du langage
de programmation du système de gestion de bases de données orientées objet O2. Toutefois si la
modélisation et la représentation des données champs peuvent être encore approfondies,
l’indexation et le traitement des requêtes restent un domaine inexploré en dépit de son impor-
tance.
Ce chapitre se divise en deux sections. Dans la section 3.1"Indexation par valeurs ,
nous présentons un état de l'art des travaux concernant les traitements des requêtes par valeurs
dans les champs continus. Comme nous l'avons remarqué, le problème des requêtes par valeurs
dans un champ continu se ramène à la recherche des cellules dont les intervalles de valeurs che-
vauchent la valeur de la requête (voir 2.2. Requêtes par valeurs). Cela implique la définition
d'une méthode d'indexation des données intervalles car la condition de la requête concerne les
intervalles (ex. une méthode simple est d'indexer les intervalles de chaque cellule dans l'espace
- voir 4.1. Méthode simple : Méthode I-All). Dans la section 3.2 "Méthode d'indexation des
données intervalles", nous proposons un état de l'art des méthodes d'indexation existantes pour
les données intervalles et nous choisissons une méthode efficace pour indexer des intervalles
Chapitre 3. Etat de l’art
47
dans des champs continus. La méthode choisie pour les intervalles sera utilisée dans des métho-
des d’indexation par valeurs présentées dans cette thèse.
3.1 Indexation par valeurs
Dans cette section, nous présentons des travaux concernant des méthodes d'indexation pour ac-
célérer les traitements des requêtes par valeurs.
3.1.1 Extraction des iso-surfaces
Des approches similaires au traitement des requêtes par valeurs dans les champs continus ont
été proposées pour l'extraction des isosurfaces à partir des données volumétriques scalaires
[CIGNONI et al. 96] [CIGNONI et al. 97] et pour l'extraction des isolignes à partir des TIN
[van KREVELD 94].
Les volumes et les triangles possèdent les altitudes aux sommets. A chaque volume ou
chaque triangle est associé un intervalle d'altitude délimité par le maximum et le minimum des
altitudes aux sommets. En effet, lorsque l'altitude w' donnée comme condition de la requête est
comprise entre le maximum et le minimum d'un intervalle, le volume ou le triangle associé à cet
intervalle contribue aux isosurfaces ou isolignes. L'Interval-tree [EDELSBRUNNER 80] a été
utilisé afin d'indexer les intervalles. En revanche, l'Interval-tree est une méthode d'indexation
basé sur la mémoire ("memory-based"), c'est-à-dire que toutes les données sont censées être
chargées en mémoire pour le traitement des requêtes. Ainsi, cette méthode n'est pas adaptée
dans le cas de grandes bases de données, ce qui est le cas que nous considérons.
3.1.2 Application de Navigation de terrains aidée par l’IP-Index
L’IP-index est une méthode d'indexation par valeurs dans des séquences de temps [LIN 96].
Cette méthode a été utilisée dans [LIN et RISCH 97] pour une application de navigation de ter-
rain. Un avion se localise en comparant l'altitude du terrain (qu’il saisit) avec la carte d'altitude
du terrain embarquée dans l'avion. En volant, l'avion mesure l'altitude du terrain qu’il survole
par un capteur. Ces valeurs mesurées donnent une trajectoire de l'altitude. La succession des al-
titudes mesurées sont comparées aux celles de la carte pour trouver la position de l'avion. Sans
index, la procédure de comparaison doit parcourir séquentiellement toute la carte. L’IP-index
Chapitre 3. Etat de l’art
48
est donc utilisé pour trouver les zones où l'altitude est entre (h-10, h+10), où h est l'altitude
donnée et 10 est l'erreur possible dans la mesure.
3.1.2.1 IP-index
L’IP-index est une méthode d'indexation par valeurs pour de grandes séquences de temps (pour
les requêtes telles que "Quand la valeur est égale à v' ?"). De nombreuses applications des sé-
quences de temps demandent de voir les séquences comme continues (par interpolations)
comme par exemple dans le cas de la température d'une patiente. Dans la Figure 13, les points
s1, s2, s3, et s4 représentent les températures mesurées. Ces points sont vus comme continus par
le biais des segments reliant les points consécutifs. En effet, si on trouve les segments qui cou-
pent la droite définie par la fonction v = v’, les points temporels de la réponse peuvent être cal-
culés (par interpolation). L’IP-index extrait donc les segments qui chevauchent la valeur de la
requête v'.
Figure 13. IP-index.
Lorsqu'on projette les segments des points consécutifs sur l'axe v, on peut obtenir les
intervalles [kj, kj+1[ qui ne se chevauchent pas, où chaque ki est une valeur distincte sur v (voir
k1 ,.., k4 dans la Figure 13). L’IP-index associe chaque intervalle [kj , kj+1[ aux segments qui le
chevauchent. Chaque segment peut être identifié par un point de début (ex. le segment composé
de deux points [s1, s2] est identifié par s1). Aussi chaque intervalle [kj , kj+1[ peut être identifié
par le point de début kj. L’IP-index utilise donc si ( kj ) pour représenter le segment [si, si+1]
(l'intervalle [kj , kj+1[). Nous pouvons extraire les éléments de l’IP-index sous la forme de [ kj,
<s> ], où kj est un intervalle et <s> est la liste des segments chevauchant kj. Dans la Figure 13, [
Elements de IP-index
[ k1 , <S1, S2> ]
[ k2 , <S2> ]
[ k3 , <S2, S3 > ]
[ k4 , nil ]
s1
s4
s3
s2
v
t
k4
k3
k2
k1
Chapitre 3. Etat de l’art
49
k3, <s2, s3> ] représente l'intervalle [k3, k4[ chevauché par les segments [s2, s3] et [s3, s4]. L’IP-
index peut utiliser un B-tree pour indexer des éléments, en utilisant ki comme clé.
Pour traiter la requête " Quand la valeur est-elle égale à v' ?", une recherche dans le B-
tree est exécutée pour trouver l'élément de l’IP-index dont la clé est km , avec km = max{kj | kj ≤
v' }. Ensuite, une méthode d'interpolation est exécutée sur la liste des segments de km.
3.1.2.2 Comment utiliser l’IP-index dans cette application ?
L’IP-index est utilisé pour trouver des zones correspondant à l'altitude donnée par une carte
d'altitude. La carte d'altitude est stockée sous forme de maillage de grilles régulières (une alti-
tude mesurée sur le point central de chaque grille, voir la Figure 14). Puisque l’IP-index est
conçu pour les séquences à 1 dimension, il ne peut pas être appliqué directement à la carte (à
deux dimensions). [LIN et RISCH 97] considère chaque ligne du maillage de la carte comme
une séquence continue du temps (voir la Figure 14). Ainsi, un IP-index est construit pour cha-
que ligne. La recherche relative à une requête est effectuée pour chaque IP-index.
Figure 14. Transformation entre la carte et des séquences de temps.
3.1.2.3 Conclusion
L'application utilisant les IP-index ne respecte que la continuité des altitudes sur l'axe
des X en considérant chaque ligne comme une séquence continue. En pratique, les altitudes sont
aussi continues sur l'axe Y, dans la direction diagonale, etc. Ainsi, on ne peut pas utiliser des IP-
index comme dans l’application pour les données continus multidimensionnelles (ex. terrain)
h11 h12 h1n
h21 h22 h2n
hm1 hm2 hmn
la carte (m*n)
{h11 , h12 ,………….. , h1n}
{h21 , h22 , ………….. , h2n}
{hm1 , hm2 ,………….. , hmn}
les séquences
* hij : l'altitude de terrain dans sur le centre de la grille (i,j)
Chapitre 3. Etat de l’art
50
car ils ne peuvent pas traiter la continuité totale des données (c’est-à-dire les données des
champs continus).
L’IP-index utilise les caractéristiques spéciales des séquences de temps, par exemple
les points mesurés dans une séquences du temps sont ordonnées mais ce n'est pas le cas des
donnée de champs qui sont multidimensionnelles. Il est donc difficile d'étendre l’IP-index aux
données de type champs.
3.2 Méthode d'indexation des données intervalles
Comme nous l'avons vu, dans le cadre du traitement des requêtes par valeurs, nous avons besoin
d'une méthode d'indexation pour indexer des intervalles. Il existe déjà de nombreux travaux sur
les méthodes d'indexation pour des données intervalles, surtout dans le domaine de Base de
Données Temporelles (TDB : Temporal DataBase) [BERTINO et al. 97] [SALZBERG et TSO-
TRAS 97]. Nous utilisons une des méthodes existantes pour l'indexation des intervalles. Il est
alors nécessaire de choisir une bonne méthode parmi les méthodes existantes. Il faut pour cela,
prendre en compte les caractéristiques des données intervalles dans les BD de champs. Dans
cette section, nous proposons un état de l'art sur les méthodes existantes, et nous choisissons
une méthode pour l'indexation des intervalles dans les BD de champs.
Dans une TDB, les évolutions des objets peuvent être maintenues (ce genre de TDB est
appelée BD historique, HDB Historical DataBase). Dans une TDB, un objet peut avoir plusieurs
versions. Chaque version est associée à un intervalle de temps [Ts, Te]. Ainsi, un objet est valide
pendant les intervalles de temps associés. C'est la raison pour laquelle ces intervalles de temps
sont appelés aussi les intervalles de temps valides.
Les méthodes d'indexation pour des intervalles de temps dans les TDB sont utilisées
pour extraire toutes les versions d’objets correspondant à un intervalle donné. Une version va-
lide signifie que son intervalle de temps intersecte l'intervalle donné de la requête [NASCI-
MENTO et al. 96] [BERTINO et al. 97].
Plusieurs classifications des méthodes existantes sont possibles. Selon [BERTINO et
al. 97], la plupart des méthodes d'indexation temporelles proposées jusqu'à maintenant sont
Chapitre 3. Etat de l’art
51
principalement basées sur le B-tree (ou sa variante le B+-tree) ou sur les index spatiaux comme
le R-tree [GUTTMAN 84]. [BERTINO et al. 97] classifie donc les méthodes existantes selon
l'index sur lequel elles reposent :
- Méthodes d'indexation basées sur les B-trees
- Méthodes d'indexation basées sur les R-trees
Examinons - les en détail.
3.2.1 Méthodes d'indexation basées sur les B-trees
Il existe de nombreuses méthodes basées sur le B-tree. Les méthodes les plus connues et les
plus prometteuses dans cette catégorie sont les suivantes : Time Index [ELMASRI et al. 90],
Append-Only tree (AP-tree) [GUNADHI et SEGEV 93], Snapshot Index [TSOTRAS et KAN-
GELARIS 95], Interval B-tree [ANG and TAN 95] et MAP21 [NASCIMENTO et al. 95]. Time-
Split B-tree (TSB tree) [LOMET et SALZBERG 89] est aussi une méthode d'indexation tempo-
relle connue mais elle ne peut pas être utilisée pour des données intervalles [BERTINO et al.
97]. Nous éliminons donc la possibilité d'utiliser le Time Split B-tree.
Certaines méthodes reposent sur l'hypothèse que le minimum d'un intervalle à insérer
dans l'index doit être plus élevé que le maximum de l'intervalle inséré précédemment (insertion
des intervalles dans un ordre croissant - "monotic appending with incremental time values"). Le
AP-tree et le Snapshot Index font partie de cette catégorie [NASCIMENTO et al. 96] [BERTI-
NO et al. 97]. En revanche, les intervalles dans les BD de champs ne satisfont pas cette hypo-
thèse car les intervalles dans les champs ne sont pas des intervalles de temps, et ne sont pas for-
cément insérés de manière croissante. Ainsi, nous éliminons également la possibilité d'utiliser
l'AP-tree et le Snapshot Index.
Dans la suite, nous présentons les autres méthodes et discutons aussi leurs avantages et
leurs inconvénients afin de choisir la meilleure méthode pour indexer des intervalles des valeurs
dans les champs.
Chapitre 3. Etat de l’art
52
3.2.1.1 Time-Index
L'idée du Time index est de maintenir un ensemble de points d'index ordonnés (indexing points)
sur l'axe du temps [ELMASRI et al. 90]. Un point d'index est soit un point du temps où un nou-
vel intervalle commence soit un point du temps qui suit immédiatement un intervalle terminé.
Le concept des points d'index est illustré dans la Figure 15 pour certaines données temporelles.
Dans la Figure 15, les points d'index sont donc BP = { 0, 2, 4, 6, 8, 10, 11, 12, now }. Le point
du temps 6 est un point d'index car e21 s'est terminé au point 5. Ces points sont indexés par un
B+-tree (voir Figure 16).
Figure 15. Intervalles des versions d'objets [ELMASRI et al. 90].
Figure 16. Time-index pour des données de la Figure 15 [ELMASRI et al. 90].
Chapitre 3. Etat de l’art
53
Chaque élément d'une feuille du B+-tree possède un point d'index ti et un pointeur sur
l'ensemble (bucket) de tous les identifiants (Id) dont les versions ont des intervalles de temps
contenant l'intervalle [ti, ti+ - 1] (ti
+ est le point d'index suivant ti dans BP) comme dans la
Figure 16. Un long intervalle apparaît plusieurs fois dans les buckets (ex. e12, e32). Pour réduire
cette duplication, un schéma croissant (incrémental) est utilisé. Dans cette méthode, il n'y a que
le premier élément de chaque feuille qui peut posséder l'ensemble de tous les Ids. Les autres
éléments contiennent seulement le changement des intervalles (comme le montre la Figure 17).
Dans la Figure 17, les signes "+" (resp. "-") représentent l'ajout (resp. la suppression) d'un in-
tervalle de temps par rapport à l'ensemble précédent. De nombreuses duplications sont réduites
mais il existe toujours des duplications pour les longs intervalles.
Figure 17. Stocker le changement des intervalles dans le Time-index.
Pour extraire les Ids dont les intervalles chevauchent l'intervalle de la requête, le buc-
ket complet du premier élément de chaque feuille concernée par la requête doit être lu pour re-
construire la liste des intervalles de la réponse (en considérant les changements des intervalles).
Un Time Index est efficace pour des intervalles de temps courts. En revanche, pour les
longs intervalles (supposons que tous les intervalles commencent à un moment différent et se
terminent à now), les duplications des données peuvent être importantes et dégradent la perfor-
mance de l'index [BERTINO et al. 97] en augmentant la taille de l'index comparativement aux
autres méthodes comme Interval B-tree [ANG and TAN 95], MAP 21 [NASCIMENTO et al.
95].
Chapitre 3. Etat de l’art
54
3.2.1.2 Interval B-tree
L'Interval B-tree est conçu pour améliorer la performance du Time-Index en terme de complexi-
té de temps et d'espace [ANG and TAN 95]. Un Interval B-tree se compose de trois structures:
structure primaire, secondaire et tertiaire.
La structure primaire est un B+-tree pour indexer les bornes des intervalles. Au départ,
il y a un seul nœud vide. Les intervalles sont insérés dans ce nœud. Soit un ensemble de n va-
leurs, on appelle valeur du milieu, le ⎡n/2⎤ ème élément de cet ensemble. Lors du débordement
de capacité de ce nœud, un nœud père est créé. Les bornes des intervalles insérés dans le nœud
sont triés et la valeur m du milieu de ces bornes est stockée dans le nœud père créé (appelé
nœud index). Les intervalles seront stockés dans les deux nœuds ; les intervalles plus grands
que le m seront dans le nœud de droite, et ceux plus petits que m seront dans le nœud de gauche
(comme dans un B+-tree). Les intervalles contenant m sont stockés dans une structure se-
condaire attachée à m. La Figure 18.a montre l'Interval B+-tree après l'insertion des intervalles
e11, e12, e21 de la Figure 15. Supposons que la capacité du nœud est 2. Lors de l'insertion de e21,
le nœud initial est plein. La valeur m est égale à 6 c'est-à-dire la valeur du milieu des bornes
triées {0, 4, 6, now}. m est stocké dans le nœud index. Les intervalles e12, e21 sont stockés dans
la structure secondaire attachée à la valeur 6 car ils contiennent la valeur 6. e11 est stocké dans
le nœud de gauche comme le montre la Figure 18.a.
Figure 18. a) Interval B+-tree après l'insertion de e11, e12, e21 de la Figure 15. b) Interval B+-tree
après l'insertion de toutes les versions et d'un intervalle e81 [5, 12].
6
e11[0, 4]
e12 [0, now]
e21 [0, 6]
feuille àgauche
Nœud index
Structuresecondairedu 6
feuille àdroite
6
e11[0, 4]
e41 [2, 4]
e12 [0, now]
e21 [0, 6]
e31 [0, 10]
e81 [5, 12]
e42 [8, now]
e32 [8, 10]
e61 [11, now]
e71 [12, now]
e42 [8, now]
e32 [8,10]
e51 [10, now]
10
Structure tertiaire
Structureprimaire
Structuresecondaire
a. b.
Chapitre 3. Etat de l’art
55
Toutes les valeurs dans les nœuds index sont maintenues dans un arbre binaire, appelé
structure tertiaire. Lors d'une insertion, si l'intervalle à insérer contient plusieurs valeurs dans
les nœuds index, l'intervalle sera stocké dans la structure secondaire attachée à la première va-
leur rencontrée dans l'arbre binaire. La Figure 18.b illustre l'Interval B+-tree après l'insertion de
toutes les versions de la Figure 15. Les valeurs 6 et 10 sont donc maintenues dans un arbre bi-
naire. La valeur de la racine de cet arbre est 6. Soit un intervalle à insérer e81[5, 12]. Cet inter-
valle sera stocké dans la structure secondaire attachée à la valeur 6 même si e81 contient les va-
leurs 6 et 10 (car cet intervalle rencontre d'abord la valeur 6 dans l'arbre binaire). Cela permet
d'éviter la duplication du stockage des longs intervalles.
En revanche, un Interval B-tree utilise des structures très compliquées. En outre l'effi-
cacité de l'index dépend de la distribution des données et des valeurs choisies pour m c'est-à-
dire la valeur dans les nœuds index. Un mauvais choix pourrait faire stocker un nombre impor-
tant d'intervalles dans les structures secondaires. Cela entraîne un B+-tree de faible taille et des
structures secondaires de taille importante, ce qui donne de mauvaises performances [BERTINO
et al. 97].
3.2.1.3 MAP21
L'idée principale est de transformer chaque intervalle en un point dans un espace à 1 dimension
et d'indexer par un B+-tree ces points transformés. Un intervalle [Ts, Te] est donc transformé en
un point z = Ts*10s + Te, où s est le nombre maximum de chiffres pour transformer tous les in-
tervalles en points [NASCIMENTO et al. 95]. Un avantage de cette méthode est la facilité de
maintenance de l'index (insertion et suppression) [SALZBERG et TSOTRAS 97]. La Figure 19
montre un exemple de transformation des intervalles avec s = 2.
Figure 19. Transformation des intervalles de MAP21.
Intervalles originaux
Points transformés
Chapitre 3. Etat de l’art
56
Cette méthode suppose que la longueur maximale ∆ des intervalles est connue. Pour
extraire les intervalles chevauchant l'intervalle de la requête r = [Ts, Te], il faut déterminer
deux points z1 et z2 délimitant tous les points qui pourraient satisfaire la requête : z1 = ⎡ ⎡(Ts -
∆)*10s + Ts⎤ ⎤ et z2 = ⎣ ⎣Te*10s + (Te + ∆)⎦ ⎦ avec z1 <= z2 (pour plus de détails voir [NAS-
CIMENTO et al. 95]). D'abord une recherche de z1 dans le B+-tree est effectuée. Ensuite, on
parcourt séquentiellement dans le B+-tree les points transformés de z1 à z2. On vérifie si l'in-
tervalle original de chaque point parcouru intersecte ou non r. Il peut arriver que de nombreux
intervalles qui n'intersectent pas r soient rencontrés durant le parcours entre z1 et z2, ce qui
donne de mauvaises performances [SALZBERG et TSOTRAS 97]. Un autre inconvénient est
que les bornes des intervalles doivent être des valeurs entières, ce qui demande une conversion
des intervalles des champs (qui ne sont, à la base, pas forcement des entiers).
3.2.2 Méthodes d'indexation basées sur les R-trees
La dimension temporelle peut être vue comme une dimension d'un espace multidimensionnel.
Elle peut donc être indexée par une méthode existante d'indexation spatiale. Nous présentons
comment le R-tree [GUTTMAN 84] (ou ses variantes comme le R+-tree [SELLIS et al. 87] ou
le R*-tree [BECKMANN et al. 90]) peuvent être utilisés pour indexer des intervalles. En effet,
il existe de nombreuses méthodes d'indexation spatiale [GAEDE et GUNTHER 95]. Nous utili-
sons la famille des R-trees car elle est reconnue comme une des méthodes d'indexation spatiales
les plus performantes [GAEDE et GUNTHER 95], et elle est aussi utilisée dans de nombreuses
méthodes d'indexation temporelle [SALZBERG et TSOTRAS 97] [FALOUTSOS 96].
Il existe deux façons d'utiliser un R-tree pour indexer des intervalles de temps. Le R-
tree peut être utilisé comme un R-tree à 1 dimension (1-D R-tree) ou comme un R-tree à 2 di-
mensions (2-D R-tree). Dans un premier temps, nous présentons le R-tree brièvement. Ensuite,
nous présentons les méthodes d'indexation des intervalles basées sur les R-trees.
Chapitre 3. Etat de l’art
57
3.2.2.1 R-tree
La méthode R-tree est une extension multidimensionnelle de B-tree, et utilise des Rectangles
Englobants Minimaux (MBR, Minimum Bounding Rectangle). Supposons un espace à 2 dimen-
sions. Chaque objet spatial est encadré par un MBR, les MBRs proches étant regroupés dans un
autre MBR, et ceci de manière récursive (voir la Figure 20).
Figure 20. Exemple de R-tree.
Un élément d'un nœud intermédiaire est noté (p, RECT) où p représente le pointeur sur
le nœud fils de l'élément et RECT est le MBR de l'élément. Un élément d'une feuille est noté
(oid, RECT) où oid est l'identifiant de l'objet et RECT est son MBR.
Pour trouver les objets intersectant la zone de la requête, l'algorithme descend dans
l'arbre depuis la racine (on l'appelle l'algorithme 'Intersect'). L'algorithme traverse récursive-
ment les sous-arbres ayant leurs MBRs intersectant la zone de la requête. Au niveau des feuil-
les, chaque objet ayant un MBR intersectant la zone de la requête sera extrait afin de tester s'il
intersecte la zone de requête (voir la Figure 20).
A B C
D E F GN
M M
D
G
I
K
E
F
HJ
H I J K L M N
B
C
A
la zone dela requête
Chapitre 3. Etat de l’art
58
3.2.2.2 1-D R-tree
Pour utiliser un 1-D R-tree, les intervalles de temps [Ts, Te] sont traités comme des segments
de lignes dans un espace à 1 dimension. En effet, dans les TDB un objet temporel possède une
clé (c'est-à-dire un identifiant - les versions d'un même objet possèdent la même clé). Pour in-
dexer les intervalles de temps et les clés des objets en même temps, on utilise le 2-D R-tree plu-
tôt que le 1-D R-tree. Dans ce cas, les intervalles sont considérés comme des segments de ligne
sur un premier axe et les clés sont représentées sur un second axe. En revanche, pour l'indexa-
tion par valeurs dans les champs continus, nous avons seulement besoin d'indexer les interval-
les. Nous utilisons donc un 1-D R-tree.
Pour extraire les intervalles qui chevauchent l'intervalle de la requête, il suffit d'exécu-
ter l'algorithme 'Intersect' dans le R-tree.
Il est connu que cette solution offre en moyenne de bonnes performances [SALZBERG
et TSOTRAS 97]. En revanche, il peut arriver que les longueurs des intervalles ne soient pas
très uniformes (par exemple, dans le cas d'une grande proportion de "courts intervalles" et une
petite proportion de "longs" intervalles). Dans ce cas, les longs intervalles causent des chevau-
chements entre MBRs, lors de l'utilisation d'un 1-D R-tree. Ces chevauchements entre MBRs
peuvent devenir très importants et dégrader les performances de la recherche (comme observé
dans [KOLOVSON et STONEBRAKER 91]). En effet, ces chevauchements entraînent la multi-
plication du nombre des nœuds à tester et dégradent les performances de la recherche dans le R-
trees [SALZBERG et TSOTRAS 97]. Afin de traiter ce problème, la méthode Segment R-tree
(SR-tree) a été proposée.
SR-tree
Contrairement au R-tree, le SR-tree stocke les intervalles non seulement dans les feuilles mais
aussi dans les nœuds intermédiaires [KOLOVSON et STONEBRAKER 91]. Un intervalle I est
stocké dans un nœud intermédiaire N si I couvre au moins un MBR de ses nœuds fils (comme I1
dans la Figure 21). Si un intervalle couvre un MBR d'un nœud et dépasse le MBR de son nœud
père, il sera divisé en partie couvrante et partie restante. Et les deux parties sont stockées dans
différents endroits (comme I2 dans la Figure 21). Les longs intervalles seront donc placés dans
Chapitre 3. Etat de l’art
59
des nœuds plus hauts que dans le cas du R-tree. Ainsi le SR-tree diminue les chevauchements
entre les MBRs.
Figure 21. SR-tree.
L'apparition d'un grand nombre d'intervalles couvrant les nœuds diminue le nombre
des nœuds fils car ces intervalles prennent la place destinée à l'origine aux nœuds fils (ex. poin-
teurs sur les nœuds fils, etc.)
3.2.2.3 2-D R-tree avec transformation
Pour indexer les intervalles de temps par un 2-D R-tree, les intervalles [Ts, Te] sont transformés
en points dans un espace à 2 dimensions [FALOUTSOS 96] [BERTINO et al. 97] [SALZBERG
et TSOTRAS 97]. Les points transformés sont donc indexés dans un 2-D R-tree. La Figure 22.b
illustre les points transformés à partir des intervalles de la Figure 22.a. Les MBRs (représentés
par les rectangles en pointillé) dans le 2-D R-tree sont aussi illustrés dans la Figure 22.b.
racineA
C
DB
I2 I1
racine I1 couvrant C
A C
la parti de I2couvrant B DB
la parti de I2restante
Chapitre 3. Etat de l’art
60
Figure 22. 2-D R-tree avec transformation.
En effet, dans les TDB, les intervalles ayant comme attribut (clé, Ts, Te) peuvent être
transformés en points à 3 dimensions. Les points peuvent alors être indexés dans un 3-D R-tree.
Les intervalles et les clés sont ainsi indexés en même temps. Puisque que nous nous intéressons
seulement à l'indexation des intervalles, nous utilisons un 2-D R-tree.
Notons que tous les points transformés se retrouvent dans la zone où l'axe Te ≥ Ts car
la fin d'un intervalle est toujours supérieure ou égale à son début.
Le traitement des requêtes s'effectue dans l'espace transformé. Soit l'intervalle de la
requête QT = [QTs, QTe]. Pour extraire les intervalles qui chevauchent QT, il faut tester si
chaque intervalle I satisfait la condition suivante : (début de I) ≤ QTe et (fin de I) ≥ QTs. Dans
la Figure 23, cette condition implique la recherche des points contenus dans la zone colorée de
la requête dans l'espace transformé. Cela revient à exécuter l'algorithme 'Intersect' avec la zone
de la requête dans le R*-tree construit à partir des points transformés.
En effet, la zone de la requête transformée est un polygone complexe car elle prend en
compte que tous les points se retrouvent dans la zone où l'axe Te ≥ Ts. Pour simplifier, nous
transformons l'intervalle de la requête en un rectangle donnant les mêmes résultats comme indi-
qué ci-dessous :
Trans_Inter ([QTs, QTe]) = (0, QTs, QTe, Tmax),
Te
0 1 2 3 4 5 6 7 8 temps
I1
I4
I6
a. Dimension originelle des intervalles de temps b. Espace transformé
Ts = Te
I2I6
I4
I1
I5
I3
I5
I3I2
0 1 2 3 4 5 6 7 8 Ts
8
7
6
5
4
3
2
1
I7
I7
Chapitre 3. Etat de l’art
61
où Trans_Inter est la fonction de transformation d'un intervalle de la requête en un rectangle. Le
rectangle transformé est représenté par les deux points extrêmes du rectangle (Tslow, Telow, Tshigh,
Tehigh) (voir la Figure 23). Tmax est une valeur maximale possible dans le champ.
La Figure 23 illustre un exemple du traitement de requêtes avec l'intervalle de requête
[2.5, 4.5] en utilisant les points transformés de la Figure 22. L'intervalle [2.5, 4.5] est transfor-
mé en un rectangle (0, 2.5, 4.5, Tmax). Pour indexer ces points transformés, nous exécutons
donc l'algorithme 'Intersect' dans le 2-D R-tree avec le rectangle de la requête transformée.
Figure 23. Requêtes dans l'espace transformé.
Comme nous l'avons présenté (dans la partie dédiée au 1-D R-tree), dans le cas du 1-D
R-tree, les longs intervalles dégradent les performances de la recherche. Ceci est dû aux che-
vauchements des MBRs. Cette approche de la transformation est efficace pour traiter ces longs
intervalles. En effet, les longs intervalles sont regroupés s'ils sont proches. Les courts interval-
les sont aussi regroupés suivant le même critère de proximité [SALZBERG et TSOTRAS 97].
Les MBRs se chevauchent moins que dans un 1-D R-tree. La Figure 24 illustre la comparaison
du 1-D R-tree et du 2-D R-tree (avec transformation) selon leurs chevauchements de MBRs.
Comme le montre la Figure 24, un 2-D R-tree avec transformation peut diminuer les chevau-
chements de MBRs existant dans un 1-D R-tree. Notons que dans la Figure 24.a, les MBRs dans
le 1-D R-tree sont des segments sur la dimension du temps.
* intervalle de la requête[QTs, QTe] = [2.5, 4.5]
QTsQTe
* rectangle de la requête transformé :(0, QTs, QTe,Tmax) = (0,2.5, 4.5, Tmax)
(Tslow, Telow) √
√ (Tshigh, Tehigh)
la zone de larequête transformé
Te
Ts = Te
I2I6
I4
I1
I5
I3
0 1 2 3 4 5 6 7 8 Ts
8
7
6
5
4
3
2
1I7
Tmax
Chapitre 3. Etat de l’art
62
Figure 24. Comparaison entre un 1-D R-tree et un 2-D R-tree avec transformation.
3.2.3 Conclusion
Nous avons présenté les méthodes d'indexation existantes pour des données intervalles (surtout
dans le domaine des TDB). Dans cette sous-section, nous allons choisir une méthode pour in-
dexer des intervalles de champs. Les méthodes que nous avons présentés sont : Time Index, In-
terval B-tree, MAP21, 1-D R-tree, SR-tree, 2-D R-tree avec transformation. Parmi ces métho-
des, nous choisissons le 2-D R-tree avec transformation pour les raisons suivantes :
a) Il fallait choisir une méthode telle que le B-tree ou le R-tree c'est-à-dire une méthode
pouvant être aussi utilisée pour d'autres types de requêtes dans les BD de champs conti-
nus (par exemple, le R-tree peut être utilisé pour les requêtes conventionnelles basé sur
une condition spatiale - voir section 2.1). En effet, nous souhaitons éviter de gérer si-
multanément plusieurs méthodes d'indexation. Les deux méthodes citées ci-dessus sont
reconnues comme étant les plus efficaces, respectivement, pour l'indexation alphanumé-
rique et pour l'indexation spatiale. De plus, elles ont déjà été implémentées dans plu-
sieurs SGBD. Nous éliminons Interval B-tree et SR-tree car ils n'utilisent pas le B-tree
ou le R-tree tel quel. De plus, l'Interval B-tree utilise une structure plus complexe que
les autres.
0 1 2 3 4 5 6 7 8 temps
I1
I5
I3 I4
I2
b. 2-D R-tree avec transformation
Te Ts = Te
I5
I2
I4I3
0 1 2 3 4 5 6 7 8 Ts
8
7
6
5
4
3
2
1
I1
chevauchementde deux MBRs
a. 1-D R-tree
MBRs
MBRs
Chapitre 3. Etat de l’art
63
b) Le Time Index n'est pas efficace à cause des duplications des données pour les longs
intervalles. Le 1-D R-tree n'est pas non plus très efficace à cause des chevauchements
des MBRs pour les longs intervalles. Il est possible que certains intervalles de champs
soient beaucoup plus longs que d'autres. Il fallait ainsi prendre en compte cet aspect. Les
méthodes efficaces pour les longs intervalles sont le SR-tree et le 2-D R-tree avec trans-
formation. Puisque nous avons éliminé le SR-tree, nous choisissons finalement le 2-D R-
tree pour indexer les intervalles de champs continus.
Dans le contexte de l'indexation des intervalles dans les TDB, la famille des R-trees
possède des limites. En effet, les intervalles de temps peuvent avoir les bornes fin non définies,
(représentées par la valeur "now") car le temps est un espace en continuelle expansion. En re-
vanche, le R-tree (et aussi la plupart des autres méthodes d'indexation spatiale) considèrent que
l'espace est délimité. Un R-tree ne peut donc pas traiter des intervalles ayant les bornes fin non
définies [BERTINO et al. 97]. En revanche, ce n'est pas le cas pour les intervalles des champs
continus car les valeurs qui déterminent les intervalles sont bien des valeurs définies. Ainsi
cette limite du R-tree dans les TDB ne pose pas de problème pour indexer des intervalles de
champs. Nous utilisons donc un 2-D R-tree.
Note) [SELLIS et al. 87] et [BECKMANN et al. 90] ont proposé des variantes du R-tree, (res-
pectivement le R+-tree et le R*-tree). Dans un R+-tree, les MBRs ne doivent pas se chevaucher
pour que les chemins d'accès dans un R-tree ne soient pas multipliés. Si un MBR chevauche un
autre MBR, on le découpe en deux nouveaux MBRs de façon à éviter les chevauchements. La
différence entre le R-tree et le R*-tree est la suivante. Le R*-tree essaie de construire des MBRs
plus efficaces en prenant en compte de plusieurs critères comme par exemple, minimiser la zone
couverte par les MBRs, minimiser la superposition entre les MBRs, etc.
Dans la littérature, il est bien montré que le R*-tree fonctionne mieux que le R-tree et
le R+-tree [BECKMANN et al. 90] [THEODORIDIS et PAPADIAS 95] [KIM et al. 95]. Ainsi,
nous utilisons le R*-tree plutôt que le R-tree original. Nous allons donc considérer le 2-D R*-
tree avec transformation pour l'indexation des intervalles. La structure et les algorithmes de trai-
tements des requêtes du R-tree et du R*-tree sont identiques. Donc les explications ci-dessus
concernant le R-tree sont aussi appliquées au R*-tree.
Chapitre 3. Etat de l’art
64
3.3 Conclusion
Dans ce chapitre, nous avons présenté dans un premier temps, l'état de l'art des travaux sur les
méthodes d’indexation par valeurs dans plusieurs applications de champs continus. Les travaux
présentés nous ont conduit à développer une autre méthode d’indexation car ils ne sont pas
adaptés à nos objectifs : 1) l’indexation par valeurs dans une base de données de grand volume
2) la prise en compte de la continuité des données.
Dans un deuxième temps, nous avons étudié des méthodes d’indexation existantes pour
des données intervalles. Ces études proviennent de la réflexion sur la nécessité d’une méthode
d’indexation des intervalles. Par exemple, pour l’indexation par valeurs, la méthode la plus
simple et intuitive est d’indexer l’intervalle de chaque cellule (méthode I-ALL qui va être pré-
sentée dans le chapitre suivant) par une méthode existante. Une méthode de type 2-D R*-tree
avec transformation a été choisie pour indexer les intervalles dans un champ continu. Ainsi,
nous allons appliquer cette méthode à chaque fois que nous en avons besoin.
Dans le chapitre suivant, nous abordons le développement des méthodes d’indexation
par valeurs.
Chapitre 4. Indexation par valeurs
66
4. Indexation par valeurs
Dans ce chapitre, nous proposons de nouvelles méthodes d'indexation par valeurs reposant sur
le concept de sous-champs. Ce nouveau concept est basé sur l’exploitation de la caractéristique
principale des données champs, à savoir la continuité dans l’espace et parfois dans le temps.
Nous définissons le concept de sous-champ et nous décrivons les procédures de traite-
ment de requêtes dans les bases de données champs. L’intérêt de l’utilisation des sous-champs
est mis en évidence pour l’indexation par valeur.
Ensuite, nous présenterons deux méthodes d’indexation basées sur le concept de sous-
champs qui se distinguent par une implémentation différente des sous-champs.
4.1 Méthode simple : Méthode I-All
Comme mentionné dans le chapitre précédent, répondre aux requêtes par valeurs re-
vient à trouver un moyen afin d'indexer des cellules dont les intervalles chevauchent la valeur
des requêtes.
Considérons une base de données stockant un champ continu. Nous pouvons associer
un intervalle à chaque cellule. Les bornes d'un intervalle sont les valeurs minimale et maximale
de l'ensemble de toutes les valeurs possibles à l'intérieur de la cellule associée. L'intervalle
d'une cellule peut être déterminé par une fonction FI définie dans chaque application en fonc-
tion du modèle utilisé (voir la section 2.2.1).
Une méthode simple et intuitive consiste à indexer tous les intervalles associés aux cel-
lules couvrant l'espace du champ. Nous avons choisi une méthode 2-D R*tree avec transforma-
tion pour indexer des intervalles (voir section 3.2.3). Tous les intervalles sont donc transformés
Chapitre 4. Indexation par valeurs
67
en points à 2 dimensions. Un 2-D R*-tree est utilisé pour indexer ces points. Nous appelons
cette méthode la méthode I-All, où I représente le terme Intervalle.
4.1.1 Structure des données
Un intervalle d'une cellule est formé de :
(obj_ptr, min, max),
où obj_ptr est un pointeur sur la cellule associée à l’intervalle à insérer et min et max sont des
bornes de l'intervalle de la cellule.
Nous transformons l'intervalle de chaque cellule en un point et insérons chaque point
transformé dans un 2-D R*-tree pour les indexer. La structure d'un 2-D R*-tree pour les points
transformés est de la forme :
Nœud intermédiaire : ptr, RECT …….. identique
Feuille : obj_ptr, RECT …… identique
où ptr est un pointeur sur le nœud fils et RECT représente un MBR ( RECT d'une feuille est un
MBR d'un point transformé à partir de l'intervalle d'une cellule).
Notons que le obj_ptr d'un intervalle est stocké dans une feuille de R*-tree. Ce poin-
teur est nécessaire pour extraire l'information d'une cellule (ex. les points-échantillons de la cel-
lule, etc.) pour l’interpolation.
4.1.2 Procédure de recherche
Considérons w comme la valeur d’une requête. Le w peut être soit une valeur soit un intervalle.
Pour la généralisation, nous considérons w comme un intervalle [min, max] car une valeur uni-
que est le cas où min = max.
Pour trouver les régions où la valeur est égale à w, il faut trouver les cellules dont les
intervalles chevauchent w. Ainsi, w sera d'abord transformé en un rectangle de la requête rw par
la fonction Trans_Inter(w) (voir la section 3.2.2.3). Ensuite, il suffit d'exécuter l'algorithme 'In-
tersect' dans le R*-tree construit par les points transformés avec la condition r pour trouver des
Chapitre 4. Indexation par valeurs
68
points contenu dans rw , ce qui donne en effet les intervalles chevauchant w. La procédure pour
le traitement des requêtes par valeurs avec l'indexation I-All est présentée ci-dessous.
Algorithme 1. Traitement des requêtes par la méthode d'indexation I-All.
La fonction Trans_Inter-1, qui est la fonction inverse de Trans_Inter, retourne l'inter-
valle d'origine de la requête à partir d'un rectangle. La différence avec l'algorithme originel 'In-
tersect' d'un R*-tree est d'invoquer la procédure Estimer (extraire une cellule désignée et exécu-
ter l'interpolation) pour les intervalles intersectant la valeur de la requête. En effet, les cellules
associées à ces intervalles contiennent les régions de réponse. Nous appelons ces cellules conte-
nant la réponse, des cellules candidates. La réponse exacte doit être calculée dans la procédure
Estimer.
4.1.3 Problèmes
Dans les bases de données de champs, on trouve, pour des questions de précision, de gros vo-
lume de cellules. Si on utilise une méthode d'indexation efficace déjà existante comme le R*-
Tree est un avantage indéniable, la méthode I-All pose deux problèmes :
Procédure Intersect(nœud n du R*-tree, rectangle de la requête rw) : // Rechercher les nœuds intermédiaires Si n est un nœud intermédiaire alors pour chaque élément (ptr, RECT) de n dont le RECT intersecte rw Intersect(fils, rw), où fils est le nœud pointé par ptr
// Rechercher les feuilles Sinon pour chaque élément (obj_ptr, RECT) dont le RECT intersecte rw
Estimer(obj_ptr, Trans_Inter-1(rw)) FinProcédure
Procédure Estimer(pointeur obj_ptr, valeur de la requête w)
Extraire la cellule pointé par obj_ptr et estimer les régions correspondant à w dansla cellule extraite
FinProcédure L'algorithme commence par l'appel suivant : Rechercher (Racine du R*-tree, rectangle de la requête transformé rw)
Chapitre 4. Indexation par valeurs
69
Problème 1). La taille du fichier d'index (R*-Tree) est importante et le temps de la re-
cherche dans la structure du R*-Tree devient long à cause d'un grand nombre de données
(intervalles) à traiter. Ceci n'est pas efficace à la fois en terme d'espace et en terme de
vitesse de recherche. En outre, la vitesse de recherche est d’autant plus ralentie que les
intervalles similaires se chevauchent, ce qui est une caractéristique courante des données
de types champs continus.
Problème 2). Dans l'étape Estimation, l'extraction des cellules candidates utilisées pour
interpoler la réponse exacte se fait cellule par cellule. Autrement dit, un nouvel accès au disque
dur est nécessaire pour l'extraction de chaque cellule. Parfois, cela entraîne une performance
plus mauvaise que la méthode de Balayage Séquentiel comme l’illustre les figures dans le cha-
pitre 5 "Implémentation et performance"
Afin de résoudre les problèmes de la méthode I-All, nous proposons dans la section
suivante une nouvelle approche basée sur la continuité des données de champs. Ensuite, nous
présentons l’application de cette approche pour une indexation par valeurs.
4.2 Sous-champs
La continuité est une des caractéristiques importantes dans les données de champs continus. Par
continuité, des points proches spatialement dans un champ continu sont censés posséder des va-
leurs plus proches que s’ils sont éloignés [PARIENTE 94]. Cela signifie que des cellules voisi-
nes dans l’espace deviendront probablement des cellules candidates en même temps pour une
requête donnée.
Nous proposons ainsi de diviser un champ en plusieurs sous-champs [LAURINI et al.
99] [KANG et al. 99]. Un sous-champ est défini comme un sous-espace qui possèdent des va-
leurs similaires (proches). Puisque l’espace d’un champ est entièrement couvert par un ensem-
ble de cellules, la division de l'espace total du champs en plusieurs sous-champs peut être inter-
prétée comme une partition des cellules voisines (connectées) en plusieurs sous-champs.
Chapitre 4. Indexation par valeurs
70
4.2.1 Définition d’un sous-champ
Comme présenté plus haut, un sous-champ est un sous-espace homogène au niveau des valeurs.
Autrement dit, c’est un sous-espace dans lequel les valeurs sont proches.
Soit un champ F, le iéme sous-champ de F peut être défini par son intervalle comme
suit :
SFi = (id, Vmin,i, Vmax,i ),
où id est l'identifiant, Vmin,i et Vmax,i représentent respectivement le minimum et le maximum des
valeurs du sous-champ SFi.
Il est possible d’avoir d’autres types de valeurs que Vmin,i et Vmax,i pour d’autres types de
requêtes du champ, par exemple la moyenne des valeurs pour un sous-champ. Pour les requêtes
de valeurs visées par nos travaux, nous utilisons le minimum et le maximum comme définis ci-
dessus.
La Figure 25 montre l’exemple d’un champ à 2 dimensions découpé en sous-champs.
Le plan spatial XY est projeté sur l’axe unidimensionnel Espace V afin de simplifier le schéma.
Figure 25. Sous-champs dans un champ à 2 dimension.
Dans cette figure, un sous-champ est représenté par un rectangle. En fait, chaque rec-
tangle, c’est-à-dire chaque sous-champ, contient (ou chevauche pour le cas où juste une partie
d’une cellule fait partie d’un sous-champ) certaines cellules voisines dans toutes les dimensions
Valeur w
Espace v
sous-champs SF
champ F
Chapitre 4. Indexation par valeurs
71
du champ, donc dans la dimension des Valeurs w et aussi d’Espace v. Ces cellules contenues
dans les sous-champs ne sont pas représentées dans cette Figure afin de simplifier le schéma.
La largeur et la hauteur d’un rectangle représentent la forme de l’aire Ai et l’intervalle
des valeurs d’un sous-champ Fi. Notons que ces hauteurs ne sont pas très élevées car les valeurs
à l’intérieur d’un sous-champ sont proches les unes des autres.
Par ce fait, nous pouvons dire que l’un des critères sur la similarité des valeurs à l'inté-
rieur d'un sous-champ pourrait être défini par la taille de l'intervalle du sous-champ, c’est-à-
dire la différence entre les valeurs minimales et maximales parmi toutes les valeurs possibles à
l'intérieur du sous-champ.
Stockage des sous-champs
En ce qui concerne le stockage des données de cellules regroupées logiquement dans des sous-
champs, nous proposons aussi de rassembler « clusteriser » physiquement des cellules voisines
sur le disque dur. Les cellules voisines à l’intérieur d’un sous-champ sont alors stockées ensem-
ble afin d’éviter un trop grand nombre d’accès au disque dur lors de l’extraction des informa-
tions des cellules pour l’interpolation. Il s’agissait du problème pour la méthode I-All (voir la
section 4.1.3, problème 2). La raison est que les cellules dans un sous-champ sont censées être
proches et qu’elles seront accédées en même temps pour une requête donnée. En étant proches
sur le disque, les cellules à extraire pourront être obtenues par un seul accès sur le disque (ou
par un nombre faible d'accès).
Chapitre 4. Indexation par valeurs
72
4.2.2 Stratégies de traitement des requêtes basées sur l’approche des sous-champs
Nous utilisons les intervalles des sous-champs. L’intervalle d’un sous-champ peut être obtenu
par un simple calcul sur les intervalles des cellules contenues par le sous-champ car il contient
tous les intervalles de ses cellules.
Connaissant une requête par valeurs, nous déterminons d’abord les sous-champs pos-
sédant des intervalles chevauchant la valeur de la requête (Rappellons que la méthode I-All
cherche directement toutes les cellules dont les intervalles chevauchent la valeur de la requête).
En effet, il est évident que si une requête par valeurs chevauche l’intervalle d’une cellule à
l’intérieur d’un sous-champ alors elle doit aussi chevaucher l’intervalle du sous-champ.
Ensuite, les régions exactes répondant à la requête seront calculées par la fonction
d’interpolation sur les cellules à l’intérieur des sous-champs issus de l'étape précédente. Notons
que les cellules à interpoler ne contiennent pas forcément les régions résultats mais elles ont une
forte probabilité de les contenir.
Nous définissons la procédure de traitement de requêtes par valeurs basée sur les sous-
champs comme suit :
[Etape Filtrage] : rechercher les sous-champs dont les intervalles chevauchent la va-
leur de la requête w' .
[Etape Estimation] : extraire les cellules à l’intérieur des sous-champs issus de l’étape
Filtrage et estimer les régions exactes répondant à la requête donnée par une méthode d'interpo-
lation à partir des cellules extraites.
L’étape Filtrage ne sélectionne que les sous-champs contenant des cellules candidates
potentielles, c’est à dire ceux qui satisfont probablement à la condition de la requête ; cette
étape permet d’éviter le parcours de toutes les cellules du champ.
L'étape Filtrage doit être supportée par une méthode d'indexation car les recherches
dans une base de données sont toujours les grandes consommatrices de temps. Nous utilisons
alors une structure d'index construite à partir des intervalles de sous-champs afin d'accélérer
l'étape Filtrage car la recherche se fait par sur intervalles de sous-champs.
Chapitre 4. Indexation par valeurs
73
4.2.3 Exemple d’application de la stratégie
La Figure 26, représentant un champ de température, illustre la procédure du traitement de re-
quête par valeurs définie ci-dessus. Afin de simplifier le schéma, le plan XY a été projeté sur
l’axe Espace v et le deuxième axe donne les valeurs des champs. On prend l’hypothèse que les
cellules sont des triangles irréguliers.
Figure 26. Sous-champs dans un champ de température.
Supposons que la requête donnée soit "Déterminer les régions pour lesquelles la tem-
pérature varie entre 20°C et 25°C".
L’étape Filtrage conduit à sélectionner les trois sous-champs, notés 1, 2 et 6 dans la
Figure 26, et qui ont une intersection avec l’intervalle de requête. L'étape Estimation consiste
alors à extraire les triangles contenus dans (ou intersectant) les trois sous-champs sélectionnés
et à effectuer le calcul de l’estimation sur les triangles extraits pour trouver des régions dont la
température varie entre 20°C et 25°C.
Valeur w
Espace v
20 °
25 °sous-champ 1
2
34
56
7
Chapitre 4. Indexation par valeurs
74
4.2.4 Intérêts de l'exploitation des sous-champs
Comme présentée dans la section 4.1.3, la méthode I-All pose deux grands problèmes. Dans
cette partie, nous rappelons brièvement les problèmes posés et nous montrons comment ils peu-
vent être résolus par l'utilisation des sous-champs.
Problème 1) La taille du fichier d'index : comme la méthode I-All utilise une structure
d'index construite à partir des intervalles de toutes cellules du champ entier, la taille du fichier
d'index devient importante et cela entraîne des recherches lentes dans la structure de l'index.
Résolution du problème 1) : par l'utilisation des sous-champs, nous indexons seu-
lement les intervalles des sous-champs plutôt que les intervalles individuels de toutes les cellu-
les comme dans la méthode I-All. Puisqu’un sous-champ est un ensemble de plusieurs cellules,
il est évident que le nombre des intervalles des sous-champs est beaucoup plus petit que celui de
toutes les cellules du champ. La taille du fichier d'index devient donc très réduite et les recher-
ches dans la structure d’index plus rapides.
Problème 2) Dans la méthode I-All, les cellules participant à l'interpolation durant
l'étape Estimation sont extraites une par une donc un accès au disque dur est requis pour l'ex-
traction de chaque cellule. Cela dégrade dramatiquement la performance.
Résolution du problème 2) : grâce à la proposition de stockage des sous-champs
(voir la section 4.2.1), nous pouvons résoudre le problème 2. Puisque les cellules voisines dans
un sous-champ sont rassemblées (cluster) sur le disque dur, les cellules candidates potentielles
contenues dans les sous-champs issus de l'étape Filtrage peuvent être extraites en masse par un
accès au disque dur. Evidement, le nombre exact des cellules à extraire par un accès au disque
dépend de la taille de page disque du système utilisé.
En effet, cela implique des accès au disque dur par unité de sous-champs plutôt que par
unité de cellule individuelle. Le nombre d'accès au disque dur peut donc être réduit. En outre,
cette proposition de clustering spatial est considéré comme très efficace pour le traitement des
requêtes conventionnelles basées sur la condition spatiale[LI 92].
Chapitre 4. Indexation par valeurs
75
4.2.5 Implémentation des sous-champs
A présent, nous devons définir la méthode d’implémentation des sous-champs. Comment peut-
on diviser l'espace d'un champ en plusieurs sous-champs afin qu’ils puissent posséder des va-
leurs similaires ?
Nous définissons deux aspects à prendre en compte pour implémenter des sous-
champs.
1. La façon de découper l'espace :
Le découpage d’un champ en sous-champs peut être effectué de diverses façons. Aussi,
ce découpage peut être vu comme un regroupement de certaines cellules voisines
(connectées) en sous-champ car l'espace du champ est totalement couvert par les cellu-
les.
2. Le critère de similarité des valeurs d’un sous-champ :
Le découpage spatial (ou le regroupement) doit être effectué à condition que les sous-
champs possèdent des valeurs similaires. Pour cela, il faut définir le critère de similarité
des valeurs d'un sous-champ afin de décider si le découpage (ou regroupement) peut ou
non s'effectuer.
Dans la section suivante, nous présentons plusieurs nouvelles méthodes pour l'indexa-
tion et l'implémentation des sous-champs. Dans un premier temps, nous présentons une méthode
nommée Interval Quadtree reposant sur le découpage spatial du quadtree [SAMET 90a] [SA-
MET 90b] [LAURINI 92]. Nous présentons comment l'indexation pour les requêtes par valeurs
est réalisée dans la méthode Interval Quadtree. Ensuite, les problèmes posés par la méthode In-
terval Quadtree seront mis en évidence et une autre méthode sera proposée afin d’améliorer les
performances de l’Interval Quadtree.
Chapitre 4. Indexation par valeurs
76
4.3 Méthode Interval Quadtree
Après avoir donné la définition de la méthode, nous en présentons deux implémentations.
4.3.1 Définition
Comme nous l'avons défini dans la section précédente, il faut prendre en compte deux critères
pour implémenter des sous-champs. La première méthode nommée Interval Quadtree [KANG et
al. 99] est décrite selon la définition de ces deux critères :
4.3.1.1 La façon de découper l'espace
Le découpage repose sur une division en quadtree de régions. Rappelons qu’à l’origine, le quad-
tree (arbre de quadrants) [SAMET 90a] [SAMET 90b] a principalement été utilisé pour la repré-
sentation d’images « bitmap » ou d’objets spatiaux en mode raster. Le principe du quadtree re-
pose sur un découpage récursif en quadrants. Par exemple, une image bitmap est divisée en
quatre quadrants, puis chaque quadrant est divisé de nouveau en quatre quadrants etc. L’arrêt du
processus intervient lorsque chaque quadrant a satisfait certaines conditions.
Nous appliquons le même principe pour le découpage d’un champ en sous-champs. Le
champ est d’abord divisé en quatre sous-champs et le processus se répète jusqu’à ce que chaque
sous-champ satisfasse une condition donnée (le critère est défini ci-dessous).
Si le champ est tridimensionnel, alors il s'agira d'octrees ou de 2n-trees en généralisant.
Par simplicité, on continuera à parler de quadtrees.
4.3.1.2 La similarité des valeurs d’un sous-champ
Nous utilisons la taille de l'intervalle de sous-champ pour définir le critère de similarité des va-
leurs ; La taille de l'intervalle d'un sous-champ est la différence entre la valeur maximale et la
valeur minimale du champ. Lorsqu'un sous-champ possède des valeurs proches, la taille de l'in-
tervalle du sous-champ ne peut pas être élevée. Nous utilisons une taille maximale prédétermi-
Chapitre 4. Indexation par valeurs
77
née, un seuil, pour les intervalles. Les valeurs dans le sous-champ sont proches si la taille de
l’'intervalle d'un sous-champ ne dépasse pas ce seuil préalablement fixé.
En résumé, un champ est d’abord divisé en quatre sous-champs et le processus se ré-
pète jusqu’à ce que la taille de l'intervalle de chaque sous-champ soit inférieure au seuil préala-
blement fixé.
En effet, un Interval Quadtree est distingué par le critère de division et la structure de
données d'un Quadtree général qui sont définis spécialement pour le traitement de requêtes par
valeurs.
4.3.2 Exemple de génération des sous-champs par Interval Quadtree
Prenons un exemple. La Figure 27 montre le découpage en quadtree d’un champ. Le seuil de di-
vision a été fixé à 10.
La Figure 27.a illustre un champ représenté par un DEM à 2 dimensions. Chaque cel-
lule possède donc des points-échantillons sur les quatre sommets et l'interpolation bilinéaire est
utilisée pour estimer une valeur en un point non échantillonné. Les valeurs du champ oscillent
entre 46 et 80.
Comme présenté sur la Figure 27.b, l'espace est divisé en quatre quadrants car la taille
de l'intervalle du champ (c’est-à-dire [46, 80]) a excédé le seuil fixé dans la Figure 27.a. Les
nombres dans chaque quadrant correspondent à l’intervalle des valeurs du quadrant (minimum,
maximum). Pour qu’un quadrant soit un sous-champ, la taille de cet intervalle ne doit pas excé-
der 10 unités c’est-à-dire le seuil fixé.
La Figure 27.c et d montrent le résultat du découpage étape par étape. La Figure 27.d
est le résultat de la dernière étape car les intervalles de tous les quadrants respectent le seuil
fixé. Ainsi, le découpage s'arrête.
La Figure 28 présente le quadtree correspondant. A chaque nœud est associé un numé-
ro d’identifiant et un intervalle de mesure correspondant au quadrant respectif. Les feuilles du
quadtree en carré coloré dans la Figure 28 représentent les sous-champs obtenus dans la Figure
27.d.
Chapitre 4. Indexation par valeurs
78
Figure 27. Exemple de la procédure de découpage dans la méthode Interval Quadtree.
46
50
55
70
73
73
79
78
49
56
60
64
75
80
79
77
52
59
74
62
76
78
80
78
55
68
78
73
74
75
76
73
60
61
63
65
64
70
73
73
62
64
68
68
66
65
72
68
63
61
62
70
69
68
65
66
66
65
66
69
64
69
64
63
68
70
67
64
60
58
60
61
7976767575696662 64
= points-échantillons
64,70 46,78
73,8058,75
60,66 65,75
64,73
73,80
68,78 64,74
64,70
46,65
58,69
59,68
73,80
64,70
64,7468,78
59,68
65,75
64,73
60,66
58,69
54,62 55,65
49,59 46,56
a) Un champ original à 2 dimensions b) Première étape du découpage
c) Deuxième étape du découpage d) Troisième et dernière étape du découpage :
sous-champs obtenus
Chapitre 4. Indexation par valeurs
79
Figure 28. Quadtree correspondant à l'exemple de la Figure 27
4.3.3 Deux implémentations de l’Interval Quadtree
Après avoir donné la définition de l’Interval Quadtree, nous présentons dans cette partie deux
implémentations différentes de ces quadtrees pour l'indexation par valeur. La première est basée
sur une structure d’arbre de pointeurs. La deuxième repose sur un quadtree linéaire.
4.3.3.1 Interval Quadtree implémenté par Pointeur (Pointer-based Interval Quadtree)
Une implémentation facile et intuitive pour le stockage des quadtrees est une structure de don-
nées en arbres avec des pointeurs (Pointer-based Quadtree) [SAMET 90b]. Un Interval Quadtree
implémenté par pointeurs est nommé Pointer-based Interval Quadtree. Par exemple, le Pointer-
based Interval Quadtree de la Figure 27.d stocke l'arbre de la Figure 28 sur le disque tel qu'il
est. Cela signifie que toutes les étapes du découpage sont stockées.
4.3.3.1.1 Structure de données
Comme le montre la Figure 28, chaque nœud intermédiaire contient :
(id, min, max, ptr1, ptr2, ptr3, ptr4),
4(64, 70)
10(68,78) 11(64,74) 12(59,68)
5(46, 78)
3(73, 80)2(58, 75)
1(46, 80)
6(60,66) 7(65,75) 8(58,69) 9(64,73)
13(54,62) 14(55,65) 15(49,59) 16(46,56)
première étape
deuxième étape
troisième étape
Chapitre 4. Indexation par valeurs
80
où id est l'identifiant du quadrant, min et max sont des bornes de l’intervalle des valeurs du qua-
drant concerné. Et les quatre pointeurs ptr1, ptr2, ptr3, ptr4 sont les pointeurs sur les quadrants
enfants (un pour chaque quadrant enfant).
Une feuille contient :
(id, N, Size, min, max, D),
où id est l’identifiant d'un sous-champ. N et Size représentent l'identifiant spatial de la feuille
correspondante, par exemple N est une clé de Peano [PEANO 1890] [LAURINI 92] et Size est la
longueur de la feuille. Min et max sont des bornes de l'intervalle du sous-champ. D est l’adresse
disque à laquelle les cellules contenues dans le quadrant (sous-champ) concerné sont stockées.
Il permet d'extraire des cellules d'un sous-champ pour l'interpolation.
4.3.3.1.2 Procédure de recherche
Avec cette structure arborescente hiérarchique basée sur les pointeurs, nous pouvons traiter des
requêtes par valeurs (Déterminer les régions correspondant à une valeur donnée), comme décri-
tes dans le chapitre précédent, par notre stratégie de filtrage et estimation.
Supposons que nous désirions trouver des régions où la température varie entre [20oC,
25oC]. Dans ce cas, la valeur de la requête est l’intervalle [20oC, 25oC]. L’exécution de la re-
quête s’effectue alors de la façon suivante : le Pointer-based Interval Quadtree est traversé en
examinant si l’intervalle de chaque nœud chevauche la valeur de la requête à chaque niveau.
Les nœuds dont les intervalles n’ont pas d'intersection avec la valeur de la requête sont exclus,
les nœuds restants correspondent aux sous-champs candidats sélectionnés. Ensuite, les cellules
contenues dans les sous-champs candidats sont extraites et une estimation de régions est effec-
tuée. L’algorithme de recherche par un Pointer-based Interval Quadtree est détaillé dans
Algorithme 2.
Chapitre 4. Indexation par valeurs
81
Algorithme 2. Indexation par valeurs basé sur un Pointer-based Interval Quadtree.
Supposons que la valeur du champ de la requête soit donnée par “ Trouver des zones
où la valeur de champ est 76 ?”. Dans l’exemple de la Figure 28, nous pouvons obtenir les
sous-champs filtrés 3 et 10 par les chemins de recherche {1, 3} et {1, 5, 10} respectivement
après exécution de l’Algorithme 2.
Si cet algorithme se révèle certes efficace, nous avons néanmoins mis en évidence
quelques points faibles qui sont les suivants :
- Le premier est un problème traditionnel du Pointer-based Quadtree. En effet, la struc-
ture du Pointer-based Quadtree requiert un grand volume d’espace de stockage ce qui
entraîne de fréquents accès disque lors du parcours des pointeurs.
- Lorsque les régions satisfaisant la condition de la requête sont dispersées sur plusieurs
branches d’un quadtree, plusieurs cheminements dans le quadtree sont nécessaires ce qui
entraîne une dégradation de la performance. Par exemple, quand nous cherchons les
sous-champs dont les intervalles contiennent la valeur 59 qui est la valeur de la requête
dans la Figure 28, nous voyons que les sous-champs satisfaisant la condition de la re-
quête sont {8, 12, 13, 14, 15}. Bien que les intervalles de ces sous-champs soient simi-
laires tels que (58, 69), (59,68), (54, 62), etc., ces sous-champs sont stockés sur des
branches différentes car le Pointer-based Interval Quadtree n’est pas totalement hiérar-
chique au niveau des intervalles des valeurs du champ.
Procédure Indexation par valeurs par un Pointer-based Interval Quadtree Input : P (racine du quadtree),
I (valeur de la requête) Output : B (ensemble des cellules à participer à l'interpolation) A ← {P}. B ← {}. Pour chaque nœud n dans A .
Si n n’est pas feuille et l’intervalle(n) intersecte I, alors insérer quatre enfants noeuds dans A. Si n est feuille et l’intervalle(n) intersecte I, alors extraire les cellules dans n et les insérer dans B.
FinPour FinProcédure
Chapitre 4. Indexation par valeurs
82
Afin de pallier ces problèmes et d’améliorer la performance de l’indexation des
champs continus, nous proposons, dans la partie suivante, une méthode avancée de Pointer-
based Interval Quadtree.
4.3.3.2 Interval Quadtree Linéaire (Linear Interval Quadtree)
Pour éviter les inconvénients de la méthode d’implémentation d’un Pointer-based Quadtree, un
quadtree linéaire représenté par la liste des valeurs des feuilles est souvent utilisé [SAMET
90a][SAMET 90b]. Les éléments de la liste sont habituellement réorganisés en utilisant une
structure en arbre comme un B-tree ou une de ses variations afin d’accélérer la vitesse de re-
cherche. La clé de recherche utilisée pour la structure en arbre est généralement la valeur du
code de localisation de chaque feuille. Cette méthode n’est toutefois pas exploitable pour traiter
les requêtes par valeurs car la condition de la requête ne repose pas sur la localisation des
nœuds mais sur les intervalles de valeurs du champ.
Il faut donc une structure d'index construite à partir des intervalle des sous-champs (les
feuilles) pour utiliser ces intervalles comme clé de recherche, ce qui a été finalement proposé
dans la section 4.2.2. Nous appelons cette implémentation Linear Interval Quadtree.
Dans ces travaux, nous utilisons un 2-D R*-tree par la transformation (voir la section
3.2.2.3) pour indexer les intervalles des sous-champs.
4.3.3.2.1 Structure de données
Un intervalle d'un sous-champ est sous forme de :
(D, min, max),
où D est l’adresse disque à laquelle les cellules dans le sous-champ concerné sont stockées. Et
min et max sont des bornes de l'intervalle des valeurs du sous-champ.
Chaque intervalle du sous-champ est transformé en un point à 2 dimensions et ce point
est inséré dans un 2-D R*-tree. La structure d'un 2-D R*-tree pour les points transformés est de
la forme :
Chapitre 4. Indexation par valeurs
83
où ptr est un pointeur sur le nœud fils et RECT représente un MBR. Notons que l'adresse D
d'un sous-champ est stockée dans une feuille de R*-tree pour extraire l'information des cellules
dans le sous-champ pour l’interpolation.
4.3.3.2.2 Procédure de recherche
La procédure de recherche avec le Linear Interval Quadtree est similaire à celle de la
méthode I-All. Pour trouver les régions où la valeur est égale à w, on transforme w en un rec-
tangle de la requête rw par la fonction Trans_Inter(w) (voir la section 3.2.2.3). L'algorithme 'In-
tersect' dans le R*-tree construit par les points transformés sera exécuté avec la condition rw.
Cela permet de trouver des points contenus dans rw, qui donnent finalement les intervalles che-
vauchant w. La procédure pour les traitements des requêtes par valeur avec l'indexation Linea-
rInterval Quadtree est présentée ci-dessous.
Algorithme 3. Traitement des requêtes par valeur basé sur un Linear Interval Quadtree.
Nœud intermédiaire : ptr, RECT .... identique
Feuille : D, RECT …. identique
Procédure Intersect(nœud n du R*-tree, rectangle de la requête rw) : // Rechercher les nœuds intermédiaires Si n est un nœud intermédiaire alors pour chaque élément (ptr, RECT) du n dont le RECT intersecte rw Intersect(fils, rw), où fils est le nœud pointé par ptr
// Rechercher les feuilles Sinon pour chaque élément (D, RECT) dont le RECT intersecte rw
Estimer(D, Trans_Inter-1(rw))
FinProcédure
Procédure Estimer(pointeur D, valeur de la requête w) Extraire les cellules à l'adresse de disque D Estimer les régions exactes correspondant à w à partir des données des cellulesextraites
FinProcédure L'algorithme commence par l'appel suivant : Rechercher (Racine du R*-tree, rectangle de la requête transformé rw)
Chapitre 4. Indexation par valeurs
84
Trans_Inter-1 retourne la valeur d'origine de la requête à partir d'un (comme dans la
méthode I-All, voir la section 4.1).
4.3.4 Implémentation, Performance et Remarques
Pour mesurer la performance des méthodes d’indexation proposées dans la section précédente
pour des requêtes par valeurs, nous avons utilisé des données réelles d’altitudes de terrain issues
d’une région des villes VICTORIA et SEATTLE aux Etats-Unis. Ces données ont été obtenues
sur le site http://edcwww.cr.usgs.gov. Leur représentation physique se présente sous la forme
d’un DEM (USGS DEM) et la résolution est de 1024 * 1024 cellules.
L’implémentaion permet de comparer le Linear Interval Quadtree basé sur un R*-tree
avec le Pointer-based Interval Quadtree et la méthode de Balayage Séquentiel qui parcourt sé-
quentiellement toutes les cellules du champ sans indexation. Nous avons mesuré le temps
moyen consommé pour la résolution de 50 requêtes générées aléatoirement. La taille d’une page
pour la lecture du disque et la construction d’un R*-tree est de 1024 octets. La Figure 29 donne
les courbes de résultats du temps de traitement des trois méthodes d’indexation.
Figure 29. Temps de traitement des requêtes par les méthodes d’indexation proposées.
Comme nous l'avons défini, le seuil de découpage est la taille maximale de l’intervalle
des sous-champs : la différence maximale entre l’altitude minimum et maximum. Pour le test,
0,000,200,400,600,801,001,201,401,601,802,00
0.05 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.95
Taille relative du seuil
Tem
ps(s
)
Linear Interval Quadtree
Pointer-based Interval Quadtree
Balayage Séquéntiel
Chapitre 4. Indexation par valeurs
85
nous avons fait varier la valeur du seuil par rapport à l’intervalle des valeurs du champ total.
Dans notre exemple, l’altitude varie de 864m à 2701m dans le champ entier. Le seuil de valeur
1 correspond donc à 1837 (la taille de l'intervalle du champ entier : la différence entre 2701 et
864). Celui de valeur 0.2 correspond à 367,4 ( la taille de l'intervalle du champ entier 1837 *
0.2). L’axe des X représente cette variation du seuil relatif de 0.05 à 0.95.
Dans tous les cas, on peut noter la supériorité de la performance du Linear Interval
Quadtree comme le montre la Figure 29.
Comme nous pouvons le constater sur la courbe du Linear Interval Quadtree de la
Figure 29, la définition de la valeur du seuil qui induit le nombre de sous-champs nécessite une
réflexion approfondie pour l’amélioration de la performance. Autrement dit, la performance de
la méthode d’indexation dépend du seuil. Nous découvrons dans le test réalisé que les seuils va-
riant entre 0.2 et 0.8 ont donné les meilleurs résultats. En revanche, ces seuils ne garantissent
pas les mêmes résultats sur les autres données des champs. Nous pouvons également faire les
remarques importantes suivantes :
1 - Lorsque le seuil est fixé à la valeur limite 1, le temps de traitement de requêtes par
Interval Quadtree est presque similaire à celui par Balayage Séquentiel. En effet, un seul sous-
champ correspond au champ total et il est alors nécessaire de tester toutes les cellules du champ.
Cela signifie qu’il n’y a aucun effet de filtrage au niveau des sous-champs.
2 - Lorsque le seuil est fixé à la valeur limite 0, la performance de l'Interval Quadtree
est aussi très mauvaise. Chacune des cellules devient un sous-champ ce qui induit une structure
d'index trop importante qui ne permet donc pas de filtrage approximatif.
Comme mentionné auparavant, le seuil décide du nombre de sous-champs à obtenir
après le découpage du champ. La Table 1 montre le nombre de sous-champs de l’Interval Quad-
tree, le temps nécessaire pour le filtrage par le Linear Interval Quadtree ainsi que celui pour
l'estimation en fonction de la taille relative du seuil.
Taille relative du seuil 0.05 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.95
Nombre de sous-champs 52204 15724 3889 2077 1423 898 406 37 19 12 4
Temps de Filtrage (ms) 600 168 48 32 24 20 13 9 6 1 1
Temps de Estimation (ms) 444 358 347 484 504 596 632 676 356 456 874
Tableau 1. Résultats en fonction de la taille relative du seuil avec un Linear Interval-Quadtree.
Chapitre 4. Indexation par valeurs
86
A partir des résultats de la Table 1, nous pouvons établir les constats suivants :
- Un seuil trop petit entraîne un nombre de sous-champs trop élevé et requiert plus de
temps pour le filtrage à cause de la taille de la structure d'index. En revanche, un seuil
trop grand se traduit par peu de sous-champs qui contiennent trop de cellules à extraire
pour l'interpolation. Ce faible taux de filtrage explique la mauvaise performance. C’est
pourquoi la définition de la valeur optimale du seuil est très importante.
4.3.5 Conclusion et Critique de l'Interval Quadtree
Le découpage pour implémenter des sous-champs dans l'Interval Quadtree s’effectue suivant un
seuil prédéterminé basé sur la taille d'intervalle des sous-champs. Nous avons proposé deux
structures de données pour l’implémentation et l’indexation du concept de sous-champs. La
première structure proposée est le Pointer-based Interval Quadtree. La seconde structure est le
Linear Interval Quadtree. Il s'agit d'une sorte de quadtree linéaire, mais qui utilise une structure
hiérarchique à partir des intervalles de valeurs des sous-champs. Ces intervalles sont utilisés
comme clés pour la recherche. La mesure de la performance dans les tests sur des données réel-
les montre que le Linear Interval Quadtree améliore notablement la vitesse de traitement des re-
quêtes par valeurs, comparativement au Balayage Séquentiel. En revanche, l'Interval Quadtree
pose des problèmes importants :
1. Nous utilisons un seuil prédéterminé pour la taille de l'intervalle d'un sous-champ
dans l'Interval Quadtree. Comme nous l'avons montré dans le test, la performance de la
méthode d’indexation dépend de ce seuil. Pourtant, nous n'avons pas trouver de moyen
justifiable de décider du seuil optimal qui pourrait donner la meilleur performance.
2. Le découpage spatial quadratique n'est pas très convenable dans le cas d'un champ re-
présenté par des cellules qui ne sont pas de formes quadratiques telles que les TINs. Ce-
la peut entraîner la prise en compte de cellules chevauchant plus d'un sous-champ. En
outre, ce découpage quadratique pose parfois des problèmes. En effet, comme nous al-
lons le décrire sur un exemple, dans certains cas, des cellules voisines ayant des valeurs
similaires ne sont pas regroupées dans le même sous-champ. La Figure 30 illustre ce
problème avec un seuil prédéterminé égal à 10. Le champ ayant des points-échantillons
est représenté par un DEM à 2 dimensions dans la Figure 30.a. La Figure 30.b représente
Chapitre 4. Indexation par valeurs
87
les sous-champs obtenus par la méthode Interval Quadtree. Les chiffres dans chaque
sous-champ (rectangle) représentent respectivement le minimum et le maximum de l'in-
tervalle du sous-champ. Bien que la taille de l'intervalle du regroupement des cellules
voisines ⟨c6,c7,c9,c10,c11⟩ soit 9 (ce qui est inférieur au seuil donné), elles n'ont pas pu
être regroupées dans un seul sous-champ car le découpage quadratique les a séparées
comme le montre la Figure 30.b. Cela est dû au fait que ces cellules se trouvent sur l'axe
de découpage.
Figure 30. a) Champ de type DEM. b) Sous-champs obtenus par la méthode Interval Quadtree.
Dans la section suivante, nous présentons une nouvelle méthode qui regroupe des cel-
lules afin que les sous-champs puissent avoir des formes plus naturelles et réalistes. Cette mé-
thode tente de regrouper le maximum de cellules voisines. Cela signifie qu'il n'y pas de limita-
tion sur les formes des sous-champs comme c'était le cas dans la méthode Interval Quadtree.
Cette nouvelle méthode permet ainsi d'obtenir des tailles flexibles d'intervalles de sous-champ.
Contrairement aux tailles prédéterminées utilisées dans l'Interval Quadtree, ces tailles sont
adaptables à la distribution des données. (Nous utilisons des techniques comme la courbe de
Hilbert et la probabilité d'accès à un MBR [KAMEL et FALOUTSOS 93]. )
75
74
75
76
77
65
67
66
68
73
58
60
65
67
68
56
64
68
65
66
55
59
67
64
61
= points-échantillons
55,64 56,64
60,68
58,67 65,75
60,67 66,75
65,73
65,68 66,76
61,6868,77
59,68
a. b.
c3 c4
c5 c6 c7
c2
c8
c9
c1
c14c13
c12c11c10
c16c15
Chapitre 4. Indexation par valeurs
88
4.4 Méthode I-Hilbert
4.4.1 Définition
Comme nous l'avons défini dans la section précédente, il faut prendre en compte deux critères
pour implémenter des sous-champs (la façon de découper l'espace et la similarité entre les va-
leurs d’un sous-champ). La deuxième méthode nommée I-Hilbert [KANG et al. 01] est décrite
dans les deux sous-sections suivantes.
4.4.1.1 La façon de découper l'espace
Comme nous l'avons remarqué dans la section précédente (voir 4.2.5), un découpage de l'espace
peut être vu comme un regroupement de certaines cellules voisines en sous-champ. Nous propo-
sons d'utiliser une courbe emplissant l'espace. Cette courbe impose un ordre linéaire sur les cel-
lules couvrant l'espace. Nous linéarisons donc les cellules selon la valeur d'une courbe emplis-
sant l'espace de leur position c'est-à-dire selon la valeur d'une courbe sur le point central des
cellules (nous appellerons cette valeur, la clé de Hilbert d'une cellule). Ensuite, nous regroupons
séquentiellement les cellules linéarisées en sous-champs.
Des courbes emplissant l'espace
Des courbes emplissant l'espace passent (une fois seulement) par tous les points de
l'espace à N dimensions sans jamais se croiser. Elles conservent la continuité et le voisinage.
Ainsi, des points proches dans l'espace vont se retrouver souvent voisins sur la courbe [JAGA-
DISH 90] [LAURINI 92] [FALOUTSOS 98].
Les courbes classiques emplissant l'espace sont : le balayage vertical, le balayage en
serpent, l'ordre en N de Peano [PEANO 1890] [JAGADISH 90] [LAURINI 92] et la courbe de
Hilbert [LAURINI 92] [JAGADISH 90] [KAMEL et FALOUTSOS 94]. La Figure 31 présente
des exemples de ces courbes.
Chapitre 4. Indexation par valeurs
89
Figure 31. Quelques courbes emplissant l'espace.
Il faut choisir une courbe qui respecte le mieux la continuité. Des points voisins dans
un espace à N dimensions sont censés posséder des valeurs similaires (par la continuité des
champs continus). Ainsi, plus la courbe respecte la continuité, plus les cellules voisines sont
censées posséder des valeurs similaires. Ce qui permet de regrouper davantage de cellules simi-
laires en sous-champs.
Il est connu que la courbe de Hilbert respecte mieux la continuité (voir Figure 31.d).
En effet, dans la courbe de Hilbert il n'y pas de "saut" important lors de la traversé linéaire de
l'espace contrairement à l'ordre en N de Peano et aux autres balayages. Les performances de ces
méthodes ont été simulées par [FALOUTSOS et ROSEMAN 89] [JAGADISH 90]. Selon les ré-
sultats, dans la plupart des cas, la courbe de Hilbert est la meilleure des quatre méthodes. Ce qui
signifie que la courbe de Hilbert conserve le mieux la continuité. Nous choisissons alors la
courbe de Hilbert pour linéariser les cellules. Des algorithmes pour générer la courbe de Hilbert
a. Balayage vertical b. Balayage de serpent
c. Ordre en N de Peano d. Courbe de Hilbert
6 5 1 0
7 6 5 4 3 2 1 0
8 9
76543210
98
3
4
1
0
2
34 5
La valeur de courbe de chaque point selon des courbes remplissant l'espace
Chapitre 4. Indexation par valeurs
90
pour un espace à 2 dimensions sont présentés dans [JAGADISH 90]. Un algorithme pour des
dimensions plus élevées est également présenté dans [GRIFFITHS 86].
En résumé, afin de découper l'espace d'un champ en plusieurs sous-champs, nous linéa-
risons d'abord les cellules selon l'ordre de leur clé de Hilbert. Ensuite, nous regroupons séquen-
tiellement (le long de la courbe) les cellules linéarisées en sous-champs.
La Figure 32 donne un exemple de ce type de regroupements.
Figure 32. Exemple de regroupement des cellules d'un champ de type TIN selon l'ordre de leur clé
de Hilbert.
* Cellules linéarisées selon leur clé de Hilbert :
triangle ti : H(x, y),
où (x,y) est le centre et H est la fonction retournant la clé deHilbert sur le point (x,y)
t11: H(6, 15) = 105 , t9 : H(20, 5) = 291, t10 : H(30, 26) = 664,
t12: H(15, 25) = 828, t1 : H(15, 40) = 1173, t0 : H(6, 45) = 1229,
t2 : H(27,46) = 1849, t3 : H(38, 39) = 2089, t4 : H(49, 43) = 2916,
t5 : H(57,31) = 3092, t8 : H(37, 13) = 3656, t7 : H(55, 5) = 3878,
t6 : H(50, 14) = 3928
b. Linéarisation des cellules
* Regroupement des cellules en sous-champs :
t11 t9 t10 t12 t1 t0 t2 t3 t4 t5 t8 t7 t 6 sous-champ1 sous-champ3
sous-champ2
c. Regroupement des cellules linéarisées
: points-échantillons
a. Champ de type TIN
: point central×
×t11
t5
t0t1
t2
t3
t4
t9
t8
t12
t10
×
× ×
×
×
×
×
×
×× ×
×
t6
t7
sous-champ2
d. Représentation spatialedes sous-champs
×t11
t5
t0t1
t2
t3
t4
t9
t8
t12
t10
×
× ×
×
×
×
×
×
×× ×
×
t6
t7
sous-champ3
sous-champ1
Chapitre 4. Indexation par valeurs
91
Le champ est représenté par un TIN dans la Figure 32.a. Les cellules sont donc linéari-
sées selon leur clé de Hilbert (Figure 32.b). Comme nous l'avons défini ci-dessus, la clé de Hil-
bert d'une cellule est la clé de Hilbert du centre de la cellule. Ensuite, les cellules linéarisées
sont regroupées en sous-champs (la Figure 32.c). La Figure 32.d montre les cellules regroupées
dans la dimension spatiale.
Un sous-champ se construit de la façon suivante : un sous-champ inclut les cellules li-
néarisées une par une tant que la condition du regroupement est satisfaite (la condition est défi-
nie plus loin). Un sous-champ est donc un regroupement des cellules voisines connectées les
unes aux autres le long de la courbe de Hilbert.
4.4.1.2 La similarité des valeurs d’un sous-champ
Nous devons définir la condition du regroupement pour décider si une cellule peut être regrou-
pée ou non, dans un sous-champ. En effet, les valeurs d'une cellule à inclure dans un sous-
champ doivent être similaires aux valeurs du sous-champ.
Pour la condition de regroupement, nous proposons un modèle de coût qui tente de ne
pas faire augmenter la probabilité d'accès aux sous-champs lors du traitement des requêtes par
valeur.
Comme nous l'avons mentionné (voir la section 4.2.2), nous indexons les intervalles
des sous-champs pour le traitement des requêtes par valeurs. Cela signifie que les sous-champs
sont accédés par leur intervalle. En effet, un intervalle d'un sous-champ peut être interprété
comme un MBR (à 1 dimension) des valeurs que l'intervalle inclut. Nous exploitons donc la no-
tion de probabilité d'accès à un MBR par une requête spatiale à n dimensions (voir [KAMEL et
FALOUTSOS 93]).
Chapitre 4. Indexation par valeurs
92
Probabilité d'accès à un MBR par une requête spatiale (selon [KAMEL et FALOUTSOS
93])
[KAMEL et FALOUTSOS 93] a considéré un espace à 2 dimensions. Les mêmes concepts peu-
vent être généralisés pour les dimensions plus élevées. Supposons que l'espace à 2 dimensions
soit normalisé à ([0,1]2), et considérons un MBR de taille nx × ny.
En supposant une équi-répartition (ce qui revient à supposer une loi uniforme) des re-
quêtes, la probabilité d'accès P au MBR pour une requête de type "Quel MBR contient un point
donné ?" est définie comme suit :
P = nx * ny .
En effet, la probabilité d'accès au MBR pour une requête d'un point correspond à la
probabilité que le point de la requête tombe dans le MBR. Cette probabilité se calcule à partir
de la surface du MBR dans la surface de l'espace normalisé. En généralisant cette notion, la
probabilité d'accès au MBR pour une requête dans un espace normalisé à N dimensions peut
être définie par rapport à la surface du MBR.
Coût d'accès à un sous-champ basé sur la probabilité d'accès à un sous-champ pour une
requête par valeurs
Nous considérons toujours un espace normalisé comme ci-dessus. Lors du traitement des requê-
tes par valeurs, un sous-champ est accédé par son intervalle des valeurs, c'est-à-dire par le do-
maine de valeurs, lequel est un espace à 1 dimension. Cet intervalle peut être considéré comme
un MBR à 1 dimension (comme mentionné ci-dessus). La probabilité d'accès à un sous-champ
pour une requête par valeurs correspond donc à la probabilité d'accès à un MBR à 1 dimension.
Nous pouvons donc définir la probabilité d'accès PSF au sous-champ dont l'intervalle est de
taille L :
PSF = L. ----- définition 1)
Chapitre 4. Indexation par valeurs
93
Comme nous avons vu ci-dessus, la probabilité d'accès à un MBR est définie par rapport à sa
surface. En effet, la surface du MBR (à 1 dimension) d'un intervalle est la taille (longueur) de
l'intervalle.
Nous définissons aussi la taille len(I ) d'un intervalle I = [min, max] d'une cellule ou
d'un sous-champ :
len(I ) = max - min + 1.----- définition 2)
Dans le cas où le maximum et le minimum sont les mêmes, par exemple lorsqu'une
fonction d'interpolation retourne une valeur identique pour tous les points à l'intérieur d'une cel-
lule, la taille de l'intervalle de cette cellule est égale à 1 par définition, et non pas à 0. En effet,
la taille d'intervalle des cellules sera utilisée comme diviseur pour calculer le coût d'accès à un
sous-champ (la définition 3), qui sera présenté ci-dessous. Ainsi, la définition 2 permet de trai-
ter le cas illustré ci-dessus en évitant que le diviseur soit égal à 0.
Enfin, nous définissons le coût d'accès à un sous-champ i comme suit:
CSFi = PSFi / SIi, ----- définition 3)
où SIi est la somme des tailles d'intervalles de toutes les cellules du sous-champ i et PSFi est la
probabilité d'accès au sous-champ i.
Le coût d'accès à un sous-champ signifie donc la division de la probabilité d'accès au
sous-champ par la somme des tailles d'intervalles des cellules inclus dans le sous-champ.
La condition du regroupement
Nous essayons de regrouper le maximum de cellules similaires en sous-champs pour améliorer
la performance d'une méthode d'indexation. Nous pouvons remarquer que plus les valeurs dans
un sous-champ sont similaires, moins le coût d'accès au sous-champ est élevé. Ainsi nous es-
sayons de minimiser le coût d'accès aux sous-champs.
Chapitre 4. Indexation par valeurs
94
Comme il est indiqué plus haut, lors du regroupement des cellules, un sous-champ in-
clut les cellules linéarisées une par une tant que la condition du regroupement est satisfaite. La
condition du regroupement d'une cellule se définit donc comme suit :
l'insertion d'une nouvelle cellule dans un sous-champ contenant déjà certaines cellules
ne doit pas augmenter le coût d'accès au sous-champ tel qu'il était avant son insertion.
Soit c la cellule à inclure dans un sous-champ i. Soit CSFi(c) (resp. CSFi'(c)) le coût
d'accès au sous-champ i avant (resp. après) l'insertion de c. L'acceptation d'une nouvelle cellule
dans un sous-champ i peut donc être effectuée si et si seulement CSFi(c) > CSFi'(c).
L'algorithme pour former des sous-champs à partir des cellules linéarisées est détaillé
dans l'Algorithme 4.
Procédure FormerSous-champ i = 1 Créer un sous-champ i en incluant la première cellule dedans Pour chaque cellule linéarisée {
Si CSFi (cellule courante) ≥ CSFi' (cellule courante) Alors Inclure la cellule courante dans le sous-champ i Sinon Finir le sous-champ i,
i = i + 1 Créer un nouvau sous-champ i
} FinProcédure
Algorithme 4. Algorithme de la génération des sous-champs.
Nous commençons donc avec l'intervalle de la première cellule parmi les cellules li-
néarisées. Nous formons un sous-champ en incluant toutes les cellules successives tant que la
condition du regroupement est satisfaite. Sinon, nous créons un nouveau sous-champ.
Comme le coût d'accès aux sous-champs est basé sur le calcul des intervalles des cellu-
les, nous pouvons représenter des cellules par leur intervalle lors la génération des sous-champs
comme l'illustre la Figure 33.a. Les cellules sont donc linéarisées selon leur clé de Hilbert. La
Figure 33.b représente la procédure de génération des sous-champs. Cette procédure regroupe
les cellules selon la condition du regroupement définie ci-dessus.
Chapitre 4. Indexation par valeurs
95
Figure 33. Exemple de l'exécution de la procédure 'FormerSous-Champ'
Considérons l'état du sous-champ SF1 (Figure 33.b) tel que SF1 = ⟨c1,c2,c3,c4⟩. L'algo-
rithme doit décider si la cellule c5 doit être ajoutée à SF1. Ainsi, CSF1(c5) = 21/(11+10+11+13)
= 0,466 et CSF1'(c5) = 31/(11+10+11+13+13) = 0.534. L'insertion de c5 a donc augmenté le coût
d'accès du sous-champ 1. Donc, c5 ne peut pas être ajoutée à SF1. Ainsi un nouveau sous-champ
SF2 a été créé à partir de la cellule c5.
4.4.2 Exemples de génération des sous-champs par I-Hilbert
Nous présentons dans cette section, deux exemples d'implémentation des sous-champs par la
méthode I-Hilbert décrite dans la section précédente. La Figure 34. (resp. la Figure 35) illustre
un exemple d’un champ continu de type DEM (resp. TIN).
valeur
valeur de Hilbert
20
30
25
40
c1 c2 c3 c4 c5
3438
28
c6 . . . . .
. . .50
valeur
clé de Hilbert
20
30
25
40
c1 c2 c3 c4 c5
3438
28
c6 . . . . .
. . .
sous-champ 1
sous-champ 2
50
a. les intervalles des cellules linéarisées b. des sous-champs générés
intervalle dusous-champ 1
Chapitre 4. Indexation par valeurs
96
Figure 34. Exemple de génération d’un sous-champ continu de type DEM.
La Figure 34.a présente un exemple du champ représenté par un DEM. Après avoir li-
néarisé les cellules selon l'ordre de la clé de Hilbert de chaque cellule, la procédure Former-
Sous-champ s'exécute pour générer des sous-champs. La Figure 34.c représente l'information
spatiale des sous-champs générés dans La Figure 34.b.
valeur
clé de Hilbert
18
16
14
12
10
8
6
4
2
0 c0 c1 c2 c3 c4 c5 c6 ...
. . .sous-champ 1
sous-champ 2
8
8
10
78
7
814
4
c0
c8
c2
c7
c1
c4
c6
c3
c5 c10c9
c11
c12
c14
c13
c15
10
10 9
10 10
4
69
1112
13 17 16 8 9
: points-échantillon
a. Champ de type DEM
b. Génération des sous-champs à partir de l’intervalle descellules linéarisées (la procédure FormerSous-champ)
c. Représentation spatiale des sous-champs
sous-champ 1
sous-champ 2
sous-champ 3
Linéariserles cellules
* l'intervalledes cellules
c0 = [7, 10]
c1 = [4, 10]
c2 = [1, 8]
...
Chapitre 4. Indexation par valeurs
97
La Figure 35 présente un autre exemple d'un champ continu de type TIN. Un champ
continu de TIN est illustré dans la Figure 35. Les triangles dans l'exemple sont, en effet, les
mêmes triangles que dans la Figure 32. La linéarisation des cellules est donc basée sur le calcul
de la clé de Hilbert des cellules, qui est présenté dans la Figure 32.b.
Figure 35. Exemple de génération d’un sous-champ continu de type TIN.
valeur
18
16
14
12
10
8
6
4
2
0 c0 c1 c2 c3 c4 c5 ...
. . .sous-champ 1
sous-champ 2
: points-échantillon
a. Champ de type TIN
c. Représentation spatiale des sous-champs
Linéariserles cellules
: point central×
×
c0
c9
c5 c4
c6
c7
c8
c1
c10
c3 c2
×
× ×
×
×
×
×
×
×× ×
×
c12
c11
b. Génération des sous-champs à partir de l’intervalle descellules linéarisées (la procédure FormerSous-champ)
10
8
8
×
c0
c9
c5 c4
c6
c7
c8
c1
c10
c3 c2
×
× ×
×
×
×
×
×
×× ×
×
c12
c117
sous-champ 1
4
14
* l'intervalledes cellules
c0 = [8, 10]
c1 = [6, 10]
c2 = [4, 11]
...
11
8
16
136
17 12
sous-champ 2
Chapitre 4. Indexation par valeurs
98
La Figure 36 illustre des exemples de sous-champs générés par la méthode I-Hilbert
sur des données réelles. La Figure 36.a représenté des données de terrains sous formes de DEM.
Ces données obtenues depuis http://edcwww.cr.usgs.gov proviennent de la ville de ROSEBURG
(USA). L'altitude des terrains est représentée par différentes couleurs. Les sous-champs sont re-
présentés par des polygones sur les cartes.
Figure 36. Sous-champs générés sur des données réelles (données de terrains ).
Chapitre 4. Indexation par valeurs
99
4.4.3 Implémentation
4.4.3.1 Structure de données
Un intervalle d'un sous-champ est de la forme :
(ptr_début, ptr_fin, min, max),
où ptr_début (ptr_fin) est le pointeur sur la cellule du début (resp. de fin) du sous-champ (dans
l'ordre des clés de Hilbert). Et min et max sont des bornes de l'intervalle du sous-champ.
Les cellules sont linéarisées sur le disque selon l'ordre des clés de Hilbert. Par consé-
quent, les deux pointeurs ptr_début et ptr_fin indiquent l'adresse disque où sont stockées toutes
les cellules contenues dans le sous-champ.
L'intervalle de chaque sous-champ est transformé en un point à 2 dimensions et ce
point est inséré dans un 2-D R*-tree pour l'indexation. La structure d'un 2-D R*-tree pour les
points transformés est de la forme :
où ptr est un pointeur sur le nœud fils et RECT représente un MBR. Et Ptr_début (ptr_fin) est le
pointeur sur la cellule du début (resp. de fin) du sous-champ.
Notons que RECT d'une feuille est un MBR du point transformé à partir de l'intervalle
[min, max] d'un sous-champ. Notons aussi que les feuilles du R*-tree doivent stocker les deux
pointeurs ptr_début et ptr_fin de chaque sous-champ.
Nous aurions pu imaginer que les pointeurs sur ces deux cellules puissent être rempla-
cés par leur clé de Hilbert. Par exemple, dans le cas où les distances entre les clés de Hilbert des
cellules voisines (c'est-à-dire les valeurs de la courbe de Hilbert sur le point central des cellules)
sont identiques comme dans le cas du DEM (la grille régulière), l'adresse disque d'une cellule
peut être calculée par sa clé de Hilbert. En revanche, dans le cas où les clés de Hilbert des cellu-
Nœud intermédiaire : ptr, RECT .... identique
Feuille : ptr_début, ptr_fin, RECT …. identique
Chapitre 4. Indexation par valeurs
100
les ne composent pas une suite régulière (comme dans le cas des TIN), il est nécessaire de stoc-
ker les adresses physiques des cellules sur le disque. C'est la raison pour laquelle nous utilisons
les pointeurs sur les cellules plutôt que les clés de Hilbert.
4.4.3.2 Procédure de recherche
Dans la section précédente, nous avons présenté comment construire l'index par la méthode I-
Hilbert. Nous présentons, dans cette section, comment utiliser cet index pour une requête par
valeurs. Donc, après avoir construit un 2-D R*-tree des points transformés depuis les intervalles
de sous-champs, nous pouvons effectuer une requête par valeurs en utilisant cet index.
De la même façon que pour la méthode I-All, la valeur w de la requête est d'abord
transformée en un rectangle rw par la fonction Trans_Inter(w) (voir la section 2-D R*-tree par
transformation). Ensuite, on exécute l'algorithme 'Intersect' dans le R*-tree avec le rectangle rw
comme la condition de requête pour rechercher des points contenu dans rw. La procédure pour
le traitement des requêtes par valeurs avec l'indexation I-Hilbert est présentée ci-dessous.
Procédure Intersect(nœud n du R*-tree, rectangle de la requête rw) : // Rechercher les nœuds intermédiaires Si n est un nœud intermédiaire
alors pour chaque élément (ptr, RECT) du n dont le RECT intersecte rw Intersect(fils, rw), où fils est le nœud pointé par ptr // Rechercher les feuilles Sinon pour chaque élément (ptr_début, ptr_fin,RECT) dont le RECT intersecte rw Estimer(ptr_début, ptr_fin, Trans_Inter-1(rw))
FinProcédure
Procédure Estimer(pointeur ptr_début, pointeur ptr_fin, valeur de la requête w) Extraire les cellules sur le disque entre ptr_début et ptr_fin Estimer les régions exactes correspondant à w à partir des données des cellules
extraites FinProcédure L'algorithme commence par l'appel suivant : Rechercher (Racine du R*-tree, rectangle de la requête transformé rw)
Algorithme 5. Traitement des requêtes par valeurs basé sur l'indexation I-Hilbert.
Chapitre 4. Indexation par valeurs
101
Trans_Inter-1 retourne la valeur d'origine de la requête à partir d'un rectangle (comme
dans la méthode I-All, voir la section 4.1).
L'algorithme commence par l'exécution de 'Intersect' dans le R*-tree avec rw. Pour les
feuilles dont le MBR intersecte rw, nous appelons la procédure Estimer pour estimer les ré-
gions répondant à la requête. Cet algorithme est aussi représenté par le schéma de la Figure 57
dans la section 6.2
Dans la méthode I-All, la procédure Estimer extrait juste une seule cellule (qui con-
tient les régions de la réponse) et effectue une fonction d'interpolation. En revanche, dans la
méthode I-Hilbert, la procédure Estimer extrait plusieurs cellules (qui contiennent probable-
ment les régions de la réponse) pour effectuer l'estimation.
4.5 Conclusion
Dans ce chapitre, nous avons présenté les méthodes l’indexation développées au sein de nos tra-
vaux. La méthode la plus simple et intuitive est nommée la méthode I-All. Elle indexe
l’intervalle de chaque cellule afin de trouver des cellules dont l’intervalle chevauche la valeur
de la requête. Cela implique, en effet, une recherche exhaustive et précise, car la recherche ex-
trait toutes les cellules contenant les régions de la réponse. En revanche, l'existence d'un grand
nombre de cellules à traiter dans un champ continu ne rend pas cette méthode vraiment efficace.
Un nouveau concept de « sous-champ » est proposé. Un sous-champ est un sous-espace
contenant des valeurs proches. En se basant sur le concept de sous-champs, nous proposons une
stratégie de traitement des requêtes composée de 1) l'étape Filtrage et 2) l'étape Estimation.
L'étape Filtrage conduit une recherche approximative en trouvant des sous-champs satisfaisant
la requête plutôt que les cellules elles-mêmes. En effet, les cellules dans les sous-champs issues
de l'étape Filtrage sont susceptibles de contenir les régions de la réponse. Ainsi, la réponse
exacte est obtenue par l'étape Estimation.
Il existe deux critères à prendre en compte pour implémenter des sous-champs :
- la façon de découper l'espace : comment diviser l'espace en plusieurs sous-champs ?
- le critère de similarité des valeurs d'un sous-champ : ceci représente la condition de
composition d’un sous-champ.
Chapitre 4. Indexation par valeurs
102
Deux méthodes d'indexation sont proposées selon la définition de ces deux critères.
1) Méthode Interval Quadtree :
L'espace se divise en quatre sous-espaces recursivement jusqu'à ce que la taille de l'in-
tervalle des qautre sous-espaces soit inférieure à un seuil pré-déterminé. En effet, la similarité
des valeurs d'un sous-champ est jugée par la taille fixe d'intervalle du sous-champ. Cette mé-
thode n'est pas fiable car les performances sont dépendantes du seuil utilisé et de la distribution
des données. Cela provient de la non existence de moyen justifiable de décider le seuil optimal.
Ainsi, le découpage quadratique n'est pas adapté pour traiter les cellules non quadratiques.
2) Méthode I-Hilbert :
Dans un premier temps, afin de surmonter les inconvénients du découpage quadratique,
nous avons reinterprété le sens du découpage de l'espace (comme le regroupement des cellules
en sous-champs). Les cellules sont linéairsées selon la clé de Hilbert de leur information spa-
tiale (ou spatio-temporelle). Ensuite, les sous-champs se forment en regroupant séquentillement
les cellules linéarisées (selon la condition du regroupement définie dans cette thèse). Dans un
deuxième temps, nous avons essayé de trouver une condition de regroupement qui s'adapte à la
distribution des données (pas une valeur fixe de la condition comme dans la méthode Quadtree).
Nous avons d'abord défini le coût d'accès à un sous-champ pour les requêtes. Ensuite, la condi-
tion du regroupement est définie dans le sens de ne pas augmenter le coût d'accès afin de
maximiser les performances.
Après avoir proposé les méthodes d’indexation par valeurs, nous nous intéressons dans
le chapitre suivant à l'implémentation et aux tests des performances des méthodes proposées.
Chapitre 5. Implémentation et performance
104
5. Implémentation et performance
Nous avons implémenté la méthode I-Hilbert et nous avons effectué des tests sur des données de
champs continus à 2 dimensions spatiales. La méthode est implémentée en C sous Unix. Nous
avons comparé la méthode I-Hilbert avec celle du Balayage Séquentiel, et avec la méthode I-
All.
Pour chaque test, nous avons utilisé des requêtes par valeurs ayant comme condition un
intervalle variable de valeurs du champ ;
Qintervalle : intervalle de la requête variant en considérant une taille normalisée de l'in-
tervalle de l'espace du champ total égale à [0, 1]. Par exemple, les requêtes avec Qintervalle = 0.1
dans un espace dont l'intervalle total est [10, 110], sont des requêtes avec des intervalles de
taille 10 (tels que [25, 35], [43, 53]). Les requêtes avec Qintervalle = 0 correspondent à des requê-
tes par valeurs ayant comme condition une seule valeur (par exemple "Quelles sont les régions
où la valeur est égale à 30").
Nous avons généré aléatoirement 200 requêtes pour quelques valeurs de Qintervalle. Nous
avons mesuré le temps d'exécution des requêtes par valeurs en calculant le temps moyen con-
sommé pour la résolution de 200 requêtes pour chaque valeur de Qintervalle considérée. La taille
de page disque utilisée est 4Ko.
Des données réelles et des données simulées ont été utilisées pour mesurer la perfor-
mance des méthodes. Nous avons utilisé des données réelles afin d'évaluer notre méthode en
pratique. Les données simulées nous ont permis de maîtriser plusieurs paramètres afin de tester
notre méthode sur des données ayant d'autres caractéristiques. Nous avons utilisé une simple in-
terpolation bilinéaire afin d'estimer des valeurs sur les points non échantillonnés.
Chapitre 5. Implémentation et performance
105
5.1 Données réelles
Deux types de données réelles ont été utilisées : des données de terrain et des données sonores
urbaines.
5.1.1 Données de terrain
Des données d'altitudes de terrain (USGS DEM) issues de trois régions différentes (Victoria,
Burns, Pullman) des Etats-Unis ont été obtenues à partir de http://edcwww.cr.usgs.gov. Les par-
ties des régions utilisées pour les tests sont composées chacune de 266.144 cellules rectangulai-
res ayant quatre sommets (la résolution de chaque DEM est 512*512). La Figure 37 montre une
partie des données d’une région.
Figure 37. Partie de la région utilisée pour les tests.
Nous avons effectué des tests pour chaque région en faisant varier Qintervalle de 0 à 0.1. La Figure 38 montre les résultats de la méthode I-Hilbert, de la méthode du Balayage Séquentiel et de la méthode I-All (pour chaque région).
Chapitre 5. Implémentation et performance
106
Figure 38. Temps d’exécution des tests sur des données réelles de terrains issues de trois régions
différentes, a)Victoria, b)Burns, c)Pullman.
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1
Qintervalle
Tem
ps d
'exé
cutio
n (s
)
BlayageSéquentielI-AllI-Hilbert
0
0,05
0,1
0,15
0,2
0,25
0,3
0,35
0,4
0,45
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1Qintervalle
Tem
ps d
'exé
cutio
n (s
)
BlayageSéquentielI-AllI-Hilbert
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1
Qintervalle
Tem
ps d
'exé
cutio
n (s
)
BlayageSéquentielI-AllI-Hilbert
a.
c.
b.
Chapitre 5. Implémentation et performance
107
Comme le montre la Figure 38, la méthode I-Hilbert donne les meilleurs résultats par-
mi les méthodes testées pour les trois régions. Le temps d'exécution de la méthode I-Hilbert va-
rie environ de 0 à 0.1 pour tous les Qintervalle et pour les trois régions testées. Contrairement à la
méthode I-Hilbert, nous pouvons remarquer que la méthode I-All donne des performances très
différentes en fonction des régions et des valeurs de Qintervalle. Les différences de performances
de I-All sont assez importantes, selon que l'on considère un "grand" Qintervalle ou un "petit" Qinter-
valle. Et ce particulièrement dans la Figure 38.c. Dans ce cas, le temps d'exécution de la méthode
I-All est plus lent que le Balayage Séquentiel pour Qintervalle ≥ 0.04 (environ), et même plus de
deux fois plus lent pour Qintervalle ≥ 0.09. La méthode I-Hilbert est de 6 à 13 fois plus rapide que
la méthode du Balayage Séquentiel (voir la Figure 38.c).
5.1.2 Données sonores urbaines
Des données sonores urbaines mesurées à Lyon (France) ont été utilisées. Ces données sonores
sont représentées par un maillage triangulaire d'environ 9000 triangles. Ces données sonores
sont des données créées et utilisées dans un système d’information sonore urbain, MITHRA. La
description de ce système et de ses données est présentée dans la section 7.1 (intitulée Système
d'Information Sonore Urbain : MITHRA).
Les courbes de la Figure 39 illustrent les performances des méthodes proposées selon
plusieurs intervalles de requêtes.
Figure 39. Temps d’exécution des tests sur des données sonores urbaines.
0,00
5,00
10,00
15,00
20,00
25,00
30,00
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1
Q intervalle
Tem
ps d
'exé
cutio
n (m
s)
LinearScanI-A llI-Hilbert
Chapitre 5. Implémentation et performance
108
Comme le montre la Figure 39, on peut noter que la méthode I-Hilbert fonctionne éga-
lement mieux que les autres méthodes sur des données sonores urbaines. La méthode I-Hilbert
est plus rapide que les autres méthodes.
5.2 Données simulées par une méthode fractale
Nous avons utilisé des données simulées ayant diverses caractéristiques. Pour les données simu-
lées, nous avons généré des données de terrain par la méthode fractale [PEITGEN et al.92]. La
propriété principale des fractales est "l'auto-similarité". Une telle propriété est exploitée pour
générer artificiellement des plantes et des données de paysages tels que des terrains, des ciels
nuageux, des côtes, etc..[PEITGEN et al.92]. Dans un premier temps, nous présentons la mé-
thode de génération des données de terrain fractal. Par la suite, nous montrons les résultats des
tests effectués sur ces données.
5.2.1 Génération des données de terrain fractal
Pour générer des terrains fractals à 2 dimensions, nous avons utilisé l'algorithme de 'Diamond-
Square' qui est une méthode classique et connue. Cet algorithme utilise la méthode de 'Midpoint
Displacement' à 2 dimensions. Afin d'aider à la comprendre, nous présentons d'abord la mé-
thode 'Midpoint Displacement' à 1 dimension avant d'expliquer l'algorithme de 'Diamond-
Square'.
Chapitre 5. Implémentation et performance
109
5.2.1.1 Midpoint Displacement à 1 dimension
La procédure de la méthode de Midpoint Displacement [FOURNIER et al. 82] [PEITGEN et
al.92]. à 1 dimension est définie comme suit:
Algorithme 6. Algorithme MidPoint Displacement
De combien l'intervalle de valeurs est-il réduit à chaque itération de la boucle 1 ? Ce
paramètre détermine la rugosité du terrain fractal. Autrement dit, plus l'intervalle de valeurs se
réduit, plus le segment final sera lisse.
La Figure 40 illustre un exemple d'exécution de la méthode de Midpoint Displacement
à 1 dimension.
Figure 40. Midpoint Displacement
Commencer avec une seul segment
Répéter un nombre de fois suffisant { -------- [ boucle 1]
Répéter sur chaque segment {
Trouver le point central sur le segment.
Choisir aléatoirement un décalage dans l'intervalle de valeurs
Déplacer le point central "en hauteur" avec le décalage choisi.
}
Réduire l'intervalle de valeurs
}
: point calcul a. b. c.
Chapitre 5. Implémentation et performance
110
Supposons que les valeurs en Y des deux points finaux du segment soient 0, que l'in-
tervalle de valeurs soit fixé à [-1.0, 1.0] et que l'intervalle de valeurs se réduise de moitié à cha-
que itération. Une valeur de décalage h est alors choisie dans l'intervalle initial [-1.0, 1.0] et
nous déplaçons "en hauteur" le point central avec le décalage h (voir la Figure 40.a). L'inter-
valle de valeurs est réduit de moitié, donc il est égal à [-0.5, 0.5]. Lors de la deuxième itération
de la boucle 1, nous traitons deux segments ayant comme taille la moitié de la taille du segment
original. Un décalage est choisi dans l'intervalle [-0.5, 0.5] pour chacun des deux points cen-
traux. Ensuite, les deux points centraux sont déplacés de leur valeur de décalage (voir la Figure
40.b). L'intervalle de valeurs sera réduit encore de moitié, donc devient [-0.25, 0.25]. Le résultat
du déplacement des quatre points centraux est montré dans la Figure 40.c.
L'intervalle de valeurs se réduit par l'échelle de 2(-H) avec H variant de 0.0 à 1.0. H est
donc un paramètre pour la rugosité de terrain. Il détermine de combien l'intervalle de valeurs se-
ra réduit à chaque itération. Par conséquent, il détermine la rugosité du terrain simulé par la mé-
thode fractale :
H : rugosité du terrain variant de 0.0 à 1.0, donc 2(-H) varie entre 1.0 (pour H = 0) et
0.05 (pour H = 1).
Si on considère H = 1.0, l'intervalle de valeurs est réduit de moitié à chaque itération,
ce qui a pour effet de lisser le terrain. En revanche, en considérant H = 0.0, l'intervalle ne sera
pas réduit donc, la rugosité du terrain augmente. La Figure 41 montre l'exemple de trois seg-
ments générés par la méthode de Midpoint Displacement à 1 dimension selon un H variable.
Figure 41. Segments générés par Midpoint Displacement selon un H variable.
H=0.8 H=0.5 H=0.2
Chapitre 5. Implémentation et performance
111
5.2.1.2 Génération des données fractales par Diamond-Square
Nous présentons ici l'algorithme de Diamond-Square [FOURNIER et al. 82] [PEITGEN et al.92] pour
générer des terrains fractals à 2 dimensions en utilisant la méthode de MidPoint Displacement.
L'algorithme commence avec un carré et avec quatre hauteurs initiales choisies aléatoi-
rement (voir la Figure 42.a). En fait, chaque sommet du carré est associé à une hauteur. Chaque
carré est divisé récursivement en quatre autres carrés au cours des deux étapes de chaque itéra-
tion (l'étape Diamond et l'étape Square). Chaque étape est décrite ci-dessous :
- L'étape Diamond : pour chaque carré, générer aléatoirement une valeur de décalage pour
le point central où les deux diagonales du carré se croisent (voir la Figure 42.b). La valeur
(hauteur) du centre sera calculée de la façon suivante; valeur = moyenne des valeurs des
quatre points + valeur de décalage générée.
- L'étape Square : pour chaque carreau de quatre points (ex. voir les quatre carreaux en trait
pointillé dans la Figure 42.c), générer aléatoirement une valeur de décalage pour le centre
du carreau. Calculer la valeur du centre du carreau de la façon suivante ; valeur = moyenne
des valeurs des quatre points + valeur de décalage générée.
L'algorithme Diamond-Square pour générer des données fractales est présenté ci-
dessous:
Commencer avec un carré
Répéter un nombre de fois suffisant {
Exécuter l'étape Diamond : Calculer les points centraux de tous les carrés
Exécuter l'étape Square : Calculer les points centraux de tous les carreaux
(les points restants)
Réduire l'intervalle de valeurs
}
Algorithme 7. Algorithme Diamond-Square.
Chapitre 5. Implémentation et performance
112
La Figure 42 illustre un exemple de deux itérations de la boucle de l'algorithme ci-
dessus.
Figure 42. Deux itérations de la subdivision pour générer la surface fractale (algorithme de Dia-
mond-Square sur un carré de 4x4).
Un décalage est choisi, à chaque fois, dans l'intervalle de valeurs pour le calcul d'un
point. L'intervalle de valeurs se réduit par l'échelle de 2(-H) où H est choisi entre de 0.0 à 1.0
(comme dans la méthode de MidPoint Displacement). H joue toujours le rôle du paramètre de
rugosité des données simulées. La Figure 43 et la Figure 44 illustrent des exemples de données
simulées à 2 dimensions ayant 32*32 cellules rectangulaires par l'algorithme de Diamond-
Square.
: point connu: point à calculer
a. quatre hauteurs b. passe 1: c. passe 1 : résultat de la passe 1 initiales l' étape Diamond l'étape Square
d. passe 2 : e. passe 2 : résultat de la passe 2l'étape Diamond l'étape Square
Chapitre 5. Implémentation et performance
113
Figure 43. Exemples de données de terrains simulés, H = 0.2.
Figure 44. Exemples de données de terrains simulés, H = 0.8.
La rugosité H utilisée dans la Figure 43 et celle de la Figure 44 sont respectivement
égale à 0,2 et 0,8. Les quatre hauteurs initiales sont générées aléatoirement au début de l'algo-
rithme. Les même hauteurs initiales sont utilisées pour les deux cas afin de montrer l'effet de H
sur des valeurs initiales identiques.
Chapitre 5. Implémentation et performance
114
5.2.2 Expérimentations sur des données de terrains fractals
Nous avons généré des terrains fractals de 1 048 576 cellules rectangulaires avec H variant de 0
à 0.06 afin de mesurer la performance de la méthode ‘I-Hilbert’ sur des données de types diffé-
rents. La Figure 45 donne les résultats des tests avec les valeurs de H suivantes : 0,1 ; 0,3 ; 0,6 ;
0.9. L'axe des abscisses représente l'intervalle des requêtes. L'axe des ordonnées représente le
temps moyen d'exécution de 200 requêtes générées aléatoirement pour chaque intervalle de re-
quêtes.
0
0,5
1
1,5
2
2,5
3
3,5
0 0.01 0.02 0.03 0.04 0.05 0.06Qintervalle
Tem
ps d
'exé
cutio
n (s
)
BalayageSéquentiel
I-direct
Hilbert
0
1
2
3
4
5
6
0.01 0.02 0.03 0.04 0.05 0.06
Qintervalle
Tem
ps d
'exé
cutio
n (s
)
BalayageSéquentiel
I-Direct
Hilbert
a. H = 0.1
b. H = 0.3
Chapitre 5. Implémentation et performance
115
Figure 45. Temps d'exécution des requêtes sur des données simulées par une méthode fractal.
Nous pouvons remarquer que notre méthode I-Hilbert est plus efficace que les autres
pour toutes les valeurs de H considérées dans ces tests. La Figure 45.d montre que la méthode I-
Hilbert est 50 fois plus rapide que la méthode de Balayage Séquentiel lorsque Qintervalle varie de
0 à 0.01.
0
0,2
0,4
0,6
0,8
1
1,2
1,4
1,6
1,8
0 0.01 0.02 0.03 0.04 0.05 0.06Qintervalle
Tem
ps d
'exé
cutio
n (s
)
BalayageSéquentiel
I-directHilbert
d. H = 0.9
c. H = 0.6
00,20,40,60,8
11,21,41,61,8
22,2
0 0.01 0.02 0.03 0.04 0.05 0.06Qintervalle
Tem
ps d
'exé
cutio
n (s
)
BalayageSéquentielI-directHilbert
Chapitre 5. Implémentation et performance
116
Nous pouvons aussi remarquer que les deux méthodes (I-All et I-Hilbert) deviennent
de plus en plus rapides quand la valeur de H augmente. Par contre, le Balayage Séquentiel n'est
pas influencé par la distribution des données. En revanche, pour QintervalleI = 0.02, les temps
d'exécution de la méthode I-Hilbert sont 0.715, 0.282, 0.150, 0.143 avec respectivement H = 1,
H = 3, H = 6, H = 9. Pour la même condition, les temps d'exécution de la méthode I-All sont
respectivement 3.621, 1.424, 0.751, 0.569.
Lors d'une faible valeur de H, les requêtes sélectionnent plus de données, c'est-à-dire
qu'une haute sélectivité est réalisée dans les requêtes (nous allons présenter la définition de cette
sélectivité ci-après). En effet, les données simulées sont "rugueuses" c’est-à-dire avec de gran-
des différences d'altitude (comme le montre la Figure 43). Les intervalles des cellules sont rela-
tivement longs sur l'axe de l'altitude et se chevauchent fréquemment. Ainsi, la même requête sé-
lectionne en général plus de données que dans le cas de grandes valeurs de H. A l’inverse, une
grande valeur de H génère des données plutôt monotones et elle donne une basse sélectivité.
Une haute sélectivité requiert plus de temps d'exécution. C'est la raison pour laquelle les métho-
des sont plus lentes pour une faible valeur de H que pour une grande valeur de H.
Les courbes montrent ainsi que la méthode I-All donne de grandes différences de per-
formance en fonction des valeurs de H et Qintervalle. Plus particulièrement, plus la valeur de H
devient grande, plus la méthode devient lente. Par exemple, la méthode I-All est 5 fois plus
lente que le Balayage Séquentiel dans le cas de Qintervalle = 0.04 (voir la Figure 45.a). En effet,
un Qintervalle élevé entraîne aussi une plus haute sélectivité qu’un Qintervalle faible pour la même
valeur de H. La raison est que Qintervalle représente la taille de l'intervalle des requêtes.
On conclut donc que la méthode I-All n'est pas efficace (plus lente que le Balayage
Séquentiel) dans les cas d'une grande valeur de Qintervall et/ou d'un H faible. Ces deux cas entraî-
nent une haute sélectivité dans les requêtes. En revanche, la méthode I-Hilbert fonctionne tou-
jours mieux que les autres méthodes en donnant des résultats stables (entre environ 0.1 et 1) et
ce, quelque soit le cas testé.
A partir des données de tests effectués ci-dessus, nous avons mesuré les performances
des méthodes proposées en fonction d'un autre critère à savoir le taux de sélectivité. La sélecti-
vité d'une requête peut être définie comme suit :
sélectivité d'une requête =
Chapitre 5. Implémentation et performance
117
Nb(résultat de la requête) / Nb(ensemble des données à traiter),
où la fonction Nb(S) retourne le nombre de cellules de l'ensemble S spécifié.
Nous avons testé les deux cas "extrêmes" de H c’est-à-dire H=0.1 et H=0.9, car nous
avons remarqué de grandes différences de temps d'exécution entre ces deux cas. Ainsi, serait-il
intéressant de mesurer les performances en fonction de la sélectivité. Cela permettrait de
conforter nos précédentes hypothèses sur le rapport existant entre les performances et le taux de
sélectivité. La Figure 46 montre les résultats des tests pour chaque H.
Figure 46. Temps d'exécution des requêtes selon la sélectivité des requêtes.
00,40,81,21,6
22,42,83,23,6
44,44,85,2
0,001
0,003
0,008
0,012
0,016
0,021
0,054
0,077
0,107
0,114
0,123
0,136
0,150
Sélectivité
Tem
ps d
'exé
cutio
n(s)
BalayageSéquentielI-AllI-Hilbert
0
0,4
0,8
1,2
1,6
2
2,4
2,8
3,2
3,6
4
0,001
0,003
0,008
0,011
0,016
0,042
0,059
0,074
0,105
0,108
0,109
0,113
0,126
0,128
0,142
Sélectivité
Tem
ps d
exéc
utio
n(s) BalayageSéquentiel
I-All
I-Hilbert
a. H = 0.1
b. H = 0.9
Chapitre 5. Implémentation et performance
118
Nous remarquons, dans la Figure 46, que le temps d'exécution des méthodes varie en
fonction de la sélectivité, de façon similaire dans les deux cas de H considérés. Chaque méthode
(excepté le Balayage Séquentiel) requiert plus de temps d'exécution pour une haute sélectivité.
Les courbes montrent surtout que la méthode I-All ralentit considérablement pour une
haute sélectivité (en comparaison avec la méthode I-Hilbert). Notons que pour les deux cas de H
considéré, la méthode I-All devient plus lente que le Balayage Séquentiel lorsque la sélectivité
est ≥ 0.06 (environ). Nous pouvons conclure que dans le cas d’une haute sélectivité, les perfor-
mances de la méthode I-All sont particulièrement mauvaises (ex. 3 fois plus lente que le Ba-
layage Séquentiel pour une sélectivité égale à environ 0.15).
Nous pouvons constater que la méthode I-Hilbert donne, dans tous les cas, les meil-
leurs résultats et les résultats les plus stables (quelque soit H et quelque soit la sélectivité). Ain-
si, cette méthode est remarquablement efficace comparée aux autres. Elle offre des résultats 20
à 100 fois meilleurs que le Balayage Séquentiel pour une sélectivité comprise entre environ
0.001 et 0.01, et ce pour les deux cas de H considéré.
5.3 Données simulées monotones
Dans cette section, nous présentons les résultats des tests sur des données simulées qui
sont extrêmement monotones. En pratique, il est rare de trouver des exemples de champs conti-
nus représentés par ce genre de données extrêmes. Malgré tout, nous ne pouvons tout de même
pas complètement exclure ce type de données.
Nous présentons deux type de données monotones simulées.
- Données monotones dans l'espace d'origine : les valeurs des données changent de
manière monotone selon l'axe spatial dans l'espace d'origine. (ex. l'altitude d'un ter-
rain augmente selon l'augmentation des coordonnées (x,y) car un terrain est un es-
pace à 2 dimensions).
- Données monotones dans l'espace linéarisé selon les clés de Hilbert : lorsque les
cellules sont linéarisées selon ces clé de Hilbert, les valeurs des données (surtout
les intervalles des cellules) sont monotones sur l'axe de la clé de Hilbert.
Chapitre 5. Implémentation et performance
119
5.3.1 Données monotones dans l'espace d'origine
Nous avons généré des données de DEM ayant 512* 512 cellules à 2 dimensions et modélisées
par :
w(x,y) = x + y,
où w(P) est la valeur du point P.
La Figure 47 montre un exemple de ce type de données.
Figure 47. Données monotones dans l'espace d'origine à 2 dimensions.
La Figure 48 représente les résultats du temps d'exécution. Les courbes montrent que
notre méthode I-Hilbert fonctionne également mieux que les autres méthodes pour ce genre de
données extrêmement monotones.
Figure 48. Temps d'exécution de requêtes sur des données monotones.
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0 0.01 0.02 0.03 0.04 0.05 0.06
Q intervalle
Tem
ps d
'exé
cutio
n (s
)
Balayage Séquentiel
I-A ll
I-H ilbert
Chapitre 5. Implémentation et performance
120
5.3.2 Données monotones dans l'espace linéarisé
La méthode I-Hilbert utilise les cellules linéarisées selon leur clé de Hilbert (voir section
5.5.1.1). Cette méthode forme, selon une condition de regroupement, des sous-champs en ajou-
tant séquentiellement les cellules linéarisées. Cette condition est basée sur la probabilité d'accès
à un sous-champ (voir section 5.5.1.2). Cette condition permet de regrouper des cellules dont
les valeurs sont similaires dans des sous-champs, tout en essayant de ne pas augmenter le coût
d'accès au disque. En revanche, nous pouvons imaginer un type de champ continu dont les
cellules ne se regroupent pas dans des sous-champs (cela correspond au cas où chaque sous-
champ contient une seule cellule). A l’inverse, nous pouvons aussi imaginer le cas où la
méthode génère un seul sous-champ contenant toutes les cellules. Dans ce chapitre, nous
générons ce genre de cas extrêmes et testons les performances de la méthode I-Hilbert.
Nous rappelons que le coût CSF d'accès à un sous-champ SF basé sur la probabilité
d'accès est défini par :
CSF = L /SI,
où L est la taille de l'intervalle du sous-champ SF et SI est la somme des tailles d'intervalles de
toutes les cellules du SF .
Nous rappelons aussi la procédure FormerSous-champ (voir Algorithme 4 de la sec-
tion 4.4.1.2) formant des sous-champs à partir des cellules linéarisées. La procédure, pour cha-
que cellule, teste si CSF≥ CSF'. Il s’agit de la condition du regroupement - CSF et CSF' sont
respectivement les coûts d'accès avant insertion et après insertion de la cellule dans le sous-
champ courant. Si c'est la cas, la cellule courante sera incluse dans le sous-champ, sinon le
sous-champ courant se termine et un nouveau sous-champ sera créé en contenant la seul cellule
courante.
Nous pouvons donc imaginer deux cas extrêmes au cours de la générations des sous-
champs :
- [Cas 1] CSF < CSF' pour toutes les cellules
- [Cas 2] CSF ≥ CSF' pour toutes les cellules
Chapitre 5. Implémentation et performance
121
1) Cas 1 : CSF < CSF' pour toutes les cellules
Ce cas ne regroupe aucune cellule dans un même sous-champ. Chaque cellule correspond à un
sous-champ. Puisqu'une cellule correspond à un sous-champ, la méthode I-Hilbert pour ce cas
correspond exactement à la méthode I-All. En effet, la méthode I-Hilbert indexe l'intervalle de
chaque sous-champ, ces intervalles correspondant à l'intervalle de chaque cellule (comme la
méthode I-All indexe l’intervalle de chaque cellule).
Les cas extrêmes se produisent au cours de la générations des sous-champs à partir des
cellules linéarisées. Il n'est pas évident de générer ce genre de données dans l'espace d’origine.
Nous générons et illustrons donc ce genre de données dans l'espace linéarisé en supposant que
les données dans l'espace d’origine sont représentées par leur intervalle, afin de générer des
sous-champ. La Figure 49 représente ce cas.
Figure 49. Cas 1 : CSF < CSF' pour toutes les cellules.
Dans la Figure 49, Ii représente l'intervalle de la ième cellule sur l'axe des clés de Hil-
bert et hv représente la clé de Hilbert de chaque cellule. Supposons un sous-champ courant SFj
incluant seulement l'intervalle de cellule i. Nous testons la condition de regroupement pour la
cellule i+1 afin d’étendre SFj (c’est-à-dire afin de décider de l'inclure ou non dans SFj ). Les
coûts CSF et CSF' pour la cellule i+1 sont calculés comme dans la Figure 49. La fonction len
renvoie la taille d'un intervalle (voir la section 5.5.1.2). Ainsi, les résultats du calcul sont :
- CSF = (maxi - mini + 1) / (maxi - mini + 1) = 1
- CSF' = (maxi+1 - mini+1 + maxi - mini + 1 + d) / (maxi+1 - mini+ + 1 + maxi - mini + 1)
valeur
clé de Hilbert
Ii
Ii+1
d
hv1 ... hvi hvi+1 …
...
...
* Ii = [mini, maxi]
* Pour la cellule i+1
- CSF = len(l'intervalle de SFj) / len(Ii)
- CSF' = len(l'intervalle de SFj' ) / (len(Ii) + len(Ii+1 ))SFj
SFj'
Chapitre 5. Implémentation et performance
122
Pour satisfaire la condition CSF < CSF', d doit être supérieur à 1. Ainsi, pour le Cas 1,
d doit être supérieur à 1, pour les intervalles de toutes les cellules.
Cela signifie qu'il n'y a aucun chevauchement des intervalles de cellules voisines (con-
nectées). En revanche, les cellules linéarisées préservent la proximité de l'espace d’origine. Cela
signifie que les cellules voisines dans l'espace linéarisé sont ainsi voisines dans l'espace
d’origine. Les données des cellules voisines dans un champ sont en général continues. Cela
correspond à une valeur de d ≤ 0. Ainsi, le fait de n’avoir aucun chevauchement entre les cellu-
les voisines, et ce sur toutes les cellules ne correspond pas à la réalité.
En fait, l'absence de chevauchement des intervalles entre les cellules voisines repré-
sente la rupture (la discontinuité) des données. La rupture est représentée par le terme "irrégu-
larité" dans [PARIENTE 94]. [PARIENTE 94] a spécifié des contraintes à prendre en compte
dans les méthodes d'estimation. Ces travaux ont ainsi proposés une méthode d'estimation, appe-
lée PYRENEES, considérant ces contraintes. L'objectif de ces contraintes est de tenir compte
des caractéristiques du monde réel afin d'améliorer la qualité de l'interpolation. La spécification
des irrégularités est une de ces contraintes. Selon [PARIENTE 94], les irrégularités sont des
frontières qui correspondent à des discontinuités ou des irrégularités morphologiques. Une auto-
route et/ou une rivière peuvent représenter une irrégularité, par exemple dans le cas de l'obser-
vation de la propagation de la flore. Aussi, un mur peut être à l'origine d'une discontinuité dans
les valeurs (ex. un mur antibruit).
Les méthodes d'estimation tenant compte des irrégularités (comme PYRENEES) peu-
vent introduire la discontinuité des valeurs (intervalles) des cellules voisines. En revanche, ce
genre d’irrégularités ne se manifeste pas en général sur tout l'espace d'un champ continu. Cela
signifie qu'il est possible de trouver des intervalles discontinus sur certaines cellules voisines
mais pas sur toutes les cellules.
2) Cas 2 : CSF ≥ CSF' pour toutes les cellules
Ce cas implique que l'insertion de chaque cellule dans le sous-champ courant diminue le coût
d'accès au sous-champ. Toutes les cellules satisfont donc la condition du regroupement et elles
Chapitre 5. Implémentation et performance
123
sont toutes incluses dans le sous-champ initial. Ainsi, cela entraîne un seul sous-champ (initial).
La Figure 50 illustre des exemples de ce cas.
Figure 50. Cas 2 : CSF ≥ CSF' pour toutes les cellules.
La Figure 50 illustre un exemple du cas où CSF > CSF' pour toutes les cellules. En ef-
fet, lors du calcul de CSF (= L/SI) et CSF' (= L/SI' ) pour toutes les cellules, L (la taille de l'in-
tervalle du sous-champ) ne change pas. SI' (la somme des intervalles des cellules) est toujours
plus grande que SI. Nous pouvons générer ces données comme suit :
Ii = [mini , maxi] = [mini-1 , maxi-1 - C ] ( pour i = 2, 3, … ),
et I1 = [min1, max1]
où C est une constante ≥ 0.
La Figure 50.b représente un exemple du cas où CSF est toujours égal à CSF'. CSF et
CSF' sont donc toujours égal à 1. Nous pouvons générer ces données comme suit :
Ii = [mini , maxi] = [maxi-1 , maxi-1 + C ],
et I1 = [min1, max1]
où C est une constante > 0.
Les deux exemples génèrent un seul sous-champ. Ainsi les performances de la méthode
I-Hilbert sont identiques pour les deux exemples. Nous avons généré deux exemples de données
d’intervalles (de taille 262144). Nous avons effectué des tests sur deux types de données. La
Figure 51 représente les résultats de ces tests en faisant varier le taux de sélectivité.
valeurvaleur
clé de Hilbert
...
clé de Hilbert hv 1 hv 2 hv 3 hv 4 …
a. CSF > CSF' b. CSF = CSF'
...
hv 1 hv 2 hv 3 hv 4 …
Chapitre 5. Implémentation et performance
124
Figure 51. Temps d'exécution des requêtes selon la sélectivité sur des données de la Figure 50.
Puisque la méthode I-Hilbert ne génère qu’un seul sous-champ contenant toutes les
cellules, toutes les cellules doivent être extraites et examinées au cours de l’étape Estimation
(voir 4.2.2. Stratégies de traitement des requêtes basées sur l’approche des sous-champs). Cela
correspond à un Balayage Séquentiel (voir la Figure 51). La méthode I-Hilbert est à peine plus
lente que le Balayage Séquentiel car elle accède à un R*-tree au cours de l'étape Filtrage.
0
0,05
0,1
0,15
0,2
0,25
0,3
0,35
0,4
0,45
0,002
0,010
0,025
0,035
0,045
0,055
0,065
0,075
0,085
0,090
0,100
0,120
0,130
0,150
Sélectivité
Tem
ps d
'exé
cutio
n (s
)
Balayage SéquentielI-AllI-Hilbert
0
0,05
0,1
0,15
0,2
0,25
0,3
0,35
0,4
0,45
0,006
0,020
0,022
0,032
0,046
0,055
0,064
0,074
0,084
0,095
0,110
0,111
0,123
0,135
Sélectivité
Tem
ps d
'exé
cutio
n (s
)
Balayage SéquentielI-AllI-Hilbert
a. CSF > CSF' pour toutes les cellules
b. CSF = CSF' pour toutes les cellules
Chapitre 5. Implémentation et performance
125
Les performances de la méthode I-All sont similaires dans les deux cas. Ce qui est in-
téressant dans ces tests, c'est que la méthode I-All donne les meilleurs résultats pour la sélecti-
vité considérée. Dans les tests sur des données fractales simulées, la méthode I-All a commencé
a devenir plus lente que le Balayage Séquentiel à partir d'une sélectivité de 0.6 (environ - voir la
Figure 46). Bien que la méthode I-All ralentisse aussi proportionnellement à la sélectivité, le
taux de ralentissement est beaucoup plus faible que dans les autres types de données (ex. les
données simulée fractales). En revanche, il faut noter que ces types de données extrêmes n'exis-
tent guère en la pratique.
5.4 Conclusion
Dans ce chapitre, nous avons validé les performances des méthodes proposées par plusieurs
tests. D'abord, les tests ont été effectués sur des données réelles pour observer les performances
des méthodes en pratique. En revanche, il n’est pas évident d’obtenir des données réelles de di-
vers types. Cela nous a conduit à utiliser des données simulées pour générer plusieurs types des
données. Une méthode fractale est utilisée dans ce but car les fractales sont connues pour reflé-
ter les phénomènes naturels.
Les tests sur des données réelles et simulées ont montré la supériorité de la méthode I-
Hilbert. La méthode I-Hilbert a été même 20 à 100 fois plus rapide que le Balayage Séquentiel
pour une sélectivité des requêtes comprise entre 0.001 et 0.01 (sur des données simulées). Nous
remarquons que les performances de la méthode I-All se dégradent sérieusement pour une haute
sélectivité.
Les tests pour les cas extrêmes (dans l'espace linéarisé) nous ont révélé que la méthode
I-All fonctionne mieux que la méthode I-Hilbert. En revanche, il faut noter que ces cas ne sont
pas fréquents en pratique.
Chapitre 6. Traitement des requêtes par valeurs
126
6. Traitement des requêtes par valeurs
Les requêtes par valeurs que nous avons traitées peuvent être notées F-1(w = w'), où w' est soit
une valeur soit un intervalle. Dans cette section, nous présentons le traitement de l'ensemble des
requêtes qu'il est possible de rencontrer dans les BD de champs continus. Le traitement des re-
quêtes est basé sur l'utilisation des sous-champs. Nous rappelons brièvement la procédure du
traitement des requêtes (voir la section 4.2.2)
Etape Filtrage : rechercher les sous-champs contenant les cellules qui satisfont proba-
blement la condition de la requête.
Etape Estimation : extraire les cellules contenues dans les sous-champs issus de l’étape
Filtrage et estimer les régions exactes répondant à la requête par une méthode d'interpolation.
La condition de la recherche de l'Etape Filtrage concerne les intervalles des sous-
champs (section 4.2.2.). Afin d'accélérer cette étape, nous indexons les intervalles des sous-
champs par la méthode 2-D R*-tree avec transformation (section 3.2.2.3). Comme le montre la
Figure 52.a, les intervalles [min, max] sur l'axe Valeur w des sous-champs sont transformés en
points à 2 dimensions. Ces points sont insérés dans un R*-tree pour l'indexation (Figure 52.b).
Figure 52. a) Sous-champs, b) Transformations des intervalles des sous-champs.
Valeur w
Espace v
sous-champ 1
2
34
56
7
les points transformés à partirdes tervalles des sous-champs
Min
MaxMax = Min
1
3
2
4
5
67
a. b.
Chapitre 6. Traitement des requêtes par valeurs
127
Pour exécuter le Filtrage, nous transformons d'abord la valeur (ou les valeurs) de la
requête en un rectangle. Ensuite, nous recherchons des points qui sont contenus dans ce rectan-
gle transformé. Cette recherche est effectuée dans le R*-tree construit à partir des points trans-
formés. Nous énumérons les différents types de requêtes (par valeurs) possibles dans un champ
continu :
Requête 1 : F-1(w' < w < w") : "Quelles sont les régions où la valeur est comprise en-
tre w' et w" ?"
Requête 2 : F-1(w = w') : "Quelles sont les régions où la valeur est strictement égale à
w' ?"
Requête 3 : F-1(w < w') : "Quelles sont les régions où la valeur est inférieure à w' ?"
Requête 4 : F-1(w > w') : "Quelles sont les régions où la valeur est supérieure à w' ?"
Nous présentons la condition de l'étape Filtrage qui sélectionne les sous-champs cor-
respondant à chaque type de requêtes et comment s'interprète chaque condition dans l'espace
transformé. Les fonctions de transformation des valeurs de la requête en rectangles seront pré-
sentés suivant le type de requête défini.
Chapitre 6. Traitement des requêtes par valeurs
128
6.1 Transformation des valeurs d'une requête
1) Requête 1 : F-1(w' < w < w")
Pour trouver les régions où la valeur est comprise entre w' et w", il faut extraire les cellules dont
l'intervalle chevauche l'intervalle [w', w"] car les régions de la réponse peuvent être calculées à
partir de ces cellules. Si l'intervalle d'une cellule intersecte [w' ,w"], l'intervalle du sous-champs
contenant cette cellule intersecte aussi [w', w"] (voir la Figure 53.a). Durant l'étape Filtrage, on
doit donc trouver des sous-champs dont l'intervalle chevauche [w', w"]. Cela implique la recher-
che des points transformés contenus dans le rectangle transformé (coloré dans la Figure 53.b).
Figure 53. Transformation de la requête de type F-1(w' < w < w").
La fonction Trans_Inter de la transformation d'un intervalle [w', w" ] de la requête en
un rectangle de la requête peut donc être définie comme suit:
Trans_Inter ([ w', w" ]) = (0, w', w", wmax ),
où wmax est la valeur maximale possible dans le champ considéré et le rectangle transformé est
représenté par les coordonnées de deux points extrêmes du rectangle (voir Figure 53.b)
Valeur w
Espace v
w'sous-champ 1
23
4
56
7
w"
w’ w" Min
MaxMax = Min
1
3
2
4
5
6
7
wmax
(0,w')
(w", wmax)
a. Sous-champs b. Transformation de la requête
Chapitre 6. Traitement des requêtes par valeurs
129
note) La fonction Trans_Inter a déjà été présentée dans la section 3.2.2.3 (2-D R-tree par la
Transformation).
2) Requête 2 : F-1(w = w')
Pour trouver les régions où la valeur est égale à w', il faut extraire les cellules dont l'intervalle
intersecte w'. Si l'intervalle d'une cellule intersecte w', l'intervalle du sous-champs contenant
cette cellule intersecte aussi w' (voir la Figure 54.a). Durant l'étape Filtrage, on doit donc trou-
ver des sous-champs dont l'intervalle chevauche w'. Cela implique la recherche des points trans-
formés contenus dans le rectangle transformé (coloré dans la Figure 54.b).
Figure 54. Transformation de la requête de type F-1(w = w').
La fonction Trans_Inter de la transformation d'une valeur w' de la requête en un rec-
tangle de la requête peut donc être définie comme suit :
Trans_Inter ([ w', w' ]) = (0, w',w', wmax ),
En effet, ce type de requêtes peut être considéré comme le type de Requête 1 ayant [w',
w'] comme intervalle de requêtes.
Valeur w
Espace v
w'sous-champ 1
2
34
56
7
a.
w' Min
Maxwmax Max = Min
1
3
2
4
5
67
(0,w')
(w', wmax)
a. Sous-champs b. Transformation de la requête
Chapitre 6. Traitement des requêtes par valeurs
130
3) Requête 3 : F-1(w < w')
Pour trouver les régions où la valeur est inférieure à w', il faut extraire les cellules dont l'inter-
valle est inférieur à w' ou les cellules dont l'intervalle intersecte w'. Si l'intervalle d'une cellule
satisfait cette condition, l'intervalle du sous-champs contenant cette cellule doit également satis-
faire cette même condition (Figure 55.a). Durant l'étape Filtrage, on doit donc trouver des sous-
champs dont l'intervalle est inférieur à w' ou des sous-champs dont l'intervalle intersecte w'. Ce-
la implique la recherche des points transformés contenus dans le rectangle transformé (coloré
dans la Figure 55.b).
Figure 55. Transformation de la requête de type F-1(w < w')
La fonction Trans_Infr de la transformation d'une valeur w' de la requête en un rectan-
gle de la requête peut donc être défini par :
Trans_Infr ([w']) = (0, 0, w',wmax )
Valeur w
Espace v
w'
sous-champ 1
2
34
56
7
w' Min
Maxwmax Max = Min
1
3
2
4
567
(0,0)
(w', wmax)
a. Sous-champs b. Transformation de la requête
Chapitre 6. Traitement des requêtes par valeurs
131
4) Requête 3 : F-1(w > w')
Pour traiter ce type de requête, il faut extraire les cellules dont l'intervalle est supérieur à w' ou
les cellules dont l'intervalle intersecte w'. Cela implique de rechercher, au cours de l'étape Fil-
trage, des sous-champs dont l'intervalle est supérieur à w' ou des sous-champs dont l'intervalle
intersecte w' (la Figure 56.a). On doit trouver les points transformés contenus dans le rectangle
transformé (coloré dans la Figure 56.b).
Figure 56. Transformation de la requête de type F-1(w > w')
La fonction Trans_Supr de transformation d'une valeur w' de la requête en un rectangle
de la requête peut donc être définie comme suit :
Trans_Supr ([w']) = (0, w',wmax, wmax )
w' wmax Min
Valeur w
Espace v
w'
sous-champ 12
34
5
6 7
Maxwmax
Max = Min
1
3
2
4
567(0,w')
(wmax, wmax)
a. Sous-champs b. Transformation de la requête
Chapitre 6. Traitement des requêtes par valeurs
132
6.2 Procédure de traitement des requêtes par valeurs
Le traitement des requêtes par valeurs dans un champ continu peut être représenté par le schéma
ci-dessous.
Figure 57. Procédure du traitement des requêtes par valeurs basé sur la transformation des inter-
valles des sous-champs
Comme le montre la Figure 57, lors d'une requête donnée, la valeur de la requête est
transformée en un rectangle rw par la fonction de transformation correspondant au type de la
requête. L'étape Filtrage s'effectue par l'exécution de l'algorithme 'Intersect' dans le R*-tree
avec rw comme la condition de requête. En effet, l'étape Filtrage de tous les types de requêtes
(présentés ci-dessus) implique la recherche des points transformés contenus dans rw. L'étape
une requête donnée (w'), où w' est la condition de la requête
Fichiers d'indexR*-tree construit depuis despoints transformés desintervalles des sous-champs
Base de Données dechamp continu
Etape Filtrage :
Intersect (rw) dans le R*-tree
Etape Estimation :
Estimer(w')
rw = Transformation(w'),
où rw est le rectangle transformé
appeler Estimer pour lesintervalles intersectant rwdans le R*-tree
Chapitre 6. Traitement des requêtes par valeurs
133
Estimation s'effectue sur les cellules contenues dans les sous-champs trouvés dans l'étape Fil-
trage.
La procédure décrite ci-dessus correspond à l'Algorithme 5 représentant le traitement
des requêtes basé sur l'indexation I-Hilbert. La procédure Intersect dans l'Algorithme 5 corres-
pond à l'étape Filtrage et la procédure Estimer correspond à l'étape Estimation dans le schéma
ci-dessus.
6.3 Conclusion
Dans ce chapitre, nous avons présenté le traitement des requêtes ayant différents opérateurs que
l'on peut rencontrer dans les BD de champs continus. Pour accélérer l'étape 'Filtrage' du traite-
ment, les intervalles des sous-champs sont indexés par un 2-D R*-tree avec transformation.
Chaque opérateur implique différentes conditions pour l'étape 'Filtrage'.
L'objectif de nos travaux a été de développer des méthodes d'indexation pour accélérer
l'étape 'Filtrage' car nous supposons que les calculs d'estimation sont négligeables en comparai-
son de l'étape Filtrage requièrant de parcourir toutes les cellules sans indexation.
Or, après l'étape estimation, il pourrait exister des problèmes de représentation des ré-
sultats de l'estimation (qui sont en effet des "morceaux" des cellules). D'une part, nous pouvons
visualiser les résultats de l'estimation tels qu'ils sont, c'est-à-dire chaque morceau de cellules.
D'autre part, il serait possible de demander de fusionner des morceaux de cellules (construire les
zones du résultat). Il existe des algorithmes (implémentées et utilisables) pour cela (ex. "A ge-
neral polygon clipper library" - voir http://www.cs.man.ac.uk/aig/staff/alan/software/). Dans
cette thèse, nous ne nous intéressons pas à analyser le coût d'exécution de ces algorithmes. Nous
supposons seulement que le temps de fusion n'est pas très important car la taille des données est
en général beaucoup moins faible que celle des données à traiter dans l'étape 'Filtrage'.
Chapitre 7. Application
134
7. Applications
Ce chapitre présente comment notre méthode d'indexation par valeurs peut être utilisée dans les
applications réelles. Ce chapitre est composé de deux parties :
- Dans un premier temps, nous présentons une application d'un système d'information
sonore urbain commercialisé (appelé MITHRA). Ainsi, nous présentons comment la mé-
thode I-Hilbert peut être appliquée dans ce système afin d’accélérer le traitement des re-
quêtes par valeurs.
- Dans un deuxième temps, nous présentons un système de visualisation de données en-
vironnementales spatio-temporelles, permettant d'analyser les caractéristiques des don-
nées. Ainsi, nous montrons la nécessité de l'indexation par valeurs et comment utiliser
notre méthode dans ce système.
7.1 Système d'Information Sonore Urbain : MITHRA
MITHRA a été développé par le CSTB (Centre Scientifique et Technique du Bâtiment) et com-
mercialisé par la Société 01dB. L’objectif est le calcul prévisionnel des niveaux sonores en mi-
lieu urbain ou rural ainsi que leur cartographie (pour l'information de MITHRA, voir le site
http://www.cstb.fr/grenoble/acoustique/ondes/produits/mithra.htm et [GRAMMON 96]).
7.1.1 Fonctionnalités
Les fonctionnalités importantes de ce logiciel sont présentées ci-dessous.
Chapitre 7. Application
135
7.1.1.1 Formules de calcul du niveau sonore
Toutes les sources sonores et caractéristiques de terrains sont connues (saisie par l'utilisateur).
La détermination des niveaux sonores se fait par les formules de calcul du "Guide du Bruit" (la
référence est citée dans [GRAMMON 96]). La prévision des niveaux de bruit se base sur les in-
formations concernant le trafic (débit, pourcentage de poids lourds, etc..), le terrain,
l’absorption des façades, la structure du site (rue en U ou L), etc..
Pour le calcul du niveau sonore en un point, il procède à la sommation des contribu-
tions de toutes les sources en ce point, afin d’en déterminer le niveau sonore.
7.1.1.2 Carte horizontale
La cartographie dite horizontale correspond à la visualisation des niveaux sonores par surfaces.
Elle est réalisée grâce à un maillage triangulaire qui couvre la plage sélectionnée, plus resserré
au niveau des bâtiments. Les niveaux sonores sont calculés, selon les formules définies dans le
système, aux sommets des mailles (triangles) à partir des sources sonores saisies. Le résultat de
ce calcul est stocké sur disque pour être réutilisé car ce calcul est très lent. En effet, ce système
utilise le modèle TIN. Ainsi, le niveau sonore d’un point d’un triangle est obtenu par une inter-
polation linéaire à partir des niveaux sonores aux trois sommets du triangle. En considérant le
niveau sonore de tous les points, MITHRA visualise la carte du son, le niveau sonore de chaque
point étant représenté par une couleur associée.
En effet, dans un premier temps, MITHRA calcule les niveaux sonores aux centres des
triangles (par les formules de calcul de la propagation du son du "Guide du Bruit") car un grand
nombre de points de calculs se situeraient sur une frontière. Ensuite, les niveaux sonores aux
sommets des triangles sont calculés à partir des niveaux sonores des centres.
La Figure 58 illustre la division d'une zone en maillages triangulaires.
Chapitre 7. Application
136
Figure 58. Exemple d'un maillage triangulaire dans MITHRA
Bâtiments
Chapitre 7. Application
137
7.1.2 Problématiques
Dans ce logiciel, la fonctionnalité de traitement des requêtes par valeurs n’est pas encore im-
plémentée. En revanche, il est intéressant de proposer cette fonctionnalité pour pouvoir traiter
des requêtes telles que « Quelles sont les régions où le niveau sonore est supérieur à 80dB ?».
La visualisation du résultat de cette requête montre les régions qui sont le plus bruyantes.
Pour l’instant, le logiciel MITHRA fournit des cartes de son sous forme de surface de
niveau sonore, appelée carte horizontale (voir ci-dessus, La carte horizontale). L’inconvénient
de ce type de carte est de visualiser toutes la surface d’une région sélectionnée. Les utilisateurs
doivent analyser ou filtrer les zones correspondant à un certain niveau sonore en fouillant la
carte par eux-mêmes.
7.1.3 Comment utiliser la méthode I-Hilbert dans MITHRA ?
Pour traiter des requêtes par valeurs dans ce logiciel, nous pouvons utiliser le résultat du calcul
de niveaux sonores sous forme de TIN pour la carte horizontale. Le niveau sonore d’un point
d’un triangle est déterminé par une interpolation linéaire à partir des niveaux sonores aux trois
sommets du triangle. Ainsi, l'intervalle des valeurs d'une cellule (triangle) peut être extrait faci-
lement à partir des valeurs aux sommets. Par exemple, l'intervalle de la cellule dans la Figure 59
est [50, 64].
Figure 59. Interpolation dans le MITRA sous forme de TIN.
50
64
56
: Niveaux sonores dessommets du triangle
Chapitre 7. Application
138
Pour répondre à la requête "Où trouve-t-on un niveau sonore entre 40 et 50 ?", nous trouvons
des cellules dont l'intervalle de valeurs chevauche la valeur de la requête [40, 50]. Les régions
exactes de la réponse peuvent être calculées par la fonction F-1 à partir de ces cellules.
Sans indexation, nous devons balayer séquentiellement tous les triangles en testant si
l'intervalle de chaque triangle satisfait la requête, ce qui n'est pas efficace dans le cas d’un
grand volume de données. En utilisant la méthode d’indexation par valeurs 'I-Hilbert' sur l'en-
semble des triangles couvrant l'espace, nous pouvons accélérer le traitement des requêtes dans
ce système.
7.1.4 Performances
Nous avons effectué des tests pour mesurer les performances de notre méthode dans ce système.
Les données et les résultats des tests ont été présentés dans la Figure 39 de la section 5.1. Les
courbes des résultats montrent clairement qu’il est préférable d'utiliser l'indexation 'I-Hilbert'
dans ce système pour traiter les requêtes par valeurs.
7.1.5 Perspectives
Les données sonores sont continues non seulement dans l'espace mais aussi dans le temps. Il se-
rait intéressant d'étendre le modèle de maillage dans ce logiciel pour représenter le temps. Cela
implique la nécessité d'appliquer également une méthode d'interpolation pour le temps.
Nous pouvons imaginer une requête telle que "Visualiser les zones où le niveau sonore
est supérieur à 90 entre 0h et 24h". Cela permet d'analyser l'environnement sonore. Le résultat
de la visualisation peut en effet représenter l'évolution des zones bruyantes en fonction du
temps (par exemple, on pourrait observer un déplacement des zones bruyantes des quartiers en
chantier, pendant la journée, vers des zones animées pendant la nuit). Cela constitue une requête
par valeurs typique dans les champs continus. La méthode 'I-Hilbert' serait alors très utile.
Chapitre 7. Application
139
7.2 Visualisation des données spatio-temporelles de l'environnement
Brown [BROWN 97] présente des travaux sur la visualisation des données spatio-temporelles de
l'environnement. Il a utilisé des données météorologiques (ex. précipitations) enregistrées par
mois depuis les stations de météo dans le pays de Galles en Angleterre, durant plusieurs années.
Il utilise un modèle de volume à 3 dimensions pour représenter des données spatio-temporelles
(x, y, z, valeur). Le but est de visualiser des isosurfaces pour examiner les variations des saisons
et les variations spatio-temporelles du climat, qui sont des facteurs très significatifs pour de
nombreuses activités (ex. agriculture).
7.2.1 Modèle de volume
Brown a créé le modèle de volume à 3 dimensions à partir des points-échantillons mois après
mois. La procédure est décrite dans la Figure 60.
Pour commencer, une méthode d'interpolation de type Krigeage a été utilisée pour
créer une surface pour chaque mois sous forme de DEM à 2 dimensions. Toutes les surfaces du
champ sont rassemblées dans un volume à 3 dimensions comme dans la Figure 60.
Chapitre 7. Application
140
Figure 60. Procédure de la création du modèle de volume à 3 dimensions.
En fait, le Krigeage utilisé pour créer des DEM à 2 dimensions est une méthode d'es-
timation globale (voir la section 2.4). Comme nous l’avons présenté dans la section 2.4, en rai-
son du temps de calcul, lors de l'utilisation d'une méthode globale dans un champ continu pour
traiter des requêtes, les applications utilisent plutôt les résultats de l'estimation effectuée dans
un espace divisé en cellules que des points-échantillons originaux. Les applications utilisent une
méthode d'estimation locale (ex. interpolation avec les points-échantillons générés de la cellule)
= points-échantillons originaux
Estimer les valeurs sur les cellulespar la méthode Krigeage
Requêtes
Discrétiser l ’espacesous forme de DEM
= points-échantillons générés
janvier
février
etc....
points-échantillons par mois
etc....
etc...
. . .
Tout rassemblerdans un DEM à 3dimensions
Modèles de volume
Chapitre 7. Application
141
lors de la détermination la valeur d'un point non connu. Ce système du modèle de volume
correspond à ce genre de cas. Ainsi la Figure 60 représente une procédure similaire à celle dé-
crite dans la Figure 11 (présentant l'architecture des systèmes qui utilisent l'estimation globale).
7.2.2 Visualisation par la méthode d'indexation I-Hilbert
La procédure des requêtes pour générer des isosurfaces accède à ces données de volume. Puis-
que les données des volumes sont continues, Brown utilise une méthode d'interpolation linéaire
qui estime une nouvelle valeur à partir des huit sommets l’entourant. Cette méthode s’appelle
méthode d'interpolation Trilinear (voir http://astronomy.swin.edu.au/pbourke/analysis/trilinear/
pour l'explication de la méthode Trilinear ).
L'intervalle des valeurs d'une cellule (volume) est déterminé par le minimum et le
maximum des valeurs des huit sommets.
Le modèle de volume créé peut être visualisé en extrayant les isosurfaces qui montrent
les variations spatio-temporelles des données. Par exemple, dans la Figure 61, nous pouvons
remarquer que les précipitations importantes (> 200mm/mois) se sont manifestées en Automne
dans presque tout le pays de Galles ; la zone la plus gravement touchée étant a priori le Sud du
pays de Galles. Cette dernière hypothèse peut être testée en extrayant un autre isosurface (ex.
300mm/mois).
Chapitre 7. Application
142
Figure 61. Isosurface de 200 mm de précipitation pour le pays de Galles en 1976, montrant la pré-
cipitation la plus importante en Automne [BROWN 97].
Les requêtes générant des isosurfaces sont des requêtes par valeurs. En pratique, dans
ce système de visualisation d’isosurfaces, un balayage séquentiel s'effectue pour toutes les don-
nées de volume (pour chaque requête). Pour améliorer le traitement des requêtes, nous pouvons
utiliser la méthode 'I-Hilbert' sur des données de volumes. Ce système de visualisation des iso-
surfaces est une application classique de notre méthode d'indexation par valeurs.
Chapitre 7. Application
143
7.3 Application de Navigation sur des terrains
Nous avons présenté les travaux de [LIN 97] sur une application de navigation sur des terrains
aidée par IP-index dans la section 4.2.2. Cette application aide un avion en vol à se localiser.
Cela se fait par la comparaison de l’altitude mesurée du terrain qu’il survole par un capteur avec
l’altitude de la carte. L’IP-index est utilisé pour trouver des zones correspondant à l'altitude
donnée par une carte d'altitude (voir la section 3.1.2 'Application de Navigation de terrains ai-
dée par l’IP-Index').
Puisque l’IP-index est une méthode d’indexation par valeurs pour les séquences à 1
dimension, [LIN 97] a considéré chaque ligne de la carte d’altitude sous forme de DEM comme
une séquence continue du temps (voir la Figure 14). [LIN 97] a construit un IP-index pour cha-
que ligne. Ainsi, la recherche relative à une requête est effectuée pour chaque IP-index. Comme
nous l’avons remarqué, l’utilisation des IP-index dans cette application ne respecte pas totale-
ment la continuité spatiale des altitudes. Cela peut entraîner des résultats non complets des re-
quêtes car il est possible que cette méthode ne trouve pas certaines données implicites.
Cette application est aussi une application classique qui nécessite une méthode
d’indexation par valeurs dans un champ continu. La méthode I-Hilbert est particulièrement bien
adaptée à ce cas car elle prend en compte la continuité spatiale sur les données de terrain.
7.4 Conclusion
Dans ce chapitre, nous avons illustré plusieurs applications pour lesquelles notre méthode d'in-
dexation I-Hilbert peut contribuer à améliorer les performances du traitement des requêtes par
valeurs. Il s’agit :
- d’un système d'information sonore urbain,
- d’un système de visualisation des données spatio-temporelle de l'environnement, par-
ticulièrement adapté à la visualisation des isosurfaces des données,
- d’une application de navigation sur des terrains.
144
PARTIE 2 Visualisation dynamique de la temporalité : Application à un SIG sonore urbain
Chapitre 8. Problématique de la visualisation des données sonores urbaines
146
8. Problématique de la visualisation des données sonores urbaines
Dans la première partie, nous avons illustré quelques applications des champs continus dans les
SIG. Les données de la plupart des applications varient continuellement dans l'espace et aussi
dans le temps. Ainsi, la visualisation spatio-temporelle est nécessaire pour prendre en compte la
continuité spatio-temporelle.
Dans la partie 2 de ce mémoire, nous allons présenter les travaux effectués pour la visualisation
au sein d'un développement d'un SIG dédié à l'environnement sonore urbain (un exemple classi-
que pour des données champs continus). Ces travaux ont été effectués au sein d’un projet issu
d'une collaboration entre le CRESSON (Centre de recherche sur l'espace sonore et l'Environne-
ment Urbain de Grenoble), notre laboratoire LISI et la Communauté Urbaine de Lyon (le Grand
Lyon). La présentation et les travaux effectués pour ce système sont décrits dans [CHANLON
99] [SERVIGNE et KANG 01] (contexte de notre travail, objectifs pour la représentation de
l'environnement sonore urbain, structure de la base de données urbaines sonore, etc..). Dans ce
mémoire, nous nous concentrons sur les travaux concernant la visualisation.
Dans ce chapitre, nous décrivons quelques cartes statiques de son réalisées dans les SIG sonores
urbains existants. Ensuite, nous montrons la nécessité d'introduire l'animation pour représenter
la temporalité des données sonores. Enfin, nous présentons les problématiques et les caractéris-
tiques de l'animation des données sonores.
Chapitre 8. Problématique de la visualisation des données sonores urbaines
147
8.1 Carte de son et visualisation de la continuité spatiale : Cartes statiques
La visualisation de l'environnement sonore est possible grâce aux "cartes de son" qui représen-
tent des données sonores sur des cartes. Les données sonores représentent tous les types de don-
nées qui peuvent décrire les caractéristiques du son. Elles peuvent donc être par exemple :
- des niveaux sonores,
- des types de bruit (ex. continu, impulsif, fluctuant, etc.),
- des bandes de son enregistrées que l'on peut écouter en cliquant sur la carte et qui
permettent d'imaginer l'environnement sonore d'un quartier,
- etc.
Les données sonores les plus classiques sont les niveaux sonores. Sur une carte de son,
les niveaux sonores sont représentés, en général, par des surfaces de niveaux sonores. La visua-
lisation des surfaces des niveaux sonores est adaptée à la représentation de la continuité spatiale
des données (voir Figure 1). En effet, les niveaux sonores sont des données de type champs
continus. Ainsi, une méthode d'interpolation est nécessaire pour estimer les niveaux sonores en
des points non mesurés. La Figure 62.a et b illustrent respectivement une carte de son des ni-
veaux sonores (isophones) en 2 dimensions et en 3 dimensions. Les niveaux sonores sont repré-
sentés par des couleurs associées.
Figure 62. Exemples de cartes de son des niveaux sonores [MULLER et al. 99].
a. b.
Chapitre 8. Problématique de la visualisation des données sonores urbaines
148
Un autre exemple du même mode de visualisation des niveaux sonores est présenté sur
http://www.navcon.com/splana7.htm. Ce mode de visualisation semble bien représenter la con-
tinuité spatiale des données sonores.
Ces cartes statiques dressent un état sonore à partir de moyennes ou de valeurs quanti-
tatives prises à un instant t. Pourtant, le son évolue au cours du temps. Il est donc important de
représenter une telle évolution. Même si les cartes statiques (illustrées comme ci-dessus) sont
certes performantes pour certains aspects, elles ne sont pas bien adaptées pour représenter leur
évolution dans le temps. Nous allons présenter, dans la section suivante, la nécessité de l'anima-
tion pour la représentation de la temporalité des données sonores.
8.2 Visualisation de la temporalité : Cartes animées
La représentation de la temporalité sur une carte peut être obtenue par trois méthodes comme
suit [KRAAK et MACEACHREN 94] :
1) Séquence de cartes (strip map - Figure 63.a) :
Elle est composée d'une série de cartes statiques. Chaque carte représente un état valide
pour un instant ou une période de temps. La variation dans le temps est montrée par les
différences des cartes individuelles. Le nombre de cartes d'une séquence est limité car il
est difficile de suivre une longue série de cartes.
2) Une carte unique et statique (Figure 63.b) :
Cette méthode est plus orientée représentation que visualisation du changement des don-
nées au niveau des objets individuels. Les symboles cartographiques sont en général uti-
lisés pour indiquer les changements des objets dans le temps. Par exemple, dans la
Figure 63.b, un arc indique la trace de l'objet qui se déplace dans l'espace.
3) Cartes animées (Figure 63.c) :
La variation dans le temps est déduite du changement dans les cartes. Le changement
peut être perçu comme un mouvement au cours de l'animation. Ce type de cartes ani-
mées peut représenter les changements des positions et/ou des attributs des objets spa-
tiaux.
Chapitre 8. Problématique de la visualisation des données sonores urbaines
149
Figure 63. Plusieurs type de cartes représentant de la temporalité. a) Séquence de cartes. b) Carte
unique synthétisant l'évolution. c) Cartes animées.
Les cartes animées sont considérées en général comme étant plus puissantes que les
autres types de cartes [RENOLEN 95] [KOUSSOULAKOU and KRAAK 92] pour représenter
la temporalité. Par exemple, un test a été effectué auprès d'un groupe d'étudiants sur l'affiche
d'une séquence de cartes statiques (strip map) et sur une carte animée [KOUSSOULAKOU and
KRAAK 92]. Dans ce test, les exactitudes des réponses n'ont pas été influencées par le type de
cartes utilisées. En revanche, les étudiants ont répondu plus rapidement lors de l'utilisation de la
carte animée (bien qu’ils soient plus doués à lire des cartes statiques). Par ailleurs, les compor-
tements des plantes peuvent être également visualisés et analysés plus clairement lors d'une
animation en réduisant un jour en quelques secondes [RENOLEN 95]. [PETERSON 95] a éga-
lement illustré de nombreuses et différentes applications des cartes animées. Etant donné ce
grand nombre d’applications, l'animation serait la meilleure méthode pour décrire l'évolution
des données [PETERSON 95].
Ainsi, est-il raisonnable et nécessaire d'adopter l'animation pour la visualisation de la
temporalité des données sonores.
a. b.
c.
Chapitre 8. Problématique de la visualisation des données sonores urbaines
150
8.3 Problématiques et caractéristiques de l'animation des données sonores
Dans cette section, nous présentons quelques caractéristiques des données sonores à prendre en
compte pour la visualisation de l'animation. Les problématiques engendrées sont aussi présen-
tées.
1) Intégration de données multimédia
Des documents, images et enregistrements de son peuvent être intégrés aux cartes de
son en tant que données sonores. Par exemple, dans notre projet, certaines bandes sonores ont
été enregistrées sur un endroit localisé en un point et/ou sur un parcours pour faire écouter ces
enregistrements aux utilisateurs. Des documents de plaintes des habitants sont aussi associés
aux endroits concernés. Il faut noter que ces données multimédia intégrées peuvent aussi être
temporelles. Par exemple, des gens peuvent se plaindre du bruit uniquement pendant la nuit.
Dans ce cas, le document des plaintes sera donc valide pour la nuit et nous pouvons utiliser "la
nuit" (ceci est un exemple, alors qu’en pratique l'heure précise serait plutôt utilisée) comme in-
formation temporelle. Ainsi, faut-il prendre en compte et intégrer ce genre de données multimé-
dia à l’animation.
2) Nécessité de granularité par scène2 déterminable par utilisateurs pour la génération de l'ani-
mation
L'animation est un affichage rapide d'une séquence d'un ensemble de scènes. Afin de
générer chaque scène, il est nécessaire de déterminer la granularité représentant le temps d'une
scène. Nous l'appelons la granularité par scène dans ce mémoire.
Par exemple, pour l'animation de la température d'une année, nous pouvons générer
une séquence de scènes dont chaque scène représente un jour ou bien un mois. La granularité
par scène d'un jour (resp. un mois) conduit à générer 365 scènes (resp. 12 scènes) pour l'anima-
2
Nous utilisons le terme "scène" comme la traduction de terme "frame" en anglais qui représente une carte d'un état correspond à un instant t.
Chapitre 8. Problématique de la visualisation des données sonores urbaines
151
tion. La Figure 64 illustre un exemple de deux animations selon différentes granularités par
scène pour représenter le changement de la position d'un véhicule. Pour simplifier, plutôt que de
présenter chacune des séquences des scènes pour les deux animations, le mouvement aperçu du
véhicule au cours de l'animation est représenté par l'ensemble des points représentant la position
du véhicule et par l'arc représentant la direction du mouvement. Chaque point représente donc la
position du véhicule à l'instant de chaque scène de l'animation. La Figure 64.a représente l'ani-
mation basée sur une granularité plus importante que celle de la Figure 64.b. Ainsi, le nombre
des scènes (le nombre des points) de l'animation dans la Figure 64.a est plus faible que celui de
la Figure 64.b.
a.
b.
Figure 64. Animation selon différentes granularités par scène pour le mouvement d'un véhicule
Des données sonores temporelles sont composées de plusieurs types et plusieurs cou-
ches de données. Il est ainsi possible de combiner des données sonores de plusieurs couches
pour l'animation. Ceci peut être identifié à l’action de zoom simultané de données spatiales is-
sues de plusieurs couches. En général, chaque type (couche) de données peut être représenté
dans l'animation par une granularité différente. Le problème qui se pose est de déterminer la
granularité adaptée pour toutes les données participant à l'animation. De plus, il ne paraît pas
raisonnable d'imposer une granularité fixe pour chaque type de données car il est utile de pou-
voir changer la granularité par scène pour un même ensemble de données comme dans le cas de
la Figure 3. Ainsi, est-il raisonnable et nécessaire de donner la possibilité aux utilisateurs de dé-
terminer une granularité par scène de l'animation. Cela conduit, en effet, à traiter les données
pour calculer les valeurs temporelles (ex. la position, la valeur d'un attribut, etc...) corres-
pondant à l'instant de chaque scène pour la granularité déterminée.
Chapitre 8. Problématique de la visualisation des données sonores urbaines
152
3) Nécessité d'accéder aux données et de les analyser en cours d'animation
L'animation n'est pas seulement un affichage rapide d'une séquence de scènes. Elle
peut aller plus loin afin d'être utilisée comme un outil d'exploration des données. En général, les
outils existants pour l'animation fournissent des fonctions d'avancée, d'arrêt, de rembobinage de
la séquence de l'animation (métaphore du magnétoscope), etc. Toutefois, ces outils se limitent à
contrôler l'affichage des scènes et ne sont pas suffisants pour explorer des données. En effet, il
n'est pas possible de consulter ou de manipuler des données pendant l'animation.
Par exemple, un utilisateur peut stopper l'animation lorsqu'il aperçoit une scène "inté-
ressante" au cours de l'animation. Pendant l’arrêt de l'animation, il peut vouloir consulter des at-
tributs de données au moment de l’arrêt. Cela permet de mieux comprendre la situation de la
scène dite "intéressante" en analysant les données de la scène. Après il doit pouvoir relancer
l'animation, et l'animation recommence alors au moment de l’arrêt.
8.4 Conclusion
Les données sonores sont continues non seulement dans l'espace mais aussi dans le temps. Mal-
gré l'évolution du son au cours du temps, la plupart des cartes de son existantes sont plutôt sta-
tiques, lesquelles représentent plutôt la continuité spatiale que la temporalité des données sono-
res (y compris la continuité temporelle). L'animation est une méthode connue comme une
méthode efficace pour la représentation de la temporalité d'information d'une manière générale.
Les techniques d'animation jouent un rôle important pour l'analyse des données géo-
graphiques temporelles. Elles facilitent la compréhension de l'évolution et des changements des
données. Afin de mieux représenter de la temporalité des données sonore, nous avons présenté
les problématiques et les caractéristiques à prendre en compte pour réaliser l'animation des don-
nées sonores comme suit :
- intégration de données multimédia dans l'animation,
- nécessité de granularité par scène déterminable par les utilisateurs pour la génération
de l'animation,
- nécessité d'accéder aux données et les analyser au cours d'animation.
Chapitre 8. Problématique de la visualisation des données sonores urbaines
153
L'interprétation de l'animation est basée sur la sensibilité des humains à détecter des
mouvements ou des changements dans l'affichage graphique [PETERSON 95]. Ainsi, faut-il
fournir aux utilisateurs un maximum d'outils et de possibilités de configurer (par exemple, défi-
nir la granularité par scène pour l'animation) ou de manipuler l'animation (par exemple, stopper
ou recommencer le déroulement de l'animation). Ainsi, l'animation peut être utilisée comme un
outil d'exploration des données afin de détecter les changements (les différences ou les similari-
tés) dans les données au cours de l'animation.
Chapitre 9. Etat de l’art sur les cartes animées
154
9. Etat de l'art sur les cartes animées
Dans ce chapitre, nous présentons un état de l'art des cartes animées. La disponibilité de grands
volumes de données spatio-temporelles a stimulé les recherches dans les domaines de la visuali-
sation et de l'exploration des phénomènes temporels. Nous présentons d'abord le concept de va-
riables de l'animation et celui de variables dynamiques. Les variables de l'animation sont des
variables graphiques utilisées pour représenter les changements des données au cours d’une
animation. Les variables dynamiques donnent la possibilité de générer différentes séquences
d'animation. Ensuite, nous illustrons nos propos par des exemples. Enfin, nous présentons des
travaux relatifs à l'animation sur Internet.
9.1 Méthodes de génération et d'affichage d'une animation
Il existe trois types de méthodes pour générer une séquence de scènes pour une animation
[KRAAK et ORMELING 98] :
- Le « Scène par scène » (ou image par image) : Cette approche est la méthode de gé-
nération la plus élémentaire. Chaque image (correspondant à une scène) est générée
séparément. Ensuite, toutes les images sont combinées pour l'animation. Afin de
donner une impression de fluidité du mouvement, 24 à 30 images par seconde sont
nécessaires.
- La « Scène clé » : Seules les images importantes et caractéristiques (scènes clés)
sont générées. Un programme doit donc calculer (interpoler) les autres scènes à
partir des scènes clés.
Chapitre 9. Etat de l’art sur les cartes animées
155
- L’animation algorithmique : Il s’agit de la méthode la plus puissante et la plus ré-
cente. Un programme définit ce qui va se passer au cours de l'animation. La per-
sonne qui conçoit l'animation définit seulement des objets, des changements et des
instants où les changements vont avoir lieu, etc..
Pour afficher une séquence d'animation, il existe deux méthodes [KRAAK et ORMELING 98]
[PETERSON 99] :
- Affichage on-line : Cela correspond à l'animation en temps réel. Un système très per-
formant génère (calcule) les scènes individuelles directement depuis des données (en
temps réel) et les affiche simultanément.
- Affichage off-line : Les scènes de l'animation sont préparées (générées) et stockées en
mémoire (ou sur le disque si nécessaire). La visualisation de l'animation s'effectue en af-
fichant des scènes stockées.
9.2 Animation temporelle et non temporelle
Lorsque l'on définit une animation comme l’affichage rapide d'une séquences de scènes, les
scènes de l'animation défilent selon l'ordre chronologique. En revanche, il est possible que l'or-
dre des scènes soit décidé par la valeur d'une variable autre que le temps. En effet, il existe deux
types d'animations [PETERSON 95].
9.2.1 Animation temporelle
L'animation représente la temporalité, c'est-à-dire les changements des données au cours du
temps. Ainsi, les scènes de la séquence sont ordonnées selon le temps. La Figure 65 illustre un
exemple d'une animation temporelle. Les scènes se déroulent de la gauche vers la droite. Ainsi,
chaque scène de l’animation représente le pourcentage de la population des personnes de plus
de 65 ans durant chaque décennie donnée.
Chapitre 9. Etat de l’art sur les cartes animées
156
Figure 65. Exemple d'animation temporelle
9.2.2 Animation non temporelle
Dans ce cas, les changements de données entre les scènes ne proviennent plus de changements
temporels : l'ordre des scènes est basé sur une autre variable différente du temps. Autrement dit,
contrairement à l'animation temporelle où une scène représente des données à un instant tempo-
rel, ici une scène représente des données lorsqu’elles correspondent à la valeur d'une variable.
Par exemple, chaque parcelle dans une ville possède le pourcentage de la population de
chaque groupe d'âge (telles que 35-44 ans, 45-54 ans, 55-64 ans, plus de 60 ans). Supposons que
la population âgée se trouve proche du centre, et la population jeune plutôt proche de la péri-
phérie. Supposons que l’on associe une couleur foncée aux zones de forte population et une
couleur claire aux zones de faible population. Une animation de la population par groupe d'âge,
des plus jeunes vers les plus âgés (comme dans la Figure 66), provoque un "déplacement" des
zones foncées (représentant une forte population du groupe d'âge de chaque scène) de la péri-
phérie vers le centre.
Figure 66. Exemple d'animation non temporelle
Chapitre 9. Etat de l’art sur les cartes animées
157
En définitive, l'animation non temporelle représente donc un changement causé par des
facteurs autres que le temps.
9.3 Variables graphiques d'animation et variables dynamiques
Dans le sémiologie graphique de [BERTIN 67], plusieurs variables graphiques ont été proposées
pour représenter graphiquement des informations dans le domaine de la cartographie :
- la taille, valeur (claire ou foncé), grain (densité de la couleur - texture), couleur,
orientation, forme.
De son côté, [PETERSON 95] a défini des variables graphiques d'animation pouvant
décrire des changements de données au cours de l'animation. En effet, toutes les variables gra-
phiques dans [BERTIN 67] peuvent être utilisées comme des variables graphiques d'animation
car les différences entre chaque variable peuvent représenter les changements des données. Ain-
si, [PETERSON 95] a défini d'autres variables pouvant être utilisées pour l'animation. Les va-
riables graphiques d'animation dans [PETERSON 95] sont :
- Taille : La taille d'une zone sur une carte peut être changée afin de mettre en évi-
dence le changement de la valeur. Par exemple, la taille des pays peut être propor-
tionnelle à la quantité du pétrole possédé par chaque pays.
- Forme : La forme d'un objet peut être modifiée au cours de l'animation.
- Position : Un point peut se déplacer au cours de l'animation pour représenter le
changement de position d'un véhicule.
- Point de vue : Une modification de l'angle de vue peut être utilisée. Par exemple,
une animation de l'évolution de la population en France peut utiliser l'angle de vue
qui concentre l'attention sur les régions du sud et de l'est où une augmentation im-
portante de la population s'est produite.
- Vitesse : La vitesse des mouvements peut varier pour accentuer le changement.
- Scène : La scène peut changer afin de représenter de différents sujets au cour de
l'animation.
- Distance : Les changements de la distance entre les utilisateurs et les cartes repré-
sentent les changements d'échelles.
- Variables graphiques telles que texture, motif (pattern), valeur (claire ou foncée),
couleur, etc..
Chapitre 9. Etat de l’art sur les cartes animées
158
Ainsi, durant les scènes de l'animation ces variables changent. Quelques exemples de
modifications de ces variables sont représentés dans la Figure 67 (extrait de
http://cartography.geog.uu.nl/ica/madrid/ormeling.html).
a. Taille
b. Position
c. Point de vue (perspective)
d. Vitesse (taux de changements)
e. Scène
f. Distance (échelle : zoom)
g. Couleur
h. Texture
Figure 67. Modifications dans chaque variable graphique de l'animation
Le son peut être considéré comme une variable supplémentaire dans l'animation carto-
graphique afin d'accentuer l'animation [PETERSON 95]. Par exemple, le volume du son peut
augmenter lorsque survient un changement important des données entre deux scènes consécuti-
ves.
Chapitre 9. Etat de l’art sur les cartes animées
159
Par ailleurs, les variables dynamiques ont été proposées par [DIBIASE et al. 92] et
[KRAAK et MACEACHREN 94]. D'après [DIBIASE et al. 92], des variables dynamiques peu-
vent être rajoutées aux variables graphiques d'animation traditionnelles. Ces variables dynami-
ques permettent de concevoir l'animation pour que les utilisateurs (spectateurs) puissent com-
prendre la « tendance » de l'animation. Les variables dynamiques proposées sont :
- Temps d'affichage : qui représente le temps durant lequel l'affichage d'un change-
ment est initialisé.
- Durée : qui représente la longueur du temps d'affichage entre deux scènes consécu-
tives.
- Fréquence : qui représente le nombre de scènes à défiler par unité temporelle, elle
est donc duale à la variable "Durée".
- Ordre : Cela correspond à l'ordre des scènes composant la séquence. L'ordre des
scènes de la séquence est chronologique (voir Figure 65). En revanche, dans une
animation non temporelle, l'ordre des scènes est basé sur des valeurs d'une variable
autre que le temps (voir Figure 66).
- Taux de changement : défini par la différence de magnitude du changement/unité
de temps pour chaque scène d'une séquence.
- Synchronisation : représente la correspondance temporelle de plus de deux séries.
Les animations possèdent un caractère narratif. Elles racontent une histoire. Les varia-
bles dynamiques peuvent être utilisées comme un outil pour concevoir des animations. Les va-
riables les plus importantes sont "la Durée" et "l’Ordre". Ces deux variables déterminent les
messages à transmettre par l'animation [KRAAK et ORMELING 98]. En effet, les autres varia-
bles sont soit fonctions, soit dépendantes de ces deux variables, ou encore dépendantes des don-
nées (changement de taux), ou spéciales (synchronisation - plusieurs ensemble des données
temporelles). Actuellement, les recherches se concentrent sur les effets de ces deux variables
[KRAAK et KLOMP 95].
Les symboles dynamiques peuvent aussi être utilisés pour renforcer les variables gra-
phiques. Par exemple, des symboles clignotants peuvent être utilisés pour attirer l'attention sur
certaines positions sur les cartes [KRAAK et ORMELING 98].
Chapitre 9. Etat de l’art sur les cartes animées
160
9.4 Exemples d'applications des cartes animées
Il existe de nombreuses applications des cartes animées. Les animations peuvent être utilisées
pour décrire les changements de :
- phénomènes météorologiques tels que la température, les précipitations, etc..,
- taux de pollutions,
- zones de végétions,
- frontières des pays au fil des siècles,
- croissance de la population, pourcentages de population des plus de 65 ans,
- croissance des villes,
- accidents de trafics,
- relations socio-économiques,
- etc..
Quelques cartes animées sur la météorologie sont illustrées sur Internet (par exemple
http://www.sat.dundee.ac.uk/movie.html). Un autre exemple de l'animation des changements
des niveaux sonores se trouve sur le site http://yerkes.mit.edu/shiffer/MMGIS/noisenic.html.
Dans [BISHOP et al. 99], l'animation a été utilisée pour représenter les changements
géologiques en Inde du sud. Dans cette région, il existe des mouvements tectoniques issus de la
collision du sous-continent avec l'Asie. Pendant une longue période, ces changements ont eu un
impact majeur sur les drainages et sur les résultats hydrologiques. Par exemple, une rivière dans
la région s’est déplacée de plusieurs centaines de kilomètres au cours de cette période, ce qui a
entraîné un effet sur l'agriculture dans les zones concernées. Les changements de la surface des
terrains sont modélisés et animés. L'animation a donné une impression réaliste des changements
des surfaces des terrains; par exemple, des zones vertes (agriculture) se déplacent dans les au-
tres zones d'une manière progressive au fil du temps (durant plusieurs milliers d'années).
En revanche, la plupart des cartes animées sont habituellement implémentées de façon
passive, permettant seulement aux utilisateurs de regarder une séquence prédéfinie de cartes.
Par exemple, toutes les cartes animées illustrées ci-dessus sont dans ce cas. De nombreuses car-
tes animées actuelles sont implémentées par un film numérique au format MPEG ou QuickTime.
Dans ces formats, l'animation cartographie est aussi non interactive que les cartes sur papier car
elles ne permettent pas de contrôler comment et quelles scènes composent une animation [PE-
Chapitre 9. Etat de l’art sur les cartes animées
161
TERSON 99]. Les lecteurs de ces formats fournissent seulement des contrôleurs de type magné-
toscope (c'est-à-dire lire, stop, avant, arrière, etc..). Dans la section suivante, nous présentons
des travaux sur l'animation cartographie interactive essayant de pallier cette limitation.
9.5 Animation cartographie interactive
Pour que l'animation cartographie soit interactive et qu’elle ne reste pas seulement au stade
d’affichage rapide des cartes, les utilisateurs doivent pouvoir contrôler (ou configurer) non seu-
lement les fonctionnements d'affichage de type magnétoscope mais aussi la génération de la sé-
quence de l'animation (quelles scènes composent l'animation ?). Cela peut être possible en don-
nant la possibilité aux utilisateurs de définir la valeur des variables dynamiques présentées ci-
dessus.
[PETERSON 95] a présenté quelques logiciels pour la génération des cartes animées interacti-
ves :
- Hypercard : L'animation dans le logiciel l'Hypercard (présenté par Apple Compu-
ter) est implémentée par un script HyperTalk. Dans ce script, nous pouvons spécifier
le temps d'affichage de chaque scène. Par exemple, nous pouvons ralentir la vitesse
d'affichage d'une séquence d'animation en faisant afficher chaque scène pendant 1/10
seconde (valeur initiale 1/60 seconde). Cela permet donc de contrôler la variable dy-
namique "Durée" représentant le temps d'affichage d'une scène.
- MacChoro II : Ce logiciel permet aux utilisateurs de spécifier la génération de
l'animation. Par exemple, dans la Figure 68.a, l'utilisateur a spécifié la génération de
la séquence d'animation représentant le "pourcentage de naissances chez les mères
de moins de 20 ans". Une carte est créée pour chaque nombre de classes considérées.
C'est-à-dire que le nombre de classes utilisé pour générer chaque carte est consécuti-
vement 2, 3, 4, 5, et 6. La séquence des cartes issue de cette configuration est repré-
sentée dans la Figure 68.b. Cette figure illustre une animation non temporelle et les
changements de scènes proviennent des changements du nombre de classes (= de
couleurs). Après la génération des cartes, les contrôleurs suivants peuvent être utili-
sés pour changer la vitesse de l'affichage de l'animation : "Scènes par seconde" ou
Chapitre 9. Etat de l’art sur les cartes animées
162
"Seconde par scènes" (voir la Figure 68.c). Cela correspond à la variable dynamique
"Durée". Les contrôleurs de type magnétoscope sont aussi utilisés pour les mouve-
ments avant, arrières, etc.
Figure 68. MacChoroII : a) Fenêtres pour spécifier la génération de l'animation, b) Exemple de
l'animation issu de la configuration de la Figure 68.a, c). Contrôleurs de l'affichage de l'animation
[PETERSON 99] a proposé une autre méthode pour l'animation cartographie interac-
tive. Ces travaux ont en effet proposé les légendes actives qui permettent de contrôler l'ordre de
l'affichage des cartes individuelles. Lorsque la souris est placé sur une légende, l'animation affi-
che la carte correspondant à cette légende. La scène courante de l'animation peut donc changer
en fonction de la position de la souris. En déplaçant la souris sur plusieurs légendes actives,
nous pouvons animer des cartes selon plusieurs ordres.
a.
b.
c.
Chapitre 9. Etat de l’art sur les cartes animées
163
La Figure 69 présente un exemple de l'utilisation des légendes actives. Chaque carte
individuelle (scène) est associée à un thème (ici une cause la mortalité) : cancer, attaque céré-
brale, maladie du cœur, maladie des poumons et la mortalité de total. Les causes de mortalité
sont classées en 5 groupes et sont représentées par une couleur. Dans la Figure 69, la souris se
situe sur la légende active "Maladie de cœur". Ainsi la carte courante affichée représente les
données associées à la cause de mortalité correspondante. L'animation des cartes se fait par le
déplacement de la souris d'une façon rapide sur les légendes actives. La Figure 70 illustre les
mouvements possibles de la souris sur les légendes. L'illustration de gauche représente les mou-
vements possibles de la souris lorsqu’une animation est composée de deux cartes. Et celle de
droite illustre un exemple rendant animées les quatre cartes individuelles.
Figure 69. Exemple d'une carte (scène) représentant des données correspondant à la légende active
sur laquelle la souris se situe.
Figure 70. Exemple des mouvements possibles de la souris avec les légendes actives.
Attaquecérébrale
Maladiede cœur
Maladie depoumons
Cancer
la positionde la souris
légendes actives
Chapitre 9. Etat de l’art sur les cartes animées
164
Les légendes actives rendent possibles l'animation des cartes selon différents ordres,
avec divers types de combinaisons de cartes. La valeur de la variable dynamique "Ordre" peut
être fixée intéractivement par ce genre de méthode.
En revanche, cette méthode concerne plutôt l'animation non temporelle (comme nous
pouvons le remarquer). En effet, l'animation des cartes se déroule au cours du changement de la
cause de mortalité (et non pas dans le temps). La variable dynamique "Ordre" est en effet moins
significative dans le cas de l'animation temporelle (ce qui est notre cas), car l'ordre de la sé-
quence est constant et ordonné par le temps.
9.6 Cartes animées sur Internet
L'Internet est devenu un moyen important d'acquérir et de diffuser de l'information. Ceci est le
résultat de la grande popularité du World Wide Web. Le World Wide Web offre aussi de nom-
breux outils pour les animations cartographiques. Par exemple, les fichiers des cartes animées
sous le format de GIF animé ou MPEG peuvent être affichés sur la plupart des browsers Web. Il
existe aussi plusieurs types de plug-ins affichant, sur le Web, les fichiers dans un certain format
(ex. Shockwave de Macromedia). La langage Java peut être utilisé pour implémenter des anima-
tions cartographiques sur le Web. Du fait des possibilités et de l'importance de l'utilisation des
cartes animées sur le Web, nous ne présentons que quelques travaux sur des cartes animées sur
le Web.
1) Animation cartographique interactive sur le Web
Nous avons présenté le concept de "légende active" ci-dessus comme une méthode rendant pos-
sible l'animation cartographique interactive. [PETERSON 99] a implementé des légendes acti-
ves en langage JavaScript. Le JavaScript est un langage de script interprété exécuté par un
browser web, et non un langage compilé comme Java.
2) Variables dynamiques d'animation sur le Web
Grâce à la croissance importante du Web, de nombreuses personnes espèrent publier de l'infor-
mation cartographique via ce moyen. Ainsi, de nombreux problèmes sont apparus. Selon [STY-
NES et al. 01], les deux obstacles majeurs pour le contrôle cartographique performant sont la
Chapitre 9. Etat de l’art sur les cartes animées
165
grande diversité des environnements des utilisateurs, et le manque d'intéractivité fourni par le
Web. Pour résoudre ces problèmes concernant les animations cartographiques sur le Web,
[STYNES et al. 01] traitent notamment de l'implication des variables dynamiques (présentées
dans la section 9.3) sur le Web et des possibilités de les implémenter.
3) VRML et animation interactive
VRML est un format standard de description graphique pour les graphiques à 3 dimensions (3D-
graphics) orientés objets, interactifs et animés sur Internet [VAG 97]. VRML est supporté par
de nombreux browsers. VRML à 3D animé est utilisé pour visualiser des données spatio-
temporelles [THEODOULIDIS et VAKALOUDIS 97]. [GRAUER et LUTTERMANN 99] ont
notamment proposé une extension de VRML supportant la description des objets spatio-
temporels et des entités en intégrant la dimension de temps valides et le concept entité. Ainsi un
ensemble des techniques de la visualisation interactive étendant les browsers standard de VRML
est proposé pour la navigation temporelle, par exemple, les fonctionnalités de stopper, d'avan-
cer, etc. dans le browser au cours de l'animation.
9.7 Conclusion
Dans ce chapitre, nous avons presenté un état de l'art des cartes animées. Une animation peut
être temporelle et non temporelle. Alors que des scènes dans une animation temporelle sont
ordonnées selon le temps, celles dans une animation non temporelle ne le sont pas. Elles sont
plutôt ordonnées selon les valeurs d'une autre variable que le temps.
Les travaux sur la définition des variables graphiques d'animation et les variables
dynamiques ont été présentés et nous avons illustré notre étude par quelques exemples
d'application de cartes animées et des travaux sur une animation cartographie interactive.
Dans le chapitre suivant, nous présentons notre application d'animation pour des
données sonores dans un SIG.
Chapitre 10. Visualisation dynamique de la temporalité dans un SIG sonore urbain
166
10. Visualisation dynamique de la temporalité dans un SIG sonore urbain
Dans ce chapitre, nous allons décrire le prototype d'un SIG sonore urbain que nous avons conçu
[KANG et SERVIGNE 99] [SERVIGNE et al. 00] [SERVIGNE et KANG 01]. Dans un premier
temps, l'objectif d'un SIG dédié à l'environnement sonore urbain est présenté. Dans un deuxième
temps, les données temporelles utilisées dans cette application sont décrites. Ensuite, nous spé-
cifions les interfaces de saisie destinées à la définition par l'utilisateur des paramètres d'anima-
tion. Ces paramètres permettent de configurer (contrôler ou spécifier) la génération de la sé-
quence des scènes d'animation. Ainsi, nous pouvons générer plusieurs séquences différentes
d'animation à partir des mêmes données. Nous présentons aussi les contrôleurs de l'affichage
possèdent plus de fonctionnalités que celles de type magnétoscope afin d'explorer des données
géographiques et attributaires au cours de l'animation.
Avant de commencer ce chapitre, nous rappelons ci-dessous les problématiques et les
caractéristiques de l'animation des données sonores présentés dans la section 8.3 car le SIG ré-
alisé a été conçue en tenant compte de ces spécifications.
- intégration de données multimédia dans l'animation,
- nécessité de granularité par scène déterminable par les utilisateurs pour la généra-
tion de l'animation,
- nécessité d'accéder aux données et les analyser au cours d'animation.
Chapitre 10. Visualisation dynamique de la temporalité dans un SIG sonore urbain
167
10.1 Objectif d'un SIG pour environnement sonore urbain
Depuis de nombreuses années, le bruit est un sujet de préoccupation cher aux gestionnaires de la
ville (urbaniste, architecte..). Ceux-ci disposent d’outils performants permettant la modélisation
des émissions sonores et de l’exposition des infrastructures à ces émissions. Le logiciel MI-
THRA (présenté dans la section 7.1) est un exemple de ce type d’outils. Les cartes de bruits gé-
rées par ce type d’outils représentent des données quantitatives (niveaux sonores, surface de
propagation du bruits…). Elles permettent d’établir des diagnostics et de décider de la mise en
place de stratégies défensives pour pallier les gènes engendrés par ces bruits (installation de
murs anti-bruit, mise en place de déviation…). Cependant, il apparaît que l’aménageur au-
jourd’hui, au delà de ces informations quantitatives, a besoin de données qualitatives lui per-
mettant de mieux appréhender la relation des habitants à leur environnement sonore.
C’est dans cet élan, que le CRESSON, en collaboration avec l'INRETS (Institut Natio-
nal de Recherche sur les Transports et leur Sécurité), décident en 1996 de mettre en place un
observatoire de l'environnement sonore à Lyon. Leur étude, reposant essentiellement sur des
enquêtes auprès de la population, a pour objectif la définition des critères qualitatifs les plus re-
présentatifs de l'environnement sonore en liaison avec la perception qu'ont les habitants de leur
environnement. Les critères qualitatifs définis dans ce travail sont donc par exemple "la sociabi-
lité" pour des zones de l'émergence d'activités sociales, "le fond sonore routier" pour des zones
où le bruit routier est très présent, etc. (pour plus de détails, voir [CHANLON 99] [SERVIGNE
et KANG 01]).
La réalisation d'une application dans un SIG est l’occasion d'évaluer l'intérêt de cette
nouvelle approche, couplant des critères qualitatifs et quantitatifs, devant permettre une meil-
leure appréhension de l'environnement sonore. Comme outil SIG, MapInfo (dont le langage de
développement est MapBasic) a été utilisé avec VisualBasic pour réaliser un prototype. Le pro-
totype à été testé sur une zone géographique du 1er arrondissement de Lyon dont les données
nous ont été fournies par la Communauté Urbaine de Lyon.
Comme nous l'avons déjà remarqué, le son évolue en fonction du temps. Ainsi, est-il
important de représenter la temporalité des données sonores. Nous intégrons donc la technique
d'animation cartographique au SIG. Bien que de nombreuses données soient modélisées et utili-
Chapitre 10. Visualisation dynamique de la temporalité dans un SIG sonore urbain
168
sées dans cette application, nous ne présentons que les données temporelles qui sont utilisées
dans la section suivante.
Des niveaux sonores sont des données classiques comme des données quantitatives. En
revanche, dans cette section, des données de niveaux sonores ne sont pas traitées car nous nous
intéressons plutôt aux données qualitatives représentant l'environnement sonore.
10.2 Les données sonores temporelles utilisées
La précision temporelle est différente en fonction de la nature des données manipulées : allant
de la simple notation de l'année jusqu'à l'heure précise (à 10 mn prêt) de l'apparition.
Des données temporelles utilisées sont notamment :
- Signaux sonores,
- Trafic automobile,
- Multimédias (bandes sonores, documents, etc..).
Nous présentons précisément ces trois types de données selon leur représentation de la
temporalité et leur mode de visualisation pour l'animation.
10.2.1 Représentation de la temporalité de chaque type de données
1) Signaux sonores :
Comme nous l'avons présenté ci-dessus, cette application a pour but de représenter plutôt des
données qualitatives. Les données signaux sonores sont des données qualitatives. En se basant
sur les enquêtes et les entretiens auprès de la population ("indicateurs de l'identité sonore d'un
quartier"), un ensemble des signaux sonores a été défini en collaboration avec des architectes.
Les signaux sonores représentent des types de sons particulièrement identifiés dans un endroit
comme par exemple un son de voiture, usine, commerce, restaurant, musique, humain, etc. Cha-
que signal sonore est complété par un commentaire expliquant l'environnement sonore plus pré-
Chapitre 10. Visualisation dynamique de la temporalité dans un SIG sonore urbain
169
cisément, par exemple "appels, rencontres et nombreux pas" , "entrée et sortie bars et boîtes de
nuit", etc. La temporalité de chaque signal sonore est de la forme :
{journée de la semaine, heure de début, heure de fin, durée, fréquence}.
La valeur de l'attribut "journée de la semaine" peut être choisie entre "se-
maine/samedi/dimanche/ tous les jours". En effet, ce genre de données représentant l'environ-
nement sonore dans une ville se manifeste périodiquement dans la vie quotidienne. Nous avons
ainsi décidé de ne pas distinguer les différents jours ouvrables de la semaine car cette distinc-
tion des jours ne semblait pas très significative du point de vue des architectes avec qui nous
avons travaillé. C'est la raison pour laquelle nous avons choisi ces trois catégories de jours au
lieu de mettre une date précise. Ainsi, des données qui se présentent par exemple, seulement le
mardi ne sont pas considérées dans ce travail.
La durée et la fréquence peuvent servir à modéliser des sons répétitifs qui se manifes-
tent plusieurs fois régulièrement dans une journée. Prenons l'exemple d'une cloche d'église qui
sonnerait toutes les heures, de 8h à 20h, pendant 5 minutes tous les jours. On aura donc comme
données:
{tous les jours, 8h00, 20h00, 5minutes, 60minutes}.
Autrement, des données qui ne se répètent pas plusieurs fois dans la journée et qui sont
régulières chaque jour comme des magasins ouvrant entre 9h et 19h pendant la semaine peuvent
être représentées par :
{semaine, 9h, 19h, 10h , 24h}.
2) Trafic automobile :
Le bruit de la circulation automobile est omniprésent et une des sources de bruit les plus impor-
tantes en milieu urbain, d'où la nécessité de le prendre en compte. Nous avons utilisé des don-
nées de comptage réalisés sur des tronçons de rue dans le quartier testé. Le nombre total des vé-
hicules empruntant chaque tronçon a été comptabilisé heure par heure. La temporalité de ces
données est de la forme :
Chapitre 10. Visualisation dynamique de la temporalité dans un SIG sonore urbain
170
{journée de la semaine, n1, n2, …, n24}.
L'attribut journée de la semaine est le même que dans le cas des données de signaux
sonores présentées ci-dessus. Les attributs n1, n2 , …, n24 représentent respectivement le nom-
bre total des véhicules passant sur chaque tronçon entre 01h - 02h, 02h - 03h, …, 23h - 24h. En
effet, pour le jour ouvrable, ce sont des données moyennes pendant la semaine.
3) Multimédia :
Des données multimédias tels que des documents, images et enregistrements de sons sont inté-
grées aux données sonores. Elles sont en effet attachées à certains objets géographiques repré-
sentés sur les cartes de son :
- Des séquences sonores enregistrées sont associées aux points et aux parcours le long
desquels les enregistrements ont été réalisés. Cela donne aux utilisateurs une idée des
sons réels audibles en fournissant la possibilité d'écouter les enregistrements sonores sur
les cartes de son.
- Des documents concernants des plaintes des habitants sont associés aux bâtiments dans
lesquels des gens ont porté ces plaintes.
- Des documents contenant le résultat des entretiens avec des habitants ou des descrip-
tions de l’environnement sonore dans un quartier sont aussi utilisés en étant associés aux
zones correspondantes.
Ces données multimédias intégrées peuvent aussi être temporelles. La temporalité de
ces données multimédias est de la forme :
{date(aaaa/jj/mm/hhhhh), journée de la semaine, heure de début, heure de fin, durée, fré-
quence}.
L'attribut date est le moment où l'acquisition des données a été faite, par exemple,
2001/24/09/12h13 où un enregistrement sonore a été réalisé. Les autres attributs (les mêmes que
pour les données de signaux sonores) sont utilisés pour représenter le temps où des données sont
valides ou significatif. Par exemple, des gens peuvent se plaindre du bruit de la nuit du samedi
Chapitre 10. Visualisation dynamique de la temporalité dans un SIG sonore urbain
171
entre 20h-23h seulement. Dans ce cas, le document des plaintes sera donc valide seulement
pendant cette période. Nous pouvons représenter la temporalité de cette plainte comme :
{2001/09/24/12h13, samedi, 20h, 23h, 3h, NUL}.
En effet, NUL est utilisé comme la valeur de l'attribut fréquence afin de représenter la
non répétition des données.
Un autre exemple serait une séquence sonore enregistrée sur un marché. Supposons
que cet enregistrement sonore soit le son représentatif que l'on peut entendre sur le marché entre
9h et 11h le dimanche. Nous pouvons représenter la temporalité de cet enregistrement sonore
comme suit:
{2001/09/25/9h15, dimanche, 9h, 11h, 2 minute, NUL}.
En effet, l'attribut date pourrait aussi être utilisé dans l'animation des données. En re-
vanche, dans ce travail, nous nous intéressons plutôt aux autres attributs représentant le temps
valide.
Les avantages de l'utilisation des données multimédias (enregistrements sonores) :
Parfois, des données sonores qualitatives représentant les caractéristiques du son (telles que les
signaux sonores) contiennent de nombreux aspects de la dimension sonore qui ne peuvent pas se
résumer par un seul mot ou signe légendé [ARLAUD 01]. Cela peut être résolu en intégrant des
enregistrements sonores et en donnant la possibilité aux utilisateurs de les écouter sur des cartes
de son. Par ailleurs, seuls les enregistrements sonores permettent de révéler certaines potentiali-
tés sonores d'un lieu à travers les usages les plus minuscules qui s'y déroulent. Elles peuvent
donc être de véritables références pour imaginer des concepts d'aménagement sonore ou propo-
ser et corriger un espace acoustique donné.
Chapitre 10. Visualisation dynamique de la temporalité dans un SIG sonore urbain
172
10.2.2 Mode de visualisation de chaque type de données
Chaque signal sonore est représenté par un symbole localisé en son lieu d'émission et caractéri-
sé par les attributs suivants :
- sa couleur indique son appartenance typologique en fonction du découpage (inspiré du
mode de classification proposé par R. Murray Schafer - cité dans [ARLAUD 01]) :
- sons mécaniques en bleu : bruits de la circulation, des industries, etc., relati-
vement continus,
- sons humains en rouge : bruits de pas, de voix, etc., relativement continus,
- sons naturels en vert : bruits de l'eau, des oiseaux, etc., relativement continus,
- etc.
- sa forme précise, par l'utilisation de symboles graphiques, indique la fonction et la si-
gnification de chaque son représenté, par exemple : visage humain = discussions, per-
sonnage entier = passages humains, verre = bruits de café et restaurant, etc.
Ces seules différenciations visuelles (couleur et forme) ne permettent cependant pas
toujours d'exprimer clairement la nature exacte et la spécificité de chaque son répertorié. Un
commentaire textuel complémentaire ou un enregistrement sonore peut donc être associé à cha-
que signal sonore.
En effet, les usages des symboles favorisent non seulement la lectures des cartes stati-
ques mais aussi l'animation des cartes. Par exemple, pour représenter des niveaux sonores, nous
pouvons avoir deux types d'animation :
- animation des valeurs réelles - animation des surfaces des niveaux sonores,
- animation des symboles - animation des symboles qui représentent le classement de
l'intensité des niveaux sonore.
Dans de nombreux cas, l'animation des symboles peut être plus efficace que l'anima-
tion des valeurs réelles car elle ne nécessite pas de traitement compliqué (tel que le 'rendering')
[LAURINI 01].
Chapitre 10. Visualisation dynamique de la temporalité dans un SIG sonore urbain
173
Des données multimédias (tels que enregistrement sonore, documents concernant des
plaintes et des interviews) sont aussi représentées par des symboles pendant l'animation par
exemple, un symbole sous forme de microphone pour un enregistrement sonore.
Le nombre total de véhicules passant sur chaque tronçon est utilisé comme données de
trafic automobile. Pour de telles données, nous utilisons la dégradation d'une couleur en fonc-
tion du nombre de véhicules, par exemple, plus la couleur est foncée, plus le nombre est impor-
tant. En effet, nous utilisons "la valeur (claire ou foncée)" comme étant une des variables gra-
phiques d'animation (présentées dans la section 9.3). Ainsi les changements de degré de la
dégradation de la couleur représentent les changements des nombres de véhicules au cours de
l'animation.
Des données de trafic automobile sont toujours présentes et continues dans le temps.
En revanche, la majorité des signaux sonores (définis et utilisés dans ce travail) sont plutôt des
données présentes seulement à un certain moment. Ainsi, comme nous le verrons plus tard, les
symboles des signaux sonores apparaissent et disparaissent au cours de l'animation. Ce sont
donc des symboles dynamiques qui donnent un rythme à l'animation plus particulièrement lors
que ces apparitions/disparitions se répètent régulièrement.
Dans cette section, nous avons présenté comment la temporalité de chaque type de
données peut être représentée et son mode de visualisation pour l'animation. Dans la section
suivante, nous présentons les interfaces utilisateur permettant de spécifier la génération d'une
séquence d'animation et de contrôler l'affichage de la séquence.
10.3 Carte animée interactive
Afin qu'une animation ne soit pas implémentée de façon passive (cité dans la section 9.5), les
utilisateurs doivent pouvoir contrôler non seulement l'affichage de l'animation mais aussi com-
ment et de quelle manière une carte animée est composée et affichée. Cela signifie que les utili-
sateurs doivent pouvoir contrôler non seulement l'affichage mais aussi la génération de l'anima-
tion. Ainsi, dans cette section, nous présentons d'abord les interfaces utilisateur permettant de
contrôler la génération d'une séquence d'animation. Ensuite, nous présentons un contrôleur plus
interactif que des contrôleurs existants de type magnétoscope pour l'affichage de l'animation.
Chapitre 10. Visualisation dynamique de la temporalité dans un SIG sonore urbain
174
10.3.1 IHM et paramètres d’animation
Notre objectif est d’exploiter l’animation afin d’explorer et d’analyser des données sonores non
seulement spatiales mais aussi temporelles. Aussi, est-il nécessaire d’envisager la possibilité
d’offrir diverses formes de cartographies animées aux utilisateurs depuis les mêmes données
utilisées. Pour cela, nous avons défini quelques paramètres nécessaires pour configurer (spéci-
fier) une séquence d'animation des données sonores utilisées. Ainsi, nous avons proposé et ré-
alisé une interface permettant aux utilisateurs de définir leurs propres paramètres. La Figure 71
présente l’interface permettant le choix de ces paramètres d’animation que nous explicitons ci-
après.
Figure 71. Interface de détermination des paramètres d’animation.
Données à animer
Chapitre 10. Visualisation dynamique de la temporalité dans un SIG sonore urbain
175
Comme nous l'avons vu précédemment, il existe plusieurs types de données sonores temporel-
les. Ce paramètre permet de combiner des types de données concernées pour l'animation.
Période d'analyse
L’utilisateur peut choisir la période de temps de l’animation en précisant les jours et heures de
début et de fin de période. Dans la Figure 71, l’animation est paramétrée pour représenter des
données à partir du "samedi 10 heures 30" jusqu'au "dimanche 10 heures 30". En effet, nous
donnons la possibilité de choisir "semaine/samedi/dimanche" à cause de la caractéristique des
données à traiter dans ce prototype. En revanche, une façon plus générique, de spécifier les da-
tes exactes serait par exemple, 1999/12/12 pour ce paramètre.
Granularité par scène
La granularité par scène exprime le temps que représente chaque scène. Comme nous l'avons
présenté dans la section 8.3, il est nécessaire de donner la possibilité de déterminer (spécifier) la
granularité par scène. En effet, il existe plusieurs types de données à animer et chaque type de
données peut être mieux représenté dans l'animation par différentes granularités. De plus, en es-
sayant plusieurs tailles de la granularité par scène pour une animation, les utilisateurs peuvent
exploiter et analyser des données de plusieurs points de vue comme le cas de changements
d'échelles sur une carte statique.
Ce paramètre permet donc de définir la taille de la granularité par scène de
l’animation. Dans la Figure 71 par exemple, la granularitè par scène est de 10 minutes. Cela
veut dire que chaque scène représente des données calculées sur 10 minutes. La durée de la pé-
riode de l’animation ayant été définie à 24 heures dans la Figure 71, nous pouvons en déduire
que cette animation sera composée de 144 scènes ((24*60)/10).
Les données brutes étant collectées suivant une périodicité propre, les données résul-
tantes affichées dans chaque scène requièrent des méthodes d’estimation afin de représenter la
continuité temporelle. Ces méthodes englobent l’interpolation, l’extrapolation, l’agrégation ou
encore la moyenne, etc. Par exemple, dans notre application, nous disposons du nombre de vé-
hicules passant sur les routes heure par heure. Chaque scène représente le nombre de véhicules
Chapitre 10. Visualisation dynamique de la temporalité dans un SIG sonore urbain
176
passant pendant la taille de la granualité par scène définie par l’utilisateur. Cela requiert des
méthodes d’estimation différentes selon la valeur du granularité par scène. Nous pouvons sim-
plement utiliser la division ou la multiplication pour estimer des valeurs en fonction des granu-
larités. Supposons que la granularité par scène soit de 20 minutes. Nous divisons donc le nom-
bre de véhicules par 3 pour estimer le nombre de véhicules circulant pendant 20 minutes pour
chaque scène. D’autre part, si la granularité par scène est fixée est à 2 heures, la somme des vé-
hicules sur 2 heures serait demandée.
Caractéristiques graphiques
Par ailleurs, en perspective, il serait intéressant de donner aux utilisateurs la possibilité de défi-
nir les variables graphiques d'animation pour mettre en évidence le changement entre des scènes
de l'animation. Comme présenté dans la section 9.3, les variables graphiques d'animation con-
cernent la taille, la forme, la position, la texture, le motif et les couleurs, etc.
10.3.2 Contrôleur interactif d’animation
Dans la section précédente, nous avons proposé les interfaces utilisateur qui permettent de
configurer les paramètres d'une séquence de l’animation. Après avoir généré une séquence de
scènes d'animation selon les paramètres spécifiés par l'utilisateur, les scènes préparées seront
donc animées. Dans cette section, nous allons présenter un contrôleur interactif d’animation,
comme le montre la Figure 72. Les contrôleurs de type magnétoscope comme notre contrôleur
sont déjà utilisés dans certaines applications de l’animation, mais ils restent seulement comme
un outil d'affichage d'une séquence. En revanche, notre contrôleur permet de changer la vitesse
d'animation et aussi d’accéder aux données de chaque scène individuelle dans la cartographie
sonore animée, ou encore de les consulter et de les traiter.
Chapitre 10. Visualisation dynamique de la temporalité dans un SIG sonore urbain
177
Figure 72. Contrôleur interactif d’animation.
Nous expliquons les composants du contrôleur d'animation.
Durée d'affichage par scène
Ce paramètre fixe la durée réelle pour afficher une scène sur l'écran. Cela signifie donc la durée
du temps d’affichage entre deux scènes consécutives. Dans la Figure 72, une scène reste affi-
chée 20 centièmes de secondes. En effet, ce paramètre correspond à la variable dynamique "la
Durée" présentée dans la section. Après avoir généré une séquence de scènes d'animation, nous
pouvons donc afficher une animation de plusieurs vitesses en changeant la valeur de ce paramè-
tre.
Boutons : début, lire, stop, avant, après
Ces boutons correspondent à des fonctionnements de type magnétoscope. Ainsi, "début" remet
l'animation au début de la séquence, "lire" affiche rapidement (selon la valeur de la durée d'af-
fichage par scène spécifiée par l'utilisateur) la séquence des scènes, et "stop" arrête l'animation.
Les boutons "avant" et "après" affichent une seule scène correspondante.
Bouton : Info
Comme nous l'avons présenté, la possibilité d'accéder aux données et de les analyser pendant
d'animation a été requise dans ce travail. Autrement dit, pour l’utilisateur, l’accès aux données
doit être possible à n’importe quel instant pendant le déroulement de l’animation afin d’explorer
Chapitre 10. Visualisation dynamique de la temporalité dans un SIG sonore urbain
178
des données y compris des données multimédias intégrées aux données sonores. Ce besoin est
satisfait par l'intégration de la technique d'animation au SIG (le logiciel MapInfo).
Par exemple, un utilisateur peut stopper l’animation à un moment donné quand il aper-
çoit une scène intéressante à explorer et à analyser. Après avoir stoppé l'animation, l'utilisateur
peut choisir le bouton "Info". Cette action effectue en effet un changement de mode de visuali-
sation des données, c'est-à-dire un changement du mode de visualisation de l'animation vers ce-
lui du SIG. En effet, le mode de visualisation de l'animation est en général d'afficher des scènes
sous forme d'images. Il est difficile d'accéder aux donnés (non seulement aux objets spatiaux
mais aussi aux attributs liés à chaque objet ) sous ce mode. Ainsi, la fonction de "Info" (que
nous avons implémentée) visualise des données de la scène correspondant au moment du stop
dans le SIG sous forme des données exploitables par le SIG (donc plutôt des données de type
vecteur). Ainsi, nous pouvons explorer des données avec le SIG en utilisant toutes les fonctions
du SIG, par exemple consulter les attributs, exécuter des requêtes, zoomer, etc. Il est également
possible d'accéder aux données multimédias, par exemple, d'écouter des enregistrements ou de
consulter des documents liés à ce moment-là dans la cartographie animée pour avoir plus
d’information. Enfin, l'utilisateur peut redémarrer l'animation le bouton "lire".
En donnant la possibilité d'accéder aux données à n'importe quel moment au cours de
l'animation, le contrôleur que nous proposons n'est plus seulement un outil d'affichage de l'ani-
mation. Celui-ci peut être utilisé comme un outil d'exploration de l'animation.
10.3.3 Exemple
Dans cette section, nous présentons un exemple d'une séquence d'animation en utilisant le con-
trôleur présenté dans la section précédente.
Les Figure 73 à 76 montrent quelques scènes extraites au cours de la visualisation
d’une cartographie animée. Les routes épaisses colorées représentent l’existence des données
temporelles sur le trafic à savoir le nombre de véhicules à chaque heure sur les routes. Ces in-
formations sont des données continues temporelles. Nous avons donc besoin de méthodes
d’estimation en fonction de la granularité spécifiée par utilisateur comme nous l'avons déjà ex-
pliqué précédemment. Nous nous sommes servie du dégradé de couleur comme variable graphi-
Chapitre 10. Visualisation dynamique de la temporalité dans un SIG sonore urbain
179
que d'animation afin de décrire l’évolution du trafic en fonction du temps. L’icône horloge indi-
que l'heure correspondant à la scène en cours.
L’utilisateur fait commencer l’animation après avoir défini tous les paramètres néces-
saires comme le montre la Figure 73. A l’instant représenté dans la scène de la Figure 74,
l’utilisateur arrête l’animation, écoute l’enregistrement du son sur un point et consulte le texte
pour la description de l’enregistrement du son. Il recommence l'animation, et il aperçoit l'appa-
rition du symbole point (indiqué par la flèche) dans la Figure 75. Ce symbole représente
l’émission du son d’une cloche d'église qui est un signal sonore. Le son de cette cloche se mani-
feste périodiquement durant un moment comme par exemple, de 8h à 20h, pendant 5 minutes
tous les jours. Ce symbole apparaît donc dans les périodes de la présence du son et disparaît en
dehors de ces périodes au cours de l’animation. Comme ce son se présente régulièrement et pé-
riodiquement, ce symbole apparaît et disparaît (comme dans la Figure 76) régulièrement au
cours de l'animation. Ce symbole étant finalement dynamique, a donné en effet une sorte de
rythme durant l'animation.
Chapitre 10. Visualisation dynamique de la temporalité dans un SIG sonore urbain
180
Figure 73. Contrôleur interactif d’animation dans la cartographie animée : Début de l'animation.
Figure 74. Contrôleur interactif d’animation dans la cartographie animée : Arrêt de l'animation et
consultation des données multimédias.
Chapitre 10. Visualisation dynamique de la temporalité dans un SIG sonore urbain
181
Figure 75. Contrôleur interactif d’animation dans la cartographie animée : Reprise de l'animation
et apparition d'un symbole représentant un signal sonore périodique et régulier.
Figure 76. Contrôleur interactif d’animation dans la cartographie animée : Reprise de l'animation.
Chapitre 10. Visualisation dynamique de la temporalité dans un SIG sonore urbain
182
10.4 Conclusion
Dans ce chapitre, nous avons présenté le prototype réalisé d'un SIG sonore urbain. Dans un
premier temps, l'objectif de l'application a été présenté. Dans un deuxième temps, nous avons
décrit les données sonores temporelles utilisées dans ce prototype. Plusieurs types de données
temporelles y compris des données multimédias sont présentés selon leur représentation de la
temporalité et leur mode de visualisation. Enfin, nous avons détaillé les fonctionnalités permet-
tant une cartographie animée interactive.
Afin qu'une animation soit comme un outil d'exploration des données, elle doit être
implementée de façon interactive en permettant aux utilisateurs de contrôler non seulement l'af-
fichage de l'animation mais aussi la génération de l'animation :
- Nous avons proposé quelques paramètres déterminables par les utilisateurs. Ces pa-
ramètres permettent de contrôler (configurer) la génération d'une séquence de scènes pour
l'animation. Nous avons particulièrement défini le paramètre "granularité par scène" pour géné-
rer des scènes de l'animation.
- Le contrôleur proposé dans ce travail permet non seulement de contrôler l'affichage
de l'animation mais aussi de pouvoir accéder aux données (y compris des données multimédias)
au cours de l'animation.
Nous avons présenté les variables dynamiques dans la section 9.3. En effet, ces varia-
bles peuvent être utilisées comme des paramètres pour la génération de l'animation. Comme
nous l'avons vu, les variables les plus importantes et les plus utilisées sont les variables "Durée"
et ''Ordre". La variable "Durée" est particulièrement utile pour l'animation des données sonores
dans ce travail car elle permet de changer la vitesse de l'affichage d'animation. En revanche, la
variable "Ordre" n'a pas été utilisée car l'ordre des scènes d'une animation dans ce travail est
fixe (ordre chronologique).
184
CONCLUSION et PERSPECTIVES
186
Comme nous avons présenté notre travail en deux partie séparées, nous voudrions conclure ce
mémoire en résumant le travail effectué et en donnant les perspectives selon chaque partie.
PARTIE 1
Indexation par valeurs des données de type champs continus dans les SIG
Le domaine des bases de données de phénomènes continus commence à être étudié depuis quel-
ques années. Ce domaine concerne de nombreuses applications manipulant des données suppo-
sées continues dans l'espace et dans le temps, telles que des données météorologiques, géologi-
ques, écologiques, socio-économiques, acoustiques, etc.
Le traitement des requêtes par valeurs (dont il est question dans cette thèse) telles que
"Quelles sont les régions où la valeur du champ est égale à w' ?" est indispensable pour explo-
rer et analyser les données continues. Ce type de requêtes basées sur une valeur pourrait être
traité par un parcours séquentiel de toute la base de données (sans indexation). Cela entraînerait
une dégradation importante des performances pour les bases de données volumineuses. Ainsi,
notre travail a eu pour but de développer une méthode d'indexation pour accélérer les requêtes
par valeurs dans les champs continus (nommée méthode d'indexation par valeurs).
Avant d'aborder précisément la problématique de nos travaux, nous avons d'abord pré-
senté, dans le chapitre 1, la définition d'un champ continu dans le domaine des SIG et la néces-
sité d'une méthode d'estimation. Les modèles de champs continus les plus couramment utilisés
dans les SIG sont ainsi présentés. Dans ce chapitre, nous avons proposé un modèle générique
basé sur les modèles existants. Ce modèle repose sur des points-échantillons et sur une subdivi-
sion de l'espace en cellules. Chaque cellule est représentée par son aire, ses points-échantillons
et une fonction d'interpolation représentant l'espace de la cellule. Nos travaux sont basés sur le
traitement des requêtes dans les champs continus pouvant être représentés par ce modèle.
Dans le chapitre 2, les traitements des requêtes conventionnelles et des requêtes par va-
leurs sont présentés. Contrairement aux requêtes conventionnelles qui peuvent être supportées
par une des méthodes d'indexation spatiale existante, les requêtes par valeurs ne sont pas sim-
ples à traiter. En se basant sur le modèle générique proposé dans ce chapitre, nous avons mis en
évidence que le problème des requêtes par valeurs revient à "trouver les cellules dont l'intervalle
de valeurs chevauche la valeur de la requête". Les régions exactes de la réponse peuvent être
187
calculées par interpolation des cellules trouvées. Une méthode d'interpolation différente peut
être spécifiée suivant les caractéristiques des données des applications. Cela implique que les
régions de la réponse peuvent donc varier selon la méthode d'interpolation spécifiée. Afin de
rester indépendant de la méthode d'interpolation, nous nous concentrons sur le problème de dé-
terminer les cellules satisfaisant la requête. En effet, trouver ces cellules est un processus grand
consommateur de temps pour les bases d’un grand nombre de cellules, alors que le temps de
calcul de l'interpolation est négligeable ; le calcul est une exécution (en mémoire centrale) en
traitant seulement les points-échantillons de la cellule. En effet, nous supposons que le nombre
des points-échantillons d'une cellule n'est pas très important et que nous pouvons effectuer les
calculs en mémoire centrale. Cette hypothèse implique l'utilisation d'une méthode d'interpola-
tion locale.
Dans le chapitre 3, nous avons effectué, dans un premier temps, un état de l'art des tra-
vaux sur les méthodes l'indexation par valeurs. Comme les travaux effectués jusqu'à présent ne
sont pas adaptés à nos besoins, nous avons dû développer une autre méthode. Dans un deuxième
temps, nous avons étudié des méthodes d'indexation existantes pour des données intervalles,
particulièrement dans les TDB (Temporal DataBase). En effet, le problème d'indexation par va-
leurs est d'accélérer la recherche des cellules selon une condition sur des intervalles. Cela im-
plique la nécessité d’une méthode d'indexation sur les intervalles. Nous avons présenté ses prin-
cipes, avantages et inconvénients. Nous avons choisi la méthode 2-D R*-tree avec
transformation parmi les méthodes présentées dans ce chapitre, afin d'indexer les intervalles
dans un champ continu.
Le chapitre 4 a été consacré à la présentation des méthodes d'indexation développées
dans nos travaux. La méthode la plus simple, nommé I-All, est d'indexer l'intervalle de chaque
cellule par un 2-D R*-tree avec transformation (la méthode choisie dans la section 3.2). A cause
du grand nombre d'intervalles à indexer, cette méthode n'est pas efficace. Nous avons donc pro-
posé un nouveau concept de sous-champ pour l'indexation par valeurs. Un sous-champ est un
sous-espace où les valeurs sont proches les unes des autres. La stratégie du traitement des
requêtes basées sur des sous-champs a ensuite été décrite (l'étape 'Filtrage' et 'Estimation'). Pour
l'étape 'Filtrage', un 2-D R*-tree est utilisé pour indexer les intervalles des sous-champs. Deux
méthodes basées sur le concept de sous-champ ont été présentées. Ces deux méthodes se distin-
guent par leurs stratégies pour implémenter les sous-champs :
188
1) Méthode Interval Quadtree : Elle est basée sur la façon de découper l'espace d'un Quad-
tree. Elle utilise une taille maximale d'intervalle des sous-champs (un seuil) pour déterminer
les sous-champs. Deux implémentations de l'Interval Quadtree ont été proposées, a) Pointer-
based Interval Quadtree et b) Linear Interval Quadtree. Les tests de performances sur des
données réelles de terrains ont été effectués. Comme prévu, le Linear Interval Quadtree a été
meilleur que le Pointer-based Interval Quadtree et que le Balayage Séquentiel. En revanche,
cette méthode n'est pas utilisable pour les raisons suivantes, a) inexistence de moyen justi-
fiable pour décider du seuil optimal et b) la méthode de découpage quadratique n'est pas
adaptée aux champs représentés par des cellules non quadratiques.
2) Méthode I-Hilbert : D'abord, elle linéarise les cellules couvrant l'espace du champ selon la
clé de Hilbert des cellules. Ensuite, elle forme des sous-champs en ajoutant séquentielle-
ment des cellules linéarisées selon une condition du regroupement (basée sur le coût d'accès
à un sous-champ défini dans cette thèse). L'insertion d'une nouvelle cellule s'effectue de
manière à ne pas augmenter le coût d'accès. Cela permet d'essayer de minimiser la dégrada-
tion des performances par le coût d'accès s'adaptant à la distribution des données à traiter.
Dans le chapitre 5, nous avons effectué des tests pour mesurer les performances des
méthodes proposées (la méthode Balayage Séquentiel, la méthode I-All, et la méthode I-
Hilbert). Dans un premier temps, plusieurs données réelles ont été utilisées. Les résultats ont
montré que la méthode I-Hilbert a été la meilleure dans tous les tests effectués. Dans un
deuxième temps, nous avons simulé des données de champs par une méthode fractale. Cela
permet d'utiliser des données de taille plus importante et aussi plusieurs types des données. Le
paramètre "Rugosité" a été utilisé afin de simuler plusieurs types de données. La méthode I-
Hilbert a toujours été meilleure que les autres méthodes en donnant des performances très sta-
bles (sauf dans le cas des données extrêmes - voir la section 5.3.2). La méthode I-Hilbert a été
même 20 à 100 fois plus rapide que la méthode Balayage Séquentiel (voir la Figure 46).
Dans le chapitre 6, nous avons expliqué comment traiter les requêtes selon différents
opérateurs dans un champ continu avec la méthode I-Hilbert.
Enfin, les applications pouvant bénéficier de notre méthode d'indexation sont illustrées
dans le chapitre 7.
Les contributions de nos travaux peut être résumées comme suit :
189
- Définition d’un modèle générique de sous-champs reposant sur des points-
échantillons,
- Proposition d’un nouveau concept de "sous-champ" et traitement des requêtes ba-
sées sur les sous-champs,
- Développement de méthode d'indexation par valeurs dans les champs continus,
- Validation des performances de nos méthodes par des tests, non seulement sur des
données réelles mais aussi sur des données simulées par une méthode fractale com-
prenant des cas de données extrêmes,
- Présentation des applications qui peuvent bénéficier de notre méthode d'indexation.
Nous concluons cette première partie en donnant quelques perspectives :
1) Traitement des champs vectoriels
Ayant focalisé notre attention sur les champs scalaires, l'indexation par valeurs sur les champs
vectoriels n'a pas été abordée. Les champs vectoriels sont importants dans certains domaines de
la modélisation environnementale, particulièrement ceux des courants et fluides (en modélisa-
tion 3D - ex. l'eau sous-terraine ou les modèles océaniques) [KEMP 93]. Comme expliqué dans
le chapitre 1, les champs vectoriels possèdent deux ou plus de deux valeurs en un point, par
exemple la magnitude et la direction (les deux à la fois en un point). Les données des champs
vectoriels peuvent donc être représentées comme des lignes orientées (Figure 77.a). Un vecteur
peut être décrit soit par les coordonnées cartésiennes du point final (Figure 77.b), soit par l'en-
semble de la magnitude et la direction (Figure 77.c). Selon [KEMP 93], il est plus facile d'effec-
tuer des calculs sur des coordonnées cartésiennes.
Figure 77. Représentation d'un champ continu vectoriel.
a. Champ vectorielb. Représentation du vecteur :coordonnées cartésiennes du point final
c. Représentation du vecteur: (magnitude, direction)
(x, y) (α, γ)
x
y
γα
190
Nous allons, ici, juste présenter une intuition de la généralisation de la méthode I-
Hilbert pour les champs vectoriels. L'idée est d'étendre la dimension du domaine des valeurs.
Lorsque l'on considère le domaine des valeurs d'un champ scalaire à 1 dimension, le domaine
des valeurs d'un champ vectoriel peut être considéré comme à 2 ou 3 dimensions (selon le nom-
bre des valeurs associées en un point). La Figure 78 représente des cellules d'un champ vectoriel
ayant les valeurs (w1, w2) en un point afin de former des sous-champs. Chaque cellule est linéa-
risée selon sa clé de Hilbert à n dimensions (basée sur ses coordonnés spatiales ou spatio-
temporelles si le modèle est spatio-temporel) comme dans un champ scalaire. L'intervalle d'une
cellule dans un champ scalaire a été représenté par une ligne car le domaine des valeurs est à 1
dimension. Puisque le domaine des valeurs du champ illustré dans cette figure est à 2 dimen-
sions (la dimension de w1 et w2), nous pouvons représenter l'intervalle d'une cellule comme un
rectangle en 2 dimensions. Ce rectangle est composé de l'intervalle de chaque dimension comme
le montre la Figure 78. En effet, le rectangle des intervalles d'une cellule peut représenter tous
les vecteurs possibles (implicites ou explicites) à l'intérieur de la cellule.
Figure 78. Cellules linéarisées d'un champ vectoriel représentées par les intervalles de chaque di-
mension des valeurs.
clé de Hilbert
valeur w1
valeur w2
...
intervalle de la cellule sur la dimension w1
intervalle de la cellule sur la dimension w2
191
Ainsi, le coût d'accès à un sous-champ doit être étendu, par exemple remplacer la taille
d'intervalle par la surface du rectangle. Après avoir défini le coût d'accès, la procédure For-
merSous-champ qui permet de construire les sous-champs (voir Algorithme 4 dans la section
4.4.1.2) s'effectuera de la même manière que dans les cas des champs scalaires. L'idée est fina-
lement de généraliser la dimension des valeurs. Par exemple pour un champ vectoriel ayant trois
valeurs (w1, w2, w3) en un point, l'intervalle des valeurs pourrait être représenté comme un vo-
lume à 3 dimensions.
Comme nous l'avons dit, ceci est une proposition simple et intuitive. Aussi, reste-t-il à
vérifier, à développer et à valider la proposition.
2) Traitement des autres requêtes avec notre méthode d'indexation par valeurs
Les requêtes basées sur la condition d'une valeur non mesurée, mais calculée (telles qu’une
moyenne, une intégrale ou un gradient) apparaissent aussi importantes dans les applications des
champs continus.
Des exemples de ce type de requêtes sont :
- "Quelles sont les régions (connectées) où la moyenne est comprise entre w' et w" ?"
- "Quelles sont les régions où le gradient est supérieur à w' ?"
Il serait possible et intéressant de trouver des méthodes pour traiter efficacement ce
type de requêtes avec notre méthode d'indexation par valeurs.
192
PARTIE 2
Visualisation dynamique de la temporalité : Application à un SIG sonore urbain
En général, les données de type champs continus sont spatio-temporelles. Cela veut dire que les
phénomènes naturels évoluent en fonction de l'espace et en fonction du temps. Afin de mieux
faire comprendre et analyser un champ continu du point de vue temporel, il est important de re-
présenter son évolution selon le temps. Nous avons adopté l’animation pour cet objectif. Notre
travail a été effectué au sein d'un projet de modélisation et réalisation d'une application d'un
SIG sonore urbain (représentant l'environnement sonore). Ainsi, la technique de l'animation a
été intégrée dans une application d'un SIG pour la visualisation de la temporalité des données
sonores.
Malgré la caractéristique spatio-temporelle de l’environnement sonore, la plupart des
cartes de son existantes demeurent des cartes statiques, et elles ne représentent pas l'évolution
temporelle du son. Autrement dit, bien qu'il existe quelques cartes animées, elles sont implé-
mentées de façon passive, permettant seulement aux utilisateurs de regarder une séquence de
scènes prédéfinies. Cela ne suffisait pas pour être utilisé comme un outil d'exploration de don-
nées. Ainsi, dans ce travail, nous avons eu pour but de proposer des cartes animées interactives
et de réaliser les fonctionnalités nécessaires dans un SIG.
Dans le chapitre 8, nous avons présenté la problématique de la visualisation des don-
nées sonores ; malgré l'évolution temporelle des données sonores, la plupart des cartes de son
proposées ne visualise pas la temporalité car ce sont uniquement des cartes statiques. Cela nous
a conduit à adopter la technique de l'animation car elle est reconnue comme la méthode la plus
efficace pour représenter la temporalité des données. Nous avons aussi précisé, dans ce chapitre,
les problématiques et les caractéristiques de l'animation des données sonores pour implémenter
une carte animée interactive.
Le chapitre 9 a été consacré à l'état de l'art des cartes animées dans plusieurs applica-
tions. La définition des variables graphiques d'animation et des variables dynamiques a été pré-
sentée. Les changements des variables graphiques d'animation telles que la taille ou la couleur
représentent en effet l'évolution des données au cours de l'animation. Même s'il existe plusieurs
variables dynamiques, les variables "Durée" et "Ordre" sont considérées comme les plus impor-
tantes pour déterminer les caractéristiques d'une animation. Selon [PETERSON 99], pour qu'une
animation soit interactive, les utilisateurs doivent pouvoir contrôler non seulement l'affichage
193
de l'animation mais aussi la génération de l'animation. Il existe de nombreux travaux sur la car-
tographie interactive. En revanche, ils ne traitent pas toutes les caractéristiques et problémati-
ques de l'animation de données sonores dans l'application (présentées dans le chapitre 8).
Enfin, nous avons présenté, dans le chapitre 10, un prototype de l'application d'un SIG
sonore urbain. Des données multimédias ont été intégrées pour l'animation. Pour réaliser une
carte animée interactive, nous avons proposé quelques paramètres contrôlant (spécifiant) la gé-
nération des scènes de l'animation. Ces paramètres sont déterminables par les utilisateurs. Cela
permet en effet aux utilisateurs de pouvoir générer plusieurs types de séquences de scènes
d'animation à partir de même données. Le paramètre "granularité par scène" (que nous avons
proposé) nous semble particulièrement important mais il n'a pas été assez exploité pour la car-
tographie animé. Il peut être considéré comme une nouvelle variable dynamique car la granula-
rité est une caractéristique générale des données temporelles. Après avoir généré une séquence
d'animation, il est nécessaire de pouvoir contrôler aussi l'affichage de l'animation. Nous avons
donc proposé et réalisé un contrôleur interactif. En plus des possibilités de contrôler l'affichage
de l'animation (y compris la vitesse de l'animation), ce contrôleur permet aussi d'accéder aux
données au cours de l'animation, afin de mieux analyser et explorer des données temporelles.
Cela est en effet réalisée en exploitant l'intégration de l'animation au SIG.
Nous concluons ce mémoire en donnant quelques perspectives de la deuxième partie
comme suit :
1) Caractéristiques graphiques d'animation par les variables graphiques d'animation
Comme nous l'avons déjà présenté précédemment, il serait intéressant de donner aux utilisateurs
la possibilité de définir eux-mêmes les variables graphiques d'animation. En effet, dans notre
travail, nous avons prédéfini les variables graphiques d'animation pour chaque type de données,
par exemple, le dégradé de couleur a été utilisé afin de représenter le changement du trafic
(nombre des véhicules) au cours de l'animation. Ce changement peut être représenté par une au-
tre variable graphique d'animation telles que la taille, la forme, la position, la texture, etc. En
donnant aux utilisateurs la possibilité d'essayer plusieurs variables graphiques, ils pourraient
choisir la mode de visualisation la plus compréhensible et la mieux adaptée à leur conception
d'animation. Cela rend une carte animée plus personnalisée et plus interactive.
2) Généralisation des paramètres pour la génération d'animation
194
Nous souhaitons généraliser et compléter les paramètres proposés dans ce travail. En effet, les
paramètres proposés (qui déterminent les types des données à animer, la période d'animation, la
granularité par scène) pour la génération de l'animation ne concernent pas seulement des don-
nées sonores. Ils peuvent être utilisés pour l'animation d'autres types de données. Il serait donc
intéressant de trouver une autre application comme par exemple la pollution de l'air dans les vil-
les, pour utiliser et valider ces paramètres. Nous souhaitons aussi enrichir et compléter les pa-
ramètres pour pouvoir générer des scènes d'animation plus variées et personnalisées.
3) Application de notre prototype d'animation pour des données de niveaux sonores
Dans ce travail, nous ne nous sommes pas intéressée aux données de niveaux sonores, lesquelles
sont des données quantitatives typiques dans un système sonore urbain. Cela est dû aux caracté-
ristiques du projet ayant amené ce travail. En effet, rappelons que l'objectif du projet mené en
collaboration avec le CRESSON (Centre de recherche sur l'espace sonore et l'Environnement
Urbain de Grenoble) et la Communauté Urbaine de Lyon était la prise en compte de données
qualitatives sonores pour représenter l'environnement sonore urbain. Toutefois, même si nous
avons privilégié les données qualitatives dans notre projet, les données quantitatives comme les
niveaux sonores sont des données importantes. Ainsi, nous envisageons d'appliquer et de tester
notre proposition d'animation pour des données de niveaux sonores. Une méthode d'estimation
est nécessaire pour représenter non seulement la continuité spatiales mais aussi la continuité
temporelle pour traiter de différentes granularités par scène pour l'animation.
195
196
REFERENCES BIBLIOGRAPHIQUES
198
[ANG et TAN 95] ANG C. and TAN K. The Interval B-tree. Information Processing Letters. 1995, Vol. 53, n° 2,
p. 85-89.
[ARLAUD 01]
ARLAUD B. VERS UNE INFOGRAPHIE DE L’AMBIANCE SONORE URBAINE. Thèse
sci.: Ecole polytechnique de l'Université de Nantes, CRESSON, UMR 1563, Ecole d'Architec-
ture de Grenoble, le 29 octobre 2001. 369 p.
[BARTELS et al 87]
BARTELS R.H., BEATTY J.C. and BARSKY B.A. An Introduction to Splines for Use in
Computer Graphics & Geometric Modeling. Los Altos (USA) : Morgan Kaufmann, 1987, 476 p.
[BECKMANN et al. 90]
BECKMANN N., KREIGEL R., SCHNEIDER R. and SEEGER B. The R*-tree: an efficient
and Robust Access Method for Points and Rectangles. Proceedings of the 1990 ACM SIGMOD
International Conference on Management of Data. Atlantic City, NJ, USA, May 23-25, 1990. p.
322-331.
[BERTIN 67]
BERTIN J. Sémiologie graphiques. Paris : Gauthier-Villars, 1967. 435 p.
[BERTINO et al. 97]
BERTINO E., OOI B.C., SACKS-DAVIS R., TAN K-L., ZOBEL J., SHIDLOVSKY B. and
CATANIA B. Indexing Techniques for Advanced Database Systems. Boston : Kluwer Acade-
mic Publishers, 1997. 264 p. (Kluwer International Series on Advances in Database Systems, n°
8)
[BISHOP et al. 99]
BISHOP I.D., RAMASAMY S.M., STEPHENS P. and JOYCE E.B. Visualisation of 8000
years of geological history in Southern India. International Journal of Geographical Informa-
tion Science. 1999. Vol. 13, n° 4, p. 417-427.
199
[BROWN 97]
BROWN I.M. Multi-parameter visualisation of 3D/4D spatio-temporal data. Proceedings of the
3rd Joint European Conference and Exhibition on Geographical Information (JEC-GI). Vienna,
Austra, April 16-18, 1997. p. 566-574
[BURROUGH et FRANK 96]
BURROUGH P.A. and FRANK A.U. Geographic Objects with Indeterminate Boundaries.,
London : Taylor & Francis, 1996. 345 p. (GISDATA SERIES)
[CHANLON 99]
CHANLON A.C. Représentation de l'environnement sonore urbain à l'aide d'un Système d'In-
formation Géographique. Rapport de Projet de Fin d'Etudes. Département Informatique, Institut
National des Sciences Appliquées de Lyon, Villeurbanne, Juin 1999. 38 p.
[CIGNONI et al. 96]
CIGNONI P., MONTANI C., PUPPO E. and SCOPIGNO R. Optimal isosurface extraction
from irregular volume data. Proceedings of the 1996 symposium on Volume visualization. Octo-
ber ,1996. p. 31-38.
[CIGNONI et al. 97]
CIGNONI P., MONTANI C., PUPPO E. and SCOPIGNO R. Speeding up isosurface extrac-
tion using interval trees. IEEE Transactions on Visualization and Computer Graphics. 1997.
Vol.3, n° 2, p. 158-170.
[DIBIASE et al. 92]
DIBIASE D., MACEACHREN A. M., KRYGIER J. B. and REEVES C. Animation and the
Role of Map Design in Scientific Visualization. Cartography and Geographic Information Sys-
tems. 1992. Vol.19, n° 14, p. 201-214.
[EDELSBRUNNER 80]
EDELSBRUNNER H. Dynamic data structures for orthogonal intersection queries. Inst. Infor-
mationsverarb., Technical University of Graz, Graz, Austria, 1980. Technical Report. F59
200
[ELMASRI et al. 90]
ELMASRI R., WUU G.T.J. and KIM Y-J. The Time Index: An Access Structure for Tempo-
ral Data. Proceedings of the 16th International Conference on Very Large Data Bases (VLDB).
Brisbane, Queensland, Australia, August 13-16, 1990. p. 1-12.
[FALOUTSOS 96]
FALOUTSOS C. Searching Multimedia Databases by Contents. Boston : Kluwer Academic
Publishers, 1996. 155 p. (The Kluwer International Series on ADVANCES DATABASE SYS-
TEMS, n° 3)
[FALOUTSOS et ROSEMAN 89]
FALOUTSOS C. and ROSEMAN S. Fractals for Secondary Key Retrieval. Proceedings of the
8th ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems (PODS).
Philadelphia, Pennsylvania, U.S.A., March 29-31, 1989. p. 247-252.
[FOURNIER et al. 82]
FOURNIER A., FUSSELL D.S. and CARPENTER L.C. Computer Rendering of Stochastic
Models. Communications of the ACM . June 1982, Vol. 25, n° 6, p. 371-384.
[GAEDE et GUNTHER 95]
GAEDE V. and GUNTHER O. Survey on multidimensional access methods. Institut fur Wirt-
schaftsinformatik, Humboldt Universitat zu Berlin, August 1995. 77 p. Technical Report ISS-
16. Disponible sur : <http://www.wiwi.hu-berlin.de/~gaede/survey.rev.ps.Z> (consulté le 23.
10.2001).
[GOODCHILD 97]
GOODCHILD M.F. Unit 054 - Representing Fields. NCGIA Core Curriculum in GIScience.
National Center for Geographic Information and Analysis. University of California, Santa Bar-
bara, CA, USA. 1997. Disponible sur :
<http://www.ncgia.ucsb.edu/education/curricula/giscc/units/u054/> (consulté le 23. 10.2001).
[GORDILLO et BALAGUER 98]
GORDILLO S. and BALAGUER F. Refining an Object-oriented GIS design Model: Topolo-
gies and Field Data. Proceedings of the 6th ACM International Workshop on Advances in Geo-
graphic Information Systems. Washington, D.C., USA, November 3-7, 1998. p. 76-81.
201
[GRAMMON 96]
GRAMMON J. Base de Données sur l’Environnement Sonore Urbain. Rapport de Projet de
Fin d'Etudes Département Informatique, Institut National des Sciences Appliquées de Lyon,
Villeurbanne, Juin, 1996. 63 p.
[GRAUER et LUTTERMANN 99]
GRAUER M. and LUTTERMANN H. Using Interactive, Temporal Visualizations for WWW-
based Presentation and Exploration of Spatio-Temporal Data. Lecture Notes in Computer
Science. 1999. n° 1678, p. 100-118.
[GRIFFITHS 86]
GRIFFITHS J.G. An algorithm for displaying a class of space-filling curves. Software-
Practice and Experience. May 1986. Vol. 16, n° 5, p. 403-411.
[GUNADHI et SEGEV 93]
GUNADHI H. and SEGEV A. Efficient indexing methods for temporal relation. IEEE Tran-
sactions on Knowledge and Data Engineering. 1993. Vol. 5, n° 3, p. 496-509.
[GUTTMAN 84]
GUTTMAN A. R-trees - a Dynamic Index Structure for Spatial Searching. Proceedings of the
1984 ACM SIGMOD International Conference on Management of Data. Boston M.A., USA,
June 18-21, 1984. p. 47-57.
[HERRING 91]
HERRING J.R. Using Spline Functions to Represent Distributed Attributes. Proceedings of
Auto-Carto 10. Baltimore, USA, September 20-23, 1991. Vol. 6, p. 46-58.
[JAGADISH 90]
JAGADISH H.V. Linear clustering of objects with multiple attributes. Proceedings of the 1990
ACM SIGMOD International Conference on Management of Data. Atlantic City, NJ, U.S.A.,
May 23-25, 1990. p. 332-342.
202
[JEANSOULIN 91]
JEANSOULIN R. Extension, Intension et Interpolation Spatiales. RFIA 91, Actes du 8ème
Congrès de Reconnaissance des Formes et Intelligence Artificielle. Villeurbanne, 25-29 No-
vember, 1991. Vol. 1, p. 429-432.
[KAMEL et FALOUTSOS 93]
KAMEL I. and FALOUTSOS C. On packing r-trees. Proceedings of the 2nd International
Conference on Information and Knowledge Management (CIKM). Washington, DC, USA, No-
vember 1-5, 1993. p. 490-499.
[KAMEL et FALOUTSOS 94]
KAMEL I. and FALOUTSOS C. Hilbert R-tree: An Improved R-tree using Fractals. Procee-
dings of the 20th International Conference on Very Large Data Bases (VLDB). Santiago de
Chile, Chile, September 12-15, 1994. p. 500-509.
[KANG et al. 99]
KANG M.-A., SERVIGNE S., LI K.-J. and LAURINI R. Indexing field values in field orien-
ted systems: interval Quadtree. Proceedings of the 1999 ACM CIKM International Conference
on Information and Knowledge Management. Kansas City, Missouri, USA, November 2-6,
1999. p. 335-342.
[KANG et SERVIGNE 99]
KANG M.-A. et SERVIGNE S. Animated Cartography for Urban Soundscape Information. Pro-
ceedings of the 7th International Symposium on Advances in Geographic Information Systems
(ACM-GIS). Kansas City, USA, November 2-6, 1999. p. 116-121.
[KANG et al. 01]
KANG M.-A., FALOUTSOS C., LAURINI R. and SERVIGNE S. Indexing Values in Conti-
nuous Field Databases. International Conference on Extending Database Technology (EDBT
2002). will be held March 24-28 2002, Prague, Sumitted to publication.
[KEMP 93]
KEMP K.K. Environmental Modeling with GIS: A strategy for dealing with spatial continuity.
National Center for Geographic Information and Analysis. University of California at Santa
Barbara, 1993. Technical Report N° 93-3. Disponible sur :
<http://www.ncgia.ucsb.edu/Publications/Tech_Reports/93/93-3.PDF> (consulté le 23.10.2001).
203
[KEMP 97a]
KEMP K.K. Fields as a Framework for Integrating GIS and Environmental Process Models.
Part 1: Representing Spatial Continuity. Transactions in GIS. 1997. Vol. 1, n° 3, p. 219-234.
[KEMP 97b]
KEMP K.K. Fields as a Framework for Integrating GIS and Environmental Process Models.
Part 2: Specifying field variables. Transactions in GIS. 1997. Vol. 1, n° 3, p. 235-246.
[KIM et al. 95]
KIM M.S., SHIN Y.S., CHO M.J., and LI K.-J. A comparative study of spatial access me-
thods. Proceedings of the 3rd ACM International Workshop on Advances in Geographic Infor-
mation Systems (ACM-GIS). Baltimore, Maryland, USA, December 1-2, 1995. p. 29-36.
[KNUTH 73]
KNUTH D.E. The Art of Computer Programming, Vol. 3: Sorting and Searching. New York :
Addison-Wesley, 1973. 722 p.
[KOLOVSON et STONEBRAKER 91]
KOLOVSON C.P. and STONEBRAKER M. Segment Indexes: Dynamic Indexing Techniques
for Multi-Dimensional Interval Data. Proceedings of the 1991 ACM SIGMOD International
Conference on Management of Data. Denver, Colorado. U.S.A., May 29-31, 1991. p. 138-147.
[KORTH et SILBERSCHATZ 91]
KORTH H.F and SILBERSCHATZ A. DATABASE SYSTEM CONCEPTS: second edition.
New York : McGraw-Hill, 1991. 694 p.
[KOUSSOULAKOU and KRAAK 92]
KOUSSOULAKOU A. and KRAAK M. J. Spatio-temporal maps and cartographic communi-
cation. The Cartographic Journal, 1992. Vol. 29, n° 2, p. 101-108.
[KRAAK et KLOMP 95]
KRAAK M. J. and KLOMP A. A classification of cartographic animations: towards a tool for
the design of dynamic maps in a GIS environment. Proceedings on the Seminar on Teaching
animated cartography. Madrid, Spain, August 30 - September 1, 1996. p. 29-36.
204
[KRAAK et MACEACHREN 94]
KRAAK M. J. and MACEACHREN A. M. Visualization of the temporal component of spatial
data. Proceedings of the 6th International Symposium on Spatial Data Handling (SDH). Edin-
burgh, Scotland, September 1-5, 1994. p. 391-409.
[KRAAK et ORMELING 98]
KRAAK M.J. and ORMELING F.J. Cartography: Visualization of spatial data. Harlow :
Longman Publishers. 1998. 222 p.
[LAM 83]
LAM N.S.N. Spatial Interpolation Methods: A Review. The American Cartographer. 1983. Vol.
10, n° 2, p. 129-149.
[LAURINI 01]
LAURINI R. Information Systems for Urban Planning: A hypermedia co-operative approach.
London: Taylor & Francis. 2001. 349 p.
[LAURINI et al. 99]
LAURINI R. LI K.-J., SERVIGNE S. and KANG M.-A. Modeling an Auditory Urban Data-
base with a Field-Oriented Approach. INFORMATICA. 1999. Vol. 23, p.169-185.
[LAURINI et PARIENTE 96]
LAURINI R. and PARIENTE D. Towards a Field-oriented Language: First Specifications. In :
Burrough P.A. and Frank A.U. Eds. Geographic Objects with Indeterminate. London : Taylor &
Francis, 1996. p. 225-235. (GISDATA SERIES)
[LAURINI et THOMPSON 92]
LAURINI R., THOMPSON D. Fundamentals of Spatial Information Systems. San Diego:
Academic Press. 1992. 680 p. (The Apic Series, n° 37)
[LI 92]
LI K.-J. Contributions aux Systèmes d'Hypermédia: Modélisation et Indexation des Objets Spa-
tio-Temporels. Thèse sci. : Institut National des Sciences Appliquées de Lyon, Villeurbanne, 7
Juillet, 1992. 191 p.
205
[LIN et RISCH 97]
LIN L. and RISCH T. Using a Sequential Index in Terrain-Aided Navigation. Proceedings of
the 6th International Conference on Information and Knowledge Management (CIKM). Las Ve-
gas, Nevada, U.S.A., November 10-14, 1997. p.177-184.
[LIN et al. 96]
LIN L., RISCH T., SKOLD M. and BADAL D.Z. Indexing Values of Time Sequences. Pro-
ceedings of the 5th International Conference on Information and Knowledge Management
(CIKM). Rockville, Maryland, USA., November 12 - 16, 1996. p. 223-232.
[LOMET et SALZBERG 89]
LOMET D. and SALZBERG B. Access methods for multiversion data. Proceedings of the
1989 ACM SIGMOD International Conference on Management of Data. Portland, Oregon,
U.S.A., May 31 - June 2, 1989. p. 315-324.
[MAGILLO et al. 00]
MAGILLO P., De FLORIANI L. and PUPPO E. A Librarny for multiresolution Modeling of
Field Data in GIS. Proceedings of the International Workshop on Emerging Technologies for
Geo-Based Applications. Ascona, Switzerland, Mai 22-25, 2000. p.133-151.
[MATHERON 67]
MATHERON G. Kriging, or Polynomial Interpolation Procedures?. Canadian Mining and Me-
tallurgy Bulletin 60. 1967. n° 665, p. 1246-1266.
[MULLER et al. 99]
MULLER J.-C., SCHARLACH H. and JAGER M. Noise in Urban Environment: Problems of
Representation and Communication. Proceedings of the 19th International Cartographic Confe-
rence (ICA), Ottawa, August 14 -21,1999. p. 105-114.
[NASCIMENTO et al. 95]
NASCIMENTO M.A., DUNHAM M.H. and KOURAMAJIAN V. Mapping-Based Approach
for Range Indexing. Southern Methodist University, August, 1995. 26 p. Technical Report 95-
CSE-14. Disponible sur : <http://citeseer.nj.nec.com/160741.html> (consulté le 25.10.2001).
206
[NASCIMENTO et al. 96]
NASCIMENTO M.A., DUNHAM M.H. and KOURAMAJIAN V. A Multiple Tree Mapping-
Based Approach for Range Indexing. Journal of the Brazilian Computer Society. 1996. Vol. 2,
n° 3, p. 36-46.
[NASCIMENTO et SILVA 98]
NASCIMENTO M.A. and SILVA J.R.O. Towards Historical R-trees. Proceedings of the 1998
ACM symposium on Applied Computing (ACM-SAC). Atlanta, GA, USA, February 27 - March
1, 1998. p. 235-240.
[ORMELING 95]
ORMELING F. Teaching Animated Cartography. Proceedings of the Seminar on Teaching
Animated Cartography. Madrid, Spain, August 30 - September 1, 1995. p. 21-28.
[OUATIK EL ALAOUI 99]
OUATIK EL ALAOUI S. Représentaion et Modélisation des Champs Spatio-tremporels Con-
tinus. Thèse sci. : Université‚ Mohammed V-Agdal, Rabat, Maroc, 27 Juillet, 1999. 123 p.
[PARIENTE 94]
PARIENTE D. Estimation, Modélisation et Langage de Déclaration et de Manipulation de
Champs Spatiaux Continus. Thèse sci. : Institut National des Sciences Appliquées de Lyon, Vil-
leurbanne, 6 December, 1994. 192 p.
[PEANO 1890]
PEANO G. Sur une courbe qui remplit toute une aire plaine. Mathematische Annalen. 1890.
Vol. 38, p. 157-160.
[PEITGEN et al.92]
PEITGEN H.O., JURGENS H. and SAUPE D. Fractals for the classroom: Part One, introduc-
tion to fractals and chaos. New York : Springer-Verlag, 1992. 450 p.
[PETERSON 95]
PETERSON M.P. Interactive and Animated Cartography. New Jersey: Prentice Hall. 1995. 257
p. (Prentice Hall Series in Geographic Information Science)
207
[PETERSON 99]
PETERSON M. P. Active legends for interactive cartographic animation. International Journal
of Geographical Information Science. 1999. Vol. 13, n° 4, p. 375-383.
[RENOLEN 95]
RENOLEN A. Temporal Maps and Temporal Geographical Information Systems. Review of
Research. Department of Surveying and Mapping (IKO), The Norwegian Institute of Technolo-
gy, November, 1995. Disponible sur : <http://citeseer.nj.nec.com/correct/150339> (consulté le
25.10.2001).
[SALZBERG et TSOTRAS 97]
SALZBERG B. and TSOTRAS V.J. A Comparison of Access Methods for Temporal Data. Ju-
ne 13, 1997. 88 p. A TIMECENTER Technical Report TR-18. Disponible sur :
<http://www.cs.auc.dk/research/DP/tdb/TimeCenter/TimeCenterPublications/TR-18.pdf> (con-
sulté le 23.10.2001).
[SAMET 90a]
SAMET H. The Design and Analysis of Spatial Data Structures. New York : Addison-Wesley,
1990. 480 p.
[SAMET 90b]
SAMET H. Application of Spatial Data Structures: Computer Graphics, Image Processing, and
GIS. New York : Addison-Wesley, 1990. 507 p.
[SELLIS et al. 87]
SELLIS T., ROUSSOPOULOS N. and FALOUTSOS C. The R+-tree: A Dynamic Index for
Multidimensional Objects. Proceedings of the 13th International Conference on Very Large Da-
ta Bases (VLDB). Brighton, England, September 1-4, 1987. p. 507-518.
[SERVIGNE et al. 00]
SERVIGNE S., KANG M-A. and LAURINI R. GIS for urban soundscape : from static maps
to animated cartography. Proceedings of the 2nd International Conference on Decision Making
in Urban and Civil Engineering (DMinUCE). Lyon, France, November 20-22, 2000. 11 p.
208
[SERVIGNE et al. 99]
SERVIGNE S., KANG M.-A. and LAURINI R. First Specifications of an Information System
for Urban Soundscape. Proceedings of the IEEE International Conference on Multimedia Com-
puting and Systems' 99. Florence, June 7-11, 1999. Vol. 2, p. 262-266.
[SERVIGNE et KANG 01]
SERVIGNE S. and KANG M-A. SIG pour l'environnement sonore urbain. De la représentation
à la visualisation animée. Revue internationale de Géomatique: SIG, aménagement du territoire
et environnement. 2001. Vol. 10 n° 3-4, p. 411-432.
[SHEN et JOHNSON 95]
SHEN H.W. and JOHNSON C.R. Sweeping Simplices: A fast iso-surface extraction algorithm
for unstructured grids. Proceedings of IEEE Visualization '95. Atlanta, Georgia, October, 1995.
p. 143-150.
[STYNES et al. 01]
STYNES K., WOOD J., DYKES J., FISHER P. and UNWIN D. Publishing Cartography on
the Web. University of Leicester, UK. Technical Report du projet Argus. Disponible sur :
<http://www.geog.le.ac.uk/argus/ICA/K.Stynes/> (consulté le 23.10.2001).
[THEODORIDIS et PAPADIAS 95]
THEODORIDIS Y. and PAPADIAS D. Range queries involving spatial relations: A perfor-
mance analysis. Lecture Notes in Computer Science, Springer-Berlin, 1995. Vol. 988, p. 537-
551.
[THEODOULIDIS et VAKALOUDIS 97]
THEODOULIDIS B. and VAKALOUDIS A. A Data Model and a Query Language for 3D
Spatiotemporal Information. 1st CHOROCHRONOS International Workshop on Spatio-
Temporal Database Systems. 1997. Petronell - Carnuntum, Austria. p. 17-25. ChoroChronos
Technical Report CH-97-02.
[TSOTRAS et KANGELARIS 95]
TSOTRAS V.J. and KANGELRARIS N. The snapshot index, an I/O optimal access method
for timeslice queries. Information Systems. 1995. Vol.3, n° 20, p. 237-260.
209
[VAG 97]
VAG (VRML Architecture Group). The Virtual Reality Modeling Language Specifications.
ISO/IEC DIS 14772-1. Web3D Consortium, 1997. Disponible sur :
<http://www.web3d.org/technicalinfo/specifications/specifications.htm> (consulté le
23.10.2001).
[van KREVELD 94]
van KREVELD M. Efficient methods for isoline extraction from a TIN. International Journal
of Geographic Information Science. 1996. Vol.10, n°5, p. 523-540.
[VCKOVSKI 95]
VCKOVSKI A. Representation of Continuous Fields. Proceedings of the Auto-Carto 12. Char-
lotte, North Carolina,USA, Febrary. 27 - March 1, 1995. Vol. 4, p. 127-136.
[YU et al. 96]
YU S., VAN M. and SNOEYINK J. Drainage queries in TINs : from local to global and back
again. Proceedings of the Symposium on Spatial Data Handling (SDH). Delft, the Netherlands,
August 12-16, 1996. p. 13A.1-13A.14.
210
FOLIO ADMINISTRATIF
THESE SOUTENUE DEVANT L’INSTITUT NATIONAL DES SCIENCES APPLIQUEES DE LYON
NOM : KANG DATE de SOUTENANCE :
(avec précision du nom de jeune fille, le cas échéant) 20 décembre 2001
Prénoms : MYOUNG-AH
TITRE :
INDEXATION ET VISUALISATION DES DONNEES DE CHAMPS CONTINUS DANS LES SIG
(SYSTEMES D’INFORMATION GEOGRAPHIQUE)
NATURE : Doctorat Numéro d’ordre : 2001ISAL0078
Formation doctorale :
Documents multimedia, Images et Systèmes d'Information Communicants (DISIC)
Cote B.I.U-Lyon : T 50/210/19 / et bis CLASSE :
RESUME :
L’objectif des bases de données de champs continus est la représentation des phénomènes continus (météorologie, géologie, pollution, etc..). Nous proposons une méthode d’indexation pour le traitement efficace des requêtes par valeurs dans une grand base de données de champs. Ces requêtes sont basées sur la condition d’une valeur de champ, telles que “Quelles sont les régions où la température est inférieure à 30° ? ”. Pour cela, nous proposons un nouveau concept de sous-champ. Nous divisons un espace en plusieurs sous-champs pour que toutes les valeurs explicites ou implicites dans un sous-champ soient proches dans le domaine de valeur défini. Ainsi, les intervalles des sous-champs peuvent être indexés par une méthode existante d'indexation d’intervalles. Nous présentons deux nouvelles méthodes d'implémentation de sous-champs : les méthodes "Interval Quadtree" et "I-Hilbert". La méthode "I-Hilbert" est issue de la réflexion sur l’amélioration de la mé-thode "Interval Quadtree"
Par ailleurs, nous nous intéressons à la visualisation de la temporalité des données. Afin de mieux comprendre et ana-
lyser des données selon le temps, il est important de représenter leur évolution temporelle. Du point de vue thématique appli-cative, nous avons travaillé sur un SIG sonore urbain. Après une étude des outils existants, nous avons adopté des techniques d’animation pour représenter l'évolution temporelle du son. Utiliser une carte animée comme outil d'exploration des données nécessite la spécification d’une carte animée interactive permettant aux utilisateurs de contrôler non seulement l'affichage mais aussi la génération de l’animation. Afin de réaliser une telle carte animée, nous proposons des paramètres contrôlant la génération des scènes d’animation et un contrôleur interactif de l’affichage des animations. Ces spécifications d’une carte animée interactive ont été validées dans un prototype développé sous MapInfo et VisualBasic.
MOTS-CLES : Système Information Géographique, Traitement Requête, Indexation, Fractal,
Animation, Visualisation Interactive, Carte Son, Evolution Temporelle
Laboratoire(s) de recherches : Laboratoire d'Ingénierie des Systèmes d'Information (L.I.S.I.) de l’I.N.S.A. de Lyon
Directeur de thèse : R. LAURINI, S. SERVIGNE
Président de jury : P. BERGOUGNOUX
Composition du jury : R. LAURINI, K.-J. LI, S. SERVIGNE, S. SPACCAPIETRA, G. ZURFLUH