PostGIS – Fonctions spatiales de base

Slides:



Advertisements
Présentations similaires
Eléments d'algèbre linéaire
Advertisements

Chaîne de Synthèse Réel Modélisation Rendu Image Fichier Scène
Les matrices.
Symétrie, groupes ponctuels et groupes spatiaux
LES MESURES ET LES ANGLES
I. REVISION :FORCES ET VECTEURS-FORCES. OBJECTIFS
Stabilité des systèmes linéaires continus
Stabilité des systèmes linéaires continus
Retour au menu principal. Généralités Lenvironnement Laffichage de la fenêtre Déplacement / sélection dans une feuille Classeurs La gestion des classeurs.
MOMENT D'INERTIE Soit une masse ponctuelle m attachée au bout M d'une ficelle (sans masse) de longueur r et d'extrémité fixe O. Si nous appliquons à M.
Encadrés: Chapitre 13 Distances
Vérification d ’une compensation astigmate avec les cylindres croisés par retournement (CCR) CCR Paul JEAN.
Licence GNU FDL - Version 1.5
Structures de données linéaires
PostGIS – Création d'une base spatiale
Cours Électricité – Électronique MIP_B
IFT3730: Infographie 3D Transformations Géométriques
Générer des solides.
Horloge hélio-caustique de temps moyen
VOXPOP Questions de concepts en vrac…. Voxpop Deux sphères uniformément chargées sont fixées solidement à des rondelles (tout en étant électriquement.
SUJETS SPÉCIAUX EN INFORMATIQUE I PIF Contenu du cours Transformations géométriques des objets –Transformations 2D –Transformations entre systèmes.
Densité des N-uplets pythagoriciens
Leçon 2 : Surcharge des opérateurs IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Modélisation géométrique à l’aide d’un maillage
Structures de données IFT Abder Alikacem La classe string Département dinformatique et de génie logiciel Édition Septembre 2009 Département dinformatique.
PostGIS – Fonctions spatiales de base
PostGIS – Chargement de données
Fonctionnalités avancées
PostGIS – Spécifications OGC et ISO
PostGIS: Index, Opérateurs et Fonctions
Visualisation de surfaces décrites analytiquement
OBJETS ÉLÉMENTAIRES DANS L’ESPACE À TROIS DIMENSIONS
SUJETS SPÉCIAUX EN INFORMATIQUE I
Transformations géométriques
IFT3355: Infographie Transformations Géométriques
Physique mécanique (NYA)
Relativité du mouvement
II- Loi de Biot et Savart
Le vocabulaire approprié aux problèmes de mécanique
Cours 5: Sous requetes Exploitation des données Présentation  Supposez que vous voulez écrire une requête pour trouver qui a un salaire plus.
Compléments mathématiques. COMPLEMENTS MATHEMATIQUES
PostGIS – Modèle géométrique, Spécifications OGC et ISO
A Sommet C B Demi-droites 10.1 Les angles
PostgreSQL – Présentation
L’étude du mouvement.
Chapitre VIII Découpage d’une scène selon une fenêtre donnée.
CHAPITRE III Calcul vectoriel
OUTILS MATHEMATIQUES POUR LES SII
EXCEL TICE2 Premier année de Psychologie séance 2
Magellium - 24 rue Hermès – BP12113, Ramonville Saint-Agne 
Physique mécanique (NYA)
Magellium - 24 rue Hermès – BP12113, Ramonville Saint-Agne 
LE COUPLE DE FORCES Définition : deux forces de sens opposé, de même direction sur deux lignes d ’action différentes et d ’intensité égale.
La pile de crêpes.
LA DYNAMO.
OBJETS ÉLÉMENTAIRES DANS L’ESPACE À TROIS DIMENSIONS
Fonctionnalités avancées
Nicolas Ribot Introduction aux triggers Nicolas Ribot - Licence GNU FDL - Version 1.1.
Courbes de Bézier P2 P1 P3 P0 O
Test Point Polyedre Pierre REISS
Faculté Polytechnique Cours 9: Représentation de courbes spatiales Géométrie et communication graphique Edouard Rivière-Lorphèvre.
Le Langage de Manipulation de Données LMD Module 6.
Géométrie spatiale Soit une sphère centrée en A(10,20,30) de rayon 7 et un point B(-10,-10,-30) On demande: De déterminer l’équation cartésienne de la.
GEOMETRIE VECTORIELLE
1 Tableur Excel. 2 Introduction Un tableur est un logiciel permettant de manipuler des données numériques et d'effectuer automatiquement des calculs sur.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
1 Les bases de données Séance 6 L ’extraction de données Le SELECT.
Master sciences et techniques de géomatique environnementale
De la Terre à la carte: Projections et Géoréférencement
Transcription de la présentation:

PostGIS – Fonctions spatiales de base Licence GNU FDL - Version 1.4

Fonction de gestion postgis_full_version():Affiche la version courante de Postgis, GEOS, PROJ4 et PostgreSQL UpdateGeometrySRID():Met à jour le SRID de toutes les entités d'une colonne géographique, de la table gemetry_columns, et de la contrainte sur le SRID de la table

Fonction de gestion AddGeometryColumn DropGeometryColumn DropGeometryTable PostGIS_Full_Version PostGIS_GEOS_Version PostGIS_LibXML_Version PostGIS_Lib_Build_Date PostGIS_Lib_Version PostGIS_PROJ_Version PostGIS_Scripts_Build_Date PostGIS_Scripts_Installed PostGIS_Scripts_Released PostGIS_Version Populate_Geometry_Columns UpdateGeometrySRID

Constructeurs de géométries ST_GeomFromText :Construit une géométrie a partir de sa représentation WKT. select st_geomFromText('POINT(2.5 43)', 4326); ST_GeometryFromText:Alias pour st_geomFromText ST_GeomFromWKB:Construit une géométrie a partir de sa représentation WKB. ST_makeBox2D, ST_makeBox3D:Construit une bbox a partir de points. ST_MakePoint/ST_Point:Construit un point à partir de coordonnées SELECT ST_MakePoint(1,2); select st_geomFromText('2.5 43', 4326); select st_makebox2d('POINT(0 1)', 'POINT(2 2)'); -- si deux colonnes contiennent des nombres, que l’on veut traiter comme des coordonnées -- (trace GPS au format txt par exemple) SELECT ST_MakePoint(col_long,col_lat);

Constructeurs de géométries (suite) ST_MakeLine:Construit une ligne a partir de points SELECT ST_AsText( ST_MakeLine( ST_MakePoint(1,2),ST_MakePoint(3,4))); ST_MakePolygon:Construit un polygone a partir d'une ligne fermée Cf. TP specifique pour ce

Constructeurs de géométries (suite) ST_BdPolyFromText ST_BdMPolyFromText ST_GeogFromText ST_GeographyFromText ST_GeogFromWKB ST_GeomCollFromText ST_GeomFromEWKB ST_GeomFromEWKT ST_GeometryFromText ST_GeomFromGML ST_GeomFromGeoJSO N ST_GeomFromKML ST_GMLToSQL ST_GeomFromText ST_GeomFromWKB ST_LineFromMultiPoint ST_LineFromText ST_LineFromWKB ST_LinestringFromWKB ST_MakeBox2D ST_3DMakeBox ST_MakeLine ST_MakeEnvelope ST_MakePolygon ST_MakePoint ST_MakePointM ST_MLineFromText ST_MPointFromText ST_MPolyFromText ST_Point ST_PointFromText ST_PointFromWKB ST_Polygon ST_PolygonFromText ST_WKBToSQL ST_WKTToSQL Cf. TP specifique pour ce

Accesseurs de géométries GeometryType/ST_GeometryType:Retourne le type de la géométrie ('POINT', 'POLYGONE'), respectivement ('ST_POINT', 'ST_POLYGONE') ST_Boundary:Retourne l'ensemble formant la frontière d'un object select st_boundary(st_point(0, 0)); select st_boundary( st_geomFromText( 'LINESTRING(0 0, 1 1, 2 2)', -1)); select astext (st_boundary ( st_polygonFromText ( 'POLYGON((0 0, 6 0, 6 6, 0 6, 0 0), (1 1, 5 1, 5 5, 1 5, 1 1))'))); En se rappelant des définitions OGC sur les features, on note que st_boundary retourne un multipoint comme frontiere d’une ligne: select st_astext(st_boundary(st_makeline('POINT(0 0)'::geometry, 'POINT(1 1)'::geometry)));

Accesseurs de géométries (suite) st_CoordDim:Retourne la dimension des coordonnées de la géométrie ST_EndPoint/ST_StartPoint:Retourne le dernier, respectivement le premier point d'une LINESTRING ST_Envelope:Retourne une géométrie représentant l’enveloppe englobant la géométrie. ST_ExteriorRing:Retourne une LINESTRING représentant l'extérieur du POLYGONE ST_GeometryN:Retourne la Nieme géométrie (commençant à 1) d'une collection (GeomCol, MULTI*) ST_InteriorRingN:Retourne la Nieme LINESTRING représentant l'intérieur d'un POLYGONE select st_coordDim('POINT(1.5 0.002)'::geometry); select st_coordDim('POINT(1.5 0.002 123 0.6666)'::geometry); Select st_envelope('POINT(1.5 0.002)'::geometry); Select st_geometryN(st_collect('POINT(1.5 0.002)'::geometry, 'POINT(1.5 0.002)'::geometry), 1); Cf. TP sur l’explosion de collections en elements indépendants. (generate_series)

Accesseurs de géométries (suite) ST_IsClosed:Vrai si le premier et le dernier point d’une LINESTRING sont les mêmes ST_IsEmpty:Vrai si cette géométrie est vide (GEOMETRYCOLLECTION(EMPTY)) ST_IsRing:Retourne vrai si la géométrie est un ring (linestring fermée) ST_IsSimple:Retourne vrai si la géométrie est simple (ligne ne se croisant pas, par exemple) ST_IsValid:Vrai si cette géométrie est bien formée ST_IsValidReason:Retourne la raison de l'invalidité de la géométrie. Select st_isClosed(‘LINESTRING(0 0, 1 1)’::geometry); Select st_isClosed('LINESTRING(0 0, 1 1, 0 1, 0 0)'::geometry); Si la reponse est vraie, on peut alors créer un polygone a partir de cette ligne: Select st_makePolygon('LINESTRING(0 0, 1 1, 0 1, 0 0)'::geometry); SELECT ST_IsSimple(ST_GeomFromText('LINESTRING(1 1,2 2,2 3.5,1 3,1 2,2 1)')); Select st_isSimple('LINESTRING(0 0, 1 1, 0 1, 1 0, 0 0) '); Noter l’utilisation de isSimple et isValid pour controler les geometries SELECT ST_IsValidReason(ST_GeomFromText('LINESTRING(1 1,2 2,2 3.5,1 3,1 2,2 1)')); Select st_isValid('POLYGON((0 0, 1 1, 0 1, 1 0, 0 0)) '); Select st_isValidReason('POLYGON((0 0, 1 1, 0 1, 1 0, 0 0)) ');

Accesseurs de géométries (suite) ST_NPoints:Retourne le nombre total de sommets dans la géométrie. ST_NRings:Si la géométrie est un POLYGONE ou MULTIPOLYGONR, retourne le nombre total de rings. ST_NumGeometries:Si la géométrie est une GEOMETRYCOLLECTION ou un MULTI*, retourne le nombre total de géométries dans la collection. ST_NumInteriorRings:Si la géométrie est un POLYGONE ou un MULTIPOLYGON, retourne le nombre de rings intérieurs dans le premier polygone de la géométrie.

Accesseurs de géométries (suite) ST_PointN:Retourne le Nieme point dans une ST_LINESTRING ou ST_CIRCULARSTRING. ST_Summary:Retourne un résumé de la géométrie select st_summary(the_geom) from departements; ST_X, ST_Y, ST_Z:Retourne les coordonnées X, Y, Z, respectivement, du POINT

Accesseurs de géométries (suite) GeometryType ST_Boundary ST_CoordDim ST_Dimension ST_EndPoint ST_Envelope ST_ExteriorRing ST_GeometryN ST_GeometryType ST_InteriorRingN ST_IsClosed ST_IsCollection ST_IsEmpty ST_IsRing ST_IsSimple ST_IsValid ST_IsValidReason ST_IsValidDetail ST_M ST_NDims ST_NPoints ST_NRings ST_NumGeometries ST_NumInteriorRings ST_NumInteriorRing ST_NumPatches ST_NumPoints ST_PatchN ST_PointN ST_SRID ST_StartPoint ST_Summary ST_X ST_XMax ST_XMin ST_Y ST_YMax ST_YMin ST_Z ST_ZMax ST_Zmflag ST_ZMin

Editeurs de géométries ST_AddPoint/ST_RemovePoint:Ajoute/supprime un point à une LINESTRING avant le/au point de position donnée (0- based index). ST_Affine, ST_Rotate, ST_RotateX, ST_RotateY, ST_Scale, ST_Transcale:Effectue des opérations math. de transformation affine, rotation mise à l'échelle, translation, etc. ST_Force2D, ST_Force3D, ST_Force3DM:Force la dimension de la géométrie ST_ForceRHR:Force l'orientation des sommets du POLYGONE selon la règle de la main droite (sens horaire) Cf. TP avancé sur la manipulation de graphes, de reseau (insertion de points)

Editeurs de géométries (suite) ST_rotate select st_rotate( 'POLYGON((1.4 3.2,0.9 2.1,1.3 2.5,1.6 2,1.4 3.2))'::geometry, 3.149); Cf. TP avancé sur la manipulation de graphes, de reseau (insertion de points)

Editeurs de géométries (suite) ST_LineMerge:Assemble des LINESTRING entre elles provenant d'une MULTILINESTRING ST_Multi:Force la géométrie à être de la forme MULTI*. ST_Force2D, ST_Force3D, ST_Force3DM:Force la dimension de la géométrie ST_ForceRHR:Force l'orientation des sommets du POLYGONE selon la règle de la main droite (sens horaire) ST_Reverse:Inverse l'ordre les sommets de la géométrie LineMerge: tres puissant pour reconstruire un réseau de lignes simples, avant calcul d’itinéraire par ex. postgis=# select astext(st_reverse('POLYGON((1.4 3.2,0.9 2.1,1.3 2.5,1.6 2,1.4 3.2))'::geometry)); -------------------------------------------------- POLYGON((1.4 3.2,1.6 2,1.3 2.5,0.9 2.1,1.4 3.2)) (1 row) Utile pour forcer un ordre de sommets, pour les systèmes le nécessitant.

Editeurs de géométries (suite) ST_Tranform:Change le système de coordonnées de la géométrie passée en argument et retourne une nouvelle géométrie ST_Transform(geometry geom, integer srid) SELECT ST_Transform(the_geom, 4326) FROM ma_table; ST_SetSRID:Met à jour le SRID de la géométrie ST_Segmentize:Retourne la geometry modifiée de telle sorte que la longueur maximum d'un segment soit inférieur ou égale à la distance donnée: des points seront alors ajoutés Select as_text(st_transform(st_setSrid(‘POINT (0, 43)’, 4326), 2154)); select astext(st_segmentize('LINESTRING(0 0, 100 100)'::geometry, 1));

Editeurs de géométries (suite) ST_AddPoint ST_Affine ST_Force_2D ST_Force_3D ST_Force_3DZ ST_Force_3DM ST_Force_4D ST_Force_Collection ST_ForceRHR ST_LineMerge ST_CollectionExtract ST_CollectionHomog enize ST_Multi ST_RemovePoint ST_Reverse ST_Rotate ST_RotateX ST_RotateY ST_RotateZ ST_Scale ST_Segmentize ST_SetPoint ST_SetSRID ST_SnapToGrid ST_Snap ST_Transform ST_Translate ST_TransScale Select as_text(st_transform(st_setSrid(‘POINT (0, 43)’, 4326), 2154)); select astext(st_segmentize('LINESTRING(0 0, 100 100)'::geometry, 1));

Sorties en différents formats ST_Binary:Retourne la représentation WKB de la géométrie ST_AsGeoJson:Retourne la représentation GeoJson de la géométrie ST_AsGML:Retourne la représentation GML 2 ou 3 de la géométrie ST_AsKML:Retourne la représentation KML de la géométrie, avec controle de la sortie (précision, version) ST_AsSVG:Retourne la représentation SVG (data path) de la géométrie ST_AsGeoHash:Retourne la représentation GeoHash de la géométrie TP: exporter une couche en KML et l’afficher dans Google Earth

Sorties en différents formats ST_AsBinary ST_AsEWKB ST_AsEWKT ST_AsGeoJSON ST_AsGML ST_AsHEXEWKB ST_AsKML ST_AsSVG ST_AsX3D ST_GeoHash ST_AsText ST_AsLatLonText TP: exporter une couche en KML et l’afficher dans Google Earth

Relations spatiales et mesures ST_Azimuth:Retourne l'angle en radian formé par le vecteur composé des deux POINTs ST_LineCrossingDirection:Etant données deux LINESTRING, retourne un nombre entre -3 et 3 donnant le type de croisement, 0 voulant dire pas de croisement: 0: LINE NO CROSS -1: LINE CROSS LEFT 1: LINE CROSS RIGHT -2: LINE MULTICROSS END LEFT 2: LINE MULTICROSS END RIGHT -3: LINE MULTICROSS END SAME FIRST LEFT 3: LINE MULTICROSS END SAME FIRST RIGHT Azimuth: permet d’exploiter les résultats de Routing, en calculant une feuille de route. Select st_azimuth(‘POINT(0 0)’::geometry, ‘POINT(1 1’::geometry);

Relations spatiales et mesures (suite) ST_Distance:Retourne la distance cartésienne minimale entre deux géométries. ST_MaxDistance:Retourne la distance cartésienne maximale entre deux géométries. ST_DistanceSphere:Retourne la distance en mètres de deux points situés sur la sphère terrestre (rayon 6370986 m) ST_DistanceSpheroid:Retourne la distance en mètres de deux points situés sur le sphéroïde donné ST_DWithin:Retourne vrai si deux géométries sont plus proche que la distance donnée.

Relations spatiales et mesures (suite) ST_OrderingEquals: Retourne vrai si les deux géométries sont égales et leurs poins sont dans le même ordre ST_Relate: Retourne vrai si les deux géométries ont une relation spatiale entre leurs intérieurs, extérieurs, frontières correspondant à la définition données dans la matrice d'intersection. Si aucune matrice d'intersection n'est passée, retourne la matrice d'intersection maximale qui relie les deux géométries

ST_Area Renvoie la surface en unités carrées (*) d'une géométrie polygonale Prototype: ST_Area(geometry geom) SELECT ST_Area(geom) FROM ma_table; Voir aussi: ST_Perimeter(geometry geom) (*) Surface en unité des données, dépendant du système de projection.

ST_Centroid Renvoie la géométrie du centroïde d'une géométrie polygonale Prototype: ST_Centroid(geometry geom) SELECT ST_Centroid(geom) FROM ma_table; Attention, le centroïde n'est pas toujours situé sur la surface Voir aussi: ST_PointOnSurface(geometry geom) : centroid : pointOnSurface

ST_Length Renvoie la longueur(*) d'une géométrie linéaire Prototype: ST_Length(geometry geom) SELECT ST_Length(geom) FROM ma_table; Voir aussi: ST_Length_Sphere/spheroid (distance en mètres) ST_Perimeter (*) Distance en unité des données, dépendant du système de projection.

ST_Extent Renvoie la BBOX agrégée d'un ensemble de géométries Prototype: ST_Extent(geometry_set geom) SELECT ST_Extent(geom) FROM ma_table; Voir aussi: ST_Box2D et ST_Box3D ST_Expand ST_Enveloppe ST_Estimated_Extent

Relations spatiales et mesures (suite) ST_3DClosestPoint ST_3DDistance ST_3DDWithin ST_3DDFullyWithin ST_3DIntersects ST_3DLongestLine ST_3DMaxDistance ST_3DShortestLine ST_Area ST_Azimuth ST_Centroid ST_ClosestPoint ST_Contains ST_ContainsProperly ST_Covers ST_CoveredBy ST_Crosses ST_LineCrossingDirection ST_Disjoint ST_Distance ST_HausdorffDistance ST_MaxDistance ST_Distance_Sphere ST_Distance_Spheroid ST_DFullyWithin ST_DWithin ST_Equals ST_HasArc ST_Intersects ST_Length ST_Length2D ST_3DLength ST_Length_Spheroid ST_Length2D_Spheroid ST_3DLength_Spheroid ST_LongestLine ST_OrderingEquals ST_Overlaps ST_Perimeter ST_Perimeter2D ST_3DPerimeter ST_PointOnSurface ST_Project ST_Relate ST_RelateMatch ST_ShortestLine ST_Touches ST_Within

Fonction de traitement géométrique

ST_Simplify Renvoie une géométrie généralisée (algo: Douglas Peuker) Prototype: ST_Simplify(geometry geom, integer tolerance) SELECT ST_Simplify(geom, 500) FROM ma_table; Voir aussi: ST_SnapToGrid ST_SimplifyPreserveTopology Simplify ne préserve pas la topologie =>risque de « casser » une couverture polygonale.

ST_Simplify SELECT ST_Simplify(the_geom, 0.5) FROM pays; Simplify ne préserve pas la topologie =>risque de « casser » une couverture polygonale.

ST_Intersection Renvoie la géométrie résultant de l'intersection entre deux géométries données Prototype: ST_Intersection(geometry geom_A, geometry geom_B) SELECT ST_Intersection( (SELECT the_geom FROM ma_table WHERE gid='4'), (SELECT the_geom FROM ma_table WHERE gid='2’)); Voir aussi: ST_Union ST_Difference, ST_sym_difference

