/
ztfwritekl.py
123 lines (93 loc) · 2.99 KB
/
ztfwritekl.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
# -*- coding: utf-8 -*-
"""
Created on Tue Mar 16 22:38:05 2021
@author: dingxu
"""
import pandas as pd
import numpy as np
from PyAstronomy.pyasl import foldAt
from PyAstronomy.pyTiming import pyPDM
import matplotlib.pylab as plt
from scipy import interpolate
import os,pickle,time
#dat=np.genfromtxt('table2data.txt',dtype=str)
def ztf_2(CSV_FILE_PATH,P):
dfdata = pd.read_csv(CSV_FILE_PATH)
hjd = dfdata['HJD']
mag = dfdata['mag']
rg = dfdata['band'].value_counts()
try:
lenr = rg['r']
except:
return [0,0],0,0
nphjd = np.array(hjd)
npmag = np.array(mag)
hang = rg['g']
nphjd = nphjd[hang:]
npmag = npmag[hang:]-np.mean(npmag[hang:])
phases = foldAt(nphjd, P)
sortIndi = np.argsort(phases)
phases = phases[sortIndi]
resultmag = npmag[sortIndi]
listmag = resultmag.tolist()
listmag.extend(listmag)
listphrase = phases.tolist()
listphrase.extend(listphrase+np.max(1))
dexin = int(1*lenr/2)
indexmag = listmag.index(max(listmag[0:dexin]))
nplistphrase = np.array(listphrase)
nplistphrase = nplistphrase-nplistphrase[indexmag]
nplistmag = np.array(listmag)
phasemag = np.vstack((nplistphrase, nplistmag)) #纵向合并矩阵
phasemag = phasemag.T
phasemag = phasemag[phasemag[:,0]>=0]
phasemag = phasemag[phasemag[:,0]<=1]
#去除异常点
mendata = np.mean(phasemag[:,1])
stddata = np.std(phasemag[:,1])
sigmamax = mendata+4*stddata
sigmamin = mendata-4*stddata
phasemag = phasemag[phasemag[:,1] > sigmamin]
phasemag = phasemag[phasemag[:,1] < sigmamax]
dmag1=np.diff(phasemag,2).std()/np.sqrt(6)
dmag2=np.diff(phasemag,2).std()/np.sqrt(6)
return phasemag,dmag1,dmag2
tot=781602
#tot=100
w=10000
t1w=tot//w
dat=np.genfromtxt('Table2data.txt',dtype=str)
tot=dat.shape[0]
ID=0
for j in range(t1w+1):
dirnm0='alldata/'+str(j).zfill(4)
t1=time.time()
data=[]
for i in range(w):
if ID>(tot-1):
break
sourceid=dat[ID,1]
dirnm='Z:/DingXu/ZTF_jkf/alldata/'+str(int(sourceid)//w).zfill(4)
tmp=[]
if (dat[ID,24].upper()=='EW'):
name=dat[ID,0]
gmag=float(dat[ID,8])
HANG=int(dat[ID,12])
P = float(dat[ID][4])
filename = dirnm+'/'+str(sourceid).zfill(7)+'.csv' #175
if os.path.getsize(filename)>100:
tmp.extend([int(sourceid)])
tmp.append(name)
tmp.append(P)
tmp.append(gmag)
pm,d1,d2=ztf_2(filename,P)
tmp.append(pm)
tmp.append(d1)
tmp.append(d2)
# plt.figure()
# plt.plot(pm[:,0],pm[:,1],'.-')
data.append(tmp)
print(ID,sourceid,filename)
ID+=1
pickle.dump(data,open(dirnm0+'.pkl','wb'))
print(time.time()-t1)