Browse Source
Aunee was first called VegAu, for "Vegan Autarcy" (https://github.com/Iscobia/VegAu). The goal of this program is not to force anyone to go vegan but only to offer a tool to optimize soil use for and WITH (only) vegetal resources. As lots of people see vegan ones as "extremists", I needed to change it's name to avoid people rejecting the project just because of its name. I hope and wish to see a nice community working together make computer science serving life : humanity, but also plants, soils and all animals which suffer because of human chemicals and practices. I am over with coding, don't have time and brain for it any more. But the idea is still clear in my mind and heart, and I would be delighted to co-create this project with competent people. I wish to see Aunée travelling around the world to mutualize data and promote a viable and new, life-friendly agricultural system.master
5 changed files with 2699 additions and 0 deletions
File diff suppressed because one or more lines are too long
Binary file not shown.
@ -0,0 +1,483 @@
@@ -0,0 +1,483 @@
|
||||
==================================================================================================================================================LAST UPDATES (14 mai 2017): |
||||
|
||||
LAST UPDATES (24 septembre 2017): |
||||
|
||||
* At the beginning of SELECT_CashCrop(x, PRA, data), associating the following lists to list comprehensions : |
||||
* x.edibleCompanionCrops = [c for c in x.edibleCrops if prodTYP(crop)=='Companion crop'] |
||||
* x.edibleCoverCrops = [c for c in x.edibleCrops if prodTYP(crop) == 'Companion crop' or prodTYP(crop) == 'Cover crop'] |
||||
* x.edibleCashCrops = [c for c in x.edibleCrops if prodTYP(crop) != 'Companion crop' and prodTYP(crop) != 'Cover crop'] |
||||
|
||||
==================================================================================================================================================LAST UPDATES (14 mai 2017): |
||||
|
||||
LAST UPDATES (12 septembre 2017): |
||||
|
||||
* input.ods : l'ID des PRA ne correspondait pas à l'ID réel !!! Il semblerait que les données du programmes |
||||
ne soient pas impactées par cette erreur. Les tableurs sont corrigés. |
||||
* corrections apportées dans ASSESS_SeedingDate |
||||
* corrections apportée à ASSESS_Nutrients_CompanionCrop --> continuait d'examiner la période de croissance alors |
||||
que les nutriments étaient déjà jugés insuffisants ! |
||||
* correction de x.edibleCrops_init : tel qu'il était écrit, l'orchardgrass était forcément sélectionée si la culture |
||||
avait un type différent de 1 (arbre) ou 2 (buisson) ! |
||||
* correction à la dernière ligne de sauvegarde (dietary_results): bog si la culture n'était (naturellement !) pas |
||||
dans WeeklyResources parce que CC.--> référence = headers_ID, pas crop. |
||||
|
||||
==================================================================================================================================================LAST UPDATES (14 mai 2017): |
||||
|
||||
LAST UPDATES (11 septembre 2017): |
||||
|
||||
* Correction d'un bug --> CN(month) --> CN(crop) |
||||
* Correction de la fonction de PnD: si l'index maximum est inférieur à 40%, tout l'ensemble de la |
||||
liste n'est pas supprimé (sinon, x.edibeCrops = []): il reste le maximum. |
||||
|
||||
==================================================================================================================================================LAST UPDATES (14 mai 2017): |
||||
|
||||
LAST UPDATES (8 septembre 2017): |
||||
|
||||
* line 792 : if round(WRmargin_GSmin(crop, month, x, PRA), 2) > 0 |
||||
instead of if round(WRmargin_GSmin(crop, month, x, PRA), 2) >= 0: |
||||
|
||||
==================================================================================================================================================LAST UPDATES (14 mai 2017): |
||||
|
||||
|
||||
LAST UPDATES (7 septembre 2017): |
||||
|
||||
* First step : the "maximum_growing_season_duration" is not GSmax(crop) but : |
||||
GSmax(crop) + abs(seed_from(crop) - seed_to(crop)) |
||||
It makes sure that the climatic features meet the crops ones even if it has been planted on the latest |
||||
date and has long growing season. |
||||
|
||||
|
||||
==================================================================================================================================================LAST UPDATES (14 mai 2017): |
||||
|
||||
|
||||
LAST UPDATES (3 septembre 2017): |
||||
|
||||
* Functions_step1, ligne 431 : x.edible_Tmin = [] ---> commenté |
||||
--> VÉRIFIER S'IL N'Y A AUCUNE INCIDENCE ! x.edible_Tmin n'est pas sensé être modifié dans cette fonction... |
||||
* ASSESS_WaterResources avait disparue... j'ai repris la version de la micro SD (dernière modif du 31 août) |
||||
* Functions_step2 --> l.1758 : x.decomposition_month[monthInGS][nutrient] = 0 |
||||
Il manquait le [nutrient] |
||||
|
||||
|
||||
==================================================================================================================================================LAST UPDATES (14 mai 2017): |
||||
|
||||
LAST UPDATES (31 août 2017): |
||||
|
||||
* mineralizedN : temporary workaround --> mineralizedCPK(crop, month) * CN(crop) |
||||
-----> Nmin = Cmin / (C/N) |
||||
==================================================================================================================================================LAST UPDATES (14 mai 2017): |
||||
|
||||
LAST UPDATES (18 juillet 2017): |
||||
|
||||
* csv table layout (dietary_results : for a better out-programm management) |
||||
* ignored fruit crops fixed |
||||
* corrected edibility assessment function for fruit trees (minimum temperature for whole year) |
||||
* Two entries were lacking in the 'nutrition' database (CABwhite, and CABbokchoi had another ID) |
||||
|
||||
==================================================================================================================================================LAST UPDATES (14 mai 2017): |
||||
|
||||
LAST UPDATES (7 juillet 2017): |
||||
|
||||
* CropRepartitionTEST.csv --> export plus lisible des données de répartition avec: |
||||
- la PRA |
||||
- le nombre de cultures éligibles |
||||
- un "1" dans la colonne de chaque culture éligible |
||||
|
||||
==================================================================================================================================================LAST UPDATES (14 mai 2017): |
||||
|
||||
LAST UPDATES (5 juillet 2017): |
||||
|
||||
* Rectification de x.indexPnD --> une division par 12 de trop, le CABkale avait toujours un PnD de 0 --> rendement nul ! |
||||
---> suppression des cultures pour lesquelles le risque de pests and diseases mènerait à une réduction du rendement |
||||
de plus de 70%. |
||||
|
||||
ATTENTION !!! Vérifier qu'au moment du calcul, |
||||
|
||||
* Erreur dans l'exportation des résultats : le tableau de carto écrasait les résultats ! |
||||
|
||||
==================================================================================================================================================LAST UPDATES (14 mai 2017): |
||||
|
||||
LAST UPDATES (28 mai 2017): |
||||
|
||||
* "Renommage": * PriorityAssessement ---> ASSESS_Priority |
||||
* nouvelle variables : x.edibleCrops_init pour garder la sélection de x.edibleCrops sans cultures permanentes ni rhubarbe |
||||
|
||||
|
||||
TO DO : * incohérences x.indexWR -> différents indexes pour OLVgreen et OLVmature... pas normal. |
||||
+ Les indexes sont souvent très bas, à vérifier. (remis en standardisés en attendant) |
||||
* des oignons partout !!! comment favoriser la diversité encore davantage ?... |
||||
|
||||
|
||||
==================================================================================================================================================LAST UPDATES (14 mai 2017): |
||||
|
||||
LAST UPDATES (27 mai 2017): |
||||
|
||||
* x.LimitingFactor[PRA] contains now all nutrients that are not sufficient to grow an potentially edible crop. |
||||
* ASSESS_NutrientsMargin a été simplifiée un brin. |
||||
* améliorations et erreurs rectifiées dans SELECT_CashCrop |
||||
* erreur corrigée dans la sauvegarde de 'first_results.py' |
||||
* erreur corrigée dans "MDL_QTTperPerson" |
||||
* indexWR faussait l'ajustement du rendement : le calcul de l'index ne prenait pas en compte ETc et en plus |
||||
il était standardisé après !! |
||||
* UPDATE_VERIFprodBOT_end_PestsDiseases_in_rotation a été corrigée ! La fonction ne pouvait jamais trouver le |
||||
x.SelectedCrop dans ses clés ! |
||||
* ASSESS_Water_ComanionCrop has been drastically simplified by deleting all further index calculation --> |
||||
using x.indexWR if needed for the selection. |
||||
|
||||
TO DO : |
||||
* faire en sorte que s'il y a une culture permanente dans les edibleCrops qui ne soit pas utilisée dans le pays ou |
||||
la région, elle soit choisie en début de rotation SI N > 120. |
||||
---> trop de berries !!! il y en a dans 181 PRA / 714 !! |
||||
|
||||
==================================================================================================================================================LAST UPDATES (14 mai 2017): |
||||
|
||||
LAST UPDATES (26 mai 2017): |
||||
|
||||
* "Renommage": * ASSESS_PRArotation ---> MDL_Rotation |
||||
* PRAedibilityTest ---------> MDL_EdibilityTest |
||||
|
||||
|
||||
==================================================================================================================================================LAST UPDATES (14 mai 2017): |
||||
LAST UPDATES (25 mai 2017): |
||||
|
||||
* "Renommage": * ASSESS_PRArotation ---> MDL_PRArotation |
||||
* PRAedibility ---------> MDL_PRAedibility |
||||
* ASSESS_QTTperPerson --> MDL_QTTperPerson |
||||
* ASSESS_FoodNutrients -> SUPPRIME et intégré à MDL_QTTperPerson. |
||||
à terme, "Functions_step3.py" sera supprimé et MDL_QTTperPerson sera |
||||
intégré à VegAu.py |
||||
|
||||
* CCedibility ----------> CCwater (il contient juste les indices des CC pour l'eau) |
||||
|
||||
* x.totalYields_year ---> x.totalYields |
||||
* bug du x.totalYields réglé ! |
||||
|
||||
==================================================================================================================================================LAST UPDATES (14 mai 2017): |
||||
|
||||
LAST UPDATES (16 mai 2017): |
||||
|
||||
* ASSESS_WaterResources a été simplifiée: la moitié de la fonction ne servait à rien ! Plusieur dicts aussi du |
||||
coup, il est possible qu'il en traine encore quelque part... |
||||
* Les erreurs de calcul des indices NutrientsMargin ont été corrigées ! Maintenant, il est bien entre 0 et 1 ! |
||||
* Organisation du module "selfVariables" en classant les différentes variables pour aider à l'écriture du |
||||
dossier |
||||
|
||||
==================================================================================================================================================LAST UPDATES (14 mai 2017): |
||||
|
||||
* Ajout de la prise en compte de la répartition à l'échelle nationale dans SELECT_SelectedCrop |
||||
--> nouvel index généré juste avant la sélection de la culture + nouveau dict 'unusedCrops_countryScale' |
||||
* modification de l'ajout d'entrées à x.rotat : pour permettre la prise en compte de la dernière culture |
||||
sélectionnée, celle ci est ajoutée avec la date de récolte la plus éloignée (pour éviter de la rajouter à la |
||||
fin du script). Ce tuple est modifié avec la bonne date de récolte à la sélection de la culture suivante. |
||||
|
||||
================================================================================================================================================== |
||||
|
||||
|
||||
LAST UPDATES (13 mai 2017): |
||||
|
||||
* x.DelayIndex était parfois nettement négatif : j'avais oublié de %12 x.EndPreviousCrop_later... |
||||
* dans ASSESS_SeedingDate, delay2 n'était pas utilisé (corrigé !) |
||||
* |
||||
|
||||
================================================================================================================================================== |
||||
|
||||
LAST UPDATES (12 mai 2017): VegAu ANNIVERSARY !!!! -----> VegAu 0.1 ! |
||||
|
||||
* VegAu tourne ! Les dernières corrections nécessaires à son fonctionnement pour toutes les PRA ont été apportées. |
||||
* ajout d'une variable results et d'une sauvegarde à la fin de la fonction ASSESS_PRArotation. |
||||
|
||||
================================================================================================================================================== |
||||
|
||||
|
||||
LAST UPDATES (10 mai 2017): |
||||
|
||||
* ASSESS_Water (step1) a été modifiée pour exclure TOLERflood et éventuellement permettre davantage de "edibleCrops" |
||||
à la sélection du step1. |
||||
* AVO (ID de l'avocat) devient 'EXOTavoc' pour permettre la prise en compte de cultures exotiques et d'en faire le tri. |
||||
|
||||
/!\ ERREUR ALÉATOIRE SUR LA MOUTARDE BRUNE D'ÉTÉ LORE DU CALCUL D'INDICE DES NUTRIMENTS ---> block try pour l'intercepter |
||||
en attendant de comprendre d'où ça vient... |
||||
|
||||
================================================================================================================================================== |
||||
|
||||
|
||||
LAST UPDATES (8 mai 2017): |
||||
|
||||
* Un block try...except avec AssertionError et traceback a été créé dans VegAu.py |
||||
Si je parviens à bien utiliser la boucle while, il pourra être supprimé. |
||||
|
||||
* L'erreur de decomposition_month (les dernières entrées étaient remplacées par 0) a été trouvée et résolue. |
||||
|
||||
* Fonction ASSESS_Water_CompanionCrop_for_SelectedCrop a été renommée en ASSESS_Water_CompanionCrop |
||||
Idem pour ASSESS_Nutrients_CompanionCrop --> ASSESS_Nutrients_CompanionCrop |
||||
|
||||
* découverte des assertions... Certaines fonctionnent comme je voulais et d'autres pas, je ne comprend pas encore très bien. |
||||
|
||||
--------------------------------------------------------------- |
||||
|
||||
* OBSERVATIONS : |
||||
|
||||
- des valeurs de nutriments rendus au sol sont négative... Il faudrait observer ces fonctions de plus près. |
||||
- les fonctions de minéralisation ne sont pas au point. Le N consommé par les légumineux pour leur dégradation |
||||
est bien trop élevé... Et la minéralisation de matière organique n'est à priori pas sensée en consommer. |
||||
|
||||
À creuser... |
||||
|
||||
|
||||
|
||||
================================================================================================================================================== |
||||
|
||||
|
||||
LAST UPDATES (7 mai 2017): |
||||
|
||||
* Les fonctions ont été renommées pour les différencier en 3 types : |
||||
- ASSESS_ : on recherche et on met la liste x.edibleCrops à jour selon les conditions environnementales |
||||
- SELECT_ : on utilise les résultats des fonctions ASSESS_ pour déterminer les meilleures possibilités |
||||
- APPLY_ : on applique la sélection des fonctions SELECT_ aux paramètres environementaux du sol (décomposition |
||||
et nutriments retirés) |
||||
- UPDATE_ : on applique la sélection des fonctions SELECT_ aux paramètres temporels (GSstart, |
||||
EndPreviousCrop...) et analytiques (VERIFprodBOT) |
||||
* RotatMonth a été supprimé et remplacé par GSstart |
||||
* La fonction d'évaluation de la qualité des WaterResources pour un éventuel CC a été corrigée (gros cambouis) |
||||
* La fonction d'évaluation de l'impact des CC éligibles sur les nutriments ont été corrigées. Elles agissaient |
||||
notamment sur x.ActualStand et faisaient directement passer la PRA en déficit de nutriments sans qu'il n'y ait |
||||
eu de sélection !! |
||||
|
||||
================================================================================================================================================== |
||||
|
||||
|
||||
LAST UPDATES (6 mai 2017): |
||||
|
||||
* Correction de ASSESS_NutrientsMargin : on parlait de x.SelectedCC alors qu'on n'avait même pas encore choisi x.SelectedCrop ! |
||||
* La fonction update_RotatMonth_and_VERIFprodBOT a été renommée en update_VERIFprodBOT: RotatMonth correspond toujours à GSstart, c'est |
||||
à dire à l'implantation de chaque nouvelle culture. |
||||
* RotatMonth a été "stabilisé" à la fin d'un loop, il est égal à x.EndPreviousCrop_earlier. Il est éventuellement |
||||
mis à jour dans FindOptimalSeedingDate. |
||||
|
||||
/!\ de grosses confusions entre GSstart et RotatMonth + EndPreviousCrop_earlier et later PAS AU POINT !!! Faire un |
||||
schéma complet du modèle avacnt de continuer. |
||||
|
||||
================================================================================================================================================== |
||||
|
||||
LAST UPDATES (5 mai 2017): |
||||
|
||||
* le Carbone Organique a été remis en g/kg en utilisant un rapport de proportionnalité entre les données |
||||
originelles de l'INRA et celles qui avaient été calculées (les données manquantes avaient déjà été calculées... |
||||
ça évitait de refaire le calcul) |
||||
|
||||
* remplacement de la fonction lambda AWC_SoilOnly(PRA) par une "vraie" fonction qui calcule l'Available Water |
||||
Capacity si elle n'est pas dans la DB (utile pour plus tard, quand les gens importeront leurs données) |
||||
|
||||
* création de la fonction OM_retention_capacity(x, PRA): ATTENTION, elle peut être largement simplifiée à l'aide |
||||
d'un dict, je m'en suis rendue compte à la fin... ---> À FAIRE |
||||
|
||||
* modification de la fonction WaterResources pour tenir compte de la Feldkapazität (Available Water Capacity) et |
||||
du niveau de matière organique dans le sol |
||||
|
||||
* les valeurs simulée dans la feuille 'ENVIRONMENT' de input.ods ont été arrondies à 2 décimales pour faciliter/accélérer |
||||
les calculs et alléger les dicts. |
||||
+ il manquait un type de sol (pour la PRA '01195') |
||||
|
||||
================================================================================================================================================== |
||||
|
||||
LAST UPDATES (3 mai 2017): |
||||
|
||||
* Premiers résultats pour la sélection des cultures selon les données environementales: |
||||
* correction du compte des 'True' consécutifs pour Tmin et edible_WaterRqt |
||||
* différenciation des arbres fruitiers et des cultures normales pour le calcul des 'True' consécutifs |
||||
|
||||
================================================================================================================================================== |
||||
|
||||
LAST UPDATES (2 mai 2017): |
||||
|
||||
* Correction de la fonction ASSESS_Water pour les cultures permanentes: x.edible_Tmin n'existe pas pour eux ! |
||||
C'est la liste de la culture précédente qui était prise en compte... |
||||
* Correction du compte de "True" consécutifs pour voir si ça correspond à GSmin dans les fonctions ASSESS_Water, |
||||
ASSESS_Tmin_germ et ASSESS_Tmin. |
||||
* Correction de la première ligne de ASSESS_Tmin_germ qui ne prenait pas les buissons à baies en compte !! |
||||
* Les docstrings ont été précisées pour faciliter leur compréhension (précision des inputs, outputs et de la |
||||
fonction de la fonction) |
||||
|
||||
================================================================================================================================================== |
||||
|
||||
LAST UPDATES (27 avril 2017): |
||||
|
||||
* la liste 'x.edible' a été supprimée et remplacée par un Boléen qui devient Faux si la culture n'est pas jugée |
||||
éligible au cours des fonctions de test de concordance entre paramètres environementaux et physiologiques. |
||||
|
||||
================================================================================================================================================== |
||||
|
||||
LAST UPDATES (26 avril 2017): |
||||
|
||||
* input.ods ne contient plus de case vide pour les variables et cultures utilisés dans le script. |
||||
* inputFR a été mis à jour |
||||
|
||||
================================================================================================================================================== |
||||
|
||||
LAST UPDATES (23 avril 2017): |
||||
|
||||
* VegAu tourne jusqu'à la fonction ASSESS_PRArotation(x, data), mais AUCUN 'EDIBLE CROP' pour AUCUNE PRA !!! |
||||
--> trouver d'où vient le soucis |
||||
--> déboggage de la suite impossible tant qu'il n'y a aucune culture sélectionnée |
||||
|
||||
================================================================================================================================================== |
||||
|
||||
LAST UPDATES (22 avril 2017): |
||||
|
||||
* la classe 'i' a été renommée 'data' pour éviter les erreurs avec les trop nombreuses variables 'i' qui |
||||
écraseraient la classe |
||||
* Addition de paramètres manquants, qui différaient entre la définition et l'appel.p |
||||
|
||||
================================================================================================================================================== |
||||
|
||||
LAST UPDATES (21 avril 2017): |
||||
|
||||
* class 'self' renamed as 'x' to avoid errors |
||||
|
||||
================================================================================================================================================== |
||||
|
||||
LAST UPDATES (20 avril 2017): |
||||
|
||||
* input a été réimporté: input.ods et le script d'import ont été corrigé (l'import n'était pas complet) |
||||
|
||||
================================================================================================================================================== |
||||
|
||||
|
||||
|
||||
LAST UPDATES (24 mars 2017): |
||||
|
||||
* Les données de Canada Santé ont été importées proprement sous la forme d'un dictionnaire unique 'CanadaHealth' |
||||
(dans 'CanadaHealth.py') qui permet d'appeler les variables désirées sous la forme suivante: |
||||
|
||||
Canada_Health[ élément nutritif ][ genre ][ classe d'âge ] |
||||
|
||||
------------------------------------------------------------------------------------------------------------ |
||||
EXEMPLE: |
||||
|
||||
* élément nutritif:'Vitamine E (BME, mg/jour)' |
||||
---> toujours préciser le nom de l'élément et le type d'index nutritionnel à prendre en compte. |
||||
L'unité n'est pas toujours disponible. |
||||
* genre : Nourissons, Enfants, Hommes, Femmes |
||||
* classe d'âge (exemple pour les adultes) : * '51-70 ans' |
||||
* '> 70 ans' |
||||
* '31-50 ans' |
||||
* '9-13 ans' |
||||
* '19-30 ans' |
||||
* '14-18 ans' |
||||
|
||||
------------------------------------------------------------------------------------------------------------ |
||||
|
||||
* 'step1', 'step2', 'step3', 'VegAu' et 'selfVariables' été fusionnés dans VegAu2 pour éviter les soucis d'import. |
||||
Les fichiers séparés ont été copiés dans le dossier 'step1, 2, 3 et VegAu séparés' |
||||
|
||||
|
||||
================================================================================================================================================== |
||||
|
||||
|
||||
LAST UPDATES (23 mars 2017): |
||||
|
||||
* recopiage des tableaux de Canada Santé: reste à les convertir proprement en dict et à fusionner le contenu des |
||||
différents tableaux de macronutriments et "d'éléments". |
||||
|
||||
* problème de variable importée non reconnu résolu pour 'environment' mais lambda de 'ImportedVariables' non |
||||
reconnue non-plus... |
||||
|
||||
================================================================================================================================================== |
||||
|
||||
|
||||
|
||||
LAST UPDATES (22 mars 2017): |
||||
|
||||
* debugging général |
||||
|
||||
* OBSERVATION : la fonction "Functions_step1.py" n'est plus utilisée nul part |
||||
Elle prend en compte l'espace de temps entre seed_from et seed_to. Je ne sais plus pourquoi je ne l'utilise plus, |
||||
mais il est vrai que GSmax est plus sûr/juste à priori. |
||||
|
||||
* correction des fonctions WRmargin_GSmax(month) et WRmargin_GSmin(month) |
||||
* on faisait une boucle while pour déterminer une variable i "déterminable" par une simple équation... |
||||
* pas de valeur pour WaterRessources > 90% ETc_GSmax(month) |
||||
---> le résultat était toujours égal à 1 !! --> (ETc_effective - TOLERdrought(crop))/(ETc_GSmax(month) - TOLERdrought(crop)) |
||||
|
||||
|
||||
================================================================================================================================================== |
||||
|
||||
|
||||
LAST UPDATES (21 mars 2017): |
||||
|
||||
* élimination totale des globales |
||||
* toutes les variables self.X sont dans le fichier 'selfVariables.py', pour l'instant pas très bien rangées... |
||||
leur utilisation n'a pas toujours été vérifiée |
||||
|
||||
================================================================================================================================================== |
||||
|
||||
|
||||
LAST UPDATES (20 mars 2017): |
||||
|
||||
* Suppression totale de l'interaction avec LibreOffice pendant le script |
||||
---> code entièrement revisité avec des dictionnaires, notamment ceux importés lors de l'import du module importingODS. |
||||
---> code VÉRIFIÉ : il ne reste normalement plus de trace d'une interaction avec LibreOffice... |
||||
|
||||
* 'importingODS.py' a été vérifié et optimisé ('importingODS_simplifié.py') ---> UNE SEULE FONCTION qui s'occupe de TOUS LES DICOS |
||||
ATTENTION : 'importingODS.py' a été vérifié mais pas 'importingODS_simplifié.py' (bug du pont uno...) |
||||
|
||||
* à présent, SEUL 'importingODS.py' FAIT APPEL À PYOO !!! |
||||
IMPORTANT : une ligne avec subprocess a été ajoutée pour ouvrir l'instance de LibreOffice automatiquement. |
||||
|
||||
* 'exporting_in_ODS.py' a été créé : imports commentés (si pas d'erreur, à virer) |
||||
|
||||
* Fonctions de calcul des marges de minéraux DRASTIQUEMENT SIMPLIFIÉES |
||||
-----> une sous-fonction (pour ASSESS_Nutrients_CompanionCrop_for_SelectedCrop) |
||||
voir PLUS DU TOUT (pour ASSESS_self.NutrientsMargin) à la place de neuf sous-fonctions (un pour chaque minéral) ! |
||||
|
||||
================================================================================================================================================== |
||||
|
||||
|
||||
LAST UPDATES (19 mars 2017): |
||||
|
||||
* les IDs des types de sols allemands ont été mis à jours dans ENVIRONMENT |
||||
|
||||
* des titres complets ont été ajoutés à 'ENVIRONMENT' avant l'import en .py |
||||
|
||||
* 'PLANTS', 'ENVIRONMENT', 'NUTRITION', PRAvirgin' ET 'NUTRITIONvirgin' ont été importés en fichier python (input.py) |
||||
|
||||
* les lambdas qui donnaient les valeurs du tableur ont été adaptées pour renvoyer celles des dico (normalement c'est pareil) |
||||
|
||||
* ajout, dans les fonctions de VegAu, de lignes permettant l'ajout des indices de priorité et d'adaptation à 'plants' |
||||
|
||||
* de façon générale, le code a été simplifié avec suppression des valeurs globales superflues |
||||
|
||||
|
||||
|
||||
* ajout de delete_module.py pour me faciliter la tâche pour les tests --> permet de "dé-importer" un module grâce à: |
||||
delete_module('module') |
||||
|
||||
================================================================================================================================================== |
||||
|
||||
LAST UPDATES (18 mars 2017): |
||||
|
||||
* script adapté pour être agréable à la lecture |
||||
|
||||
* script corrigé : |
||||
* fonctions fausses (Nutrient Margin Assessement for CC) |
||||
* fonctions manquantes (SelectedCC_Kill) |
||||
|
||||
* script d'importation du fichier ODS a été écrit puis corrigé: |
||||
* les dico environment et plants ont en clé: |
||||
* "headers" pour les titres |
||||
* les ID des cultures (pour 'plants') et PRA (pour 'environment') |
||||
* des clés spéciales pour leurs indices dans le tableur: |
||||
* PRA_index pour la ligne de la PRA dans ENVIRONMENT |
||||
* CROP_index pour la ligne de la culture dans PLANTS (= CROProw) |
||||
* colIndex_PRAedibility pour CROPcol |
||||
* colIndex_PRAyields pour CROPcol_yields |
||||
|
||||
================================================================================================================================================== |
||||
|
||||
LAST UPDATES (17 mars 2017): |
||||
|
||||
* 'ENVIRONMENT' dans 'input.ods' a été complété et formaté |
||||
ATTENTION, il reste des trous !!! ponctuels, mais il en reste ! |
||||
|
||||
* création des cartes comparatives pour voir la répartition et part des valeurs manquantes à l'échelle de la France (voir l'impact du script en fait) |
||||
--> données de sol, pas encore de cartes pour le climat |
@ -0,0 +1,124 @@
@@ -0,0 +1,124 @@
|
||||
#!/usr/bin/python3.4 |
||||
# -*-coding:Utf-8 -* |
||||
|
||||
######################################### |
||||
# # |
||||
# CUSTOM EXCEPTIONS # |
||||
# # |
||||
######################################### |
||||
|
||||
class Delay(Exception): |
||||
pass |
||||
|
||||
class ColdSeason(Exception): |
||||
pass |
||||
|
||||
class DrySeason(Exception): |
||||
pass |
||||
|
||||
class NoNutrients(Exception): |
||||
pass |
||||
|
||||
class TenYears(Exception): |
||||
pass |
||||
|
||||
class LastCropsCC(Exception): |
||||
pass |
||||
|
||||
|
||||
######################################### |
||||
# # |
||||
# KEY OBJECTS OF THE PROGRAMM # |
||||
# # |
||||
######################################### |
||||
|
||||
class x: |
||||
#======================================================= |
||||
#== COMMON VARIABLES: |
||||
results = {} |
||||
dietary_results = {} |
||||
|
||||
|
||||
#======================================================= |
||||
#== FROM STEP 1: |
||||
all_crop_parameters_match_the_PRA_ones = True |
||||
|
||||
TOLERdrought = 0 |
||||
TOLERflood = 0 |
||||
edible_Tmin = [] |
||||
edibleCropsID = {} |
||||
edibleCropsEN = {} |
||||
edibleCropsFR = {} |
||||
edibleCropsDE = {} |
||||
|
||||
|
||||
#======================================================= |
||||
#== FROM STEP2: |
||||
|
||||
#------------------------------------------------------- |
||||
#-- Selection variables : |
||||
|
||||
edibleCrops = [] |
||||
edibleCrops_init = [] |
||||
edibleCompanionCrops = {} |
||||
laterCrops = {} |
||||
# -------------------------------------- |
||||
indexDelay = {} # before : DelayIndex |
||||
indexPnD = {} # before : edibleCropsPnD |
||||
indexWR = {} # before : edibleCropsWR |
||||
indexNutrients = {} # before : NutrientsMargin |
||||
# -------------------------------------- |
||||
CCwater = {} # before : CCedibility. Dictionary from ASSESS_Water_CompanionCrop... with the different nutrients margins |
||||
# ---> used if the selected Companion Crop needs more nutrients than the soil can provide. |
||||
# -------------------------------------- |
||||
SelectedCrop = None |
||||
SelectedCC = None |
||||
PreviouslySelectedCrop = None |
||||
|
||||
|
||||
# ------------------------------------------------------- |
||||
# -- Temporal variables |
||||
GSstart = 0 |
||||
EndPreviousCrop_earlier = 0 |
||||
EndPreviousCrop_later = 0 |
||||
|
||||
#------------------------------------------------------- |
||||
#-- Analytical variables |
||||
|
||||
# Territorial repartition |
||||
prodSURFACE = {} |
||||
ActualStand = {} |
||||
mapsPreparation = {} |
||||
|
||||
# Limiting Factors (lack of nutrients, pests and diseases) |
||||
LimitingFactor = {} |
||||
LimitingFactor_crops = {} |
||||
PestsDiseases_in_rotation = {} |
||||
VERIFprodBOT = {} |
||||
rotation_length = {} |
||||
|
||||
# Yields |
||||
totalYields = {} |
||||
|
||||
# Rotations analysis |
||||
rotat = {} |
||||
representativity = {} |
||||
CHOICE = {} |
||||
# --> for each PRA, CHOICE must give back the **list** that has been chosen to chose the Selected Crop |
||||
# It allow to see how the crops choice occurs. |
||||
# The format of an occurence looks like : (dictionnary name, length of the dict) |
||||
|
||||
|
||||
#------------------------------------------------------- |
||||
#-- Coordination variables |
||||
|
||||
LimitingFactorReached = False |
||||
no_delay_because_of_T_or_water = True |
||||
decomposition_month = {} |
||||
|
||||
|
||||
#======================================================= |
||||
#== FROM STEP 3: (cf Functions_step3) |
||||
TotalNutrients = {} |
||||
WeeklyResources = {} |
||||
|
Loading…
Reference in new issue