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 est 20220910b, mais la description ne correspondant pas à un sid (qui vaut ftb_mare_aux_evees) mais c'est sans importance car la partie mare-aux-evees n'est considérée que comme une description informelle. Le sidù réel du site sera déduit de l'eid`.
  • 20221019b-isatis
    Le èdiest 20221019b et le sidassocié est iciftb_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 forme 20221001, mais peut être de la forme 20221001_expo ou 20221001b 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 forme vmf_8_routes. le site donne généralement accès aux coordonnées GPS du parking, mais pas toujours (e.g we_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 dans rrp.findAllAmfIds() : 1416.

    • Valeur du premier élément : amf_id = 103,
    • Nom du premier amref : amref.validName = Scutellinia trechispora
  • le champ desc (représentant plus ou moins un nom de sid (alias site id) )

    • nombre des champs desc différents findAllDesc : 47
    • nombre des champs desc différents desc_sids_map : 47
  • 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 à des sid de site (pour dépister les erreurs : serait pratique mais difficile)

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 :

Liste des date-eid (À COMPLÉTER)