Compare commits

..

5 Commits

Author SHA1 Message Date
35a0401c79 update code 2026-04-28 14:19:57 +02:00
fd0ddaecc4 update code 2026-04-28 14:18:17 +02:00
205e55f6f2 delete script 2026-04-28 14:17:58 +02:00
ed227b4abc new scripts 2026-04-28 14:17:26 +02:00
14c0ae4f5b code evolution 2026-04-28 14:16:42 +02:00
44 changed files with 738 additions and 351 deletions

View File

@ -4,8 +4,8 @@
from pycen import con_fon from pycen import con_fon
import pandas as pd import pandas as pd
dico_data = '/media/colas/SRV/FICHIERS/OUTILS/BASES DE DONNEES/BILAN_FEDE_CEN/2024/TDB2024_enquete_SIG/Dico_DATA_sites_CEN_v2024.xlsx' dico_data = '/media/cgeier/SRV/FICHIERS/OUTILS/BASES DE DONNEES/BILAN_FEDE_CEN/2024/TDB2024_enquete_SIG/Dico_DATA_sites_CEN_v2024.xlsx'
bilan_2023 = '/media/colas/SRV/FICHIERS/OUTILS/BASES DE DONNEES/BILAN_FEDE_CEN/2024/TDB2024_enquete_SIG/DATA N-1/Sites_CEN_38_2023.csv' bilan_2023 = '/media/cgeier/SRV/FICHIERS/OUTILS/BASES DE DONNEES/BILAN_FEDE_CEN/2024/TDB2024_enquete_SIG/DATA N-1/Sites_CEN_38_2023.csv'
dic = pd.read_excel(dico_data,sheet_name='sites_cen_xx_2024',header=0, usecols='F',nrows=50) dic = pd.read_excel(dico_data,sheet_name='sites_cen_xx_2024',header=0, usecols='F',nrows=50)
dic_head_name = dic.columns[0] dic_head_name = dic.columns[0]

View File

@ -18,7 +18,7 @@ from pycen import con_bdcen as con, con_fon, wfs
annee = 2023 annee = 2023
term_parcelle_conv = ['CONVENTION',"CONVENTION D'USAGE",'ACCORD VERBAL'] term_parcelle_conv = ['CONVENTION',"CONVENTION D'USAGE",'ACCORD VERBAL']
path_agri = '/media/colas/SRV/FICHIERS/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/TRAVAUX/Couches de référence/' path_agri = '/media/cgeier/SRV/FICHIERS/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/TRAVAUX/Couches de référence/'
agri_partenaire_surf = gpd.read_file(path_agri+'AGRIS_partenaires_surface exploitées.shp') agri_partenaire_surf = gpd.read_file(path_agri+'AGRIS_partenaires_surface exploitées.shp')
agri_partenaire = gpd.read_file(path_agri+'AGRIS_partenaires.shp') agri_partenaire = gpd.read_file(path_agri+'AGRIS_partenaires.shp')
id_rnx = ['RNGL','RNIP'] id_rnx = ['RNGL','RNIP']

View File

@ -6,7 +6,7 @@ from datetime import datetime as dt
sql = "SELECT * FROM sites.c_sites_zonages WHERE code_site = 'LEZE'" sql = "SELECT * FROM sites.c_sites_zonages WHERE code_site = 'LEZE'"
sql = "SELECT * FROM foncier.c_anim_foncier_v2" sql = "SELECT * FROM foncier.c_anim_foncier_v2"
parc_site = gpd.read_postgis(sql,con_bdcen) parc_site = gpd.read_postgis(sql,con_bdcen)
parc_site[(~parc_site.classif_prop.str.contains('cen',case=False))&(parc_site.maitrise.str.contains('acqui',case=False))].to_csv('/media/colas/SRV/FICHIERS/TRANSFERTS-EQUIPE/AB/verif_anim_foncier_v2.csv',index=False) parc_site[(~parc_site.classif_prop.str.contains('cen',case=False))&(parc_site.maitrise.str.contains('acqui',case=False))].to_csv('/media/cgeier/SRV/FICHIERS/TRANSFERTS-EQUIPE/AB/verif_anim_foncier_v2.csv',index=False)
# parc_site.loc[parc_site.maitrise=='ACQUI PAR LE CEN ISERE','maitrise'] = 'ACQUIS PAR LE CEN ISERE' # parc_site.loc[parc_site.maitrise=='ACQUI PAR LE CEN ISERE','maitrise'] = 'ACQUIS PAR LE CEN ISERE'
# update_to_sql( # update_to_sql(
# parc_site[['par_id','maitrise']],con_bdcen,'c_anim_foncier_v2','foncier','par_id' # parc_site[['par_id','maitrise']],con_bdcen,'c_anim_foncier_v2','foncier','par_id'

View File

@ -2,7 +2,7 @@
import pandas as pd import pandas as pd
import csv import csv
path = '/media/colas/SRV/FICHIERS/TRANSFERTS-EQUIPE/CG/FONCIER/CADASTRE/2023/Fichier national FANTOIR (situation avril 2023)/' path = '/media/cgeier/SRV/FICHIERS/TRANSFERTS-EQUIPE/CG/FONCIER/CADASTRE/2023/Fichier national FANTOIR (situation avril 2023)/'
fant = path+'FANTOIR0423' fant = path+'FANTOIR0423'
lst_dep = ['07','26','38','42'] lst_dep = ['07','26','38','42']

View File

@ -46,7 +46,7 @@ def revoke_all_table(con,sch):
if __name__ == "__main__": if __name__ == "__main__":
sch_cad = '38_202501' sch_cad = '26_202504'
sch_old = '42_202207' sch_old = '38_202501'
grant_all_table(con_cad,sch_cad) grant_all_table(con_cad,sch_cad)
# revoke_all_table(con_cad,sch_old) # revoke_all_table(con_cad,sch_old)

View File

@ -19,7 +19,7 @@ def get_site_serena():
if __name__ == "__main__": if __name__ == "__main__":
# Lecture des sites SIG # Lecture des sites SIG
PATH = '/media/colas/SRV/FICHIERS/OUTILS/BASES DE DONNEES/RHOMEO/2018/RhoMéO_Données' PATH = '/media/cgeier/SRV/FICHIERS/OUTILS/BASES DE DONNEES/RHOMEO/2018/RhoMéO_Données'
FILE = '38_sig_points_de_suivis_point.shp' FILE = '38_sig_points_de_suivis_point.shp'
sig = gpd.read_file(path.join(PATH,FILE)) sig = gpd.read_file(path.join(PATH,FILE))

View File

