Les récoltes
Description des fichiers d'inventaires en Excel
Historiquement (et encore actuellement), les informations sources des récoltes sont constituées d'une collection de fichier d'inventaires annuel au format Excel.
Chaque fichier d'inventaires est constitué principalement de :
- de N lignes (les 2200 espèces gérées par l'AMF), chacune d'elles est représentés
au moins par le numéro
amf_id
(parfois notéaid
selon l'usage), - de M colonnes (une colonne par sorties avec récoltes). Le titre de chaque colonne est
l'indentifiant
eid
de l'évènement associé à une sortie, auquel est ajouté une chaine informelle correspondant au lieu de la sortie.
Exemple :20221001a-canche
- chaque cellule de récolte contient
"1"
si l'espèce associée à sa ligne a été récoltée lors de la sortie associée à sa colonne.
**Plus précisément**, un nom de colonne associé à une sortie est découpé en deux parties. Tout ce qui précède le premier "-" et supposé être le `eid`. Par exemple une colonne nommée `19991001_ab_cd-ef_gh-ij_kl` sera analysée comme suit :
- le premier
-
est le séparateur (ignoré) - ce qui précède le séparateur sera le
eid
:19991001_ab_cd
- tout le reste sera considéré comme la description
desc
: ef_gh-ij_kl
Exemples réel de noms de colonnes dans un fichier d'inventaire.
20220910b-mare-aux-evees
Le eid est20220910b
, mais la description ne correspondant pas à unsid
(qui vautftb_mare_aux_evees
) mais c'est sans importance car la partiemare-aux-evees
n'est considérée que comme une description informelle. Lesidù réel du site sera déduit de l'
eid`.20221019b-isatis
Le èdiest 20221019b et le
sidassocié est ici
ftb_franchard_isatis`
Import des fichiers Excel vers Sqlite
L'import de ces fichiers Excel vers une base sqlite se fait manuellement par un script Ruby et permet ainsi de retrouver les informations suivantes pour chaque récolte :
- Un objet de classe Amref avec toutes les inforlmation AMF de l'espèce (dont un CD_NOM proche du CD_REF)
- Un objet de classe Event. Le
eid
d'un évènement est généralement défini sous la forme20221001
, mais peut être de la forme20221001_expo
ou20221001b
en cas de deux évènements existant pour la même date (suite à une anulation par exemple). Cette évènement donne accès en particulier à la date du premier jour de cette évèvement (e.g le samedi pour une séjour d'un weekend). - Un objet de classe Site prédéfini en base est identifié par un
sid
unique de la formevmf_8_routes
. le site donne généralement accès aux coordonnées GPS du parking, mais pas toujours (e.gwe_bourgogne
,ftb_printemps
).
Il est à noter que certains sites génériques ne sont pas associés à des coordonnées GPS à savoir :
- les sortie de weekend (
we_bourgogne
), - les expositions,
- et certaines sorties (de printemps) pour éviter de rendre publiques les coins à morille (mais si on cherche un peu...).
Organisation actuelle et future des données
Historiquement, les seules données existantes lisibles directement par le site
web sont les tables events
et sites
décrite en YAML. Ces fichiers YAML sont
lu dynamiquement par le site web (en php).
Par ailleurs un script Ruby lit les fichiers Excels suivants :
- le fichier
AMreF.xlsx
qui contient les infos de chaque espèce, - les fichiers d'inventaire annuels détaillants des récoltes (e.g.
inventaire_2025.xlsx
) ; et contruit de deux tables amref et recolte d'une base de données (cette base contient aussi la table taxref de janvier 2025).
Dans le fichier de récoltes, l'identifiant amf_id
fait la jointure avec le table
Amref importée, et la partie eid
d'un nom de colonne faire la "jointure" avec
l'évènement d'un fichier YAML.
Depuis debut 2023, le site web lite donc à la fois :
- d'une part des données décrite en YAML et mises à jour par le webmaster (evente et sites)
- d'autre part un base sqlite contenant l'import manuel des fichiers Excels eux-même maintenus par le président.
- la base sqlite contient également un table taxref issue d'une import annuel du dernier fichier Taxref de l'INPN (typiquement mis à jour fin décembre ou debut janvier de chaque année).
Plus tard, les fichiers Excel pourront être importés directement par PHP et l'import pourra se faire directement en ligne, donc par plusieurs personnes.
Mais à terme les fichiers Excel ne seront plus nécessaires (mais pourront alors être régénéré via le site web).
Quelques statistiques sur les récoltes
Permet aussi de dépister les incohérences dans les inventaires ou dans le code php.
-
Nombre de
amf_id
dansrrp.findAllAmfIds()
: 1416.- Valeur du premier élément :
amf_id = 103
, - Nom du premier amref :
amref.validName = Scutellinia trechispora
- Valeur du premier élément :
-
le champ
desc
(représentant plus ou moins un nom de sid (alias site id) )- nombre des champs
desc
différentsfindAllDesc
: 47 - nombre des champs
desc
différentsdesc_sids_map
: 47
- nombre des champs
-
Nombre de sid (sites) connus (même sans récoltes) :
srp.findAll() | length = 54
-
Nombre d'évènements avec récolte dans
rrp.findAllEvents()
: 233. -
TODO : créer des listes supplémentaires, mais dans une autre page :
- Mettre en valeur dans cette liste les
sid
associés à aucun évènement (e.d les lieus de réunion de type AG ou FORMATION) - Mettre en valeur dans cette liste les
sid
associés à aucune récolte - Compléter avec les champs
desc
qui ressemblent à dessid
de site (pour dépister les erreurs : serait pratique mais difficile)
- Mettre en valeur dans cette liste les
Liste des champs desc des récoltes et des sid ressemblants à desc
Nombre de résultats affichés : 47.
Colonne Excel : | sid candidat(s) (alias `site_name` dans les `amf_events_2NNN.yaml`) |
---|---|
8_routes : | vfm_8_routes, |
courances : | m3p_courances, |
sachot : | sachot, |
bleau : | |
mennecy : | mennecy, |
canche : | m3p_canche, |
toulouse : | ftb_toulouse, |
le_vaudoue : | m3p_le_vaudoue, |
barbeau : | barbeau, ftb_petit_barbeau, |
exposition : | exposition, |
barriere_noire : | barriere_noire, |
perche : | we_perche, |
rougeau_arqueil : | |
champagne : | champagne_sur_seine, we_champagne, we_champagne_rumilly, |
monts_girards : | ftb_monts_girards, |
ru_guerin : | vfm_ru_guerin, |
othe : | othe_cerisiers, othe_st_ange, |
mare_aux_evees : | ftb_mare_aux_evees, |
8-routes : | |
boulains : | vfm_boulains, |
rougeau_pav_royal : | rougeau_pav_royal, |
expo : | exposition, |
orleans : | orleans, orleans_7_routes, orleans_caillettes, |
rougeau_bois_arqueil : | rougeau_bois_arqueil, |
rumilly-temple : | |
isatis : | ftb_franchard_isatis, |
we_perche : | we_perche, |
mare-aux-evees : | |
we_morvan : | we_morvan, |
rougeau-arqueil : | |
nanteau2 : | |
sologne : | we_sologne, |
rougeau : | rougeau_bois_arqueil, rougeau_pav_royal, |
senart : | senart_faisanderie, senart_mf_montgeron, |
feuillardiere : | m3p_feuillardiere, |
morvan : | we_morvan, |
courtilleraies : | courtilleraies, |
bourgogne : | we_bourgogne, |
grands-feuillards : | |
sourdun : | sourdun, |
poligny : | poligny, |
bois_rond : | ftb_bois_rond, |
nanteau1 : | |
avaux : | grands_avaux, |
st_jerome : | m3p_st_jerome, |
temple : | |
chambord : | we_chambord, |
Liste des sids disponibles
- TODO :
- lister ici les sites (sid) dont aucun évènement n'est associé à une récolte
ag_annuelle : | |
barbeau : | |
barriere_noire : | |
champagne_sur_seine : | |
courtilleraies : | |
exposition : | |
ftb_bois_rond : | |
ftb_chanfroy : | |
ftb_franchard_isatis : | |
ftb_grands_feuillards : | |
ftb_mare_aux_evees : | |
ftb_monts_girards : | |
ftb_petit_barbeau : | |
ftb_printemps : | |
ftb_recloses : | |
ftb_toulouse : | |
grands_avaux : | |
initiation : | |
m3p_canche : | |
m3p_courances : | |
m3p_feuillardiere : | |
m3p_le_vaudoue : | |
m3p_st_jerome : | |
mennecy : | |
nanteau_allee_pavee : | |
nanteau_commanderie : | |
orleans : | |
orleans_7_routes : | |
orleans_caillettes : | |
othe_cerisiers : | |
othe_st_ange : | |
poligny : | |
rougeau_bois_arqueil : | |
rougeau_pav_royal : | |
sachot : | |
senart_faisanderie : | |
senart_mf_montgeron : | |
sfg_ponthierry_26_couleurs : | |
sfg_ponthierry_club_house : | |
sfg_ponthierry_salle_assoc : | |
sfg_ponthierry_salle_henry_chaudey : | |
sfg_ponthierry_salle_riviere : | |
sourdun : | |
undef_sid : | |
vfm_8_routes : | |
vfm_boulains : | |
vfm_ru_guerin : | |
we_bourgogne : | |
we_chambord : | |
we_champagne : | |
we_champagne_rumilly : | |
we_morvan : | |
we_perche : | |
we_sologne : |