Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://jet.sao.ru/hq/sun/manual/WorkScan/WRKSCANR.html
Дата изменения: Unknown Дата индексирования: Tue Oct 2 06:00:08 2012 Кодировка: Windows-1251 Поисковые слова: р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п п п п п п п |
Добавлена функция коррекции скана с помощью деления фурье образа скана на образ диаграммы.Scan->Correction->FFT Beam Convolution (На основе алгоритма Коржавина А.Н. "shaber" (доступен в виде программ на Фортране) )Основные параметры:
- размер участка (Scan width) в солнечных радиусах (т.е. какой участок скана (от центра) будет использоваться в FFT. для примера если он равен 2, значит будет использоваться + - 2 радиуса Солнца. Если этот параметр отрицательный, то коррекция положения источника (за счет выноса из фокуса) не будет производиться. Если равен нулю, то для FFT будет использоваться размер участка, отображенный в данный момент на экране. Нежелательно использовать меньше 128 точек, т.к. уменьшение количества точек ведет к ухудшению качества восстановления изображения.
202 FFTbeamCorrection Arg1 -R pol.dfx; Arg2 -L pol.dfx; Arg3 - sun size(>0 shifted;=0 screen;<0 not shifted); Arg4 - noise level
- Величина выноса из фокуса правой и левой поляризаций в мм (в используемых в 2005-2007 гг спиральных плоских облучателях расстояние между осями составляет 35 мм. т.е. вынос каждой поляризации при наблюдениях Солнца теоретически составляет 17.5 мм. для точечных источников: http://www.spbf.sao.ru/data/utils/oblnew-schema.jpg). При коррекции следует учитывать, что реальный вынос из фокуса может отличаться от расчетного. так, для точечного источника 3с273 от 25 марта 2007 21:31 на волне 6.18 см оптимальное значение смещения для источника слева составит около -115, а не -154, как следует по расчетам.
- Уровень FFT шума. Т.е. уровень FFT диаграммы ниже которого не будет деления скана на нее (примерно 0.001)
По умолчанию (при первом запуске) предлагаются параметры такие же, как в программе Коржавина.Если отмечена опция "FFT Test option" , то при выполнении функции в окне GraphView будут выводиться промежуточные результаты вычислений (форма диаграммы в линейном и логарифмическом масштабах и фурье образы скана и диаграммы). Также будет выводится окно сообщения, которое надо закрыть, чтобы двигаться дальше.В пакетном режиме данная функция тоже работает, но сначала в диалоговой моде надо настроить параметры. Основные параметры можно задать.
Добавлена возможность в пакетном режиме в имена файлов добавлять дату (%y) и время (%t) из текущего скана.
Обновления можно скачать по ссылке WS-new
26 марта 2007
Также был обновлен файл commpaсk.dat, в него включена функция калибровки по ГШ, что дает возможность использовать эту функцию для пакетной обработки.
Пример использования:
crab0koef.dat
|
В новой версии изменена функция
калибровки по точке на спокойном Солнце. Теперь Температура
Qsun и коэффициенты из файлов tab_sun.dat
и sh-fits.cfg не используются
в этой функции. Сканы масштабируются на температуру, зашитую в
фитс-файлах во второй шапке, в поле tqsun.
Эти температуры заносятся туда при преобразовании dat
файлов с помощью pas2fits, и
берутся из файла
crab0koef.dat: Данные температуры получены с помощью калибровки через ГШ по Луне. Т.е. полагая, что температура Луны на всех волнах 220 град, калибруем ГШ. Затем по ГШ калибруем запись Солнца, и снимаем спектр точки на спокойном Солнце (вторая колонка в файле). В файле tab_sun.dat третья
колонка, показывающая какая часть Солнца попадает в вертикальную
диаграмму, приравнена к 1,
по рекомендации Коржавина А.Н. и Боровик В.Н., из
соображений, что в вертикальную диаграмму1 попадает
больше Солнца, чем в гауссиану соответствующего размера.
В файле sh-fits.cfg соответственно изменилась колонка с tqsun. Но этот файл используется только для калибровки по полному потоку (с Нобеяма)
1Диаграмма направленности антенны переменного профиля является ножевой и описывается формулой *: F(r) = e -2.773 (r^2 / B^2) (3) Где В - размер д.н.а. по уровню 0.5 мощности. Для вертикальной ДНА: В (угл.сек.) = k * (l (см) /550(см)) * 206265 Где k - коэффициент распределения поля по антенне. В зависимости от того, какая часть сектора используется, может быть k = 1.22; 0.88; 0.92: В наблюдениях на Юге с Плоским со всем сектором считаем k=1.22. При этом В (угл.мин.) = 0.75 * (l (см) При численном интегрировании, начальную точку, соответствующую уровню сигнала 0.01, находим путем логарифмирования **: ln (0.01) = -2.773 (r^2/B^2) * Ш.Б. Ахмедов, В.М. Богод, В.Н. Боровик, Р.Ф. Вильсон, Г.Б. Гельфрейх, В.Н. Дикий, А.Н. Коржавин, К.Р. Ланг, З.Е. Петров, Астрофизические исследования, 1987, ?25, с.105. ** Коржавин А.Н., Тохчукова С. Х., Голубчина О.А. Алгоритм моделирования наблюдения солнечного затмения 29.03.2006 на радиотелескопе РАТАН-600 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
WorkScan 2.85
(июнь2006)
В версии 2.85
1)добавлена функция выравнивания правой и левой круговой поляризации по уровню спокойного Солнца (команда меню Scan->Correction->Equal scale RL) , а также
2)функция суммирования сканов на разных волнах (команда меню Transform-> Scans integration).
WorkScan 2.83
Версия 2.83 разработана в связи с вводом в регулярное пользование ( с сентября 2005 г) новой системы регистрации, с числом каналов ~60, в диапазоне от 1.8см до 5 см. Основные изменения:
1)Изменен FITS формат хранения данных. Для сохранения в новом формате, отметьте галочками I Worksheet и V Worksheet, включите опцию ALL, и выберите команду меню File->Save->Worksheet. В появившемся диалоге "Сохранить как" выберите формат BINARY FITS, введите имя файла, и нажмите кнопку "Сохранить". Появится окошко с вопросом "Do you save old GROUP fits?", где нужно нажать кнопку "Отмена", если Вы хотите сохранить в новом формате FITS. В противном случае файл будет сохранен в старом формате fits, который, в частности, не считывается в IDL функцией readfits.
2)Добавлена функция Scan->Calibration->Set Noise Generator
3)Добавлена функция Scan->Calibration->Noise Generator. Также модифицирована (улучшена) функция Calc->FITS Convolution
На сегодняшний день интерактивные системы обработки являются основными для наблюдателей. Увеличение количества обрабатываемой информации затрудняет процесс интерактивной обработки. Связано это и с увеличением затрат времени на полный цикл обработки, и с многократностью повторения основных операций обработки. Режим автоматической обработки не может полностью заменить это положение из-за невозможности контроля промежуточных результатов и трудностями алгоритмизации критериев качества данных.
В программе Work Scan сделана попытка соединить достоинства интерактивных и автоматических систем обработки.
Программа Work Scan реализована на языке C++ в операционной системе Win32. Она предназначена для обработки и графического представления массива одномерных сканов(векторов). Эта программа разработана в группе солнечных исследований на РАТАН-600. Поэтому часть функций обработки и некоторые поля структур с данными специфичны для обработки Солнца.
Программа обработки Work Scan реализована в среде Win32 на языке C++ с поддержкой Drag&Drop для загружаемых данных. Хранение данных в программе реализовано двухпроходной очередью динамически создаваемых структур. Каждая структура содержит данные наблюдений на одной частоте (в общем случае два ряда данных) и необходимую информацию для их обработки. На каждый массив с данными (Data) создается рабочий массив (Work) с копией этих данных. Все функции обработки производятся над данными массивов Work (массив должен быть видимым, т.е. отмечен [checked] галочкой в меню View=>Set View. Перед любой модификацией массива Data программа выводит предупреждающее сообщение с возможностью отменить данную операцию. Помимо самой очереди, в программе создается список всех ее структур с данными. Во время обработки это дает возможность перемещаться не только между соседними структурами (сканами) очереди с помощью кнопок Ь и Ю, но и непосредственно к любому выбранному скану из списка с помощью двойного щелчка мыши.(см.рис. 1)
Рис.1 Общий вид окна программы
При работе программы Work Scan в окне отображения можно показать любой выбранный скан, его часть или выбранную группу сканов. (в общем случае 'скан' состоит из двух последовательностей данных, описывающих состояние поляризации радиоизлучения R и L, каждая из которых, в свою очередь, представлена двумя массивами [Data, Work]). При этом слева и справа от скана будут отображаться шкалы отсчетов для разных поляризаций.
Если курсор находится в окне отображения, то, при нажатии левой кнопки мыши, в строке состояния отображается номер отсчета массива соответствующий положению курсора, координата курсора относительно центрального значения массива (для Солнца- относительно его центра) в единицах измерения горизонтальной шкалы, значения отсчетов положения курсора в единицах вертикальных шкал. При двойном нажатии левой клавиши мыши, при видимом окне 'Local Graph', в данном окне отображается спектр значений соответствующий положению курсора.
С помощью горизонтального перемещения курсора в окне отображения, при нажатой правой клавиши мыши, можно выбрать участок скана для более детального представления. При этом в строке состояния будет отображаться размер выделенного участка скана.
При обработке конкретного скана 'кнопка состояния работы с группой' должна быть в положении 'One'. Для работы с группой сканов или со всеми сканами 'кнопка состояния работы с группой' должна быть в положении 'All'.Выбор группы сканов производится через функцию меню View=>Scan Group. Повторный выбор данной функции отменяет выбор группы. Все операции с группой производятся с массивами одинаковой размерности и одинаковым шагом между отсчетами. Если загруженные данные (сканы) имеют разные размерности массивов или шаги между отсчетов, то с помощью функций меню Transform их можно привести к одинаковой размерности и шагу.
Основными функциями обработки реализованными в программе являются:
Во время работы программа Work Scan использует следующие служебные файлы:
tab_sun.dat, sh-fits.cfg, diagram.dat, corlogta.dat,gvi_soho.dat, bitmap3d.pal. Данные файлы должны находится в каталоге основной программы.
sh-fits.cfg
-файл, описывающий параметры диаграммы и антенны. используется для перехода
от антенных температур к потокам (функции меню Full
Flux Gauss Flux) Это текстовый файл,
который имеет следующую структуру:
|
Frq - частота
в [GHz],
Coeff2
- коэффициент перевода антенных температур в поток радиоизлучения,
Tqsun - антенная
температура спокойного Солнца на данной частоте в [К]
Theta - полуширина
диаграммы направленности,
Tann - шумовая температура
антенны в [K].
|
diagram.dat - файл шаблона диаграммы телескопа. Используется для вычисления шаблона спокойного Солнца в функции Calc=>Sun Template.
45 6 15
|
JASC-PAL 0100 256 r0 g0 b0 r1 g1 b1 ::: r255 g255 b255
Программа Work Scan поддерживает четыре формата записи данных. Один формат служит для автосохранения данных во время работы программы. Он может также использоваться для сохранения промежуточных рабочих файлов. Файлы данного формата имеют расширение wsf. Остальные форматы близки по форме или полностью соответствуют FITSстандарту. Реализованы два различных подхода к структуре загружаемых данных:
Это формат для хранения одного скана с наблюдениями в отдельном файле. Он не соответствует FITS- стандарту, но похож по структуре. Т.е. имеет FITS-образный заголовок после которого идут данные. Программа Work Scan не сохраняет данные в этом формате. Ниже приводится структура файла.
SIMPLE = F / FILE DOES NOT CONFORM TO FITS STANDARD BITPIX = 16 / INTEGER WITH '(I2)' FORMAT NAXIS = 1 / NUMBER OF DATA AXES NAXIS1 = short / LENGTH OF DATA AXIS 1 PMCSUN = float / POST MERIDIUM CENTER DATE-OBS= 'dd/mm/gggg' / TIME-OBS= 'hh:mm:ss.sss' / UT OBJECT = 'Object' / TELESCOP= 'Telescope' / ORIGIN = 'Origin' / RADIUS = short / OPTICAL SOLAR RADIUS (ARCSECOND) AZIMUTH = float / Azimuth of observ. ALTITUDE= float / Altitude of source ANGLE = float / Angle of decl. CDELT1 = float / ARCSEC N_POLAR = 2 / NUMBER OF POLARIZATIONS [1 or 2] CALIBR = 0 / FLAG OF CALIBRATION [ 0-NO 1-YES ] FLAG_IV = 1 / IF 1 => R,L; IF 0 => I,V COMMENT TQSUN - TEMPERATURE OF A SURFACE OF THE QUIET SUN AGREED WITH THE COMMENT FORM OF THE DIAGRAM OF A ANTENNA AND KOEF. OF TRANSITION TO FLUX END OBS-FREQ= float / GHz THETA-DG= float / DIMENSION OF DIAGRAMM (ARCSECOND) TQSUN = short / Ta[K] FLUX_L = float / KOEF. Ta[K] -> FLUX[S.F.U.] END POLARIZ = 1 / IF 1 - (R or R+L), IF 0- (L or R_L) BSCALE = float / BZERO = float / END
data set\r\n
POLARIZ = 0 / IF 1 - (R or R+L), IF 0- (L or R_L) BSCALE = float / BZERO = float / END
data set\r\n
Описание отдельных полей:
BITPIX - разрешенные значения поля 16 и 64. Если значение поля равно 16 тип записи данных - short (в системе Intel x86);если значение поля равно 64 тип записи short (в текстовом виде, под число отводится 8 байт)
PMCSUN - центральная точка массива(ов) измеряемая в номерах отсчетов от начала записи.
N_POLAR если значение поля равно 1 из файла считывается только первый массив данных. Второго может и не быть.
Формат хранения одного скана наблюдений.
Данный формат соответствует FITS- стандарту. Он является основным форматом программы. Файл данного формата имеет следующую структурузаголовка:
SIMPLE = T / FILE DOES CONFORM TO FITS STANDARD BITPIX = 64 / INTEGER WITH '(I8)' FORMAT NAXIS = 2 / NUMBER OF DATA AXES NAXIS1 = short / LENGTH OF DATA AXIS 1 NAXIS2 = 2 / LENGTH OF DATA AXIS 2 PMCSUN = float / POST MERIDIUM CENTER DATE-OBS= 'gggg/mm/dd' / TIME-OBS= 'hh:mm:ss.sss' / UT OBJECT = 'Object' / TELESCOP= 'Telescope' / ORIGIN = 'Origin' / RADIUS = short / OPTICAL SOLAR RADIUS (ARCSECOND) AZIMUTH = float / Azimuth of observ. ALTITUDE= float / Altitude of source ANGLE = float / Angle of decl. CDELT1 = float / ARCSEC POLARSET= 1 / SET1: IF 1 (R or R+L), IF 0 (L or R-L) CALIBR = 0 / FLAG OF CALIBRATION [ 0-NO 1-YES ] FLAG_IV = 1 / IF 1 => R,L; IF 0 => I,V COMMENT TQSUN - TEMPERATURE OF A SURFACE OF THE QUIET SUN AGREED WITH THE COMMENT FORM OF THE DIAGRAM OF A ANTENNA AND KOEF. OF TRANSITION TO FLUX OBS-FREQ= float / GHz THETA-DG= float / DIMENSION OF DIAGRAMM (ARCSECOND) TQSUN = short / Ta[K] FLUX_L = float / KOEF. Ta[K] -> Intensity[Jy/arc.sec.] BSCALE1 = float / BZERO1 = float / BSCALE2 = float / BZERO2 = float / END
Описание отдельных полей:
BITPIX - разрешенные значения поля 16 и 64. Если значение поля равно 16 тип записи данных - short (binary); если значение поля равно 64 тип записи short (в текстовом виде, под число отводится 8 байт)
PMCSUN - центральная точка массива(ов) измеряемая в номерах отсчетов от начала записи.
POLARSET - поле описывающее поляризацию первого массива данных.
Формат хранения группы сканов.
Данный формат является расширением FITS- формата (BINARY TABLE). Он служит для хранения группы сканов в одном файле. В данном формате сохраняется не только любая группа сканов, но и выделенный участок записи.
Файл имеет следующую структуру заголовка:
SIMPLE = T / BITPIX = 16 / NAXIS = 0 / EXTEND = T / COMENT This table contains the set (TFIELDS) of 1-dimensional (TFORM# COMENT and TDIM#) full disk scans of the Sun at microwaves (TTYPE#) COMENT ........ HISTORY This FITS file was created by the 'Work Scan' task. END
XTENSION= 'BINTABLE' / BITPIX = 8 / NAXIS = 2 / NAXIS1 = long / NAXIS2 = 1 / PCOUNT = 0 / GCOUNT = 1 / TFIELDS = short / EXTNAME = 'SELECTED SOLAR RADIO SCANS' / EXTVER = 1 / DATE = 'dd/mm/gg' / ORIGIN = 'Origin' / TELESCOP= 'Telescope' / INSTRUME= 'Instrument' / DATE_OBS= 'gggg-mm-ddThh:mm:ss.sss' / SCI_OBJ = 'SYNOPTIC GROUND BASED DATA FOR SOHO' / SCI_SPEC= 'MICROWAVE OBSERVATIONS' / OBJECT = 'Object' / AZIMUTH = float / ALTITUDE= float / CENTRE_X= float / XSCALE = float / ANGLE = float / SOLAR_R = float / BUNIT = 'JY/ARCSEC' / TFORMi = 'shortI' / TDIMi = '(shortI)' / TTYPEi = 'FREQUENCY float GHZ xxx' / xxx - (R or L or R+L or R-L) TSCALi = float / TZEROi = float / END
CENTRE_X - центральная точка массивов в единицах шкалы абсцисс (от начала записи)
Панель инструментов (ToolBar) содержит следующие управляющие элементы:
1 2 3 4 5 6 7 8 9 10 1.Загрузка файла с данными в программу 2. Сохранение массива(ов) Data 3.Сохранение массива(ов) Work 4. Выбор работы с группой('One' , 'All') 5.Переход к соседнему скану 6.Показ всего скана 7.Настройка 8.Переход к соседнему скану 9.Печать содержимого окна отображения 10. Запуск на выполнение списка команд
В панели инструментов видимы только активные кнопки.
Главное меню программы состоит из следующих полей: File_ Scan_ Transform_Calc_View_Spec.Func_Script_Help Ниже приводится полный список функций меню.
File | Open Загрузка
файла с данными.
Append... Добавление
в программу файлов с данными.
Print... Печать содержимого окна отображения. Export...Сохранение содержимого окна отображения в WMF или PS форматах. Set InitDirДиалог настройки переменных программы. Script Edit... Редактирование файла скриптов Run file.exe Запуск выполнения внешней программы. |
|||||||||
Scan | Data->Wrksh Копирование содержимого массива Data в массив Work. Wrksh->Data Копирование содержимого массива Work в массив Data.
|
|||||||||
Comm.List: Создание
списка часто повторяющихся операций.
PopUp Menu:Конфигурация всплывающего меню. Delete Удаление активного скана. |
||||||||||
Transform | Move Scan Сдвиг
активного скана относительно остальных (только в группе сканов).
Equal Length Приведение всех сканов к одинаковой длине массивов. Equal Step Приведение всех сканов к одинаковому шагу между элементами массивов(минимальному) и одинаковой длине массивов Scan sub scan Вычитание одного скана(даты) из остальных сканов(дат). Center Sun Нахождение центральных значений сканов и приведение сканов к одной длине. Group scan min Вычисление нижней огибающей группы сканов. Group scan aver Вычисление среднего скана из группы сканов. |
|||||||||
Calc |
Full FluxВычисление
полного потока выделенного участка массива.
Correlation Вычисление коэффициента корреляции между выделенными участками разных сканов. Sigma Вычисление AMD дисперсии выделенного участка массива. Surf3DВычисление матрицы для представления группы сканов (Surf, Contour). Local spectrum Построение спектра выделенных позиций на скане. Spectral lineАнализ выделенного участка скана на спектральные линии. Magnetic Field Вычисление напряженностей магнитного поля на выделенном участке скана по третьей гармонике гирочастоты (3570/lcr). Sun Template Построение шаблона 'спокойного' солнца. FITS convolutionВставка двумерного изображения (белый свет, рентген, магнетограмма и т.п.) и свертка его с диаграммой РАТАН. |
|||||||||
View | Choice ScaleДиалог
выбора участка массива для показа(работы).
Choice Path Окно демонстрации выбранного участка относительно всего массива. Local GraphПоказ окна для демонстрации спектров.
Scan header Показ заголовка активного скана. Gauss Param Вывод в окно редактора параметров гауссиан(после гаусс- анализа). |
|||||||||
Spec.Func | выпадающее меню (инициализируется
подключаемой DLL)
|
|||||||||
Script | выпадающее меню (инициализируется файлами каталога Script) | |||||||||
Help | Main helpВызов HELP-файла по работе с программой Work Scan About... Cancel Отмена выполнения функций с блокировками сообщений. |
ОПИСАНИЕ НЕКОТОРЫХ ФУНКЦИЙ МЕНЮ
Диалог настройки программы Work Scan Общий вид диалоговой панели и описание полей:
Flux Units - строка для вывода в текстовый редактор, X axis Units - символ для обозначения единиц оси X, Sun flux time - время получения полных потоков в часах (используется функцией Scan=>Calibr=>FullFlux) Flux Koef.- коэффициент, на который домножаются вычисляемые потоки (1.0e-4 - чтобы получить s.f.u.) Noise level - уровень шумов (используется некоторыми функциями) Min Yaxis scale I(V) - минимальный размер соответствующей шкалы в отсчетах Autosave time(min) - промежуток времени автосохранения состояния программы Vert. Beam Koef.- коэффициент для вычисления вертикальной диаграммы по формуле:
qhor[arc sec] = HBK / Frq [GHz]
Обе функции работают с парами элементов массивов симметричными относительно центрального значения (поле PMCSUNили CENTRE_X в файлах с данными).
Функция Min rel.Csun заменяет элементы участка массива отображенном на экране на минимальное значение получаемое при сравнении этих элементов с симметричными.
Функция Copy rel.Csun копирует отображенный участок массива на место симметричного участка.
Функция запрашивает параметр равный одному из следующих значений:
0 - значение постоянной составляющей вычисляется как среднее между десятью первыми и десятью последними элементами массива; 1 - значение постоянной составляющей вычисляется как среднее между десятью последними элементами массива; 2 - значение постоянной составляющей вычисляется как среднее между десятью первыми элементами массива; 3 - значение постоянной составляющей вычисляется как среднее между десятью центральными элементами участка массива изображенного на экране;
Функция автоматической коррекции переключения усиления.
После вызова функции нужно указать курсором (с помощью двойного щелчка левой клавиши мыши) место переключения на участке скана отображенного на экране
Функция вычисляет коэффициент изменения усиления и умножает на него все элементы массива правее указанного места переключения. Вычисление коэффициента осуществляется из условия аппроксимации участка из пяти точек массива в месте переключения линейной функцией.
Функция заменяет массив Work гауссианой вычисляя ее параметры из симметричных участков относительно центра Солнца(Луны) удаленных на 1.2 и 1.5 радиуса. Используется для удаления широкой составляющей записи связанной с боковыми лепестками диаграммы направленности.
Scan=>Correction=>Center Vscan
Итерационное вычисление положения центра Солнца(Луны) активного скана. Если происходит работа с группой сканов функция присваивает найденное значение всем сканам группы. Вычисление осуществляется из условия равенства производных скана на краях записи объекта.
Quiet Sun Ta после вызова функции нужно с помощью курсора (двойной щелчок левой клавиши мыши) указать в окне отображения точку , которой будет сопоставляться табличное значение антенной температуры спокойного солнца на данной волне (sh-fits.cfg). Функция отслеживает только вертикальную координату курсора. Уровень спокойного солнца на каждой волне указывается отдельно.
Quiet Point Ta после вызова функции нужно с помощью курсора (двойной щелчок левой клавиши мыши) указать на скане точку, которой будет сопоставляться табличное значение температуры спокойного солнца на данной волне (sh-fits.cfg). Функция отслеживает горизонтальную координату курсора, из которой вычисляется номер точки на скане с табличной температурой.
Full Flux. Для ее работы надо создать в основном директории [см. File=>Set InitDir] поддиректории с именами <год (пример 1990)> в которых должны находиться файлы с данными потоков за месяц с именами <месяц(3буквы).год(2цифры) (пример aug.92)>. Функция считает интеграл от скана (в интенсивности) и масштабирует скан таким образом, чтобы этот интеграл равнялся интерполированному потоку на данной волне в в данный момент времени. Интерполяция по времени- линейная, а по частоте- кубическими сплайнами с условиями на гладкость. При приравнивании учитывается, что на коротких волнах вертикальная диаграмма РАТАН захватывает не все Солнце, а только часть. Для этого используется коэффициент (из файла tab_sun.dat-[Боровик В.Н.]), который показывает, какую часть потока мы загребаем вертикальной диаграммой.
Формат файлов с данными потоков:
Дата поток1 поток2 поток3 поток4 [поток 5]
Пример файла:
1995 | 1000 | 2000 | 3750 | 9400 | 17000 |
APR | MHz | MHz | MHz | MHz | MHz |
1 | 51. | 58. | 74. | 271. | 575. |
2 | 50. | 57. | 73. | 270. | 574. |
3 | 48. | 57. | 74. | 271. | 572. |
4 | 48. | 57. | 74. | 270. | 574. |
Black bodyПеред запуском функции надо участок скана с калибровочной ступенькой отобразить на экране (в крупном масштабе).Функция запрашивает значение температуры калибровочной ступеньки.
В функциях Gauss и Median при задании отрицательного значения окно сглаживания вычисляется для каждого скана как произведение модуля введенного значения и полуширины диаграммы направленности на данной частоте.
чтобы перейти от антенных температур к потокам, используется таблица коэффициентов, полученная с помощью измерений по крабу (Коржавин А.Н.)
F_источника= интеграл (по источнику) * коэфф2 (из файла sh-fits.cfg) Скан предварительно должен быть откалиброван.
Функция аппроксимирует выделенный участок скана набором гауссиан. При выполнении функции, через окно диалога, запрашивается три параметра.
Общее количество гауссиан К-во гауссиан, положение которых будет указано курсором Аппроксимация фона кубическим сплайном |
__________ | |
Qclear=Ц | Q2vis-Q2hor |
Для вычисления матрицы двумерного представления (Surf, Contour) спектров сканов надо выделить группу сканов (функция View=>Scan Group) или нажать кнопку ALL. При выборе функции появляется диалоговое окно, в котором надо указать формат файла вывода (BMP, FITS или ASCII) и другие параметры. При создании BMP файла используется палитра из файла bitmap3d.palили другого, указанного в File=>SetInitDir=>3D Palette File
Во время вычислений критической длины волны при построении спектров поляризаций все значения меньше заданного уровня шумов заменяются нулями. Если вводимое значение минимальной поляризации отрицательное, то минимум поляризации вычисляется как произведение модуля введенного значения и заданного уровня шумов.
При загрузке двумерного изображения (белый свет, рентген, магнетограмма и т.п.) запрашивается три параметра- 1)уровень шумов карты (для свертки с диаграммой РАТАН), 2)знак позиционного угла (для поворота карты на угол, под которым диаграмма РАТАН сканирует Солнце в день наблюдения) и 3)уровень нуля для прорисовки карты в окне отображения. Рабочий массив (Worksheet) заменяется результатом свертки карты с диаграммой РАТАН. Последнее пустое окошко в Toolbar предназначено для задания смещения двумерного изображения по вертикали (в пикселах).
Построение шаблона 'спокойного' солнца. Шаблон в виде круга, с поправкой на уярчение к краю и экваториальную активность умножается на коэффициент солнечной активности. Поправка берется равной 1 на волне 2 см и в зависимости от выбора метода активности интерполируется на другие волны.
Поиск спектральных линий. Первый параметр задает отношение амплитуд на частоте линии и соседних частотах. Первая галочка опрделяет, в каких единицах ищется линия- в антенных температурах (К) или интенсивности (Ян). Вторая галочка определяет, от какого уровня отсчитываетчя амплитуда линии- от нуля или от табличного значения антенной температуры Солнца на данной волне (значения берутся из файла sh-fits.cfg).
Функция выбора группы сканов для демонстрации и работы. При вызове функции появляется следующее окно диалога.
Выбор способа представления группы сканов (см. функцию Scan Group)
Диалог основных настроек окна отображения. Общий вид окна и описание полей следующие.
Окна редактирования - если первый
символ -%, программа
отображает собственные заголовки рисунка и осей, иначе отображается содержимое
окон редактора.
Frq - отображение в списке длин волн при работе с группой Date - отображение в списке дат при работе с группой Time - отображение в списке дат и длин волн View list - показ списка при работе с группой Color -включение цветного отображения сканов Fits Image - показ подгруженного двумерного изображения List(in/out) - отображение списка внутри или снаружи рисунка со сканами Dig.Frame Включение оцифровки шкал. Sun Disk Прорисовка солнечного диска с учетом позиционных углов. View Scale - показ оцифровки шкал View wrk-gauss - отображение разности между сканом и гауссианами при гаусс- анализе Center Sun - отображение положения оптического центра и краев Солнца Show scans Intensity Data - отображение массива Data первой (R , R+L) поляризации Intensity worksheet - отображение массива Work первой (R , R+L) поляризации Polarization Data - отображение массива Data второй (L , R-L) поляризации Polarization worksheet - отображение массива Work второй (L , R-L) поляризации View <All> Message - отображение предупреждающего сообщения при работе с группой. |
Spec.Func
Выпадающее меню инициализируемое при подключении динамических библиотек функций находящихся в подкаталоге STARTUP. Интерфейс подключения библиотек подробно описан в пункте .ПОДКЛЮЧАЕМЫЕ БИБЛИОТЕКИ. По умолчанию в подкаталоге находится динамическая библиотека smoothfn.dll содержащая функции расчета нелинейного фона разработанные В.С. Шергиным и Б.Л. Ерухимовым.
Выпадающее меню которое инициализируется при подключении скриптов из каталога Script. Имя каталога может быть изменено через диалог настройки программы File=>Set InitDir. Элементы меню называются именами файлов (без расширения spt) из указанного каталога. Файлы скриптов имеют структуру, подобную файлам для пакетной обработки, но состоят только из секции [Commands]. Указанные команды выполняются только над уже загруженными данными.
step1.spt [Commands] FlagAllScan=1 ViewWorkI=1 ViewWorkV=1 IVtoRL=1 ViewDataI=0 ViewDataV=0 FindScanGreatGHz=10 CalibrQuietSunTa CalcCenterVscan=1 |
step2.spt [Commands] FlagAllScan=1 SetRangeRSun=-2.5 2.3 SubTailOfScan=3 ViewFullScan IVtoRL=1 MedianSmooth=12 GaussSmooth=-0.3 FindScanGreatGHz=4 CalibrQuietSunTa |
step3.spt [Commands] ; ViewScansGroup=3 #0.955 0.985 1.015 1.045 1.670 ViewRangeGroup=3 0.955 1.6 FlagAllScan=1 MoveScan=-100 ViewScansGroup=0 CopyWorkSheetToData SetRangeRSun=-2 2 ViewCenterSun=1 ViewScanList=1 |
step3.spt [Commands] FlagAllScan=1 ViewFullScan CorrAutoMoveLR CopyWorkSheetToData SetRangeRSun=-2 2 |
step4.spt [Commands] ViewScansGroup=3 #1.015 1.95 2.95 4.27 6.95 10.35 14.25 15.65 ViewScanList=1 XScanList=1 ViewDigitFrame=1 |
В программе реализована функция пакетной обработки файлов. Для этого нужно создать файл сценария обработки с расширением pkf и загрузить его через меню File=>Load PackFile или как параметр командной строки: scanwrk.exe -pk filename.pkf.
Файл сценария имеет следующую структуру:
[Init]
AppHide=1 ;если значение равно 1 приложение не отображает главное окно. AppExit=1 ;если значение равно 1 приложение закрывается после завершения пакетной обработки. OutFile=MyLog.txt ; имя log файла
OutPrefix=p_ ; префикс создаваемых файлов, если явно не задано имя FileMask=*.* ; маска обрабатываемых файлов, если значение не задано, то обрабатываются файлы из [Files] OutDir=c:\out ; директорий, где сохраняются полученные результаты.
InDir=c:\in ; директорий, где располагаются входные файлы [Files] - список входных файлов, если не задано значение FileMask file1.wsf file2.fit file3.0hd
[Commands] - список выполняемых команд.
Command1 Command2 ::::.. CommandN
Примеры пакетных файлов:
файл line.pkf [Init] AppHide=1 AppExit=0 OutFile=Log.txt OutPrefix=p_ FileMask=*.fit OutDir=d:\2000 InDir=d:\2000
[Commands] FlagAllScan=1 ViewWorkI=1 ViewWorkV=1 CalibrQuietSunTa SetNoiseLevel=100 FindSpectralLine=1.3 0 0 |
файл my_pack.pkf файл my_pack.pkf [Init] AppHide=0 AppExit=0 OutFile=MyLog.txt OutPrefix=p_ FileMask=*.fit OutDir=c:\tmp1 InDir=c:\tmp1
[Files] file1.wsf file2.fit file3.0hd
[Commands] FlagAllScan=1 FindScanGreatGHz=13.400 CalcCenterVscan=1 IVtoRL=1 CopyWorkSheetToData FlagAllScan=0 FindScanGHz=6.5 |
ViewWorkI=0 Scan*N=-1 ViewWorkI=1 FindScanGHz=00.985 MoveScan=-100 FindScanGHz=01.015 MoveScan=-100 FindScanGHz=01.045 MoveScan=-100 FlagAllScan=1 SetRangeRSun=-1.5 1.5 CalibrFullFlux ViewFullScan SetRangeRSun=-3.0 3.0 CorrAutoMoveLR CopyWorkSheetToData SaveWorkSheet=0 1 ;SaveWorkSpace SetRangeRSun=-1.05 1.05 ViewWorkI=1 ViewWorkV=0 CalcSurf3D=2 1 1 1 #%s_I.bmp ViewWorkI=0 ViewWorkV=1 CalcSurf3D=2 1 1 1 #%s_V.bmp |
Список возможных команд
Команда имеет следующий формат Command=arg1 arg2 arg3 arg4 #ExtString, где
arg1 arg2 arg3 arg4 -возможные числовые аргументы команды
#ExtString -возможное строковое значение команды, если задано строка начинается #%sExtString, то выходная строка будет иметь следующий вид: ВходнойФайлExtString
Если команда начинается со знака + , то данная команда будет выполнена при успешном результате последней из следующих выполненных команд: FindScanGreatGHz, FindScanGHz .
Command |
Menu |
Arguments |
DeleteMagField |
View~Screen~Delete MagField |
|
FindMagField |
Calc~Magnetic Field |
Arg1-polarization minimum |
FindSpectralLine |
Calc~Spectral Line |
Agr1-Line Scale; Agr2- Ta or Int; Arg3- Min Scale |
NonLinearReg |
Scan~Correction~Non-linear reg |
|
QuietPointTa |
Scan~Calibration~Quiet Point Ta |
|
SaveWorkSpace |
File~Save~WorkSpace |
ExtString- Output file name |
CorrAutoMoveLR |
Scan~Correction~Auto move LR |
|
EqNull |
Scan~Modification~Eq.Null |
Arg1- 0 or 1 |
GroupScanMin |
Transform~Group scan min |
|
GroupScanAver |
Transform~Group scan aver |
|
MinRelCsun |
Scan~Modification~Min rel Csun |
|
CopyRelCsun |
Scan~Modification~Copy rel Csun |
|
CalcSigma |
Calc~Sigma |
|
CalcCenterVscan |
Scan~Correction~Center Vscan |
Arg1- 0 or 1 |
ScanSubScan |
Transform~Scan sub scan |
|
CalcEqualStep |
Transform~Equal Step |
|
CorrLineTail |
Scan~Correction~Line tail |
Arg1- number of points |
CalcCorrelation |
Calc~Correlation |
Arg1- 0 or 1 |
CorrEqualLength |
Transform~Equal Length |
|
MoveScan |
Move Scan |
Arg1- number of points |
CalibrBlackBody |
Scan~Calibration~Black body |
Arg1- calibration Ta |
CorrOverturn |
Scan~Correction~Overturn |
|
TaToFlux |
Scan~Modification~Ta[K]=>Flux |
|
MoveLfromR |
Scan~Correction~Move L from R |
Arg1- number of points |
CalcCenterSun |
Transform~Center Sun |
Arg1- 0 or 1 |
CalcWideGauss |
Scan~Correction~Wide Gauss |
|
ExportPicture |
File~Export: |
Arg1- width; Arg2- height; Arg3- type(1-eps;3-wmf); Arg4- thick pen #OutFileName |
CalcSurf3D |
Calc~Surf3D |
Arg1- type(0-ASCII;1-FITS;2-BMP); Arg2- sort(0-wavelength;1-frequensy); Arg3- view header(0 or 1); Arg4- view scan position (0 or 1); #OutFileName |
CalcAbsValue |
Scan~Modification~ABS[Wrksh] |
|
CorrRLCrossTalk |
Scan~Correction~RL Cross-Talk |
Arg1- value |
SaveToPirat |
File~Wrksh to PIRAT |
|
DeleteGauss |
View~Screen~Delete Gauss |
|
CalcScanDerive |
Scan~Modification~Derive |
|
CalcScanPolarization |
Scan~Modification~Polarization |
|
CalcLine |
Scan~Modification~Line |
|
CalibrFullFlux |
Scan~Calibration~Full Flux |
|
CalibrQuietSunTa |
Scan~Calibration~Quiet Point Ta |
|
CalcFullFlux |
Calc~Full Flux |
|
GaussAnaliz |
Calc~Gauss Flux |
Arg1- gaussian number; Arg2- flag background( 0 or 1) |
ScanDelete |
Scan~Delete |
|
IVtoRL |
Scan~Modification~I,V? R,L |
Arg1- flag (0 or 1) |
DataSubWorkSheet |
Scan~Modification~Data--Wrksh |
|
Scan*N |
Scan~Wrksh*N |
Arg1- N |
Scan+N |
Scan~Wrksh+N |
Arg1- N |
SubTailOfScan |
Scan~Modification~Line tail |
Arg1- flag(0-auto;1-right;2-left; 3-center) |
CopyDataToWorkSheet |
Scan~Data->Wrksh |
|
CopyWorkSheetToData |
Scan~Wrksh->Data |
|
ViewFullScan |
View~Screen~Full scan |
|
DataClear |
File Clear |
|
GaussSmooth |
Scan~Smooth~Gauss |
Arg1- value ['] |
MedianSmooth |
Scan~Smooth~Median |
Arg1- value ['] |
TemperatureScaling |
||
SaveData |
File~Save~Data |
|
SaveWorkSheet |
File~Save~WorkSheet |
Arg1- type(0-bynary; 1-ascii); Arg2-type(0-header, 1-fits);#OutFileName |
ViewSunDisk |
View~Screen~Sun Disk |
Arg1- 0-off;1-on |
ViewRangeGroup |
View~Scan Group~Scan Group |
Arg1-form(0-ungroup,1-group,2-array,3-vert, group); Arg2- min frequency; Arg3- max frequency. |
ReloadIniSection |
||
SetNoiseLevel |
File~Set IniDir |
Arg1- noise value |
FindScanGreatGHz |
Arg1- frequency |
|
ViewScansGroup |
View~Scan Group~Scan Group |
Arg1-form(0-ungroup,1-group,2-array,3-vert, group); Arg2- flag frequency; #list (ex.: #1.2 2.1 3.0 4.5 ) |
ViewFormGroup |
View~Scan Group~View Group |
Arg1-form(0-ungroup,1-group,2-array,3-vert, group). |
XScanList |
View~Set View |
Arg1- 0-off, 1-on |
ViewScanList |
View~Set View |
Arg1- 0-off, 1-on |
ViewData-Gauss |
View~Set View |
Arg1- 0-off, 1-on |
ViewColor |
View~Set View |
Arg1- 0-off, 1-on |
ViewFormList |
View~Set View |
Arg1- flag(1-FrqList; 2-DateList; 3-DateFrqList) |
ViewCenterSun |
View~Set View |
Arg1- 0-off, 1-on |
ViewEqualScale |
View~Screen~Equal Scale |
Arg1- 0-off, 1-on |
ViewDigitFrame |
View~Screen~Digit Frame |
Arg1- 0-off, 1-on |
FindScanGHz |
Arg1-frequency |
|
SetRangePoint |
Arg1-min point; Arg2-max point. |
|
SetRangeRSun |
Arg1-min point; Arg2-max point. |
|
ViewWorkV |
View~Set View |
Arg1- 0-off, 1-on |
ViewWorkI |
View~Set View |
Arg1- 0-off, 1-on |
ViewDataV |
View~Set View |
Arg1- 0-off, 1-on |
ViewDataI |
View~Set View |
Arg1- 0-off, 1-on |
FlagAllScan |
Arg1- 0-off, 1-on |
Во время работы программа Work Scan через элементы меню Spec.Func использует функции находящиеся в динамических библиотеках в подкаталоге STARTUP. Пользователь может подключить к программе Work Scan собственные функции обработки данных создав свою динамическую библиотеку и расположив ее в подкаталоге STARTUP. Для связи с библиотеками программа Work Scan использует структуру SF_INIT и вызовы функций: InitSDllMenu , SelectDllFunction .
Структура SF_INIT
struct SF_INIT
{
int Npix, | //общее количество элементов массива Work |
int nbeg, | //номер начального элемента выделенного участка массива Work |
int nend, | //номер последнего элемента выделенного участка массива Work |
int wParam, | //идентификатор выбранного элемента меню Spec.Func |
int FlagDialog; | //флаг инициализации диалога (при вызове функции равен TRUE) |
char *Object, | //ссылка на строку содержащую объект наблюдения |
char *DateObs, | //ссылка на строку содержащую дату наблюдения |
char *TimeObs; | //ссылка на строку содержащую время наблюдения |
float Frq, | //частота наблюдения |
float noise, | //заданный уровень шумов |
float xdel, | //шаг между отсчетами массива Work |
float *data; | //адрес начального элемента массива Work |
HWND hWnd; | //идентификатор главного окна программы |
LPSTR txt; | //ссылка на текстовый массив (при входе в функцию равен NULL) |
char TitleEd[64]; | //строка для инициализации заголовка окна редактора (пустая) |
};
Если при выходе из функций динамической библиотеки txt не равен NULL, создается окно редактора с заголовком TitleEd и содержимым буфера txt. После этого буфер txt удаляется.
Функция InitSDllMenu
void _export InitSDllMenu(HMENU Menu, int Num); - функция инициализации меню Spec.Func. Вызывается при загрузке программы Work Scan в момент подключения динамической библиотеки. Имеет следующие параметры: Menu - указатель на меню Spec.Func , Num - число необходимое при создании идентификаторов меню.
Пример функции:
void _export InitSDllMenu(HMENU Menu, int Num)
{
HMENU menu=CreatePopupMenu(); AppendMenu(menu,MF_STRING|MF_ENABLED,Num+ID_MENU1,"My Func1"); AppendMenu(menu,MF_STRING|MF_ENABLED,Num+ID_MENU2,"My Func2"); AppendMenu(Menu,MF_POPUP|MF_ENABLED,(UINT)menu,"MyDllFunc");
}
Значения собственных идентификаторов (ID_MENU1 и т.п.) должны находится в промежутке от 1 до 99.
Функция SelectDllFunction
void _export SelectDllFunction(HINSTANCE hInst, struct SF_INIT *MyData); - функция вызова функций обработки данных соответствующих выбранному элементу меню Spec.Func. Имеет следующие параметры: hInst - идентификатор модуля Work Scan , MyData - указатель на структуру SF_INIT.
Пример функции:
void _export SelectDllFunction(HINSTANCE hInst, struct SF_INIT *MyData)
{
int Nn,kk; float *data; Nn=MyData->nend-MyData->nbeg; kk=MyData->FlagDialog; data=MyData->data; if(kk)
{
DialogBox(...); MyData->FlagDialog=FALSE;
}
if(MyData->txt==NULL)
{
MyData->txt=new(char[1024]); strcpy(MyData->TitleEd,''My Work'');
}
kk=MyData->wParam; switch(kk)
{
case ID_MENU1: MyFunc1(data, Nn);break; case ID_MENU2: MyFunc2(MyData);break;
}
}
Утилита (Choosed Scan) позволяет из набора файлов с одиночными сканами наблюдений выделить серию, по любой комбинации следующих признаков (Объект, Дата наблюдения, Время наблюдения, Частота наблюдения), для последующей загрузки в программу Work Scan.
Общий вид окна программы:
Главное окно программы состоит из трех списков(Headers, Temp, Save List)
Headers - список содержащий имена заголовочных файлов. При выделении строки списка в строке состояния отображается количество файлов с данными содержащихся в данном заголовочном файле. Двойной щелчок мыши заполняет список Temp именами файлов с данными содержащимися в данном файле заголовка.
Temp - рабочий список содержащий имена файлов с данными выбранными с помощью функций программы. При выделении строки списка в строке состояния отображаются параметры выбранного файла (Объект, частота, дата и время наблюдения). При двойном щелчке выбранный файл копируется в список Save List.
Save List - список содержащий имена выбранных файлов. Результатом сохранения программы является заголовочный файл содержащий имена файлов данного списка. При двойном щелчке мыши выбранный файл удаляется из списка.
Краткое описание функций элементов меню:
File Open Загрузка файлов содержащихся в выбранном каталоге. Close Удаление всех данных из программы. Save List Сохранения списка выбранных файлов. Work Clear Tmp Очистка содержимого списка Temp Clear Save Очистка содержимого списка Save List Tmp->Save Копирование содержимого списка Tempв список Save List
Функции выборки данных осуществляются с помощью следующих элементов панели инструментов (ToolBar): списковList1,List2 и кнопки(Global/Local).
Когда кнопка находится в состоянии Global списки List1и List2производят выборки из всех файлов загруженных в программу. При состоянии Localвыборки производятся из содержимого списка Temp.
List1 - содержит следующие поля:
All - заполняет список Temp именами всех файлов загруженных в программу. Frequency - заполняет список List2 имеющимися частотами Object - заполняет список List2 имеющимися названиями объектов Observ.Date - заполняет список List2 имеющимися датами наблюдений Observ.Time - заполняет списокList2 имеющимися временами наблюдений List2 - при выборе элемента списка, оставляет в списке Temp имена файлов удовлетворяющие выбранному элементу.