Ссылка на эту страницу | Где скачать программу

История изменений программы

11 юиля 2007

Добавлена функция коррекции скана с помощью деления фурье образа скана на образ диаграммы.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

добавлена функция меню Correction-> FITS Param.
При запуске запрашивает файл с расширением *.cor.
В файле можно задать различные параметры фитс- шапки, в зависимости от выбора:
1-полуширина д.н.а,
2- температура спокойного солнца,
3- коэффициент перехода от Т к потокам в загруженных файлах.
Формат файла должен быть следующим:
первая колонка-частота, вторая колонка - меняемый параметр (в промежутке делается линейная интерполяция). вводимые из файла параметры могут быть применены к одному скану ии ко всем сканам. при записи в фитс-файл эти параметры заносятся во вторую таблицу. в IDL парметры из второй таблицы могут быть прочитаны с помощью процедуры mrdfits: rat=mrdfits(nfile,0,hdr) & ext1=mrdfits(nfile,1,hdr1); freq=ext1[i].freq . Запись обратно в фитс файл после исправлений: mwrfits, rat, nfile, hdr, /create & mwrfits, ext1, nfile, hdr1  

Также был обновлен файл commpaсk.dat, в него включена функция калибровки по ГШ, что дает возможность использовать эту функцию для пакетной обработки.

Пример использования:

скрипт
[Commands]
ViewWorkI=1;Отображать воркшит I
ViewWorkV=1;Отображать воркшит V
SetRangePoint=100 130;Вывести участок от 100-й до 130-ой точки
SubNullLevel=0; Задать уровень нул равным выделенному участку
ViewWorkV=0; Не отображать воркшит V
SetRangePoint=73 120; Вывести участок от 73-й до 120-ой точки (запись ГШ в данном случае)
CalibrNoiseGenerator=0;Откалиброватьс по ГШ
ViewWorkV=1
ViewWorkI=0
SetRangePoint=60 100
CalibrNoiseGenerator=0
ViewWorkI=1
обновления см в каталоге WS-new

Изменения в функции Scan->Calibration->Qiuet point Ta

 crab0koef.dat

2.80

6115.00

0.040000

3.00

6111.34

0.042087

3.18

6105.86

0.046247

3.37

6100.08

0.050639

3.57

6094.00

0.055263

3.75

6088.52

0.059423

4.00

6080.92

0.065202

4.20

6074.83

0.069825

4.40

6068.75

0.074449

4.50

6065.71

0.076760

4.70

6059.62

0.081383

4.90

6053.54

0.086007

5.10

6047.45

0.090630

5.30

6041.37

0.095253

5.50

6035.28

0.099876

5.70

6029.20

0.10450

6.00

6020.07

0.11143

6.15

6015.51

0.11490

6.30

6010.95

0.11837

6.65

6000.50

0.12631

6.80

5996.06

0.12969

6.95

5991.50

0.13316

7.10

5987.00

0.13658

7.30

5981.06

0.14109

7.60

5972.09

0.14791

7.75

5967.55

0.15136

7.90

5962.92

0.15489

8.10

5956.95

0.15944

8.25

5952.51

0.16282

8.40

5947.96

0.16629

8.70

5939.14

0.17299

8.90

5933.04

0.17763

9.05

5928.49

0.18107

9.20

5923.99

0.18448

9.35

5919.57

0.18781

9.50

5914.89

0.19136

9.70

5909.02

0.19582

10.0

5900.00

0.20275

10.15

5895.59

0.20617

10.30

5891.16

0.20959

10.50

5885.06

0.21416

10.60

5881.84

0.21648

10.80

5875.30

0.22094

10.90

5871.82

0.22317

11.30

5855.32

0.23236

11.40

5850.45

0.23473

11.60

5839.95

0.23926

11.70

5834.02

0.24153

11.90

5821.06

0.24610

12.20

5797.55

0.25290

12.40

5778.05

0.25756

12.50

5767.35

0.25984

12.70

5743.29

0.26441

12.90

5716.09

0.26883

13.05

5691.28

0.27228

13.35

5635.77

0.27919

13.50

5606.54

0.28249

13.70

5564.56

