diff --git a/CarbonCalculation.cs b/CarbonCalculation.cs index 3cef089..e4ad593 100644 --- a/CarbonCalculation.cs +++ b/CarbonCalculation.cs @@ -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(); 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);