  # -*- coding: utf-8 -*-

def lg(a1,a2):
  return pow(pow((a1-a2),2),0.5)
  

def perform(typ):
 
  import numpy as np 
  import math
  import os
  
  if typ=='tah':  
    from read_tah import exp
    from read_tah import fem
    print 'tah'
  
  if typ=='tlak':  
    from read_tlak import exp
    from read_tlak import fem
    print 'tlak'
  if typ=='smyk':  
    from read_smyk import exp
    from read_smyk import fem  
    print'smyk'

#   typ_zkousky='tah'  # tah,tah,smyk 
  typ_zkousky=typ
  
  #načte hodnoty z mkp
  (fem_x,fem_y,fem_z)=fem() 
  
  #nacten hodnoty expeni (nacti_experiment)
  (exp_x,exp_y,exp_z)=exp()
  
  max_fem_1=np.amax(fem_y)
  #   print max_fem_1;
  
  
  #počet hodnot v fem
  fem_pocet=len(fem_x)
  import math
  import numpy as np
  import scipy as sc
  import matplotlib.pyplot as plt
  from scipy import interpolate
  
  krok=1
  
  
  
  #exp
  
  tck_exp = interpolate.splrep(exp_x,exp_y,s=0)
  exp_x_spline = np.arange(exp_x[0],exp_x[-1],krok)
  exp_y_spline = interpolate.splev(exp_x_spline,tck_exp,der=0)
  
  
  #fem
  tck_fem = interpolate.splrep(fem_x,fem_y,s=0)
  fem_x_spline = exp_x_spline # rozdělení hodnot podle experimentu
  fem_y_spline = interpolate.splev(fem_x_spline,tck_fem,der=0)
  
  krok=1
  
  tck_exp = interpolate.splrep(exp_x,exp_y,s=0)
  exp_x_spline = np.arange(0,exp_x[-1],krok)
  exp_y_spline = interpolate.splev(exp_x_spline,tck_exp,der=0)
  
  tck_fem = interpolate.splrep(fem_x,fem_y,s=0)
  fem_x_spline = np.arange(0,exp_x[-1],krok) # rozdělení hodnot podle experimentu
  fem_y_spline = interpolate.splev(fem_x_spline,tck_fem,der=0)
  

  chyba1=[]
  
  for i in range(len(exp_x_spline)):
    chyba1.append(lg(exp_y_spline[i],fem_y_spline[i]))
#   


  plt.plot(exp_x_spline,exp_y_spline,'g+',fem_x_spline,fem_y_spline,'r+')
  os.chdir('..')
#   plt.legend(('experiment','model'),loc='lower right')
  plt.title('sila-cas_'+str(typ))
  plt.savefig('graf_'+typ+'.png')    
  
  plt.figure()
  plt.plot(exp_z,exp_y,'g',fem_z,fem_y,'r')
#   plt.legend(('experiment','model'),loc='lower right')
#   plt.title('sila-posunuti_tah')
  plt.savefig('graf_'+typ+'_pos.png')
#   
#   plt.show()  
  
 
  #normování
  max_exp=np.max(exp_y)
  
  celkova_chyba=sum(chyba1)
  celkova_chyba=celkova_chyba/max_exp
 
  print celkova_chyba

  a=open('opti'+typ_zkousky+'.txt', mode='w')
  a.write (str(celkova_chyba))
  a.close()
  return celkova_chyba

  
if __name__ == '__main__':
  import os
  savePath=os.getcwd()
  if  os.path.isfile('output_fem_tah.txt'):
     chyba_tah=perform('tah')
  else: chyba_tah=100000
     
  
  os.chdir(savePath)
  if  os.path.isfile('output_fem_tlak.txt'):
     chyba_tlak=perform('tlak')
  else: chyba_tlak=100000
  
  os.chdir(savePath)
  if  os.path.isfile('output_fem_smyk.txt'):
     chyba_smyk=perform('smyk')
  else: chyba_smyk=100000

os.chdir(savePath)
os.chdir('..')
hodnota_celkove_chyby=chyba_tah+chyba_tlak+chyba_smyk  
chyba=open('chyba.txt', mode='w')
chyba.write(str(hodnota_celkove_chyby))
chyba.close()