36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
from pycen import con_fon, update_to_sql
|
|
import geopandas as gpd
|
|
from os import path
|
|
|
|
def milieu(x):
|
|
d_milieu = gpd.pd.read_sql('SELECT * FROM sites.d_milieux',con_fon)
|
|
dict_m = dict(zip(d_milieu.milieu_lib,d_milieu.milieu_id))
|
|
x.replace({'milieu':dict_m},inplace=True)
|
|
x.rename(columns={'milieu':'milieu_id'},inplace=True)
|
|
|
|
def typ_site(x):
|
|
d_site = gpd.pd.read_sql('SELECT * FROM sites.d_typsite',con_fon)
|
|
dict_s = dict(zip(d_site.typsite_lib,d_site.typsite_id))
|
|
x.replace({'typ_site':dict_s},inplace=True)
|
|
x.rename(columns={'typ_site':'typsite_id'},inplace=True)
|
|
|
|
if __name__ == "__main__":
|
|
|
|
PATH = '/home/colas/Documents/tmp/Foncier/LONE'
|
|
file = 'LONE.xlsx'
|
|
geofile = 'Contour_site_lônes.shp'
|
|
|
|
df = (gpd.pd.read_excel(path.join(PATH,file))
|
|
.rename(columns={'id_site':'site_id'}))
|
|
milieu(df)
|
|
typ_site(df)
|
|
_gdf = gpd.read_file(path.join(PATH,geofile))
|
|
|
|
gdf = gpd.GeoDataFrame(df,geometry=[_gdf.unary_union],crs=_gdf.crs)
|
|
gdf.rename_geometry('geom',inplace=True)
|
|
gdf['surf_m2'] = gdf.area
|
|
|
|
gdf.to_postgis('sites',con_fon,'sites',if_exists='append',index=False)
|
|
|
|
gdf.rename_geometry('geom_ecolo',inplace=True)
|
|
update_to_sql(gdf,con_fon,'sites','sites','site_id') |