Python_scripts/bdd_ZNIEFF.py
2025-09-18 16:54:02 +02:00

63 lines
1.6 KiB
Python

import pandas as pd
import numpy as np
import os
path = '/home/colas/Documents/5_BDD/3_INPN/BDD_ZNIEFF'
reg = '084_Auvergne-Rhone-Alpes'
ssreg = '082_Rhone-Alpes'
DIR = os.path.join(path,reg,ssreg)
def znieff(path,code,column='NM_REGZN'):
df = pd.read_csv(os.path.join(path,'znieff.csv'),sep=';')
df = df.astype(str)
if isinstance(code,str):
return df[df[column]==code]
elif isinstance(code,(pd.Series,list,pd.Index,np.ndarray)):
code = list(code)
return df[df[column].isin(code)]
else:
return df
def source_znieff(path,code,column='NM_SFFZN'):
df = pd.read_csv(os.path.join(path,'source_znieff.csv'),sep=';')
df = df.astype(str)
if isinstance(code,str):
return df[df[column]==code]
elif isinstance(code,(pd.Series,list,pd.Index,np.ndarray)):
code = list(code)
return df[df[column].isin(code)]
else:
return df
def source(path,code,column='ID_SOURCE'):
df = pd.read_csv(os.path.join(path,'source.csv'),sep=';')
df = df.astype(str)
if isinstance(code,str):
return df[df[column]==code]
elif isinstance(code,(pd.Series,list,pd.Index,np.ndarray)):
code = list(code)
return df[df[column].isin(code)]
else:
return df
def _rel_znieff_source(path,code,column='NM_REGZN'):
znief = znieff(path,code,column)
sznief = source_znieff(path,znief.NM_SFFZN.unique())
return source(path,sznief.ID_SOURCE.unique())
def get_source(path,code):
return _rel_znieff_source(path,code)
if __name__ == "__main__":
get_source(DIR,'38000064')