Partilhar via


Funções geoespaciais H3

Aplica-se a:seleção marcada sim Databricks SQL seleção marcada sim Databricks Runtime

H3 é um sistema de indexação de grelha 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 com Photon habilitado e armazéns SQL do 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 do Delta Lake com ordenação Z (em IDs de célula H3) permite a localização espacial dos dados. Além disso, os algoritmos de filtragem de dados do Delta Lake usam a co-localidade para reduzir inteligentemente o volume de dados necessários para leitura.

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

linguagem de programação Scala

import com.databricks.sql.functions._

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

Importar

Função Descrição
h3_coverash3(geoExpr, resolutionExpr) Retorna uma MATRIZ de IDs de célula H3 (representados como BIGINT) correspondentes ao conjunto mínimo de hexágonos ou pentágonos, da resolução especificada, que cobrem totalmente a geografia linear ou de área de entrada.
h3_coverash3string(geoExpr, 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(geoExpr, resolutionExpr) Retorna o ID da célula H3 (como um BIGINT) correspondente ao ponto fornecido na resolução especificada.
h3_pointash3string(geoExpr, resolutionExpr) Retorna o ID da célula H3 (como uma STRING) correspondente ao ponto fornecido na resolução especificada.
h3_polyfillash3(geoExpr, resolutionExpr) Retorna um array de IDs de célula H3 (representada como BIGINT) correspondente a hexágonos ou pentágonos, com a resolução especificada, que estão contidos pela área geográfica de entrada.
h3_polyfillash3string(geoExpr, resolutionExpr) Retorna uma MATRIZ de IDs de célula H3 (representada como STRING) correspondentes a hexágonos ou pentágonos, da resolução especificada, que estão contidos na geografia de área fornecida.
h3_tessellateaswkb(geographyExpr, resolutionExpr) Devolve uma tesselação da geografia fornecida usando células H3 na resolução especificada.
h3_try_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, ou NULL se o primeiro argumento for inválido.
h3_try_coverash3string(geoExpr, resolutionExpr) Devolve um ARRAY de IDs de células H3 (representados como STRINGS) correspondentes ao conjunto mínimo de hexágonos ou pentágonos, da resolução especificada, que cobre totalmente a geografia linear ou areal de entrada, ou NULL se o primeiro argumento for inválido.
h3_try_polyfillash3(geoExpr, resolutionExpr) Retorna um array de IDs de célula H3 (representada como BIGINT) correspondente a hexágonos ou pentágonos, com a resolução especificada, que estão contidos pela área geográfica de entrada.
h3_try_polyfillash3string(geoExpr, resolutionExpr) Retorna uma MATRIZ de IDs de célula H3 (representada como STRING) correspondentes a hexágonos ou pentágonos, da resolução especificada, que estão contidos na geografia de área fornecida.
h3_try_tessellateaswkb(geographyExpr, resolutionExpr) Retorna uma tesselação da geografia de entrada usando células H3 na resolução especificada, ou NULL se o primeiro argumento for inválido ou se a função não conseguir calcular uma tesselação.

Exportar

Função Descrição
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) Devolve o centro da célula H3 fornecida 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

Função Descrição
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

Função Descrição
h3_ischildof(h3CellId1Expr, h3CellId2Expr) Retorna verdadeiro se o ID da primeira célula H3 é igual ou é filho do ID da segunda 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

Função Descrição
h3_isvalid(expr) Retorna verdadeiro se o input 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 então emite um erro.
Função Descrição
h3_distance(h3CellId1Expr, h3CellId2Expr) Retorna a distância na grelha entre os dois IDs de célula H3 fornecidos.
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) Os IDs de célula H3 que estão a uma distância de grade k do ID da célula de origem são retornados.
h3_kringdistances(h3CellIdExpr, kExpr) Retorna todas as IDs de células H3 (representadas como números inteiros longos ou cadeias de caracteres) dentro da distância de grade k da ID da célula H3 de origem, juntamente com a sua distância da ID da célula H3 de origem.
h3_try_distance(h3CellId1Expr, h3CellId2Expr) Retorna a distância da grade entre os dois IDs de célula H3 de entrada da mesma resolução, ou NULL se a distância for indefinida.

Travessia

Função Descrição
h3_maxchild(h3CellIdExpr, resolutionExpr) Devolve o filho com o 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) Devolve uma matriz de IDs de células H3 que são descendentes do ID de célula H3 fornecido 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

Função Descrição
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.