source: Sophya/trunk/Cosmo/RadioBeam/subtractradsrc.cmd@ 3984

Last change on this file since 3984 was 3984, checked in by ansari, 14 years ago

Modification de gestion des noms de fichiers gsm_sphere.ppf , Reza 5/5/2011

File size: 10.3 KB
Line 
1#####################################################################################
2#### Commands to run the different programs to produce foreground maps
3#### and compute radio-source subtracted P(k)
4#####################################################################################
5
6### Cube definition in file cubedef.h
7
8### Step 1/ Produce an LSS data cube with appropriate size and redshift using SimLSS
9# 1.a/ Run SimLSS
10csh> ~/Objs/exe/cmvginit3df -a -1 -2 -C -G 0. -F 0 -x 360,3 -y 360,3 -z 256,1.5 -Z 0.56 -8 1. -n 10000 -O 0,2 -o lssz056 -T 2
11# 1.b/ To run SimLSS with GSM map parameters (DeltaFreq=500 MHz)
12csh> ~/Objs/exe/cmvginit3df -a -1 -2 -C -G 0. -F 0 -x 360,3 -y 360,3 -z 256,3 -Z 0.60 -8 1. -n 10000 -O 0,2 -o lssz060 -T 2
13
14# 1.c/ To run SimLSS with GSM map parametersand 40 (phi/alpha) x 30 (theta/delta) deg maps (DeltaFreq=500 MHz) @ z=0.6
15csh> ~/Objs/exe/cmvginit3df -a -1 -2 -C -G 0. -F 0 -x 600,1.9 -y 800,1.9 -z 256,2.8 -Z 0.60 -8 1. -n 10000 -O 0,2 -o lssz060 -T 2
16
17# 1.d/ To run SimLSS with GSM map parametersand 90x30 deg maps (DeltaFreq=500 MHz) @ z=1 [ 90deg-> phi/alpha, 30deg -> theta/delta]
18csh> ~/Objs/exe/cmvginit3df -a -1 -2 -C -G 0. -F 0 -x 600,2.9 -y 1800,2.9 -z 256,3.5 -Z 1.0 -8 1. -n 10000 -O 0,2 -o lssz100 -T 2
19
20# 1.c/ Change the X and Z axis of the cube to adapt it to RadioBeam package convention
21# SimLSS output : the radial (redshift) direction along X axis of the cube (TArray)
22# RadioBeam cubes : the radial (redshift) direction along Z axis of the cube (TArray)
23# Execucte the following script in spiapp :
24
25csh> cat > racube.pic
26set f lssz060
27readfits ${f}_r.fits
28rename ${f}_r map
29print map
30c++exec \
31 TArray<r_4> omap(map.SizeY(),map.SizeZ(),map.SizeX()-2 ); \
32 for(sa_size_t i=0;i<omap.SizeX();i++) \
33 for(sa_size_t j=0;j<omap.SizeY();j++) \
34 for(sa_size_t k=0;k<omap.SizeZ();k++) \
35 omap(i,j,k)=map(k+1,i,j); \
36 KeepObj(omap);
37
38rename omap lsscube
39print lsscube
40# expmeansig lsscube val
41saveppf lsscube lsscubez060.ppf
42
43csh> spiapp -term -exec racube.pic
44
45#### Cube LSS 40x30 deg (3') @ z=0.6 ( lsscubez060.ppf )
46#### -> Size= 122880000 Mean=-7.01664e-05 Sigma=2.53016 Min=-13.7439 Max=14.4648
47
48## Step 2/ Produce synchrotron and radio source sky cubes (cube unit is Temparature- Kelvin)
49# 2.a/ Synchrotron map from HASLAM 400 MHz map
50csh> ./Objs/syncube syncmap_eq.fits syncube.ppf syncmap.ppf
51# 2.b/ radio source cube from NVSS catalog
52csh> ./Objs/srcat2cube -nvss nvss.fits nvsscube.ppf nvssmap.ppf
53# Or from the north20 catalog :
54csh> ./Objs/srcat2cube -north20 north20cm.fits north20cube.ppf north20map.ppf
55
56# 2.c/ Add the two cubes using the following spiapp script
57csh> cat > sumcubes.pic
58openppf syncube.ppf
59openppf radsrccube.ppf
60# expmeansig syncube val
61# expmeansig nvsscube val
62c++exec TArray<r_4> fgndcube = syncube+radsrccube; KeepObj(fgndcube);
63print fgndcube
64# expmeansig fgndcube val
65saveppf fgndcube fgndcube.ppf
66
67csh> spiapp -term -exec sumcubes.pic
68
69#### syncube:Mean= 1.8101 Sigma= 0.326538 Min= 0.857019 Max= 3.58987
70#### nvsscube: Mean= 1.95073 Sigma= 1.68515 Min= 0.857019 Max= 428.398
71#### fgndcube=syncube+nvsscube: Mean= 0.140623 Sigma= 1.65068 Min= 0 Max= 426.559
72#### north20: fgndcube_north:
73
74## Step 2.b/ Produce foreground cube from GSM
75csh> ./Objs/gsm2cube ../Catalogs/GSM/ 1 256 fgndcube_gsm.ppf
76
77## Step 3/ Apply lobe (50 meter diameter array) effect on foreground cube and LSS cube
78csh> set ddish=55.
79csh> set ddishcor=55.
80csh> ./Objs/applobe $ddish fgndcube.ppf fgndcube_lobe.ppf
81csh> ./Objs/applobe -fib $ddish fgndcube.ppf fgndcube_flobe.ppf
82csh> ./Objs/applobe $ddish lsscube.ppf lsscube_lobe.ppf
83csh> ./Objs/applobe -fib $ddish lsscube.ppf lsscube_flobe.ppf
84## Step 3.b/ Correct for the lobe effect by bringing all to the beam of Diam/Lambda = 150 (55 m @ z=0.7 - 820 MHz)
85csh> ./Objs/applobe $ddish lsscube_lobe.ppf lsscube_corlobe.ppf $ddishcor
86csh> ./Objs/applobe $ddish fgndcube_lobe.ppf fgndcube_corlobe.ppf $ddishcor
87
88## Step 3.c/ Apply lobe (Filled 11x11 5m dishes array) effect on foreground cube and LSS cube
89csh> ./Objs/applobe repf11x11.ppf fgndcube.ppf fgndcube_lobe.ppf
90csh> ./Objs/applobe repf11x11.ppf lsscube.ppf lsscube_lobe.ppf
91## Step 3.d/ Correct for the lobe effect by bringing all to the beam of Diam/Lambda = 150 (55 m @ z=0.7 - 820 MHz)
92csh> ./Objs/applobe repf11x11.ppf lsscube_lobe.ppf lsscube_corlobe.ppf $ddishcor
93csh> ./Objs/applobe repf11x11.ppf fgndcube_lobe.ppf fgndcube_corlobe.ppf $ddishcor
94
95### Step 4/ Compute power spectra
96## mass to temperature converion factor CT21 ~= 0.21 mK for gHI=2% , 0.11 for gHI=1% , 0.13 for gHI=0.008x(1+0.6)
97## Foreground maps are in temperature
98## Noise fluctuations Sigma^2 ~ T_sys^2 / t_obs * DeltaFreq
99## Tsys ~ 50 K , DeltaFreq ~ 0.5 MHz , t_obs ~ 1 day ~ 80 000 s.
100## sigma_noise ~ 0.25 mK -> 3 mK
101# 4.a/ LSS power spectrum without noise
102csh> ./Objs/calcpk lsscube.ppf lsspk.ppf 0.13
103# and with noise
104csh> ./Objs/calcpk lsscube.ppf lsspkwn.ppf 0.13 3
105# with the lobe effect
106csh> ./Objs/calcpk lsscube_lobe.ppf lsspklobe.ppf 0.13
107csh> ./Objs/calcpk lsscube_flobe.ppf lsspkflobe.ppf 0.13
108csh> ./Objs/calcpk lsscube_lobe.ppf lsspklobewn.ppf 0.13 3
109csh> ./Objs/calcpk lsscube_corlobe.ppf lsspkcorlobe.ppf 0.13
110
111# 4.b/ Foreground power spectrum
112csh> ./Objs/calcpk fgndcube.ppf fgndpk.ppf 1000
113csh> ./Objs/calcpk fgndcube_lobe.ppf fgndpklobe.ppf 1000
114csh> ./Objs/calcpk fgndcube_flobe.ppf fgndpkflobe.ppf 1000
115csh> ./Objs/calcpk fgndcube_corlobe.ppf fgndpkcorlobe.ppf 1000
116
117# 4.c/ Extract LSS P(k) from Foreground+LSS+noise , after cleaning/subtraction without beam
118csh> set beamdesc=repf11x11.ppf
119csh> set ddishcor=55.
120csh> set noiselev=1.
121csh> ./Objs/calcpk2 lsscube.ppf 0.13 fgndcube.ppf 1000 subpk.ppf $noiselev $beamdesc 0. 0. P2
122# 4.d / Extract LSS P(k) from Foreground+LSS+noise and beam effect, without beam correction
123csh> ./Objs/calcpk2 lsscube_lobe.ppf 0.13 fgndcube_lobe.ppf 1000 subpklobe.ppf $noiselev $beamdesc 0. 0. P2
124# 4.e / Extract LSS P(k) from Foreground+LSS+noise and beam effect - correcting to a beam of Diam= $ddishcor
125csh> ./Objs/calcpk2 lsscube_lobe.ppf 0.13 fgndcube_lobe.ppf 1000 subpkcorlobe.ppf $noiselev $beamdesc $ddishcor 0. P2 reclsscorlobe.ppf
126# Or using a linear fit for foreground subtraction (old version)
127csh> ./Objs/calcpk2 lsscube_lobe.ppf 0.13 fgndcube_lobe.ppf 1000 subpkcorlobep1.ppf $noiselev $beamdesc $ddishcor 0. P2
128# 4.f / Estimate residual noise from Foreground removal :
129csh> ./Objs/calcpk2 lsscube.ppf 0. fgndcube_lobe.ppf 1000 residcorlobe.ppf $noiselev $beamdesc $ddishcor 0. P2
130csh> ./Objs/calcpk2 lsscube.ppf 0. fgndcube_lobe.ppf 1000 residnocor.ppf $noiselev $beamdesc 0. 0. P2
131
132### Step 5 / Check the results using spiapp
133setaxesatt 'font=helvetica,bold,16 fixedfontsize minorticks'
134delobjs *
135openppf fgndpk.ppf
136openppf fgndpklobe.ppf
137openppf fgndpkflobe.ppf
138openppf fgndpkcorlobe.ppf
139openppf lsspk.ppf
140openppf lsspklobe.ppf
141openppf lsspkcorlobe.ppf
142
143openppf lsspkflobe.ppf
144openppf lsspklobewn.ppf
145openppf subpklobe.ppf
146
147openppf subpkcorlobe.ppf
148
149openppf residcorlobe.ppf
150openppf residnocor.ppf
151# openppf subpknolssnocor.ppf
152
153disp lsspk 'logx logy nsta xylimits=0.01,2.,4e-11,8e-6 gold'
154disp lsspklobe 'same nsta orange'
155disp lsspklobewn 'same nsta siennared'
156settitle ' Pk[LSS] - without normalisation' ' ' 'font=helvetica,bold,16 black'
157
158
159disp fgndpk 'logx logy nsta xylimits=0.01,2.,1e-10,1. navyblue'
160disp fgndpklobe 'same nsta blue'
161disp fgndpkcorlobe 'same nsta skyblue'
162disp lsspk 'same nsta gold'
163disp lsspkflobe 'same nsta yellow'
164disp subpkcorlobe 'same nsta red'
165disp residcorlobe 'same nsta green'
166disp residnocor 'same nsta forestgreen'
167
168disp lsspklobewn 'same nsta siennared'
169# settitle 'Pk[LSS] , Pk[Foreground] and lobe effect (Dish D=50 m)' ' ' 'font=helvetica,bold,18'
170settitle 'Pk[LSS] , Pk[Foreground=GSM] and lobe effect (Dish D=50 m)' ' ' 'font=helvetica,bold,18'
171
172set lines ( 'Pk[Foreground]' 'Pk[fgnd]*Lobe' 'Pk[fgnd]*Lobe/Corrected' 'Pk[LSS]' 'Pk[LSS]*Lobe+Noise' )
173set cols ( navyblue blue skyblue gold siennared )
174textdrawer lines cols 'font=helvetica,bold,16 frame'
175
176
177disp lsspk 'logx logy nsta xylimits=0.005,2.,4e-9,4e-5 gold'
178disp lsspklobewn 'same nsta siennared'
179disp subpkcorlobe 'same nsta red'
180disp subpknolss 'same nsta green'
181
182# Calcul du volume total en Mpc^3
183set VOL (1.9*1.9*2.8*800*600*256)
184# set VOL (1.9*1.9*2.8*1800*600*256)
185plot2d
186# plot2d lsspk x val*$VOL 1 'logx logy nsta xylimits=0.01,2.,10.,1e4 cpts marker=box,5 gold'
187plot2d lsspklobewn x val*$VOL 1 'same nsta cpts marker=box,5 siennared'
188plot2d subpkcorlobe x val*$VOL 1 'same nsta cpts marker=box,5 red'
189plot2d subpklobe x val*$VOL 1 'same nsta cpts marker=box,5 blueviolet'
190plot2d subpknolss x val*$VOL 1 'same nsta cpts marker=box,5 green'
191
192# settitle 'Recovered Pk[LSS] In=LSS+(GSM) (D=50 m)' ' ' 'font=helvetica,bold,18'
193settitle 'Recovered Pk[LSS] In=LSS+(Haslam+North20cm) (D=50 m)' ' ' 'font=helvetica,bold,18'
194setaxelabels 'k (Mpc^-1) h=0.7' 'P(k) (mK^2 Mpc^3)' 'font=helvetica,bolditalic,16'
195set lines ( 'Pk[LSS]' 'Pk[LSS*lobe+noise]' 'Pk[ExtractedLSS]' 'Pk[ExtLSS,NoBeamCor]' 'Pk[residual,NoLSS]' )
196set cols ( gold siennared red blueviolet green )
197textdrawer lines cols 'font=helvetica,bold,16 frame'
198
199plot2d fgndpk x val*$VOL 1 'logx logy xylimits=0.01,1.,1.,1e10 nsta cpts marker=box,5 black'
200plot2d fgndpkflobe x val*$VOL 1 ' nsta cpts marker=circle,5 navyblue same'
201plot2d fgndpklobe x val*$VOL 1 ' nsta cpts marker=circle,5 blue same'
202
203plot2d lsspk x val*$VOL 1 ' nsta cpts marker=box,5 red same'
204plot2d lsspkflobe x val*$VOL 1 ' nsta cpts marker=circle,5 orange same'
205plot2d lsspklobe x val*$VOL 1 ' nsta cpts marker=circle,5 yellow same'
206
207c++exec \
208 Histo lsspkratioA = subpkcorlobe/lsspk; KeepObj(lsspkratioA); \
209 Histo lsspkratioB = subpkcorlobe/lsspkflobe; KeepObj(lsspkratioB);
210
211plot2d lsspk x val*$VOL 1 'logx logy nsta xylimits=0.01,2.,10.,1e4 cpts marker=box,5 gold'
212plot2d lsspklobewn x val*$VOL 1 'same nsta cpts marker=box,5 red'
213plot2d subpknolss x val*$VOL 1 'same nsta cpts marker=box,5 green'
214plot2d subpknolssnocor x val*$VOL 1 'same nsta cpts marker=box,5 magenta'
215setaxelabels 'k (Mpc^-1) h=0.7' 'P(k) (mK^2 Mpc^3)' 'font=helvetica,bolditalic,16'
216settitle 'Recovered Pk[LSS] and residual systematics' ' ' 'font=helvetica,bold,18'
217set lines ( 'Pk[LSS]' 'Pk[LSS*lobe+noise]' 'Pk[residual,NoLSS]' 'Pk[residual,NoLSS,NoBeamCorrection]' )
218set cols ( gold red green magenta )
219textdrawer lines cols 'font=helvetica,bold,16 frame'
Note: See TracBrowser for help on using the repository browser.