Содержание к диссертации
Введение
1. Данные об осадках и методы их обработки. системы визуализации данных. постановка задачи 9
1.1. Общая характеристика систем наблюдения за осадками 9
1.2. Обзор архивов данных об осадках. Технологии их создания 13
1.3. Обзор систем визуализации гидрометеорологических данных, используемых метеорологическими службами 18
1.4. Выводы и постановка задачи 22
2. Восстановление значений короткопериодных сумм осадков по результатам наземных наблюдений 24
2.1. Сведения об осадках, поступающие с метеорологических станций 24
2.2. Учет данных о явлениях погоды при восстановлении значений короткопериодных сумм осадков 32
2.3. Упрощение задачи и схема численного решения 35
2.4. Выбор начальных данных и параметров алгоритма 41
2.5. Анализ и коррекция численного алгоритма 45
2.6. Численные эксперименты и оценка полученного решения 48
3. Графическая система для визуализации гидрометеорологических данных 62
3.1. Общая характеристика технологии обработки данных и принципы построения графической системы 62
3.2. Общая структура программы восстановления короткопериодных сумм осадков и некоторые аспекты ее реализации 67
3.3. Описание графической системы визуализации гидрометеорологических данных 74
3.4. Способы изображения данных 80
3.5. Расчет карт изолиний и цветного закрашивания 83
3.6. Визуализация значений сумм осадков 91
Заключение 96
- Обзор систем визуализации гидрометеорологических данных, используемых метеорологическими службами
- Упрощение задачи и схема численного решения
- Общая структура программы восстановления короткопериодных сумм осадков и некоторые аспекты ее реализации
- Расчет карт изолиний и цветного закрашивания
Введение к работе
Одним из важнейших метеоэлементов, влияющих на хозяйственную деятельность, является количество осадков, выпавших за некоторый период. Прогнозы разлива рек, снежных заносов, оценка влагозапасов почвы для прогнозов урожайности сельскохозяйственных культур, моделирование переноса примесей в атмосфере — все эти и ряд других задач требуют знания количеств осадков, выпадающих в течение различных интервалов времени. По этой причине необходимо иметь достоверные сведения об их количестве и распределении по поверхности Земли. В настоящее время имеется три источника данных об осадках: наземные синоптические наблюдения, радарное и спутниковое зондирование атмосферы.
Измерения, составляющие суть наземных синоптических наблюдений за осадками, делаются при помощи осадкомеров. Такой прямой способ получения величин осадков служит источником наиболее точных данных. Эти измерения проводятся на метеорологических станциях и поступают в Глобальную систему телесвязи (ГСТ) в составе телеграмм в коде FM 12-ГХ SYNOP[40].
В отличие от синоптических наблюдений данные об осадках, полученные посредством дистанционного зондирования, являются оценками их количества, вычисленными по величине отраженного сигнала либо уходящей радиации с помощью статистических соотношений. Валидация этих соотношений производится по данным станционных измерений. По этой причине результаты станционных метеорологических наблюдений занимают особое место среди всех данных об осадках.
Главной особенностью измерения осадков на метеостанциях, в отличие от других характеристик атмосферы, является его длительность: накопление осадков перед измерением их количества проводится в течение некоторого промежутка времени. Длины периодов накопления могут составлять от одного до 24 часов. К тому же, часто моменты начала значительных (9 часов и более)
5 периодов накопления осадков могут различаться на разных станциях в зависимости от часового пояса или даже их государственной принадлежности. Эти обстоятельства создают трудности при использовании таких данных.
Большинство длинных, охватывающих период в несколько лет архивов полей сумм осадков, основанных на станционных наблюдениях, содержат данные лишь месячного периода накопления, поскольку в этом случае ошибки, возникающие из-за нссинхронности измерений, относительно малы. Известные архивы полей большего временного разрешения (суточные, шестичасовые) либо базируются только на данных спутникового зондирования, либо содержат суммы осадков, являющиеся прямым выходом гидродинамических моделей атмосферы, а потому не очень точны.
Однако существует целый ряд задач, для которых необходимы глобальные (полусферные или охватывающие Землю целиком) поля сумм осадков с временным разрешением сутки или даже несколько часов и базирующиеся на результатах станционных наблюдений. Можно в связи с этим упомянуть задачу верификации среднесрочных (до недели) и долгосрочных (месяц) прогнозов осадков по большой территории [18, 51, 52]. Из-за несинхронности суточных периодов измерения осадков на разных станциях эта задача оказывается нетривиальной.
В качестве примера потребности в количествах осадков с более короткими периодами накопления, кроме калибровки дистанционных методов зондирования, можно привести также задачу верификации гидродинамических прогнозов осадков при разработке новых схем физических параметризаций. В частности, для испытания нескольких версий модели Гидрометцентра России [36] проводились такие работы [21, 16]. Еще одна задача — запуск механизма осаждения примесей при моделировании их переноса в атмосфере [59-61, 99, 50]. Важно иметь короткоперйодные количества осадков также в задачах формирования входных полей влажности почвы для моделей атмосферы и
6 улучшения структуры полей влажности воздуха при объективном анализе [75, 92].
Таким образом, весьма актуальна задача получения короткопериодных сумм осадков, основанных на станционных наблюдениях, унификации и синхронизации периодов их накопления.
При проведении научных исследований, связанных с изучением различных природных механизмов на Земле, велика потребность в программной системе для графического представления используемых в них данных. При этом определяющим является гибкость и простота управления процессом отображения данных. Другое важное свойство, которым должна обладать система, — независимость от источников и форматов хранения данных, поскольку, как правило, каждый исследователь имеет собственные пристрастия в этом вопросе. Доступные в России системы либо довольно сложны в управлении, либо не обладают достаточной гибкостью, либо ориентированы на использование строго определенных источников данных, либо не имеют географической привязки данных и не поддерживают проекций Земной поверхности.
Основная цель этой работы состоит в выработке методики восстановления короткопериодных сумм осадков на станциях по данным синоптических наблюдений: выводе математических соотношений, позволяющих учесть при решении задачи все имеющиеся данные, поступающие в сообщениях SYNOP; последующем тестировании соотношений по результатам станционных наблюдений; построении программы для ЭВМ, реализующей предлагаемую методику. Заметим, что из-за довольно значительных периодов накопления измеряемых данных и возникающего в связи с этим отставания момента передачи данных от самого факта выпадения осадков, решение задачи не может быть обеспечено оперативно. Поэтому при построении программы имеет смысл потребовать дополнительно перед началом процесса восстановления дождаться всех опаздывающих телеграмм
7 для получения максимального объема информации, что может благотворно сказаться на качестве восстановленных сумм осадков.
Другой задачей работы является создание графической программной системы для визуализации гидрометеорологических данных, пригодной для использования при научных исследованиях.
Работа состоит из трех глав, заключения и приложения. В первой главе дается характеристика разных источников данных об осадках, и обсуждаются различные методики их обработки и создания архивов. Показано, что наземные синоптические измерения осадков занимают особое место среди всех возможных видов их измерения и оценки. Раскрываются общемировые тенденции в развитии программных средств для визуализации гидрометеорологических данных. Еще раз формулируются цели и задачи настоящего исследования.
Во второй главе приводится полный список данных синоптических наблюдений, описывающих осадки и характер их выпадения. Формулируются математические соотношения, позволяющие реализовать предлагаемую методику восстановления значений короткопериодных сумм осадков по измеренным величинам за более продолжительные периоды наблюдения. Предлагается численный способ решения полученной задачи. Приводятся результаты экспериментов восстановления короткопериодных сумм осадков по полученной методике.
В третьей главе обсуждается общее построение автоматизированного рабочего места (АРМ) исследователя и оперативного прогнозиста. Приводится описание программы, реализующей построенную во второй главе методику восстановления сумм осадков. Описаны архитектура и составные части находящейся на переднем крае АРМ графической системы для визуализации различных гидрометеорологических данных. Предлагаются способы визуализации короткопериодных сумм осадков, получаемых по предъявленной методике.
В заключении приводится перечень достигнутых в работе результатов, даются сведения об их публикациях и использовании.
Приложение 1 объединяет схемы иерархий некоторых классов программных объектов, разработанных специально для реализации программной системы для визуализации гидрометеорологических данных, в частности, сумм осадков.
В приложении 2 приводится несколько иллюстраций, дающих представление о графической системе и приемах работы с ней.
Таблицы и рисунки в настоящей работе имеют сплошную нумерацию. Рисунки приложений имеют отдельную нумерацию. Их номерам предшествует литера «П» с номером приложения, например, «рис. Ш-3» означает «третий рисунок первого приложения».
Автор выражает признательность доктору географических наук, профессору А.В. Кислову, кандидату физико-математических наук, старшему научному сотруднику И.А. Розинкиной и кандидату географических наук, старшему научному сотруднику Г.В. Мостовому за поддержку работы и ряд ценных замечаний, сделанных в процессе ее выполнения.
Обзор систем визуализации гидрометеорологических данных, используемых метеорологическими службами
Одним из важных компонентов вычислительных средств, поддерживающих оперативные работы и научные исследования в области гидрометеорологии, являются системы визуализации данных. С развитием мощности и графических возможностей настольного вычислительного оборудования и его удешевления значение таких систем существенно возросло. Подтверждением этого факта служит то, что на совещаниях ЕЦСПП по оперативным метеорологическим системам работают специальные секции, посвященные системам визуализации [93, 94]. В настоящее время национальными метеорологическими службами используется большое количество (более 40 [86]) таких систем визуализации (табл. 1). Среди них есть системы общего назначения, такие, например, как Metvicw [65, 66] или Synergie [87]. Обе эти системы построены с использованием библиотеки графических программ Magics [96, 85]. Системы 19 общего назначения в состоянии отображать широкий спектр гидрометеорологической информации. С помощью такого программного обеспечения можно решать много различных прогностических или научных задач.
Другое направление развития средств визуализации — специализированные системы, то есть программное обеспечение, предназначенное для решения конкретной задачи. Примером такого средства может служить система TIPS [108] для представления и обработки информации о тропических циклонах. Большинство используемых в настоящее время графических систем готовят двумерные изображения — аналоги бумажных карт, графики и таблицы. В первую очередь это относится к системам, используемым в оперативной практике прогнозов. Трехмерные представления гидрометеорологических данных в настоящее время находят применение, главным образом, в исследовательских работах. В основном это связано с непривычностью работы с объемными изображениями. На совещании в Европейском Центре по среднесрочным прогнозам погоды (ЕЦСПП) обсуждалась возможность использования таких изображений в оперативной практике и отмечалась [93, U0] необходимость соответствующего обучения оперативного персонала. Во многих работах отмечается, что определяющим в развитии средств визуализации являются запросы и удовлетворение нужд пользователей, а не технологии, использованные при их создании. В месте с тем, ряд новых технологических приемов находят применение при разработке средств визуализации. Например, в работе [85] указывается, что преобразование средств визуализации, входящих в состав библиотеки Magics, в объектно-ориентированную форму будет способствовать более легкому расширению программного обеспечения, построенному с использованием этой библиотеки.
В работах [74, S3, 84, 86] замечено, что различные распространенные в мире системы визуализации выполняют сходные или даже одни и тс же функции. В то же время, системы различаются интерфейсом и, кроме того, получают данные из источников, различающихся форматами и формой хранения. Эти обстоятельства усложняют процессы развития систем и их сопровождения. Существенным моментом является также зависимость традиционных систем визуализации от операционных систем и используемого оборудования. Для визуализации гидрометеорологических данных традиционно используются достаточно дорогостоящие рабочие станции под управлением операционных систем семейства Unix, и лишь в последнее время начинают все чаще использоваться более дешевые персональные компьютеры под управлением Linux и Microsoft Windows.
Для преодоления этих недостатков предлагается вести разработку систем визуализации с помощью относительно нового средства — Java. Программы, написанные на Java, передаются вместе с отображаемыми данными с сервера на клиентские машины, а интерпретаторы Java в настоящее время существуют для всех известных вычислительных платформ. Из всех средств разработки программ таким свойством в настоящее время обладает только Java. Следует также отметить, что при программировании на Java существенно используется объектно-ориентированный подход, Java также имеет в своем составе библиотеки, в которых реализованы графические примитивы, что тоже способствует упрощению разработки и сокращению ее сроков. С точки зрения данных система является открытой [84], то есть допускает настройку в том или ином виде на любые возможные источники данных. Данные, в свою очередь, сопровождаются метаданными [74, 84], то есть сведениями, описывающими их структуру. В России наиболее распространенным средством визуализации метеорологических данных является Геоинформационная система (ГИС) Метео [1, 2]. Эта система ориентирована в первую очередь на оперативных прогнозистов. Система включает полный цикл обработки данных от их приема из ГСТ и декодирования до визуализации. ГИС Метео имеет собственную систему хранения данных и ориентируется только на нее. Включение новых видов и источников данных затруднено из-за закрытости ГИС Метео. Изменение способов визуализации данных также затруднено. Все это не позволяет использовать систему в научных исследованиях. Таким образом, как видим, в мире имеется большое количество систем визуализации разного назначения. Основной характерной особенностью их развития в настоящее время является нацеленность на различные источники и форматы данных. С точки зрения технологии их построения имеется тенденция использования объектно-ориентированного подхода и средств, независимых от оборудования и конкретной операционной системы. 1.4. Выводы и постановка задачи В параграфах 1,1 и 1.2 мы видели, что наземные синоптические измерения осадков занимают особое место среди всех данных о них. С другой стороны, использование таких данных очень затруднено из-за плохой согласованности сроков и периодов измерения. На совещании в ноябре 2000 года в ЕЦСПП, посвященном усвоению данных об облачности и осадках, в числе прочего отмечалось, что для валидации дистанционных методов измерения поверхностных осадков было бы полезно создание временных рядов суточных и шестичасовых сумм осадков, базирующихся на станционных данных [64, стр. xiv]. Таким образом, весьма актуальной является задача получения оценок короткопериодных сумм осадков, основанных на наземных синоптических наблюдениях за более продолжительные интервалы времени. На базе таких оценок стала бы возможной синхронизация суточных сумм осадков в географических пунктах наблюдательных станций, что в свою очередь позволило бы улучшить качество глобального объективного анализа суточных сумм осадков, основанных на всех доступных в настоящее время источниках данных о них (подобных 1DD).
Упрощение задачи и схема численного решения
Размерность задачи минимизации (2) может оказаться весьма значительной: до 76, если дана 24-часовая сумма. Конечно, часть из t j или q может равняться нулю. Отметим еще раз, что в телеграмме SYNOP не указываются интенсивности осадков, и поэтому мы рассматриваем лишь средние их значения в каждой категории. Кроме того, нет указаний о продолжительности осадков каждого из трех рассматриваемых видов. Исходя из этого, введем следующие упрощения в задачу (2). Пусть ld — количество часов с моросью, 1Р — с умеренными осадками, и 4 — с ливнем. к Тогда введем новые обозначения Ifa = j\, где tj — продолжительность соответствующего вида осадков в течение часа, a j = dt рл h. Для этих переменных справедливы неравенства Х Л- /-ту- Здесь по-прежнему 1=4. рМ j = d,p,h, a Tj принимается равным одной минуте, если факт осадков У-го вида явно указан, или 0, если осадки у-го вида предполагаются. После этого задача (2) примет следующий вид В задаче (3) уже семь неизвестных: г,, tj и цл где у = d, р, И. Предполагаем, что в каждый из /, часов осадки у-го вида выпадали с одинаковой средней интенсивностью г, в течение одного и того же промежутка времени tj. В те часы, когда были отмечены осадки нескольких видов, суммируем соответствующие величины осадков. Таким образом, решив задачу (3), мы сможем получить среднее распределение суммы осадков R внутри п часов. По существу, допущения, приведенные в параграфе 1.4, остаются актуальными. Однако они теперь действуют не для всех осадков в течение рассматриваемого периода, а для каждого из наблюдавшихся видов осадков в отдельности.
Понятно, что одну и ту же величину суммы осадков можно исчерпать и за счет продолжительности, и за счет интенсивности осадков. В общем случае минимум функции достигается не в точке а на некоторой гиперповерхности. Следовательно, мы не сможем получить истинного распределения значений сумм осадков по часам, а лишь некоторые средние их оценки. При минимизации разные виды осадков «конкурируют» за свою часть общей суммы осадков. Наша цель состоит в том, чтобы получить статистически или климатически правдоподобное решение. Прежде, чем выбрать способ решения задачи (3), рассмотрим простой пример для того, чтобы понять характер целевой (минимизируемой) функции. Чтобы функцию можно было легко себе представить, сведем пример к трехмерному случаю. Пусть необходимо распределить сумму осадков 3 мм, если известно, что эта величина измерена в течение 2 часов, и за все это время зафиксированы осадки одного вида (рис. 3). Таким образом, необходимо минимизировать функцию z=(2rt-3) . Понятно, что минимум такой функции достигается на целой гиперболе. Поскольку точность измерения суммы осадков на станции равна 0.1 мм, то при отыскании минимума функции невязка не должна превышать 0.01. Поэтому и точки, доставляющие решение задачи (3), должны находиться внутри области, ограниченной изолиниями со значением 0.01,
Будем искать минимум функции методом градиентного спуска [31, 33]. Метод состоит в том, чтобы осуществить спуск по «склону» функции из некоторой начальной точки шагами вдоль линии, задаваемой вектором градиента целевой функции в направлении, противоположном направлению этого вектора. То есть мы будем осуществлять движение в сторону уменьшения значения функции перпендикулярно изолиниям. На рис. 3 видно, что, стартуя из разных точек, мы получим разные решения. Для того чтобы остаться в области определения функции, ограниченной неравенствами, используем метод штрафных функций [33]. Штрафная функция P(r,t,q) подобрана таким образом, что она тождественно равна нулю в области определения задачи (3), и начинает расти, как только ее аргументы выходят из этой области. Итак, функция Ф(г,/,(/) тождественна F2(r,t,q) внутри области определения задачи (3) и сильно растет, если в процессе поиска минимума мы случайно выйдем из области определения. Последнее обстоятельство заставит сделать следующий шаг в нужном направлении. Отмстим также, что в задаче (6) ищется безусловный минимум.
Пусть в условиях нашего предыдущего примера дополнительно известно, что 0.6 г 3. Соответствующая этим условиям задача (6) проиллюстрирована на рис. 4. Видно, что и для задачи (6) остается важным подобрать «подходящее» начальное приближение, поскольку по-прежнему разные стартовые точки приводят к разным решениям. Предположим, что после /-го шага мы находимся в положении х =( , ,г р,r t jj t q ). Тогда следующее положение на (Н-І)-ом шаге будем рассчитывать по формуле Здесь размер шага h в начале положим равным некоторому ho, значение которого подберем опытным путем (см. параграф 2.4). Если окажется Ф(х +,) Ф(х )і будем удваивать шаг до тех пор, пока это неравенство соблюдается, и перейдем в последнюю «успешную» точку. Затем рассчитаем новое направление. Если же первый шаг окажется неуспешным, будем делить h пополам до тех пор, пока шаг не окажется успешным, перейдем в эту точку, а затем опять рассчитаем новое направление. Процесс поиска продолжаем так долго, пока после очередного успешного шага не окажется Ф(д: ) 0.01.
Общая структура программы восстановления короткопериодных сумм осадков и некоторые аспекты ее реализации
В рамках технологий, обеспечивающих АРМ данными, была разработана и внедрена в АСООИ программа подготовки короткопериодных сумм осадков, реализующая алгоритм, предложенный в главе 2 с учетом заключительных замечаний к параграфу 2.4 о восстановлении значений сумм осадков вне территории бывшего СССР. Для практического использования необходимо восстановление шестичасовых сумм осадков на станциях по данным синоптических наблюдений. Информация должна приписываться к срокам 0, 6, 12 и 18 часов МСВ, и к определенному сроку должна относиться сумма осадков за 6 часов, непосредственно предшествующих этому сроку. Заметим, что из-за довольно значительных периодов накопления измеряемых данных и возникающего в связи с этим отставания момента передачи данных от самого факта выпадения осадков решение такой задачи не может быть обеспечено оперативно. Разработанная программа позволяет для получения сумм осадков за указанные выше шестичасовые интервалы использовать данные измерений, производимые в произвольные промежутки времени. Идея решения задачи, напомним, состоит в том, чтобы получить все данные об осадках, пришедшие из какого-либо пункта, "нарезать" их во временную цепочку по одному часу с учетом перекрывающихся интервалов, а затем "склеить" звенья этой цепочки по шесть часов.
Источником данных для описываемой технологии является используемая-на ЭВМ Гидрометцентра России база данных наблюдений [47, 39, 29], где содержатся все данные, полученные в коде FM 12-IX SYNOP и прошедшие первичную обработку [46]. За один сеанс обработки (запуск программы) из этой базы выбираются все телеграммы, поступившие за сутки. Процедура распадается на два этапа. На первом этапе идет подготовка данных о наличии и видах осадков на станциях в течение всего периода, обрабатываемого в данном сеансе. На следующем этапе, собственно, восстанавливаются значения шестичасовых сумм осадков. При подготовке сведений об осадках основной проблемой, требующей решения, является обработка и удаление повторных телеграмм. Часто с одной и той же наблюдательной станции приходят несколько телеграмм, относящихся к одному и тому же сроку. Если после передачи телеграммы были обнаружены ошибки, то телеграмма может быть передана еще раз, причем при повторной передаче сообщение может содержать не все метеоэлементы, а лишь исправленные. В этом случае сообщение снабжается специальным признаком повтора. Поскольку путь, проходимый метеорологическим сообщением в сети ГСТ, не фиксирован, то отправленные телеграммы могут поступать вперемешку. Итак, при обработке принятого потока сообщений предполагается, что телеграмма, в которой передан признак повтора, либо полностью повторяет содержимое первой копии, либо исправляет некоторые замеченные ошибки в предыдущем сообщении, и в этом случае в нее могут быть включены не все данные, а лишь исправленные. Тогда поступаем следующим образом: —если телеграмма обладает признаком повтора, то из нее выбираются все включенные в нее данные, а в результирующем массиве сохраняются те метеоэлементы, которые присутствовали в предыдущей телеграмме и отсутствуют в данной;
—если же телеграмма таким признаком не обладает, то, наоборот, усваиваются лишь те метеоэлементы, которые присутствуют в данной телеграмме, но отсутствовали в предыдущей, а, следовательно, и в результирующем массиве. На следующем этапе восстановления значений 6-часовых сумм осадков сначала создается массив телеграмм, включающих количественные сведения об осадках, в котором данные были бы достоверны, не содержали бы повторов и были бы привязаны к моментам окончания периода наблюдения за осадками (рис. 10). Что касается повторов, то их обработка производится тем же способом, что описан выше. При рассмотрении вопроса о включении очередной телеграммы в такой массив учитывается, в числе прочего, национальная практика кодирования сумм осадков, установленная Госкомгидромстом СССР (табл. 3). Процедура учета национальной практики направлена на восстановление правильного срока окончания периода накопления суммы осадков, в частности, в соответствии с часовым поясом, в котором расположена метеостанция (табл. 6). Для получения такого рода дополнительных сведений привлекается словарь станций стран СНГ и Балтии [54,41]. По правилам, указанным в [40], если на метеостанции отмечено состояние "без осадков", то в телеграмме передается не само значение суммы, а лишь признак отсутствия осадков. При этом длительность периода, в течение которого осадков не было, не указывается. Для восстановления этого временного интервала в технологии используется словарь станций Всемирной метеорологической организации (ВМО) [41]. В соответствии с программой наблюдений для метеостанции определяется промежуток времени между сроком текущего сообщения и предыдущего, величина этого интервала принимается за длину периода без осадков. При отсутствии станции в текущей версии словаря берется минимальная возможная величина периода согласно комментариям в [40].
Величины сумм осадков подвергаются простой процедуре контроля. Значения менее 5 мм контролю не подвергаются. При контроле прочих значений используются средние многолетние месячные нормы из архива, полученного в результате выполнения в NCEP/NCAR (США) проекта реанализа метеорологических данных за 40 лет (1957-1996 гг.) [82]. Считается, что такие поля достаточно гладки, поэтому для получения месячной суммы на станции из четырех ближайших узлов соответствующего поля значения билинейно интерполируются в точку с координатами станции. Затем значение суммы осадков, указанное в телеграмме, сравнивается со значением двух месячных норм. Если пришедшее значение оказывается меньше значения двух норм, то оно признается достоверным, иначе — бракуется. Таким образом удается эффективно отбраковать значения, появившиеся в результате ошибок кодирования, передачи или декодирования данных. Более тонкий автоматический контроль значений сумм осадков затруднен, поскольку поля осадков весьма изменчивы в пространстве.
На заключительном этапе используются полученные описанным выше способом массивы данных для трех последовательных суток (рис. 11). Это позволяет обеспечить полноту рассматриваемых данных, так как телеграммы, поступившие за сутки, содержат в числе прочих и суммы осадков на станциях за 24 часа, и, кроме того, в силу национальной практики рассылки в России, момент окончания накопления суточной суммы может отстоять от момента посылки телеграммы на 3 часа.
Расчет карт изолиний и цветного закрашивания
Расчет изолиний производится для гидрометеоданных, представленных в виде полей, то есть таблиц значений элемента в узлах некоторой прямоугольной сетки. При этом не имеет значения, является ли эта сетка в действительности равномерной или нет, с какой проекцией земной поверхности связана сетка и где на местности располагаются ее узлы. Расчет координат точек вдоль изолинии ведется сначала в системе координат, связанной с сеткой. При этом каждый шаг сетки принимается за единицу системы координат, то есть все узлы сетки имеют целочисленные координаты. После окончания расчета сеточные координаты точек пересчитываются в географические на местности, исходя из параметров сетки, а затем в координаты на карте. Центральным звеном расчета координат точек изолинии, пересекающей ячейку сетки, служит рекурсивный алгоритм, позаимствованный из [37] и слегка видоизмененный. Изменения алгоритма связаны с тем, что в статье [37] предполагается, что функция, для которой рассчитываются изолинии, задана в аналитической форме, то есть известны ее значения в любой точке и поведение в любой области. В измененном алгоритме для выяснения значений сеточной функции в промежуточных точках предлагается использовать интерполяцию. Алгоритм расчета изолиний приведен на рис. 17 (см. след. стр.).
На рис. 18 изображено взаимное расположение объектов, использующихся в алгоритме. В начале обработки ячейки значения dX и dY равны 1. Затем делим клетку на четыре части и выясняем через какие из них пройдет изолиния, далее рассматриваем только их. Снова делим каждую из них на четыре части и так далее. По мере дробления первоначальной ячейки переменные dX и dY принимают значения 2". Величина стороны минимальной ячейки eps задается заранее и характеризует глубину деления исходной ячейки сетки при расчете координат точек. На практике величину eps нет смысла задавать менее Ул — /в, а наилучшим значением с точки зрения эффективности счета и экономии оперативной памяти является Уг. После окончания процесса деления клеток вычисляются координаты точек пересечения изолинией сторон минимальных клеток. Таким образом, расчет реализуется компактной рекурсивной процедурой. Рис. 18. Расположение объектов, использованных в алгоритме расчета изолиний. Представлена одна из ячеек сетки. Для того чтобы при изображении полей сохранить особенности данных, не слишком сглаживать поле, решено было использовать в программе билинейную интерполяцию значений из окружающих узлов [49]. Однако, любой другой способ интерполяции. Его легко добавить как дополнительный метод класса двумерных данных. На рис. 19 представлены с точностью до поворота все возможные варианты пересечения изолинией ячейки сетки. Варианты а и б хорошо обнаруживаются приведенным алгоритмом. Варианты г, д и е по понятным причинам вообще не могут быть обнаружены, и вопрос об их обнаружении — это задача расчета полей метеоэлементов большего разрешения.
Вариант в, хотя и обнаруживается, обрабатывается в алгоритме неверно, поскольку отыскивается лишь один из двух фрагментов изолинии. Для исправления ситуации в алгоритм внесено следующее изменение. Ячейка, в которой диагностируется ситуация в, принудительно дробится до тех пор, пока в некоторых се частях совсем не окажется фрагментов изолиний, а в остальных ситуация не сведется к вариантам а или б. Для этого в теле процедуры Лштя_Уровня (рис. 17) в проверку на достижение максимальной глубины разбиения ячейки введена еще проверка на наличие ситуации в. После того, как в описанном алгоритме определена ячейка минимального размера, через которую проходит изолиния, и гарантировано, что внутри ячейки находится единственный се отрезок, отыскиваются точки пересечения этой изолинии со сторонами ячейки. Для этой цели используется линейная интерполяция значений, полученных в соответствующих углах. Обычно под изолинией подразумевают линию, соединяющую равные значения некоторой функции. Для функции, заданной в ЭВМ своими значениями в узлах некоторой сетки (поля), характерно представление этих значений с некоторой точностью. Величины в углах ячейки могут искусственно получиться равными, что может привести к появлению целых "плато" равных значений. Особенно это характерно для полей, хранимых в базах данных с некоторой заранее заданной точностью. Другим примером такой ситуации является поле осадков с обширными областями нулевых значений. Ясно, что в указанных случаях просто неизвестно как провести изолинию. Для разрешения этой коллизии под изолинией некоторого значения а будем понимать линию, разделяющую величины, отличающиеся от я в одну сторону (например, а), и отличающиеся от а в другую сторону либо равные а (в примере — а). Ясно, что такое определение изолинии в случае монотонного изменения функции включает в себя и традиционное понимание этого объекта. Различие этих двух определений проиллюстрировано на рис.
Алгоритм получения двух точек пересечения куском изолинии границы минимальной ячейки в случае использования второго определения состоит в следующем. В ячейке находим две стороны, каждая из которых удовлетворяет двум требованиям: -значения в углах стороны не совпадают, —изолиния пересекает сторону. Затем находим точки пересечения изолинии с каждой из этих сторон. Рассчитанный таким образом фрагмент (дуга) изолинии, определяемый двумя конечными точками, записывается в список точек изолинии. Этот список представляет собой двунаправленный динамический список [11], содержащий в качестве элементов координаты точек. Для облегчения дальнейшего изложения назовем эти списки цепочками точек или просто цепочками. Изолиния представлена в программе как двунаправленный динамический список цепочек. При добавлении найденной дуги к изолинии поступаем следующим образом. Сначала пытаемся добавить ее к текущей рабочей цепочке, на которую указывает специальный указатель. Если один из концов дуги совпадает с одним из концов цепочки, то точка - другой конец дуги добавляется к этому концу цепочки. В противном случае проверяем предыдущую, а затем последующую цепочки. Если к какой-либо из них дугу добавить удается, то эта цепочка становится текущей. Если же новую дугу ни с какой из этих трех цепочек связать не удалось, а такая ситуация возникает довольно часто из-за извилистости реальных изолиний, то из этой дуги организуется новая цепочка изолинии, и она становится текущей. Этот процесс проиллюстрирован на рис. 21.