19
<Insert Picture Here> 3 Chargement et Indexation

3 Chargement et Indexation. Points couverts Formats des données géo-spatiales Chargement des données Validation Création des index spatiaux Déplacement

Embed Size (px)

Citation preview

Page 1: 3 Chargement et Indexation. Points couverts Formats des données géo-spatiales Chargement des données Validation Création des index spatiaux Déplacement

<Insert Picture Here>

3

Chargement et Indexation

Page 2: 3 Chargement et Indexation. Points couverts Formats des données géo-spatiales Chargement des données Validation Création des index spatiaux Déplacement

Sources de données géo-spatiales

• Données applicatives• Clients, magasins, entrepôts, agences, etc.• Il faut les géocoder avant de pouvoir s'en servir

• Référentiel de géocodage et calcul • Réseau routier, adresses• Souvent fournies par Navteq ou Tele Atlas, …

• Autres données (vecteur et raster)• Limites administratives, occupation du sol, points d'intérêt, …• Multiples sources (IGN, etc)

Page 3: 3 Chargement et Indexation. Points couverts Formats des données géo-spatiales Chargement des données Validation Création des index spatiaux Déplacement

Format des données géo-spatiales

Chaque outil SIG utilise son ou ses formats propres• ESRI: shape files, coverages• MapInfo: TAB files, MIF/MID• Intergraph: DGN files• Autodesk: DWG files• Etc ...

Page 4: 3 Chargement et Indexation. Points couverts Formats des données géo-spatiales Chargement des données Validation Création des index spatiaux Déplacement

Chargement des données Géo-spatiales

• Au moyen des outils fournis avec les outils SIG• Au moyen d'outils génériques

• FME (Safe Software) http://www.safe.com• CITRA (CISS TDI) http://www.ciss.de/

• Pour les fichiers SHAPE: convertisseur SHP2SDO• Oracle Mapbuilder• Au moyen de SQL*Loader

• Les données doivent être formatées au préalable

Charger les données avant de créer l’index spatial. !

Page 5: 3 Chargement et Indexation. Points couverts Formats des données géo-spatiales Chargement des données Validation Création des index spatiaux Déplacement

Database files

Data filesControl file

SQL*Loader

Log file

Inserted

Selected

Utilisation de SQL*Loader

Parameter file(optional)

Rejected

Bad file

Rejected

Accepted

Discard file(optional)

Discarded

Field processing

Record selection

Oracle Server

Page 6: 3 Chargement et Indexation. Points couverts Formats des données géo-spatiales Chargement des données Validation Création des index spatiaux Déplacement

SQL*Loader pour des Points

LOAD DATA INTO TABLE cities FIELDS TERMINATED BY '|' ( CITY, STATE_ABRV, POP90, RANK90, LOCATION COLUMN OBJECT ( SDO_GTYPE INTEGER EXTERNAL, SDO_POINT COLUMN OBJECT ( X FLOAT EXTERNAL, Y FLOAT EXTERNAL ) ) )

New York|NY|7322564|1| 2001|-73.943849000|40.669800000|Los Angeles|CA|3485398|2| 2001|-118.411201000|34.112101000|Chicago|IL|2783726|3| 2001|-87.684965000|41.837050000|Houston|TX|1630553|4| 2001|-95.386728000|29.768700000|Philadelphia|PA|1585577|5| 2001|-75.134678000|40.006817000|San Diego|CA|1110549|6| 2001|-117.135770000|32.814950000|

Page 7: 3 Chargement et Indexation. Points couverts Formats des données géo-spatiales Chargement des données Validation Création des index spatiaux Déplacement

Applications spécifiques

• Verbes SQL INSERT standards• Utiliser des variables (pas des constantes)• Faire des commit réguliers• Utiliser des insertions par lots (array insert) pour de

meilleures performances• Conserver l'état d'avancement du chargement

Les insertions sont plus rapides sans index spatial

Grouper les insertions en lots (finir par COMMIT)

INSERT INTO lines (id, … type, shape) VALUES (:id, … :type, :my_geom);

Page 8: 3 Chargement et Indexation. Points couverts Formats des données géo-spatiales Chargement des données Validation Création des index spatiaux Déplacement

Convertisseur Shapefile : SHP2SDO

• Traite un fichier SHAPE à la fois• Convertit les attributs (.DBF) aussi bien que les

géométries (.SHP et .SHX)• Génère des scripts SQL pour la création de la table, la

mise à jour des meta-données spatiales, et la création de l'index spatial.

• Génère les fichiers pour SQL*Loader: control file et data file

Page 9: 3 Chargement et Indexation. Points couverts Formats des données géo-spatiales Chargement des données Validation Création des index spatiaux Déplacement

Utilisation du convertisseur

