C'est avec plaisir que j'assisterai à cette réunion. Je n'ai cependant pas reçu ce mail. Je me suis inscrit à la communauté il y a peu de temps. Il a du être diffusé avant cela. Je veux bien que vous me le retransmettiez, si cela ne vous dérange pas, que je puisse disposer du lien de connexion.
Merci encore,
Etienne
Le 2021-02-26 13:20, Sigrid LEHUTA a écrit :
De rien, ravie que ça ait marché.
J'en profite pour vous convier à la réunion des utilisateurs ISIS le 9/3 à partir de 14h (en visio) (vous avez dû recevoir un mail sur la liste ISIS). C'est une bonne occasion de rencontrer la communauté et se tenir informer sur le modèle.
@Dominique : Stephanie va d'ailleurs ajouter une ligne au tableau des tâches afin que tu nous parles de l'application Sar et du travail d'Adrian Bach.
Le 26/02/2021 à 11:48, Etienne JOUBERT a écrit :Bonjour,
Merci beaucoup, vous avez trouvé le fond du problème!! Après quelques tests de vérification, j'ai pu réintégrer la mortalité des individus de chaque groupe et celle des larves. Les résultats de la simulation concordent avec ceux attendus. C'est génial.
Je regardais en effet les effectifs en sortie de simulation sur la variable Abundance au lieu de AbundanceBeginMonth. Je n'avais pas saisi la différence entre les deux matrices mais c'est beaucoup plus clair à présent.
Merci encore d'avoir pris le temps de m'aider je vous en suis très reconnaissant.
Je vous souhaite une excellente journée.
Etienne
Le 2021-02-26 10:26, Sigrid LEHUTA a écrit :
Bonjour Etienne,
merci de votre intérêt pour le modèle ISIS-Fish et bravo pour votre démarche pour comprendre empiriquement le fonctionnement du modèle.
- tout d'abord N est bien la matrice des effectifs au pas de temps en cours (et donc pour le group et la zone considérée)
Je vois plusieurs raisons pour expliquer le phénomène :
- y a t'il une mortalité des larves (group == null dans l'equation de mortalité), pour simplifier pour le moment fixer la à 0. Cette mortalité s'applique aux oeufs et larves entre la ponte (mois de reproduction) et le recrutement si vous faites l'hypothèse que le recrutement n'a pas lieu tout de suite après la ponte, ce qui ne semble pas être votre cas.
- Ensuite regardez vous les effectifs en sortie de simulation sur la variable Abundance ou AbundanceBeginMonth. Il faut en effet regarder la seconde car la premiere correspond à un export de la matrice N à la fin du pas de temps précédent Abundance(avril) = N.getValue(fin mars) avant les évènements de debut avril (migration, reproduction etc) mais après la mortalité d avril. AbundanceBeginMonth(avril) = N.getValue(avril+epsilon) c est à dire après les évènement de début avril (repro, migration) mais avant la mortalité d'avril. Le schéma joint peut etre utile (les fleches bleues indiquent le moment où les exports ont lieu au cours d'un pas de temps, notamment N et NbeginMonth).
- Une maniere de vérifier les calculs sans se préoccuper de la mortalité est de mettre la mortalité naturelle à zéro et de ne sélectionner aucune stratégies le temps des tests.
J'espère que ces explications vous aident. Sinon nous pouvons programmer un appel telephonique ou skype pour discuter plus interactivement du probleme.
Sigrid
Le 25/02/2021 à 16:08, Etienne JOUBERT a écrit :Bonjour à tous,
Je m'appelle Etienne Joubert. Je suis en apprentissage à Ifremer, sous la tutelle de Marc Bouchoucha sur le sujet de la restauration écologique. J'ai repris il y a quelque temps le modèle Isisfish sur la rade de Toulon et ses populations de sars commun, créé par Adrian Bach en stage à ma place l'année dernière.
Dans un premier temps, j'aimerais vous partager mon admiration pour votre travail. Ce logiciel libre est plein de fonctionnalités tout en restant simple à prendre en main après quelques tutos sur le langage JAVA. Je trouve assez incroyable tout ce qu'il permet de faire même pour un novice en la matière comme moi et j'ai hâte de savoir mieux le manipuler!
Si je vous contacte c'est également pour vous poser quelques questions sur le passage du code insérés dans les cases du volet population dans les simulations. Les variables que l'on rentre subissent-elles des modifications dans la "racine" ou "code source" (je n'ai pas le terme exact) du modèle? Je m'explique avec un exemple:
Lorsque je rentre dans le volet reproduction une boucle simple comme celle qui suit (ce code est piqué au modèle de démo sur les populations de néfrops du golfe de Gascogne mais fonctionne et a le bénéfice de ne pas être une concoction "maison" j'ai donc tendance à plus y faire confiance pour débuguer mes problèmes):
double compt=0;
double ktemp = context.getValueAndCompute("SarCommun.reproductionEquation.Ktemp", 1.0);
for (Zone zone : zoneRepro){
compt=0;
for (PopulationGroup : groups){
double cf = group.getReproductionRate()*Ktemp;
compt += N.getValue(group, zone) * cf;
}
result.setValue(zone, compt*prepro);
}
return 0;
D'une part, N.getValue(group, zone) correspond t'il bien au nombre d'individus d'un groupe dans une zone donnée au mois de reproduction voulu?
Si tel est le cas, peut être est-ce une erreur d'interprétation de ma part mais avec:
- un taux de reproduction égal à 1 uniquement pour le groupe 8 de ma population (un taux de 0 est affecté aux autres groupes),
- un nombre d'individus initialisé à 380, qui est égal à 365 lorsque les sars se reproduisent (mortalité),
- aucune équation de recrutement à par un "return 0;" (0 ou 1 ne change pas la donne apparemment).
Je suis sensé obtenir un nombre de juvéniles égal au nombre d'adultes reproducteurs, non ?
Or j'obtiens un nombre de nouvelles recrues dans C0 égal à 722. Ce nombre de sortie semble suivre une tendance particulière de 0.47051% par rapport à la valeur d'entrée. Lorsque je remplace N.getValue(group, zone) directement dans le code par 380 ou par 1000 par exemple j'obtiens respectivement 158 et 417. Cela signifie que la valeur d'entrée de N.getValue(group, zone) pour mon exemple est sensiblement proche de 1731. Ce qui n'est pas la valeur attendue.
À cela j'ai deux hypothèses
-Soit, tout est faux depuis le début et je me trompe de variable.
-Soit, il me semble que ce chiffre correspond au nombre d'individus potentiellement reproducteurs dans ce groupe au mois d'avril (la reproduction se déroule en mars dans ce modèle donc normalement ce n'est pas ce qui est sensé avoir lieu). Dans ce cas, cela veut dire que la reproduction est prise en compte au début mois +1 dans le code de simulation?
Cela concorderait et serait une solution à mon problème mais je m'inquiète de corriger une de mes erreurs par un autre biais.
Cependant je ne m'explique pas pourquoi les données du modèle seraient corrigées par un facteur 0.47051.
Je vous remercie et vous souhaite une excellente fin d'après-midi.
Bien cordialement,
Etienne Joubert
_______________________________________________
Isis-fish-users mailing list
Isis-fish-users@list.isis-fish.org
http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users
_______________________________________________
Isis-fish-users mailing list
Isis-fish-users@list.isis-fish.org
http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users
_______________________________________________ Isis-fish-users mailing list Isis-fish-users@list.isis-fish.org http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users
-- NB : Please note that I do not work on Wednesdays Sigrid LEHUTA ~ ><> ~ Ecologie et Modèles pour l'Halieutique IFREMER Nantes Rue de l'Ile d'Yeu - BP 21105, 44311 Nantes Cedex 03, France Tél : 02 40 37 42 38 (N° interne : 8238) Membre de l'Association Française d'Halieutique https://www.association-francaise-halieutique.fr/
_______________________________________________
Isis-fish-users mailing list
Isis-fish-users@list.isis-fish.org
http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users