-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathabl_lib.py
133 lines (86 loc) · 3.52 KB
/
abl_lib.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
import pyfits as pyf
import numpy as nm
def get_cltt(lmax):
return fits2cl('/Users/benoitl/Documents/Post_doc/Lensing/Cls_theoriques/cltt_planck.fits', lmax)
def get_clttl(lmax):
return fits2cl('/Users/benoitl/Documents/Post_doc/Lensing/Cls_theoriques/clttl_planck.fits', lmax)
def get_clpp(lmax):
return fits2cl('/Users/benoitl/Documents/Post_doc/Lensing/Cls_theoriques/clpp_planck.fits', lmax)
def fits2cl(filename, lcut):
hdulist=pyf.open(filename)
cl=hdulist[1].data.field(0)
return cl[0:lcut+1]
def cl2fits(cl, filename, lcut):
"""cl2fits(cl, filename, lcut)"""
table=[pyf.Column(name='TEMPERATURE',format='1D',array=cl[0:lcut+1])]
#print table
tbhdu=pyf.new_table(table)
tbhdu.writeto(filename, clobber=True)
def create_binning_matrix(Nbins, lcut):
"create_binning_matrix(Nbins, lcut)"
### CREATION DE LA MATRICE DE BINNING ###
#Nbins=10
B=nm.zeros((Nbins,lcut+1 ))
bin1=(nm.floor(nm.linspace(2, lcut, Nbins+1)))
tab2=nm.floor((bin1[0:Nbins]+bin1[1:Nbins+1])/2)
tab3=nm.zeros(bin1.size, nm.int)
for i in range(1, bin1.size):
tab3[i]=int(bin1[i])
tab4=nm.zeros(bin1.size-1, nm.int)
for i in range(0, bin1.size-1):
tab4[i]=bin1[i+1]-bin1[i]
for i in range(0, Nbins):
B[i,tab3[i]:tab3[i+1]]=1.0/tab4[i]
tab4[0]=tab4[0]-2
B[0, 0]=0
B[0, 1]=0
return B, bin1, tab2, tab3, tab4
def create_binning_matrix2(Nbins,lmin, lmax):
"create_binning_matrix(Nbins, lcut)"
### CREATION DE LA MATRICE DE BINNING ###
#Nbins=10
B=nm.zeros((Nbins+1,lmax+1 ))
bin1=(nm.floor(nm.linspace(lmin, lmax, Nbins+1)))
bin1=nm.concatenate([[0,],bin1])
tab2=nm.floor((bin1[0:Nbins+1]+bin1[1:Nbins+2])/2)
tab3=nm.zeros(bin1.size, nm.int)
for i in range(1, bin1.size):
tab3[i]=int(bin1[i])
tab4=nm.zeros(bin1.size-1, nm.int)
for i in range(0, bin1.size-1):
tab4[i]=bin1[i+1]-bin1[i]
for i in range(0, Nbins+1):
B[i,tab3[i]:tab3[i+1]]=1.0/tab4[i]
B[0,tab3[0]:tab3[1] ]=0
tab4[0]=tab4[0]
B[0, 0]=0
B[0, 1]=0
return B, bin1, tab2, tab3, tab4
def create_bin(tab, lmax):
"""def create_bin(tab, lmax):"""
Nbins=tab.size-1
tab1=nm.floor(tab)
tab1[Nbins]=lmax
tab1[0]=tab[0]
tab2=nm.floor((tab1[0:Nbins]+tab1[1:Nbins+1])/2)
tab3=nm.zeros(tab2.size, nm.int)
for i in range(0, tab2.size):
tab3[i]=int(tab2[i])
return tab1,tab2, tab3, Nbins
def binnage(tab1, Nbins, tab, var):
"""def binnage(tab1, Nbins, tab, var):
return cl_binned,var_binned"""
cl_binned=nm.zeros(( Nbins))
var_binned=nm.zeros(( Nbins))
for i in range(0, Nbins):
cl_binned[i]=nm.sum(tab[tab1[i]:tab1[i+1]])/(tab1[i+1]-tab1[i])
var_binned[i]=nm.sum(var[tab1[i]:tab1[i+1]])/(tab1[i+1]-tab1[i])**2
return cl_binned,var_binned
def binnage_cl(tab1, Nbins, tab ):
cl_binned=nm.zeros(( Nbins))
var_binned=nm.zeros(( Nbins))
for i in range(0, Nbins):
cl_binned[i]=nm.sum(tab[tab1[i]:tab1[i+1]])/(tab1[i+1]-tab1[i])
var_binned[i]=nm.var(tab[tab1[i]:tab1[i+1]])/(tab1[i+1]-tab1[i])
return cl_binned, var_binned
temp_path='/Users/benoitl/Documents/Post_doc/temp/python_temp/'