
    nj"'              
           S SK r S SKrS SKJr  S SKJrJr  S r  SS\S\S\\   S\\	   4S	 jjr
SS
 jr\R                  4S jr\S:X  a#  \R                  " \" \R                  5      5        gg)    N)Optional)gdalosrc                 `    U R                  5       (       a  SUS   US   4-  $ SUS   US   4-  $ )Nz%12.3f %12.3fr      z%12.8f %12.8f)IsProjected)srs_objlocs     P/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/osgeo_utils/gdalmove.pyfmt_locr   )   sA    #a&#a&!111c!fc!f---    filenamet_srss_srspixel_thresholdc                    [         R                  " U 5      n/ SQnSSUR                  S4UR                  SS4UR                  UR                  S4UR                  S-  UR                  S-  S4/nUR	                  5       n/ nU HP  n	UR                  US   U	S   US   -  -   U	S   US   -  -   US   U	S   US	   -  -   U	S   US
   -  -   U	S   45        MR     Uc  UR                  5       n[        R                  " 5       n
U
R                  U5        [        R                  " 5       nUR                  U5        [        R                  " X5      nUR                  U5      nUS   nUS   nUS   nUS   US   US   -
  UR                  -  US   US   -
  UR                  -  US   US   US   -
  UR                  -  US   US   -
  UR                  -  4n[         R                  " U5      n/ n/ n/ n/ n[        S5        [        [        U5      5       GHc  nUU   n	UR                  US   U	S   US   -  -   U	S   US   -  -   US   U	S   US	   -  -   U	S   US
   -  -   U	S   45        UR                  UU   S   UU   S   -
  UU   S   UU   S   -
  S45        UU   n	UR                  US   U	S   US   -  -   U	S   US   -  -   US   U	S   US	   -  -   U	S   US
   -  -   U	S   45        UR                  UU   S   UU   S   -
  UU   S   UU   S   -
  UU   S   UU   S   -
  45        [        SUU   [!        XU   5      [!        XU   5      [!        UUU   5      UU   S   UU   S   4-  5        GMf     [        S5        SnU H8  n["        R$                  " US   US   -  US   US   -  -   5      nUU:  d  M6  UnM:     SnUb  UU:  a  SnU(       ap  S n[         R                  " U [         R&                  5      n[        S5        UR)                  U5        UR+                  UR-                  5       5        [        S5        S ng Uc  [        S5        S ng [        SUS S35        S ng )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   sn    
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                 z    U (       a  [         R                  O[         R                  n[        SUS9  U (       a  S$ 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                    [         R                  " U 5      n U c  gS nS nS nS nSnU[        U 5      :  a  X   S:X  a	  [        SS9$ X   S:X  a  U[        U 5      S-
  :  a  XS-      nUS-  nOyX   S:X  a  U[        U 5      S-
  :  a  XS-      nUS-  nORX   S:X  a(  U[        U 5      S-
  :  a  [	        XS-      5      nUS-  nO"Uc  X   nO[        S	X   -   5        [        5       $ US-   nU[        U 5      :  a  M  [        U 5      S:X  a
  [        5       $ Uc  [        S
5        [        5       $ Uc  [        S5        [        5       $ [        X2XS9  g )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      sj    ''-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#DQK0OFAwH *TW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HHT#((^ r   