moved to logic from api to lib
All checks were successful
FarmMaps.Develop/CarbonLib/pipeline/head This commit looks good

This commit is contained in:
2021-06-21 10:25:05 +02:00
parent 28dbf4d098
commit bd98adc4cb
49 changed files with 60894 additions and 0 deletions

1975
CarbonCalculation.cs Normal file

File diff suppressed because it is too large Load Diff

83
CarbonLib.csproj Normal file
View File

@@ -0,0 +1,83 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</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>1.0.0</Version>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Base.Core.Common" Version="1.0.5.33-prerelease" />
<PackageReference Include="Base.Core.Common.Geometry" Version="1.0.12.2000-prerelease" />
<PackageReference Include="NetTopologySuite" Version="2.0.0" />
<PackageReference Include="NetTopologySuite.IO.GeoJSON" Version="2.0.4" />
</ItemGroup>
<ItemGroup>
<None Update="config\CropCoverMonth.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="config\CropProperties.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="config\CropSets.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="config\CropYield.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="config\CropYield.json.old">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="config\Farm_input_sets.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="config\GIS_Soil_Sets.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="config\KNMI_data.csv">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="config\ManCcont.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="config\Mapping\MappingCropsFarmmapsMiterraRothC.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="config\Mapping\MappingGreenManureFarmmapsMiterraRothC.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="config\ParametersRothC.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="config\PC4\PC4.cpg">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="config\PC4\PC4.dbf">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="config\PC4\PC4.prj">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="config\PC4\PC4.shp">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="config\PC4\PC4.shx">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="config\RegionSets.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="config\SetsForDataTransformation.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="config\YieldGreenManure.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>

25
CarbonLib.sln Normal file
View File

