1 | ######################################################################
|
---|
2 | #### Script de trace de P(k) en temperature , effet de bruit, etc ####
|
---|
3 | ### Fev - Avril 2008 , BAORadio/Reza
|
---|
4 | ### Tout est dans ce script piapp + fichier de donnees PPF cmvhpkz.ppf
|
---|
5 | ## > lancer spiapp
|
---|
6 | ## > exec anapkn.pic
|
---|
7 | ## > Faire copier/coller des commandes a la fin, ds script xxtoto
|
---|
8 | ######################################################################
|
---|
9 |
|
---|
10 | ##1 / On ouvre le fichier extrait d'un PPF fait par SimLSS (cmv)
|
---|
11 | delobjs *
|
---|
12 | openppf cmvhpkz.ppf
|
---|
13 | set gdz 1.
|
---|
14 | set k x
|
---|
15 | set kk pow(10.,x)
|
---|
16 |
|
---|
17 | setaxesatt 'font=times,bold,16 fixedfontsize'
|
---|
18 |
|
---|
19 |
|
---|
20 |
|
---|
21 | # --- Cosmologie WMAP , O_L ~ 0.7 O_m ~ 0.25 H0 = 0.7 x100 km/s/Mpc
|
---|
22 | Om = 0.25
|
---|
23 | OL = 0.7
|
---|
24 | # ====> On se met a z = 0.5 , lambda ~ 0.315 , nu ~ 946 MHz (spectre P(k) du fichier cmvobserv3d.ppf)
|
---|
25 | z = 0.5
|
---|
26 | # On considere une fraction de HI (HI/Baryon) = 0.02
|
---|
27 | fHI = 0.020/0.1
|
---|
28 |
|
---|
29 | ####################################################################
|
---|
30 | ## Script pour calcul du coefficient de conversion P(k)-masse en P(k) temperature en mK^2
|
---|
31 | defscript convpk2t21 ' --> calcul le coefficient de conversion P(k) en P(k)_temperature mK^2'
|
---|
32 | cgeom = (1+$z)*(1+$z)/sqrt($OL+pow((1+$z),3.)*$Om)
|
---|
33 | cct21 = 0.57*$cgeom*$fHI
|
---|
34 | cct21 = $cct21*$cct21
|
---|
35 | echo "---- cct21 (NoFactCroiss)= $cct21"
|
---|
36 | # On approxime le facteur de croissance lineaire au carre par
|
---|
37 | # [(1+0.5)/(1+z)]^2 --> erreur ~ 10%
|
---|
38 | cct21 = $cct21*pow(1.5/(1+$z),2)
|
---|
39 | echo "---- Conv P(k)->Temperature mK^2 : cct21= $cct21"
|
---|
40 | endscript
|
---|
41 |
|
---|
42 | # On execute ce script pour calculer cct21 a z=0.5
|
---|
43 | convpk2t21
|
---|
44 |
|
---|
45 | # A z = 0.5 , DA = 1280 Mpc (ComovDA = 1920 Mpc) , H ~ 88 km/s/Mpc
|
---|
46 | # A z = 1 , DA = 1700 Mpc (ComovDA = 3400 Mpc) , H ~ 116 km/s/Mpc
|
---|
47 | # 10 arcmin -> l=5.58 Mpc , k=2 pi/l= 1.1
|
---|
48 | # 1 deg = 60 arcmin -> l=55.8 Mpc , k=2 pi/l= 0.11
|
---|
49 | # 5 deg = 300 arcmin -> l=279 Mpc , k ~ 0.02
|
---|
50 | Hz05 = 88
|
---|
51 | H = 88
|
---|
52 | DAz05 = 1920
|
---|
53 | DA = 1920
|
---|
54 |
|
---|
55 | ## ---- VOL1,VOL2,VOL3
|
---|
56 | ## VOL1: 10deg x 10deg x Delta_z=0.2 : 335 x 335 x 680 Mpc^3 = 76 10^6 Mpc^3
|
---|
57 | ## VOL2: 20deg x 20deg x Delta_z=0.2 : VOL2 = 300 10^6 Mpc^3
|
---|
58 | ## VOL3: 60deg x 60deg x Delta_z=0.2 : VOL4 = 2700 10^6 Mpc^3
|
---|
59 | ## VOL4: 40deg x 40deg x Delta_z=0.2 : VOL3 = 1200 10^6 Mpc^3
|
---|
60 | set angcov ( '10x10 deg^2' '20x20 deg^2' '60x60 deg^2' '40x40 deg^2' )
|
---|
61 | VOL1 = 76e6
|
---|
62 | VOL2 = 300e6
|
---|
63 | VOL3 = 2700e6
|
---|
64 | VOL4 = 1200e6
|
---|
65 |
|
---|
66 |
|
---|
67 | ## ----- Les antennes , environ 15x15 ~ 225-250 antennes elementaires
|
---|
68 | # On considere des reflecteurs de ~ 7-8 metres de diametres, S~40 m^2
|
---|
69 | # Ou 400 antennes de D~5 metres
|
---|
70 | # S_totale ~ 10 000 m^2 , reparties sur ~ 200mx200m , filling factor ~ 0.25
|
---|
71 | # FOV instantane ~ 2.5 degres de diametre (pour D~6-7 m)
|
---|
72 | # FOV instantane ~ 4.3 x 4.3 degres^2 (pour D~5 m)
|
---|
73 | # Resolution ~ 0.31/200 -> ~ 5 arcmin
|
---|
74 | # VolumePixel ~ 3 Mpc x 3 Mpc x 4 Mpc ~ 36 Mpc^3
|
---|
75 | vpixz05 = 50
|
---|
76 | vpix = 50
|
---|
77 | # kappa ~ (1/fill_factor)^2
|
---|
78 | kappa = 25
|
---|
79 |
|
---|
80 | # Setup sur 200mx200m , 10000 m^2
|
---|
81 | defscript setup1
|
---|
82 | vpixz05 = 36
|
---|
83 | vpix = 36
|
---|
84 | kappa = 200*200/10000
|
---|
85 | kappa = $kappa*$kappa
|
---|
86 | echo "setup-1: VPix=$vpix Kappa=$kappa"
|
---|
87 | endscript
|
---|
88 | # Setup sur 300mx300m , 10000 m^2
|
---|
89 | defscript setup2
|
---|
90 | vpixz05 = 16
|
---|
91 | vpix = 16
|
---|
92 | kappa = 300*300/10000
|
---|
93 | kappa = $kappa*$kappa
|
---|
94 | echo "setup-2: VPix=$vpix Kappa=$kappa"
|
---|
95 | endscript
|
---|
96 |
|
---|
97 | # Setup sur 400mx400m , 20000 m^2
|
---|
98 | defscript setup3
|
---|
99 | vpixz05 = 16
|
---|
100 | vpix = 16
|
---|
101 | kappa = 400*400/20000
|
---|
102 | kappa = $kappa*$kappa
|
---|
103 | echo "setup-3: VPix=$vpix Kappa=$kappa"
|
---|
104 | endscript
|
---|
105 |
|
---|
106 |
|
---|
107 |
|
---|
108 | ## delta k pour le calcul du nombre de modes, correspond a ~ l=5m/lambda / DA
|
---|
109 | delkz05 = 0.01
|
---|
110 | delk = 0.01
|
---|
111 |
|
---|
112 |
|
---|
113 | # --- Temps d'integration a z=0.5 avec FOV=4x4 degres^2 (D=5m)
|
---|
114 | # 120 jours pour VOl1 en ~ 7 passes (7 couvertures elementaires)
|
---|
115 | # 120 jours pour VOl2 en ~ 4x7 passes (28 couvertures elementaires)
|
---|
116 | # 120 jours pour VOl3 en ~ 16x7 passes (225 couvertures elementaires)
|
---|
117 | set ndays ( '120 days' '120 days' '120 days' '120 days' )
|
---|
118 | TINT1 = 1.5e6
|
---|
119 | TINT2 = 3.7e5
|
---|
120 | TINT3 = 4.5e4
|
---|
121 | TINT4 = 1.e5
|
---|
122 |
|
---|
123 | # Bruit Tsys = 100 K = 10^5 mK
|
---|
124 | TSYS = 1e5
|
---|
125 |
|
---|
126 | DELNU = 1.e6
|
---|
127 |
|
---|
128 | #############################################################
|
---|
129 | ### Setup Nancay multi-beam
|
---|
130 | defscript setupnancaymb ' --> Setup Nancay multi-beam '
|
---|
131 | # 4x22 arcmin @ 1420 MHz (21 cm)
|
---|
132 | # 6x33 arcmin^2 -> 3.4 x 18.5 Mpc @ z=0.5 (1920 Mpc)
|
---|
133 | vpixz05 = 250
|
---|
134 | vpix = 250
|
---|
135 | # kappa ~ (1/fill_factor)^2
|
---|
136 | kappa = 1
|
---|
137 | # FOV ~ 5 deg^2 (10degx30') @ z=0.5
|
---|
138 | FOV = 5
|
---|
139 | echo "setup-Nancay-MB: VPix=$vpix Kappa=$kappa"
|
---|
140 | TSYS = 200.e3
|
---|
141 | TINT1 = 4.e5
|
---|
142 | TINT2 = 1.e5
|
---|
143 | TINT3 = 0.25e5
|
---|
144 | TINT4 = 0.6e4
|
---|
145 | set ndays ( '60 days' '60 days' '60 days' '60 days' )
|
---|
146 | set vols ( $VOL1 $VOL2 $VOL3 )
|
---|
147 | set tints ( $TINT1 $TINT2 $TINT3 )
|
---|
148 | endscript
|
---|
149 |
|
---|
150 | # Definition tableau de volumes, couleurs ...
|
---|
151 | set vols ( $VOL1 $VOL2 $VOL3 )
|
---|
152 | set tints ( $TINT1 $TINT2 $TINT3 )
|
---|
153 | set cols ( green blue red )
|
---|
154 |
|
---|
155 | #############################################################
|
---|
156 | ### Script de scaling des quantites avec z
|
---|
157 | defscript scalewz ' Scale with z , Usage scalewz z DA H TimeFac'
|
---|
158 | if ( $# < 5 ) then
|
---|
159 | echo ' scalewz/error, Usage scalewz z DA H TimeFac'
|
---|
160 | endif
|
---|
161 | z = $1
|
---|
162 | DA = $2
|
---|
163 | H = $3
|
---|
164 | timfac = $4
|
---|
165 | vfac = ($DA/$DAz05)*($DA/$DAz05)*($H/$Hz05)
|
---|
166 | zfac = (1+$z)/1.5
|
---|
167 | vpix = $vpixz05*$vfac*$zfac*$zfac
|
---|
168 | delk = $delkz05*$zfac
|
---|
169 | set vols ( $VOL1 $VOL2 $VOL3 )
|
---|
170 | set tints ( $TINT1 $TINT2 $TINT3 )
|
---|
171 | for i 0:3
|
---|
172 | vols[i] = $vols[i]*$vfac
|
---|
173 | tints[i] = $tints[i]*$zfac*$zfac*$timfac
|
---|
174 | end
|
---|
175 | convpk2t21
|
---|
176 | echo "ScaleZ/Info: z=$z DA=$DA VPix=$vpix DelK=$delk"
|
---|
177 | echo "ScaleZ/Info VOLS= " $vols
|
---|
178 | echo "ScaleZ/Info TINTS= " $tints
|
---|
179 | endscript
|
---|
180 |
|
---|
181 |
|
---|
182 | #############################################################
|
---|
183 | ### Script de calcul de PNOISE
|
---|
184 | defscript pnoise ' --> Calcul de PNOISE , appel pnoise tint'
|
---|
185 | tint = $1
|
---|
186 | PNOISE = $kappa*$TSYS*$TSYS*$vpix/($tint*$DELNU)
|
---|
187 | echo " --pnoise tint= $tint --> PNOISE= $PNOISE"
|
---|
188 | endscript
|
---|
189 |
|
---|
190 |
|
---|
191 |
|
---|
192 | #############################################################
|
---|
193 | ### Script de calcul de coefficient de conversion P/k en sigma[P(k)]
|
---|
194 | defscript csigpk ' --> Calcul de Sigma_P(k) = P/k * $CSPK ( appel csigpk VolSurvey)'
|
---|
195 | vsurv = $1
|
---|
196 | CSPK = sqrt(4*Pi*Pi/($delk*$vsurv))
|
---|
197 | echo " --csigpk V_survey= $vsurv --> CSPK= $CSPK"
|
---|
198 | endscript
|
---|
199 |
|
---|
200 | #############################################################
|
---|
201 | ### Script de calcul de la valeur de k pour Deltax = 10,50,100 m @ z donne
|
---|
202 | defscript kvalfdx ' --> Calcul de k fonction de x'
|
---|
203 | set lesdx ( 5 10 20 50 100 )
|
---|
204 | lambdaz = 0.21*(1+$z)
|
---|
205 | set lesk ( 1 1 1 1 1 )
|
---|
206 | for i 0:$#lesdx
|
---|
207 | lesk[i] = 2*Pi*$lesdx[i]/$DA/$lambdaz
|
---|
208 | end
|
---|
209 | echo "---kvalfdx/ lesdx=" $lesdx
|
---|
210 | echo "---kvalfdx/ lesk=" $lesk
|
---|
211 | endscript
|
---|
212 | # On l'execute
|
---|
213 | kvalfdx
|
---|
214 |
|
---|
215 | #############################################################
|
---|
216 | ### Trace de P(k)
|
---|
217 | defscript showpkt ' Affichage P(k) et P(k) en Temp mK^2 '
|
---|
218 | zone 1 2
|
---|
219 | y1 = 500
|
---|
220 | y2 = 9e4
|
---|
221 | xyl = "xylimits=0.01,0.5,$y1,$y2 logx logy minorticks"
|
---|
222 | n/plot hpkz.val%$kk ! ! "notit nsta connectpoints black $xyl line=solid,2"
|
---|
223 | setaxelabels 'k (Mpc^-1) h=0.7' 'P(k) ' 'font=times,bolditalic,16'
|
---|
224 | settitle 'Mass power spectrum h=0.7, z=0.5' ' ' 'font=times,bolditalic,16'
|
---|
225 |
|
---|
226 | y1 = $y1*$cct21
|
---|
227 | y2 = $y2*$cct21
|
---|
228 | xyl = "xylimits=0.01,0.5,$y1,$y2 logx logy minorticks"
|
---|
229 | n/plot hpkz.val*${cct21}%$kk ! ! "notit nsta connectpoints black $xyl line=solid,2"
|
---|
230 | setaxelabels 'k (Mpc^-1) h=0.7' 'P(k) (mK^2 Mpc^3)' 'font=times,bolditalic,16'
|
---|
231 | settitle 'H_I sky temperature power spectrum (mK^2) , h=0.7, z=0.5' ' ' 'font=times,bolditalic,16'
|
---|
232 | endscript
|
---|
233 | #-----------------------------
|
---|
234 |
|
---|
235 |
|
---|
236 | #############################################################
|
---|
237 | ### Script de trace de Sigma_P(k)/P(k)
|
---|
238 | defscript showspk ' Trace de Sigma_P(k)/P(k) ( appel showspk n=0..3) '
|
---|
239 | xyl = "xylimits=0.01,0.5,1.e-3,0.4 logx logy minorticks"
|
---|
240 | set vols ( $VOL1 $VOL2 $VOL3 )
|
---|
241 | set cols ( green blue red )
|
---|
242 | csigpk $vols[0]
|
---|
243 | n/plot hpkz.$CSPK/$kk%$kk ! ! "notit nsta connectpoints $cols[0] $xyl line=solid,2"
|
---|
244 | for i 1:$1
|
---|
245 | csigpk $vols[i]
|
---|
246 | n/plot hpkz.$CSPK/$kk%$kk ! ! "same nsta connectpoints $cols[i] line=solid,2"
|
---|
247 | end
|
---|
248 |
|
---|
249 | setaxelabels 'k (Mpc^-1) h=0.7' 'Sigma_P(k)/P(k) ' 'font=times,bolditalic,16'
|
---|
250 | settitle 'Relative Sample variance (h=0.7)' ' ' 'font=times,bolditalic,16'
|
---|
251 | addline 0.01 0.1 0.4 0.1 'black line=dotted,1 same'
|
---|
252 |
|
---|
253 | kvalfdx
|
---|
254 | set kcols ( orange turquoise violet gold orange )
|
---|
255 | for i 0:$#lesk
|
---|
256 | addline $lesk[i] 1.e-3 $lesk[i] 0.4 "$kcols[i] line=dashed,1 same"
|
---|
257 | tx = $lesk[i]*0.9
|
---|
258 | ty = 0.02
|
---|
259 | tatt = 'font=times,bolditalic,16 textdirvertup vertcenter horizcenter'
|
---|
260 | addtext $tx $ty " Dist= $lesdx[i] meters " "$kcols[i] $tatt"
|
---|
261 | end
|
---|
262 | endscript
|
---|
263 |
|
---|
264 | #############################################################
|
---|
265 | ### Script de trace de P(k) +/- Sigma[P(k)
|
---|
266 | defscript showpk ' Trace de P(k) avec +/-sigma ( appel showpk n=0..3) '
|
---|
267 | y1 = 500*$cct21
|
---|
268 | y2 = 9e4*$cct21
|
---|
269 | xyl = "xylimits=0.01,0.5,$y1,$y2 logx logy minorticks"
|
---|
270 | n/plot hpkz.val*${cct21}%$kk ! ! "notit nsta connectpoints black $xyl line=solid,2"
|
---|
271 | # if ( $# > 1 ) then
|
---|
272 | for i 0:$1
|
---|
273 | csigpk $vols[i]
|
---|
274 | n/plot hpkz.val*${cct21}*(1+$CSPK/$kk)%$kk ! ! "same nstat connectpoints $cols[i] line=solid,1"
|
---|
275 | n/plot hpkz.val*${cct21}*(1-$CSPK/$kk)%$kk ! ! "same nstat connectpoints $cols[i] line=solid,1"
|
---|
276 | end
|
---|
277 | # endif
|
---|
278 | setaxelabels 'k (Mpc^-1) h=0.7' 'P(k) (mK^2 Mpc^3)' 'font=times,bolditalic,16'
|
---|
279 | settitle 'H_I sky temperature power spectrum T21-mk' ' ' 'font=times,bolditalic,16'
|
---|
280 | endscript
|
---|
281 |
|
---|
282 |
|
---|
283 | #############################################################
|
---|
284 | ### Script de trace de PNoise superpose a P(k)
|
---|
285 | defscript shownoise ' Trace de PNOISE ( appel shownoise n=0..3) '
|
---|
286 | x1 = 0.01
|
---|
287 | x2 = 0.5
|
---|
288 | for i 0:$1
|
---|
289 | pnoise $tints[i]
|
---|
290 | func $PNOISE $x1 $x2 10 "same nstat connectpoints $cols[i] line=dashed,2"
|
---|
291 | tx = 0.1
|
---|
292 | ty = $PNOISE*1.1
|
---|
293 | addtext $tx $ty "PNoise $angcov[i] $ndays[i] " "font=times,bolditalic,16 $cols[i]"
|
---|
294 | end
|
---|
295 | # addtext 0.1 1000 ' PNoise (dashed)' 'font=times,bolditalic,16 red'
|
---|
296 | endscript
|
---|
297 |
|
---|
298 |
|
---|
299 | defscript doall
|
---|
300 | showpkt
|
---|
301 | w2ps
|
---|
302 | w2eps pkt.eps
|
---|
303 | sleep 2
|
---|
304 | showpk 3
|
---|
305 | shownoise 3
|
---|
306 | showspk 3
|
---|
307 | w2ps
|
---|
308 | w2eps pknoise.eps
|
---|
309 | endscript
|
---|
310 |
|
---|
311 |
|
---|
312 | defscript dopk
|
---|
313 | showpk 3
|
---|
314 | shownoise 3
|
---|
315 | if ( $# > 0 ) then
|
---|
316 | settitle "$1" ' ' 'font=times,bold,16'
|
---|
317 | endif
|
---|
318 | showspk 3
|
---|
319 | if ( $# > 1 ) then
|
---|
320 | settitle "$2" ' ' 'font=times,bold,16'
|
---|
321 | endif
|
---|
322 | endscript
|
---|
323 |
|
---|
324 |
|
---|
325 | defscript xxtoto
|
---|
326 | ## Exemple de commandes
|
---|
327 | newwin 1 2
|
---|
328 | setup1
|
---|
329 | scalewz 0.5 1920 88 1
|
---|
330 | dopk 'P(k), PNoise - mK^2 , Setup-1 z=0.5' 'Relative Sample Variance, z=0.5'
|
---|
331 | ##
|
---|
332 | newwin 1 2
|
---|
333 | setup1
|
---|
334 | scalewz 1 3400 115 1
|
---|
335 | dopk 'P(k), PNoise - mK^2 Mpc^3, Setup-1 z=1.0' 'Relative Sample Variance, z=1.0'
|
---|
336 | ##
|
---|
337 | newwin 1 2
|
---|
338 | setup1
|
---|
339 | scalewz 1.5 4540 150 1
|
---|
340 | dopk 'P(k), PNoise - mK^2 Mpc^3, Setup-1 z=1.5' 'Relative Sample Variance, z=1.5'
|
---|
341 | ##
|
---|
342 | newwin 1 2
|
---|
343 | setup1
|
---|
344 | scalewz 2.0 5420 192 1
|
---|
345 | dopk 'P(k), PNoise - mK^2 Mpc^3, Setup-1 z=2.0' 'Relative Sample Variance, z=2.0'
|
---|
346 | ##
|
---|
347 | newwin 1 2
|
---|
348 | setup1
|
---|
349 | scalewz 2.5 6120 237 1
|
---|
350 | dopk 'P(k), PNoise - mK^2 Mpc^3, Setup-1 z=2.5' 'Relative Sample Variance, z=2.5'
|
---|
351 | ##
|
---|
352 | newwin 1 2
|
---|
353 | setup2
|
---|
354 | scalewz 0.5 1920 88 1
|
---|
355 | dopk 'P(k), PNoise - mK^2 Mpc^3, Setup-2 z=0.5' 'Relative Sample Variance, z=0.5'
|
---|
356 | ##
|
---|
357 | ##
|
---|
358 | newwin 1 2
|
---|
359 | setup2
|
---|
360 | scalewz 1 3400 115 1
|
---|
361 | dopk 'P(k), PNoise - mK^2 Mpc^3, Setup-2 z=1.0' 'Relative Sample Variance, z=1.0'
|
---|
362 | ##
|
---|
363 | newwin 1 2
|
---|
364 | setup3
|
---|
365 | scalewz 1 3400 115 1
|
---|
366 | dopk 'P(k), PNoise - mK^2 Mpc^3, Setup-3 z=1.0' 'Relative Sample Variance, z=1.0'
|
---|
367 | ##
|
---|
368 | newwin 1 2
|
---|
369 | setup3
|
---|
370 | scalewz 1.5 4500 150 1
|
---|
371 | dopk 'P(k), PNoise - mK^2 Mpc^3, Setup-3 z=1.5' 'Relative Sample Variance, z=1.5'
|
---|
372 |
|
---|
373 | ### Setup Nancay multi-beam
|
---|
374 | newwin 1 2
|
---|
375 | setupnancaymb
|
---|
376 | scalewz 0.5 1920 88 1
|
---|
377 | dopk 'P(k), PNoise - mK^2 Mpc^3, Nancay-MultiBeam z=0.5' 'Relative Sample Variance, z=0.5'
|
---|
378 |
|
---|
379 | endscript
|
---|