Commit a2bcec8a authored by Poulet Camille's avatar Poulet Camille
Browse files

Merge remote-tracking branch 'origin/master' into Camille

Showing with 178 additions and 11 deletions
+178 -11
age=3:8
fecundity = function(age){
871.72*age +50916
}
cbind(age, fecundity(age), fecundity(age) -mean(fecundity(age)))
#
#===================================================
# masse des gonades, RGS
# ===================================================
# Taverny 1991
Wt=seq(1000, 3000, 200) # masse totale (g)
Gn = - 85.5634 + (Wt )*0.166 # masse de la gonade (g)
plot(Wt,Gn)
plot(Wt, Gn/Wt)
# ==================================================
# relation taille poinds
# =================================================
LtJuv=30:150 # mm
LtGen=400:800 #mm
Minho = function(Lt){
# formule avec Lt en cm
return(0.0221 * (Lt/10)^2.8147)
}
GirondeJuvenile = function(Lt){
# pour année 1985
exp(-11.571) * Lt^2.9467
}
GirondeMale = function(Lt){
# Lt en mm
# pour l'année 1988 (livre p44)
2.4386e-6*Lt^3.2252
}
GirondeFemale = function(Lt){
# Lt en mm
# pour l'année 1988 (livre p44)
1.2102e-6*Lt^3.3429
}
# ========================================= PB
LoireMale = function(Lf){
# longueur fourche
5.5070e-3*Lf^3.114
}
LoireFemale = function(Lf){
# longueur fourche
7.2980e-3* Lf^3.019
}
SebouMale = function(Lt){
2.0705e-6*Lt^3.2587
}
SebouFemale = function(Lt){
8.2056e-7*Lt^3.4105
}
plot(LtJuv, GirondeJuvenile(LtJuv), type='l')
plot(LtGen, Minho(LtGen), type='l', col='black', ylim=c(0,5000), xlab ='total length (mm)', ylab = 'weight (g)')
lines(LtGen, GirondeMale(LtGen), col='green')
lines(LtGen, GirondeFemale(LtGen), col='green', lty=2)
lines(LtGen, SebouMale(LtGen), col='red')
lines(LtGen, SebouFemale(LtGen), col='red', lty=2)
lines(LtGen, LoireMale(LtGen), col='blue')
lines(LtGen, LoireFemale(LtGen), col='blue', lty=2)
legend('topleft', legend=c('Minho', 'Gironde Male', 'Gironde Female', 'Sebou Male', 'Sebou Female', 'Loire Male', 'Loire Female'),
lty=c(1,1,2, 1,2,1,2, 1,2),
col=c('black', 'green', 'green', 'red', 'red', 'blue', 'blue'))
plot(LtGen, LoireMale(LtGen), col='blue', type='l',xlab ='total length (mm)', ylab = 'weight (g)')
lines(LtGen, LoireFemale(LtGen), col='blue', lty=2)
points(506, LoireFemale(506), col='blue')
......@@ -101,6 +101,13 @@ public class DiadromousFish extends AquaNism<Basin, BasinNetwork> {
return birthBasin;
}
/**
* @return the gender
*/
public Gender getGender() {
return gender;
}
@Override
public <ANG extends AquaNismsGroup<?, BasinNetwork>> void moveTo(
Pilot pilot, Basin destination, ANG group) {
......
......@@ -39,8 +39,6 @@ public class DiadromousFishGroup extends AquaNismsGroup< DiadromousFish, BasinNe
public double linfVonBert = 60.;
public double dMaxDisp = 300.;
public double lFirstMaturity = 40.;
public double aLW = 0.02; // param�tre "a" de la relation taille/poids
public double bLW = 3.; // param�tre "b" de la relation taille/poids
public String fileNameInputForInitialObservation = "data/input/reality/Obs1900.csv";
public double centileForRange = 0.95;
......@@ -139,7 +137,7 @@ public class DiadromousFishGroup extends AquaNismsGroup< DiadromousFish, BasinNe
}
// charge kopt et temMinRep depuis le fichier de parametre. Sinon (parameterSetLine<=0), ce sont les
// valeur dasn le procoessus de reroduction qui sont utilis
// valeur dasn le procoessus de reroduction qui sont utilis
kOpt=Double.NaN;
tempMinRep =Double.NaN;
if (parameterSetLine>0){
......@@ -269,14 +267,6 @@ public class DiadromousFishGroup extends AquaNismsGroup< DiadromousFish, BasinNe
this.lFirstMaturity = lFirstMaturity;
}
public double getaLW() {
return aLW;
}
public double getbLW() {
return bLW;
}
@Observable(description="Higher Populated Latitude")
public double getHigherPopulatedLatitude() {
......
/**
* patrick.lambert
* @author Patrick Lambert
* @copyright Copyright (c) 2018, Irstea
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* 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.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package species;
import species.DiadromousFish.Gender;
import species.DiadromousFish.Stage;
/**
*
*/
public class FishNutrient {
private double aLWfemalePre = 0.0221; // param�tre "a" de la relation taille/poids avec Lt en cm
private double bLWfemalePre = 2.8147; // param�tre "b" de la relation taille/poids
private double GSIfemalePre =.15;
private double aLWmalePre = 0.0221; // param�tre "a" de la relation taille/poids avec Lt en cm
private double bLWmalePre = 2.8147; // param�tre "b" de la relation taille/poids
private double GSImalePre =.07;
// Si on ne possède pas wT post reproduction
private double aLWfemalePost = 0.; // param�tre "a" de la relation taille/poids avec Lt en cm
private double bLWfemalePost = 0.; // param�tre "b" de la relation taille/poids
private double GSIfemalePost=0.;
private double aLWmalePost = 0.; // param�tre "a" de la relation taille/poids avec Lt en cm
private double bLWmalePost = 0.; // param�tre "b" de la relation taille/poids
private double GSImalePost =.07;
//Valeurs de Haskell pour A. sapidissima -- A rechercher pour Alosa alosa
private double compoNpreMale = 2.921;
private double compoPpreMale = 0.662;
private double compoNpreFemale = 2.917;
private double compoPpreFemale = 0.725;
private double compoNpostMale = 2.790 ;
private double compoPpostMale = 0.961;
private double compoNpostFemale = 3.216 ;
private double compoPpostFemale = 0.997;
/**
*
*/
public FishNutrient() {
// TODO Auto-generated constructor stub
}
public void computeNP(DiadromousFish fish) {
double totalWeightPre, totalWeightPost;
if (fish.getStage() == Stage.MATURE) {
if (fish.getGender() == Gender.FEMALE ) {
totalWeightPre = aLWfemalePre * Math.pow(fish.getLength(), bLWfemalePre);
totalWeightPost = aLWfemalePost * Math.pow(fish.getLength(), bLWfemalePost);
// totalWeightPost = totalWeightPre * GSIfemalePre;
}
else if (fish.getGender() == Gender.MALE) {
totalWeightPre = aLWmalePre * Math.pow(fish.getLength(), bLWmalePre);
totalWeightPost = aLWmalePost * Math.pow(fish.getLength(), bLWmalePost);
// totalWeightPost = totalWeightPre * GSImalePre;
}
else {
totalWeightPre = Double.NaN;
totalWeightPost = 0.;
}
}
}
}
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment