aw6374: climate calculation in modelyear 2025
All checks were successful
FarmMaps.Develop/CarbonLib/pipeline/head This commit looks good
All checks were successful
FarmMaps.Develop/CarbonLib/pipeline/head This commit looks good
This commit is contained in:
@@ -232,98 +232,8 @@ namespace FarmMapsAPI.Carbon
|
|||||||
|
|
||||||
public CarbonSummary CalculateClimateScenario(CarbonRequest farmInput)
|
public CarbonSummary CalculateClimateScenario(CarbonRequest farmInput)
|
||||||
{
|
{
|
||||||
var simpleResult = Calculate(farmInput);
|
var simpleResult = Calculate(farmInput);
|
||||||
var carbonResultList = new List<CarbonSummary>();
|
return simpleResult;
|
||||||
var knmiFile = Helper.GetPlatformIndependentDirectoryPath(Path.Combine(configPath, "KNMI_data.csv"));
|
|
||||||
var climateFile = Helper.GetPlatformIndependentDirectoryPath(Path.Combine(configPath, "klimaatscenario.csv"));
|
|
||||||
|
|
||||||
for (int i = 1; i < 9; i++)
|
|
||||||
{
|
|
||||||
var climateData = InitClimateFile(knmiFile, climateFile, i);
|
|
||||||
var result = Calculate(farmInput, i, climateData);
|
|
||||||
carbonResultList.Add(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
var carbonTotal = new List<CarbonSummaryList>();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var summaryTotal = new CarbonSummaryList { CropFieldClimate = new List<CropFieldSummaryList>(), CarbonSummary = simpleResult };
|
|
||||||
var cropFieldSummaryList = new CropFieldSummaryList { Name = carbonResultList[0].CropField[0].Name, SummaryList = new List<YearSummaryClimate>() };
|
|
||||||
|
|
||||||
for(var year = 2011; year < 2051; year++)
|
|
||||||
{
|
|
||||||
var yearData = carbonResultList.SelectMany(x => x.CropField[0].Summary.Where(x => x.Year == year)).ToList();
|
|
||||||
if (yearData.Count == 0)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var buldensityData = GetMinMaxMedian(yearData, year, "Bulk_Density");
|
|
||||||
var balanceData = GetMinMaxMedian(yearData, year, "Balance");
|
|
||||||
var initialData = GetMinMaxMedian(yearData, year, "Initial");
|
|
||||||
var om_iniData = GetMinMaxMedian(yearData, year, "OM_ini");
|
|
||||||
var iniCcontentData = GetMinMaxMedian(yearData, year, "IniCcontent");
|
|
||||||
var co2seqData = GetMinMaxMedian(yearData, year, "CO2seq");
|
|
||||||
var soc_CarbonCompostData = GetMinMaxMedian(yearData, year, "SOC_CarbonCompost");
|
|
||||||
var soc_CarbonGreenManure = GetMinMaxMedian(yearData, year, "SOC_CarbonGreenManure");
|
|
||||||
var soc_CarbonResiduesData = GetMinMaxMedian(yearData, year, "SOC_CarbonResidues");
|
|
||||||
var soc_CarbonManureManure = GetMinMaxMedian(yearData, year, "SOC_CarbonManure");
|
|
||||||
var emisionData = GetMinMaxMedian(yearData, year, "Emision");
|
|
||||||
cropFieldSummaryList.SummaryList.Add(new YearSummaryClimate
|
|
||||||
{
|
|
||||||
Year = year,
|
|
||||||
Bulk_Density = buldensityData,
|
|
||||||
Balance = balanceData,
|
|
||||||
Initial = initialData,
|
|
||||||
IniCcontent = iniCcontentData,
|
|
||||||
OM_ini = om_iniData,
|
|
||||||
CO2seq = co2seqData,
|
|
||||||
SOC_CarbonCompost = soc_CarbonCompostData,
|
|
||||||
SOC_CarbonGreenManure = soc_CarbonGreenManure,
|
|
||||||
SOC_CarbonResidues = soc_CarbonResiduesData,
|
|
||||||
SOC_CarbonManure = soc_CarbonManureManure,
|
|
||||||
Emision = emisionData,
|
|
||||||
Crop = yearData[0].Crop,
|
|
||||||
Total_crop_area = yearData[0].Total_crop_area,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
summaryTotal.CropFieldClimate.Add(cropFieldSummaryList);
|
|
||||||
|
|
||||||
foreach(var yearSummary in summaryTotal.CarbonSummary.CropField[0].Summary)
|
|
||||||
{
|
|
||||||
//var yearValues = summaryTotal.CropFieldClimate.Where(x => x.SummaryList[0].Year == yearSummary.Year).Select(y => y.SummaryList[0]).ToList();
|
|
||||||
var yearValues = summaryTotal.CropFieldClimate[0].SummaryList.Where(x => x.Year == yearSummary.Year).ToList();
|
|
||||||
foreach (var cropFieldClimate in summaryTotal.CropFieldClimate)
|
|
||||||
{
|
|
||||||
var yeardata = cropFieldClimate.SummaryList.Where(x => x.Year == yearSummary.Year);
|
|
||||||
var test = yeardata.Select(x => x.Bulk_Density).First()[1];
|
|
||||||
}
|
|
||||||
var Bulk_Density = yearValues.Select(x => x.Bulk_Density).First()[1];
|
|
||||||
var balance = yearValues.Select(x => x.Balance).First()[1];
|
|
||||||
var Initial = yearValues.Select(x => x.Initial).First()[1];
|
|
||||||
var IniCcontent = yearValues.Select(x => x.IniCcontent).First()[1];
|
|
||||||
var OM_ini = yearValues.Select(x => x.OM_ini).First()[1];
|
|
||||||
var CO2seq = yearValues.Select(x => x.CO2seq).First()[1];
|
|
||||||
var SOC_CarbonCompost = yearValues.Select(x => x.SOC_CarbonCompost).First()[1];
|
|
||||||
var SOC_CarbonGreenManure = yearValues.Select(x => x.SOC_CarbonGreenManure).First()[1];
|
|
||||||
var SOC_CarbonResidues = yearValues.Select(x => x.SOC_CarbonResidues).First()[1];
|
|
||||||
var SOC_CarbonManure = yearValues.Select(x => x.SOC_CarbonManure).First()[1];
|
|
||||||
var Emision = yearValues.Select(x => x.Emision).First()[1];
|
|
||||||
yearSummary.Bulk_Density = Bulk_Density;
|
|
||||||
yearSummary.Initial = Initial;
|
|
||||||
yearSummary.IniCcontent = IniCcontent;
|
|
||||||
yearSummary.OM_ini = OM_ini;
|
|
||||||
yearSummary.OM_ini_Climate = yearValues.Select(x => x.OM_ini).First();
|
|
||||||
yearSummary.CO2seq = CO2seq;
|
|
||||||
yearSummary.SOC_CarbonCompost = SOC_CarbonCompost;
|
|
||||||
yearSummary.SOC_CarbonGreenManure = SOC_CarbonGreenManure;
|
|
||||||
yearSummary.SOC_CarbonResidues = SOC_CarbonResidues;
|
|
||||||
yearSummary.SOC_CarbonManure = SOC_CarbonManure;
|
|
||||||
yearSummary.Emision = Emision;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return summaryTotal.CarbonSummary;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<double> GetMinMaxMedian(List<YearSummary> yearData, int year, string varName)
|
private List<double> GetMinMaxMedian(List<YearSummary> yearData, int year, string varName)
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user