0.28706

14.00

5499.85

0.29404

14.15

5469.35

0.29740

14.30

5439.43

0.30076

14.50

5399.20

0.30535

14.60

5379.67

0.30760

15.00

5300.43

0.31678

15.30

5240.01

0.32372

15.45

5209.90

0.32715

15.60

5180.05

0.33055

15.75

5150.73

0.33388

15.90

5120.21

0.33735

16.10

5079.93

0.34193

16.25

5050.18

0.34531

16.40

5020.56

0.34869

16.50

5000.68

0.35095

16.90

4919.69

0.36019

17.05

4889.32

0.36366

17.20

4860.11

0.36700

17.35

4830.65

0.37036

17.50

4800.93

0.37376

17.70

4760.63

0.37836

17.80

4740.09

0.38070

18.20

4657.92

0.39008

18.30

4630.00

0.39200

 

  В новой версии изменена функция калибровки по точке на спокойном Солнце. Теперь Температура Qsun и коэффициенты из файлов tab_sun.dat и sh-fits.cfg не используются в этой функции. Сканы масштабируются на температуру, зашитую в фитс-файлах во второй шапке, в поле tqsun. Эти температуры заносятся туда при преобразовании dat файлов с помощью pas2fits, и берутся из файла crab0koef.dat:

Данные температуры получены с помощью калибровки через ГШ по Луне. Т.е. полагая, что температура Луны на всех волнах 220 град, калибруем ГШ. Затем по ГШ калибруем запись Солнца, и снимаем спектр точки на спокойном Солнце (вторая колонка в файле).

В файле tab_sun.dat  третья колонка, показывающая какая часть Солнца попадает в вертикальную диаграмму, приравнена к 1, по рекомендации Коржавина А.Н. и Боровик В.Н., из соображений, что в вертикальную диаграмму1 попадает больше Солнца, чем  в гауссиану соответствующего размера.
(Согласно рекомендацим семинара от 17.03.2011, калибровать по полному потоку можно только волны длинее 8 см)

В файле sh-fits.cfg соответственно изменилась колонка с tqsun. Но этот файл используется только для калибровки по полному потоку (с Нобеяма)

Frq - частота в [GHz] Coeff2 - коэффициент перевода антенных температур в поток радиоизлучения Tqsun - антенная температура спокойного Солнца на данной частоте в [К] Theta - полуширина диаграммы направленности Tann - шумовая температура антенны в [K].

35.0

1.105

6000

6.885

90.316

30.0

0.804

6000

7.087

71.857

25.0

0.620

6000

8.489

56.114

20.0

0.411

6000

11.894

44.899

15.0

0.267

6000

18.101

40.023

14.0

0.246

6000

19.742

39.933

13.0

0.226

6000

21.491

39.978

12.0

0.203

6000

23.275

40.006

11.0

0.181

6000

24.907

40.008

10.0

0.164

6000

26.193

39.991

9.00

0.147

6000

27.024

39.915

8.00

0.130

6000

27.679

39.904

7.00

0.113

6000

29.036

40.315

6.00

0.096

6000

33.618

41.370

5.00

0.079

6000

45.550

43.137

4.50

0.071

6000

55.584

44.307

4.00

0.064

6000

69.029

45.678

3.50

0.057

6000

86.408

47.278

3.00

0.052

6000

108.14

50.451

2.50

0.048

6000

134.47

58.681

2.00

0.045

6000

165.32

76.394

1.50

0.044

6000

199.68

110.054

1.00

0.043

6000

236.30

163.874

0.50

0.042

6000

273.15

220.488

35.0

1.155

4053

6.885

90.316

30.0

0.874

4212

7.087

71.857

25.0

0.620

4463

8.489

56.114

20.0

0.411

4659

11.894

44.899

15.0

0.267

4856

18.101

40.023

14.0

0.246

4906

19.742

39.933

13.0

0.226

5148

21.491

39.978

12.0

0.203

5387

23.275

40.006

11.0

0.181

5619

24.907

40.008

10.0

0.164

5841

26.193

39.991

9.00

0.147

6041

27.024

39.915

8.00

0.130

6207

27.679

39.904

7.00

