import numpy as np
import glob
import re
from sklearn.externals import joblib
import random


clf_source = joblib.load('../X_ray_sources.pkl') 
clf_luminosity = joblib.load('../X_ray_luminosity.pkl')

rn = np.fromfile('../RandomNumbers')

for n in range(2,42):

  name = glob.glob('Density_%04i_*'%n)
  redshift=float(re.findall(r"[-+]?\d*\.\d+|\d+",name[0])[1])
  Density=np.log10(np.fromfile('Density_%04i_%4.1f_normal.dat'%(n,redshift))) # .reshape(512,512,512)
  z = np.ones_like(Density)*redshift
  X=np.asarray([z,Density]).T

  X_ray = clf_source.predict_proba(X)[:,1]

  for i in range(len(X_ray)):
      if X_ray[i]>rn[i]:
         X_ray[i]=1.0
      else:
         X_ray[i]=0.0
  
  Lum = clf_luminosity.predict(X[X_ray==1.0])
  X_ray[X_ray==1.0] = 10.0**Lum 
  X_ray.reshape(512,512,512)  

  X_ray.tofile('XrayLuminosity_%4.2f.dat'%redshift)
 
