
    (e"'              
           d dl Z d dlZd dlmZ d dlmZmZ d Z	 	 ddededee   dee	   fd	Z
dd
Zej                  fdZedk(  r# ej                   eej                               yy)    N)Optional)gdalosrc                 V    | j                         rd|d   |d   fz  S d|d   |d   fz  S )Nz%12.3f %12.3fr      z%12.8f %12.8f)IsProjected)srs_objlocs     6/usr/lib/python3/dist-packages/osgeo_utils/gdalmove.pyfmt_locr   )   s>    #a&#a&!111c!fc!f---    filenamet_srss_srspixel_thresholdc                    t        j                  |       }g d}dd|j                  df|j                  ddf|j                  |j                  df|j                  dz  |j                  dz  dfg}|j	                         }g }|D ]O  }	|j                  |d   |	d   |d   z  z   |	d   |d   z  z   |d   |	d   |d	   z  z   |	d   |d
   z  z   |	d   f       Q ||j                         }t        j                         }
|
j                  |       t        j                         }|j                  |       t        j                  |
|      }|j                  |      }|d   }|d   }|d   }|d   |d   |d   z
  |j                  z  |d   |d   z
  |j                  z  |d   |d   |d   z
  |j                  z  |d   |d   z
  |j                  z  f}t        j                  |      }g }g }g }g }t        d       t        t        |            D ]d  }||   }	|j                  |d   |	d   |d   z  z   |	d   |d   z  z   |d   |	d   |d	   z  z   |	d   |d
   z  z   |	d   f       |j                  ||   d   ||   d   z
  ||   d   ||   d   z
  df       ||   }	|j                  |d   |	d   |d   z  z   |	d   |d   z  z   |d   |	d   |d	   z  z   |	d   |d
   z  z   |	d   f       |j                  ||   d   ||   d   z
  ||   d   ||   d   z
  ||   d   ||   d   z
  f       t        d||   t!        |
||         t!        |||         t!        |||         ||   d   ||   d   fz         g t        d       d}|D ]4  }t#        j$                  |d   |d   z  |d   |d   z  z         }||kD  s3|}6 d}|||kD  rd}|rod }t        j                  | t         j&                        }t        d       |j)                  |       |j+                  |j-                                t        d       d }y |t        d       d }y t        d|dd       d }y )N)z
Upper Leftz
Lower LeftzUpper RightzLower RightCenter)r   r   r   r   g       @g        r               ze___Corner___ ________Original________  _______Adjusted_________   ______ Err (geo) ______ _Err (pix)_z%-11s %s %s %s %5.2f %5.2f FTzUpdating file...zDone.zANo error threshold in pixels selected with -et, file not updated.zMaximum check point error is z.5fz[ pixels which exceeds the
                error threshold so the file has not been updated.)r   OpenRasterYSizeRasterXSizeGetGeoTransformappendGetProjectionRefr   SpatialReferenceSetFromUserInputCoordinateTransformationTransformPointsInvGeoTransformprintrangelenr   mathsqrt	GA_UpdateSetGeoTransformSetProjectionExportToWkt)r   r   r   r   dscorners_namescorners_pixel_lineorig_gtcorners_s_geoitem	s_srs_obj	t_srs_objtrcorners_t_geoulurllnew_gt
inv_new_gtcorners_t_new_geo	error_geoerror_pixel_linecorners_pixel_line_newi	max_errorerr_item
this_errorupdates                               r   moverE   2   s    
8	B YM 		
BNNA	A	+	#	r~~3S9   "GM" 

T!Wwqz11DGgaj4HH
T!Wwqz11DGgaj4HHQ	

 }##%$$&Iu%$$&Iu%		%	%i	;B &&}5M 
q	B	q	B	q	B 	1	AA"..(	AA"..(
1	AA"..(	AA"..(F %%f-J I	o 3}%& .
!!$  q	DGfQi//$q'F1I2EEq	DGfQi//$q'F1I2EEQ	
 	!!$Q'-*:1*==!!$Q'-*:1*==	
 Q%%1Q*Q- 77$q'JqM:QQ1Q*Q- 77$q'JqM:QQQ	
 	&q)!,/A!/DQ/GG&q)!,/A!/DQ/GG&q)!,/A!/DQ/GG	
 	(a 	=#34	=#34	9Q<0 #A& #A&
	
I.
` 
"I
 I$ #YYx{Xa[88A;RS;TTU
	!"I#
 F"Y&F
 YYx0 !
6"
..01g 
B 
	 QR 
B 	-i_ =B E	

 
Br   c                 l    | rt         j                  nt         j                  }t        d|       | rdS dS )NzUsage: gdalmove.py [--help] [--help-general]
                   [-s_srs <srs_defn>] -t_srs <srs_defn>
                   [-et <max_pixel_err>] <target_file>)filer   r   )sysstderrstdoutr$   )isErrorfs     r   UsagerM      s4    

3::A		: 	 1Qr   c                    t        j                  |       } | yd }d }d }d }d}|t        |       k  r| |   dk(  rt        d      S | |   dk(  r|t        |       dz
  k  r| |dz      }|dz  }nz| |   dk(  r|t        |       dz
  k  r| |dz      }|dz  }nS| |   dk(  r(|t        |       dz
  k  rt	        | |dz            }|dz  }n#|| |   }nt        d	| |   z          t               S |dz   }|t        |       k  rt        |       dk(  r
t               S |t        d
       t               S |t        d       t               S t        ||||       y )Nr   r   z--helpF)rK   z-s_srsz-t_srsz-etzUrecognised argument: z1Missing name of file to operate on, but required.z*Target SRS (-t_srs) missing, but required.)r   r   r   )r   GeneralCmdLineProcessorr&   rM   floatr$   rE   )argvr   r   r   r   r@   s         r   mainrR      s    ''-D| EEHO 	
A
c$i-7h''!W QTQ%6QKEFA!W QTQ%6QKEFA!W!c$i!m"3#DQK0OFAAwH *T!W457NE1 c$i-6 4yA~wABw}:;we_Mr   __main__)NN)T)r'   rH   typingr   osgeor   r   r   strrP   rE   rM   rQ   rR   __name__exit r   r   <module>rZ      s   @  
  
.  '+	ttt C=t e_	tt hh 6Nr zCHHT#((^ r   