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/