В данный момент в Центре функционирует информационная система для файлов данных, полученных со спутников серии NOAA [3], она позволяет производить поиск и просмотр информации как через веб-интерфейс на сайте Центра, так и через сервер SSE Portal. Реализована утилита извлечения метаданных из файлов данных, полученных с полярно-орбитального спутника FY-1D.
Имеющиеся утилиты извлечения метаданных не могут быть использованы для файлов данных полученных со спутника MTSAT-1R, так как они имеют другой формат.
Новая архитектура системы метаданных потребовала создание подсистемы, отвечающей за справочную информацию о расположении и способе доступа к файлам спутниковых данных. До сих пор эта информация хранилась в базе метаданных наряду с остальными атрибутами. Решение этой задачи в рамках отдельной подсистемы (инвентаря) делает модернизацию и поддержку проще, позволяя компонентам эволюционировать независимо.
Требование к окружению
Минимальные аппаратные требования включают оперативную память 64 Мб, Процессор с частотой 500 МГц.
|
|
|
Также для работы программы необходима установка Java Runtime Environment версии не ниже 1.5.
Для инвентаризатора также необходима установка сервера PostgreSQL, JDBC драйвер для PostgreSQL.
Спецификация данных
Процедур сбора метаданных работает с данными, полученными со спутника MTSAT-1R и сохраненных в формате HIRID.
Файл данных состоит из кадров. Каждый кадр представляет собой данные описывавшие этот кадр, и значения полученные радиометрами спутника.
Функциональные требования
Процедур сбора метаданных требует:
• Методы для извлечения информации, используемой для заполнения полей метаданных
• Методы для генерации уменьшенного изображения
Изображение должно строиться по данным одного из каналов (ИК) и быть кодировано в формат grayscale JPEG и доступно в виде массива байт.
Модули, генерирующие метаданные на основе спутниковых данных должны реализовывать интерфейс MetadataSource. Этот интерфейс описывает произвольный источник метаданных для файлов полярно-орбитальных спутников. Интерфейс требует определения ряда методов для получения необходимой информации. Помимо этих методов, класс, реализующий данный интерфейс, должен иметь конструктор с файлом в качестве параметра (java.io.File).
Для инвентаризации необходимо:
· База данных инвентаризации.
· Утилита, заполняющая базу данных инвентаря данными о расположении файла.
· Утилита для извлечения этих данных из инвентаря.
Проект
Средства реализации
Так как в связи с спецификой лаборатории необходима работа под любой платформой и существующая часть системы написана на языке Java в качестве языка программирования был выбран язык Java. Сервером базы данных был выбран PostgreSQL так как он уже функционирует в лаборатории.
|
|
|
Инструментарий разработки:
· Sun JDK 1.6 – компилятор + утилиты и библиотеки
· IntelliJ IDEA 7 – интегрированная среда разработки
· PostgreSQL 8.2 – сервер базы данных
· pgAdmin 3 – утилита для администрирования СУБД PostgreSQL
Модули и алгоритмы
Проект состоит из двух классов MTSATMetadataSource и MTSAT.
MTSATMetadataSource – реализует интерфейс MetadataSource. Внутри конструктора создаются экземпляр. Реализованы методы возвращающие необходимые поля этого экземпляра.
MTSAT – отвечает за получения необходимых полей метаданных на основе информации из заголовка файла, в том числе координаты границ изображения, даты и времени приёма, виток спутника, числа строк и присутствующие каналы.

Таблица 1. Основные методы класса MTSATMetadataSource
| Метод | Описание |
| T0MetadataSource | Конструктор класса, на входе имеет файл |
| getFormat getSatellite getSensors getTime getLu getRu getRd getLd getLength getTurn getQuality getBlock0 getPreview | Методы для чтения значений полей. Вызываются извне и необходимы для функционирования класса в рамках системы |
Таблица 2. Основные методы класса MTSAT
| Метод | Описание |
| MTSAT | Конструктор класса, на входе имеет файл |
| setSatelliteId setChannels setSatelliteTurn setQualitysetLatRu setLonLu setLength setLonRu setLatRd setLonRd setLatLd setLonLd | Методы для установки значений соответствующих полей. Вызываются изнутри |
| getId getFile getSatelliteId getSatelliteTurn getChannels getLength getQuality getLatLu getLonLu getLatRu getLonRu getLatRd getLonRd getLatLd getLonLd | Методы для чтения значений полей. Вызываются извне и необходимы для функционирования класса в рамках системы |
Для инвентаризатора были реализованы две утилиты INV и INF.
INV- получает на вход полное имя файла, архив в котором он хранится и тип спутника. Заполняет базу данных инвентаря данными о файле и выдает идентификатор файла.
INF-получает на вход идентификатор файла. Выдает информацию о файле.
Таблица 3. Основные методы класса MTSATMetadataSource
| Метод | Описание |
| getID | Вход дата и время. Выход идентификатор |
| getDate | Возвращает дату. |
| Get Time | Возвращает время. |
Структуры данных
База данных состоит из 4 таблиц file, folder, archive, file2folder.
file – Содержит информацию о файле
folder – Содержит информацию о размещении
archive – Содержит информацию об архиве
file2folder – связывает файл с его размешением

Таблица 4. таблица file
| Название поля | Тип | Описание |
| Id | Text | Идентификатор файла |
| Name | Text | Имя файла |
| invDate | Timestamp | Дата-время инвентаризации файла |
| createDate | Timestamp | Дата-время создания файла |
| modifDate | Timestsmp | Дата-время изменения файла |
| Size | Int8 | Размер файла |
Таблица 5. таблица folder
| Название поля | Тип | Описание |
| Id | Int4 | Идентификатор папки |
| Path | Text | Путь к папке |
| archivID | Int4 | Идентификатор архива в котором находиться папка |
Таблица 6. таблица archive
| Название поля | Тип | Описание |
| Id | Text | Идентификатор архива |
| Name | Text | Имя архива |
| Label | Text | Описание |
Таблица 7. таблица file2folder
| Название поля | Тип | Описание |
| fileId | Text | Идентификатор файла |
| folderId | Int4 | Идентификатор папки в которой лежит файл |






