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)
|
||||
{
|
||||
var simpleResult = Calculate(farmInput);
|
||||
var carbonResultList = new List<CarbonSummary>();
|
||||
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;
|
||||
var simpleResult = Calculate(farmInput);
|
||||
return simpleResult;
|
||||
}
|
||||
|
||||
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