ó
Ý¹ÐWc           @   s‡  d  d l  Z e j d ƒ d  d l j Z d  d l j Z d  d l m	 Z	 d  d l
 Z
 d  d l Z d  d l Z d  d l Z d  d l Z d  d l m Z m Z d „  Z d „  Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z  d „  Z! d „  Z" d „  Z# d „  Z$ d „  Z% d „  Z& d „  Z' d „  Z( d „  Z) d „  Z* d „  Z d „  Z+ d „  Z, d „  Z- d „  Z. d S(   iÿÿÿÿNt   Agg(   t   Basemap(   t   pdistt
   squareformc         C   s   t  j |  ƒ d „  f S(   Nc         S   s   |  j  ƒ  d S(   Ni    (   t   nonzero(   t   z(    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyt   <lambda>   s    (   t   npt   isnan(   t   y(    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyt
   nan_helper   s    c         C   s   t  j |  | ƒ j ƒ  } | S(   N(   R   t   abst   argmin(   t   arrayt   valuet   idx(    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyt   find_index_nearest   s    c         C   sd   d d d g } d d d g } d d d	 g } d
 d d g } | | | | g } d d t  ƒ  g } d  S(   Ni   i   i   i   i   i   i   i   i   i	   i
   i   (   t   len(   R   t   wintert   springt   summert   autumnt   seasonst   idxoff(    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyt   months_to_seasons   s    c	      
   C   sÄ  t  j d d d d ƒ\ }	 }
 |	 j | d | d d ƒxMt |
 j d	 d
 ƒD]6\ } }
 | d
 } t j | ƒ } | j d | | d  d  … d  d  … f } | j ƒ  | | GH|  | } t	 j
 | | d k <| | | } |
 j | j ƒ  | d d d d d d ƒ\ } } } |
 j | j ƒ  | d d d d d d ƒ\ } } } |
 j | | d d ƒ| d
 k rO |
 j d d d i d d 6ƒ qO qO Wt  j d d ƒ t  j d | d | d ƒ t  j ƒ  d  S(   Ni   i   t   figsizei   i   s1    Distribution Comparison of Soil Moisture [m3/m3]t   fontsizei   t   starti   t   mask_regioni    t	   facecolort   Maroont   alphag      à?t   labels   ESA-CCIt	   DarkGreent   ORCHIDEEt   locs   upper rightt   propt   sizet   leftg333333Ã?s6   /Users/cmagand/pro/CMIP6/GRAPHS/temporal/hist_regions_t   _s   _summer.png(   i   i   (   t   pltt   subplotst   suptitlet	   enumeratet   flatt   netCDF4t   Datasett	   variablest   closeR   t   nant   histt   flattent	   set_titlet   legendt   subplots_adjustt   savefig(   t   map_obst   map_modt   mask_05t   nb_zonest   zonest	   ind_zonest   binst   nount   yvect   figt   axt   it   zot   nct   reg_mask_05t   aux_obst   aux_modt   n_obst   bins_obst   patches_obst   n_modt   bins_modt   patches_mod(    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyt   histo   s&    "
*
	
33$c
         C   sI  t  j d d d d  ƒ\ }
 } |
 j | d | d d ƒxÒt | j d	 d
 ƒD]»\ } } | d
 } t j | ƒ } | j d | | d  d  … d  d  … f } | j ƒ  | | GHt	 j
 | ƒ } t	 j | | d k <| | } |  | } | | | } t	 j d | j d
 | j d f ƒ } t	 j d | j d
 | j d f ƒ } xº t d ƒ D]¬ } t	 j | t | |	 d ƒ d  d  … d  d  … f d d ƒ| | d  d  … d  d  … f <t	 j | t | |	 d ƒ d  d  … d  d  … f d d ƒ| | d  d  … d  d  … f <qNW| | } | | } t	 j | d d! ƒt	 j | ƒ } t	 j | d d" ƒt	 j | ƒ } t	 j d ƒ } t j d
 d !} | j | | d d d d ƒ| j | | d d d d ƒ| j | ƒ | j | ƒ | j | | d d ƒ| d
 k rO | j d d d i d d 6ƒ qO qO Wt  j d d ƒ t  j d | d | d ƒ t  j ƒ  d  S(#   Ni   i   R   i   i   s    seasonal_cycle R   i   R   i   R   i    i   i   t   axisi   t   colort   blackR    s   ESA-CCIt
   dodgerblueR"   R#   s   upper rightR$   R%   R&   g333333Ã?s8   /Users/cmagand/pro/CMIP6/GRAPHS/temporal/seasonal_cycle_R'   s   .png(   i   i   (   i   i   (   i   i   (   R(   R)   R*   R+   R,   R-   R.   R/   R0   R   t   float_R1   t   zerost   shapet   ranget   nanmeant   nansumt   aranget   cdt
   month_abbrt   plott
   set_xtickst   set_xticklabelsR4   R5   R6   R7   (   R8   R9   t   areacellR:   R;   R<   R=   R?   R@   t   ntimeRA   RB   RC   RD   RE   RF   t   areacellregRG   RH   t
   obs_seasont
   mod_seasont   tt   obstmpt   modtmpt   obst   modt   xt   mons(    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyt   seasonal_cycle7   sD    "
*
	

&&SW

""$c	         C   sÀ  t  j d d d d ƒ\ }	 }
 |	 j | d | d d ƒxIt |
 j d	 d
 ƒD]2\ } }
 | d
 } t j | ƒ } | j d | | d  d  … d  d  … f } | j ƒ  | | GH|  | } t	 j
 | | d k <| | | } t	 j | d d ƒ} t	 j | d d  ƒ} |
 j | | d d d d ƒ|
 j | | d d d d ƒ|
 j | | d d ƒ| d
 k rO |
 j d d d i d d 6ƒ qO qO Wt  j d d ƒ t  j d | d | d ƒ t  j ƒ  d  S(!   Ni   i   R   i   i   s    Timeserie R   i   R   i   R   i    RP   i   RQ   RR   R    s   ESA-CCIRS   R"   R#   s   upper rightR$   R%   R&   g333333Ã?s3   /Users/cmagand/pro/CMIP6/GRAPHS/temporal/timeserie_R'   s	   _test.png(   i   i   (   i   i   (   i   i   (   R(   R)   R*   R+   R,   R-   R.   R/   R0   R   R1   RX   R]   R4   R5   R6   R7   (   R8   R9   R:   R;   R<   R=   R?   R@   t   datesRA   RB   RC   RD   RE   RF   RG   RH   Rh   Ri   (    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyt	   timeserie]   s*    "
*
	
$c
         C   s#  xt  | ƒ D]}
 t j | ƒ } | j d | |
 d  d  … d  d  … f } | j ƒ  t j | ƒ } |  | } t j | | d k <| | | } xe t  | ƒ D]W } t | | d  d  … d  d  … f j	 ƒ  | | d  d  … d  d  … f j	 ƒ  ƒ | | <q Wt
 j | ƒ } t
 j | d d d ƒ} t j ƒ  \ } } | j |	 | d d d d	 t j t j | ƒ ƒ ƒ| j | d
 ƒ | j d d g ƒ t j d d ƒ t j d ƒ t j d d ƒ t j | d | |
 d | ƒ t j ƒ  t j d | d | |
 d | d ƒ | |
 GHt j ƒ  q Wd  S(   NR   i    i   t   min_periodsi   RQ   t   goldR    s   monthly, ave=%.2fs    Correlation coefficientg        g      ð?R#   s   lower rightt   Timet   rotationiF   t    s0   /Users/cmagand/pro/CMIP6/GRAPHS/temporal/spacor_R'   s	   _test.png(   RW   R-   R.   R/   R0   R   RU   R1   t	   cor_serieR3   t   pdt   Seriest   rolling_meanR(   R)   R]   RX   R   t
   set_ylabelt   set_ylimR5   t   xlabelt   xtickst   titlet   tight_layoutR7   (   R8   R9   R:   t   nmonthsR;   R<   R@   R?   R=   Rm   RD   RE   RF   t   obs_modRG   RH   RC   RA   RB   (    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyt   spacort   s0    *

U2!
)	c         C   s  t  | |  ƒ } t j j | ƒ } t j ƒ  } t d d d d d d d d d	 d
 d d ƒ } | j d d ƒ t j	 d ƒ }	 | j
 | | | d d d |	 d t d d d d ƒ}
 | j |
 d d ƒ} | j d ƒ t j | d t j | ƒ ƒ t j d | d | d ƒ t j ƒ  d  S(   Nt
   projectiont   millt	   llcrnrlati¦ÿÿÿt	   urcrnrlatiZ   t	   llcrnrloniLÿÿÿt	   urcrnrloni´   t
   resolutiont   ct	   linewidthg      à?t   RdBut   shadingR,   t   cmapt   latlont   vmingš™™™™™¹¿t   vmaxgš™™™™™¹?t   padg{®Gáz´?s   Bias Error (m3/m3)s   , Mean = %.3fs.   /Users/cmagand/pro/CMIP6/GRAPHS/temporal/bias_R'   s	   _test.png(   t   mbe_alldataR   t   mat   masked_invalidR(   t   figureR   t   drawcoastlinest   cmt   get_cmapt
   pcolormesht   Truet   colorbart	   set_labelR|   RX   R7   R0   (   t   data_modt   data_obst   latt   lonR@   R?   t   diffRA   t   mRŒ   t   cmesht   cbar(    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyt   bias_map   s    -3c         C   s  t  | |  ƒ } t j j | ƒ } t j ƒ  } t d d d d d d d d d	 d
 d d ƒ } | j d d ƒ t j	 d ƒ }	 | j
 | | | d d d |	 d t d d d d ƒ}
 | j |
 d d ƒ} | j d ƒ t j | d t j | ƒ ƒ t j d | d | d ƒ t j ƒ  d  S(   NR   R‚   Rƒ   i¦ÿÿÿR„   iZ   R…   iLÿÿÿR†   i´   R‡   Rˆ   R‰   g      à?t   jetR‹   R,   RŒ   R   RŽ   g      ð¿R   g      ð?R   g{®Gáz´?s   Correlation Coefficients   , Mean = %.3fs-   /Users/cmagand/pro/CMIP6/GRAPHS/temporal/cor_R'   s	   _test.png(   t   cor_alldataR   R’   R“   R(   R”   R   R•   R–   R—   R˜   R™   Rš   R›   R|   RX   R7   R0   (   t   sm_modt   sm_obsRž   RŸ   R@   R?   R    RA   R¡   RŒ   R¢   R£   (    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyt   cor_mapž   s    -3c         C   s  t  | |  ƒ } t j j | ƒ } t j ƒ  } t d d d d d d d d d	 d
 d d ƒ } | j d d ƒ t j j	 d ƒ }	 | j
 | | | d d d |	 d t d d d d ƒ}
 | j |
 d d ƒ} | j d ƒ t j | d t j | ƒ ƒ t j d | d | d ƒ t j ƒ  d  S(   NR   R‚   Rƒ   i¦ÿÿÿR„   iZ   R…   iLÿÿÿR†   i´   R‡   Rˆ   R‰   g      à?t   YlOrRdR‹   R,   RŒ   R   RŽ   i    R   i   R   g{®Gáz´?s   normalised RMSDs   , Mean = %.3fs.   /Users/cmagand/pro/CMIP6/GRAPHS/temporal/rmsd_R'   s	   _test.png(   t   rmsd_alldataR   R’   R“   R(   R”   R   R•   R–   R—   R˜   R™   Rš   R›   R|   RX   R7   R0   (   Rœ   R   Rž   RŸ   R@   R?   R    RA   R¡   RŒ   R¢   R£   (    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyt   rmsd_map­   s    -3c         C   s   t  j | |  d d ƒS(   NRP   i    (   R   RX   (   R¨   R§   (    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyR‘   ¼   s    c         C   s¨   |  t  j |  d d ƒt  j | d d ƒt  j |  d d ƒt  j | d d ƒ} t  j |  d d d ƒt  j |  d d d ƒ} t  j t  j | | d d d ƒƒ | S(   NRP   i    iZ   i
   i   (   R   RX   t   nanstdt   nanpercentilet   sqrt(   R¨   R§   RG   t	   obs_range(    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyR«   À   s    R.c         C   s8   t  |  ƒ } t |  d | | !|  | | !ƒ t j |  ƒ S(   Ni    (   R   t	   cov_serieR   t   nanvar(   t   datat   kt   N(    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyt   lagk_autocorÆ   s    c         C   s  t  j | j ƒ } t  j |  j ƒ } t  j |  d d ƒ} t  j | d d ƒ} |  j d } xŒ t | ƒ D]~ } | | d  d  … d  d  … f | | | d  d  … d  d  … f <|  | d  d  … d  d  … f | | | d  d  … d  d  … f <qh Wt  j | | d d ƒS(   NRP   i    (   R   RU   RV   RX   RW   (   R¨   R§   Ri   Rh   t   mean_obst   mean_modt   timeRe   (    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyt   cov_alldataË   s    <@c         C   s3   t  |  | ƒ t j | d d ƒt j |  d d ƒS(   NRP   i    (   Rº   R   R­   (   R¨   R§   (    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyR¦   ×   s    c         C   s+   t  j | t  j | ƒ |  t  j |  ƒ ƒ S(   N(   R   RX   (   R¨   R§   (    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyR±   Û   s    c         C   s'   t  |  | ƒ t j | ƒ t j |  ƒ S(   N(   R±   R   R­   (   R¨   R§   (    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyRt   ß   s    c         C   s+   d } x | |  | k r& | d 7} q	 W| S(   Ni    i   (    (   t	   cum_arrayt   dayRC   (    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyt   day_to_monthã   s    c	         C   sÚ  t  | ƒ }	 xÇt  | ƒ D]¹}
 | |
 GHt j | ƒ } t j | ƒ } t j | ƒ } | j d | |
 d  d  … d  d  … f } | j ƒ  t j | ƒ } t j | | d k <|  | } t j	 t j	 | d d ƒd d ƒ} | | } t j	 t j	 | d d ƒd d ƒ} t
 } t
 } xF |	 D]> } t t j | ƒ | ƒ | | <t t j | ƒ | ƒ | | <qWt j | | d k <t j | ƒ j d d ƒ } t j | | d k <t j | ƒ j d d ƒ } xd |	 D]\ } | t
 k rð| | d k  rðt } | } n  | t
 k r¿| | d k  r¿t } | } q¿q¿Wt j d d, ƒ \ } } t j |	 | d d d d d d | ƒt j |	 | d d d d d d | ƒ| j d d d d d d d d ƒ | j d d d d d d ƒ t j d d g ƒ t j d | g ƒ t j d d d ƒt j d d d ƒt j | d  d d! d g d" t j d | d# ƒ ƒt j | j ƒ  d d
 ƒt j | j ƒ  d d
 ƒt j d$ d% d& d' d d ƒ t j | |
 d( d d	 ƒt j d) | d* | |
 d+ ƒ t j ƒ  q Wd  S(-   NR   i    RP   iÿÿÿÿt   methodt   pchipg®Gáz®×?R   i   i   RQ   RS   R‰   g      @R    s   MJung (lag_time=%.0f)t	   limegreens   v5.67PDay01(lag_time=%.0f)R	   Rˆ   RR   g      ð?t	   linestyles   --g        gš™™™™™É¿g333333ó?s   Time Lag [d]R   i   s   Autocorrelation coefficientt   yticksg      à?R{   i   R#   s   upper rightt   ncoli   Rs   s5   /data/sli/PC/semivariogramme_sansNOSU/output/autocor_R'   s   .png(   i   i   (    RW   R   RU   R-   R.   R/   R0   RT   R1   RX   t   FalseR¶   R   Ru   Rv   t   interpolateR™   R(   R)   R]   t   axhlinet   ylimt   xlimRz   t   ylabelt   setpt   linspacet   get_xticklabelst   get_yticklabelsR5   R|   R7   (   R8   R9   R:   R;   R<   R?   R=   t   cutR~   t   kvecRC   t   autocor_obst   autocor_modRE   RF   Rh   Ri   t   b_obst   b_modR´   t   l_obst   l_modt   fRB   (    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyt   autocorê   s\    	*

$
$ 	&&"1!c
   '   
   C   s	  xt  | ƒ D]ô}
 | |
 GHt j | ƒ } | j d | |
 d  d  … d  d  … f } | j d } | j d } | j ƒ  t j | d k ƒ } t j | d ƒ } t j | d ƒ } t j | d ƒ } t j | d ƒ } | | | d … | | d … f } | | | d !} | | | d !} t	 | ƒ } t	 | ƒ } t
 j ƒ  t j |  d  d  … | | d … | | d … f d d ƒ} | | } t j | d  d  … | | d … | | d … f d d ƒ} | | } t j t j t j | d  d  … d  d  … f ƒ ƒ d f ƒ } t j t j t j | d  d  … d  d  … f ƒ ƒ d f ƒ } d } xÖ t  | ƒ D]È } x¿ t  | ƒ D]± } t j | | | f ƒ rr| | | | d f <| | | | d f <| | | f | | d f <| | | | d f <| | | | d f <| | | f | | d f <| d 7} qrqrWq_Wt | | |	 ƒ \ } } t | | |	 ƒ \ } }  t j | d	 d
 d ƒ} t j |  d	 d
 d ƒ}  t j | d d ƒ } t j | d d ƒ } t j | d d ƒ } t j |  d d ƒ }  t
 j | | d d d d ƒt
 j | |  d d d d ƒt
 j ƒ  j ƒ  \ }! }" g  g  }# }$ xF t |! |" ƒ D]5 \ }% }& |& |# k rL|# j |& ƒ |$ j |% ƒ qLqLWt
 j |$ |# d d d d d d ƒt
 j d ƒ t
 j d ƒ t
 j | |
 d ƒ t
 j d | d | |
 d ƒ t
 j ƒ  q Wd  S(   NR   RŸ   Rž   i   i    RP   i   i   i   Ro   RQ   t   cyanR    t   MJUNGRÀ   s   v5.67PDay01RÃ   R#   s   upper centerR   i
   s   Distance [km]s   Semi-VarianceRs   s7   /data/sli/PC/semivariogramme_sansNOSU/output/semivario_R'   s   .png(   RW   R-   R.   R/   R0   R   t   wheret   mint   maxR   R(   R”   RX   RU   t   count_nonzeroR   t   semivariogramRu   Rw   t   insertR]   t   gcat   get_legend_handles_labelst   zipt   appendR5   Rz   RÉ   R|   R7   ('   t	   map_obs_mt	   map_mod_mR:   R;   R<   R?   R=   t   dayst   nlagt   lmaxRD   RE   t   rmask05t   lons_05t   lats_05t   inds05t   lat1_05t   lon1_05t   lat2_05t   lon2_05t   lat_05t   lon_05t	   gpp_obs_mt	   gpp_mod_mR   Rœ   t   lRC   t   jt   D_obs_mt   G_obs_mt   D_mod_mt   G_mod_mt   handlest   labelst	   newLabelst
   newHandlest   handleR    (    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyt	   semivario   sr    	*
$
<
<
>>"!c   N      C   s¶  x¯t  | ƒ D]¡} | | GHt j | ƒ } | j d | | d  d  … d  d  … f } | j d } | j d } | j ƒ  t j | d k ƒ } t j | d ƒ } t j | d ƒ } t j | d ƒ } t j | d ƒ } | | | d … | | d … f } | | | d !} | | | d !} t	 | ƒ } t	 | ƒ } t
 j ƒ  t j |  d  d  … | | d … | | d … f d d ƒ} | | } t j | d  d  … | | d … | | d … f d d ƒ}  |  | }  t j | d  d  … | | d … | | d … f d d ƒ}! |! | }! t j | d  d  … | | d … | | d … f d d ƒ}" |" | }" t j | d  d  … | | d … | | d … f d d ƒ}# |# | }# t j | d  d  … | | d … | | d … f d d ƒ}$ |$ | }$ t j | d  d  … | | d … | | d … f d d ƒ}% |% | }% t j | d  d  … | | d … | | d … f d d ƒ}& |& | }& t j | d  d  … | | d … | | d … f d d ƒ}' |' | }' t j |	 d  d  … | | d … | | d … f d d ƒ}( |( | }( t j |
 d  d  … | | d … | | d … f d d ƒ}) |) | }) t j t j t j | d  d  … d  d  … f ƒ ƒ d f ƒ }* t j t j t j | d  d  … d  d  … f ƒ ƒ d f ƒ }+ t j t j t j | d  d  … d  d  … f ƒ ƒ d f ƒ }, t j t j t j | d  d  … d  d  … f ƒ ƒ d f ƒ }- t j t j t j | d  d  … d  d  … f ƒ ƒ d f ƒ }. t j t j t j | d  d  … d  d  … f ƒ ƒ d f ƒ }/ t j t j t j | d  d  … d  d  … f ƒ ƒ d f ƒ }0 t j t j t j | d  d  … d  d  … f ƒ ƒ d f ƒ }1 t j t j t j | d  d  … d  d  … f ƒ ƒ d f ƒ }2 t j t j t j | d  d  … d  d  … f ƒ ƒ d f ƒ }3 t j t j t j | d  d  … d  d  … f ƒ ƒ d f ƒ }4 d }5 x(t  | ƒ D]}6 xt  | ƒ D]}7 t j | |6 |7 f ƒ r| |6 |* |5 d f <| |7 |* |5 d f <| |6 |7 f |* |5 d f <| |6 |+ |5 d f <| |7 |+ |5 d f <|  |6 |7 f |+ |5 d f <| |6 |, |5 d f <| |7 |, |5 d f <|! |6 |7 f |, |5 d f <| |6 |- |5 d f <| |7 |- |5 d f <|" |6 |7 f |- |5 d f <| |6 |. |5 d f <| |7 |. |5 d f <|# |6 |7 f |. |5 d f <| |6 |/ |5 d f <| |7 |/ |5 d f <|$ |6 |7 f |/ |5 d f <| |6 |0 |5 d f <| |7 |0 |5 d f <|% |6 |7 f |0 |5 d f <| |6 |1 |5 d f <| |7 |1 |5 d f <|& |6 |7 f |1 |5 d f <| |6 |2 |5 d f <| |7 |2 |5 d f <|' |6 |7 f |2 |5 d f <| |6 |3 |5 d f <| |7 |3 |5 d f <|( |6 |7 f |3 |5 d f <| |6 |4 |5 d f <| |7 |4 |5 d f <|) |6 |7 f |4 |5 d f <|5 d 7}5 qqWqWt |* | | ƒ \ }8 }9 t |+ | | ƒ \ }: }; t |, | | ƒ \ }< }= t |- | | ƒ \ }> }? t |. | | ƒ \ }@ }A t |/ | | ƒ \ }B }C t |0 | | ƒ \ }D }E t |1 | | ƒ \ }F }G t |2 | | ƒ \ }H }I t |3 | | ƒ \ }J }K t |4 | | ƒ \ }L }M t j |9 d	 d
 d ƒ}9 t j |; d	 d
 d ƒ}; t j |= d	 d
 d ƒ}= t j |? d	 d
 d ƒ}? t j |A d	 d
 d ƒ}A t j |C d	 d
 d ƒ}C t j |E d	 d
 d ƒ}E t j |G d	 d
 d ƒ}G t j |I d	 d
 d ƒ}I t j |K d	 d
 d ƒ}K t j |M d	 d
 d ƒ}M t j |8 d d ƒ }8 t j |9 d d ƒ }9 t j |: d d ƒ }: t j |; d d ƒ }; t j |< d d ƒ }< t j |= d d ƒ }= t j |> d d ƒ }> t j |? d d ƒ }? t j |@ d d ƒ }@ t j |A d d ƒ }A t j |B d d ƒ }B t j |C d d ƒ }C t j |D d d ƒ }D t j |E d d ƒ }E t j |F d d ƒ }F t j |G d d ƒ }G t j |H d d ƒ }H t j |I d d ƒ }I t j |J d d ƒ }J t j |K d d ƒ }K t j |L d d ƒ }L t j |M d d ƒ }M t
 j |8 |9 d d d d ƒt
 j |: |; d d d d ƒt
 j |< |= d d d d ƒt
 j |> |? d d d d ƒt
 j |@ |A d d d d ƒt
 j |B |C d d d d ƒt
 j |F |G d d d d ƒt
 j |H |I d d d d ƒt
 j |J |K d d d d ƒt
 j |L |M d d d d  ƒt
 j d! d" d# d$ d% d& d' d( d d) g
 d* d d+ d, d- d. ƒt
 j d/ ƒ t
 j d0 ƒ t
 j | | d1 ƒ t
 j d2 | d3 | | d4 ƒ t
 j ƒ  q Wd  S(5   NR   RŸ   Rž   i   i    RP   i   i   i   Ro   RQ   RR   R    RÙ   RÀ   s   IPSL-CM5A-MRt   perus   CM605-LR-pdCtrl-01t   greens   CM605.calv-LR-pdCtrl-02t   reds   CM605.dt20-LR-pdCtrl-02t   yellows   CM605.GUST-LR-pdCtrl-01t   blues   CM605.THC1-LR-pdCtrl-01t   browns   CM605.Z0-LR-pdCtrl-01t   olives   NPv5.70PDctrl01RØ   s   5.71vd2qsp375t   OBSs	   IPSL-CM5As   CM605-LRs
   CM605.calvs
   CM605.dt20s
   CM605.GUSTs
   CM605.THC1s   CM605.Z0s   v5.71vd2qsp375RÃ   R#   s
   upper leftR   i
   s   Distance [km]s   Semi-VarianceRs   s7   /data/sli/PC/semivariogramme_sansNOSU/output/semivario_R'   s   .png(   RW   R-   R.   R/   R0   R   RÚ   RÛ   RÜ   R   R(   R”   RX   RU   RÝ   R   RÞ   Ru   Rw   Rß   R]   R5   Rz   RÉ   R|   R7   (N   Rä   t
   map_mod_m1t
   map_mod_m2t
   map_mod_m3t
   map_mod_m4t
   map_mod_m5t
   map_mod_m6t
   map_mod_m7t
   map_mod_m8t
   map_mod_m9t   map_mod_m10R:   R;   R<   R?   R=   Ræ   Rç   Rè   RD   RE   Ré   Rê   Rë   Rì   Rí   Rî   Rï   Rð   Rñ   Rò   Ró   t
   gpp_mod_m1t
   gpp_mod_m2t
   gpp_mod_m3t
   gpp_mod_m4t
   gpp_mod_m5t
   gpp_mod_m6t
   gpp_mod_m7t
   gpp_mod_m8t
   gpp_mod_m9t   gpp_mod_m10R   t	   data_mod1t	   data_mod2t	   data_mod3t	   data_mod4t	   data_mod5t	   data_mod6t	   data_mod7t	   data_mod8t	   data_mod9t
   data_mod10Rõ   RC   Rö   R÷   Rø   t   D_mod_m1t   G_mod_m1t   D_mod_m2t   G_mod_m2t   D_mod_m3t   G_mod_m3t   D_mod_m4t   G_mod_m4t   D_mod_m5t   G_mod_m5t   D_mod_m6t   G_mod_m6t   D_mod_m7t   G_mod_m7t   D_mod_m8t   G_mod_m8t   D_mod_m9t   G_mod_m9t	   D_mod_m10t	   G_mod_m10(    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyt   semivario_multic  s*   	*
$
<
<
<
<
<
<
<
<
<
<
<
>>>>>>>>>>>
=!c         C   s   t  j |  | ƒ j ƒ  } | S(   s1   
    Find index nearest value in numpy array
    (   R   R   R   (   R   R   R   (    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyR   _  s    c      	   C   sM  d } |  j  d } |  d d … d f t j d } |  d d … d f t j d } t j | | f ƒ } xÜ t | d ƒ D]Ê } xÁ t | d | ƒ D]¬ } t d t j | | ƒ t j | | ƒ t j | | ƒ t j | | ƒ t j | | | | ƒ d ƒ | | | f <| d t j	 | | | f d ƒ | | | f <q• Wq{ W| S(   s)   
    Compute distances between point
    g     ç¸@i    Ng     €f@i   g       @g      à?(
   RV   R   t   piRU   RW   R   R’   t   sint   cost   asin(   R   t   RTerreRµ   t   latst   lonst   distRC   Rö   (    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyt   grid_distancese  s    !!w7c         C   sÛ  |  d d … d f } t  j | | ƒ \ } } t |  d d … d d … f ƒ } d | | d } t t | ƒ ƒ } t  j | | ƒ \ }	 }
 | |
 |	 k } | |
 |	 k } | | | k } | | | k } t | ƒ } t | | ƒ } t  j | ƒ } t  j | ƒ } t  j | ƒ } d } x³ | | k  rÐ| | d k  r‹| | | | | | d !j ƒ  | | <| | | | | | d !j ƒ  | | <n8 | | | | j ƒ  | | <| | | | j ƒ  | | <| d 7} qW| | f S(   s#   
    Compute the semivariogram
    Ni   g      à?i    i   (	   R   t   meshgridRD  RW   R   t   intt   argsortRU   t   mean(   t   SMt   n_lagRè   R   t   Z1t   Z2t   Dt   Gt   indxt   Ct   Rt   total_nt   group_nt   sor_it   DEt   GERC   (    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyRÞ   x  s0    "'*c         C   sä   | d } | d } | d } | } |  d k ry | | | d | | d | | d | | k | | | | k } ng |  d k rž | | | | | } nB |  d	 k rÔ | | | d
 t  j d | | ƒ } n t d ƒ ‚ | S(   s]   
    fits a model to the semivariogram data and returns a covariance method named covfct
    t   nuggetRW   t   sillt	   sphericalg      ø?g      à?g      @t   lineart   exponentiali   iýÿÿÿs7   model_type should be spherical or linear or exponential(   R   t   expt
   ValueError(   t
   model_typet	   model_part   lagst   nt   rt   sRõ   RN  (    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyt   cvmodel£  s    


I*c      
   C   s„   t  j ƒ  } t  j |  j ƒ  | j ƒ  d d d d d d d ƒt  j ƒ  t  j d ƒ t  j d	 ƒ t  j d
 | d ƒ t  j ƒ  d  S(   Nt   oRQ   RS   R    t   CL3R   g      à?s   ESA CCI [m3/m3]s   ORCHIDEE [m3/m3]s1   /Users/cmagand/pro/CMIP6/GRAPHS/temporal/scatter_s   .png(	   R(   R”   R]   R3   R5   Rz   RÉ   R7   R0   (   Rh   Ri   R@   RA   (    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyt   scatterplot_spatial·  s    1
(/   t
   matplotlibt   mplt   uset   matplotlib.pyplott   pyplotR(   t   matplotlib.cmR–   t   mpl_toolkits.basemapR   R-   t   numpyR   t   pandasRu   t   mathR’   t   calendarR[   t   scipy.spatial.distanceR   R   R
   R   R   RO   Rl   Rn   R€   R¤   R©   R¬   R‘   R«   R¶   Rº   R¦   R±   Rt   R½   R×   R   R;  RD  RÞ   Rd  Rg  (    (    (    s/   /data/sli/PC/semivariogramme_sansNOSU/pratic.pyt   <module>   sH   						&														6	C	ü			+	