ST_Intersection SELECT ST_intersection( pays.geometry, etoiles.geometry) as geom FROM pays, etoiles where pays.country='France';

ST_Buffer Renvoie une géométrie représentant un buffer de X unités(*) autour d'une géométrie donnée. (unités des données) Prototype: ST_Buffer(geometry geom, double buffer_distance, [integer number_of_segments]) SELECT ST_Buffer(the_geom, 30) FROM ma_table; Nota: La valeur du buffer peut être négative (buffer inverse) Unités des données source. Attention au données Lat-Lon, en degrés. Utiliser les fonctions calculant distance, surface, ou utilisant des distances donneront des résultats faux. *Unité des données, dépendant du système de projection.

ST_Buffer SELECT ST_buffer(pays.geometry, 0.1) as geom FROM pays where pays.country='France’; Unités des données source. Attention au données Lat-Lon, en degrés. Utiliser les fonctions calculant distance, surface, ou utilisant des distances donneront des résultats faux.

Fonction de traitement géométrique ST_Collect:Retourne une géométrie de type collection (GeometryCollection ou MULTI*) a partir de la liste de géométries donnée (fonctionne avec une colonne, deux géométries ou un tableau de géométries). ST_ConvexHull:Retourne l'enveloppe convexe de la géométries donnée ST_Dump:Retourne un ensemble de géométries constituant la géométrie donnée (Collection) ST_Polygonize:Retourne une GEOMETRYCOLLECTION contenant des polygones possiblement formés a partir du réseau de lignes constitué par la géométrie donnée. Unités des données source. Attention au données Lat-Lon, en degrés. Utiliser les fonctions calculant distance, surface, ou utilisant des distances donneront des résultats faux.

ConvexHull SELECT ST_convexHull(geometry) as geom Unités des données source. Attention au données Lat-Lon, en degrés. Utiliser les fonctions calculant distance, surface, ou utilisant des distances donneront des résultats faux.

Fonction de traitement géométrique ST_Buffer ST_BuildArea ST_Collect ST_ConcaveHull ST_ConvexHull ST_CurveToLine ST_Difference ST_Dump ST_DumpPoints ST_DumpRings ST_FlipCoordinates ST_Intersection ST_LineToCurve ST_MakeValid ST_MemUnion ST_MinimumBoundingCi rcle ST_Polygonize ST_Node ST_OffsetCurve ST_RemoveRepeatedPo ints ST_SharedPaths ST_Shift_Longitude ST_Simplify ST_SimplifyPreserveTop ology ST_Split ST_SymDifference ST_Union ST_UnaryUnion