@@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30907.101
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CarbonLib", "CarbonLib.csproj", "{51876378-DB3E-4D30-8EDA-83DDDCE4C4ED}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{51876378-DB3E-4D30-8EDA-83DDDCE4C4ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{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
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {CC23AC67-85D5-4588-AD43-33EA50932534}
EndGlobalSection
EndGlobal

23
GamsSets.cs Normal file
View File

@@ -0,0 +1,23 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
namespace FarmMapsAPI.Carbon
{
public class GamsSets
{
public static T ReadSets<T>(string jsonFile)
{
T data;
using (StreamReader r = new StreamReader(jsonFile))
{
string json = r.ReadToEnd();
data = JsonConvert.DeserializeObject<T>(json);
}
return data;
}
}
}

42
Jenkinsfile vendored Normal file
View File

@@ -0,0 +1,42 @@
pipeline {
agent any
environment {
APP_VERSION_PREFIX=sh(script: ' cat *.csproj| xmlstarlet sel -t -m "/Project/PropertyGroup/Version" -v . -n|awk -v def="1.0.0" "{print} END { if(NR==0) {print def} }"', returnStdout: true).trim()
APP_NAME=sh(script: ' cat *.csproj| xmlstarlet sel -t -m "/Project/PropertyGroup/AssemblyName" -v . -n|awk -v def="App" "{print tolower(\\$0)} END { if(NR==0) {print def} }"', returnStdout: true).trim()
APP_VERSION="${APP_VERSION_PREFIX + '.' + env.BUILD_NUMBER}"
}
stages {
stage('Dotnet Restore') {
steps {
sh '''dotnet restore CarbonLib.csproj'''
}
}
stage('Dotnet Build') {
steps {
sh '''dotnet build CarbonLib.csproj'''
}
}
stage('Dotnet Package') {
steps {
sh '''rm -rf nuget
dotnet pack -c release -o nuget -p:PackageVersion=${APP_VERSION} CarbonLib.csproj'''
}
}
stage('Dotnet Publish') {
steps {
sh '''dotnet nuget push nuget/*.nupkg -k 0c3e3afc-935b-3db1-b023-e0d4799e674d -s https://repository.akkerweb.nl/repository/nuget-hosted/'''
}
}
}
post {
always {
emailext (
body: '${DEFAULT_CONTENT}',
mimeType: 'text/html',
replyTo: '${DEFAULT_REPLYTO}',
subject: '${DEFAULT_SUBJECT}',
to: emailextrecipients([[$class: 'CulpritsRecipientProvider'], [$class: 'RequesterRecipientProvider']])
)
}
}
}

42
Jenkinsfile.develop Normal file
View File

@@ -0,0 +1,42 @@
pipeline {
agent any
environment {
APP_VERSION_PREFIX=sh(script: ' cat *.csproj| xmlstarlet sel -t -m "/Project/PropertyGroup/Version" -v . -n|awk -v def="1.0.0" "{print} END { if(NR==0) {print def} }"', returnStdout: true).trim()
APP_NAME=sh(script: ' cat *.csproj| xmlstarlet sel -t -m "/Project/PropertyGroup/AssemblyName" -v . -n|awk -v def="App" "{print tolower(\\$0)} END { if(NR==0) {print def} }"', returnStdout: true).trim()
APP_VERSION="${APP_VERSION_PREFIX + '-prerelease.' + env.BUILD_NUMBER}"
}
stages {
stage('Dotnet Restore') {
steps {
sh '''dotnet restore CarbonLib.csproj'''
}
}
stage('Dotnet Build'){
steps {
sh '''dotnet build CarbonLib.csproj'''
}
}
stage('Dotnet Package') {
steps {
sh '''rm -rf nuget
dotnet pack -c debug -o nuget -p:PackageVersion=${APP_VERSION} CarbonLib.csproj'''
}
}
stage('Dotnet Publish') {
steps {
sh '''dotnet nuget push nuget/*.nupkg -k 0c3e3afc-935b-3db1-b023-e0d4799e674d -s https://repository.akkerweb.nl/repository/nuget-hosted/'''
}
}
}
post {
always {
emailext (
body: '${DEFAULT_CONTENT}',
mimeType: 'text/html',
replyTo: '${DEFAULT_REPLYTO}',
subject: '${DEFAULT_SUBJECT}',
to: emailextrecipients([[$class: 'CulpritsRecipientProvider'], [$class: 'RequesterRecipientProvider']])
)
}
}
}

97
Models/CarbonRequest.cs Normal file
View File

@@ -0,0 +1,97 @@
using NetTopologySuite.Geometries;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Runtime.Serialization;
using System.Threading.Tasks;
namespace CarbonService.Models
{
public class CarbonRequest
{
public Geometry geometry { get; set; }
[Required]
public int PostalCode { get; set; }
public List<CropField> CropFields { get; set; }
//public List<OrgManureApplied> OrgManureApplied { get; set; }
}
public class CropField
{
[Required]
public string Name { get; set; }
[Required]
public double Area { get; set; }
[Required]
public string SoilType { get; set; }
[Required]
public SoilProperty SoilProperty { get; set; }
[Required]
public List<HistoricalCropData> HistoricalCropData { get; set; }
public List<GreenManure> GreenManures { get; set; }
}
public class SoilProperty
{
public double? OM_Const { get; set; }
public double? Clay_Content { get; set; }
}
public class OrgManureApplied
{
[Required]
public string Crop { get; set; }
public List<OrganicManureType> OrganicManures { get; set; }
public int? CropYield { get; set; }
public bool CropRes { get; set; }
}
public class OrganicManureType
{
[Required]
public string Type { get; set; }
[Required]
public double Quantity { get; set; }
}
public class HistoricalCropData
{
[Required]
public int Year { get; set; }
//[Required]
//public List<string> Crops { get; set; }
[Required]
public List<OrgManureApplied> Crops { get; set; }
}
public class GreenManure
{
[Required]
public int Year { get; set; }
[Required]
public List<GreenManureType> GreenManureTypes { get; set; }
}
public class GreenManureType
{
[Required]
public string Type { get; set; }
//public string Quality { get; set; }
[JsonConverter(typeof(StringEnumConverter))]
public Quality Quality { get; set; }
}
public enum Quality
{
[EnumMember(Value = "Goed")]
Good,
[EnumMember(Value = "Matig")]
Average,
[EnumMember(Value = "Slecht")]
Bad
}
}

83
Models/CarbonSummary.cs Normal file
View File

@@ -0,0 +1,83 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
{
public class CarbonSummary
{
[JsonProperty("cropField")]
public List<CropFieldSummary> CropField { get; set; }
[JsonProperty("farmSummary")]
public List<FarmYearSummary> FarmSummary { get; set; }
}
public class CropFieldSummary
{
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("summary")]
public List<YearSummary> Summary { get; set; }
}
public class YearSummary
{
[JsonProperty("year")]
public int Year { get; set; }
[JsonProperty("bulk_Density")]
public double Bulk_Density { get; set; }
[JsonProperty("total_crop_area")]
public double Total_crop_area { get; set; }
[JsonProperty("balance")]
public double Balance { get; set; }
[JsonProperty("initial")]
public double Initial { get; set; }
[JsonProperty("iniCcontent")]
public double IniCcontent { get; set; }
[JsonProperty("oM_ini")]
public double OM_ini { get; set; }
[JsonProperty("cO2seq")]
public double CO2seq { get; set; }
[JsonProperty("soC_CarbonCompost")]
public double SOC_CarbonCompost { get; set; }
[JsonProperty("soC_CarbonGreenManure")]
public double SOC_CarbonGreenManure { get; set; }
[JsonProperty("soC_CarbonResidues")]
public double SOC_CarbonResidues { get; set; }
[JsonProperty("soC_CarbonManure")]
public double SOC_CarbonManure { get; set; }
[JsonProperty("emision")]
public double Emision { get; set; }
}
public class FarmYearSummary
{
[JsonProperty("year")]
public int Year { get; set; }
[JsonProperty("total_crop_area")]
public double Total_crop_area { get; set; }
[JsonProperty("balance")]
public double Balance { get; set; }
[JsonProperty("initial")]
public double Initial { get; set; }
[JsonProperty("iniCcontent")]
public double IniCcontent { get; set; }
[JsonProperty("oM_ini")]
public double OM_ini { get; set; }
[JsonProperty("cO2seq")]
public double CO2seq { get; set; }
[JsonProperty("cO2seq_total")]
public double CO2seq_total { get; set; }
[JsonProperty("soC_CarbonCompost")]
public double SOC_CarbonCompost { get; set; }
[JsonProperty("soC_CarbonGreenManure")]
public double SOC_CarbonGreenManure { get; set; }
[JsonProperty("soC_CarbonResidues")]
public double SOC_CarbonResidues { get; set; }
[JsonProperty("soC_CarbonManure")]
public double SOC_CarbonManure { get; set; }
[JsonProperty("emision")]
public double Emision { get; set; }
}
}

20
Models/ClimateVariable.cs Normal file
View File

@@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
{
public class ClimateVariable
{
public double Temperature { get; set; }
public double Precipitation { get; set; }
public double Evapotranspiration { get; set; }
public ClimateVariable(double temperature, double precipitation, double evapoTranspiration)
{
Temperature = temperature;
Precipitation = precipitation;
Evapotranspiration = evapoTranspiration;
}
}
}

30
Models/ColumnValue.cs Normal file
View File

@@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
{
public class ColumnValue
{
public string Key { get; set; }
public double Value { get; set; }
public ColumnValue(string key, double value)
{
Key = key;
Value = value;
}
}
public class YearColumnValue
{
public int Key { get; set; }
public double Value { get; set; }
public YearColumnValue(int key, double value)
{
Key = key;
Value = value;
}
}
}

View File

@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
{
public class CropCoverMonthsModel
{
public string CropName { get; set; }
public List<string> CoverMonths { get; set; }
}
}

View File

@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
{
public class CropPropertyModel
{
public string Name { get; set; }
public double DM_content { get; set; }
public double FracR { get; set; }
public double C_input_CropRes { get; set; }
public double HarvestIndex { get; set; }
}
}

19
Models/CropSets.cs Normal file
View File

@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
{
public class StrawCrp
{
public string StrawCrop { get; set; }
public double DM_Content { get; set; }
}
public class CropSets
{
public List<StrawCrp> StrawCrops { get; set; }
public List<string> GreenManureType { get; set; }
public List<string> Perennial { get; set; }
}
}

24
Models/CropYieldModel.cs Normal file
View File

@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
{
public class YearData
{
public int Year { get; set; }
public double YieldValue { get; set; }
}
public class Yield
{
public string ProvinceCode { get; set; }
public List<YearData> YearData { get; set; }
}
public class CropYieldModel
{
public string CropName { get; set; }
public List<Yield> Yields { get; set; }
}
}

View File

@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
{
public class ManureSourcesLiv
{
public string ManureSource_liv { get; set; }
public string Description { get; set; }
}
public class Compost
{
public string compost { get; set; }
public string Description { get; set; }
}
public class FarmInputsetsModel
{
public List<ManureSourcesLiv> ManureSources_liv { get; set; }
public List<Compost> composts { get; set; }
public List<string> CarbonSource { get; set; }
}
}

View File

@@ -0,0 +1,93 @@
//using CarbonService.Models;
using NetTopologySuite.Geometries;
using Newtonsoft.Json.Converters;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Runtime.Serialization;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
namespace FarmMapsAPI.Carbon.Models
{
public class FarmMapsCarbonRequest
{
public int PostalCode { get; set; }
public List<CropFieldFarmMaps> CropFields { get; set; }
//added
public int CalculateUntil { get; set; }
}
public class CropFieldFarmMaps
{
[Required]
public string Name { get; set; }
[Required]
public double Area { get; set; }
[Required]
public string SoilType { get; set; }
[Required]
public SoilPropertyFarmMaps SoilProperty { get; set; }
[Required]
public List<HistoricalCropDataFarmMaps> HistoricalCropData { get; set; }
}
public class HistoricalCropDataFarmMaps
{
[Required]
public int Year { get; set; }
[Required]
public List<CropData> Crops { get; set; }
public List<GreenManureTypeFarmMaps> GreenManures { get; set; }
public bool Rotation { get; set; }
public HistoricalCropDataFarmMaps DeepCopy()
{
HistoricalCropDataFarmMaps other = (HistoricalCropDataFarmMaps)this.MemberwiseClone();
return other;
}
}
public class CropData
{
[Required]
public string CropCode { get; set; }
public List<OrganicManureFarmMaps> OrganicManures { get; set; }
public int? CropYield { get; set; }
public bool CropRes { get; set; }
}
public class OrganicManureFarmMaps
{
[Required]
public string Type { get; set; }
[Required]
public double Quantity { get; set; }
}
public class SoilPropertyFarmMaps
{
public double? OM_Const { get; set; }
public double? Clay_Content { get; set; }
}
public class GreenManureTypeFarmMaps
{
public string CropCode { get; set; }
[JsonConverter(typeof(StringEnumConverter))]
public QualityFarmMaps? Quality { get; set; }
}
public enum QualityFarmMaps
{
[EnumMember(Value = "Goed")]
Good,
[EnumMember(Value = "Matig")]
Average,
[EnumMember(Value = "Slecht")]
Bad
}
}

15
Models/GIS_Soils_Sets.cs Normal file
View File

@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
{
public class GIS_Soils_Sets
{
public List<string> SoilType { get; set; }
public List<string> MineralSoils { get; set; }
public List<string> Months { get; set; }
public List<string> AllMonths { get; set; }
public List<string> ClimateVar { get; set; }
}
}

62
Models/GamsParameter.cs Normal file
View File

@@ -0,0 +1,62 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
{
public class GamsThreeKeyParameter
{
//field, year, crop
public Dictionary<(string,int,string), List<ColumnValue>> TrippleKeyParam { get; set; }
public GamsThreeKeyParameter()
{
TrippleKeyParam = new Dictionary<(string, int, string), List<ColumnValue>>();
}
public void AddValue((string, int, string)key, string column, double value)
{
if (TrippleKeyParam.ContainsKey(key))
{
if (TrippleKeyParam[key].Any(x => x.Key == column))
{
throw new Exception("key allready exists");
}
else
{
TrippleKeyParam[key].Add(new ColumnValue(column, value));
}
}
else
{
TrippleKeyParam.Add(key, new List<ColumnValue> { new ColumnValue(column, value) });
}
}
public void AddValueSkipIfColumnExists((string, int, string) key, string column, double value)
{
if (TrippleKeyParam.ContainsKey(key))
{
if (TrippleKeyParam[key].Any(x => x.Key == column))
{
return;
}
else
{
TrippleKeyParam[key].Add(new ColumnValue(column, value));
}
}
else
{
TrippleKeyParam.Add(key, new List<ColumnValue> { new ColumnValue(column, value) });
}
}
public List<(string, int, string)> KeysWhereCropKeyExists(int year, string crop)
{
//return TrippleKeyParam.Where(x => x.Value.Any(y => y.Key == column)).Select(s=>s.Key).ToList();
return TrippleKeyParam.Where(x => x.Key.Item2 == year && x.Key.Item3.ToLower() == crop.ToLower()).Select(s=>s.Key).ToList();
}
}
}

12
Models/ManCcontModel.cs Normal file
View File

@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
{
public class ManCcontModel
{
public string ManCcont { get; set; }
public double Value { get; set; }
}
}

View File

@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace FarmMapsAPI.Carbon.Models
{
public class MappingCropFarmmapsMiterraRothC
{
public string CropCode { get; set; }
public string CropName { get; set; }
public string PurposeCode { get; set; }
public string PurposeName { get; set; }
public string MiterraRothCCrop { get; set; }
}
}

View File

@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace FarmMapsAPI.Carbon.Models
{
public class MappingGreenManureFarmmapsMiterraRothC
{
public string CropCode { get; set; }
public string CropName { get; set; }
public string PurposeCode { get; set; }
public string PurposeName { get; set; }
public string MiterraRothCCrop { get; set; }
}
}

18
Models/ParameterSet.cs Normal file
View File

@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
{
public class ParameterSet
{
public double LayerDepth { get; set; }
public double kDPM { get; set; }
public double kRPM { get; set; }
public double kBIO { get; set; }
public double kHUM { get; set; }
public double StubbleFraction { get; set; }
public double CarbonBiomass { get; set; }
public double FracBelowGroundCinput { get; set; }
}
}

View File

@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
{
public class KNMIZoneReg
{
public string KNMI_zone { get; set; }
public List<int> Reg { get; set; }
}
public class NUTS0NUTSII
{
public string prov { get; set; }
public List<int> reg { get; set; }
}
public class SetsForDataTransformation
{
public List<KNMIZoneReg> KNMI_zone_Reg { get; set; }
public List<NUTS0NUTSII> NUTS0NUTSII { get; set; }
}
}

View File

@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
{
public class SoilBulkDensityType
{
public double Clay { get; set; }
public double Sand { get; set; }
}
}

View File

@@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
{
public class SoilPropertyType
{
public double OM_Cont { get; set; }
public double OM_Corr { get; set; }
public double Bulk_Density { get; set; }
public double Clay_Content { get; set; }
public double Depth { get; set; }
}
struct SoilTypePropertyKey
{
public string SoilType { get; set; }
public string SoilProperty{ get; set; }
public override int GetHashCode()
{
return SoilType.GetHashCode() ^ SoilProperty.GetHashCode();
}
public override bool Equals(object obj)
{
if (obj is SoilTypePropertyKey)
{
SoilTypePropertyKey compositeKey = (SoilTypePropertyKey)obj;
return ((this.SoilType == compositeKey.SoilType) &&
(this.SoilProperty == compositeKey.SoilProperty));
}
return false;
}
}
}

View File

@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace FarmMapsAPI.Carbon.Models
{
public class YieldGreenManureModel
{
public string ManureName { get; set; }
public double GoodQuality { get; set; }
public double AverageQuality { get; set; }
public double BadQuality { get; set; }
}
}

16
NuGet.Config Normal file
View File

@@ -0,0 +1,16 @@
<?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>

178
config/CropCoverMonth.json Normal file
View File

@@ -0,0 +1,178 @@
[
{
"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",
"CoverMonths": [ "M5", "M6", "M7" ]
},
{
"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" ]
}
]

