Author: smahevas Date: 2012-10-16 17:47:17 +0200 (Tue, 16 Oct 2012) New Revision: 15 Url: http://forge.codelutin.com/repositories/revision/isis-fish-community/15 Log: corrections erreur metier dans postAction Modified: trunk/rules/TACpoids20012011OgiveTriMerlu.java Modified: trunk/rules/TACpoids20012011OgiveTriMerlu.java =================================================================== --- trunk/rules/TACpoids20012011OgiveTriMerlu.java 2012-09-06 10:41:07 UTC (rev 14) +++ trunk/rules/TACpoids20012011OgiveTriMerlu.java 2012-10-16 15:47:17 UTC (rev 15) @@ -93,29 +93,30 @@ public double param_TailleMin = 27.0; /** TAC in tonnes */ @Doc("TAC in tons 2001") - public double param_tacInTons2001 = 4000.0; + public double param_tacInTons2001 =8452; @Doc("TAC in tons 2002") - public double param_tacInTons2002 = 3200.0; + public double param_tacInTons2002 = 10098; @Doc("TAC in tons 2003") - public double param_tacInTons2003 = 3000.0; + public double param_tacInTons2003 = 11220; @Doc("TAC in tons 2004") - public double param_tacInTons2004 = 3150.0; + public double param_tacInTons2004 = 14623; @Doc("TAC in tons 2005") - public double param_tacInTons2005 = 3100.0; + public double param_tacInTons2005 = 15932; @Doc("TAC in tons 2006") - public double param_tacInTons2006 = 4000.0; + public double param_tacInTons2006 = 16412; @Doc("TAC in tons 2007") - public double param_tacInTons2007 = 4320.0; + public double param_tacInTons2007 = 19701; @Doc("TAC in tons 2008") - public double param_tacInTons2008 = 4320.0; + public double param_tacInTons2008 = 20196; @Doc("TAC in tons 2009") - public double param_tacInTons2009 = 4100.0; + public double param_tacInTons2009 = 19261; @Doc("TAC in tons 2010") - public double param_tacInTons2010 = 3900.0; + public double param_tacInTons2010 = 20609; @Doc("TAC in tons 2011") - public double param_tacInTons2011 = 3900.0; + public double param_tacInTons2011 = 20609; + @@ -179,7 +180,7 @@ TargetSpecies ts = metier.getMetierSeasonInfo(step.getMonth()) .getSpeciesTargetSpecies(param_species); boolean result = false; - if (ts != null) { // on n'applique la regle que si espece capturée par ce metier + if (ts != null) { // on n'applique la regle que si espece capturée par ce metier double param_tacInTons = 0; if (step.getYear()>10) { //si on est apres 2011 @@ -367,15 +368,15 @@ // la matrice de captures a une dimension metier - donc a cette etape, toutes // les captures de tous les metiers sont connues // Ne doit pas s'appliquer pour chaque metier de la boucle mais une seule fois! - // affectation est mis àtrue àla fin de la boucle sur les pop + // affectation est mis àtrue àla fin de la boucle sur les pop // la preaction ne tourne que si le TAC est atteint if (tacAtteint) { //postAction de la regle TAC dans ce cas TailleMin ne s'applique pas log.info("[TAC] postAction for: " + metier); PopulationMonitor popMon = context.getPopulationMonitor(); - log.info("popMon biomass" + popMon.getBiomass(param_species)); - for (Population pop : param_species.getPopulation()) { + log.info("popMon biomass" + popMon.getBiomass(param_species)); + for (Population pop : param_species.getPopulation()) { log.info("pop : " + pop.getName()); // si on a deja une matrice rejet on le vide (elle vient @@ -396,7 +397,7 @@ + discardRegle); if (param_propSurvie > 0) { MatrixND eff = popMon.getN(pop); - //on réajoute les survivants aux effectifs + //on réajoute les survivants aux effectifs for (MatrixIterator i = discardRegle.iterator(); i .next();) { Object[] coord = i.getSemanticsCoordinates(); @@ -411,15 +412,15 @@ log.info("deb de affecterCaptureRejetSelonOgive"); PopulationMonitor popMon = context.getPopulationMonitor(); - for (Population pop : param_species.getPopulation()) { + for (Population pop : param_species.getPopulation()) { MatrixND discard = popMon.getCatch(pop).copy(); MatrixND eff = popMon.getN(pop); for (MatrixIterator i = discard.iterator(); i.next();) { Object[] coordonnees = i.getSemanticsCoordinates(); PopulationGroup group = (PopulationGroup) coordonnees[2]; - - if (metier.getName().equals("metier lang simp Sud")||metier.getName().equals("metier lang simp Nord")||metier.getName().equals("metier lang simple")||metier.getName().equals("metier lang jum Nord")||metier.getName().equals("metier lang jum Sud")||metier.getName().equals("metier lang jum")) { + Metier met = (Metier) coordonnees[1]; + if (met.getName().equals("metier lang simp Sud")||met.getName().equals("metier lang simp Nord")||met.getName().equals("metier lang simple")||met.getName().equals("metier lang jum Nord")||met.getName().equals("metier lang jum Sud")||met.getName().equals("metier lang jum")) { double propTrie = 1 / (1 + Math.exp(-(group.getLength() - param_Retention_L50)/ param_Retention_slope)); double propRejet = 1 - propTrie; @@ -427,18 +428,27 @@ double value = i.getValue() * propRejet; log.info("VALUE" + value); i.setValue(value); + if (param_propSurvie >0) { + //ajout de la survie aux effectifs + eff.setValue(coordonnees[2], coordonnees[3], + eff.getValue(coordonnees[2], + coordonnees[3]) + i.getValue() * + param_propSurvie); + } }else if (group.getLength() >= param_TailleMin) { i.setValue(0); // initialise discard si pas de rejet (ie taille>=TailleMin et pas metierLangoustine) - } - if (param_propSurvie >0) { + + } else { //si group.getLength() < param_TailleMin + if (param_propSurvie >0) { //ajout de la survie aux effectifs eff.setValue(coordonnees[2], coordonnees[3], - eff.getValue(coordonnees[2], - coordonnees[3]) + i.getValue() * - param_propSurvie); - } - } + eff.getValue(coordonnees[2], + coordonnees[3]) + i.getValue() *param_propSurvie); + } + + } + } discard.setName(ResultName.MATRIX_DISCARDS_PER_STR_MET_PER_ZONE_POP); popMon.addDiscard(step, pop, discard); }
participants (1)
-
smahevas@users.forge.codelutin.com