Поделиться через


geo_point_to_s2cell()

Область применения: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Вычисляет строковое значение строки маркера ячейки S2 географического расположения.

Дополнительные сведения об иерархии ячеек S2. Ячейка S2 может быть полезным инструментом геопространственного кластеризации. Ячейка S2 — это ячейка на сферической поверхности и имеет геодесесные края. Ячейки S2 являются частью иерархии, разделяющей поверхность Земли. Они имеют максимум 31 уровней, начиная от нуля до 30, которые определяют количество раз, когда ячейка разделена. Уровни варьируются от самого большого охвата на уровне нуля с охватом области 85 011 012,19 км2 до наименьшего охвата 0,44 см 30. Так как ячейки S2 разделены на более высоких уровнях, центр ячеек сохраняется хорошо. Два географических расположения могут быть очень близки друг к другу, но они имеют разные токены ячейки S2.

Примечание.

При вызове функции geo_s2cell_to_central_point() в строке маркера ячейки S2, которая вычислялась по долготе x и широте y, функция не обязательно возвращает x и y.

Дополнительные сведения об иерархии ячеек S2.

Синтаксис

geo_point_to_s2cell(широта долготы,, [ уровень ])

Дополнительные сведения о соглашениях синтаксиса.

Параметры

Имя (название) Type Обязательно Описание
longitude real ✔️ Геопространственные координаты, значение долготы в градусах. Допустимое значение — это реальное число и в диапазоне [-180, +180].
latitude real ✔️ Геопространственные координаты, значение широты в градусах. Допустимое значение — это реальное число и в диапазоне [-90, +90].
level int Определяет запрошенный уровень ячейки. Поддерживаемые значения находятся в диапазоне [0, 30]. Если не задано, по умолчанию используется значение 11.

Возвраты

Строковое значение строки маркера ячейки S2 для заданного географического расположения. Если координаты или уровни недопустимы, запрос создает пустой результат.

Приблизительное покрытие области ячейки S2 на значение уровня

Для каждого уровня размер ячейки S2 аналогичен, но не совсем равно. Размеры близлежащих ячеек, как правило, будут более равными.

Уровень Минимальная длина края случайной ячейки (Великобритания) Максимальная длина края случайной ячейки (США)
0 7842 км 7842 км
1 3921 км 5004 км
2 1825 км 2489 км
3 840 км 1310 км
4 432 км 636 км
5 210 км 315 км
6 108 км 156 км
7 54 км 78 км
8 27 км 39 км
9 14 км 20 км
10 7 км 10 км
11 3 км 5 км
12 1699 м 2 км
13 850 м 1225 м
14 425 м 613 м
15 212 м 306 м
16 106 м 153 м
17 53 м 77 м
18 27 м 38 м
19 13 м 19 м
20 7 м 10 м
21 3 м 5 м
22 166 см 2 м
23 83 см 120 см
24 41 см 60 см
25 21 см 30 см
26 10 см 15 см
27 5 см 7 см
28 2 см 4 см
29 12 мм 18 мм
30 6 мм 9 мм

Источник таблицы можно найти в этом статистическом ресурсе S2 Cell.

Сравнение с другими доступными системами сетки см. в геопространственной кластеризации с язык запросов Kusto.

Примеры

События шторма США, агрегированные ячейкой S2

В следующем примере показано, как найти события шторма США, агрегированные ячейками S2.

StormEvents
| project BeginLon, BeginLat
| summarize by hash=geo_point_to_s2cell(BeginLon, BeginLat, 5)
| project geo_s2cell_to_central_point(hash)
| render scatterchart with (kind=map)

Выходные данные

Снимок экрана: отрисовка карты событий шторма США, агрегированных ячейкой S2.

В следующем примере вычисляется идентификатор ячейки S2.

print s2cell = geo_point_to_s2cell(-80.195829, 25.802215, 8)

Выходные данные

s2cell
88d9b

Поиск группы координат

В следующем примере показано, как найти группы координат. Каждая пара координат в группе находится в ячейке S2 с максимальной площадью 1632,45 км 2.

datatable(location_id:string, longitude:real, latitude:real)
[
  "A", 10.1234, 53,
  "B", 10.3579, 53,
  "C", 10.6842, 53,
]
| summarize count = count(),                                        // items per group count
            locations = make_list(location_id)                      // items in the group
            by s2cell = geo_point_to_s2cell(longitude, latitude, 8) // s2 cell of the group

Выходные данные

s2cell count locations
47b1d 2 ["A","B"]
47ae3 1 ["C"]

Пустые результаты

В следующем примере создается пустой результат из-за недопустимых входных данных координат.

print s2cell = geo_point_to_s2cell(300,1,8)

Выходные данные

s2cell

В следующем примере создается пустой результат из-за недопустимых входных данных уровня.

print s2cell = geo_point_to_s2cell(1,1,35)

Выходные данные

s2cell

В следующем примере создается пустой результат из-за недопустимых входных данных уровня.

print s2cell = geo_point_to_s2cell(1,1,int(null))

Выходные данные

s2cell