УДК 504.064.36, 504.064.37
Н.В. Волков, А.А. Донцов, А.А. Лагутин
Разработка геопортальной системы для решения задач регионального космического мониторинга*
N.V. Volkov, A.A. Dontsov, A.A. Lagutin
Development of Geoportal System to Solution Problems of the Regional Space Monitoring
Представлены первые результаты разработки в отделе космического мониторинга АлтГУ геопортальной системы, сопряженной с данными дистанционного зондирования. Обсуждается возможность использования свободного программного обеспечения для обработки и визуализации данных регионального космического мониторинга. Ключевые слова: геопортал, региональный космический мониторинг, дистанционное зондирование, консорциум УНИГЕО.
БО! 10.14258^^(2013)1.2-30
The first results of the geoportal system development associated with the remote sensing data of the ASU space monitoring center are presented. We discuss the free software applying for processing and visualization of the regional space monitoring data.
Key words: geoportal, regional space monitoring, remote sensing, UNIGEO consortium.
Введение. Системы дистанционного зондирования Земли позволяют оперативно получать разнородную объективную информацию о быстро меняющихся процессах, происходящих на достаточно больших территориях. Большие объемы данных, получаемые с помощью спутниковых приборов, стимулируют разработку современных информационных систем для обработки и хранения файлов. Наряду с этим развиваются новые технологии организации доступа к хранилищам таких данных с целью привлечения широкого круга пользователей к решению задач оперативного регионального спутникового мониторинга.
Новый стимул таким разработкам придало создание консорциума УНИГЕО (http://unigeo.ru/), объединившего исследовательские группы ведущих вузов и научно-технических центров России. Цель создания консорциума - объединение ресурсов и технологических разработок центров регионального космического мониторинга для решения широкого круга исследовательских и образовательных задач, связанных с использованием данных дистанционного зондирования Земли. Создание единой университетской сети центров космического мониторинга подразумевает активное использование геопортальных систем.
Данная работа посвящена изучению специали-
*Работа выполнена при частичной поддержке РФФИ (гранты №12-05-98083 и №12-07-00545) и Программы стратегического развития АлтГУ (подпроект 2.1.2.1).
зированного программного обеспечения и разработке на его основе геопортальной системы регионального спутникового мониторинга.
Информационная основа работы. В разрабатываемой системе используются данные, полученные прибором MODIS (MODerate-resolution Imaging Spectroradiometer — сканирующий спек-трорадиометр среднего разрешения), установленным на борту спутников Terra и Aqua [1-3]. Работы по приему и обработке этих данных проводятся в отделе космического мониторинга АлтГУ уже более десяти лет [3].
После первичной обработки данные поступают в хранилище в виде файлов формата HDF [3-5]. Hierarchical Data Format (иерархический формат данных) разработан для хранения больших объемов цифровой информации. HDF является основным форматом для хранения данных, полученных со спутниковых приборов. Содержимое файлов организовано подобно иерархической файловой системе. Для доступа к данным применяются пути, сходные с POSIX-синтаксисом, например, /path/to/resource. В HDF-файлах содержатся следующие сведения:
• система координат, используемая для интерпретации или отображения данных;
• масштабы координатных осей;
• метки для каждой оси и для всего набора данных в целом;
• единицы измерения величин;
• максимальное и минимальное значение величин;
• информация о калибровке данных;
• информация о дополнительных или отсутствующих значениях.
Наконец, следует отметить, что каждый HDF-файл, как правило, содержит несколько наборов данных по отдельным спектральным каналам спутниковых приборов, информацию о режиме сканирования и др.
Архитектура геопортала. Разрабатываемая геопортальная система позволяет по запросу пользователя геопортала через веб-интерфейс системы сгенерировать конфигурационный файл для извлечения из HDF-файлов необходимой информации нужного спектрального канала, конвертировать результат запроса в формат растровых изображений Geotiff и при помощи специального программного обеспечения визуализировать в окне браузера результат в виде растровой карты. Архитектура геопортала и последовательность обработки данных представлена на рисунке 1).
Рис. 1. Блок-схема работы геопортала
Из HDF в Geotiff. Наиболее трудоемким и требовательным к аппаратным ресурсам системы этапом обработки запроса пользователя является преобразование HDF-данных в файл растрового формата Geotiff. Одной из наиболее существенных проблем может оказаться запрос пользователем данных по региону, который может только частично войти в область измерения спутникового прибора за один проход (гранула), другая запрашиваемая часть может войти в следующую или предыдущую гранулу, а также в гранулу другого спутника, имеющего аналогичную измерительную аппаратуру. Для решения задачи объединения гранул на основе библиотеки GDAL [6], предназначенной для работы с географическими дан-
ными, была разработана утилита для объединения HDF-данных и последующей их конвертации в формат Geotiff. Основу этой утилиты составляют программы gdal_merge и gdalwarp библиотеки GDAL.
Заметим, что функциональные возможности, предоставляемые программами библиотеки GDAL, весьма широки. Библиотека включает программы [6]:
• gdalinfo — вывод подробной информации о растре;
• gdal_merge — программа для объединения сканов;
• gdal_translate — конвертация растров из одного формата в другой;
• gdalwarp — перепроецирование данных из одной системы координат в другую;
• gdaltransform — преобразование координат.
Помимо компонент библиотеки GDAL, для
«склейки» и последующей конвертации HDF-файлов были проанализированы возможности программных продуктов, распространяемых NASA, таких как ModisTools и HEG [7]. Эти программы имеют как графический, так и консольный интерфейс, просты в использовании, но требуют больше вычислительных ресурсов и не поддерживают технологии параллельной обработки потоков данных. Поэтому окончательный выбор был сделан в пользу компонент библиотеки GDAL.
Приведем пример команд для работы с данными. В командах, приведенных ниже, символ $ служит для обозначения стандартного приглашения интерпретатора командной строки, а \ обозначает перенос на новую строку.
Пример 1. Просмотр списка форматов, поддерживаемых библиотекой GDAL (результат зависит от того, какие модули были подключены/отключены при компиляции библиотеки).
$ gdalinfo -formats
Пример 2. Извлечение из исходного файла (input.tif) данных по трем каналам с номерами
1, 2, 3 в выходной файл (output.tif).
$ gdal_translate -b 3 -b 2 -b 1\ input.tif output.tif
Пример 3. Конвертация HDF-данных в формат Geotiff.
$ gdalwarp -overwrite -of GTiff HDF5_EOS:\ EOS_SWATH:"110601_081441.hdf":VNIR_Band1:\ ImageData output.tif
Пример 4. Конвертация HDF-данных в Geotiff для заданной области. В примере — это область с координатами (50-60)° с.ш., (75-90)° в.д.
$gdal_translate -of GTiff -projwin\
75.00 60.00 90.00 50.00 input.tif output.tif
Пример 5. Перепроецирование HDF-данных из синусоидальной проекции (по умолчанию принята для некоторых продуктов прибора MODIS) в географические координаты.
$ gdalwarp -s_srs\
"+proj=sinu +lon_0=0 +x_0=0 +y_0=0\ +a=6371007.181 +b=6371007.181 +units=m\ +no_defs" -t_srs EPSG:4326 -of GTiff
input.tif output.tif
Заметим, что каждая из команд, приведенных в примерах, может быть помещена в специальный скрипт-файл, что позволит производить обработку больших массивов данных в автоматическом режиме. Кроме этого, благодаря библиотеке SWIG [8] пакет GDAL может быть использован в программах-скриптах, написанных на языках программирования высокого уровня, таких как Python, Java, C# и т.д. Рассмотрим работу с GDAL средствами языка Python.
GDAL Python API состоит из пяти основных модулей и пяти дополнительных (существуют для совместимости со старыми версиями):
1. gdal — Python интерфейс к библиотеке GDAL;
2. ogr — Python интерфейс к библиотеке OGR для работы с векторными данными;
3. osr — работа с системами координат;
4. gdal_array — вспомогательные функции;
5. gdalconst — предопределенные константы.
В программе подключить модули можно оператором
from osgeo import modulename,
указав вместо modulename название требуемого модуля.
Ниже представлены простейшие примеры использования компонентов GDAL в Python-программах.
Пример 6. Для открытия растра используется функция gdal.Open(), аргументами которой являются полный путь к растру и необязательная константа, описывающая режим открытия. Если константа опущена, то подразумевается режим только для чтения. В случае успешного открытия файла функция вернет объект GDALData, в противном случае — None.
import osgeo.gdal as gdal
gdalData = gdal.Open( "input.tif" )
if gdalData is None:
print "ERROR: can’t open raster" sys.exit( 1 )
Пример 7. Объект gdalData позволяет получить информацию о количестве каналов растра и служит для извлечения данных и метаданных. Все используемые функции имеют понятные названия.
print "Size", "x", gdalData.RasterXSize,\ "y", gdalData.RasterYSize print "Num of bands", gdalData.RasterCount print "Proj", gdalData.GetProjection()
Пример 8. Любой растр можно представить в виде массива. Одноканальный — в виде двумерного массива размерностью X на Y, многоканальный — в виде многомерного. GDAL Python API позволяет получить доступ как ко всему растру сразу, так и к любому каналу. Результатом такой операции будет массив Numpy соответствующей размерности (Numpy — расширение языка Python, добавляющее поддержку больших многомерных массивов и матриц [9]):
# получаем весь растр целиком raster = gdalData.ReadAsArray()
# получаем отдельный канал gdalBand = gdalData.GetRasterBand( 1 ) band_1 = gdalBand.ReadAsArray()
Кроме того, можно обрабатывать растр построчно или блоками.
# получаем размер блока
line = gdalBand.ReadAsArray( xsize, ysize )
Формирование карты. Для предоставления результатов обработки данных пользователям в разрабатываемой системе использованы современные средства публикации геопростран-ственных данных в сети Internet, основанные на стандартах OGC [10]. В качестве одного из таких средств выбрано программное обеспечение с открытым кодом — картографический сервер UMN MapServer [11]. На завершающем этапе приложение Mapserver формирует из данных Geotiff карту, которую в качестве результата запроса видит пользователь (см. рис. 1).
Основу MapServer составляет CGI-программа mapserv, которая принимает от пользователя параметры (файл описания карты, слои, размеры текущей карты и т.п.), указанные в адресной строке браузера, после чего отображает требуемую карту пользователю. Обычно это происходит так: получив от пользователя запрос, MapServer генерирует растровый файл и встраивает его в html-документ, отсылаемый пользователю. Какие слои будут участвовать при генерации файла, как именно они будут отображаться, будут ли подписаны объекты на карте, а также многое другое указывается в специальном файле с расширением .map, который передается программе mapserv
в качестве одного из параметров, заданных пользователем в строке адреса.
Каждый map-файл начинается с ключевого слова MAP, обозначающего начало описания карты [11]. Содержимое map-файла представляет собой глобальный раздел MAP, внутри которого располагаются другие разделы, в частности, разделы LAYER, содержащие описание опубликованных слоев. Описание объекта заканчивается ключевым словом END. Основой объекта являются пары «ключевое слово — значение» и другие объекты.
Ниже приведен пример структуры map-файла (символ # служит для вставки комментариев):
MAP
# Имя карты
NAME ’Altay Region’
SIZE 1600 1300
EXTENT 60.22 48.99 110.00 57.99 IMAGECOLOR 192 192 192 IMAGEQUALITY 95 IMAGETYPE png OUTPUTFORMAT NAME png DRIVER "GD/PNG"
MIMETYPE "image/png"
END
END
# Параметры WMS сервера METADATA
’wms_title’ ’Altay Region ’ ’wms_onlineresource’ \ ’URL/cgi-bin/mapserv?map=altai.map’ ’wms_srs’ ’EPSG:4326’
END
# Внутри объекта MAP определяются
# слои (объекты LAYER).
# Для отображения карты должен быть
# определен как минимум один слой.
LAYER
NAME ’Altay’
TYPE RASTER
DATA ’altay-idx.tif’
METADATA ’wms_title’ ’world_raster’
END
END
STATUS DEFAULT TRANSPARENCY 100 END END
END # Конец описания карты.
Описание всех объектов и атрибутов map-файла можно найти в официальной документации [11].
Web-интерфейс. Завершающий этап обработки запроса пользователя — визуализация дан-
ных в браузере (см. рис. 1). Интерактивную составляющую геопортальной системы реализует JavaScript-библиотека OpenLayers [12].
OpenLayers позволяет создать web-интерфейс для отображения картографических материалов, представленных в различных форматах и расположенных на различных серверах. Благодаря OpenLayers разработчик имеет возможность создать собственную карту, включающую слои, предоставляемые сторонними WMS (Web Map Service) и WFS (Web Feature Service) серверами (например, картографическими сервисами Google).
Помимо визуализации WMS и WFS слоев на единой web-карте, а также редактирования предоставляемых данных, OpenLayers обладает следующими возможностями [12]:
1) добавление на карту панели навигации (включена по умолчанию). На панели находятся кнопки сдвига карты (север-юг, запад-восток), увеличение и уменьшение масштаба;
2) перемещение карты при помощи мыши;
3) изменение масштаба карты при прокрутке среднего колеса мыши;
4) получение координат точки, над которой находится указатель мыши;
5) добавление панели управления включения/отключения слоев карты;
6) выбор произвольного объекта и получения информации о его атрибутах;
7) управление прозрачностью используемых слоев карты;
В) добавление к карте определяемых пользователем элементов (точек, линий, многоугольников) и др.
По своей сути OpenLayers является набором скриптов, написанных на JavaScript. Эта библиотека не требует установки в привычном смысле. Для того чтобы начать работать с OpenLayers, достаточно загрузить библиотеку с официального сайта [12], распаковать ее и перенести в каталог проекта файл build/OpenLayers.js и каталоги theme и img. На этом установка завершена.
Ниже приведен пример подключения OpenLayers к html-странице.
<html>
<head>
<title>OpenLayers Example</title>
<script src="./js/OpenLayers.js"></script> </head>
<body>
<div style="width:100%; height:100%" id="map"> </div>
</body>
</html>
Тестирование системы. Для проверки работоспособности системы использовались продук-
Рис. 2. Пример визуализации данных ЫСОК для территории Алтайского края
Рис. 3. Распределение озона (ед. Добсона) в атмосфере для ряда районов Алтайского края
ты спутникового прибора MODIS MOD09GA и MOD07. Продукт MOD09GA содержит информацию об отражающей способности земной поверхности. Выбор этого продукта обусловлен тем, что файлы данных имеют наибольший объем из всех данных серии продуктов MODIS, что позволяет оценить максимальное время запроса. Для тестирования были взяты данные по двум ячейкам, обозначаемым в HDF как h23v03 и h22v03. Продукт MOD09GA поставляется в глобальной синусоидальной проекции, где вся поверхность Земли делится на ячейки примерно по 10° широты и 10° долготы. Для использования его в геопорталь-ной системе, как отмечено выше, необходимо пе-репроецирование в географическую проекцию.
При тестировании системы была произведена вся цепочка операций: объединение HDF-файлов
в один, перепроецирование, конвертация и отри-совка карты. Анализ показал, что именно эти процедуры являются наиболее требовательными к ресурсному обеспечению системы. Следует отметить, что файлы остальных продуктов MODIS имеют меньший объем, и их обработка занимает существенно меньше процессорного времени.
Кроме того, кеширование данных средствами web-сервера и аппаратной части системы значительно ускоряет их обработку при повторном запросе.
Пример визуализации данных спутникового прибора MODIS (продукт MOD09GA) для территории Алтайского края приведен на рисунке 2. На рисунке, кроме карты, видны объекты навигации OpenLayers.
Рис. 4. Распределение температуры подстилающей поверхности (К) для ряда районов Алтайского края
Одним из объектов исследования радиометра МОБІБ является озоновый слой (продукт МОБ07). Для вычислений суммарной толщины озонового слоя используются как дневные, так и ночные данные. Полученные изображения (см. рис. 3) имеют разрешение 5 км.
Продукт МОБ07 содержит также данные о распределении температуры подстилающей поверхности. Пример визуализации этих данных приведен на рисунке 4.
Результаты и выводы. В работе представлена технология разработки геопортальной систе-
мы, сопряженной с данными дистанционного зондирования Земли. Приведены примеры работы со специализированным программным обеспечением (СБЛЬ, МарБегуег, ОрепЬауеге).
Показано, что разрабатываемая система может использоваться для решения широкого круга исследовательских и образовательных задач, связанных с оперативным региональным спутниковым мониторингом состояния атмосферы и подстилающей поверхности, а также с обработкой данных дистанционного зондирования.
Библиографический список
1. Salomonson V.V., Barnes W.L., Maymon P.W. et al. MODIS: Advanced facility instrument for studies of the earth as a system // IEEE Trans. Geosci. Remote Sens. — 1989. — V. 27, №2.
2. Barnes W.L., Xiong X.L., Salomonson V.V. Terra MODIS and Aqua MODIS // Adv. Space Res.
— 2003. — №32.
3. Лагутин A.A., Никулин Ю.А., Жуков А.П. и др. Математические технологии оперативного регионального спутникового мониторинга характеристик атмосферы и подстилающей поверхности. Ч. 1: MODIS // Вычислительные технологии.
- 2007. - Т.12, №2.
4. HDF - Hierarchical Data Format [Electronic resource]. - URL: http://www.hdfgroup.org/
5. Yang W. A review of remote sensing data formats for earth system observations / In book J.J. Qu, W. Gao, M. Kafatos et al. Earth science satellite remote sensing. Vol. 2: Data, computational processing, and tools. - Tsinghua University Press, Beijing and Springer-Verlag, 2006.
6. GDAL — Geospatial Data Abstraction
Library [Electronic resource]. - URL:
http://www.gdal.org
7. NASA Distributed Active Archive Center (DAAC) at NSIDC [Electronic resource]. - URL: http://nsidc.org/data/modis/tools.html
8. SWIG — Simplified Wrapper and Interface Generator [Electronic resource]. - URL: http://www.swig.org/
9. Numpy and Scipy Documentation [Electronic resource]. URL: http://docs.scipy.org/doc/
10. Open Geospatial Consortium
(OGC) [Electronic resource]. - URL:
http://www.opengeospatial.org
11. MapServer 6.2.1 Documentation
[Electronic resource]. - URL:
http://mapserver.org/documentation.html
12. OpenLayers: Free Maps for the Web
[Electronic resource]. - URL: http://openlayers.org