Интерактивная работа с данными на языке idl
Вид материала | Документы |
- Структура программы в языке программирования С++. Обмен данными между функциями (параметры, 37.24kb.
- Языки манипулирования данными (ямд), 68.4kb.
- Туристическая компания, 188.59kb.
- М. Н. Работа над содержанием задачи, 529.14kb.
- Игровые программы на турбазе Чусовая для групп от10 человек: Детская интерактивная, 18.27kb.
- Лабораторная работа №4 Тема : Структурный тип данных в языке С++, 112.14kb.
- Viii. Управление данными план, 131.4kb.
- Александр Андреевич Иванов. Живопись. Рисунок. Акварель. Интерактивная программа, 300.39kb.
- Лабораторная работа №8 Тема: Интерактивная доска, 103.55kb.
- Учебная программа модульного курса, 29.73kb.
2Одномерные массивы данных
2.1Визуализация данных
Одна из важнейших манипуляций с данными – их визуализация, то есть представление в графическом виде на экране и/или в виде твёрдой копии. Те, кто привык работать с данными на FORTRANе, обычно просматривают численные значения, сгруппированные в колонки и строки. Однако этот способ не нагляден, занимает много времени и поэтому неэффективен. Разумеется, иногда можно и распечатать некоторые значения, но это требуется не так уж часто. Намного более эффективен просмотр наборов данных на экране в графическом представлении. IDL предоставляет для этого следующие возможности.
Для того, чтобы вывести одномерный массив Y на экран, следует ввести команду:
PLOT, Y
В этом случае мы увидим изменения переменной Y как функцию от номера элемента в массиве. Однако если частота снятия отсчётов неравномерна, истинный график будет искажён. В этом случае лучше воспользоваться другим способом, свободным от этого недостатка:
PLOT, X, Y
Например, Y представляет некоторый временной профиль, а X – массив значений моментов времени, в которые сняты отсчёты. Даже если частота снятия отсчётов неравномерна, мы увидим правильный график.
Отметим, что вызов процедуры PLOT с двумя аргументами – наиболее общий и гибкий способ использования процедуры, позволяющий просто строить корректные графики в более сложных случаях:
графики с осями, размеченными в часах, минутах и секундах;
графики неоднозначных функций (у которых одному значению X соответствует более одного значения Y):
PLOT, X, Y и PLOT, Y, X
изображение нескольких величин с различными частотами отсчётов на одном и том же графике:
PLOT, time1, value1
OPLOT, time2, value2
и так далее.
Если визуализируемая величина изменяется в очень широких пределах, можно воспользоваться графиками с логарифмическими или полулогарифмическими осями:
PLOT_IO, X, Y | линейная горизонтальная ось, логарифмическая вертикальная ось |
PLOT_OO, X, Y | обе оси логарифмические |
PLOT_OI, X, Y | логарифмическая горизонтальная ось, линейная вертикальная ось |
Если изображаемая величина изменяется в небольших пределах относительно некоторого большого значения, можно подчеркнуть эти изменения с помощью
PLOT, X, Y, /ynozero
Если мы хотим ограничить набор данных некоторым значением LEV снизу, можно сделать так:
PLOT, X, Y > LEV
Знак “больше” (>) – оператор максимума в IDL. Величина " A > B" равна наибольшей из A и B. Аналогично, знак “<”– оператор минимума в IDL. Оба этих оператора можно применять к массивам любой, но одинаковой, размерности.
Если мы хотим рассмотреть более детально некоторую часть графика, можно задать диапазон для X и/или Y:
PLOT, X, Y, xrange = [X0, X1], yrange = [Y0, Y1]
Для изображения более одного графика на графическом устройстве можно установить поле MULTI системной переменной !P. Это 5-элементный массив, элементы которого задают:
Элемент | Значение |
!P.MULTI[0] | Полное количество остающихся графиков |
!P.MULTI[1] | Число графиков по горизонтали (вдоль оси X) |
!P.MULTI[2] | Число графиков по вертикали (вдоль оси Y) |
!P.MULTI[3] | Число графиков вдоль оси Z |
!P.MULTI[4] | 0: вначале слева направо, затем сверху вниз; 1 – обратный порядок: вначале сверху вниз, затем слева направо |
Когда !P.MULTI[0] = 0, производится стирание страницы.
Например, установка !P.MULTI = [4, 2, 3, 0, 1] задаёт 6 графиков на страницу с выводом сначала по столбцам, двух по горизонтали и трёх по вертикали. Также эта установка отключает стирание графического устройства и устанавливает следующий вывод начиная с позиции третьего графика (с левого нижнего угла). Последующая позиция вывода будет в правом верхнем углу, и затем в позиции ниже. Чтобы вернуться к выводу одиночного графика, следует установить просто !P.MULTI = 0.
Имеется специфика при выводе графики в файл формата PostScript. Когда число графиков превысит их полное заданное количество, вывод будет производиться на следующую, новую страницу. Например, если !P.MULTI = 0 и мы введём
PLOT, FINDGEN(100)
PLOT, FINDGEN(100)
– появится вторая страница.