Tak, wiem, że dzisiaj jest piątek, ale nie mogę się doczekać do przyszłego tygodnia, aby udostępnić te posty #GeospatialTuesday! Jestem tak zachwycony po przeczytaniu Good Things Come Together Mathiasa Kemetera:DBeaver, SAP HANA Spatial &Beer.
Minuta słabości…
Nie tylko piwo zachwyciło mnie w swoim wpisie, ale… Tak, mogę potwierdzić, że Monachium to niemieckie miejsce na piwo. Byłem tam tylko raz w życiu — żeby spotkać się z naszym zespołem (tu z Thomasem Grasslem, Maximilianem Streifenederem, Eshanno Byamem, Mylesem Fenlonem, Mariusem Obertem i Kevinem Muessigiem) latem 2018…
…i cieszyć się bawarskimi piwami?
…ale teraz:wróćmy do sedna
Tym, co naprawdę mnie ucieszyło w tym, co udostępnił Matthias, był wbudowany podgląd danych przestrzennych w DBeaver oraz fakt, że teraz obsługuje on również wyniki SAP HANA!
Widziałeś na moich poprzednich blogach, że musiałem kopiować wyniki przestrzenne z HANA SQL i wklejać je do zewnętrznych wizualizatorów internetowych, a nawet napisać własną wizualizację za pomocą ASCIIart.
Już nie!
Tylko kilka minut zajęło mi zainstalowanie DBeaver, podłączenie go do mojej instancji SAP HANA Express i uruchomienie pierwszych zapytań od razu z podglądem wyników w postaci wizualizacji przestrzennych lub na mapie!
W poprzednim poście załadowałem zestaw danych przestrzennych WORLD_BOARDERS
, więc pobawmy się, aby zrobić trochę GeoArt.
WITH POINTS_GRID AS
(SELECT NEW st_point(glng.generated_period_start, glat.generated_period_start) AS point
FROM
series_generate_decimal(0.3, -88, 88 + 0.3) AS glat
CROSS JOIN series_generate_decimal(0.3, -180, 180 + 0.3) AS glng)
SELECT point FROM POINTS_GRID g, TM.WORLD_BORDERS b
WHERE
b.ISO2 = 'UA'
AND point.st_within(shape)=1;
Teraz przełączam się na podgląd przestrzenny w DBeaver.
Teraz pozwól mi zmienić system odniesienia przestrzennego z Simple
do EPSG:4326
i … bum!! Mam podgląd wyników na mapie!
Nie wiem, czy możesz przeczytać jakie jestem podekscytowany! I jestem!! JESTEM!!!
Skorzystajmy z nowych funkcji geoprzestrzennych SPS04 z wersji 2.0
W poprzednim poście użyłem już nowego klastrowania siatki heksagonalnej. Połączmy to z powyższym zapytaniem i teraz oddajmy hołd Australii.
--Honeycombs
WITH POINTS_GRID AS
(SELECT NEW st_point(glng.generated_period_start, glat.generated_period_start) AS point
FROM
series_generate_decimal(0.3, -88, 88 + 0.3) AS glat
CROSS JOIN series_generate_decimal(0.3, -180, 180 + 0.3) AS glng)
SELECT COUNT(*), ST_ClusterID(), ST_ClusterCell() as "Honeycomb"
FROM (SELECT point FROM POINTS_GRID g, TM.WORLD_BORDERS b
WHERE
b.ISO2 = 'AU'
AND point.st_within(shape)=1)
GROUP CLUSTER BY point
USING HEXAGON X CELLS 30;
Teraz połączmy go z ulepszonym ST_Buffer
metoda, która pobiera nową number_of_interpolation_points
parametr w 2.0 SPS04.
Użyjmy number_of_interpolation_points
parametr równy 3
aby otrzymać mapę Australii złożoną z trójkątów.
--Buffers
WITH POINTS_GRID AS
(SELECT NEW st_point(glng.generated_period_start, glat.generated_period_start) AS point
FROM
series_generate_decimal(0.3, -88, 88 + 0.3) AS glat
CROSS JOIN series_generate_decimal(0.3, -180, 180 + 0.3) AS glng)
SELECT ST_ClusterCell().ST_Centroid().ST_Buffer(0.4, 3) as "Buffer"
FROM (SELECT point FROM POINTS_GRID g, TM.WORLD_BORDERS b
WHERE
b.ISO2 = 'AU'
AND point.st_within(shape)=1)
GROUP CLUSTER BY point
USING HEXAGON X CELLS 30;