Geoprostorové funkce H3
Platí pro: Databricks SQL 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é:
- Rychlý start H3 (Databricks SQL)
- Příklad geoprostorových funkcí H3
- Abecední pořadí list geospektrálních funkcí H3
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á join, 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 OPTIMIZE Delta Lake s řazením Z (podle ID buněk H3) umožňuje prostorově seskupovat 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 do get 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._
List geoprostorových funkcí H3 (Databricks SQL)
Import
Function | Popis |
---|---|
h3_coverash3(geographyExpr, resolutionExpr) | Vrátí pole ID buněk H3 (reprezentované jako BIGINT) odpovídající minimálnímu set šestiúhelníku nebo pětiúhelníku 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ímu set š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. |
Vzdálenost související
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á. |
Sjezd šikmo
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í. |
Stlačení
Function | Popis |
---|---|
h3_compact(h3CellIdsExpr) | Zkomprimuje vstupní set ID buněk H3 co nejlépe. |
h3_uncompact(h3CellIdsExpr, resolutionExpr) | Rozbalí vstupní ID buněk H3 set na zadané rozlišení. |