J'ai triché pour le moment en faisant: MatrixND catchPerStrategyTemp = resManager.getMatrix(loopstep, pop, ResultName.MATRIX_CATCH_PER_STRATEGY_MET_PER_ZONE_POP); if(pop.getName().equals("Sole")) { catchPerStrategyTemp = resManager.getMatrix(loopstep, pop, ResultName.MATRIX_LANDING_PER_MET); } et il se passe un truc etrange, si MATRIX_LANDING_PER_MET n est pas selectionné comme resultat (erreur bete) et que je simule avec une pop pour qui on calcule F avec les captures et ma pop de sole, alors la mortalite par peche est 0 pour les 2 pops ! (ca se passe bien en revanche si MATRIX_LANDING_PER_MET est selectionné.) Le 17 avril 2015 18:50, Sigrid Lehuta <sigridlehuta@gmail.com> a écrit :
Non ca marche pas...
ERROR|18:46:44,699|InProcessSimulatorLauncher.java|484|localSimulateSameThread|Error during simulation java.lang.NullPointerException at fr.ifremer.isisfish.simulator.SimulationVariable.getAsDouble(SimulationVariable.java:100) at scripts.SiMatrix.fishingMortalityPerGroup_aroundBody102(SiMatrix.java:1946) at scripts.SiMatrix$AjcClosure103.run(SiMatrix.java:1) at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149) at fr.ifremer.isisfish.util.IsisCache.realCall(IsisCache.java:202) at fr.ifremer.isisfish.util.IsisCache.get(IsisCache.java:143) at fr.ifremer.isisfish.aspect.CacheAspect.call(CacheAspect.java:73) at scripts.SiMatrix.fishingMortalityPerGroup(SiMatrix.java:1921) at simulators.DefaultSimulator.simulate(DefaultSimulator.java:335) at simulators.SimulatorEffortByCell.simulate(SimulatorEffortByCell.java:51) at fr.ifremer.isisfish.simulator.launcher.InProcessSimulatorLauncher.localSimulateSameThread(InProcessSimulatorLauncher.java:441) at fr.ifremer.isisfish.simulator.launcher.InProcessSimulatorLauncher$SimThread.run(InProcessSimulatorLauncher.java:271)
Le 17 avril 2015 18:45, Sigrid Lehuta <sigridlehuta@gmail.com> a écrit :
C'est bon j ai contourné le probleme je pense ! ca va si je fais ca ? : MatrixND catchPerStrategyTemp = resManager.getMatrix(loopstep, pop, ResultName.MATRIX_CATCH_PER_STRATEGY_MET_PER_ZONE_POP); if(context.get(pop).getAsDouble("FonCatch") == 0) { catchPerStrategyTemp = resManager.getMatrix(loopstep, pop, ResultName.MATRIX_LANDING_PER_MET); }
Si y a pas de variable FonCatch pour la pop, est ce que ca va planter ou est ce qu il n entrera simplement pas ds le if ?
Le 17 avril 2015 18:41, Sigrid Lehuta <sigridlehuta@gmail.com> a écrit :
attends seule l erreur 1 est pertinente, les autres c est mon étourderie.
Le 17 avril 2015 18:38, Sigrid Lehuta <sigridlehuta@gmail.com> a écrit :
non il rale quand je mets ca...
---------- 1. ERROR in C:\Users\slehuta\isis-fish-4\isis-database\scripts\SiMatrix.java (at line 1944) if(context.get(pop).getAsDouble("FonCatch") == null || context.get(pop).getAsDouble("FonCatch") == 1){ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The operator == is undefined for the argument type(s) double, null ---------- 2. ERROR in C:\Users\slehuta\isis-fish-4\isis-database\scripts\SiMatrix.java (at line 1948) catchPerStrategyTemp = resManager.getMatrix(loopstep, pop, ResultName.MATRIX_LANDING_PER_MET); ^^^^^^^^^^^^^^^^^^^^ catchPerStrategyTemp cannot be resolved to a variable ---------- 3. ERROR in C:\Users\slehuta\isis-fish-4\isis-database\scripts\SiMatrix.java (at line 1951) catchPerStrategy = catchPerStrategyTemp.clone(); ^^^^^^^^^^^^^^^^^^^^ catchPerStrategyTemp cannot be resolved ---------- 4. ERROR in C:\Users\slehuta\isis-fish-4\isis-database\scripts\SiMatrix.java (at line 1954) catchPerStrategy = catchPerStrategy.add(catchPerStrategyTemp); // Pour avoir la somme des captures sur les 12 mois ^^^^^^^^^^^^^^^^^^^^ catchPerStrategyTemp cannot be resolved to a variable ---------- 4 problems (4 errors)
Le 17 avril 2015 18:32, Eric Chatellier <chatellier@codelutin.com> a écrit :
Comme le dit le titre : dans SiMatrix je veux accéder a la valeur d'une variable d'une
Le 17/04/2015 18:17, Sigrid Lehuta a écrit : population
(onglet variables), son petit nom est "FonCatch". je sais le faire ds une regle avec context.get(pop).getAsDouble("FonCatch")
mais ds si matrix on a pas de context... Si, il y a un context sur SiMatrix directement (this).
Donc "context.get(pop).getAsDouble("FonCatch")" doit fonctionner.
Ca résout tout ton problème ?
-- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
_______________________________________________ Isis-fish-users mailing list Isis-fish-users@list.isis-fish.org http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users