0.113

6319

29.036

40.315

6.00

0.096

6362

33.618

41.370

5.00

0.079

6324

45.550

43.137

4.50

0.071

6272

55.584

44.307

4.00

0.064

6200

69.029

45.678

3.50

0.057

6109

86.408

47.278

3.00

0.052

6002

108.14

50.451

2.50

0.048

5881

134.47

58.681

2.00

0.045

5750

165.32

76.394

1.50

0.044

5613

199.68

110.054

1.00

0.043

5473

236.30

163.874

0.50

0.042

5334

273.15

220.488

новый файл старый файл

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

 

WorkScan 2.6

 

ВВЕДЕНИЕ ОСНОВНЫЕ КОНЦЕПЦИИ ОБЩИЕ ПРИНЦИПЫ РАБОТЫ СЛУЖЕБНЫЕ ФАЙЛЫ ФОРМАТЫ ЗАПИСИ ДАННЫХ 1. Формат предыдущих версий и конвертора 2. Формат хранения одного скана наблюдений 3. Формат хранения группы сканов ПАНЕЛЬ ИНСТРУМЕНТОВ (TOOLBAR) ФУНКЦИИ МЕНЮ ПАКЕТНАЯ ОБРАБОТКА ФАЙЛОВ ПОДКЛЮЧАЕМЫЕ БИБЛИОТЕКИ УТИЛИТА ChoosedScan
ВВЕДЕНИЕ  

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

В программе 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 их можно привести к одинаковой размерности и шагу.

Основными функциями обработки реализованными в программе являются:

Любое изображение представленное на экране во время обработки можно вывести на принтер или сохранить в цветном WMF (Windows Metafile) или черно-белом PS (Post Script) форматах.

СЛУЖЕБНЫЕ ФАЙЛЫ

Во время работы программа Work Scan использует следующие служебные файлы:

tab_sun.dat, sh-fits.cfg, diagram.dat, corlogta.dat,gvi_soho.dat, bitmap3d.pal. Данные файлы должны находится в каталоге основной программы.


tab_sun.dat -текстовый файл, используется для калибровки сканов по полному потоку (функция меню  Calibr=>Full Flux). Имеет следующую структуру:  
Wls  Fqsun  Coeff1,
1.50 670  0.381
2.01 519  0.470
2.30 418  0.524
2.70 324  0.593
3.20 253  0.672
4.00 180  0.774
5.00 123  0.862
6.00 93  0.921
7.00 79  0.967
8.20 71  1.0
11.70 56  1.0
20.70 46  1.0
31.60 44  1.0
Wls - длина волны в [см], Fqsun - полный поток спокойного Солнца в солнечных единицах потока [s.f.u.], Coeff1 - соотношение между вертикальным размером диаграммы и диметром Солнца.  
 
sh-fits.cfg -файл, описывающий параметры диаграммы и антенны. используется для перехода от антенных температур к потокам  (функции меню Full Flux  Gauss Flux)  Это текстовый файл, который имеет следующую структуру:
Frq Coeff2  Tqsun Theta Tann
35.0 1.155 4053 6.885 90.316
30.0 0.874 4212 7.087  71.857
25.0 0.620 4463 8.489  56.114
20.0 0.411 4659 11.894  44.899
15.0 0.267 4856 18.101  40.023
14.0 0.246 4906 19.742  39.933
13.0 0.226 5148 21.491  39.978
12.0 0.203 5387 23.275  40.006
11.0 0.181 5619 24.907  40.008
10.0 0.164 5841 26.193  39.991
9.00 0.147 6041 27.024  39.915
8.00 0.130 6207 27.679  39.904
7.00 0.113 6319 29.036  40.315
6.00 0.096 6362 33.618  41.370
5.00 0.079 6324 45.550  43.137
4.50 0.071 6272 55.584  44.307
4.00 0.064 6200 69.029  45.678
3.50 0.057 6109 86.408  47.278
3.00 0.052 6002 108.14  50.451
2.50 0.048 5881 134.47  58.681
2.00 0.045 5750 165.32  76.394
1.50 0.044 5613 199.68  110.054
1.00 0.043 5473 236.30  163.874
0.50 0.042 5334 273.15  220.488
Frq - частота в [GHz], Coeff2 - коэффициент перевода антенных температур в поток радиоизлучения, Tqsun - антенная температура спокойного Солнца на данной частоте в [К] Theta - полуширина диаграммы направленности, Tann - шумовая температура антенны в [K].

