

 Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Interrogation des données spatiales dans Amazon Redshift
<a name="geospatial-overview"></a>

Les *données spatiales* décrivent la position et la forme d’une géométrie dans un espace défini (un système de référence spatial). Amazon Redshift prend en charge les données spatiales avec les types de données `GEOMETRY` et `GEOGRAPHY`, qui contiennent des données spatiales et éventuellement l’identifiant de système de référence spatiale (SRID) des données. 

Les données spatiales contiennent des données géométriques qui peuvent être utilisées pour représenter des fonctions géographiques. Les rapports météo, les indications de direction, les tweets intégrant des lieux géographiques, les emplacements de magasins et les lignes aériennes sont des exemples de ce type de données. Les données spatiales jouent un rôle important dans les analyses métier, la création de rapports et les prévisions. 

Vous pouvez interroger des données spatiales avec les fonctions SQL Amazon Redshift. Les données spatiales contiennent des valeurs géométriques pour un objet. 

Les opérations de type de données `GEOMETRY` fonctionnent sur le plan cartésien. Bien que l’identifiant du système de référence spatiale (SRID) soit stocké à l’intérieur de l’objet, ce SRID n’est qu’un identifiant du système de coordonnées et ne joue aucun rôle dans les algorithmes utilisés pour traiter les objets `GEOMETRY`. À l’inverse, les opérations sur le type de données `GEOGRAPHY` traitent les coordonnées à l’intérieur des objets comme des coordonnées sphériques sur un sphéroïde. Ce sphéroïde est défini par le SRID, qui fait référence à un système de référence spatiale géographique. Par défaut, les types de données `GEOGRAPHY` sont créés avec la référence spatiale (SRID) 4326, faisant référence au système géodésique mondial (WGS) 84. Pour plus d'informations SRIDs, voir [Système de référence spatiale](https://en.wikipedia.org/wiki/Spatial_reference_system) sur Wikipedia.

Vous pouvez utiliser la fonction ST\$1Transform pour transformer les coordonnées de différents systèmes de référence spatiale. Une fois la transformation des coordonnées terminée, vous pouvez également utiliser une simple distribution entre les deux, à condition que l’entrée `GEOMETRY` soit codée avec le SRID géographique. Cette conversion copie simplement les coordonnées sans aucune autre transformation. Par exemple :

```
SELECT ST_AsEWKT(ST_GeomFromEWKT('SRID=4326;POINT(10 20)')::geography);
```

```
st_asewkt
------------------------
 SRID=4326;POINT(10 20)
```

Pour mieux comprendre la différence entre les types de données `GEOMETRY` et `GEOGRAPHY`, envisagez de calculer la distance entre l’aéroport de Berlin (BER) et l’aéroport de San Francisco (SFO) à l’aide du système géodésique mondial (WGS) 84. En utilisant le type de données `GEOGRAPHY`, le résultat est exprimé en mètres. Lorsque vous utilisez le type de données `GEOMETRY` avec SRID 4326, le résultat est exprimé en degrés, qui ne peuvent pas être convertis en mètres, car la distance d’un degré dépend de l’emplacement des géométries du globe.

Les calculs sur les types de données `GEOGRAPHY` sont principalement utilisés pour des calculs réalistes de terre ronde, tels que la zone précise d’un pays sans distorsion. Cependant, leur calcul coûte beaucoup plus cher. Par conséquent, ST\$1Transform peut transformer vos coordonnées en un système de coordonnées projetées local approprié et effectuer le calcul sur le type de données `GEOMETRY` plus rapidement.

À l’aide des données spatiales, vous pouvez exécuter des requêtes afin d’effectuer les opérations suivantes :
+ Trouver la distance entre deux points.
+ Vérifier si une zone (polygone) en contient une autre.
+ Vérifier si une linestring coupe une autre linestring ou un polygone.

Vous pouvez utiliser le type de données `GEOMETRY` pour contenir les valeurs des données spatiales. Une valeur `GEOMETRY` dans Amazon Redshift peut définir des types de données primitifs de géométrie bidimensionnelle (2D), tridimensionnelle (3DZ), bidimensionnelle avec une mesure (3DM) et quadridimensionnelle (4D) :
+ Une géométrie bidimensionnelle (2D) est spécifiée par deux coordonnées cartésiennes (x, y) dans un plan.
+ Une géométrie tridimensionnelle (3DZ) est spécifiée par trois coordonnées cartésiennes (x, y, z) dans l’espace.
+ Une géométrie bidimensionnelle avec mesure (3DM) est spécifiée par trois coordonnées (x, y, m), où les deux premières sont des coordonnées cartésiennes dans un plan et la troisième est une mesure.
+ Une géométrie quadridimensionnelle (4D) est spécifiée par quatre coordonnées (x, y, z, m), où les trois premières sont des coordonnées cartésiennes dans un espace et la quatrième est une mesure.

