Commit da1ae11a authored by Dumoulin Nicolas's avatar Dumoulin Nicolas
Browse files

initial version

parents
.classpath
.settings
.project
target
File added
install.packages("pls")
install.packages("plsdepot")
install.packages("plsRglm")
library("plsRglm", lib.loc="C:/Program Files/R/R-2.15.3/library")
setwd("D://workspace/StockedDiad/R")
library(pls)
library(plsdepot)
mydata <- read.table("D://workspace/StockedDiad/data/output/stockedDiadOutput5final.txt", sep=",", header=TRUE)
mydata$recovery = mydata$wildActiveFemaleSpawner>5
mydata1=subset(mydata, mydata$lastFailInReproduction<49.25)
# output="geoMeanEffective"
output="lastFailInReproduction"
# output="meanWildActiveFemaleSpawner"
#output = "recovery"
boxplot(mydata[, output] ~ mydata$probabilityToBirthHabitat, xlab='prob to birth habitat', ylab=output)
boxplot(mydata[, output] ~ mydata$probabilityToBirthRiver, xlab='prob to birth river')
boxplot(mydata1[, output] ~ mydata1$releaseAmount, xlab='release amount')
mydata$femaleMeanAgeAtMaturation
table(mydata[, c("recovery","femaleMeanAgeAtMaturation" )])
table(mydata[, c("recovery","Mafter")])
pls2=plsr(lastFailInReproduction ~ M0_3months + M3_12months +
M1year+ Mafter +
femaleMeanAgeAtMaturation + femaleSdAgeAtMaturation +
fecundity +
femaleMeanInterSpawningInterval +
maleMeanAgeAtMaturation + maleSdAgeAtMaturation +
maleMeanInterSpawningInterval +
probabilityToBirthRiver + probabilityToBirthHabitat +
releaseAmount + sigmaRecruitment,
ncomp = 3, data = mydata1, method = "oscorespls")
summary(pls2)
vip2 = VIP(pls2)
### VIP.R: Implementation of VIP (variable importance in projection)(*) for the
### `pls' package.
### $Id: VIP.R,v 1.2 2007/07/30 09:17:36 bhm Exp $
### Copyright © 2006,2007 Bjørn-Helge Mevik
### This program is free software; you can redistribute it and/or modify
### it under the terms of the GNU General Public License version 2 as
### published by the Free Software Foundation.
###
### This program is distributed in the hope that it will be useful,
### but WITHOUT ANY WARRANTY; without even the implied warranty of
### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
### GNU General Public License for more details.
### A copy of the GPL text is available here:
### http://www.gnu.org/licenses/gpl-2.0.txt
### Contact info:
### Bjørn-Helge Mevik
### bhx6@mevik.net
### Rødtvetvien 20
### N-0955 Oslo
### Norway
### (*) As described in Chong, Il-Gyo & Jun, Chi-Hyuck, 2005, Performance of
### some variable selection methods when multicollinearity is present,
### Chemometrics and Intelligent Laboratory Systems 78, 103--112.
## VIP returns all VIP values for all variables and all number of components,
## as a ncomp x nvars matrix.
VIP <- function(object) {
if (object$method != "oscorespls")
stop("Only implemented for orthogonal scores algorithm. Refit with 'method = \"oscorespls\"'")
if (nrow(object$Yloadings) > 1)
stop("Only implemented for single-response models")
SS <- c(object$Yloadings)^2 * colSums(object$scores^2)
Wnorm2 <- colSums(object$loading.weights^2)
SSW <- sweep(object$loading.weights^2, 2, SS / Wnorm2, "*")
sqrt(nrow(SSW) * apply(SSW, 1, cumsum) / cumsum(SS))
}
## VIPjh returns the VIP of variable j with h components
VIPjh <- function(object, j, h) {
if (object$method != "oscorespls")
stop("Only implemented for orthogonal scores algorithm. Refit with 'method = \"oscorespls\"'")
if (nrow(object$Yloadings) > 1)
stop("Only implemented for single-response models")
b <- c(object$Yloadings)[1:h]
T <- object$scores[,1:h, drop = FALSE]
SS <- b^2 * colSums(T^2)
W <- object$loading.weights[,1:h, drop = FALSE]
Wnorm2 <- colSums(W^2)
sqrt(nrow(W) * sum(SS * W[j,]^2 / Wnorm2) / sum(SS))
}
pls2=plsr(lastFailInReproduction ~ M0_3months + M3_12months +
M1year+ Mafter +
femaleMeanAgeAtMaturation + femaleSdAgeAtMaturation +
fecundity +
femaleMeanInterSpawningInterval +
maleMeanAgeAtMaturation + maleSdAgeAtMaturation +
maleMeanInterSpawningInterval +
probabilityToBirthRiver + probabilityToBirthHabitat +
releaseAmount + sigmaRecruitment,
ncomp = 3, data = mydata1, method = "oscorespls")
summary(pls2)
vip2 = VIP(pls2)
VIP(pls2)
name(vip2[1, order(vip2[1,], decreasing = TRUE)])
names(vip2[1, order(vip2[1,], decreasing = TRUE)])
summary(pls2)
fix(pls2)
vip = VIP(pls1)
pls1=plsr(lastFailInReproduction ~ as.factor(M0_3months)+as.factor(M3_12months)+
as.factor(M1year)+ as.factor(Mafter)+
as.factor(femaleMeanAgeAtMaturation) + as.factor(femaleSdAgeAtMaturation) +
as.factor(fecundity)+
as.factor(femaleMeanInterSpawningInterval) +
as.factor(maleMeanAgeAtMaturation) + as.factor(maleSdAgeAtMaturation) +
as.factor(maleMeanInterSpawningInterval)+
as.factor(probabilityToBirthRiver)+ as.factor(probabilityToBirthHabitat) +
as.factor(releaseAmount) + as.factor(sigmaRecruitment),
ncomp = 3, data = mydata1, method = "oscorespls")
summary(pls1)
pls2=plsr(lastFailInReproduction ~ M0_3months + M3_12months +
M1year+ Mafter +
femaleMeanAgeAtMaturation + femaleSdAgeAtMaturation +
fecundity +
femaleMeanInterSpawningInterval +
maleMeanAgeAtMaturation + maleSdAgeAtMaturation +
maleMeanInterSpawningInterval +
probabilityToBirthRiver + probabilityToBirthHabitat +
releaseAmount + sigmaRecruitment,
ncomp = 3, data = mydata1, method = "oscorespls")
summary(pls2)
vip2 = VIP(pls2)
VIPij(pls2,5,5)
VIPjh(pls2,5,5)
VIPjh(pls2,1,5)
VIPjh(pls2,1,3)
VIP(pls2)
2^12
plot(RMSEP(pls2))
pls2=plsr(lastFailInReproduction ~ M0_3months + M3_12months +
M1year+ Mafter +
femaleMeanAgeAtMaturation + femaleSdAgeAtMaturation +
fecundity +
femaleMeanInterSpawningInterval +
maleMeanAgeAtMaturation + maleSdAgeAtMaturation +
maleMeanInterSpawningInterval +
probabilityToBirthRiver + probabilityToBirthHabitat +
releaseAmount + sigmaRecruitment,
ncomp = 10, data = mydata1, method = "oscorespls")
summary(pls2)
plot(RMSEP(pls2))
RMSEP(pls2)
explvar(pls2)
pls2$loading.weights
pls2$Yloadings
VIP(pls2)
barplot(vip2[1, order(vip2[1,], decreasing = TRUE)])
pls1=plsr(lastFailInReproduction ~ as.factor(M0_3months)+as.factor(M3_12months)+
as.factor(M1year)+ as.factor(Mafter)+
as.factor(femaleMeanAgeAtMaturation) + as.factor(femaleSdAgeAtMaturation) +
as.factor(fecundity)+
as.factor(femaleMeanInterSpawningInterval) +
as.factor(maleMeanAgeAtMaturation) + as.factor(maleSdAgeAtMaturation) +
as.factor(maleMeanInterSpawningInterval)+
as.factor(probabilityToBirthRiver)+ as.factor(probabilityToBirthHabitat) +
as.factor(releaseAmount) + as.factor(sigmaRecruitment),
ncomp = 10, data = mydata1, method = "oscorespls")
summary(pls1)
vip = VIP(pls1)
barplot(vip[1,order(vip[1,])])
barplot(vip[1,order(vip[1,], decreasing = TRUE)])
pls2=plsr(lastFailInReproduction ~ M0_3months + M3_12months +
M1year+ Mafter +
femaleMeanAgeAtMaturation + femaleSdAgeAtMaturation +
fecundity +
femaleMeanInterSpawningInterval +
maleMeanAgeAtMaturation + maleSdAgeAtMaturation +
maleMeanInterSpawningInterval +
probabilityToBirthRiver + probabilityToBirthHabitat +
releaseAmount + sigmaRecruitment,
ncomp = 10, data = mydata1, method = "oscorespls")
pls2=plsr(lastFailInReproduction ~ M0_3months + M3_12months +
M1year+ Mafter +
femaleMeanAgeAtMaturation + femaleSdAgeAtMaturation +
fecundity +
femaleMeanInterSpawningInterval +
maleMeanAgeAtMaturation + maleSdAgeAtMaturation +
maleMeanInterSpawningInterval +
probabilityToBirthRiver + probabilityToBirthHabitat +
releaseAmount + sigmaRecruitment,
ncomp = 10, data = mydata1, method = "oscorespls", model=TRUE)
pls2$model
pls2=plsr(lastFailInReproduction ~ M0_3months + M3_12months +
M1year+ Mafter +
femaleMeanAgeAtMaturation + femaleSdAgeAtMaturation +
fecundity +
femaleMeanInterSpawningInterval +
maleMeanAgeAtMaturation + maleSdAgeAtMaturation +
maleMeanInterSpawningInterval +
probabilityToBirthRiver + probabilityToBirthHabitat +
releaseAmount + sigmaRecruitment,
ncomp = 10, data = mydata1, method = "oscorespls", model=TRUE, validation ="CV")
summary(pls2)
### VIP.R: Implementation of VIP (variable importance in projection)(*) for the
### `pls' package.
### $Id: VIP.R,v 1.2 2007/07/30 09:17:36 bhm Exp $
### Copyright 2006,2007 Bjrn-Helge Mevik
### This program is free software; you can redistribute it and/or modify
### it under the terms of the GNU General Public License version 2 as
### published by the Free Software Foundation.
###
### This program is distributed in the hope that it will be useful,
### but WITHOUT ANY WARRANTY; without even the implied warranty of
### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
### GNU General Public License for more details.
### A copy of the GPL text is available here:
### http://www.gnu.org/licenses/gpl-2.0.txt
### Contact info:
### Bjrn-Helge Mevik
### bhx6@mevik.net
### Rdtvetvien 20
### N-0955 Oslo
### Norway
### (*) As described in Chong, Il-Gyo & Jun, Chi-Hyuck, 2005, Performance of
### some variable selection methods when multicollinearity is present,
### Chemometrics and Intelligent Laboratory Systems 78, 103--112.
## VIP returns all VIP values for all variables and all number of components,
## as a ncomp x nvars matrix.
VIP <- function(object) {
if (object$method != "oscorespls")
stop("Only implemented for orthogonal scores algorithm. Refit with 'method = \"oscorespls\"'")
if (nrow(object$Yloadings) > 1)
stop("Only implemented for single-response models")
SS <- c(object$Yloadings)^2 * colSums(object$scores^2)
Wnorm2 <- colSums(object$loading.weights^2)
SSW <- sweep(object$loading.weights^2, 2, SS / Wnorm2, "*")
sqrt(nrow(SSW) * apply(SSW, 1, cumsum) / cumsum(SS))
}
## VIPjh returns the VIP of variable j with h components
VIPjh <- function(object, j, h) {
if (object$method != "oscorespls")
stop("Only implemented for orthogonal scores algorithm. Refit with 'method = \"oscorespls\"'")
if (nrow(object$Yloadings) > 1)
stop("Only implemented for single-response models")
b <- c(object$Yloadings)[1:h]
T <- object$scores[,1:h, drop = FALSE]
SS <- b^2 * colSums(T^2)
W <- object$loading.weights[,1:h, drop = FALSE]
Wnorm2 <- colSums(W^2)
sqrt(nrow(W) * sum(SS * W[j,]^2 / Wnorm2) / sum(SS))
}
setwd("D://workspace/StockedDiad/R")
library(pls)
library(plsdepot)
mydata <- read.table("D://workspace/StockedDiad/data/output/stockedDiadOutput5final.txt", sep=",", header=TRUE)
mydata$recovery = mydata$wildActiveFemaleSpawner>5
mydata1=subset(mydata, mydata$lastFailInReproduction<49.25)
# output="geoMeanEffective"
output="lastFailInReproduction"
# output="meanWildActiveFemaleSpawner"
#output = "recovery"
boxplot(mydata[, output] ~ mydata$probabilityToBirthHabitat, xlab='prob to birth habitat', ylab=output)
boxplot(mydata[, output] ~ mydata$probabilityToBirthRiver, xlab='prob to birth river')
boxplot(mydata1[, output] ~ mydata1$releaseAmount, xlab='release amount')
mydata$Mafter
table(mydata[, c("recovery","femaleMeanAgeAtMaturation" )])
table(mydata[, c("recovery","Mafter")])
# ======================================================================================
# pls avec pls
summary(glm(as.formula(paste(output,"~ as.factor(probabilityToBirthHabitat) + as.factor(probabilityToBirthRiver)", sep="")), data=mydata))
pls1=plsr(lastFailInReproduction ~ as.factor(M0_3months)+as.factor(M3_12months)+
as.factor(M1year)+ as.factor(Mafter)+
as.factor(femaleMeanAgeAtMaturation) + as.factor(femaleSdAgeAtMaturation) +
as.factor(fecundity)+
as.factor(femaleMeanInterSpawningInterval) +
as.factor(maleMeanAgeAtMaturation) + as.factor(maleSdAgeAtMaturation) +
as.factor(maleMeanInterSpawningInterval)+
as.factor(probabilityToBirthRiver)+ as.factor(probabilityToBirthHabitat) +
as.factor(releaseAmount) + as.factor(sigmaRecruitment),
ncomp = 10, data = mydata1, method = "oscorespls")
summary(pls1)
vip = VIP(pls1)
barplot(vip[1,order(vip[1,], decreasing = TRUE)])
plot(pls1)
rm(pls2)
pls2=plsr(lastFailInReproduction ~ M0_3months + M3_12months +
M1year+ Mafter +
femaleMeanAgeAtMaturation + femaleSdAgeAtMaturation +
fecundity +
femaleMeanInterSpawningInterval +
maleMeanAgeAtMaturation + maleSdAgeAtMaturation +
maleMeanInterSpawningInterval +
probabilityToBirthRiver + probabilityToBirthHabitat +
releaseAmount + sigmaRecruitment,
ncomp = 10, data = mydata1, method = "oscorespls", model=TRUE, validation ="CV")
pls2$model
summary(pls2)
plot(RMSEP(pls2))
explvar(pls2)
RMSEP(pls2)
pls2$loading.weights
pls2$Yloadings
VIP(pls2)
VIPjh(pls2,1,4)
names(vip2[1,])
names(vip2[1,])
barplot(vip2[1, order(vip2[1,], decreasing = TRUE)])
names(vip2[1, order(vip2[1,], decreasing = TRUE)])
vip2[1,]
vip2[1,order(vip2[1,])]
# ===============================================================================
# pls avec plsdepot
sum(mydata$lastFailInReproduction<49.25)
hist(mydata1$lastFailInReproduction)
Xvariable = c("M0_3months", "M3_12months", "M1year", "Mafter",
"femaleMeanAgeAtMaturation", "femaleSdAgeAtMaturation", "fecundity",
"femaleMeanInterSpawningInterval",
"maleMeanAgeAtMaturation", "maleSdAgeAtMaturation", "maleMeanInterSpawningInterval",
"probabilityToBirthRiver", "probabilityToBirthHabitat",
"releaseAmount", "sigmaRecruitment" )
myplsreg1 = plsreg1(mydata1[,Xvariable], mydata1$lastFailInReproduction, comps=3)
myplsreg1$x.loads
myplsreg1$R2Xy
myplsreg2$
myplsreg1$R2
myplsreg1$R2Xy
head(myplsreg1$T2)
summary(myplsreg1)
plot(myplsreg1)
plot(mydata1$lastFailInReproduction, myplsreg1$y.pred, xlab = "Original",
ylab = "Predicted")
data(oliveoil)
\ No newline at end of file
<environment.HabitatNetwork>
<habitatNetworkFileName>data/input/GirondeSturgeon.csv</habitatNetworkFileName>
</environment.HabitatNetwork>
\ No newline at end of file
Id;Name;xLambertIIetendu;yLambertIIetendu;Latitude;Longitude;SuitableSurface (m2);Function;IdDownstream;DistanceToDownstream;River;EmbryonicSurvival;DistanceToSea (km);Mud;TidalZone;Depth (m);Discharge (m3/s)
0;Atlantic;339109.355;2057377.029;45.46695;-1;1200000;OCEAN_GROWTH;-1;0;ocean;1;0;0;1;?;?
1;Gironde;367589.741;2031946.007;45.24861667;-0.623883333;600000;ESTUARINE_GROWTH;0;20;estuary;1;20;1;1;?;?
2;Garonne downstream;369381.997;1986174.324;44.83778333;-0.57945;300000;RIVER_GROWTH;1;60;Garonne;1;80;1;1;?;?
3;Beautiran;380042.291;1971445.512;44.70886667;-0.4382;110000;SPAWNING;2;45;Garonne;0.1;125;1;1;8;262
4;Violle;390585.195;1960644.829;44.61505;-0.300733333;76000;SPAWNING;3;23;Garonne;0.683116883;148;0;1;6;262
5;Caudrot;403341.073;1956018.941;44.5772;-0.138366667;90000;SPAWNING;4;13;Garonne;0.716883117;161;0;1;13;?
6;La Reole;412025.607;1956042.463;44.57981667;-0.02915;14000;SPAWNING;5;8;Garonne;0.737662338;169;0;0;11;249
7;Meilhan;417458.72;1949158.462;44.51938333;0.041716667;90000;SPAWNING;6;13;Garonne;0.771428571;182;0;0;15.5;293
8;Couthures;420595.532;1948592.962;44.51511667;0.081333333;18000;SPAWNING;7;8;Garonne;0.792207792;190;0;0;18;293
9;Marmande;426346.207;1946925.025;44.50158333;0.154166667;146000;SPAWNING;8;6;Garonne;0.807792208;196;0;0;13;295
10;Caumont;427569.449;1940902.704;44.44775;0.171616667;5000;SPAWNING;9;9;Garonne;0.831168831;205;0;0;5.5;285
11;Lagruere;432837.629;1935915.192;44.4042;0.2394;45000;SPAWNING;10;8;Garonne;0.851948052;213;0;0;7.5;277
12;Saint Caprais;434746.378;1937028.846;44.41466667;0.262966667;7000;SPAWNING;11;3;Garonne;0.85974026;216;0;0;8;222
13;Tonneis;438737.08;1933837.893;44.38691667;0.31405;3000;SPAWNING;12;7;Garonne;0.877922078;223;0;0;8.5;222
14;Nicole;440166.745;1926920.983;44.32506667;0.334183333;30000;SPAWNING;13;9;Garonne;0.901298701;232;0;0;12;121
15;Port Sainte Marie;445324.941;1918424.3;44.24985;0.4014;7750;SPAWNING;14;16;Garonne;0.942857143;248;0;0;8;121
16;Fourtic;449492.356;1917142.965;44.239242;0.453903;15000;SPAWNING;15;4;Garonne;0.953246753;252;0;0;10;365
17;Beauregard;462218.446;1909978.975;44.17746667;0.615;2500;SPAWNING;16;18;Garonne;1;270;0;0;4;147
100;Dordogne dowstream;379294.036;1999238.249;44.958451;-0.460103;300000;RIVER_GROWTH;1;50;Dordogne;1;70;1;1;?;?
101;Arveyres;393136.228;1991606.419;44.89413333;-0.281616667;150000;SPAWNING;100;46;Dordogne;0.1;116;1;1;9;135
102;Genissac;396859.702;1989855.673;44.8795;-0.2338;64000;SPAWNING;101;13;Dordogne;0.1;129;1;1;11;139
103;Saint Jean de Blaignac;404346.775;1982453.568;44.81511667;-0.136183333;36000;SPAWNING;102;19;Dordogne;0.1;148;1;1;6;139
104;La Mothe Montravel;416605.703;1986000.668;44.85036667;0.017333333;16000;SPAWNING;103;14.5;Dordogne;1;162.5;0;1;7.5;105
105;Pessac sur Dordogne;420719.247;1982638.361;44.82121667;0.07055;21000;SPAWNING;104;6.5;Dordogne;1;169;0;1;10;48.5
106;Le Gambul;423526.062;1983959.498;44.83381667;0.105533333;24000;SPAWNING;105;3.5;Dordogne;1;172.5;0;0;10.5;?
107;Beaupoil;423878.671;1982531.365;44.82106667;0.1105;6400;SPAWNING;106;1.5;Dordogne;1;174;0;0;10.6;163
108;Saint Aulaye;424959.986;1983355.401;44.82875;0.123866667;6000;SPAWNING;107;1.5;Dordogne;1;175.5;0;0;8.5;163
109;Pont de Beauze;434151.021;1987882.004;44.87171667;0.238466667;11000;SPAWNING;108;6.5;Dordogne;1;182;0;0;7;141
110;Le Fleix;434100.314;1987957.505;44.87238333;0.2378;10000;SPAWNING;109;6;Dordogne;1;188;0;0;7;141
111;Saint Martin;442951.904;1985601.092;44.85326667;0.350483333;23000;SPAWNING;110;12;Dordogne;1;200;0;0;9;67
112;Bergerac;450808.424;1984612.197;44.84611667;0.4501;5000;SPAWNING;111;11;Dordogne;1;211;0;0;4;54
<hashtable>
<entry>
<java-class>fr.cemagref.simaqualife.kernel.AquaticWorld</java-class>
<fr.cemagref.observation.kernel.ObservablesHandler>
<observers>
<environment.HabitatNetworkObserver>
<title>Habitat Network 1</title>
</environment.HabitatNetworkObserver>
</observers>
</fr.cemagref.observation.kernel.ObservablesHandler>
</entry>
<entry>
<java-class>species.DiadromousFishGroup</java-class>
<fr.cemagref.observation.kernel.ObservablesHandler>
<observers>
<fr.cemagref.observation.observers.jfreechart.TemporalSerieChart>
<graphType>LINE</graphType>
<title>Total Abundance</title>
<xAxisLabel>Time (season)</xAxisLabel>
<yAxisLabel>number of fish</yAxisLabel>
<variableName>getFishEffective</variableName>
</fr.cemagref.observation.observers.jfreechart.TemporalSerieChart>
<fr.cemagref.observation.observers.jfreechart.TemporalSerieChart>
<graphType>LINE</graphType>
<title>Female spawner in ocean</title>
<xAxisLabel>Time (season)</xAxisLabel>
<yAxisLabel>number of fish</yAxisLabel>
<variableName>getFemaleSpawnerInOceanEffective</variableName>
</fr.cemagref.observation.observers.jfreechart.TemporalSerieChart>
<fr.cemagref.observation.observers.jfreechart.TemporalSerieChart>
<graphType>LINE</graphType>
<title>Evolution of Super Individuals</title>
<xAxisLabel>Time (season)</xAxisLabel>
<yAxisLabel>number of SI</yAxisLabel>
<variableName>getNbSI</variableName>
</fr.cemagref.observation.observers.jfreechart.TemporalSerieChart>
<observer.MyCSVObserver>
<separator>;</separator>
<sysout>false</sysout>
<outputFile>data/output/totalAbundance.csv</outputFile>
<observables>
<string>getNbSI</string>
<string>getFishEffective</string>
<string>getFemaleEffective</string>
</observables>
</observer.MyCSVObserver>
</observers>
</fr.cemagref.observation.kernel.ObservablesHandler>
</entry>
<entry>
<java-class>species.Reproduce</java-class>
<fr.cemagref.observation.kernel.ObservablesHandler>
<observers>
<fr.cemagref.observation.observers.jfreechart.TemporalSerieChart>
<graphType>POINT</graphType>
<title>Evolution of active female spawners</title>
<xAxisLabel>Time (season)</xAxisLabel>
<yAxisLabel>number of fish </yAxisLabel>
<variableName>nbActiveFemaleSpawner</variableName>
</fr.cemagref.observation.observers.jfreechart.TemporalSerieChart>
<fr.cemagref.observation.observers.jfreechart.TemporalSerieChart>
<graphType>POINT</graphType>
<title>Evolution of wild active female spawners</title>
<xAxisLabel>Time (season)</xAxisLabel>
<yAxisLabel>number of fish </yAxisLabel>
<variableName>nbWildActiveFemaleSpawner</variableName>
</fr.cemagref.observation.observers.jfreechart.TemporalSerieChart>
<fr.cemagref.observation.observers.jfreechart.TemporalSerieChart>
<graphType>POINT</graphType>
<title>Evolution of wild active female spawners mean number</title>
<xAxisLabel>Time (season)</xAxisLabel>
<yAxisLabel>number of fish </yAxisLabel>
<variableName>getMeanLastWildActiveFemaleSpawnerNumber
</variableName>
</fr.cemagref.observation.observers.jfreechart.TemporalSerieChart>
<fr.cemagref.observation.observers.jfreechart.TemporalSerieChart>
<graphType>POINT</graphType>
<title>Evolution of reproduction number</title>
<xAxisLabel>Time (season)</xAxisLabel>
<yAxisLabel></yAxisLabel>
<variableName>reproductionNumber</variableName>
</fr.cemagref.observation.observers.jfreechart.TemporalSerieChart>
<fr.cemagref.observation.observers.jfreechart.TemporalSerieChart>
<graphType>POINT</graphType>
<title>Evolution of time of last fail of wild reproduction</title>
<xAxisLabel>Time (season)</xAxisLabel>
<yAxisLabel>year</yAxisLabel>
<variableName>timeOfLastFemaleNumberFail</variableName>
</fr.cemagref.observation.observers.jfreechart.TemporalSerieChart>
<fr.cemagref.observation.observers.jfreechart.TemporalSerieChart>
<graphType>POINT</graphType>
<title>Evolution of active male spawners</title>
<xAxisLabel>Time (season)</xAxisLabel>
<yAxisLabel>number of fish </yAxisLabel>
<variableName>nbActiveMaleSpawner</variableName>
</fr.cemagref.observation.observers.jfreechart.TemporalSerieChart>
<fr.cemagref.observation.observers.jfreechart.TemporalSerieChart>
<graphType>POINT</graphType>
<title>Evolution of recruit</title>
<xAxisLabel>Time (season)</xAxisLabel>
<yAxisLabel>number of fish </yAxisLabel>
<variableName>nbTotalRecruit</variableName>
</fr.cemagref.observation.observers.jfreechart.TemporalSerieChart>
<fr.cemagref.observation.observers.jfreechart.TemporalSerieChart>
<graphType>POINT</graphType>
<title>Evolution of SI per reproduction</title>
<xAxisLabel>Time (season)</xAxisLabel>
<yAxisLabel>number of SI </yAxisLabel>
<variableName>nbSIPerRepro</variableName>
</fr.cemagref.observation.observers.jfreechart.TemporalSerieChart>
</observers>
</fr.cemagref.observation.kernel.ObservablesHandler>
</entry>
<entry>
<java-class>species.SurveyByScientist</java-class>
<fr.cemagref.observation.kernel.ObservablesHandler>
<observers>
<fr.cemagref.observation.observers.jfreechart.TemporalSerieChart>
<graphType>LINE</graphType>
<title>Evolution of fish number</title>
<xAxisLabel>Time (season)</xAxisLabel>
<yAxisLabel>number of fish </yAxisLabel>
<variableName>getGeometricMeanFisnNumber</variableName>
</fr.cemagref.observation.observers.jfreechart.TemporalSerieChart>
</observers>
</fr.cemagref.observation.kernel.ObservablesHandler>
</entry>
</hashtable>
\ No newline at end of file
<list>
<species.DiadromousFishGroup>
<defaultAmountInSuperIndividual>200000</defaultAmountInSuperIndividual>
<processes>
<processesAtBegin>
</processesAtBegin>
<processesEachStep>
<species.MigrateToRiverGrowth>
<synchronisationMode>ASYNCHRONOUS</synchronisationMode>
<ageThresholdForRiverMigration>0.25</ageThresholdForRiverMigration>
<migrationToRiverGrowthSeason>AUTOMN</migrationToRiverGrowthSeason>
</species.MigrateToRiverGrowth>
<species.MigrateToEstuarineGrowth>
<synchronisationMode>ASYNCHRONOUS</synchronisationMode>
<meanAgeAtEstuarineMigration>1.5</meanAgeAtEstuarineMigration>
<sdAgeAtEstuarineMigration>0.2</sdAgeAtEstuarineMigration>
<moveWithSplit>false</moveWithSplit>
<moveWithMerge>true</moveWithMerge>
</species.MigrateToEstuarineGrowth>
<species.MigrateToOceanGrowth>
<synchronisationMode>ASYNCHRONOUS</synchronisationMode>
<meanAgeAtOceanMigration>5.0</meanAgeAtOceanMigration>
<sdAgeAtOceanMigration>1.0</sdAgeAtOceanMigration>
<moveWithSplit>false</moveWithSplit>
<moveWithMerge>true</moveWithMerge>
</species.MigrateToOceanGrowth>
<species.MatureWithTruncatedDistribution>
<synchronisationMode>ASYNCHRONOUS</synchronisationMode>
<maturationSeason>SPRING</maturationSeason>
<probTruncature>0.01</probTruncature>
<femaleMeanAgeAtMaturation>16.4</femaleMeanAgeAtMaturation>
<femaleSdAgeAtMaturation>2.7</femaleSdAgeAtMaturation>
<femaleMeanInterSpawningInterval>4.0
</femaleMeanInterSpawningInterval>
<maleMeanAgeAtMaturation>8.0</maleMeanAgeAtMaturation>
<maleSdAgeAtMaturation>1.4</maleSdAgeAtMaturation>
<maleMeanInterSpawningInterval>1.5</maleMeanInterSpawningInterval>
</species.MatureWithTruncatedDistribution>
<species.MigrateToSpawn>
<synchronisationMode>ASYNCHRONOUS</synchronisationMode>
<reproductionMigrationSeason>SPRING</reproductionMigrationSeason>
<probabilityToBirthHabitat>0.90</probabilityToBirthHabitat>
<probabilityToBirthRiver>0.</probabilityToBirthRiver>
</species.MigrateToSpawn>
<species.Reproduce>
<synchronisationMode>ASYNCHRONOUS</synchronisationMode>
<reproductionSeason>SPRING</reproductionSeason>
<maximumRecruitmentDensity>400.0</maximumRecruitmentDensity>
<fecundity>200000.0</fecundity>
<alleeOffset>0</alleeOffset>
<proportionOfFemale>0.5</proportionOfFemale>
<cvRecruitment>0.25</cvRecruitment>
<memorySize>10</memorySize>
<femaleThreshold>1</femaleThreshold>
<stopCriterion>100</stopCriterion>
<addDifferent>true</addDifferent>
</species.Reproduce>
<species.MigrateBackToOcean>
<synchronisationMode>ASYNCHRONOUS</synchronisationMode>
<backToOceanMigrationSeason>SUMMER</backToOceanMigrationSeason>