fix emision; added fodder maize
All checks were successful
FarmMaps.Develop/CarbonLib/pipeline/head This commit looks good

This commit is contained in:
2021-06-23 11:04:12 +02:00
parent 1446db771e
commit e8efebf08e

View File

@@ -209,8 +209,6 @@ namespace FarmMapsAPI.Carbon
{
var knmiFile = Helper.GetPlatformIndependentDirectoryPath(Path.Combine(configPath, "KNMI_data.csv"));
//var regionSetFile = Path.Combine(_inPath, "RegionSets.json");
// soilTypeData (external input)
var soilTypeData = GetSoilTypeData(farmInput);
@@ -484,6 +482,10 @@ namespace FarmMapsAPI.Carbon
newValue = 0.024 * item.Value + 0.228;
valueList.Add(new ColumnValue(item.Key, newValue));
break;
case "Fodder_maize":
newValue = 0.024 * item.Value + 0.228;
valueList.Add(new ColumnValue(item.Key, newValue));
break;
case "Corn_Cob_mix":
newValue = 0.024 * item.Value + 0.228;
valueList.Add(new ColumnValue(item.Key, newValue));
@@ -600,13 +602,17 @@ namespace FarmMapsAPI.Carbon
var strawYld = strawYield[cropArea.Key].SingleOrDefault(x => x.Key.ToLower() == crop.Key.ToLower())?.Value ?? 0;
var fracR = cropPropertyConfig.SingleOrDefault(x => x.Name.ToLower() == crop.Key.ToLower())?.FracR ?? 0.0;
var field = farmInput.CropFields.SingleOrDefault(x => x.Name == cropArea.Key.Item1);
var field = farmInput.CropFields.SingleOrDefault(x => x.Name == cropArea.Key.Item1);
var crop_res = field.HistoricalCropData.SingleOrDefault(x => x.Year == loopYear).Crops[0].CropRes ? 1 : 0;
//var result = belowGroundCarbon.Value + (stubble * dm_contentStraw * parameterSet.CarbonBiomass) + ((1 - fracR) * strawYld * dm_contentStraw * parameterSet.CarbonBiomass);
var result = belowGroundCarbon.Value + (stubble * dm_contentStraw * parameterSet.CarbonBiomass) + (crop_res * strawYld * dm_contentStraw * parameterSet.CarbonBiomass);
//check if key exists (from if condition (in case of other cereals))
if (result > 12000)
{
result = 12000;
}
carbonInputs.AddValue((cropArea.Key.Item1, cropArea.Key.Item2, crop.Key), "CarbonResidues", result);
}
}
@@ -616,26 +622,12 @@ namespace FarmMapsAPI.Carbon
var carbonInputGreenManure = GetCarbonInputGreenManure(loopYear, farmInput, yieldGreenManureConfig);
//Total carbon input[in ton C / ha] from manure, compost, crop residues and green manure
var carbonTest = new GamsThreeKeyParameter();
//Total carbon input[in ton C / ha] from manure, compost, crop residues and green manure
// CarbonInputs(field, year, crop,'CarbonResidues')$(CarbonInputs(field, year,crop,'CarbonResidues')>12000) = 12000;???
// what to do?
/* foreach (var carbon in carbonInputManure)
{
var sumCarbonInputManure = carbon.Value.Sum(x => x.Value);
var carbonKeyInput = carbonInputs.KeysWhereCropKeyExists(loopYear, carbon.Key);
foreach (var carbonKey in carbonKeyInput)
{
carbonInputs.AddValue(carbonKey, "CarbonManure", sumCarbonInputManure);
}
}*/
foreach (var carbon in carbonInputManure2)
{
var sumCarbonInputManure = carbon.Value.Sum(x => x.Value);
//var carbonKeyInput = carbonInputs.KeysWhereCropKeyExists(loopYear, carbon.Key.Item2);
var carbonKeyInput = carbonInputs.TrippleKeyParam.Where(x => x.Key.Item1 == carbon.Key.Item1 && x.Key.Item3.ToLower() == carbon.Key.Item2.ToLower() && x.Key.Item2 == loopYear).Select(s => s.Key).ToList();
foreach (var carbonKey in carbonKeyInput)
@@ -653,19 +645,6 @@ namespace FarmMapsAPI.Carbon
}
}
/* foreach (var carbon in carbonInputCompost)
{
foreach (var historicData in historicalCropdata.Where(x => x.Key.Item2 == loopYear))
{
// add loopYear??
var historicDataItem = historicData.Value.SingleOrDefault(x => x.ToLower() == carbon.Key.ToLower());
if (historicDataItem != null)
{
carbonInputs.AddValue((historicData.Key.Item1, historicData.Key.Item2, historicDataItem), "CarbonCompost", carbon.Value.Value);
}
}
}*/
foreach (var carbon in carbonInputCompost2)
{
foreach (var historicData in historicalCropdata.Where(x => x.Key.Item2 == loopYear))
@@ -1624,7 +1603,7 @@ namespace FarmMapsAPI.Carbon
var manure = item.SOC_CarbonManure;
var residues = item.SOC_CarbonResidues;
var greenManure = item.SOC_CarbonManure;
var greenManure = item.SOC_CarbonGreenManure;
var compost = item.SOC_CarbonCompost;
item.OM_ini = iniValue / 0.54;
@@ -1868,7 +1847,7 @@ namespace FarmMapsAPI.Carbon
var monthClimateList = new List<ClimateVariable>();
foreach (var month in gisSoilSet.AllMonths)
{
var climateYear = loopYear > 2016 || loopYear < 2011 ? 2012 : loopYear;
var climateYear = loopYear > 2020 || loopYear < 2011 ? 2012 : loopYear;
var monthData = climate.Single(x => x.Key.Item1 == farmZone && x.Key.Item2 == month && x.Key.Item3 == climateYear).Value;
var newMonthData = new ClimateVariable(monthData.Temperature, monthData.Precipitation, monthData.Evapotranspiration * 1.25);
monthClimateList.Add(newMonthData);