Pular para o conteúdo principal

h3_tessellateaswkb

Retorna um array de estruturas representando os chips que cobrem a geografia na resolução especificada. Mais precisamente, os elementos da matriz retornada são estruturas nomeadas com três campos chamados "cellid", "core" e "chip":

  • O campo "cellid" contém uma das células H3 que abrangem a geografia de entrada.
  • O campo "core" determina se o polígono limite da célula H3 no campo "cellid" está contido dentro da área geográfica de entrada. Isso só pode acontecer para geografias de entrada de área. Se a célula estiver contida na geografia de entrada, o valor será definido como True e false caso contrário.
  • O campo "chip" é a intersecção (cartesiana) do polígono da célula H3, correspondente ao ID da célula H3 no campo "cellid", com a geografia de entrada, representada no formato WKB. O conjunto de IDs de células H3 retornados como elementos "cellid" das estruturas na matriz é um conjunto de cobertura mínima para a geografia de entrada.

Para a função Databricks SQL correspondente, consulte a funçãoh3_tessellateaswkb.

Sintaxe

Python
from pyspark.databricks.sql import functions as dbf

dbf.h3_tessellateaswkb(col1=<col1>, col2=<col2>)

Parâmetros

Parâmetro

Tipo

Descrição

col1

pyspark.sql.Column ou str

Uma sequência de caracteres representando uma geografia no sistema de referência de coordenadas WGS84 em formato WKT ou GeoJSON, ou um valor BINÁRIO representando uma geografia linear ou areal no sistema de referência de coordenadas WGS84 em formato WKB.

col2

pyspark.sql.Column, str ou int

A resolução dos IDs de células H3 que cobrem a área geográfica.

Exemplos

Python
from pyspark.databricks.sql import functions as dbf
from pyspark.sql import functions as f
df = spark.createDataFrame([('MULTIPOINT(20 0,20 10,40 30)', 0),], ['wkt', 'res'])
chips = df.select(
... f.inline(dbf.h3_tessellateaswkb('wkt', 'res')).alias('cell', 'core', 'chip'))
chips.select(dbf.h3_h3tostring('cell').alias('cell'),
... dbf.st_astext(dbf.st_geomfromwkb('chip')).alias('wkt')).collect()
Output
[Row(cell='802dfffffffffff', wkt='POINT(40 30)'),     Row(cell='806bfffffffffff', wkt='MULTIPOINT((20 0),(20 10))')]