Funções geoespaciais H3

Aplica-se a:check marked yes Databricks SQL check marked yes Databricks Runtime

H3 é um sistema de indexação de grade global. Os sistemas de grade usam uma forma, como retângulos ou triângulos, para tesselar uma superfície, que neste caso é a superfície da Terra. O sistema H3 foi projetado para usar hexágonos (e alguns pentágonos), e oferece 16 níveis de resoluções dentro de sua hierarquia. Em resoluções mais altas, as formas tesseladas são menores.

As expressões H3 só são suportadas em clusters habilitados para Photon e armazéns SQL Databricks nas camadas Databricks SQL pro e serverless.

Leia mais sobre as resoluções H3 e sobre as origens do H3.

Consulte também:

H3 para Análise Geoespacial

O H3 suporta um padrão comum para processamento e análise de dados espaciais. Comece indexando dados geoespaciais de formatos padrão (latitude e longitude, texto conhecido (WKT), binário conhecido (WKB) ou GeoJSON para IDs de célula H3. Com um único conjunto de dados, você pode agregar por ID de célula para responder a perguntas orientadas por localização. Com vários conjuntos de dados indexados, você pode combiná-los usando as IDs de célula, revelando como conjuntos de dados díspares se relacionam entre si. Esta junção de conjuntos de dados é semanticamente uma junção espacial, mas sem a necessidade de um predicado espacial.

Quais são os benefícios de usar o H3 no Databricks?

Aproveite os recursos do Delta Lake para armazenamento e layout eficientes de seus dados indexados H3. A operação OTIMIZE da Delta Lake com ordenação Z (em IDs de célula H3) permite colocalizar dados espacialmente. Além disso, os algoritmos de pulo de dados do Delta Lake usam a co-localidade para reduzir de forma inteligente o volume de dados que precisam ser lidos.

Tem flexibilidade na forma como trabalha com os dados. Você pode optar por trabalhar com IDs de célula H3 armazenados como inteiros grandes ou cadeias de caracteres. Para obter o melhor desempenho usando IDs de célula H3, use a representação inteira grande. Para obter o uso detalhado de expressões H3, consulte o guia de referência SQL.

Nota

Não é necessário instalar a biblioteca H3. Ele é incluído como uma dependência visível no Databricks Runtime, começando com o Databricks Runtime 11.2, usando a versão 3.7.0 da biblioteca Java H3.

Importar funções Databricks para obter H3 (Databricks Runtime)

Nenhuma importação necessária para Databricks SQL e Spark SQL.

Para importar funções H3 para Python ou Scala em blocos de anotações, use os seguintes comandos:

Python

from pyspark.databricks.sql import functions as dbf

Scala

import com.databricks.sql.functions._

Lista de funções geoespaciais H3 (Databricks SQL)

Importar

Function Description
h3_coverash3(geographyExpr, resolutionExpr) Retorna uma MATRIZ de IDs de célula H3 (representada como BIGINT) correspondente ao conjunto mínimo de hexágonos ou pentágonos, da resolução especificada, que cobrem totalmente a geografia linear ou areal de entrada.
h3_coverash3string(geographyExpr, resolutionExpr) Retorna uma MATRIZ de IDs de célula H3 (representada como STRING) correspondente ao conjunto mínimo de hexágonos ou pentágonos, da resolução especificada, que cobrem totalmente a geografia linear ou areal de entrada.
h3_longlatash3(longitudeExpr, latitudeExpr, resolutionExpr) Devolve o ID da célula H3 (como um BIGINT) correspondente à longitude e latitude fornecidas na resolução especificada.
h3_longlatash3string(longitudeExpr, latitudeExpr, resolutionExpr) Devolve o ID da célula H3 (como uma STRING hexadecimal) correspondente à longitude e latitude fornecidas na resolução especificada.
h3_pointash3(geographyExpr, resolutionExpr) Retorna o ID da célula H3 (como um BIGINT) correspondente ao ponto fornecido na resolução especificada.
h3_pointash3string(geographyExpr, resolutionExpr) Retorna o ID da célula H3 (como uma STRING) correspondente ao ponto fornecido na resolução especificada.
h3_polyfillash3(geographyExpr, resolutionExpr) Retorna uma MATRIZ de IDs de célula H3 (representada como BIGINT) correspondente a hexágonos ou pentágonos, da resolução especificada, que estão contidos pela geografia de área de entrada.
h3_polyfillash3string(geographyExpr, resolutionExpr) Retorna uma MATRIZ de IDs de célula H3 (representada como STRING) correspondente a hexágonos ou pentágonos, da resolução especificada, que estão contidos pela geografia de área de entrada.
h3_tessellateaswkb(geographyExpr, resolutionExpr) Retorna uma tesselação da geografia de entrada usando células H3 na resolução especificada.
h3_try_polyfillash3(geographyExpr, resolutionExpr) Retorna uma MATRIZ de IDs de célula H3 (representada como BIGINT) correspondente a hexágonos ou pentágonos, da resolução especificada, que estão contidos pela geografia de área de entrada.
h3_try_polyfillash3string(geographyExpr, resolutionExpr) Retorna uma MATRIZ de IDs de célula H3 (representada como STRING) correspondente a hexágonos ou pentágonos, da resolução especificada, que estão contidos pela geografia de área de entrada.

Exportar

Function Description
h3_boundaryasgeojson(h3CellIdExpr) Retorna o limite poligonal da célula H3 de entrada no formato GeoJSON .
h3_boundaryaswkb(h3CellIdExpr) Retorna o limite poligonal da célula H3 de entrada no formato WKB .
h3_boundaryaswkt(h3CellIdExpr) Retorna o limite poligonal da célula H3 de entrada no formato WKT .
h3_centerasgeojson(h3CellIdExpr) Retorna o centro da célula H3 de entrada como um ponto no formato GeoJSON .
h3_centeraswkb(h3CellIdExpr) Retorna o centro da célula H3 de entrada como um ponto no formato WKB .
h3_centeraswkt(h3CellIdExpr) Retorna o centro da célula H3 de entrada como um ponto no formato WKT .

Conversões

Function Description
h3_h3tostring(h3CellIdExpr) Converte o ID da célula H3 de entrada em sua representação de cadeia de caracteres hexadecimal equivalente.
h3_stringtoh3(h3CellIdStringExpr) Converte a cadeia de entrada, que se espera que seja uma cadeia hexadecimal representando um ID de célula H3, para a representação BIGINT correspondente do ID de célula H3.

Predicados

Function Description
h3_ischildof(h3CellId1Expr, h3CellId2Expr) Retorna true se o primeiro ID de célula H3 for igual ou filho do segundo ID de célula H3.
h3_ispentagon(h3CellIdExpr) Retorna true se a entrada BIGINT ou STRING hexadecimal corresponde a uma célula H3 pentagonal ou não.

Validade

Function Description
h3_isvalid(expr) Retorna true se a entrada BIGINT ou STRING for um ID de célula H3 válido.
h3_try_validate(h3CellIdExpr) Retorna o valor de entrada, que é do tipo BIGINT ou STRING, se corresponder a um ID de célula H3 válido, ou NULL caso contrário.
h3_validate(h3CellIdExpr) Devolve o valor de entrada, que é do tipo BIGINT ou STRING, se corresponder a um ID de célula H3 válido ou emitir um erro de outra forma.
Function Description
h3_distance(h3CellId1Expr, h3CellId2Expr) Devolve a distância da grelha dos dois IDs de célula H3 de entrada.
h3_hexring(h3CellIdExpr, kExpr) Retorna uma matriz de IDs de célula H3 que formam um anel hexagonal oco centrado na célula H3 de origem e que estão a uma distância k de grade da célula H3 de origem.
h3_kring(h3CellIdExpr, kExpr) Retorna os IDs de célula H3 que estão a uma distância k (grade) do ID da célula de origem.
h3_kringdistances(h3CellIdExpr, kExpr) Retorna todas as IDs de célula H3 (representadas como inteiros longos ou cadeias de caracteres) dentro da distância k de grade da ID da célula H3 de origem, juntamente com sua distância da ID da célula H3 de origem.
h3_try_distance(h3CellId1Expr, h3CellId2Expr) Devolve a distância da grelha dos dois IDs de célula H3 de entrada da mesma resolução, ou NULL se a distância for indefinida.

Travessia

Function Description
h3_maxchild(h3CellIdExpr, resolutionExpr) Retorna o filho do valor máximo da célula H3 de entrada na resolução especificada.
h3_minchild(h3CellIdExpr, resolutionExpr) Retorna o filho do valor mínimo da célula H3 de entrada na resolução especificada.
h3_resolution(h3CellIdExpr) Devolve a resolução do ID da célula H3 de entrada.
h3_tochildren(h3CellIdExpr, resolutionExpr) Retorna uma matriz dos IDs de célula H3 filhos do ID de célula H3 de entrada na resolução especificada.
h3_toparent(h3CellIdExpr, resolutionExpr) Retorna o ID da célula H3 pai do ID da célula H3 de entrada na resolução especificada.

Compactação

Function Description
h3_compact(h3CellIdsExpr) Compacta o conjunto de entrada de IDs de células H3 da melhor forma possível.
h3_uncompact(h3CellIdsExpr, resolutionExpr) Descompacta o conjunto de entrada de IDs de célula H3 para a resolução especificada.