diagram.datфайл шаблона диаграммы телескопа. Используется для вычисления шаблона спокойного Солнца в функции Calc=>Sun Template.  
45 6 15
1 0,95 0,89 0,8 0,71 0,6 0,5 0,39 0,29 0,21 0,14 0,08 0,04 0,01 0 0 0,01 0,02 0,03 0,04 0,04 0,05 0,05 0,04 0,04 0,03 0,02 0,01 0,01 0 0 0 0 0,01 0,01 0,01 0,01 0,02 0,02 0,02 0,01 0,01 0,01 0 0


corlogta.datфайл содержащий коэффициенты для коррекции данных за нелинейность приемной аппаратуры. Файл имеет следующую структуру: Frq Kf_r Kf_l, где Frqчастота в [GHz], Kf_rкоэффициент для коррекции скана с правой поляризацией, Kf_l - коэффициент для коррекции скана с левой поляризацией.
gvi_soho.dat -файл шаблона полей формата файла для хранения группы сканов. В этот файл можно добавлять дополнительные поля и изменять значения существующих полей до строки начинающейся с символа *.
bitmap3d.palфайл с палитрой для создания BMP-файла в функции Calc=>Surf3D. Файл имеет следующую структуру:

JASC-PAL 0100 256 r0 g0 b0 r1 g1 b1 ……… r255 g255 b255


ФОРМАТЫ ЗАПИСИ ДАННЫХ

Программа Work Scan поддерживает четыре формата записи данных. Один формат служит для автосохранения данных во время работы программы. Он может также использоваться для сохранения промежуточных рабочих файлов. Файлы данного формата имеют расширение wsf. Остальные форматы близки по форме или полностью соответствуют FITSстандарту. Реализованы два различных подхода к структуре загружаемых данных:

1. Формат предыдущих версий и конвертора 2. Формат хранения одного скана наблюдений 3. Формат хранения группы сканов Формат предыдущих версий и конвертора.

Это формат для хранения одного скана с наблюдениями в отдельном файле. Он не соответствует 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)

