[Isis-fish-user] RE : analyse de sensibilité : 1 colonne de la matrice d'exp correspond à plusieurs paramètres...

Sigrid LEHUTA Sigrid.Lehuta at ifremer.fr
Lun 12 Jan 11:22:23 CET 2009


salut
pour la selectivité, c'est le même problème que pour le facteur de 
standardisation et les AMP (= 1 même colonne de la matrice pour 
plusieurs paramètres).

La première solution c'est de répéter cette colonne dans la matrice 
autant de fois que de paramètres (ici 1/engin) et de creer un fichier 
.txt par engin.


mais si tous les engins prennent la modalité -1 en même temps et la 
modalité 1 en même temps on peut aussi ne garder qu'une seule colonne 
dans la matrice
et pour la selectivité par exemple on a 2 options :

***Option 1 :
tu dois donc faire un fichier.txt par engin

* on modifie ligne 165 la méthode getString() :

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;
    }

* ligne 57 :
tu ajoutes pour chaque engin un String correspondant à chacun (comme 
pour les AMP)
exemple : static private final String SELECTIVITYFiletMer = 
"selectivityFiletMer";
selectivityFiletMer etant le nom du fichier .txt
et tu gardes
static private final String SELECTIVITY = "selectivity";
qui correspond a la colonne de la matrice commune a tous les engins

ligne 212 : comme pour les AMP l'appel de la méthode est modifié 
getString(nom du fichier.txt, nom de la colonne de la matrice, ligne de 
la matrice)
Tu auras donc autant de lignes à ajouter que d engins et le code sera :
String selectivityFiletMer  = getString (SELECTIVITYFiletMer, 
SELECTIVITY, simNum);

Enfin dans la boucle sur les engins ligne 295 : comme pour le facteur 
standardisation
if ("FiletMer".equals(gear.getName())) {
                Selectivity sel = gear.getPopulationSelectivity(pop);
                Equation eq = sel.getEquation();               
                eq.setContent(selectivityFiletMer );
}else if...


* attention ! ligne 213 pour la mortalité qui utilise aussi la méthode 
getString() :
String mortality      = getString (MORTALITY, simNum);
devient :
String mortality      = getString (MORTALITY, MORTALITY, simNum);


***Option 2 : Je pense que ca marche, mais j'ai pas verifié
La solution serait de n'avoir qu un fichier .txt avec les équations des 
différents engins écrites a la suite et séparées par exemple par % . on 
ne cange pas la méthode getString().
il suffirait d'avoir apres la ligne 213 :
String [] selec = selectivity.split("%");
ca fait une liste d'equations comme pour le facteur de standardisation
et pour chaque engin,  on reccupere selec[0], selec[1]... etc.

Au choix !

bon courage

