
    ը	fJ                         d Z ddlZddlZddlZddlmZ ddlmZ  G d d      Z	d Z
d Zdd	Zdd
ZddZd Z	 ddZy)z8
Created on Mon Nov 26 11:48:03 2012

@author: lucadelu
    N)core)GErrorc                   D    e 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y)SamplingTypea$   "
    KMVWINC = samplingtype=moving, regionbox=keyboard, shape=circle
    KMVWINR = samplingtype moving, regionbox=keyboard, shape=rectangle
    MMVWINC = samplingtype=moving, regionbox=mouse, shape=circle
    MMVWINR = samplingtype moving, regionbox=mouse, shape=rectangle

    KUNITSC = samplingtype=units, regionbox=keyboard, shape=cirlce
    KUNITSR = samplingtype=units, regionbox=keyboard, shape=rectangle
    MUNITSC = samplingtype=units, regionbox=mouse, shape=cirlce
    MUNITSR = samplingtype=units, regionbox=mouse, shape=rectangle
    wholeregionsunitsvectormovingkmvwin_circlekmvwin_rectanglemmvwin_circlemmvwin_rectanglekunits_circlekunits_rectanglemunits_circlemunits_rectangleN)__name__
__module____qualname____doc__WHOLEREGIONSUNITSVECTMVWINKMVWINCKMVWINRMMVWINCMMVWINRKUNITSCKUNITSRMUNITSCMUNITSR     3/usr/lib/grass83/gui/wxpython/rlisetup/functions.pyr   r      sJ    
 EGEDEG GG GG GG Gr&   r   c                     | dk(  r3t        j                  t         j                        j                  d       y t        j                  t         j                        j                  d       y )N FT)wxFindWindowById
ID_FORWARDEnable)values    r'   
checkValuer/   +   sC    {
"--(//6
"--(//5r&   c                     t         j                  dk(  r6d} t        j                  j	                  t        j
                  d      |       }n5d} t        j                  j	                  t        j
                  d      |       }t        j                  j	                  |d      }t        j                  j                  |      r|S t        j                  |       |S )z4Return the directory of configuration files for r.liwin32GRASS8APPDATAz.grass8HOMEzr.li)sysplatformospathjoingetenvexistsmkdir)grass_config_dirnamegrass_config_dirrlipaths      r'   
retRLiPathr@   2   s    
||w'77<<		)(<>RS(77<<		&(9;OPggll+V4G	ww~~g
r&   c                     t        j                         }|d   }t        j                  | ||      }|j                  dk7  ryy)z2Check if a map already exist in the working mapsetMAPSETr)   TF)grassgisenv	find_filename)rF   typenvmapsetmapps        r'   checkMapExistsrK   C   s9    
,,.C]F??4f-DyyBr&   c                 ^   dj                  |      }t        j                  d| |d||d|d	       t        j                  d|	       t        j                  d|
       t        j                  d|       t        j                  d|d|d|||d	       t        j                  ddd|d       y)z$Convert a single feature to a rasterz
tmp_{rast})rastz	v.extractareadT)inputcatstypelayeroutputflags	overwritequietzg.regionraster)r
   )alignz	v.to.rastval)rP   rR   rS   user.   rT   rV   rW   zg.removefr
   )rU   rR   rF   rW   N)formatrC   run_command)vectoutrastcatorigrastrS   rV   tmp_vects          r'   convertFeaturere   N   s    """0H	
 
j2	j2	j1	
 
j(QUVr&   c                     g }t        j                  d| |dd      }|j                         D ]2  }|j                  d      D ]  }|j	                  t        |              4 t        t        |            S )zOThis function returns a list of categories for all areas in
    the given layerz
v.categoryprintcentroid)rP   rS   optionrR   /)rC   read_command
splitlinessplitappendintsortedset)r
   rS   	vect_catsvclcrb   s         r'   obtainCategoriesru   m   su     I			F%j
B mmo '88C= 	'CSX&	'' #i.!!r&   c                 n    t        j                         }dj                  | |d   |d   |d   |d         S )z(Create the string for configuration filez)MASKEDOVERLAYAREA {name}|{n}|{s}|{e}|{w}
nsew)rF   rw   rx   ry   rz   )rC   regionr^   )ra   regs     r'   obtainAreaVectorr}   {   s@    
,,.C7>>CCHCCH ?  r&   c           
      *   t        |      }g }|dk(  rt        t        d             yt        |      D ]  }t	        ||         }	dj                  | j                  d      d   |j                  d      d         }
dj                  |
|		      }t        t        j                  d
|d            dk(  r |st        t        d|d|
d              yt        | ||	|||       |j                  t        |             |s|j                  |        |S )z@Create the strings to add to the configuration file using vectorr   z!The polygon seems to have 0 areas)messageNz{rast}_{vect}_@)r`   rM   z{pref}{cat})prefrb   rY   .)patternrI      zThe raster map <zD> already exists. Please remove or rename the maps with the prefix 'z1' or select the option to overwrite existing maps)lenr   _rangestrr^   rm   rC   list_stringsre   rn   r}   Update)r`   rM   rr   rS   rV   
progDialogareanumrT   rw   rb   outpref	rast_names               r'   sampleAreaVectorr      s    )nGF!|q<=>7^ !)A,"))C#$**S/!*< * 
 "((g3(?	 ""8YsKLPQQ <EgO tYT5)D&y12a 1!2 Mr&   rX   )1F)r   )r   FN)r   r*   r7   r5   grass.scriptr   rC   	core.gcmdr   r   r/   r@   rK   re   ru   r}   r   r%   r&   r'   <module>r      sP   
 
 	 
 & ! !<6"W>" CG#r&   