Sig Cm Iv

688 vues

Publié le

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
688
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
9
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Sig Cm Iv

  1. 1. Systèmes d’Information Géographique Jean-Yves Antoine Université François Rabelais de Tours www.info.univ-tours.fr/~antoine © J.Y. Antoine — 1
  2. 2. Systèmes d’Information Géographique 4. INTERROGATION DES SIG requêtes en mode vectoriel et indexation © J.Y. Antoine — 2
  3. 3. Sommaire • SIG : implémentation pour requêtes spatiales optimisées 4 • Requêtes en mode vectoriel : cas d’école 7 • Requêtes attributaires : SQL 9 • Requêtes spatiales : SQL étendu 11 • Index spatiaux 16 © J.Y. Antoine — 3
  4. 4. SIG : implémentation Modélisation de l’information géogrphique (rappel) Route 1,n SEMANTIQUE Eléments #N° 1,1 Tronçon Carrefour 2,2 2,n Km_deb Extrémité #N° Km_fin 1,1 1,1 Représenté Représenté GEOGRAPHIE Segment par par 1,1 #Id_arc Début 1,1 Fct_Arc 1,1 Point 0,n 1,1 Fin #Id_point 1,1 Polyligne 0,n Longitude 0,n 1,2 Eléments Latitude 0,n Point #Id_ligne Orientation d’appui Dte / Gche En théorie – MCD représentable dans un SGBD relationnel En pratique – Peu adapté à la représentation de la partie géographique : • Pas d’optimisation pour l’accès à l’information spatiale • Requêtes spatiales de trop bas niveau © J.Y. Antoine — 4
  5. 5. SIG : implémentation SIG : couplage SBGD-R / SI spatial - SGBD-R : information sémantique + lien vers l’information géographique - SI spatial : information géométrique Route Requêtes dans les SIG : extension de SQL #N° 1,n - types abstraits de données (point, ligne, zone ….) Eléments - Fonctions d’interrogation spatiales 1,1 Tronçon Troncon Km_deb { Km_fin num_troncon : integer, 1,1 num_route : integer, km deb : integer, Représenté km fin : integer, par obj_geom : ligne } 1,1 MapInfo Polyligne obj #Id_ligne Dte / Gche CREATE TABLE Troncon … © J.Y. Antoine — 5
  6. 6. SIG : implémentation SQL étendu : exemples de fonctions spatiales MapInfo Professional  PointInZone(zone,point) → booleen Within LineInZone(zone,zone) → booleen Contains {Entire} ZoneInZone(zone,zone) → booleen IntersectZone(zone,zone) → booleen Intersect IntersectLineZone(zone,zone) → booleen Adjacent(zone,zone) → booleen Surface(zone) → real Area Perimeter(zone) → real Perimeter Intersection(zone, zone) → zone Centroid(zone) → zone Centroid PointInLine(zone,point) → booleen IntersectLineZone(zone,zone) → booleen Length(zone) → real Distance(point,point) → real Distance © J.Y. Antoine — 6
  7. 7. Requêtes en mode vectoriel : cas d’école Id Long Trafic obj Type obj Id_parcelle Proprietaire Surface N14 173 Nationale 4 500 * * 041_345 Ant_1_66_12 483 Cadastre Voirie Id Type Superficice obj Id Nom Dep Pop obj 041_26 Mairie 483 * 41000 Blois 41 51500 * Bâti Communes © J.Y. Antoine — 7
  8. 8. Requêtes en mode vectoriel : cas d’école Exemples de requêtes AT RE IB 1. Quelle est la longueur de la nationale 14 ? TR Q UT UA ET IR 2. Quelle est le trafic moyen des routes départementales ? ES ES 3. Quelle est la ville la plus peuplée du Loir-et-Cher ? 4. Quelle est la taille moyenne des villes dans chaque département ? 5. Quelles sont les routes qui croisent la nationale 14 ? RE A 6. Quelles communes disposent encore d’une église ? SP Q TI A UL 7. Quelles sont les communes traversées par la nationale 14 ? ET E ES S 8. Combien y-a-t-il d’écoles dans la ville de Blois ? 9. Combien y-a-t-il de propriétés cadastrales à Blois ? © J.Y. Antoine — 8
  9. 9. Requêtes attributaires : SQL Requêtes attributaires unitables Id Long Trafic obj Type N14 173 Nationale 4 500 * Voirie Quelle est la longueur de la nationale 14 ? SELECT Long FROM Voirie WHERE Id= ‘N14’; Quel est le trafic moyen des routes départementales ? AVG(Trafic) SELECT Voirie FROM Type = ‘Departementale’; WHERE © J.Y. Antoine — 9
  10. 10. Requêtes attributaires : SQL Jointures et fonctions d’agrégat Id Nom Dep Pop obj 41000 Blois 41 51500 * Communes Quelle est la ville la plus peuplée du Loir-et-Cher ? Nom SELECT Communes FROM Pop IN ( WHERE SELECT Max(Pop) FROM Communes); Quelle est la taille moyenne des villes dans chaque département ? Dep, AVG(Pop) SELECT Communes FROM Pop > 3000 WHERE GROUP BY Dep; © J.Y. Antoine — 10
  11. 11. Requêtes spatiales : SQL étendu Opérateurs spatiaux Id Long Trafic obj Type Nationale 4 500 * N14 173 Voirie Quelles sont les routes qui croisent la nationale 14? SELECT Id FROM Voirie WHER obj Intersect( SELECT obj FROM Voirie WHERE Id = quot;N14quot;) ); © J.Y. Antoine — 11
  12. 12. Requêtes spatiales : SQL étendu Jointure spatiale Id Type Superficice obj 041_26 Mairie 483 * Quelles communes possèdent une église ? Bati SELECT Nom FROM Communes WHERE obj Contains( SELECT obj Id Nom Dep Pop obj FROM Batiments 41000 Blois 41 51500 * WHERE Type = quot;Eglise« ) ); Communes SELECT Communes.Nom FROM Communes, Bati WHERE Communes.obj Contains Bati.obj Bati.Type = quot;Eglise« ; AND Quelles sont les communes traversées par la nationale 14 ? Requête semblable à la précédente : la jointure se fait ici avec INTERSECT © J.Y. Antoine — 12
  13. 13. Requêtes spatiales : SQL étendu Jointure spatiale et fonction d’agrégats Id Nom Dep Pop obj Id Type Superficice obj 41000 Blois 41 51500 * 041_26 Mairie 483 * Communes Bati Combien y-a-t-il d’écoles dans la ville de Blois ? SELECT Count(Bati.obj) FROM Communes, Bati WHERE Communes.obj Contains Bati.obj Bati.Type = quot;Eglise« AND Communes.Nom = quot;Bloisquot; ; AND Combien y-a-t-il de propriétés cadastrales dans la ville de Blois ? Requête semblable à la précédente avec les tables Cadastre et Communes © J.Y. Antoine — 13
  14. 14. Requêteurs SIG Requêteur MapInfo Professional (v. 8.0)  opérateurs spatiaux fonctions spatiales © J.Y. Antoine — 14
  15. 15. Requêteurs SIG Requêteur ArcGIS Requêteur attributaire Requêteur spatial © J.Y. Antoine — 15
  16. 16. Index spatiaux Optimisation de requêtes Id Nom Dep Pop obj 41000 Blois 41 51500 * Problème – Temps d’exécution d’une requête Exemples Communes • Liste des villes de plus de 10 000 habitants Index classique (SGBD-R) sur l’attribut Pop • Pointé sur une zone dans une couche donnée • Sélection de zone dans un rectangle donné Problème : Comparer les coordonnées de la sélection avec celles de tous les objets de la couche : nombreux tests à faire et test unitaire d’appartenance très coûteux en temps de calcul Index spatial © J.Y. Antoine — 16
  17. 17. Index spatiaux Principes Idée – Partitionner l’espace pour limiter la recherche aux objets d’une sous-zone considérée index spatial défini sur ces zones α γ α,γ α γ β,γ δ δ δ,γ δ β Index spatial – Liste des objets en intersection (inclus, coupant, ou contenant) avec chaque zone. Plus précisément, indexation de leur rectangle englobant minimal (rem). © J.Y. Antoine — 17
  18. 18. Index spatiaux Sélection d’objets avec indexation : cas du pointage 1. Détermination de la zone concernée par le pointage 2. L’index donne les rem correspondant 3. Recherche des rem englobant bien le point désigné 4. Test d’appartenance du point à l’objet du rem. γ α α,γ γ δ β,γ δ,γ δ β Principales techniques d’indexation spatiale Seule la constitution des zones d’indexation varient d’une technique à l’autre • Structures en grille (grid index) • Arbres quaternaires (Quadtrees) • Arbres R (R trees) © J.Y. Antoine — 18
  19. 19. Index spatiaux Index à grille régulière [Bentley & Friedman. 1979] Structure d’indexation la plus simple : on partitionne une fois pour toute l’espace par une grille régulière. Implémentation – Coordonnées grille + tableau 2D de pointeurs vers des pages mémoires décrivant tous les rem de chaque zone de la grille α,γ β,γ Ajout d’un objet – Ajout dans les pages des zones concernées. Si page déjà pleine, page(s) de débordement Pointage – Accès à l’index aisé à partir des coordonnées du point désigné Efficacité – Puissant si répartition homogène des objets et grille adaptée à la taille des pages. Bien moins performant sinon © J.Y. Antoine — 19
  20. 20. Index spatiaux Index à grille adaptative [Nivergelt et. al. 1994] Idée – Redécoupage dynamique de la grille si trop grande densité d’objets dans une zone donnée Exemple : index à grille adaptative avec un maximum de 3 éléments par zone 2 1 1,2 2 2,5 5 4 2,3 2,4 2,4,5 4 3 4,6 6 Pointage – Aussi aisé que pour une grille fixe (découpage à instant t connu) © J.Y. Antoine — 20
  21. 21. Index spatiaux Index à grille adaptative [Nivergelt et. al. 1994] Implémentation – Index composé de trois structures de données : • Tableau Grille pointant sur les pages de zone comme pour une grille régulière • Vecteurs Tx et Ty donnant les abcisses et ordonnées de découpage. Exemple : index à grille adaptative avec un maximum de 3 éléments par zone Pages Ty y2 Grille 1,2 P1 y2 P1 P2 2 1 22,5 2,5 P2 y1 5 P3 P41 P4 y1 2,3 P3 y3 y0 P3 P42 y3 2,4,5 2,4,5 2,4 4 3 P4 1 y0 x0 x1 x2 4,6 P42 6 Tx y0 x0 x2 x1 © J.Y. Antoine — 21
  22. 22. Index spatiaux Index à arbre quaternaire (quadtree) [Samet 1990] Idée – Découpage dynamique : toute zone saturée est redivisée en 4 Implémentation – Découpage décrit par une structure d’arbre Exemple : index quadtree avec un maximum de 3 éléments par zone Quadtree 2 1 5 6 4 3 Pages 1,3,5 1,3 2,4,5 2,4 4 3 © J.Y. Antoine — 22
  23. 23. Index spatiaux Index à arbre quaternaire (quadtree) [Samet 1990] Idée – Découpage dynamique : toute zone saturée est redivisée en 4 Implémentation – Découpage décrit par une structure d’arbre Exemple : index quadtree avec un maximum de 3 éléments par zone Quadtree 2 1 5 6 4 3 1,3,5 2,5 4 3 2,6 4,6 2,4 © J.Y. Antoine — 23
  24. 24. Index spatiaux Index à arbre quaternaire (quadtree) [Samet 1990] Pointage – Détermination de la zone de pointage par parcours de l’arbre (un seul chemin jusqu’à la bonne feuille) Intérêt et limite – Assez bien adapté aux distributions non homogènes d’objets. Peu cependant conduire à des arbres déséquilibrés. Arbre équilibré : index R © J.Y. Antoine — 24
  25. 25. Index spatiaux Index à arbre R (R tree) [Guttman 1984] Principes – Index dynamique avec arbre équilibré 1. Partition incomplète de l’espace : simples zones englobant tous les objets 2. Organisation hiérarchique des zones suivant un arbre équilibré Chaque zone est le rem des éléments (rem ou objet) englobées 2 1 5 6 3 4 7 3,7 1,2,5 4,6 Sélection (pointé) – Plusieurs parcours à étudier dans l’arbre R © J.Y. Antoine — 25
  26. 26. Index spatiaux Index à arbre R (R tree) [Guttman 1984] Arbre R – Arbre équilibré de degré n fixé avec : • Le nœud racine possède entre 2 et n fils • Tout nœud interne a entre m et n fils, avec m entier inférieur à n/2. Construction dynamique de l’arbre R – Ajout d’un nouvel élément à l’index non oui L’objet est-il inclus dans une zone ? Intégration à la zone dont l’extension du rem est minimale : rem étendue Intégration à la zone non oui La zone est-elle saturée ? Réorganisation de l’arbre R : éclatement de la Ajout de la référence à feuille en plusieurs feuilles. Propagation l’élément dans la page éventuelle aux nœuds parents d’index concernée analogue arbre B : cf. cours BD Avancées © J.Y. Antoine — 26
  27. 27. Index spatiaux Index à arbre R (R tree) [Guttman 1984] Construction dynamique de l’arbre R – Ajout d’un nouvel élément à l’index Exemple : arbre R de degré 3 10 9 2 1 5 6 [3,7,8] [1,2,5] [4,6] [3,7] [4,6,9] 8 3 7 4 © J.Y. Antoine — 27
  28. 28. Index spatiaux Index à arbre R (R tree) [Guttman 1984] Construction dynamique de l’arbre R Exemple : arbre R de degré 3 10 [3,7,8] [1,10] [2,5] [4,6,9] 9 2 1 5 6 8 3 7 4 © J.Y. Antoine — 28
  29. 29. Index spatiaux Index à arbre R (R tree) [Guttman 1984] Construction dynamique de l’arbre R Exemple : arbre R de degré 3 10 [3,7,8] [1,10] [2,5] [4,6,9] 9 2 1 5 6 8 3 7 4 [3,7,8] [1,10] [2,5] [4,6,9] © J.Y. Antoine — 29
  30. 30. Index spatiaux Index à arbre R (R tree) [Guttman 1984] Construction dynamique de l’arbre R – Suppression d’un élément à l’index Idem arbre B : fusion éventuelle si une zone a moins de m éléments. Construction statique de l’arbre R Lors de la création d’une BD, il est préférable de construire l’index avec une vision globale plutôt que de s’en remettre à un ajout des objets un à un. Stratégies en envisageables : • Minimiser le nombre des recouvrements de zone à un niveau de l’arbre, pour limiter les parcours multiples ensuite, • Minimiser la surface totale des zones, pour éviter de couvrir des zones sans objets • Maximiser le nombre de fils à chaque nœud, afin de limiter la profondeur du graphe et accélérer son parcours. •… © J.Y. Antoine — 30
  31. 31. Index spatiaux Comparaison des différents index Grille Grille Arbre Arbre R statique dynamique quaternaire Complexité 7 7 7 d’implantation Tolérance à 7 la distribution des objets Performance 7 7 7 7 sélection Situation Distributions Compromis Performances d’utilisation homogènes simplicité / en toutes situations efficacité © J.Y. Antoine — 31
  32. 32. Bibliographie Ouvrages de référence • Scholl M., Voisard A., Peloux J.P., Raynal L., Rigaux Ph. (1996) SGBD Géographiques : spécificité. Int. Thomson Publ., Paris, France. Chap. 4 Travaux cités • Bentley J.L., Friedman J.H. (1979) Data structures for range searching. ACM Computing Surveys. 11(4). • Guttman A. (1984) R-trees : a dynamic index structure for spatial searching. Proc. ACM SIGMOD Int. Symposium on the Management of Data. Pp. 45-67. • Nievergelt J., Hinterger H., Sevcik K.C. (1994) The grid file : an adaptable symetric multikey file structure. ACM Trans. on Databases Systems. 9(1). pp. 38-71. • Samet H. (1990) Application of spatial data structure. Addison-Wesley Publ. 9(1). © J.Y. Antoine — 32

×