Compare commits

..
22 Commits
Author SHA1 Message Date
mvanlenthe e09cf00761 AW-7304 Migratie libs to .NET 10
FarmMaps.Develop/CarbonLib/pipeline/head This commit looks good
2026-03-04 21:06:12 +01:00
jenkins ee12f90261 Updated project references #156
FarmMaps.Develop/CarbonLib/pipeline/head This commit looks good
2026-02-20 18:25:57 +00:00
francisco 11d8a3962c aw7165: fixes for chantal: calculate median if requested, 2026 engine (same); updated knmi 2024
FarmMaps.Develop/CarbonLib/pipeline/head This commit looks good
2026-01-27 13:48:38 +01:00
jenkins dfa10dd570 Updated project references #153
FarmMaps.Develop/CarbonLib/pipeline/head This commit looks good
2025-12-18 11:19:15 +00:00
francisco ed036640b3 cleanup
FarmMaps.Develop/CarbonLib/pipeline/head This commit looks good
2025-12-09 14:47:49 +01:00
francisco 2f4be34aa9 cleanup
FarmMaps.Develop/CarbonLib/pipeline/head This commit looks good
2025-12-09 14:44:36 +01:00
francisco be5996372c readme
FarmMaps.Develop/CarbonLib/pipeline/head This commit looks good
2025-12-09 14:36:16 +01:00
francisco 0e8be57d43 aw7152: namespace change
FarmMaps.Develop/CarbonLib/pipeline/head This commit looks good
2025-12-09 13:41:19 +01:00
francisco 0ff0a44fdb aw7152: open source, moved lib to sub folder, added console app
FarmMaps.Develop/CarbonLib/pipeline/head This commit looks good
2025-12-09 10:42:43 +01:00
francisco 03f2b95e53 aw7152: make lib open source, remove farmmaps dependencies
FarmMaps.Develop/CarbonLib/pipeline/head This commit looks good
2025-12-09 10:02:31 +01:00
jenkins d08ef7c6b5 Updated project references #144
FarmMaps.Develop/CarbonLib/pipeline/head This commit looks good
2025-10-16 08:18:53 +00:00
jenkins a95635fdca [ci skip] Updated project references #133
FarmMaps.Develop/CarbonLib/pipeline/head This commit looks good
2025-04-10 14:43:49 +00:00
jenkins b653d7be9f Updated project references #132
FarmMaps.Develop/CarbonLib/pipeline/head This commit looks good
2025-04-10 14:38:58 +00:00
jenkins 6cc591204e [ci skip] Updated project references #131
FarmMaps.Develop/CarbonLib/pipeline/head This commit looks good
2025-04-09 12:08:28 +00:00
peter 5e6f2f4629 AW-6139 Migratie naar .NET 8
FarmMaps.Develop/CarbonLib/pipeline/head This commit looks good
2025-04-09 14:07:46 +02:00
jenkins db213f41df [ci skip] Updated project references #126
FarmMaps.Develop/CarbonLib/pipeline/head There was a failure building this commit
2025-04-04 08:58:29 +00:00
jenkins 5ae8dc6611 Updated project references #125
FarmMaps.Develop/CarbonLib/pipeline/head This commit looks good
2025-04-04 08:48:18 +00:00
francisco 370869ea72 fix median of balance
FarmMaps.Develop/CarbonLib/pipeline/head This commit looks good
2025-03-28 14:23:00 +01:00
francisco 710e73b5f0 aw6374: climate calculation in modelyear 2025
FarmMaps.Develop/CarbonLib/pipeline/head This commit looks good
2025-03-10 08:11:51 +01:00
francisco fcbb6c9356 aw6374: modelYear as string
FarmMaps.Develop/CarbonLib/pipeline/head This commit looks good
2025-03-07 20:37:55 +01:00
jenkins f1f742d434 [ci skip] Updated project references #121
FarmMaps.Develop/CarbonLib/pipeline/head Something is wrong with the build of this commit
2025-02-17 07:30:45 +00:00
francisco 8651f534c9 aw6383: climate scenario
FarmMaps.Develop/CarbonLib/pipeline/head This commit looks good
2025-02-17 08:27:19 +01:00
83 changed files with 138933 additions and 159 deletions
-40
View File
@@ -1,40 +0,0 @@
using CarbonLib;
using CarbonService.Models;
using FarmMapsAPI.Carbon.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FarmMapsAPI.Carbon
{
public class CarbonCalculation25 : ICarbonCalculation
{
public CarbonCalculation25(string configPath)
{
}
public CarbonRequest MapFarmMapsToMiterra(FarmMapsCarbonRequest farmInput)
{
throw new NotImplementedException();
}
public string Validate(CarbonRequest farmInput)
{
throw new NotImplementedException();
}
public CarbonSummary Calculate(CarbonRequest farmInput)
{
var response = new CarbonSummary();
return response;
}
public double? GetCropYield(string cropCode, int year, int postalCode)
{
throw new NotImplementedException();
}
}
}
+35
View File
@@ -0,0 +1,35 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\CarbonLib\CarbonLib.csproj" />
</ItemGroup>
<ItemGroup>
<None Update="config24\*">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="config24\Mapping\*">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="config25\*">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="config25\Mapping\*">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<None Update="Input.txt">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
+25
View File
@@ -0,0 +1,25 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.14.36414.22 d17.14
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CarbonConsoleApp", "CarbonConsoleApp.csproj", "{C5B1B8B2-0BAD-451E-95B6-FCCA898E4308}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{C5B1B8B2-0BAD-451E-95B6-FCCA898E4308}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C5B1B8B2-0BAD-451E-95B6-FCCA898E4308}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C5B1B8B2-0BAD-451E-95B6-FCCA898E4308}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C5B1B8B2-0BAD-451E-95B6-FCCA898E4308}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {436FBE19-E06A-4510-8714-CDED7BE0528F}
EndGlobalSection
EndGlobal
+331
View File
@@ -0,0 +1,331 @@
{
"geometry": null,
"PostalCode": 9797,
"CropFields": [
{
"Name": "082acba5b448433a86700fde3874a333",
"Area": 5.63,
"SoilType": "Klei",
"SoilProperty": {
"OM_Const": 2.28,
"C_Const": null,
"OM_Choice": "o",
"Clay_Content": 30.0,
"Depth10": false,
"Depth": 25
},
"HistoricalCropData": [
{
"Year": 2013,
"Crops": [
{
"Crop": "Sugarbeet",
"OrganicManures": [
{
"Type": "COMPOST",
"Quantity": 15.0
}
],
"CropYield": 91700.0,
"CropRes": false,
"Irrigation": "0,0,0,0,0,0,0,0,0,0,0,0"
}
]
},
{
"Year": 2014,
"Crops": [
{
"Crop": "fodder_maize",
"OrganicManures": [],
"CropYield": 48200.0,
"CropRes": false,
"Irrigation": "0,0,0,0,0,0,0,0,0,0,0,0"
}
]
},
{
"Year": 2015,
"Crops": [
{
"Crop": "Onion",
"OrganicManures": [],
"CropYield": 60400.0,
"CropRes": false,
"Irrigation": "0,0,0,0,0,0,0,0,0,0,0,0"
}
]
},
{
"Year": 2016,
"Crops": [
{
"Crop": "Cons_pot_clay",
"OrganicManures": [],
"CropYield": 48000.0,
"CropRes": false,
"Irrigation": "0,0,0,0,0,0,0,0,0,0,0,0"
}
]
},
{
"Year": 2017,
"Crops": [
{
"Crop": "Sugarbeet",
"OrganicManures": [],
"CropYield": 106400.0,
"CropRes": false,
"Irrigation": "0,0,0,0,0,0,0,0,0,0,0,0"
}
]
},
{
"Year": 2018,
"Crops": [
{
"Crop": "Winter_wheat",
"OrganicManures": [],
"CropYield": 9700.0,
"CropRes": false,
"Irrigation": "0,0,0,0,0,0,0,0,0,0,0,0"
}
]
},
{
"Year": 2019,
"Crops": [
{
"Crop": "Winter_wheat",
"OrganicManures": [],
"CropYield": 10400.0,
"CropRes": false,
"Irrigation": "0,0,0,0,0,0,0,0,0,0,0,0"
}
]
},
{
"Year": 2020,
"Crops": [
{
"Crop": "Onion",
"OrganicManures": [],
"CropYield": 47700.0,
"CropRes": false,
"Irrigation": "0,0,0,0,0,0,0,0,0,0,0,0"
}
]
},
{
"Year": 2021,
"Crops": [
{
"Crop": "Cons_pot_clay",
"OrganicManures": [
{
"Type": "VMSTAL",
"Quantity": 20.0
},
{
"Type": "COMPOST",
"Quantity": 18.0
}
],
"CropYield": 44900.0,
"CropRes": false,
"Irrigation": "0,0,0,0,0,0,0,0,0,0,0,0"
}
]
},
{
"Year": 2022,
"Crops": [
{
"Crop": "Winter_wheat",
"OrganicManures": [],
"CropYield": 10400.0,
"CropRes": false,
"Irrigation": "0,0,0,0,0,0,0,0,0,0,0,0"
}
]
},
{
"Year": 2023,
"Crops": [
{
"Crop": "Onion",
"OrganicManures": [],
"CropYield": 47700.0,
"CropRes": false,
"Irrigation": "0,0,0,0,0,0,0,0,0,0,0,0"
}
]
},
{
"Year": 2024,
"Crops": [
{
"Crop": "Cons_pot_clay",
"OrganicManures": [],
"CropYield": 44900.0,
"CropRes": false,
"Irrigation": "0,0,0,0,0,0,0,0,0,0,0,0"
}
]
},
{
"Year": 2025,
"Crops": [
{
"Crop": "Winter_wheat",
"OrganicManures": [],
"CropYield": 10400.0,
"CropRes": false,
"Irrigation": "0,0,0,0,0,0,0,0,0,0,0,0"
}
]
},
{
"Year": 2026,
"Crops": [
{
"Crop": "Onion",
"OrganicManures": [],
"CropYield": 47700.0,
"CropRes": false,
"Irrigation": "0,0,0,0,0,0,0,0,0,0,0,0"
}
]
},
{
"Year": 2027,
"Crops": [
{
"Crop": "Cons_pot_clay",
"OrganicManures": [],
"CropYield": 44900.0,
"CropRes": false,
"Irrigation": "0,0,0,0,0,0,0,0,0,0,0,0"
}
]
},
{
"Year": 2028,
"Crops": [
{
"Crop": "Winter_wheat",
"OrganicManures": [],
"CropYield": 10400.0,
"CropRes": false,
"Irrigation": "0,0,0,0,0,0,0,0,0,0,0,0"
}
]
},
{
"Year": 2029,
"Crops": [
{
"Crop": "Onion",
"OrganicManures": [],
"CropYield": 47700.0,
"CropRes": false,
"Irrigation": "0,0,0,0,0,0,0,0,0,0,0,0"
}
]
},
{
"Year": 2030,
"Crops": [
{
"Crop": "Cons_pot_clay",
"OrganicManures": [],
"CropYield": 44900.0,
"CropRes": false,
"Irrigation": "0,0,0,0,0,0,0,0,0,0,0,0"
}
]
},
{
"Year": 2031,
"Crops": [
{
"Crop": "Winter_wheat",
"OrganicManures": [],
"CropYield": 10400.0,
"CropRes": false,
"Irrigation": "0,0,0,0,0,0,0,0,0,0,0,0"
}
]
},
{
"Year": 2032,
"Crops": [
{
"Crop": "Onion",
"OrganicManures": [],
"CropYield": 47700.0,
"CropRes": false,
"Irrigation": "0,0,0,0,0,0,0,0,0,0,0,0"
}
]
},
{
"Year": 2033,
"Crops": [
{
"Crop": "Cons_pot_clay",
"OrganicManures": [],
"CropYield": 44900.0,
"CropRes": false,
"Irrigation": "0,0,0,0,0,0,0,0,0,0,0,0"
}
]
},
{
"Year": 2034,
"Crops": [
{
"Crop": "Winter_wheat",
"OrganicManures": [],
"CropYield": 10400.0,
"CropRes": false,
"Irrigation": "0,0,0,0,0,0,0,0,0,0,0,0"
}
]
},
{
"Year": 2035,
"Crops": [
{
"Crop": "Onion",
"OrganicManures": [],
"CropYield": 47700.0,
"CropRes": false,
"Irrigation": "0,0,0,0,0,0,0,0,0,0,0,0"
}
]
}
],
"GreenManures": [
{
"Year": 2013,
"GreenManureTypes": [
{
"Type": "Gerst",
"Quality": "Matig"
}
]
},
{
"Year": 2032,
"GreenManureTypes": [
{
"Type": "EngelsRaaigras",
"Quality": "Goed"
}
]
}
]
}
]
}
+29
View File
@@ -0,0 +1,29 @@
using CarbonService.Models;
using CarbonLib.Carbon;
using Newtonsoft.Json;
namespace CarbonConsoleApp
{
class Program
{
static void Main(string[] args)
{
var configPath = "config25";
ICarbonCalculation carbonCalc = new CarbonLib.Carbon.CarbonCalculation25(configPath);
var request = new CarbonRequest();
using (var reader = new StreamReader("input.txt"))
{
var filecontent = reader.ReadToEnd();
request = JsonConvert.DeserializeObject<CarbonRequest>(filecontent);
}
var result = carbonCalc.CalculateClimateScenario(request);
using (var writer = new StreamWriter("output.txt"))
{
var resultText = JsonConvert.SerializeObject(result, Formatting.Indented);
writer.WriteLine(resultText);
}
}
}
}
@@ -0,0 +1,206 @@
[
{
"CropName": "Perm_gras",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Temp_gras",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Nat_gras",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Gras",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Fodder_maize",
"CoverMonths": [ "M6", "M7", "M8", "M9" ]
},
{
"CropName": "Maize",
"CoverMonths": [ "M6", "M7", "M8", "M9" ]
},
{
"CropName": "Corn_cob_mix",
"CoverMonths": [ "M6", "M7", "M8", "M9" ]
},
{
"CropName": "Winter_wheat",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M12" ]
},
{
"CropName": "Summer_wheat",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Summer_barley",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "winter_barley",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M12" ]
},
{
"CropName": "Sugarbeet",
"CoverMonths": [ "M6", "M7", "M8", "M9", "M10" ]
},
{
"CropName": "Cons_pot_clay",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Pot_clay",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Starch_pot",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Cons_pot_sand",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Pot_sand",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Vegetables_root",
"CoverMonths": [ "M5", "M6", "M7", "M8", "M9", "M10" ]
},
{
"CropName": "Vegetables_leaf",
"CoverMonths": [ "M5", "M6", "M7", "M8", "M9", "M10" ]
},
{
"CropName": "Vegetables_cabbage",
"CoverMonths": [ "M6", "M7", "M8", "M9" ]
},
{
"CropName": "Vegetables_stem",
"CoverMonths": [ "M5", "M6", "M7", "M8", "M9", "M10" ]
},
{
"CropName": "Pumpkin",
"CoverMonths": [ "M6", "M7", "M8", "M9" ]
},
{
"CropName": "Chicory",
"CoverMonths": [ "M5", "M6", "M7", "M8", "M9", "M10" ]
},
{
"CropName": "Courgette",
"CoverMonths": [ "M5", "M6", "M7" ]
},
{
"CropName": "Other_veg",
"CoverMonths": [ "M5", "M6", "M7", "M8", "M9", "M10" ]
},
{
"CropName": "Grasseed",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Onion",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Bulbs",
"CoverMonths": [ "M4", "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Fallow",
"CoverMonths": []
},
{
"CropName": "Nurseries",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Pulses",
"CoverMonths": [ "M5", "M6", "M7" ]
},
{
"CropName": "Apples",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Pears",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Luzerne",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Other_crops",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Other_seeds",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Triticale",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Rapeseed",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M12" ]
},
{
"CropName": "Strawberry",
"CoverMonths": [ "M4", "M5", "M6", "M7", "M8", "M9", "M10" ]
},
{
"CropName": "Rye",
"CoverMonths": [ "M4", "M5", "M6", "M7" ]
},
{
"CropName": "Other_fruits",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "oats",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Green_manure",
"CoverMonths": [ "M1", "M2", "M3", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Fibres",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Sunflower",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Fodder_beet",
"CoverMonths": [ "M6", "M7", "M8", "M9" ]
},
{
"CropName": "Other_cereals",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Wine",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Miscanthus",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Switchgrass",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Willow",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
}
]
@@ -0,0 +1,359 @@
[
{
"Name": "Perm_gras",
"DM_content": 1.0,
"FracR": 0.0,
"C_input_CropRes": 5.1,
"HarvestIndex": 0.444
},
{
"Name": "Temp_gras",
"DM_content": 1.0,
"FracR": 0.0,
"C_input_CropRes": 3.4,
"HarvestIndex": 0.444
},
{
"Name": "Nat_gras",
"DM_content": 1.0,
"FracR": 0.0,
"C_input_CropRes": 5.1,
"HarvestIndex": 0.444
},
{
"Name": "Gras",
"DM_content": 1.0,
"FracR": 0.0,
"C_input_CropRes": 4.59,
"HarvestIndex": 0.444
},
{
"Name": "Fodder_maize",
"DM_content": 0.35,
"FracR": 0.0,
"C_input_CropRes": 1.1,
"HarvestIndex": 0.67
},
{
"Name": "Maize",
"DM_content": 0.85,
"FracR": 0.25,
"C_input_CropRes": 0.0,
"HarvestIndex": 0.46
},
{
"Name": "Corn_cob_mix",
"DM_content": 0.8,
"FracR": 0.25,
"C_input_CropRes": 0.0,
"HarvestIndex": 0.46
},
{
"Name": "Winter_wheat",
"DM_content": 0.85,
"FracR": 0.62,
"C_input_CropRes": 0.0,
"HarvestIndex": 0.46
},
{
"Name": "Summer_wheat",
"DM_content": 0.85,
"FracR": 0.62,
"C_input_CropRes": 0.0,
"HarvestIndex": 0.46
},
{
"Name": "Summer_barley",
"DM_content": 0.85,
"FracR": 0.43,
"C_input_CropRes": 0.0,
"HarvestIndex": 0.46
},
{
"Name": "winter_barley",
"DM_content": 0.85,
"FracR": 0.43,
"C_input_CropRes": 0.0,
"HarvestIndex": 0.46
},
{
"Name": "Sugarbeet",
"DM_content": 0.25,
"FracR": 0.0,
"C_input_CropRes": 2.732142857142857,
"HarvestIndex": 0.69
},
{
"Name": "Cons_pot_clay",
"DM_content": 0.24,
"FracR": 0.0,
"C_input_CropRes": 1.7897727272727275,
"HarvestIndex": 0.69
},
{
"Name": "Pot_clay",
"DM_content": 0.24,
"FracR": 0.0,
"C_input_CropRes": 1.953409090909091,
"HarvestIndex": 0.69
},
{
"Name": "Starch_pot",
"DM_content": 0.24,
"FracR": 0.0,
"C_input_CropRes": 1.6670454545454545,
"HarvestIndex": 0.69
},
{
"Name": "Cons_pot_sand",
"DM_content": 0.24,
"FracR": 0.0,
"C_input_CropRes": 1.7897727272727275,
"HarvestIndex": 0.69
},
{
"Name": "Pot_sand",
"DM_content": 0.24,
"FracR": 0.0,
"C_input_CropRes": 1.953409090909091,
"HarvestIndex": 0.69
},
{
"Name": "Vegetables_root",
"DM_content": 0.099,
"FracR": 0.0,
"C_input_CropRes": 1.61648275862069,
"HarvestIndex": 0.627333333333333
},
{
"Name": "Vegetables_leaf",
"DM_content": 0.04575,
"FracR": 0.0,
"C_input_CropRes": 0.704347826086956,
"HarvestIndex": 0.56125
},
{
"Name": "Vegetables_cabbage",
"DM_content": 0.0837058823529412,
"FracR": 0.0,
"C_input_CropRes": 2.75625,
"HarvestIndex": 0.472941176470588
},
{
"Name": "Vegetables_stem",
"DM_content": 0.0752,
"FracR": 0.0,
"C_input_CropRes": 0.704347826086956,
"HarvestIndex": 0.602
},
{
"Name": "Pumpkin",
"DM_content": 0.183,
"FracR": 0.0,
"C_input_CropRes": 0.704347826086956,
"HarvestIndex": 0.56
},
{
"Name": "Chicory",
"DM_content": 0.233,
"FracR": 0.0,
"C_input_CropRes": 1.40869565217391,
"HarvestIndex": 0.6
},
{
"Name": "Courgette",
"DM_content": 0.048,
"FracR": 0.0,
"C_input_CropRes": 0.704347826086956,
"HarvestIndex": 0.40
},
{
"Name": "Other_veg",
"DM_content": 0.10967,
"FracR": 0.0,
"C_input_CropRes": 1.22840281644892,
"HarvestIndex": 0.54622
},
{
"Name": "Grasseed",
"DM_content": 0.85,
"FracR": 0.0,
"C_input_CropRes": 2.7155172413793105,
"HarvestIndex": 0.2
},
{
"Name": "Onion",
"DM_content": 0.25,
"FracR": 0.0,
"C_input_CropRes": 0.5625,
"HarvestIndex": 1.0
},
{
"Name": "Bulbs",
"DM_content": 0.25,
"FracR": 0.0,
"C_input_CropRes": 0.7575000000000001,
"HarvestIndex": 1.0
},
{
"Name": "Fallow",
"DM_content": 0.0,
"FracR": 0.0,
"C_input_CropRes": 0.0,
"HarvestIndex": 0.0
},
{
"Name": "Nurseries",
"DM_content": 0.25,
"FracR": 0.0,
"C_input_CropRes": 1.505,
"HarvestIndex": 0.85
},
{
"Name": "Pulses",
"DM_content": 0.85,
"FracR": 0.0,
"C_input_CropRes": 2.0454545454545454,
"HarvestIndex": 0.69
},
{
"Name": "Apples",
"DM_content": 0.14,
"FracR": 0.0,
"C_input_CropRes": 2.6,
"HarvestIndex": 1.0
},
{
"Name": "Pears",
"DM_content": 0.14,
"FracR": 0.0,
"C_input_CropRes": 2.6,
"HarvestIndex": 1.0
},
{
"Name": "Luzerne",
"DM_content": 0.25,
"FracR": 0.0,
"C_input_CropRes": 1.779,
"HarvestIndex": 0.5
},
{
"Name": "Other_crops",
"DM_content": 0.7,
"FracR": 0.0,
"C_input_CropRes": 2.0359063662409858,
"HarvestIndex": 0.5
},
{
"Name": "Other_seeds",
"DM_content": 0.85,
"FracR": 0.0,
"C_input_CropRes": 2.7155172413793105,
"HarvestIndex": 0.5
},
{
"Name": "Triticale",
"DM_content": 0.85,
"FracR": 0.5,
"C_input_CropRes": 2.2790322580645164,
"HarvestIndex": 0.46
},
{
"Name": "Rapeseed",
"DM_content": 0.85,
"FracR": 0.5,
"C_input_CropRes": 0.0,
"HarvestIndex": 0.69
},
{
"Name": "Strawberry",
"DM_content": 0.15,
"FracR": 0.0,
"C_input_CropRes": 2.0,
"HarvestIndex": 0.5
},
{
"Name": "Rye",
"DM_content": 0.85,
"FracR": 0.5,
"C_input_CropRes": 0.0,
"HarvestIndex": 0.46
},
{
"Name": "Other_fruits",
"DM_content": 0.15,
"FracR": 0.0,
"C_input_CropRes": 2.6,
"HarvestIndex": 1.0
},
{
"Name": "oats",
"DM_content": 0.85,
"FracR": 0.5,
"C_input_CropRes": 0.0,
"HarvestIndex": 0.46
},
{
"Name": "Green_manure",
"DM_content": 0.25,
"FracR": 0.0,
"C_input_CropRes": 3.7,
"HarvestIndex": 0.3
},
{
"Name": "Fibres",
"DM_content": 0.85,
"FracR": 0.0,
"C_input_CropRes": 0.13636363636363635,
"HarvestIndex": 0.92
},
{
"Name": "Sunflower",
"DM_content": 0.85,
"FracR": 0.0,
"C_input_CropRes": 0.0,
"HarvestIndex": 0.46
},
{
"Name": "Fodder_beet",
"DM_content": 0.25,
"FracR": 0.0,
"C_input_CropRes": 2.732142857142857,
"HarvestIndex": 0.69
},
{
"Name": "Other_cereals",
"DM_content": 0.85,
"FracR": 0.5,
"C_input_CropRes": 2.0359063662409853,
"HarvestIndex": 0.46
},
{
"Name": "Wine",
"DM_content": 0.15,
"FracR": 0.0,
"C_input_CropRes": 2.6,
"HarvestIndex": 0.7
},
{
"Name": "Miscanthus",
"DM_content": 1.0,
"FracR": 0.0,
"C_input_CropRes": 5.1,
"HarvestIndex": 0.444
},
{
"Name": "Switchgrass",
"DM_content": 1.0,
"FracR": 0.0,
"C_input_CropRes": 5.1,
"HarvestIndex": 0.444
},
{
"Name": "Willow",
"DM_content": 1.0,
"FracR": 0.0,
"C_input_CropRes": 2.6,
"HarvestIndex": 0.85
}
]
+78
View File
@@ -0,0 +1,78 @@
{
"StrawCrops": [
{
"StrawCrop": "Maize",
"DM_Content": 0.7
},
{
"StrawCrop": "Corn_cob_mix",
"DM_Content": 0.7
},
{
"StrawCrop": "Winter_wheat",
"DM_Content": 0.85
},
{
"StrawCrop": "Summer_wheat",
"DM_Content": 0.85
},
{
"StrawCrop": "Summer_barley",
"DM_Content": 0.85
},
{
"StrawCrop": "winter_barley",
"DM_Content": 0.85
},
{
"StrawCrop": "Rapeseed",
"DM_Content": 0.6
},
{
"StrawCrop": "Rye",
"DM_Content": 0.85
},
{
"StrawCrop": "oats",
"DM_Content": 0.85
},
{
"StrawCrop": "Sunflower",
"DM_Content": 0.6
},
{
"StrawCrop": "Other_cereals",
"DM_Content": 0.85
}
],
"GreenManureType": [
"Bladrammenas",
"GeleMosterd",
"Voederwikke",
"Afrikaantjes",
"JapanseHaver",
"ItaliaansRaaigras",
"Mengsel3soorten",
"Mengsel12soorten",
"EngelsRaaigras",
"Facelia",
"Grasland",
"Overig",
"Rietzwenkgras"
],
"Perennial": [
"Nurseries",
"Apples",
"Pears",
"Other_fruits",
"Wine",
"Miscanthus",
"Switchgrass",
"Willow"
],
"Grass_nat": [
"Perm_gras",
"Nat_gras",
"Gras"
]
}
File diff suppressed because one or more lines are too long
@@ -0,0 +1,72 @@
{
"ManureSources_liv": [
{
"ManureSource_liv": "WMGRAAS",
"Description": "Weidemest graasdieren"
},
{
"ManureSource_liv": "DMGRAAS",
"Description": "Drijfmest graasdieren"
},
{
"ManureSource_liv": "VMGRAAS",
"Description": "Vaste mest graasdieren"
},
{
"ManureSource_liv": "DMSTAL",
"Description": "Drijfmest staldieren"
},
{
"ManureSource_liv": "VMSTAL",
"Description": "Vaste mest staldieren"
},
{
"ManureSource_liv": "FRACDUN",
"Description": "Dunne Fractie"
},
{
"ManureSource_liv": "FRACDIK",
"Description": "Dikke Fractie"
},
{
"ManureSource_liv": "KMVERV",
"Description": "Kunstmestvervangers"
},
{
"ManureSource_liv": "DIGEST",
"Description": "Digestaat"
},
{
"ManureSource_liv": "CHAMPOST",
"Description": "Champost"
},
{
"ManureSource_liv": "SCHA_GEIT",
"Description": "Schapen/geitenmest"
},
{
"ManureSource_liv": "VMPIG",
"Description": "Vaste varkensmest"
},
{
"ManureSource_liv": "DM_ZEUG",
"Description": "Zeugendrijfmest"
},
{
"ManureSource_liv": "OVERIG",
"Description": "Overig"
}
],
"composts": [
{
"compost": "COMPOST",
"Description": "compost"
}
],
"CarbonSource": [
"CarbonManure",
"CarbonResidues",
"CarbonGreenManure",
"CarbonCompost"
]
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,7 @@
{
"SoilType": [ "Moerig", "Veen", "Klei", "Zand", "Loss" ],
"MineralSoils": [ "Klei", "Zand" ],
"Months": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12", "Total", "Average" ],
"AllMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ],
"ClimateVar": [ "Evapotranspiration", "Precipitation", "Temperature" ]
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+62
View File
@@ -0,0 +1,62 @@
[
{
"ManCcont": "WMGRAAS",
"Value": 0.0356
},
{
"ManCcont": "DMGRAAS",
"Value": 0.0356
},
{
"ManCcont": "VMGRAAS",
"Value": 0.077385
},
{
"ManCcont": "DMSTAL",
"Value": 0.03955
},
{
"ManCcont": "VMSTAL",
"Value": 0.209715
},
{
"ManCcont": "COMPOST",
"Value": 0.10535
},
{
"ManCcont": "FRACDUN",
"Value": 0.01715
},
{
"ManCcont": "FRACDIK",
"Value": 0.0759
},
{
"ManCcont": "KMVERV",
"Value": 0.010585
},
{
"ManCcont": "DIGEST",
"Value": 0.01652
},
{
"ManCcont": "CHAMPOST",
"Value": 0.1050
},
{
"ManCcont": "SCHA_GEIT",
"Value": 0.09225
},
{
"ManCcont": "VMPIG",
"Value": 0.0765
},
{
"ManCcont": "DM_ZEUG",
"Value": 0.0125
},
{
"ManCcont": "OVERIG",
"Value": 0.01652
}
]
File diff suppressed because one or more lines are too long
@@ -0,0 +1,303 @@
[
{
"CropCode": "1020101",
"CropName": "Wintertarwe",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": ""
},
{
"CropCode": "1020102",
"CropName": "Wintergerst",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": ""
},
{
"CropCode": "1020103",
"CropName": "Winterrogge",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": ""
},
{
"CropCode": "1020201",
"CropName": "Zomertarwe",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": ""
},
{
"CropCode": "1020202",
"CropName": "Zomergerst",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": ""
},
{
"CropCode": "1020203",
"CropName": "Zomerrogge",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": ""
},
{
"CropCode": "1030301",
"CropName": "Alexandrijnse klaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030302",
"CropName": "Bastaard klaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030303",
"CropName": "Hopklaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030304",
"CropName": "Inkarnaatklaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030305",
"CropName": "Perzische klaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030306",
"CropName": "Rode klaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030307",
"CropName": "Rolklaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030308",
"CropName": "Witte honingklaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030309",
"CropName": "Witte klaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030401",
"CropName": "Blauwe Lupine",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030402",
"CropName": "Gele Lupine",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030403",
"CropName": "Witte Lupine",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030501",
"CropName": "Voederwikke",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030502",
"CropName": "Bonte wikke",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030602",
"CropName": "Hanekam",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Overig"
},
{
"CropCode": "1040101",
"CropName": "Stoppelknol",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Overig"
},
{
"CropCode": "1040102",
"CropName": "Bladrammenas",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Bladrammenas"
},
{
"CropCode": "1040103",
"CropName": "Bruine mosterd",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "GeleMosterd"
},
{
"CropCode": "1040104",
"CropName": "Gele mosterd",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "GeleMosterd"
},
{
"CropCode": "1040105",
"CropName": "Zwarte mosterd",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "GeleMosterd"
},
{
"CropCode": "1040108",
"CropName": "Bladkool",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Overig"
},
{
"CropCode": "1040109",
"CropName": "Mergkool",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Overig"
},
{
"CropCode": "1040110",
"CropName": "Ethiopische mosterd",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "GeleMosterd"
},
{
"CropCode": "1040111",
"CropName": "Serepta mosterd",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "GeleMosterd"
},
{
"CropCode": "1040112",
"CropName": "Zwaardherik",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Overig"
},
{
"CropCode": "1050101",
"CropName": "Engels raaigras",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "EngelsRaaigras"
},
{
"CropCode": "1050102",
"CropName": "Frans raaigras",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "ItaliaansRaaigras"
},
{
"CropCode": "1050103",
"CropName": "Gekruist raaigras",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "ItaliaansRaaigras"
},
{
"CropCode": "1050104",
"CropName": "Italiaans raaigras",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "ItaliaansRaaigras"
},
{
"CropCode": "1050105",
"CropName": "Trosraaigras",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "ItaliaansRaaigras"
},
{
"CropCode": "1050106",
"CropName": "Westerwolds raaigras",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "ItaliaansRaaigras"
},
{
"CropCode": "1050201",
"CropName": "Roodzwenkgras",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Rietzwenkgras"
},
{
"CropCode": "1050408",
"CropName": "Sudangras",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Rietzwenkgras"
},
{
"CropCode": "1080107",
"CropName": "Facelia",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Facelia"
},
{
"CropCode": "1080108",
"CropName": "Spurrie",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Overig"
},
{
"CropCode": "1080109",
"CropName": "Afrikaantjes",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Afrikaantjes"
},
{
"CropCode": "1080110",
"CropName": "Raketblad",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Overig"
}
]
+1
View File
@@ -0,0 +1 @@
UTF-8
Binary file not shown.
+1
View File
@@ -0,0 +1 @@
PROJCS["RD_New",GEOGCS["GCS_Amersfoort",DATUM["D_Amersfoort",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Double_Stereographic"],PARAMETER["False_Easting",155000.0],PARAMETER["False_Northing",463000.0],PARAMETER["Central_Meridian",5.38763888888889],PARAMETER["Scale_Factor",0.9999079],PARAMETER["Latitude_Of_Origin",52.15616055555555],UNIT["Meter",1.0]]
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,10 @@
{
"LayerDepth": 25.0,
"kDPM": 10.0,
"kRPM": 0.3,
"kBIO": 0.66,
"kHUM": 0.02,
"StubbleFraction": 0.45,
"CarbonBiomass": 0.45,
"FracBelowGroundCinput": 0.25
}
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,123 @@
[
{
"ManureName": "Bladrammenas",
"GoodQuality": 3.573099415204678,
"AverageQuality": 2.5011695906432747,
"BadQuality": 1.786549707602339
},
{
"ManureName": "GeleMosterd",
"GoodQuality": 2.05696405648267,
"AverageQuality": 1.4398748395378689,
"BadQuality": 1.028482028241335
},
{
"ManureName": "Voederwikke",
"GoodQuality": 1.2933673469387754,
"AverageQuality": 0.9053571428571427,
"BadQuality": 0.6466836734693877
},
{
"ManureName": "Afrikaantjes",
"GoodQuality": 2.8392857142857153,
"AverageQuality": 1.9875000000000005,
"BadQuality": 1.4196428571428577
},
{
"ManureName": "JapanseHaver",
"GoodQuality": 2.5844583333333335,
"AverageQuality": 1.8091208333333333,
"BadQuality": 1.2922291666666668
},
{
"ManureName": "ItaliaansRaaigras",
"GoodQuality": 3.1635153508771934,
"AverageQuality": 2.2144607456140353,
"BadQuality": 1.5817576754385967
},
{
"ManureName": "Rogge",
"GoodQuality": 2.5,
"AverageQuality": 1.75,
"BadQuality": 1.25
},
{
"ManureName": "Graan",
"GoodQuality": 2.2,
"AverageQuality": 1.54,
"BadQuality": 1.1
},
{
"ManureName": "Haver",
"GoodQuality": 2.6,
"AverageQuality": 1.82,
"BadQuality": 1.3
},
{
"ManureName": "Gerst",
"GoodQuality": 2.55,
"AverageQuality": 1.785,
"BadQuality": 1.275
},
{
"ManureName": "Mengsel_groenbraak",
"GoodQuality": 2.8,
"AverageQuality": 1.96,
"BadQuality": 1.4
},
{
"ManureName": "Mengsel_natuurbraak",
"GoodQuality": 3.0,
"AverageQuality": 2.1,
"BadQuality": 1.5
},
{
"ManureName": "Mengsel_Nbron",
"GoodQuality": 2.8,
"AverageQuality": 1.96,
"BadQuality": 1.4
},
{
"ManureName": "Mengsel_Nvang",
"GoodQuality": 2.8,
"AverageQuality": 1.96,
"BadQuality": 1.4
},
{
"ManureName": "EngelsRaaigras",
"GoodQuality": 3.1635153508771934,
"AverageQuality": 2.2144607456140353,
"BadQuality": 1.5817576754385967
},
{
"ManureName": "Facelia",
"GoodQuality": 0.2925,
"AverageQuality": 0.20475,
"BadQuality": 0.14625
},
{
"ManureName": "Grasland",
"GoodQuality": 3.418421052631579,
"AverageQuality": 2.3928947368421056,
"BadQuality": 1.7092105263157895
},
{
"ManureName": "Overig",
"GoodQuality": 6.728475765306122,
"AverageQuality": 4.709933035714285,
"BadQuality": 3.364237882653061
},
{
"ManureName": "Rietzwenkgras",
"GoodQuality": 3.1635153508771934,
"AverageQuality": 2.2144607456140353,
"BadQuality": 1.5817576754385967
},
{
"ManureName": "Triticale",
"GoodQuality": 2.2,
"AverageQuality": 1.54,
"BadQuality": 1.1
}
]
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,206 @@
[
{
"CropName": "Perm_gras",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Temp_gras",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Nat_gras",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Gras",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Fodder_maize",
"CoverMonths": [ "M6", "M7", "M8", "M9" ]
},
{
"CropName": "Maize",
"CoverMonths": [ "M6", "M7", "M8", "M9" ]
},
{
"CropName": "Corn_cob_mix",
"CoverMonths": [ "M6", "M7", "M8", "M9" ]
},
{
"CropName": "Winter_wheat",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M12" ]
},
{
"CropName": "Summer_wheat",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Summer_barley",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "winter_barley",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M12" ]
},
{
"CropName": "Sugarbeet",
"CoverMonths": [ "M6", "M7", "M8", "M9", "M10" ]
},
{
"CropName": "Cons_pot_clay",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Pot_clay",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Starch_pot",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Cons_pot_sand",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Pot_sand",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Vegetables_root",
"CoverMonths": [ "M5", "M6", "M7", "M8", "M9", "M10" ]
},
{
"CropName": "Vegetables_leaf",
"CoverMonths": [ "M5", "M6", "M7", "M8", "M9", "M10" ]
},
{
"CropName": "Vegetables_cabbage",
"CoverMonths": [ "M6", "M7", "M8", "M9" ]
},
{
"CropName": "Vegetables_stem",
"CoverMonths": [ "M5", "M6", "M7", "M8", "M9", "M10" ]
},
{
"CropName": "Pumpkin",
"CoverMonths": [ "M6", "M7", "M8", "M9" ]
},
{
"CropName": "Chicory",
"CoverMonths": [ "M5", "M6", "M7", "M8", "M9", "M10" ]
},
{
"CropName": "Courgette",
"CoverMonths": [ "M5", "M6", "M7" ]
},
{
"CropName": "Other_veg",
"CoverMonths": [ "M5", "M6", "M7", "M8", "M9", "M10" ]
},
{
"CropName": "Grasseed",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Onion",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Bulbs",
"CoverMonths": [ "M4", "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Fallow",
"CoverMonths": []
},
{
"CropName": "Nurseries",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Pulses",
"CoverMonths": [ "M5", "M6", "M7" ]
},
{
"CropName": "Apples",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Pears",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Luzerne",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Other_crops",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Other_seeds",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Triticale",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Rapeseed",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M12" ]
},
{
"CropName": "Strawberry",
"CoverMonths": [ "M4", "M5", "M6", "M7", "M8", "M9", "M10" ]
},
{
"CropName": "Rye",
"CoverMonths": [ "M4", "M5", "M6", "M7" ]
},
{
"CropName": "Other_fruits",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "oats",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Green_manure",
"CoverMonths": [ "M1", "M2", "M3", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Fibres",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Sunflower",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Fodder_beet",
"CoverMonths": [ "M6", "M7", "M8", "M9" ]
},
{
"CropName": "Other_cereals",
"CoverMonths": [ "M5", "M6", "M7", "M8" ]
},
{
"CropName": "Wine",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Miscanthus",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Switchgrass",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
},
{
"CropName": "Willow",
"CoverMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ]
}
]
@@ -0,0 +1,359 @@
[
{
"Name": "Perm_gras",
"DM_content": 1.0,
"FracR": 0.0,
"C_input_CropRes": 5.1,
"HarvestIndex": 0.444
},
{
"Name": "Temp_gras",
"DM_content": 1.0,
"FracR": 0.0,
"C_input_CropRes": 3.4,
"HarvestIndex": 0.444
},
{
"Name": "Nat_gras",
"DM_content": 1.0,
"FracR": 0.0,
"C_input_CropRes": 5.1,
"HarvestIndex": 0.444
},
{
"Name": "Gras",
"DM_content": 1.0,
"FracR": 0.0,
"C_input_CropRes": 4.59,
"HarvestIndex": 0.444
},
{
"Name": "Fodder_maize",
"DM_content": 0.35,
"FracR": 0.0,
"C_input_CropRes": 1.1,
"HarvestIndex": 0.67
},
{
"Name": "Maize",
"DM_content": 0.85,
"FracR": 0.25,
"C_input_CropRes": 0.0,
"HarvestIndex": 0.46
},
{
"Name": "Corn_cob_mix",
"DM_content": 0.8,
"FracR": 0.25,
"C_input_CropRes": 0.0,
"HarvestIndex": 0.46
},
{
"Name": "Winter_wheat",
"DM_content": 0.85,
"FracR": 0.62,
"C_input_CropRes": 0.0,
"HarvestIndex": 0.46
},
{
"Name": "Summer_wheat",
"DM_content": 0.85,
"FracR": 0.62,
"C_input_CropRes": 0.0,
"HarvestIndex": 0.46
},
{
"Name": "Summer_barley",
"DM_content": 0.85,
"FracR": 0.43,
"C_input_CropRes": 0.0,
"HarvestIndex": 0.46
},
{
"Name": "winter_barley",
"DM_content": 0.85,
"FracR": 0.43,
"C_input_CropRes": 0.0,
"HarvestIndex": 0.46
},
{
"Name": "Sugarbeet",
"DM_content": 0.25,
"FracR": 0.0,
"C_input_CropRes": 2.732142857142857,
"HarvestIndex": 0.69
},
{
"Name": "Cons_pot_clay",
"DM_content": 0.24,
"FracR": 0.0,
"C_input_CropRes": 1.7897727272727275,
"HarvestIndex": 0.69
},
{
"Name": "Pot_clay",
"DM_content": 0.24,
"FracR": 0.0,
"C_input_CropRes": 1.953409090909091,
"HarvestIndex": 0.69
},
{
"Name": "Starch_pot",
"DM_content": 0.24,
"FracR": 0.0,
"C_input_CropRes": 1.6670454545454545,
"HarvestIndex": 0.69
},
{
"Name": "Cons_pot_sand",
"DM_content": 0.24,
"FracR": 0.0,
"C_input_CropRes": 1.7897727272727275,
"HarvestIndex": 0.69
},
{
"Name": "Pot_sand",
"DM_content": 0.24,
"FracR": 0.0,
"C_input_CropRes": 1.953409090909091,
"HarvestIndex": 0.69
},
{
"Name": "Vegetables_root",
"DM_content": 0.099,
"FracR": 0.0,
"C_input_CropRes": 1.61648275862069,
"HarvestIndex": 0.627333333333333
},
{
"Name": "Vegetables_leaf",
"DM_content": 0.04575,
"FracR": 0.0,
"C_input_CropRes": 0.704347826086956,
"HarvestIndex": 0.56125
},
{
"Name": "Vegetables_cabbage",
"DM_content": 0.0837058823529412,
"FracR": 0.0,
"C_input_CropRes": 2.75625,
"HarvestIndex": 0.472941176470588
},
{
"Name": "Vegetables_stem",
"DM_content": 0.0752,
"FracR": 0.0,
"C_input_CropRes": 0.704347826086956,
"HarvestIndex": 0.602
},
{
"Name": "Pumpkin",
"DM_content": 0.183,
"FracR": 0.0,
"C_input_CropRes": 0.704347826086956,
"HarvestIndex": 0.56
},
{
"Name": "Chicory",
"DM_content": 0.233,
"FracR": 0.0,
"C_input_CropRes": 1.40869565217391,
"HarvestIndex": 0.6
},
{
"Name": "Courgette",
"DM_content": 0.048,
"FracR": 0.0,
"C_input_CropRes": 0.704347826086956,
"HarvestIndex": 0.40
},
{
"Name": "Other_veg",
"DM_content": 0.10967,
"FracR": 0.0,
"C_input_CropRes": 1.22840281644892,
"HarvestIndex": 0.54622
},
{
"Name": "Grasseed",
"DM_content": 0.85,
"FracR": 0.0,
"C_input_CropRes": 2.7155172413793105,
"HarvestIndex": 0.2
},
{
"Name": "Onion",
"DM_content": 0.25,
"FracR": 0.0,
"C_input_CropRes": 0.5625,
"HarvestIndex": 1.0
},
{
"Name": "Bulbs",
"DM_content": 0.25,
"FracR": 0.0,
"C_input_CropRes": 0.7575000000000001,
"HarvestIndex": 1.0
},
{
"Name": "Fallow",
"DM_content": 0.0,
"FracR": 0.0,
"C_input_CropRes": 0.0,
"HarvestIndex": 0.0
},
{
"Name": "Nurseries",
"DM_content": 0.25,
"FracR": 0.0,
"C_input_CropRes": 1.505,
"HarvestIndex": 0.85
},
{
"Name": "Pulses",
"DM_content": 0.85,
"FracR": 0.0,
"C_input_CropRes": 2.0454545454545454,
"HarvestIndex": 0.69
},
{
"Name": "Apples",
"DM_content": 0.14,
"FracR": 0.0,
"C_input_CropRes": 2.6,
"HarvestIndex": 1.0
},
{
"Name": "Pears",
"DM_content": 0.14,
"FracR": 0.0,
"C_input_CropRes": 2.6,
"HarvestIndex": 1.0
},
{
"Name": "Luzerne",
"DM_content": 0.25,
"FracR": 0.0,
"C_input_CropRes": 1.779,
"HarvestIndex": 0.5
},
{
"Name": "Other_crops",
"DM_content": 0.7,
"FracR": 0.0,
"C_input_CropRes": 2.0359063662409858,
"HarvestIndex": 0.5
},
{
"Name": "Other_seeds",
"DM_content": 0.85,
"FracR": 0.0,
"C_input_CropRes": 2.7155172413793105,
"HarvestIndex": 0.5
},
{
"Name": "Triticale",
"DM_content": 0.85,
"FracR": 0.5,
"C_input_CropRes": 2.2790322580645164,
"HarvestIndex": 0.46
},
{
"Name": "Rapeseed",
"DM_content": 0.85,
"FracR": 0.5,
"C_input_CropRes": 0.0,
"HarvestIndex": 0.69
},
{
"Name": "Strawberry",
"DM_content": 0.15,
"FracR": 0.0,
"C_input_CropRes": 2.0,
"HarvestIndex": 0.5
},
{
"Name": "Rye",
"DM_content": 0.85,
"FracR": 0.5,
"C_input_CropRes": 0.0,
"HarvestIndex": 0.46
},
{
"Name": "Other_fruits",
"DM_content": 0.15,
"FracR": 0.0,
"C_input_CropRes": 2.6,
"HarvestIndex": 1.0
},
{
"Name": "oats",
"DM_content": 0.85,
"FracR": 0.5,
"C_input_CropRes": 0.0,
"HarvestIndex": 0.46
},
{
"Name": "Green_manure",
"DM_content": 0.25,
"FracR": 0.0,
"C_input_CropRes": 3.7,
"HarvestIndex": 0.3
},
{
"Name": "Fibres",
"DM_content": 0.85,
"FracR": 0.0,
"C_input_CropRes": 0.13636363636363635,
"HarvestIndex": 0.92
},
{
"Name": "Sunflower",
"DM_content": 0.85,
"FracR": 0.0,
"C_input_CropRes": 0.0,
"HarvestIndex": 0.46
},
{
"Name": "Fodder_beet",
"DM_content": 0.25,
"FracR": 0.0,
"C_input_CropRes": 2.732142857142857,
"HarvestIndex": 0.69
},
{
"Name": "Other_cereals",
"DM_content": 0.85,
"FracR": 0.5,
"C_input_CropRes": 2.0359063662409853,
"HarvestIndex": 0.46
},
{
"Name": "Wine",
"DM_content": 0.15,
"FracR": 0.0,
"C_input_CropRes": 2.6,
"HarvestIndex": 0.7
},
{
"Name": "Miscanthus",
"DM_content": 1.0,
"FracR": 0.0,
"C_input_CropRes": 5.1,
"HarvestIndex": 0.444
},
{
"Name": "Switchgrass",
"DM_content": 1.0,
"FracR": 0.0,
"C_input_CropRes": 5.1,
"HarvestIndex": 0.444
},
{
"Name": "Willow",
"DM_content": 1.0,
"FracR": 0.0,
"C_input_CropRes": 2.6,
"HarvestIndex": 0.85
}
]
+78
View File
@@ -0,0 +1,78 @@
{
"StrawCrops": [
{
"StrawCrop": "Maize",
"DM_Content": 0.7
},
{
"StrawCrop": "Corn_cob_mix",
"DM_Content": 0.7
},
{
"StrawCrop": "Winter_wheat",
"DM_Content": 0.85
},
{
"StrawCrop": "Summer_wheat",
"DM_Content": 0.85
},
{
"StrawCrop": "Summer_barley",
"DM_Content": 0.85
},
{
"StrawCrop": "winter_barley",
"DM_Content": 0.85
},
{
"StrawCrop": "Rapeseed",
"DM_Content": 0.6
},
{
"StrawCrop": "Rye",
"DM_Content": 0.85
},
{
"StrawCrop": "oats",
"DM_Content": 0.85
},
{
"StrawCrop": "Sunflower",
"DM_Content": 0.6
},
{
"StrawCrop": "Other_cereals",
"DM_Content": 0.85
}
],
"GreenManureType": [
"Bladrammenas",
"GeleMosterd",
"Voederwikke",
"Afrikaantjes",
"JapanseHaver",
"ItaliaansRaaigras",
"Mengsel3soorten",
"Mengsel12soorten",
"EngelsRaaigras",
"Facelia",
"Grasland",
"Overig",
"Rietzwenkgras"
],
"Perennial": [
"Nurseries",
"Apples",
"Pears",
"Other_fruits",
"Wine",
"Miscanthus",
"Switchgrass",
"Willow"
],
"Grass_nat": [
"Perm_gras",
"Nat_gras",
"Gras"
]
}
File diff suppressed because one or more lines are too long
@@ -0,0 +1,76 @@
{
"ManureSources_liv": [
{
"ManureSource_liv": "WMGRAAS",
"Description": "Weidemest graasdieren"
},
{
"ManureSource_liv": "DMGRAAS",
"Description": "Drijfmest graasdieren"
},
{
"ManureSource_liv": "VMGRAAS",
"Description": "Vaste mest graasdieren"
},
{
"ManureSource_liv": "DMSTAL",
"Description": "Drijfmest staldieren"
},
{
"ManureSource_liv": "VMSTAL",
"Description": "Vaste mest staldieren"
},
{
"ManureSource_liv": "FRACDUN",
"Description": "Dunne Fractie"
},
{
"ManureSource_liv": "FRACDIK",
"Description": "Dikke Fractie"
},
{
"ManureSource_liv": "KMVERV",
"Description": "Kunstmestvervangers"
},
{
"ManureSource_liv": "DIGEST",
"Description": "Digestaat"
},
{
"ManureSource_liv": "CHAMPOST",
"Description": "Champost"
},
{
"ManureSource_liv": "SCHA_GEIT",
"Description": "Schapen/geitenmest"
},
{
"ManureSource_liv": "VMPIG",
"Description": "Vaste varkensmest"
},
{
"ManureSource_liv": "DM_ZEUG",
"Description": "Zeugendrijfmest"
},
{
"ManureSource_liv": "BOKASHI",
"Description": "Bokashi"
},
{
"ManureSource_liv": "OVERIG",
"Description": "Overig"
}
],
"composts": [
{
"compost": "COMPOST",
"Description": "compost"
}
],
"CarbonSource": [
"CarbonManure",
"CarbonResidues",
"CarbonGreenManure",
"CarbonCompost"
]
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,7 @@
{
"SoilType": [ "Moerig", "Veen", "Klei", "Zand", "Loss" ],
"MineralSoils": [ "Klei", "Zand" ],
"Months": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12", "Total", "Average" ],
"AllMonths": [ "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12" ],
"ClimateVar": [ "Evapotranspiration", "Precipitation", "Temperature" ]
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+66
View File
@@ -0,0 +1,66 @@
[
{
"ManCcont": "WMGRAAS",
"Value": 0.0356
},
{
"ManCcont": "DMGRAAS",
"Value": 0.0356
},
{
"ManCcont": "VMGRAAS",
"Value": 0.077385
},
{
"ManCcont": "DMSTAL",
"Value": 0.03955
},
{
"ManCcont": "VMSTAL",
"Value": 0.209715
},
{
"ManCcont": "COMPOST",
"Value": 0.10535
},
{
"ManCcont": "FRACDUN",
"Value": 0.01715
},
{
"ManCcont": "FRACDIK",
"Value": 0.0759
},
{
"ManCcont": "KMVERV",
"Value": 0.010585
},
{
"ManCcont": "DIGEST",
"Value": 0.01652
},
{
"ManCcont": "CHAMPOST",
"Value": 0.1050
},
{
"ManCcont": "SCHA_GEIT",
"Value": 0.09225
},
{
"ManCcont": "VMPIG",
"Value": 0.0765
},
{
"ManCcont": "DM_ZEUG",
"Value": 0.0125
},
{
"ManCcont": "BOKASHI",
"Value": 0.19
},
{
"ManCcont": "OVERIG",
"Value": 0.01652
}
]
File diff suppressed because one or more lines are too long
@@ -0,0 +1,303 @@
[
{
"CropCode": "1020101",
"CropName": "Wintertarwe",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": ""
},
{
"CropCode": "1020102",
"CropName": "Wintergerst",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": ""
},
{
"CropCode": "1020103",
"CropName": "Winterrogge",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": ""
},
{
"CropCode": "1020201",
"CropName": "Zomertarwe",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": ""
},
{
"CropCode": "1020202",
"CropName": "Zomergerst",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": ""
},
{
"CropCode": "1020203",
"CropName": "Zomerrogge",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": ""
},
{
"CropCode": "1030301",
"CropName": "Alexandrijnse klaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030302",
"CropName": "Bastaard klaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030303",
"CropName": "Hopklaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030304",
"CropName": "Inkarnaatklaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030305",
"CropName": "Perzische klaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030306",
"CropName": "Rode klaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030307",
"CropName": "Rolklaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030308",
"CropName": "Witte honingklaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030309",
"CropName": "Witte klaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030401",
"CropName": "Blauwe Lupine",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030402",
"CropName": "Gele Lupine",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030403",
"CropName": "Witte Lupine",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030501",
"CropName": "Voederwikke",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030502",
"CropName": "Bonte wikke",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Voederwikke"
},
{
"CropCode": "1030602",
"CropName": "Hanekam",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Overig"
},
{
"CropCode": "1040101",
"CropName": "Stoppelknol",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Overig"
},
{
"CropCode": "1040102",
"CropName": "Bladrammenas",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Bladrammenas"
},
{
"CropCode": "1040103",
"CropName": "Bruine mosterd",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "GeleMosterd"
},
{
"CropCode": "1040104",
"CropName": "Gele mosterd",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "GeleMosterd"
},
{
"CropCode": "1040105",
"CropName": "Zwarte mosterd",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "GeleMosterd"
},
{
"CropCode": "1040108",
"CropName": "Bladkool",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Overig"
},
{
"CropCode": "1040109",
"CropName": "Mergkool",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Overig"
},
{
"CropCode": "1040110",
"CropName": "Ethiopische mosterd",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "GeleMosterd"
},
{
"CropCode": "1040111",
"CropName": "Serepta mosterd",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "GeleMosterd"
},
{
"CropCode": "1040112",
"CropName": "Zwaardherik",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Overig"
},
{
"CropCode": "1050101",
"CropName": "Engels raaigras",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "EngelsRaaigras"
},
{
"CropCode": "1050102",
"CropName": "Frans raaigras",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "ItaliaansRaaigras"
},
{
"CropCode": "1050103",
"CropName": "Gekruist raaigras",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "ItaliaansRaaigras"
},
{
"CropCode": "1050104",
"CropName": "Italiaans raaigras",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "ItaliaansRaaigras"
},
{
"CropCode": "1050105",
"CropName": "Trosraaigras",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "ItaliaansRaaigras"
},
{
"CropCode": "1050106",
"CropName": "Westerwolds raaigras",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "ItaliaansRaaigras"
},
{
"CropCode": "1050201",
"CropName": "Roodzwenkgras",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Rietzwenkgras"
},
{
"CropCode": "1050408",
"CropName": "Sudangras",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Rietzwenkgras"
},
{
"CropCode": "1080107",
"CropName": "Facelia",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Facelia"
},
{
"CropCode": "1080108",
"CropName": "Spurrie",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Overig"
},
{
"CropCode": "1080109",
"CropName": "Afrikaantjes",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Afrikaantjes"
},
{
"CropCode": "1080110",
"CropName": "Raketblad",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Overig"
}
]
+1
View File
@@ -0,0 +1 @@
UTF-8
Binary file not shown.
+1
View File
@@ -0,0 +1 @@
PROJCS["RD_New",GEOGCS["GCS_Amersfoort",DATUM["D_Amersfoort",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Double_Stereographic"],PARAMETER["False_Easting",155000.0],PARAMETER["False_Northing",463000.0],PARAMETER["Central_Meridian",5.38763888888889],PARAMETER["Scale_Factor",0.9999079],PARAMETER["Latitude_Of_Origin",52.15616055555555],UNIT["Meter",1.0]]
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,10 @@
{
"LayerDepth": 25.0,
"kDPM": 10.0,
"kRPM": 0.3,
"kBIO": 0.66,
"kHUM": 0.02,
"StubbleFraction": 0.45,
"CarbonBiomass": 0.45,
"FracBelowGroundCinput": 0.25
}
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,123 @@
[
{
"ManureName": "Bladrammenas",
"GoodQuality": 3.573099415204678,
"AverageQuality": 2.5011695906432747,
"BadQuality": 1.786549707602339
},
{
"ManureName": "GeleMosterd",
"GoodQuality": 2.05696405648267,
"AverageQuality": 1.4398748395378689,
"BadQuality": 1.028482028241335
},
{
"ManureName": "Voederwikke",
"GoodQuality": 1.2933673469387754,
"AverageQuality": 0.9053571428571427,
"BadQuality": 0.6466836734693877
},
{
"ManureName": "Afrikaantjes",
"GoodQuality": 2.8392857142857153,
"AverageQuality": 1.9875000000000005,
"BadQuality": 1.4196428571428577
},
{
"ManureName": "JapanseHaver",
"GoodQuality": 2.5844583333333335,
"AverageQuality": 1.8091208333333333,
"BadQuality": 1.2922291666666668
},
{
"ManureName": "ItaliaansRaaigras",
"GoodQuality": 3.1635153508771934,
"AverageQuality": 2.2144607456140353,
"BadQuality": 1.5817576754385967
},
{
"ManureName": "Rogge",
"GoodQuality": 2.5,
"AverageQuality": 1.75,
"BadQuality": 1.25
},
{
"ManureName": "Graan",
"GoodQuality": 2.2,
"AverageQuality": 1.54,
"BadQuality": 1.1
},
{
"ManureName": "Haver",
"GoodQuality": 2.6,
"AverageQuality": 1.82,
"BadQuality": 1.3
},
{
"ManureName": "Gerst",
"GoodQuality": 2.55,
"AverageQuality": 1.785,
"BadQuality": 1.275
},
{
"ManureName": "Mengsel_groenbraak",
"GoodQuality": 2.8,
"AverageQuality": 1.96,
"BadQuality": 1.4
},
{
"ManureName": "Mengsel_natuurbraak",
"GoodQuality": 3.0,
"AverageQuality": 2.1,
"BadQuality": 1.5
},
{
"ManureName": "Mengsel_Nbron",
"GoodQuality": 2.8,
"AverageQuality": 1.96,
"BadQuality": 1.4
},
{
"ManureName": "Mengsel_Nvang",
"GoodQuality": 2.8,
"AverageQuality": 1.96,
"BadQuality": 1.4
},
{
"ManureName": "EngelsRaaigras",
"GoodQuality": 3.1635153508771934,
"AverageQuality": 2.2144607456140353,
"BadQuality": 1.5817576754385967
},
{
"ManureName": "Facelia",
"GoodQuality": 0.2925,
"AverageQuality": 0.20475,
"BadQuality": 0.14625
},
{
"ManureName": "Grasland",
"GoodQuality": 3.418421052631579,
"AverageQuality": 2.3928947368421056,
"BadQuality": 1.7092105263157895
},
{
"ManureName": "Overig",
"GoodQuality": 6.728475765306122,
"AverageQuality": 4.709933035714285,
"BadQuality": 3.364237882653061
},
{
"ManureName": "Rietzwenkgras",
"GoodQuality": 3.1635153508771934,
"AverageQuality": 2.2144607456140353,
"BadQuality": 1.5817576754385967
},
{
"ManureName": "Triticale",
"GoodQuality": 2.2,
"AverageQuality": 1.54,
"BadQuality": 1.1
}
]
File diff suppressed because it is too large Load Diff
-20
View File
@@ -1,20 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6</TargetFramework>
<AssemblyName>CarbonLib</AssemblyName>
<PackageId>CarbonLib</PackageId>
<RuntimeIdentifiers>win10-x64;ubuntu.16.04-x64</RuntimeIdentifiers>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<Version>4.13.0</Version>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Base.Core.Common.Geometry" Version="4.13.0-prerelease.2107" />
<PackageReference Include="NetTopologySuite" Version="2.5.0" />
<PackageReference Include="NetTopologySuite.IO.GeoJSON" Version="3.0.0" />
</ItemGroup>
</Project>
+9 -3
View File
@@ -1,9 +1,11 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30907.101
# Visual Studio Version 17
VisualStudioVersion = 17.14.36414.22 d17.14
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CarbonLib", "CarbonLib.csproj", "{51876378-DB3E-4D30-8EDA-83DDDCE4C4ED}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CarbonLib", "CarbonLib\CarbonLib.csproj", "{51876378-DB3E-4D30-8EDA-83DDDCE4C4ED}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CarbonConsoleApp", "CarbonConsoleApp\CarbonConsoleApp.csproj", "{A961AA67-3D88-E648-51CC-5DAC78203614}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -15,6 +17,10 @@ Global
{51876378-DB3E-4D30-8EDA-83DDDCE4C4ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
{51876378-DB3E-4D30-8EDA-83DDDCE4C4ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
{51876378-DB3E-4D30-8EDA-83DDDCE4C4ED}.Release|Any CPU.Build.0 = Release|Any CPU
{A961AA67-3D88-E648-51CC-5DAC78203614}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A961AA67-3D88-E648-51CC-5DAC78203614}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A961AA67-3D88-E648-51CC-5DAC78203614}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A961AA67-3D88-E648-51CC-5DAC78203614}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -1,11 +1,7 @@
using CarbonService.Models;
using FarmMapsAPI.Carbon;
using FarmMapsAPI.Carbon.Models;
using CarbonLib.Carbon;
using CarbonService.Models;
using CarbonLib.Carbon.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CarbonLib
{
@@ -14,6 +10,7 @@ namespace CarbonLib
public abstract CarbonRequest MapFarmMapsToMiterra(FarmMapsCarbonRequest farmInput);
public abstract string Validate(CarbonRequest farmInput);
public abstract CarbonSummary Calculate(CarbonRequest farmInput);
public abstract CarbonSummary CalculateClimateScenario(CarbonRequest farmInput);
public double? GetCropYield(string cropCode, int year, int postalCode)
{
@@ -1,18 +1,12 @@
using Base.Core.Common;
using Base.Core.Common.Geometry;
using CarbonLib;
using CarbonService.Models;
using FarmMapsAPI.Carbon.Models;
using NetTopologySuite.Geometries;
using OSGeo.OGR;
using CarbonService.Models;
using CarbonLib.Carbon.Models;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
namespace FarmMapsAPI.Carbon
namespace CarbonLib.Carbon
{
public class CarbonCalculation24 : ICarbonCalculation
{
@@ -230,9 +224,34 @@ namespace FarmMapsAPI.Carbon
return cropYield;
}
public CarbonSummary CalculateClimateScenario(CarbonRequest farmInput)
{
var simpleResult = Calculate(farmInput);
return simpleResult;
}
private List<double> GetMinMaxMedian(List<YearSummary> yearData, int year, string varName)
{
if (yearData.Count == 0)
{
}
var minValue = (double)yearData.Min(s => s.GetType().GetProperty(varName).GetValue(s));
var medianValue = CalculateMedian(yearData.Select(s => Convert.ToDouble(s.GetType().GetProperty(varName).GetValue(s))).ToList());
var maxValue = (double)yearData.Max(s => s.GetType().GetProperty(varName).GetValue(s));
return new List<double> { minValue, medianValue, maxValue };
}
public CarbonSummary Calculate(CarbonRequest farmInput)
{
return Calculate(farmInput, 0);
}
public CarbonSummary Calculate(CarbonRequest farmInput, int climateScenarioNumber = 0, Dictionary<(string, string, int), ClimateVariable> climate = null)
{
var knmiFile = Helper.GetPlatformIndependentDirectoryPath(Path.Combine(configPath, "KNMI_data.csv"));
var climateFile = Helper.GetPlatformIndependentDirectoryPath(Path.Combine(configPath, "klimaatscenario.csv"));
// soilTypeData (external input)
var soilTypeData = GetSoilTypeData(farmInput);
@@ -405,7 +424,15 @@ namespace FarmMapsAPI.Carbon
}
cropAreaFarm.Add(("Farmname", loopYear), croplist);
Dictionary<string, List<ClimateVariable>> climateVariable = GetClimateVariable(knmiFile, dataTransformationSet, gisSoilSet, loopYear, farmInput);
Dictionary<string, List<ClimateVariable>> climateVariable;
if (climateScenarioNumber == 0)
{
climateVariable = GetClimateVariable(knmiFile, dataTransformationSet, gisSoilSet, loopYear, farmInput, climateFile, climateScenarioNumber);
}
else
{
climateVariable = GetClimateVariable2(knmiFile, dataTransformationSet, gisSoilSet, loopYear, farmInput, climateFile, climateScenarioNumber, climate);
}
// Crop and soil areas
// soilArea keys: (fieldname, year, soil)
@@ -1926,7 +1953,7 @@ namespace FarmMapsAPI.Carbon
return soilBulkDensities;
}
private static Dictionary<string, List<ClimateVariable>> GetClimateVariable(string knmiFile, SetsForDataTransformation dataTransformationSet, GIS_Soils_Sets gisSoilSet, int loopYear, CarbonRequest farmInput)
private Dictionary<(string, string, int), ClimateVariable> InitClimateFile(string knmiFile, string climateFile = null, int climateScenarioNumber = 0)
{
var data = new List<string>();
using (StreamReader r = new StreamReader(knmiFile))
@@ -1939,18 +1966,70 @@ namespace FarmMapsAPI.Carbon
}
var farmPostalCode = farmInput.PostalCode;
if (farmInput.geometry != null)
var dataClimate = new List<string>();
if (climateFile != null && climateScenarioNumber > 0)
{
// determine poatalcode from geometry
string res = GetPostalCodeFromGeometry(farmInput.geometry);
farmPostalCode = 8211;
using (StreamReader r = new StreamReader(climateFile))
{
string line;
while ((line = r.ReadLine()) != null)
{
dataClimate.Add(line);
}
}
}
var farmZone = dataTransformationSet.KNMI_zone_Reg.SingleOrDefault(x => x.Reg.Contains(farmPostalCode)).KNMI_zone;
// climate (zone, month, year)
var climate = new Dictionary<(string, string, int), ClimateVariable>();
if (dataClimate.Count() > 0)
{
foreach (var row in dataClimate)
{
if (string.IsNullOrEmpty(row) || row.Split(';').Length == 0 || row.Split(';')[0] == "KNMI_zone")
{
continue;
}
var rowArr = row.Split(';');
if (int.Parse(rowArr[3]) == climateScenarioNumber)
{
climate.Add(($"zone{rowArr[0]}", $"M{rowArr[2]}", int.Parse(rowArr[1])), new ClimateVariable(double.Parse(rowArr[4], CultureInfo.InvariantCulture), double.Parse(rowArr[5], CultureInfo.InvariantCulture), double.Parse(rowArr[6], CultureInfo.InvariantCulture)));
}
}
foreach (var row in data)
{
if (string.IsNullOrEmpty(row) || row.Split(';').Length == 0 || string.IsNullOrEmpty(row.Split(';')[0]))
{
continue;
}
var rowArr = row.Split(';');
if (int.Parse(rowArr[2]) <= 2023)
{
if (climate.Any(x => x.Key.Item1 == rowArr[0] && x.Key.Item2 == rowArr[1] && x.Key.Item3 == int.Parse(rowArr[2])))
{
climate[(rowArr[0], rowArr[1], int.Parse(rowArr[2]))].Temperature = double.Parse(rowArr[3], CultureInfo.InvariantCulture);
climate[(rowArr[0], rowArr[1], int.Parse(rowArr[2]))].Precipitation = double.Parse(rowArr[4], CultureInfo.InvariantCulture);
climate[(rowArr[0], rowArr[1], int.Parse(rowArr[2]))].Evapotranspiration = double.Parse(rowArr[5], CultureInfo.InvariantCulture);
}
else
{
climate.Add((rowArr[0], rowArr[1], int.Parse(rowArr[2])), new ClimateVariable(double.Parse(rowArr[3], CultureInfo.InvariantCulture), double.Parse(rowArr[4], CultureInfo.InvariantCulture), double.Parse(rowArr[5], CultureInfo.InvariantCulture)));
}
}
else
{
if (climate.Any(x => x.Key.Item1 == rowArr[0] && x.Key.Item2 == rowArr[1] && x.Key.Item3 == int.Parse(rowArr[2])))
{
continue;
}
climate.Add((rowArr[0], rowArr[1], int.Parse(rowArr[2])), new ClimateVariable(double.Parse(rowArr[3], CultureInfo.InvariantCulture), double.Parse(rowArr[4], CultureInfo.InvariantCulture), double.Parse(rowArr[5], CultureInfo.InvariantCulture)));
}
}
}
else
{
foreach (var row in data)
{
if (string.IsNullOrEmpty(row) || row.Split(';').Length == 0 || string.IsNullOrEmpty(row.Split(';')[0]))
@@ -1960,6 +2039,120 @@ namespace FarmMapsAPI.Carbon
var rowArr = row.Split(';');
climate.Add((rowArr[0], rowArr[1], int.Parse(rowArr[2])), new ClimateVariable(double.Parse(rowArr[3], CultureInfo.InvariantCulture), double.Parse(rowArr[4], CultureInfo.InvariantCulture), double.Parse(rowArr[5], CultureInfo.InvariantCulture)));
}
}
return climate;
}
private static Dictionary<string, List<ClimateVariable>> GetClimateVariable2(string knmiFile, SetsForDataTransformation dataTransformationSet, GIS_Soils_Sets gisSoilSet, int loopYear, CarbonRequest farmInput, string climateFile = null, int climateScenarioNumber = 0, Dictionary<(string, string, int), ClimateVariable> climate = null)
{
var climateVariable = new Dictionary<string, List<ClimateVariable>>();
var farmPostalCode = farmInput.PostalCode;
//if (farmInput.geometry != null)
//{
// // determine poatalcode from geometry
// string res = GetPostalCodeFromGeometry(farmInput.geometry);
// farmPostalCode = 8211;
//}
var farmZone = dataTransformationSet.KNMI_zone_Reg.SingleOrDefault(x => x.Reg.Contains(farmPostalCode)).KNMI_zone;
foreach (var field in farmInput.CropFields.Select(s => s.Name))
{
var monthClimateList = new List<ClimateVariable>();
foreach (var month in gisSoilSet.AllMonths)
{
var climateYear = loopYear > 2050 || 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);
}
climateVariable.Add(field, monthClimateList);
}
return climateVariable;
}
private static Dictionary<string, List<ClimateVariable>> GetClimateVariable(string knmiFile, SetsForDataTransformation dataTransformationSet, GIS_Soils_Sets gisSoilSet, int loopYear, CarbonRequest farmInput, string climateFile = null, int climateScenarioNumber = 0)
{
var data = new List<string>();
using (StreamReader r = new StreamReader(knmiFile))
{
string line;
while ((line = r.ReadLine()) != null)
{
data.Add(line);
}
}
var dataClimate = new List<string>();
if (climateFile != null && climateScenarioNumber > 0)
{
using (StreamReader r = new StreamReader(climateFile))
{
string line;
while ((line = r.ReadLine()) != null)
{
dataClimate.Add(line);
}
}
}
var farmPostalCode = farmInput.PostalCode;
//if (farmInput.geometry != null)
//{
// // determine poatalcode from geometry
// string res = GetPostalCodeFromGeometry(farmInput.geometry);
// farmPostalCode = 8211;
//}
var farmZone = dataTransformationSet.KNMI_zone_Reg.SingleOrDefault(x => x.Reg.Contains(farmPostalCode)).KNMI_zone;
// climate (zone, month, year)
var climate = new Dictionary<(string, string, int), ClimateVariable>();
if (dataClimate.Count() > 0)
{
foreach (var row in dataClimate)
{
if (string.IsNullOrEmpty(row) || row.Split(';').Length == 0 || row.Split(';')[0] == "KNMI_zone")
{
continue;
}
var rowArr = row.Split(';');
if (int.Parse(rowArr[3]) == climateScenarioNumber)
{
climate.Add(($"zone{rowArr[0]}", $"M{rowArr[2]}", int.Parse(rowArr[1])), new ClimateVariable(double.Parse(rowArr[4], CultureInfo.InvariantCulture), double.Parse(rowArr[5], CultureInfo.InvariantCulture), double.Parse(rowArr[6], CultureInfo.InvariantCulture)));
}
}
foreach (var row in data)
{
if (string.IsNullOrEmpty(row) || row.Split(';').Length == 0 || string.IsNullOrEmpty(row.Split(';')[0]))
{
continue;
}
var rowArr = row.Split(';');
if (climate.Any(x => x.Key.Item1 == rowArr[0] && x.Key.Item2 == rowArr[1] && x.Key.Item3 == int.Parse(rowArr[2])))
{
continue;
}
climate.Add((rowArr[0], rowArr[1], int.Parse(rowArr[2])), new ClimateVariable(double.Parse(rowArr[3], CultureInfo.InvariantCulture), double.Parse(rowArr[4], CultureInfo.InvariantCulture), double.Parse(rowArr[5], CultureInfo.InvariantCulture)));
}
}
else
{
foreach (var row in data)
{
if (string.IsNullOrEmpty(row) || row.Split(';').Length == 0 || string.IsNullOrEmpty(row.Split(';')[0]))
{
continue;
}
var rowArr = row.Split(';');
climate.Add((rowArr[0], rowArr[1], int.Parse(rowArr[2])), new ClimateVariable(double.Parse(rowArr[3], CultureInfo.InvariantCulture), double.Parse(rowArr[4], CultureInfo.InvariantCulture), double.Parse(rowArr[5], CultureInfo.InvariantCulture)));
}
}
var climateVariable = new Dictionary<string, List<ClimateVariable>>();
@@ -2020,40 +2213,40 @@ namespace FarmMapsAPI.Carbon
return carbonInputGreenManure;
}
private static string GetPostalCodeFromGeometry(NetTopologySuite.Geometries.Geometry geometry)
{
//// Set crs default geometry factory to EPSG:4326
NetTopologySuite.NtsGeometryServices.Instance = new NetTopologySuite.NtsGeometryServices(NetTopologySuite.Geometries.Implementation.CoordinateArraySequenceFactory.Instance,
new PrecisionModel(PrecisionModels.Floating), 4326);
// Register all vector drivers
Ogr.RegisterAll();
//private static string GetPostalCodeFromGeometry(NetTopologySuite.Geometries.Geometry geometry)
//{
// //// Set crs default geometry factory to EPSG:4326
// NetTopologySuite.NtsGeometryServices.Instance = new NetTopologySuite.NtsGeometryServices(NetTopologySuite.Geometries.Implementation.CoordinateArraySequenceFactory.Instance,
// new PrecisionModel(PrecisionModels.Floating), 4326);
// // Register all vector drivers
// Ogr.RegisterAll();
// item.geometry is always in WGS84 so reproject to EPSG:28992
var localReference = new LocalReference("EPSG:28992");
var localGeometry = localReference.ToLocalPolygon(geometry as Polygon);
// // item.geometry is always in WGS84 so reproject to EPSG:28992
// var localReference = new LocalReference("EPSG:28992");
// var localGeometry = localReference.ToLocalPolygon(geometry as Polygon);
// get postal code from shape file
// open shape file
using (var postalcodes = Ogr.Open("config/PC4/PC4.shp", 0))
{
// get first layer
var pc4Layer = postalcodes.GetLayerByIndex(0);
// // get postal code from shape file
// // open shape file
// using (var postalcodes = Ogr.Open("config/PC4/PC4.shp", 0))
// {
// // get first layer
// var pc4Layer = postalcodes.GetLayerByIndex(0);
// set spatial filter to geometry ( only intersecting features are retrieved )
pc4Layer.SetSpatialFilter(localGeometry.Centroid.ToOGRGeometry());
// // set spatial filter to geometry ( only intersecting features are retrieved )
// pc4Layer.SetSpatialFilter(localGeometry.Centroid.ToOGRGeometry());
// get next feature
var pc4Feature = pc4Layer.GetNextFeature();
// // get next feature
// var pc4Feature = pc4Layer.GetNextFeature();
// if feature retrieved get the PC4 attribute from it
if (pc4Feature is object)
{
return pc4Feature.GetFieldAsString("PC4");
}
}
// // if feature retrieved get the PC4 attribute from it
// if (pc4Feature is object)
// {
// return pc4Feature.GetFieldAsString("PC4");
// }
// }
return "";
}
// return "";
//}
private string MapSoil(string soil)
{
@@ -2069,5 +2262,29 @@ namespace FarmMapsAPI.Carbon
}
}
private static double CalculateMedian(List<double> numbers)
{
if (numbers == null || numbers.Count == 0)
{
throw new InvalidOperationException("The list is empty or null.");
}
numbers.Sort();
int count = numbers.Count;
if (count % 2 == 0)
{
// Even number of elements
double mid1 = numbers[count / 2 - 1];
double mid2 = numbers[count / 2];
return (mid1 + mid2) / 2.0;
}
else
{
// Odd number of elements
return numbers[count / 2];
}
}
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+16
View File
@@ -0,0 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net8.0;net10.0</TargetFrameworks>
<AssemblyName>CarbonLib</AssemblyName>
<PackageId>CarbonLib</PackageId>
<RuntimeIdentifiers>win-x64;linux-x64;linux-musl-x64</RuntimeIdentifiers>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<Version>4.22.0</Version>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="NetTopologySuite" Version="2.5.0" />
<PackageReference Include="NetTopologySuite.IO.GeoJSON" Version="3.0.0" />
</ItemGroup>
</Project>
+1 -1
View File
@@ -5,7 +5,7 @@ using System.IO;
using System.Linq;
using System.Threading.Tasks;
namespace FarmMapsAPI.Carbon
namespace CarbonLib.Carbon
{
public class GamsSets
{
+13
View File
@@ -0,0 +1,13 @@
using System.IO;
namespace CarbonLib
{
public class Helper
{
public static string GetPlatformIndependentDirectoryPath(string path)
{
return path.Replace(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
}
}
}
@@ -1,18 +1,19 @@
using CarbonService.Models;
using FarmMapsAPI.Carbon.Models;
using CarbonLib.Carbon.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FarmMapsAPI.Carbon
namespace CarbonLib.Carbon
{
public interface ICarbonCalculation
{
string Validate(CarbonRequest farmInput);
CarbonRequest MapFarmMapsToMiterra(FarmMapsCarbonRequest farmInput);
CarbonSummary Calculate(CarbonRequest farmInput);
CarbonSummary CalculateClimateScenario(CarbonRequest farmInput);
double? GetCropYield(string cropCode, int year, int postalCode);
}
}
@@ -3,7 +3,7 @@ using System;
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
namespace CarbonLib.Carbon.Models
{
public class CarbonSummary
{
@@ -11,6 +11,14 @@ namespace FarmMapsAPI.Carbon.Models
public List<CropFieldSummary> CropField { get; set; }
}
public class CarbonSummaryList
{
[JsonProperty("cropFieldClimate")]
public List<CropFieldSummaryList> CropFieldClimate { get; set; }
[JsonProperty("cropField")]
public CarbonSummary CarbonSummary { get; set; }
}
public class CropFieldSummary
{
[JsonProperty("name")]
@@ -19,6 +27,14 @@ namespace FarmMapsAPI.Carbon.Models
public List<YearSummary> Summary { get; set; }
}
public class CropFieldSummaryList
{
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("summary")]
public List<YearSummaryClimate> SummaryList { get; set; }
}
public class YearSummary
{
[JsonProperty("crop")]
@@ -37,6 +53,8 @@ namespace FarmMapsAPI.Carbon.Models
public double IniCcontent { get; set; }
[JsonProperty("oM_ini")]
public double OM_ini { get; set; }
[JsonProperty("oM_ini_Climate")]
public List<double> OM_ini_Climate { get; set; }
[JsonProperty("cO2seq")]
public double CO2seq { get; set; }
[JsonProperty("soC_CarbonCompost")]
@@ -51,6 +69,39 @@ namespace FarmMapsAPI.Carbon.Models
public double Emision { get; set; }
}
public class YearSummaryClimate
{
[JsonProperty("crop")]
public string Crop { get; set; }
[JsonProperty("year")]
public int Year { get; set; }
[JsonProperty("bulk_Density")]
public List<double> Bulk_Density { get; set; }
[JsonProperty("total_crop_area")]
public double Total_crop_area { get; set; }
[JsonProperty("balance")]
public List<double> Balance { get; set; }
[JsonProperty("initial")]
public List<double> Initial { get; set; }
[JsonProperty("iniCcontent")]
public List<double> IniCcontent { get; set; }
[JsonProperty("oM_ini")]
public List<double> OM_ini { get; set; }
[JsonProperty("cO2seq")]
public List<double> CO2seq { get; set; }
[JsonProperty("soC_CarbonCompost")]
public List<double> SOC_CarbonCompost { get; set; }
[JsonProperty("soC_CarbonGreenManure")]
public List<double> SOC_CarbonGreenManure { get; set; }
[JsonProperty("soC_CarbonResidues")]
public List<double> SOC_CarbonResidues { get; set; }
[JsonProperty("soC_CarbonManure")]
public List<double> SOC_CarbonManure { get; set; }
[JsonProperty("emision")]
public List<double> Emision { get; set; }
}
public class FarmYearSummary
{
[JsonProperty("year")]
@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
namespace CarbonLib.Carbon.Models
{
public class ClimateVariable
{
@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
namespace CarbonLib.Carbon.Models
{
public class ColumnValue
{
@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
namespace CarbonLib.Carbon.Models
{
public class CropCoverMonthsModel
{
@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
namespace CarbonLib.Carbon.Models
{
public class CropPropertyModel
{
@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
namespace CarbonLib.Carbon.Models
{
public class StrawCrp
{
@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
namespace CarbonLib.Carbon.Models
{
public class YearData
{
@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
namespace CarbonLib.Carbon.Models
{
public class ManureSourcesLiv
{
@@ -9,11 +9,11 @@ using System.Runtime.Serialization;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
namespace FarmMapsAPI.Carbon.Models
namespace CarbonLib.Carbon.Models
{
public class FarmMapsCarbonRequest
{
public int? ModelYear { get; set; }
public string ModelYear { get; set; }
public string ScenarioName { get; set; }
public int PostalCode { get; set; }
@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
namespace CarbonLib.Carbon.Models
{
public class GIS_Soils_Sets
{
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
namespace CarbonLib.Carbon.Models
{
public class GamsThreeKeyParameter
{
@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
namespace CarbonLib.Carbon.Models
{
public class ManCcontModel
{
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace FarmMapsAPI.Carbon.Models
namespace CarbonLib.Carbon.Models
{
public class MappingCropFarmmapsMiterraRothC
{
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace FarmMapsAPI.Carbon.Models
namespace CarbonLib.Carbon.Models
{
public class MappingGreenManureFarmmapsMiterraRothC
{
@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
namespace CarbonLib.Carbon.Models
{
public class ParameterSet
{
@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
namespace CarbonLib.Carbon.Models
{
public class KNMIZoneReg
{
@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
namespace CarbonLib.Carbon.Models
{
public class SoilBulkDensityType
{
@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
namespace CarbonLib.Carbon.Models
{
public class SoilPropertyType
{
@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
namespace CarbonLib.Carbon.Models
{
public class YieldGreenManureModel
{
-16
View File
@@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<!--To inherit the global NuGet package sources remove the <clear/> line below -->
<clear />
<add key="akkerweb" value="https://repository.akkerweb.nl/repository/nuget-group/" />
<add key="NPGSQL Unstable" value="https://www.myget.org/F/npgsql-unstable/api/v3/index.json" />
<add key="NetTopologySuite" value="https://www.myget.org/F/nettopologysuite/api/v3/index.json" />
</packageSources>
<packageSourceCredentials>
<akkerweb>
<add key="Username" value="akkerweb" />
<add key="ClearTextPassword" value="1QTrg6g[*" />
</akkerweb>
</packageSourceCredentials>
</configuration>
+21
View File
@@ -1,3 +1,24 @@
# CarbonLib
#
Library with model based on the scientifically acknowledged carbon model RothC.
The code is written in C# .NET Core and it is adapted from a project written in GAMS.
Test console app is included with an example input request. The output in written to a file.
## Building a sample
Build the sample using the .NET Core CLI, which is installed with [the .NET Core SDK](https://www.microsoft.com/net/download). Then run
these commands from the CLI in the directory of the CarbonConsoleApp:
```console
dotnet build
dotnet run
```
This will install any needed dependencies, build the project, and run
the project respectively.
For questions regarding the model: chantal.hendriks@wur.nl