
    nj|.                         S SK r S SKJr  S r " S S\5      rS r\ R                  4S jr\	S:X  a#  \ R                  " \" \ R                  5      5        gg)	    N)gdalc                     / nU  HD  n[        5       nUR                  U5      (       a  UR                  U5        M6  [        SU-  5        MF     U$ )z
Translate a list of GDAL filenames, into file_info objects.

names -- list of valid GDAL dataset names.

Returns a list of file_info objects.  There may be less file_info objects
than names if some of the names could not be opened as GDAL files.
z"Can not open dataset "%s", skipped)	file_infoinit_from_nameappendprint)names
file_infosnamefis       ]/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/osgeo_utils/samples/gdal_vrtmerge.pynames_to_fileinfosr   !   sO     J[T""b!6=>      c                   *    \ rS rSrSrS rS rS rSrg)r   9   z.A class holding information about a GDAL file.c                     S /U l         S /U l        S /U l        S /U l        S /U l        S U l        S U l        S U l        S U l        S U l	        S U l
        S U l        S U l        S U l        S U l        g )N)
band_typesblock_sizesnodatactscolor_interpsfilenamebandsxsizeysize
projectiongeotransformulxulylrxlry)selfs    r   __init__file_info.__init__<   sx    & 6f6"V


 r   c                    [         R                  " U5      nUc  gXl        UR                  U l        UR
                  U l        UR                  U l        UR                  5       U l
        UR                  5       U l        U R                  S   U l        U R                  S   U l        U R                  U R                  S   U R                  -  -   U l        U R                  U R                  S   U R                  -  -   U l        S/U l        S/U l        S/U l        S/U l        S/U l        [-        SUR                  S-   5       GH   nUR/                  U5      nU R"                  R1                  UR2                  5        U R$                  R1                  UR5                  5       5        UR7                  5       b)  U R&                  R1                  UR7                  5       5        U R*                  R1                  UR9                  5       5        UR;                  5       nUb,  U R(                  R1                  UR=                  5       5        GM  U R(                  R1                  S5        GM#     g)z
Initialize file_info from filename

filename -- Name of file to read.

Returns 1 on success or 0 if the file can't be opened.
NFr            T)r   Openr   RasterCountr   RasterXSizer   RasterYSizer   GetProjectionr   GetGeoTransformr   r   r   r    r!   r   r   r   r   r   rangeGetRasterBandr   DataTypeGetBlockSizeGetNoDataValueGetRasterColorInterpretationGetRasterColorTableClone)r"   r   fhibandcts         r   r   file_info.init_from_nameN   s    YYx : ^^
^^
^^
**,..0$$Q'$$Q'88d//2TZZ??88d//2TZZ??& 6f6"Vq"..1,-A##A&DOO""4==1##D$5$5$78""$0""4#6#6#89%%d&G&G&IJ))+B~
+% . r   c                    US   nUS   nUS   X2S   -  -   nUS   XBS   -  -   n	[        X`R                  5      n
[        XR                  5      nUS   S:  a+  [        XpR                  5      n[        XR
                  5      nO*[        XpR                  5      n[        XR
                  5      nX:  a  gUS   S:  a  X::  a  gUS   S:  a  X:  a  g[        XS   -
  US   -  S-   5      n[        XS   -
  US   -  S-   5      n[        XS   -
  US   -  S-   5      U-
  n[        XS   -
  US   -  S-   5      U-
  nUS:  d  US:  a  g[        XR                  S   -
  U R                  S   -  5      n[        XR                  S   -
  U R                  S   -  5      n[        XR                  S   -
  U R                  S   -  S-   5      U-
  n[        XR                  S   -
  U R                  S   -  S-   5      U-
  nUS:  d  US:  a  gUR                  S5        UR                  SU R                  -  5        UR                  S	U-  5        [        R                  " U R                  U   5      nU R                  U   u  nnUR                  S
U R                  U R                  UUU4-  5        UR                  SUUUU4-  5        UR                  SXUU4-  5        UR                  S5        g )Nr   r&   r'   r(   g?      ?z		<SimpleSource>
z9			<SourceFilename relativeToVRT="1">%s</SourceFilename>
z			<SourceBand>%i</SourceBand>
zg			<SourceProperties RasterXSize="%i" RasterYSize="%i" DataType="%s" BlockXSize="%i" BlockYSize="%i"/>
z8			<SrcRect xOff="%i" yOff="%i" xSize="%i" ySize="%i"/>
z8			<DstRect xOff="%i" yOff="%i" xSize="%i" ySize="%i"/>
z		</SimpleSource>
)maxr   minr    r   r!   intr   writer   r   GetDataTypeNamer   r   r   r   )r"   t_fht_geotransformr   r   s_bandt_ulxt_ulyt_lrxt_lrytgw_ulxtgw_lrxtgw_ulytgw_lrytw_xofftw_yofftw_xsizetw_ysizesw_xoffsw_yoffsw_xsizesw_ysizedata_type_nameblock_size_xblock_size_ys                            r   write_sourcefile_info.write_sourcey   sA   q!q!q!E1,=$==q!E1,=$== eXX&eXX&!q %*G%*G%*G%*G !q W%7!q W%7 w!22nQ6GG#MNw!22nQ6GG#MN!,,q0AACGH7R 	 !,,q0AACGH7R 	 a<8a< w!2!21!559J9J19MMNw!2!21!559J9J19MMN,,Q//43D3DQ3GG#MNQXX 	 ,,Q//43D3DQ3GG#MNQXX 	 a<8a<

)*

Qmm	
 	

86AB--doof.EF%)%5%5f%="l

Azz4::~|\RS	

 	

J845	
 	

J845	
 	

*+r   )r   r   r   r   r   r   r   r    r!   r   r   r   r   r   r   N)	__name__
__module____qualname____firstlineno____doc__r#   r   rY   __static_attributes__ r   r   r   r   9   s    8$)VG,r   r   c                  F    [        S5        [        S5        [        S5        g)Nz<Usage: gdal_vrtmerge.py [-o out_filename] [-separate] [-pct]zF           [-ul_lr ulx uly lrx lry] [-ot datatype] [-i input_file_listz           | input_files]   )r   ra   r   r   Usagerd      s     	
HI	
RS	
%&r   c           	         / nSnS nS nSn[         R                  " U 5      n U c  gSnU[        U 5      :  a  X   nUS:X  a
  US-   nX   nOUS:X  a@  US-   n[        X   5      nUR	                  UR                  5       R                  5       5        OUS:X  a  SnO|US	:X  aF  [        XS-      5      n[        XS
-      5      n	[        XS-      5      n
[        XS-      5      nUS-   nO0US S S:X  a  [        SU5        [        5       $ UR                  U5        US-   nU[        U 5      :  a  M  U(       d  [        S5        [        5       $ [        U5      nU(       d  [        S5        gUc  US   R                  nUS   R                  n	US   R                  n
US   R                  nU HW  n[!        X=R                  5      n[#        XR                  5      n	[#        XR                  5      n
[!        XR                  5      nMY     Uc$  US   R$                  S   nUS   R$                  S   nUS   R&                  nU H  nUR$                  S   U:w  d  UR$                  S   W:w  a  [        SUR(                  -  5          gUR$                  S
   S:w  d  UR$                  S   S:w  a  [        SUR(                  -  5          gUR&                  U:w  d  M  [        SUR(                  -  5          g   X4SW	SW4n[+        W
U-
  US   -  S-   5      n[+        WU	-
  US   -  S-   5      nU(       a  [        U5      nOUS   R,                  n[        US5      nUR/                  SUU4-  5        UR/                  SU-  5        U(       a  UR/                  SU-  5        U(       a  SnU H  nUS-   n[        UR0                  5      S
:w  a0  [        SUR(                  [        UR0                  5      S-
  4-  5        [         R2                  " UR0                  S   5      nUR/                  SUU4-  5        UR/                  S[         R4                  " UR6                  S   5      -  5        UR9                  UUUUS5        UR/                  S5        M     GOm[;        SUS-   5       GHY  n[         R2                  " US   R0                  U   5      nUR/                  SUU4-  5        US   R<                  S /:w  a$  UR/                  SUS   R<                  U   -  5        UR/                  S[         R4                  " US   R6                  U   5      -  5        US   R>                  U   nUbe  UR/                  S 5        [;        URA                  5       5       H&  nUR/                  S!URC                  U5      -  5        M(     UR/                  S"5        U H  nUR9                  UUUUU5        M     UR/                  S5        GM\     UR/                  S#5        g)$Nzout.vrtFr   r'   z-oz-iz	-separateTz-ul_lrrc   r&      -zUnrecognized command option: zNo input files selected.zNothing to process, exiting.r(   z/All files must have the same scale; %s does notzNo file must be rotated; %s isz3All files must be in the same projection; %s is notg        r=   wz/<VRTDataset rasterXSize="%i" rasterYSize="%i">
zS	<GeoTransform>%24.16f, %24.16f, %24.16f, %24.16f, %24.16f, %24.16f</GeoTransform>
z	<SRS>%s</SRS>
z@File %s has %d bands. Only first band will be taken into accountz)	<VRTRasterBand dataType="%s" band="%i">
z 		<ColorInterp>%s</ColorInterp>
z	</VRTRasterBand>
z 		<NoDataValue>%f</NoDataValue>
z		<ColorTable>
z,			<Entry c1="%i" c2="%i" c3="%i" c4="%i"/>
z		</ColorTable>
z</VRTDataset>
)"r   GeneralCmdLineProcessorlenopenextendreadsplitfloatr   rd   r   r   r   r   r    r!   r?   r>   r   r   r   r@   r   rA   r   rB   GetColorInterpretationNamer   rY   r/   r   r   GetCountGetColorEntry)argvr	   out_filer   psize_xseparater8   argin_file_listr   r    r!   r
   r   psize_yr   r   r   r   r   rC   band_ndataTyper9   r:   s                            r   mainr|      s   EH
CGH ''-D| 	
A
c$i-g$;AAwHD[AA=LLL**,2245KHH_U$CU$CU$CU$CAA!W^1377N LLE; c$i-> ()w $E*J,-
{mmmmBc66"Cc66"Cc66"Cc66"C	  Q-,,Q/Q-,,Q/A))J??1(BOOA,>',ICbkkQR??1"booa&8A&=2R[[@A==J&G"++UV  #sC9L#)|A.#56E#)|A.#56EJ1###DJJAUENRSJJ_
	
 

&34BaZF2==!Q&#&(kk3r}}3E3I%JK ++BMM!,<=HJJ=6@RR JJ511"2B2B12EFG OOD,ua@JJ-.# & !UQY'D++JqM,D,DT,JKHJJDRVGWWX!}##v-

9JqM<P<PQU<VV JJ511*Q-2M2Md2STU
 A""4(B~

/0r{{}-AJJJ**1-. .
 

01 lE5$G ! JJ-.5 (8 	JJ !r   __main__)sysosgeor   r   objectr   rd   rs   r|   r[   exitra   r   r   <module>r      sY   4  
0G, G,Z hh ^B zHHT#((^ r   