chirine HUSSEIN a écrit :
> bonjour,merci bien pour ton aide.pour la selectivité ce n'est pas la même pour  tes différents engins. 
> merci encor une fois 
> à +++
>
> ----- Message d'origine ----De : Sigrid LEHUTA <Sigrid.Lehuta at ifremer.fr>À : Liste pour les utilisateurs du simulateur <isis-fish-user at lists.labs.libre-entreprise.org>Envoyé le : Vendredi, 9 Janvier 2009, 18h48mn 38sObjet : Re: [Isis-fish-user] Re : problème analyse de sensibilité
> Salut
> j ai essayer de deviner ce que tu veux faire...les fichiers corrigés sont en piece jointe et voici les explications
> * capturabilité :tu veux que la capturabilité de toutes classes et saisons soit egale : soit a 0.00008, soit à 0.008, exact ?si oui : le fichier txt est OKle script de sensibility ne va pas, je l ai corrigé.si non : qu est ce que tu veux faire ?
> * croissance :tu modifies les bornes des classes de taille de Csar, exact ?dans la base les bornes sont :6;8.2;11.2;14.9;18.4;21.4;24.2;26.6;47avec ce que tu as écrit elles seront modifiées cas -1 : 0;5;7.2;10.2;13.9;17.4;20.4;23.2;25.6cas 1 : 0;9.2;12.2;15.9;19.4;21.4;25.2;27.6;47est ce normal que ca commence à 0 ?si c'est bien ce que tu veux faire, le fichier.txt est OKle script sensibilité est OK
> * Mortalité :fichier.txt : l'équation n'etait pas complete, j ai complété en ajoutant la mortalité du group nullet comme disait Benjamin le fichier doit s'appeler mortalite.txt et pas mortalite.txt.txtj'ai corrigé le script sensibility
> * Selectivité :La selectivité de tes différents engins est elle la même ?si oui : le fichier .txt est OKsi non ... on verrale script sensibilité est OK
> * Standardisation :je devine que la liste correspond à la valeur que le facteur doit prendre pour pour chacun des engins, c est ca ?du coup dans la boucle sur les engins il faut tester le nom de l engin en cours et aller chercher la valeur correspondante de la liste. J'ai fait un exemple dans le script tu complèteras.
> * amp : là ya du boulot !!!
> qu est ce qui change dans tes amp ? parce que pour le moment les paramètres sont les meme pour les 2 modalités !!! donc ca ne sert à rien.si tu ne veux pas modifier tes amp pas besoin de faire des fichiers .txt, au moment de lancer le plan tu charges les règles dans l interface de lancement de simulation comme pour une simulation normale
> par contre si tu veux les modifier :-il faut faire autant de fichiers .txt que de regles de gestion : (1 par engin*zone soit 11 dans ton cas)tu auras ampRPrepro_Lignecote.txt, ampRPrepro_FiletMer.txt, ampRPrepro_Ligneemb.txt, etc...
> je devine que toutes les amp prennent la modalité 1 en meme temps et la modalité -1 en meme temps, c est ca?si oui on garde 1 seule colonne correspondant a la modalité des amp dans la matrice et j ai simplement change un peu la méthode getRule().
> Concernant la syntaxe, il faut être rigoureux (il suffit de recopier attentivement l exemple), fais attention on écrit en paramètre:rule.1.parameter.gear = fr.ifremer.isisfish.entities.Gear#1175514903043#0.91997442903957et pasrule.1.parameter.gear = FiletMer(fr.ifremer.isisfish.entities.Gear#1175514903043#0.91997442903957)etrule.-1.parameter.beginDate = 0et pasrule.-1.parameter.beginDate = janvier 0(0)
> - pour le script sensibility :J ai commencé à écrire le script pour modifier les amp, tu completeras.
>
> J ai mis ce symbole ////////////////////* dans le script sensibilite chaque fois que tu dois completer.
> Voilà ca devrait marcher.Fais attention, il y avait beaucoup de fautes de frappe dans les fichiers que tu as envoyé qui auraient fait planter le script. J ai corrigé tout ce que j'ai trouvé, mais avant de nous envoyer des scripts à corriger, essaie de corriger toi même les fautes de frappe et un maximum de fautes simples en cliquant sur "Vérifier" dans l'interface d'éditeur de script.
> a+
> chirine HUSSEIN a écrit :> Bonjour,Ce que je veux modifier c’est les paramètres de  (la capturabilité, la mortalité naturelle, les factures de standardisation, la sélectivité, et les paramètres de la règle cantonnement). 1-Je voulais savoir est ce que les modalités des paramètres sont bien écrits ? 2- pour modifier les valeurs initiales de ces paramètres (capturabilité, mortalité naturelle, les factures de standardisation, la sélectivité, et les paramètres de la règle cantonnement) dans la base de données. Autrement dit, vérifier les codes de scripte à partir de la ligne 245. Merci bien pour votre aide chirine > > ----- Message d'origine ----De : Benjamin POUSSIN <poussin at codelutin.com>À : isis-fish-user at lists.labs.libre-entreprise.orgEnvoyé le : Lundi, 5 Janvier 2009, 17h43mn 13sObjet : Re: [Isis-fish-user] problème analyse de sensibilité> On Mon, 5 Jan 2009 15:18:51 +0000 (GMT)chirine HUSSEIN <m475chi at yahoo.fr> wrote:>  >> Bonjour,>  > Bonnes années à tous.>  > Je suis en train  d’appliquer les analyses de sensibilité sur mes paramètres. J’ai des difficultées surtôt pour trouver les méthodes pour faire les modifications dans la base de données.>  >  Je vous envoie le scripte (sensibility.txt), les fichiers .txte de paramètres et la base de données. Pourrez vous jetez un œil ? > merci bien pour votre aide >  chirine>>    > Bonjour et bonne annee a tous,> Le mieux serait que tu demandes clairement quelles données tu souhaitesmodifier et quel bout de code tu as ecrit pour cela. Sinon on va devoirpasser beaucoup trop de temps a essayer de repondre et avec legrand risque de repondre a cote de la question :(> Ce que je vois deja, ce sont des erreurs dans le fichier:mortalite.txt.txt> Deja il y a deux fois txtensuite il ne faut pas le premier else> -1=else if (group.getId() < 3) return 0.62;else return 0.04;1=else if (group.getId() < 3) return 0.92;else return 0.34;> devient> -1=if (group.getId() < 3) return 0.62;else return 0.04;1=if (group.getId() < 3) return 0.92;else return 0.34;> > --Benjamin--------------------tél: +33 (0) 2 40 50 29 28email: poussin at codelutin.com          () campagne du ruban asciihttp://www.codelutin.com              /\ pour les mails en ascii_______________________________________________Isis-fish-user mailing listIsis-fish-user at lists.labs.libre-entreprise.orghttp://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user> > >      _______________________________________________Isis-fish-user mailing listIsis-fish-user at lists.labs.libre-entreprise.orghttp://lists.labs.libre-entreprise.org/mailman/listinfo/isis-fish-user> >  
> -- Sigrid LEHUTA~ ><> ~DoctoranteDépartement Ecologie et Modèles pour l'HalieutiqueIFREMER, rue de l'ile d'Yeu BP 21105 44311 Nantes Cedex 03Tél : +33 (0)2 40 37 41 65
>
>       _______________________________________________Isis-fish-user mailing listIsis-fish-user at lists.labs.libre-entreprise.orghttp://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





Plus d'informations sur la liste de diffusion Isis-fish-users