aw6355: undo this new solution...

This commit is contained in:
2024-09-02 09:28:40 +02:00
parent c89607ebbc
commit 9e11b5e845

View File

@@ -225,18 +225,6 @@ namespace FarmMapsAPI.Carbon
{ {
var knmiFile = Helper.GetPlatformIndependentDirectoryPath(Path.Combine(configPath, "KNMI_data.csv")); var knmiFile = Helper.GetPlatformIndependentDirectoryPath(Path.Combine(configPath, "KNMI_data.csv"));
if (farmInput.CropFields[0].SoilProperty.OM_Choice == "c")
{
//carbon_organicmatter_factor = 1;
farmInput.CropFields[0].SoilProperty.C_Const = farmInput.CropFields[0].SoilProperty.OM_Const;
farmInput.CropFields[0].SoilProperty.OM_Const = 0;
}
else
{
farmInput.CropFields[0].SoilProperty.C_Const = farmInput.CropFields[0].SoilProperty.OM_Const * 0.54;
}
// soilTypeData (external input) // soilTypeData (external input)
var soilTypeData = GetSoilTypeData(farmInput); var soilTypeData = GetSoilTypeData(farmInput);
@@ -251,7 +239,6 @@ namespace FarmMapsAPI.Carbon
var year = GetYears(farmInputSet, farmInput); var year = GetYears(farmInputSet, farmInput);
//var carbon_organicmatter_factor = 0.54;
////////////////////////////////////////////// //////////////////////////////////////////////
// precalculations // precalculations
@@ -266,18 +253,14 @@ namespace FarmMapsAPI.Carbon
{ {
var soilProps = soilPropSoilType.Keys.Where(x => x.Item1 == item.Key).ToList(); var soilProps = soilPropSoilType.Keys.Where(x => x.Item1 == item.Key).ToList();
var sumCorr = 0.0; var sumCorr = 0.0;
var sumC_Corr = 0.0;
foreach (var soilProp in soilProps) foreach (var soilProp in soilProps)
{ {
sumCorr += soilPropSoilType[soilProp].OM_Corr; sumCorr += soilPropSoilType[soilProp].OM_Corr;
sumC_Corr += soilPropSoilType[soilProp].C_Corr;
} }
item.Value.OM_Corr = sumCorr; item.Value.OM_Corr = sumCorr;
item.Value.C_Corr = sumC_Corr;
} }
var oM_corr_SoilType = new Dictionary<(string, string), double>(); var oM_corr_SoilType = new Dictionary<(string, string), double>();
var C_corr_SoilType = new Dictionary<(string, string), double>();
foreach (var item in soilPropertiesField) foreach (var item in soilPropertiesField)
{ {
var soilOfItem = soilTypeData[item.Key].FirstOrDefault(); var soilOfItem = soilTypeData[item.Key].FirstOrDefault();
@@ -293,35 +276,25 @@ namespace FarmMapsAPI.Carbon
parameterSet.LayerDepth = item.Value.Depth.HasValue ? item.Value.Depth.Value : parameterSet.LayerDepth; parameterSet.LayerDepth = item.Value.Depth.HasValue ? item.Value.Depth.Value : parameterSet.LayerDepth;
if (initialSoil == "Temp_gras" && soilPropertyDepth10) if (initialSoil == "Temp_gras" && soilPropertyDepth10)
{ {
oM_corr_SoilType.Add((item.Key, soilOfItem), item.Value.OM_Cont * 0.97 * (1 / 0.54)); oM_corr_SoilType.Add((item.Key, soilOfItem), item.Value.OM_Cont * 0.97);
C_corr_SoilType.Add((item.Key, soilOfItem), item.Value.OM_Cont * 0.97);
} }
else if (cropSet.Grass_nat.Contains(initialSoil) && soilPropertyDepth10 && (soilOfItem == "Klei" || soilOfItem == "Zand")) else if (cropSet.Grass_nat.Contains(initialSoil) && soilPropertyDepth10 && (soilOfItem == "Klei" || soilOfItem == "Zand"))
{ {
if (soilOfItem == "Klei") if (soilOfItem == "Klei")
{ {
oM_corr_SoilType.Add((item.Key, soilOfItem), item.Value.OM_Cont * 0.67 * (1/0.54)); oM_corr_SoilType.Add((item.Key, soilOfItem), item.Value.OM_Cont * 0.67);
C_corr_SoilType.Add((item.Key, soilOfItem), item.Value.OM_Cont * 0.67);
} }
else else
{ {
oM_corr_SoilType.Add((item.Key, soilOfItem), item.Value.OM_Cont * 0.81 * (1 / 0.54)); oM_corr_SoilType.Add((item.Key, soilOfItem), item.Value.OM_Cont * 0.81);
C_corr_SoilType.Add((item.Key, soilOfItem), item.Value.OM_Cont * 0.81);
} }
} }
else else
{ {
oM_corr_SoilType.Add((item.Key, soilOfItem), item.Value.OM_Cont * (1 / 0.54)); oM_corr_SoilType.Add((item.Key, soilOfItem), item.Value.OM_Cont);
C_corr_SoilType.Add((item.Key, soilOfItem), item.Value.OM_Cont);
} }
} }
var C_Corr = new Dictionary<string, double>();
foreach (var item in C_corr_SoilType)
{
C_Corr.Add(item.Key.Item1, item.Value);
}
var oM_Corr = new Dictionary<string, double>(); var oM_Corr = new Dictionary<string, double>();
foreach (var item in oM_corr_SoilType) foreach (var item in oM_corr_SoilType)
{ {
@@ -926,8 +899,7 @@ namespace FarmMapsAPI.Carbon
foreach (var field in cropAreaField1.Where(x => x.Key.Item2 == loopYear)) foreach (var field in cropAreaField1.Where(x => x.Key.Item2 == loopYear))
{ {
var valueList = new List<ColumnValue>(); var valueList = new List<ColumnValue>();
//var result = parameterSet.LayerDepth * bulkDens[field.Key.Item1] * oM_Corr[field.Key.Item1];// * 0.54; //carbon_organicmatter_factor var result = parameterSet.LayerDepth * bulkDens[field.Key.Item1] * oM_Corr[field.Key.Item1] * 0.54; //carbon_organicmatter_factor
var result = parameterSet.LayerDepth * bulkDens[field.Key.Item1] * C_Corr[field.Key.Item1];// * 0.54; //carbon_organicmatter_factor
foreach (var crop in field.Value) foreach (var crop in field.Value)
{ {
valueList.Add(new ColumnValue(crop.Key, result)); valueList.Add(new ColumnValue(crop.Key, result));
@@ -1736,7 +1708,7 @@ namespace FarmMapsAPI.Carbon
var iniValue = item.Value.SingleOrDefault(x => x.Key == "IniCcontent")?.Value ?? 0; var iniValue = item.Value.SingleOrDefault(x => x.Key == "IniCcontent")?.Value ?? 0;
var balanceValue = item.Value.SingleOrDefault(x => x.Key == "Balance")?.Value ?? 0; var balanceValue = item.Value.SingleOrDefault(x => x.Key == "Balance")?.Value ?? 0;
var resultOmIni = iniValue;// / 0.54; //carbon_organicmatter_factor var resultOmIni = iniValue / 0.54; //carbon_organicmatter_factor
var resultCo2 = balanceValue * (44.0 / 12.0); var resultCo2 = balanceValue * (44.0 / 12.0);
item.Value.Add(new ColumnValue("OM_ini", resultOmIni)); item.Value.Add(new ColumnValue("OM_ini", resultOmIni));
@@ -1755,7 +1727,7 @@ namespace FarmMapsAPI.Carbon
var greenManure = item.SOC_CarbonGreenManure; var greenManure = item.SOC_CarbonGreenManure;
var compost = item.SOC_CarbonCompost; var compost = item.SOC_CarbonCompost;
item.OM_ini = iniValue;// / 0.54; //carbon_organicmatter_factor item.OM_ini = iniValue / 0.54; //carbon_organicmatter_factor
item.CO2seq = balanceValue * (44.0 / 12.0); item.CO2seq = balanceValue * (44.0 / 12.0);
var emision = -1 * (manure + residues + greenManure + compost - balanceValue); var emision = -1 * (manure + residues + greenManure + compost - balanceValue);
@@ -1809,7 +1781,7 @@ namespace FarmMapsAPI.Carbon
var resultBal = sumBal / farmArea.Total_crop_area; var resultBal = sumBal / farmArea.Total_crop_area;
var resultIni = sumIni / farmArea.Total_crop_area; var resultIni = sumIni / farmArea.Total_crop_area;
var resultiniCc = sumInicc / farmArea.Total_crop_area; var resultiniCc = sumInicc / farmArea.Total_crop_area;
var resultOm_Ini = resultiniCc;// / 0.54; //carbon_organicmatter_factor var resultOm_Ini = resultiniCc / 0.54; //carbon_organicmatter_factor
var resultCo2 = resultBal * (44.0 / 12.0); var resultCo2 = resultBal * (44.0 / 12.0);
var resultCo2Tot = resultCo2 * farmArea.Total_crop_area; var resultCo2Tot = resultCo2 * farmArea.Total_crop_area;
@@ -1856,7 +1828,7 @@ namespace FarmMapsAPI.Carbon
var soilPropertiesField = new Dictionary<string, SoilPropertyType>(); var soilPropertiesField = new Dictionary<string, SoilPropertyType>();
foreach (var field in farmInput.CropFields) foreach (var field in farmInput.CropFields)
{ {
soilPropertiesField.Add(field.Name, new SoilPropertyType { OM_Cont = field.SoilProperty.OM_Const.Value, Clay_Content = field.SoilProperty.Clay_Content.Value, OM_Corr = field.SoilProperty.OM_Const.Value <= 20 ? field.SoilProperty.OM_Const.Value : 0, C_Cont = field.SoilProperty.C_Const.Value, C_Corr = field.SoilProperty.C_Const.Value <= 20 ? field.SoilProperty.C_Const.Value : 0, Depth10 = field.SoilProperty.Depth10.Value, Depth = field.SoilProperty.Depth }); soilPropertiesField.Add(field.Name, new SoilPropertyType { OM_Cont = field.SoilProperty.OM_Choice.ToLower() == "c" ? field.SoilProperty.OM_Const.Value * 1.85185 : field.SoilProperty.OM_Const.Value, Clay_Content = field.SoilProperty.Clay_Content.Value, OM_Corr = field.SoilProperty.OM_Const.Value <= 20 ? field.SoilProperty.OM_Const.Value : 0, Depth10 = field.SoilProperty.Depth10.Value, Depth = field.SoilProperty.Depth });
} }
return soilPropertiesField; return soilPropertiesField;
@@ -1869,7 +1841,7 @@ namespace FarmMapsAPI.Carbon
{ {
foreach (var item2 in item.Value) foreach (var item2 in item.Value)
{ {
soilPropSoilType.Add((item.Key, item2), new SoilPropertyType { Bulk_Density = soilPropertiesField[item.Key].Bulk_Density, Clay_Content = soilPropertiesField[item.Key].Clay_Content, OM_Cont = soilPropertiesField[item.Key].OM_Cont, OM_Corr = soilPropertiesField[item.Key].OM_Corr, C_Cont = soilPropertiesField[item.Key].C_Cont, C_Corr = soilPropertiesField[item.Key].C_Corr }); // soilPropertiesField[item.Key]); soilPropSoilType.Add((item.Key, item2), new SoilPropertyType { Bulk_Density = soilPropertiesField[item.Key].Bulk_Density, Clay_Content = soilPropertiesField[item.Key].Clay_Content, OM_Cont = soilPropertiesField[item.Key].OM_Cont, OM_Corr = soilPropertiesField[item.Key].OM_Corr }); // soilPropertiesField[item.Key]);
} }
} }
return soilPropSoilType; return soilPropSoilType;