310
config/CropProperties.json Normal file
View File

@@ -0,0 +1,310 @@
[
{
"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",
"DM_content": 0.2,
"FracR": 0.0,
"C_input_CropRes": 1.4573803581163967,
"HarvestIndex": 0.5
},
{
"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
}
]

73
config/CropSets.json Normal file
View File

@@ -0,0 +1,73 @@
{
"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"
]
}

23982
config/CropYield.json Normal file

File diff suppressed because it is too large Load Diff

15534
config/CropYield.json.old Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,56 @@
{
"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": "OVERIG",
"Description": "Overig"
}
],
"composts": [
{
"compost": "COMPOST",
"Description": "compost"
}
],
"CarbonSource": [
"CarbonManure",
"CarbonResidues",
"CarbonGreenManure",
"CarbonCompost"
]
}

View File

@@ -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" ]
}

1009
config/KNMI_data.csv Normal file

File diff suppressed because it is too large Load Diff

46
config/ManCcont.json Normal file
View File

@@ -0,0 +1,46 @@
[
{
"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": "OVERIG",
"Value": 0.01652
}
]

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -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"
}
]

View File

@@ -0,0 +1,303 @@
[
{
"CropCode": "1020101",
"CropName": "Wintertarwe",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "WinterGroen_Graan"
},
{
"CropCode": "1020102",
"CropName": "Wintergerst",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "WinterGroen_Graan"
},
{
"CropCode": "1020103",
"CropName": "Winterrogge",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Winterrogge"
},
{
"CropCode": "1020201",
"CropName": "Zomertarwe",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "WinterGroen_Graan"
},
{
"CropCode": "1020202",
"CropName": "Zomergerst",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "WinterGroen_Graan"
},
{
"CropCode": "1020203",
"CropName": "Zomerrogge",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Winterrogge"
},
{
"CropCode": "1030301",
"CropName": "Alexandrijnse klaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Groenbemester"
},
{
"CropCode": "1030302",
"CropName": "Bastaard klaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Groenbemester"
},
{
"CropCode": "1030303",
"CropName": "Hopklaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Groenbemester"
},
{
"CropCode": "1030304",
"CropName": "Inkarnaatklaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Groenbemester"
},
{
"CropCode": "1030305",
"CropName": "Perzische klaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Groenbemester"
},
{
"CropCode": "1030306",
"CropName": "Rode klaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Groenbemester"
},
{
"CropCode": "1030307",
"CropName": "Rolklaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Groenbemester"
},
{
"CropCode": "1030308",
"CropName": "Witte honingklaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Groenbemester"
},
{
"CropCode": "1030309",
"CropName": "Witte klaver",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Groenbemester"
},
{
"CropCode": "1030401",
"CropName": "Blauwe Lupine",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Groenbemester"
},
{
"CropCode": "1030402",
"CropName": "Gele Lupine",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Groenbemester"
},
{
"CropCode": "1030403",
"CropName": "Witte Lupine",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Groenbemester"
},
{
"CropCode": "1030501",
"CropName": "Voederwikke",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Groenbemester"
},
{
"CropCode": "1030502",
"CropName": "Bonte wikke",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Groenbemester"
},
{
"CropCode": "1030602",
"CropName": "Hanekam",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Groenbemester"
},
{
"CropCode": "1040101",
"CropName": "Stoppelknol",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Groenbemester"
},
{
"CropCode": "1040102",
"CropName": "Bladrammenas",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Bladrammenas"
},
{
"CropCode": "1040103",
"CropName": "Bruine mosterd",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Gele mosterd"
},
{
"CropCode": "1040104",
"CropName": "Gele mosterd",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Gele mosterd"
},
{
"CropCode": "1040105",
"CropName": "Zwarte mosterd",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Gele mosterd"
},
{
"CropCode": "1040108",
"CropName": "Bladkool",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Bladkool"
},
{
"CropCode": "1040109",
"CropName": "Mergkool",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Groenbemester"
},
{
"CropCode": "1040110",
"CropName": "Ethiopische mosterd",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Gele mosterd"
},
{
"CropCode": "1040111",
"CropName": "Serepta mosterd",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Gele mosterd"
},
{
"CropCode": "1040112",
"CropName": "Zwaardherik",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Zwaardherik"
},
{
"CropCode": "1050101",
"CropName": "Engels raaigras",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Italiaans raaigras"
},
{
"CropCode": "1050102",
"CropName": "Frans raaigras",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Italiaans raaigras"
},
{
"CropCode": "1050103",
"CropName": "Gekruist raaigras",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Italiaans raaigras"
},
{
"CropCode": "1050104",
"CropName": "Italiaans raaigras",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Italiaans raaigras"
},
{
"CropCode": "1050105",
"CropName": "Trosraaigras",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Italiaans raaigras"
},
{
"CropCode": "1050106",
"CropName": "Westerwolds raaigras",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Italiaans raaigras"
},
{
"CropCode": "1050201",
"CropName": "Roodzwenkgras",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Wintergroen_Gras"
},
{
"CropCode": "1050408",
"CropName": "Sudangras",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Wintergroen_Gras"
},
{
"CropCode": "1080107",
"CropName": "Facelia",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Groenbemester"
},
{
"CropCode": "1080108",
"CropName": "Spurrie",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Groenbemester"
},
{
"CropCode": "1080109",
"CropName": "Afrikaantjes",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Groenbemester"
},
{
"CropCode": "1080110",
"CropName": "Raketblad",
"PurposeCode": "118",
"PurposeName": "Groenbemesting",
"MiterraRothCCrop": "Groenbemester"
}
]

1
config/PC4/PC4.cpg Normal file
View File

@@ -0,0 +1 @@
UTF-8

BIN
config/PC4/PC4.dbf Normal file

Binary file not shown.

1
config/PC4/PC4.prj Normal file
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]]

BIN
config/PC4/PC4.shp Normal file

Binary file not shown.

BIN
config/PC4/PC4.shx Normal file

Binary file not shown.

View File

@@ -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
}

4035
config/RegionSets.json Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,80 @@
[
{
"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": "Mengsel3soorten",
"GoodQuality": 11.390625,
"AverageQuality": 7.973437499999999,
"BadQuality": 5.6953125
},
{
"ManureName": "Mengsel12soorten",
"GoodQuality": 11.390625,
"AverageQuality": 7.973437499999999,
"BadQuality": 5.6953125
},
{
"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
}
]