Подход к обнаружению и устранению артефактов пространственных изолиний в приложениях Веб-ГИС
А.В. Воробьев1'3, Г.Р. Воробьева 2,3 1 Геофизический центр РАН, 119296, Россия, г. Москва, Молодежная, д. 3;
2 Институт космических исследований РАН, 117997, Россия, г. Москва, ул. Профсоюзная, д. 84/32;
3 ФГБОУ ВО Уфимский университет науки и технологий, 450076, Россия, г. Уфа, ул. Заки Валиди, д. 32
Аннотация
Одной из распространенных проблем современных геоинформационных веб-ориентированных библиотек и интерфейсов при построении пространственных изолиний является присутствие в результирующем наборе множественных артефактов, в частности, разомкнутых линий уровня. Как следствие, сформированный набор пространственных изолиний после процедуры веб-рендеринга затрудняет анализ пространственного распределения соответствующих параметров, с одной стороны, и снижает качество рендеринга пространственного изображения, с другой. При этом особенно критичны артефакты пространственных изолиний для больших объемов данных. В работе предложен подход, позволяющий выполнить корректировку программно сформированных изолиний посредством идентификации разомкнутых линий и их последующего выборочного соединения либо замыкания. С точки зрения программной реализации представленный подход практически не изменяет времени отклика серверных сценариев. Эффективность разработанного подхода была подтверждена на примере веб-приложения, обеспечивающего визуализацию геопространственного изображения в виде комплекса пространственных изолиний геофизических параметров в области аврорального овала.
Ключевые слова: пространственные изолинии, геоинформационные технологии, веб-рендеринг, артефакты геопространственных изображений.
Цитирование: Воробьев, А.В. Подход к обнаружению и устранению артефактов пространственных изолиний в приложениях Веб-ГИС / А.В. Воробьев, Г.Р. Воробьева // Компьютерная оптика. - 2023. - Т. 47, № 1. - С. 126-136. - DOI: 10.18287/2412-6179-CO-1127.
Citation: Vorobev AV, Vorobeva GR. An approach to detecting and eliminating spatial contour artifacts in Web GIS applications. Computer Optics 2023; 47(1): 126-136. DOI: 10.18287/2412-6179-CO-1127.
Введение
Одним из широко распространенных и эффективных решений по визуализации пространственных данных является подход, основанный на формировании и рендеринге изолиний по заданным входным параметрам. При этом под пространственной изолинией традиционно понимается условное изображение на плоской или трехмерной карте, представляющее собой линию, в каждой точке которой измеряемая величина сохраняет одинаковое значение [1].
Фактически набор изолиний представляет собой не более, чем удобный способ представления на поверхности (как правило, на плоскости) скалярной функции от двух переменных.
Иными словами, пространственная изолиния для данных в системе пространственных координат (х, у) представляет собой такое геометрическое место точек на поверхности, что каждой из его точек соответствует значение х0 атрибутивного параметра г, а в любой своей окрестности они имеют другие точки с меньшим значением того же атрибутивного параметра:
1хо = {(х, у ) (х, у ) =
I I (1)
= г0,Уе > 0: 3(х,у): I (х,у),(х,у)1< е, х(х,у)< х0},
где 1х0 - изолиния в координатной системе (х, у) со значением атрибутивного параметра г, равным х0; (х,у) - значения координат в заданной системе; е -произвольное значение, численно меньшее, чем х0; х (х, у) - значение атрибутивного параметра в точке с координатами (х, у).
Получаемый при этом набор замкнутых кривых достаточно полно характеризует картину пространственного распределения обрабатываемых пространственных данных. По этой причине такие решения часто применяются при картографировании природных и социально-экономических явлений; могут быть использованы для получения их количественной характеристики и для анализа корреляционных связей между ними. Ярким примером тому является представление пространственных данных, характеризующих вероятность наблюдения полярных сияний в ав-роральных зонах северного и южного полушарий Земли соответственно. Входными данными является множество пространственных точек, образующих в
совокупности покрывающую всю земную поверхность регулярную сетку. При этом каждая из указанных пространственных точек представляет собой тройки значений вида
I = < х, y, z >,
(2)
где х и у - географические широта и долгота пространственной точки, г - атрибутивный параметр, значение которого характеризует вероятность наблюдения сияния в соответствующей пространственной точке в заданный момент времени.
Совокупность изолиний по некоторым исходным пространственно-атрибутивным данным показывает, как значения последних меняются на поверхности. Изолинии расположены близко друг к другу в случае быстрого изменения (убывания или возрастания) исследуемых значений. При этом изолинии, характеризующие одну и ту же величину, могут сливаться на карте, если подходят очень близко друг к другу, но никогда не пересекаются.
Современные геоинформационные технологии массово поддерживают в своей функциональности построение и визуализацию изолиний, ориентируясь преимущественно на десктопный формат построения пространственных изображений на основании локальных данных с набором пространственных точек с заданными значениями атрибутивного параметра. Среди наиболее распространенных программных решений, реализующих механизм построения изоли-
ний, можно отметить, в частности, такие пакеты, как АгсОК, 0018 и др.
Несколько иначе обстоит ситуация с программными библиотеками обработки пространственных данных, реализующими построение и визуализацию пространственных изолиний (табл. 1).
Проведенный анализ показал, что существующие программные решения не лишены недостатков, из которых одним из наиболее серьезных является появление в сформированных изолиниях так называемых артефактов. Визуально такие артефакты проявляются в наличии в пространственном изображении разомкнутых изолиний, затрудняющих анализ пространственных данных.
1. Формализация задачи поиска и построения изолиний
Для уточнения используемой в работе терминологии представляется целесообразным отметить следующее. Известно, что в картографии под изолинией понимается кривая, соединяющая точки равного значения высоты. Кроме того, примечательно, что в различных прикладных областях именование изолиний может отличаться. Так, к примеру, изолиния одинаковых мощностей пласта горных пород обозначается как «изопахита». Другой пример - изолиния одинакового выпадения атмосферных осадков, известная как «изогиета». Известна также «линия одинаковых среднегодовых скоростей ветра» - линия одинаковых среднегодовых скоростей ветра и т.д.
Табл. 1. Сравнительный анализ программных библиотек /API для формирования пространственных изолиний
в веб-ориентированной среде
Название Язык программирования Недостатки Формат слоя
matplotlib Python - требуется дополнительная обработка для формирования слоя, - артефакты в виде разомкнутых изолиний, - требуется фильтрация для устранения шума Объект pyplot.contour
turf.j s JavaScript - хранение только в кэше в сеансе пользователя, - требуется дополнительная обработка для формирования слоя, - не поддерживается фильтрация, как результат - зашумленное изображение Объект turf.isolines
py Vista Python - невозможно применение на стороне клиента из-за специфического формата результата, - ориентирован на десктопные приложения Объект pyVista.isolines
Geoapify Location Platform JavaScript - предназначен для построения маршрутов вокруг заданной локации Json
HERE Isoline Routing API JavaScript - предназначен для построения маршрутов вокруг заданной локации json
С учетом такого разнообразия наименований здесь и далее представляется целесообразным придерживаться единого термина «изолиния» как обозначающего кривые, соединяющие точки с равными значениями некоторого атрибутивного параметра.
Известно, что задача построения изолиний может быть сформулирована следующим образом. Пусть изолиния Zx,y представляет собой решение уравнения вида F (x, y) = const на области задания F (x, y). При
этом функция при построении изолинии задается не аналитически, а, как правило, в виде дискретного множества конечных числовых значений.
Для пересечения двух функций 21 = F (х, у) и = Ф (х, у) на области их задания проекции их линий могут быть описаны уравнением вида:
F (х, у) = Ф (х, у). (3)
При этом для каждой функции Р (х, у) = F (х, у) -Ф (х, у) выполняется соотношение следующего вида:
P (x, y) = F (x, y) - Ф (x, y);
Zi n Z2= F(x,y) = Ф (x,y); P (x,y) = 0. (4)
В случае рассмотрения пространственных линий пересечения двух поверхностей L того же вида являются решением уравнения (4). Для всех значений (x', y'), для которых выполняется выражение (4), поверхность L возможно выразить через F (x, y) и / или Ф (x, y) следующим образом:
L (x\y') = F(x\y') = Ф(<y'). (5)
В общем виде процесс построения изолинии разбивается на три этапа:
1) поиск изолинии (определение начальной точки на изолинии),
2) отслеживание изолинии (нахождение на изолинии последовательности точек),
3) оформление изолинии (применение заданных настроек визуализации, например, расцвечивание пространственных изолиний в соответствии с некоторой шкалой, расстановка поясняющих подписей и пр.).
Для построения изолиний используются, как правило, подходы на основе известных методов интерполяции. К примеру, широкое распространение получило построение пространственных изолиний посредством линейной интерполяции имеющихся значений атрибутивного параметра, что демонстрирует наибольшую эффективность для плотной регулярной прямоугольной сетки. При этом для повышения информативности указанного метода из него исключаются все незамкнутые линии. В результате для пространственного рендеринга используются исключительно замкнутые линии, лежащие целиком внутри области определения функции двух переменных F (x, y) (в случае пространственных данных переменные x, y определяют географические координаты, соответственно широту и долготу).
Двумерная сетка разбивает область определения функции F (x, y) на прямоугольные ячейки следующим образом:
Xi-i < X < X,.; Yj_i < Y < Yj. (6)
В случае определения функции Z на ребрах ячейки с координатами (X, Yj) методом линейной интерполяции будут сформированы изолинии, которые проходят через точки пересечения отрезков функции на ребрах ячеек с плоскостями Z = consta, где consta представляет собой некоторое фиксированное к-е значение для построения соответствующей изолинии.
На начальном этапе построения изолиний выполняется поиск всех незамкнутых линий уровня, т. е. таких, которые начинаются и заканчиваются на границе области определения рассматриваемой функции двух переменных. Для каждой незамкнутой изолинии ведется поиск начальной точки, после чего изолиния отслеживается до ее выхода на границу области
определения функции. После обнаружения и построения всех незамкнутых изолиний осуществляется последовательный перебор всех горизонтальных ребер ячеек для выявления точек, принадлежащих замкнутым изолиниям. После их нахождения осуществляется отслеживание изолинии до ее возврата в обнаруженную начальную точку. После построения всех линий уровня, соответствующих одному значению уровня, осуществляется переход к построению изолиний со следующим значением из заданного множества.
В подавляющем большинстве случаев при программной ГИС-реализации механизма построения изолиний применяется метод сплайн-интерполяции (в частности, кубический сплайн). Под сплайном здесь понимается кусочная функция, составленная из определенного числа многочленов невысокой степени и имеющая как минимум одну непрерывную производную [2].
Суть метода построения изолинии на основе сплайн-интерполяции сводится к расчету значений ячеек координатной сетки на основе математической функции, которая минимизирует кривизну поверхности и определяет наиболее ровную поверхность, проходящую через все точки измерений [1]. При этом в результате сплайнового приближения к исходной функции двух переменных полученная интерполяционная кривая получается математически «гладкой» [2], что подразумевает возможность ее функциональной дифференцируемости. Элементы кусочной функции соединяются между собой в узлах сетки до разной степени гладкости, начиная с того, что допускаются разрывы непрерывности до нескольких производных [2].
На последнем этапе построения изолинии выполняется определение вариантов ее визуализации. Применительно к геоинформационным системам и технологиям, в картографических приложениях предполагается выбор / настройка таких параметров, как тип и толщина линии, ее цвет, наличие / отсутствие так называемой числовой штамповки (числовое значение около линии контура или непосредственно в ней). Параметры визуализации изолиний могут быть заданы как на уровне формата представления линий уровня (например, в вео^ОМ), так и непосредственно в том приложении, которое их использует.
2. Общая характеристика аномалий пространственных изолиний
Проведенный анализ показал, что наборы пространственных изолиний при визуализации на картографической подложке могут сопровождаться так называемыми артефактами - визуальными искажениями пространственных линий, затрудняющими их анализ и интерпретацию. Они могут быть обусловлены как несовершенством алгоритмов и программных библиотек построения пространственных изолиний, так и ограниченными возможностями средств визуа-
лизации с учетом реактивности приложений, скорости рендеринга, используемой проекции и пр. [3, 4].
Были выделены два наиболее часто встречающихся вида артефактов изолиний - разрывы, обнаруживающие себя в незамкнутых изолиниях, и шумы, сопровождающиеся представлением изолинии в форме выраженной ломаной (пространственной полилинии).
Незамкнутые пространственные изолинии формируются в том случае, если в результате работы алгоритма построения линии уровня между начальной и конечной точками сформированного графического примитива отсутствуют промежуточные точки. Соответственно, в обобщенном виде задача устранения такого типа артефактов сводится к обнаружению незамкнутых изолиний путем сопоставления количества пар пространственных точек и соединяющих их отрезков. В случае обнаружения незамкнутых изолиний требуется достроить линию уровня, соединяющую соответствующие крайние пространственные точки. При этом возможны два основных подхода: недостающие точки можно отстроить одним из методов интерполяции, либо применить полученную аналитическим путем функцию аппроксимации. При этом в случае применения первого из обозначенных подходов представляется целесообразным анализ пространственной анизотропии исходных данных для определения метода интерполяции, наилучшим образом учитывающего такую вариабельность.
Другой выделенный артефакт - «ступенчатость» пространственных изолиний - во многом определяется недостаточным количеством исходных пространственных точек, на основании атрибутивных значений которых выполняется алгоритм построения линий уровня. Пространственная изолиния выстраивается вдоль базовой регулярной сетки, в узлах которой размещаются исходные пространственные точки с соответствующими атрибутивными значениями. В случае, если количество исходных точек не совпадает с количеством узлов смоделированной для визуализации пространственной сетки, то формируется изолиния, фрагментарно повторяющая линии ее прямоугольных ячеек, в результате появляются характерные для такой изолинии «заломы». Для решения выявленной проблемы необходимо применить к сформированным пространственным изолиниям фильтр, что на программном уровне может быть также реализовано с применением геоинформационных технологий. При этом применение сглаживающих фильтров должно быть выполнено в соответствии с особенностями пространственного распределения обрабатываемых данных (с учетом соответствующей анизотропии), а также используемых картографических проекций.
Также представляется целесообразным отметить, что на качество визуализации пространственных изолиний непосредственное влияние оказывает формат соответствующих атрибутивных значений [5]. Если формируемый по результатам обработки исходных
данных домен обнаруживает большое количество значений (к примеру, сопоставимое с размером массива исходных данных), то формируемые в результате пространственные изолинии в своем количестве приведут к построению визуально перегруженного изображения [6]. Последнее, в свою очередь, будет плохо восприниматься конечным пользователем, с одной стороны, а также приведет к снижению скорости рендеринга пространственного картографического изображения, к примеру, в окне браузера [7 - 8], с другой.
3. Методика соединения незамкнутых пространственных изолиний
Предлагается условное выделение двух видов разрывов в пространственных изолиниях, на устранение которых направлена рассматриваемая методика. Для этого все множество точек каждой изолинии разбивается на пары, при этом отдельно рассматривается пара, состоящая из начальной и конечной точек изолинии.
Разрыв первого типа имеет место в случае, если для произвольно выбранного фрагмента полилинии его конечная точка не совпадает с начальной точкой ближайшего фрагмента, следующего за рассматриваемым фрагментом полилинии (и наоборот: для произвольно выбранного фрагмента полилинии его начальная точка не совпадает с конечной точкой ближайшего фрагмента, предшествующего рассматриваемому фрагменту полилинии). В одной изолинии может присутствовать несколько разрывов первого типа. Для устранения разрыва такого типа необходимо соединить начальную и конечную точки соседних фрагментов в последовательности, дополнив изолинию синтезированными фрагментами. При этом во избежание дополнительных артефактов вводятся промежуточные точки, метод расчета которых приводится ниже.
Разрыв второго типа проявляется, если в изолинии не совпадают ее начальная и конечная точки. Для устранения такого типа разрывов предлагается два варианта решения: замкнуть разомкнутую изолинию на себя или соединить ее с ближайшей разомкнутой изолинией того же уровня. Здесь и далее изолинии с разрывом второго типа будем называть разомкнутыми.
Итак, для устранения артефактов, выраженных разомкнутостью пространственных изолиний, предлагается соединить их между собой. Очевидно, что соединение пространственных изолиний возможно только в случае, если им соответствует одно и то же значение уровня. Поэтому на начальном этапе предложенной методики необходимо объединить имеющиеся пространственные изолинии в группы на основании соответствующего каждой из них значения.
Для каждой сформированной группы изолиний выполняется процедура последовательного перебора с целью выявления незамкнутых изолиний, у которых не совпадают начальная и конечная точки. Для каждой обрабатываемой изолинии (в случае, если она
идентифицирована как незамкнутая) выполняется поиск другой незамкнутой изолинии в той же группе, причем из множества доступных выбирается та, расстояние до которой от исходной является наименьшим. Пара выделенных незамкнутых изолиний соединяется, образуя одну замкнутую пространственную изолинию. Аналогичные действия выполняются для всех разомкнутых изолиний в каждой группе.
Одной из проблем, имеющих место в рамках предложенной методики устранения артефактов разомкнутости изолинии, является поиск пространственно ближайшей изолинии. Формируемые из исходных пространственных данных изолинии с артефактами указанного типа в большинстве своем имеют сложную геометрическую форму, что затрудняет расчет соответствующих значений.
Рассмотрим две разомкнутые изолинии А и В. Пусть д1 и д2 - пространственные точки, обозначающие соответственно начало и конец изолинии А; Ь1 и Ь2 - пространственные точки, обозначающие соответственно начало и конец изолинии В. Для каждой из 4 выделенных пространственных точек необходимо рассчитать следующие расстояния:
- расстояние ¿1 между началом изолинии А и началом изолинии В:
и = |д1 - Ы (7)
- расстояние Ь2 между началом изолинии А и концом изолинии В:
¿2 = |а1 - Н (8)
- расстояние Ь3 между концом изолинии А и концом изолинии В:
¿з = |а2 - Н (9)
- расстояние ¿4 между концом изолинии А и началом изолинии В:
¿4 = |а2 - Ы (10)
Введем определение внутреннего расстояния незамкнутой пространственной изолинии как расстояния между ее начальной и конечной точками. Тогда
Ва = |а1 - д2|, Вв = |Ь - Ь2|, (11)
где ВА и Вв - внутреннее расстояние для изолиний А и В соответственно.
На следующем шаге из значений, полученных в результате вычисления выражений (5 - 8), выбирается наименьшее ¿:
I = шт(иь ¿2, ¿з, ¿4}. (12)
На следующем шаге полученное значение Ь сравнивается с внутренними расстояниями ВА и Вв пространственных изолиний А и В соответственно. Если выполняется соотношение
Ь < Ва и Ь < Вв, (13)
то пространственные изолинии А и В считаются достаточно близкими для соединения.
Если на предшествующих итерациях перебора пространственных изолиний относительно исходной линии ближайшей изолинии не было обнаружено, то для рассматриваемой пространственной изолинии А принимаем в качестве таковой изолинию В, и наоборот.
Если на предшествующих итерациях также была определена ближайшая к исходной линии изолиния С, то определяем в соответствии с выражениями (7 -12) наименьшее расстояние V между идентифицированной как ближайшая изолиния В по отношению к исходной А, а также расстояние Ь" между ближайшей С и исходной А. Если V < Ь", то в качестве ближайшей к исходной А принимается рассматриваемая пространственная изолиния В.
Аналогичным образом завершаем итерации поиска ближайшей к А изолинии на основании всех имеющихся в массиве незамкнутых изолиний.
При этом в случае отсутствия ближайшей изолинии соответствующая разомкнутая линия уровня замыкается на себя и удаляется из набора изолиний с артефактами, пополнив массив корректных изолиний.
После формирования пар соседствующих пространственных изолиний необходимо их соединить, т.е. сформировать замкнутую линию контура из двух разомкнутых. Каждая пространственная изолиния представляет собой полилинию, составленную последовательностью пар пространственных точек, представленных соответственно парами «географическая широта - географическая долгота». В этой связи задача соединения пары разомкнутых линий заключается в объединении соответствующих массивов пространственных точек, в результате которого должна быть сформирована единая пространственная полилиния. Сложность решения поставленной задачи заключается в том, что простая конкатенация двух массивов пространственных точек может привести к ложному результату. Очевидно, что заданная последовательность координат не будет нарушена только в том случае, если необходимо соединить начало одной линии с концом другой, и наоборот. Однако если требуется соединение линий по их начальным точкам (или по их конечным точкам), то необходимо реверсировать один из массивов, т.е. развернуть его в обратную сторону.
Пусть исходная изолиния задана массивом пар координат следующего вида:
(х1 у1, х2 у2, х3 у3,..., хп -у -2, хп -1 уп -1, хп уП), (14)
а ближайшая к ней пространственная линия контура определяется следующим массивом координат:
(х'1 у'1, х'2у'2, х'3у'3,., х'п -2Уп -2, х\ -1 Уп -1, х\Уп). (15)
Для более детального рассмотрения предложенных решений представляется целесообразным описать 4 возможные ситуации соединения пар разомкнутых изолиний:
1. Соединение начальной точки исходной и начальной точки ближайшей к ней пространственной изолинии:
- реверсирование массива координат исходной
линии:
(хи уп, хп -1 уп -1, х„ -2у„ -2,- •., хзуз, х2у2, х1 уО, (16)
- формирование нового массива координат вида:
(хп уп, хп -1 уп -1, хп -2уп -2,-, хз уз, х2у2,
х1 у1, х'1 у':, х'2у'2, х'зу'з,-, х\ -2у'п -2,
х\ -1 у'п -1, х'п у'п). (17)
2. Соединение конечной точки исходной и конечной точки ближайшей к ней пространственной изолинии:
- реверсирование массива координат ближайшей к исходной линии:
(х'п у'п, х'п -1 у'п -1, х'п -2 у'п -2,-, х'з у'з, х'2 у'2, х'1 у'1), (18)
- формирование нового массива координат вида:
(х1 у1, х2 у2, хз уз,-, хп -2 уп -2, хп -1 уп -1,
хпуп х пу n, х п -1у п -1, х п -2у п -2-1- • ••!
х'з у'з, х'2 у'2, х'1 у'1). (19)
3. Соединение начальной точки исходной и конечной точки ближайшей к ней пространственной изолинии:
- формирование нового массива координат вида:
(х'1 у'1, х'2 у'2, х'з у'з,-, х'п -2 у'п -2,
х'п -1 Уп -1, х'п у'п, х1 у1, х2 у2, хз уз,-,
хп -2уп -2, хп -1 уп -1, хпуп). (20)
4. Соединение конечной точки исходной и начальной точки ближайшей к ней пространственной изолинии:
- формирование нового массива координат вида:
(х1 у, х2 у2, хз уз,-, хп -2 уп -2,
хп -1 уп -1, хп уп, х\ у'1, х'2 у'2, х'з у'з,-,
х'п -2у'п -2, х\ -1 у'п -1, х\у'п). (21)
Прямое соединение двух массивов координат может привести к появлению дополнительных артефактов, связанных с тем, что расстояние между соединяемыми точками незамкнутых изолиний превышает максимальное расстояние между отдельными точками. В результате в пространственной изолинии могут наблюдаться нехарактерные выраженные «заломы» в местах соответствующего соединения. Для того, чтобы не допустить появление таких артефактов, необходимо ввести промежуточные точки, размещаемые между соединяемыми массивами координат исходной и ближайшей к ней незамкнутой пространственной изолинии.
Для соблюдения баланса расстояния между точками требуется определить точки на середине отрезка, соединяющего точки исходной и ближайшей к ней незамкнутой пространственной изолинии. Для вы-
числения середины отрезка используется следующее выражение:
Bx = cos ф2 • cos ДА,
By = cos Ф2 • sin ДА,
фт = atan2(sin ф + sin ф2 , ^((cos ф + Bx )2 + By2),
Ат = А1 + atan2(By ,cos ф + Bx), (22)
где ф1, А1 - соответственно широта и долгота начальной точки, ф2, А2 - соответственно широта и долгота конечной точки, т - индекс пространственной точки на середине прямой, соединяющей начальную и конечную точки.
Для того, чтобы определить количество промежуточных точек, размещаемых на полилинии, соединяющей начальную и конечную точки, представляется целесообразным использовать выражение следующего вида:
X = log2 (dist / F), (23)
где dist - расстояние между начальной и конечной точками (по дуге большого круга), F - частота размещения промежуточных точек (0 < F < 1).
Представляется целесообразным отметить, что частота размещения пространственных точек на данный момент определяется опытным путем и зависит от программной технологии (библиотеки или API), используемой для рендеринга геопространственного изображения. Так, к примеру, было установлено, что для ArcGIS API в формате виртуального глобуса значение F составляет 50. Соответственно, для иных технологий это значение может варьироваться.
Промежуточные точки рассчитываются каждый раз при формировании замкнутой пространственной изолинии из пары разомкнутых. Начальная и конечная точка полилинии определяются точками исходных изолиний, которые соединяются прямой. Соответственно, результирующий массив пространственных точек будет представлять собой объединение (при необходимости с реверсированием) точек исходной изолинии, промежуточных точек и точек ближайшей изолинии (также при необходимости с реверсированием) с последующим замыканием (при необходимости) синтезированных граничных точек изолинии.
Аналогичным образом выполняется соединение точек, непосредственно граничащих с разрывом первого типа для пространственной изолинии.
4. Алгоритм идентификации и устранения артефактов изолиний
В общем виде алгоритм обнаружения и устранения артефактов пространственных изолиний предполагает выполнение на этапе, последующем за процедурой формирования непосредственно множества линий уровня из исходных пространственных данных. В ка-
честве последних могут выступать, в частности, данные, представленные в форматах CSV, JSON, XML, а также основанных на них специфических форматах, применяемых в конкретных научных и прикладных областях, например, IAGA2002 для геомагнитных наблюдений и пр. [9 - 13]. При этом важно отметить, что в JSON-подобных форматах представления геоданных (GeoJSON, к примеру) требования к полилиниям таковы, что не допускается нарушение последовательности точек в них. В случае изолиний и согласно обозначенным выше видам разрывов в GeoJSON возможны разрывы второго типа, но недопустимы самой спецификацией формата разрывы первого типа.
В общем виде алгоритм предусматривает выполнение нескольких укрупненных вычислительных процессов при работе с заданным массивом изолиний:
• анализ изолиний на предмет выявления разрывов первого и второго типов (рис. 1);
• устранение разрывов первого типа изолиний путем соединения фрагментов с введением промежуточных точек;
• формирование массива разомкнутых пространственных изолиний как изолиний с разрывами второго типа;
• подбор для каждой разомкнутой изолинии парной к ней ближайшей незамкнутой изолинии;
• замыкание незамкнутых изолиний, для которых не была подобрана парная ближайшая линия уровня, на себя с введением промежуточных точек;
• формирование нового массива пространственных изолиний без артефактов.
Рис. 1. Алгоритм идентификации разрывов изолиний
Каждый из этапов в общем виде представляет собой вычислительный подпроцесс, оперирующий массивом пространственных изолиний на входе и формирующий некоторый промежуточный или результи-
рующий массив пространственных линий уровня на входе. При этом выполнение вычислительных операций осуществляется без привязки к системе координат: соответствующие пространственные координаты
для атрибутивных данных могут быть представлены в любой известной системе координат: геоцентрические, геомагнитные, квазигеоцентрические, топоцен-трические, гелиоцентрические и пр.
Алгоритм поиска и устранения артефактов пространственных изолиний рекомендуется проводить в качестве превентивной меры к любым процессам визуализации пространственных данных в виде совокупности линий уровня. Если обрабатываемое множество пространственных изолиний не обременено артефактами, то в предложенном алгоритме на первом этапе выполнения будет сформирован пустой массив пространственных линий уровня с разрывами, что приведет к останову выполнения последующего вычислительного подпроцесса алгоритма и не изменит обрабатываемый набор пространственных данных.
В качестве замечания касательно выполнения алгоритма в веб-ориентированной среде представляется более предпочтительным перенести его программную реализацию преимущественно на сторону веб-сервера (серверные сценарии) ввиду высоких вычислительных затрат на выполнение операций (проведенные вычислительные эксперименты подтвердили справедливость сказанного, особенно к файлам с числом изолиний, превышающим Э5). При этом наиболее требовательным к ресурсам являются операции, связанные с поиском ближайших изолиний и их соединением с вычислением промежуточных точек.
Подпроцесс поиска незамкнутых изолиний предполагает последовательный перебор всех изолиний в заданном входном массиве, выделение из них тех, для которых не совпадают начальная и конечная точки, с последующей записью последних в сформированный промежуточный массив.
Для сформированного массива разомкнутых линий уровня последовательно выполняется процедура поиска ближайшей к ней изолинии (рис. 2а). Для этого обрабатываемая пространственная изолиния перемещается в начало массива изолиний независимо от ее текущего расположения. Далее выполняется в цикле перебор всех оставшихся изолиний, при этом потенциальные ближайшие к обрабатываемой линии уровня изолинии помещаются в буферный массив. На следующем этапе среди образующих буферный массив изолиний выбирается та, что наиболее близко расположена к текущей в данной итерации цикла изолинии. Выделенные пространственные изолинии помечаются парными, удаляются из исходного массива разомкнутых изолиний и помещаются в новый массив, в котором размещаются все выделенные пары пространственных линий уровня.
На последующем этапе входные данные представлены уже массивом парных пространственных изолиний. Выполняется последовательный перебор всех пар разомкнутых изолиний, при этом формируется одна замкнутая пространственная изолиния. В
зависимости от того, как именно соединяются две пространственные изолинии (положение их начальных и конечных точек в результирующей полилинии) выбирается один из вариантов объединения массивов пространственных точек. При этом во избежание дополнительных артефактов дополнительно генерируются и промежуточные точки, координаты которых рассчитываются по описанным выше выражениям (рис. 2 б).
На завершающем этапе все сформированные пространственные изолинии объединяются с выделенным из исходных пространственных данных на начальном этапе массивом линий уровня без артефактов. В результате исходный набор пространственных изолиний, содержащих как замкнутые, так и разомкнутые линии уровня, заменяется на новый массив, содержащий только замкнутые пространственные изолинии, пригодные для последующего рендеринга с использованием технологий веб-ГИС.
5. Приложения и оценка эффективности предложенного метода
Предложенный метод обнаружения и устранения артефактов пространственных изолиний был реализован и применен в рамках веб-ориентированного ГИС-приложения, обеспечивающего визуализацию геофизических параметров в области аврорального овала, в частности, вероятности наблюдения полярных сияний в пространственных точках.
Исходное множество данных представлено в csv-формате и включает в себя атрибутивные данные с соответствующей геопространственной привязкой. Разработанное веб-приложение «Aurora-forecast» свободно доступно по URL: http://aurora-forecast.ru [14, 15].
Формирование массива пространственных изолиний на основании исходных данных по пространственным точкам реализовано на серверной стороне для снижения нагрузки на пользовательские агенты на стороне клиента веб-приложения. Стек соответствующих программных технологий базируется на применении фреймворка Django, реализующего возможность программирования бизнес-логики приложения на языке Python. Важным преимуществом последнего является поддержка библиотек обработки и статистического анализа геопространственных данных, что в совокупности с широким спектром базовых возможностей языка программирования Python способствует формированию высокотехнологичного базиса для разработки серверных сценариев. Кроме того, благодаря поддержке MVC-архитектуры (Model - View -Controller), веб-приложения на основе фреймворка Django могут быть расширены в область микросервисной архитектуры, что, в частности, позволит применять разработанные серверные сценарии (и их отдельные модули и классы) для обработки пространственных данных при решении иных прикладных задач.
temp = [ J
, 32] У+1(М: 62}
L1 =dst(JI. M) L2 = dist(ji, b2) L3=dst(j2,il0) L4=dst(j2,il0)
mm { LI, L2. LI, L4}
D1 =dst(a1 32)
D2 = dst(i>1 62)
а)
б)
Рис. 2. Схема алгоритма устранения разрывов 2-го типа: а) поиск пар соединяемых линий уровня; б) формирование
промежуточных точек для соединения пар линий уровня
Серверные сценарии в «Aurora-forecast» в контексте формирования набора пространственных изолиний функционируют следующим образом. В вычислительном процессе задействованы три укрупненных программных модуля. Первый из них принимает на вход исходные пространственные данные в csv-подобном формате, выполняет их предварительную обработку (формируется регулярная пространственная сетка с заданным шагом) и генерирует массив пространственных изолиний (используемые библиотеки: numpy, pandas, matplotlib, scipy), который, в свою очередь, трансформируется в поток данных формата geoJSON (используемая библиотека: geojsoncontour). Второй программный модуль на сервере предназначен для обработки артефактов в сформированном geoj son-потоке пространственных изолиний на основе разработанного программного класса anomalies_connecter (выполняется поиск и идентификация аномалий в пространственных изолиниях, соединение ближайших незамкнутых линий уровня и удаление из массива непарных разомкнутых линий).
Третий программный модуль отвечает за устранение шумов в сформированных изолиниях с помощью фильтра низких частот (применяется фильтр Гаусса на базе класса gaussian_filter библиотеки scipy).
Сформированный в результате выполнения набор пространственных изолиний передается в виде geoJSON-слоя, направляемого откликом на клиентскую сторону. Важно отметить, что серверный отклик в формате GeoJSON обеспечивает отсутствие в сформированных изолиниях разрывов первого типа, что позволяет перейти непосредственно к поиску и устранению разрывов второго типа.
Клиентские сценарии приложения «Aurora-forecast» разработаны на основе технологий ArcGIS API for JavaScript, обеспечивающих геопространственную визуализацию в трехмерном режиме (виртуальный глобус) с последующей прорисовкой полученного от сервера пространственного geoJSON-слоя.
На рис. 3 приведены результаты визуализации слоя пространственных изолиний в двух случаях: формирование массива пространственных линий
уровня по исходным данным (рис. 3а) и визуализация изолиний после обнаружения и устранения артефактов (разомкнутых изолиний) (рис. 3б).
Экспериментальные исследования проводились на клиентской стороне с применением ЭВМ (CPU Intel Core i5 10300H ГГц, оперативная память 4 ГБ, скорость интернет-соединения ~52.4 Мбит/с) и на серверной стороне - на базе веб-сервера с процессором 72 * Intel(R) Xeon(R) Gold 6140 CPU @ 2.30GHz. Были проанализированы временные ряды пространственных данных, сформированные для периода с 05.01.2022 г. до 30.03.2022 г. с шагом в 5 минут. В качестве оцениваемого параметра рассматривалась ско-
рость рендеринга пространственного изображения на основании сгенерированных на серверной стороне приложения данных. Была проанализирована реактивность приложения до и после внедрения в серверные сценарии модуля устранения артефактов пространственных изолиний. Установлено, что в среднем время от серверного отклика до клиентского рендеринга в исходном варианте составляет около 9 с, а в модифицированном - около 11 с. Иными словами, вычислительная скорость выполнения процедуры формирования набора пространственных изолиний при внедрении модуля устранения артефактов увеличивается незначительно (порядка 2 - з с).
Рис. 3. Пример визуализации пространственных изолиний в приложении «Aurora-Forecast»
Заключение
Задача программной обработки пространственных данных в условиях современного развития технологий и экспоненциального роста объемов и сложности такой информации приобретает особую актуальность при проектировании информационных систем для поддержки принятия решений в прикладных областях. Тенденции к повсеместному распространению соответствующих инструментально-программных средств для широкого круга пользователей способствуют развитию веб-ориентированных решений такой задачи. Одним из распространенных подходов к визуализации пространственных данных является построение линий уровня, или изолиний. Известны библиотеки, сервисы и API, которые выполняют такое преобразование исходных пространственных данных любого распространенного формата для веб-приложений, причем как на стороне клиента (клиентские сценарии), так и на стороне сервера (серверные сценарии). Вместе с тем опыт использования подобных библиотек показал их эффективное применение на небольших массивах пространственных данных (до 100 - 120 точек с атрибутивными значениями при 5 - 10 уникальных группах). Увеличение объема и усложнение атрибутивных данных приводят к тому, что формирование массива изолиний посредством известных библиотек обычно сопровождается визуальными артефактами (обычно это разомкнутые изолинии), затрудняющими анализ
пространственного распределения соответствующих параметров, с одной стороны, и снижающими качество рендеринга пространственного изображения, с другой.
В работе предложен метод и алгоритм идентификации и устранения артефактов пространственных изолиний. В его основе лежит процесс поэтапного обнаружения разомкнутых изолиний и определения ближайших к ним для формирования замкнутой линии уровня. При этом рассматриваются различные варианты соединения полилиний по начальным и конечным точкам таким образом, чтобы не допустить новых артефактов (посредством расчета и размещения промежуточных точек).
Предложенные метод и алгоритм были реализованы в рамках веб-приложения «Aurora-forecast», предназначенного для визуализации геофизических параметров в области аврорального овала. Формирование массива пространственных изолиний осуществляется на стороне сервера посредством сценариев на языке Python в фреймворке Django. При этом проведенные вычислительные эксперименты показали, что введение дополнительного модуля поиска и устранения артефактов пространственных изолиний практически не сказывается на реактивности веб-приложения в целом. Однако информативность и качество формируемого при этом пространственного изображения повышаются, поскольку в результирующем наборе изолиний отсутствуют разомкнутые, а возникающие шумы устраняются применением фильтров низких частот.
Благодарности
Исследование выполнено при поддержке Российского научного фонда (проект № 21-77-30010).
References
[1] Kurlovich DM. Geoinformation methods of weather analysis and forecasting: study book [In Russian]. Minsk: BGU, 2013.
[2] Yuyukin IV. Spline-interpolation of navigation contours [In Russian]. Vestnik Gosudarstvennogo Universiteta Morskogo i Rechnogo Flota Imeni Admirala S.O. Makarova 2019; 6(58): 1026-1036. DOI: 10.21821/23095180-2019-11-6-1026-1036.
[3] Gorokhov S, Shcherbakova T, Sedov S. Elimination of isoline drift when analysis of the electrocardiosignal of the vehicle driver. 2021 Intelligent Technologies and Electronic Devices in Vehicle and Road Transport Complex 2021: 1-5. DOI: 10.1109/TIRVED53476.2021.9639163.
[4] Djavaherpour H, Mahdavi-Amiri A, Samavati F. Static and dynamic progressive geospatial interlinking. ACM Trans Spat Algorithms Syst 2022; 8(2): 16. DOI: 1145/3510025.
[5] Kumari S, Parmar V. GeoWebCln: An intensive cleaning architecture for geospatial metadata. Quaestiones Geo-graphicae 2022; 41(1). DOI: 10.2478/quageo-2022-0004.
[6] Podany J, Stary V, Tomicek J. 3D surface roughness characteristics for biological applications. Manufacturing Technology 2021; 21(6): 836-841. DOI: 10.21062/mft.2021.096.
[7] Pakdil M, Qelik R. Serverless geospatial data processing workflow system design. ISPRS Int J Geoinf 2021; 11(1): 20. DOI: 10.3390/ijgi11010020.
[8] Traxler C, Hesina G. Interacting with big geospatial data. GIM Int 2017; 31: 19-21.
[9] Kachanov P, Zuev A, Yatsenko K. Method of overlapping geospatial data. Bulletin of the National Technical University «KhPI» Series New solutions in modern technologies 2016; 119. DOI: 10.20998/2413-4295.2016.12.17.
[10] Sun K, et al. Geospatial data ontology: the semantic foundation of geospatial data integration and sharing. Big Earth Data 2019; 3(3): 269-296. DOI: 10.1080/20964471.2019.1661662.
[11] Czarnecki J, Jones M. The problem with open geospatial data for on-farm research. Agric Environ Lett 2022; 7(1): e20062. DOI: 10.1002/ael2.20062.
[12] Figueiredo L, [et al.] MoreData: A geospatial data enrichment framework. Int Conf on Advances in Geographic Information Systems 2021: 419-422. DOI: 10.1145/3474717.3484210.
[13] Horbinski T, Lorek D. The use of Leaflet and GeoJSON files for creating the interactive web map of the preindus-trial state of the natural environment. J Spat Sci 2020; 67(1): 61-77. DOI: 10.1080/14498596.2020.1713237.
[14] Vorobev AV, et al. Short-term forecast of the auroral oval position on the basis of the "virtual globe" technology. Russ J Earth Sci 2020; 20: ES6001. DOI: 10.2205/2020ES000721.
[15] Vorobev AV, et al. System for dynamic visualization of geomagnetic disturbances based on data from ground-based magnetic stations. Sci Vis 2021; 13(1): 162-176. DOI: 10.26583/sv.13.1.11.
Сведения об авторах
Воробьев Андрей Владимирович, 1983 года рождения, в 2006 году окончил магистратуру Уфимского государственного авиационного технического университета по направлению «Электроника и микроэлектроника», доктор технических наук, доцент, работает профессором кафедры геоинформационных систем Уфимского университета науки и технологий, а также старшим научным сотрудником ФГБУН Геофизического центра Российской академии наук (ГЦ РАН). Область научных интересов: цифровая обработка геомагнитных данных, геоин-дуцированные токи, интеллектуальные системы и технологии, геоинформационные системы. E-mail: [email protected] .
Воробьева Гульнара Равилевна, 1983 года рождения, в 2005 году окончила Уфимский государственный авиационный технический университет по специальности «Автоматизированные системы обработки информации и управления», доктор технических наук, доцент, работает профессором факультета информатики и робототехники Уфимского университета науки и технологий, а также ведущим математиком ФГБУН Институт космических исследований РАН. Область научных интересов: геоинформационные системы, веб-технологии, системы хранения и обработки информации. E-mail: [email protected] .
ГРНТИ: 83.77.31
Поступила в редакцию 18 марта 2022 г. Окончательный вариант - 27 июня 2022 г.
An approach to detecting and eliminating spatial contour artifacts
in Web GIS applications
A.V. Vorobev13, G.R. Vorobeva2-3 1 Geophysical Center of RAS, 119296, Moscow, Russia, Molodezhnaya St. 3;
2 Space Research Institute of RAS, 117997, Moscow, Russia, Profsoyuznaya St. 84/32;
3 Ufa University of Science and Technology, 450076, Ufa, Russia, Z. Validi st. 32
Abstract
One of the common problems of modern geoinformation libraries and interfaces when constructing spatial isolines is the presence of multiple artifacts in the resulting set, in particular, open level lines. As a result, the formed set of spatial isolines after the web rendering procedure makes it difficult to analyze the spatial distribution of the corresponding parameters, on the one hand, and reduces the quality of spatial image rendering, on the other. At the same time, artifacts of spatial isolines are especially critical for large amounts of data. The paper proposes an approach that makes it possible to correct software-generated isolines by identifying open lines and their subsequent selective connection. From the point of view of software implementation, the presented approach practically does not change the response time of server scripts. The effectiveness of the developed approach is confirmed by the example of a web application that provides visualization in the form of a set of spatial isolines of geophysical parameters in the auroral oval region.
Keywords: spatial isolines, geoinformation technologies, web rendering, geopspatial image artifacts.
Citation: Vorobev AV, Vorobeva GR. An approach to detecting and eliminating spatial contour artifacts in Web GIS applications. Computer Optics 2023; 47(1): 126-136. DOI: 10.18287/2412-6179-CO-1127.
Acknowledgements: The work was funded by the Russian Science Foundation under project No. 21-77-30010.
Authors' information
Andrei Vladimirovich Vorobev (b. 1983) graduated from Ufa State Aviation Technical University in 2006, majoring in Electronic and Microelectronics, D.Sc. Currently he works as the professor at Geoinformation Systems department in Ufa University of Science and Technology, and as senior researcher in Geophysical Center of RAS, Moscow, Russia. Research interests are digital geomagnetic data processing, geomagnetically induced currents, intelligent systems and technologies, geoinformation systems. E-mail: [email protected] .
Gulnara Ravilevna Vorobeva (b. 1983) graduated from Ufa State Aviation Technical University in 2005, majoring in Automated Systems of Data Processing and Control, D.Sc. Currently she works as the professor at Computer Science and Robotics department in Ufa University of Science and Technology and as leading mathematician in Space Research Institute of RAS, Moscow, Russia. Research interests are geoinformation and web technologies, systems of information storing and processing. E-mail: [email protected] .
Received March 18, 2022. The final version - June 27, 2022.