init api geonature
This commit is contained in:
parent
3b35c3de8d
commit
5bbe80eec5
@ -1,4 +1,5 @@
|
|||||||
from pycen import con_gn
|
from pycen import con_gn
|
||||||
|
import requests
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
import os
|
import os
|
||||||
@ -32,6 +33,313 @@ def get_status(lst):
|
|||||||
;""".format(cd_nom = tuple(lst))
|
;""".format(cd_nom = tuple(lst))
|
||||||
return pd.read_sql_query(sql,con_gn)
|
return pd.read_sql_query(sql,con_gn)
|
||||||
|
|
||||||
|
def get_api_status(cd_nom:int):
|
||||||
|
res = requests.api.get('https://geonature.cen-isere.fr/taxhub/api/taxref/%i'%cd_nom)
|
||||||
|
if res.status_code == 200:
|
||||||
|
return res.json()
|
||||||
|
else :
|
||||||
|
raise('Error : %i\tcd_nom : %i'%(res.status_code,cd_nom))
|
||||||
|
|
||||||
|
def get_taxon_status(lst):
|
||||||
|
from datetime import datetime as dt
|
||||||
|
init = dt.now()
|
||||||
|
st = [get_api_status(x) for x in lst] # TOO LONG
|
||||||
|
print(dt.now()-init)
|
||||||
|
phylo = {
|
||||||
|
'cd_ref':[x['cd_ref'] for x in st],
|
||||||
|
'nom_valide':[x['nom_valide'] if 'nom_valide' in x.keys() else None for x in st],
|
||||||
|
'nom_vernac':[x['nom_vern'] if 'nom_vern' in x.keys() else None for x in st],
|
||||||
|
'regne':[x['regne'] if 'regne' in x.keys() else None for x in st],
|
||||||
|
'group1_inp':[x['group1_inpn'] if 'group1_inpn' in x.keys() else None for x in st],
|
||||||
|
'group2_inp':[x['group2_inp'] if 'group2_inp' in x.keys() else None for x in st],
|
||||||
|
'group3_inpn':[x['group3_inpn'] for x in st],
|
||||||
|
'classe':[x['classe'] if 'classe' in x.keys() else None for x in st],
|
||||||
|
'ordre':[x['ordre'] if 'ordre' in x.keys() else None for x in st],
|
||||||
|
'famille':[x['famille'] if 'famille' in x.keys() else None for x in st]}
|
||||||
|
cd_status = {
|
||||||
|
'AL':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['AL']['text'].values() for v in val['values'] ]
|
||||||
|
if 'AL' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'BERN':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['BERN']['text'].values() for v in val['values'] ]
|
||||||
|
if 'BERN' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'BONN':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['BONN']['text'].values() for v in val['values'] ]
|
||||||
|
if 'BONN' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'DH':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['DH']['text'].values() for v in val['values'] ]
|
||||||
|
if 'DH' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'DO':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['DO']['text'].values() for v in val['values'] ]
|
||||||
|
if 'DO' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'LRE':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['LRE']['text'].values() for v in val['values'] ]
|
||||||
|
if 'LRE' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'LRM':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['LRM']['text'].values() for v in val['values'] ]
|
||||||
|
if 'LRM' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'LRN':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['LRN']['text'].values() for v in val['values'] ]
|
||||||
|
if 'LRN' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'LRR':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['LRR']['text'].values() for v in val['values'] ]
|
||||||
|
if 'LRR' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'PAPNAT':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['PAPNAT']['text'].values() for v in val['values'] ]
|
||||||
|
if 'PAPNAT' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'PD':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['PD']['text'].values() for v in val['values'] ]
|
||||||
|
if 'PD' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'PD':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['PD']['text'].values() for v in val['values'] ]
|
||||||
|
if 'PD' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'PNA':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['PNA']['text'].values() for v in val['values'] ]
|
||||||
|
if 'PNA' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'PR':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['PR']['text'].values() for v in val['values'] ]
|
||||||
|
if 'PR' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'REGL':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['REGL']['text'].values() for v in val['values'] ]
|
||||||
|
if 'REGL' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'REGLII':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['REGLII']['text'].values() for v in val['values'] ]
|
||||||
|
if 'REGLII' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'REGLLUTTE':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['REGLLUTTE']['text'].values() for v in val['values'] ]
|
||||||
|
if 'REGLLUTTE' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'REGLSO':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['REGLSO']['text'].values() for v in val['values'] ]
|
||||||
|
if 'REGLSO' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'SCAP NAT':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['SCAP NAT']['text'].values() for v in val['values'] ]
|
||||||
|
if 'SCAP NAT' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'SCAP REG':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['SCAP REG']['text'].values() for v in val['values'] ]
|
||||||
|
if 'SCAP REG' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'SENSNAT':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['SENSNAT']['text'].values() for v in val['values'] ]
|
||||||
|
if 'SENSNAT' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'ZDET':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['ZDET']['text'].values() for v in val['values'] ]
|
||||||
|
if 'ZDET' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'exPNA':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['exPNA']['text'].values() for v in val['values'] ]
|
||||||
|
if 'exPNA' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
|
||||||
|
}
|
||||||
|
cd_status = {
|
||||||
|
'AL':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['AL']['text'].values() for v in val['values'] ]
|
||||||
|
if 'AL' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'BERN':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['BERN']['text'].values() for v in val['values'] ]
|
||||||
|
if 'BERN' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'BONN':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['BONN']['text'].values() for v in val['values'] ]
|
||||||
|
if 'BONN' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'DH':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['DH']['text'].values() for v in val['values'] ]
|
||||||
|
if 'DH' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'DO':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['DO']['text'].values() for v in val['values'] ]
|
||||||
|
if 'DO' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'LRE':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['LRE']['text'].values() for v in val['values'] ]
|
||||||
|
if 'LRE' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'LRM':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['LRM']['text'].values() for v in val['values'] ]
|
||||||
|
if 'LRM' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'LRN':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['LRN']['text'].values() for v in val['values'] ]
|
||||||
|
if 'LRN' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'LRR':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['LRR']['text'].values() for v in val['values'] ]
|
||||||
|
if 'LRR' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'PAPNAT':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['PAPNAT']['text'].values() for v in val['values'] ]
|
||||||
|
if 'PAPNAT' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'PD':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['PD']['text'].values() for v in val['values'] ]
|
||||||
|
if 'PD' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'PD':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['PD']['text'].values() for v in val['values'] ]
|
||||||
|
if 'PD' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'PNA':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['PNA']['text'].values() for v in val['values'] ]
|
||||||
|
if 'PNA' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'PR':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['PR']['text'].values() for v in val['values'] ]
|
||||||
|
if 'PR' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'REGL':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['REGL']['text'].values() for v in val['values'] ]
|
||||||
|
if 'REGL' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'REGLII':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['REGLII']['text'].values() for v in val['values'] ]
|
||||||
|
if 'REGLII' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'REGLLUTTE':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['REGLLUTTE']['text'].values() for v in val['values'] ]
|
||||||
|
if 'REGLLUTTE' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'REGLSO':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['REGLSO']['text'].values() for v in val['values'] ]
|
||||||
|
if 'REGLSO' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'SCAP NAT':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['SCAP NAT']['text'].values() for v in val['values'] ]
|
||||||
|
if 'SCAP NAT' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'SCAP REG':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['SCAP REG']['text'].values() for v in val['values'] ]
|
||||||
|
if 'SCAP REG' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'SENSNAT':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['SENSNAT']['text'].values() for v in val['values'] ]
|
||||||
|
if 'SENSNAT' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'ZDET':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['ZDET']['text'].values() for v in val['values'] ]
|
||||||
|
if 'ZDET' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
'exPNA':[
|
||||||
|
[val['values'][v]['code_statut']
|
||||||
|
for val in x['status']['exPNA']['text'].values() for v in val['values'] ]
|
||||||
|
if 'exPNA' in x['status'].keys() else None
|
||||||
|
for x in st
|
||||||
|
],
|
||||||
|
|
||||||
|
}
|
||||||
|
return pd.DataFrame({**phylo,**cd_status})
|
||||||
|
|
||||||
dict_dep = {
|
dict_dep = {
|
||||||
'38':'Isère',
|
'38':'Isère',
|
||||||
'42':'Loire',
|
'42':'Loire',
|
||||||
@ -43,13 +351,15 @@ dict_dep = {
|
|||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
||||||
PATH = '/media/colas/SRV/FICHIERS/SITES/SITES GERES/ROLA_ROLANDE-MAUPAS/ROLA_PPI/ROLA_2025-2034_PG/donneesnaturalistes'
|
PATH = '/media/colas/SRV/FICHIERS/SITES/SITES GERES/ROLA_ROLANDE-MAUPAS/ROLA_PPI/ROLA_2025-2034_PG/donneesnaturalistes'
|
||||||
file = 'liste sp_ROLA.xlsx'
|
file = '3_liste sp_ROLA.xlsx'
|
||||||
sheet = 'liste sp'
|
sheet = 'liste sp'
|
||||||
|
|
||||||
# Liste des CD_NOM en entrée
|
# Liste des CD_NOM en entrée
|
||||||
cd_col = 'cd_ref'
|
cd_col = 'cd_ref'
|
||||||
taxlist = pd.read_excel(os.path.join(PATH,file),sheet,usecols=[cd_col],header=0)
|
taxlist = pd.read_excel(os.path.join(PATH,file),sheet,usecols=[cd_col],header=0)
|
||||||
tab_sp = pd.read_excel(os.path.join(PATH,file),sheet,index_col=cd_col)
|
tab_sp = pd.read_excel(os.path.join(PATH,file),sheet,index_col=cd_col)
|
||||||
|
lst = taxlist[cd_col]
|
||||||
|
|
||||||
df = get_status(taxlist[cd_col].astype(str))
|
df = get_status(taxlist[cd_col].astype(str))
|
||||||
|
|
||||||
for c in ['cd_ref','cd_nom','lb_nom']:
|
for c in ['cd_ref','cd_nom','lb_nom']:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user