Partager via


Fonctions géospatiales H3

S’applique à : case marquée oui Databricks SQL case marquée oui Databricks Runtime

H3 est un système d’indexation de grille globale. Les systèmes de grille utilisent une forme, comme des rectangles ou des triangles, pour couvrir une surface, qui dans ce cas est la surface de la Terre. Le système H3 a été conçu pour utiliser des hexagones (et quelques pentagones), et offre 16 niveaux de résolution au sein de sa hiérarchie. À des résolutions plus élevées, les formes tessellées sont plus petites.

Les expressions H3 sont uniquement prises en charge dans les clusters Photon et les entrepôts SQL Databricks aux niveaux Databricks SQL Pro/Serverless.

En savoir plus sur les résolutions H3 et sur les origines de H3.

Voir aussi :

H3 pour l’analytique géospatiale

H3 prend en charge un modèle commun pour le traitement et l’analyse des données spatiales. Commencez par indexer des données géospatiales à partir de formats standard (latitude et longitude, texte connu (WKT),binaire connu (WKB) ou GeoJSON vers des ID de cellule H3. Avec un jeu de données unique, vous pouvez agréger par ID de cellule pour répondre à des questions basées sur l’emplacement. Avec plusieurs jeux de données indexés, vous pouvez les combiner à l’aide des ID de cellule, ce qui révèle comment les jeux de données disparates sont liés les uns aux autres. Cette jonction de jeux de données est sémantiquement une jointure spatiale, mais sans prédicat spatial.

Quels sont les avantages de l’utilisation de H3 dans Databricks ?

Tirez parti des fonctionnalités de Delta Lake pour un stockage et une disposition efficaces de vos données indexées H3. L’opération OPTIMIZE de Delta Lake avec l’ordre de plan (sur les ID de cellule H3) vous permet de co-localiser des données spatialement. En outre, les algorithmes de saut de données de Delta Lake utilisent la co-localité pour réduire intelligemment le volume de données à lire.

Vous disposez d’une flexibilité dans la façon dont vous travaillez avec les données. Vous pouvez choisir d’utiliser des ID de cellule H3 stockés sous forme d’entiers volumineux ou de chaînes. Pour obtenir des performances optimales à l’aide d’ID de cellule H3, utilisez la représentation des entiers volumineux. Pour une utilisation détaillée des expressions H3, reportez-vous au guide de référence SQL.

Notes

Vous n’avez pas besoin d’installer la bibliothèque H3. Elle est incluse en tant que dépendance visible dans Databricks Runtime, à partir de Databricks Runtime 11.2, à l’aide de la version 3.7.0 de la bibliothèque Java H3.

Importer des fonctions Databricks pour obtenir H3 (Databricks Runtime)

Aucune importation n’est nécessaire pour Databricks SQL et Spark SQL.

Pour importer des fonctions H3 pour Python ou Scala dans des notebooks, utilisez les commandes suivantes :

Python

from pyspark.databricks.sql import functions as dbf

Scala

import com.databricks.sql.functions._

Liste des fonctions géospatiales H3 (Databricks SQL)

Importer

Fonction Description
h3_coverash3(geographyExpr, resolutionExpr) Retourne un tableau d’ID de cellule H3 (représentés sous forme de BIGINT) correspondant à un ensemble minimal d’hexagones ou de pentagones, de la résolution spécifiée, qui couvrent entièrement la géographie de la zone d’entrée ou linéaire.
h3_coverash3string(geographyExpr, resolutionExpr) Retourne un tableau d’ID de cellule H3 (représentés sous forme de STRING) correspondant à un ensemble minimal d’hexagones ou de pentagones, de la résolution spécifiée, qui couvrent entièrement la géographie de la zone d’entrée ou linéaire.
h3_longlatash3(longitudeExpr, latitudeExpr, resolutionExpr) Retourne l’ID de cellule H3 (en tant que BIGINT) correspondant à la longitude et à la latitude fournies à la résolution spécifiée.
h3_longlatash3string(longitudeExpr, latitudeExpr, resolutionExpr) Retourne l’ID de cellule H3 (sous forme de STRING héxadecimale) correspondant à la longitude et à la latitude fournies, à la résolution spécifiée.
h3_pointash3(geographyExpr, resolutionExpr) Retourne l’ID de cellule H3 (en tant que BIGINT) correspondant au point fourni à la résolution spécifiée.
h3_pointash3string(geographyExpr, resolutionExpr) Retourne l’ID de cellule H3 (en tant que STRING) correspondant au point fourni à la résolution spécifiée.
h3_polyfillash3(geographyExpr, resolutionExpr) Retourne un tableau d’ID de cellule H3 (représentés sous forme de BIGINT) correspondant aux hexagones ou aux pentagones, de la résolution spécifiée, qui sont contenus dans la géographie de la zone d’entrée.
h3_polyfillash3string(geographyExpr, resolutionExpr) Retourne un tableau d’ID de cellule H3 (représentés sous forme de STRING) correspondant aux hexagones ou aux pentagones, de la résolution spécifiée, qui sont contenus dans la géographie de la zone d’entrée.
h3_tessellateaswkb(geographyExpr, resolutionExpr) Retourne un pavage de la géographie d’entrée à l’aide des cellules H3, à la résolution spécifiée.
h3_try_polyfillash3(geographyExpr, resolutionExpr) Retourne un tableau d’ID de cellule H3 (représentés sous forme de BIGINT) correspondant aux hexagones ou aux pentagones, de la résolution spécifiée, qui sont contenus dans la géographie de la zone d’entrée.
h3_try_polyfillash3string(geographyExpr, resolutionExpr) Retourne un tableau d’ID de cellule H3 (représentés sous forme de STRING) correspondant aux hexagones ou aux pentagones, de la résolution spécifiée, qui sont contenus dans la géographie de la zone d’entrée.

Exporter

Fonction Description
h3_boundaryasgeojson(h3CellIdExpr) Retourne la limite polygonale de la cellule H3 d’entrée au format GeoJSON.
h3_boundaryaswkb(h3CellIdExpr) Retourne la limite polygonale de la cellule H3 d’entrée au format WKB.
h3_boundaryaswkt(h3CellIdExpr) Retourne la limite polygonale de la cellule H3 d’entrée au format WKT.
h3_centerasgeojson(h3CellIdExpr) Retourne le centre de la cellule H3 d’entrée en tant que point au format GeoJSON.
h3_centeraswkb(h3CellIdExpr) Retourne le centre de la cellule H3 d’entrée en tant que point au format WKB.
h3_centeraswkt(h3CellIdExpr) Retourne le centre de la cellule H3 d’entrée en tant que point au format WKT.

Conversions

Fonction Description
h3_h3tostring(h3CellIdExpr) Convertit l’ID de cellule H3 d’entrée en sa représentation sous forme de chaîne hexadécimale équivalente.
h3_stringtoh3(h3CellIdStringExpr) Convertit la chaîne d’entrée, qui doit être une chaîne hexadécimale représentant un ID de cellule H3, en la représentation BIGINT correspondante de l’ID de cellule H3.

Prédicats

Fonction Description
h3_ischildof(h3CellId1Expr, h3CellId2Expr) Retourne true si le premier ID de cellule H3 est égal au deuxième ID de cellule H3 ou s’il s’agit d’un enfant de celui-ci.
h3_ispentagon(h3CellIdExpr) Retourne true si le type BIGINT ou STRING hexadécimal d’entrée correspond à une cellule H3 pentagonale ou non.

Validité

Fonction Description
h3_isvalid(expr) Retourne true si le type BIGINT ou STRING d’entrée est un ID de cellule H3 valide.
h3_try_validate(h3CellIdExpr) Retourne la valeur d’entrée, qui est de type BIGINT ou STRING, si elle correspond à un ID de cellule H3 valide, ou NULL si ce n’est pas le cas.
h3_validate(h3CellIdExpr) Retourne la valeur d’entrée, qui est de type BIGINT ou STRING, si elle correspond à un ID de cellule H3 valide, ou émet une erreur si ce n’est pas le cas.
Fonction Description
h3_distance(h3CellId1Expr, h3CellId2Expr) Retourne la distance de grille des deux ID de cellule H3 d’entrée.
h3_hexring(h3CellIdExpr, kExpr) Retourne un tableau d’ID de cellule H3 qui forment un anneau hexagonal creux centré sur la cellule H3 d’origine et qui sont à une distance de grille k de la cellule H3 d’origine.
h3_kring(h3CellIdExpr, kExpr) Retourne les ID de cellule H3 qui se trouvent à une distance (grille) k de l’ID de cellule d’origine.
h3_kringdistances(h3CellIdExpr, kExpr) Retourne tous les ID de cellule H3 (représentés sous forme d’entiers ou de chaînes longs) situés à une distance de grille k de l’ID de cellule H3 d’origine, ainsi que leur distance par rapport à l’ID de cellule H3 d’origine.
h3_try_distance(h3CellId1Expr, h3CellId2Expr) Retourne la distance de grille des deux ID de cellule H3 d’entrée de la même résolution, ou NULL si la distance n’est pas définie.

Traversal

Fonction Description
h3_maxchild(h3CellIdExpr, resolutionExpr) Renvoie l’enfant de la valeur maximale de la cellule H3 d’entrée à la résolution spécifiée.
h3_minchild(h3CellIdExpr, resolutionExpr) Renvoie l’enfant de la valeur minimale de la cellule H3 d’entrée à la résolution spécifiée.
h3_resolution(h3CellIdExpr) Retourne la résolution de l’ID de cellule H3 d’entrée.
h3_tochildren(h3CellIdExpr, resolutionExpr) Retourne le tableau des ID de cellule H3 enfants de l’ID de cellule H3 d’entrée à la résolution spécifiée.
h3_toparent(h3CellIdExpr, resolutionExpr) Retourne l’ID de cellule H3 parent de l’ID de cellule H3 d’entrée à la résolution spécifiée.

Compactage

Fonction Description
h3_compact(h3CellIdsExpr) Compacte le mieux possible le jeu de données d’entrée des ID de cellule H3.
h3_uncompact(h3CellIdsExpr, resolutionExpr) Décompacte le jeu de données d’entrée des ID de cellule H3 à la résolution spécifiée.