
    nj                        S SK r S SKrS SKrS SKJr  S SKJrJr  S SKJ	r	J
r
  S SKJrJrJr  S SKJrJrJrJrJr  S\	R*                  SSSSSS	S
SSS4S\\   S\\   S\S\\   S\S\S\\   S\\   S\\\      S\\   S\\   S\\   S\\\      S\	R0                  4S jjr       S&S\S\S\S\S\\   S\\   S \4S! jjr   S'S"\S#\S\\   S$\S\4
S% jjrg)(    N)Real)OptionalSequence)gdalosr)MaybeSequencePathLikeOrStris_true)CreationOptionsDataTypeOrStr!get_bigtiff_creation_option_valueget_data_typeopen_ds      )i  r   
   i|  NEARfilenamedriver_namedtsize
band_countcreation_options
fill_valuenodata_valueorigin
pixel_sizeepsgoverview_algoverview_listreturnc           	         S n U c  [         R                  " 5       u  pO	U (       d  Sn Uc  U (       a  SOSn[        U[        5      (       d  X34n[        R
                  " U5      n[        U5      n[        XQS9nUR                  " [        R                  " U 5      /UQUPUPUP76 nU	(       aC  U(       a<  [        U	[        5      (       d  X* 4n	UR                  US   U	S   SUS   SU	S   /5        U
b7  [        R                  " 5       nUR                  U
5        UR                  U5        [!        U5       HA  nUR#                  US-   5      nUb  UR%                  U5        Uc  M0  UR'                  U5        MC     U(       a  U(       a  UR)                  XS9  UU(       a  [        R*                  " U5        $ $ ! U(       a  [        R*                  " U5        f f = f)N GTiffMEM)r   r   r   overviewlist)tempfilemkstemp
isinstancer   r   GetDriverByNamer   get_creation_optionsCreateosfspathSetGeoTransformr   SpatialReferenceImportFromEPSGSetSpatialRefrangeGetRasterBandFillSetNoDataValueBuildOverviewsclose)r   r   r   r   r   r   r   r   r   r   r   r   r    tmp_fddrvcreation_options_listdssrsbnd_idxbnds                       a/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/osgeo_utils/auxiliary/raster_creation.pycreate_flat_rasterrB   /   s    F('//1FHH%-'5K$))<D"";/2 4!
 ZZIIh
"&
(2
46
8M
 &j(33(+6
JqM1fQiJqMJ &&(Ct$S!Z(G--gk:C%$'""<0 ) MlGHHV 6HHV s   EF6 $3F6 6 G	sparse_oktiled
block_sizebig_tiffcompc                     [        U =(       d
    [        5       5      n UR                  5       nUc  U R                  SS5      n[        U5      U S'   X`S'   Uc  U R                  SS5      n[	        U5      n[        U5      U S'   Uc  U R                  SS5      n[	        U5      n[        U5      U S'   U(       a  Ub  US:X  a	  X@S'   X@S	'   O
US
:X  a  X@S'   / nU R                  5        H%  u  pUR                  SR                  X5      5        M'     U$ )NCOMPRESSDEFLATEBIGTIFF	SPARSE_OKTTILEDgtiff
BLOCKXSIZE
BLOCKYSIZEcog	BLOCKSIZEz{}={})	dictlowergetr   r
   stritemsappendformat)
r   r   rC   rD   rE   rF   rG   r<   kvs
             rA   r,   r,   j   s    ,67##%K|##J	:"CH"MY#'Z $((d;		"I$'	N[!} $$Wd3ENE #E
W''!-7\*-7\*E!,6[) &&($$W^^A%9: ) !     filename_srcoutput_filename_templatecreate_file_per_ovrc                 V   / nUR                  S5      n[        R                  " X5        UR                  U5        UR                  S5      n[        R                  " X5        UR                  U5        [	        U[
        R                  [
        R                  -  S9n	U	R                  U	R                  4n
U	R                  X2S9  [
        R                  " U5      nS/nUR                  U5        [        U5       H  u  pUR                  U5      nUS:X  a  [	        U5      nO4[	        X}SS9nU(       a#  UR                  UU5        UR                  U5        UR                  [        U
S   U-  5      :X  a1  UR                  [        U
S   U-  5      :X  a  UR                   S:X  a  M   e   X4$ )Nr#   r   )access_moder&   r   T)ovr_idxovr_only)rY   shutilcopyrX   r   r   	OF_UPDATE	OF_RASTERRasterXSizeRasterYSizer8   r+   extend	enumerate
CreateCopyintRasterCount)r]   r^   r    r   r_   r   
files_listds_with_ovrsds_baser=   r   driverall_ovrsrb   f
filename_ids1s                    rA   copy_raster_and_add_overviewsrw      sn    J+2226L
KK+l#&--a0G
KK&g	4>>DNN+J	KBNNBNN+Dl?!!+.FsHOOM")
-44W=
a<*%C,$GC"!!*c2!!*-OOs47Q;//3tAw{#331$	
% * r\   )Nr$   NNNNN)bilinearTr$   )r.   rd   r(   numbersr   typingr   r   osgeor   r   osgeo_utils.auxiliary.baser   r	   r
   osgeo_utils.auxiliary.utilr   r   r   r   r   GDT_ByterV   rm   DatasetrB   boolr,   rw    r\   rA   <module>r      s  < 
    %  L L  "&"(,!%#'&2%'"(-18}%8#8 	8 
	8
 8 &8 8 4.8 Xc]#8 c"8 3-8 3-8 HSM*8 
\\8x )- $"&!%&!&! &! 	&!
 &! sm&! &!Z  $' ' !'  C=' 
 '  ' r\   