Funkcje geoprzestrzenne H3

Dotyczy:check marked yes Databricks SQL check marked yes Databricks Runtime

H3 to globalny system indeksowania siatki. Systemy siatki używają kształtu, takiego jak prostokąty lub trójkąty, aby tessellate powierzchni, co w tym przypadku jest powierzchnią Ziemi. System H3 został zaprojektowany do używania sześciokątów (i kilku pentagonów) i oferuje 16 poziomów rozdzielczości w hierarchii. W wyższych rozdzielczościach tesselowane kształty są mniejsze.

Wyrażenia H3 są obsługiwane tylko w klastrach z włączoną usługą Photon i magazynach SQL usługi Databricks w warstwach Sql Pro i bezserwerowych usługi Databricks.

Przeczytaj więcej na temat rozwiązań H3 i o pochodzeniu H3.

Zobacz też:

H3 for Geospatial Analytics

H3 obsługuje typowy wzorzec przetwarzania i analizowania danych przestrzennych. Zacznij od indeksowania danych geoprzestrzennych ze standardowych formatów (szerokości i długości geograficznej, dobrze znanego tekstu (WKT), znanego pliku binarnego (WKB) lub geoJSON na identyfikatory komórek H3. Za pomocą pojedynczego zestawu danych można agregować według identyfikatora komórki, aby odpowiedzieć na pytania oparte na lokalizacji. W przypadku wielu indeksowanych zestawów danych można połączyć je przy użyciu identyfikatorów komórek, ujawniając, jak różne zestawy danych odnoszą się do siebie nawzajem. To łączenie zestawów danych jest semantycznie sprzężenia przestrzennego, ale bez potrzeby predykatu przestrzennego.

Jakie są zalety korzystania z usługi H3 w usłudze Databricks?

Korzystaj z funkcji usługi Delta Lake w celu wydajnego przechowywania i układu indeksowanych danych H3. Operacja OPTIMIZE usługi Delta Lake z porządkowania Z (na identyfikatorach komórek H3) umożliwia przestrzenne lokalizowanie danych. Ponadto algorytmy pomijania danych usługi Delta Lake używają współlokacji, aby inteligentnie zmniejszyć ilość danych, które należy odczytać.

Masz elastyczność w sposobie pracy z danymi. Możesz pracować z identyfikatorami komórek H3 przechowywanymi jako duże liczby całkowite lub ciągi. Aby uzyskać najlepszą wydajność przy użyciu identyfikatorów komórek H3, użyj reprezentacji dużej liczby całkowitej. Aby uzyskać szczegółowe informacje na temat używania wyrażeń H3, zapoznaj się z przewodnikiem referencyjnym sql.

Uwaga

Nie trzeba instalować biblioteki H3. Jest on dołączany jako widoczna zależność w środowisku Databricks Runtime, począwszy od środowiska Databricks Runtime 11.2, przy użyciu wersji 3.7.0 biblioteki H3 Języka Java.

Importowanie funkcji usługi Databricks w celu pobrania H3 (Databricks Runtime)

Importowanie danych SQL i Spark SQL nie jest wymagane.

Aby zaimportować funkcje H3 dla języka Python lub Scala w notesach, użyj następujących poleceń:

Python

from pyspark.databricks.sql import functions as dbf

Scala

import com.databricks.sql.functions._

Lista funkcji geoprzestrzennych H3 (Databricks SQL)

Importuj

Function opis
h3_coverash3(geographyExpr, resolutionExpr) Zwraca tablicę identyfikatorów komórek H3 (reprezentowanych jako BIGINT) odpowiadający minimalny zestaw sześciokątów lub pentagonów określonej rozdzielczości, które w pełni obejmują liniową lub arealną geografię.
h3_coverash3string(geographyExpr, resolutionExpr) Zwraca tablicę identyfikatorów komórek H3 (reprezentowanych jako CIĄG) odpowiadający minimalny zestaw sześciokątów lub pentagonów określonej rozdzielczości, które w pełni obejmują liniową lub arealną geografię.
h3_longlatash3(longitudeExpr, latitudeExpr, resolutionExpr) Zwraca identyfikator komórki H3 (jako BIGINT) odpowiadający podanej długości i szerokości geograficznej w określonej rozdzielczości.
h3_longlatash3string(longitudeExpr, latitudeExpr, resolutionExpr) Zwraca identyfikator komórki H3 (jako ciąg szesnastkowy) odpowiadający podanej długości i szerokości geograficznej w określonej rozdzielczości.
h3_pointash3(geographyExpr, resolutionExpr) Zwraca identyfikator komórki H3 (jako BIGINT) odpowiadający podanemu punktowi w określonej rozdzielczości.
h3_pointash3string(geographyExpr, resolutionExpr) Zwraca identyfikator komórki H3 (jako CIĄG) odpowiadający podanemu punktowi w określonej rozdzielczości.
h3_polyfillash3(geographyExpr, resolutionExpr) Zwraca tablicę identyfikatorów komórek H3 (reprezentowanych jako BIGINT) odpowiadających sześciokątom lub pentagonom określonej rozdzielczości, które są zawarte w danych wejściowych są geograficzne.
h3_polyfillash3string(geographyExpr, resolutionExpr) Zwraca tablicę identyfikatorów komórek H3 (reprezentowanych jako CIĄG) odpowiadających sześciokątom lub pentagonom określonej rozdzielczości, które są zawarte w danych wejściowych są geograficzne.
h3_tessellateaswkb(geographyExpr, resolutionExpr) Zwraca tessellation geografii wejściowej przy użyciu komórek H3 w określonej rozdzielczości.
h3_try_polyfillash3(geographyExpr, resolutionExpr) Zwraca tablicę identyfikatorów komórek H3 (reprezentowanych jako BIGINT) odpowiadających sześciokątom lub pentagonom określonej rozdzielczości, które są zawarte w danych wejściowych są geograficzne.
h3_try_polyfillash3string(geographyExpr, resolutionExpr) Zwraca tablicę identyfikatorów komórek H3 (reprezentowanych jako CIĄG) odpowiadających sześciokątom lub pentagonom określonej rozdzielczości, które są zawarte w danych wejściowych są geograficzne.

Export

Function opis
h3_boundaryasgeojson(h3CellIdExpr) Zwraca wielokątną granicę wejściowej komórki H3 w formacie GeoJSON .
h3_boundaryaswkb(h3CellIdExpr) Zwraca wielokątną granicę wejściowej komórki H3 w formacie WKB .
h3_boundaryaswkt(h3CellIdExpr) Zwraca wielokątną granicę wejściowej komórki H3 w formacie WKT .
h3_centerasgeojson(h3CellIdExpr) Zwraca środek wejściowej komórki H3 jako punkt w formacie GeoJSON .
h3_centeraswkb(h3CellIdExpr) Zwraca środek wejściowej komórki H3 jako punkt w formacie WKB .
h3_centeraswkt(h3CellIdExpr) Zwraca środek wejściowej komórki H3 jako punkt w formacie WKT .

Konwersje

Function opis
h3_h3tostring(h3CellIdExpr) Konwertuje wejściowy identyfikator komórki H3 na równoważną reprezentację ciągu szesnastkowego.
h3_stringtoh3(h3CellIdStringExpr) Konwertuje ciąg wejściowy, który ma być ciągiem szesnastkowym reprezentującym identyfikator komórki H3, do odpowiadającej reprezentacji BIGINT identyfikatora komórki H3.

Predykaty

Function opis
h3_ischildof(h3CellId1Expr, h3CellId2Expr) Zwraca wartość true, jeśli pierwszy identyfikator komórki H3 jest równy lub element podrzędny drugiego identyfikatora komórki H3.
h3_ispentagon(h3CellIdExpr) Zwraca wartość true, jeśli wejściowy ciąg BIGINT lub szesnastkowy odpowiada pięciokątnej komórce H3 lub nie.

Poprawność

Function opis
h3_isvalid(wyrażenie) Zwraca wartość true, jeśli dane wejściowe BIGINT lub STRING są prawidłowym identyfikatorem komórki H3.
h3_try_validate(h3CellIdExpr) Zwraca wartość wejściową typu BIGINT lub STRING, jeśli odpowiada prawidłowemu identyfikatorowi komórki H3 lub null w inny sposób.
h3_validate(h3CellIdExpr) Zwraca wartość wejściową typu BIGINT lub STRING, jeśli odpowiada prawidłowemu identyfikatorowi komórki H3 lub generuje błąd w przeciwnym razie.
Function opis
h3_distance(h3CellId1Expr, h3CellId2Expr) Zwraca odległość siatki dwóch wejściowych identyfikatorów komórek H3.
h3_hexring(h3CellIdExpr, kExpr) Zwraca tablicę identyfikatorów komórek H3 tworzących pusty pierścień sześciokątny wyśrodkowany w komórce H3 pochodzenia i znajdujących się w odległości k siatki od komórki początkowej H3.
h3_kring(h3CellIdExpr, kExpr) Zwraca identyfikatory komórek H3 znajdujące się w odległości k (siatki) identyfikatora komórki pochodzenia.
h3_kringdistances(h3CellIdExpr, kExpr) Zwraca wszystkie identyfikatory komórek H3 (reprezentowane jako długie liczby całkowite lub ciągi) w odległości siatki od początkowego identyfikatora komórki H3 wraz z ich odległością k od identyfikatora komórki H3 pochodzenia.
h3_try_distance(h3CellId1Expr, h3CellId2Expr) Zwraca odległość siatki dwóch wejściowych identyfikatorów komórek H3 tej samej rozdzielczości lub NULL, jeśli odległość jest niezdefiniowana.

Przechodzenie

Function opis
h3_maxchild(h3CellIdExpr, resolutionExpr) Zwraca element podrzędny maksymalnej wartości wejściowej komórki H3 w określonej rozdzielczości.
h3_minchild(h3CellIdExpr, resolutionExpr) Zwraca element podrzędny minimalnej wartości wejściowej komórki H3 w określonej rozdzielczości.
h3_resolution(h3CellIdExpr) Zwraca rozdzielczość wejściowego identyfikatora komórki H3.
h3_tochildren(h3CellIdExpr, resolutionExpr) Zwraca tablicę identyfikatorów komórek H3 elementów podrzędnych wejściowego identyfikatora komórki H3 w określonej rozdzielczości.
h3_toparent(h3CellIdExpr, resolutionExpr) Zwraca nadrzędny identyfikator komórki H3 wejściowego identyfikatora komórki H3 w określonej rozdzielczości.

Zagęszczania

Function opis
h3_compact(h3CellIdsExpr) Kompaktuje zestaw danych wejściowych identyfikatorów komórek H3 jak najlepiej, jak to możliwe.
h3_uncompact(h3CellIdsExpr, resolutionExpr) Niekompaktuje zestawu danych wejściowych identyfikatorów komórek H3 do określonej rozdzielczości.