Панель инструментов (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... Добавление в программу файлов с данными.
Load-> выпадающее подменю WorkSpace Загрузка файла с промежуточными данными.(wsf) PackFile Загрузка и выполнение файла пакетной обработки. Scan Template Загрузка шаблона спокойного солнца. Если флаг=1, шаблон перед загрузкой калибруется по потокам из файла tub_sun.dat. если 0, загружается без калибровки.
Close Удаление из программы всех загруженных файлов.
Save-> выпадающее подменю Data Сохранение массивов Data в исходных файлах (кроме BINARY TABLE)
WorkSheet
Сохранение массивов Work в выбранном формате файлов.

WorkSpace
Сохранение всех данных.
Wrksh to PIRAT Сохранение загруженных данных в формате программыPIRAT
Print... Печать содержимого окна отображения.
Export...
Сохранение содержимого окна отображения в WMF или PS форматах.

Set InitDirДиалог настройки переменных программы.
Script Edit...
Редактирование файла скриптов

Run file.exe Запуск выполнения внешней программы.
Scan
Data->Wrksh
Копирование содержимого массива Data в массив Work.

Wrksh->Data 
Копирование содержимого массива Work в массив Data.

 
Modification выпадающее подменю Data--Wrksh Замена содержимого массива Work на разность Data-Work.
Wrksh*N
Умножение выделенного участка массива Work на число N.

Wrksh+N
Сложение выделенного участка массива Work с числом N.

Line
Аппроксимация выделенного участка массива Work прямой

Eq. Null
Замена элементов массива не равных нулю на нуль в зависимости от значения флага (флаг=1- все элементы выделенного участка массива, меньшие нуля, заменяются на нуль.  флаг=0-  на нуль заменяются элементы массива большие нуля)
ABS(Wrksh)
Вычисление модуля от элементов выделенного участка массива Work.

Derive
Вычисление производной от выделенного участка массива Data.

Polarization
Вычисление локальной степени поляризации (P= V/I*100%).

I,V<=>R,L
Преобразование поляризаций. Если на вопрос "Do the same scale for R&L polarization?" ответить OK, то I=(R+L)/2, V=(R-L)/2, иначе без делениЯ на 2

Ta[K]=>Flux
Умножение массива Work на коэффициент перевода Ta к потокам.

Min rel.CsunВычисление минимума между элементами симметричнымиотносительно центрального значения массива Work.
Copy rel.Csun
Копирование выделенного участка массива Work относительноцентрального значения массива.

Line tail
Вычитание постоянной составляющей массива Work.
Correction выпадающее подменю
Ephemeride
Изменение эфемеридных значений загруженных данных.

Change of amplif Автоматическая коррекция переключения усиления.
RL Cross-Talk
Коррекция паразитного cross-talk сигнала.

Tail of curve
Замена n (первых или последних) элементов массива Work значением n-ого (или N-n) элемента массива Work.

Overturn
Переворот выделенного участка массива Work относительно линии, соединяющей его крайние элементы.

Move L from R
Сдвиг массива с одной поляризацией относительно массива с другой поляризацией.

Auto move L R
Автоматический сдвиг массива с одной поляризацией относительно массива с другой поляризацией.

Wide Gauss
Аппроксимация широкой составляющей диаграммы гауссианой.

Center Vscan
Вычисление центра Солнца(Луны) по производным на краях скана.

Non-linear reg.
Соррекция нелинейности при регистрации.
Calibration выпадающее подменю
Quiet Sun Ta
Калибровка скана по уровню спокойного солнца (табличными значениями Ta)

Quiet Point Ta
Калибровка скана по спокойной точке на скане (табличными значениями Ta)

Full Flux
Калибровка скана по интегральному потоку.

Black body
Калибровка скана по калибровочной ступеньке.
 
Smooth выпадающее подменю
Gauss
Свертка выделенного участка массива Work с гауссианой

Median
Применение median фильтра к выделенному участку массива Work.

Cube Spline
Аппроксимация выделенного участка массива кубическим сплайном.
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Вычисление полного потока выделенного участка массива.
Gauss Flux
Гаусс- анализ выделенного участка массива Work.

Interactive Gauss
Интерактивный гаусс- анализ выделенного участка массива Work.


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
Показ окна для демонстрации спектров.


Scans Group->
выпадающее меню Scans Group Диалог выбора группы сканов.
View Group
Диалог представления группы сканов.

Prev. Group
Показ предыдущей выбранной группы сканов.
Screen-> выпадающее меню
Full scan
Показ всего скана(ов).

Equal Scale
Включение одинаковой шкалы для разных поляризаций.

Delete Gauss Удаление служебных массивов гаусс- анализа.
Delete MagField
Удаление служебного массива расчета магнитных полей.
Set ViewОсновные настройки окна отображения.
Scan header
Показ заголовка активного скана.

Gauss Param
Вывод в окно редактора параметров гауссиан(после гаусс- анализа).
Spec.Func выпадающее меню (инициализируется подключаемой DLL)  
Correct->
MyDllFunc->
Smooth->

 

Script выпадающее меню (инициализируется файлами каталога Script)
Help Main helpВызов HELP-файла по работе с программой Work Scan About... Cancel Отмена выполнения функций с блокировками сообщений.

ОПИСАНИЕ НЕКОТОРЫХ ФУНКЦИЙ МЕНЮ

File=>Set InitDir

Диалог настройки программы 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.- коэффициент для вычисления вертикальной диаграммы по формуле:

qvert[arc min] = VBK / Frq [GHz]
Horiz. Beam Koef.-коэффициент для вычисления горизонтальной диаграммы по формуле:

qhor[arc sec] = HBK / Frq [GHz]

если HBK<=0, горизонтальный размер диаграммы берется из файла sh-fits.cfg. Если HBK<0, при прорисовке диска Солнца диаграмма не отображается, и при загрузке FITS-файла с двумерным изображением Солнца свертки с горизонтальной и вертикальной диаграммами не происходит. Output Folder – каталог сохраняемых файлов Sun flux Folder – каталог содержащий файлы полных потоков Солнца (для калибровки Scan=>Calibr=>FullFlux) Script folder - каталог со скриптами Ext program file – имя файла, выполняемого через меню Log corr.fileимя файла с коэффициентами нелинейной коррекции (функция SpecFunc=>Correct=>Calibr Tb) Auto Script file- скрипт, выполняемый при загрузке данных (кроме .WSF и .PKF). 3D Palette File- файл с палитрой для BMP файла, создаваемого функцией Calc=>Surf3D FITS Palette File- файл с палитрой для отображения подгружаемой FITS-карты (функцией Calc=>Fits convolution)


Scan=>Modification=>Min rel.Csun (Copy rel.Csun)

Обе функции работают с парами элементов массивов симметричными относительно центрального значения (поле PMCSUNили CENTRE_X в файлах с данными).

Функция Min rel.Csun заменяет элементы участка массива отображенном на экране на минимальное значение получаемое при сравнении этих элементов с симметричными.

Функция Copy rel.Csun копирует отображенный участок массива на место симметричного участка.

Scan=>Modification=>Line tail

Функция запрашивает параметр равный одному из следующих значений:

0 - значение постоянной составляющей вычисляется как среднее между десятью первыми и десятью последними элементами массива; 1 - значение постоянной составляющей вычисляется как среднее между десятью последними элементами массива; 2 - значение постоянной составляющей вычисляется как среднее между десятью первыми элементами массива; 3 - значение постоянной составляющей вычисляется как среднее между десятью центральными элементами участка массива изображенного на экране;

Scan=>Correction=>Ephemeride
Scan=>Correction=>Change of amplif

Функция автоматической коррекции переключения усиления.

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

Функция вычисляет коэффициент изменения усиления и умножает на него все элементы массива правее указанного места переключения. Вычисление коэффициента осуществляется из условия аппроксимации участка из пяти точек массива в месте переключения линейной функцией.

Scan=>Correction=>Wide Gauss

Функция заменяет массив Work гауссианой вычисляя ее параметры из симметричных участков относительно центра Солнца(Луны) удаленных на 1.2 и 1.5 радиуса. Используется для удаления широкой составляющей записи связанной с боковыми лепестками диаграммы направленности.

Scan=>Correction=>Center Vscan

Итерационное вычисление положения центра Солнца(Луны) активного скана. Если происходит работа с группой сканов функция присваивает найденное значение всем сканам группы. Вычисление осуществляется из условия равенства производных скана на краях записи объекта.


 Scan=>Calibration

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-[Боровик В.Н.]), который показывает, какую часть потока мы загребаем вертикальной диаграммой.

