Funciones geoespaciales H3

Se aplica a:check marked yes Databricks SQL check marked yes Databricks Runtime

H3 es un sistema de indexación de cuadrícula global. Los sistemas de cuadrícula usan una forma, como rectángulos o triángulos, para teselar una superficie, que en este caso es la superficie de la Tierra. El sistema H3 fue diseñado para usar hexágonos (y algunos pentágonos) y ofrece 16 niveles de resoluciones dentro de su jerarquía. A resoluciones más altas, las formas teseladas son más pequeñas.

Las expresiones H3 solo se admiten en clústeres habilitados para Photon y almacenes de Databricks SQL en los niveles Databricks SQL pro y sin servidor.

Obtenga más información sobre las resoluciones de H3 y sobre los orígenes de H3.

Consulte también:

H3 para el análisis geoespacial (Geoespatial Analytics)

H3 admite un patrón común para procesar y analizar datos espaciales. Empiece por indexar datos geoespaciales de formatos estándar (latitud y longitud, texto conocido (WKT), binario conocido (WKB) o GeoJSON a identificadores de celda H3. Con un único conjunto de datos, puede agregar por identificador de celda para responder a preguntas controladas por la ubicación. Con varios conjuntos de datos indexados, puede combinarlos mediante los identificadores de celda, revelando cómo se relacionan los conjuntos de datos dispares entre sí. Esta combinación de conjuntos de datos es semánticamente una combinación espacial, pero sin necesidad de un predicado espacial.

¿Cuáles son las ventajas de usar H3 en Databricks?

Saque provecho de las características de Delta Lake para un almacenamiento y un diseño eficientes de los datos indexados de H3. La operación OPTIMIZE de Delta Lake con ordenación Z (en identificadores de celda H3) permite la colocalización de datos espacialmente. Además, los algoritmos de omisión de datos de Delta Lake usan la colocalización para reducir de forma inteligente el volumen de datos que se deben leer.

Tiene flexibilidad en cómo trabajar con los datos. Puede elegir trabajar con identificadores de celda H3 almacenados como enteros grandes o cadenas. Para obtener el mejor rendimiento mediante identificadores de celda H3, use la representación de entero grande. Para obtener un uso detallado de expresiones H3, consulte la Guía de referencia de SQL.

Nota:

No es necesario instalar la biblioteca de H3. Se incluye como una dependencia visible en Databricks Runtime, a partir de Databricks Runtime 11.2, con la versión 3.7.0 de la biblioteca Java de H3.

Importación de funciones de Databricks para obtener H3 (Databricks Runtime)

No se necesita ninguna importación para Databricks SQL y Spark SQL.

Para importar funciones H3 para Python o Scala en cuadernos, use los siguientes comandos:

Python

from pyspark.databricks.sql import functions as dbf

Scala

import com.databricks.sql.functions._

Lista de funciones geoespaciales H3 (Databricks SQL)

Importar

Función Descripción
h3_coverash3(geographyExpr, resolutionExpr) Devuelve una ARRAY de id. de celda H3 (representados como BIGINT) correspondientes al conjunto mínimo de hexágonos o pentágonos, de la resolución especificada, que cubre completamente la geografía lineal o del área de entrada.
h3_coverash3string(geographyExpr, resolutionExpr) Devuelve una ARRAY de id. de celda H3 (representados como STRING) correspondientes al conjunto mínimo de hexágonos o pentágonos, de la resolución especificada, que cubre completamente la geografía lineal o del área de entrada.
h3_longlatash3(longitudeExpr, latitudeExpr, resolutionExpr) Esta función se usa para obtener el id. de celda H3 (en forma de expresión BIGINT) que se corresponda con la longitud y la latitud que se proporcionan en la resolución que se especifique.
h3_longlatash3string(longitudeExpr, latitudeExpr, resolutionExpr) Esta función se usa para obtener el id. de celda H3 (en forma de expresión STRING hexadecimal) que se corresponda con la longitud y la latitud que se proporcionan en la resolución que se especifique.
h3_pointash3(geographyExpr, resolutionExpr) Devuelve el Id. de celda H3 (en forma de expresión BIGINT) que se corresponda con el punto proporcionado en la resolución que se especifique.
h3_pointash3string(geographyExpr, resolutionExpr) Devuelve el Id. de celda H3 (en forma de expresión STRING) que se corresponda con el punto proporcionado en la resolución que se especifique.
h3_polyfillash3(geographyExpr, resolutionExpr) Devuelve una ARRAY de id. de celda H3 (representados como BIGINT) correspondientes a hexágonos o pentágonos, de la resolución especificada, contenidos en la geografía del área de entrada.
h3_polyfillash3string(geographyExpr, resolutionExpr) Devuelve una ARRAY de id. de celda H3 (representados como STRING) correspondientes a hexágonos o pentágonos, de la resolución especificada, contenidos en la geografía del área de entrada.
h3_tessellateaswkb(geographyExpr, resolutionExpr) Devuelve una teselación de la geografía de entrada mediante celdas H3 en la resolución especificada.
h3_try_polyfillash3(geographyExpr, resolutionExpr) Devuelve una ARRAY de id. de celda H3 (representados como BIGINT) correspondientes a hexágonos o pentágonos, de la resolución especificada, contenidos en la geografía del área de entrada.
h3_try_polyfillash3string(geographyExpr, resolutionExpr) Devuelve una ARRAY de id. de celda H3 (representados como STRING) correspondientes a hexágonos o pentágonos, de la resolución especificada, contenidos en la geografía del área de entrada.

Exportación

Función Descripción
h3_boundaryasgeojson(h3CellIdExpr) Devuelve el límite poligonal de la celda H3 de entrada en formato GeoJSON.
h3_boundaryaswkb(h3CellIdExpr) Devuelve el límite poligonal de la celda H3 de entrada en formato WKB.
h3_boundaryaswkt(h3CellIdExpr) Devuelve el límite poligonal de la celda H3 de entrada en formato WKT.
h3_centerasgeojson(h3CellIdExpr) Devuelve el centro de la celda H3 de entrada como punto en formato GeoJSON.
h3_centeraswkb(h3CellIdExpr) Esta función se usa para obtener el centro de la celda H3 de entrada como punto en formato WKB.
h3_centeraswkt(h3CellIdExpr) Devuelve el centro de la celda H3 de entrada como punto en formato WKT.

Conversiones

Función Descripción
h3_h3tostring(h3CellIdExpr) Convierte el identificador de la celda H3 de entrada en su representación de cadena hexadecimal equivalente.
h3_stringtoh3(h3CellIdStringExpr) Convierte la cadena de entrada, que se espera que sea una cadena hexadecimal que represente un Id. de celda H3, en la representación BIGINT correspondiente del Id. de celda H3.

Predicados

Función Descripción
h3_ischildof(h3CellId1Expr, h3CellId2Expr) Devuelve “true” si el primer Id. de celda H3 equivale a un elemento secundario del segundo Id. de celda H3 o si es uno de ellos.
h3_ispentagon(h3CellIdExpr) Devuelve true si la entrada BIGINT o el valor hexadecimal STRING corresponde a una celda H3 pentagonal o no.

Validez

Función Descripción
h3_isvalid(expr) Al ejecutar esta función, se devuelve el valor true si la expresión BIGINT o STRING de entrada es un id. válido de celda H3.
h3_try_validate(h3CellIdExpr) Devuelve el valor de entrada, que es del tipo BIGINT o STRING, si corresponde a un Id. de celda H3 válido; de lo contrario, devuelve NULL.
h3_validate(h3CellIdExpr) Devuelve el valor de entrada, que es del tipo BIGINT o STRING, si corresponde a un identificador de celda H3 válido o, de lo contrario, emite un error.
Función Descripción
h3_distance(h3CellId1Expr, h3CellId2Expr) Devuelve la distancia de cuadrícula de los dos Ids. de celda H3 de entrada.
h3_hexring(h3CellIdExpr, kExpr) Devuelve una matriz de Ids. de celda H3 que forman un anillo hexagonal hueco centrado en la celda H3 de origen y que están a una distancia de cuadrícula k desde la celda H3 de origen.
h3_kring(h3CellIdExpr, kExpr) Devuelve los identificadores de celda H3 que están dentro de una distancia (de cuadrícula) k del Id. de la celda de origen.
h3_kringdistances(h3CellIdExpr, kExpr) Devuelve todos los identificadores de celda H3 (representados como enteros largos o cadenas) dentro de una distancia de cuadrícula k desde el identificador de celda H3 de origen, junto con su distancia desde el identificador de celda H3 de origen.
h3_try_distance(h3CellId1Expr, h3CellId2Expr) Devuelve la distancia de cuadrícula de los dos identificadores de celda H3 de entrada de la misma resolución o un NULL si la distancia no está definida.

Traversal

Función Descripción
h3_maxchild(h3CellIdExpr, resolutionExpr) Devuelve el elemento secundario del valor máximo de la celda H3 de entrada en la resolución especificada.
h3_minchild(h3CellIdExpr, resolutionExpr) Devuelve el elemento secundario del valor mínimo de la celda H3 de entrada en la resolución especificada.
h3_resolution(h3CellIdExpr) Devuelve la resolución del Id. de celda H3 de entrada.
h3_tochildren(h3CellIdExpr, resolutionExpr) Devuelve una matriz de los identificadores de celda H3 secundarios del Id. de celda H3 de entrada en la resolución especificada.
h3_toparent(h3CellIdExpr, resolutionExpr) Devuelve el Id. de celda H3 primario del Id. de celda H3 de entrada en la resolución que se especifique.

Compactación

Función Descripción
h3_compact(h3CellIdsExpr) Compacta el conjunto de entrada de los Ids. de celda H3 lo mejor posible.
h3_uncompact(h3CellIdsExpr, resolutionExpr) Descompacta el conjunto de entrada de los Ids. de celda H3 con la resolución especificada.