Satin:general
From
(→Разработка и создание технического и программно-математического обеспечения информационного портала SATIN) |
(→Разработка и создание технического и программно-математического обеспечения информационного портала SATIN) |
||
Line 1: | Line 1: | ||
= Разработка и создание технического и программно-математического обеспечения информационного портала SATIN = | = Разработка и создание технического и программно-математического обеспечения информационного портала SATIN = | ||
- | + | ||
== Разработка информационного портала: научное и прикладное значение == | == Разработка информационного портала: научное и прикладное значение == | ||
Latest revision as of 12:09, 11 January 2013
Разработка и создание технического и программно-математического обеспечения информационного портала SATIN
Разработка информационного портала: научное и прикладное значение
Работа со спутниковыми данными давно сопряжена с рядом проблем для пользователей, которые часто лишены возможности более широкого использования этих данных из-за больших объёмов, сложностей с доступом к данным, большого разнообразия форматов и типов данных. Для поиска, получения, отображения, распространения и хранения данных дистанционного зондирования, на базе программно-математического комплекса NAIAD, разработанного в центре CERSAT/IFREMER, в ЛСО РГГМУ реализован спутниковый информационный портал SATIN (от англ. SATellite Data Search and Manage INformation Portal). Главная цель спутникового информационного портала SATIN – решить основные проблемы, возникающие при работе со спутниковыми данными, и предоставить пользователям быстрый и гибкий инструмент для поиска и извлечения готовых продуктов из большого числа архивов спутниковых данных, которые точно соответствуют его потребностям и интересам.
Важность создания информационного портала
Работая со спутниковыми данными, особенно, когда эти данные хранятся в виде полных витков (данные, сформированные после одного витка спутника по орбите), в исходном формате, да ещё и в полном разрешении, пользователи сталкиваются со следующими основными проблемами:
- Объём. Архив спутниковых данных за период существования спутника может достигать тысяч терабайт. Это делает задачи обработки, особенно при работе с файлами витков, ресурсо- и время-ёмкими, хотя подобная обработка бывает не всегда оправданной. Некоторые области применения спутниковых данных требуют работы лишь с небольшими географическими регионами или конкретными событиями (например, шторма, нефтяные разливы), для чего необходима лишь некоторая часть (сабсет) из всего витка данных. Обычные пользователи, не имея доступа к подобным сабсетам, вынуждены закачивать к себе на домашние компьютеры полные витки данных, обрабатывать их и выбирать из них нужную информацию. К примеру, чтобы создать превью изображение (квиклук) по одному витку данных на вычислительном кластере требуется от 70 до 480 Гб оперативной памяти. А если количество запросов по обработке от пользователей возрастает, тем более, если необходимо проводить дополнительную обработку, используемые вычислительные ресурсы могут многократно увеличиваться. При этом в среднем, файл одного витка, одного типа спутниковых данных на жёстком диске занимает ~100 Гб. А с учётом того, что спутников летает много (~200 зарубежных) и на одном спутнике установлено от 10 до 20 приборов, возрастает и число продуктов, а, соответственно, и необходимое дисковое пространство для хранения. Так что, исследование Земли из космоса не только трудоёмкое, но и дорогое удовольствие. Хотя, конечно, затраты на разработку алгоритмов и вычислительных центров по обработке спутниковых данных значительно меньше стоимости запуска самого спутника.
- Доступ. Спутниковые данные распределены неравномерно по разным серверам и гетерогенны по своей структуре. Они доступны на разных сайтах с разнообразными средствами доступа (FTP, OPeNDAP ). Отсутствие централизованного каталога, единой точки доступа или стандартизованных возможностей получения доступа к данным, всё это делает сбор спутниковых данных трудоёмкой задачей.
- Формат. Данные хранятся в большом количестве разнообразных форматов, маловероятно, чтобы пользователи владели методами чтения и обработки всех этих типов.
- Комбинирование. Спутниковые данные имеют различные платформы и разрешение, в результате комбинирование этих данных, зачастую, зависит от временных и пространственных порогов колокации (пространственно-географической и временной привязки), за которыми имеющиеся данные более не актуальны. Выбор сопоставления данных этих порогов также очень трудоемкая и время затратная задача.
Всё это обременяет использование спутниковых данных не только техническими вопросами (хранение, обработка, время и ресурсы), но так же создаёт трудности при программировании (извлечение данных, проецирование и т.п.), особенно, если речь идёт о данных полных витков (широкополосные данные). Эта проблема часто решается путем создания провайдерами данных конкретных продуктов с координатной привязкой, с ухудшением разрешения в глобальном масштабе или с высокой разрешающей способностью по конкретным региональным областям, представляющим научный интерес. Такая продукция действительно намного удобнее в использовании и частично решает вопрос хранения и обработки данных. Однако, этот подход не применим, как только кто-то хочет получить доступ к данным с полным разрешением, особенно в прибрежных или отдалённых от берега районах океана, так как в основном эти области исключаются из спутникового покрытия в предопределенных (рутинных) продуктах. Таким образом, у пользователя просто нет иного выхода, кроме как возвращаться к исходным данным с полным разрешением (широкополосным виткам данных), конечно же, при их наличии в свободном доступе, а также самому решать все вопросы, затронутые выше. Именно поэтому, определяющая задача, стоящая перед лабораторией в целом и перед спутниковым информационным порталом SATIN, в частности, попытаться решить основные проблемы, возникающие при работе со спутниковыми данными, и предоставить пользователям быстрый и гибкий инструмент для поиска и извлечения готовых продуктов из большого числа архивов спутниковых данных, которые точно соответствуют его потребностям и интересам.
Функциональные требования, предъявляемые к информационному порталу
На сегодняшний день существует большое количество ресурсов, предоставляющих доступ к таким данным, будь то открытый или закрытый. Тем не менее, большинство из них не приспособлено для широкой аудитории и требует определенных навыков в использовании. Так, одни проекты предоставляют доступ к исходным файлам без предварительной визуализации их содержимого, другие включают некоторое подобие каталога, но недостаточно гибки в поиске. SATIN призван устранить эти ограничения, неся в себе следующие возможности.
- Каталог с предварительными изображениями: пользователь должен иметь возможность просматривать данные без их предварительной загрузки и обработки. Данные должны аннотироваться сопутствующей мета-информацией (номер орбиты, дата измерений и т.д.), а также ссылками на описание продукт
- Гибкий и интуитивный семантический поиск;
- Загрузка отфильтрованной выборки или отдельного файла спутниковых данных через ряд различных протоколов доступа к данным: OPeNDAP, FTP, HTTP.
- Персонализация, включая создание наборов фильтров, ведения истории поиска;
- Помимо всего, будет присутствовать социальная составляющая: комментарии пользователей, тэги, избранные и популярные спутниковые снимки.
- Предъявляются требования к мультиязычности: должна быть поддержка русского и английского языков, с возможностью добавления новых локализаций.
Техническое обеспечение
На основе закупленного ЛСО оборудования был сформированы вычислительный кластер на основе высокопроизводительного шасси IBM BladeCenterH. Шасси позволяет установить до 14 blade-серверов HS22, каждое со следующими характеристиками: 2 CPU Xeon 6 Core X5690, RAM 48Gb, 2х146Gb 10K SAS HDD. Система хранения данных построена на основе IBM System Storage DS3524 Express Dual Controller Storage System. С помощью технологии виртуализации развернуто порядка десяти серверов, среди которых серверы, предназначенные для хранения спутниковых данных, объемом хранилища более 60 терабайт, обслуживания систем управления базами данных (2 сервера, обслуживающих MSSQL, MySQL и Postgres), несколько веб-серверов и тестовых серверов. Настроенные на серверах службы FTP и OPeNDAP дают возможность загрузки спутниковых данных из архива лаборатории.
Рисунок 1: серверная архитектура, развернутая с применением технологии виртуализации на базе вычислительного кластера ЛСО Изображение [1] иллюстрирует развернутую с применением технологии виртуализации серверную архитектуру. Cерверы условно разделены на две подгруппы, одна из которых имеет доступ во всемирную сеть, а другая доступна только из внутренней сети лаборатории. Также инфраструктура гетерогенна по составу операционных систем: здесь включены как Unix, так и Windows-системы. Отдельно выделены серверы, составляющие вычислительный кластер программно-вычислительного комплекса Naiad. Текущая архитектура включает наличие балансировщика нагрузки (naiad.solab.rshu.ru), который является точкой входа и перенаправляет пользовательские запросы на один из пяти серверов кластера (naiad-srv[1-5].solab.rshu.ru). Каждый из серверов, в свою очередь, использует общий доступ к архиву данных лаборатории и единую (на текущий момент) базу данных. Такое решение позволяет с высокой эффективностью использовать ресурсы при пакетной обработке данных, а также оперативно реагировать на изменение нагрузки при увеличении количества пользователей.
Архитектура программно-математического обеспечения
Рисунок 2: потоки данных информационного портала SATIN
Рисунок [2] отображает инфраструктуру и потоки данных, относящиеся к функционированию информационного портала SATIN. Следующие элементы являются составляющими данной инфраструктуры:
- Веб-сервер
- Серверы доступа к данным
- Сервер загрузки данных
- Сервер БД
- Файловое хранилище
- Сервер индексации
- Вычислительный кластер NAIAD
В последующих разделах раскрывается значение каждой из компонент.
Веб-сервер
Информационный портал SATIN представляет собой приложение для доступа к спутниковым данным, размещенное на веб-сервере IIS7 под управлением операционной системы Microsoft Web Server 2008 R2. Приложение разработано с использованием фреймворка ASP.NET MVC4. Приложение выполнено в многослойной архитектуре, где используется выделение в отдельные слои кода доступа к данным, бизнес-логики и представления данных. Для объектно-реляционного отображения используется Entity Framework 5.0 с поддержкой пространственных типов данных. Генерация страниц производится с помощью Razor Engine. В качестве средства логирования (ведения журнала системных сообщений и ошибок программы) выбран компонент log4net 2.0. Рисунок [3] иллюстрирует представление архитектуры информационного портала в среде разработки Visual Studio 2012:
Рисунок 3: компоновка программного кода проекта. Красным отмечены модули веб-части.
Верстка страниц SATIN выполнена с использованием последней версии языка разметки HTML5 и каскадных таблиц стилей CSS3. В качестве javascript-фреймворка используется библиотека jQuery. В качестве программного интерфейса для отображения карт используется библиотека OpenLayers.
Серверы доступа к данным и медиа-информации
В то время как интерфейс информационного портала SATIN предназначен для оперирования с данными посредством фильтрации и просмотра каталога, сами данные физически доступны для конечного пользователя через группу [2] серверов.
В эту группу входят:
- FTP-сервер [4] – классический и широко распространённый способ предоставления доступа к данным. Через веб-интерфейс SATIN пользователь может получить ссылку на скачивание гранулы (файла данных). В то же время, не ограничивается простой просмотр каталога с помощью любых FTP-клиентов (только для открытых данных).
- OPeNDAP-сервер [5]. Это архитектура и протокол передачи данных, широко используемый при работе с геоданными. Включает в себя стандарты хранения структурированных данных, их аннотирования с помощью атрибутов и добавления семантики для описания данных. Главное преимущество данного протокола доступа – это возможность извлечения подмножества данных из одного или нескольких файлов с помощью единого запроса.
- Tile-сервер обеспечивает доступ к картографическим полигонам и предварительным спутниковым изображениям. SATIN использует этот сервер для отображения всей визуальной информации, относящейся к спутниковым данным.
Рисунок 4: представление архива спутниковых данных посредством протокола FTP
Рисунок 5: представление архива спутниковых данных (вверху) и отдельного файла данных посредством OPeNDAP-сервера
Сервер загрузки данных
Каталог спутниковых данных лаборатории собран из различных источников: роллинг-архивов NASA, ESA, открытых данных различных проектов и университетов. Как правило, недостаточно разово скачать данные интересующего продукта: регулярно продуцируемые данные должны в автоматическом режиме поступать в архив лаборатории. Для этой цели, а также для распараллеливания загрузки в инфраструктуру включен сервер закачек. Здесь расположены скрипты, по расписанию загружающие данные из удаленных источников. Сервер работает под управлением Debian OS. Загрузка, как правило, выполняется с помощью инструмента lftp и расписания планировщика cron.
Сервер БД
В качестве хранилища данных SATIN использует MS SQL Server 2012 с поддержкой пространственных типов данных.
Файловое хранилище
Для хранения всей спутниковой информации используется NFS-сервер под управлением Debian OS. В настоящее время объем дискового пространства составляет около 60 Тб, заполненный более чем наполовину. Зеркальный RAID-массив обеспечивает сохранность данных от дисковых сбоев.
Сервер индексации
Спутниковые данные регулярно поступают в файловое хранилище лаборатории с помощью сервера загрузок, описанного выше. Для их индексации и дальнейшей обработки используется специально разработанный Windows-сервис, установленный на сервере индексации. В его задачи входит сверка индекса базы данных со списком файлов на диске в фоновом режиме, а также передача проиндексированных файлов на обработку в вычислительный кластер Naiad. Рисунок [6] иллюстрирует компоновку модулей сервиса.
Рисунок 6: компоновка программного кода проекта. Красным отмечены модули сервиса индексации и сопутствующего инструментария
Кластер серверов Naiad
Система NAIAD представляет собой мощный набор программ с открытым кодом для поиска и обнаружения данных дистанционного зондирования среди огромного числа многоцелевых архивов спутниковых данных, локализованных в CERSAT/IFREMER. Она обладает рядом уникальных возможностей: мульти-критериальность и контент-ориентированность запросов к данным, суб-настройки, повторный гриддинг, визуализация и автоматическая генерация и распространение специализированных (индивидуальных пользовательских) продуктов непосредственно для пользователей. Все эти возможности реализованы на базе существующих стандартов для обмена данными (в частности, OPeNDAP). Это значительно облегчает, благодаря использованию современных тематических индексаций содержания данных (и не только формы или покрытия), поиск и извлечение данных, а также внедрение передовых приложений интеллектуального анализа данных. Система была развернута на ряде виртуальных серверов, обозначенных на схеме [1] единым кластером. Следует отметить, что она может самостоятельно использоваться для работы, тогда как информационный портал SATIN, с точки зрения этой системы, является визуальным расширением, восполняющим недостающую функцию каталога (Naiad поддерживает только динамическую генерацию предварительных изображений по запросу пользователя).
В описываемой инфраструктуре гранула (в сложившейся терминологии – файл спутниковых данных), прошедшая через сервис индексации, посредством HTTP-запроса передается на обработку в систему Naiad. Обработка происходит в два этапа:
- Индексация гранулы в системе Naiad и извлечение мета-информации;
- Генерация предварительного изображения (квиклуки в разных разрешениях) и палитры.
В дальнейшем, извлеченные мета-данные и квиклуки данной гранулы визуализируются в каталоге SATIN, а сама она становится доступной в системе Naiad.
Изображения [7-11], приведенные ниже, иллюстрируют работу с системой. Каталог [8] позволяет выбрать один или несколько продуктов. Указывая временной интервал, регион [9], пользователь получает результирующий список гранул [10], удовлетворяющих критериям поиска. На рисунке [11] показан результат построения поля температуры для отдельно взятой гранулы.
Рисунок 7: главная страница системы NAIAD
Рисунок 8: каталог продуктов в системе NAIAD
Рисунок 9: мастер поиска данных в системе NAIAD. Выбор региона поиска.
Рисунок 10: результаты поиска и отображение статуса обработки.
Рисунок 11: визуализация поля температуры в заданном районе поиска.
Инфраструктура разработчика
Программное обеспечение портала SATIN разрабатывается с использованием следующего инструментария:
- Среда разработки Microsoft Visual Studio 2012
- Система контроля версий Mercurial
- Облачный трекер YouTrack
- Внутренний справочный wiki-ресурс
- Тестовый сервер проекта
- Сервер непрерывной интеграции TeamCity
Отдельный интерес представляет сервер непрерывной интеграции TeamCity [12], настроенный таким образом, что при каждом обновлении исходного кода проекта в системе контроля версий (команда push) производится выполнение приемочных тестов и выкладка на тестовый сервер. Обновление публичного сервера информационного портала SATIN также автоматизировано и выполняется путем запуска служебной команды. Подобная автоматизация в масштабах проекта позволяет сэкономить большое количество часов, затрачиваемых разработчиком на подготовку дистрибутива и обновление сервера. Частые сборки также помогают достичь высокой стабильности кода на каждой итерации.
Рисунок 12: веб-интерфейс сервера непрерывной интеграции TeamCity
Используемый в работе трекер YouTrack [13] совместим с сервером непрерывной интеграции таким образом, что позволяет связать коммиты с соответствующими заявками. Используя определенную семантику, статус записей обновляется соответственно команде в комментариях к очередному изменению программного кода. Также одним из функциональных достоинств трекера является поддержка гибкой методологии разработки Agile [14], что позволяет работать в режиме спринтов – наборов задач, определяемых на короткий промежуток времени.
Рисунок 13: веб-интерфейс трекера YouTrack в режиме списка заявок
Рисунок 14: веб-интерфейс трекера YouTrack в режиме доски гибкой разработки
Разработка методов визуализации полей гидрометеорологических параметров и обеспечения доступа к потокам спутниковых данных на основе использования информационного портала.
В данном разделе будет показано, как с помощью каталога SATIN, разработанного в лаборатории спутниковой океанографии на базе системы NAIAD, обеспечивается поиск и обеспечение доступа к данным архива.
Каталог
Стартовой страницей веб-сайта является каталог спутниковых данных [15], в блочном представлении отображающий все продукты архива. Каталог поддерживает два режима и несколько представлений для отображения информации, которые могут быть сведены в следующий список:
- Режим продуктов
- Списочное представление
- Блочное представление
- Режим гранул
- Списочное представление
- Блочное представление
- Представление на карте
- Представление в виде презентации
Рисунок 15: Каталог - главная страница информационного портала SATIN
Здесь под режимом понимается набор сущностей, с которыми оперирует конечный пользователь. Так, режим продуктов выводит релевантный текущему фильтру список наборов данных, обладающих едиными характеристиками, такими как пространственное разрешение, тип инструмента, платформы и т.д. Каждый такой набор данных – продукт – представлен файлами данных, которые принято называть гранулами.
Каждый блок каталога представляет собой отдельный продукт [16]. Здесь цифрами обозначены: геофизические параметры, представляющие данный продукт (1), название продукта (2), общее (здесь же отфильтрованное) количество гранул (файлов данных) (3), пиктограммы, отображающие соответственно актуальность данных (архивные или близкие к реальному времени), покрытие (глобальные или региональные данные) и уровень доступа (требующие авторизации для скачивания) (4,5,6). Изображение для продукта призвано дать быстрое наглядное представление о характере данных.
Рисунок 16: блочное представление продуктов в каталоге
По умолчанию, на главной странице [15] выводится полный список продуктов, находящихся в архиве лаборатории (с постраничным разбиением). Как правило, пользователя интересует определенный продукт или их набор, представляющий тот или иной геофизический параметр. Изначально свернутый фильтр развернут на изображении [17]. С помощью него исходный набор продуктов фильтруется по требуемым геофизическим параметрам, платформе, сенсору, времени и/или региону.
Рисунок 17: Каталог SATIN с развернутым фильтром. Применена фильтрация по геофизическому параметру «Ветер», в каталоге отображены соответствующие продукты. Представление каталога задано в виде списка.
Переход в режим гранул [18] происходит при выборе одного из продуктов в списке. В данном режиме пользователь имеет возможность вести поиск уже среди гомогенного набора данных. В текущей реализации только два типа фильтров могут быть применены в данном режиме: по региону и по времени (остальные фильтры – платформа, сенсор и т.д. – относятся к характеристикам продукта, и, следовательно, каждой из гранул данного продукта).
Рисунок 18: Каталог в режиме гранул. Выбран продукт ASCAT Ocean Surface Wind Vector, включено представление в виде списка
В режиме гранул также доступно блочное представление, при котором пользователю выводятся квиклуки – предварительно визуализированные данные каждой отдельной гранулы.
Рисунок 19: Блочное представление в режиме гранул. Каждое изображение в каталоге - это визуализированные данные отдельной гранулы
Изображение [20] иллюстрирует представление данных на карте. Такой режим применим только к региональным продуктам или к swath-данным. Отмечая гранулы из списка справа, можно наглядно увидеть пространственное покрытие для каждой из них.
Рисунок 20: Представление гранул на карте. Полигонами отображается пространственное покрытие для каждой отдельной гранулы
В каждом из трех проиллюстрированных представлений [18, 19, 20] доступно моментальное скачивание каждой отдельной гранулы посредством протоколов FTP и OPeNDAP [21].
Рисунок 21: Кнопки для моментальной загрузки гранулы через протоколы FTP и OPeNDAP
Представление в виде презентации [22], в основном, применимо к данным глобального покрытия и призвано визуализировать те или иные динамические процессы. Запустив презентацию, система в соответствии с заданными настройками пролистает предварительные изображения в высоком разрешении. Следует отметить, что данная имплементация почти не уступает по скорости воспроизведения и качеству видеороликам, и подходит для создания хорошего визуального эффекта на широкую аудиторию.
Рисунок 22: Представление в виде презентации. В данном случае отображены данные абсолютной динамической топографии
Страница гранулы
Страница [23] представляет сводку информации по отдельной грануле. Здесь данные визуализированы на карте, дана палитра. Так же, как и в каталоге, даются ссылки на скачивание (FTP, OPeNDAP), обеспечивается возможность загрузки изображения в высоком разрешении, а также XML-описания для программы Google Earth (кнопки «Изображение» и «KML» соответственно).
Рисунок 23: Страница гранулы
Текстовые страницы
Для удобства пользователя, в SATIN заложена функциональная возможность предоставлять справочную информацию по каждому из продуктов, а также по большинству сущностей, к нему относящихся (имеются ввиду платформы, сенсоры, геофизические параметры, форматы данных и т.д.).
Рисунок 24: Текстовые страницы информационного портала SATIN. Описание продукта.
Для агрегирования информации по наиболее актуальным вопросам создан иллюстрированный раздел FAQ.
Рисунок 25: Текстовые страницы информационного портала SATIN. Часто задаваемы вопросы.
Выходные данные
Изображения [26, 27], полученные через информационный портал SATIN для двух различных гранул, иллюстрируют данные по абсолютным геострофическим скоростям [26] и температуре поверхности океана [27]. Оба изображения относятся к одному интервалу времени: 07 сентября 2011 года.
Рисунок 26: Продукт Maps of Absolute Geostrophic Velocities - Delayed Time Data, гранула dt_ref_global_merged_madt_uv_20110907_20110907_20120313.nc.gz
Рисунок 27: Продукт NOAA Optimum Interpolation 1/4 Degree Daily Sea Surface Temperature Analysis AVHRR+AMSR, гранула amsr-avhrr-v2.20110907.nc.gz
Рисунок [28] иллюстрирует возможности системы NAIAD для нахождения корреляций между различными геофизическими параметрами. В данном случае для мыса Игольный были найдены данные по температуре поверхности океана и приводному ветру в заданный интервал времени. Система поддерживает функцию изменения прозрачности слоёв, что позволяет визуально найти определенные зависимости. Экспорт в формат KML позволяет отображать данные в программе Google Earth [29,30,31].
Рисунок 28: Визуализация поля поверхностной температуры и поля ветра в системе NAIAD
Рисунок 29: Отображение полей температуры поверхности океана и поля ветра для региона мыс Игольный в программе Google Earth. Данные загружены с помощью KML-файла, произведенного системой NAIAD.
Рисунок 30: Визуализация полей течений в программе Google Earth. Данные загружены с помощью KML-файла, произведенного системой NAIAD.
Рисунок 31: Визуализация поля абсолютной динамической топографии в программе Google Earth. Данные загружены с помощью KML-файла, произведенного системой NAIAD.
Разработанные методы визуализации полей гидрометеорологических параметров и обеспечения доступа к потокам спутниковых данных на основе использования информационного портала позволяют решить определяющую задачу, стоящую перед лабораторией в целом и перед спутниковым информационным порталом SATIN, в частности, а именно решить основные проблемы, возникающие при работе со спутниковыми данными, и предоставить пользователям быстрый и гибкий инструмент для поиска и извлечения готовых продуктов из большого числа архивов спутниковых данных, которые точно соответствуют его потребностям и интересам.