init depot renew
This commit is contained in:
@@ -0,0 +1,196 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 -*-
|
||||
|
||||
|
||||
import geopandas as gpd
|
||||
from geoalchemy2 import Geometry
|
||||
import pycen
|
||||
import pycen.wfs
|
||||
|
||||
# con = conn
|
||||
con = pycen.con_gn
|
||||
|
||||
def update_larea(df, cols_updt=[]):
|
||||
from pycen import update_to_sql
|
||||
table = 'l_areas'
|
||||
idtyp = tuple(df.id_type.unique())
|
||||
if len(idtyp) > 1:
|
||||
where = 'in %s'%tuple(df.id_type.unique())
|
||||
else :
|
||||
where = '=%s'%tuple(df.id_type.unique())
|
||||
sql = 'SELECT id_area, area_name FROM ref_geo.l_areas WHERE id_type %s;'%where
|
||||
larea = gpd.pd.read_sql_query(sql,con)
|
||||
|
||||
to_updt = df.merge(larea, on='area_name')
|
||||
update_to_sql(
|
||||
df=to_updt[['id_area',*cols_updt]],
|
||||
con=con,
|
||||
table_name=table,
|
||||
schema_name='ref_geo',
|
||||
key_name='id_area',
|
||||
)
|
||||
|
||||
|
||||
dic = {
|
||||
'ID_ENS':'area_code',
|
||||
'ENS_Id':'area_code',
|
||||
'Id':'area_code',
|
||||
'ID':'area_code',
|
||||
'NOM':'area_name',
|
||||
'Nom_ens':'area_name',
|
||||
# 'URL':'source',
|
||||
}
|
||||
# pycen.wfs.list_layer('http://ws.carmencarto.fr/WFS/94/ENS_CG38')
|
||||
df = pycen.wfs.get_wfs('http://ws.carmencarto.fr/WFS/94/ENS_CG38', 'zone_d_intervention_02')
|
||||
df.rename(columns=dic,inplace=True)
|
||||
df = df[[*set(dic.values()),'geometry']]
|
||||
df.rename_geometry('geom', inplace=True)
|
||||
df['id_type'] = 35
|
||||
df['geojson_4326'] = df.to_crs(4326).geom.__geo_interface__['features']
|
||||
df['geojson_4326'] = [x['geometry'] for x in df['geojson_4326']]
|
||||
# df['geojson_4326'] = df['geojson_4326'].astype(str)
|
||||
df['centroid'] = df.geom.centroid.to_wkt()
|
||||
df['enable'] = True
|
||||
df['source'] = 'http://ws.carmencarto.fr/WFS/94/ENS_CG38'
|
||||
|
||||
df.to_postgis(
|
||||
name='l_areas',
|
||||
con=con,
|
||||
schema='ref_geo',
|
||||
if_exists='append',
|
||||
index=False,
|
||||
index_label=None,
|
||||
chunksize=None,
|
||||
dtype={
|
||||
'centroid': Geometry(geometry_type='POINT',srid=2154)
|
||||
},
|
||||
)
|
||||
|
||||
# path0 = '/home/colas/Documents/5_BDD/BASSIN_VERSANT/'
|
||||
path0 = '/home/colas/Documents/9_PROJETS/6_GEONATURE/AREA/'
|
||||
dic = {
|
||||
# 'ID_MNHN':'area_code',
|
||||
'NOM':'area_name',
|
||||
'URL':'source',
|
||||
}
|
||||
# path = 'BD_Topage_FXX_2022-shp/BD_TOPAGE_2022-shp/BassinVersantTopographique_FXX-shp/'
|
||||
# file = 'BassinVersantTopographique_FXX.shp'
|
||||
path = 'IN DATA BASE/znieff1/'
|
||||
file = 'znieff1.shp'
|
||||
id_type = 3 # id_type in bdd geonature : ref_geo.bib_areas_types
|
||||
# 3 : 'ZNIEFF1',
|
||||
# 4 : 'APB',
|
||||
# 5 : 'RNN',
|
||||
# 6 : 'RNR',
|
||||
# 7 : 'ZPS',
|
||||
# 8 : 'SIC',
|
||||
# 9 : 'ZICO',
|
||||
# 10 : 'RNCFS',
|
||||
# 12 : 'SCEN',
|
||||
# 15 : 'PNR',
|
||||
# 16 : 'RBIOL',
|
||||
# 20 : 'AA',
|
||||
# 32 : 'Zones biogéographiques',
|
||||
|
||||
# DIC for pr_zh
|
||||
# dic = {
|
||||
# # 'index' : 'id_hydro',
|
||||
# 'index' : 'id_rb',
|
||||
# 'TopoOH' : 'name',
|
||||
# 'lib_ssbv' : 'name',
|
||||
# }
|
||||
|
||||
# sql = '''
|
||||
# SELECT a.* FROM ref_geo.l_areas a
|
||||
# WHERE a.id_type = 25
|
||||
# '''
|
||||
sql = '''
|
||||
SELECT a.* FROM ref_geo.l_areas a
|
||||
JOIN ref_geo.bib_areas_types b USING (id_type)
|
||||
WHERE b.type_code = 'DEP' AND a.area_code = '38'
|
||||
'''
|
||||
reg = gpd.read_postgis(sql,con)
|
||||
|
||||
|
||||
df = gpd.read_file(path0+path+file)
|
||||
if file == 'N_ENP_PN_S_000.shp':
|
||||
if id_type == 20:
|
||||
df = df[df.CODE_R_ENP == 'AAPN']
|
||||
elif id_type == 1:
|
||||
df = df[df.CODE_R_ENP == 'CPN']
|
||||
else:
|
||||
raise Exception('ERROR N_ENP_PN_S_000.shp')
|
||||
if file == 'N_ENP_SCEN_S_000.shp':
|
||||
df = df[df.ID_LOCAL.str.contains('CENIS')]
|
||||
if file != 'N_ENP_SCEN_S_000.shp':
|
||||
intersect = gpd.sjoin(df,reg,op='intersects').index
|
||||
df = df[df.index.isin(intersect)]
|
||||
|
||||
|
||||
# SPEC t_river_basin
|
||||
# df.reset_index(drop=True,inplace=True)
|
||||
# df.reset_index(drop=False,inplace=True)
|
||||
# df.loc[df['index']==0,'index'] = 28
|
||||
# df.loc[df['index']==1,'index'] = 29
|
||||
# df['lib_ssbv'] = df['lib_ssbv']+' - '+df['code_ssbv']
|
||||
|
||||
df.rename_geometry('geom', inplace=True)
|
||||
df.dropna(how='all',axis=1,inplace=True)
|
||||
df = pycen.tools.Polygons_to_MultiPolygon(df)
|
||||
df.rename(columns=dic, inplace=True)
|
||||
# df['geom'] = df.geometry.to_wkt().copy()
|
||||
del_col = df.columns[~df.columns.isin(['geom',*[*dic.values()]])]
|
||||
del_col = df.columns[~df.columns.isin([*[*dic.values()]])]
|
||||
df.drop(columns=del_col, inplace=True)
|
||||
df['id_type'] = id_type
|
||||
|
||||
update_larea(df,cols_updt=['area_code'])
|
||||
|
||||
# SPEC t_river_basin / t_hydro_area
|
||||
# df.to_crs(4326,inplace=True)
|
||||
# df.geom = df.geom.to_wkt().copy()
|
||||
# df.to_wkt().to_sql(
|
||||
# name='t_river_basin', con=con, schema='pr_zh',
|
||||
# if_exists='append', index=False,
|
||||
# dtype={
|
||||
# 'geom': Geometry(srid=4326)
|
||||
# # 'id_lim_list':uuid.SafeUUID
|
||||
# }
|
||||
# )
|
||||
|
||||
df['geojson_4326'] = df.to_crs(4326).geom.__geo_interface__['features']
|
||||
df['geojson_4326'] = [x['geometry'] for x in df['geojson_4326']]
|
||||
# df['geojson_4326'] = df['geojson_4326'].astype(str)
|
||||
df['centroid'] = df.geom.centroid.to_wkt()
|
||||
df['enable'] = True
|
||||
df['source'] = 'IGN'
|
||||
|
||||
df.to_postgis(
|
||||
name='l_areas',
|
||||
con=con,
|
||||
schema='ref_geo',
|
||||
if_exists='append',
|
||||
index=False,
|
||||
index_label=None,
|
||||
chunksize=None,
|
||||
dtype={
|
||||
'centroid': Geometry(geometry_type='POINT',srid=2154)
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
sql = '''
|
||||
SELECT a.id_area,a.area_name,a.geom FROM ref_geo.l_areas a
|
||||
JOIN ref_geo.bib_areas_types b USING (id_type)
|
||||
WHERE b.type_code = 'COM'
|
||||
'''
|
||||
tu = gpd.read_postgis(sql,con_gn)
|
||||
|
||||
sql = '''
|
||||
SELECT a.id_zh,a.code,
|
||||
ST_MakeValid(ST_Transform(ST_SetSRID(a.geom,4326),2154)) geom
|
||||
FROM pr_zh.t_zh a
|
||||
--JOIN ref_geo.bib_areas_types b USING (id_type)
|
||||
--WHERE b.type_code = 'COM'
|
||||
'''
|
||||
to = gpd.read_postgis(sql,con_gn)
|
||||
Reference in New Issue
Block a user