est ce qu'un plan de simu tourne sur datarmor ?
Hello, si je lance sur datarmor une simu preparée en local contenant un plan de simulation. ca va marcher ? Merci -- Sigrid LEHUTA ><> __/\__ ~ ><> ~ \____/ ~ Fisheries modeller IFREMER - HALGO-EMH Ecology and modeling for fisheries science DECOD Dynamics and sustainability of ecosystems: from source to sea AFH Association Française d'Halieutique (AFH) Centre Atlantique - Rue de l'Ile d'Yeu BP 21105 - 44311 Nantes Cedex 03 Tel. : 02 40 37 42 38 (8238) Participez à l'ENQUETE Réduction des captures de dauphins : https://http-proxy.cloud.codelutin.com/enquete_delmoges https://peche.ifremer.fr/Le-role-de-l-Ifremer/Recherche/Projets/Description-... https://www.francefilierepeche.fr/projets/gemmbe/ https://delmoges.recherche.univ-lr.fr/presentation-du-projet/ https://www.ices.dk/advice/ESD/Pages/Bay-of-Biscay-and-the-Iberian-Coast_Lan... https://halgo.ifremer.fr/en https://www.umr-decod.fr/en https://www.association-francaise-halieutique.fr/
Bonjour, Il faudrait voir les modalité de lancement, mais je ne pense pas. S'il est lancé en SSH, ce n'est pas permis car ce n'est pas un noeud de simulation. Et s'il est lancé via "qsub", cela ne va pas non plus car l'ensemble du plan "tournerait" sur un seul noeud. Le 31/07/2024 à 14:29, Sigrid LEHUTA a écrit :
Hello,
si je lance sur datarmor une simu preparée en local contenant un plan de simulation. ca va marcher ?
Merci
-- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
Merci pour la réponse. je vais réfléchir a un moyen de contourner alors. Le 01/08/2024 à 17:27, Eric Chatellier a écrit :
Bonjour,
Il faudrait voir les modalité de lancement, mais je ne pense pas.
S'il est lancé en SSH, ce n'est pas permis car ce n'est pas un noeud de simulation.
Et s'il est lancé via "qsub", cela ne va pas non plus car l'ensemble du plan "tournerait" sur un seul noeud.
Le 31/07/2024 à 14:29, Sigrid LEHUTA a écrit :
Hello,
si je lance sur datarmor une simu preparée en local contenant un plan de simulation. ca va marcher ?
Merci
-- Sigrid LEHUTA ><> __/\__ ~ ><> ~ \____/ ~ Fisheries modeller IFREMER - HALGO-EMH Ecology and modeling for fisheries science DECOD Dynamics and sustainability of ecosystems: from source to sea AFH Association Française d'Halieutique (AFH) Centre Atlantique - Rue de l'Ile d'Yeu BP 21105 - 44311 Nantes Cedex 03 Tel. : 02 40 37 42 38 (8238) Participez à l'ENQUETE Réduction des captures de dauphins : https://http-proxy.cloud.codelutin.com/enquete_delmoges https://peche.ifremer.fr/Le-role-de-l-Ifremer/Recherche/Projets/Description-... https://www.francefilierepeche.fr/projets/gemmbe/ https://delmoges.recherche.univ-lr.fr/presentation-du-projet/ https://www.ices.dk/advice/ESD/Pages/Bay-of-Biscay-and-the-Iberian-Coast_Lan... https://halgo.ifremer.fr/en https://www.umr-decod.fr/en https://www.association-francaise-halieutique.fr/
Bonsoir, je reprends ma réflexion pour lancer un gros plan de simulation sur datarmor en profitant de la parallélisation mais en évitant 1) de mobiliser le PC qui doit envoyer les simus crées en local une par une sur datarmor et 2) sans rapatrier les résultats en local (je les attaquerai surement via R sur datarmor et ne rapatrierai que des petits fichiers synthétiques). Pour info, le plan ne fait qu'ajouter des règles de gestion et modifié leurs paramètres selon la simu (il n'y a pas d'action en post simulation). Je pense à plein de manières différentes de faire et je ne sais pas toutes les mener à bien, ni quelle est la + judicieuse/efficace. Je vous livre mes réflexions mais un coup de fil sera surement nécessaire. _Malheureusement la demande est un peu pressée..._ Merci d'avance de votre aide ! Sigrid Option 1 : j'écris le plan de simu en java mais on shunte le lancement de la simu et au lieu qu'il lance la simu il ne fait que "préparer la simu" donc créer le zip. je mets tous ces zips sur datarmor et je demande à R de me lancer chaque simu en parallèle à partir d'un zip différent. Mais je ne sais pas shunter le lancement de simu et preparer le zip a la place (j'imagine que c est ce qu il fait quand on lance sur datarmor depuis l interface), j'aurais besoin d'aide pour ça. en revanche je suis autonome sur le plan de simu. Option 2 : utiliser la structure mise en place pour lancer des LHS sur datarmor, dans laquelle c'est R qui lance isis et crée un dossier par simulation qui contient les fichiers utiles aux règles specifiques à chaque simu. Les regles sont ecrites de telle sorte à récuperer le chemin vers le bon dossier (a partir du numero de la simu contenu dans son nom) et pouvoir y lire les fichiers. La question c'est : peut on faire lire a une regle un fichier avec ses propres parametres et les modifier en init ? Ou simplement on lit les nouvelles valeurs et elles ecrasent les valeurs par défaut ? Option 3 : la simu de ref contient le plan de simu qui ajoute les règles correctement configurées pour la simu en cours et qui ne lance que la simu courante. Ca je sais faire a partir du moment ou R passe l'info à isis du numero de la simu. Ensuite selon l'option il y a des détails que j'aimerais travailler : * Notamment le passage du numero de simu de R à isis, actuellement on fait récupère le numero de simu dans le string du nom de la simu :Stringsimu=context.getSimulationControl().getId();PatternsimulNamePattern=Pattern.compile("^(.+)_(i\\d+)$"); Stringpath=simulNamePattern.matcher(simu).replaceAll("_$1/$2/")+param_file; C'est peut etre plus propre via j2r ? Mais arrivera t'on a configurer la connexion R-java sur datarmor ? Sinon peut-on passer qqch en argument quand R lance isis, qui serait récupérable dans le simulation context ? * la modification des parametres de règles. On peut aller les lire un par un dans une matrice [simu x paramètre] et les modifier dans le plan, mais c'est un peu lourd. Dans le passé, je pouvais écrire des .txt avec ce type de format (ci-dessous) et les charger dans un objet Properties puis de faire un populateRule avec. Encore mieux, dans cet exemple, on a 2 modalités possibles de la regle GravityModelMixChannel et on indique laquelle on utilise. est ce toujours possible ? ca vous parait plus efficace ? puis de faire un populateRule (cf ci-dessous). 0=GravityModelMixChannel rule.0.parameter.behaviorBalance = 0.7 rule.0.parameter.beginDate=12 1=GravityModelMixChannel rule.1.parameter.behaviorBalance = 0.8 rule.1.parameter.beginDate=12 avec ce code Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name+".txt")))); int mod = 0; String ruleName = prop.getProperty(""+mod); RuleStorage ruleStorage = RuleStorage.getRule(ruleName); Rule rule = ruleStorage.getNewInstance(); RuleHelper.populateRule(mod, TopiaContext, rule, prop); Le 01/08/2024 à 17:29, Sigrid LEHUTA a écrit :
Merci pour la réponse.
je vais réfléchir a un moyen de contourner alors.
Le 01/08/2024 à 17:27, Eric Chatellier a écrit :
Bonjour,
Il faudrait voir les modalité de lancement, mais je ne pense pas.
S'il est lancé en SSH, ce n'est pas permis car ce n'est pas un noeud de simulation.
Et s'il est lancé via "qsub", cela ne va pas non plus car l'ensemble du plan "tournerait" sur un seul noeud.
Le 31/07/2024 à 14:29, Sigrid LEHUTA a écrit :
Hello,
si je lance sur datarmor une simu preparée en local contenant un plan de simulation. ca va marcher ?
Merci
-- Sigrid LEHUTA
><> __/\__ ~ ><> ~ \____/ ~ Fisheries modeller IFREMER - HALGO-EMH Ecology and modeling for fisheries science DECOD Dynamics and sustainability of ecosystems: from source to sea AFH Association Française d'Halieutique (AFH) Centre Atlantique - Rue de l'Ile d'Yeu BP 21105 - 44311 Nantes Cedex 03 Tel. : 02 40 37 42 38 (8238) Participez à l'ENQUETE Réduction des captures de dauphins :https://http-proxy.cloud.codelutin.com/enquete_delmoges https://peche.ifremer.fr/Le-role-de-l-Ifremer/Recherche/Projets/Description-... https://www.francefilierepeche.fr/projets/gemmbe/ https://delmoges.recherche.univ-lr.fr/presentation-du-projet/ https://www.ices.dk/advice/ESD/Pages/Bay-of-Biscay-and-the-Iberian-Coast_Lan... https://halgo.ifremer.fr/en https://www.umr-decod.fr/en https://www.association-francaise-halieutique.fr/
Bonjour, Est-ce que le "zip de preparation" peut être le même pour toutes les simulations ? Est-il possible de baser, par exemple, toute la dynamicité du plan sur le numéro de simulation ? Sinon, c'est ce qui changerait dans le zip ? Je ne sais pas si tu sais, mais dans Isis il y a une option "Simulation/Préparer la simulation..." pour avoir ce zip justement. Le 26/11/2024 à 18:13, Sigrid LEHUTA a écrit :
Bonsoir,
je reprends ma réflexion pour lancer un gros plan de simulation sur datarmor en profitant de la parallélisation mais en évitant
1) de mobiliser le PC qui doit envoyer les simus crées en local une par une sur datarmor et 2) sans rapatrier les résultats en local (je les attaquerai surement via R sur datarmor et ne rapatrierai que des petits fichiers synthétiques).
Pour info, le plan ne fait qu'ajouter des règles de gestion et modifié leurs paramètres selon la simu (il n'y a pas d'action en post simulation).
Je pense à plein de manières différentes de faire et je ne sais pas toutes les mener à bien, ni quelle est la + judicieuse/efficace. Je vous livre mes réflexions mais un coup de fil sera surement nécessaire.
_Malheureusement la demande est un peu pressée..._
Merci d'avance de votre aide !
Sigrid
Option 1 :
j'écris le plan de simu en java mais on shunte le lancement de la simu et au lieu qu'il lance la simu il ne fait que "préparer la simu" donc créer le zip. je mets tous ces zips sur datarmor et je demande à R de me lancer chaque simu en parallèle à partir d'un zip différent.
Mais je ne sais pas shunter le lancement de simu et preparer le zip a la place (j'imagine que c est ce qu il fait quand on lance sur datarmor depuis l interface), j'aurais besoin d'aide pour ça. en revanche je suis autonome sur le plan de simu.
Option 2 :
utiliser la structure mise en place pour lancer des LHS sur datarmor, dans laquelle c'est R qui lance isis et crée un dossier par simulation qui contient les fichiers utiles aux règles specifiques à chaque simu. Les regles sont ecrites de telle sorte à récuperer le chemin vers le bon dossier (a partir du numero de la simu contenu dans son nom) et pouvoir y lire les fichiers.
La question c'est : peut on faire lire a une regle un fichier avec ses propres parametres et les modifier en init ? Ou simplement on lit les nouvelles valeurs et elles ecrasent les valeurs par défaut ? Option 3 : la simu de ref contient le plan de simu qui ajoute les règles correctement configurées pour la simu en cours et qui ne lance que la simu courante. Ca je sais faire a partir du moment ou R passe l'info à isis du numero de la simu. Ensuite selon l'option il y a des détails que j'aimerais travailler : * Notamment le passage du numero de simu de R à isis, actuellement on fait récupère le numero de simu dans le string du nom de la simu :Stringsimu=context.getSimulationControl().getId();PatternsimulNamePattern=Pattern.compile("^(.+)_(i\\d+)$"); Stringpath=simulNamePattern.matcher(simu).replaceAll("_$1/$2/")+param_file; C'est peut etre plus propre via j2r ? Mais arrivera t'on a configurer la connexion R-java sur datarmor ? Sinon peut-on passer qqch en argument quand R lance isis, qui serait récupérable dans le simulation context ? * la modification des parametres de règles. On peut aller les lire un par un dans une matrice [simu x paramètre] et les modifier dans le plan, mais c'est un peu lourd. Dans le passé, je pouvais écrire des .txt avec ce type de format (ci-dessous) et les charger dans un objet Properties puis de faire un populateRule avec. Encore mieux, dans cet exemple, on a 2 modalités possibles de la regle GravityModelMixChannel et on indique laquelle on utilise. est ce toujours possible ? ca vous parait plus efficace ? puis de faire un populateRule (cf ci-dessous). 0=GravityModelMixChannel rule.0.parameter.behaviorBalance = 0.7 rule.0.parameter.beginDate=12 1=GravityModelMixChannel rule.1.parameter.behaviorBalance = 0.8 rule.1.parameter.beginDate=12 avec ce code Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name+".txt")))); int mod = 0; String ruleName = prop.getProperty(""+mod); RuleStorage ruleStorage = RuleStorage.getRule(ruleName); Rule rule = ruleStorage.getNewInstance(); RuleHelper.populateRule(mod, TopiaContext, rule, prop);
Le 01/08/2024 à 17:29, Sigrid LEHUTA a écrit :
Merci pour la réponse.
je vais réfléchir a un moyen de contourner alors.
Le 01/08/2024 à 17:27, Eric Chatellier a écrit :
Bonjour,
Il faudrait voir les modalité de lancement, mais je ne pense pas.
S'il est lancé en SSH, ce n'est pas permis car ce n'est pas un noeud de simulation.
Et s'il est lancé via "qsub", cela ne va pas non plus car l'ensemble du plan "tournerait" sur un seul noeud.
Le 31/07/2024 à 14:29, Sigrid LEHUTA a écrit :
Hello,
si je lance sur datarmor une simu preparée en local contenant un plan de simulation. ca va marcher ?
Merci
-- Sigrid LEHUTA
><> __/\__ ~ ><> ~ \____/ ~
Fisheries modeller IFREMER - HALGO-EMH Ecology and modeling for fisheries science DECOD Dynamics and sustainability of ecosystems: from source to sea AFH Association Française d'Halieutique (AFH)
Centre Atlantique - Rue de l'Ile d'Yeu BP 21105 - 44311 Nantes Cedex 03 Tel. : 02 40 37 42 38 (8238)
Participez à l'ENQUETE Réduction des captures de dauphins :https://http-proxy.cloud.codelutin.com/enquete_delmoges
https://peche.ifremer.fr/Le-role-de-l-Ifremer/Recherche/Projets/Description-... https://www.francefilierepeche.fr/projets/gemmbe/ https://delmoges.recherche.univ-lr.fr/presentation-du-projet/ https://www.ices.dk/advice/ESD/Pages/Bay-of-Biscay-and-the-Iberian-Coast_Lan... https://halgo.ifremer.fr/en https://www.umr-decod.fr/en https://www.association-francaise-halieutique.fr/
_______________________________________________ Isis-fish-users mailing list Isis-fish-users@list.isis-fish.org https://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users Archives et moteur de recherche: http://list.isis-fish.org/pipermail/isis-fish-users/
-- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
Le 27/11/2024 à 09:47, Eric Chatellier a écrit :
Bonjour,
Est-ce que le "zip de preparation" peut être le même pour toutes les simulations ? Oui
Est-il possible de baser, par exemple, toute la dynamicité du plan sur le numéro de simulation ? Sinon, c'est ce qui changerait dans le zip ? oui c est généralement le cas.
Je ne sais pas si tu sais, mais dans Isis il y a une option "Simulation/Préparer la simulation..." pour avoir ce zip justement.
oui oui c est ce qu'on fait quand on fait du LHS sur datarmor et ce à quoi je fais référence dans mon "option 1" quand je parle des zips.
Le 26/11/2024 à 18:13, Sigrid LEHUTA a écrit :
Bonsoir,
je reprends ma réflexion pour lancer un gros plan de simulation sur datarmor en profitant de la parallélisation mais en évitant
1) de mobiliser le PC qui doit envoyer les simus crées en local une par une sur datarmor et 2) sans rapatrier les résultats en local (je les attaquerai surement via R sur datarmor et ne rapatrierai que des petits fichiers synthétiques).
Pour info, le plan ne fait qu'ajouter des règles de gestion et modifié leurs paramètres selon la simu (il n'y a pas d'action en post simulation).
Je pense à plein de manières différentes de faire et je ne sais pas toutes les mener à bien, ni quelle est la + judicieuse/efficace. Je vous livre mes réflexions mais un coup de fil sera surement nécessaire.
_Malheureusement la demande est un peu pressée..._
Merci d'avance de votre aide !
Sigrid
Option 1 :
j'écris le plan de simu en java mais on shunte le lancement de la simu et au lieu qu'il lance la simu il ne fait que "préparer la simu" donc créer le zip. je mets tous ces zips sur datarmor et je demande à R de me lancer chaque simu en parallèle à partir d'un zip différent.
Mais je ne sais pas shunter le lancement de simu et preparer le zip a la place (j'imagine que c est ce qu il fait quand on lance sur datarmor depuis l interface), j'aurais besoin d'aide pour ça. en revanche je suis autonome sur le plan de simu.
Option 2 :
utiliser la structure mise en place pour lancer des LHS sur datarmor, dans laquelle c'est R qui lance isis et crée un dossier par simulation qui contient les fichiers utiles aux règles specifiques à chaque simu. Les regles sont ecrites de telle sorte à récuperer le chemin vers le bon dossier (a partir du numero de la simu contenu dans son nom) et pouvoir y lire les fichiers.
La question c'est : peut on faire lire a une regle un fichier avec ses propres parametres et les modifier en init ? Ou simplement on lit les nouvelles valeurs et elles ecrasent les valeurs par défaut ? Option 3 : la simu de ref contient le plan de simu qui ajoute les règles correctement configurées pour la simu en cours et qui ne lance que la simu courante. Ca je sais faire a partir du moment ou R passe l'info à isis du numero de la simu. Ensuite selon l'option il y a des détails que j'aimerais travailler : * Notamment le passage du numero de simu de R à isis, actuellement on fait récupère le numero de simu dans le string du nom de la simu :Stringsimu=context.getSimulationControl().getId();PatternsimulNamePattern=Pattern.compile("^(.+)_(i\\d+)$"); Stringpath=simulNamePattern.matcher(simu).replaceAll("_$1/$2/")+param_file; C'est peut etre plus propre via j2r ? Mais arrivera t'on a configurer la connexion R-java sur datarmor ? Sinon peut-on passer qqch en argument quand R lance isis, qui serait récupérable dans le simulation context ? * la modification des parametres de règles. On peut aller les lire un par un dans une matrice [simu x paramètre] et les modifier dans le plan, mais c'est un peu lourd. Dans le passé, je pouvais écrire des .txt avec ce type de format (ci-dessous) et les charger dans un objet Properties puis de faire un populateRule avec. Encore mieux, dans cet exemple, on a 2 modalités possibles de la regle GravityModelMixChannel et on indique laquelle on utilise. est ce toujours possible ? ca vous parait plus efficace ? puis de faire un populateRule (cf ci-dessous). 0=GravityModelMixChannel rule.0.parameter.behaviorBalance = 0.7 rule.0.parameter.beginDate=12 1=GravityModelMixChannel rule.1.parameter.behaviorBalance = 0.8 rule.1.parameter.beginDate=12 avec ce code Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name+".txt")))); int mod = 0; String ruleName = prop.getProperty(""+mod); RuleStorage ruleStorage = RuleStorage.getRule(ruleName); Rule rule = ruleStorage.getNewInstance(); RuleHelper.populateRule(mod, TopiaContext, rule, prop);
Le 01/08/2024 à 17:29, Sigrid LEHUTA a écrit :
Merci pour la réponse.
je vais réfléchir a un moyen de contourner alors.
Le 01/08/2024 à 17:27, Eric Chatellier a écrit :
Bonjour,
Il faudrait voir les modalité de lancement, mais je ne pense pas.
S'il est lancé en SSH, ce n'est pas permis car ce n'est pas un noeud de simulation.
Et s'il est lancé via "qsub", cela ne va pas non plus car l'ensemble du plan "tournerait" sur un seul noeud.
Le 31/07/2024 à 14:29, Sigrid LEHUTA a écrit :
Hello,
si je lance sur datarmor une simu preparée en local contenant un plan de simulation. ca va marcher ?
Merci
-- Sigrid LEHUTA
><> __/\__ ~ ><> ~ \____/ ~
Fisheries modeller IFREMER - HALGO-EMH Ecology and modeling for fisheries science DECOD Dynamics and sustainability of ecosystems: from source to sea AFH Association Française d'Halieutique (AFH)
Centre Atlantique - Rue de l'Ile d'Yeu BP 21105 - 44311 Nantes Cedex 03 Tel. : 02 40 37 42 38 (8238)
Participez à l'ENQUETE Réduction des captures de dauphins :https://http-proxy.cloud.codelutin.com/enquete_delmoges
https://peche.ifremer.fr/Le-role-de-l-Ifremer/Recherche/Projets/Description-...
https://www.francefilierepeche.fr/projets/gemmbe/ https://delmoges.recherche.univ-lr.fr/presentation-du-projet/ https://www.ices.dk/advice/ESD/Pages/Bay-of-Biscay-and-the-Iberian-Coast_Lan...
https://halgo.ifremer.fr/en https://www.umr-decod.fr/en https://www.association-francaise-halieutique.fr/
_______________________________________________ Isis-fish-users mailing list Isis-fish-users@list.isis-fish.org https://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users Archives et moteur de recherche: http://list.isis-fish.org/pipermail/isis-fish-users/
-- Sigrid LEHUTA ><> __/\__ ~ ><> ~ \____/ ~ Fisheries modeller IFREMER - HALGO-EMH Ecology and modeling for fisheries science DECOD Dynamics and sustainability of ecosystems: from source to sea AFH Association Française d'Halieutique (AFH) Centre Atlantique - Rue de l'Ile d'Yeu BP 21105 - 44311 Nantes Cedex 03 Tel. : 02 40 37 42 38 (8238) Participez à l'ENQUETE Réduction des captures de dauphins : https://http-proxy.cloud.codelutin.com/enquete_delmoges https://peche.ifremer.fr/Le-role-de-l-Ifremer/Recherche/Projets/Description-... https://www.francefilierepeche.fr/projets/gemmbe/ https://delmoges.recherche.univ-lr.fr/presentation-du-projet/ https://www.ices.dk/advice/ESD/Pages/Bay-of-Biscay-and-the-Iberian-Coast_Lan... https://halgo.ifremer.fr/en https://www.umr-decod.fr/en https://www.association-francaise-halieutique.fr/
Ok, donc je ne vois pas réellement de blocage alors. Il faudrait un fichier qsub avec: #!/bin/csh /appli/emh-commun/isis-fish/jdk17/bin/java -Xmx2000M -jar /appli/emh-commun/isis-fish/isis-fish-4.4.8/isis-fish*.jar --option launch.ui false --option perform.vcsupdate false --option perform.migration false --option perform.cron false --simulateWithSimulation mon-ip-simulation_$PBS_ARRAY_INDEX chemin-zip-preparation.zip Et lancer cela avec (exemple pour 1000 simulations) : qsub -m n -l mem=2GB -l walltime=01:00:00 -J 0-1000 script.seq Le 27/11/2024 à 10:00, Sigrid LEHUTA a écrit :
Le 27/11/2024 à 09:47, Eric Chatellier a écrit :
Bonjour,
Est-ce que le "zip de preparation" peut être le même pour toutes les simulations ? Oui
Est-il possible de baser, par exemple, toute la dynamicité du plan sur le numéro de simulation ? Sinon, c'est ce qui changerait dans le zip ? oui c est généralement le cas.
Je ne sais pas si tu sais, mais dans Isis il y a une option "Simulation/Préparer la simulation..." pour avoir ce zip justement.
oui oui c est ce qu'on fait quand on fait du LHS sur datarmor et ce à quoi je fais référence dans mon "option 1" quand je parle des zips.
Le 26/11/2024 à 18:13, Sigrid LEHUTA a écrit :
Bonsoir,
je reprends ma réflexion pour lancer un gros plan de simulation sur datarmor en profitant de la parallélisation mais en évitant
1) de mobiliser le PC qui doit envoyer les simus crées en local une par une sur datarmor et 2) sans rapatrier les résultats en local (je les attaquerai surement via R sur datarmor et ne rapatrierai que des petits fichiers synthétiques).
Pour info, le plan ne fait qu'ajouter des règles de gestion et modifié leurs paramètres selon la simu (il n'y a pas d'action en post simulation).
Je pense à plein de manières différentes de faire et je ne sais pas toutes les mener à bien, ni quelle est la + judicieuse/efficace. Je vous livre mes réflexions mais un coup de fil sera surement nécessaire.
_Malheureusement la demande est un peu pressée..._
Merci d'avance de votre aide !
Sigrid
Option 1 :
j'écris le plan de simu en java mais on shunte le lancement de la simu et au lieu qu'il lance la simu il ne fait que "préparer la simu" donc créer le zip. je mets tous ces zips sur datarmor et je demande à R de me lancer chaque simu en parallèle à partir d'un zip différent.
Mais je ne sais pas shunter le lancement de simu et preparer le zip a la place (j'imagine que c est ce qu il fait quand on lance sur datarmor depuis l interface), j'aurais besoin d'aide pour ça. en revanche je suis autonome sur le plan de simu.
Option 2 :
utiliser la structure mise en place pour lancer des LHS sur datarmor, dans laquelle c'est R qui lance isis et crée un dossier par simulation qui contient les fichiers utiles aux règles specifiques à chaque simu. Les regles sont ecrites de telle sorte à récuperer le chemin vers le bon dossier (a partir du numero de la simu contenu dans son nom) et pouvoir y lire les fichiers.
La question c'est : peut on faire lire a une regle un fichier avec ses propres parametres et les modifier en init ? Ou simplement on lit les nouvelles valeurs et elles ecrasent les valeurs par défaut ? Option 3 : la simu de ref contient le plan de simu qui ajoute les règles correctement configurées pour la simu en cours et qui ne lance que la simu courante. Ca je sais faire a partir du moment ou R passe l'info à isis du numero de la simu. Ensuite selon l'option il y a des détails que j'aimerais travailler : * Notamment le passage du numero de simu de R à isis, actuellement on fait récupère le numero de simu dans le string du nom de la simu :Stringsimu=context.getSimulationControl().getId();PatternsimulNamePattern=Pattern.compile("^(.+)_(i\\d+)$"); Stringpath=simulNamePattern.matcher(simu).replaceAll("_$1/$2/")+param_file; C'est peut etre plus propre via j2r ? Mais arrivera t'on a configurer la connexion R-java sur datarmor ? Sinon peut-on passer qqch en argument quand R lance isis, qui serait récupérable dans le simulation context ? * la modification des parametres de règles. On peut aller les lire un par un dans une matrice [simu x paramètre] et les modifier dans le plan, mais c'est un peu lourd. Dans le passé, je pouvais écrire des .txt avec ce type de format (ci-dessous) et les charger dans un objet Properties puis de faire un populateRule avec. Encore mieux, dans cet exemple, on a 2 modalités possibles de la regle GravityModelMixChannel et on indique laquelle on utilise. est ce toujours possible ? ca vous parait plus efficace ? puis de faire un populateRule (cf ci-dessous). 0=GravityModelMixChannel rule.0.parameter.behaviorBalance = 0.7 rule.0.parameter.beginDate=12 1=GravityModelMixChannel rule.1.parameter.behaviorBalance = 0.8 rule.1.parameter.beginDate=12 avec ce code Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name+".txt")))); int mod = 0; String ruleName = prop.getProperty(""+mod); RuleStorage ruleStorage = RuleStorage.getRule(ruleName); Rule rule = ruleStorage.getNewInstance(); RuleHelper.populateRule(mod, TopiaContext, rule, prop);
Le 01/08/2024 à 17:29, Sigrid LEHUTA a écrit :
Merci pour la réponse.
je vais réfléchir a un moyen de contourner alors.
Le 01/08/2024 à 17:27, Eric Chatellier a écrit :
Bonjour,
Il faudrait voir les modalité de lancement, mais je ne pense pas.
S'il est lancé en SSH, ce n'est pas permis car ce n'est pas un noeud de simulation.
Et s'il est lancé via "qsub", cela ne va pas non plus car l'ensemble du plan "tournerait" sur un seul noeud.
Le 31/07/2024 à 14:29, Sigrid LEHUTA a écrit :
Hello,
si je lance sur datarmor une simu preparée en local contenant un plan de simulation. ca va marcher ?
Merci
-- Sigrid LEHUTA
><> __/\__ ~ ><> ~ \____/ ~
Fisheries modeller IFREMER - HALGO-EMH Ecology and modeling for fisheries science DECOD Dynamics and sustainability of ecosystems: from source to sea AFH Association Française d'Halieutique (AFH)
Centre Atlantique - Rue de l'Ile d'Yeu BP 21105 - 44311 Nantes Cedex 03 Tel. : 02 40 37 42 38 (8238)
Participez à l'ENQUETE Réduction des captures de dauphins :https://http-proxy.cloud.codelutin.com/enquete_delmoges
https://peche.ifremer.fr/Le-role-de-l-Ifremer/Recherche/Projets/Description-...
https://www.francefilierepeche.fr/projets/gemmbe/ https://delmoges.recherche.univ-lr.fr/presentation-du-projet/ https://www.ices.dk/advice/ESD/Pages/Bay-of-Biscay-and-the-Iberian-Coast_Lan...
https://halgo.ifremer.fr/en https://www.umr-decod.fr/en https://www.association-francaise-halieutique.fr/
_______________________________________________ Isis-fish-users mailing list Isis-fish-users@list.isis-fish.org https://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users Archives et moteur de recherche: http://list.isis-fish.org/pipermail/isis-fish-users/
-- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
Oui, merci, j ai deja un code me permettant de lancer le zip. peux tu repondre aux questions specifiques dans mon mail stp. Si c est plus simple on s'appelle. Sigrid Le 27/11/2024 à 10:16, Eric Chatellier a écrit :
Ok, donc je ne vois pas réellement de blocage alors.
Il faudrait un fichier qsub avec:
#!/bin/csh /appli/emh-commun/isis-fish/jdk17/bin/java -Xmx2000M -jar /appli/emh-commun/isis-fish/isis-fish-4.4.8/isis-fish*.jar --option launch.ui false --option perform.vcsupdate false --option perform.migration false --option perform.cron false --simulateWithSimulation mon-ip-simulation_$PBS_ARRAY_INDEX chemin-zip-preparation.zip
Et lancer cela avec (exemple pour 1000 simulations) :
qsub -m n -l mem=2GB -l walltime=01:00:00 -J 0-1000 script.seq
Le 27/11/2024 à 10:00, Sigrid LEHUTA a écrit :
Le 27/11/2024 à 09:47, Eric Chatellier a écrit :
Bonjour,
Est-ce que le "zip de preparation" peut être le même pour toutes les simulations ? Oui
Est-il possible de baser, par exemple, toute la dynamicité du plan sur le numéro de simulation ? Sinon, c'est ce qui changerait dans le zip ? oui c est généralement le cas.
Je ne sais pas si tu sais, mais dans Isis il y a une option "Simulation/Préparer la simulation..." pour avoir ce zip justement.
oui oui c est ce qu'on fait quand on fait du LHS sur datarmor et ce à quoi je fais référence dans mon "option 1" quand je parle des zips.
Le 26/11/2024 à 18:13, Sigrid LEHUTA a écrit :
Bonsoir,
je reprends ma réflexion pour lancer un gros plan de simulation sur datarmor en profitant de la parallélisation mais en évitant
1) de mobiliser le PC qui doit envoyer les simus crées en local une par une sur datarmor et 2) sans rapatrier les résultats en local (je les attaquerai surement via R sur datarmor et ne rapatrierai que des petits fichiers synthétiques).
Pour info, le plan ne fait qu'ajouter des règles de gestion et modifié leurs paramètres selon la simu (il n'y a pas d'action en post simulation).
Je pense à plein de manières différentes de faire et je ne sais pas toutes les mener à bien, ni quelle est la + judicieuse/efficace. Je vous livre mes réflexions mais un coup de fil sera surement nécessaire.
_Malheureusement la demande est un peu pressée..._
Merci d'avance de votre aide !
Sigrid
Option 1 :
j'écris le plan de simu en java mais on shunte le lancement de la simu et au lieu qu'il lance la simu il ne fait que "préparer la simu" donc créer le zip. je mets tous ces zips sur datarmor et je demande à R de me lancer chaque simu en parallèle à partir d'un zip différent.
Mais je ne sais pas shunter le lancement de simu et preparer le zip a la place (j'imagine que c est ce qu il fait quand on lance sur datarmor depuis l interface), j'aurais besoin d'aide pour ça. en revanche je suis autonome sur le plan de simu.
Option 2 :
utiliser la structure mise en place pour lancer des LHS sur datarmor, dans laquelle c'est R qui lance isis et crée un dossier par simulation qui contient les fichiers utiles aux règles specifiques à chaque simu. Les regles sont ecrites de telle sorte à récuperer le chemin vers le bon dossier (a partir du numero de la simu contenu dans son nom) et pouvoir y lire les fichiers.
La question c'est : peut on faire lire a une regle un fichier avec ses propres parametres et les modifier en init ? Ou simplement on lit les nouvelles valeurs et elles ecrasent les valeurs par défaut ? Option 3 : la simu de ref contient le plan de simu qui ajoute les règles correctement configurées pour la simu en cours et qui ne lance que la simu courante. Ca je sais faire a partir du moment ou R passe l'info à isis du numero de la simu. Ensuite selon l'option il y a des détails que j'aimerais travailler : * Notamment le passage du numero de simu de R à isis, actuellement on fait récupère le numero de simu dans le string du nom de la simu :Stringsimu=context.getSimulationControl().getId();PatternsimulNamePattern=Pattern.compile("^(.+)_(i\\d+)$"); Stringpath=simulNamePattern.matcher(simu).replaceAll("_$1/$2/")+param_file; C'est peut etre plus propre via j2r ? Mais arrivera t'on a configurer la connexion R-java sur datarmor ? Sinon peut-on passer qqch en argument quand R lance isis, qui serait récupérable dans le simulation context ? * la modification des parametres de règles. On peut aller les lire un par un dans une matrice [simu x paramètre] et les modifier dans le plan, mais c'est un peu lourd. Dans le passé, je pouvais écrire des .txt avec ce type de format (ci-dessous) et les charger dans un objet Properties puis de faire un populateRule avec. Encore mieux, dans cet exemple, on a 2 modalités possibles de la regle GravityModelMixChannel et on indique laquelle on utilise. est ce toujours possible ? ca vous parait plus efficace ? puis de faire un populateRule (cf ci-dessous). 0=GravityModelMixChannel rule.0.parameter.behaviorBalance = 0.7 rule.0.parameter.beginDate=12 1=GravityModelMixChannel rule.1.parameter.behaviorBalance = 0.8 rule.1.parameter.beginDate=12 avec ce code Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name+".txt")))); int mod = 0; String ruleName = prop.getProperty(""+mod); RuleStorage ruleStorage = RuleStorage.getRule(ruleName); Rule rule = ruleStorage.getNewInstance(); RuleHelper.populateRule(mod, TopiaContext, rule, prop);
Le 01/08/2024 à 17:29, Sigrid LEHUTA a écrit :
Merci pour la réponse.
je vais réfléchir a un moyen de contourner alors.
Le 01/08/2024 à 17:27, Eric Chatellier a écrit :
Bonjour,
Il faudrait voir les modalité de lancement, mais je ne pense pas.
S'il est lancé en SSH, ce n'est pas permis car ce n'est pas un noeud de simulation.
Et s'il est lancé via "qsub", cela ne va pas non plus car l'ensemble du plan "tournerait" sur un seul noeud.
Le 31/07/2024 à 14:29, Sigrid LEHUTA a écrit : > Hello, > > si je lance sur datarmor une simu preparée en local contenant un > plan de simulation. ca va marcher ? > > Merci >
-- Sigrid LEHUTA
><> __/\__ ~ ><> ~ \____/ ~
Fisheries modeller IFREMER - HALGO-EMH Ecology and modeling for fisheries science DECOD Dynamics and sustainability of ecosystems: from source to sea AFH Association Française d'Halieutique (AFH)
Centre Atlantique - Rue de l'Ile d'Yeu BP 21105 - 44311 Nantes Cedex 03 Tel. : 02 40 37 42 38 (8238)
Participez à l'ENQUETE Réduction des captures de dauphins :https://http-proxy.cloud.codelutin.com/enquete_delmoges
https://peche.ifremer.fr/Le-role-de-l-Ifremer/Recherche/Projets/Description-...
https://www.francefilierepeche.fr/projets/gemmbe/ https://delmoges.recherche.univ-lr.fr/presentation-du-projet/ https://www.ices.dk/advice/ESD/Pages/Bay-of-Biscay-and-the-Iberian-Coast_Lan...
https://halgo.ifremer.fr/en https://www.umr-decod.fr/en https://www.association-francaise-halieutique.fr/
_______________________________________________ Isis-fish-users mailing list Isis-fish-users@list.isis-fish.org https://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users Archives et moteur de recherche: http://list.isis-fish.org/pipermail/isis-fish-users/
-- Sigrid LEHUTA ><> __/\__ ~ ><> ~ \____/ ~ Fisheries modeller IFREMER - HALGO-EMH Ecology and modeling for fisheries science DECOD Dynamics and sustainability of ecosystems: from source to sea AFH Association Française d'Halieutique (AFH) Centre Atlantique - Rue de l'Ile d'Yeu BP 21105 - 44311 Nantes Cedex 03 Tel. : 02 40 37 42 38 (8238) Participez à l'ENQUETE Réduction des captures de dauphins : https://http-proxy.cloud.codelutin.com/enquete_delmoges https://peche.ifremer.fr/Le-role-de-l-Ifremer/Recherche/Projets/Description-... https://www.francefilierepeche.fr/projets/gemmbe/ https://delmoges.recherche.univ-lr.fr/presentation-du-projet/ https://www.ices.dk/advice/ESD/Pages/Bay-of-Biscay-and-the-Iberian-Coast_Lan... https://halgo.ifremer.fr/en https://www.umr-decod.fr/en https://www.association-francaise-halieutique.fr/
Option 2 :
utiliser la structure mise en place pour lancer des LHS sur datarmor, dans laquelle c'est R qui lance isis et crée un dossier par simulation qui contient les fichiers utiles aux règles specifiques à chaque simu. Les regles sont ecrites de telle sorte à récuperer le chemin vers le bon dossier (a partir du numero de la simu contenu dans son nom) et pouvoir y lire les fichiers.
La question c'est : peut on faire lire a une regle un fichier avec ses propres parametres et les modifier en init ? Ou simplement on lit les nouvelles valeurs et elles ecrasent les valeurs par défaut ?
Pour info et mémoire voici les réponses obtenues par téléphone et les besoins en exemple de script. Merci Le 26/11/2024 à 18:13, Sigrid LEHUTA a écrit : pas efficace. les init et conditions des regles seront tous evalués meme si la regle ne s'applique pas.
Option 3 : la simu de ref contient le plan de simu qui ajoute les règles correctement configurées pour la simu en cours et qui ne lance que la simu courante. Un zip ne peut pas contenir un plan de simu car c est le plan de simu qui crée le zip -> passer par un préscript. Exemple a venir. passage du numero de simu de R à isis, actuellement on fait récupère le numero de simu dans le string du nom de la simu :Stringsimu=context.getSimulationControl().getId();PatternsimulNamePattern=Pattern.compile("^(.+)_(i\\d+)$"); Stringpath=simulNamePattern.matcher(simu).replaceAll("_$1/$2/")+param_file;
C'est peut etre plus propre via j2r ? Mais arrivera t'on a configurer la connexion R-java sur datarmor ?
C est le seul moyen, car le nom est la seule info qui est passée à isis. pas possible car ce n est pas la meme session R qui lance isis que celle qu'isis ouvre au sein de la simu.
* la modification des parametres de règles. Dans le passé, je pouvais écrire des .txt avec ce type de format (ci-dessous) et les charger dans un objet Properties puis de faire un populateRule avec. Encore mieux, dans cet exemple, on a 2 modalités possibles de la regle GravityModelMixChannel et on indique laquelle on utilise. est ce toujours possible ?
Toujours possible. Exemple de code mis à jour pour la nouvelle implementation des regles à venir.
0=GravityModelMixChannel rule.0.parameter.behaviorBalance = 0.7 rule.0.parameter.beginDate=12 1=GravityModelMixChannel rule.1.parameter.behaviorBalance = 0.8 rule.1.parameter.beginDate=12 avec ce code Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name+".txt")))); int mod = 0; String ruleName = prop.getProperty(""+mod); RuleStorage ruleStorage = RuleStorage.getRule(ruleName); Rule rule = ruleStorage.getNewInstance(); RuleHelper.populateRule(mod, TopiaContext, rule, prop);
Le 01/08/2024 à 17:29, Sigrid LEHUTA a écrit :
Merci pour la réponse.
je vais réfléchir a un moyen de contourner alors.
Le 01/08/2024 à 17:27, Eric Chatellier a écrit :
Bonjour,
Il faudrait voir les modalité de lancement, mais je ne pense pas.
S'il est lancé en SSH, ce n'est pas permis car ce n'est pas un noeud de simulation.
Et s'il est lancé via "qsub", cela ne va pas non plus car l'ensemble du plan "tournerait" sur un seul noeud.
Le 31/07/2024 à 14:29, Sigrid LEHUTA a écrit :
Hello,
si je lance sur datarmor une simu preparée en local contenant un plan de simulation. ca va marcher ?
Merci
-- Sigrid LEHUTA
><> __/\__ ~ ><> ~ \____/ ~
Fisheries modeller IFREMER - HALGO-EMH Ecology and modeling for fisheries science DECOD Dynamics and sustainability of ecosystems: from source to sea AFH Association Française d'Halieutique (AFH)
Centre Atlantique - Rue de l'Ile d'Yeu BP 21105 - 44311 Nantes Cedex 03 Tel. : 02 40 37 42 38 (8238)
Participez à l'ENQUETE Réduction des captures de dauphins :https://http-proxy.cloud.codelutin.com/enquete_delmoges
https://peche.ifremer.fr/Le-role-de-l-Ifremer/Recherche/Projets/Description-... https://www.francefilierepeche.fr/projets/gemmbe/ https://delmoges.recherche.univ-lr.fr/presentation-du-projet/ https://www.ices.dk/advice/ESD/Pages/Bay-of-Biscay-and-the-Iberian-Coast_Lan... https://halgo.ifremer.fr/en https://www.umr-decod.fr/en https://www.association-francaise-halieutique.fr/
-- Sigrid LEHUTA ><> __/\__ ~ ><> ~ \____/ ~ Fisheries modeller IFREMER - HALGO-EMH Ecology and modeling for fisheries science DECOD Dynamics and sustainability of ecosystems: from source to sea AFH Association Française d'Halieutique (AFH) Centre Atlantique - Rue de l'Ile d'Yeu BP 21105 - 44311 Nantes Cedex 03 Tel. : 02 40 37 42 38 (8238) Participez à l'ENQUETE Réduction des captures de dauphins :https://http-proxy.cloud.codelutin.com/enquete_delmoges https://peche.ifremer.fr/Le-role-de-l-Ifremer/Recherche/Projets/Description-... https://www.francefilierepeche.fr/projets/gemmbe/ https://delmoges.recherche.univ-lr.fr/presentation-du-projet/ https://www.ices.dk/advice/ESD/Pages/Bay-of-Biscay-and-the-Iberian-Coast_Lan... https://halgo.ifremer.fr/en https://www.umr-decod.fr/en https://www.association-francaise-halieutique.fr/
Voici un exemple de prescrit qui modifie les parametres AVANT la simulation (exemple avec des regles): String simu = context.getSimulationControl().getId(); java.util.regex.Pattern simulNamePattern = java.util.regex.Pattern.compile("^.+_(\\d+)$"); java.util.regex.Matcher matcher = simulNamePattern.matcher(simu); matcher.find(); int numero = Integer.parseInt(matcher.group(1)); SimulationParameter parameter = context.getSimulationStorage().getParameter(); parameter.clearRules(); // suppresison des regles deja existante ? // ajout regle 1 GravityModelMixChannel regle1 = new GravityModelMixChannel(); regle1.param_behaviorBalance = 0.7; regle1.param_beginDate = new TimeStep(12); parameter.addRule(regle1); // populate params Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File("/home/.../dir", "file-" + numero + ".txt")))); GravityModelMixChannel regle2 = new GravityModelMixChannel(); RuleHelper.populateRule(0, db, regle2, prop); parameter.addRule(regle2); if (numero == 42) { // cas specifique ... } Le 27/11/2024 à 11:06, Sigrid LEHUTA a écrit :
* la modification des parametres de règles. Dans le passé, je pouvais écrire des .txt avec ce type de format (ci-dessous) et les charger dans un objet Properties puis de faire un populateRule avec. Encore mieux, dans cet exemple, on a 2 modalités possibles de la regle GravityModelMixChannel et on indique laquelle on utilise. est ce toujours possible ?
Toujours possible. Exemple de code mis à jour pour la nouvelle implementation des regles à venir.
0=GravityModelMixChannel rule.0.parameter.behaviorBalance = 0.7 rule.0.parameter.beginDate=12 1=GravityModelMixChannel rule.1.parameter.behaviorBalance = 0.8 rule.1.parameter.beginDate=12 avec ce code Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name+".txt")))); int mod = 0; String ruleName = prop.getProperty(""+mod); RuleStorage ruleStorage = RuleStorage.getRule(ruleName); Rule rule = ruleStorage.getNewInstance(); RuleHelper.populateRule(mod, TopiaContext, rule, prop);
-- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
Salut Eric, j'avance sur mon préscript (en pj) mais j'ai plein de questions car je n'ai jamais utilisé ça avant : - ou dois je le ranger (quel dossier ?). Faut-il le copier/coller dans l'nterface ? - comment je recupère le SimulationContext ? - Y at'il une syntaxe de début de script ? un main ou autre ? - puis je vérifier la compilation avant de lancer ? - Comment il sait qu'il y a plusieurs simus ? j'ajoute un plan d'exp qui ne fait que limiter le nb de simus ? Merci ! Le 27/11/2024 à 11:28, Eric Chatellier a écrit :
Voici un exemple de prescrit qui modifie les parametres AVANT la simulation (exemple avec des regles):
String simu = context.getSimulationControl().getId(); java.util.regex.Pattern simulNamePattern = java.util.regex.Pattern.compile("^.+_(\\d+)$"); java.util.regex.Matcher matcher = simulNamePattern.matcher(simu); matcher.find(); int numero = Integer.parseInt(matcher.group(1));
SimulationParameter parameter = context.getSimulationStorage().getParameter(); parameter.clearRules(); // suppresison des regles deja existante ?
// ajout regle 1 GravityModelMixChannel regle1 = new GravityModelMixChannel(); regle1.param_behaviorBalance = 0.7; regle1.param_beginDate = new TimeStep(12); parameter.addRule(regle1);
// populate params Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File("/home/.../dir", "file-" + numero + ".txt")))); GravityModelMixChannel regle2 = new GravityModelMixChannel(); RuleHelper.populateRule(0, db, regle2, prop); parameter.addRule(regle2);
if (numero == 42) { // cas specifique ...
}
Le 27/11/2024 à 11:06, Sigrid LEHUTA a écrit :
* la modification des parametres de règles. Dans le passé, je pouvais écrire des .txt avec ce type de format (ci-dessous) et les charger dans un objet Properties puis de faire un populateRule avec. Encore mieux, dans cet exemple, on a 2 modalités possibles de la regle GravityModelMixChannel et on indique laquelle on utilise. est ce toujours possible ?
Toujours possible. Exemple de code mis à jour pour la nouvelle implementation des regles à venir.
0=GravityModelMixChannel rule.0.parameter.behaviorBalance = 0.7 rule.0.parameter.beginDate=12 1=GravityModelMixChannel rule.1.parameter.behaviorBalance = 0.8 rule.1.parameter.beginDate=12 avec ce code Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name+".txt")))); int mod = 0; String ruleName = prop.getProperty(""+mod); RuleStorage ruleStorage = RuleStorage.getRule(ruleName); Rule rule = ruleStorage.getNewInstance(); RuleHelper.populateRule(mod, TopiaContext, rule, prop);
-- /!\ Boite mail saturée (en cours de nettoyage laborieux) Pour ma santé mentale et l'environnement, merci d'éviter les pièces jointes au maximum. -- Sigrid LEHUTA ><> __/\__ ~ ><> ~ \____/ ~ Fisheries modeller IFREMER - HALGO-EMH Ecology and modeling for fisheries science DECOD Dynamics and sustainability of ecosystems: from source to sea AFH Association Française d'Halieutique (AFH) Centre Atlantique - Rue de l'Ile d'Yeu BP 21105 - 44311 Nantes Cedex 03 Tel. : 02 40 37 42 38 (8238) Participez à l'ENQUETE Réduction des captures de dauphins : https://http-proxy.cloud.codelutin.com/enquete_delmoges https://peche.ifremer.fr/Le-role-de-l-Ifremer/Recherche/Projets/Description-... https://www.francefilierepeche.fr/projets/gemmbe/ https://delmoges.recherche.univ-lr.fr/presentation-du-projet/ https://www.ices.dk/advice/ESD/Pages/Bay-of-Biscay-and-the-Iberian-Coast_Lan... https://halgo.ifremer.fr/en https://www.umr-decod.fr/en https://www.association-francaise-halieutique.fr/
Le 05/02/2025 à 11:56, Sigrid LEHUTA a écrit :
Salut Eric, Bonjour,
j'avance sur mon préscript (en pj) mais j'ai plein de questions car je n'ai jamais utilisé ça avant :
- ou dois je le ranger (quel dossier ?). Faut-il le copier/coller dans l'nterface ? Il n'y a pas de dossier, il faut le copier dans l'interface
- comment je recupère le SimulationContext ? L'objet "context" est disponible.
- Y at'il une syntaxe de début de script ? un main ou autre ? non aucune. Il faut supposer qu'on est déjà dans le main
- puis je vérifier la compilation avant de lancer ? Il ne me semble pas.
- Comment il sait qu'il y a plusieurs simus ? j'ajoute un plan d'exp qui ne fait que limiter le nb de simus ?
Le precript ne s'execute que dans le cas d'une simulation unitaire. Pour détecter que la simulation fait partie d'un plan, on peut utiliser : - context.getSimulationStorage().getParameter().getSimulationPlanNumber() ou l'astuce avec le nom de la simulation qui termine par "_xxx" SimulationControl control = context.getSimulationControl(); String id = control.getId(); int number = -1; // si ca fini par _xx, alors on est dans un plan ou une as if (id.matches(".*_\\d+")) { number = Integer.parseInt(id.substring(id.lastIndexOf("_") + 1)); } -- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
Salut Eric, le préscript ne compile pas et pas d'indication sur ce qui ne va pas. Pourrais tu y jeter un oeil s'il te plait ? ci dessous prescript et message d'erreur. Merci ! -------------------------- Prescript : import fr.ifremer.isisfish.annotations.Doc; import fr.ifremer.isisfish.simulator.*;//SimulationParameter; import org.nuiton.math.matrix.MatrixFactory; import org.nuiton.math.matrix.MatrixND; import rules.EffortReduction_Fermetures_PreSimu_Delmoges; import fr.ifremer.isisfish.types.Month; import java.util.*; import java.io.*; import java.util.regex.*; //recup num de simu String simu = context.getSimulationControl().getId(); java.util.regex.Pattern simulNamePattern =java.util.regex.Pattern.compile("^.+_(\\d+)$"); // pour un nom de simu quelconque terminant par "_XXX" XXX etat des chiffres java.util.regex.Matcher matcher =simulNamePattern.matcher(simu); matcher.find(); int numero =Integer.parseInt(matcher.group(1)); SimulationParameter parameter = context.getSimulationStorage().getParameter(); // parameter.clearRules(); // suppresison des regles deja existante ? non il y aura le forcage d effort a laisser // read matrice d'experience matExp // [simu x rules] contient les modalités String param_pathExpMatrix ="InputsDelmoges/MatExp_fev2025.csv" ; int matrix_length =47; int parameterNumber =9; MatrixND matExp =MatrixFactory.getInstance().create(new int[]{matrix_length,parameterNumber}); matrix.importCSV(new FileReader(new File(param_pathExpMatrix)),new int[]{0,0}); List<Integer> dim0 =new ArrayList<Integer>(); for (int i=0;i <matrix_length;i++) { dim0.add(i); } matExp.setSemantic(0,dim0); matExp.setSemantic(1,Arrays.asList( new String[]{"simu","ferm1startMonth","ferm1duree","ferm1endMonth","ferm2startMonth","txReduction", "Realloc","txRealloc","txNavAQuai"})); System.out.println("plan d'exp :"+matExp); ///////////////////////////////////////////////////////////////////////////// // Read matrix values double txNavQuai =matExp.getValue(numero,"txNavAQuai"); double txRed =matExp.getValue(numero,"txReduction"); double txRealloc =matExp.getValue(numero,"txRealloc"); int Realloc =matExp.getValue(numero,"Realloc"); int deb1 =matExp.getValue(numero,"ferm1startMonth"); int fin1 =matExp.getValue(numero,"ferm1endMonth"); int deb2 =matExp.getValue(numero,"ferm2startMonth"); List<Month> months =Month.getMonths(Month.JANUARY,Month.DECEMBER); Boolean Brealloc =true; if(Realloc ==0)Brealloc =false; // ajout regle 1 EffortReduction_Fermetures_PreSimu_Delmoges ruleDelmoges =new EffortReduction_Fermetures_PreSimu_Delmoges(); ruleDelmoges.param_beginMonthFermeture = months.get(deb1); ruleDelmoges.param_endMonthFermeture = months.get(fin1); ruleDelmoges.param_txReduction =txRed; ruleDelmoges.param_reallocation =Brealloc; ruleDelmoges.param_txReallocation =txRealloc; ruleDelmoges.param_txAquai =txNavQuai; parameter.addRule(ruleDelmoges); // ajoute regle 2 : fermeture ete si besoin if (deb2 !=13){// remettre les 2 memes pour l'ete } EffortReduction_Fermetures_PreSimu_Delmoges ferm2 =new EffortReduction_Fermetures_PreSimu_Delmoges(); ferm2.param_beginMonthFermeture =months.get(deb2); ferm2.param_endMonthFermeture =months.get(deb2); ruleDelmoges.param_txReduction =0; ruleDelmoges.param_reallocation =Brealloc; ruleDelmoges.param_txReallocation =txRealloc; ruleDelmoges.param_txAquai =txNavQuai; parameter.addRule(ferm2); } -------------------------- Message d'erreur : 2025-02-21 10:41:02,559 INFO [pool-3-thread-2] (SimulationStorage.java:560) getSimulation - Try to open simulation sim_test_prescriptDelmoges_2025-02-21-10-35_0(C:\Users\slehuta\isis-fish-4\isis-database\simulations\sim_test_prescriptDelmoges_2025-02-21-10-35_0) 2025-02-21 10:41:03,420 INFO [monitor-thread] (SimulationControl.java:206) setText - Simulation terminée 2025-02-21 10:41:03,428 WARN [monitor-thread] (SimulationMonitor.java:521) checkProgression - Simulation exception : fr.ifremer.isisfish.simulator.SimulationException: Can't evaluate simulation prescript at fr.ifremer.isisfish.simulator.SimulationPreScriptListener.beforeSimulation(SimulationPreScriptListener.java:85) at fr.ifremer.isisfish.simulator.SimulationContext.fireBeforeSimulation(SimulationContext.java:279) at fr.ifremer.isisfish.simulator.launcher.InProcessSimulatorLauncher.localSimulateSameThread(InProcessSimulatorLauncher.java:434) at fr.ifremer.isisfish.simulator.launcher.InProcessSimulatorLauncher$SimThread.run(InProcessSimulatorLauncher.java:262) Caused by: fr.ifremer.isisfish.IsisFishRuntimeException: Impossible de compiler le script : C:\Users\slehuta\isis-fish-4\isis-sim-build\sim_test_prescriptDelmoges_2025-02-21-10-35_0\fr.ifremer.isisfish.simulator\SimulationPreScriptPreScript.java at fr.ifremer.isisfish.util.EvaluatorHelper.compile(EvaluatorHelper.java:398) at fr.ifremer.isisfish.util.EvaluatorHelper.compileAndGetClass(EvaluatorHelper.java:283) at fr.ifremer.isisfish.util.EvaluatorHelper.evaluate(EvaluatorHelper.java:350) at fr.ifremer.isisfish.simulator.SimulationPreScriptListener.beforeSimulation(SimulationPreScriptListener.java:77) ... 3 more Caused by: fr.ifremer.isisfish.IsisFishRuntimeException: Impossible de compiler le script : -1 at fr.ifremer.isisfish.util.EvaluatorHelper.compile(EvaluatorHelper.java:395) ... 6 more Le 05/02/2025 à 12:24, Eric Chatellier a écrit :
Le 05/02/2025 à 11:56, Sigrid LEHUTA a écrit :
Salut Eric, Bonjour,
j'avance sur mon préscript (en pj) mais j'ai plein de questions car je n'ai jamais utilisé ça avant :
- ou dois je le ranger (quel dossier ?). Faut-il le copier/coller dans l'nterface ? Il n'y a pas de dossier, il faut le copier dans l'interface
- comment je recupère le SimulationContext ? L'objet "context" est disponible.
- Y at'il une syntaxe de début de script ? un main ou autre ? non aucune. Il faut supposer qu'on est déjà dans le main
- puis je vérifier la compilation avant de lancer ? Il ne me semble pas.
- Comment il sait qu'il y a plusieurs simus ? j'ajoute un plan d'exp qui ne fait que limiter le nb de simus ?
Le precript ne s'execute que dans le cas d'une simulation unitaire.
Pour détecter que la simulation fait partie d'un plan, on peut utiliser :
- context.getSimulationStorage().getParameter().getSimulationPlanNumber()
ou l'astuce avec le nom de la simulation qui termine par "_xxx"
SimulationControl control = context.getSimulationControl(); String id = control.getId(); int number = -1; // si ca fini par _xx, alors on est dans un plan ou une as if (id.matches(".*_\\d+")) { number = Integer.parseInt(id.substring(id.lastIndexOf("_") + 1)); }
-- /!\ Boite mail saturée (en cours de nettoyage laborieux) Pour ma santé mentale et l'environnement, merci d'éviter les pièces jointes au maximum. -- Sigrid LEHUTA ><> __/\__ ~ ><> ~ \____/ ~ Fisheries modeller IFREMER - HALGO-EMH Ecology and modeling for fisheries science DECOD Dynamics and sustainability of ecosystems: from source to sea AFH Association Française d'Halieutique (AFH) Centre Atlantique - Rue de l'Ile d'Yeu BP 21105 - 44311 Nantes Cedex 03 Tel. : 02 40 37 42 38 (8238) Participez à l'ENQUETE Réduction des captures de dauphins :https://http-proxy.cloud.codelutin.com/enquete_delmoges https://peche.ifremer.fr/Le-role-de-l-Ifremer/Recherche/Projets/Description-... https://www.francefilierepeche.fr/projets/gemmbe/ https://delmoges.recherche.univ-lr.fr/presentation-du-projet/ https://www.ices.dk/advice/ESD/Pages/Bay-of-Biscay-and-the-Iberian-Coast_Lan... https://halgo.ifremer.fr/en https://www.umr-decod.fr/en https://www.association-francaise-halieutique.fr/
J'ai plusieurs erreurs dans les logs: matrix.importCSV(new FileReader(new File(param_pathExpMatrix)), new int[]{0,0}); ^^^^^^ matrix cannot be resolved int Realloc = matExp.getValue(numero,"Realloc"); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Type mismatch: cannot convert from double to int int deb1 = matExp.getValue(numero,"ferm1startMonth"); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Type mismatch: cannot convert from double to int int fin1 = matExp.getValue(numero,"ferm1endMonth"); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Type mismatch: cannot convert from double to int int deb2 = matExp.getValue(numero,"ferm2startMonth"); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Type mismatch: cannot convert from double to int Après, j'ai plusieurs erreur liées à "rules.EffortReduction_Fermetures_PreSimu_Delmoges", mais c'est normal je pense, car ca ne peut pas fonctionner sans qu'un plan n'ajoute la règle avec "addExtraRules". Ou alors, il faudrait que la regles soit incluse dans la simulation pour être embarquées (quitte à être supprimé par le prescript, mais ce n'est pas évident). Le 21/02/2025 à 10:50, Sigrid LEHUTA a écrit :
Salut Eric,
le préscript ne compile pas et pas d'indication sur ce qui ne va pas. Pourrais tu y jeter un oeil s'il te plait ?
ci dessous prescript et message d'erreur.
Merci !
--------------------------
-- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
Merci ça tourne ! mais ca ne marche pas :-( Ce qui ne marche pas : a priori addRule et clearRules car J'ai ajouté la règle dans l'interface puis le préscript fait clearRules() puis ajoute la regle et en modifie les parametres. La simu tourne mais dans la simu la regle a les param entrés dans l'interface et non les param modifiés. Une idée ? Merci ! import fr.ifremer.isisfish.annotations.Doc; import fr.ifremer.isisfish.simulator.*;//SimulationParameter; import org.nuiton.math.matrix.MatrixFactory; import org.nuiton.math.matrix.MatrixND; import rules.EffortReduction_Fermetures_PreSimu_Delmoges; //import rules.EffortReduction; import fr.ifremer.isisfish.types.Month; import fr.ifremer.isisfish.rule.Rule; import java.util.*; import java.io.*; import java.util.regex.*; //recup num de simu String simu = context.getSimulationControl().getId(); java.util.regex.Pattern simulNamePattern =java.util.regex.Pattern.compile("^.+_(\\d+)$"); // pour un nom de simu quelconque terminant par "_XXX" XXX etat des chiffres java.util.regex.Matcher matcher =simulNamePattern.matcher(simu); matcher.find(); int numero =Integer.parseInt(matcher.group(1)); System.out.println("numero de simu : "+numero); SimulationParameter parameter = context.getSimulationStorage().getParameter(); parameter.clearRules();// suppresison des regles deja existante // read matrice d'experience matExp // [simu x rules] contient les modalités String param_pathExpMatrix ="InputsDelmoges/MatExp_fev2025.csv" ; int matrix_length =47; int parameterNumber =9; MatrixND matExp =MatrixFactory.getInstance().create(new int[]{matrix_length,parameterNumber}); matExp.importCSV(new FileReader(new File(param_pathExpMatrix)),new int[]{0,0}); List<Integer> dim0 =new ArrayList<Integer>(); for (int i=0;i <matrix_length;i++) { dim0.add(i); } matExp.setSemantic(0,dim0); matExp.setSemantic(1,Arrays.asList( new String[]{"simu","ferm1startMonth","ferm1duree","ferm1endMonth","ferm2startMonth","txReduction", "Realloc","txRealloc","txNavAQuai"})); System.out.println("plan d'exp :"+matExp); ///////////////////////////////////////////////////////////////////////////// // Read matrix values double txNavQuai =matExp.getValue(numero,"txNavAQuai"); double txRed =matExp.getValue(numero,"txReduction"); double txRealloc =matExp.getValue(numero,"txRealloc"); int Realloc = (int)matExp.getValue(numero,"Realloc"); int deb1 = (int)matExp.getValue(numero,"ferm1startMonth"); int fin1 = (int)matExp.getValue(numero,"ferm1endMonth"); int deb2 = (int)matExp.getValue(numero,"ferm2startMonth"); List<Month> months =Month.getMonths(Month.JANUARY,Month.DECEMBER); Boolean Brealloc =true; if(Realloc ==0)Brealloc =false; // test ajout d'une regle EffortReductiontest =new EffortReduction(); parameter.addRule(test); // ajout regle 1 EffortReduction_Fermetures_PreSimu_Delmoges ruleDelmoges =new EffortReduction_Fermetures_PreSimu_Delmoges(); ruleDelmoges.param_beginMonthFermeture = months.get(deb1); //ruleDelmoges.param_endMonthFermeture = months.get(fin1); ruleDelmoges.param_endMonthFermeture = months.get(0); ruleDelmoges.param_txReduction =txRed; ruleDelmoges.param_reallocation =Brealloc; ruleDelmoges.param_txReallocation =txRealloc; ruleDelmoges.param_txAquai =txNavQuai; parameter.addRule(ruleDelmoges); // ajoute regle 2 : fermeture ete si besoin if (deb2 !=13){// remettre les 2 memes pour l'ete } EffortReduction_Fermetures_PreSimu_Delmoges ferm2 =new EffortReduction_Fermetures_PreSimu_Delmoges(); ferm2.param_beginMonthFermeture =months.get(deb2); ferm2.param_endMonthFermeture =months.get(deb2); ruleDelmoges.param_txReduction =0; ruleDelmoges.param_reallocation =Brealloc; ruleDelmoges.param_txReallocation =txRealloc; ruleDelmoges.param_txAquai =txNavQuai; parameter.addRule(ferm2); } Le 24/02/2025 à 12:01, Eric Chatellier a écrit :
J'ai plusieurs erreurs dans les logs:
matrix.importCSV(new FileReader(new File(param_pathExpMatrix)), new int[]{0,0}); ^^^^^^ matrix cannot be resolved
int Realloc = matExp.getValue(numero,"Realloc"); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Type mismatch: cannot convert from double to int
int deb1 = matExp.getValue(numero,"ferm1startMonth"); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Type mismatch: cannot convert from double to int
int fin1 = matExp.getValue(numero,"ferm1endMonth"); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Type mismatch: cannot convert from double to int
int deb2 = matExp.getValue(numero,"ferm2startMonth"); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Type mismatch: cannot convert from double to int
Après, j'ai plusieurs erreur liées à "rules.EffortReduction_Fermetures_PreSimu_Delmoges", mais c'est normal je pense, car ca ne peut pas fonctionner sans qu'un plan n'ajoute la règle avec "addExtraRules". Ou alors, il faudrait que la regles soit incluse dans la simulation pour être embarquées (quitte à être supprimé par le prescript, mais ce n'est pas évident).
Le 21/02/2025 à 10:50, Sigrid LEHUTA a écrit :
Salut Eric,
le préscript ne compile pas et pas d'indication sur ce qui ne va pas. Pourrais tu y jeter un oeil s'il te plait ?
ci dessous prescript et message d'erreur.
Merci !
--------------------------
-- /!\ Boite mail saturée (en cours de nettoyage laborieux) Pour ma santé mentale et l'environnement, merci d'éviter les pièces jointes au maximum. -- Sigrid LEHUTA ><> __/\__ ~ ><> ~ \____/ ~ Fisheries modeller IFREMER - HALGO-EMH Ecology and modeling for fisheries science DECOD Dynamics and sustainability of ecosystems: from source to sea AFH Association Française d'Halieutique (AFH) Centre Atlantique - Rue de l'Ile d'Yeu BP 21105 - 44311 Nantes Cedex 03 Tel. : 02 40 37 42 38 (8238) Participez à l'ENQUETE Réduction des captures de dauphins :https://http-proxy.cloud.codelutin.com/enquete_delmoges https://peche.ifremer.fr/Le-role-de-l-Ifremer/Recherche/Projets/Description-... https://www.francefilierepeche.fr/projets/gemmbe/ https://delmoges.recherche.univ-lr.fr/presentation-du-projet/ https://www.ices.dk/advice/ESD/Pages/Bay-of-Biscay-and-the-Iberian-Coast_Lan... https://halgo.ifremer.fr/en https://www.umr-decod.fr/en https://www.association-francaise-halieutique.fr/
Hello je me permets de relancer car je vais avoir besoin de ce code rapidement. Merci ! Le 26/02/2025 à 18:15, Sigrid LEHUTA a écrit :
Merci ça tourne ! mais ca ne marche pas :-(
Ce qui ne marche pas : a priori addRule et clearRules
car
J'ai ajouté la règle dans l'interface puis le préscript fait clearRules() puis ajoute la regle et en modifie les parametres.
La simu tourne mais dans la simu la regle a les param entrés dans l'interface et non les param modifiés.
Une idée ?
Merci !
import fr.ifremer.isisfish.annotations.Doc; import fr.ifremer.isisfish.simulator.*;//SimulationParameter; import org.nuiton.math.matrix.MatrixFactory; import org.nuiton.math.matrix.MatrixND; import rules.EffortReduction_Fermetures_PreSimu_Delmoges; //import rules.EffortReduction; import fr.ifremer.isisfish.types.Month; import fr.ifremer.isisfish.rule.Rule;
import java.util.*; import java.io.*; import java.util.regex.*;
//recup num de simu String simu = context.getSimulationControl().getId(); java.util.regex.Pattern simulNamePattern =java.util.regex.Pattern.compile("^.+_(\\d+)$"); // pour un nom de simu quelconque terminant par "_XXX" XXX etat des chiffres java.util.regex.Matcher matcher =simulNamePattern.matcher(simu); matcher.find(); int numero =Integer.parseInt(matcher.group(1)); System.out.println("numero de simu : "+numero);
SimulationParameter parameter = context.getSimulationStorage().getParameter(); parameter.clearRules();// suppresison des regles deja existante // read matrice d'experience matExp // [simu x rules] contient les modalités String param_pathExpMatrix ="InputsDelmoges/MatExp_fev2025.csv" ; int matrix_length =47; int parameterNumber =9; MatrixND matExp =MatrixFactory.getInstance().create(new int[]{matrix_length,parameterNumber}); matExp.importCSV(new FileReader(new File(param_pathExpMatrix)),new int[]{0,0}); List<Integer> dim0 =new ArrayList<Integer>(); for (int i=0;i <matrix_length;i++) { dim0.add(i); } matExp.setSemantic(0,dim0); matExp.setSemantic(1,Arrays.asList( new String[]{"simu","ferm1startMonth","ferm1duree","ferm1endMonth","ferm2startMonth","txReduction", "Realloc","txRealloc","txNavAQuai"})); System.out.println("plan d'exp :"+matExp); ///////////////////////////////////////////////////////////////////////////// // Read matrix values double txNavQuai =matExp.getValue(numero,"txNavAQuai"); double txRed =matExp.getValue(numero,"txReduction"); double txRealloc =matExp.getValue(numero,"txRealloc"); int Realloc = (int)matExp.getValue(numero,"Realloc"); int deb1 = (int)matExp.getValue(numero,"ferm1startMonth"); int fin1 = (int)matExp.getValue(numero,"ferm1endMonth"); int deb2 = (int)matExp.getValue(numero,"ferm2startMonth");
List<Month> months =Month.getMonths(Month.JANUARY,Month.DECEMBER); Boolean Brealloc =true; if(Realloc ==0)Brealloc =false;
// test ajout d'une regle EffortReductiontest =new EffortReduction(); parameter.addRule(test);
// ajout regle 1 EffortReduction_Fermetures_PreSimu_Delmoges ruleDelmoges =new EffortReduction_Fermetures_PreSimu_Delmoges(); ruleDelmoges.param_beginMonthFermeture = months.get(deb1); //ruleDelmoges.param_endMonthFermeture = months.get(fin1); ruleDelmoges.param_endMonthFermeture = months.get(0); ruleDelmoges.param_txReduction =txRed; ruleDelmoges.param_reallocation =Brealloc; ruleDelmoges.param_txReallocation =txRealloc; ruleDelmoges.param_txAquai =txNavQuai;
parameter.addRule(ruleDelmoges);
// ajoute regle 2 : fermeture ete si besoin if (deb2 !=13){// remettre les 2 memes pour l'ete } EffortReduction_Fermetures_PreSimu_Delmoges ferm2 =new EffortReduction_Fermetures_PreSimu_Delmoges(); ferm2.param_beginMonthFermeture =months.get(deb2); ferm2.param_endMonthFermeture =months.get(deb2); ruleDelmoges.param_txReduction =0; ruleDelmoges.param_reallocation =Brealloc; ruleDelmoges.param_txReallocation =txRealloc; ruleDelmoges.param_txAquai =txNavQuai; parameter.addRule(ferm2); }
Le 24/02/2025 à 12:01, Eric Chatellier a écrit :
J'ai plusieurs erreurs dans les logs:
matrix.importCSV(new FileReader(new File(param_pathExpMatrix)), new int[]{0,0}); ^^^^^^ matrix cannot be resolved
int Realloc = matExp.getValue(numero,"Realloc"); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Type mismatch: cannot convert from double to int
int deb1 = matExp.getValue(numero,"ferm1startMonth"); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Type mismatch: cannot convert from double to int
int fin1 = matExp.getValue(numero,"ferm1endMonth"); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Type mismatch: cannot convert from double to int
int deb2 = matExp.getValue(numero,"ferm2startMonth"); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Type mismatch: cannot convert from double to int
Après, j'ai plusieurs erreur liées à "rules.EffortReduction_Fermetures_PreSimu_Delmoges", mais c'est normal je pense, car ca ne peut pas fonctionner sans qu'un plan n'ajoute la règle avec "addExtraRules". Ou alors, il faudrait que la regles soit incluse dans la simulation pour être embarquées (quitte à être supprimé par le prescript, mais ce n'est pas évident).
Le 21/02/2025 à 10:50, Sigrid LEHUTA a écrit :
Salut Eric,
le préscript ne compile pas et pas d'indication sur ce qui ne va pas. Pourrais tu y jeter un oeil s'il te plait ?
ci dessous prescript et message d'erreur.
Merci !
--------------------------
-- /!\ Boite mail saturée (en cours de nettoyage laborieux) Pour ma santé mentale et l'environnement, merci d'éviter les pièces jointes au maximum. -- Sigrid LEHUTA
><> __/\__ ~ ><> ~ \____/ ~
Fisheries modeller IFREMER - HALGO-EMH Ecology and modeling for fisheries science DECOD Dynamics and sustainability of ecosystems: from source to sea AFH Association Française d'Halieutique (AFH)
Centre Atlantique - Rue de l'Ile d'Yeu BP 21105 - 44311 Nantes Cedex 03 Tel. : 02 40 37 42 38 (8238)
Participez à l'ENQUETE Réduction des captures de dauphins :https://http-proxy.cloud.codelutin.com/enquete_delmoges
https://peche.ifremer.fr/Le-role-de-l-Ifremer/Recherche/Projets/Description-... https://www.francefilierepeche.fr/projets/gemmbe/ https://delmoges.recherche.univ-lr.fr/presentation-du-projet/ https://www.ices.dk/advice/ESD/Pages/Bay-of-Biscay-and-the-Iberian-Coast_Lan... https://halgo.ifremer.fr/en https://www.umr-decod.fr/en https://www.association-francaise-halieutique.fr/
_______________________________________________ Isis-fish-users mailing list Isis-fish-users@list.isis-fish.org https://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users Archives et moteur de recherche:http://list.isis-fish.org/pipermail/isis-fish-users/
-- /!\ Boite mail saturée (en cours de nettoyage laborieux) Pour ma santé mentale et l'environnement, merci d'éviter les pièces jointes au maximum. -- Sigrid LEHUTA ><> __/\__ ~ ><> ~ \____/ ~ Fisheries modeller IFREMER - HALGO-EMH Ecology and modeling for fisheries science DECOD Dynamics and sustainability of ecosystems: from source to sea AFH Association Française d'Halieutique (AFH) Centre Atlantique - Rue de l'Ile d'Yeu BP 21105 - 44311 Nantes Cedex 03 Tel. : 02 40 37 42 38 (8238) Participez à l'ENQUETE Réduction des captures de dauphins :https://http-proxy.cloud.codelutin.com/enquete_delmoges https://peche.ifremer.fr/Le-role-de-l-Ifremer/Recherche/Projets/Description-... https://www.francefilierepeche.fr/projets/gemmbe/ https://delmoges.recherche.univ-lr.fr/presentation-du-projet/ https://www.ices.dk/advice/ESD/Pages/Bay-of-Biscay-and-the-Iberian-Coast_Lan... https://halgo.ifremer.fr/en https://www.umr-decod.fr/en https://www.association-francaise-halieutique.fr/
Bonjour, Es-tu sûre du test ? Peut tu m'envoyer une simulation qui a tourné avec le prescript si c'est le cas ? J'ai testé, ça fonctionne pas trop mal. Pour une raison technique, j'ai juste du remplacé : parameter.clearRules(); par parameter.getRules().clear(); Sinon, j'ai bien les 3 autres règles à l’exécution. Le 26/02/2025 à 18:15, Sigrid LEHUTA a écrit :
Merci ça tourne ! mais ca ne marche pas :-(
Ce qui ne marche pas : a priori addRule et clearRules
car
J'ai ajouté la règle dans l'interface puis le préscript fait clearRules() puis ajoute la regle et en modifie les parametres.
La simu tourne mais dans la simu la regle a les param entrés dans l'interface et non les param modifiés.
Une idée ?
Merci !
import fr.ifremer.isisfish.annotations.Doc; import fr.ifremer.isisfish.simulator.*;//SimulationParameter; import org.nuiton.math.matrix.MatrixFactory; import org.nuiton.math.matrix.MatrixND; import rules.EffortReduction_Fermetures_PreSimu_Delmoges; //import rules.EffortReduction; import fr.ifremer.isisfish.types.Month; import fr.ifremer.isisfish.rule.Rule;
import java.util.*; import java.io.*; import java.util.regex.*;
//recup num de simu String simu = context.getSimulationControl().getId(); java.util.regex.Pattern simulNamePattern =java.util.regex.Pattern.compile("^.+_(\\d+)$"); // pour un nom de simu quelconque terminant par "_XXX" XXX etat des chiffres java.util.regex.Matcher matcher =simulNamePattern.matcher(simu); matcher.find(); int numero =Integer.parseInt(matcher.group(1)); System.out.println("numero de simu : "+numero);
SimulationParameter parameter = context.getSimulationStorage().getParameter(); parameter.clearRules();// suppresison des regles deja existante // read matrice d'experience matExp // [simu x rules] contient les modalités String param_pathExpMatrix ="InputsDelmoges/MatExp_fev2025.csv" ; int matrix_length =47; int parameterNumber =9; MatrixND matExp =MatrixFactory.getInstance().create(new int[]{matrix_length,parameterNumber}); matExp.importCSV(new FileReader(new File(param_pathExpMatrix)),new int[]{0,0}); List<Integer> dim0 =new ArrayList<Integer>(); for (int i=0;i <matrix_length;i++) { dim0.add(i); } matExp.setSemantic(0,dim0); matExp.setSemantic(1,Arrays.asList( new String[]{"simu","ferm1startMonth","ferm1duree","ferm1endMonth","ferm2startMonth","txReduction", "Realloc","txRealloc","txNavAQuai"})); System.out.println("plan d'exp :"+matExp); ///////////////////////////////////////////////////////////////////////////// // Read matrix values double txNavQuai =matExp.getValue(numero,"txNavAQuai"); double txRed =matExp.getValue(numero,"txReduction"); double txRealloc =matExp.getValue(numero,"txRealloc"); int Realloc = (int)matExp.getValue(numero,"Realloc"); int deb1 = (int)matExp.getValue(numero,"ferm1startMonth"); int fin1 = (int)matExp.getValue(numero,"ferm1endMonth"); int deb2 = (int)matExp.getValue(numero,"ferm2startMonth");
List<Month> months =Month.getMonths(Month.JANUARY,Month.DECEMBER); Boolean Brealloc =true; if(Realloc ==0)Brealloc =false;
// test ajout d'une regle EffortReductiontest =new EffortReduction(); parameter.addRule(test);
// ajout regle 1 EffortReduction_Fermetures_PreSimu_Delmoges ruleDelmoges =new EffortReduction_Fermetures_PreSimu_Delmoges(); ruleDelmoges.param_beginMonthFermeture = months.get(deb1); //ruleDelmoges.param_endMonthFermeture = months.get(fin1); ruleDelmoges.param_endMonthFermeture = months.get(0); ruleDelmoges.param_txReduction =txRed; ruleDelmoges.param_reallocation =Brealloc; ruleDelmoges.param_txReallocation =txRealloc; ruleDelmoges.param_txAquai =txNavQuai;
parameter.addRule(ruleDelmoges);
// ajoute regle 2 : fermeture ete si besoin if (deb2 !=13){// remettre les 2 memes pour l'ete } EffortReduction_Fermetures_PreSimu_Delmoges ferm2 =new EffortReduction_Fermetures_PreSimu_Delmoges(); ferm2.param_beginMonthFermeture =months.get(deb2); ferm2.param_endMonthFermeture =months.get(deb2); ruleDelmoges.param_txReduction =0; ruleDelmoges.param_reallocation =Brealloc; ruleDelmoges.param_txReallocation =txRealloc; ruleDelmoges.param_txAquai =txNavQuai; parameter.addRule(ferm2); }
Le 24/02/2025 à 12:01, Eric Chatellier a écrit :
J'ai plusieurs erreurs dans les logs:
matrix.importCSV(new FileReader(new File(param_pathExpMatrix)), new int[]{0,0}); ^^^^^^ matrix cannot be resolved
int Realloc = matExp.getValue(numero,"Realloc"); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Type mismatch: cannot convert from double to int
int deb1 = matExp.getValue(numero,"ferm1startMonth"); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Type mismatch: cannot convert from double to int
int fin1 = matExp.getValue(numero,"ferm1endMonth"); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Type mismatch: cannot convert from double to int
int deb2 = matExp.getValue(numero,"ferm2startMonth"); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Type mismatch: cannot convert from double to int
Après, j'ai plusieurs erreur liées à "rules.EffortReduction_Fermetures_PreSimu_Delmoges", mais c'est normal je pense, car ca ne peut pas fonctionner sans qu'un plan n'ajoute la règle avec "addExtraRules". Ou alors, il faudrait que la regles soit incluse dans la simulation pour être embarquées (quitte à être supprimé par le prescript, mais ce n'est pas évident).
Le 21/02/2025 à 10:50, Sigrid LEHUTA a écrit :
Salut Eric,
le préscript ne compile pas et pas d'indication sur ce qui ne va pas. Pourrais tu y jeter un oeil s'il te plait ?
ci dessous prescript et message d'erreur.
Merci !
--------------------------
-- /!\ Boite mail saturée (en cours de nettoyage laborieux) Pour ma santé mentale et l'environnement, merci d'éviter les pièces jointes au maximum. -- Sigrid LEHUTA
><> __/\__ ~ ><> ~ \____/ ~
Fisheries modeller IFREMER - HALGO-EMH Ecology and modeling for fisheries science DECOD Dynamics and sustainability of ecosystems: from source to sea AFH Association Française d'Halieutique (AFH)
Centre Atlantique - Rue de l'Ile d'Yeu BP 21105 - 44311 Nantes Cedex 03 Tel. : 02 40 37 42 38 (8238)
Participez à l'ENQUETE Réduction des captures de dauphins :https://http-proxy.cloud.codelutin.com/enquete_delmoges
https://peche.ifremer.fr/Le-role-de-l-Ifremer/Recherche/Projets/Description-... https://www.francefilierepeche.fr/projets/gemmbe/ https://delmoges.recherche.univ-lr.fr/presentation-du-projet/ https://www.ices.dk/advice/ESD/Pages/Bay-of-Biscay-and-the-Iberian-Coast_Lan... https://halgo.ifremer.fr/en https://www.umr-decod.fr/en https://www.association-francaise-halieutique.fr/
_______________________________________________ Isis-fish-users mailing list Isis-fish-users@list.isis-fish.org https://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users Archives et moteur de recherche: http://list.isis-fish.org/pipermail/isis-fish-users/
-- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
participants (2)
-
Eric Chatellier -
Sigrid LEHUTA