Pour plus d’informations sur les types de données primitives géométriques, consultez [Well-known text](https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry) dans Wikipedia. 

Vous pouvez utiliser le type de données `GEOGRAPHY` pour contenir les valeurs des données spatiales. Une valeur `GEOGRAPHY` dans Amazon Redshift peut définir des types de données primitifs de géométrie bidimensionnelle (2D), tridimensionnelle (3DZ), bidimensionnelle avec une mesure (3DM) et quadridimensionnelle (4D) :
+ Une géométrie bidimensionnelle (2D) est spécifiée par des coordonnées de longitude et de latitude sur un sphéroïde.
+ Une géométrie tridimensionnelle (3DZ) est spécifiée par des coordonnées de longitude, de latitude et d’altitude sur un sphéroïde.
+ Une géométrie bidimensionnelle avec mesure (3DM) est spécifiée par trois coordonnées (longitude, latitude et mesure), où les deux premières sont des coordonnées angulaires sur une sphère et la troisième est une mesure.
+ Une géométrie quadridimensionnelle (4D) est spécifiée par quatre coordonnées (longitude, latitude, altitude, mesure), où les trois premières sont la longitude, la latitude et l’altitude, et la quatrième est une mesure.

Pour plus d’informations sur les systèmes de coordonnées géographiques, consultez [Coordonnées géographiques](https://en.wikipedia.org/wiki/Geographic_coordinate_system) et [Coordonnées sphériques](https://en.wikipedia.org/wiki/Spherical_coordinate_system) sur Wikipédia. 

Les types de données `GEOMETRY` et `GEOGRAPHY` ont les sous-types suivants : 
+ `POINT`
+ `LINESTRING`
+ `POLYGON`
+ `MULTIPOINT`
+ `MULTILINESTRING`
+ `MULTIPOLYGON`
+ `GEOMETRYCOLLECTION`

Des fonctions SQL Amazon Redshift prennent en charge les représentations suivantes des données géométriques :
+ GeoJSON
+ Well-known text (WKT) 
+ Extended well-known text (EWKT)
+ Représentation WKB (Well-known binary) 
+ Extended well-known binary (EWKB)

Vous pouvez effectuer une conversion entre les types de données `GEOMETRY` et `GEOGRAPHY`.

Le code SQL suivant convertit une linestring à partir d’une `GEOMETRY` en une `GEOGRAPHY`. 

```
SELECT ST_AsEWKT(ST_GeomFromText('LINESTRING(110 40, 2 3, -10 80, -7 9)')::geography);
```

```
 st_asewkt
----------------------------------------------
 SRID=4326;LINESTRING(110 40,2 3,-10 80,-7 9)
```

Le code SQL suivant convertit une linestring à partir d’une `GEOGRAPHY` en une `GEOMETRY`. 

```
SELECT ST_AsEWKT(ST_GeogFromText('LINESTRING(110 40, 2 3, -10 80, -7 9)')::geometry);
```

```
 st_asewkt
----------------------------------------------
 SRID=4326;LINESTRING(110 40,2 3,-10 80,-7 9)
```

Amazon Redshift fournit de nombreuses fonctions SQL pour interroger les données spatiales. À l’exception de la fonction `ST_IsValid`, les fonctions spatiales qui acceptent un objet `GEOMETRY` comme argument s’attendent à ce que cet objet `GEOMETRY` soit une géométrie valide. Si l’objet `GEOMETRY` ou `GEOGRAPHY` n’est pas valide, le comportement de la fonction spatiale n’est pas défini. Pour plus d’informations sur la validité, consultez [Validité géométrique](spatial-terminology.md#spatial-terminology-validity). 

Pour plus d’informations sur les fonctions SQL permettant d’interroger les données spatiales, consultez [Fonctions spatiales](geospatial-functions.md). 

Pour plus d’informations sur le chargement des données spatiales, consultez [Chargement d’une colonne avec le type de données GEOMETRY ou GEOGRAPHY](copy-usage_notes-spatial-data.md). 

**Topics**
+ [Didacticiel : Utiliser les fonctions SQL spatiales avec Amazon Redshift](spatial-tutorial.md)
+ [Chargement d’un shapefile dans Amazon Redshift](spatial-copy-shapefile.md)
+ [Terminologie des données spatiales Amazon Redshift](spatial-terminology.md)
+ [Éléments à prendre en compte lors de l’utilisation de données spatiales dans Amazon Redshift](spatial-limitations.md)