Т_ант=Т_ант_исх * k, k=(F_тоекава-F_спок.солн*(1-коефф1))/Интеграл
коэфф1 не равен точно  диаметр.солнца/верт.размер.диаграммы, но представляет это соотношение

Формат файлов с данными потоков:

Дата     поток1     поток2     поток3     поток4     [поток 5]

Пример файла:  

1995 1000 2000 3750  9400 17000
APR  MHz MHz MHz  MHz MHz
51.  58. 74.   271. 575.
50.  57. 73.  270.  574.
48.  57. 74.  271.  572.
48.  57. 74.  270.  574.
 

Black bodyПеред запуском функции надо участок скана с калибровочной ступенькой отобразить на экране (в крупном масштабе).Функция запрашивает значение температуры калибровочной ступеньки.

Функция вычисляет усредненные значения (из 5 точек) на краях и в центре выделенного участка скана, находит максимальную разность из L-R,  L-C, R-C, и этой разнице приписывает значение температуры калибровочной ступеньки, за вычетом шумовой температуры антенны, значения которой берутся из  пятого столбца файла sh-fits.cfg .
Scan=>Smooth=>…

В функциях Gauss и Median при задании отрицательного значения окно сглаживания вычисляется для каждого скана как произведение модуля введенного значения и полуширины диаграммы направленности на данной частоте.


Calc=>Full Flux

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

