121 lines
2.8 KiB
Python
121 lines
2.8 KiB
Python
from pycen import con
|
|
|
|
|
|
url = 'https://wxs.ign.fr/agriculture/geoportail/wfs?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetCapabilities'
|
|
layer = 'RPG.2020:parcelles_graphiques.title'
|
|
wpr_name = 'rpgwfs'
|
|
tab_name = 'rpg2020_parcellaire_graphique'
|
|
|
|
drop_fgn = 'DROP SERVER IF EXISTS %s CASCADE;'%wpr_name
|
|
fgn_data_wrapper = '''
|
|
CREATE SERVER IF NOT EXISTS %s
|
|
FOREIGN DATA WRAPPER ogr_fdw
|
|
OPTIONS (datasource 'WFS:%s', format 'WFS')
|
|
'''%(wpr_name,url)
|
|
|
|
table = '''
|
|
DROP FOREIGN TABLE IF EXISTS %s;
|
|
CREATE FOREIGN TABLE IF NOT EXISTS flux_geo.%s (
|
|
id_parcel varchar,
|
|
surf_parcel float,
|
|
code_cultu varchar,
|
|
code_group varchar,
|
|
culture_d1 varchar,
|
|
culture_d2 varchar,
|
|
geom public.geometry(multipolygon, 4326)
|
|
)
|
|
SERVER %s
|
|
OPTIONS (layer '%s');
|
|
'''%(tab_name,tab_name,wpr_name,layer)
|
|
|
|
with con.begin() as cnx:
|
|
cnx.execute(drop_fgn)
|
|
with con.begin() as cnx:
|
|
cnx.execute(fgn_data_wrapper)
|
|
|
|
with con.begin() as cnx:
|
|
cnx.execute(table)
|
|
|
|
#######
|
|
#######
|
|
from pycen import con_fon as con
|
|
from sqlalchemy import text
|
|
db = 'azalee'
|
|
host = '91.134.194.221'
|
|
port = '5432'
|
|
srv_name = 'fdw_azalee'
|
|
tab_name = 'inventaire_zh'
|
|
sch_name = 'inventaires'
|
|
user = 'cen_admin'
|
|
pwd = '#CEN38@venir'
|
|
|
|
|
|
create_ext = 'CREATE EXTENSION IF NOT EXISTS postgres_fdw;'
|
|
drop_fgn = 'DROP SERVER IF EXISTS %s CASCADE;'%srv_name
|
|
fgn_data_wrapper = '''
|
|
CREATE SERVER IF NOT EXISTS %s
|
|
FOREIGN DATA WRAPPER postgres_fdw
|
|
OPTIONS (dbname '%s', host '%s', port '%s')
|
|
'''%(srv_name,db,host,port)
|
|
|
|
fgn_user_wrapper = '''
|
|
CREATE USER MAPPING IF NOT EXISTS FOR %s
|
|
SERVER %s
|
|
OPTIONS (user '%s', password '%s');
|
|
'''%(user,srv_name,user,pwd)
|
|
|
|
table = '''
|
|
CREATE FOREIGN TABLE IF NOT EXISTS {sch_name}.{tab_name} (
|
|
site_code varchar(10),
|
|
nom varchar,
|
|
auteur_site varchar,
|
|
auteur_geom varchar,
|
|
auteur_last_maj varchar,
|
|
date_site date,
|
|
date_geom date,
|
|
date_last_maj date,
|
|
type_milieu varchar,
|
|
type_site varchar,
|
|
typo_sdage varchar,
|
|
rmq_site text,
|
|
rmq_fct_majeur text,
|
|
rmq_interet_patri text,
|
|
rmq_bilan_menace text,
|
|
rmq_orient_act text,
|
|
rmq_usage_process text,
|
|
code_cb varchar,
|
|
lib_cb text,
|
|
activ_hum varchar,
|
|
impact varchar,
|
|
"position" varchar,
|
|
rmq_activ_hum text,
|
|
connexion varchar,
|
|
subm_orig varchar,
|
|
subm_freq varchar,
|
|
subm_etend varchar,
|
|
fct_bio varchar,
|
|
fct_hydro varchar,
|
|
int_patri varchar,
|
|
"val_socioEco" varchar,
|
|
crit_delim varchar,
|
|
crit_def_esp varchar,
|
|
entree_eau_reg varchar,
|
|
entree_eau_perm varchar,
|
|
entree_eau_topo varchar,
|
|
sortie_eau_reg varchar,
|
|
sortie_eau_perm varchar,
|
|
sortie_eau_topo varchar,
|
|
geom geometry(geometry,2154)
|
|
)
|
|
SERVER {fgn_server}
|
|
OPTIONS (schema_name 'zones_humides', table_name 'v_zoneshumides');
|
|
'''.format(
|
|
sch_name=sch_name, tab_name=tab_name, fgn_server=srv_name
|
|
)
|
|
|
|
with con.begin() as cnx:
|
|
cnx.execute(create_ext)
|
|
cnx.execute(drop_fgn)
|
|
cnx.execute(fgn_data_wrapper)
|
|
cnx.execute(fgn_user_wrapper)
|
|
cnx.execute(text(table)) |