63 lines
1.6 KiB
Python
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') |