This commit is contained in:
2024-11-01 14:56:46 +03:00
parent 2dc9aa6a8d
commit 908e25b200
51 changed files with 338 additions and 432 deletions

View File

@@ -38,7 +38,7 @@ from ridge.config import *
inkey="ALL"
sigma=3
plotme=False
"""
@@ -117,11 +117,15 @@ else:
if not os.path.exists(specdir):
os.makedirs(specdir)
fitsdir = "{}fits/".format(specdir)
if not os.path.exists(fitsdir):
os.makedirs(fitsdir)
with open(ignored_rev_file, 'rb') as fp:
ignored_rev = pickle.load(fp)
print(ignored_rev)
print("{} orbits ignored".format(len(ignored_rev)))
#sys.exit()
ign=ignored_rev.tolist()
@@ -131,14 +135,7 @@ for skey in skeys:
print("{} not found in {}".format(skey,list(skyreg.keys())))
sys.exit()
# generate array for bootstrap
ebands_sim={}
for enkey in ebands0.keys():
ebands_sim[enkey] = []
for enkey in ebands0.keys():
#bkg_fn="detcnts.{}.BKG.resid.fits".format(enkey,inkey)
#syserr, bkg_sem = get_syserror(proddir+bkg_fn)
fn="detcnts.{}.{}.resid.fits".format(enkey,inkey)
#d1 = fits.getdata(proddir+fn)
@@ -163,7 +160,7 @@ for skey in skeys:
skyreg[skey]['lat'] - skyreg[skey]['wlat']/2,
skyreg[skey]['lat'] + skyreg[skey]['wlat']/2)
#sys.exit()
df = df.query(query)
print("{}, {}: {} N={}".format(skey, enkey, query, df.shape[0]))
@@ -178,22 +175,12 @@ for skey in skeys:
if not (df.shape[0]>0):
continue
#plt.scatter(df['LON'],df['LAT'])
#plt.show()
#print("*** {} {} Data Frame size {} ***".format(skey, enkey, df.size))
sg_mean,sg_sem,skew_val,skew_err = get_spec(df, sigma=3, grxe_err_cut=grxe_err_cut, skey=skey, enkey=enkey, plotme=True, bootstrap=False, gaussfit=True)
sg_mean,sg_sem,skew_val,skew_err = get_spec(df, sigma=3, grxe_err_cut=grxe_err_cut, skey=skey, enkey=enkey, plotme=False, bootstrap=False, gaussfit=True)
ebands0[enkey]=[sg_mean,sg_sem]
skew0[enkey]=[skew_val,skew_err]
nsel = int(df.shape[0]*simfrac/100)
for n in range(nsim):
df0=df.sample(nsel)
#sg_mean,sg_sem = get_spec(df0, grxe_err_cut=grxe_err_cut, skey=skey, enkey=enkey)
#ebands_sim[enkey].append(sg_mean)
#ebands_sim[enkey][1].append(sg_sem)
###
fspec="{}{}.spec".format(specdir,skey)
with open(fspec, 'w') as fp:
for enkey in ebands0.keys():
@@ -203,8 +190,6 @@ for skey in skeys:
fp.write("0 {} {:.6f} {:.6f} 0.0\n".format(bands[enkey],flux,err))
subprocess.run(["perl", "do_pha_igr_v3_mCrab.pl", fspec])
###
fspec="{}{}.skew".format(specdir,skey)
with open(fspec, 'w') as fp:
fp.write("read serr 4\n")
@@ -213,37 +198,6 @@ for skey in skeys:
fp.write("{} {} {:.6f} {:.6f}\n".format(count,bands[enkey],skew0[enkey][0],skew0[enkey][1]))
count+=1
fspec="{}{}.sim.spec".format(specdir,skey)
with open(fspec, 'w') as fp:
for enkey in ebands_sim.keys():
data=ebands_sim[enkey]
(mu, sg) = norm.fit(data)
fp.write("0 {} {:.6f} {:.6f} 0.0\n".format(bands[enkey],mu,sg))
print("[BOOT] {}: {} {:.6f} {:.6f}".format(skey,enkey,mu,sg))
if(plotme):
n, bins, patches = plt.hist(data, 60, density=True, facecolor='green', alpha=0.75)
# add a 'best fit' line
y = norm.pdf(bins, mu, sg)
l = plt.plot(bins, y, 'r--', linewidth=2)
#plot
plt.axvline(mu, color="black")
plt.axvline(ebands0[enkey][0], color="black", linestyle="dashed")
#plt.axvline(mu+sg_sem, color="black", linestyle="dashed")
#plt.axvline(mu-sg_sem, color="black", linestyle="dashed")
plt.axvline(mu+sg, color="blue", linestyle="dashed")
plt.axvline(mu-sg, color="blue", linestyle="dashed")
plt.xlabel('Flux, mCrab')
plt.ylabel('Probability')
plt.title("[BOOT] {}: {:.2f} {:.2f}".format(enkey, mu, sg))
plt.grid(True)
plt.show()
subprocess.run(["perl", "do_pha_igr_v3_mCrab.pl", fspec])
try:
for remfile in ["cols","cols1","cols2","header",]:
os.remove(remfile)