Смекни!
smekni.com

Реализация компонентов информационной системы архива спутниковых данных (стр. 2 из 2)

· IntelliJ IDEA 7 – интегрированная среда разработки

· PostgreSQL 8.2 – сервер базы данных

· pgAdmin 3 – утилита для администрирования СУБД PostgreSQL

5.2 Модули и алгоритмы

Проект состоит из двух классов 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 Возвращает время.

5.3 Структуры данных

База данных состоит из 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 Идентификатор папки в которой лежит файл

6. Реализация и тестирование

Исходный код классов занимает 20 кб (примерно 500 строк кода на языке Java и примерно 50 строк на SQL). Код расположен в пяти файлах MTSAT.java, MTSATMetadataSource.java, INV.java, INF.java inventor.sql .

Механизм вызова модуля, соответствующего типу файла, в настоящее время не реализован, поэтому для тестирования сбора метаданных был использован следующий упрощенный код:

Class aClass = Class.forName("em.bv.storage.MTSATMetadataSource");

Constructor constructor = aClass.getConstructor(File.class);

MetadataSource source = (MetadataSource) constructor.newInstance(newFile("g5200803010133.gms"));

System.out.println("time="+ source.getTime());

System.out.println("length=" + source.getLength());

System.out.println("quality=" + source.getQuality());

System.out.println("source.getLu() = " + source.getLu().toTrimString());

System.out.println("source.getRu() = " + source.getRu().toTrimString());

System.out.println("source.getRd() = " + source.getRd().toTrimString());

System.out.println("source.getLd() = " + source.getLd().toTrimString());

System.out.println("satelliteTurn=" + source.getTurn());

System.out.println("preview length=" + source.getPreview().length);

System.out.println("blk0 length=" + source.getBlock0().length);

При тестировании системы инвентаризации были использованы имеющиеся файлы, заполнена база данных инвентаризации. Получена информация о каждом файле, хранящемся в этой базе.

В ходе тестирования ошибок обнаружено не было.

Заключение

Таким образом, в процессе курсовой работы:

· Был изучен формат файла данных со спутника MTSAT-1R

· Был реализован алгоритм получения необходимых полей с нужными данными

· Была разработана структура базы данных инвентаря

· Реализована утилита внесения данных в инвентарь

· Реализована утилита получения данных из инвентаря

Список литературы

1. Центры коллективного пользования Российской Академии Наук // М.: Наука, 2004, 192 с.

2. Ефремов В.Ю., Лупян E.A., Мазуров A.A., Прошин А.А., Флитман Е.В. Технология построения автоматизированных систем хранения спутниковых данных // Современные проблемы дистанционного зондирования Земли из космоса: Физические основы, методы и технологии мониторинга окружающей среды, потенциально опасных объектов и явлений. Сборник научных статей. Москва: Полиграф сервис, 2004 с. 437-443

3. Каталог метаданных для файлов NOAA // Центр регионального спутникового мониторинга окружающей среды ДВО РАН // http://www.satellite.dvo.ru