-
Notifications
You must be signed in to change notification settings - Fork 1
/
DIAPL_ShuffleFluxes.py
62 lines (38 loc) · 1.61 KB
/
DIAPL_ShuffleFluxes.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
# ----------------------------------------------------------------------------------
# Description
# ----------------------------------------------------------------------------------
#
# DIAPL_ShuffleFluxes.py - a program to shuffle the flux values for FAP
#
#
# ----------------------------------------------------------------------------------
# Update History
# ----------------------------------------------------------------------------------
# 21/11/11 - code writen
# 21/11/11 - code tested
import commands as cmd
import random
import numpy as np
def GetFlux(section):
command='/Volumes/DATA/NITES/Results/M71/Photometry/Batch1/A8.0D12S8C12/%s/M71_%s.flux' % (section, section)
f=open(command).readlines()
tflux=np.empty(len(f))
tfluxerr=np.empty(len(f))
for i in range(0,len(f)):
tflux[i]=float(f[i].split('\n')[0].split()[3])
tfluxerr[i]=float(f[i].split('\n')[0].split()[4])
return tflux,tfluxerr
templist=cmd.getoutput('ls star_*.lc.txt').split('\n')
section="%s_%s" % (templist[0].split('_')[2],templist[0].split('_')[3][0])
# get the sextractor fluxes
tflux,tfluxerr=GetFlux(section)
for i in range(0,len(templist)):
starid=int(templist[i].split('_')[1])
time=np.loadtxt(templist[i], usecols=[0], unpack=True)
name="%s_shuf.lc.txt" % (templist[i].split('.')[0])
flux_new=np.empty(len(time))
for j in range(0,len(time)):
flux_new[j]=tflux[(starid-1)] + (tfluxerr[(starid-1)]*random.gauss(0,1))
z=np.concatenate((time,flux_new)).reshape(2,len(time)).transpose()
np.savetxt(name,z,fmt='%.8f %.3f')
print "[Shuffle] %d/%d" % ((i+1),len(templist))