Bonjour à tous, toujours avec le script de la sensibility, j'ai de nouvaux un autre problème que je n'arrive pas à me débarrasser: C:\Documents and Settings\hussein\isis-database-3\analyseplans\Sensibility.java:347: 'else' without 'if' } else { ^ je vous envoie le fichier de script merci pour votre aide chirine
Bonjour chirine, tout est dans le message d'erreur: Sensibility.java:347 => ligne 347 tu as un else qui ne correspond à aucun if Pour l instant l'accolade de ton else correspond au for (ligne 317) Après je n ai pas regardé plus le code, je ne sais pas ce qu'il fait, à toi de retrouver où il faut replacer les accolades. Youen chirine HUSSEIN <m475chi@yahoo.fr> a écrit :
Bonjour à tous, toujours avec le script de la sensibility, j'ai de nouvaux un autre problème que je n'arrive pas à me débarrasser:
C:\Documents and Settings\hussein\isis-database-3\analyseplans\Sensibility.java:347: 'else' without 'if' } else { ^ je vous envoie le fichier de script merci pour votre aide
chirine
je pense que cette "eles" correspond à if qui est au debut de la méthode "beforesimulation". ----- Message d'origine ---- De : "Youen.Vermard@ifremer.fr" <Youen.Vermard@ifremer.fr> À : isis-fish-user@lists.labs.libre-entreprise.org Envoyé le : Mardi, 27 Janvier 2009, 11h14mn 50s Objet : Re: [Isis-fish-user] (sans objet) Bonjour chirine, tout est dans le message d'erreur: Sensibility.java:347 => ligne 347 tu as un else qui ne correspond à aucun if Pour l instant l'accolade de ton else correspond au for (ligne 317) Après je n ai pas regardé plus le code, je ne sais pas ce qu'il fait, à toi de retrouver où il faut replacer les accolades. Youen chirine HUSSEIN <m475chi@yahoo.fr> a écrit :
Bonjour à tous, toujours avec le script de la sensibility, j'ai de nouvaux un autre problème que je n'arrive pas à me débarrasser:
C:\Documents and Settings\hussein\isis-database-3\analyseplans\Sensibility.java:347: 'else' without 'if' } else { ^ je vous envoie le fichier de script merci pour votre aide
chirine
_______________________________________________ Isis-fish-user mailing list Isis-fish-user@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user
Bonjour, comme Youen l'a préciser, le message d'erreur parle de lui même, il manque une accolade. Pour éviter ce genre d'erreur, il est nécessaire de bien indenter son code (TAB) pour mettre en évidence tous les blocs. Je vous renvoie la copie corrigé ;) A première vu, je pense qu'il manque une accolade fermante après le premier for. Sylvain chirine HUSSEIN a écrit :
je pense que cette "eles" correspond à if qui est au debut de la méthode "beforesimulation".
----- Message d'origine ---- De : "Youen.Vermard@ifremer.fr" <Youen.Vermard@ifremer.fr> À : isis-fish-user@lists.labs.libre-entreprise.org Envoyé le : Mardi, 27 Janvier 2009, 11h14mn 50s Objet : Re: [Isis-fish-user] (sans objet)
Bonjour chirine, tout est dans le message d'erreur:
Sensibility.java:347 => ligne 347 tu as un else qui ne correspond à aucun if
Pour l instant l'accolade de ton else correspond au for (ligne 317)
Après je n ai pas regardé plus le code, je ne sais pas ce qu'il fait, à toi de retrouver où il faut replacer les accolades.
Youen
chirine HUSSEIN <m475chi@yahoo.fr> a écrit :
Bonjour à tous, toujours avec le script de la sensibility, j'ai de nouvaux un autre problème que je n'arrive pas à me débarrasser:
C:\Documents and Settings\hussein\isis-database-3\analyseplans\Sensibility.java:347: 'else' without 'if' } else { ^ je vous envoie le fichier de script merci pour votre aide
chirine
_______________________________________________ Isis-fish-user mailing list Isis-fish-user@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user
_______________________________________________ Isis-fish-user mailing list Isis-fish-user@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user
merci bien, mais je n'arrive pas à telecharger le fichier joindre. pourriez- vous me renvoyer un copie? Chirine ----- Message d'origine ---- De : letellier <letellier@codelutin.com> À : Liste pour les utilisateurs du simulateur <isis-fish-user@lists.labs.libre-entreprise.org> Envoyé le : Mardi, 27 Janvier 2009, 11h51mn 07s Objet : Re: [Isis-fish-user] Re : (sans objet) Bonjour, comme Youen l'a préciser, le message d'erreur parle de lui même, il manque une accolade. Pour éviter ce genre d'erreur, il est nécessaire de bien indenter son code (TAB) pour mettre en évidence tous les blocs. Je vous renvoie la copie corrigé ;) A première vu, je pense qu'il manque une accolade fermante après le premier for. Sylvain chirine HUSSEIN a écrit :
je pense que cette "eles" correspond à if qui est au debut de la méthode "beforesimulation".
----- Message d'origine ---- De : "Youen.Vermard@ifremer.fr" <Youen.Vermard@ifremer.fr> À : isis-fish-user@lists.labs.libre-entreprise.org Envoyé le : Mardi, 27 Janvier 2009, 11h14mn 50s Objet : Re: [Isis-fish-user] (sans objet)
Bonjour chirine, tout est dans le message d'erreur:
Sensibility.java:347 => ligne 347 tu as un else qui ne correspond à aucun if
Pour l instant l'accolade de ton else correspond au for (ligne 317)
Après je n ai pas regardé plus le code, je ne sais pas ce qu'il fait, à toi de retrouver où il faut replacer les accolades.
Youen
chirine HUSSEIN <m475chi@yahoo.fr> a écrit :
Bonjour à tous, toujours avec le script de la sensibility, j'ai de nouvaux un autre problème que je n'arrive pas à me débarrasser:
C:\Documents and Settings\hussein\isis-database-3\analyseplans\Sensibility.java:347: 'else' without 'if' } else { ^ je vous envoie le fichier de script merci pour votre aide
chirine
_______________________________________________ Isis-fish-user mailing list Isis-fish-user@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user
_______________________________________________ Isis-fish-user mailing list Isis-fish-user@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user
-----La pièce jointe correspondante suit----- package analyseplans; import static org.codelutin.i18n.I18n._; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import scripts.ResultName; import java.io.*; import java.io.File; import java.io.FileReader; import java.io.Writer; import java.util.*; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; import org.codelutin.math.matrix.*; import org.codelutin.util.*; import org.codelutin.topia.*; import fr.ifremer.isisfish.*; import fr.ifremer.isisfish.types.*; import fr.ifremer.isisfish.rule.Rule; import fr.ifremer.isisfish.rule.RuleHelper; import fr.ifremer.isisfish.simulator.SimulationContext; import fr.ifremer.isisfish.types.Date; import fr.ifremer.isisfish.entities.*; import fr.ifremer.isisfish.simulator.AnalysePlan; import fr.ifremer.isisfish.simulator.AnalysePlanContext; import fr.ifremer.isisfish.simulator.SimulationParameter; import fr.ifremer.isisfish.datastore.RegionStorage; import fr.ifremer.isisfish.datastore.RuleStorage; import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.datastore.ResultStorage; /** * Sensibility.java * * Created: 21 décembre 2008 * * @author HUSSEIN chirine <m475chi@yahoo.fr> * */ public class Sensibility implements AnalysePlan { /** to use log facility, just put in your code: log.info("..."); */ static private Log log = LogFactory.getLog(Sensibility.class); static private final String MATRIX = "matrix"; /// Le fichier est donc matrix.txt static private final String VBGF = "growth"; static private final String SELECTIVITY = "selectivity"; static private final String SELECTIVITYFiletMer = "selectivityFiletMer"; static private final String SELECTIVITYFiletEtang = "selectivityFiletEtang"; static private final String SELECTIVITYLigncote = "selectivityLignecote"; static private final String SELECTIVITYLigneemb = "selectivityLigneemb"; static private final String SELECTIVITYChalut = "selectivityChalut"; static private final String SELECTIVITYHarpon = "selectivityHarpon"; static private final String CATCHABILITY = "capturabilite"; static private final String MORTALITY = "mortalite"; static private final String STANDARDISATION = "standardisation"; //static private final String AMP = "amp"; //static private final String AMP1 = "ampRPrepro_Lignecote"; //static private final String AMP2 = "ampRPrepro_FiletMer"; ///////////* completer ici avec tous les fichiers .txt des amp public int param_parameterNumber = 5; /// ce paramètre n'est normalement pas modifié public int param_first = 0; /// on utilise ce paramètre pour indiquer à quelle ligne /// de la matrice on doit commencer à faire tourner les simulations au cas où on ait dû interompre le plan public int param_simulationNumber = 32;/// ce paramètre n'est normalement pas modifié public String param_directory = "C:/Documents and Settings/hussein/Bureau/isis-fish-3.1.3/isis-fish-3.1.3/fichier paramètres//"; /// Il s'agit du chemin vers le dossier ///contenant les fichier de matrice et paramètres, par défaut le repertoire du go.bat /// donc dans ce cas c'est le dossier Exemple_repertory qui est dans le dossier contenant le go.bat /// Déclaration de la matrice d'expérience private MatrixND matrix = null; /// Non utilisé pour ce script mais à ne pas effacer public String [] necessaryResult = { // put here all necessary result for this rule // example: // ResultName.MATRIX_BIOMASS, // ResultName.MATRIX_NET_VALUE_OF_LANDINGS_PER_STRATEGY_MET, }; public String[] getNecessaryResult() { return this.necessaryResult; } /** * Permet d'afficher a l'utilisateur une aide sur le plan. * @return L'aide ou la description du plan */ public String getDescription() throws Exception { return _("réalise les expériences d'un plan complet pour 5 parametres à 2 modalités"); } /** * Appel? au d?marrage de la simulation, cette m?thode permet d'initialiser * des valeurs * @param simulation La simulation pour lequel on utilise cette regle */ public void init(AnalysePlanContext context) throws Exception { /// Création de la matrice d'expérience et chargement : File dir = new File(param_directory); File csvFile = new File(dir, MATRIX + ".txt"); log.info("CSV file is : " + csvFile.getAbsolutePath()); if(!csvFile.exists()) { log.warn("File doesn't exists"); } matrix = MatrixFactory.getInstance().create(new int[]{param_simulationNumber, param_parameterNumber}); matrix.importCSV(new FileReader(csvFile), new int[]{0,0}); matrix.setSemantics(1, Arrays.asList(new String[]{VBGF,CATCHABILITY,MORTALITY,SELECTIVITY, STANDARDISATION})); System.out.println(matrix); //System.out.println("amp 0 : "+ matrix.getValue(0,AMP)); /// ajout des regles qui sont modifiées par le plan //context.getParam().addExtraRules("Cantonnement","Cantonnement","Cantonnement","Cantonnement","Cantonnement","Cantonnement"); ////////////* tu dois ecrire cantonnement 11 fois si tu as 11 regles cantonnement } /// Création des méthodes qui réccupère dans la matrice la modalité du paramètre pour l'expérience en cours /// Les arguments des méthodes sont le nom du fichier et le numéro de la simulation /// (On détermine l'expérience en cours et donc la ligne de la matrice en sommant le numéro de la simulation et le param_first) /// pour un double private double getDouble(String name, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne, name); System.out.println("mod et ligne : "+ mod+" "+ligne); double result = Double.parseDouble(prop.getProperty(""+mod)); System.out.println("result : "+ result); return result; } /// pour une liste de doubles /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private double [] getList(String name, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne, name); double [] result = StringUtil.toArrayDouble(prop.getProperty(""+mod).split(";")); // ""+ ca construit une chaine de caractere return result; } /// pour une chaine de characteres (equation) /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private String getString(String name,String col, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne , col); String result = prop.getProperty(""+mod); return result; } /// pour les paramètres d'une règle de gestion /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private Rule getRule(RegionStorage regionStorage, String name, String col, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name+".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne , col); String ruleName = prop.getProperty(""+mod); RuleStorage ruleStorage = RuleStorage.getRule(ruleName); Rule rule = ruleStorage.getNewRuleInstance(); RuleHelper.populateRule(mod, regionStorage, rule, prop); return rule; } /** * Call before each simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */ public boolean beforeSimulation(AnalysePlanContext context, SimulationStorage nextSimulation) throws int simNum = context.getNumber()+ param_first; if (simNum < param_simulationNumber+1) { /// On vérifie qu'il reste des expériences à faire /// On utilise les méthodes crées pour récupérer les valeurs des modalités pour l'expérience en cours double [] croissance = getList (VBGF , simNum); double catchability = getDouble (CATCHABILITY, simNum); double [] standardisation = getList (STANDARDISATION , simNum); String selectivity = getString (SELECTIVITY, simNum); String selectivityFiletMer = getString (SELECTIVITYFiletMer,SELECTIVITY, simNum); String selectivityFiletEtang = getString (SELECTIVITYFiletEtang,SELECTIVITY, simNum); String selectivityLignecote = getString (SELECTIVITYLignecote,SELECTIVITY, simNum); String selectivityLigneemb = getString (SELECTIVITYFLigneemb,SELECTIVITY, simNum); String selectivityChalut = getString (SELECTIVITYChalut,SELECTIVITY, simNum); String selectivityHarpon = getString (SELECTIVITYHarpon,SELECTIVITY, simNum); String mortality = getString (MORTALITY,MORTALITY, simNum); //Rule amp1 = getRule(context.getParam().getRegion(), AMP1, AMP, simNum); //Rule amp2 = getRule(context.getParam().getRegion(), AMP2, AMP, simNum); ///////////////* à completer avec le reste des amp*/ /// On peut afficher des informations dans les logs nextSimulation.getInformation().addInformation("Growth ("+context.getNumber()+")= " + croissance); nextSimulation.getInformation().addInformation("Selectivity ("+context.getNumber()+")= " + selectivity); /// Il faut maintenant modifier la valeur des paramètres dans la base de données et les paramètres des règle de la simulation /// modif les parametres des regles de gestion : // on enleve la regle de la simulation passé (elle est stoquée sous le nom LastAMP) //List<Rule> paramRules = nextSimulation.getParameter().getRules(); //paramRules.remove(context.getValue("lastAMP1")); // on nomme la regle que l'on va ajouter LastAMP (pour pouvoir la retrouver a la simulation suivante) //context.setValue("lastAMP1", amp1); // on ajoute la regle à la simulation // paramRules.add(amp1); //paramRules.remove(context.getValue("lastAMP2")); //context.setValue("lastAMP2", amp2); //paramRules.add(amp2); /////////////////* à completer avec les autres amp */ /// modif les parametres dans la base de données : TopiaContext tx = nextSimulation.getStorage().beginTransaction(); /// On récupère les objets ISIS a modifier dans la base de données PopulationDAO popDAO = IsisFishDAOHelper.getPopulationDAO(tx); Population pop = popDAO.findByName("CSar"); List<PopulationGroup> groups = pop.getPopulationGroup(); GearDAO gearDAO = IsisFishDAOHelper.getGearDAO(tx); List<Gear> gears = gearDAO.findAll(); ///modif borne des classes de taille /// On remplace les bornes par les éléments de la liste for (PopulationGroup group : groups) { group.setMinLength(croissance[group.getId()]) ; group.setMaxLength(croissance[group.getId()+1]) ; } // modif la capturabilité /// On modifie la valeur de la base en la multipliant par la valeur contenue dans la modalité MatrixND c = pop.getCapturability(); for (MatrixIterator i = c.iterator(); i.hasNext();){ i.next(); i.setValue(catchability); } // modif la mortalité naturelle /// On modifie la valeur de la base en la remplacant par la valeur contenue dans la modalité for (PopulationGroup group : groups) { Equation eq = pop.getNaturalDeathRate(); eq.setContent(mortality); } // modif les facteurs de standardisation /// On modifie la valeur de la base en la remplacant par la valeur contenue dans la modalité for (Gear gear : gears) { if ("FiletMer".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[0]); }else if("Lignecote".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[1]); }else if("Harpon".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[2]); }else if("chalut".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[3]); }else if("Ligneemb".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[4]); }else if("FiletEtang".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[5]); /////////////*a completer } } /// modif selectivité /// On remplace l'equation existante par une autre equation for (Gear gear : gears) { if ("FiletMer".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityFiletMer); } else if ("FiletEtang".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityFiletEtang); }else if ("Lignecote".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityLignecote); }else if ("Ligneemb".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityLigneemb); }else if ("Chalut".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityChalut); }else if ("Harpon".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityHarpon); } tx.commitTransaction(); return true; } else { return false; } } /** * Call before each simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */ public boolean afterSimulation(AnalysePlanContext context, SimulationStorage lastSimulation) throws Exception { return true; } }
chirine HUSSEIN a écrit :
merci bien, mais je n'arrive pas à telecharger le fichier joindre. pourriez- vous me renvoyer un copie? Chirine
----- Message d'origine ---- De : letellier <letellier@codelutin.com> À : Liste pour les utilisateurs du simulateur <isis-fish-user@lists.labs.libre-entreprise.org> Envoyé le : Mardi, 27 Janvier 2009, 11h51mn 07s Objet : Re: [Isis-fish-user] Re : (sans objet)
Bonjour,
comme Youen l'a préciser, le message d'erreur parle de lui même, il manque une accolade. Pour éviter ce genre d'erreur, il est nécessaire de bien indenter son code (TAB) pour mettre en évidence tous les blocs.
Je vous renvoie la copie corrigé ;) A première vu, je pense qu'il manque une accolade fermante après le premier for.
Sylvain
chirine HUSSEIN a écrit :
je pense que cette "eles" correspond à if qui est au debut de la méthode "beforesimulation".
----- Message d'origine ---- De : "Youen.Vermard@ifremer.fr" <Youen.Vermard@ifremer.fr> À : isis-fish-user@lists.labs.libre-entreprise.org Envoyé le : Mardi, 27 Janvier 2009, 11h14mn 50s Objet : Re: [Isis-fish-user] (sans objet)
Bonjour chirine, tout est dans le message d'erreur:
Sensibility.java:347 => ligne 347 tu as un else qui ne correspond à aucun if
Pour l instant l'accolade de ton else correspond au for (ligne 317)
Après je n ai pas regardé plus le code, je ne sais pas ce qu'il fait, à toi de retrouver où il faut replacer les accolades.
Youen
chirine HUSSEIN <m475chi@yahoo.fr> a écrit :
Bonjour à tous, toujours avec le script de la sensibility, j'ai de nouvaux un autre problème que je n'arrive pas à me débarrasser:
C:\Documents and Settings\hussein\isis-database-3\analyseplans\Sensibility.java:347: 'else' without 'if' } else { ^ je vous envoie le fichier de script merci pour votre aide
chirine
_______________________________________________ Isis-fish-user mailing list Isis-fish-user@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user
_______________________________________________ Isis-fish-user mailing list Isis-fish-user@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user
-----La pièce jointe correspondante suit-----
package analyseplans;
import static org.codelutin.i18n.I18n._;
import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory;
import scripts.ResultName;
import java.io.*; import java.io.File; import java.io.FileReader; import java.io.Writer; import java.util.*; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties;
import org.codelutin.math.matrix.*; import org.codelutin.util.*; import org.codelutin.topia.*;
import fr.ifremer.isisfish.*; import fr.ifremer.isisfish.types.*; import fr.ifremer.isisfish.rule.Rule; import fr.ifremer.isisfish.rule.RuleHelper; import fr.ifremer.isisfish.simulator.SimulationContext; import fr.ifremer.isisfish.types.Date; import fr.ifremer.isisfish.entities.*; import fr.ifremer.isisfish.simulator.AnalysePlan; import fr.ifremer.isisfish.simulator.AnalysePlanContext; import fr.ifremer.isisfish.simulator.SimulationParameter; import fr.ifremer.isisfish.datastore.RegionStorage; import fr.ifremer.isisfish.datastore.RuleStorage; import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.datastore.ResultStorage;
/** * Sensibility.java * * Created: 21 décembre 2008 * * @author HUSSEIN chirine <m475chi@yahoo.fr> * */ public class Sensibility implements AnalysePlan {
/** to use log facility, just put in your code: log.info("..."); */ static private Log log = LogFactory.getLog(Sensibility.class);
static private final String MATRIX = "matrix"; /// Le fichier est donc matrix.txt static private final String VBGF = "growth"; static private final String SELECTIVITY = "selectivity"; static private final String SELECTIVITYFiletMer = "selectivityFiletMer"; static private final String SELECTIVITYFiletEtang = "selectivityFiletEtang"; static private final String SELECTIVITYLigncote = "selectivityLignecote"; static private final String SELECTIVITYLigneemb = "selectivityLigneemb"; static private final String SELECTIVITYChalut = "selectivityChalut"; static private final String SELECTIVITYHarpon = "selectivityHarpon"; static private final String CATCHABILITY = "capturabilite"; static private final String MORTALITY = "mortalite"; static private final String STANDARDISATION = "standardisation"; //static private final String AMP = "amp"; //static private final String AMP1 = "ampRPrepro_Lignecote"; //static private final String AMP2 = "ampRPrepro_FiletMer"; ///////////* completer ici avec tous les fichiers .txt des amp
public int param_parameterNumber = 5; /// ce paramètre n'est normalement pas modifié public int param_first = 0; /// on utilise ce paramètre pour indiquer à quelle ligne /// de la matrice on doit commencer à faire tourner les simulations au cas où on ait dû interompre le plan public int param_simulationNumber = 32;/// ce paramètre n'est normalement pas modifié public String param_directory = "C:/Documents and Settings/hussein/Bureau/isis-fish-3.1.3/isis-fish-3.1.3/fichier paramètres//"; /// Il s'agit du chemin vers le dossier ///contenant les fichier de matrice et paramètres, par défaut le repertoire du go.bat /// donc dans ce cas c'est le dossier Exemple_repertory qui est dans le dossier contenant le go.bat
/// Déclaration de la matrice d'expérience
private MatrixND matrix = null;
/// Non utilisé pour ce script mais à ne pas effacer public String [] necessaryResult = { // put here all necessary result for this rule // example: // ResultName.MATRIX_BIOMASS, // ResultName.MATRIX_NET_VALUE_OF_LANDINGS_PER_STRATEGY_MET, };
public String[] getNecessaryResult() { return this.necessaryResult; }
/** * Permet d'afficher a l'utilisateur une aide sur le plan. * @return L'aide ou la description du plan */ public String getDescription() throws Exception {
return _("réalise les expériences d'un plan complet pour 5 parametres à 2 modalités"); }
/** * Appel? au d?marrage de la simulation, cette m?thode permet d'initialiser * des valeurs * @param simulation La simulation pour lequel on utilise cette regle */ public void init(AnalysePlanContext context) throws Exception { /// Création de la matrice d'expérience et chargement : File dir = new File(param_directory);
File csvFile = new File(dir, MATRIX + ".txt"); log.info("CSV file is : " + csvFile.getAbsolutePath()); if(!csvFile.exists()) { log.warn("File doesn't exists"); }
matrix = MatrixFactory.getInstance().create(new int[]{param_simulationNumber, param_parameterNumber}); matrix.importCSV(new FileReader(csvFile), new int[]{0,0}); matrix.setSemantics(1, Arrays.asList(new String[]{VBGF,CATCHABILITY,MORTALITY,SELECTIVITY, STANDARDISATION})); System.out.println(matrix); //System.out.println("amp 0 : "+ matrix.getValue(0,AMP)); /// ajout des regles qui sont modifiées par le plan //context.getParam().addExtraRules("Cantonnement","Cantonnement","Cantonnement","Cantonnement","Cantonnement","Cantonnement"); ////////////* tu dois ecrire cantonnement 11 fois si tu as 11 regles cantonnement }
/// Création des méthodes qui réccupère dans la matrice la modalité du paramètre pour l'expérience en cours /// Les arguments des méthodes sont le nom du fichier et le numéro de la simulation /// (On détermine l'expérience en cours et donc la ligne de la matrice en sommant le numéro de la simulation et le param_first) /// pour un double
private double getDouble(String name, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne, name); System.out.println("mod et ligne : "+ mod+" "+ligne); double result = Double.parseDouble(prop.getProperty(""+mod)); System.out.println("result : "+ result); return result; }
/// pour une liste de doubles
/** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private double [] getList(String name, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne, name); double [] result = StringUtil.toArrayDouble(prop.getProperty(""+mod).split(";")); // ""+ ca construit une chaine de caractere return result; }
/// pour une chaine de characteres (equation) /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private String getString(String name,String col, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne , col); String result = prop.getProperty(""+mod); return result; } /// pour les paramètres d'une règle de gestion /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private Rule getRule(RegionStorage regionStorage, String name, String col, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name+".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne , col); String ruleName = prop.getProperty(""+mod); RuleStorage ruleStorage = RuleStorage.getRule(ruleName); Rule rule = ruleStorage.getNewRuleInstance(); RuleHelper.populateRule(mod, regionStorage, rule, prop); return rule; }
/** * Call before each simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */ public boolean beforeSimulation(AnalysePlanContext context, SimulationStorage nextSimulation) throws
int simNum = context.getNumber()+ param_first;
if (simNum < param_simulationNumber+1) { /// On vérifie qu'il reste des expériences à faire
/// On utilise les méthodes crées pour récupérer les valeurs des modalités pour l'expérience en cours double [] croissance = getList (VBGF , simNum); double catchability = getDouble (CATCHABILITY, simNum); double [] standardisation = getList (STANDARDISATION , simNum); String selectivity = getString (SELECTIVITY, simNum); String selectivityFiletMer = getString (SELECTIVITYFiletMer,SELECTIVITY, simNum); String selectivityFiletEtang = getString (SELECTIVITYFiletEtang,SELECTIVITY, simNum); String selectivityLignecote = getString (SELECTIVITYLignecote,SELECTIVITY, simNum); String selectivityLigneemb = getString (SELECTIVITYFLigneemb,SELECTIVITY, simNum); String selectivityChalut = getString (SELECTIVITYChalut,SELECTIVITY, simNum); String selectivityHarpon = getString (SELECTIVITYHarpon,SELECTIVITY, simNum); String mortality = getString (MORTALITY,MORTALITY, simNum); //Rule amp1 = getRule(context.getParam().getRegion(), AMP1, AMP, simNum); //Rule amp2 = getRule(context.getParam().getRegion(), AMP2, AMP, simNum); ///////////////* à completer avec le reste des amp*/
/// On peut afficher des informations dans les logs nextSimulation.getInformation().addInformation("Growth ("+context.getNumber()+")= " + croissance); nextSimulation.getInformation().addInformation("Selectivity ("+context.getNumber()+")= " + selectivity);
/// Il faut maintenant modifier la valeur des paramètres dans la base de données et les paramètres des règle de la simulation /// modif les parametres des regles de gestion :
// on enleve la regle de la simulation passé (elle est stoquée sous le nom LastAMP) //List<Rule> paramRules = nextSimulation.getParameter().getRules();
//paramRules.remove(context.getValue("lastAMP1")); // on nomme la regle que l'on va ajouter LastAMP (pour pouvoir la retrouver a la simulation suivante) //context.setValue("lastAMP1", amp1); // on ajoute la regle à la simulation // paramRules.add(amp1);
//paramRules.remove(context.getValue("lastAMP2")); //context.setValue("lastAMP2", amp2); //paramRules.add(amp2); /////////////////* à completer avec les autres amp */
/// modif les parametres dans la base de données : TopiaContext tx = nextSimulation.getStorage().beginTransaction(); /// On récupère les objets ISIS a modifier dans la base de données PopulationDAO popDAO = IsisFishDAOHelper.getPopulationDAO(tx); Population pop = popDAO.findByName("CSar"); List<PopulationGroup> groups = pop.getPopulationGroup(); GearDAO gearDAO = IsisFishDAOHelper.getGearDAO(tx); List<Gear> gears = gearDAO.findAll();
///modif borne des classes de taille /// On remplace les bornes par les éléments de la liste for (PopulationGroup group : groups) { group.setMinLength(croissance[group.getId()]) ; group.setMaxLength(croissance[group.getId()+1]) ; }
// modif la capturabilité /// On modifie la valeur de la base en la multipliant par la valeur contenue dans la modalité MatrixND c = pop.getCapturability(); for (MatrixIterator i = c.iterator(); i.hasNext();){ i.next(); i.setValue(catchability); }
// modif la mortalité naturelle /// On modifie la valeur de la base en la remplacant par la valeur contenue dans la modalité
for (PopulationGroup group : groups) { Equation eq = pop.getNaturalDeathRate(); eq.setContent(mortality); }
// modif les facteurs de standardisation /// On modifie la valeur de la base en la remplacant par la valeur contenue dans la modalité for (Gear gear : gears) {
if ("FiletMer".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[0]); }else if("Lignecote".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[1]); }else if("Harpon".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[2]); }else if("chalut".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[3]); }else if("Ligneemb".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[4]); }else if("FiletEtang".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[5]); /////////////*a completer } }
/// modif selectivité /// On remplace l'equation existante par une autre equation for (Gear gear : gears) {
if ("FiletMer".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityFiletMer); } else if ("FiletEtang".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityFiletEtang); }else if ("Lignecote".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityLignecote); }else if ("Ligneemb".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityLigneemb); }else if ("Chalut".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityChalut); }else if ("Harpon".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityHarpon); } tx.commitTransaction(); return true;
} else { return false; } }
/** * Call before each simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */
public boolean afterSimulation(AnalysePlanContext context, SimulationStorage lastSimulation) throws Exception { return true; }
}
_______________________________________________ Isis-fish-user mailing list Isis-fish-user@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user
package analyseplans; import static org.codelutin.i18n.I18n._; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import scripts.ResultName; import java.io.*; import java.io.File; import java.io.FileReader; import java.io.Writer; import java.util.*; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; import org.codelutin.math.matrix.*; import org.codelutin.util.*; import org.codelutin.topia.*; import fr.ifremer.isisfish.*; import fr.ifremer.isisfish.types.*; import fr.ifremer.isisfish.rule.Rule; import fr.ifremer.isisfish.rule.RuleHelper; import fr.ifremer.isisfish.simulator.SimulationContext; import fr.ifremer.isisfish.types.Date; import fr.ifremer.isisfish.entities.*; import fr.ifremer.isisfish.simulator.AnalysePlan; import fr.ifremer.isisfish.simulator.AnalysePlanContext; import fr.ifremer.isisfish.simulator.SimulationParameter; import fr.ifremer.isisfish.datastore.RegionStorage; import fr.ifremer.isisfish.datastore.RuleStorage; import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.datastore.ResultStorage; /** * Sensibility.java * * Created: 21 décembre 2008 * * @author HUSSEIN chirine <m475chi@yahoo.fr> * */ public class Sensibility implements AnalysePlan { /** to use log facility, just put in your code: log.info("..."); */ static private Log log = LogFactory.getLog(Sensibility.class); static private final String MATRIX = "matrix"; /// Le fichier est donc matrix.txt static private final String VBGF = "growth"; static private final String SELECTIVITY = "selectivity"; static private final String SELECTIVITYFiletMer = "selectivityFiletMer"; static private final String SELECTIVITYFiletEtang = "selectivityFiletEtang"; static private final String SELECTIVITYLigncote = "selectivityLignecote"; static private final String SELECTIVITYLigneemb = "selectivityLigneemb"; static private final String SELECTIVITYChalut = "selectivityChalut"; static private final String SELECTIVITYHarpon = "selectivityHarpon"; static private final String CATCHABILITY = "capturabilite"; static private final String MORTALITY = "mortalite"; static private final String STANDARDISATION = "standardisation"; //static private final String AMP = "amp"; //static private final String AMP1 = "ampRPrepro_Lignecote"; //static private final String AMP2 = "ampRPrepro_FiletMer"; ///////////* completer ici avec tous les fichiers .txt des amp public int param_parameterNumber = 5; /// ce paramètre n'est normalement pas modifié public int param_first = 0; /// on utilise ce paramètre pour indiquer à quelle ligne /// de la matrice on doit commencer à faire tourner les simulations au cas où on ait dû interompre le plan public int param_simulationNumber = 32;/// ce paramètre n'est normalement pas modifié public String param_directory = "C:/Documents and Settings/hussein/Bureau/isis-fish-3.1.3/isis-fish-3.1.3/fichier paramètres//"; /// Il s'agit du chemin vers le dossier ///contenant les fichier de matrice et paramètres, par défaut le repertoire du go.bat /// donc dans ce cas c'est le dossier Exemple_repertory qui est dans le dossier contenant le go.bat /// Déclaration de la matrice d'expérience private MatrixND matrix = null; /// Non utilisé pour ce script mais à ne pas effacer public String [] necessaryResult = { // put here all necessary result for this rule // example: // ResultName.MATRIX_BIOMASS, // ResultName.MATRIX_NET_VALUE_OF_LANDINGS_PER_STRATEGY_MET, }; public String[] getNecessaryResult() { return this.necessaryResult; } /** * Permet d'afficher a l'utilisateur une aide sur le plan. * @return L'aide ou la description du plan */ public String getDescription() throws Exception { return _("réalise les expériences d'un plan complet pour 5 parametres à 2 modalités"); } /** * Appel? au d?marrage de la simulation, cette m?thode permet d'initialiser * des valeurs * @param simulation La simulation pour lequel on utilise cette regle */ public void init(AnalysePlanContext context) throws Exception { /// Création de la matrice d'expérience et chargement : File dir = new File(param_directory); File csvFile = new File(dir, MATRIX + ".txt"); log.info("CSV file is : " + csvFile.getAbsolutePath()); if(!csvFile.exists()) { log.warn("File doesn't exists"); } matrix = MatrixFactory.getInstance().create(new int[]{param_simulationNumber, param_parameterNumber}); matrix.importCSV(new FileReader(csvFile), new int[]{0,0}); matrix.setSemantics(1, Arrays.asList(new String[]{VBGF,CATCHABILITY,MORTALITY,SELECTIVITY, STANDARDISATION})); System.out.println(matrix); //System.out.println("amp 0 : "+ matrix.getValue(0,AMP)); /// ajout des regles qui sont modifiées par le plan //context.getParam().addExtraRules("Cantonnement","Cantonnement","Cantonnement","Cantonnement","Cantonnement","Cantonnement"); ////////////* tu dois ecrire cantonnement 11 fois si tu as 11 regles cantonnement } /// Création des méthodes qui réccupère dans la matrice la modalité du paramètre pour l'expérience en cours /// Les arguments des méthodes sont le nom du fichier et le numéro de la simulation /// (On détermine l'expérience en cours et donc la ligne de la matrice en sommant le numéro de la simulation et le param_first) /// pour un double private double getDouble(String name, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne, name); System.out.println("mod et ligne : "+ mod+" "+ligne); double result = Double.parseDouble(prop.getProperty(""+mod)); System.out.println("result : "+ result); return result; } /// pour une liste de doubles /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private double [] getList(String name, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne, name); double [] result = StringUtil.toArrayDouble(prop.getProperty(""+mod).split(";")); // ""+ ca construit une chaine de caractere return result; } /// pour une chaine de characteres (equation) /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private String getString(String name,String col, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne , col); String result = prop.getProperty(""+mod); return result; } /// pour les paramètres d'une règle de gestion /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private Rule getRule(RegionStorage regionStorage, String name, String col, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name+".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne , col); String ruleName = prop.getProperty(""+mod); RuleStorage ruleStorage = RuleStorage.getRule(ruleName); Rule rule = ruleStorage.getNewRuleInstance(); RuleHelper.populateRule(mod, regionStorage, rule, prop); return rule; } /** * Call before each simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */ public boolean beforeSimulation(AnalysePlanContext context, SimulationStorage nextSimulation) throws int simNum = context.getNumber()+ param_first; if (simNum < param_simulationNumber+1) { /// On vérifie qu'il reste des expériences à faire /// On utilise les méthodes crées pour récupérer les valeurs des modalités pour l'expérience en cours double [] croissance = getList (VBGF , simNum); double catchability = getDouble (CATCHABILITY, simNum); double [] standardisation = getList (STANDARDISATION , simNum); String selectivity = getString (SELECTIVITY, simNum); String selectivityFiletMer = getString (SELECTIVITYFiletMer,SELECTIVITY, simNum); String selectivityFiletEtang = getString (SELECTIVITYFiletEtang,SELECTIVITY, simNum); String selectivityLignecote = getString (SELECTIVITYLignecote,SELECTIVITY, simNum); String selectivityLigneemb = getString (SELECTIVITYFLigneemb,SELECTIVITY, simNum); String selectivityChalut = getString (SELECTIVITYChalut,SELECTIVITY, simNum); String selectivityHarpon = getString (SELECTIVITYHarpon,SELECTIVITY, simNum); String mortality = getString (MORTALITY,MORTALITY, simNum); //Rule amp1 = getRule(context.getParam().getRegion(), AMP1, AMP, simNum); //Rule amp2 = getRule(context.getParam().getRegion(), AMP2, AMP, simNum); ///////////////* à completer avec le reste des amp*/ /// On peut afficher des informations dans les logs nextSimulation.getInformation().addInformation("Growth ("+context.getNumber()+")= " + croissance); nextSimulation.getInformation().addInformation("Selectivity ("+context.getNumber()+")= " + selectivity); /// Il faut maintenant modifier la valeur des paramètres dans la base de données et les paramètres des règle de la simulation /// modif les parametres des regles de gestion : // on enleve la regle de la simulation passé (elle est stoquée sous le nom LastAMP) //List<Rule> paramRules = nextSimulation.getParameter().getRules(); //paramRules.remove(context.getValue("lastAMP1")); // on nomme la regle que l'on va ajouter LastAMP (pour pouvoir la retrouver a la simulation suivante) //context.setValue("lastAMP1", amp1); // on ajoute la regle à la simulation // paramRules.add(amp1); //paramRules.remove(context.getValue("lastAMP2")); //context.setValue("lastAMP2", amp2); //paramRules.add(amp2); /////////////////* à completer avec les autres amp */ /// modif les parametres dans la base de données : TopiaContext tx = nextSimulation.getStorage().beginTransaction(); /// On récupère les objets ISIS a modifier dans la base de données PopulationDAO popDAO = IsisFishDAOHelper.getPopulationDAO(tx); Population pop = popDAO.findByName("CSar"); List<PopulationGroup> groups = pop.getPopulationGroup(); GearDAO gearDAO = IsisFishDAOHelper.getGearDAO(tx); List<Gear> gears = gearDAO.findAll(); ///modif borne des classes de taille /// On remplace les bornes par les éléments de la liste for (PopulationGroup group : groups) { group.setMinLength(croissance[group.getId()]) ; group.setMaxLength(croissance[group.getId()+1]) ; } // modif la capturabilité /// On modifie la valeur de la base en la multipliant par la valeur contenue dans la modalité MatrixND c = pop.getCapturability(); for (MatrixIterator i = c.iterator(); i.hasNext();){ i.next(); i.setValue(catchability); } // modif la mortalité naturelle /// On modifie la valeur de la base en la remplacant par la valeur contenue dans la modalité for (PopulationGroup group : groups) { Equation eq = pop.getNaturalDeathRate(); eq.setContent(mortality); } // modif les facteurs de standardisation /// On modifie la valeur de la base en la remplacant par la valeur contenue dans la modalité for (Gear gear : gears) { if ("FiletMer".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[0]); }else if("Lignecote".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[1]); }else if("Harpon".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[2]); }else if("chalut".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[3]); }else if("Ligneemb".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[4]); }else if("FiletEtang".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[5]); /////////////*a completer } } /// modif selectivité /// On remplace l'equation existante par une autre equation for (Gear gear : gears) { if ("FiletMer".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityFiletMer); } else if ("FiletEtang".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityFiletEtang); }else if ("Lignecote".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityLignecote); }else if ("Ligneemb".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityLigneemb); }else if ("Chalut".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityChalut); }else if ("Harpon".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityHarpon); } tx.commitTransaction(); return true; } else { return false; } } /** * Call before each simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */ public boolean afterSimulation(AnalysePlanContext context, SimulationStorage lastSimulation) throws Exception { return true; } }
bonjour, avec le copie corrigé, j'ai eu 6 erreur de plus. En plus, je pense pas que on peut commencer la méthode beforeSimulation comme (public boolean beforeSimulation(AnalysePlanContext context, SimulationStorage nextSimulation) throws) sans mettre à la fin: Exception { chirine ----- Message d'origine ---- De : letellier <letellier@codelutin.com> À : Liste pour les utilisateurs du simulateur <isis-fish-user@lists.labs.libre-entreprise.org> Envoyé le : Mardi, 27 Janvier 2009, 15h51mn 35s Objet : Re: [Isis-fish-user] Re : Re : (sans objet) chirine HUSSEIN a écrit :
merci bien, mais je n'arrive pas à telecharger le fichier joindre. pourriez- vous me renvoyer un copie? Chirine
----- Message d'origine ---- De : letellier <letellier@codelutin.com> À : Liste pour les utilisateurs du simulateur <isis-fish-user@lists.labs.libre-entreprise.org> Envoyé le : Mardi, 27 Janvier 2009, 11h51mn 07s Objet : Re: [Isis-fish-user] Re : (sans objet)
Bonjour,
comme Youen l'a préciser, le message d'erreur parle de lui même, il manque une accolade. Pour éviter ce genre d'erreur, il est nécessaire de bien indenter son code (TAB) pour mettre en évidence tous les blocs.
Je vous renvoie la copie corrigé ;) A première vu, je pense qu'il manque une accolade fermante après le premier for.
Sylvain
chirine HUSSEIN a écrit :
je pense que cette "eles" correspond à if qui est au debut de la méthode "beforesimulation".
----- Message d'origine ---- De : "Youen.Vermard@ifremer.fr" <Youen.Vermard@ifremer.fr> À : isis-fish-user@lists.labs.libre-entreprise.org Envoyé le : Mardi, 27 Janvier 2009, 11h14mn 50s Objet : Re: [Isis-fish-user] (sans objet)
Bonjour chirine, tout est dans le message d'erreur:
Sensibility.java:347 => ligne 347 tu as un else qui ne correspond à aucun if
Pour l instant l'accolade de ton else correspond au for (ligne 317)
Après je n ai pas regardé plus le code, je ne sais pas ce qu'il fait, à toi de retrouver où il faut replacer les accolades.
Youen
chirine HUSSEIN <m475chi@yahoo.fr> a écrit :
Bonjour à tous, toujours avec le script de la sensibility, j'ai de nouvaux un autre problème que je n'arrive pas à me débarrasser:
C:\Documents and Settings\hussein\isis-database-3\analyseplans\Sensibility.java:347: 'else' without 'if' } else { ^ je vous envoie le fichier de script merci pour votre aide
chirine
_______________________________________________ Isis-fish-user mailing list Isis-fish-user@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user
_______________________________________________ Isis-fish-user mailing list Isis-fish-user@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user
-----La pièce jointe correspondante suit-----
package analyseplans;
import static org.codelutin.i18n.I18n._;
import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory;
import scripts.ResultName;
import java.io.*; import java.io.File; import java.io.FileReader; import java.io.Writer; import java.util.*; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties;
import org.codelutin.math.matrix.*; import org.codelutin.util.*; import org.codelutin.topia.*;
import fr.ifremer.isisfish.*; import fr.ifremer.isisfish.types.*; import fr.ifremer.isisfish.rule.Rule; import fr.ifremer.isisfish.rule.RuleHelper; import fr.ifremer.isisfish.simulator.SimulationContext; import fr.ifremer.isisfish.types.Date; import fr.ifremer.isisfish.entities.*; import fr.ifremer.isisfish.simulator.AnalysePlan; import fr.ifremer.isisfish.simulator.AnalysePlanContext; import fr.ifremer.isisfish.simulator.SimulationParameter; import fr.ifremer.isisfish.datastore.RegionStorage; import fr.ifremer.isisfish.datastore.RuleStorage; import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.datastore.ResultStorage;
/** * Sensibility.java * * Created: 21 décembre 2008 * * @author HUSSEIN chirine <m475chi@yahoo.fr> * */ public class Sensibility implements AnalysePlan {
/** to use log facility, just put in your code: log.info("..."); */ static private Log log = LogFactory.getLog(Sensibility.class);
static private final String MATRIX = "matrix"; /// Le fichier est donc matrix.txt static private final String VBGF = "growth"; static private final String SELECTIVITY = "selectivity"; static private final String SELECTIVITYFiletMer = "selectivityFiletMer"; static private final String SELECTIVITYFiletEtang = "selectivityFiletEtang"; static private final String SELECTIVITYLigncote = "selectivityLignecote"; static private final String SELECTIVITYLigneemb = "selectivityLigneemb"; static private final String SELECTIVITYChalut = "selectivityChalut"; static private final String SELECTIVITYHarpon = "selectivityHarpon"; static private final String CATCHABILITY = "capturabilite"; static private final String MORTALITY = "mortalite"; static private final String STANDARDISATION = "standardisation"; //static private final String AMP = "amp"; //static private final String AMP1 = "ampRPrepro_Lignecote"; //static private final String AMP2 = "ampRPrepro_FiletMer"; ///////////* completer ici avec tous les fichiers .txt des amp public int param_parameterNumber = 5; /// ce paramètre n'est normalement pas modifié public int param_first = 0; /// on utilise ce paramètre pour indiquer à quelle ligne /// de la matrice on doit commencer à faire tourner les simulations au cas où on ait dû interompre le plan public int param_simulationNumber = 32;/// ce paramètre n'est normalement pas modifié public String param_directory = "C:/Documents and Settings/hussein/Bureau/isis-fish-3.1.3/isis-fish-3.1.3/fichier paramètres//"; /// Il s'agit du chemin vers le dossier ///contenant les fichier de matrice et paramètres, par défaut le repertoire du go.bat /// donc dans ce cas c'est le dossier Exemple_repertory qui est dans le dossier contenant le go.bat /// Déclaration de la matrice d'expérience private MatrixND matrix = null;
/// Non utilisé pour ce script mais à ne pas effacer public String [] necessaryResult = { // put here all necessary result for this rule // example: // ResultName.MATRIX_BIOMASS, // ResultName.MATRIX_NET_VALUE_OF_LANDINGS_PER_STRATEGY_MET, };
public String[] getNecessaryResult() { return this.necessaryResult; }
/** * Permet d'afficher a l'utilisateur une aide sur le plan. * @return L'aide ou la description du plan */ public String getDescription() throws Exception { return _("réalise les expériences d'un plan complet pour 5 parametres à 2 modalités"); }
/** * Appel? au d?marrage de la simulation, cette m?thode permet d'initialiser * des valeurs * @param simulation La simulation pour lequel on utilise cette regle */ public void init(AnalysePlanContext context) throws Exception { /// Création de la matrice d'expérience et chargement : File dir = new File(param_directory);
File csvFile = new File(dir, MATRIX + ".txt"); log.info("CSV file is : " + csvFile.getAbsolutePath()); if(!csvFile.exists()) { log.warn("File doesn't exists"); }
matrix = MatrixFactory.getInstance().create(new int[]{param_simulationNumber, param_parameterNumber}); matrix.importCSV(new FileReader(csvFile), new int[]{0,0}); matrix.setSemantics(1, Arrays.asList(new String[]{VBGF,CATCHABILITY,MORTALITY,SELECTIVITY, STANDARDISATION})); System.out.println(matrix); //System.out.println("amp 0 : "+ matrix.getValue(0,AMP)); /// ajout des regles qui sont modifiées par le plan //context.getParam().addExtraRules("Cantonnement","Cantonnement","Cantonnement","Cantonnement","Cantonnement","Cantonnement"); ////////////* tu dois ecrire cantonnement 11 fois si tu as 11 regles cantonnement }
/// Création des méthodes qui réccupère dans la matrice la modalité du paramètre pour l'expérience en cours /// Les arguments des méthodes sont le nom du fichier et le numéro de la simulation /// (On détermine l'expérience en cours et donc la ligne de la matrice en sommant le numéro de la simulation et le param_first) /// pour un double private double getDouble(String name, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne, name); System.out.println("mod et ligne : "+ mod+" "+ligne); double result = Double.parseDouble(prop.getProperty(""+mod)); System.out.println("result : "+ result); return result; } /// pour une liste de doubles
/** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private double [] getList(String name, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne, name); double [] result = StringUtil.toArrayDouble(prop.getProperty(""+mod).split(";")); // ""+ ca construit une chaine de caractere return result; } /// pour une chaine de characteres (equation) /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private String getString(String name,String col, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne , col); String result = prop.getProperty(""+mod); return result; } /// pour les paramètres d'une règle de gestion /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private Rule getRule(RegionStorage regionStorage, String name, String col, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name+".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne , col); String ruleName = prop.getProperty(""+mod); RuleStorage ruleStorage = RuleStorage.getRule(ruleName); Rule rule = ruleStorage.getNewRuleInstance(); RuleHelper.populateRule(mod, regionStorage, rule, prop); return rule; } /** * Call before each simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */ public boolean beforeSimulation(AnalysePlanContext context, SimulationStorage nextSimulation) throws
int simNum = context.getNumber()+ param_first; if (simNum < param_simulationNumber+1) { /// On vérifie qu'il reste des expériences à faire
/// On utilise les méthodes crées pour récupérer les valeurs des modalités pour l'expérience en cours double [] croissance = getList (VBGF , simNum); double catchability = getDouble (CATCHABILITY, simNum); double [] standardisation = getList (STANDARDISATION , simNum); String selectivity = getString (SELECTIVITY, simNum); String selectivityFiletMer = getString (SELECTIVITYFiletMer,SELECTIVITY, simNum); String selectivityFiletEtang = getString (SELECTIVITYFiletEtang,SELECTIVITY, simNum); String selectivityLignecote = getString (SELECTIVITYLignecote,SELECTIVITY, simNum); String selectivityLigneemb = getString (SELECTIVITYFLigneemb,SELECTIVITY, simNum); String selectivityChalut = getString (SELECTIVITYChalut,SELECTIVITY, simNum); String selectivityHarpon = getString (SELECTIVITYHarpon,SELECTIVITY, simNum); String mortality = getString (MORTALITY,MORTALITY, simNum); //Rule amp1 = getRule(context.getParam().getRegion(), AMP1, AMP, simNum); //Rule amp2 = getRule(context.getParam().getRegion(), AMP2, AMP, simNum); ///////////////* à completer avec le reste des amp*/ /// On peut afficher des informations dans les logs nextSimulation.getInformation().addInformation("Growth ("+context.getNumber()+")= " + croissance); nextSimulation.getInformation().addInformation("Selectivity ("+context.getNumber()+")= " + selectivity);
/// Il faut maintenant modifier la valeur des paramètres dans la base de données et les paramètres des règle de la simulation /// modif les parametres des regles de gestion : // on enleve la regle de la simulation passé (elle est stoquée sous le nom LastAMP) //List<Rule> paramRules = nextSimulation.getParameter().getRules(); //paramRules.remove(context.getValue("lastAMP1")); // on nomme la regle que l'on va ajouter LastAMP (pour pouvoir la retrouver a la simulation suivante) //context.setValue("lastAMP1", amp1); // on ajoute la regle à la simulation // paramRules.add(amp1); //paramRules.remove(context.getValue("lastAMP2")); //context.setValue("lastAMP2", amp2); //paramRules.add(amp2); /////////////////* à completer avec les autres amp */ /// modif les parametres dans la base de données : TopiaContext tx = nextSimulation.getStorage().beginTransaction(); /// On récupère les objets ISIS a modifier dans la base de données PopulationDAO popDAO = IsisFishDAOHelper.getPopulationDAO(tx); Population pop = popDAO.findByName("CSar"); List<PopulationGroup> groups = pop.getPopulationGroup(); GearDAO gearDAO = IsisFishDAOHelper.getGearDAO(tx); List<Gear> gears = gearDAO.findAll();
///modif borne des classes de taille /// On remplace les bornes par les éléments de la liste for (PopulationGroup group : groups) { group.setMinLength(croissance[group.getId()]) ; group.setMaxLength(croissance[group.getId()+1]) ; } // modif la capturabilité /// On modifie la valeur de la base en la multipliant par la valeur contenue dans la modalité MatrixND c = pop.getCapturability(); for (MatrixIterator i = c.iterator(); i.hasNext();){ i.next(); i.setValue(catchability); } // modif la mortalité naturelle /// On modifie la valeur de la base en la remplacant par la valeur contenue dans la modalité for (PopulationGroup group : groups) { Equation eq = pop.getNaturalDeathRate(); eq.setContent(mortality); }
// modif les facteurs de standardisation /// On modifie la valeur de la base en la remplacant par la valeur contenue dans la modalité for (Gear gear : gears) { if ("FiletMer".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[0]); }else if("Lignecote".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[1]); }else if("Harpon".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[2]); }else if("chalut".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[3]); }else if("Ligneemb".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[4]); }else if("FiletEtang".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[5]); /////////////*a completer } }
/// modif selectivité /// On remplace l'equation existante par une autre equation for (Gear gear : gears) {
if ("FiletMer".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityFiletMer); } else if ("FiletEtang".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityFiletEtang); }else if ("Lignecote".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityLignecote); }else if ("Ligneemb".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityLigneemb); }else if ("Chalut".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityChalut); }else if ("Harpon".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityHarpon); } tx.commitTransaction(); return true;
} else { return false; } }
/** * Call before each simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */ public boolean afterSimulation(AnalysePlanContext context, SimulationStorage lastSimulation) throws Exception { return true; }
}
_______________________________________________ Isis-fish-user mailing list Isis-fish-user@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user
-----La pièce jointe correspondante suit----- package analyseplans; import static org.codelutin.i18n.I18n._; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import scripts.ResultName; import java.io.*; import java.io.File; import java.io.FileReader; import java.io.Writer; import java.util.*; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; import org.codelutin.math.matrix.*; import org.codelutin.util.*; import org.codelutin.topia.*; import fr.ifremer.isisfish.*; import fr.ifremer.isisfish.types.*; import fr.ifremer.isisfish.rule.Rule; import fr.ifremer.isisfish.rule.RuleHelper; import fr.ifremer.isisfish.simulator.SimulationContext; import fr.ifremer.isisfish.types.Date; import fr.ifremer.isisfish.entities.*; import fr.ifremer.isisfish.simulator.AnalysePlan; import fr.ifremer.isisfish.simulator.AnalysePlanContext; import fr.ifremer.isisfish.simulator.SimulationParameter; import fr.ifremer.isisfish.datastore.RegionStorage; import fr.ifremer.isisfish.datastore.RuleStorage; import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.datastore.ResultStorage; /** * Sensibility.java * * Created: 21 décembre 2008 * * @author HUSSEIN chirine <m475chi@yahoo.fr> * */ public class Sensibility implements AnalysePlan { /** to use log facility, just put in your code: log.info("..."); */ static private Log log = LogFactory.getLog(Sensibility.class); static private final String MATRIX = "matrix"; /// Le fichier est donc matrix.txt static private final String VBGF = "growth"; static private final String SELECTIVITY = "selectivity"; static private final String SELECTIVITYFiletMer = "selectivityFiletMer"; static private final String SELECTIVITYFiletEtang = "selectivityFiletEtang"; static private final String SELECTIVITYLigncote = "selectivityLignecote"; static private final String SELECTIVITYLigneemb = "selectivityLigneemb"; static private final String SELECTIVITYChalut = "selectivityChalut"; static private final String SELECTIVITYHarpon = "selectivityHarpon"; static private final String CATCHABILITY = "capturabilite"; static private final String MORTALITY = "mortalite"; static private final String STANDARDISATION = "standardisation"; //static private final String AMP = "amp"; //static private final String AMP1 = "ampRPrepro_Lignecote"; //static private final String AMP2 = "ampRPrepro_FiletMer"; ///////////* completer ici avec tous les fichiers .txt des amp public int param_parameterNumber = 5; /// ce paramètre n'est normalement pas modifié public int param_first = 0; /// on utilise ce paramètre pour indiquer à quelle ligne /// de la matrice on doit commencer à faire tourner les simulations au cas où on ait dû interompre le plan public int param_simulationNumber = 32;/// ce paramètre n'est normalement pas modifié public String param_directory = "C:/Documents and Settings/hussein/Bureau/isis-fish-3.1.3/isis-fish-3.1.3/fichier paramètres//"; /// Il s'agit du chemin vers le dossier ///contenant les fichier de matrice et paramètres, par défaut le repertoire du go.bat /// donc dans ce cas c'est le dossier Exemple_repertory qui est dans le dossier contenant le go.bat /// Déclaration de la matrice d'expérience private MatrixND matrix = null; /// Non utilisé pour ce script mais à ne pas effacer public String [] necessaryResult = { // put here all necessary result for this rule // example: // ResultName.MATRIX_BIOMASS, // ResultName.MATRIX_NET_VALUE_OF_LANDINGS_PER_STRATEGY_MET, }; public String[] getNecessaryResult() { return this.necessaryResult; } /** * Permet d'afficher a l'utilisateur une aide sur le plan. * @return L'aide ou la description du plan */ public String getDescription() throws Exception { return _("réalise les expériences d'un plan complet pour 5 parametres à 2 modalités"); } /** * Appel? au d?marrage de la simulation, cette m?thode permet d'initialiser * des valeurs * @param simulation La simulation pour lequel on utilise cette regle */ public void init(AnalysePlanContext context) throws Exception { /// Création de la matrice d'expérience et chargement : File dir = new File(param_directory); File csvFile = new File(dir, MATRIX + ".txt"); log.info("CSV file is : " + csvFile.getAbsolutePath()); if(!csvFile.exists()) { log.warn("File doesn't exists"); } matrix = MatrixFactory.getInstance().create(new int[]{param_simulationNumber, param_parameterNumber}); matrix.importCSV(new FileReader(csvFile), new int[]{0,0}); matrix.setSemantics(1, Arrays.asList(new String[]{VBGF,CATCHABILITY,MORTALITY,SELECTIVITY, STANDARDISATION})); System.out.println(matrix); //System.out.println("amp 0 : "+ matrix.getValue(0,AMP)); /// ajout des regles qui sont modifiées par le plan //context.getParam().addExtraRules("Cantonnement","Cantonnement","Cantonnement","Cantonnement","Cantonnement","Cantonnement"); ////////////* tu dois ecrire cantonnement 11 fois si tu as 11 regles cantonnement } /// Création des méthodes qui réccupère dans la matrice la modalité du paramètre pour l'expérience en cours /// Les arguments des méthodes sont le nom du fichier et le numéro de la simulation /// (On détermine l'expérience en cours et donc la ligne de la matrice en sommant le numéro de la simulation et le param_first) /// pour un double private double getDouble(String name, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne, name); System.out.println("mod et ligne : "+ mod+" "+ligne); double result = Double.parseDouble(prop.getProperty(""+mod)); System.out.println("result : "+ result); return result; } /// pour une liste de doubles /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private double [] getList(String name, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne, name); double [] result = StringUtil.toArrayDouble(prop.getProperty(""+mod).split(";")); // ""+ ca construit une chaine de caractere return result; } /// pour une chaine de characteres (equation) /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private String getString(String name,String col, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne , col); String result = prop.getProperty(""+mod); return result; } /// pour les paramètres d'une règle de gestion /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private Rule getRule(RegionStorage regionStorage, String name, String col, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name+".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne , col); String ruleName = prop.getProperty(""+mod); RuleStorage ruleStorage = RuleStorage.getRule(ruleName); Rule rule = ruleStorage.getNewRuleInstance(); RuleHelper.populateRule(mod, regionStorage, rule, prop); return rule; } /** * Call before each simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */ public boolean beforeSimulation(AnalysePlanContext context, SimulationStorage nextSimulation) throws int simNum = context.getNumber()+ param_first; if (simNum < param_simulationNumber+1) { /// On vérifie qu'il reste des expériences à faire /// On utilise les méthodes crées pour récupérer les valeurs des modalités pour l'expérience en cours double [] croissance = getList (VBGF , simNum); double catchability = getDouble (CATCHABILITY, simNum); double [] standardisation = getList (STANDARDISATION , simNum); String selectivity = getString (SELECTIVITY, simNum); String selectivityFiletMer = getString (SELECTIVITYFiletMer,SELECTIVITY, simNum); String selectivityFiletEtang = getString (SELECTIVITYFiletEtang,SELECTIVITY, simNum); String selectivityLignecote = getString (SELECTIVITYLignecote,SELECTIVITY, simNum); String selectivityLigneemb = getString (SELECTIVITYFLigneemb,SELECTIVITY, simNum); String selectivityChalut = getString (SELECTIVITYChalut,SELECTIVITY, simNum); String selectivityHarpon = getString (SELECTIVITYHarpon,SELECTIVITY, simNum); String mortality = getString (MORTALITY,MORTALITY, simNum); //Rule amp1 = getRule(context.getParam().getRegion(), AMP1, AMP, simNum); //Rule amp2 = getRule(context.getParam().getRegion(), AMP2, AMP, simNum); ///////////////* à completer avec le reste des amp*/ /// On peut afficher des informations dans les logs nextSimulation.getInformation().addInformation("Growth ("+context.getNumber()+")= " + croissance); nextSimulation.getInformation().addInformation("Selectivity ("+context.getNumber()+")= " + selectivity); /// Il faut maintenant modifier la valeur des paramètres dans la base de données et les paramètres des règle de la simulation /// modif les parametres des regles de gestion : // on enleve la regle de la simulation passé (elle est stoquée sous le nom LastAMP) //List<Rule> paramRules = nextSimulation.getParameter().getRules(); //paramRules.remove(context.getValue("lastAMP1")); // on nomme la regle que l'on va ajouter LastAMP (pour pouvoir la retrouver a la simulation suivante) //context.setValue("lastAMP1", amp1); // on ajoute la regle à la simulation // paramRules.add(amp1); //paramRules.remove(context.getValue("lastAMP2")); //context.setValue("lastAMP2", amp2); //paramRules.add(amp2); /////////////////* à completer avec les autres amp */ /// modif les parametres dans la base de données : TopiaContext tx = nextSimulation.getStorage().beginTransaction(); /// On récupère les objets ISIS a modifier dans la base de données PopulationDAO popDAO = IsisFishDAOHelper.getPopulationDAO(tx); Population pop = popDAO.findByName("CSar"); List<PopulationGroup> groups = pop.getPopulationGroup(); GearDAO gearDAO = IsisFishDAOHelper.getGearDAO(tx); List<Gear> gears = gearDAO.findAll(); ///modif borne des classes de taille /// On remplace les bornes par les éléments de la liste for (PopulationGroup group : groups) { group.setMinLength(croissance[group.getId()]) ; group.setMaxLength(croissance[group.getId()+1]) ; } // modif la capturabilité /// On modifie la valeur de la base en la multipliant par la valeur contenue dans la modalité MatrixND c = pop.getCapturability(); for (MatrixIterator i = c.iterator(); i.hasNext();){ i.next(); i.setValue(catchability); } // modif la mortalité naturelle /// On modifie la valeur de la base en la remplacant par la valeur contenue dans la modalité for (PopulationGroup group : groups) { Equation eq = pop.getNaturalDeathRate(); eq.setContent(mortality); } // modif les facteurs de standardisation /// On modifie la valeur de la base en la remplacant par la valeur contenue dans la modalité for (Gear gear : gears) { if ("FiletMer".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[0]); }else if("Lignecote".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[1]); }else if("Harpon".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[2]); }else if("chalut".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[3]); }else if("Ligneemb".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[4]); }else if("FiletEtang".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[5]); /////////////*a completer } } /// modif selectivité /// On remplace l'equation existante par une autre equation for (Gear gear : gears) { if ("FiletMer".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityFiletMer); } else if ("FiletEtang".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityFiletEtang); }else if ("Lignecote".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityLignecote); }else if ("Ligneemb".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityLigneemb); }else if ("Chalut".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityChalut); }else if ("Harpon".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityHarpon); } tx.commitTransaction(); return true; } else { return false; } } /** * Call before each simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */ public boolean afterSimulation(AnalysePlanContext context, SimulationStorage lastSimulation) throws Exception { return true; } }
Ok le script en piece jointe compile : les accolades s'ouvrent et se ferment, les getNam() et les SELECTIVITYLigncote ont reccupéré leur "e", les SELECTIVITYFLigneemb ont perdu leut "f" et les "throws" précèdent leur "Exception" ! Cette fois j'y crois à fond ! chirine HUSSEIN a écrit :
bonjour, avec le copie corrigé, j'ai eu 6 erreur de plus. En plus, je pense pas que on peut commencer la méthode beforeSimulation comme (public boolean beforeSimulation(AnalysePlanContext context, SimulationStorage nextSimulation) throws) sans mettre à la fin: Exception {
chirine
----- Message d'origine ---- De : letellier <letellier@codelutin.com> À : Liste pour les utilisateurs du simulateur <isis-fish-user@lists.labs.libre-entreprise.org> Envoyé le : Mardi, 27 Janvier 2009, 15h51mn 35s Objet : Re: [Isis-fish-user] Re : Re : (sans objet)
chirine HUSSEIN a écrit :
merci bien, mais je n'arrive pas à telecharger le fichier joindre. pourriez- vous me renvoyer un copie? Chirine
----- Message d'origine ---- De : letellier <letellier@codelutin.com> À : Liste pour les utilisateurs du simulateur <isis-fish-user@lists.labs.libre-entreprise.org> Envoyé le : Mardi, 27 Janvier 2009, 11h51mn 07s Objet : Re: [Isis-fish-user] Re : (sans objet)
Bonjour,
comme Youen l'a préciser, le message d'erreur parle de lui même, il manque une accolade. Pour éviter ce genre d'erreur, il est nécessaire de bien indenter son code (TAB) pour mettre en évidence tous les blocs.
Je vous renvoie la copie corrigé ;) A première vu, je pense qu'il manque une accolade fermante après le premier for.
Sylvain
chirine HUSSEIN a écrit :
je pense que cette "eles" correspond à if qui est au debut de la méthode "beforesimulation".
----- Message d'origine ---- De : "Youen.Vermard@ifremer.fr" <Youen.Vermard@ifremer.fr> À : isis-fish-user@lists.labs.libre-entreprise.org Envoyé le : Mardi, 27 Janvier 2009, 11h14mn 50s Objet : Re: [Isis-fish-user] (sans objet)
Bonjour chirine, tout est dans le message d'erreur:
Sensibility.java:347 => ligne 347 tu as un else qui ne correspond à aucun if
Pour l instant l'accolade de ton else correspond au for (ligne 317)
Après je n ai pas regardé plus le code, je ne sais pas ce qu'il fait, à toi de retrouver où il faut replacer les accolades.
Youen
chirine HUSSEIN <m475chi@yahoo.fr> a écrit :
Bonjour à tous, toujours avec le script de la sensibility, j'ai de nouvaux un autre problème que je n'arrive pas à me débarrasser:
C:\Documents and Settings\hussein\isis-database-3\analyseplans\Sensibility.java:347: 'else' without 'if' } else { ^ je vous envoie le fichier de script merci pour votre aide
chirine
_______________________________________________ Isis-fish-user mailing list Isis-fish-user@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user
_______________________________________________ Isis-fish-user mailing list Isis-fish-user@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user
-----La pièce jointe correspondante suit-----
package analyseplans;
import static org.codelutin.i18n.I18n._;
import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory;
import scripts.ResultName;
import java.io.*; import java.io.File; import java.io.FileReader; import java.io.Writer; import java.util.*; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties;
import org.codelutin.math.matrix.*; import org.codelutin.util.*; import org.codelutin.topia.*;
import fr.ifremer.isisfish.*; import fr.ifremer.isisfish.types.*; import fr.ifremer.isisfish.rule.Rule; import fr.ifremer.isisfish.rule.RuleHelper; import fr.ifremer.isisfish.simulator.SimulationContext; import fr.ifremer.isisfish.types.Date; import fr.ifremer.isisfish.entities.*; import fr.ifremer.isisfish.simulator.AnalysePlan; import fr.ifremer.isisfish.simulator.AnalysePlanContext; import fr.ifremer.isisfish.simulator.SimulationParameter; import fr.ifremer.isisfish.datastore.RegionStorage; import fr.ifremer.isisfish.datastore.RuleStorage; import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.datastore.ResultStorage;
/** * Sensibility.java * * Created: 21 décembre 2008 * * @author HUSSEIN chirine <m475chi@yahoo.fr> * */ public class Sensibility implements AnalysePlan {
/** to use log facility, just put in your code: log.info("..."); */ static private Log log = LogFactory.getLog(Sensibility.class);
static private final String MATRIX = "matrix"; /// Le fichier est donc matrix.txt static private final String VBGF = "growth"; static private final String SELECTIVITY = "selectivity"; static private final String SELECTIVITYFiletMer = "selectivityFiletMer"; static private final String SELECTIVITYFiletEtang = "selectivityFiletEtang"; static private final String SELECTIVITYLigncote = "selectivityLignecote"; static private final String SELECTIVITYLigneemb = "selectivityLigneemb"; static private final String SELECTIVITYChalut = "selectivityChalut"; static private final String SELECTIVITYHarpon = "selectivityHarpon"; static private final String CATCHABILITY = "capturabilite"; static private final String MORTALITY = "mortalite"; static private final String STANDARDISATION = "standardisation"; //static private final String AMP = "amp"; //static private final String AMP1 = "ampRPrepro_Lignecote"; //static private final String AMP2 = "ampRPrepro_FiletMer"; ///////////* completer ici avec tous les fichiers .txt des amp public int param_parameterNumber = 5; /// ce paramètre n'est normalement pas modifié public int param_first = 0; /// on utilise ce paramètre pour indiquer à quelle ligne /// de la matrice on doit commencer à faire tourner les simulations au cas où on ait dû interompre le plan public int param_simulationNumber = 32;/// ce paramètre n'est normalement pas modifié public String param_directory = "C:/Documents and Settings/hussein/Bureau/isis-fish-3.1.3/isis-fish-3.1.3/fichier paramètres//"; /// Il s'agit du chemin vers le dossier ///contenant les fichier de matrice et paramètres, par défaut le repertoire du go.bat /// donc dans ce cas c'est le dossier Exemple_repertory qui est dans le dossier contenant le go.bat /// Déclaration de la matrice d'expérience private MatrixND matrix = null;
/// Non utilisé pour ce script mais à ne pas effacer public String [] necessaryResult = { // put here all necessary result for this rule // example: // ResultName.MATRIX_BIOMASS, // ResultName.MATRIX_NET_VALUE_OF_LANDINGS_PER_STRATEGY_MET, };
public String[] getNecessaryResult() { return this.necessaryResult; }
/** * Permet d'afficher a l'utilisateur une aide sur le plan. * @return L'aide ou la description du plan */ public String getDescription() throws Exception { return _("réalise les expériences d'un plan complet pour 5 parametres à 2 modalités"); }
/** * Appel? au d?marrage de la simulation, cette m?thode permet d'initialiser * des valeurs * @param simulation La simulation pour lequel on utilise cette regle */ public void init(AnalysePlanContext context) throws Exception { /// Création de la matrice d'expérience et chargement : File dir = new File(param_directory);
File csvFile = new File(dir, MATRIX + ".txt"); log.info("CSV file is : " + csvFile.getAbsolutePath()); if(!csvFile.exists()) { log.warn("File doesn't exists"); }
matrix = MatrixFactory.getInstance().create(new int[]{param_simulationNumber, param_parameterNumber}); matrix.importCSV(new FileReader(csvFile), new int[]{0,0}); matrix.setSemantics(1, Arrays.asList(new String[]{VBGF,CATCHABILITY,MORTALITY,SELECTIVITY, STANDARDISATION})); System.out.println(matrix); //System.out.println("amp 0 : "+ matrix.getValue(0,AMP)); /// ajout des regles qui sont modifiées par le plan //context.getParam().addExtraRules("Cantonnement","Cantonnement","Cantonnement","Cantonnement","Cantonnement","Cantonnement"); ////////////* tu dois ecrire cantonnement 11 fois si tu as 11 regles cantonnement }
/// Création des méthodes qui réccupère dans la matrice la modalité du paramètre pour l'expérience en cours /// Les arguments des méthodes sont le nom du fichier et le numéro de la simulation /// (On détermine l'expérience en cours et donc la ligne de la matrice en sommant le numéro de la simulation et le param_first) /// pour un double private double getDouble(String name, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne, name); System.out.println("mod et ligne : "+ mod+" "+ligne); double result = Double.parseDouble(prop.getProperty(""+mod)); System.out.println("result : "+ result); return result; } /// pour une liste de doubles
/** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private double [] getList(String name, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne, name); double [] result = StringUtil.toArrayDouble(prop.getProperty(""+mod).split(";")); // ""+ ca construit une chaine de caractere return result; } /// pour une chaine de characteres (equation) /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private String getString(String name,String col, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne , col); String result = prop.getProperty(""+mod); return result; } /// pour les paramètres d'une règle de gestion /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private Rule getRule(RegionStorage regionStorage, String name, String col, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name+".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne , col); String ruleName = prop.getProperty(""+mod); RuleStorage ruleStorage = RuleStorage.getRule(ruleName); Rule rule = ruleStorage.getNewRuleInstance(); RuleHelper.populateRule(mod, regionStorage, rule, prop); return rule; } /** * Call before each simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */ public boolean beforeSimulation(AnalysePlanContext context, SimulationStorage nextSimulation) throws
int simNum = context.getNumber()+ param_first; if (simNum < param_simulationNumber+1) { /// On vérifie qu'il reste des expériences à faire
/// On utilise les méthodes crées pour récupérer les valeurs des modalités pour l'expérience en cours double [] croissance = getList (VBGF , simNum); double catchability = getDouble (CATCHABILITY, simNum); double [] standardisation = getList (STANDARDISATION , simNum); String selectivity = getString (SELECTIVITY, simNum); String selectivityFiletMer = getString (SELECTIVITYFiletMer,SELECTIVITY, simNum); String selectivityFiletEtang = getString (SELECTIVITYFiletEtang,SELECTIVITY, simNum); String selectivityLignecote = getString (SELECTIVITYLignecote,SELECTIVITY, simNum); String selectivityLigneemb = getString (SELECTIVITYFLigneemb,SELECTIVITY, simNum); String selectivityChalut = getString (SELECTIVITYChalut,SELECTIVITY, simNum); String selectivityHarpon = getString (SELECTIVITYHarpon,SELECTIVITY, simNum); String mortality = getString (MORTALITY,MORTALITY, simNum); //Rule amp1 = getRule(context.getParam().getRegion(), AMP1, AMP, simNum); //Rule amp2 = getRule(context.getParam().getRegion(), AMP2, AMP, simNum); ///////////////* à completer avec le reste des amp*/ /// On peut afficher des informations dans les logs nextSimulation.getInformation().addInformation("Growth ("+context.getNumber()+")= " + croissance); nextSimulation.getInformation().addInformation("Selectivity ("+context.getNumber()+")= " + selectivity);
/// Il faut maintenant modifier la valeur des paramètres dans la base de données et les paramètres des règle de la simulation /// modif les parametres des regles de gestion : // on enleve la regle de la simulation passé (elle est stoquée sous le nom LastAMP) //List<Rule> paramRules = nextSimulation.getParameter().getRules(); //paramRules.remove(context.getValue("lastAMP1")); // on nomme la regle que l'on va ajouter LastAMP (pour pouvoir la retrouver a la simulation suivante) //context.setValue("lastAMP1", amp1); // on ajoute la regle à la simulation // paramRules.add(amp1); //paramRules.remove(context.getValue("lastAMP2")); //context.setValue("lastAMP2", amp2); //paramRules.add(amp2); /////////////////* à completer avec les autres amp */ /// modif les parametres dans la base de données : TopiaContext tx = nextSimulation.getStorage().beginTransaction(); /// On récupère les objets ISIS a modifier dans la base de données PopulationDAO popDAO = IsisFishDAOHelper.getPopulationDAO(tx); Population pop = popDAO.findByName("CSar"); List<PopulationGroup> groups = pop.getPopulationGroup(); GearDAO gearDAO = IsisFishDAOHelper.getGearDAO(tx); List<Gear> gears = gearDAO.findAll();
///modif borne des classes de taille /// On remplace les bornes par les éléments de la liste for (PopulationGroup group : groups) { group.setMinLength(croissance[group.getId()]) ; group.setMaxLength(croissance[group.getId()+1]) ; } // modif la capturabilité /// On modifie la valeur de la base en la multipliant par la valeur contenue dans la modalité MatrixND c = pop.getCapturability(); for (MatrixIterator i = c.iterator(); i.hasNext();){ i.next(); i.setValue(catchability); }
// modif la mortalité naturelle /// On modifie la valeur de la base en la remplacant par la valeur contenue dans la modalité for (PopulationGroup group : groups) { Equation eq = pop.getNaturalDeathRate(); eq.setContent(mortality); }
// modif les facteurs de standardisation /// On modifie la valeur de la base en la remplacant par la valeur contenue dans la modalité for (Gear gear : gears) { if ("FiletMer".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[0]); }else if("Lignecote".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[1]); }else if("Harpon".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[2]); }else if("chalut".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[3]); }else if("Ligneemb".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[4]); }else if("FiletEtang".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[5]); /////////////*a completer } }
/// modif selectivité /// On remplace l'equation existante par une autre equation for (Gear gear : gears) {
if ("FiletMer".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityFiletMer); } else if ("FiletEtang".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityFiletEtang); }else if ("Lignecote".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityLignecote); }else if ("Ligneemb".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityLigneemb); }else if ("Chalut".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityChalut); }else if ("Harpon".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityHarpon); } tx.commitTransaction(); return true;
} else { return false; } }
/** * Call before each simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */ public boolean afterSimulation(AnalysePlanContext context, SimulationStorage lastSimulation) throws Exception { return true; }
}
_______________________________________________ Isis-fish-user mailing list Isis-fish-user@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user
-----La pièce jointe correspondante suit-----
package analyseplans;
import static org.codelutin.i18n.I18n._;
import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory;
import scripts.ResultName;
import java.io.*; import java.io.File; import java.io.FileReader; import java.io.Writer; import java.util.*; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties;
import org.codelutin.math.matrix.*; import org.codelutin.util.*; import org.codelutin.topia.*;
import fr.ifremer.isisfish.*; import fr.ifremer.isisfish.types.*; import fr.ifremer.isisfish.rule.Rule; import fr.ifremer.isisfish.rule.RuleHelper; import fr.ifremer.isisfish.simulator.SimulationContext; import fr.ifremer.isisfish.types.Date; import fr.ifremer.isisfish.entities.*; import fr.ifremer.isisfish.simulator.AnalysePlan; import fr.ifremer.isisfish.simulator.AnalysePlanContext; import fr.ifremer.isisfish.simulator.SimulationParameter; import fr.ifremer.isisfish.datastore.RegionStorage; import fr.ifremer.isisfish.datastore.RuleStorage; import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.datastore.ResultStorage;
/** * Sensibility.java * * Created: 21 décembre 2008 * * @author HUSSEIN chirine <m475chi@yahoo.fr> * */ public class Sensibility implements AnalysePlan {
/** to use log facility, just put in your code: log.info("..."); */ static private Log log = LogFactory.getLog(Sensibility.class);
static private final String MATRIX = "matrix"; /// Le fichier est donc matrix.txt static private final String VBGF = "growth"; static private final String SELECTIVITY = "selectivity"; static private final String SELECTIVITYFiletMer = "selectivityFiletMer"; static private final String SELECTIVITYFiletEtang = "selectivityFiletEtang"; static private final String SELECTIVITYLigncote = "selectivityLignecote"; static private final String SELECTIVITYLigneemb = "selectivityLigneemb"; static private final String SELECTIVITYChalut = "selectivityChalut"; static private final String SELECTIVITYHarpon = "selectivityHarpon"; static private final String CATCHABILITY = "capturabilite"; static private final String MORTALITY = "mortalite"; static private final String STANDARDISATION = "standardisation"; //static private final String AMP = "amp"; //static private final String AMP1 = "ampRPrepro_Lignecote"; //static private final String AMP2 = "ampRPrepro_FiletMer"; ///////////* completer ici avec tous les fichiers .txt des amp
public int param_parameterNumber = 5; /// ce paramètre n'est normalement pas modifié public int param_first = 0; /// on utilise ce paramètre pour indiquer à quelle ligne /// de la matrice on doit commencer à faire tourner les simulations au cas où on ait dû interompre le plan public int param_simulationNumber = 32;/// ce paramètre n'est normalement pas modifié public String param_directory = "C:/Documents and Settings/hussein/Bureau/isis-fish-3.1.3/isis-fish-3.1.3/fichier paramètres//"; /// Il s'agit du chemin vers le dossier ///contenant les fichier de matrice et paramètres, par défaut le repertoire du go.bat /// donc dans ce cas c'est le dossier Exemple_repertory qui est dans le dossier contenant le go.bat
/// Déclaration de la matrice d'expérience
private MatrixND matrix = null;
/// Non utilisé pour ce script mais à ne pas effacer public String [] necessaryResult = { // put here all necessary result for this rule // example: // ResultName.MATRIX_BIOMASS, // ResultName.MATRIX_NET_VALUE_OF_LANDINGS_PER_STRATEGY_MET, };
public String[] getNecessaryResult() { return this.necessaryResult; }
/** * Permet d'afficher a l'utilisateur une aide sur le plan. * @return L'aide ou la description du plan */ public String getDescription() throws Exception {
return _("réalise les expériences d'un plan complet pour 5 parametres à 2 modalités"); }
/** * Appel? au d?marrage de la simulation, cette m?thode permet d'initialiser * des valeurs * @param simulation La simulation pour lequel on utilise cette regle */ public void init(AnalysePlanContext context) throws Exception { /// Création de la matrice d'expérience et chargement : File dir = new File(param_directory);
File csvFile = new File(dir, MATRIX + ".txt"); log.info("CSV file is : " + csvFile.getAbsolutePath()); if(!csvFile.exists()) { log.warn("File doesn't exists"); }
matrix = MatrixFactory.getInstance().create(new int[]{param_simulationNumber, param_parameterNumber}); matrix.importCSV(new FileReader(csvFile), new int[]{0,0}); matrix.setSemantics(1, Arrays.asList(new String[]{VBGF,CATCHABILITY,MORTALITY,SELECTIVITY, STANDARDISATION})); System.out.println(matrix); //System.out.println("amp 0 : "+ matrix.getValue(0,AMP)); /// ajout des regles qui sont modifiées par le plan //context.getParam().addExtraRules("Cantonnement","Cantonnement","Cantonnement","Cantonnement","Cantonnement","Cantonnement"); ////////////* tu dois ecrire cantonnement 11 fois si tu as 11 regles cantonnement }
/// Création des méthodes qui réccupère dans la matrice la modalité du paramètre pour l'expérience en cours /// Les arguments des méthodes sont le nom du fichier et le numéro de la simulation /// (On détermine l'expérience en cours et donc la ligne de la matrice en sommant le numéro de la simulation et le param_first) /// pour un double
private double getDouble(String name, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne, name); System.out.println("mod et ligne : "+ mod+" "+ligne); double result = Double.parseDouble(prop.getProperty(""+mod)); System.out.println("result : "+ result); return result; }
/// pour une liste de doubles
/** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private double [] getList(String name, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne, name); double [] result = StringUtil.toArrayDouble(prop.getProperty(""+mod).split(";")); // ""+ ca construit une chaine de caractere return result; }
/// pour une chaine de characteres (equation) /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private String getString(String name,String col, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne , col); String result = prop.getProperty(""+mod); return result; } /// pour les paramètres d'une règle de gestion /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private Rule getRule(RegionStorage regionStorage, String name, String col, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name+".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne , col); String ruleName = prop.getProperty(""+mod); RuleStorage ruleStorage = RuleStorage.getRule(ruleName); Rule rule = ruleStorage.getNewRuleInstance(); RuleHelper.populateRule(mod, regionStorage, rule, prop); return rule; }
/** * Call before each simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */ public boolean beforeSimulation(AnalysePlanContext context, SimulationStorage nextSimulation) throws
int simNum = context.getNumber()+ param_first;
if (simNum < param_simulationNumber+1) { /// On vérifie qu'il reste des expériences à faire
/// On utilise les méthodes crées pour récupérer les valeurs des modalités pour l'expérience en cours double [] croissance = getList (VBGF , simNum); double catchability = getDouble (CATCHABILITY, simNum); double [] standardisation = getList (STANDARDISATION , simNum); String selectivity = getString (SELECTIVITY, simNum); String selectivityFiletMer = getString (SELECTIVITYFiletMer,SELECTIVITY, simNum); String selectivityFiletEtang = getString (SELECTIVITYFiletEtang,SELECTIVITY, simNum); String selectivityLignecote = getString (SELECTIVITYLignecote,SELECTIVITY, simNum); String selectivityLigneemb = getString (SELECTIVITYFLigneemb,SELECTIVITY, simNum); String selectivityChalut = getString (SELECTIVITYChalut,SELECTIVITY, simNum); String selectivityHarpon = getString (SELECTIVITYHarpon,SELECTIVITY, simNum); String mortality = getString (MORTALITY,MORTALITY, simNum); //Rule amp1 = getRule(context.getParam().getRegion(), AMP1, AMP, simNum); //Rule amp2 = getRule(context.getParam().getRegion(), AMP2, AMP, simNum); ///////////////* à completer avec le reste des amp*/
/// On peut afficher des informations dans les logs nextSimulation.getInformation().addInformation("Growth ("+context.getNumber()+")= " + croissance); nextSimulation.getInformation().addInformation("Selectivity ("+context.getNumber()+")= " + selectivity);
/// Il faut maintenant modifier la valeur des paramètres dans la base de données et les paramètres des règle de la simulation /// modif les parametres des regles de gestion :
// on enleve la regle de la simulation passé (elle est stoquée sous le nom LastAMP) //List<Rule> paramRules = nextSimulation.getParameter().getRules();
//paramRules.remove(context.getValue("lastAMP1")); // on nomme la regle que l'on va ajouter LastAMP (pour pouvoir la retrouver a la simulation suivante) //context.setValue("lastAMP1", amp1); // on ajoute la regle à la simulation // paramRules.add(amp1);
//paramRules.remove(context.getValue("lastAMP2")); //context.setValue("lastAMP2", amp2); //paramRules.add(amp2); /////////////////* à completer avec les autres amp */
/// modif les parametres dans la base de données : TopiaContext tx = nextSimulation.getStorage().beginTransaction(); /// On récupère les objets ISIS a modifier dans la base de données PopulationDAO popDAO = IsisFishDAOHelper.getPopulationDAO(tx); Population pop = popDAO.findByName("CSar"); List<PopulationGroup> groups = pop.getPopulationGroup(); GearDAO gearDAO = IsisFishDAOHelper.getGearDAO(tx); List<Gear> gears = gearDAO.findAll();
///modif borne des classes de taille /// On remplace les bornes par les éléments de la liste for (PopulationGroup group : groups) { group.setMinLength(croissance[group.getId()]) ; group.setMaxLength(croissance[group.getId()+1]) ; }
// modif la capturabilité /// On modifie la valeur de la base en la multipliant par la valeur contenue dans la modalité MatrixND c = pop.getCapturability(); for (MatrixIterator i = c.iterator(); i.hasNext();){ i.next(); i.setValue(catchability); }
// modif la mortalité naturelle /// On modifie la valeur de la base en la remplacant par la valeur contenue dans la modalité
for (PopulationGroup group : groups) { Equation eq = pop.getNaturalDeathRate(); eq.setContent(mortality); }
// modif les facteurs de standardisation /// On modifie la valeur de la base en la remplacant par la valeur contenue dans la modalité for (Gear gear : gears) {
if ("FiletMer".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[0]); }else if("Lignecote".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[1]); }else if("Harpon".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[2]); }else if("chalut".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[3]); }else if("Ligneemb".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[4]); }else if("FiletEtang".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[5]); /////////////*a completer } }
/// modif selectivité /// On remplace l'equation existante par une autre equation for (Gear gear : gears) {
if ("FiletMer".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityFiletMer); } else if ("FiletEtang".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityFiletEtang); }else if ("Lignecote".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityLignecote); }else if ("Ligneemb".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityLigneemb); }else if ("Chalut".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityChalut); }else if ("Harpon".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityHarpon); } tx.commitTransaction(); return true;
} else { return false; } }
/** * Call before each simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */
public boolean afterSimulation(AnalysePlanContext context, SimulationStorage lastSimulation) throws Exception { return true; }
}
_______________________________________________ Isis-fish-user mailing list Isis-fish-user@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user
-- Sigrid LEHUTA ~ ><> ~ Doctorante Département Ecologie et Modèles pour l'Halieutique IFREMER, rue de l'ile d'Yeu BP 21105 44311 Nantes Cedex 03 Tél : +33 (0)2 40 37 41 65 package analyseplans; import static org.codelutin.i18n.I18n._; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import scripts.ResultName; import java.io.*; import java.io.File; import java.io.FileReader; import java.io.Writer; import java.util.*; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; import org.codelutin.math.matrix.*; import org.codelutin.util.*; import org.codelutin.topia.*; import fr.ifremer.isisfish.*; import fr.ifremer.isisfish.types.*; import fr.ifremer.isisfish.rule.Rule; import fr.ifremer.isisfish.rule.RuleHelper; import fr.ifremer.isisfish.simulator.SimulationContext; import fr.ifremer.isisfish.types.Date; import fr.ifremer.isisfish.entities.*; import fr.ifremer.isisfish.simulator.AnalysePlan; import fr.ifremer.isisfish.simulator.AnalysePlanContext; import fr.ifremer.isisfish.simulator.SimulationParameter; import fr.ifremer.isisfish.datastore.RegionStorage; import fr.ifremer.isisfish.datastore.RuleStorage; import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.datastore.ResultStorage; /** * Sensibility.java * * Created: 21 décembre 2008 * * @author HUSSEIN chirine <m475chi@yahoo.fr> * */ public class Sensibility implements AnalysePlan { /** to use log facility, just put in your code: log.info("..."); */ static private Log log = LogFactory.getLog(Sensibility.class); static private final String MATRIX = "matrix"; /// Le fichier est donc matrix.txt static private final String VBGF = "growth"; static private final String SELECTIVITY = "selectivity"; static private final String SELECTIVITYFiletMer = "selectivityFiletMer"; static private final String SELECTIVITYFiletEtang = "selectivityFiletEtang"; static private final String SELECTIVITYLignecote = "selectivityLignecote"; static private final String SELECTIVITYLigneemb = "selectivityLigneemb"; static private final String SELECTIVITYChalut = "selectivityChalut"; static private final String SELECTIVITYHarpon = "selectivityHarpon"; static private final String CATCHABILITY = "capturabilite"; static private final String MORTALITY = "mortalite"; static private final String STANDARDISATION = "standardisation"; //static private final String AMP = "amp"; //static private final String AMP1 = "ampRPrepro_Lignecote"; //static private final String AMP2 = "ampRPrepro_FiletMer"; ///////////* completer ici avec tous les fichiers .txt des amp public int param_parameterNumber = 5; /// ce paramètre n'est normalement pas modifié public int param_first = 0; /// on utilise ce paramètre pour indiquer à quelle ligne /// de la matrice on doit commencer à faire tourner les simulations au cas où on ait dû interompre le plan public int param_simulationNumber = 32;/// ce paramètre n'est normalement pas modifié public String param_directory = "C:/Documents and Settings/hussein/Bureau/isis-fish-3.1.3/isis-fish-3.1.3/fichier paramètres//"; /// Il s'agit du chemin vers le dossier ///contenant les fichier de matrice et paramètres, par défaut le repertoire du go.bat /// donc dans ce cas c'est le dossier Exemple_repertory qui est dans le dossier contenant le go.bat /// Déclaration de la matrice d'expérience private MatrixND matrix = null; /// Non utilisé pour ce script mais à ne pas effacer public String [] necessaryResult = { // put here all necessary result for this rule // example: // ResultName.MATRIX_BIOMASS, // ResultName.MATRIX_NET_VALUE_OF_LANDINGS_PER_STRATEGY_MET, }; public String[] getNecessaryResult() { return this.necessaryResult; } /** * Permet d'afficher a l'utilisateur une aide sur le plan. * @return L'aide ou la description du plan */ public String getDescription() throws Exception { return _("réalise les expériences d'un plan complet pour 5 parametres à 2 modalités"); } /** * Appel? au d?marrage de la simulation, cette m?thode permet d'initialiser * des valeurs * @param simulation La simulation pour lequel on utilise cette regle */ public void init(AnalysePlanContext context) throws Exception { /// Création de la matrice d'expérience et chargement : File dir = new File(param_directory); File csvFile = new File(dir, MATRIX + ".txt"); log.info("CSV file is : " + csvFile.getAbsolutePath()); if(!csvFile.exists()) { log.warn("File doesn't exists"); } matrix = MatrixFactory.getInstance().create(new int[]{param_simulationNumber, param_parameterNumber}); matrix.importCSV(new FileReader(csvFile), new int[]{0,0}); matrix.setSemantics(1, Arrays.asList(new String[]{VBGF,CATCHABILITY,MORTALITY,SELECTIVITY, STANDARDISATION})); System.out.println(matrix); /// ajout des regles qui sont modifiées par le plan //context.getParam().addExtraRules("Cantonnement","Cantonnement","Cantonnement","Cantonnement","Cantonnement","Cantonnement"); ////////////* tu dois ecrire cantonnement 11 fois si tu as 11 regles cantonnement } /// Création des méthodes qui réccupère dans la matrice la modalité du paramètre pour l'expérience en cours /// Les arguments des méthodes sont le nom du fichier et le numéro de la simulation /// (On détermine l'expérience en cours et donc la ligne de la matrice en sommant le numéro de la simulation et le param_first) /// pour un double private double getDouble(String name, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne, name); System.out.println("mod et ligne : "+ mod+" "+ligne); double result = Double.parseDouble(prop.getProperty(""+mod)); System.out.println("result : "+ result); return result; } /// pour une liste de doubles /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private double [] getList(String name, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne, name); double [] result = StringUtil.toArrayDouble(prop.getProperty(""+mod).split(";")); // ""+ ca construit une chaine de caractere return result; } /// pour une chaine de characteres (equation) /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private String getString(String name,String col, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne , col); String result = prop.getProperty(""+mod); return result; } /// pour les paramètres d'une règle de gestion /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private Rule getRule(RegionStorage regionStorage, String name, String col, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name+".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne , col); String ruleName = prop.getProperty(""+mod); RuleStorage ruleStorage = RuleStorage.getRule(ruleName); Rule rule = ruleStorage.getNewRuleInstance(); RuleHelper.populateRule(mod, regionStorage, rule, prop); return rule; } /** * Call before each simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */ public boolean beforeSimulation(AnalysePlanContext context, SimulationStorage nextSimulation) throws Exception { int simNum = context.getNumber()+ param_first; if(simNum < param_simulationNumber+1) { /// On vérifie qu'il reste des expériences à faire /// On utilise les méthodes crées pour récupérer les valeurs des modalités pour l'expérience en cours double [] croissance = getList (VBGF , simNum); double catchability = getDouble (CATCHABILITY, simNum); double [] standardisation = getList (STANDARDISATION , simNum); //String selectivity = getString (SELECTIVITY, simNum); String selectivityFiletMer = getString (SELECTIVITYFiletMer,SELECTIVITY, simNum); String selectivityFiletEtang = getString (SELECTIVITYFiletEtang,SELECTIVITY, simNum); String selectivityLignecote = getString (SELECTIVITYLignecote,SELECTIVITY, simNum); String selectivityLigneemb = getString (SELECTIVITYLigneemb,SELECTIVITY, simNum); String selectivityChalut = getString (SELECTIVITYChalut,SELECTIVITY, simNum); String selectivityHarpon = getString (SELECTIVITYHarpon,SELECTIVITY, simNum); String mortality = getString (MORTALITY,MORTALITY, simNum); //Rule amp1 = getRule(context.getParam().getRegion(), AMP1, AMP, simNum); //Rule amp2 = getRule(context.getParam().getRegion(), AMP2, AMP, simNum); ///////////////* à completer avec le reste des amp*/ /// On peut afficher des informations dans les logs /// Il faut maintenant modifier la valeur des paramètres dans la base de données et les paramètres des règle de la simulation /// modif les parametres des regles de gestion : // on enleve la regle de la simulation passé (elle est stoquée sous le nom LastAMP) //List<Rule> paramRules = nextSimulation.getParameter().getRules(); //paramRules.remove(context.getValue("lastAMP1")); // on nomme la regle que l'on va ajouter LastAMP (pour pouvoir la retrouver a la simulation suivante) //context.setValue("lastAMP1", amp1); // on ajoute la regle à la simulation // paramRules.add(amp1); //paramRules.remove(context.getValue("lastAMP2")); //context.setValue("lastAMP2", amp2); //paramRules.add(amp2); /////////////////* à completer avec les autres amp */ /// modif les parametres dans la base de données : TopiaContext tx = nextSimulation.getStorage().beginTransaction(); /// On récupère les objets ISIS a modifier dans la base de données PopulationDAO popDAO = IsisFishDAOHelper.getPopulationDAO(tx); Population pop = popDAO.findByName("CSar"); List<PopulationGroup> groups = pop.getPopulationGroup(); GearDAO gearDAO = IsisFishDAOHelper.getGearDAO(tx); List<Gear> gears = gearDAO.findAll(); ///modif borne des classes de taille /// On remplace les bornes par les éléments de la liste for (PopulationGroup group : groups) { group.setMinLength(croissance[group.getId()]) ; group.setMaxLength(croissance[group.getId()+1]) ; } // modif la capturabilité /// On modifie la valeur de la base en la multipliant par la valeur contenue dans la modalité MatrixND c = pop.getCapturability(); for (MatrixIterator i = c.iterator(); i.hasNext();){ i.next(); i.setValue(catchability); } // modif la mortalité naturelle /// On modifie la valeur de la base en la remplacant par la valeur contenue dans la modalité for (PopulationGroup group : groups) { Equation eq = pop.getNaturalDeathRate(); eq.setContent(mortality); } // modif les facteurs de standardisation /// On modifie la valeur de la base en la remplacant par la valeur contenue dans la modalité for (Gear gear : gears) { if ("FiletMer".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[0]); }else if("Lignecote".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[1]); }else if("Harpon".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[2]); }else if("chalut".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[3]); }else if("Ligneemb".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[4]); }else if("FiletEtang".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[5]); /////////////*a completer } } /// modif selectivité /// On remplace l'equation existante par une autre equation for (Gear gear : gears) { if ("FiletMer".equals(gear.getName())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityFiletMer); } else if ("FiletEtang".equals(gear.getName())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityFiletEtang); }else if ("Lignecote".equals(gear.getName())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityLignecote); }else if ("Ligneemb".equals(gear.getName())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityLigneemb); }else if ("Chalut".equals(gear.getName())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityChalut); }else if ("Harpon".equals(gear.getName())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityHarpon); } } tx.commitTransaction(); return true; }else { return false; } } /** * Call before each simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */ public boolean afterSimulation(AnalysePlanContext context, SimulationStorage lastSimulation) throws Exception { return true; } }
merci Sigrid, j'ai essayé de tourner les simulations ave le script mais je n'arrive toujours pas. les simulation s'arrêtent au mois de janiver de la premiere année de simulation. j'ai regardé le fichier d'erreur, maisc n'ai pas claire. je vous envoie le fichier d'erreur. merci bien pour l'avance. chirine ----- Message d'origine ---- De : Sigrid LEHUTA <Sigrid.Lehuta@ifremer.fr> À : Liste pour les utilisateurs du simulateur <isis-fish-user@lists.labs.libre-entreprise.org> Envoyé le : Mercredi, 28 Janvier 2009, 11h09mn 10s Objet : Re: [Isis-fish-user] Re : Re : Re : (sans objet) Ok le script en piece jointe compile : les accolades s'ouvrent et se ferment, les getNam() et les SELECTIVITYLigncote ont reccupéré leur "e", les SELECTIVITYFLigneemb ont perdu leut "f" et les "throws" précèdent leur "Exception" ! Cette fois j'y crois à fond ! chirine HUSSEIN a écrit :
bonjour, avec le copie corrigé, j'ai eu 6 erreur de plus. En plus, je pense pas que on peut commencer la méthode beforeSimulation comme (public boolean beforeSimulation(AnalysePlanContext context, SimulationStorage nextSimulation) throws) sans mettre à la fin: Exception {
chirine
----- Message d'origine ---- De : letellier <letellier@codelutin.com> À : Liste pour les utilisateurs du simulateur <isis-fish-user@lists.labs.libre-entreprise.org> Envoyé le : Mardi, 27 Janvier 2009, 15h51mn 35s Objet : Re: [Isis-fish-user] Re : Re : (sans objet)
chirine HUSSEIN a écrit :
merci bien, mais je n'arrive pas à telecharger le fichier joindre. pourriez- vous me renvoyer un copie? Chirine
----- Message d'origine ---- De : letellier <letellier@codelutin.com> À : Liste pour les utilisateurs du simulateur <isis-fish-user@lists.labs.libre-entreprise.org> Envoyé le : Mardi, 27 Janvier 2009, 11h51mn 07s Objet : Re: [Isis-fish-user] Re : (sans objet)
Bonjour,
comme Youen l'a préciser, le message d'erreur parle de lui même, il manque une accolade. Pour éviter ce genre d'erreur, il est nécessaire de bien indenter son code (TAB) pour mettre en évidence tous les blocs.
Je vous renvoie la copie corrigé ;) A première vu, je pense qu'il manque une accolade fermante après le premier for.
Sylvain
chirine HUSSEIN a écrit :
je pense que cette "eles" correspond à if qui est au debut de la méthode "beforesimulation".
----- Message d'origine ---- De : "Youen.Vermard@ifremer.fr" <Youen.Vermard@ifremer.fr> À : isis-fish-user@lists.labs.libre-entreprise.org Envoyé le : Mardi, 27 Janvier 2009, 11h14mn 50s Objet : Re: [Isis-fish-user] (sans objet)
Bonjour chirine, tout est dans le message d'erreur:
Sensibility.java:347 => ligne 347 tu as un else qui ne correspond à aucun if
Pour l instant l'accolade de ton else correspond au for (ligne 317)
Après je n ai pas regardé plus le code, je ne sais pas ce qu'il fait, à toi de retrouver où il faut replacer les accolades.
Youen
chirine HUSSEIN <m475chi@yahoo.fr> a écrit :
Bonjour à tous, toujours avec le script de la sensibility, j'ai de nouvaux un autre problème que je n'arrive pas à me débarrasser:
C:\Documents and Settings\hussein\isis-database-3\analyseplans\Sensibility.java:347: 'else' without 'if' } else { ^ je vous envoie le fichier de script merci pour votre aide
chirine
Isis-fish-user mailing list Isis-fish-user@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user
_______________________________________________ Isis-fish-user mailing list Isis-fish-user@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user
-----La pièce jointe correspondante suit-----
package analyseplans;
import static org.codelutin.i18n.I18n._;
import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory;
import scripts.ResultName;
import java.io.*; import java.io.File; import java.io.FileReader; import java.io.Writer; import java.util.*; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties;
import org.codelutin.math.matrix.*; import org.codelutin.util.*; import org.codelutin.topia.*;
import fr.ifremer.isisfish.*; import fr.ifremer.isisfish.types.*; import fr.ifremer.isisfish.rule.Rule; import fr.ifremer.isisfish.rule.RuleHelper; import fr.ifremer.isisfish.simulator.SimulationContext; import fr.ifremer.isisfish.types.Date; import fr.ifremer.isisfish.entities.*; import fr.ifremer.isisfish.simulator.AnalysePlan; import fr.ifremer.isisfish.simulator.AnalysePlanContext; import fr.ifremer.isisfish.simulator.SimulationParameter; import fr.ifremer.isisfish.datastore.RegionStorage; import fr.ifremer.isisfish.datastore.RuleStorage; import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.datastore.ResultStorage;
/** * Sensibility.java * * Created: 21 décembre 2008 * * @author HUSSEIN chirine <m475chi@yahoo.fr> * */ public class Sensibility implements AnalysePlan {
/** to use log facility, just put in your code: log.info("..."); */ static private Log log = LogFactory.getLog(Sensibility.class);
static private final String MATRIX = "matrix"; /// Le fichier est donc matrix.txt static private final String VBGF = "growth"; static private final String SELECTIVITY = "selectivity"; static private final String SELECTIVITYFiletMer = "selectivityFiletMer"; static private final String SELECTIVITYFiletEtang = "selectivityFiletEtang"; static private final String SELECTIVITYLigncote = "selectivityLignecote"; static private final String SELECTIVITYLigneemb = "selectivityLigneemb"; static private final String SELECTIVITYChalut = "selectivityChalut"; static private final String SELECTIVITYHarpon = "selectivityHarpon"; static private final String CATCHABILITY = "capturabilite"; static private final String MORTALITY = "mortalite"; static private final String STANDARDISATION = "standardisation"; //static private final String AMP = "amp"; //static private final String AMP1 = "ampRPrepro_Lignecote"; //static private final String AMP2 = "ampRPrepro_FiletMer"; ///////////* completer ici avec tous les fichiers .txt des amp public int param_parameterNumber = 5; /// ce paramètre n'est normalement pas modifié public int param_first = 0; /// on utilise ce paramètre pour indiquer à quelle ligne /// de la matrice on doit commencer à faire tourner les simulations au cas où on ait dû interompre le plan public int param_simulationNumber = 32;/// ce paramètre n'est normalement pas modifié public String param_directory = "C:/Documents and Settings/hussein/Bureau/isis-fish-3.1.3/isis-fish-3.1.3/fichier paramètres//"; /// Il s'agit du chemin vers le dossier ///contenant les fichier de matrice et paramètres, par défaut le repertoire du go.bat /// donc dans ce cas c'est le dossier Exemple_repertory qui est dans le dossier contenant le go.bat /// Déclaration de la matrice d'expérience private MatrixND matrix = null;
/// Non utilisé pour ce script mais à ne pas effacer public String [] necessaryResult = { // put here all necessary result for this rule // example: // ResultName.MATRIX_BIOMASS, // ResultName.MATRIX_NET_VALUE_OF_LANDINGS_PER_STRATEGY_MET, };
public String[] getNecessaryResult() { return this.necessaryResult; }
/** * Permet d'afficher a l'utilisateur une aide sur le plan. * @return L'aide ou la description du plan */ public String getDescription() throws Exception { return _("réalise les expériences d'un plan complet pour 5 parametres à 2 modalités"); }
/** * Appel? au d?marrage de la simulation, cette m?thode permet d'initialiser * des valeurs * @param simulation La simulation pour lequel on utilise cette regle */ public void init(AnalysePlanContext context) throws Exception { /// Création de la matrice d'expérience et chargement : File dir = new File(param_directory);
File csvFile = new File(dir, MATRIX + ".txt"); log.info("CSV file is : " + csvFile.getAbsolutePath()); if(!csvFile.exists()) { log.warn("File doesn't exists"); }
matrix = MatrixFactory.getInstance().create(new int[]{param_simulationNumber, param_parameterNumber}); matrix.importCSV(new FileReader(csvFile), new int[]{0,0}); matrix.setSemantics(1, Arrays.asList(new String[]{VBGF,CATCHABILITY,MORTALITY,SELECTIVITY, STANDARDISATION})); System.out.println(matrix); //System.out.println("amp 0 : "+ matrix.getValue(0,AMP)); /// ajout des regles qui sont modifiées par le plan //context.getParam().addExtraRules("Cantonnement","Cantonnement","Cantonnement","Cantonnement","Cantonnement","Cantonnement"); ////////////* tu dois ecrire cantonnement 11 fois si tu as 11 regles cantonnement }
/// Création des méthodes qui réccupère dans la matrice la modalité du paramètre pour l'expérience en cours /// Les arguments des méthodes sont le nom du fichier et le numéro de la simulation /// (On détermine l'expérience en cours et donc la ligne de la matrice en sommant le numéro de la simulation et le param_first) /// pour un double private double getDouble(String name, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne, name); System.out.println("mod et ligne : "+ mod+" "+ligne); double result = Double.parseDouble(prop.getProperty(""+mod)); System.out.println("result : "+ result); return result; } /// pour une liste de doubles
/** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private double [] getList(String name, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne, name); double [] result = StringUtil.toArrayDouble(prop.getProperty(""+mod).split(";")); // ""+ ca construit une chaine de caractere return result; } /// pour une chaine de characteres (equation) /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private String getString(String name,String col, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne , col); String result = prop.getProperty(""+mod); return result; } /// pour les paramètres d'une règle de gestion /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private Rule getRule(RegionStorage regionStorage, String name, String col, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name+".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne , col); String ruleName = prop.getProperty(""+mod); RuleStorage ruleStorage = RuleStorage.getRule(ruleName); Rule rule = ruleStorage.getNewRuleInstance(); RuleHelper.populateRule(mod, regionStorage, rule, prop); return rule; } /** * Call before each simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */ public boolean beforeSimulation(AnalysePlanContext context, SimulationStorage nextSimulation) throws
int simNum = context.getNumber()+ param_first; if (simNum < param_simulationNumber+1) { /// On vérifie qu'il reste des expériences à faire
/// On utilise les méthodes crées pour récupérer les valeurs des modalités pour l'expérience en cours double [] croissance = getList (VBGF , simNum); double catchability = getDouble (CATCHABILITY, simNum); double [] standardisation = getList (STANDARDISATION , simNum); String selectivity = getString (SELECTIVITY, simNum); String selectivityFiletMer = getString (SELECTIVITYFiletMer,SELECTIVITY, simNum); String selectivityFiletEtang = getString (SELECTIVITYFiletEtang,SELECTIVITY, simNum); String selectivityLignecote = getString (SELECTIVITYLignecote,SELECTIVITY, simNum); String selectivityLigneemb = getString (SELECTIVITYFLigneemb,SELECTIVITY, simNum); String selectivityChalut = getString (SELECTIVITYChalut,SELECTIVITY, simNum); String selectivityHarpon = getString (SELECTIVITYHarpon,SELECTIVITY, simNum); String mortality = getString (MORTALITY,MORTALITY, simNum); //Rule amp1 = getRule(context.getParam().getRegion(), AMP1, AMP, simNum); //Rule amp2 = getRule(context.getParam().getRegion(), AMP2, AMP, simNum); ///////////////* à completer avec le reste des amp*/ /// On peut afficher des informations dans les logs nextSimulation.getInformation().addInformation("Growth ("+context.getNumber()+")= " + croissance); nextSimulation.getInformation().addInformation("Selectivity ("+context.getNumber()+")= " + selectivity);
/// Il faut maintenant modifier la valeur des paramètres dans la base de données et les paramètres des règle de la simulation /// modif les parametres des regles de gestion : // on enleve la regle de la simulation passé (elle est stoquée sous le nom LastAMP) //List<Rule> paramRules = nextSimulation.getParameter().getRules(); //paramRules.remove(context.getValue("lastAMP1")); // on nomme la regle que l'on va ajouter LastAMP (pour pouvoir la retrouver a la simulation suivante) //context.setValue("lastAMP1", amp1); // on ajoute la regle à la simulation // paramRules.add(amp1); //paramRules.remove(context.getValue("lastAMP2")); //context.setValue("lastAMP2", amp2); //paramRules.add(amp2); /////////////////* à completer avec les autres amp */ /// modif les parametres dans la base de données : TopiaContext tx = nextSimulation.getStorage().beginTransaction(); /// On récupère les objets ISIS a modifier dans la base de données PopulationDAO popDAO = IsisFishDAOHelper.getPopulationDAO(tx); Population pop = popDAO.findByName("CSar"); List<PopulationGroup> groups = pop.getPopulationGroup(); GearDAO gearDAO = IsisFishDAOHelper.getGearDAO(tx); List<Gear> gears = gearDAO.findAll();
///modif borne des classes de taille /// On remplace les bornes par les éléments de la liste for (PopulationGroup group : groups) { group.setMinLength(croissance[group.getId()]) ; group.setMaxLength(croissance[group.getId()+1]) ; } // modif la capturabilité /// On modifie la valeur de la base en la multipliant par la valeur contenue dans la modalité MatrixND c = pop.getCapturability(); for (MatrixIterator i = c.iterator(); i.hasNext();){ i.next(); i.setValue(catchability); } // modif la mortalité naturelle /// On modifie la valeur de la base en la remplacant par la valeur contenue dans la modalité for (PopulationGroup group : groups) { Equation eq = pop.getNaturalDeathRate(); eq.setContent(mortality); }
// modif les facteurs de standardisation /// On modifie la valeur de la base en la remplacant par la valeur contenue dans la modalité for (Gear gear : gears) { if ("FiletMer".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[0]); }else if("Lignecote".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[1]); }else if("Harpon".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[2]); }else if("chalut".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[3]); }else if("Ligneemb".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[4]); }else if("FiletEtang".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[5]); /////////////*a completer } } /// modif selectivité /// On remplace l'equation existante par une autre equation for (Gear gear : gears) {
if ("FiletMer".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityFiletMer); } else if ("FiletEtang".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityFiletEtang); }else if ("Lignecote".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityLignecote); }else if ("Ligneemb".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityLigneemb); }else if ("Chalut".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityChalut); }else if ("Harpon".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityHarpon); } tx.commitTransaction(); return true;
} else { return false; } }
/** * Call before each simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */ public boolean afterSimulation(AnalysePlanContext context, SimulationStorage lastSimulation) throws Exception { return true; }
}
_______________________________________________ Isis-fish-user mailing list Isis-fish-user@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user
-----La pièce jointe correspondante suit-----
package analyseplans;
import static org.codelutin.i18n.I18n._;
import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory;
import scripts.ResultName;
import java.io.*; import java.io.File; import java.io.FileReader; import java.io.Writer; import java.util.*; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties;
import org.codelutin.math.matrix.*; import org.codelutin.util.*; import org.codelutin.topia.*;
import fr.ifremer.isisfish.*; import fr.ifremer.isisfish.types.*; import fr.ifremer.isisfish.rule.Rule; import fr.ifremer.isisfish.rule.RuleHelper; import fr.ifremer.isisfish.simulator.SimulationContext; import fr.ifremer.isisfish.types.Date; import fr.ifremer.isisfish.entities.*; import fr.ifremer.isisfish.simulator.AnalysePlan; import fr.ifremer.isisfish.simulator.AnalysePlanContext; import fr.ifremer.isisfish.simulator.SimulationParameter; import fr.ifremer.isisfish.datastore.RegionStorage; import fr.ifremer.isisfish.datastore.RuleStorage; import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.datastore.ResultStorage;
/** * Sensibility.java * * Created: 21 décembre 2008 * * @author HUSSEIN chirine <m475chi@yahoo.fr> * */ public class Sensibility implements AnalysePlan {
/** to use log facility, just put in your code: log.info("..."); */ static private Log log = LogFactory.getLog(Sensibility.class);
static private final String MATRIX = "matrix"; /// Le fichier est donc matrix.txt static private final String VBGF = "growth"; static private final String SELECTIVITY = "selectivity"; static private final String SELECTIVITYFiletMer = "selectivityFiletMer"; static private final String SELECTIVITYFiletEtang = "selectivityFiletEtang"; static private final String SELECTIVITYLigncote = "selectivityLignecote"; static private final String SELECTIVITYLigneemb = "selectivityLigneemb"; static private final String SELECTIVITYChalut = "selectivityChalut"; static private final String SELECTIVITYHarpon = "selectivityHarpon"; static private final String CATCHABILITY = "capturabilite"; static private final String MORTALITY = "mortalite"; static private final String STANDARDISATION = "standardisation"; //static private final String AMP = "amp"; //static private final String AMP1 = "ampRPrepro_Lignecote"; //static private final String AMP2 = "ampRPrepro_FiletMer"; ///////////* completer ici avec tous les fichiers .txt des amp public int param_parameterNumber = 5; /// ce paramètre n'est normalement pas modifié public int param_first = 0; /// on utilise ce paramètre pour indiquer à quelle ligne /// de la matrice on doit commencer à faire tourner les simulations au cas où on ait dû interompre le plan public int param_simulationNumber = 32;/// ce paramètre n'est normalement pas modifié public String param_directory = "C:/Documents and Settings/hussein/Bureau/isis-fish-3.1.3/isis-fish-3.1.3/fichier paramètres//"; /// Il s'agit du chemin vers le dossier ///contenant les fichier de matrice et paramètres, par défaut le repertoire du go.bat /// donc dans ce cas c'est le dossier Exemple_repertory qui est dans le dossier contenant le go.bat /// Déclaration de la matrice d'expérience private MatrixND matrix = null;
/// Non utilisé pour ce script mais à ne pas effacer public String [] necessaryResult = { // put here all necessary result for this rule // example: // ResultName.MATRIX_BIOMASS, // ResultName.MATRIX_NET_VALUE_OF_LANDINGS_PER_STRATEGY_MET, };
public String[] getNecessaryResult() { return this.necessaryResult; }
/** * Permet d'afficher a l'utilisateur une aide sur le plan. * @return L'aide ou la description du plan */ public String getDescription() throws Exception { return _("réalise les expériences d'un plan complet pour 5 parametres à 2 modalités"); }
/** * Appel? au d?marrage de la simulation, cette m?thode permet d'initialiser * des valeurs * @param simulation La simulation pour lequel on utilise cette regle */ public void init(AnalysePlanContext context) throws Exception { /// Création de la matrice d'expérience et chargement : File dir = new File(param_directory);
File csvFile = new File(dir, MATRIX + ".txt"); log.info("CSV file is : " + csvFile.getAbsolutePath()); if(!csvFile.exists()) { log.warn("File doesn't exists"); }
matrix = MatrixFactory.getInstance().create(new int[]{param_simulationNumber, param_parameterNumber}); matrix.importCSV(new FileReader(csvFile), new int[]{0,0}); matrix.setSemantics(1, Arrays.asList(new String[]{VBGF,CATCHABILITY,MORTALITY,SELECTIVITY, STANDARDISATION})); System.out.println(matrix); //System.out.println("amp 0 : "+ matrix.getValue(0,AMP)); /// ajout des regles qui sont modifiées par le plan //context.getParam().addExtraRules("Cantonnement","Cantonnement","Cantonnement","Cantonnement","Cantonnement","Cantonnement"); ////////////* tu dois ecrire cantonnement 11 fois si tu as 11 regles cantonnement }
/// Création des méthodes qui réccupère dans la matrice la modalité du paramètre pour l'expérience en cours /// Les arguments des méthodes sont le nom du fichier et le numéro de la simulation /// (On détermine l'expérience en cours et donc la ligne de la matrice en sommant le numéro de la simulation et le param_first) /// pour un double private double getDouble(String name, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne, name); System.out.println("mod et ligne : "+ mod+" "+ligne); double result = Double.parseDouble(prop.getProperty(""+mod)); System.out.println("result : "+ result); return result; } /// pour une liste de doubles
/** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private double [] getList(String name, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne, name); double [] result = StringUtil.toArrayDouble(prop.getProperty(""+mod).split(";")); // ""+ ca construit une chaine de caractere return result; } /// pour une chaine de characteres (equation) /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private String getString(String name,String col, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne , col); String result = prop.getProperty(""+mod); return result; } /// pour les paramètres d'une règle de gestion /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private Rule getRule(RegionStorage regionStorage, String name, String col, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name+".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne , col); String ruleName = prop.getProperty(""+mod); RuleStorage ruleStorage = RuleStorage.getRule(ruleName); Rule rule = ruleStorage.getNewRuleInstance(); RuleHelper.populateRule(mod, regionStorage, rule, prop); return rule; } /** * Call before each simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */ public boolean beforeSimulation(AnalysePlanContext context, SimulationStorage nextSimulation) throws
int simNum = context.getNumber()+ param_first; if (simNum < param_simulationNumber+1) { /// On vérifie qu'il reste des expériences à faire
/// On utilise les méthodes crées pour récupérer les valeurs des modalités pour l'expérience en cours double [] croissance = getList (VBGF , simNum); double catchability = getDouble (CATCHABILITY, simNum); double [] standardisation = getList (STANDARDISATION , simNum); String selectivity = getString (SELECTIVITY, simNum); String selectivityFiletMer = getString (SELECTIVITYFiletMer,SELECTIVITY, simNum); String selectivityFiletEtang = getString (SELECTIVITYFiletEtang,SELECTIVITY, simNum); String selectivityLignecote = getString (SELECTIVITYLignecote,SELECTIVITY, simNum); String selectivityLigneemb = getString (SELECTIVITYFLigneemb,SELECTIVITY, simNum); String selectivityChalut = getString (SELECTIVITYChalut,SELECTIVITY, simNum); String selectivityHarpon = getString (SELECTIVITYHarpon,SELECTIVITY, simNum); String mortality = getString (MORTALITY,MORTALITY, simNum); //Rule amp1 = getRule(context.getParam().getRegion(), AMP1, AMP, simNum); //Rule amp2 = getRule(context.getParam().getRegion(), AMP2, AMP, simNum); ///////////////* à completer avec le reste des amp*/ /// On peut afficher des informations dans les logs nextSimulation.getInformation().addInformation("Growth ("+context.getNumber()+")= " + croissance); nextSimulation.getInformation().addInformation("Selectivity ("+context.getNumber()+")= " + selectivity);
/// Il faut maintenant modifier la valeur des paramètres dans la base de données et les paramètres des règle de la simulation /// modif les parametres des regles de gestion : // on enleve la regle de la simulation passé (elle est stoquée sous le nom LastAMP) //List<Rule> paramRules = nextSimulation.getParameter().getRules(); //paramRules.remove(context.getValue("lastAMP1")); // on nomme la regle que l'on va ajouter LastAMP (pour pouvoir la retrouver a la simulation suivante) //context.setValue("lastAMP1", amp1); // on ajoute la regle à la simulation // paramRules.add(amp1); //paramRules.remove(context.getValue("lastAMP2")); //context.setValue("lastAMP2", amp2); //paramRules.add(amp2); /////////////////* à completer avec les autres amp */ /// modif les parametres dans la base de données : TopiaContext tx = nextSimulation.getStorage().beginTransaction(); /// On récupère les objets ISIS a modifier dans la base de données PopulationDAO popDAO = IsisFishDAOHelper.getPopulationDAO(tx); Population pop = popDAO.findByName("CSar"); List<PopulationGroup> groups = pop.getPopulationGroup(); GearDAO gearDAO = IsisFishDAOHelper.getGearDAO(tx); List<Gear> gears = gearDAO.findAll();
///modif borne des classes de taille /// On remplace les bornes par les éléments de la liste for (PopulationGroup group : groups) { group.setMinLength(croissance[group.getId()]) ; group.setMaxLength(croissance[group.getId()+1]) ; } // modif la capturabilité /// On modifie la valeur de la base en la multipliant par la valeur contenue dans la modalité MatrixND c = pop.getCapturability(); for (MatrixIterator i = c.iterator(); i.hasNext();){ i.next(); i.setValue(catchability); } // modif la mortalité naturelle /// On modifie la valeur de la base en la remplacant par la valeur contenue dans la modalité for (PopulationGroup group : groups) { Equation eq = pop.getNaturalDeathRate(); eq.setContent(mortality); }
// modif les facteurs de standardisation /// On modifie la valeur de la base en la remplacant par la valeur contenue dans la modalité for (Gear gear : gears) { if ("FiletMer".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[0]); }else if("Lignecote".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[1]); }else if("Harpon".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[2]); }else if("chalut".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[3]); }else if("Ligneemb".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[4]); }else if("FiletEtang".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[5]); /////////////*a completer } }
/// modif selectivité /// On remplace l'equation existante par une autre equation for (Gear gear : gears) {
if ("FiletMer".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityFiletMer); } else if ("FiletEtang".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityFiletEtang); }else if ("Lignecote".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityLignecote); }else if ("Ligneemb".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityLigneemb); }else if ("Chalut".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityChalut); }else if ("Harpon".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityHarpon); } tx.commitTransaction(); return true;
} else { return false; } }
/** * Call before each simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */ public boolean afterSimulation(AnalysePlanContext context, SimulationStorage lastSimulation) throws Exception { return true; }
}
_______________________________________________ Isis-fish-user mailing list Isis-fish-user@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user
-- Sigrid LEHUTA ~ ><> ~ Doctorante Département Ecologie et Modèles pour l'Halieutique IFREMER, rue de l'ile d'Yeu BP 21105 44311 Nantes Cedex 03 Tél : +33 (0)2 40 37 41 65
Il faut que tu cherches "caused by" dans le fichier error Caused by: java.lang.ArrayIndexOutOfBoundsException: 8 at analyseplans.Sensibility.beforeSimulation(Sensibility.java:266) at fr.ifremer.isisfish.simulator.PlanGenerator.hasNext(PlanGenerator.java:120) il te dit que ligne 266 du plan tu demandes l'element 8 et qu il n'existe pas la ligne 266 c est : for (PopulationGroup group : groups) { group.setMinLength(croissance[group.getId()]) ; group.setMaxLength(croissance[group.getId()+1]) ; // ligne 266 } comme c est numeroté de 0 à 8, je suppose que ton fichier croissance.txt contient une liste de 8 elements or il en faut 9 = un de plus que ton nombre de classes de pop puisqu il s'agit des bornes des classes de taille chirine HUSSEIN a écrit :
merci Sigrid, j'ai essayé de tourner les simulations ave le script mais je n'arrive toujours pas. les simulation s'arrêtent au mois de janiver de la premiere année de simulation. j'ai regardé le fichier d'erreur, maisc n'ai pas claire. je vous envoie le fichier d'erreur. merci bien pour l'avance.
chirine
----- Message d'origine ---- De : Sigrid LEHUTA <Sigrid.Lehuta@ifremer.fr> À : Liste pour les utilisateurs du simulateur <isis-fish-user@lists.labs.libre-entreprise.org> Envoyé le : Mercredi, 28 Janvier 2009, 11h09mn 10s Objet : Re: [Isis-fish-user] Re : Re : Re : (sans objet)
Ok le script en piece jointe compile : les accolades s'ouvrent et se ferment, les getNam() et les SELECTIVITYLigncote ont reccupéré leur "e", les SELECTIVITYFLigneemb ont perdu leut "f" et les "throws" précèdent leur "Exception" !
Cette fois j'y crois à fond !
chirine HUSSEIN a écrit :
bonjour, avec le copie corrigé, j'ai eu 6 erreur de plus. En plus, je pense pas que on peut commencer la méthode beforeSimulation comme (public boolean beforeSimulation(AnalysePlanContext context, SimulationStorage nextSimulation) throws) sans mettre à la fin: Exception {
chirine
----- Message d'origine ---- De : letellier <letellier@codelutin.com> À : Liste pour les utilisateurs du simulateur <isis-fish-user@lists.labs.libre-entreprise.org> Envoyé le : Mardi, 27 Janvier 2009, 15h51mn 35s Objet : Re: [Isis-fish-user] Re : Re : (sans objet)
chirine HUSSEIN a écrit :
merci bien, mais je n'arrive pas à telecharger le fichier joindre. pourriez- vous me renvoyer un copie? Chirine
----- Message d'origine ---- De : letellier <letellier@codelutin.com> À : Liste pour les utilisateurs du simulateur <isis-fish-user@lists.labs.libre-entreprise.org> Envoyé le : Mardi, 27 Janvier 2009, 11h51mn 07s Objet : Re: [Isis-fish-user] Re : (sans objet)
Bonjour,
comme Youen l'a préciser, le message d'erreur parle de lui même, il manque une accolade. Pour éviter ce genre d'erreur, il est nécessaire de bien indenter son code (TAB) pour mettre en évidence tous les blocs.
Je vous renvoie la copie corrigé ;) A première vu, je pense qu'il manque une accolade fermante après le premier for.
Sylvain
chirine HUSSEIN a écrit :
je pense que cette "eles" correspond à if qui est au debut de la méthode "beforesimulation".
----- Message d'origine ---- De : "Youen.Vermard@ifremer.fr" <Youen.Vermard@ifremer.fr> À : isis-fish-user@lists.labs.libre-entreprise.org Envoyé le : Mardi, 27 Janvier 2009, 11h14mn 50s Objet : Re: [Isis-fish-user] (sans objet)
Bonjour chirine, tout est dans le message d'erreur:
Sensibility.java:347 => ligne 347 tu as un else qui ne correspond à aucun if
Pour l instant l'accolade de ton else correspond au for (ligne 317)
Après je n ai pas regardé plus le code, je ne sais pas ce qu'il fait, à toi de retrouver où il faut replacer les accolades.
Youen
chirine HUSSEIN <m475chi@yahoo.fr> a écrit :
Bonjour à tous, toujours avec le script de la sensibility, j'ai de nouvaux un autre problème que je n'arrive pas à me débarrasser:
C:\Documents and Settings\hussein\isis-database-3\analyseplans\Sensibility.java:347: 'else' without 'if' } else { ^ je vous envoie le fichier de script merci pour votre aide
chirine
_______________________________________________ Isis-fish-user mailing list Isis-fish-user@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user
_______________________________________________ Isis-fish-user mailing list Isis-fish-user@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user
-----La pièce jointe correspondante suit-----
package analyseplans;
import static org.codelutin.i18n.I18n._;
import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory;
import scripts.ResultName;
import java.io.*; import java.io.File; import java.io.FileReader; import java.io.Writer; import java.util.*; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties;
import org.codelutin.math.matrix.*; import org.codelutin.util.*; import org.codelutin.topia.*;
import fr.ifremer.isisfish.*; import fr.ifremer.isisfish.types.*; import fr.ifremer.isisfish.rule.Rule; import fr.ifremer.isisfish.rule.RuleHelper; import fr.ifremer.isisfish.simulator.SimulationContext; import fr.ifremer.isisfish.types.Date; import fr.ifremer.isisfish.entities.*; import fr.ifremer.isisfish.simulator.AnalysePlan; import fr.ifremer.isisfish.simulator.AnalysePlanContext; import fr.ifremer.isisfish.simulator.SimulationParameter; import fr.ifremer.isisfish.datastore.RegionStorage; import fr.ifremer.isisfish.datastore.RuleStorage; import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.datastore.ResultStorage;
/** * Sensibility.java * * Created: 21 décembre 2008 * * @author HUSSEIN chirine <m475chi@yahoo.fr> * */ public class Sensibility implements AnalysePlan {
/** to use log facility, just put in your code: log.info("..."); */ static private Log log = LogFactory.getLog(Sensibility.class);
static private final String MATRIX = "matrix"; /// Le fichier est donc matrix.txt static private final String VBGF = "growth"; static private final String SELECTIVITY = "selectivity"; static private final String SELECTIVITYFiletMer = "selectivityFiletMer"; static private final String SELECTIVITYFiletEtang = "selectivityFiletEtang"; static private final String SELECTIVITYLigncote = "selectivityLignecote"; static private final String SELECTIVITYLigneemb = "selectivityLigneemb"; static private final String SELECTIVITYChalut = "selectivityChalut"; static private final String SELECTIVITYHarpon = "selectivityHarpon"; static private final String CATCHABILITY = "capturabilite"; static private final String MORTALITY = "mortalite"; static private final String STANDARDISATION = "standardisation"; //static private final String AMP = "amp"; //static private final String AMP1 = "ampRPrepro_Lignecote"; //static private final String AMP2 = "ampRPrepro_FiletMer"; ///////////* completer ici avec tous les fichiers .txt des amp public int param_parameterNumber = 5; /// ce paramètre n'est normalement pas modifié public int param_first = 0; /// on utilise ce paramètre pour indiquer à quelle ligne /// de la matrice on doit commencer à faire tourner les simulations au cas où on ait dû interompre le plan public int param_simulationNumber = 32;/// ce paramètre n'est normalement pas modifié public String param_directory = "C:/Documents and Settings/hussein/Bureau/isis-fish-3.1.3/isis-fish-3.1.3/fichier paramètres//"; /// Il s'agit du chemin vers le dossier ///contenant les fichier de matrice et paramètres, par défaut le repertoire du go.bat /// donc dans ce cas c'est le dossier Exemple_repertory qui est dans le dossier contenant le go.bat /// Déclaration de la matrice d'expérience private MatrixND matrix = null;
/// Non utilisé pour ce script mais à ne pas effacer public String [] necessaryResult = { // put here all necessary result for this rule // example: // ResultName.MATRIX_BIOMASS, // ResultName.MATRIX_NET_VALUE_OF_LANDINGS_PER_STRATEGY_MET, };
public String[] getNecessaryResult() { return this.necessaryResult; }
/** * Permet d'afficher a l'utilisateur une aide sur le plan. * @return L'aide ou la description du plan */ public String getDescription() throws Exception { return _("réalise les expériences d'un plan complet pour 5 parametres à 2 modalités"); }
/** * Appel? au d?marrage de la simulation, cette m?thode permet d'initialiser * des valeurs * @param simulation La simulation pour lequel on utilise cette regle */ public void init(AnalysePlanContext context) throws Exception { /// Création de la matrice d'expérience et chargement : File dir = new File(param_directory);
File csvFile = new File(dir, MATRIX + ".txt"); log.info("CSV file is : " + csvFile.getAbsolutePath()); if(!csvFile.exists()) { log.warn("File doesn't exists"); }
matrix = MatrixFactory.getInstance().create(new int[]{param_simulationNumber, param_parameterNumber}); matrix.importCSV(new FileReader(csvFile), new int[]{0,0}); matrix.setSemantics(1, Arrays.asList(new String[]{VBGF,CATCHABILITY,MORTALITY,SELECTIVITY, STANDARDISATION})); System.out.println(matrix); //System.out.println("amp 0 : "+ matrix.getValue(0,AMP)); /// ajout des regles qui sont modifiées par le plan //context.getParam().addExtraRules("Cantonnement","Cantonnement","Cantonnement","Cantonnement","Cantonnement","Cantonnement"); ////////////* tu dois ecrire cantonnement 11 fois si tu as 11 regles cantonnement }
/// Création des méthodes qui réccupère dans la matrice la modalité du paramètre pour l'expérience en cours /// Les arguments des méthodes sont le nom du fichier et le numéro de la simulation /// (On détermine l'expérience en cours et donc la ligne de la matrice en sommant le numéro de la simulation et le param_first) /// pour un double private double getDouble(String name, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne, name); System.out.println("mod et ligne : "+ mod+" "+ligne); double result = Double.parseDouble(prop.getProperty(""+mod)); System.out.println("result : "+ result); return result; } /// pour une liste de doubles
/** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private double [] getList(String name, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne, name); double [] result = StringUtil.toArrayDouble(prop.getProperty(""+mod).split(";")); // ""+ ca construit une chaine de caractere return result; } /// pour une chaine de characteres (equation) /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private String getString(String name,String col, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne , col); String result = prop.getProperty(""+mod); return result; } /// pour les paramètres d'une règle de gestion /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private Rule getRule(RegionStorage regionStorage, String name, String col, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name+".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne , col); String ruleName = prop.getProperty(""+mod); RuleStorage ruleStorage = RuleStorage.getRule(ruleName); Rule rule = ruleStorage.getNewRuleInstance(); RuleHelper.populateRule(mod, regionStorage, rule, prop); return rule; } /** * Call before each simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */ public boolean beforeSimulation(AnalysePlanContext context, SimulationStorage nextSimulation) throws
int simNum = context.getNumber()+ param_first; if (simNum < param_simulationNumber+1) { /// On vérifie qu'il reste des expériences à faire
/// On utilise les méthodes crées pour récupérer les valeurs des modalités pour l'expérience en cours double [] croissance = getList (VBGF , simNum); double catchability = getDouble (CATCHABILITY, simNum); double [] standardisation = getList (STANDARDISATION , simNum); String selectivity = getString (SELECTIVITY, simNum); String selectivityFiletMer = getString (SELECTIVITYFiletMer,SELECTIVITY, simNum); String selectivityFiletEtang = getString (SELECTIVITYFiletEtang,SELECTIVITY, simNum); String selectivityLignecote = getString (SELECTIVITYLignecote,SELECTIVITY, simNum); String selectivityLigneemb = getString (SELECTIVITYFLigneemb,SELECTIVITY, simNum); String selectivityChalut = getString (SELECTIVITYChalut,SELECTIVITY, simNum); String selectivityHarpon = getString (SELECTIVITYHarpon,SELECTIVITY, simNum); String mortality = getString (MORTALITY,MORTALITY, simNum); //Rule amp1 = getRule(context.getParam().getRegion(), AMP1, AMP, simNum); //Rule amp2 = getRule(context.getParam().getRegion(), AMP2, AMP, simNum); ///////////////* à completer avec le reste des amp*/ /// On peut afficher des informations dans les logs nextSimulation.getInformation().addInformation("Growth ("+context.getNumber()+")= " + croissance); nextSimulation.getInformation().addInformation("Selectivity ("+context.getNumber()+")= " + selectivity);
/// Il faut maintenant modifier la valeur des paramètres dans la base de données et les paramètres des règle de la simulation /// modif les parametres des regles de gestion : // on enleve la regle de la simulation passé (elle est stoquée sous le nom LastAMP) //List<Rule> paramRules = nextSimulation.getParameter().getRules(); //paramRules.remove(context.getValue("lastAMP1")); // on nomme la regle que l'on va ajouter LastAMP (pour pouvoir la retrouver a la simulation suivante) //context.setValue("lastAMP1", amp1); // on ajoute la regle à la simulation // paramRules.add(amp1); //paramRules.remove(context.getValue("lastAMP2")); //context.setValue("lastAMP2", amp2); //paramRules.add(amp2); /////////////////* à completer avec les autres amp */ /// modif les parametres dans la base de données : TopiaContext tx = nextSimulation.getStorage().beginTransaction(); /// On récupère les objets ISIS a modifier dans la base de données PopulationDAO popDAO = IsisFishDAOHelper.getPopulationDAO(tx); Population pop = popDAO.findByName("CSar"); List<PopulationGroup> groups = pop.getPopulationGroup(); GearDAO gearDAO = IsisFishDAOHelper.getGearDAO(tx); List<Gear> gears = gearDAO.findAll();
///modif borne des classes de taille /// On remplace les bornes par les éléments de la liste for (PopulationGroup group : groups) { group.setMinLength(croissance[group.getId()]) ; group.setMaxLength(croissance[group.getId()+1]) ; } // modif la capturabilité /// On modifie la valeur de la base en la multipliant par la valeur contenue dans la modalité MatrixND c = pop.getCapturability(); for (MatrixIterator i = c.iterator(); i.hasNext();){ i.next(); i.setValue(catchability); } // modif la mortalité naturelle /// On modifie la valeur de la base en la remplacant par la valeur contenue dans la modalité for (PopulationGroup group : groups) { Equation eq = pop.getNaturalDeathRate(); eq.setContent(mortality); }
// modif les facteurs de standardisation /// On modifie la valeur de la base en la remplacant par la valeur contenue dans la modalité for (Gear gear : gears) { if ("FiletMer".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[0]); }else if("Lignecote".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[1]); }else if("Harpon".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[2]); }else if("chalut".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[3]); }else if("Ligneemb".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[4]); }else if("FiletEtang".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[5]); /////////////*a completer } } /// modif selectivité /// On remplace l'equation existante par une autre equation for (Gear gear : gears) {
if ("FiletMer".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityFiletMer); } else if ("FiletEtang".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityFiletEtang); }else if ("Lignecote".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityLignecote); }else if ("Ligneemb".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityLigneemb); }else if ("Chalut".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityChalut); }else if ("Harpon".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityHarpon); } tx.commitTransaction(); return true;
} else { return false; } }
/** * Call before each simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */ public boolean afterSimulation(AnalysePlanContext context, SimulationStorage lastSimulation) throws Exception { return true; }
}
_______________________________________________ Isis-fish-user mailing list Isis-fish-user@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user
-----La pièce jointe correspondante suit-----
package analyseplans;
import static org.codelutin.i18n.I18n._;
import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory;
import scripts.ResultName;
import java.io.*; import java.io.File; import java.io.FileReader; import java.io.Writer; import java.util.*; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties;
import org.codelutin.math.matrix.*; import org.codelutin.util.*; import org.codelutin.topia.*;
import fr.ifremer.isisfish.*; import fr.ifremer.isisfish.types.*; import fr.ifremer.isisfish.rule.Rule; import fr.ifremer.isisfish.rule.RuleHelper; import fr.ifremer.isisfish.simulator.SimulationContext; import fr.ifremer.isisfish.types.Date; import fr.ifremer.isisfish.entities.*; import fr.ifremer.isisfish.simulator.AnalysePlan; import fr.ifremer.isisfish.simulator.AnalysePlanContext; import fr.ifremer.isisfish.simulator.SimulationParameter; import fr.ifremer.isisfish.datastore.RegionStorage; import fr.ifremer.isisfish.datastore.RuleStorage; import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.datastore.ResultStorage;
/** * Sensibility.java * * Created: 21 décembre 2008 * * @author HUSSEIN chirine <m475chi@yahoo.fr> * */ public class Sensibility implements AnalysePlan {
/** to use log facility, just put in your code: log.info("..."); */ static private Log log = LogFactory.getLog(Sensibility.class);
static private final String MATRIX = "matrix"; /// Le fichier est donc matrix.txt static private final String VBGF = "growth"; static private final String SELECTIVITY = "selectivity"; static private final String SELECTIVITYFiletMer = "selectivityFiletMer"; static private final String SELECTIVITYFiletEtang = "selectivityFiletEtang"; static private final String SELECTIVITYLigncote = "selectivityLignecote"; static private final String SELECTIVITYLigneemb = "selectivityLigneemb"; static private final String SELECTIVITYChalut = "selectivityChalut"; static private final String SELECTIVITYHarpon = "selectivityHarpon"; static private final String CATCHABILITY = "capturabilite"; static private final String MORTALITY = "mortalite"; static private final String STANDARDISATION = "standardisation"; //static private final String AMP = "amp"; //static private final String AMP1 = "ampRPrepro_Lignecote"; //static private final String AMP2 = "ampRPrepro_FiletMer"; ///////////* completer ici avec tous les fichiers .txt des amp public int param_parameterNumber = 5; /// ce paramètre n'est normalement pas modifié public int param_first = 0; /// on utilise ce paramètre pour indiquer à quelle ligne /// de la matrice on doit commencer à faire tourner les simulations au cas où on ait dû interompre le plan public int param_simulationNumber = 32;/// ce paramètre n'est normalement pas modifié public String param_directory = "C:/Documents and Settings/hussein/Bureau/isis-fish-3.1.3/isis-fish-3.1.3/fichier paramètres//"; /// Il s'agit du chemin vers le dossier ///contenant les fichier de matrice et paramètres, par défaut le repertoire du go.bat /// donc dans ce cas c'est le dossier Exemple_repertory qui est dans le dossier contenant le go.bat /// Déclaration de la matrice d'expérience private MatrixND matrix = null;
/// Non utilisé pour ce script mais à ne pas effacer public String [] necessaryResult = { // put here all necessary result for this rule // example: // ResultName.MATRIX_BIOMASS, // ResultName.MATRIX_NET_VALUE_OF_LANDINGS_PER_STRATEGY_MET, };
public String[] getNecessaryResult() { return this.necessaryResult; }
/** * Permet d'afficher a l'utilisateur une aide sur le plan. * @return L'aide ou la description du plan */ public String getDescription() throws Exception { return _("réalise les expériences d'un plan complet pour 5 parametres à 2 modalités"); }
/** * Appel? au d?marrage de la simulation, cette m?thode permet d'initialiser * des valeurs * @param simulation La simulation pour lequel on utilise cette regle */ public void init(AnalysePlanContext context) throws Exception { /// Création de la matrice d'expérience et chargement : File dir = new File(param_directory);
File csvFile = new File(dir, MATRIX + ".txt"); log.info("CSV file is : " + csvFile.getAbsolutePath()); if(!csvFile.exists()) { log.warn("File doesn't exists"); }
matrix = MatrixFactory.getInstance().create(new int[]{param_simulationNumber, param_parameterNumber}); matrix.importCSV(new FileReader(csvFile), new int[]{0,0}); matrix.setSemantics(1, Arrays.asList(new String[]{VBGF,CATCHABILITY,MORTALITY,SELECTIVITY, STANDARDISATION})); System.out.println(matrix); //System.out.println("amp 0 : "+ matrix.getValue(0,AMP)); /// ajout des regles qui sont modifiées par le plan //context.getParam().addExtraRules("Cantonnement","Cantonnement","Cantonnement","Cantonnement","Cantonnement","Cantonnement"); ////////////* tu dois ecrire cantonnement 11 fois si tu as 11 regles cantonnement }
/// Création des méthodes qui réccupère dans la matrice la modalité du paramètre pour l'expérience en cours /// Les arguments des méthodes sont le nom du fichier et le numéro de la simulation /// (On détermine l'expérience en cours et donc la ligne de la matrice en sommant le numéro de la simulation et le param_first) /// pour un double private double getDouble(String name, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne, name); System.out.println("mod et ligne : "+ mod+" "+ligne); double result = Double.parseDouble(prop.getProperty(""+mod)); System.out.println("result : "+ result); return result; } /// pour une liste de doubles
/** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private double [] getList(String name, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne, name); double [] result = StringUtil.toArrayDouble(prop.getProperty(""+mod).split(";")); // ""+ ca construit une chaine de caractere return result; } /// pour une chaine de characteres (equation) /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private String getString(String name,String col, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name + ".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne , col); String result = prop.getProperty(""+mod); return result; } /// pour les paramètres d'une règle de gestion /** * @param name le nom de l'element a recuperer * @param simulation le numero de la simulation * @return */ private Rule getRule(RegionStorage regionStorage, String name, String col, int simulation) throws Exception { File dir = new File(param_directory); Properties prop = new Properties(); prop.load(new BufferedReader(new FileReader(new File(dir, name+".txt")))); int ligne = simulation + param_first; int mod = (int)matrix.getValue(ligne , col); String ruleName = prop.getProperty(""+mod); RuleStorage ruleStorage = RuleStorage.getRule(ruleName); Rule rule = ruleStorage.getNewRuleInstance(); RuleHelper.populateRule(mod, regionStorage, rule, prop); return rule; } /** * Call before each simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */ public boolean beforeSimulation(AnalysePlanContext context, SimulationStorage nextSimulation) throws
int simNum = context.getNumber()+ param_first; if (simNum < param_simulationNumber+1) { /// On vérifie qu'il reste des expériences à faire
/// On utilise les méthodes crées pour récupérer les valeurs des modalités pour l'expérience en cours double [] croissance = getList (VBGF , simNum); double catchability = getDouble (CATCHABILITY, simNum); double [] standardisation = getList (STANDARDISATION , simNum); String selectivity = getString (SELECTIVITY, simNum); String selectivityFiletMer = getString (SELECTIVITYFiletMer,SELECTIVITY, simNum); String selectivityFiletEtang = getString (SELECTIVITYFiletEtang,SELECTIVITY, simNum); String selectivityLignecote = getString (SELECTIVITYLignecote,SELECTIVITY, simNum); String selectivityLigneemb = getString (SELECTIVITYFLigneemb,SELECTIVITY, simNum); String selectivityChalut = getString (SELECTIVITYChalut,SELECTIVITY, simNum); String selectivityHarpon = getString (SELECTIVITYHarpon,SELECTIVITY, simNum); String mortality = getString (MORTALITY,MORTALITY, simNum); //Rule amp1 = getRule(context.getParam().getRegion(), AMP1, AMP, simNum); //Rule amp2 = getRule(context.getParam().getRegion(), AMP2, AMP, simNum); ///////////////* à completer avec le reste des amp*/ /// On peut afficher des informations dans les logs nextSimulation.getInformation().addInformation("Growth ("+context.getNumber()+")= " + croissance); nextSimulation.getInformation().addInformation("Selectivity ("+context.getNumber()+")= " + selectivity);
/// Il faut maintenant modifier la valeur des paramètres dans la base de données et les paramètres des règle de la simulation /// modif les parametres des regles de gestion : // on enleve la regle de la simulation passé (elle est stoquée sous le nom LastAMP) //List<Rule> paramRules = nextSimulation.getParameter().getRules(); //paramRules.remove(context.getValue("lastAMP1")); // on nomme la regle que l'on va ajouter LastAMP (pour pouvoir la retrouver a la simulation suivante) //context.setValue("lastAMP1", amp1); // on ajoute la regle à la simulation // paramRules.add(amp1); //paramRules.remove(context.getValue("lastAMP2")); //context.setValue("lastAMP2", amp2); //paramRules.add(amp2); /////////////////* à completer avec les autres amp */ /// modif les parametres dans la base de données : TopiaContext tx = nextSimulation.getStorage().beginTransaction(); /// On récupère les objets ISIS a modifier dans la base de données PopulationDAO popDAO = IsisFishDAOHelper.getPopulationDAO(tx); Population pop = popDAO.findByName("CSar"); List<PopulationGroup> groups = pop.getPopulationGroup(); GearDAO gearDAO = IsisFishDAOHelper.getGearDAO(tx); List<Gear> gears = gearDAO.findAll();
///modif borne des classes de taille /// On remplace les bornes par les éléments de la liste for (PopulationGroup group : groups) { group.setMinLength(croissance[group.getId()]) ; group.setMaxLength(croissance[group.getId()+1]) ; } // modif la capturabilité /// On modifie la valeur de la base en la multipliant par la valeur contenue dans la modalité MatrixND c = pop.getCapturability(); for (MatrixIterator i = c.iterator(); i.hasNext();){ i.next(); i.setValue(catchability); }
// modif la mortalité naturelle /// On modifie la valeur de la base en la remplacant par la valeur contenue dans la modalité for (PopulationGroup group : groups) { Equation eq = pop.getNaturalDeathRate(); eq.setContent(mortality); }
// modif les facteurs de standardisation /// On modifie la valeur de la base en la remplacant par la valeur contenue dans la modalité for (Gear gear : gears) { if ("FiletMer".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[0]); }else if("Lignecote".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[1]); }else if("Harpon".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[2]); }else if("chalut".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[3]); }else if("Ligneemb".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[4]); }else if("FiletEtang".equals(gear.getName())) { gear.setStandardisationFactor(standardisation[5]); /////////////*a completer } }
/// modif selectivité /// On remplace l'equation existante par une autre equation for (Gear gear : gears) {
if ("FiletMer".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityFiletMer); } else if ("FiletEtang".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityFiletEtang); }else if ("Lignecote".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityLignecote); }else if ("Ligneemb".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityLigneemb); }else if ("Chalut".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityChalut); }else if ("Harpon".equals(gear.getNam())) { Selectivity sel = gear.getPopulationSelectivity(pop); Equation eq = sel.getEquation(); eq.setContent(selectivityHarpon); } tx.commitTransaction(); return true;
} else { return false; } }
/** * Call before each simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */ public boolean afterSimulation(AnalysePlanContext context, SimulationStorage lastSimulation) throws Exception { return true; }
}
_______________________________________________ Isis-fish-user mailing list Isis-fish-user@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user
-- Sigrid LEHUTA ~ ><> ~ Doctorante Département Ecologie et Modèles pour l'Halieutique IFREMER, rue de l'ile d'Yeu BP 21105 44311 Nantes Cedex 03 Tél : +33 (0)2 40 37 41 65
------------------------------------------------------------------------
INFO [main] (Resource.java:322) getClassPathURLsFromJarManifest - class-path jar to scan /C:/Documents and Settings/hussein/Bureau/isis-fish-3.1.3/isis-fish-3.1.3/lib/isis-fish-3.1.3.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\isis-fish-3.1.3.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\xmlrpc-2.0.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\commons-lang-2.1.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\asm-attrs-1.5.4-snapshot.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\openmap-4.6.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\commons-collections-3.1.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\spring-beans-2.0.1.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\j2ssh-core-0.2.2.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\bsh-2.0b1.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\junit-3.8.1.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\svnkit-1.1.2.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\ganymed-ssh2-build210.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\dom4j-1.6.1.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\xml-apis-1.0.b2.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\lutincommandline-ui-0.4.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\commons-logging-1.1.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\log4j-1.2.12.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\logkit-1.0.1.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\avalon-framework-4.1.3.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\servlet-api-2.3.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\jaxx-1.0.4-SNAPSHOT.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\lutinutil-0.29-SNAPSHOT.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\commons-primitives-1.0.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\commons-beanutils-1.7.0.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\javahelp-2.0.02.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\lutincommandline-0.4.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\spring-core-2.0.1.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\qdox-1.4.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\lutinmatrix-0.15.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\lutinxml-0.7.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\ant-1.5.4.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\xalan-2.7.0.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\topia-2.0.25.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\lutingenerator-0.51-SNAPSHOT.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\commons-digester-1.8.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\ant-1.7.0.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\ant-launcher-1.7.0.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\jaxen-1.1.1.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\jdom-1.0.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\xercesImpl-2.0.2.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\xom-1.0.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\xmlParserAPIs-2.6.2.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\icu4j-2.6.1.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\commons-beanutils-core-1.7.0.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\commons-pool-1.2.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\commons-dbcp-1.2.1.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\hibernate-3.2.5.ga-eventpatch.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\ehcache-1.2.3.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\jta-1.0.1B.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\asm-attrs-1.5.3.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\antlr-2.7.6.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\asm-1.5.4-snapshot.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\xmlrpc-server-3.0.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\xmlrpc-common-3.0.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\ws-commons-util-1.0.1.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\xmlrpc-client-3.0.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\commons-httpclient-3.0.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\commons-codec-1.2.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\xfire-java5-1.2.6.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\xfire-aegis-1.2.6.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\xfire-core-1.2.6.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\activation-1.0.2.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\mail-1.3.3.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\wsdl4j-1.6.1.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\stax-api-1.0.1.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\XmlSchema-1.1.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\wstx-asl-3.2.0.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\stax-utils-20040917.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\xfire-annotations-1.2.6.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\commons-attributes-api-2.1.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\xfire-jsr181-api-1.0-M1.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\jetty-5.1.10.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\tapestry-core-5.0.5.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\tapestry-ioc-5.0.5.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\javassist-3.4.ga.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\topia-service-0.8.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\lucene-core-2.2.0.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\trove-1.0.2.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\lutinutilextra-0.1.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\aspectwerkz-core-2.0.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\asm-util-1.5.4-snapshot.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\jrexx-1.1.1.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\aspectwerkz-2.0.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\aspectwerkz-jdk5-2.0.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\tools-1.6.0.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\swixml-1.5-144-cl-20050912.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\j2h-1.3.1.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\j2ssh-common-0.2.2.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\lutinwidget-0.10-SNAPSHOT.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\looks-1.2.2.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\l2fprod-common-0.1.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\sdoc-0.5.0-beta.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\jfreechart-0.9.3.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\jdic_stub-linux-20061102.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\jcommon-0.7.0.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\jdic-20061102.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\commons-math-1.1.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\commons-discovery-0.2.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\commons-jxpath-1.2.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\xerces-1.2.3.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\ant-optional-1.5.1.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\lutinj2r-0.1.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\JRclient-RF503.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\JRI-0.2-4-cl.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\h2-1.0.60.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\swixat-0.6.0.jar INFO [main] (Resource.java:296) getURLs - jar to search C:\Documents and Settings\hussein\Bureau\isis-fish-3.1.3\isis-fish-3.1.3\lib\cvsclient-20051129.jar INFO [main] (Resource.java:310) getURLs - search URLs pattern: .*18n/.+\.properties in 107 urls in 2,202s INFO [main] (I18nBundleManager.java:97) init - 6 bundle(s) found, [12 file(s)] in 8,498ms INFO [main] (I18nBundleManager.java:167) load - Language <locale: fr_FR, encoding: ISO-8859-1,nbStences:1176>, nbEntries: 6, nbSentences: 1176 in 14,011ms INFO [main] (IsisFish.java:104) main - Lancement Isis-fish ... [] INFO [main] (IsisFish.java:109) main - 28/01/09 11:14 Java version: 1.6.0_01-b199 Isis-fish version: 3.1.3 INFO [main] (Config.java:105) init - [main] INFO [main] (Config.java:105) init - [vcs] INFO [main] (SVNHelper.java:191) findTypeRepo - try svn url svn://labs.libre-entreprise.org/svnroot/isis-fish-data/tags (3.1.3) INFO [main] (SVNHelper.java:203) findTypeRepo - kind node found for 3.1.3 : dir INFO [main] (SVNHelper.java:220) findTypeRepo - required:TAG available:TAG INFO [main] (I18nLoader.java:102) close - nb languages loaded : 1 INFO [main] (Language.java:183) close - Language <locale: fr_FR, encoding: ISO-8859-1,nbStences:1176> INFO [main] (I18nBundleManager.java:167) load - Language <locale: fr_FR, encoding: UTF-8,nbStences:1176>, nbEntries: 6, nbSentences: 1176 in 12,543ms INFO [main] (IsisFish.java:182) init - connectionState : OFF_LINE INFO [main] (IsisFish.java:182) init - hasPreviousConfig : true INFO [main] (IsisFish.java:182) init - isTypeChanged : false INFO [main] (IsisFish.java:182) init - needMigration : false INFO [main] (MatrixFactory.java:68) <clinit> - Converter XML pour MatrixND ajoute INFO [main] (MatrixFactory.java:85) <clinit> - librairie topia non presente. Import/Export JDBC impossible INFO [main] (IsisVcsConfig.java:442) validate - [SVN] configuration is init. INFO [main] (IsisVcsConfig.java:443) validate - [SVN] remote : svnroot/isis-fish-data/tags/3.1.3 INFO [main] (IsisVcsConfig.java:444) validate - [SVN] local : C:\Documents and Settings\hussein\isis-database-3 INFO [main] (IsisVcsConfig.java:445) validate - [SVN] state : OFF_LINE INFO [main] (SVNHandler.java:138) initWorkingCopy0 - repositoryURL to use : svn://labs.libre-entreprise.org/svnroot/isis-fish-data/tags/3.1.3 INFO [main] (SVNHandler.java:518) checkoutOnlyTheDirectory - svn://labs.libre-entreprise.org/svnroot/isis-fish-data/tags/3.1.3 to path 'C:\Documents and Settings\hussein\isis-database-3' (module:) to revision 59 INFO [main] (SVNHandler.java:121) initWorkingCopy - Working copy initialize fine... Revision : [ null - 59 ] INFO [main] (IsisFish.java:138) main - after init done in 5,102s. INFO [Simulation Thread local] (SimulationManager.java:326) run - Start simulation thread INFO [Simulation Thread remote] (SimulationManager.java:326) run - Start simulation thread INFO [main] (IsisTray.java:96) getInstance - Use System tray: fr.ifremer.isisfish.IsisTray$AWTSystemTray SwixML 1.5 (#144) INFO [main] (Editor.java:124) addEditor - Can't find your editor class: org.codelutin.widget.editor.NetBeansEditor INFO [main] (Editor.java:124) addEditor - Can't find your editor class: org.codelutin.widget.editor.JEditEditor INFO [Thread-3] (RegionStorage.java:207) getRegion - Try to open region Banyuls(C:\Documents and Settings\hussein\isis-database-3\regions\Banyuls) INFO [AWT-EventQueue-0] (DataStorage.java:211) getStorage - Create new storage for Banyuls **** false *****0 matrix2D [ 1.0,1.0,1.0,1.0,1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,1.0,1.0,1.0,1.0,1.0,-1.0,-1.0,1.0,-1.0,1.0,-1.0,-1.0,-1.0,1.0,-1.0,1.0,1.0,-1.0,1.0,-1.0, 1.0,1.0,1.0,1.0,-1.0,1.0,-1.0,-1.0,-1.0,1.0,-1.0,-1.0,-1.0,-1.0,-1.0,1.0,1.0,1.0,1.0,-1.0,-1.0,-1.0,-1.0,1.0,-1.0,1.0,1.0,-1.0,-1.0,1.0,1.0,-1.0, 1.0,1.0,1.0,-1.0,1.0,1.0,1.0,-1.0,-1.0,-1.0,1.0,-1.0,-1.0,1.0,-1.0,-1.0,1.0,1.0,-1.0,1.0,1.0,1.0,1.0,1.0,1.0,-1.0,-1.0,-1.0,1.0,-1.0,-1.0,-1.0, 1.0,1.0,-1.0,1.0,1.0,1.0,1.0,1.0,-1.0,-1.0,-1.0,1.0,-1.0,-1.0,-1.0,-1.0,-1.0,1.0,1.0,-1.0,1.0,-1.0,1.0,-1.0,-1.0,1.0,-1.0,1.0,1.0,-1.0,-1.0,-1.0, 1.0,-1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,-1.0,-1.0,-1.0,-1.0,-1.0,1.0,-1.0,-1.0,-1.0,-1.0,1.0,1.0,1.0,-1.0,-1.0,1.0,-1.0,1.0,-1.0,-1.0,1.0,1.0,-1.0,] INFO [AWT-EventQueue-0] (SimulationHelper.java:90) message - backup database in progress INFO [AWT-EventQueue-0] (SimulationControl.java:126) setText - backup database in progress INFO [AWT-EventQueue-0] (SimulationHelper.java:90) message - backup database finished INFO [AWT-EventQueue-0] (SimulationControl.java:126) setText - backup database finished INFO [AWT-EventQueue-0] (SimulationHelper.java:90) message - Scripts and rules Compilation INFO [AWT-EventQueue-0] (SimulationControl.java:126) setText - Scripts and rules Compilation Note: C:\DOCUME~1\hussein\LOCALS~1\Temp\isisfish-simultation-1233137756062-preparation\scripts\SiMatrix.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. INFO [AWT-EventQueue-0] (SimulationHelper.java:90) message - Temps de compilation 1.563s INFO [AWT-EventQueue-0] (SimulationControl.java:126) setText - Temps de compilation 1.563s INFO [Simulation Thread local] (SimulationStorage.java:224) getSimulation - Try to open simulation 2009-01-28-11-15_0(C:\Documents and Settings\hussein\isis-database-3\simulations\ 2009-01-28-11-15_0) INFO [Simulation Thread local] (DataStorage.java:211) getStorage - Create new storage for 2009-01-28-11-15_0 mod et ligne : 1 0 result : 0.0080 WARN [Simulation Thread local] (SimulationManager.java:439) run - Could not save Error during simulation of 2009-01-28-11-15 in his information file fr.ifremer.isisfish.IsisFishRuntimeException: Can''t evaluate plan script at fr.ifremer.isisfish.simulator.PlanGenerator.hasNext(PlanGenerator.java:133) at fr.ifremer.isisfish.simulator.SimulationManager$QueueItem.hasNext(SimulationManager.java:529) at fr.ifremer.isisfish.simulator.SimulationManager$SimulationThread.run(SimulationManager.java:355) Caused by: java.lang.ArrayIndexOutOfBoundsException: 8 at analyseplans.Sensibility.beforeSimulation(Sensibility.java:266) at fr.ifremer.isisfish.simulator.PlanGenerator.hasNext(PlanGenerator.java:120) ... 2 more INFO [Simulation Thread local] (SimulationDoneQueueModel.java:92) simulationWillBeRemoved - in done model for 2009-01-28-11-15 pos 0 INFO [Simulation Thread local] (SimulationDoneQueueModel.java:95) simulationWillBeRemoved - isStopSimulationRequest : false WARN [Simulation Thread local] (SimulationManager.java:445) run - Error during simulation fr.ifremer.isisfish.IsisFishRuntimeException: Can''t evaluate plan script at fr.ifremer.isisfish.simulator.PlanGenerator.hasNext(PlanGenerator.java:133) at fr.ifremer.isisfish.simulator.SimulationManager$QueueItem.hasNext(SimulationManager.java:529) at fr.ifremer.isisfish.simulator.SimulationManager$SimulationThread.run(SimulationManager.java:355) Caused by: java.lang.ArrayIndexOutOfBoundsException: 8 at analyseplans.Sensibility.beforeSimulation(Sensibility.java:266) at fr.ifremer.isisfish.simulator.PlanGenerator.hasNext(PlanGenerator.java:120) ... 2 more Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean at javax.swing.JTable$BooleanRenderer.getTableCellRendererComponent(Unknown Source) at javax.swing.JTable.prepareRenderer(Unknown Source) at javax.swing.plaf.basic.BasicTableUI.paintCell(Unknown Source) at javax.swing.plaf.basic.BasicTableUI.paintCells(Unknown Source) at javax.swing.plaf.basic.BasicTableUI.paint(Unknown Source) at javax.swing.plaf.ComponentUI.update(Unknown Source) at javax.swing.JComponent.paintComponent(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JComponent.paintToOffscreen(Unknown Source) at javax.swing.BufferStrategyPaintManager.paint(Unknown Source) at javax.swing.RepaintManager.paint(Unknown Source) at javax.swing.JComponent._paintImmediately(Unknown Source) at javax.swing.JComponent.paintImmediately(Unknown Source) at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source) at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source) at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source) at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) WARN [AWT-EventQueue-0] (LogConsole.java:87) newConsole - could not found log file C:\Documents and Settings\hussein\isis-database-3\simulations\ 2009-01-28-11-15_0\simulation.log WARN [AWT-EventQueue-0] (SimulationLoggerUtil.java:183) showSimulationLogConsole - n'a pas pu ouvrir l'appender de la simulation 2009-01-28-11-15_0 pour la raison could not found log file C:\Documents and Settings\hussein\isis-database-3\simulations\ 2009-01-28-11-15_0\simulation.log java.lang.IllegalArgumentException: could not found log file C:\Documents and Settings\hussein\isis-database-3\simulations\ 2009-01-28-11-15_0\simulation.log at fr.ifremer.isisfish.logging.console.LogConsole.newConsole(LogConsole.java:88) at fr.ifremer.isisfish.logging.SimulationLoggerUtil.showSimulationLogConsole(SimulationLoggerUtil.java:178) at fr.ifremer.isisfish.ui.simulator.SimulatorAction.showLog(SimulatorAction.java:372) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.swixat.framework.action.HandleClassMethodAction.invoke(HandleClassMethodAction.java:202) at org.swixat.framework.action.HandleClassMethodAction.handleClassMethod(HandleClassMethodAction.java:145) at org.swixat.framework.action.HandleClassMethodAction.doCommand(HandleClassMethodAction.java:89) at org.swixat.framework.action.ActionManager.doCommand(ActionManager.java:99) at org.swixat.framework.AbstractFrame.executeCommand(AbstractFrame.java:148) at org.swixat.framework.AbstractFrame.actionPerformed(AbstractFrame.java:95) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) INFO [AWT-EventQueue-0] (Action.java:205) updateVCSContext - can write false INFO [AWT-EventQueue-0] (Action.java:206) updateVCSContext - can commit false INFO [AWT-EventQueue-0] (Action.java:207) updateVCSContext - can update false INFO [AWT-EventQueue-0] (Action.java:208) updateVCSContext - can delete false INFO [AWT-EventQueue-0] (Action.java:209) updateVCSContext - can diff false INFO [Thread-14] (Action.java:116) loadScript - loadScript called [AnalysePlan/AnalysePlan] INFO [Thread-14] (Action.java:205) updateVCSContext - can write false INFO [Thread-14] (Action.java:206) updateVCSContext - can commit false INFO [Thread-14] (Action.java:207) updateVCSContext - can update false INFO [Thread-14] (Action.java:208) updateVCSContext - can delete false INFO [Thread-14] (Action.java:209) updateVCSContext - can diff false **** false *****0 INFO [Thread-16] (Action.java:116) loadScript - loadScript called [AnalysePlan/Sensibility.java] INFO [Thread-16] (VCSFileState.java:217) doSynch - new synch analyseplans\Sensibility.java(1025025398)|UNVERSIONNED|1233137617625 INFO [Thread-16] (Action.java:203) updateVCSContext - UNVERSIONNED INFO [Thread-16] (Action.java:205) updateVCSContext - can write false INFO [Thread-16] (Action.java:206) updateVCSContext - can commit false INFO [Thread-16] (Action.java:207) updateVCSContext - can update false INFO [Thread-16] (Action.java:208) updateVCSContext - can delete false INFO [Thread-16] (Action.java:209) updateVCSContext - can diff false Installing UI Installing HIGHLIGHT Set to 363 **** false *****0 Set to 66 INFO [AWT-EventQueue-0] (Action.java:205) updateVCSContext - can write false INFO [AWT-EventQueue-0] (Action.java:206) updateVCSContext - can commit false INFO [AWT-EventQueue-0] (Action.java:207) updateVCSContext - can update false INFO [AWT-EventQueue-0] (Action.java:208) updateVCSContext - can delete false INFO [AWT-EventQueue-0] (Action.java:209) updateVCSContext - can diff false INFO [Thread-19] (Action.java:116) loadScript - loadScript called [AnalysePlan/AnalysePlan] INFO [Thread-19] (Action.java:205) updateVCSContext - can write false INFO [Thread-19] (Action.java:206) updateVCSContext - can commit false INFO [Thread-19] (Action.java:207) updateVCSContext - can update false INFO [Thread-19] (Action.java:208) updateVCSContext - can delete false INFO [Thread-19] (Action.java:209) updateVCSContext - can diff false **** false *****0 INFO [Thread-21] (Action.java:116) loadScript - loadScript called [AnalysePlan/Sensibility.java] INFO [Thread-21] (VCSFileState.java:217) doSynch - new synch analyseplans\Sensibility.java(1025025398)|UNVERSIONNED|1233138420000 INFO [Thread-21] (Action.java:203) updateVCSContext - UNVERSIONNED INFO [Thread-21] (Action.java:205) updateVCSContext - can write false INFO [Thread-21] (Action.java:206) updateVCSContext - can commit false INFO [Thread-21] (Action.java:207) updateVCSContext - can update false INFO [Thread-21] (Action.java:208) updateVCSContext - can delete false INFO [Thread-21] (Action.java:209) updateVCSContext - can diff false Installing UI Installing HIGHLIGHT Set to 363 **** false *****0 Set to 265 Set to 119
------------------------------------------------------------------------
_______________________________________________ Isis-fish-user mailing list Isis-fish-user@lists.labs.libre-entreprise.org http://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user
-- Sigrid LEHUTA ~ ><> ~ Doctorante Département Ecologie et Modèles pour l'Halieutique IFREMER, rue de l'ile d'Yeu BP 21105 44311 Nantes Cedex 03 Tél : +33 (0)2 40 37 41 65
participants (4)
-
chirine HUSSEIN -
letellier -
Sigrid LEHUTA -
Youen.Vermard@ifremer.fr