7 Jul
2011
7 Jul
'11
2:17 p.m.
J'ai réussi à corriger pas mal d'erreur dans le script mais il en reste une
que j'arrive pas à enlever et j'ai trop message d'erreur "deprecation" par
exemple pour matrix.setSemantics. Il y a le même code dans le script de
Sigrid et ça me met le même méssage d'erreur. Je suppose donc que le code a
été remplacé par un autre mais je ne trouve pas dans le site d'ISIS le
nouveau code.
Camille
Le 7 juillet 2011 11:41, Stephanie MAHEVAS <Stephanie.Mahevas@ifremer.fr> a
écrit :
> Tu n'es pas obligée mais c'est plus simple d'autant qu'il y a deja des
> exemples de scripts avec ce format.
> Pour l'instant tu n'as pas de nouvelles courbes de selectivite pour la
> langoustine. Donc deux choix
> tu recopies la courbe de la base les 7 fois; ou tu modifies le script pour
> que ça colle avec une matrice une colonne.
> Je prefererais la premiere solution car ensuite on aura des courbes de
> selectivite pour la langoustine.
> Voici un script à compiler et à tester.
> je t'ai mis le fichier matrix + un debut de fichier selectiviteMerlu. ce
> dernier est à finir de remplir + mettre les valeurs a1, b1 ....
> A+
>
> stephanie
>
> camille de la Vega a écrit :
>
>> Ok. Je ne pensais pas que j'avais besoin de passer par des fichiers .txt
>> obligatoirement.
>>
>> Et pour les sélectivités des langoustines, je n'ai pas de courbes de
>> sélectivité à tester pour l'instant. Si les sélectivités ne change pas,
>> est-il nécessaire de créer un fichier "selectivité langoustine" ? Si oui ça
>> veut dire que je mettrais 7 fois (si j'ai 7 courbes à tester pour le merlu)
>> la même equation de sélectivité langoustine dans le fichier "langoustine" ?
>>
>>
>> Le 7 juillet 2011 11:01, Stephanie MAHEVAS <Stephanie.Mahevas@ifremer.fr<mailto:
>> Stephanie.Mahevas@**ifremer.fr <Stephanie.Mahevas@ifremer.fr>>> a écrit :
>>
>>
>>
>> Bonjour Camille
>>
>> ca ne me semble pas correct comme maniere d'ecrire le plan.
>> Si tu vas à sur le site d'ISIS
>> (http://isis-fish.labs.libre-**entreprise.org/wiki-moin/**
>> instance/cgi-bin/moin.cgi/v3/**usermanual/tuto/PlanAnalyse?**
>> action=AttachFile&do=view&**target=Exemple_PlanAnalyse.**java<http://isis-fish.labs.libre-entreprise.org/wiki-moin/instance/cgi-bin/moin.cgi/v3/usermanual/tuto/PlanAnalyse?action=AttachFile&do=view&target=Exemple_PlanAnalyse.java>
>> <http://isis-fish.labs.libre-**entreprise.org/wiki-moin/**
>> instance/cgi-bin/moin.cgi/v3/**usermanual/tuto/PlanAnalyse?**
>> action=AttachFile&do=view&**target=Exemple_PlanAnalyse.**java<http://isis-fish.labs.libre-entreprise.org/wiki-moin/instance/cgi-bin/moin.cgi/v3/usermanual/tuto/PlanAnalyse?action=AttachFile&do=view&target=Exemple_PlanAnalyse.java>
>> >)
>> tu verras comment proceder.
>> 1. il te faudrait deux fichiers de parametres :
>> selectiviteLangoustine.txt et selectiviteMerlu.txt
>> chacun de ces fichiers doit contenir autant de lignes qu'il y a de
>> courbes à tester (et le meme nombre pour les 2 fichiers)
>> 1 = "equationselectivite1"
>> 2= "equationselectivite2"
>> ...
>> 2. tu construis un fichier matrix.txt avec 2 colonnes
>> (selectiviteLangoustine et selectiviteMerlu) et n lignes (le
>> nombre de courbes à tester)
>> 1;1
>> 2;2
>> ...
>> n;n
>> 3. tu suis les instructions pour que dans la boucle tu reaffactes
>> la courbe de selectivite pour chaque population et chaque engin
>> concerné
>>
>> je te prepare un essai de script
>> stephanie
>>
>> camille de la Vega a écrit :
>>
>> Bonjour,
>> Je voudrais faire un plan d'analyse pour faire plusieurs
>> simulations à la suite avec chacune une sélectivité différente
>> pour les engins "chalut". J'ai 7 sélectivités à tester. Je
>> vous envoie mon script qui ne compile pas.
>> Merci !!
>> Camille
>> ------------------------------**------------------------------**
>> ------------
>>
>> ______________________________**_________________
>> Isis-fish-users mailing list
>> Isis-fish-users@list.isis-**fish.org<Isis-fish-users@list.isis-fish.org>
>> <mailto:Isis-fish-users@list.**isis-fish.org<Isis-fish-users@list.isis-fish.org>>
>>
>>
>> http://list.isis-fish.org/cgi-**bin/mailman/listinfo/isis-**
>> fish-users<http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users>
>>
>>
>> -- ..............................**..............................*
>> *..........
>> Stephanie MAHEVAS (Stephanie.Mahevas@ifremer.fr
>> <mailto:Stephanie.Mahevas@**ifremer.fr <Stephanie.Mahevas@ifremer.fr>>)
>>
>>
>> IFREMER/EMH (Ecologie et Modèles pour l'Halieutique) Tel: (33) 2
>> 40 37 41 81 Fax: (33) 2 40 37 40 75 o \ o / _ o __|
>> \ / |__ o _ \ o / o
>> /|\ | /\ ___\o \o | o/ o/__ /\ | /|\
>> / \ / \ | \ /) | ( \ /o\ / ) | (\ / | / \ / \
>> ..............................**..............................**
>> ..........
>> ______________________________**_________________
>> Isis-fish-users mailing list
>> Isis-fish-users@list.isis-**fish.org<Isis-fish-users@list.isis-fish.org>
>> <mailto:Isis-fish-users@list.**isis-fish.org<Isis-fish-users@list.isis-fish.org>>
>>
>>
>> http://list.isis-fish.org/cgi-**bin/mailman/listinfo/isis-**fish-users<http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users>
>>
>>
>> ------------------------------**------------------------------**
>> ------------
>>
>> ______________________________**_________________
>> Isis-fish-users mailing list
>> Isis-fish-users@list.isis-**fish.org <Isis-fish-users@list.isis-fish.org>
>> http://list.isis-fish.org/cgi-**bin/mailman/listinfo/isis-**fish-users<http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users>
>>
>>
>
> --
> ..............................**..............................**..........
> Stephanie MAHEVAS (Stephanie.Mahevas@ifremer.fr)
> IFREMER/EMH (Ecologie et Modèles pour l'Halieutique) Tel: (33) 2 40 37 41
> 81 Fax: (33) 2 40 37 40 75
> o \ o / _ o __| \ / |__ o _ \ o / o
> /|\ | /\ ___\o \o | o/ o/__ /\ | /|\
> / \ / \ | \ /) | ( \ /o\ / ) | (\ / | / \ / \
> ..............................**..............................**..........
>
>
> 0 = "Math.exp(a1+b1*group.getLength())/(1+Math.exp((a1)+b1*
> group.getLength()))"
> 1= "Math.exp(a2+b2*group.getLength())/(1+Math.exp((a2)+b2*
> group.getLength())); "
>
> A COMPLETER
>
> 0;0
> 1;1
> 2;2
> 3;3
> 4;4
> 5;5
> 6;6
> /*
> * Copyright (C) 2011 Camille
> *
> * This program is free software; you can redistribute it and/or
> * modify it under the terms of the GNU General Public License
> * as published by the Free Software Foundation; either version 2
> * of the License, or (at your option) any later version.
> *
> * This program is distributed in the hope that it will be useful,
> * but WITHOUT ANY WARRANTY; without even the implied warranty of
> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> * GNU General Public License for more details.
> *
> * You should have received a copy of the GNU General Public License
> * along with this program; if not, write to the Free Software
> * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
> USA.
> */
>
> package analyseplans;
>
> import static org.nuiton.i18n.I18n._;
>
> import org.apache.commons.logging.Log;
> import org.apache.commons.logging.LogFactory;
>
> import scripts.ResultName;
>
> import java.io.Writer;
> import org.nuiton.math.matrix.*;
> import org.nuiton.util.*;
> import org.nuiton.topia.*;
>
> import fr.ifremer.isisfish.util.Doc;
> import fr.ifremer.isisfish.*;
> 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.SimulationStorage;
> import fr.ifremer.isisfish.datastore.ResultStorage;
>
> /**
> * SELECTIVITY.java
> *
> * Created: 27 juin 2011
> *
> * @author Camille <user.name@vcs.hostName>
> * @version $Revision: 1545 $
> * Last update: $Date: 27 juin 2011 $
> * by : $Author: Camille $
> */
> public class SELECTIVITY implements AnalysePlan {
>
> /** to use log facility, just put in your code: log.info("..."); */
> private static Log log = LogFactory.getLog(SELECTIVITY.class);
>
> static private final String MATRIXSELECTIVITE = "matrixSelectivite"; ///
> Le fichier est donc matrixSelectivite.txt
> static private final String SELECTIVITYMERLU = "selectivityMerlu";
> static private final String SELECTIVITYLANGOUSTINE =
> "selectivityLangoustine";
>
> int param_parameterNumber = 2;
> public int param_first = 0;
> public param_simulationNumber = 7; //nombre de courbes de
> selectivite a tester
> public String param_directory = ""; //repertoir ou sont ranges les
> fichiers
> matrixSelectivite.txt,selectivityMerlu.txt,selectivityLangoustine.txt
>
> public String [] necessaryResult = {
> // put here all necessary result for this rule
> // example:
> // ResultName.MATRIX_BIOMASS,
> // ResultName.MATRIX_NET_VALUE_OF_LANDINGS_PER_STRATEGY_MET,
> };
>
> @Override
> 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
> */
> @Override
> public String getDescription() throws Exception {
> // TODO change descrition
> return _("TODO SELECTIVITY description plan");
> }
>
> /**
> * Appele au demarrage de la simulation, cette methode permet
> d''initialiser
> * des valeurs
> * @param simulation La simulation pour lequel on utilise cette regle
> */
> @Override
> public void init(AnalysePlanContext context) throws Exception {
> File dir = new File(param_directory);
>
> matrix = MatrixFactory.getInstance().create(new
> int[]{param_simulationNumber, param_parameterNumber});
> matrix.importCSV(new FileReader(new File(dir, MATRIXSELECTIVITE +
> ".txt")), new int[]{0,0});
> matrix.setSemantics(1, Arrays.asList(new String[]{SELECTIVITYMERLU,
> SELECTIVITYLANGOUSTINE}));
> System.out.println(matrix);
> }
>
>
>
>
> /**
> * @param name le nom de l'element a recuperer
> * @param simulation le numero de la simulation
> * @return
> */
> private String getString(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);
> String result = prop.getProperty(""+mod);
> return result;
> }
>
> /**
> * 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
> */
>
>
> // partie ou on decide si on refait une simulation ou si on s'arrete.
> public boolean beforeSimulation(AnalysePlanContext context,
> SimulationStorage nextSimulation) throws Exception {
> int simNum =
> nextSimulation.getParameter().getAnalysePlanNumber();
> if (simNum + param_first < param_simulationNumber) {
> String selectivityMerlu = getString (SELECTIVITYMERLU,
> simNum);
> String selectivityLangoustine = getString
> (SELECTIVITYLANGOUSTINE, simNum);
>
>
> nextSimulation.getInformation().addInformation("Selectivity Merlu
> ("+context.getNumber()+")= " + selectivityMerlu);
>
> nextSimulation.getInformation().addInformation("Selectivity Langoustine
> ("+context.getNumber()+")= " + selectivityLangoustine);
>
> /// 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 popMerlu =
> popDAO.findByName("merluccius");
> Population popLangoustine =
> popDAO.findByName("nephrops");
> GearDAO gearDAO = IsisFishDAOHelper.getGearDAO(tx);
>
> Gear gearChalutSimple = GearDAO.findByName("chalut
> simple");
> Gear gearChalutJumeau = GearDAO.findByName("Chalut
> jumeau");
>
> Selectivity selMerlu =
> gearChalutSimple.getPopulationSelectivity(popMerlu);
> Equation eqMerlu = selMerlu.getEquation();
> eqMerlu.setContent(selectivityMerlu);
> Selectivity selLangoustine =
> gearChalutSimple.getPopulationSelectivity(popLangoustine);
> Equation eqLangoustine =
> selLangoustine.getEquation();
> eqLangoustine.setContent(selectivityLangoustine);
>
> Selectivity selMerlu =
> gearChalutJumeau.getPopulationSelectivity(popMerlu);
> Equation eqMerlu = selMerlu.getEquation();
> eqMerlu.setContent(selectivityMerlu);
> Selectivity selLangoustine =
> gearChalutJumeau.getPopulationSelectivity(popLangoustine);
> Equation eqLangoustine =
> selLangoustine.getEquation();
> eqLangoustine.setContent(selectivityLangoustine);
>
>
> tx.commitTransaction();
> return true;
> } else {
> return false;
> }
> }
>
>
>
> /**
> * Call after each simulation.
> *
> * @param context plan context
> * @param lastSimulation storage used for simulation
> * @return true if we must do next simulation, false to stop plan
> * @throws Exception
> */
> @Override
> public boolean afterSimulation(AnalysePlanContext context,
> SimulationStorage lastSimulation) throws Exception {
> return true;
> }
>
> _______________________________________________
> Isis-fish-users mailing list
> Isis-fish-users@list.isis-fish.org
> http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users
>
>