
    F1i                        d Z ddlZddlZddlmZ ddlZddlmZ dede	dej                  fdZed	k(  r  ej                  d
      Zej                  dd       ej!                         Zej$                  j'                         Z ed      dz  ez  Zee dz  Zee dz  Zej/                         s ede         ej2                  d        eed      Z ee      Zej8                  ek7  r,ej;                  e      Z edej=                          d       n ede        ej?                  edd        edejA                                 yy)uP  
Loads a location's roads GeoPackage, checks CRS, and reprojects
to an appropriate local UTM coordinate system for analysis.

✅ Features:
 - Works for any location (US states, countries, regions)
 - Auto-checks for missing files
 - Chooses a WGS84 UTM zone based on the location's centroid
 - Saves as {location}_roads_projected.gpkg
    N)Path)determine_utm_crspathlayerreturnc                     t        d| d|  d       t        j                  | |      }t        dt        |      dd       t        d|j                          |S )	z,Load a GeoPackage layer into a GeoDataFrame.u   📦 Loading layer 'z' from z...)r   u   ✅ Loaded ,z
 features.zCRS: )printgpd	read_filelencrs)r   r   gdfs      #/data2/heatmap/scripts/load_gpkg.py	load_gpkgr      sY    	 wtfC
89
--E
*C	KC|:
./	E#''
J    __main__z;Load a location's roads GeoPackage and reproject if needed.)descriptionlocationz/Location name (e.g., alabama, belgium, france).)helpz..outputz_roads.gpkgz_roads_projected.gpkgu   ❌ File not found:    roadsu   🔁 Reprojected to local UTM (z).u   ✅ Already in target CRS: roads_projectedGPKG)r   driveru   💾 Saved projected layer to: )!__doc__argparsesyspathlibr   	geopandasr   scripts.crs_utilsr   strGeoDataFramer   __name__ArgumentParserparseradd_argument
parse_argsargsr   lowerbase_dir
input_pathoutput_pathexistsr
   exitr   
target_crsr   to_crs	to_stringto_fileresolve r   r   <module>r7      s  	  
   /D  )9)9  z$X$$QF 
)Z[D}}""$HDzH$x/Hxj44Jz)>??K $ZL12 J
(C #3'J
ww*jj$/
0D0D0F/GrJK+J<89 KK#4VKD	+K,?,?,A+B
CD= r   