Sdílet prostřednictvím


Geoprostorové funkce H3

Platí pro:označeno jako ano Databricks SQL označeno jako ano Databricks Runtime

H3 je globální systém indexování mřížky. Mřížkové systémy používají tvar, jako jsou obdélníky nebo trojúhelníky, k překrytí povrchu, což je v tomto případě povrch Země. Systém H3 byl navržen tak, aby používal šestiúhelníky (a několik pětiúhelníků) a v rámci své hierarchie nabízí 16 úrovní rozlišení. Ve vyšším rozlišení jsou tesselované obrazce menší.

Výrazy H3 jsou podporovány pouze v clusterech s aktivovanou podporou Photon a v databázových skladech Databricks SQL na úrovních Databricks SQL pro a serverless.

Přečtěte si další informace o rozlišeních H3 a o původech H3.

Viz také:

H3 pro geoprostorovou analýzu

H3 podporuje běžný vzor pro zpracování a analýzu prostorových dat. Začněte indexováním geoprostorových dat ze standardních formátů (zeměpisná šířka a délka, dobře známý text (WKT), dobře známý binární soubor (WKB) nebo GeoJSON na ID buněk H3. S jednou datovou sadou můžete agregovat podle ID buňky a odpovídat na otázky řízené umístěním. S několika indexovanými datovými sadami je můžete kombinovat pomocí ID buněk a odhalit, jak různorodé datové sady vzájemně souvisejí. Toto spojení datových sad je sémanticky prostorové spojení, ale bez nutnosti prostorového predikátu.

Jaké jsou výhody používání H3 v Databricks?

Využijte funkce Delta Lake k efektivnímu ukládání a rozložení indexovaných dat H3. Operace Delta Lake s řazením podle Z (na základě ID buněk H3) umožňuje prostorově seskupit data. Algoritmy přeskakování dat Delta Lake navíc využívají spolulokalizaci k inteligentnímu snížení objemu dat, která je potřeba číst.

Máte flexibilitu při práci s daty. Můžete se rozhodnout pracovat s ID buněk H3 uloženými jako velká celá čísla nebo řetězce. Pokud chcete dosáhnout nejlepšího výkonu pomocí ID buněk H3, použijte velké celočíselné vyjádření. Podrobné použití výrazů H3 najdete v referenční příručce SQL.

Poznámka:

Knihovnu H3 nemusíte instalovat. Je součástí Databricks Runtime jako viditelná závislost od verze Databricks Runtime 11.2, s použitím verze 3.7.0 knihovny H3 Java.

Import funkcí Databricks pro získání H3 (Databricks Runtime)

Pro Databricks SQL a Spark SQL není potřeba žádný import.

K importu funkcí H3 pro Python nebo Scala v poznámkových blocích použijte následující příkazy:

Python

from pyspark.databricks.sql import functions as dbf

Scala

import com.databricks.sql.functions._

Seznam geoprostorových funkcí H3 (Databricks SQL)

Dovoz

Funkce Popis
h3_coverash3(geographyExpr, resolutionExpr) Vrátí pole ID buněk H3 (reprezentované jako BIGINT), které odpovídají minimální sadě šestnáctkových nebo pětiúhelníků zadaného rozlišení, které plně pokrývají vstupní lineární nebo areální geografii.
h3_coverash3string(geographyExpr, resolutionExpr) Vrátí pole ID buněk H3 (reprezentované jako STRING) odpovídající minimální sadě šestiúhelníku nebo pětiúhelníku zadaného rozlišení, které plně pokrývají vstupní lineární nebo areální geografii.
h3_longlatash3(longitudeExpr, latitudeExpr, resolutionExpr) Vrátí ID buňky H3 (jako BIGINT), které odpovídá zadané délce a zeměpisné šířce v zadaném rozlišení.
h3_longlatash3string(longitudeExpr, latitudeExpr, resolutionExpr) Vrátí ID buňky H3 (jako šestnáctkový ŘETĚZEC) odpovídající zadané délce a zeměpisné šířce v zadaném rozlišení.
h3_pointash3(geographyExpr, resolutionExpr) Vrátí ID buňky H3 (jako BIGINT) odpovídající zadanému bodu v zadaném rozlišení.
h3_pointash3string(geographyExpr, resolutionExpr) Vrátí ID buňky H3 (jako ŘETĚZEC) odpovídající zadanému bodu v zadaném rozlišení.
h3_polyfillash3(geographyExpr, resolutionExpr) Vrátí pole ID buněk H3 (reprezentované jako BIGINT) odpovídající šestiúhelníkům nebo pětiúhelníkům zadaného rozlišení, které jsou obsaženy ve vstupní plošné geografické oblasti.
h3_polyfillash3string(geographyExpr, resolutionExpr) Vrátí pole ID buněk H3 (reprezentovaných jako STRING) odpovídajících šestiúhelníkům nebo pětiúhelníkům zadaného rozlišení, které jsou obsaženy ve vstupní geografické oblasti.
h3_tessellateaswkb(geographyExpr, resolutionExpr) Vrátí tessellaci vstupní geografie za použití buněk H3 v zadaném rozlišení.
h3_try_coverash3(geographyExpr, resolutionExpr) Vrátí pole ID buněk H3 (reprezentované jako BIGINT), které odpovídají minimální sadě šestiúhelníků nebo pětiúhelníků v zadaném rozlišení, jež plně pokrývají zadanou lineární nebo areální geografii, nebo hodnota NULL, pokud je první argument neplatný.
h3_try_coverash3string(geographyExpr, resolutionExpr) Vrátí pole ID buněk H3 (reprezentované jako STRING) odpovídající minimální sadě šestiúhelníků nebo pětiúhelníků o zadaném rozlišení, které plně pokrývají zadanou lineární nebo plošnou geografii, nebo vrátí hodnotu NULL, pokud je první argument neplatný.
h3_try_polyfillash3(geographyExpr, resolutionExpr) Vrátí pole ID buněk H3 (reprezentované jako BIGINT) odpovídající šestiúhelníkům nebo pětiúhelníkům zadaného rozlišení, které jsou obsaženy ve vstupní plošné geografické oblasti.
h3_try_polyfillash3string(geographyExpr, resolutionExpr) Vrátí pole ID buněk H3 (reprezentovaných jako STRING) odpovídajících šestiúhelníkům nebo pětiúhelníkům zadaného rozlišení, které jsou obsaženy ve vstupní geografické oblasti.
h3_try_tessellateaswkb(geographyExpr, resolutionExpr) Vrátí tesselace vstupní geografie pomocí buněk H3 v zadaném rozlišení, nebo NULL, pokud je první argument neplatný nebo pokud funkce nemohla vypočítat tesselaci.

Vývoz

Funkce Popis
h3_boundaryasgeojson(h3CellIdExpr) Vrátí mnohoúhelník vstupní buňky H3 ve formátu GeoJSON .
h3_boundaryaswkb(h3CellIdExpr) Vrátí mnohoúhelník vstupní buňky H3 ve formátu WKB .
h3_boundaryaswkt(h3CellIdExpr) Vrátí polygonální hranici vstupní buňky H3 ve formátu WKT.
h3_centerasgeojson(h3CellIdExpr) Vrátí střed vstupní buňky H3 jako bod ve formátu GeoJSON .
h3_centeraswkb(h3CellIdExpr) Vrátí střed vstupní buňky H3 jako bod ve formátu WKB .
h3_centeraswkt(h3CellIdExpr) Vrátí střed vstupní buňky H3 jako bod ve formátu WKT .

Převody

Funkce Popis
h3_h3tostring(h3CellIdExpr) Převede vstupní ID buňky H3 na ekvivalentní šestnáctkové řetězcové vyjádření.
h3_stringtoh3(h3CellIdStringExpr) Převede vstupní řetězec, který se očekává jako šestnáctkový řetězec představující ID buňky H3, na odpovídající reprezentaci BIGINT ID buňky H3.

Predikáty

Funkce Popis
h3_ischildof(h3CellId1Expr, h3CellId2Expr) Vrátí hodnotu true, pokud se první ID buňky H3 rovná druhému nebo je jeho podřízené.
h3_ispentagon(h3CellIdExpr) Vrátí hodnotu true, pokud vstupní BIGINT nebo šestnáctkový řetězec odpovídá pentagonální buňce H3.

Platnost

Funkce Popis
h3_isvalid(výraz) Vrátí hodnotu true, pokud je vstupní BIGINT nebo STRING platným ID buňky H3.
h3_try_validate(h3CellIdExpr) Vrátí vstupní hodnotu typu BIGINT nebo STRING, pokud odpovídá platnému ID buňky H3 nebo null jinak.
h3_validate(h3CellIdExpr) Vrátí vstupní hodnotu typu BIGINT nebo STRING, pokud odpovídá platnému ID buňky H3, nebo vygeneruje chybu jinak.
Funkce Popis
h3_distance(h3CellId1Expr, h3CellId2Expr) Vrátí hexagonální vzdálenost dvou vstupních ID buněk H3.
h3_hexring(h3CellIdExpr, kExpr) Vrátí pole ID buněk H3, které tvoří prázdný šestiúhelníkový prstenec, jenž je soustředěn v původní buňce H3 a nachází se ve vzdálenosti k od této buňky.
h3_kring(h3CellIdExpr, kExpr) Vrátí ID buněk H3, které jsou ve vzdálenosti k (mřížky) od ID původní buňky.
h3_kringdistances(h3CellIdExpr, kExpr) Vrátí všechna ID buněk H3 (reprezentovaná jako dlouhá celá čísla nebo řetězce) ve vzdálenosti k mřížky od ID buňky H3 původu spolu s jejich vzdáleností od ID buňky H3 původu.
h3_try_distance(h3CellId1Expr, h3CellId2Expr) Vrátí vzdálenost mřížky dvou ID vstupních buněk H3 stejného rozlišení nebo hodnotu NULL, pokud je vzdálenost nedefinovaná.

Sjezd šikmo

Funkce Popis
h3_maxchild(h3CellIdExpr, resolutionExpr) Vrátí potomka s maximální hodnotou ze vstupní buňky H3 při zadaném rozlišení.
h3_minchild(h3CellIdExpr, resolutionExpr) Vrátí dítě s minimální hodnotou zadanou buňkou H3 při daném rozlišení.
h3_resolution(h3CellIdExpr) Vrátí rozlišení vstupního ID buňky H3.
h3_tochildren(h3CellIdExpr, resolutionExpr) Vrátí pole ID podřízených buněk H3 vstupního ID buňky H3 v zadaném rozlišení.
h3_toparent(h3CellIdExpr, resolutionExpr) Vrátí ID buňky H3, která je nadřazená vstupnímu ID buňky H3, v zadaném rozlišení.

Stlačení

Funkce Popis
h3_compact(h3CellIdsExpr) Zkomprimuje vstupní sadu ID buněk H3 co nejlépe.
h3_uncompact(h3CellIdsExpr, resolutionExpr) Rozloží vstupní sadu ID buněk H3 na zadané rozlišení.