Geospatiala H3-funktioner

Gäller för:check marked yes Databricks SQL check marked yes Databricks Runtime

H3 är ett globalt rutnätsindexeringssystem. Rutnätssystem använder en form, som rektanglar eller trianglar, för att tessellatera en yta, vilket i detta fall är jordens yta. H3-systemet utformades för att använda sexhörningar (och några pentagoner) och erbjuder 16 nivåer av upplösningar i sin hierarki. Vid högre upplösningar är de tesselated formerna mindre.

H3-uttryck stöds endast i Photon-aktiverade kluster och Databricks SQL-lager på Databricks SQL Pro- och serverlösa nivåer.

Läs mer om H3-upplösningar och om H3:s ursprung.

Se även:

H3 för geospatial analys

H3 stöder ett vanligt mönster för bearbetning och analys av rumsliga data. Börja med att indexera geospatiala data från standardformat (latitud och longitud, välkänd text (WKT), välkänd binär (WKB) eller GeoJSON till H3-cell-ID:n. Med en enda datauppsättning kan du aggregera efter cell-ID för att besvara platsdrivna frågor. Med flera indexerade datauppsättningar kan du kombinera dem med hjälp av cell-ID:t, vilket avslöjar hur olika datauppsättningar är relaterade till varandra. Den här sammanfogningen av datauppsättningar är semantiskt en rumslig koppling, men utan behov av ett rumsligt predikat.

Vilka är fördelarna med att använda H3 i Databricks?

Använd Delta Lake-funktioner för effektiv lagring och layout av dina H3-indexerade data. Delta Lake's OPTIMIZE-åtgärd med Z-ordning (på H3-cell-ID:n) gör att du kan samplacera data rumsligt. Dessutom använder Delta Lake-algoritmer för datahopp samlokalitet för att på ett intelligent sätt minska mängden data som behöver läsas.

Du har flexibilitet i hur du arbetar med data. Du kan välja att arbeta med H3-cell-ID:t som lagras som stora heltal eller strängar. Använd den stora heltalsrepresentationen för bästa prestanda med hjälp av H3-cell-ID:er. Detaljerad användning av H3-uttryck finns i SQL-referensguiden.

Kommentar

Du behöver inte installera H3-biblioteket. Det ingår som ett synligt beroende i Databricks Runtime, från och med Databricks Runtime 11.2 med version 3.7.0 av H3 Java-biblioteket.

Importera Databricks-funktioner för att hämta H3 (Databricks Runtime)

Ingen import krävs för Databricks SQL och Spark SQL.

Om du vill importera H3-funktioner för Python eller Scala i notebook-filer använder du följande kommandon:

Python

from pyspark.databricks.sql import functions as dbf

Scala

import com.databricks.sql.functions._

Lista över geospatiala H3-funktioner (Databricks SQL)

Importera

Function beskrivning
h3_coverash3(geographyExpr, resolutionExpr) Returnerar en MATRIS med H3-cell-ID :er (representeras som BIGINT) som motsvarar den minimala uppsättningen sexhörningar eller femhörningar, av den angivna upplösningen, som helt täcker indata linjär eller areal geografi.
h3_coverash3string(geographyExpr, resolutionExpr) Returnerar en MATRIS med H3-cell-ID:er (representeras som STRING) som motsvarar den minimala uppsättningen sexhörningar eller femhörningar, av den angivna upplösningen, som helt täcker indata linjär eller areal geografi.
h3_longlatash3(longitudeExpr, latitudeExpr, resolutionExpr) Returnerar det H3-cell-ID (som en BIGINT) som motsvarar den angivna longitud och latitud vid den angivna upplösningen.
h3_longlatash3string(longitudeExpr, latitudeExpr, resolutionExpr) Returnerar det H3-cell-ID (som en hexadecimal STRÄNG) som motsvarar den angivna longitud och latitud vid den angivna upplösningen.
h3_pointash3(geographyExpr, resolutionExpr) Returnerar det H3-cell-ID (som bigint) som motsvarar den angivna punkten vid den angivna upplösningen.
h3_pointash3string(geographyExpr, resolutionExpr) Returnerar det H3-cell-ID (som en STRÄNG) som motsvarar den angivna punkten vid den angivna upplösningen.
h3_polyfillash3(geographyExpr, resolutionExpr) Returnerar en MATRIS med H3-cell-ID :er (representeras som BIGINT) som motsvarar sexhörningar eller pentagoner, av den angivna upplösningen, som ingår i indatans arealgeografi.
h3_polyfillash3string(geographyExpr, resolutionExpr) Returnerar en MATRIS med H3-cell-ID:er (representeras som STRING) som motsvarar sexhörningar eller femhörningar, av den angivna upplösningen, som finns i indatans arealgeografi.
h3_tessellateaswkb(geographyExpr, resolutionExpr) Returnerar en tessellation av indataområdet med H3-celler vid den angivna upplösningen.
h3_try_polyfillash3(geographyExpr, resolutionExpr) Returnerar en MATRIS med H3-cell-ID :er (representeras som BIGINT) som motsvarar sexhörningar eller pentagoner, av den angivna upplösningen, som ingår i indatans arealgeografi.
h3_try_polyfillash3string(geographyExpr, resolutionExpr) Returnerar en MATRIS med H3-cell-ID:er (representeras som STRING) som motsvarar sexhörningar eller femhörningar, av den angivna upplösningen, som finns i indatans arealgeografi.

Export

Function beskrivning
h3_boundaryasgeojson(h3CellIdExpr) Returnerar polygongränsen för H3-indatacellen i GeoJSON-format .
h3_boundaryaswkb(h3CellIdExpr) Returnerar den polygonala gränsen för H3-indatacellen i WKB-format .
h3_boundaryaswkt(h3CellIdExpr) Returnerar den polygonala gränsen för H3-indatacellen i WKT-format .
h3_centerasgeojson(h3CellIdExpr) Returnerar mitten av H3-indatacellen som en punkt i GeoJSON-format .
h3_centeraswkb(h3CellIdExpr) Returnerar mitten av H3-indatacellen som en punkt i WKB-format .
h3_centeraswkt(h3CellIdExpr) Returnerar mitten av H3-indatacellen som en punkt i WKT-format .

Omvandlingar

Function beskrivning
h3_h3tostring(h3CellIdExpr) Konverterar indata-H3-cell-ID:t till motsvarande hexadecimal strängrepresentation.
h3_stringtoh3(h3CellIdStringExpr) Konverterar indatasträngen, som förväntas vara en hexadecimal sträng som representerar ett H3-cell-ID, till motsvarande BIGINT-representation av H3-cell-ID:t.

Predikat

Function beskrivning
h3_ischildof(h3CellId1Expr, h3CellId2Expr) Returnerar sant om det första H3-cell-ID:t är lika med eller ett underordnat av det andra H3-cell-ID:t.
h3_ispentagon(h3CellIdExpr) Returnerar sant om indatan BIGINT eller hexadecimal STRING motsvarar en femkants H3-cell eller inte.

Giltighet

Function beskrivning
h3_isvalid(expr) Returnerar sant om indata-BIGINT eller STRING är ett giltigt H3-cell-ID.
h3_try_validate(h3CellIdExpr) Returnerar indatavärdet, som är av typen BIGINT eller STRING, om det motsvarar ett giltigt H3-cell-ID eller NULL på annat sätt.
h3_validate(h3CellIdExpr) Returnerar indatavärdet, som är av typen BIGINT eller STRING, om det motsvarar ett giltigt H3-cell-ID eller genererar ett annat fel.
Function beskrivning
h3_distance(h3CellId1Expr, h3CellId2Expr) Returnerar rutnätsavståndet för de två indata-H3-cell-ID:na.
h3_hexring(h3CellIdExpr, kExpr) Returnerar en matris med H3-cell-ID:t som bildar en ihålig sexhörningsring centrerad vid ursprungscellen H3 och som är på rutnätsavstånd k från ursprungscellen H3.
h3_kring(h3CellIdExpr, kExpr) Returnerar de H3-cell-ID:er som ligger inom (rutnät) avstånd k från ursprungscellens ID.
h3_kringdistances(h3CellIdExpr, kExpr) Returnerar alla H3-cell-ID:n (representeras som långa heltal eller strängar) inom rutnätsavståndet k från ursprungscells-ID:t H3, tillsammans med avståndet från ursprungscells-ID:t H3.
h3_try_distance(h3CellId1Expr, h3CellId2Expr) Returnerar rutnätsavståndet för de två indata-H3-cell-ID:na med samma upplösning eller NULL om avståndet är odefinierat.

Traversal

Function beskrivning
h3_maxchild(h3CellIdExpr, resolutionExpr) Returnerar det underordnade värdet för det maximala värdet för indata-H3-cellen med den angivna upplösningen.
h3_minchild(h3CellIdExpr, resolutionExpr) Returnerar det underordnade värdet för den inmatade H3-cellen med den angivna upplösningen.
h3_resolution(h3CellIdExpr) Returnerar upplösningen för indata-H3-cell-ID:t.
h3_tochildren(h3CellIdExpr, resolutionExpr) Returnerar en matris med underordnade H3-cell-ID:t för indata-H3-cell-ID:t med den angivna upplösningen.
h3_toparent(h3CellIdExpr, resolutionExpr) Returnerar det överordnade H3-cell-ID:t för indata-H3-cell-ID:t med den angivna upplösningen.

Packning

Function beskrivning
h3_compact(h3CellIdsExpr) Komprimerar indatauppsättningen med H3-cell-ID så gott som möjligt.
h3_uncompact(h3CellIdsExpr, resolutionExpr) Avkomprifierar indatauppsättningen av H3-cell-ID:t till den angivna upplösningen.