146 lines
5.6 KiB
Python
146 lines
5.6 KiB
Python
import geopandas as gpd
|
|
from pycen import con_bdcen
|
|
|
|
###############
|
|
#### TOPO #####
|
|
###############
|
|
sql = '''
|
|
ALTER TABLE sites_topo.topo_ligne RENAME column "Geometry" to geom;
|
|
ALTER TABLE sites_topo.topo_ligne OWNER TO cen_admin;
|
|
|
|
CREATE SEQUENCE sites_topo.topo_ligne_id_seq OWNED BY sites_topo.topo_ligne."PK_UID";
|
|
SELECT setval('sites_topo.topo_ligne_id_seq', coalesce(max("PK_UID"), 0) + 1, false) FROM sites_topo.topo_ligne;
|
|
ALTER TABLE sites_topo.topo_ligne ALTER COLUMN "PK_UID" SET DEFAULT nextval('sites_topo.topo_ligne_id_seq');
|
|
'''
|
|
with con_bdcen.begin() as cnx:
|
|
cnx.execute(sql)
|
|
|
|
tline_clt = gpd.read_file('/home/colas/Documents/5_BDD/7_CEN38/topographie_consultation.sqlite',layer='topo_ligne')
|
|
tline_sai = gpd.read_file('/home/colas/Documents/5_BDD/7_CEN38/topographie_saisie.sqlite',layer='topo_ligne')
|
|
tmp = gpd.pd.concat([tline_clt,tline_sai])
|
|
isdupl = tmp.geometry.to_wkt().duplicated(keep=False)
|
|
tmp[isdupl]
|
|
iners = tline_sai.buffer(-1).intersects(tline_clt.unary_union)
|
|
(tline_sai[~iners]
|
|
.rename_geometry('geom')
|
|
.to_postgis(
|
|
'topo_ligne',
|
|
con_bdcen,
|
|
schema='sites_topo',
|
|
if_exists='append',
|
|
index=False,
|
|
))
|
|
|
|
tpoly_clt = gpd.read_file('/home/colas/Documents/5_BDD/7_CEN38/topographie_consultation.sqlite',layer='topo_polygone')
|
|
tpoly_sai = gpd.read_file('/home/colas/Documents/5_BDD/7_CEN38/topographie_saisie.sqlite',layer='topo_polygone')
|
|
gpd.pd.concat([tpoly_clt,tpoly_sai]).drop_duplicates(subset='geometry')
|
|
iners = tpoly_sai.intersects(tpoly_clt.unary_union)
|
|
(tpoly_sai[~iners]
|
|
.rename_geometry('geom')
|
|
.to_postgis(
|
|
'topo_polygone',
|
|
con_bdcen,
|
|
schema='sites_topo',
|
|
if_exists='append',
|
|
index=False,
|
|
))
|
|
|
|
tpnt_clt = gpd.read_file('/home/colas/Documents/5_BDD/7_CEN38/topographie_consultation.sqlite',layer='topo_point')
|
|
tpnt_sai = gpd.read_file('/home/colas/Documents/5_BDD/7_CEN38/topographie_saisie.sqlite',layer='topo_point')
|
|
tmp = gpd.pd.concat([tpnt_clt,tpnt_sai])
|
|
isdupl = tmp.geometry.to_wkt().duplicated(keep=False)
|
|
tmp[isdupl].drop_duplicates(subset='geometry')
|
|
|
|
gpd.pd.concat([tpnt_clt,tpnt_sai]).drop_duplicates(subset='geometry')
|
|
iners = tpnt_sai.intersects(tpnt_clt.unary_union)
|
|
(tpnt_sai[~iners]
|
|
.rename_geometry('geom')
|
|
.to_postgis(
|
|
'topo_point',
|
|
con_bdcen,
|
|
schema='sites_topo',
|
|
if_exists='append',
|
|
index=False,
|
|
))
|
|
|
|
###############
|
|
#### HYDRO ####
|
|
###############
|
|
sql = '''
|
|
--ALTER TABLE sites_hydro.hydro_point RENAME column "Geometry" to geom;
|
|
ALTER TABLE sites_hydro.hydro_point OWNER TO cen_admin;
|
|
|
|
CREATE SEQUENCE sites_hydro.hydro_point_id_seq OWNED BY sites_hydro.hydro_point."PK_UID";
|
|
SELECT setval('sites_hydro.hydro_point_id_seq', coalesce(max("PK_UID"), 0) + 1, false) FROM sites_hydro.hydro_point;
|
|
ALTER TABLE sites_hydro.hydro_point ALTER COLUMN "PK_UID" SET DEFAULT nextval('sites_hydro.hydro_point_id_seq');
|
|
'''
|
|
with con_bdcen.begin() as cnx:
|
|
cnx.execute(sql)
|
|
|
|
|
|
hline_clt = gpd.read_file('/home/colas/Documents/5_BDD/7_CEN38/topographie_consultation.sqlite',layer='hydro_ligne')
|
|
hline_sai = gpd.read_file('/home/colas/Documents/5_BDD/7_CEN38/topographie_saisie.sqlite',layer='hydro_ligne')
|
|
hline_sai.dropna(subset='geometry',inplace=True)
|
|
tmp = gpd.pd.concat([hline_clt,hline_sai])
|
|
isdupl = tmp.geometry.to_wkt().duplicated(keep=False)
|
|
tmp[isdupl]
|
|
hline_clt[hline_clt.geometry.to_wkt().duplicated(keep=False)]
|
|
hline_sai[hline_sai.geometry.to_wkt().duplicated(keep=False)]
|
|
iners = hline_sai.buffer(-1).intersects(hline_clt.unary_union)
|
|
(hline_sai[~iners]
|
|
.rename_geometry('geom')
|
|
.to_postgis(
|
|
'hydro_ligne',
|
|
con_bdcen,
|
|
schema='sites_hydro',
|
|
if_exists='append',
|
|
index=False,
|
|
))
|
|
res = gpd.read_postgis('SELECT * FROM sites_hydro.hydro_ligne',con_bdcen)
|
|
res['geom_wkt'] = res.geom.to_wkt()
|
|
res[res.geom_wkt.duplicated(keep=False)].sort_values(['geom_wkt','Type']).PK_UID.to_list()
|
|
|
|
|
|
hpoly_clt = gpd.read_file('/home/colas/Documents/5_BDD/7_CEN38/topographie_consultation.sqlite',layer='hydro_polygone')
|
|
hpoly_sai = gpd.read_file('/home/colas/Documents/5_BDD/7_CEN38/topographie_saisie.sqlite',layer='hydro_polygone')
|
|
tmp = gpd.pd.concat([hpoly_clt,hpoly_sai])
|
|
isdupl = tmp.geometry.to_wkt().duplicated(keep=False)
|
|
tmp[isdupl]
|
|
iners = hpoly_sai.buffer(-1).intersects(hpoly_clt.unary_union)
|
|
(hpoly_sai
|
|
.rename_geometry('geom')
|
|
.to_postgis(
|
|
'hydro_polygone',
|
|
con_bdcen,
|
|
schema='sites_hydro',
|
|
if_exists='append',
|
|
index=False,
|
|
))
|
|
res = gpd.read_postgis('SELECT * FROM sites_hydro.hydro_polygone',con_bdcen)
|
|
res['geom_wkt'] = res.geom.to_wkt()
|
|
res[res.geom_wkt.duplicated(keep=False)].sort_values(['geom_wkt','Type','NOM']).PK_UID.to_list()
|
|
|
|
|
|
hpnt_clt = gpd.read_file('/home/colas/Documents/5_BDD/7_CEN38/topographie_consultation.sqlite',layer='hydro_point')
|
|
hpnt_clt.dropna(subset='geometry', inplace=True)
|
|
hpnt_sai = gpd.read_file('/home/colas/Documents/5_BDD/7_CEN38/topographie_saisie.sqlite',layer='hydro_point')
|
|
hpnt_sai.replace({'':None}, inplace=True)
|
|
tmp = gpd.pd.concat([hpnt_clt,hpnt_sai])
|
|
isdupl = tmp.geometry.to_wkt().duplicated(keep=False)
|
|
tmp[isdupl].drop_duplicates(subset='geometry')
|
|
|
|
gpd.pd.concat([hpnt_clt,hpnt_sai]).drop_duplicates(subset='geometry')
|
|
iners = hpnt_sai.intersects(hpnt_clt.unary_union)
|
|
(hpnt_sai
|
|
.rename_geometry('geom')
|
|
.to_postgis(
|
|
'hydro_point',
|
|
con_bdcen,
|
|
schema='sites_hydro',
|
|
if_exists='append',
|
|
index=False,
|
|
))
|
|
res = gpd.read_postgis('SELECT * FROM sites_hydro.hydro_point',con_bdcen)
|
|
res['geom_wkt'] = res.geom.to_wkt()
|
|
res[res.geom_wkt.duplicated(keep=False)].sort_values(['geom_wkt','Type','TYPE_PRINC']).PK_UID.to_list()
|