Author: echatellier Date: 2015-06-23 12:59:35 +0000 (Tue, 23 Jun 2015) New Revision: 366 Url: http://forge.codelutin.com/projects/isis-fish-data/repository/revisions/366 Log: Be able to compute F on landing Modified: branches/4.4.0-resultnames/scripts/SiMatrix.java branches/4.4.0-resultnames/simulators/DefaultSimulator.java Modified: branches/4.4.0-resultnames/scripts/SiMatrix.java =================================================================== --- branches/4.4.0-resultnames/scripts/SiMatrix.java 2015-06-23 09:46:17 UTC (rev 365) +++ branches/4.4.0-resultnames/scripts/SiMatrix.java 2015-06-23 12:59:35 UTC (rev 366) @@ -40,40 +40,11 @@ import fr.ifremer.isisfish.IsisFishDAOHelper; import fr.ifremer.isisfish.IsisFishException; -import fr.ifremer.isisfish.entities.Cell; -import fr.ifremer.isisfish.entities.EffortDescription; -import fr.ifremer.isisfish.entities.Gear; -import fr.ifremer.isisfish.entities.Metier; -import fr.ifremer.isisfish.entities.MetierSeasonInfo; -import fr.ifremer.isisfish.entities.Population; -import fr.ifremer.isisfish.entities.PopulationGroup; -import fr.ifremer.isisfish.entities.PopulationSeasonInfo; -import fr.ifremer.isisfish.entities.Selectivity; -import fr.ifremer.isisfish.entities.SetOfVessels; -import fr.ifremer.isisfish.entities.Strategy; -import fr.ifremer.isisfish.entities.StrategyMonthInfo; -import fr.ifremer.isisfish.entities.Zone; -import fr.ifremer.isisfish.entities.ZoneDAO; -import fr.ifremer.isisfish.simulator.ResultManager; -import fr.ifremer.isisfish.simulator.SimulationContext; +import fr.ifremer.isisfish.entities.*; import fr.ifremer.isisfish.types.Month; import fr.ifremer.isisfish.types.TimeStep; import fr.ifremer.isisfish.util.Nocache; -import resultinfos.MatrixAbundance; -import resultinfos.MatrixBiomass; -import resultinfos.MatrixBiomassBeginMonth; -import resultinfos.MatrixCatchPerStrategyMetPerZonePop; -import resultinfos.MatrixCatchRatePerStrategyMet; -import resultinfos.MatrixCatchWeightPerStrategyMetPerZonePop; -import resultinfos.MatrixDiscardsWeightPerStrMetPerZonePop; -import resultinfos.MatrixEffortNominalPerStrategyMet; -import resultinfos.MatrixEffortPerStrategyMet; -import resultinfos.MatrixFishingMortality; -import resultinfos.MatrixFishingMortalityPerGroup; -import resultinfos.MatrixLbar; -import resultinfos.MatrixMetierZone; -import resultinfos.MatrixPrice; -import resultinfos.MatrixRecruitment; +import resultinfos.*; /** * SiMatrix.java @@ -1189,7 +1160,12 @@ // s'ils ont deja ete calcules une fois (meme s'ils ont change depuis) // beforeOrEquals sert a bien prendre Decembre aussi - MatrixND catchPerStrategyTemp = resManager.getMatrix(loopstep, pop, MatrixCatchPerStrategyMetPerZonePop.NAME); + MatrixND catchPerStrategyTemp; + if (pop.isComputeFOnLandings()) { + catchPerStrategyTemp = resManager.getMatrix(loopstep, pop, MatrixLandingPerMet.NAME); + } else { + catchPerStrategyTemp = resManager.getMatrix(loopstep, pop, MatrixCatchPerStrategyMetPerZonePop.NAME); + } if (catchPerStrategy == null) { catchPerStrategy = catchPerStrategyTemp.copy(); // On clone la matrice car si on fait les operations sur celle contenue dans le cache on la modifie et donc on recupere des resultats faux. Modified: branches/4.4.0-resultnames/simulators/DefaultSimulator.java =================================================================== --- branches/4.4.0-resultnames/simulators/DefaultSimulator.java 2015-06-23 09:46:17 UTC (rev 365) +++ branches/4.4.0-resultnames/simulators/DefaultSimulator.java 2015-06-23 12:59:35 UTC (rev 366) @@ -319,6 +319,19 @@ } resManager.addResult(step, pop, landing); } + + // F and Fbar + if (resManager.isEnabled(MatrixFishingMortalityPerGroup.NAME)) { + MatrixND fishingMortalityPerGroup = siMatrix.fishingMortalityPerGroup(step, pop, context.getResultManager()); + resManager.addResult(step, pop, fishingMortalityPerGroup); + + // MatrixTotalFishingMortality.NAME depends on MatrixFishingMortalityPerGroup.NAME + if (resManager.isEnabled(MatrixTotalFishingMortality.NAME)) { + MatrixND totalFishingMortality = siMatrix.totalFishingMortality( + step, pop, fishingMortalityPerGroup); + resManager.addResult(step, pop, totalFishingMortality); + } + } } // @@ -487,22 +500,6 @@ resManager.addResult(step, pop, catchWeightPerStrategyMet); } - if (resManager.isEnabled(MatrixFishingMortalityPerGroup.NAME) || - resManager.isEnabled(MatrixTotalFishingMortality.NAME)) { - MatrixND fishingMortalityPerGroup = siMatrix.fishingMortalityPerGroup( - step, pop, context.getResultManager()); - - if (resManager.isEnabled(MatrixFishingMortalityPerGroup.NAME)) { - resManager.addResult(step, pop, fishingMortalityPerGroup); - } - - if (resManager.isEnabled(MatrixTotalFishingMortality.NAME)) { - MatrixND totalFishingMortality = siMatrix.totalFishingMortality( - step, pop, fishingMortalityPerGroup); - resManager.addResult(step, pop, totalFishingMortality); - } - } - siMatrix.computeMonthExtra(step, pop, N); } else { // no strategies
participants (1)
-
echatellier@users.forge.codelutin.com