Skip to content

Commit

Permalink
Merge commit '13323e7372a86d8e7f95e6bac0f5c96463990444'
Browse files Browse the repository at this point in the history
  • Loading branch information
ftomei committed Jan 28, 2025
2 parents 7980eda + 13323e7 commit 0154be6
Show file tree
Hide file tree
Showing 7 changed files with 832 additions and 1,066 deletions.
5 changes: 4 additions & 1 deletion agrolib/hydrall/hydrall.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,15 +51,18 @@ double getCO2(Crit3DDate myDate, double myTemperature, double myElevation)
double year[24] = {1750,1800,1850,1900,1910,1920,1930,1940,1950,1960,1970,1980,1990,2000,2010,2020,2030,2040,2050,2060,2070,2080,2090,2100};
double valueCO2[24] = {278,283,285,296,300,303,307,310,311,317,325,339,354,369,389,413,443,473,503,530,550,565,570,575};

interpolation::linearInterpolation(double(myDate.year), year, valueCO2, 24);

// exponential fitting Mauna Loa
if (myDate.year < 1990)
/*if (myDate.year < 1990)
{
atmCO2= 280 * exp(0.0014876*(myDate.year -1840));//exponential change in CO2 concentration (ppm)
}
else
{
atmCO2= 353 * exp(0.00630*(myDate.year - 1990));
}
*/
atmCO2 += 3*cos(2*PI*getDoyFromDate(myDate)/365.0); // to consider the seasonal effects
return atmCO2*getPressureFromElevation(myTemperature, myElevation)/1000000 ; // [Pa] in +- ppm/10
}
Expand Down
6 changes: 3 additions & 3 deletions agrolib/interpolation/interpolation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1910,10 +1910,10 @@ bool multipleDetrendingElevationFitting(int elevationPos, std::vector <Crit3DInt
// multiple non linear fitting
double R2 = NODATA;
if (isWeighted)
R2 = interpolation::bestFittingMarquardt_nDimension_singleFunction(*(myFunc.target<double(*)(double, std::vector<double>&)>()), 4, parametersMin, parametersMax, parameters, parametersDelta,
R2 = interpolation::bestFittingMarquardt_nDimension(*(myFunc.target<double(*)(double, std::vector<double>&)>()), 4, parametersMin, parametersMax, parameters, parametersDelta,
1000, 0.002, 0.005, predictors, predictands, weights,firstGuessCombinations);
else
R2 = interpolation::bestFittingMarquardt_nDimension_singleFunction(*(myFunc.target<double(*)(double, std::vector<double>&)>()), 4, parametersMin, parametersMax, parameters, parametersDelta,
R2 = interpolation::bestFittingMarquardt_nDimension(*(myFunc.target<double(*)(double, std::vector<double>&)>()), 4, parametersMin, parametersMax, parameters, parametersDelta,
1000, 0.002, 0.005, predictors, predictands,firstGuessCombinations);

mySettings->getProxy(elevationPos)->setRegressionR2(float(R2));
Expand Down Expand Up @@ -2125,7 +2125,7 @@ bool multipleDetrendingOtherProxiesFitting(int elevationPos, std::vector <Crit3D


// multilinear fitting
interpolation::bestFittingMarquardt_nDimension_clean(&functionSum, myFunc, parametersMin, parametersMax, parameters, parametersDelta,
interpolation::bestFittingMarquardt_nDimension(&functionSum, myFunc, parametersMin, parametersMax, parameters, parametersDelta,
100, 0.005, predictors, predictands, weights);


Expand Down
Loading

0 comments on commit 0154be6

Please sign in to comment.