source: Sophya/trunk/AddOn/TAcq/dispbrpfft.pic@ 3955

Last change on this file since 3955 was 3610, checked in by ansari, 16 years ago

Amelioration script analyse paquet de donnees FFT - Reza, 30/04/2009

File size: 4.7 KB
RevLine 
[3591]1
2# Script pour lire un fichier FITS et afficher des lignes ( contenu des paquets)
3# Affichage adapte pour donnees FFT 2C
4# Appel /Dev/AcquisBAO/Script/dispbrp.pic NomFichierFits CutRow CutCols
5delobjs *
6set sigo signal0
[3610]7set basedir /Raid/
[3591]8# set file TestFFT_$1/$sigo.fits
[3610]9set file $basedir/$1/$sigo.fits
[3591]10echo '----> Opening file ' $file
11readfits $file
12
13listobjs
[3610]14set cutrow (r<1000)
15set cutrowpt (r<5)
[3591]16set cutcol (c<5000)
17# sval=val a cause du c++exec
18#set sval ((val<127.5)?val:val-256.)
19if ( $# > 1 ) then
20 set cutrow $2
21endif
22echo ' ---- CutRow= ' $cutrow
23if ( $# > 2 ) then
24 set cutcol $3
25endif
26echo ' ---- CutCol= ' $cutcol ' PAS UTILISE'
27
28mv ${sigo} sigdum
[3610]29#c++exec \
30#for(int i=0;i<sigdum.Size();i++) sigdum[i] = (sigdum[i]<127.5)?sigdum[i]:sigdum[i]-256.;
31#
32#
33
[3591]34c++exec \
[3610]35 Vector cumulsq(sigdum.NCols()); cumulsq=0; \
36 TVector<int_8> cumul(sigdum.NCols()); cumul=0; \
37 TVector<int_4> nbzero(sigdum.NCols()); nbzero=0; \
38 TVector<int_8> cumulnz(sigdum.NCols()); cumulnz=0; \
39 for(int j=0; j<sigdum.NRows(); j++) \
40 for(int i=0; i<sigdum.NCols(); i++) { \
41 cumul(i) += sigdum(j,i); \
42 if (sigdum(j,i)==0) nbzero(i)++; \
43 else cumulnz(i) += sigdum(j,i); \
44 sigdum(j,i) = (sigdum(j,i)<127.5)?sigdum(j,i):sigdum(j,i)-256.; \
45 cumulsq(i) += sigdum(j,i)*sigdum(j,i); \
46 } \
47 cumul.Info()["NFRAME"] = cumulnz.Info()["NFRAME"] = nbzero.Info()["NFRAME"] = cumulsq.Info()["NFRAME"] = sigdum.NRows(); \
48 KeepObj(cumul); KeepObj(cumulsq); \
49 KeepObj(cumulnz); KeepObj(nbzero);
50
[3591]51mv sigdum ${sigo}
[3610]52set sval val
[3591]53
54setaxesatt 'font=helvetica,bold,16 autofontsize=0.05 minorticks'
55zone 1 2
56# r : numero de ligne ds le fichier -> numero de paquet
57# c : numero de colonne -> numero d'echantillon dans le paquet c=0...23 : entete
58# plot2d $sigo c val ${cutrow}&&c>25 'blue'
59# plot2d $sigo c val ${cutrow}&&c>3000&&c<4500 'blue'
60# plot2d $sigo c (val<127.5)?val:val-256. ${cutrow}&&$cutcol 'blue connectpoints'
61# setaxelabels 'Num.Echantillon' 'Valeur Echantillon' 'font=helvetica,bolditalic,16'
62# settitle 'Affichage Donnees brutes ' ' ' 'font=helvetica,bold,16'
63
64#fmax = 250.02
65#fmin = -0.02
66fmax = 4095.5*500./8192.
67fmin = -0.5*500./8192.
68# FFT8K -> N=8192 echantillons en temps ==> N/2 frequences
69
70ntimesample = 8192
71nfreq = $ntimesample/2
72
73defscript faithisto ' Appel faithisto Voie '
74 if ( $1 == '1' ) then
75 set tit V1
76 set hval hvalV1
77 set spec specV1
78 cuttsv = $ntimesample+24
79 set cutts "((c>23.5)&&(c<$cuttsv))"
80 set freq "((c-23)/2)*(250./$nfreq)"
81 else
82 set tit V2
83 set hval hvalV2
84 set spec specV2
85 cuttsv = 2*$ntimesample+24
86 set cutts "((c>($ntimesample+24))&&(c<$cuttsv))"
87 set freq "((c-23-$ntimesample)/2)*(250./$nfreq)"
88 endif
89 echo " hval= $hval spec= $spec cutts= $cutts"
90 newh1d $hval 2 253 251
91 projh1d $hval $sigo val 1. ${cutrow}&&${cutts}
92 newh1d $spec $fmin $fmax $nfreq
93 projh1d $spec $sigo $freq $sval*$sval ${cutrow}&&${cutts}
94 disp $hval 'font=helvetica,bold,16 fixedfontsize'
95 settitle "Frame data value distribution 5<VaL<250 - $tit" ' ' 'font=helvetica,bold,16'
96 disp $spec 'font=helvetica,bold,16 fixedfontsize'
97 settitle " Spectra from Data $tit" ' ' ' font=helvetica,bold,16'
98endscript
99
[3610]100# plot2d $sigo c val $cutrowpt&&c>23 'blue font=helvetica,bold,16 fixedfontsize win'
[3591]101settitle "Aff. frame data $1" ' ' 'font=helvetica,bold,16'
102
103zone 2 2
[3610]104#faithisto 1
105#faithisto 2
[3591]106
[3610]107defscript rawproj
108 zone
109 nrawmax = 24+8192*2
110 rawmax = 24+8192*2-0.5
111 newh1d rawproj -0.5 $rawmax $nrawmax
112 projh1d rawproj $sigo c $sval*$sval ${cutrow}
113 n/plot rawproj.val%i ! ! "marker=cross,5"
114endscript
115
116defscript ifreqpos
117set nf $1
118f = $nf * 500./8192.
119pic1 = 24+2*$nf
120pic2 = 24+8192+2*$nf
121echo bin freq $f nfreq $nf pics V1 $pic1 V2 $pic2
122endscript
123
124defscript freqpos
125set f $1
126nf = $f/(500./8192.)
127pic1 = 24+2*$nf
128pic2 = 24+8192+2*$nf
129echo bin freq $f nfreq $nf pics V1 $pic1 V2 $pic2
130endscript
131
[3591]132#n/plot specV1.10*log10(val)%x val>0
133#n/plot specV2.10*log10(val)%x val>0
134#disp signal0 "lut=lin,-1,1 imagecenter=4120,20"
[3610]135
136
137defscript ckzeros
138 c++exec for(int i=0; i<cumul.Size(); i++) \
139 if (cumul(i)<10) cout << " --ZERO: i=" << i << " i-24=" << i-24 \
140 << " cum(i)=" << cumul(i) << " i-24-4096=" << i-24-4096 \
141 << " i-24-8192=" << i-24-8192 << " i-24-8192-4096=" << i-24-8192-4096 << endl; \
142 int_4 nframe = nbzero.Info()["NFRAME"]; \
143 for(int i=0; i<nbzero.Size(); i++) \
144 if (nbzero(i) > 95*nframe/100) cout << " --NbZero: i=" << i << " i-24=" << i-24 \
145 << " nbzero(i)=" << nbzero(i) << " /NFrame= " << nframe << " i-24-4096=" << i-24-4096 \
146 << " i-24-8192=" << i-24-8192 << " i-24-8192-4096=" << i-24-8192-4096 << endl;
147endscript
148
149zone
150disp cumulsq 'blue marker=cross,5'
151
152echo '---- Scripts utiles definis : '
153echo 'ifreqpos numero_frequence , freqpos frequence , ckzeros'
154
Note: See TracBrowser for help on using the repository browser.