http://www.astrogalaxy.ru/095.html

Астрономия и новые технологии программирования.

 

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

Для коммерческого софта характерно большое количество разнородных данных, их анализ, гибкая настройка на новую ситуацию. Также необходимо составление отчётов, диаграмм, анимационных блоков. Новые технологии позволяют создавать масштабируемые приложения. Их можно практически неограниченно расширять и дополнять.  В астрономии тоже существуют различные данные, звездные и планетные каталоги, научные методы исследования. Астрономия тоже требует неограниченно расширяемого программного обеспечения. Можно ли это сделать? Даже нужно. В этой статье нет объяснения того, как это делается. Тот, кто всерьез заинтересуется внутренней кухней, сможет найти последние версии программного обеспечения, инструкции и исходный код на странице проекта AstroFrame. Цель статьи показать, что позволяют делать новые технологии программирования.

1.  Архитектура универсального астрономического программного обеспечения.

 

Архитектура проекта AstroFrame зиждется на трёх китах – графическом конфигураторе, редакторе формул и открытости системы.

1.1  Графический конфигуратор.

 

            Любая модель реального мира разбивается на объекты. В астрономии это системы координат, звёзды, планеты, диаграммы, регрессионные зависимости, каталоги. Но самих объектов мало. Нужно их связывать друг с другом. Индикатор звездного скопления – с системой координат, графическую диаграмму – с базой данных, и так далее. Всё это позволяет делать графический конфигуратор. Внешне он выглядит следующим образом.

 

 

Рисунок 1. Графический конфигуратор.

 

Данный конфигуратор позволяет компоновать объекты и связывать объекты произвольным образом.

 

1.2 Редактор формул.

 

Ясно, что без формул астрономия существовать не может. Причём нужно иметь формулы, которые оперируют не только с числами, но и с логическими, текстовыми переменными,   векторами, матрицами и т. п. Рассматриваемый редактор оперирует даже с полями Галуа. Он выглядит следующим образом.

 

 

Рис. 2 Редактор формул.

 

Если Ваш браузер поддерживает Java апплеты, то Вы можете поработать с ним на сайте   www.orc.ru/~ipro

 

Область применения редактора очень широка. Он позволяет задавать траектории движения, дифференциальные уравнения. Кроме того, он используется для задания цвета и размера небесных тел при их индикации на картах и диаграммах. Также он применяется при фильтрации выборок из звёздных каталогов и составления таблиц отчётов.

 

1.3 Открытость системы.

 

Любое продвинутое программное обеспечение является открытым. Например, Вы можете написать собственный Plugin и тем самым расширить функциональные возможности текстового редактора Winword. Также и качественное программное обеспечение в области астрономии должно обеспечивать возможность пользователю применять свои наработки. Упоминаемая ранее программа AstroFrame, к примеру, даёт Вам возможность добавлять к ней написанный Вами объект – квадратик «управляемый джойсиком космический аппарат», и этот аппарат будет пролетать между звёздами, сформированными при помощи других квадратиков.

 

 

2.  Вернёмся к Астрономии.

 

Чтобы понять достоинства предлагаемого подхода, лучше всего продемонстрировать, как он позволяет решать типичные астрономические задачи.

 

2.1 Регрессия диаграммы Герцшпрунга – Рассела [1].

 

Данный пример фактически является копией расчёта, приведённого в [2]. Однако в [2] для решения задачи нужно было составлять отдельную программу. Многофункциональность среды обеспечивает возможность воспроизвести расчёты, приведённые в [2] не составляя дополнительного программного кода. Рассмотрим шаги выполнения данной операции.

 

 

 

Шаг 1. Извлечение данных из базы.

 

На данном шаге выполняется запрос к базе данных. Для удобства пользователя разработан графический конструктор запросов, изображённый на следующем рисунке.

 

Рисунок 3. Графический конструктор запросов.

 

 

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

 

Рисунок 4. Форма запросов.

 

На данной форме мы видим SQL запрос. Большая часть запроса сформирована графическим конструктором. Однако условие

 

hip_main.Plx > 10 AND hip_main.Vmag < 2000

 

дописано пользователем. Итак, запрос позволил нам получить первичную выборку.

 

 

Шаг 2. Фильтрация выборки.

 

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

 

 

 

 

 

Рисунок 5. Пользовательский интерфейс фильтра.

 

