diff --git a/CarbonCalculation.cs b/CarbonCalculation.cs index ce84d9f..37aa240 100644 --- a/CarbonCalculation.cs +++ b/CarbonCalculation.cs @@ -139,11 +139,11 @@ namespace FarmMapsAPI.Carbon Area = cropField.Area, HistoricalCropData = mappedCropData, SoilType = MapSoil(cropField.SoilType), - SoilProperty = new SoilProperty { Clay_Content = cropField.SoilProperty.Clay_Content, OM_Const = cropField.SoilProperty.OM_Const, Depth10 = cropField.SoilProperty.Depth10 }, + SoilProperty = new SoilProperty { Clay_Content = cropField.SoilProperty.Clay_Content, OM_Const = cropField.SoilProperty.OM_Const, Depth10 = cropField.SoilProperty.Depth10, Depth = cropField.SoilProperty.Depth, OM_Type = cropField.SoilProperty.OM_Type }, GreenManures = greenManures - }); + }); foreach (var crops in cropField.HistoricalCropData) - { + { foreach (var cropYear in crops.Crops) { if (!string.IsNullOrEmpty(cropYear.MiterraCropName)) @@ -157,8 +157,9 @@ namespace FarmMapsAPI.Carbon CropRes = cropYear.CropRes, OrganicManures = cropYear.OrganicManures.Where(y=>y.Quantity > 0 && !string.IsNullOrEmpty(y.Type)).Select(x => new OrganicManureType { Type = x.Type, Quantity = x.Quantity }).ToList(), - CropYield = cropYear.CropYield } } - }); + CropYield = cropYear.CropYield, + Irrigation = crops.Irrigations} } + }); } else { @@ -265,6 +266,7 @@ namespace FarmMapsAPI.Carbon var initialSoilKey = historicalCropdata.Keys.FirstOrDefault(x => x.Item1 == item.Key && x.Item2 == year.First()); var initialSoil = historicalCropdata[initialSoilKey].FirstOrDefault(); var soilPropertyDepth10 = item.Value.Depth10; + //FSA todo: different corrections for depth10 (10, 25, 30 cm) if (initialSoil == "Temp_gras" && soilPropertyDepth10) { oM_corr_SoilType.Add((item.Key, soilOfItem), item.Value.OM_Cont * 0.97); @@ -778,7 +780,7 @@ namespace FarmMapsAPI.Carbon { smdMaxValue = smdMax[climateItem.Key] / 1.8; } - +//fsa todo: add precipitation var result = climateItem.Value[i].Precipitation - climateItem.Value[i].Evapotranspiration; result = result < 0 ? result : 0; result = result < smdMaxValue ? smdMaxValue : result; diff --git a/CarbonLib.csproj b/CarbonLib.csproj index e9c8846..9053ddd 100644 --- a/CarbonLib.csproj +++ b/CarbonLib.csproj @@ -8,12 +8,12 @@ false false false - 2.2.0 + 4.0.0 - - + + diff --git a/Models/CarbonRequest.cs b/Models/CarbonRequest.cs index 5ab21ad..e721e6c 100644 --- a/Models/CarbonRequest.cs +++ b/Models/CarbonRequest.cs @@ -30,14 +30,16 @@ namespace CarbonService.Models public SoilProperty SoilProperty { get; set; } [Required] public List HistoricalCropData { get; set; } - public List GreenManures { get; set; } + public List GreenManures { get; set; } } public class SoilProperty { public double? OM_Const { get; set; } + public string OM_Type { get; set; } public double? Clay_Content { get; set; } public bool? Depth10 { get; set; } + public int? Depth { get; set; } } public class OrgManureApplied @@ -49,6 +51,7 @@ namespace CarbonService.Models public List OrganicManures { get; set; } public double? CropYield { get { return (int?)yield; } set { yield = value; } } public bool CropRes { get; set; } + public string Irrigation { get; set; } } public class OrganicManureType diff --git a/Models/FarmMapsCarbonRequest.cs b/Models/FarmMapsCarbonRequest.cs index 59cd896..1eaa5d9 100644 --- a/Models/FarmMapsCarbonRequest.cs +++ b/Models/FarmMapsCarbonRequest.cs @@ -44,6 +44,7 @@ namespace FarmMapsAPI.Carbon.Models public List Crops { get; set; } public List GreenManures { get; set; } public bool Rotation { get; set; } + public string Irrigations { get; set; } public HistoricalCropDataFarmMaps DeepCopy() { @@ -75,8 +76,10 @@ namespace FarmMapsAPI.Carbon.Models public class SoilPropertyFarmMaps { public double? OM_Const { get; set; } + public string OM_Type { get; set; } public double? Clay_Content { get; set; } public bool Depth10 { get; set; } + public int? Depth { get; set; } } public class GreenManureTypeFarmMaps