B
    \                 @   sX   d dl Zd dlmZ d dlZd dlZdd Z	dd Z
dd Zdd	 Zd
d Zdd ZdS )    Nc          	   C   s   t | d}tdd | D }W d Q R X tdd |D }dd |D }xtt|D ]~}t|| d || d< t|| d || d< dd || D }t|d	d  t|d	d   || d	< |d	d  ||< q^W t|}t|}||fS )
Nrc             S   s   g | ]}|  qS  )split).0liner   r   a/Users/vegardjervell/Documents/4_semester/termo/tokomponent_faselikevekt_lab/kalibreringskurve.py
<listcomp>   s    zread_data.<locals>.<listcomp>c             S   s   g | ]}t d qS )   )npzeros)r   r   r   r   r   r      s    c             S   s   g | ]}d qS )r   r   )r   r   r   r   r   r      s    r      c             S   s   g | ]}t |qS r   )float)r   xr   r   r   r      s       )	openr
   array	readlinesrangelenr   sum	transpose)filenamefilelinesdatabrytning_listeriZ	line_datar   r   r   	read_data   s    "(

r   c           	   C   s  t d\} }g }g }g }xdtt|D ]T}xNtt|| D ]:}|| d |  || d |  ||| |  q<W q&W t|}t|}t|}tj||dd\}}tj||ddd\}	}
t	t
|t|d}|	d | |	d  }|	d t|
d d  | |	d t|
d d   }|	d t|
d d  | |	d t|
d d   }tj|||dd	d
 tj||dd tj|||tjdddd td td td t  |	|
fS )Nztuva_sin_kalib.txtr   r   T)V_isoV_mb
usikkerhet)covr	   blackg?)coloralpha)r#    r   )yerrxerrr#   	linestylecapsizez$x_{iso}$ / [-]zBrytningsindeks / [-]Zkalibreringskurve_2)r   r   r   appendr
   r   regnx_isopolyfitlinspaceminmaxsqrtpltfill_betweenploterrorbark
s_brytningylabelxlabelsavefigshow)r   r   r   r   brytningr   jr,   s_x_isocoeffr!   Zx_fity_fitupperlowerr   r   r   	gen_coeff   s4    


88


rC   c                sj   t  \}d   d  }t fddttD }t|jt||}|tt|fS )Nr   r   c                s    g | ]} t d  |  qS )r   )r   )r   r   )r<   r?   r   r   r   H   s    z&x_iso_fra_brytning.<locals>.<listcomp>)	rC   r
   vstackr   r   dotTr1   diag)r<   r!   r,   Zx_iso_matriser>   r   )r<   r?   r   x_iso_fra_brytningC   s
    
"rH   c             C   s   t  \}}| |d  |d  }t|d d }t|d d }td| td| t|  |d d  | d d|d  tj d  d|d  | d  }td| ||fS )Nr   r   zs_a :zs_b :r   zs_iso :)rC   r
   r1   printr6   r7   )r<   r?   r!   r,   s_as_br>   r   r   r   x_iso_fra_brytning2N   s    


J
rM   c              C   s   t d\} }g }g }g }xdtt|D ]T}xNtt|| D ]:}|| d |  || d |  ||| |  q<W q&W t|}t|}t|}tj||dd\}}tj||ddd\}	}
|	|
fS )Nzkalibreringsdata.txtr   r   T)r   r   r    )r!   )	r   r   r   r*   r
   r   r+   r,   r-   )r   r   r   r   r<   r   r=   r,   r>   r?   r!   r   r   r   
gen_coeff2d   s    


rN   c             C   sv   t  \}}|d |  |d  }t|d d }t|d d }t|d tj d | | d  |d  }||fS )Nr   r   r   )rN   r
   r1   r6   r7   )r<   r?   r!   r,   rK   rL   r>   r   r   r   x_iso_2   s    
,rO   )numpyr
   matplotlib.pyplotpyplotr2   
konstanterr6   regningr+   r   rC   rH   rM   rN   rO   r   r   r   r   <module>   s   $.0