• <shapefile> = nom du shapefile à convertir (sans inclure le suffixe .SHP)

• <table-name> = nom de la table en sortie (aussi préfixe des fichiers produits)

• -g <geometry-col> = nom donné à la colonne géométrique• -i <id-col> = nom donné à une colonne numérique servant

d'identifiant unique

shp2sdo <shapefile> <table-name> -g <geometry-col> -i <id-col> -x (<Xmin>,<Xmax>) -y (<Ymin>,<Ymax>) -s <srid> -t <tolerance>

Page 10: 3 Chargement et Indexation. Points couverts Formats des données géo-spatiales Chargement des données Validation Création des index spatiaux Déplacement

Mapbuilder

Page 11: 3 Chargement et Indexation. Points couverts Formats des données géo-spatiales Chargement des données Validation Création des index spatiaux Déplacement

Validation des données

• Les données peuvent contenir des erreurs• Polygones « self-crossing »• Points redondants• Erreur d'orientation (polygones)

• Pas de vérification automatique !• Certains outils acceptent certaines erreurs ...

• Certains demandent des données sans erreurs.

• Utiliser les fonctions de validation fournies

Page 12: 3 Chargement et Indexation. Points couverts Formats des données géo-spatiales Chargement des données Validation Création des index spatiaux Déplacement

Validation des données

• Fonction SDO_GEOM.VALIDATE_GEOMETRY• Détermine la validité d'un objet isolé

• Procédure SDO_GEOM.VALIDATE_LAYER• Détermine la validité de tous les objets d'une table

• Chaque fonction retourne un diagnostic précis (code erreur ORA-13xxx)

• Les variantes VALIDATE_GEOMETRY_WITH_CONTEXT et VALIDATE_LAYER_WITH_CONTEXT indiquent en plus à quel endroit se trouve l'erreur dans l'objet.

Page 13: 3 Chargement et Indexation. Points couverts Formats des données géo-spatiales Chargement des données Validation Création des index spatiaux Déplacement

Exemple de validation automatique

create or replace trigger counties_geom before insert or update of geom on counties for each rowdeclare status varchar2(10);begin if :new.geom is not null then status := sdo_geom.validate_geometry (:new.geom, 0.5); if status <> 'TRUE' then raise_application_error (-20000, sqlerrm (-status)); end if; end if;end;/

Page 14: 3 Chargement et Indexation. Points couverts Formats des données géo-spatiales Chargement des données Validation Création des index spatiaux Déplacement

Radius Check

Page 15: 3 Chargement et Indexation. Points couverts Formats des données géo-spatiales Chargement des données Validation Création des index spatiaux Déplacement

Indexation Spatiale

• Indexation R-tree• Arborescence de rectangles (MBR)• Indexation en 2 ou 3 dimensions

• Indexation Quad-tree• Utilisation d'une grille régulière• Plus documentée en 10g• Ne plus utiliser

• Sauf exceptions ….

• Un index spatial doit exister avant de pouvoir poser des requêtes spatiales sur une table! !

a b c d

R S

root

Page 16: 3 Chargement et Indexation. Points couverts Formats des données géo-spatiales Chargement des données Validation Création des index spatiaux Déplacement

Création d'un index R-tree

create index CUSTOMERS_SIDX on CUSTOMERS (LOCATION) indextype is MDSYS.SPATIAL_INDEX;

Table MDRT_7B50$

Index Information

Page 17: 3 Chargement et Indexation. Points couverts Formats des données géo-spatiales Chargement des données Validation Création des index spatiaux Déplacement

Syntaxe pour la création d'index

• Créer un index spatial est plus long que créer un index "normal"

• Dépend du nombre et de la complexité des objets.

CREATE INDEX <index-name> ON <table-name> (<column-name>) INDEXTYPE IS MDSYS.SPATIAL_INDEX [PARAMETERS ( 'SDO_RTR_PCTFREE = <param_value> <storage_parameters> = <param_value> ... ‘) ] [PARALLEL [<parallel_degree>]];

Page 18: 3 Chargement et Indexation. Points couverts Formats des données géo-spatiales Chargement des données Validation Création des index spatiaux Déplacement

Export/Import

• Export• Permet le déchargement de tables ou de groupes de tables • Pas de syntaxe particulière pour les tables spatiales• Les méta-données (USER_SDO_GEOM_METADATA) sont

seulement extraites si la table est indexée.

• Import• Permet le rechargement de données exportées par EXPORT• Pas de syntaxe particulière pour les tables spatiales• Si la table est indexée: restaure les méta-données et re-crée

l'index spatial

Page 19: 3 Chargement et Indexation. Points couverts Formats des données géo-spatiales Chargement des données Validation Création des index spatiaux Déplacement