Данный пользовательский интерфейс содержит условие фильтрации, представляющее собой логико – арифметическую формулу. Суть её заключается в том, что параллакс в два раза превосходит ошибку его определения.

 

Шаг 3. Ввод формулы регрессии.

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

 

Рис 6. Пользовательский интерфейс функционального преобразователя

Далее вводится формула регрессии.

 

 

 

Среда позволяет определить коэффициенты полинома, фигурирующие в данной формуле.

 

 

В результате имеем следующие зависимости

 

 

 Рис 7. Сравнение диаграммы Герцшпрунга Рассела с регрессионной зависимостью. (Голубым цветом изображена регрессионная зависимость.)

 

На этой диаграмме цвет звёзд тоже вычисляется при помощи редактора формул.

 

 

Рисунок 10. Диаграмма соответствующая, соответствующая регрессионной зависимости.

 

2.2 Индикация звёзд.

 

Среда «Астрономия» позволяет осуществлять индикацию, установив виртуальный визуализатор в любую точку пространства. Кроме того, имеется возможность анимации визуализации. Рассмотрим процесс анимации шаг за шагом.

 

Шаг 1. Извлечение данных из базы.

 

Этот шаг аналогичен рассмотренному выше, и мы его опускаем.

 

Шаг 2. Формирование массива звёзд.

 

Для формирования массива используется компонент, внешний вид которого изображён на следующем рисунке.

 

 

Рис 11. Компонент формирования массива звёзд.

 

 

Данный компонент связывает формируемые при помощи редактора формул параметры с координатами звёзд. Кроме того, редактор формул задаёт цвет индикации. Нулю соответствует нулевая яркость данного цвета, единице – максимальная.

 

Шаг 3. Установка визуализатора.

 

Как уже отмечалось, мы имеем возможность установки виртуального визуализатора, как и любого другого объекта релевантного геометрическому положению в произвольную точку пространства. Более того, мы можем делать подобные объекты подвижными. Жесткая система координат задаётся при помощи следующего пользовательского интерфейса.

 

Рис. 12. Внешний вид пользовательского интерфейса задания жёсткой системы координат.

 

Данный интерфейс очевиден и не требует комментариев. Пользовательский интерфейс подвижной системы координат имеет вид. Этому компоненту соответствует икона

 

Рис. 13. Пользовательский интерфейс подвижной системы координат.

 

Данный интерфейс позволяет задавать параметры движения центра системы координат и кватернион ориентации. Ему соответствует икона

 

Среда построена таким образом, что она оперирует с относительным положением систем координат. Это изображено на следующем рисунке.

 

Рис. 14. Относительное положение систем координат.

 

На данном рисунке координаты и ориентация системы координат «Система 2» отсчитываются относительно системы координат «Система 1». Аналогично можно сказать о системах координат «Система 3» и «Система 2».

 

Привязав визуализатор, к системе координат мы осуществляем визуализацию, которая изображена на следующем рисунке.

 

 

 Рис. 15. Визуализатор.

 

На данном рисунке цвет и размер звёзд зависит от их числовых и текстовых параметров в базе данных HIPPARCOS.

 

 

 

 

 

3.  Заключение.

 

Список примеров можно продолжать и далее, но это нецелесообразно. Любой желающий может загрузить последнюю версию AstroFrame и начать сам с ней работать. Более того, те, кто умеют профессионально программировать или хотят научиться, могут присоединиться к проекту AstroFrame. Заодно можно понять, как пишется программное обеспечение для коммерции. Если кто либо, намерен попробовать AstroFrame в качестве пользователя, то ему нужен компьютер с установленной платформой .NET 2.0. Сейчас в России и не только в ней такие компьютеры имеют, как правило, профессиональные программисты. Но в ближайшем будущем платформа .NET станет составной частью новых версий операционных систем семейств Windows и  Linux. Windows 2003 уже содержит .NET 1.1. В настоящее время AstroFrame поддерживает базы данных SQL Server,   Oracle, Access. По мере развития будут добавляться возможности работы с другими базами данных. Итак, за AstroFrame будущее.

 

 

 

Литература.

1) Википедия. Диаграмма Герцшпрунга — Рассела

2) Цветков А. С. Руководство по практической работе с каталогом HIPPARCOS. СПб. 2005.