From 5066969e98c79b4b91d8ae3b5fcb3ddac25e5b17 Mon Sep 17 00:00:00 2001 From: Mark van der Wal Date: Thu, 12 Nov 2020 15:49:17 +0100 Subject: [PATCH 1/4] zonering most basic flow --- FarmmapsApi/Constants.cs | 1 + .../Data/neo_ndvi-reglone-low-weed.tif | Bin 0 -> 762877 bytes FarmmapsZonering/Data/neo_pg.json | 8 ++++ FarmmapsZonering/Data/neo_pg.zip | Bin 0 -> 1413 bytes FarmmapsZonering/FarmmapsZonering.csproj | 4 ++ FarmmapsZonering/Models/InputParameter.cs | 8 ++++ FarmmapsZonering/Models/Output.cs | 9 ++++ FarmmapsZonering/Models/Settings.cs | 1 - FarmmapsZonering/Services/ZoneringService.cs | 42 +++++++++++++++++ FarmmapsZonering/ZoneringApplication.cs | 43 ++++++++++-------- 10 files changed, 96 insertions(+), 20 deletions(-) create mode 100644 FarmmapsZonering/Data/neo_ndvi-reglone-low-weed.tif create mode 100644 FarmmapsZonering/Data/neo_pg.json create mode 100644 FarmmapsZonering/Data/neo_pg.zip create mode 100644 FarmmapsZonering/Models/InputParameter.cs create mode 100644 FarmmapsZonering/Models/Output.cs diff --git a/FarmmapsApi/Constants.cs b/FarmmapsApi/Constants.cs index ddb8e9c..b8ed6e0 100644 --- a/FarmmapsApi/Constants.cs +++ b/FarmmapsApi/Constants.cs @@ -16,6 +16,7 @@ namespace FarmmapsApiSamples public const string VRAHERBICIDE_TASK = "vnd.farmmaps.task.vraherbicide"; public const string VRAHAULMKILLING_TASK = "vnd.farmmaps.task.vrahaulmkilling"; public const string VRAPLANTING_TASK = "vnd.farmmaps.task.vrapoten"; + public const string VRAZONERING_TASK = "vnd.farmmaps.task.vrazonering"; public const string SATELLITE_TASK = "vnd.farmmaps.task.satellite"; public const string TASKMAP_TASK = "vnd.farmmaps.task.taskmap"; public const string WORKFLOW_TASK = "vnd.farmmaps.task.workflow"; diff --git a/FarmmapsZonering/Data/neo_ndvi-reglone-low-weed.tif b/FarmmapsZonering/Data/neo_ndvi-reglone-low-weed.tif new file mode 100644 index 0000000000000000000000000000000000000000..9dfe81803b8693dfa7cb68324e02341a8ed0dd0f GIT binary patch literal 762877 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 + + + + diff --git a/FarmmapsZonering/Models/InputParameter.cs b/FarmmapsZonering/Models/InputParameter.cs new file mode 100644 index 0000000..165b085 --- /dev/null +++ b/FarmmapsZonering/Models/InputParameter.cs @@ -0,0 +1,8 @@ +namespace FarmmapsHaulmkilling.Models +{ + public class InputParameter + { + public string ItemCode { get; set; } + public string ItemLayer { get; set; } + } +} \ No newline at end of file diff --git a/FarmmapsZonering/Models/Output.cs b/FarmmapsZonering/Models/Output.cs new file mode 100644 index 0000000..af7b083 --- /dev/null +++ b/FarmmapsZonering/Models/Output.cs @@ -0,0 +1,9 @@ +namespace FarmmapsZonering.Models +{ + public class Output + { + public string Name { get; set; } + public string Quantity { get; set; } + public string Unit { get; set; } + } +} \ No newline at end of file diff --git a/FarmmapsZonering/Models/Settings.cs b/FarmmapsZonering/Models/Settings.cs index 68925ef..c3beb90 100644 --- a/FarmmapsZonering/Models/Settings.cs +++ b/FarmmapsZonering/Models/Settings.cs @@ -3,6 +3,5 @@ namespace FarmmapsHaulmkilling.Models public class Settings { public string CropfieldItemCode { get; set; } - public string SatelliteTaskCode { get; set; } } } \ No newline at end of file diff --git a/FarmmapsZonering/Services/ZoneringService.cs b/FarmmapsZonering/Services/ZoneringService.cs index c55bd6f..5acafe7 100644 --- a/FarmmapsZonering/Services/ZoneringService.cs +++ b/FarmmapsZonering/Services/ZoneringService.cs @@ -1,5 +1,12 @@ +using System; +using System.Threading.Tasks; +using FarmmapsApi.Models; using FarmmapsApi.Services; +using FarmmapsHaulmkilling.Models; +using FarmmapsZonering.Models; using Microsoft.Extensions.Logging; +using static FarmmapsApi.Extensions; +using static FarmmapsApiSamples.Constants; namespace FarmmapsZonering.Services { @@ -16,5 +23,40 @@ namespace FarmmapsZonering.Services _farmmapsApiService = farmmapsApiService; _generalService = generalService; } + + public async Task CreateApplicationMapAsync(Item cropfieldItem, string formula, Output output, params InputParameter[] inputItemCodes) + { + var zoneringTaskRequest = new TaskRequest() {TaskType = VRAZONERING_TASK}; + var taskCode = await _farmmapsApiService.QueueTaskAsync(cropfieldItem.Code, zoneringTaskRequest); + + await PollTask(TimeSpan.FromSeconds(5), async (tokenSource) => + { + var itemTaskStatus = await _farmmapsApiService.GetTaskStatusAsync(cropfieldItem.Code, taskCode); + _logger.LogInformation($"Waiting on calculation of application map; Status: {itemTaskStatus.State}"); + if (itemTaskStatus.IsFinished) + tokenSource.Cancel(); + }); + + var itemTask = await _farmmapsApiService.GetTaskStatusAsync(cropfieldItem.Code, taskCode); + if (itemTask.State == ItemTaskState.Error) + { + _logger.LogError($"Something went wrong with task execution: {itemTask.Message}"); + return null; + } + + var itemName = $"VRAZonering"; + var applianceMapItem = await _generalService.FindChildItemAsync(cropfieldItem.Code, + GEOTIFF_PROCESSED_ITEMTYPE, itemName, + i => i.Updated >= itemTask.Finished.GetValueOrDefault(DateTime.UtcNow) && + i.Name.ToLower().Contains(itemName.ToLower())); + + if (applianceMapItem == null) + { + _logger.LogError("Could not find the VRAZonering geotiff child item under cropfield"); + return null; + } + + return applianceMapItem; + } } } \ No newline at end of file diff --git a/FarmmapsZonering/ZoneringApplication.cs b/FarmmapsZonering/ZoneringApplication.cs index 88e4861..81c5f90 100644 --- a/FarmmapsZonering/ZoneringApplication.cs +++ b/FarmmapsZonering/ZoneringApplication.cs @@ -5,6 +5,7 @@ using FarmmapsApi; using FarmmapsApi.Models; using FarmmapsApi.Services; using FarmmapsHaulmkilling.Models; +using FarmmapsZonering.Models; using FarmmapsZonering.Services; using Microsoft.Extensions.Logging; using Newtonsoft.Json; @@ -63,7 +64,7 @@ namespace FarmmapsZonering { _logger.LogInformation("Creating cropfield"); cropfieldItem = await _generalService.CreateCropfieldItemAsync(myDrive.Code, "Cropfield VRA Zonering", 2020, - @"{""type"":""Polygon"",""coordinates"":[[[4.617786844284247,52.22533706956424],[4.618642601314543,52.225938364585989],[4.6192153806397,52.22563988897754],[4.619192414656403,52.2256242822442],[4.620306732153958,52.225031745661528],[4.620542019225217,52.22519855319158],[4.621157509147853,52.22487436515405],[4.623387917230182,52.22367660757213],[4.624563444939009,52.22304740241544],[4.624562779355982,52.223046635247019],[4.624534908813479,52.22302596787506],[4.627873021330343,52.221240670658399],[4.627504935938338,52.220104419135129],[4.627324878706837,52.22020569669098],[4.627320696113512,52.22020660117888],[4.626707169518044,52.22053923770041],[4.624700376420229,52.221619047547488],[4.623471571183885,52.22227447969577],[4.623471511010673,52.22227500174403],[4.623468838689317,52.22228052566992],[4.617786844284247,52.22533706956424]]]}"); + @"{ ""type"": ""Polygon"", ""coordinates"": [ [ [ 5.670991253771027, 52.796788997702613 ], [ 5.671526456638633, 52.797291618546666 ], [ 5.671275936147413, 52.797422436717852 ], [ 5.671959173850738, 52.798269302728798 ], [ 5.670649634919365, 52.798778791408822 ], [ 5.671503682048522, 52.799591206957416 ], [ 5.675159003761311, 52.798193567415474 ], [ 5.673029579585948, 52.796024727480535 ], [ 5.670991253771027, 52.796788997702613 ] ] ] }"); _settings.CropfieldItemCode = cropfieldItem.Code; SaveSettings(); } @@ -73,26 +74,30 @@ namespace FarmmapsZonering cropfieldItem = await _farmmapsApiService.GetItemAsync(_settings.CropfieldItemCode); } - ItemTaskStatus taskStatus; - if (string.IsNullOrEmpty(_settings.SatelliteTaskCode)) + var inputFileName = "neo_ndvi-reglone-low-weed.tif"; + var dataPath = Path.Combine("Data", inputFileName); + var geotiffItem = await _generalService.UploadDataAsync(uploadedRoot, GEOTIFF_PROCESSED_ITEMTYPE, dataPath, + Path.GetFileNameWithoutExtension(inputFileName)); + + if (geotiffItem == null) { + _logger.LogError("Could not find item for uploaded data"); + return; + } + + var outputItem = await _zoneringService.CreateApplicationMapAsync(cropfieldItem, "[0] * 2", new Output() { - _logger.LogInformation("Gathering satellite information for cropfield, this might take a while!"); - taskStatus = await _generalService.RunAndWaitForTask(cropfieldItem, SATELLITE_TASK, null, 20); - - if (taskStatus.State == ItemTaskState.Error) - { - _logger.LogError($"Something went wrong when trying to process satellite data; {taskStatus.Message}"); - return; - } - - _settings.SatelliteTaskCode = taskStatus.Code; - SaveSettings(); - - } - else + Name = "times_2_zonering", + Unit = "n/kg", + Quantity = "Nitrogen" + }, new InputParameter() { - taskStatus = await _farmmapsApiService.GetTaskStatusAsync(_settings.CropfieldItemCode, _settings.SatelliteTaskCode); - } + ItemCode = geotiffItem.Code, + ItemLayer = geotiffItem.Data["layers"][0]["name"].ToString() + }); + + _logger.LogInformation("Downloading output"); + await _farmmapsApiService.DownloadItemAsync(outputItem.Code, + Path.Combine(DownloadFolder, $"times_2_zonering.zip")); } private void LoadSettings() From f972699fe96f98fa4ad7914ffa1af1d5869246e6 Mon Sep 17 00:00:00 2001 From: Mark van der Wal Date: Thu, 12 Nov 2020 22:12:31 +0100 Subject: [PATCH 2/4] small fix --- FarmmapsZonering/Models/InputParameter.cs | 2 +- FarmmapsZonering/Services/ZoneringService.cs | 6 ++++++ FarmmapsZonering/ZoneringApplication.cs | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/FarmmapsZonering/Models/InputParameter.cs b/FarmmapsZonering/Models/InputParameter.cs index 165b085..35f25d2 100644 --- a/FarmmapsZonering/Models/InputParameter.cs +++ b/FarmmapsZonering/Models/InputParameter.cs @@ -3,6 +3,6 @@ namespace FarmmapsHaulmkilling.Models public class InputParameter { public string ItemCode { get; set; } - public string ItemLayer { get; set; } + public string LayerName { get; set; } } } \ No newline at end of file diff --git a/FarmmapsZonering/Services/ZoneringService.cs b/FarmmapsZonering/Services/ZoneringService.cs index 5acafe7..dbb18c4 100644 --- a/FarmmapsZonering/Services/ZoneringService.cs +++ b/FarmmapsZonering/Services/ZoneringService.cs @@ -5,6 +5,7 @@ using FarmmapsApi.Services; using FarmmapsHaulmkilling.Models; using FarmmapsZonering.Models; using Microsoft.Extensions.Logging; +using Newtonsoft.Json; using static FarmmapsApi.Extensions; using static FarmmapsApiSamples.Constants; @@ -27,6 +28,11 @@ namespace FarmmapsZonering.Services public async Task CreateApplicationMapAsync(Item cropfieldItem, string formula, Output output, params InputParameter[] inputItemCodes) { var zoneringTaskRequest = new TaskRequest() {TaskType = VRAZONERING_TASK}; + zoneringTaskRequest.attributes["formula"] = formula; + zoneringTaskRequest.attributes["inputCode"] = cropfieldItem.Code; + zoneringTaskRequest.attributes["output"] = JsonConvert.SerializeObject(output); + zoneringTaskRequest.attributes["inputs"] = JsonConvert.SerializeObject(inputItemCodes); + var taskCode = await _farmmapsApiService.QueueTaskAsync(cropfieldItem.Code, zoneringTaskRequest); await PollTask(TimeSpan.FromSeconds(5), async (tokenSource) => diff --git a/FarmmapsZonering/ZoneringApplication.cs b/FarmmapsZonering/ZoneringApplication.cs index 81c5f90..18ba353 100644 --- a/FarmmapsZonering/ZoneringApplication.cs +++ b/FarmmapsZonering/ZoneringApplication.cs @@ -92,7 +92,7 @@ namespace FarmmapsZonering }, new InputParameter() { ItemCode = geotiffItem.Code, - ItemLayer = geotiffItem.Data["layers"][0]["name"].ToString() + LayerName = geotiffItem.Data["layers"][0]["name"].ToString() }); _logger.LogInformation("Downloading output"); From fb373b7539c5692d28eb918ae3f2d3a556f9e5dc Mon Sep 17 00:00:00 2001 From: Mark van der Wal Date: Tue, 17 Nov 2020 09:37:46 +0100 Subject: [PATCH 3/4] removed unnecessary attribute for zoneringtaskrequest --- FarmmapsZonering/Services/ZoneringService.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/FarmmapsZonering/Services/ZoneringService.cs b/FarmmapsZonering/Services/ZoneringService.cs index dbb18c4..d736240 100644 --- a/FarmmapsZonering/Services/ZoneringService.cs +++ b/FarmmapsZonering/Services/ZoneringService.cs @@ -29,7 +29,6 @@ namespace FarmmapsZonering.Services { var zoneringTaskRequest = new TaskRequest() {TaskType = VRAZONERING_TASK}; zoneringTaskRequest.attributes["formula"] = formula; - zoneringTaskRequest.attributes["inputCode"] = cropfieldItem.Code; zoneringTaskRequest.attributes["output"] = JsonConvert.SerializeObject(output); zoneringTaskRequest.attributes["inputs"] = JsonConvert.SerializeObject(inputItemCodes); From f230bd0022575afc96e6851d864bcfb922089a76 Mon Sep 17 00:00:00 2001 From: Mark van der Wal Date: Tue, 17 Nov 2020 16:37:13 +0100 Subject: [PATCH 4/4] added 2 more inputs --- ...dvi-reglone-low-weed.tif => data_9001.tif} | Bin FarmmapsZonering/Data/data_lowres_9001.tiff | Bin 0 -> 1693 bytes .../Data/data_times_two_4326.tiff | Bin 0 -> 943386 bytes .../Data/{neo_pg.json => pg.json} | 0 FarmmapsZonering/Data/{neo_pg.zip => pg.zip} | Bin FarmmapsZonering/ZoneringApplication.cs | 45 +++++++++++------- 6 files changed, 27 insertions(+), 18 deletions(-) rename FarmmapsZonering/Data/{neo_ndvi-reglone-low-weed.tif => data_9001.tif} (100%) create mode 100644 FarmmapsZonering/Data/data_lowres_9001.tiff create mode 100644 FarmmapsZonering/Data/data_times_two_4326.tiff rename FarmmapsZonering/Data/{neo_pg.json => pg.json} (100%) rename FarmmapsZonering/Data/{neo_pg.zip => pg.zip} (100%) diff --git a/FarmmapsZonering/Data/neo_ndvi-reglone-low-weed.tif b/FarmmapsZonering/Data/data_9001.tif similarity index 100% rename from FarmmapsZonering/Data/neo_ndvi-reglone-low-weed.tif rename to FarmmapsZonering/Data/data_9001.tif diff --git a/FarmmapsZonering/Data/data_lowres_9001.tiff b/FarmmapsZonering/Data/data_lowres_9001.tiff new file mode 100644 index 0000000000000000000000000000000000000000..1495092354c536a01ee921a0633876e99262abbd GIT binary patch literal 1693 zcmeHDOGs2<6h8Mc<2X*H_-H7rOM;{jDHIf`{~fJtq$CUSO6dy zK#)K{7Kb5dJQca9aRs@ganhL$JW-IjH!K3A81ktar#kC2&7=gdUNCX}66QB(+>Axj z4Bo98$CBXEI9eh8vJE(*zNOU$X3S+E9}Y@Tj=U84NYDmrk(<#R3W`vM{37z^ZV_bU z+j6q;4{!hj0mrZnv+&bK+zmfCDMd z|Hr?7gJVjFQT*+#Z&`=fN813i)(ozyr&?p3581o(ee6_WKVwgNIg&40kE7EATu(?^ ziW^^g81;*$H`cdwbVc+u+s3BhKRo$|M%b&29zFxjvry5^>r>9yV`1Pi(`TVsNjo_+ z6xqQz3++d}sRnTh@{pf=x^~n3dy)A_`?Tx<*O8uf)O9-2ZZzL#dna?{KH~39ee`=B sNk{KXHBE0jxrh3aPuCccYLJeQG~_qlujDkJK0EES@;=&`=8l&C1$gzT;{X5v literal 0 HcmV?d00001 diff --git a/FarmmapsZonering/Data/data_times_two_4326.tiff b/FarmmapsZonering/Data/data_times_two_4326.tiff new file mode 100644 index 0000000000000000000000000000000000000000..36b0fcd44d05cf7c5d797f4c579425adab4bf2c3 GIT binary patch literal 943386 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 z00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H z24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaN zU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS z00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H z24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaN zU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS z00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H z24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaN zU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS z00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H z24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaN zU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS z00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H z24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaN zU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS z00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H z24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaN zU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS z00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H z24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaN zU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS z00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H z24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaN zU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS z00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H z24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaN zU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS z00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H z24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaN zU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H24DaNU;qYS00v+H2CkKX{|^hl BE~5Yd literal 0 HcmV?d00001 diff --git a/FarmmapsZonering/Data/neo_pg.json b/FarmmapsZonering/Data/pg.json similarity index 100% rename from FarmmapsZonering/Data/neo_pg.json rename to FarmmapsZonering/Data/pg.json diff --git a/FarmmapsZonering/Data/neo_pg.zip b/FarmmapsZonering/Data/pg.zip similarity index 100% rename from FarmmapsZonering/Data/neo_pg.zip rename to FarmmapsZonering/Data/pg.zip diff --git a/FarmmapsZonering/ZoneringApplication.cs b/FarmmapsZonering/ZoneringApplication.cs index 18ba353..5522490 100644 --- a/FarmmapsZonering/ZoneringApplication.cs +++ b/FarmmapsZonering/ZoneringApplication.cs @@ -73,27 +73,36 @@ namespace FarmmapsZonering _logger.LogInformation("Cropfield already exists trying to get"); cropfieldItem = await _farmmapsApiService.GetItemAsync(_settings.CropfieldItemCode); } - - var inputFileName = "neo_ndvi-reglone-low-weed.tif"; - var dataPath = Path.Combine("Data", inputFileName); - var geotiffItem = await _generalService.UploadDataAsync(uploadedRoot, GEOTIFF_PROCESSED_ITEMTYPE, dataPath, - Path.GetFileNameWithoutExtension(inputFileName)); - - if (geotiffItem == null) { + + var inputOneItem = await _generalService.UploadDataAsync(uploadedRoot, GEOTIFF_PROCESSED_ITEMTYPE, + Path.Combine("Data", "data_9001.tif"),"data_9001"); + if (inputOneItem == null) { _logger.LogError("Could not find item for uploaded data"); return; - } + } - var outputItem = await _zoneringService.CreateApplicationMapAsync(cropfieldItem, "[0] * 2", new Output() - { - Name = "times_2_zonering", - Unit = "n/kg", - Quantity = "Nitrogen" - }, new InputParameter() - { - ItemCode = geotiffItem.Code, - LayerName = geotiffItem.Data["layers"][0]["name"].ToString() - }); + var inputTwoItem = await _generalService.UploadDataAsync(uploadedRoot, GEOTIFF_PROCESSED_ITEMTYPE, + Path.Combine("Data", "data_times_two_4326.tiff"), "data_times_two_4326"); + if (inputTwoItem == null) { + _logger.LogError("Could not find item for uploaded data"); + return; + } + + var outputItem = await _zoneringService.CreateApplicationMapAsync(cropfieldItem, "[0] + [1]", new Output() + { + Name = "add", + Unit = "n/kg", + Quantity = "Nitrogen" + }, new InputParameter() + { + ItemCode = inputOneItem.Code, + LayerName = inputOneItem.Data["layers"][0]["name"].ToString() + }, + new InputParameter() + { + ItemCode = inputTwoItem.Code, + LayerName = inputTwoItem.Data["layers"][0]["name"].ToString() + }); _logger.LogInformation("Downloading output"); await _farmmapsApiService.DownloadItemAsync(outputItem.Code,