=Paper=
{{Paper
|id=Vol-1787/218-223-paper-36
|storemode=property
|title=Эффективные алгоритмы построения и визуализации рельефа Земли и батиметрии Мирового океана
(Efficient algorithms for construction and visualization of the Earth and the bathymetry of the oceans relief)
|pdfUrl=https://ceur-ws.org/Vol-1787/218-223-paper-36.pdf
|volume=Vol-1787
|authors=Anna Fatkina,Vasily Khramushin
}}
==Эффективные алгоритмы построения и визуализации рельефа Земли и батиметрии Мирового океана
(Efficient algorithms for construction and visualization of the Earth and the bathymetry of the oceans relief)==
Эффективные алгоритмы построения и визуализации рельефа Земли и батиметрии Мирового океана А. И. Фатькина1, В. Н. Храмушин2,a 1 Санкт-Петербургский государственный университет, факультет прикладной математики – процессов управления, Санкт-Петербург 2 Сахалинское отделение Российского Научно-технического общества судостроителей им. А.Н. Крылова, Южно-Сахалинск E-mail: a Khram@mail.ru В настоящей работе рассматриваются варианты построения эффективных алгоритмов для обработ- ки, интерполяции и визуализации рельефа Земли и батиметрии Мирового океана, предназначенные для реализации гидрометеорологических информационных систем и прямых вычислительных эксперимен- тов по моделированию гидродинамики океана, шельфовых акваторий и прибрежных мелководий. Пред- ставлены варианты предварительной подготовки цифровых массивов в форматах архитектуры компью- теров типа IBM-PC, а также гигантских объемов данных (порядка 15 Гб) в исходных форматах NetCDF с аппаратной кодировкой VAX(PDP-11). В преобразованиях координат задействуются тензорные операции для быстрых переходов между меркаторской и географической (сферической) проекциями. Прямое по- строение графических изображений выполняется в оперативной памяти в стандартной растровой RGBi- кодировке, что требуется для задействования алгоритмов параллельных вычислений. Ключевые слова: алгоритм, числовые объекты, батиметрические массивы, тензорная математика, параллельное программирование Работа выполнена при поддержке Сахалинского отделения Российского научно-технического общества судо- строителей имени А. Н. Крылова. © 2016 Анна Игоревна Фатькина, Василий Николаевич Храмушин 218 Введение Прямые вычислительные эксперименты в прогнозах потенциально опасных морских явле- ний, так же как в оценках состояния атмосферы, прибрежных и океанских акваторий и их взаи- модействия, оперируют обширной информационной базой разномасштабных батиметрических карт, многолетними массивами наблюдений за параметрами состояния Мирового океана, с возможностью вовлечения оперативных потоков данных о зондировании океана из космоса и других телеметрических измерений в реальном времени. Практическое использование массивов и потоков информации из разнородных источников требует разработки эффективных, а значит специализированных процедур для быстрой конвер- тации материалов, архивированных в различных форматах аппаратной кодировки данных, с возможностью интерактивной графической визуализации аналитических выборок на географи- ческих картах, и с возможностью быстрого синтеза различных вариантов представления ре- зультатов моделирования совместно с текущими данными наблюдений о состоянии моря. Батиметрические архивы в вычислительных экспериментах Систематизация и графическая визуализация разнородных батиметрических массивов обусловлена необходимостью проведения регулярных вычислительных экспериментов по мо- делированию длинноволновых гидродинамических процессов в открытом океане, в шельфовой зоне и на прибрежных мелководьях, таких как цунами, штормовые нагоны, приливные колеба- ния уровня моря и другие морские наводнения и экстремальные течения. При ограниченных вычислительных ресурсах постановка эксперимента востребует оптимизацию величин карто- графического покрытия с шагом сеточных аппроксимаций, разворачиваемых по направлениям преобладающих изобат или контуров побережья для уменьшения площади береговых фрагмен- тов, и с применением меркаторских (конформных по площади) картографических преобразова- ний для ускорения вычислений [0,0] на сферической поверхности Земного шара. Рис. 1. Сборный лист разномасштабных батиметрических массивов по дальневосточным акваториям, оцифрованных вручную с навигационных карт России. 1. Отработанные на практике методы представления цифровой батиметрии (рис. 1) осно- ваны на использовании дополнительных текстовых описаний с расширением *.inf; содержа- щих ссылку на исходные данные; указание на тип чисел (текст, байты, целые или плавающие числа); общий размер и считываемый сектор данных; шаг сетки и тип картографической про- екции; координаты опорной точки и наклон левой грани относительно географического мери- диана. Описание дополняется списком географических координат мореографов для регистра- ции колебаний уровня моря и скоростей течений в ходе вычислительного эксперимента. 219 2. Батиметрические массивы в форматах типа *.grd содержат конфигурацию в заголовке файла данных, и опознаются по символам: 'DS'. Затем, по отметке 'AA' – включается текстовый режим считывания, по отметке 'BB' – двоичный. Далее выбирается размерность массива и его граничные координаты по осям X и Y, с ожидаемыми экстремумами по аппликате Z. 3. С таким же расширением встречаются океанографические данные в формате NetCDF, оригинальный тип: *.nc, которые опознаются по начальным символам: 'CDF', и последую- щим ключам с избыточным набором параметров, не всегда согласующихся по местоположе- нию и подбору имен в однотипных файлах данных от различных авторов. Искомые данные во всех трех вариантах батиметрии располагаются единым массивом, до- пускающим использование универсальных алгоритмов для быстрой выборки глубин и высот на поверхности Земли. Оригинальные материалы из мировых центров данных представляются во внутренних форматах компьютеров типа VAX, что отличается от IBM-PC порядком следования байт. Ускорение выборки достигается предвычислением местоположения строк для фрагментов матрицы данных, для чего текстовые файлы изначально считываются в режиме поиска. Алгоритмы интерполяции и быстрых географических преобразований В географической проекции шаг сетки по долготе зависит от широты: S = S·cos(), что нарушает пропорции сеточных ячеек. В меркаторской равноугольной проекции, при не- большой разности широт на границах, шаг сетки может быть постоянным: SM = ·kм = /cos(–0)·kм, где: kм – коэффициент пересчета угловой меры в линейную; – долгота, – широта, S – шаг сетки. В меркаторской проекции отсчет широты – меридиональ- ная часть, ведется от экватора: m = ln( tan( (g+/2)/2 ) ), с возвратом к угловой мере в гео- графических координатах, как: g = 2·arctan( exp( m ) ) – /2 [рад]. Двумерные преобразования координат, в том числе с учетом изменчивости линейных масштабов географических координат, ведется в технологии тензорной математики (рис. 1). r2 Y A R + a · ^r a A - R ·r j A w r x r xx r xy r r y r yx yy a i i,j i R j ^r r r r r1 rxx ryx ^ r r i rx ry ri,j r i X r xy yy Рис. 2. Сеточное пространство со множеством локальных базисов: r ; i, j – единичные орты. struct Point{ Real x,y; } // Представление точки на плоскости Real=double struct Base // Линейные преобразования в единичном базисе { Point y,x, Y,X; // Локальный базис, отображение глобальных осей Real Axis( Point y, Point x ); // Установка координатный осей Point Goint( Point A ){ return (Point){A.x*X.x+A.y*Y.x,A.y*Y.y+A.x*X.y};} Point Goext( Point a ){ return (Point){a.x*x.x+a.y*y.x,a.y*y.y+a.x*x.y};} }; struct Basis:Base // Линейные преобразования с глобальным отсчетом { Point R; // Опорная точка начала отсчета локального базиса Real Axis ( Point R, Point y, Point x ); // Точка отсчета и базисные оси Real Euler( Point R, Real Angle, Point size ); // Эйлерово пространство Point Goint( Point A ){ return Base::Goint(A-R); } // к локальному базису 220 Point Goext( Point a ){ return Base::Goext(a)+R; } // в глобальный отсчет }; Локальный базис собирается из разностей координат на границах, как свободных векторов левой и нижней граней сеточной области, нормированных по искомой интерполяционной раз- мерности в индексах узловых точек, которые устанавливаются в качестве столбцов матрицы локального тензора: r δ ry / n y δ rx / nx . Инициализация тензорного оператора как число- вого объекта выполняется в процедуре Axis( y,x ), где предвычисляются векторы { Y,X } для обратных тензорных преобразований. Произведение вектора с такой матрицей означает пе- реход от индексов сеточных узлов к координатным смещениям и разностям меридиональных частей, и обратная операция переводит от смещений географических координат к индексам се- точной области. При визуализации батиметрических карт, соответственно, в качестве индексов локального базиса устанавливаются растровые отсчеты для фрагмента графического экрана. Рис. 3. Пример интерполяции батиметрии с преобразованием картографических проекций. Процедуры интерполяции и визуализации больших батиметрических массивов нуждаются в задействовании многоядерных вычислительных ресурсов, допускающих возможность кэши- рования локальных выборок, что весьма актуально в случае применения сглаживающих функ- ций Эрмита второго порядка с осреднением узловых производных при аппроксимации со сгла- живанием, так же как и в случае быстрой билинейной интерполяции при необходимости за- грубления исходных батиметрических материалов. Требование реентерабельности процедур параллельного программирования исключает возможность кэширования временных параметров в статической памяти вложенных процедур, то есть, для четверок чисел полиномов Эрмита требуется, как минимум, предварительное вы- деление локальной памяти внутри распараллеливаемых циклов. Формально это становится не- ким признаком ограниченности привычного структурного или процедурного программирова- ния, с пожеланием необходимости возврата к контекстно-зависимым вычислениям, управляе- мым виртуальными функциями над текущим состоянием локальных числовых объектов. Параллельное программирование в среде OpenMP характеризуется непредсказуемостью в последовательности исполнения конкретных вычислительных операций. Это является услови- ем задействования интерполяционных процедур на основе явных численных схем с разделени- ем модифицируемых и разделяемых числовых полей. Графическая визуализация, в таком слу- 221 чае, требует предварительной прорисовки в оперативной памяти прямого доступа, что фор- мально допускается архитектурой графических систем современных компьютеров. Особенности построения алгоритмов визуализации Для визуализации батиметрических массивов задействуется палитра 224 предопределен- ных цвета (наследие 256-цветной графики) в RGBi-формате. Это позволяет использовать рас- ширенный диапазон 32-разрядных слов – пикселей для варьирования яркостью при построении затененных изображений рельефа под освещенностью с заданной высоты и направления. static void Topography_Paint(){// Прорисовка батиметрии в поле высот с теневыми оттенками #pragma omp parallel for for( int y=0; y0.0?71-int(U*0.0072):72- int(U*0.0256)))]; U = tanh(((Data[y][min(Mx-1,x+1)]-Data[y][max(0,x-1)])*Az.y + (Data[max(0,y-1)][x]-Data[min(My-1,y+1)][x])*Az.x)*Skew/5e4 ); C.b+=U*(U>0?255-C.b:C.b); // попиксельный перебор цветов палитры до 10000 м C.g+=U*(U>0?255-C.g:C.g); // с настройкой освещенности и теневых сторон C.r+=U*(U>0?255-C.r:C.r); ((unsigned*)Scr)[y*Mx+x+1]=C.i; // (с призраками) } Tv_PutImage( Tv_port.left+1,Tv_port.top+1,Scr ); // Axis(); } Здесь вектор Az – направление; Skew – высота источника освещения. Батиметрический файл Data предварительно преобразуется к размерности фрагмента графического экрана My·Mx. Палитра собрана в 32-разрядной последовательности RGB_colors sea[256], по которой настраивается растровая точка C в образе графического экрана Scr[My*Mx]. Рис. 4. Интерактивная прорисовка берегового рельефа и батиметрии Атлантики и Средиземноморья. Список литературы Храмушин В. Н. «Ani» – Прямые вычислительные эксперименты для моделирования цунами, штормовых нагонов, экстремальных течений и приливного режима в открытом океане и вблизи побережья. СахГУ. Роспатент № 2010615848 (shipdesign.ru/SoftWare/2010615848.html) Khramushin V. Pryamye vychislitelnye experimenty dlya modelirovania cunami, stormovykh nagonov, extremalnykh techeniy i prilivnogo rezhima v otkrytom okeane i vblizi poberezhia [Direct computational experiments for simulat- ing tsunamis, storm surges, extreme currents and tidal mode to open ocean and in near the coast]. SakhSU, Rospatent. Invention 2010615848, 2010. 222 Минервин И. Г., Храмушин В. Н. «Батиметрия» – Цифровые батиметрические массивы (Охот- ское море). СахГУ. Роспатент № 2010620626 (shipdesign.ru/SoftWare/2010620626.html) Minervin I., Khramushin V. Cyfrovye batimetricheskie massivy [Digital bathymetric arrays]. SakhSU. Invention 2010620626, 2010. Богданов А. В., Дегтярева Я. А., Захарчук Е. А., Тихонова Н. А., Фукс В. Р., Храмушин В. Н. Ин- терактивный графический инструментарий глобального вычислительного эксперимента в службе морских оперативных прогнозов // Компьютерные исследования и моделирова- ние. 2015 Том 7 № 3. М.: МГУ, 2015. С. 641–648. Bogdanov A., Degtyareva Ja., Zajharchuk E., Tikhonova N., Fux V., Khramushin V. Interaktivny grafichesky instrumentary globalnogo vychislitelnogo experimenta v sluzhbe morskikh operativnykh prognozov [Interactive graphical toolkit to computational experiment in maritime forecasts service] // Computer Research and Modeling. – 2015. –Vol.7, No.3. –P. 641–648 (in Russian) Efficient algorithms for construction and visualization of the Earth and the bathymetry of the oceans relief A. I. Fatkina1, V. N. Khramushin2,a 1 Saint-Petersburg State University 2 Sakhalin division of Science-technical society of shipbuilders named Alexey Krylov, Yuzhno-Sakhalinsk E-mail: a Khram@mail.ru Abstract. In this paper we consider variants of building efficient algorithms for processing, interpolation and visualization of the Earth's topography and bathymetry of the oceans, destined for realization of meteorolog- ical information system and direct computational experiments on modeling of ocean, offshore waters and coastal shallows hydrodynamics. The variants of advance preparation digital arrays in the representation of architecture IBM-PC type computers and huge volumes (about 15 GB) in the original NetCDF formats with hardware encod- ing VAX (PDP-11). In the coordinate transformation tensor operations are utilized for fast transitions between Mercator and geographical (spherical) projections. Direct encoding graphical fields is performed in a standard RGBi bitmap representation in main memory, that is required for activating the algorithms of parallel computing. Keywords: algorithm, numerical objects bathymetric arrays tensor mathematics, parallel programming The work was supported by Alexey Krylov Science-engineering society of shipbuilder from Sakhalin division. © 2016 Anna I. Fatkina, Vasily N. Khramushin. 223