Est ce que je peux utilisé getValueAt à la place ?


 
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>> 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>)
   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
       <mailto:Isis-fish-users@list.isis-fish.org>

       http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users
       

   --     ......................................................................
   Stephanie MAHEVAS (Stephanie.Mahevas@ifremer.fr
   <mailto: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
   <mailto:Isis-fish-users@list.isis-fish.org>

   http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users


------------------------------------------------------------------------

_______________________________________________
Isis-fish-users mailing list
Isis-fish-users@list.isis-fish.org
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