Class PopulationMonitor

java.lang.Object
fr.ifremer.isisfish.simulator.PopulationMonitor

public class PopulationMonitor extends Object
Classe permettant le suivi des populations de la simulation.

Cette classe est normalement multi-thread safe

FIXME: certain calcul sont les memes que ceux implanter dans les scripts a cause du groupe des juveniles qui n'est pas un vrai groupe de population. Il serait bon que ce groupe deviennent un vrai groupe et que ce code specifique puisse etre supprimer.

Version:
$Revision$ Last update: $Date$ by : $Author$
Author:
poussin
  • Field Details

    • pops

      protected List<Population> pops
      La liste des pops monitorer par cette instance
    • Ns

      protected Map<Population,org.nuiton.math.matrix.MatrixND> Ns
      current number of fish by Pop
    • reproductions

      protected Map<Population,Map<TimeStep,ReproductionData>> reproductions
      reproduction key: <date, pop> value:<MatrixND>
    • discards

      protected Map<Population,Map.Entry<TimeStep,org.nuiton.math.matrix.MatrixND>> discards
      discard key: <date, pop> value:<MatrixND>
    • catchs

      protected Map<Population,org.nuiton.math.matrix.MatrixND> catchs
      catch per population, only last catch is remaining
    • holdCatchs

      protected Map<Population,org.nuiton.math.matrix.MatrixND> holdCatchs
      catch per population, only last catch is remaining
    • totalHoldCatch

      protected double totalHoldCatch
  • Constructor Details

    • PopulationMonitor

      public PopulationMonitor()
  • Method Details

    • init

      public void init(List<Population> pops)
      Initialise le monitor pour l'ensemble de pop passe en parametre. Normalement cet init est fait dans le thread principale de la simulation et il n'y a pas de besoin de le synchroniser. Cet init permet d'avoir ensuite le maxime de variable en lecture, et donc de permettre le multithreading de facon legere (pas de synchronise) et sur (pas de concurent modification exception)
      Parameters:
      pops -
    • getPopulations

      public List<Population> getPopulations()
      Return all population actualy in PopulationMonitor
      Returns:
      new list of Population
    • getBiomass

      public double getBiomass(Species species)
      Return current biomass for species.
      Parameters:
      species - species
      Returns:
      species biomass
    • getBiomass

      public double getBiomass(Population pop)
      Return current biomass for population.
      Parameters:
      pop - population
      Returns:
      population biomass
    • getN

      public org.nuiton.math.matrix.MatrixND getN(Population pop)
      Return current numbers for population.
      Parameters:
      pop - population
      Returns:
      population numbers
    • setN

      public void setN(Population pop, org.nuiton.math.matrix.MatrixND mat)
    • getReproduction

      public org.nuiton.math.matrix.MatrixND getReproduction(TimeStep step, Population pop)
      Return reproduction.
      Parameters:
      step - step
      pop - population
      Returns:
      the reproduction
    • getReproductionData

      public ReproductionData getReproductionData(TimeStep step, Population pop)
      Return reproduction data.
      Parameters:
      step - step
      pop - population
      Returns:
      the reproductionData
    • setReproduction

      public void setReproduction(TimeStep step, Population pop, org.nuiton.math.matrix.MatrixND aN, org.nuiton.math.matrix.MatrixND aBiomass, org.nuiton.math.matrix.MatrixND repro)
      Set new reproduction.
      Parameters:
      step - step
      pop - population
      aN - aboundance
      aBiomass - biomass
      repro - reproduction to set
    • applyReproductionMortality

      public void applyReproductionMortality(Population pop)
      Applique de la mortalite naturelle aux poissons qui sont pas encore dans les classes de populations. (Reproduction)
      Parameters:
      pop -
    • getRecruitment

      public org.nuiton.math.matrix.MatrixND getRecruitment(TimeStep step, Population pop)
      TODO les reproductions qui sont trop veille pour encore servir doivent être supprimées. c-a-d date < currentDate - etalement - gap between repro recru Une autre facon de faire est de supprimer les repro == 0 car normalement toute la repro doit etre utilisé au bout d'un certain temps
      Parameters:
      step - step
      pop - population
      Returns:
      population recruitment
    • holdCatch

      public void holdCatch(Population pop, org.nuiton.math.matrix.MatrixND catchPerStrategyMet)
      Parameters:
      pop - population
      catchPerStrategyMet -
    • getCatch

      public org.nuiton.math.matrix.MatrixND getCatch(Population pop)
      Get population catch.
      Parameters:
      pop - population
      Returns:
      population catch
    • getHoldCatch

      public org.nuiton.math.matrix.MatrixND getHoldCatch(Population pop)
      Get population hold catch.
      Parameters:
      pop - population
      Returns:
      population hold catch
    • getTotalHoldCatch

      public double getTotalHoldCatch(Population pop)
      Population total hold catch.
      Parameters:
      pop - population
      Returns:
      population total hold catch
    • clearCatch

      public void clearCatch()
      RAZ capture cumulée de toutes les pops.
    • getDiscard

      public org.nuiton.math.matrix.MatrixND getDiscard(TimeStep step, Population pop)
      Get discard.
      Parameters:
      step - step to get discard
      pop - population to get discard
      Returns:
      le discard
    • setDiscard

      public void setDiscard(TimeStep step, Population pop, org.nuiton.math.matrix.MatrixND discard)
      Set discard. Only work for current step simulation Force discard at date for population.
      Parameters:
      step - step to set discard
      pop - population to set discard
      discard - le discard
    • addDiscard

      public void addDiscard(TimeStep step, Population pop, org.nuiton.math.matrix.MatrixND discard)
      Only work for current step simulation
      Parameters:
      step -
      pop -
      discard -
    • checkStep

      public void checkStep(TimeStep step, String msg)