B
    __^                 @   sV   d dl Z d dlZd dlmZ d dlZejdd dd Zdd Zdd	 Z	dddZ
dS )    NT)suppressc             C   sH   t j|td}t| }|d | |d  d }t |dd}t | |S )N)dtype2      r   d   )npasarrayfloatlenclip
percentile)xpn r   </home/disk/rocinante/DATA/temp/WRF/test/kingcounty/bc_lib.pymatlab_percentile   s
    r   c             C   s   t | r|  } t| |S )N)ma	is_masked
compressedr   )datair   r   r   get_pct   s    
r   c             C   s    t | |d }t | |}||gS )Nr   )r   )r   r   iminimaxr   r   r   	get_pctmm   s    
r   V}b?   c             C   s|  t j| dd}t j|dd}t j|dd}|j  dk|j  dkB rR||fS |dkrt ||k d|}tt|tdddk }	t||	}
t ||
kd|}t ||
kd|}nd}	|	 }|	 }t
d}x6dd t|	dD D ]}t||\}}t||\}}t||\}}||	krnt ||k|dk@ }t ||k|dk@ }t ||k|dk@ }nx|dkrt ||k}t ||k}t ||k}nBt ||k||k@ }t ||k||k@ }t ||k||k@ }t|| dk||kB r|n
||  }t|| dk||kB r.|n
||  }|dkr|dk||k@ rdd	||d	 < n,|dkr|| ||d	 < n|| ||d	 < ||||k< || ||d	   ||< || ||d	   ||< q|| ||d	 < || ||d	   ||< || ||d	   ||< qW |dkr@t ||k d|}t ||k d|}|j}|j}t|dktj|}t|dktj|}||fS )
Ni)
fill_valuer   prece   r   c             S   s   g | ]}|qS r   r   ).0r   r   r   r   
<listcomp>:   s    zapply_bc.<locals>.<listcomp>r   )r   fix_invalidmasksumwherer   argminr   arangecopyzerosranger   r
   meanr   nan)ZobsdataZhisdataZfutdatamodeZddthresZ	max_ratioobshisfutZpminZ	pmin_zerobchisbcfutZ	ratio_avgr   Zobs_iminZobs_imaxZhis_iminZhis_imaxZfut_iminZfut_imaxZfobsZfhisZffutZobs_avgZhis_avgr   r   r   apply_bc   sh     



**


r4   )r   r   )sysnumpyr   numpy.mar   inspectset_printoptionsr   r   r   r4   r   r   r   r   <module>   s   