#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon Jul 13 12:39:28 2020

@author: louise
"""

import matplotlib.pyplot as plt
import numpy as np
import math as math
import matplotlib.image as mpimg
import glob
import csv

depth=[]
data=[]

with open('ua_sc.csv', newline='') as f:
    reader = csv.reader(f)
    data_ua_sc = list(reader)
    
with open('us_sc.csv', newline='') as f:
    reader = csv.reader(f)
    data_us_sc = list(reader)
    
with open('ua_e.csv', newline='') as f:
    reader = csv.reader(f)
    data_ua_e = list(reader)
    
with open('us_e.csv', newline='') as f:
    reader = csv.reader(f)
    data_us_e = list(reader)
    
with open('ua_d.csv', newline='') as f:
    reader = csv.reader(f)
    data_ua_d = list(reader)
    
with open('us_d.csv', newline='') as f:
    reader = csv.reader(f)
    data_us_d = list(reader)
    
with open('ua_h.csv', newline='') as f:
    reader = csv.reader(f)
    data_ua_h = list(reader)
    
with open('us_h.csv', newline='') as f:
    reader = csv.reader(f)
    data_us_h = list(reader)
    
with open('ua_meg_dermis.csv', newline='') as f:
    reader = csv.reader(f)
    data_ua_md = list(reader)

ua_sc=[]
ua_sc_wavelength=[]

for i in range(len(data_ua_sc)):
    v=float(data_ua_sc[i][1])
    ua_sc.append(v) 
    
for i in range(len(data_ua_sc)):
    v=float(data_ua_sc[i][0])
    ua_sc_wavelength.append(v)
    
us_sc=[]
us_sc_wavelength=[]

for i in range(len(data_us_sc)):
    v=float(data_us_sc[i][1])
    us_sc.append(v) 
    
for i in range(len(data_us_sc)):
    v=float(data_us_sc[i][0])
    us_sc_wavelength.append(v)
    
ua_e=[]
ua_e_wavelength=[]

for i in range(len(data_ua_e)):
    v=float(data_ua_e[i][1])
    ua_e.append(v) 
    
for i in range(len(data_ua_e)):
    v=float(data_ua_e[i][0])
    ua_e_wavelength.append(v)
    
us_e=[]
us_e_wavelength=[]

for i in range(len(data_us_e)):
    v=float(data_us_e[i][1])
    us_e.append(v) 
    
for i in range(len(data_us_e)):
    v=float(data_us_e[i][0])
    us_e_wavelength.append(v)
    
ua_d=[]
ua_d_wavelength=[]

for i in range(len(data_ua_d)):
    v=float(data_ua_d[i][1])
    ua_d.append(v) 
    
for i in range(len(data_ua_d)):
    v=float(data_ua_d[i][0])
    ua_d_wavelength.append(v)
    
us_d=[]
us_d_wavelength=[]

for i in range(len(data_us_d)):
    v=float(data_us_d[i][1])
    us_d.append(v) 
    
for i in range(len(data_us_d)):
    v=float(data_us_d[i][0])
    us_d_wavelength.append(v)
    
ua_h=[]
ua_h_wavelength=[]

for i in range(len(data_ua_h)):
    v=float(data_ua_h[i][1])
    ua_h.append(v) 
    
for i in range(len(data_ua_h)):
    v=float(data_ua_h[i][0])
    ua_h_wavelength.append(v)
    
us_h=[]
us_h_wavelength=[]

for i in range(len(data_us_h)):
    v=float(data_us_h[i][1])
    us_h.append(v) 
    
for i in range(len(data_us_h)):
    v=float(data_us_h[i][0])
    us_h_wavelength.append(v)



ua_md=[]
ua_md_wavelength=[]

for i in range(len(data_ua_md)):
    v=float(data_ua_md[i][1])
    ua_md.append(v) 
    
for i in range(len(data_ua_md)):
    v=float(data_ua_md[i][0])
    ua_md_wavelength.append(v)
    
#get 425 dermis peak
    
wavelength_400_500=np.arange(400,501) 

ua_md_index=[]
ua_md_fin=[]

for j in range(400,501): 
    v=min(range(len(ua_md_wavelength)), key=lambda i: abs(ua_md_wavelength[i]-j))
    ua_md_index.append(v)
    
for i in range(len(ua_md_index)):
    v=ua_md[ua_md_index[i]]
    ua_md_fin.append(v)
    
#join meg peak data to dermis absorption

ua_d_peak=[]

#for i,j in zip((200,301),(1,100)):
 #   ua_d[i]=ua_md_fin[j]    

ua_d_peak= ua_d[:199]+ua_md_fin + ua_d[300:]

ua_m=[]

Vmel=0.02
e_vox=200
m_vox=100


pmel_vox=Vmel*(e_vox+m_vox)
Vmel_adapted = pmel_vox / m_vox

for i in range(len(ua_e_wavelength)):
    v=(6.6 * 10.**(11) * ua_e_wavelength[i] **(-3.33) * Vmel_adapted) + ua_e[i]
    ua_m.append(v)
	
#for i in range(znumber):
#	idepth=(i*zvoxel_length)*10 #mm
#	depth.append(idepth)

#depths=np.asarray(depth)


#plt.plot(ua_sc_wavelength, ua_sc,'-',color='#a6611a',marker='X',markevery=100, linewidth=3.0, label=('Stratum Corneum'))
plt.plot(us_sc_wavelength, us_sc,'-',color='#a6611a',marker='X',markevery=100,linewidth=3.0)#,  label=('Stratum Corneum Scattering'))

#plt.plot(ua_e_wavelength, ua_e,'-',color='#dfc27d', linewidth=3.0,marker='o',markevery=100, label=('Epidermis and Basal Layer'))
plt.plot(us_e_wavelength, us_e,'-',color='#dfc27d',linewidth=3.0, marker='o',markevery=100)#, label=('Epidermis, Basal and Melanin Layer Scattering'))

#plt.plot(ua_d_wavelength, ua_d_peak,'-',color='#80cdc1',linewidth=3.0,marker='D',markevery=100,  label=('Dermis'))
plt.plot(us_d_wavelength, us_d,'-', color='#80cdc1',linewidth=3.0,marker='D',markevery=100)#, label=('Dermis Scattering'))

#plt.plot(ua_h_wavelength[200:], ua_h[200:],'-',color='#018571',linewidth=3.0, marker='v',markevery=100, label=('Subcutaneous Fat'))
plt.plot(us_h_wavelength[200:], us_h[200:],'-',color='#018571', linewidth=3.0,marker='v',markevery=100)#, label=('Subcutaneous Scattering'))

#plt.plot(ua_e_wavelength, ua_m,'-', color='k',linewidth=3.0,marker=',',markevery=100,  label=('Melanin Layer'))

plt.plot(ua_md_wavelength, ua_md,'k-', label=('dermis meg Absorption'))
	
#plt.legend()
#plt.legend(bbox_to_anchor=(1.05, 1), loc='upper left', borderaxespad=0., fontsize=20)
#plt.title('Optical Properties')
plt.xlabel('Wavelength (nm)', fontsize=20)
#plt.xscale('log')
plt.yscale('log')
plt.ylabel('Absorption Coefficent ($cm^{-1}$)', fontsize=20)
plt.xticks(fontsize=17)
plt.yticks(fontsize=20)
plt.savefig('Absorption_high_res.eps',format='eps', dpi=1200,bbox_inches='tight')
plt.show()



ua_d_peak_final=list(zip(ua_d_wavelength,ua_d_peak))

#create data file
with open("ua_d_peak.csv","w+") as my_csv:
    csvWriter = csv.writer(my_csv,delimiter=',')
    csvWriter.writerows(ua_d_peak_final)


