
    nj&                         S SK r S SKJr  S SKJrJr  S SKJrJr  S r	S r
SS\S\\   4S	 jjr " S
 S\5      r\ R                  4S jr\S:X  a#  \ R"                  " \" \ R                  5      5        gg)    N)Optional)gdalosr)GDALArgumentParser
GDALScriptc                  D    [        S[        R                  S    S35        g)NzUsage: r   z8 -- This is a sample. Read source to know how to use. --   )printsysargv     W/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/osgeo_utils/samples/epsg_tr.pyUsager   *   s$    	
#((1+VW r   c                    US:X  a4  [        U< S[        U5      < 35        [        UR                  5       5        US:X  a  [        UR                  5       5        US:X  a'  [        SU 35        [        UR	                  5       5        US:X  a  UR                  5       nUR                  5       n[        SU-  5        UR                  S5      S	:  a  [        S
[        U5      < SU< S35        O([        SU< S[        U5      < S35        [        S5        US:X  Ga9  X0;   a  US:X  a  [        U5      S:  a  g X0;  d   X#45       eU R                  U5        UR                  5       nU(       a  SU;  a  US-  nUR	                  5       nUR                  5       n	[        S5        [        SU< S[        U5      < SU< 35        [        S5        U	b  [        U	5      S:X  a  [        S5        Oj[        R                  " U[        R                  S9n[        R                  " U	[        R                  S9n	[        S[        U5      U[        U5      X4-  5        US:X  a\   UR	                  5       nUR                  5       n	[        S[        U5      SU[        U5      [        U5      U[        U	5      U	4-  5        g g ! [         a     g f = f) N-pretty_wkt:-xml-wktzEPSG:-proj4z# %sz+proj=<z> z <>z(# Unable to translate coordinate system z into PROJ.4 format.#-postgisESRIi  
deprecatedz (deprecated)z------  z : r   z"-- (unable to translate to PROJ.4))schemezrINSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (%d,'%s',%d,'%s','%s');-copyz%s	%d%s	%s	%d%s	%d%s
   )r
   strExportToPrettyWktExportToXMLExportToWktExportToProj4GetNamefindintaddlenr   EscapeString	CPLES_SQL	Exception)
set_sridsrs	auth_namecoder   output_format
out_stringnamewkt	proj4texts
             r   trHandleCoder8   1   sc   %CI./c##%&coo dVncoo  &&(
{{}ftm??8$r)#d)Z89/8#d)E #J
"F"t9u$#6i%66#T{{},d2O#Doo%%'	e)SY=>eI! 367##C?C)))DNNKI Kt9iTCCD 	//#C))+I,IIH	N	
  &  		s   AJ9 9
KKr3   	authorityc                    U S:X  a  [        S5        U(       a  U/nOU S:X  a  SS/nO/ SQn[        5       nU GH  nUS;   Gam  [        5       n[        5       n[        5       n[        5       n[        5       n[        5       n	[        R                  " U5       GH-  n
[	        U
R
                  5      nU
R                  [        R                  :X  a  UR                  U5        OU
R                  [        R                  :X  a  UR                  U5        OU
R                  [        R                  :X  a  UR                  U5        O_U
R                  [        R                  :X  a  UR                  U5        O/U
R                  [        R                  :X  a  UR                  U5        U
R                  (       d  GM  U	R                  U5        GM0     [        U5      n[        U5      n[        U5      n[        U5      n[        U5      nSU4SU4S	U4S
U4SU44 H  u  pU(       a0  U S:X  a*  [        S5        [        SU-   S-   U-   5        [        S5        U HX  n[        R                  " 5       nUR!                  US-   [#        U5      -   5        SnX;   a  Sn[%        X>U[#        U5      X5        MZ     M     GMx  [        R                  " U5       H]  n
[        R                  " 5       nUR!                  US-   U
R
                  -   5        [%        UUUU
R
                  U
R                  U 5        M_     GM     U S:X  a  [        S5        [        S5        g)Nr   zBEGIN;EPSGr   )r;   r   IGNF)r;   r   zGeographic 2D CRSzProjected CRSzGeocentric CRSzCompound CRSzGeographic 3D CRSzP--------------------------------------------------------------------------------r   r   r   FTzCOMMIT;zVACUUM ANALYZE spatial_ref_sys;r   )r
   setr   GetCRSInfoListFromDatabaser)   r2   typeOSR_CRS_TYPE_COMPOUNDr*   OSR_CRS_TYPE_GEOGRAPHIC_3DOSR_CRS_TYPE_GEOGRAPHIC_2DOSR_CRS_TYPE_PROJECTEDOSR_CRS_TYPE_GEOCENTRICr   sortedSpatialReferenceSetFromUserInputr"   r8   )r3   r9   authoritiesr/   set_codes_geographicset_codes_geographic_3dset_codes_projectedset_codes_geocentricset_codes_compoundset_deprecatedcrs_infor2   typestr	set_codesr0   r   s                   r   epsg_trrR      s   
"h  k	*	$v&.uH 	((#&5 &)e#"%%#&5 !$ UN::9E8==)==C$=$==&**40]]c&D&DD+//5]]c&D&DD(,,T2]]c&@&@@'++D1]]c&A&AA(,,T2&&&"&&t, F  $**>#? &,-D&E#"()<"=#)*>#? !'(:!;$&:; "56!#78!34$&=>'" *!<(O&9,s2W<=(O%D..0C((S3t9)DE!&J-%)
  y#d)Z &'.  ::9E**,$$Y_x}}%DEMM''! Fk !D 
"i/0r   c                   J   ^  \ rS rSrU 4S jrS\4S jrS\4S jrS r	Sr
U =r$ )
EPSG_Table   c                 0   > [         TU ]  5         SU l        g )Nz9Create WKT and PROJ.4 dictionaries for EPSG GCS/PCS codes)super__init__title)self	__class__s    r   rX   EPSG_Table.__init__   s    P
r   returnc                 P   U R                   nUR                  SSS[        SS9  UR                  5       nUR                  SSSS	S
S9  UR                  SSSS	SS9  UR                  SSSS	SS9  UR                  SSSS	SS9  UR                  SSSS	SS9  UR                  SSSS	SS9  U$ )Nz
-authorityr9   r5   zAuthority name)destmetavarr?   helpr   r6   r3   store_constzWell Known Text)constr_   actionra   r   
pretty_wktzPretty Well Known Textr   proj4zproj stringr   postgisr   xmlXMLr    copyTable)parseradd_argumentr"   add_mutually_exclusive_group)rZ   r   rl   groups       r   
get_parserEPSG_Table.get_parser   s   ! 	 	
 335  " 	 	
 	  ) 	 	
 	   	 	
 	   	 	
 	%omRW 	 	
 	   	 	
 r   c                 R    UR                  S5      (       d  SUS'   SUS   -   US'   U$ )Nr3   re   -)getrZ   kwargss     r   augment_kwargsEPSG_Table.augment_kwargs  s4    zz/**&2F?#"%(?"?r   c                     [        S0 UD6$ )Nr   )rR   ru   s     r   doitEPSG_Table.doit  s       r   )rY   )__name__
__module____qualname____firstlineno__rX   r   rp   dictrw   rz   __static_attributes____classcell__)r[   s   @r   rT   rT      s-    Q3"4 3j ! !r   rT   c                     [        [        R                  5      S:  a
  [        5       $ [	        5       R                  U 5      $ )Nr	   )r+   r   r   r   rT   main)r   s    r   r   r     s,    
388}qw<T""r   __main__)r   N)r   typingr   osgeor   r   #osgeo_utils.auxiliary.gdal_argparser   r   r   r8   r"   rR   rT   r   r   r|   exitr   r   r   <module>r      s{   F    NM`T3 T8C= TnA! A!H hh # zHHT#((^ r   