fr.ifremer.isisfish.simulator
Class PopulationMonitor

java.lang.Object
  extended by 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: 428 $ Last update: $Date: 2007-10-15 14:56:13 +0200 (lun, 15 oct 2007) $ by : $Author: bpoussin $
Author:
poussin

Field Summary
protected  Map<Population,org.nuiton.math.matrix.MatrixND> catchs
          catch per population, only last catch is remaining
protected  Map<Population,Map<Date,org.nuiton.math.matrix.MatrixND>> discards
          discard key: value:
protected  Map<Population,org.nuiton.math.matrix.MatrixND> holdCatchs
          catch per population, only last catch is remaining
protected  Map<Population,org.nuiton.math.matrix.MatrixND> Ns
          current number of fish by Pop
protected  List<Population> pops
          La liste des pops monitorer par cette instance
protected  Map<Population,Map<Date,org.nuiton.math.matrix.MatrixND>> reproductions
          reproduction key: value:
protected  double totalHoldCatch
           
 
Constructor Summary
PopulationMonitor()
           
 
Method Summary
 void addDiscard(Date date, Population pop, org.nuiton.math.matrix.MatrixND discard)
          FIXME: discards n'est jamais vider, on le conserve pour toutes les annees il serait bon de faire un peu le menage de temps en temps.
 void applyReproductionMortality(Population pop)
          Applique de la mortalite naturelle aux poissons qui sont pas encore dans les classes de populations.
 void clearCatch()
          RAZ capture cumulée de toutes les pops.
 double getBiomass(Population pop)
          Return current biomass for population.
 double getBiomass(Species species)
          Return current biomass for species.
 org.nuiton.math.matrix.MatrixND getCatch(Population pop)
          Get population catch.
 org.nuiton.math.matrix.MatrixND getDiscard(Date date, Population pop)
          Get discard.
 org.nuiton.math.matrix.MatrixND getHoldCatch(Population pop)
          Get population hold catch.
 org.nuiton.math.matrix.MatrixND getN(Population pop)
          Return current numbers for population.
 List<Population> getPopulations()
          Return all population actualy in PopulationMonitor
 org.nuiton.math.matrix.MatrixND getRecruitment(Date date, 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
 org.nuiton.math.matrix.MatrixND getReproduction(Date date, Population pop)
          Return reproduction.
 double getTotalHoldCatch(Population pop)
          Population total hold catch.
 void holdCatch(Population pop, org.nuiton.math.matrix.MatrixND catchPerStrategyMet)
           
 void init(List<Population> pops)
          Initialise le monitor pour l'ensemble de pop passe en parametre.
 void setDiscard(Date date, Population pop, org.nuiton.math.matrix.MatrixND discard)
          Set discard.
 void setN(Population pop, org.nuiton.math.matrix.MatrixND mat)
           
 void setReproduction(Date date, Population pop, org.nuiton.math.matrix.MatrixND repro)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

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<Date,org.nuiton.math.matrix.MatrixND>> reproductions
reproduction key: value:


discards

protected Map<Population,Map<Date,org.nuiton.math.matrix.MatrixND>> discards
discard key: value:


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 Detail

PopulationMonitor

public PopulationMonitor()
Method Detail

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(Date date,
                                                       Population pop)
Return reproduction.

Returns:
the reproduction.

setReproduction

public void setReproduction(Date date,
                            Population pop,
                            org.nuiton.math.matrix.MatrixND repro)
Parameters:
repro - The 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(Date date,
                                                      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:
date -
pop -
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(Date date,
                                                  Population pop)
Get discard.

Parameters:
date - date to get discard
pop - population to get discard
Returns:
le discard

setDiscard

public void setDiscard(Date date,
                       Population pop,
                       org.nuiton.math.matrix.MatrixND discard)
Set discard. Force discard at date for population.

Parameters:
date - date to set discard
pop - population to set discard
discard - le discard

addDiscard

public void addDiscard(Date date,
                       Population pop,
                       org.nuiton.math.matrix.MatrixND discard)
FIXME: discards n'est jamais vider, on le conserve pour toutes les annees il serait bon de faire un peu le menage de temps en temps.

Parameters:
date -
pop -
discard -


Copyright © 1999-2010 CodeLutin. All Rights Reserved.