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