Udostępnij za pośrednictwem


Funkcje geoprzestrzenne H3

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime

H3 to globalny system indeksowania siatki. Systemy siatkowe używają kształtu, takiego jak prostokąty lub trójkąty, aby pokrywać powierzchnię, którą w tym przypadku jest powierzchnia 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 Databricks w warstwach Databricks SQL pro i bezserwerowych.

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ść i długość geograficzna, tekst znany (WKT), plik binarny znany (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 łączeniem przestrzennym, ale bez potrzeby użycia 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 Delta Lake z sortowaniem według Z-order (na identyfikatorach komórek H3) umożliwia przestrzenne lokalizowanie danych. Ponadto algorytmy pomijania danych Delta Lake używają współlokalizacji, 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 uwzględniana jako widoczna zależność w Databricks Runtime, począwszy od Databricks Runtime 11.2, przy użyciu wersji 3.7.0 biblioteki H3 Java.

Importowanie funkcji Databricks, aby uzyskać H3 (Databricks Runtime)

Nie jest wymagane importowanie dla Databricks SQL i Spark SQL.

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

Funkcja opis
h3_coverash3(geographyExpr, resolutionExpr) Zwraca tablicę identyfikatorów komórek H3 (reprezentowanych jako BIGINT) odpowiadających minimalnemu zestawowi sześciokątów lub pentagonów określonej rozdzielczości, które w pełni obejmują geografię liniową lub powierzchniową.
h3_coverash3string(geographyExpr, resolutionExpr) Zwraca tablicę identyfikatorów komórek H3 (reprezentowanych jako CIĄG) odpowiadających minimalnemu zestawowi sześciokątów lub pentagonów o określonej rozdzielczości, które kompletnie pokrywają liniową lub powierzchniową geografię wejściową.
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), które odpowiadają sześciokątom lub pentagonom o określonym poziomie rozdzielczości, zawartym w podanym obszarze geograficznym.
h3_polyfillash3string(geographyExpr, resolutionExpr) Zwraca ARRAY 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 wejściowej geografii obszarowej.
h3_tessellateaswkb(geographyExpr, resolutionExpr) Zwraca teselację 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 o określonej rozdzielczości, które są zawarte w podanej geografii obszarowej.
h3_try_polyfillash3string(geographyExpr, resolutionExpr) Zwraca tablicę identyfikatorów komórek H3 (reprezentowanych jako CIĄG), odpowiadających sześciokątom lub pentagonom o określonej rozdzielczości, które są zawarte w wejściowym obszarze geograficznym.

Eksport

Funkcja 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 komórki H3 wprowadzanej jako punkt w formacie WKB.
h3_centeraswkt(h3CellIdExpr) Zwraca środek komórki wejściowej H3 jako punkt w formacie WKT.

Konwersje

Funkcja opis
h3_h3tostring(h3CellIdExpr) Konwertuje wejściowy identyfikator komórki H3 na równoważny ciąg szesnastkowy.
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

Funkcja opis
h3_ischildof(h3CellId1Expr, h3CellId2Expr) Zwraca wartość True, jeśli pierwszy identyfikator komórki H3 jest równy drugiemu identyfikatorowi komórki H3 lub jest jego elementem podrzędnym.
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ść

Funkcja opis
h3_isvalid(expr) 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, w przeciwnym razie NULL.
h3_validate(h3CellIdExpr) Zwraca wartość wejściową typu BIGINT lub STRING, jeśli odpowiada prawidłowemu identyfikatorowi komórki H3, lub zgłasza błąd w przeciwnym wypadku.
Funkcja 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ących się w odległości siatki k od identyfikatora komórki pochodzenia.
h3_kringdistances(h3CellIdExpr, kExpr) Zwraca wszystkie identyfikatory komórek H3 (reprezentowane jako długie liczby całkowite lub ciągi) znajdujące się w odległości w siatce k od początkowego identyfikatora komórki H3, wraz z informacją o ich odległości od komórki początkowej.
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

Funkcja 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 komórkę podrzędną o najmniejszej wartości z 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 dzieci komórki H3 dla 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ęszczanie

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