F_источника= интеграл (по источнику) * коэфф2 (из файла sh-fits.cfg) Скан предварительно должен быть откалиброван.

Calc=>Gauss Flux

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

Общее количество гауссиан К-во гауссиан, положение которых будет указано курсором Аппроксимация фона кубическим сплайном
Функция создана на основе программы и алгоритма, разработанного Л.Н. Ивановым.  

Calc=>Interactive  Gauss  
Функция позволяет в интерактивном режиме вставлять и редактировать гауссианы (до 15) для гаусс-анализа источников. Если параметр Y position равен нулю, то вертикальное положение гауссианы определяется автоматически. Если задать значение Y position 6000, гауссиана будет рисоваться на уровне 6000K. Если Clear отмечена галочкой, то значение Theta (полуширина гауссианы) отображается за вычетом полуширины горизонтальной диаграммы на данной волне.  

__________
Qclear=Ц Q2vis-Q2hor

Calc=>Surf3D

Для вычисления матрицы двумерного представления  (Surf, Contour)  спектров сканов надо выделить группу сканов (функция View=>Scan Group)  или нажать кнопку ALL. При выборе функции появляется диалоговое окно, в котором надо указать формат файла вывода (BMP, FITS или ASCII) и другие параметры. При создании BMP файла используется палитра из файла bitmap3d.palили другого, указанного в File=>SetInitDir=>3D Palette File  

Calc=>Magnetic Field

Во время вычислений критической длины волны при построении спектров поляризаций все значения меньше заданного уровня шумов заменяются нулями. Если вводимое значение минимальной поляризации отрицательное, то минимум поляризации вычисляется как произведение модуля введенного значения и заданного уровня шумов.

Calc=>FITS convolution

При загрузке двумерного изображения (белый свет, рентген, магнетограмма и т.п.) запрашивается три параметра- 1)уровень шумов карты (для свертки с диаграммой РАТАН),  2)знак позиционного угла (для поворота карты на угол, под которым диаграмма РАТАН сканирует Солнце  в день наблюдения) и 3)уровень нуля для прорисовки карты в окне отображения. Рабочий массив (Worksheet) заменяется результатом свертки карты с диаграммой РАТАН. Последнее пустое окошко в Toolbar предназначено для задания смещения двумерного изображения по вертикали (в пикселах).

Calc=>Sun Template

Построение шаблона “спокойного” солнца. Шаблон в виде круга, с поправкой на  уярчение к краю и экваториальную активность умножается на коэффициент солнечной активности. Поправка берется равной 1 на волне 2 см и в зависимости от выбора метода активности  интерполируется на другие волны.

Calc=>Spectral Line

Поиск спектральных линий. Первый параметр задает  отношение амплитуд на частоте линии и соседних частотах.  Первая галочка опрделяет, в каких единицах ищется линия- в антенных температурах (К) или интенсивности (Ян). Вторая галочка определяет, от какого уровня отсчитываетчя амплитуда линии- от нуля или от табличного значения антенной температуры Солнца на данной волне (значения берутся из файла sh-fits.cfg).


View=>Local Graph Открывается графическое окно, в котором будет отображаться спектр,   вычисляемый при двойном щелчке левой кнопкой мыши на скане (спектр антенных температур, соответствующий x-координате курсора), или при выполнении функции Calc=>Full Flux (спектр плотностей потока от видимого участка скана)  

View=>Scan Group

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

View=>Scan Group=>View Group

Выбор способа представления группы сканов (см. функцию Scan Group)

View=>Set View

Диалог основных настроек окна отображения. Общий вид окна и описание полей следующие.  
Окна редактирования - если первый символ -%, программа отображает собственные заголовки рисунка и осей, иначе отображается содержимое окон редактора.
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

Выпадающее меню которое инициализируется при подключении скриптов из каталога 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;

}

}

УТИЛИТА ChoosedScan

Утилита (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 имена файлов удовлетворяющие выбранному элементу.


Литература 1. Гараимов В.И. Обработка массивов одномерных вектров данных в ОС Windows. Программа Work Scan- версия 2.3. Нижний Архыз, 1997 (препринт САО РАН)