import numpy as np
import glob
import re

filelist = glob.glob("XrayLuminosity_512*")
filelist.sort(reverse=True)

n=15
for name in filelist:

  redshift=float(re.findall(r"[-+]?\d*\.\d+|\d+",name)[1])
  #if n >14: 
  #   n+=1
  #   continue
  if redshift>=10: continue
  Xray=np.fromfile(name).reshape(512,512,512)
  Density=np.fromfile('Density_%04i_%4.2f_normal.dat'%(n,redshift)).reshape(512,512,512)

  index = np.argwhere(Xray > 0)
  if len(index) == 0: 
    Xray.tofile('XrayLuminosity_WV_%4.2f.dat'%redshift)
    n+=1
    continue
  xmin = index[:][:,0].min()
  xmax = index[:][:,0].max()
  ymin = index[:][:,1].min()
  ymax = index[:][:,1].max()
  zmin = index[:][:,2].min()
  zmax = index[:][:,2].max()

  Density_mean = Density[Xray>0].mean()
  total_Xray = Xray.sum()
  Xmean = total_Xray/(Xray[Density>Density_mean]>0).sum()
  Density[xmin:xmax,ymin:ymax,zmin:zmax] = 0.0

  #Xray=np.zeros([512,512,512])
  Xray[Density>Density_mean] = Xmean/5

  Xray.tofile('XrayLuminosity_WV_%4.2f.dat'%redshift)
  n+=1
