Скрипачев В.О.
НТЦ «Космонит» ОАО «Российские космические системы»,
заместитель начальника отдела skripatchevv@inbox.ru
Вопросы использования Interactive Data Language при создании научных приложений
Введение
Бурное развитие методов дистанционного зондирования Земли (ДЗЗ) в последние десятилетия связано с новыми возможностями наблюдений из космоса с помощью бортовой научной аппаратуры космических аппаратов (КА). Измерения с борта КА характеристик уходящего электромагнитного излучения системы "атмосфера - подстилающая поверхность" позволяют получать разнообразную информацию о параметрах состояния атмосферы и подстилающей поверхности, необходимую при решении таких задач, как исследование общей циркуляции атмосферы, численный прогноз погоды, слежение за опасными метеорологическими явлениями, изучение климатических изменений и определяющих их факторов [1].
Приборами, с помощью которых можно решать указанные выше задачи являются СВЧ-радиометры. Такие приборы предназначены для применения в качестве инструментария при решении фундаментальных проблем системы океан-атмосфера, а также для глобального мониторинга в интересах Росгидромета.
СВЧ-радиометр обеспечивает зондирование системы океан-атмосфера как в окнах прозрачности атмосферы, так и в линиях поглощения кислорода (52-57 ГГц) и водяного пара (183 ГГц), что позволяет:
• восстанавливать вертикальные профили температуры и влажности атмосферы;
• определять интегральную влажность атмосферы, водозапас облаков и интенсивность осадков;
• регистрировать такие параметры океана, как состояние (бальность волнения) поверхности, скорость приводного ветра и др. СВЧ-радиометры ранее устанавливались на борт метеорологических
КА типа «Метеор». Учитывая высокую потребность в данных СВЧ-радиометрии использование подобного рода бортовой аппаратуры планируется и далее как на низких и геостационарных орбитах. Поэтому актуальным является применение современных информационных технологий для обработки получаемых данных. Целью настоящей работы является демонстрация возможностей языка программирования Interactive Data Language (IDL) на примере создания приложения для автоматизации
обработки исходных данных СВЧ-радиометрии с целью выявления метеорологических параметров: приводного ветра, водозапаса облачности и интенсивности осадков.
Особенности языка IDL
Рассмотрим особенности языка программирования IDL. В 1970-х гг. сотрудник Лаборатории атмосферной и космической физики (США) Дэвид Стерн (David Stern) создал язык программирования Rufus (прообраз IDL). В 1977г. он организовал собственную фирму Research Systems, Inc. (RSI), которая стала заниматься разработкой языка программирования для решения научных задач IDL. В 1977 г. вышла первая версия языка IDL. В 1992 г. было введено понятие «виджет» (widget — элемент графического интерфейса), благодаря чему создание IDL приложений получило новый виток развития.
Язык IDL является кроссплатформенным языком программирования, что позволяет создавать приложения на различных платформах в различных операционных системах, таких как Microsoft Windows, Linux и другие.
При проведении исследований, как правило, используется большой объем данных, которые необходимо быстро обработать. Это требование стало ключевым для языка IDL. Оно воплотилось в IDL в виде простого синтаксиса, т. е. нет необходимости в составлении циклов и оптимизации времени выполнения функций для работы с массивами.
Язык IDL предлагает пользователям большое количество разнообразных математических преобразований и функций, способных помочь решить достаточно сложные задачи. Для более детального анализа полученных результатов IDL обладает мощными средствами визуализации данных. Визуализация данных в IDL поддерживает два типа рендеринга: программный рендеринг и рендеринг с использованием аппаратных 3D ускорителей, которые поддерживают библиотеку OpenGL.
В большинстве случаев визуализация данных через OpenGL обладает лучшим качеством изображения, чем визуализация через программный рендеринг. Но необходимо учитывать, то что программный рендеринг может быть единственно доступным решением для систем, в которых нет аппаратных 3D ускорителей, например, при использовании несовместимых OpenGL X серверов этот тип рендеринга строит одноразовую визуализацию быстрее, чем OpenGL и позволяет избежать возможных ошибок, возникающих с драйверами устройств.
IDL позволяет работать с файлами различных форматов, в том числе с графическими, например, BMP, JPEG, PNG, форматами, разработанными специально для научных задач, например, HDF, CDF, NCDF и несколькими распространенными форматами хранения данных, например, XML, ASCII. Существует возможность работы с данными в формате DICOM (Digital Imaging and Communications in Medicine).
Программы, разработанные на языке IDL, можно вызывать из
внешних программ, созданных на других языках программирования или в IDL программах использовать функции, реализованные на С/С++, FORTRAN, Java. Такое взаимодействие IDL с языками программирования позволяет гибко подходить к решению сложных задач.
Благодаря этим преимуществам IDL нашел широкое применение при обработке космических снимков и геофизических данных. Он активно применяется в структурах национальных космических агентств: NASA (США), JAXA (Япония), CNES (Франция), Роскосмос.
Рассмотрим особенности применения объектно-ориентированного программирования, визуализации данных и построения графического интерфейса пользователя.
Особенности описания классов и объектов в IDL
В IDL существует возможность применения как процедурной, так и объектно-ориентированной парадигм. Рассмотрим более подробно применение объектно-ориентированной парадигмы.
В IDL данные члены-класса хранятся в виде именованных структурах. В терминалогии IDL применяется выражение «class structure».
struct={Class1, field1:0L, field2:1B}
Любой объект, созданный из этой структуры (класса), будет иметь 2 свойства - fieldl и field2.
Методы членов-класса имеют следующие отличия от обычных процедур:
• в названии имеется имя класса;
• все методы автоматически получают аргумент self (аналог this в Java);
• для вызова методов используется оператор «стрелка» -> .
При наследовании структур классов в IDL имена полей должны быть уникальны, а имена методов могут повторятся. Жизненный цикл объекта в IDL делится на три этапа:
• создание и инициализация объекта;
• использование объекта;
• удаление объекта.
Для создания объекта необходимо вызвать функцию-контейнер OBJ_NEW, имеющую следующий синтаксис:
A=OBJ_NEW( [Имя_класса[, аргументы]] )
При этом будет вызван соответствующий метод конструктор (если есть), который имеет строгое имя - INIT и является членом-класса.
Для удаления объектов используется процедура OBJ_DESTROY. Если в классе (или одном из суперклассов) есть метод CLEANUP, то будет вызван этот метод с переданными аргументами. Если такого метода нет, то IDL сам удаляет объект. Метод CLEANUP является аналогом метода-деструктора. При этом, как метод INIT, так и метод CLEANUP нельзя вызвать не используя OBJ_NEW и OBJ_DESTROY соответственно.
Визуализация научных данных средствами IDL
Для работы с изображениями IDL снабжен существенным количеством подпрограмм, позволяющим проводить обработку изображений. Подробно вопросы обработки изображений изложены в работах [2, 3]
IDL может работать с 4 типами изображений [4, 5]:
• бинарные (0 - черный, 1 - белый);
• в тонах серого (0 - черный, 255 - белый);
• индексированные (с применением Lookup tables (LUT));
• RGB (каждый компонент 0-255).
Для отображения в IDL могут использоваться две системы графики: Object Graphics и Direct Graphics. Эти системы подробно рассмотрены в работах [6, 7] соответственно.
Результаты обработки данных СВЧ-радиометрии необходимо привязать к картографическим координатам в соответствующих картографических проекциях.
Картографические проекции преобразуют координаты в координаты на плоскости. Существует много картографических проекций, каждая из которых обладает собственной техникой преобразования сферических координат в координаты на плоскости.
IDL имеет 19 встроенных картографических проекций. IDL обладает возможностью создания картографических проекций, конвертированием данных из одной проекции в другую и отображением данных в этих проекциях.
Картографическая база данных, которая поставляется с IDL от Всемирного банка данных (WDB), является достаточно полной для отображения политических границ, береговых линий и других земельных/водных границ. Пример визуализации картографической информации приведен на Рис. 1
Рис. 1. Центрированное изображение в масштабе 1:20.000.000(о-в
Гренландия)
Проектирование графического интерфейса пользователя средствами IDL
IDL позволяет создавать графические интерфейсы пользователя с помощью виджетов. Виджеты (графические элементы управления) -кнопки, скроллы, таблицы, метки и т.д. Графический интерфейс,
реализованный на IDL, представляет собой древовидную иерархию -каждый виджет имеет одного «родителя» и ни одного или несколько «потомков», с одним исключением, что верхний виджет иерархии не имеет «родителя». Этот виджет называется базовым.
Любое виджет приложение должно начинаться с базового виджета. При создании виджетов только создаются соответствующие структуры данных, которые на экране не отображаются. Для того, чтобы они визуализировались, необходимо вызвать соответствующую процедуру, после выполнения которой виджеты, входящие в состав иерархии, отобразятся на экране.
Жизненный цикл приложений с виджетами:
1. Создание иерархии виджетов.
2. Создание подпрограммы обработки событий.
3. Реализация виджетов.
4. Регистрация программы с помощью XMANAGER, которая активизирует функции обработчики событий.
5. Взаимодействие с приложением.
6. Уничтожение виджетов.
Виджеты могут обладать пользовательским значением. То есть каждый виджет содержит переменную, в которой хранится необходимая информация. Это значение игнорируется виджетом и требуется для удобства программиста при разработке программ.
Для обмена данными в приложениях с графическим интерфейсом пользователя необходимо создать структуру, которая будет содержать Ш виджета и дополнительные данные. Затем создать ссылку на нее и передать ее как пользовательское значение в базовый виджет. В обработчике событий необходимо получить эту информацию из полученной структуры события.
Приложение обработки данных СВЧ-радиометров
Входными данными для приложения метеорологической обработки данных СВЧ-радиометров являются данные в формате HDF.
Рис. 2. Фрагмент обзорного снимка СВЧ-радиометра Формат данных HDF получил большое распространение в обработке и хранении данных ДЗЗ. Он стал своего рода стандартом для хранения и передачи информации в зарубежных системах ДЗЗ. Полное наименование -
формат иерархических данных (Hierarchical Data Format). Организация-разработчик: Национальный центр суперкомпьютерных приложений -National Center for Supercomputing Applications (NCSA).
Исходные файлы представляют собой обзорные снимки земной поверхности (т.е. компиляция всех полувитков за сутки). Размер такого изображения составляет 720x360 пиксел.
Приложение имеет графический интерфейс пользователя, пример которого приведен на Рис. 3. Графический интерфейс пользователя позволяет проводить интерактивную обработку данных СВЧ-радиометрии. Приложение построено по модульному принципу, что позволит расширить список алгоритмов обработки в будущем.
Рис. 3. Графические интерфейс программы обработки
Алгоритмы определения метеорологических параметров базируются на эмпирических зависимостях, которые были получены в работах [8,9,10]. С учетом этих зависимостей, количественные значения метеорологических параметров определяются с помощью линейной комбинации каналов СВЧ-радиометра различной поляризации.
1. Алгоритм определения скорости ветра над океаном позволяет получить скорость ветра поверхности океана от 3 до 25 м/с с точностью не хуже 2 м/с. Скорость ветра у поверхности приводится к высоте 19,5 м над поверхностью. Небольшой дождь и пары воды значительно ослабляют микроволновое излучение на выбранных частотах равных 19, 22 и 37 ГГц. В частности СВЧ-излучение, испускаемое с поверхности океана, содержит информацию о скорости ветра [8].
2. Алгоритм определения водозапаса над океаном был разработан и опубликован в работе [9]. Этот алгоритм определяет интегральное содержание воды в облаках над океаном в 100 кг/м2 с точностью до 0,1 кг/м2 с интервалом квантования 0,5 кг/м2.
3. Алгоритм определения интенсивности осадков над океаном были разработаны и опубликованы в работе [10]. Алгоритм использует каналы с частотами 19У, 19Н, 22У, 37У, 37Н, 91У, и 91Н и приведен к высоте 12,5 км. Данный алгоритм имеет точность 5 мм/ч, интервал квантования 1 мм/ч.
В результате работы программы обработки вычисляются значения
соответствующих метеорологических параметров, которые визуализируются и наносятся на картографическую основу. Результат сохраняется в формате JPEG. Примеры полученных результатов обработки: скорость приводного ветра, водозапас облачности, интенсивность осадков приведены на Рис. 3-5 соответственно.
Рис. 4. Скорость приводного ветра
аша! тзь™
Рис. 5. Водозапас облаков
Рис. 6. Интенсивность осадков
Таким образом, рассмотрены возможности языка IDL, отражающие особенности при описании классов и объектов, визуализации научных данных, в том числе с применением картографических возможностей. Эти особенности были учтены при создании приложения, обладающего графическим интерфейсом пользователя, обработки данных СВЧ-радиометров для определения метеорологических параметров.
Литература
1. John R. Jensen. Remote sensing of the environment: An Earth resource perspective (2nd Edition). Prentice Hall, 2006. 608 p.
2. Гонсалез Р., Вудс Р. Цифровая обработка изображений. М.: Техносфера, 2005.
1072с.
3. Jonh R. Jensen, Introductory Digital Image Processing (3rd Edition). Prentice Hall, 2004. 544p.
4. Liam E. Gumley. Practical IDL Programming. Morgan Kaufmann, 2001. 508 p.
5. Kenneth P. Bowman. An Introduction to Programming with IDL: Interactive Data Language. - Academic Press, 2005. 304p.
6. Ronn Kling. Power Graphics with IDL: A Beginners Guide to IDL Object Graphics. - KRS, inc, 2002. 74p.
7. Fanning, D. Coyote's Guide to Traditional IDL Graphics. - Coyote Book Publishing, 2011. 480 p.
8. M.A.Goodberlet, C.T. Swift, J.C. Wilkerson. Ocean Surface Wind Speed Measurements of the Special Sensor Microwave/Imager (SSM/I) // IEEE Transactions on Geoscience and remote sensing. Vol. 28, №5, 1990.
9. Weng, F, N. Grody, R. Ferraro, A. Basist, and D. Forsyth, 1997: Cloud liquid water climatology from the Special Sensor Microwave Imager, J. Climate, 10, 1086-1098.
10. Ferraro, R.R., 1997: SSM/I derived global rainfall estimates for climatological applications. J. of Geophys. Res, 102, 16,715-16,735.