@ -26,7 +26,7 @@ DICT_OBS_COLS = {
def list_access_datatable(): def list_access_datatable():
PATH_IN = '/media/colas/SRV/FICHIERS/OUTILS/BASES DE DONNEES/ESPECES/backup' PATH_IN = '/media/cgeier/SRV/FICHIERS/OUTILS/BASES DE DONNEES/ESPECES/backup'
BDD_IN = 'AVENIR.serena_V2.mdb' BDD_IN = 'AVENIR.serena_V2.mdb'
LST_SCHEMA = mdb.read_schema(path.join(PATH_IN,BDD_IN)) LST_SCHEMA = mdb.read_schema(path.join(PATH_IN,BDD_IN))

View File

@ -8,7 +8,7 @@ from os import path
postgis_sch = 'serenabase' postgis_sch = 'serenabase'
ACCESS_PATH = '/media/colas/SRV/FICHIERS/OUTILS/BASES DE DONNEES/RHOMEO/2012/CEN-38_RHOMEO_BDD_2012' ACCESS_PATH = '/media/cgeier/SRV/FICHIERS/OUTILS/BASES DE DONNEES/RHOMEO/2012/CEN-38_RHOMEO_BDD_2012'
ACCESS_FILE = 'BD_Rhomeo_data.mdb' ACCESS_FILE = 'BD_Rhomeo_data.mdb'
DICT_COLS = { DICT_COLS = {
'obse_id':'id_origine', 'obse_id':'id_origine',

View File

@ -7,7 +7,7 @@ from os import path,listdir
from re import findall from re import findall
v_zh = zh().v_zoneshumides() v_zh = zh().v_zoneshumides()
PATH = '/media/colas/SRV/FICHIERS/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/ETUDES/Zones humides' PATH = '/media/cgeier/SRV/FICHIERS/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/ETUDES/Zones humides'
lst_layer = [x for x in listdir(PATH) if (x.endswith('.shp') or x.endswith('.gpkg')) and x.startswith('ZHP')] lst_layer = [x for x in listdir(PATH) if (x.endswith('.shp') or x.endswith('.gpkg')) and x.startswith('ZHP')]
def upper_first_letter(s): def upper_first_letter(s):

View File

@ -106,7 +106,7 @@ def format_date(df):
df.date = pd.to_datetime(df.date,format='%d%b%Y') df.date = pd.to_datetime(df.date,format='%d%b%Y')
if table == '"PS_BIEVRE_CEN38_2016"': if table == '"PS_BIEVRE_CEN38_2016"':
df.date = df.date.astype(str).replace('\.','',regex=True) df.date = df.date.astype(str).replace(r'\.','',regex=True)
df.date = df.date.str.rsplit(' ',1).str[0]\ df.date = df.date.str.rsplit(' ',1).str[0]\
.replace(['avr','mai','juin','juil'],['apr','may','jun','jul'],regex=True) .replace(['avr','mai','juin','juil'],['apr','may','jun','jul'],regex=True)
df.date = pd.to_datetime(df.date,format='%d %b %Y') df.date = pd.to_datetime(df.date,format='%d %b %Y')
@ -541,7 +541,7 @@ def normalize_formatIdsite(id_site):
import re import re
df = pd.DataFrame({'id_site':id_site}) df = pd.DataFrame({'id_site':id_site})
df['dept'] = '38' df['dept'] = '38'
df[['org','num','other']] = [re.split('(\d+)',s) for s in [*df.id_site]] df[['org','num','other']] = [re.split(r'(\d+)',s) for s in [*df.id_site]]
del df['other'] del df['other']
df.loc[df.num.str.len() == 1,'num'] = '000'+ df.loc[df.num.str.len() == 1,'num'] df.loc[df.num.str.len() == 1,'num'] = '000'+ df.loc[df.num.str.len() == 1,'num']
df.loc[df.num.str.len() == 2,'num'] = '00' + df.loc[df.num.str.len() == 2,'num'] df.loc[df.num.str.len() == 2,'num'] = '00' + df.loc[df.num.str.len() == 2,'num']
@ -601,7 +601,7 @@ def normalize_pratiques(prat):
p = normalize_paturage(p) p = normalize_paturage(p)
p = p.replace(dic) p = p.replace(dic)
p.fillna('N.D', inplace=True) p.fillna('N.D', inplace=True)
p[p.str.contains('\?| ou ',na=False)] = 'incertain' p[p.str.contains(r'\?| ou ',na=False)] = 'incertain'
pp = p.str.split(',',expand=True) pp = p.str.split(',',expand=True)
pp.columns = 'p' + pp.columns.astype(str) pp.columns = 'p' + pp.columns.astype(str)
for c in pp.columns: for c in pp.columns:
@ -903,7 +903,7 @@ def insert_attrsPS(df,ps_statut='actif'):
del df['pratiques'] del df['pratiques']
for col in params: for col in params:
df[col] = df[col].astype(str).replace(['\.0'],[''],regex=True) df[col] = df[col].astype(str).replace([r'\.0'],[''],regex=True)
if 'niv_embrous' in df.columns: if 'niv_embrous' in df.columns:
df.niv_embrous.replace(['nan'],['N.D'],inplace=True) df.niv_embrous.replace(['nan'],['N.D'],inplace=True)
@ -971,9 +971,9 @@ def insert_attrsPS(df,ps_statut='actif'):
def split_codehab(lst_codehab): def split_codehab(lst_codehab):
lst = lst_codehab.copy() lst = lst_codehab.copy()
lst = lst.str.split('x|X|,|&|/|\(|et',expand=True) \ lst = lst.str.split(r'x|X|,|&|/|\(|et',expand=True) \
.stack().str.strip() \ .stack().str.strip() \
.str.replace('\)','',regex=True)\ .str.replace(r'\)','',regex=True)\
.droplevel(-1).reset_index(drop=False) .droplevel(-1).reset_index(drop=False)
return lst return lst
@ -994,7 +994,7 @@ def format_codehab2insert(lst_codehab):
suspect = lst.code_hab.str.split('(',expand=True) suspect = lst.code_hab.str.split('(',expand=True)
if suspect.shape[1] > 1: if suspect.shape[1] > 1:
suspect[0] = suspect[0].str.strip() suspect[0] = suspect[0].str.strip()
suspect[1] = suspect[1].str.replace('\)','',regex=True) suspect[1] = suspect[1].str.replace(r'\)','',regex=True)
suspect.columns = ['code_hab','suspect'] suspect.columns = ['code_hab','suspect']
del lst['code_hab'] del lst['code_hab']
# raise Exception('habitat suspecté en développement') # raise Exception('habitat suspecté en développement')
@ -1011,7 +1011,7 @@ def insert_cbPS(df):
drop_col = ['auteur','structure'] drop_col = ['auteur','structure']
df = df.copy() df = df.copy()
df.date = df.date.astype(str) df.date = df.date.astype(str)
df.code_hab = df.code_hab.replace(['\*'],[''],regex=True).str.strip() df.code_hab = df.code_hab.replace([r'\*'],[''],regex=True).str.strip()
df.code_hab = df.code_hab.replace(['None','nan','0'],[None,None,None]) df.code_hab = df.code_hab.replace(['None','nan','0'],[None,None,None])
df.dropna(subset=['code_hab'],inplace=True) df.dropna(subset=['code_hab'],inplace=True)
ids = select_ID(df[df.columns.drop(['code_hab',*drop_col])],sch=pycen.ps.schema,tab='r_site_habitat') ids = select_ID(df[df.columns.drop(['code_hab',*drop_col])],sch=pycen.ps.schema,tab='r_site_habitat')
@ -1061,7 +1061,7 @@ def insert_habPS(df,ps_statut='actif'):
# df[t] = df[t].astype(str) # df[t] = df[t].astype(str)
df = df.stack().reset_index(-1) df = df.stack().reset_index(-1)
df.columns = ['param','value'] df.columns = ['param','value']
df[['param','index','other']] = [re.split('(\d+)',s) for s in [*df.param]] df[['param','index','other']] = [re.split(r'(\d+)',s) for s in [*df.param]]
del df['other'] del df['other']
df['index'] = df['index'].astype(int) df['index'] = df['index'].astype(int)
df['value'] = df['value'].replace(['-'],[None]) df['value'] = df['value'].replace(['-'],[None])
@ -1137,7 +1137,7 @@ def filter_saisierror(df):
tmp.set_index([*cc], inplace=True) tmp.set_index([*cc], inplace=True)
tmp = tmp.stack().reset_index(-1) tmp = tmp.stack().reset_index(-1)
tmp.columns = ['param','value'] tmp.columns = ['param','value']
tmp[['param','index','other']] = [re.split('(\d+)',s) for s in [*tmp.param]] tmp[['param','index','other']] = [re.split(r'(\d+)',s) for s in [*tmp.param]]
del tmp['other'] del tmp['other']
tmp['index'] = tmp['index'].astype(int) tmp['index'] = tmp['index'].astype(int)
tmp['value'] = tmp['value'].replace(['-'],[None]) tmp['value'] = tmp['value'].replace(['-'],[None])
@ -1180,7 +1180,7 @@ def filter_saisierror(df):
cb = pycen.ref_hab().get_CB() cb = pycen.ref_hab().get_CB()
tmp.code_hab = tmp.code_hab.replace(['\*'],[''],regex=True).str.strip() tmp.code_hab = tmp.code_hab.replace([r'\*'],[''],regex=True).str.strip()
tmp.code_hab = tmp.code_hab.replace(['0'],[None]) tmp.code_hab = tmp.code_hab.replace(['0'],[None])
tmp.dropna(subset=['code_hab'], inplace=True) tmp.dropna(subset=['code_hab'], inplace=True)
tmpp = tmp[['id_site','index','code_hab']].copy() tmpp = tmp[['id_site','index','code_hab']].copy()
@ -1303,8 +1303,9 @@ if __name__ == "__main__":
] ]
# from_table = '"cr_ECRIN_habitats_CBNA_2014"' # from_table = '"cr_ECRIN_habitats_CBNA_2014"'
from_table = None from_table = None
from_file = 'PS38_modifs_AG_2024.gpkg' from_file = 'PS prioritaire.geojson'
path0 = '/home/colas/Documents/9_PROJETS/2_PS/TO IMPORT/2024/' from_tab = 'Tableau_saisie_PS_2026.xlsx'
path0 = '/home/colas/Documents/9_PROJETS/2_PS/TO IMPORT/2026/'
# org = from_file.split('/')[1] # org = from_file.split('/')[1]
tutu = pd.DataFrame() tutu = pd.DataFrame()

View File

@ -17,7 +17,7 @@ con = create_engine('postgresql+psycopg2://{0}:{1}@{2}:{3}/{4}'.format(user_cad,
file = '/media/colas/Disk2/5_BDD/RPG/1_DONNEES_LIVRAISON_2021/RPG_2-0_SHP_LAMB93_R84_2021-01-01/ILOTS_ANONYMES.shp' file = '/media/cgeier/Disk2/5_BDD/RPG/1_DONNEES_LIVRAISON_2021/RPG_2-0_SHP_LAMB93_R84_2021-01-01/ILOTS_ANONYMES.shp'
dic = { dic = {
'CD_SSBV': 'cdssbv', 'CD_SSBV': 'cdssbv',
'LIB_SSBV': 'nom', 'LIB_SSBV': 'nom',

View File

@ -0,0 +1,36 @@
import pandas as pd
import geopandas as gpd
from pycen import con_gn
old = gpd.read_file('/home/cgeier/Téléchargements/Telechargement_1772622390_2696/data/n_zone_humide_s_038/n_zone_humide_s_038.json')
new = gpd.read_postgis('SELECT * FROM gn_exports.v_synthese_zones_humides_isere',con_gn).to_crs(2154)
tab = pd.read_csv('/home/cgeier/Documents/9_PROJETS/1_ZH/2024/RENDU SIG/pv_evolution_dossier.csv',sep=',')
for etude in tab.nom_etude.unique():
if tab[(tab.nom_etude==etude)].organisme_transmission.any():
continue
print('\n',etude)
news = tab[(tab.nom_etude==etude) & (tab.status_inventaire == 'Nouvelle')]
modif = tab[(tab.nom_etude==etude) & (tab.status_inventaire== 'Modification')]
supp = tab[(tab.nom_etude==etude) & (tab.status_inventaire == 'Supression')]
new_add = new[new.code.isin(news.code_zh.tolist())].copy()
del_zh = old[old.id_local.isin(supp.code_zh.tolist())]
print('\tNouvelles surfaces ajoutées : %f ha'%(round(new_add.area.sum()/10000,2)),' ; %i zh'%new_add.shape[0],' ; \n\tcode : ',', '.join(list(new_add.code)))
print('\tSurfaces supprimées : %f ha'%(round(del_zh.area.sum()/10000,2)),' ; %i zh'%del_zh.shape[0],' ; \n\tcode : ',', '.join(list(del_zh.id_local)))
code_modif = modif.code_zh.tolist()
diff = (new[new.code.isin(code_modif)]
.sort_values('code').set_index('code').area - old[old.id_local.isin(code_modif)]
.sort_values('id_local').set_index('id_local').area
)
add = diff[diff > 0]
red = diff[diff < 0]
print('\tModification surfaces ajoutées : %f ha'%(round(add.sum()/10000,2)),' ; %i zh'%add.shape[0],' ; \n\tcode : ',', '.join(list(add.index)))
print('\tModification surfaces perdues : %f ha'%(round(red.sum()/10000,2)),' ; %i zh'%red.shape[0],' ; \n\tcode : ',', '.join(list(red.index)))

View File

@ -38,7 +38,7 @@ r_geom.sort_values(['id_site','date'],inplace=True)
r_geom.drop_duplicates(['id_site'],keep='last',inplace=True) r_geom.drop_duplicates(['id_site'],keep='last',inplace=True)
PATH = '/home/colas/Documents/9_PROJETS/1_ZH/MAJ/Actu 2024/CBNA/zh38' PATH = '/home/colas/Documents/9_PROJETS/1_ZH/MAJ/Actu 2024/FAIT/CBNA/zh38'
file = 'hab_agreg.gpkg' file = 'hab_agreg.gpkg'
df = gpd.read_file(path.join(PATH,file)) df = gpd.read_file(path.join(PATH,file))
df.rename_geometry('geom', inplace=True) df.rename_geometry('geom', inplace=True)
@ -91,6 +91,7 @@ inters_foret.to_file(path.join(PATH,'inters.gpkg'),driver='GPKG',layer='inters_f
# Fusion Géométries # Fusion Géométries
intersF = gpd.pd.concat([inters,inters_foret]) intersF = gpd.pd.concat([inters,inters_foret])
intersF.to_csv(path.join(PATH,'intersection_finale_hab_zh.csv'))
rgeo = (r_geom[r_geom.id_site.isin(intersF.id_site.unique())] rgeo = (r_geom[r_geom.id_site.isin(intersF.id_site.unique())]
.copy()) .copy())
for id_site in rgeo.id_site.unique(): for id_site in rgeo.id_site.unique():

View File

@ -3,7 +3,7 @@
from pycen import con, update_to_sql from pycen import con, update_to_sql
import geopandas as gpd import geopandas as gpd
file = "/media/colas/SRV/FICHIERS/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/ETUDES/PGSZH_Belledonne/Inventaire 2023/ZH_Belledonne_MAJ_2023_NB.shp" file = "/media/cgeier/SRV/FICHIERS/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/ETUDES/PGSZH_Belledonne/Inventaire 2023/ZH_Belledonne_MAJ_2023_NB.shp"
df = gpd.read_file(file) df = gpd.read_file(file)
df = (df[df.site_code.isin(['38BB0028','38BB0055','38RD0170'])] df = (df[df.site_code.isin(['38BB0028','38BB0055','38RD0170'])]

View File

@ -445,7 +445,7 @@ def define_author(df,is_new=False):
if __name__ == "__main__": if __name__ == "__main__":
PATH = '/media/colas/SRV/FICHIERS/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/ETUDES/PLUI METRO/INV_ZH_PLUI_METRO/Mosaique/MAJ-INV-ZH MOSAIQUE 2018-SIG_BDD' PATH = '/media/cgeier/SRV/FICHIERS/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/ETUDES/PLUI METRO/INV_ZH_PLUI_METRO/Mosaique/MAJ-INV-ZH MOSAIQUE 2018-SIG_BDD'
shp = 'ZH_GAM_CC45.shp' shp = 'ZH_GAM_CC45.shp'
data_file = 'BDD_ZH_GAM_database.xlsx' data_file = 'BDD_ZH_GAM_database.xlsx'
dict_cols = { dict_cols = {
@ -790,7 +790,7 @@ if __name__ == "__main__":
insert_cnx(rpl_cnx) insert_cnx(rpl_cnx)
insertAttrsFct(rpl_fct,True) insertAttrsFct(rpl_fct,True)
## ADD GEOM 2023 ## ADD GEOM 2023
PATH = '/media/colas/SRV/FICHIERS/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/ETUDES/PLUI METRO/INV_ZH_PLUI_METRO/' PATH = '/media/cgeier/SRV/FICHIERS/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/ETUDES/PLUI METRO/INV_ZH_PLUI_METRO/'
FILE_2023 = 'zh_gam_cc45_modifByMJ&GC.gpkg' FILE_2023 = 'zh_gam_cc45_modifByMJ&GC.gpkg'
df2023 = gpd.read_file(path.join(PATH,FILE_2023)) df2023 = gpd.read_file(path.join(PATH,FILE_2023))
df2023.rename_geometry('geom',inplace=True) df2023.rename_geometry('geom',inplace=True)
@ -894,7 +894,7 @@ if __name__ == "__main__":
insertAttrsFct(rpl_fct,True) insertAttrsFct(rpl_fct,True)
## ADD GEOM 2023 ## ADD GEOM 2023
PATH = '/media/colas/SRV/FICHIERS/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/ETUDES/PLUI METRO/INV_ZH_PLUI_METRO/' PATH = '/media/cgeier/SRV/FICHIERS/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/ETUDES/PLUI METRO/INV_ZH_PLUI_METRO/'
FILE_2023 = 'zh_gam_cc45_modifByMJ&GC.gpkg' FILE_2023 = 'zh_gam_cc45_modifByMJ&GC.gpkg'
df2023 = gpd.read_file(path.join(PATH,FILE_2023)) df2023 = gpd.read_file(path.join(PATH,FILE_2023))
df2023.rename_geometry('geom',inplace=True) df2023.rename_geometry('geom',inplace=True)
@ -1162,7 +1162,7 @@ if __name__ == "__main__":
########################## ##########################
##### ADD 2010 GEOM ###### ##### ADD 2010 GEOM ######
########################## ##########################
PATH = '/media/colas/SRV/FICHIERS/OUTILS/CARTOGRAPHIE/VECTEURS/ETUDES/ZONES HUMIDES/INVENTAIRE_ZH/' PATH = '/media/cgeier/SRV/FICHIERS/OUTILS/CARTOGRAPHIE/VECTEURS/ETUDES/ZONES HUMIDES/INVENTAIRE_ZH/'
FILE_2010 = 'ZH_2010 (re-save).shp' FILE_2010 = 'ZH_2010 (re-save).shp'
df2010 = gpd.read_file(PATH+FILE_2010) df2010 = gpd.read_file(PATH+FILE_2010)
df2010.to_crs(2154,inplace=True) df2010.to_crs(2154,inplace=True)

View File

@ -0,0 +1,61 @@
from pycen import con
sql1 = """
DROP VIEW IF EXISTS zones_humides.v_zh_ponctuelles;
CREATE VIEW zones_humides.v_zh_ponctuelles AS
SELECT
id,
territoire,
commune,
lieu_dit,
observer,
datemodif,
x,
y,
code_insee,
descripti2,
geom,
qui,
statut,
source,
comment,
type,
ponctuelle,
classe
FROM zones_humides.zh_ponctuelles
WHERE in_zh is False
"""
with con.begin() as cnx:
cnx.execute(sql1)
sql1 = """
DROP VIEW IF EXISTS zones_humides.v_zh_ponctuelles;
CREATE VIEW zones_humides.v_zh_ponctuelles AS
SELECT
id,
territoire,
commune,
lieu_dit,
observer,
datemodif,
x,
y,
code_insee,
descripti2,
geom,
qui,
statut,
source,
comment,
type,
ponctuelle,
classe
FROM zones_humides.zh_ponctuelles
WHERE in_zh is True
"""
with con.begin() as cnx:
cnx.execute(sql1)

View File

@ -1,3 +1,4 @@
# SCRIPT NON VALIDE À CE JOUR
from pycen import con_gn from pycen import con_gn
sql = ''' sql = '''

View File

@ -6,6 +6,7 @@ import requests
from os import path from os import path
import io import io
def get_zh(geom=None): def get_zh(geom=None):
url = 'https://geonature.cen-isere.fr/geonature/api/exports/api/9?limit=30000&{geo}' url = 'https://geonature.cen-isere.fr/geonature/api/exports/api/9?limit=30000&{geo}'
if not geom.empty : if not geom.empty :
@ -17,6 +18,7 @@ def get_zh(geom=None):
geometry = 'geometry={geom}'.format(geom=geom.unary_union.wkt) geometry = 'geometry={geom}'.format(geom=geom.unary_union.wkt)
else: else:
geom = '' geom = ''
print(url.format(geo=geometry))
r = requests.get(url.format(geo=geometry)) r = requests.get(url.format(geo=geometry))
if r.status_code == 200: if r.status_code == 200:
d = r.json() d = r.json()
@ -27,9 +29,10 @@ def get_zh(geom=None):
return df return df
if __name__ == "__main__": if __name__ == "__main__":
PATH = '/media/colas/Disk2/tmp/GEONATURE/ST MARTIN URIAGE' PATH = '/media/cgeier/Disk2/tmp/GEONATURE/ST MARTIN URIAGE'
FILE = 'ZH ENS POUR CEN 14102025.gpkg' FILE = 'ZH ENS POUR CEN 14102025.gpkg'
f = gpd.read_file(path.join(PATH,FILE)) f = gpd.read_file(path.join(PATH,FILE))
df = get_zh(f) df = get_zh(f)

View File

@ -0,0 +1,41 @@
from pycen import con_gn
sql = '''
DROP VIEW IF EXISTS gn_exports.v_eee_n2000_platiere;
CREATE OR REPLACE VIEW gn_exports.v_eee_n2000_platiere
AS
SELECT
v.*
FROM gn_synthese.v_synthese_for_export v
JOIN ref_geo.l_areas ON st_intersects(ST_GeomFromGeoJSON(v.geojson_4326),st_transform(l_areas.geom,4326))
JOIN ref_geo.bib_areas_types bib USING (id_type)
WHERE bib.type_code = 'ZPS'
AND area_name ilike '%%plati%%re%%'
AND v.cd_ref in (100330, 101055, 101237, 101286, 103139, 103543, 103545, 103547,
103557, 104074, 104805, 105017, 105433, 105615, 105689, 105960,
106252, 106571, 106742, 106748, 106754, 106965, 107446, 108628,
108642, 108810, 109141, 109911, 109926, 109954, 109980, 110762,
111863, 111881, 112100, 112111, 112130, 112195, 112463, 112467,
112482, 112712, 112790, 113418, 114024, 115527, 116089, 116137,
116485, 117503, 117505, 117723, 117860, 117937, 118477, 119474,
119558, 119595, 119854, 122630, 124025, 124164, 124168, 124378,
124635, 124646, 124719, 124730, 125331, 128504, 128748, 128863,
128954, 129468, 130484, 130491, 159690, 159937, 4419, 446169,
448413, 454932, 4872, 611690, 611753, 612522, 717136, 717180,
79766, 79877, 80086, 80824, 81955, 81978, 82018, 82080,
82093, 82164, 83938, 84057, 84251, 85186, 85469, 85949,
85957, 86167, 86513, 86817, 86869, 86975, 89452, 90192,
90234, 92572, 92649, 92663, 92793, 93020, 93129, 93613,
93923, 93924, 94168, 94489, 95679, 95823, 95831, 95965,
95975, 95980, 96149, 96585, 96644, 96739, 96749, 96775,
97346, 97594, 97666, 97961, 99260, 99359, 95983, 96814,
117507, 129959, 81992, 90532, 97623, 104353, 111886, 112483,
125369, 109037, 96624, 101056, 106800, 109949, 116762, 125324
)
;
'''
with con_gn.begin() as cnx:
cnx.execute(sql)

View File

@ -0,0 +1,45 @@
from pycen import con_gn
sql = '''
DROP VIEW IF EXISTS gn_exports.v_synthese_zh_rhomeosite;
CREATE OR REPLACE VIEW gn_exports.v_synthese_zh_rhomeosite
AS WITH t1 AS (
SELECT t_zh.code,
l_areas.area_name,
st_area(st_intersection(t_zh.geom, l_areas.geom_4326)) AS area_intersect
FROM pr_zh.t_zh
JOIN ref_geo.l_areas ON st_intersects(t_zh.geom, l_areas.geom_4326)
JOIN ref_geo.bib_areas_types bib ON l_areas.id_type = bib.id_type and bib.type_name = 'Zones biogéographiques'
), t2 AS (
SELECT t1.code,
t1.area_name,
row_number() OVER (PARTITION BY t1.code ORDER BY t1.area_intersect DESC) AS ismax_ter
FROM t1
)
SELECT
t_zh.id_zh,
t_zh.main_name AS "NAME",
concat(t_roles.nom_role, ' ', t_roles.prenom_role) AS "REFERENT",
bib.nom_organisme AS "ORG",
CASE
WHEN t_zh.id_sage IS NULL
THEN ref_nomenclatures.get_cd_nomenclature(t_zh.id_sdage)::text
ELSE ref_nomenclatures.get_cd_nomenclature(t_zh.id_sage)::text
END AS "TYPE",
CASE
WHEN t2.area_name = 'alpin'::text THEN '1'::text
WHEN t2.area_name = 'continental'::text THEN '2'::text
WHEN t2.area_name = 'mediterraneen'::text THEN '4'::text
ELSE NULL::text
END AS "ODONATE",
ST_TRANSFORM(t_zh.geom,2154)::geometry(geometry,2154) geom
FROM pr_zh.t_zh
LEFT JOIN utilisateurs.t_roles ON t_zh.update_author = t_roles.id_role
LEFT JOIN utilisateurs.bib_organismes bib USING (id_organisme)
JOIN t2 ON t_zh.code::text = t2.code::text AND t2.ismax_ter = 1;
'''
with con_gn.begin() as cnx:
cnx.execute(sql)

View File

@ -1,9 +1,6 @@
from pycen import con_gn from pycen import con_gn
sql = ''' sql0 = '''
DROP VIEW IF EXISTS gn_exports.v_synthese_zones_humides;
CREATE VIEW gn_exports.v_synthese_zones_humides AS
with habitats as ( with habitats as (
SELECT SELECT
zh_uuid, zh_uuid,
@ -25,8 +22,7 @@ with habitats as (
FROM pr_zh.t_zh FROM pr_zh.t_zh
LEFT JOIN pr_zh.cor_zh_lim_fs USING (id_zh) LEFT JOIN pr_zh.cor_zh_lim_fs USING (id_zh)
group by 1 order by 1 group by 1 order by 1
), activ_hum AS ( ), v_activity AS (
WITH v_activity AS (
SELECT SELECT
id_zh, id_zh,
json_agg(ref_nomenclatures.get_nomenclature_label(cor_impact_types.id_impact)) impacts json_agg(ref_nomenclatures.get_nomenclature_label(cor_impact_types.id_impact)) impacts
@ -34,38 +30,60 @@ with habitats as (
LEFT JOIN pr_zh.cor_impact_list USING (id_impact_list) LEFT JOIN pr_zh.cor_impact_list USING (id_impact_list)
LEFT JOIN pr_zh.cor_impact_types USING (id_cor_impact_types) LEFT JOIN pr_zh.cor_impact_types USING (id_cor_impact_types)
group by 1 order by 1 group by 1 order by 1
) ), activ_hum AS (
SELECT SELECT
zh_uuid, zh_uuid,
json_agg(json_build_object( json_agg(CASE WHEN t_activity.id_activity IS NULL
'activite', ref_nomenclatures.get_nomenclature_label(t_activity.id_activity), THEN NULL
'position', ref_nomenclatures.get_nomenclature_label(t_activity.id_position), ELSE json_build_object(
'impact', v_activity.impacts, 'activite', ref_nomenclatures.get_nomenclature_label(t_activity.id_activity),
'rmq_activ', t_activity.remark_activity 'position', ref_nomenclatures.get_nomenclature_label(t_activity.id_position),
)) AS activ_hum 'impact', v_activity.impacts,
'rmq_activ', t_activity.remark_activity
)
END) AS activ_hum
FROM pr_zh.t_zh FROM pr_zh.t_zh
LEFT JOIN pr_zh.t_activity USING (id_zh) LEFT JOIN pr_zh.t_activity USING (id_zh)
LEFT JOIN v_activity USING (id_zh) LEFT JOIN v_activity USING (id_zh)
group by zh_uuid order by 1 group by zh_uuid order by 1
--), activ_hum_test AS (
-- SELECT
-- zh_uuid,
-- CASE WHEN t_activity.id_activity IS NOT NULL
-- THEN jsonb_build_object(
-- ref_nomenclatures.get_nomenclature_label(t_activity.id_activity), v_activity.impacts
-- )
-- ELSE NULL
-- END AS activ_hum_test
-- FROM pr_zh.t_zh
-- LEFT JOIN pr_zh.t_activity USING (id_zh)
-- LEFT JOIN v_activity USING (id_zh)
-- --group by zh_uuid order by 1
), inflow as ( ), inflow as (
SELECT SELECT
zh_uuid, zh_uuid,
json_agg(json_build_object( json_agg(CASE WHEN t_inflow.id_inflow IS NULL
THEN NULL
ELSE json_build_object(
'entree_eau', ref_nomenclatures.get_nomenclature_label(t_inflow.id_inflow), 'entree_eau', ref_nomenclatures.get_nomenclature_label(t_inflow.id_inflow),
'perm', ref_nomenclatures.get_nomenclature_label(t_inflow.id_permanance), 'perm', ref_nomenclatures.get_nomenclature_label(t_inflow.id_permanance),
'topo', t_inflow.topo 'topo', t_inflow.topo
)) AS entree_eau )
END) AS entree_eau
FROM pr_zh.t_zh FROM pr_zh.t_zh
LEFT JOIN pr_zh.t_inflow USING (id_zh) LEFT JOIN pr_zh.t_inflow USING (id_zh)
group by zh_uuid group by zh_uuid
), outflow as ( ), outflow as (
SELECT SELECT
zh_uuid, zh_uuid,
json_agg(json_build_object( json_agg(CASE WHEN t_outflow.id_outflow IS NULL
'sortie_eau', ref_nomenclatures.get_nomenclature_label(t_outflow.id_outflow), THEN NULL
'perm', ref_nomenclatures.get_nomenclature_label(t_outflow.id_permanance), ELSE json_build_object(
'topo', t_outflow.topo 'sortie_eau', ref_nomenclatures.get_nomenclature_label(t_outflow.id_outflow),
)) AS sortie_eau 'perm', ref_nomenclatures.get_nomenclature_label(t_outflow.id_permanance),
'topo', t_outflow.topo
)
END) AS sortie_eau
FROM pr_zh.t_zh FROM pr_zh.t_zh
LEFT JOIN pr_zh.t_outflow USING (id_zh) LEFT JOIN pr_zh.t_outflow USING (id_zh)
group by zh_uuid group by zh_uuid
@ -247,11 +265,13 @@ SELECT
zh_uuid, zh_uuid,
code, code,
main_name, main_name,
CONCAT(crea_role.nom_role, ' ', crea_role.prenom_role) crea_author, --concat(crea_role.nom_role, ' ', crea_role.prenom_role) AS crea_author,
CONCAT(updt_role.nom_role, ' ', updt_role.prenom_role) updt_author, --bib_org.name AS organisme,
bib_org.name organisme, --concat(updt_role.nom_role, ' ', updt_role.prenom_role) AS updt_author,
bib_org_user_updt.nom_organisme as org_updt,
create_date crea_date, create_date crea_date,
update_date updt_date, update_date updt_date,
--ST_TRANSFORM(geom,2154)::geometry(geometry,2154) geom,
geom, geom,
area surface, area surface,
rb.river_bassin, rb.river_bassin,
@ -259,27 +279,43 @@ SELECT
zh_area_com.commune, zh_area_com.commune,
ref_nomenclatures.get_nomenclature_label(id_sdage) sdage, ref_nomenclatures.get_nomenclature_label(id_sdage) sdage,
ref_nomenclatures.get_nomenclature_label(id_sage) sage, ref_nomenclatures.get_nomenclature_label(id_sage) sage,
habitats.habitats, CASE WHEN habitats.habitats::text = '[null]'
THEN NULL
ELSE habitats.habitats
END AS habitats,
remark_pres descript, remark_pres descript,
crit_delim.crit_delim, crit_delim.crit_delim,
remark_lim rmq_delilm, remark_lim rmq_delilm,
esp_fs.crit_esp_fs, CASE WHEN esp_fs.crit_esp_fs::text = '[null]'
THEN NULL
ELSE esp_fs.crit_esp_fs
END AS crit_esp_fs,
remark_lim_fs rmq_esp_fs, remark_lim_fs rmq_esp_fs,
ef_area, --ef_area,
v_habref v_hab, --v_habref v_hab,
activ_hum.activ_hum, CASE WHEN activ_hum.activ_hum::text = '[null]'
THEN NULL
ELSE activ_hum.activ_hum::text
END AS activ_hum,
-- activ_hum_test.activ_hum_test,
ref_nomenclatures.get_nomenclature_label(id_thread) bilan_menace, ref_nomenclatures.get_nomenclature_label(id_thread) bilan_menace,
inflow.entree_eau, CASE WHEN inflow.entree_eau::text = '[null]'
outflow.sortie_eau, THEN NULL
ELSE inflow.entree_eau::text
END AS entree_eau,
CASE WHEN outflow.sortie_eau::text = '[null]'
THEN NULL
ELSE outflow.sortie_eau::text
END AS sortie_eau,
ref_nomenclatures.get_nomenclature_label(id_frequency) freq_sub, ref_nomenclatures.get_nomenclature_label(id_frequency) freq_sub,
ref_nomenclatures.get_nomenclature_label(id_spread) extend_sub, ref_nomenclatures.get_nomenclature_label(id_spread) extend_sub,
ref_nomenclatures.get_nomenclature_label(id_connexion) connex, ref_nomenclatures.get_nomenclature_label(id_connexion) connex,
ref_nomenclatures.get_nomenclature_label(id_diag_hydro) diag_hydro, ref_nomenclatures.get_nomenclature_label(id_diag_hydro) diag_hydro,
ref_nomenclatures.get_nomenclature_label(id_diag_bio) diag_bio, ref_nomenclatures.get_nomenclature_label(id_diag_bio) diag_bio,
functions.hydro, functions.hydro::text,
functions.bio, functions.bio::text,
functions.int_patrim, functions.int_patrim::text,
functions.val_socio, functions.val_socio::text,
remark_eval_functions eval_fcts, remark_eval_functions eval_fcts,
remark_eval_heritage eval_heritage, remark_eval_heritage eval_heritage,
remark_eval_thread eval_menace, remark_eval_thread eval_menace,
@ -293,19 +329,21 @@ SELECT
especes.nb_flora nb_flora_sp, especes.nb_flora nb_flora_sp,
especes.nb_vertebrates nb_vertebrate_sp, especes.nb_vertebrates nb_vertebrate_sp,
especes.nb_invertebrates nb_invertebrate_sp, especes.nb_invertebrates nb_invertebrate_sp,
inventaire.inventaire, inventaire.inventaire::text,
actions.prio_actions, actions.prio_actions::text,
instrument.instrument, instrument.instrument::text,
urba.docs_urba urba.docs_urba::text
--remark_is_other_inventory --remark_is_other_inventory
FROM pr_zh.t_zh FROM pr_zh.t_zh
JOIN utilisateurs.t_roles crea_role ON t_zh.create_author = crea_role.id_role JOIN utilisateurs.t_roles crea_role ON t_zh.create_author = crea_role.id_role
LEFT JOIN utilisateurs.t_roles updt_role ON t_zh.update_author = updt_role.id_role LEFT JOIN utilisateurs.t_roles updt_role ON t_zh.update_author = updt_role.id_role
LEFT JOIN utilisateurs.bib_organismes bib_org_user_updt on updt_role.id_organisme = bib_org_user_updt.id_organisme
LEFT JOIN pr_zh.bib_organismes bib_org USING (id_org) LEFT JOIN pr_zh.bib_organismes bib_org USING (id_org)
LEFT JOIN habitats USING (zh_uuid) LEFT JOIN habitats USING (zh_uuid)
LEFT JOIN crit_delim USING (zh_uuid) LEFT JOIN crit_delim USING (zh_uuid)
LEFT JOIN esp_fs USING (zh_uuid) LEFT JOIN esp_fs USING (zh_uuid)
LEFT JOIN activ_hum USING (zh_uuid) LEFT JOIN activ_hum USING (zh_uuid)
--LEFT JOIN activ_hum_test USING (zh_uuid)
LEFT JOIN inflow USING (zh_uuid) LEFT JOIN inflow USING (zh_uuid)
LEFT JOIN outflow USING (zh_uuid) LEFT JOIN outflow USING (zh_uuid)
LEFT JOIN functions USING (zh_uuid) LEFT JOIN functions USING (zh_uuid)
@ -317,11 +355,37 @@ LEFT JOIN actions USING (id_zh)
LEFT JOIN zh_area_com USING (id_zh) LEFT JOIN zh_area_com USING (id_zh)
LEFT JOIN dep USING (id_zh) LEFT JOIN dep USING (id_zh)
LEFT JOIN inventaire USING (id_zh) LEFT JOIN inventaire USING (id_zh)
'''
sql_zh_all = '''
DROP VIEW IF EXISTS gn_exports.v_synthese_zones_humides;
CREATE VIEW gn_exports.v_synthese_zones_humides AS
''' + sql0 + '''
--group BY zh_uuid --group BY zh_uuid
WHERE code not like '38CENIS%%' WHERE code not like '38CENIS%%'
AND ref_nomenclatures.get_cd_nomenclature(id_sdage)::int > 0
--id_sdage > 0
order by code order by code
; ;
''' '''
with con_gn.begin() as cnx: with con_gn.begin() as cnx:
cnx.execute(sql) cnx.execute(sql_zh_all)
sql_zh_38 = '''
DROP VIEW IF EXISTS gn_exports.v_synthese_zones_humides_isere;
CREATE VIEW gn_exports.v_synthese_zones_humides_isere AS
''' + sql0 + '''
--group BY zh_uuid
WHERE code not like '38CENIS%%'
AND dep.departement::jsonb @> '"Isère"'
AND ref_nomenclatures.get_cd_nomenclature(id_sdage)::int > 0
order by code
;
'''
with con_gn.begin() as cnx:
cnx.execute(sql_zh_38)

View File

@ -1,236 +0,0 @@
from pycen import con_gn
sql = '''
DROP VIEW IF EXISTS gn_exports.v_synthese_zones_humides_isere;
CREATE VIEW gn_exports.v_synthese_zones_humides_isere AS
with habitats as (
SELECT
zh_uuid,
array_agg(lb_code) AS habitats
FROM pr_zh.t_zh
LEFT JOIN pr_zh.cor_zh_cb USING (id_zh)
group by 1 order by 1
), crit_delim as (
SELECT
zh_uuid,
array_agg(ref_nomenclatures.get_nomenclature_label(cor_lim_list.id_lim)) AS crit_delim
FROM pr_zh.t_zh
LEFT JOIN pr_zh.cor_lim_list USING (id_lim_list)
group by 1 order by 1
), esp_fs as (
SELECT
zh_uuid,
array_agg(ref_nomenclatures.get_nomenclature_label(cor_zh_lim_fs.id_lim_fs)) AS crit_esp_fs
FROM pr_zh.t_zh
LEFT JOIN pr_zh.cor_zh_lim_fs USING (id_zh)
group by 1 order by 1
), activ_hum AS (
WITH v_activity AS (
SELECT
id_zh,
array_agg(ref_nomenclatures.get_nomenclature_label(cor_impact_types.id_impact)) impacts
FROM pr_zh.t_activity
LEFT JOIN pr_zh.cor_impact_list USING (id_impact_list)
LEFT JOIN pr_zh.cor_impact_types USING (id_cor_impact_types)
group by 1 order by 1
)
SELECT
zh_uuid,
json_agg(json_build_object(
'activite', ref_nomenclatures.get_nomenclature_label(t_activity.id_activity),
'position', ref_nomenclatures.get_nomenclature_label(t_activity.id_position),
'impact', v_activity.impacts,
'rmq_activ', t_activity.remark_activity
)) AS activ_hum
FROM pr_zh.t_zh
LEFT JOIN pr_zh.t_activity USING (id_zh)
LEFT JOIN v_activity USING (id_zh)
group by zh_uuid order by 1
), inflow as (
SELECT
zh_uuid,
json_agg(json_build_object(
'entree_eau', ref_nomenclatures.get_nomenclature_label(t_inflow.id_inflow),
'perm', ref_nomenclatures.get_nomenclature_label(t_inflow.id_permanance),
'topo', t_inflow.topo
)) AS entree_eau
FROM pr_zh.t_zh
LEFT JOIN pr_zh.t_inflow USING (id_zh)
group by zh_uuid
), outflow as (
SELECT
zh_uuid,
json_agg(json_build_object(
'sortie_eau', ref_nomenclatures.get_nomenclature_label(t_outflow.id_outflow),
'perm', ref_nomenclatures.get_nomenclature_label(t_outflow.id_permanance),
'topo', t_outflow.topo
)) AS sortie_eau
FROM pr_zh.t_zh
LEFT JOIN pr_zh.t_outflow USING (id_zh)
group by zh_uuid
), functions as (
WITH hydro as (
SELECT
zh_uuid,
json_agg(json_build_object(
'fonctions', ref_nomenclatures.get_nomenclature_label(t_functions.id_function),
'qualification', ref_nomenclatures.get_nomenclature_label(t_functions.id_qualification),
'connaissance', ref_nomenclatures.get_nomenclature_label(t_functions.id_knowledge),
'justification', t_functions.justification
)) AS hydro
FROM pr_zh.t_zh
LEFT JOIN pr_zh.t_functions USING (id_zh)
WHERE id_function IN (
SELECT
id_nomenclature
FROM ref_nomenclatures.t_nomenclatures
JOIN ref_nomenclatures.bib_nomenclatures_types bib USING (id_type)
WHERE bib.mnemonique = 'FONCTIONS_HYDRO')
group by zh_uuid
), bio as (
SELECT
zh_uuid,
json_agg(json_build_object(
'fonctions', ref_nomenclatures.get_nomenclature_label(t_functions.id_function),
'qualification', ref_nomenclatures.get_nomenclature_label(t_functions.id_qualification),
'connaissance', ref_nomenclatures.get_nomenclature_label(t_functions.id_knowledge),
'justification', t_functions.justification
)) AS bio
FROM pr_zh.t_zh
LEFT JOIN pr_zh.t_functions USING (id_zh)
WHERE id_function IN (
SELECT
id_nomenclature
FROM ref_nomenclatures.t_nomenclatures
JOIN ref_nomenclatures.bib_nomenclatures_types bib USING (id_type)
WHERE bib.mnemonique = 'FONCTIONS_BIO')
group by zh_uuid
), int_patrim as (
SELECT
zh_uuid,
json_agg(json_build_object(
'fonctions', ref_nomenclatures.get_nomenclature_label(t_functions.id_function),
'qualification', ref_nomenclatures.get_nomenclature_label(t_functions.id_qualification),
'connaissance', ref_nomenclatures.get_nomenclature_label(t_functions.id_knowledge),
'justification', t_functions.justification
)) AS int_patrim
FROM pr_zh.t_zh
LEFT JOIN pr_zh.t_functions USING (id_zh)
WHERE id_function IN (
SELECT
id_nomenclature
FROM ref_nomenclatures.t_nomenclatures
JOIN ref_nomenclatures.bib_nomenclatures_types bib USING (id_type)
WHERE bib.mnemonique = 'INTERET_PATRIM')
group by zh_uuid
), val_socio as (
SELECT
zh_uuid,
json_agg(json_build_object(
'fonctions', ref_nomenclatures.get_nomenclature_label(t_functions.id_function),
'qualification', ref_nomenclatures.get_nomenclature_label(t_functions.id_qualification),
'connaissance', ref_nomenclatures.get_nomenclature_label(t_functions.id_knowledge),
'justification', t_functions.justification
)) AS val_socio
FROM pr_zh.t_zh
LEFT JOIN pr_zh.t_functions USING (id_zh)
WHERE id_function IN (
SELECT
id_nomenclature
FROM ref_nomenclatures.t_nomenclatures
JOIN ref_nomenclatures.bib_nomenclatures_types bib USING (id_type)
WHERE bib.mnemonique = 'VAL_SOC_ECO')
group by zh_uuid
)
SELECT
zh_uuid,
hydro.hydro,
bio.bio,
int_patrim.int_patrim,
val_socio.val_socio
FROM pr_zh.t_zh
LEFT JOIN hydro USING (zh_uuid)
LEFT JOIN bio USING (zh_uuid)
LEFT JOIN int_patrim USING (zh_uuid)
LEFT JOIN val_socio USING (zh_uuid)
--group by zh_uuid
), especes as (
SELECT
zh_uuid,
(select distinct count(vm_flora.cd_nom) from pr_zh.vm_flora where id_zh = t.id_zh) nb_flora,
(select distinct count(vm_vertebrates.cd_nom) from pr_zh.vm_vertebrates where id_zh = t.id_zh) nb_vertebrates,
(select distinct count(vm_invertebrates.cd_nom) from pr_zh.vm_invertebrates where id_zh = t.id_zh) nb_invertebrates
--count(vm_vertebrates.cd_nom) nb_vertebrates,
--count(vm_invertebrates.cd_nom) nb_invertebrates
FROM pr_zh.t_zh t
--GROUP BY zh_uuid
)
SELECT
zh_uuid,
code,
main_name,
CONCAT(crea_role.nom_role, ' ', crea_role.prenom_role) crea_author,
CONCAT(updt_role.nom_role, ' ', updt_role.prenom_role) updt_author,
bib_org.name organisme,
create_date crea_date,
update_date updt_date,
geom,
area surface,
ref_nomenclatures.get_nomenclature_label(id_sdage) sdage,
ref_nomenclatures.get_nomenclature_label(id_sage) sage,
habitats.habitats,
remark_pres descript,
crit_delim.crit_delim,
remark_lim rmq_delilm,
esp_fs.crit_esp_fs,
remark_lim_fs rmq_esp_fs,
ef_area,
v_habref v_hab,
activ_hum.activ_hum,
ref_nomenclatures.get_nomenclature_label(id_thread) bilan_menace,
inflow.entree_eau,
outflow.sortie_eau,
ref_nomenclatures.get_nomenclature_label(id_frequency) freq_sub,
ref_nomenclatures.get_nomenclature_label(id_spread) extend_sub,
ref_nomenclatures.get_nomenclature_label(id_connexion) connex,
ref_nomenclatures.get_nomenclature_label(id_diag_hydro) diag_hydro,
ref_nomenclatures.get_nomenclature_label(id_diag_bio) diag_bio,
functions.hydro,
functions.bio,
functions.int_patrim,
functions.val_socio,
remark_eval_functions eval_fcts,
remark_eval_heritage eval_heritage,
remark_eval_thread eval_menace,
remark_eval_actions eval_actions,
ref_nomenclatures.get_nomenclature_label(id_strat_gestion) strat_gestion,
remark_diag rmq_gestion,
--is_other_inventory,
--is_carto_hab,
--nb_hab,
--total_hab_cover,
especes.nb_flora nb_flora_sp,
especes.nb_vertebrates nb_vertebrate_sp,
especes.nb_invertebrates nb_invertebrate_sp
--remark_is_other_inventory
FROM pr_zh.t_zh
JOIN utilisateurs.t_roles crea_role ON t_zh.create_author = crea_role.id_role
LEFT JOIN utilisateurs.t_roles updt_role ON t_zh.update_author = updt_role.id_role
LEFT JOIN pr_zh.bib_organismes bib_org USING (id_org)
LEFT JOIN habitats USING (zh_uuid)
LEFT JOIN crit_delim USING (zh_uuid)
LEFT JOIN esp_fs USING (zh_uuid)
LEFT JOIN activ_hum USING (zh_uuid)
LEFT JOIN inflow USING (zh_uuid)
LEFT JOIN outflow USING (zh_uuid)
LEFT JOIN functions USING (zh_uuid)
LEFT JOIN especes USING (zh_uuid)
--group BY zh_uuid
WHERE code not like '38CENIS%%' AND code like '38%%'
order by code
;
'''
with con_gn.begin() as cnx:
cnx.execute(sql)

View File

@ -2,7 +2,7 @@ from pycen import con_gn,update_to_sql
from os import path from os import path
import geopandas as gpd import geopandas as gpd
PATH = '/media/colas/SRV/FICHIERS' PATH = '/media/cgeier/SRV/FICHIERS'
FILE = 'OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/ETUDES/Zones humides/ACTUALISATION 2024/BE EPODE - LEZE/KIT INVENTAIRE38 MODIFIE/a envoyer prêt/GEOM/38CG0105_Epode2025 (à intégrer).gpkg' FILE = 'OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/ETUDES/Zones humides/ACTUALISATION 2024/BE EPODE - LEZE/KIT INVENTAIRE38 MODIFIE/a envoyer prêt/GEOM/38CG0105_Epode2025 (à intégrer).gpkg'
tmp = (gpd.read_file(path.join(PATH, FILE)) tmp = (gpd.read_file(path.join(PATH, FILE))

View File

@ -4,8 +4,8 @@ import geopandas as gpd
from pycen import con_gn, update_to_sql from pycen import con_gn, update_to_sql
from os import path from os import path
PATH = '/media/colas/SRV/' PATH = '/media/cgeier/SRV/FICHIERS'
FILE = 'FICHIERS/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/ETUDES/Zones humides/diag_zh_GAM/ZH_Séchilienne/zh_sapey.gpkg' FILE = 'OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/ETUDES/Zones humides/diag_zh_GAM/ZH_Séchilienne/zh_sapey.gpkg'
df = (gpd.read_file(path.join(PATH, FILE)) df = (gpd.read_file(path.join(PATH, FILE))
.rename(columns={'code_zh':'code'}) .rename(columns={'code_zh':'code'})
.rename_geometry('geom')) .rename_geometry('geom'))

View File

@ -1,7 +1,7 @@
import geopandas as gpd import geopandas as gpd
import os import os
PATH = '/media/colas/SRV/FICHIERS/SITES/SITES GERES/CHAR_CHARVAS/Scientifique-technique/Faune/AMPHIBIENS' PATH = '/media/cgeier/SRV/FICHIERS/SITES/SITES GERES/CHAR_CHARVAS/Scientifique-technique/Faune/AMPHIBIENS'
file = 'Inventaires amphibiens Charvas 2011.xlsx' file = 'Inventaires amphibiens Charvas 2011.xlsx'

View File

@ -43,7 +43,7 @@ dict_taxo2 = {
if __name__ == "__main__": if __name__ == "__main__":
PATH = '/media/colas/Disk2/tmp' PATH = '/media/cgeier/Disk2/tmp'
file = '(RNN Platière) Inventaire Bryophytes L93.csv' file = '(RNN Platière) Inventaire Bryophytes L93.csv'
file_out = '(RNN Platière) Inventaire Bryophytes L93 (correct cdnom).csv' file_out = '(RNN Platière) Inventaire Bryophytes L93 (correct cdnom).csv'
df = pd.read_csv(os.path.join(PATH,file),encoding='Windows-1252',sep=';') df = pd.read_csv(os.path.join(PATH,file),encoding='Windows-1252',sep=';')

View File

@ -11,7 +11,7 @@ def get_synthese(con,lst):
return pd.read_sql_query(sql,con) return pd.read_sql_query(sql,con)
if __name__ == "__main__": if __name__ == "__main__":
PATH = '/media/colas/SRV/homer_geonat/home/geonatureadmin/taxhub/tmp' PATH = '/media/cgeier/SRV/homer_geonat/home/geonatureadmin/taxhub/tmp'
file = 'liste_changements.csv' file = 'liste_changements.csv'
chgt = pd.read_csv(os.path.join(PATH,file)) chgt = pd.read_csv(os.path.join(PATH,file))

View File

@ -87,7 +87,7 @@ if __name__ == "__main__":
module_name = "chiro" module_name = "chiro"
id_tax_list = 100 # taxons occtax id_tax_list = 100 # taxons occtax
PATH = '/media/colas/SRV/homer_geonat/home/geonatureadmin/protocoles_suivi/{mod}/odk_form/'.format(mod=module_name) PATH = '/media/cgeier/SRV/homer_geonat/home/geonatureadmin/protocoles_suivi/{mod}/odk_form/'.format(mod=module_name)
PATH = '/home/colas/Documents/9_PROJETS/6_GEONATURE/MODULES/ODK/test/CHIRO/' PATH = '/home/colas/Documents/9_PROJETS/6_GEONATURE/MODULES/ODK/test/CHIRO/'
csv_site_name = 'gn_sites.csv' csv_site_name = 'gn_sites.csv'
csv_jdd_name = 'gn_jdds.csv' csv_jdd_name = 'gn_jdds.csv'

View File

@ -4,7 +4,7 @@ from pycen import con_gn
NAME_OUT = '/home/colas/Documents/tmp/v_bdc_status2.xlsx' NAME_OUT = '/home/colas/Documents/tmp/v_bdc_status2.xlsx'
FileIn = '/media/colas/SRV/FICHIERS/TRANSFERTS-EQUIPE/CG/BDC_STATUTS_15.xls' FileIn = '/media/cgeier/SRV/FICHIERS/TRANSFERTS-EQUIPE/CG/BDC_STATUTS_15.xls'
db = False db = False
if db : if db :

View File

@ -24,6 +24,7 @@ def get_status(lst,con):
t.nom_valide, t.nom_valide,
t.lb_nom, t.lb_nom,
--s.* --s.*
s.cd_sig,
s.rq_statut, s.rq_statut,
s.code_statut, s.code_statut,
s.cd_type_statut, s.cd_type_statut,
@ -202,12 +203,65 @@ def get_taxon_status(lst,api):
} }
return pd.DataFrame({**phylo,**cd_status}) return pd.DataFrame({**phylo,**cd_status})
def filter_bio_geo(df,zone_bio):
idNotBioGeo = []
# Filtre du dommaine biogeographique sur la plaine Rhodanienne et Alpine
test_rhod = df.rq_statut.str.contains('rhodanienne : Non déterminante',na=False)
test_alpi = df.rq_statut.str.contains('Alpine : Non déterminante',na=False)
if zone_bio == 'rhod':
idNotBioGeo = df[test_rhod].index
elif zone_bio == 'alpi':
idNotBioGeo = df[test_alpi].index
elif zone_bio == 'all':
idNotBioGeo = df[test_rhod&test_alpi].index
if not idNotBioGeo.empty:
df.drop(idNotBioGeo, inplace=True)
return df
def form_territoire(df,terr):
is_dep = df.cd_sig.str.contains('INSEED')
dep = (
['38','42','07','26'] if terr == 'platiere' else
['38','69','01'] if terr == 'negria' else ['38']
)
keep_not = df[is_dep&(~df.cd_sig.str[-2:].isin(dep))].index
df.drop(keep_not,inplace=True)
is_dep = df.cd_sig.str.contains('INSEED')
is_38 = df.cd_sig=='INSEED38'
if terr == 'isere':
filter_id = df[is_dep&(~is_38)].index
df.drop(filter_id,inplace=True)
else:
lst_stat = df[is_dep&(~is_38)].cd_type_statut.unique()
# is_lst = df.cd_type_statut.isin(lst_stat)
df.loc[is_dep&(~is_38),'cd_type_statut'] = ( df[is_dep&(~is_38)]
.cd_type_statut + '_' + df[is_dep&(~is_38)].cd_sig.str.strip('INSEED')
)
df.loc[is_38,'cd_type_statut'] = ( df[is_38]
.cd_type_statut + '_38'
)
return df
dict_dep = { dict_dep = {
'38':'Isère', '38':'Isère',
'42':'Loire', '42':'Loire',
'07':'Ardèche', '07':'Ardèche',
'26':'Drôme', '26':'Drôme',
} }
cols_rename = {
'nom_vernaculaire': 'nom_vern'
}
if __name__ == "__main__": if __name__ == "__main__":
@ -217,21 +271,35 @@ if __name__ == "__main__":
api_taxref = 'https://geonature.cen-isere.fr/taxhub/api/taxref' api_taxref = 'https://geonature.cen-isere.fr/taxhub/api/taxref'
# Paramètres de chargement du fichier des taxons # Paramètres de chargement du fichier des taxons
PATH0 = '/media/colas/SRV/FICHIERS' PATH0 = '/home/cgeier/Téléchargements'
PATH = 'SITES/SITES GERES/PLAN_PLANCHETTES/Scientifique et technique/Flore et habitats/Suivi flore patrimoniale 2025' PATH = ''
file = 'donnes_sp_suivi2025.xlsx' file = 'synthese_observations_2026-04-23.xlsx'
sheet = 'liste sp' sheet = 'observations'
zone_bio_znieff = 'rhod' # ['rhod', 'alpi', 'all']
territoire = 'negria' # ['isere', 'platiere','negria']
# [GEOMETRY PARAMS]
keep_geomtype = None # ['polygon', 'point', 'ligne', None]
geom_col = 'geometrie_wkt_4326'
# Liste des CD_NOM en entrée # Liste des CD_NOM en entrée
cd_col = 'cd_ref' # Nom de la colonne à utiliser dans le feuillet ``sheet`` cd_col = 'cd_nom' # Nom de la colonne à utiliser dans le feuillet ``sheet``
# Lecture des données # Lecture des données
taxlist = pd.read_excel(os.path.join(PATH0,PATH,file),sheet,usecols=[cd_col],header=0) taxlist = pd.read_excel(os.path.join(PATH0,PATH,file),sheet,usecols=[cd_col],header=0)
tab_sp = pd.read_excel(os.path.join(PATH0,PATH,file),sheet,index_col=cd_col) tab_sp = pd.read_excel(os.path.join(PATH0,PATH,file),sheet,index_col=cd_col)
tab_sp.rename(columns=cols_rename,inplace=True)
# Exclusion d'un type de géométrie
if keep_geomtype is not None:
as_geom = tab_sp[geom_col].str.contains(keep_geomtype.upper(),na=False)
tab_sp = tab_sp[as_geom]
taxlist = taxlist[taxlist.cd_nom.isin(tab_sp.index.tolist())]
lst = taxlist[cd_col] lst = taxlist[cd_col]
# Récupération des statuts # Récupération des statuts
df = get_status(taxlist[cd_col].astype(str),con_gn) df = get_status(taxlist[cd_col].astype(str).unique(),con_gn)
typ = get_type_status(con_gn) typ = get_type_status(con_gn)
typ = typ[typ.cd_type_statut.isin(df.cd_type_statut.unique())] typ = typ[typ.cd_type_statut.isin(df.cd_type_statut.unique())]
@ -241,32 +309,70 @@ if __name__ == "__main__":
df.loc[is_lrr & (df.niveau_admin == 'Ancienne région'),'cd_type_statut'] = 'LRR_RA' df.loc[is_lrr & (df.niveau_admin == 'Ancienne région'),'cd_type_statut'] = 'LRR_RA'
del df['niveau_admin'] del df['niveau_admin']
for c in ['cd_ref','cd_nom','lb_nom']: # Filtre du dommaine biogeographique sur la plaine Rhodanienne et Alpine
if c in tab_sp.columns: df = filter_bio_geo(df,zone_bio_znieff)
# if 'cd_nom' not in df.columns and c == 'cd_ref': continue
tab_sp.drop(c,axis=1,inplace=True)
pivot = pd.pivot_table( # Filtre des statuts vis à vis du territoire d'intérêts
# Conservation des statuts Adrèche, Drôme et Loire pour la Platière
df = form_territoire(df,territoire)
# for c in ['cd_ref','cd_nom','lb_nom']:
# if c in tab_sp.columns:
# # if 'cd_nom' not in df.columns and c == 'cd_ref': continue
# tab_sp.drop(c,axis=1,inplace=True)
keep_cols = same_col = df.columns[df.columns.isin(tab_sp.reset_index(drop=False).columns)]
as_vern = keep_cols.str.contains('vern').any()
as_numb = keep_cols.str.contains('nombre').any()
if not as_vern:
keep_cols = [*keep_cols,'nom_vern']
if not as_numb:
keep_cols = [*keep_cols,'nombre_min','nombre_max']
else:
same_col = [x for x in keep_cols if x not in ['nombre_min','nombre_max']]
piv = pd.pivot_table(
df, df,
values='code_statut', values='code_statut',
index=['cd_nom', 'cd_ref','lb_nom'#,'niveau_admin','lb_adm_tr' index=['cd_nom', 'cd_ref','lb_nom','nom_vern'#,'niveau_admin','lb_adm_tr'
], ],
columns=['cd_type_statut'], columns=['cd_type_statut'],
aggfunc=list,fill_value=None) aggfunc=list,fill_value=None)
for c in pivot.columns: for c in piv.columns:
pivot[c] = [x[0] if x is not np.NaN and len(x)==1 else x for x in pivot[c]] piv[c] = [x[0] if x is not np.NaN and len(x)==1 else x for x in piv[c]]
if 'DH' in pivot.columns: if 'DH' in piv.columns:
pivot['DH'] = [','.join(x) if (x is not np.NaN) and (len(x)==2) else x for x in pivot['DH']] piv['DH'] = [','.join(x) if (x is not np.NaN) and (len(x)==2) else x for x in piv['DH']]
pivot.DH.replace({'CDH':''},regex=True,inplace=True) piv.DH.replace({'CDH':''},regex=True,inplace=True)
# piv.reset_index(-1, inplace=True)
pivot = tab_sp.merge(pivot,on=[cd_col],how='left') # tabsp_nb = tab_sp.reset_index(drop=False)[[*same_col,'nombre_min','nombre_max']].groupby([*same_col]).sum()
tabsp_nb = (
tab_sp.reset_index(drop=False)[same_col]
.drop_duplicates()
.merge(
tab_sp.reset_index(drop=False)[[cd_col,'nombre_min','nombre_max','date_debut','date_fin']]
.groupby([cd_col])
.agg({
'nombre_min':'sum',
'nombre_max':'sum',
'date_debut':'min',
'date_fin':'max'
}),
on = cd_col
)
)
tabsp_nb.set_index(cd_col,inplace=True)
tabsp_nb.sort_index(inplace=True)
# pivot = tab_sp.merge(piv,on=[cd_col],how='left')
pivot = tabsp_nb.merge(piv,on=[cd_col],how='left')
pivlib = pd.pivot_table( pivlib = pd.pivot_table(
df, df,
values='label_statut', values='label_statut',
index=[ index=[
'cd_nom', 'cd_ref','lb_nom'#,'niveau_admin','lb_adm_tr' 'cd_nom', 'cd_ref','lb_nom','nom_vern'#,'niveau_admin','lb_adm_tr'
], ],
columns=['cd_type_statut'], columns=['cd_type_statut'],
aggfunc=list,fill_value=None) aggfunc=list,fill_value=None)
@ -276,10 +382,18 @@ if __name__ == "__main__":
pivlib['DH'] = [','.join(x) if (x is not np.NaN) and (len(x)==2) else x for x in pivlib['DH']] pivlib['DH'] = [','.join(x) if (x is not np.NaN) and (len(x)==2) else x for x in pivlib['DH']]
pivlib.DH.replace({'CDH':''},regex=True,inplace=True) pivlib.DH.replace({'CDH':''},regex=True,inplace=True)
pivlib = tab_sp.merge(pivlib,on=[cd_col],how='left') # pivlib = tab_sp.merge(pivlib,on=[cd_col],how='left')
pivotlib = tabsp_nb.merge(pivlib,on=[cd_col],how='left')
tx_nb_missing = df[~df.cd_nom.isin(tabsp_nb.index)].shape[0]
if tx_nb_missing > 0:
print('WARNING : %i taxon(s) is MISING !! \n'%tx_nb_missing)
print('INIT writer') print('INIT writer')
NAME_OUT = os.path.join(PATH0,PATH,sheet+'_status.xlsx') NAME_OUT = os.path.join('~/',sheet+'_status.xlsx')
if keep_geomtype is not None:
NAME_OUT = NAME_OUT[:-5]+' (%s only).xlsx'%keep_geomtype.lower()
with pd.ExcelWriter(NAME_OUT) as writer: with pd.ExcelWriter(NAME_OUT) as writer:
df.to_excel( df.to_excel(
writer,sheet_name='v_bdc_status',index=False writer,sheet_name='v_bdc_status',index=False
@ -291,7 +405,7 @@ if __name__ == "__main__":
) )
# writer.save() # writer.save()
print('pivot_table OK !') print('pivot_table OK !')
pivlib.to_excel( pivotlib.to_excel(
writer,sheet_name='pivot_libel' writer,sheet_name='pivot_libel'
) )
# writer.save() # writer.save()
@ -301,3 +415,5 @@ if __name__ == "__main__":
) )
# writer.save() # writer.save()
print('dic_type_statut OK !') print('dic_type_statut OK !')
print('END writing %s'%NAME_OUT)

View File

@ -0,0 +1,98 @@
import geopandas as gpd
from pycen import con_gn
uuid_gn38 = gpd.pd.read_sql('SELECT unique_id_sinp uuid_perm_sinp FROM gn_synthese.synthese',con_gn)
lst_gn38 = uuid_gn38.uuid_perm_sinp.astype(str).tolist()
PATH = '/media/cgeier/SRV/FICHIERS'
biodiv = gpd.read_file(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/0.Données transmises/BiodivAura_Synthese_Export_2026-04-21.geojson')
cenra_point = gpd.read_file(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/0.Données transmises/CENRA_20260421_gn_export_lones_cen38.gpkg',layer = 'points')
cenra_poly = gpd.read_file(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/0.Données transmises/CENRA_20260421_gn_export_lones_cen38.gpkg',layer = 'polygones')
# synt = gpd.pd.read_csv(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/0.Données transmises/synthese_observations_2025-04-24T12_11_45.488Z (completer).csv',sep=',')
# synt['code_com'] = synt.communes.str.split('(',expand=True)[1].str[:5]
# synt['code_dep'] = synt.communes.str.split('(',expand=True)[1].str[:2]
# synt.nombre_min = synt.nombre_min.astype(str).str.strip('.0').replace('nan',None)
# synt.nombre_max = synt.nombre_max.astype(str).str.strip('.0').replace('nan',None)
# synt.precision_geographique = synt.precision_geographique.astype(str).str.strip('.0').replace('nan',None)
# synt.alti_min = synt.alti_min.astype(str).str.strip('.0').replace('nan',None)
for cenra in [cenra_point,cenra_poly]:
test_nb_cenra = cenra.nombre_min.astype('float') > cenra.nombre_max.astype('float')
if test_nb_cenra.any():
cenra.loc[test_nb_cenra,'nb_tmp'] = cenra[test_nb_cenra].nombre_min
cenra.loc[test_nb_cenra,'nombre_min'] = cenra[test_nb_cenra].nombre_max
cenra.loc[test_nb_cenra,'nombre_max'] = cenra[test_nb_cenra].nb_tmp
cenra.drop(columns='nb_tmp',inplace=True)
# cenra.nombre_min = cenra.nombre_min.astype(str).str.strip('.0').replace('nan',None)
# cenra.nombre_max = cenra.nombre_max.astype(str).str.strip('.0').replace('nan',None)
cenra.profondeur_min = cenra.profondeur_min.astype(str).str.strip('.0').replace('nan',None)
cenra.profondeur_max = cenra.profondeur_max.astype(str).str.strip('.0').replace('nan',None)
cenra.precision = cenra.precision.astype(str).str.strip('.0').replace('nan',None)
cenra.code_habitat = cenra.code_habitat.astype(str).str.strip('.0').replace('nan',None)
# cenra.altitude_min = cenra.altitude_min.astype(str).str.strip('.0').replace('nan',None)
# cenra.altitude_max = cenra.altitude_max.astype(str).str.strip('.0').replace('nan',None)
cenra.precision_diffusion.fillna('Non déterminé', inplace=True)
# synt_l93 = synt[synt.x_centroid_4326>500000]
# synt_l93_geom = gpd.GeoDataFrame(synt_l93,geometry=gpd.geoseries.points_from_xy(synt_l93.x_centroid_4326,synt_l93.y_centroid_4326),crs=2154)
# synt_l93_geom.to_crs(4326,inplace=True)
# synt_l93_geom.x_centroid_4326 = synt_l93_geom.geometry.x
# synt_l93_geom.y_centroid_4326 = synt_l93_geom.geometry.y
# synt_w84 = synt[synt.x_centroid_4326<500000]
# synt = gpd.pd.concat([synt_l93_geom,synt_w84])
biodiv.nombre_min = biodiv.nombre_min.astype(str).str.strip('.0').replace('nan',None).replace('',None)
biodiv.nombre_max = biodiv.nombre_max.astype(str).str.strip('.0').replace('nan',None).replace('',None)
biodiv.alti_min = biodiv.alti_min.astype(str).str.strip('.0').replace('nan',None)
biodiv.precision_geographique = biodiv.precision_geographique.astype(str).str.strip('.0').replace('nan',None)
biodiv.observateurs.fillna('Inconnu', inplace=True)
biodiv.stade_vie.fillna('Inconnu', inplace=True)
biodiv.loc[biodiv.cd_ref == 1078938, 'cd_ref'] = 5289 # Geheebia lurida (Hornsch. ex Spreng.) J.A.Jiménez & M.J.Cano, 2021
biodiv.loc[biodiv.cd_ref == 1049429, 'cd_ref'] = 108898 # Muscari neglectum Guss. ex Ten. & Sangiov., 1841
test_nb_biodiv = biodiv.nombre_min.astype('float') > biodiv.nombre_max.astype('float')
if test_nb_biodiv.any():
biodiv.loc[test_nb_biodiv,'nb_tmp'] = biodiv[test_nb_biodiv].nombre_min
biodiv.loc[test_nb_biodiv,'nombre_min'] = biodiv[test_nb_biodiv].nombre_max
biodiv.loc[test_nb_biodiv,'nombre_max'] = biodiv[test_nb_biodiv].nb_tmp
biodiv.drop(columns='nb_tmp',inplace=True)
lst_cenra = [
*cenra_point.id_perm_sinp.tolist(),
*cenra_poly.id_perm_sinp.tolist()
]
# synt = synt[~synt.uuid_perm_sinp.isin(lst_cenra)]
biodiv = biodiv[~biodiv.uuid_perm_sinp.isin(lst_cenra)]
biodiv = biodiv[~biodiv.uuid_perm_sinp.isin(lst_cenra)]
# lst_synt = synt.uuid_perm_sinp.tolist()
lst_biodiv = biodiv.uuid_perm_sinp.tolist()
# biodiv = biodiv[~biodiv.uuid_perm_sinp.isin(lst_synt)]
biodiv = biodiv[~biodiv.uuid_perm_sinp.isin(lst_gn38)]
# synt[~synt.uuid_perm_sinp.isin(lst_biodiv)]
from shapely.geometry import shape
import json
biodiv['geom'] = biodiv.apply(lambda row: shape(json.loads(row['geojson_4326'])), axis=1).set_crs(4326)
biodiv.set_geometry('geom',inplace=True)
biodiv.drop(columns='geometry',inplace=True)
biodiv['geom_4326'] = biodiv.geom.to_wkt()
gpd.pd.concat([cenra_point,cenra_poly]).to_csv(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/1.Données nettoyées/CENRA_20260421_gn_export_lones_cen38.csv',index=False)
# cenra.to_csv(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/1.Données nettoyées/CENRA_synthese_observations_geonature_2026-03-16T15_25_59.351Z.csv',index=False)
# synt.to_csv(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/1.Données nettoyées/synthese_observations_2025-04-24T12_11_45.488Z.csv',index=False)
biodiv.to_csv(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/1.Données nettoyées/BiodivAura_Synthese_Export_2026-04-21.csv',index=False)
gpd.pd.concat([cenra_point,cenra_poly]).to_file(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/1.Données nettoyées/CENRA_20260421_gn_export_lones_cen38.geojson',index=False)
# cenra.to_file(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/1.Données nettoyées/CENRA_synthese_observations_geonature_2026-03-16T15_25_59.351Z.geojson',index=False)
# synt.to_file(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/1.Données nettoyées/synthese_observations_2025-04-24T12_11_45.488Z.geojson',index=False)
# synt_geom = gpd.GeoDataFrame(synt,geometry=gpd.geoseries.points_from_xy(synt.x_centroid_4326,synt.y_centroid_4326),crs=4326)
# synt_geom.to_file(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/1.Données nettoyées/synthese_observations_2025-04-24T12_11_45.488Z.geojson',index=False)
biodiv.to_file(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/1.Données nettoyées/BiodivAura_Synthese_Export_2026-04-21.geojson',index=False)

View File

@ -0,0 +1,64 @@
CREATE OR REPLACE VIEW gn_exports.v_synthese_sinp_acquisition_flore_with_metadata_for_gn2pg AS
WITH af_actors AS
(SELECT cafa.*
FROM gn_meta.cor_acquisition_framework_actor cafa
LEFT JOIN utilisateurs.bib_organismes borg ON cafa.id_organism = borg.id_organisme
WHERE borg.uuid_organisme = '5a433bd0-2070-25d9-e053-2614a8c026f8'::uuid
--OR borg.uuid_organisme = 'a3c44538-f22a-4134-9e21-28646a73986b'::uuid
), act AS
(SELECT *
FROM crosstab( 'SELECT id_acquisition_framework, id_nomenclature_actor_role, id_organism
FROM gn_meta.cor_acquisition_framework_actor
WHERE id_acquisition_framework = 1 OR id_acquisition_framework = 6
ORDER BY 1,2' , $$VALUES ('359'::text), ('361')$$ ) AS ct ("id_acquisition_framework" int, "Contact principal" int, "Producteur du jeu de données" int))
SELECT taf.id_acquisition_framework AS id_ca,
taf.unique_acquisition_framework_id AS id_sinp_ca,
taf.acquisition_framework_name AS libelle,
NULL::text AS cadre_acquisition_parent,
taf.acquisition_framework_desc AS description,
taf.keywords AS mots_cles,
ref1.label_default as niveau_territorial,
taf.territory_desc AS description_territoire,
ref2.label_default AS objectifs_cadre_acquisition,
ref4.label_default AS volet_SINP,
ref3.label_default AS type_financement,
taf.target_description AS description_cible,
to_char(taf.meta_create_date, 'DD-MM-YYYY')::date AS date_debut,
NULL::date AS date_fin,
ref5.nom_organisme AS acteur1_organisme,
NULL::text AS acteur1_personne_groupe,
'Contact principal' AS acteur1_type_role,
ref6.nom_organisme AS acteur2_organisme,
NULL::text AS acteur2_personne_groupe,
CASE
WHEN ref6.nom_organisme IS NOT NULL THEN 'Producteur du jeu de données'
ELSE NULL
END AS acteur2_type_role,
NULL::text AS acteur3_organisme,
NULL::text AS acteur3_personne_groupe,
NULL::text AS acteur3_type_role
FROM gn_meta.t_acquisition_frameworks taf
JOIN af_actors ON af_actors.id_acquisition_framework = taf.id_acquisition_framework
JOIN gn_meta.cor_acquisition_framework_objectif obj ON obj.id_acquisition_framework = taf.id_acquisition_framework
JOIN ref_nomenclatures.t_nomenclatures ref1 ON ref1.id_nomenclature = taf.id_nomenclature_territorial_level
JOIN ref_nomenclatures.t_nomenclatures ref2 ON ref2.id_nomenclature = obj.id_nomenclature_objectif
JOIN ref_nomenclatures.t_nomenclatures ref3 ON ref3.id_nomenclature = taf.id_nomenclature_financing_type
JOIN gn_meta.cor_acquisition_framework_voletsinp sinp ON sinp.id_acquisition_framework = taf.id_acquisition_framework
JOIN ref_nomenclatures.t_nomenclatures ref4 ON ref4.id_nomenclature = sinp.id_nomenclature_voletsinp
JOIN act ON act.id_acquisition_framework = taf.id_acquisition_framework
LEFT JOIN utilisateurs.bib_organismes ref5 ON ref5.id_organisme = act."Contact principal"
LEFT JOIN utilisateurs.bib_organismes ref6 ON ref6.id_organisme = act."Producteur du jeu de données"
GROUP BY taf.id_acquisition_framework,
taf.unique_acquisition_framework_id,
taf.acquisition_framework_name,
taf.acquisition_framework_desc,
taf.keywords,
ref1.label_default,
taf.territory_desc,
ref2.label_default,
ref4.label_default,
ref3.label_default,
taf.target_description,
to_char(taf.meta_create_date, 'DD-MM-YYYY')::date,
ref5.nom_organisme,
ref6.nom_organisme

View File

@ -0,0 +1,77 @@
CREATE OR REPLACE VIEW gn_exports.v_synthese_sinp_jeu_donnees_flore_with_metadata_for_gn2pg AS
WITH ds_actors AS (
SELECT cda.id_dataset,
borg.nom_organisme,
cda.id_role,
borg.uuid_organisme,
tro.nom_role,
tro.prenom_role,
borg.email_organisme,
tro.email
FROM gn_meta.cor_dataset_actor cda
LEFT JOIN utilisateurs.bib_organismes borg ON cda.id_organism = borg.id_organisme
LEFT JOIN utilisateurs.t_roles tro ON cda.id_role = tro.id_role
JOIN ref_nomenclatures.t_nomenclatures tn ON cda.id_nomenclature_actor_role = tn.id_nomenclature
-- WHERE borg.uuid_organisme = '5a433bd0-2070-25d9-e053-2614a8c026f8'::uuid
-- OR borg.uuid_organisme = 'a3c44538-f22a-4134-9e21-28646a73986b'::uuid
),
actor AS (
SELECT *
FROM crosstab( 'SELECT id_dataset, id_nomenclature_actor_role, id_organism
FROM gn_meta.cor_dataset_actor
ORDER BY 1,2' ,
$$VALUES ('359'), ('364'), ('365'), ('395')$$ ) AS ct ("id_dataset" int, "Contact principal" int, "Producteur du jeu de données" int, "Point de contact base de données de production" int, "Point de contact pour les métadonnées" int)
),
ds AS (
SELECT tds.id_dataset AS id_jdd,
tds.unique_dataset_id AS id_sinp_jdd,
acq.acquisition_framework_name AS cadre_acquisiton,
tds.dataset_name AS nom_jeu_donnees,
tds.dataset_shortname AS nom_court,
tds.dataset_desc AS description,
ndso.label_default AS objectif,
ncm.label_default AS methode_collecte,
ndo.label_default AS origine_donnees,
nss.label_default AS statut_source,
tds.keywords AS mots_cles,
act1.nom_organisme AS acteur1_organisme,
NULL::text AS acteur1_personne_groupe,
'Contact principal' AS acteur1_type_role,
act2.nom_organisme AS acteur2_organisme,
NULL::text AS acteur2_personne_groupe,
CASE
WHEN act2.nom_organisme IS NOT NULL THEN 'Producteur du jeu de données'
ELSE NULL
END AS acteur2_type_role,
act3.nom_organisme AS acteur3_organisme,
NULL::text AS acteur3_personne_groupe,
CASE
WHEN act3.nom_organisme IS NOT NULL THEN 'Point de contact base de données de production'
ELSE NULL
END AS acteur3_type_role,
act4.nom_organisme AS acteur4_organisme,
NULL::text AS acteur4_personne_groupe,
CASE
WHEN act4.nom_organisme IS NOT NULL THEN 'Point de contact pour les métadonnées'
ELSE NULL
END AS acteur4_type_role
FROM gn_meta.t_datasets tds
JOIN ds_actors ON ds_actors.id_dataset = tds.id_dataset
JOIN actor ON actor.id_dataset = tds.id_dataset
JOIN gn_meta.t_acquisition_frameworks acq ON tds.id_acquisition_framework = acq.id_acquisition_framework
LEFT JOIN gn_meta.cor_dataset_territory cdt ON cdt.id_dataset = tds.id_dataset
LEFT JOIN ref_nomenclatures.t_nomenclatures ndt ON tds.id_nomenclature_data_type = ndt.id_nomenclature
LEFT JOIN ref_nomenclatures.t_nomenclatures ncm ON tds.id_nomenclature_collecting_method = ncm.id_nomenclature
LEFT JOIN ref_nomenclatures.t_nomenclatures ndo ON tds.id_nomenclature_data_origin = ndo.id_nomenclature
LEFT JOIN ref_nomenclatures.t_nomenclatures ndso ON tds.id_nomenclature_dataset_objectif = ndso.id_nomenclature
LEFT JOIN ref_nomenclatures.t_nomenclatures nrt ON tds.id_nomenclature_resource_type = nrt.id_nomenclature
LEFT JOIN ref_nomenclatures.t_nomenclatures nss ON tds.id_nomenclature_source_status = nss.id_nomenclature
LEFT JOIN utilisateurs.bib_organismes act1 ON actor."Contact principal" = act1.id_organisme
LEFT JOIN utilisateurs.bib_organismes act2 ON actor."Producteur du jeu de données" = act2.id_organisme
LEFT JOIN utilisateurs.bib_organismes act3 ON actor."Point de contact base de données de production" = act3.id_organisme
LEFT JOIN utilisateurs.bib_organismes act4 ON actor."Point de contact pour les métadonnées" = act4.id_organisme
GROUP BY tds.id_dataset, acq.acquisition_framework_name, tds.unique_dataset_id, tds.dataset_name, tds.dataset_shortname, tds.dataset_desc, ndso.label_default, ncm.label_default, ndo.label_default, nss.label_default, ds_actors.nom_organisme, act1.nom_organisme, act2.nom_organisme, act3.nom_organisme, act4.nom_organisme
)
SELECT * FROM ds
--WHERE acteur1_organisme IN ('Conservatoire despaces naturels Isère')
;

1
9_PGSZH Submodule

@ -0,0 +1 @@
Subproject commit 250831edc17987766cb4ca2fb4370adca02a4a74

View File

@ -136,7 +136,7 @@ def make_plot(data):
if __name__ == "__main__": if __name__ == "__main__":
PATH = '/media/colas/SRV/FICHIERS/Délégués Personnel_CSE/6_Enquêtes/Enquêtes RPS' PATH = '/media/cgeier/SRV/FICHIERS/Délégués Personnel_CSE/6_Enquêtes/Enquêtes RPS'
file = 'Enquete_Nat_RPS_2023_CEN_ISERE.xlsx' file = 'Enquete_Nat_RPS_2023_CEN_ISERE.xlsx'
df = pd.read_excel(os.path.join(PATH,file)) df = pd.read_excel(os.path.join(PATH,file))

View File

@ -22,7 +22,7 @@ out = path_tmp + 'etandLong_MNT1m.tif'
read = 'file' # 'file' or 'bdd' read = 'file' # 'file' or 'bdd'
# if read == 'file' # if read == 'file'
# file_geom = 'cheminversmageometrie/monfichier' # file_geom = 'cheminversmageometrie/monfichier'
file_geom = "/media/colas/SRV/FICHIERS/TRANSFERTS-EQUIPE/CG/Etang des longs - zone d'étude/Zone d'étude.shp" file_geom = "/media/cgeier/SRV/FICHIERS/TRANSFERTS-EQUIPE/CG/Etang des longs - zone d'étude/Zone d'étude.shp"
# if read == 'bdd' # if read == 'bdd'
sql_select = "SELECT code_site, geom FROM sites.c_sites_zonages WHERE code_site='GOUR' AND type_zonage = 'ZO'" sql_select = "SELECT code_site, geom FROM sites.c_sites_zonages WHERE code_site='GOUR' AND type_zonage = 'ZO'"
user = 'cen_admin' user = 'cen_admin'

View File

@ -46,7 +46,7 @@ def gen_mbtiles2(xml,output,format='mbtiles'):
def gdalwarp(vrt,mbtiles): def gdalwarp(vrt,mbtiles):
# exemple : Découpage d'un raster à partir d'un polygon # exemple : Découpage d'un raster à partir d'un polygon
# gdalwarp -overwrite -s_srs "EPSG:2154" -t_srs "EPSG:2154" -of GTiff -cutline "PG:dbname='azalee' host=91.134.194.221 port=5432 sslmode=disable user='cgeier' password='adm1n*bdCen'" -cl "ref_territoire.isere_platiere" -crop_to_cutline -multi -co "COMPRESS=JPEG" -co "JPEG_QUALITY=75" "/media/colas/Disk2/5_BDD/ZH_prob/ZH_probS_Auvergne-Rhone-Alpes/ZH_probS_region84.tif" "/media/colas/Disk2/5_BDD/ZH_prob/ZH_probS_Auvergne-Rhone-Alpes/ZH_probS_dept38.tif" # gdalwarp -overwrite -s_srs "EPSG:2154" -t_srs "EPSG:2154" -of GTiff -cutline "PG:dbname='azalee' host=91.134.194.221 port=5432 sslmode=disable user='cgeier' password='adm1n*bdCen'" -cl "ref_territoire.isere_platiere" -crop_to_cutline -multi -co "COMPRESS=JPEG" -co "JPEG_QUALITY=75" "/media/cgeier/Disk2/5_BDD/ZH_prob/ZH_probS_Auvergne-Rhone-Alpes/ZH_probS_region84.tif" "/media/cgeier/Disk2/5_BDD/ZH_prob/ZH_probS_Auvergne-Rhone-Alpes/ZH_probS_dept38.tif"
cmd = ''' cmd = '''
gdalwarp -of MBTiles -s_srs epsg:2154 -t_srs epsg:3857 %s %s gdalwarp -of MBTiles -s_srs epsg:2154 -t_srs epsg:3857 %s %s
''' % (vrt,mbtiles) ''' % (vrt,mbtiles)
@ -71,7 +71,7 @@ if __name__ == "__main__":
flux = 'http://tiles.craig.fr/ortho/service?VERSION=1.3.0&crs=EPSG:2154&featureCount=10&format=image/jpeg&layers=ortho_2021&maxHeight=256&maxWidth=256' flux = 'http://tiles.craig.fr/ortho/service?VERSION=1.3.0&crs=EPSG:2154&featureCount=10&format=image/jpeg&layers=ortho_2021&maxHeight=256&maxWidth=256'
# flux = 'http://mt.google.com/vt/lyrs=s&amp;x=${x}&amp;y=${y}&amp;z=${z}' # flux = 'http://mt.google.com/vt/lyrs=s&amp;x=${x}&amp;y=${y}&amp;z=${z}'
PATH = '/media/colas/Disk2' PATH = '/media/cgeier/Disk2'
xml = 'googlemaps.xml' xml = 'googlemaps.xml'
xml = 'craig.xml' xml = 'craig.xml'
xml = 'output.xml' xml = 'output.xml'
@ -94,4 +94,4 @@ if __name__ == "__main__":
# ds = gdal.Open(os.path.join(PATH,vrt)) # ds = gdal.Open(os.path.join(PATH,vrt))
# gdal_translate -outsize 50% 50% -projwin 631397 5672590 639669 5659275 -of MBTILES -co "COMPRESS=YES" -co "TILE_FORMAT=JPEG" -co "QUALITY=80" "/media/colas/Disk2/output.xml" "/media/colas/Disk2/ign_ortho2024_38.mbtiles" # gdal_translate -outsize 50% 50% -projwin 631397 5672590 639669 5659275 -of MBTILES -co "COMPRESS=YES" -co "TILE_FORMAT=JPEG" -co "QUALITY=80" "/media/cgeier/Disk2/output.xml" "/media/cgeier/Disk2/ign_ortho2024_38.mbtiles"

View File

@ -108,7 +108,7 @@ if __name__ == "__main__":
# if nr_worker_threads != 7: # if nr_worker_threads != 7:
# set_nr_worker_threads(7) # set_nr_worker_threads(7)
PATH = "/media/colas/SRV/FICHIERS/SITES/DISTRICTS NATURELS/BASSE VALLEE DE L'ISERE/SONE/TUFI_Sone-à-Soi/SIG/" PATH = "/media/cgeier/SRV/FICHIERS/SITES/DISTRICTS NATURELS/BASSE VALLEE DE L'ISERE/SONE/TUFI_Sone-à-Soi/SIG/"
raster = PATH+"MNT_1m.tif" raster = PATH+"MNT_1m.tif"
dst_filename = '/home/colas/Documents/tmp/OUTPT.map' dst_filename = '/home/colas/Documents/tmp/OUTPT.map'
xyz_filename = '/home/colas/Documents/tmp/OUTPT.xyz' xyz_filename = '/home/colas/Documents/tmp/OUTPT.xyz'
@ -188,4 +188,4 @@ if __name__ == "__main__":
# # processing.run("pcraster:comparisonoperators", {'INPUT':'%3Fcrs%3DEPSG%3A2154%26extent%3D868999.5%2C6447000.5%2C885999.5%2C6467000.5%26width%3D17000%26height%3D20000%26formula%3D%2522strahler%401%2522%2520%253E%253D5%2520%26strahler%3Auri%3D%2Fhome%2Fcolas%2FDocuments%2Ftmp%2Fstrahler.map%26strahler%3Aprovider%3Dgdal','INPUT1':0,'INPUT2':'%3Fcrs%3DEPSG%3A2154%26extent%3D868999.5%2C6447000.5%2C885999.5%2C6467000.5%26width%3D17000%26height%3D20000%26formula%3D%2522strahler%401%2522%2520%253E%253D5%2520%26strahler%3Auri%3D%2Fhome%2Fcolas%2FDocuments%2Ftmp%2Fstrahler.map%26strahler%3Aprovider%3Dgdal','OUTPUT':'TEMPORARY_OUTPUT'}) # # processing.run("pcraster:comparisonoperators", {'INPUT':'%3Fcrs%3DEPSG%3A2154%26extent%3D868999.5%2C6447000.5%2C885999.5%2C6467000.5%26width%3D17000%26height%3D20000%26formula%3D%2522strahler%401%2522%2520%253E%253D5%2520%26strahler%3Auri%3D%2Fhome%2Fcolas%2FDocuments%2Ftmp%2Fstrahler.map%26strahler%3Aprovider%3Dgdal','INPUT1':0,'INPUT2':'%3Fcrs%3DEPSG%3A2154%26extent%3D868999.5%2C6447000.5%2C885999.5%2C6467000.5%26width%3D17000%26height%3D20000%26formula%3D%2522strahler%401%2522%2520%253E%253D5%2520%26strahler%3Auri%3D%2Fhome%2Fcolas%2FDocuments%2Ftmp%2Fstrahler.map%26strahler%3Aprovider%3Dgdal','OUTPUT':'TEMPORARY_OUTPUT'})
# # processing.run("pcraster:col2map", {'INPUT':'/home/colas/Documents/tmp/bilan_sites.csv','INPUT1':"/media/colas/SRV/FICHIERS/SITES/DISTRICTS NATURELS/BASSE VALLEE DE L'ISERE/SONE/TUFI_Sone-à-Soi/SIG/MNT_1m.tif",'INPUT2':0,'OUTPUT':'TEMPORARY_OUTPUT'}) # # processing.run("pcraster:col2map", {'INPUT':'/home/colas/Documents/tmp/bilan_sites.csv','INPUT1':"/media/cgeier/SRV/FICHIERS/SITES/DISTRICTS NATURELS/BASSE VALLEE DE L'ISERE/SONE/TUFI_Sone-à-Soi/SIG/MNT_1m.tif",'INPUT2':0,'OUTPUT':'TEMPORARY_OUTPUT'})

View File

@ -2,7 +2,7 @@ from pycen import con_bdcen,con_fon,update_to_sql
from pycen.tools import Polygons_to_MultiPolygon from pycen.tools import Polygons_to_MultiPolygon
import geopandas as gpd import geopandas as gpd
PATHIN = '/media/colas/SRV/FICHIERS/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/LEZE/PG2022/' PATHIN = '/media/cgeier/SRV/FICHIERS/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/LEZE/PG2022/'
FILEIN = 'LEZE_zonage_2022.shp' FILEIN = 'LEZE_zonage_2022.shp'
SITE_NAME = 'LEZE' SITE_NAME = 'LEZE'
SITE_TYPE = '' SITE_TYPE = ''

View File

@ -55,7 +55,7 @@ def copy_2another_server(host_in,base_in,user_in,host_out,base_out,user_out,pass
if __name__ == "__main__": if __name__ == "__main__":
dump_bdd( dump_bdd(
file_out='/media/colas/SRV/FICHIERS/OUTILS/BASES DE DONNEES/FONCIER/CEN73/V4/_backup_V3/bd_cen_V3.sql', file_out='/media/cgeier/SRV/FICHIERS/OUTILS/BASES DE DONNEES/FONCIER/CEN73/V4/_backup_V3/bd_cen_V3.sql',
host='91.134.194.221', host='91.134.194.221',
base='bd_cen', base='bd_cen',
user='cgeier', user='cgeier',

14
order_polygon.py Normal file
View File

@ -0,0 +1,14 @@
import geopandas as gpd
from os import path
PATH = '/media/cgeier/SRV/FICHIERS'
file = 'OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Synthèse/synthese_observations_2026-04-23.geojson'
df = gpd.read_file(path.join(PATH,file), use_arrow=True)
df['ha'] = df.to_crs(2154).area
df.sort_values('ha', ascending=False, inplace=True)
df.reset_index(inplace=True)
df.drop(columns='ha', inplace=True)
df.to_file(path.join(PATH,file))

View File

@ -21,7 +21,7 @@ dict_gn = {
'group2_inp':'group2_inpn' 'group2_inp':'group2_inpn'
} }
PATH = "/media/colas/SRV/FICHIERS/SITES/SITES GERES/AVAL_AVALON/Scientifique et technique/Données historiques/Marais d'Avalon" PATH = "/media/cgeier/SRV/FICHIERS/SITES/SITES GERES/AVAL_AVALON/Scientifique et technique/Données historiques/Marais d'Avalon"
biodiv1 = gpd.read_file(path.join(PATH,'Biodi_Aura_Mare Ratier','POINT_2023_12_13_08h35m51.shp')) biodiv1 = gpd.read_file(path.join(PATH,'Biodi_Aura_Mare Ratier','POINT_2023_12_13_08h35m51.shp'))
# biodiv2 = gpd.read_file(path.join(PATH,'Biodiv_Aura_Marais','POINT_2023_12_13_08h41m24.shp')) # biodiv2 = gpd.read_file(path.join(PATH,'Biodiv_Aura_Marais','POINT_2023_12_13_08h41m24.shp'))

View File

@ -7,8 +7,8 @@ import pandas as pd
import geopandas as gpd import geopandas as gpd
path_fichsite = '/media/colas/SRV/FICHIERS/OPERATIONS (EX ETUDES)/ETUDES EN COURS/CORRIDORS/CVB_Bourbre/#42_Mesures compensatoires/BM/Evaluation des sites' path_fichsite = '/media/cgeier/SRV/FICHIERS/OPERATIONS (EX ETUDES)/ETUDES EN COURS/CORRIDORS/CVB_Bourbre/#42_Mesures compensatoires/BM/Evaluation des sites'
path_geom = '/media/colas/SRV/FICHIERS/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/ETUDES/CVB_Bourbre/Cartographie CVB Bourbre 2021/Mesures compensatoires/0_FINAL' path_geom = '/media/cgeier/SRV/FICHIERS/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/ETUDES/CVB_Bourbre/Cartographie CVB Bourbre 2021/Mesures compensatoires/0_FINAL'
c_geom = 'mc_isere_CVBbourbre.gpkg' c_geom = 'mc_isere_CVBbourbre.gpkg'
c_geom_det = 'mc_isere_CVBbourbre_détaillé.gpkg' c_geom_det = 'mc_isere_CVBbourbre_détaillé.gpkg'
pathout = '/home/colas/Documents/tmp/CVB_Bourbre' pathout = '/home/colas/Documents/tmp/CVB_Bourbre'
@ -192,7 +192,7 @@ gdf.to_file(pathout+'/'+ c_geom, driver='GPKG')
##################### #####################
##################### #####################
##################### #####################
path = '/media/colas/SRV/FICHIERS/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/ETUDES/CVB_Bourbre/Cartographie CVB Bourbre 2021/Mesures compensatoires' path = '/media/cgeier/SRV/FICHIERS/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/ETUDES/CVB_Bourbre/Cartographie CVB Bourbre 2021/Mesures compensatoires'
l1 = 'LOT 1.shp' l1 = 'LOT 1.shp'
l2 = 'LOT 2.shp' l2 = 'LOT 2.shp'
l3 = 'LOT 3.shp' l3 = 'LOT 3.shp'