Geoprostorové funkce H3

Platí pro:check marked yes Databricks SQL check marked yes Databricks Runtime

H3 je globální systém indexování mřížky. Systémy mřížky používají tvar, jako jsou obdélníky nebo trojúhelníky, k tessellate 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 podporou Photon a ve službě Databricks SQL Warehouse na úrovních Sql a bezserverových úrovních Databricks.

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 OPTIMALIZACE Delta Lake s řazením Z (na ID buněk H3) umožňuje prostorově společně vyhledávat data. Algoritmy přeskakování dat Delta Lake navíc využívají spolulokálost 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 počínaje 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)

Import

Function 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íku nebo pětiúhelníku zadaného rozlišení, které jsou obsaženy vstupní areální zeměpisná oblast.
h3_polyfillash3string(geographyExpr, resolutionExpr) Vrátí pole ID buněk H3 (reprezentované jako STRING) odpovídající šestiúhelníku nebo pětiúhelníku zadaného rozlišení, které jsou obsaženy vstupní zeměpisná oblast.
h3_tessellateaswkb(geographyExpr, resolutionExpr) Vrátí tessellation vstupní geografie pomocí buněk H3 v zadaném rozlišení.
h3_try_polyfillash3(geographyExpr, resolutionExpr) Vrátí pole ID buněk H3 (reprezentované jako BIGINT) odpovídající šestiúhelníku nebo pětiúhelníku zadaného rozlišení, které jsou obsaženy vstupní areální zeměpisná oblast.
h3_try_polyfillash3string(geographyExpr, resolutionExpr) Vrátí pole ID buněk H3 (reprezentované jako STRING) odpovídající šestiúhelníku nebo pětiúhelníku zadaného rozlišení, které jsou obsaženy vstupní zeměpisná oblast.

Export

Function 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í mnohoúhelník 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

Function 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

Function Popis
h3_ischildof(h3CellId1Expr, h3CellId2Expr) Vrátí hodnotu true, pokud se první ID buňky H3 rovná nebo podřízené druhé ID buňky H3.
h3_ispentagon(h3CellIdExpr) Vrátí hodnotu true, pokud vstupní řetězec BIGINT nebo šestnáctkový řetězec odpovídá pětiúhelníku H3 nebo ne.

Platnost

Function Popis
h3_isvalid(výraz) Vrátí hodnotu true, pokud je vstupní HODNOTA 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.
Function Popis
h3_distance(h3CellId1Expr, h3CellId2Expr) Vrátí vzdálenost mřížky dvou vstupních ID buněk H3.
h3_hexring(h3CellIdExpr, kExpr) Vrátí matici ID buněk H3, která tvoří prázdný šestiúhelník na střed v buňce H3 původu a které jsou ve vzdálenosti k mřížky od původní buňky H3.
h3_kring(h3CellIdExpr, kExpr) Vrátí ID buněk H3, které jsou ve vzdálenosti k (mřížky) 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á.

Traversal

Function Popis
h3_maxchild(h3CellIdExpr, resolutionExpr) Vrátí podřízenou hodnotu maximální hodnoty vstupní buňky H3 v zadaném rozlišení.
h3_minchild(h3CellIdExpr, resolutionExpr) Vrátí podřízenou hodnotu minimální hodnoty vstupní buňky H3 v zadané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 nadřazené buňky H3 vstupního ID buňky H3 v zadaném rozlišení.

Komprese

Function Popis
h3_compact(h3CellIdsExpr) Zkomprimuje vstupní sadu ID buněk H3 co nejlépe.
h3_uncompact(h3CellIdsExpr, resolutionExpr) Nekompatibilní vstupní sadu ID buněk H3 se zadaným rozlišením.