Eerdere aanpassingen NBS en zonering verwerkt
This commit is contained in:
@@ -147,6 +147,8 @@ namespace FarmmapsApi.Services
|
||||
{
|
||||
_logger.LogInformation($"Trying to get {containsName} data");
|
||||
var uploadedFilesChildren = await _farmmapsApiService.GetItemChildrenAsync(parentCode, itemType);
|
||||
|
||||
|
||||
Func<Item, bool> func = filter ?? (i => i.Name.ToLower().Contains(containsName.ToLower()));
|
||||
dataItem = uploadedFilesChildren.FirstOrDefault(func);
|
||||
if (dataItem != null || tries == maxTries)
|
||||
@@ -268,5 +270,88 @@ namespace FarmmapsApi.Services
|
||||
|
||||
return shadowItem;
|
||||
}
|
||||
|
||||
|
||||
public async Task<string> RunSatelliteTask(Item cropfieldItem)
|
||||
{
|
||||
|
||||
_logger.LogInformation("Gathering satellite information for cropfield, this might take a while!");
|
||||
|
||||
var taskmapRequest = new TaskRequest { TaskType = SATELLITE_TASK };
|
||||
string itemTaskCode = await _farmmapsApiService.QueueTaskAsync(cropfieldItem.Code, taskmapRequest);
|
||||
|
||||
await PollTask(TimeSpan.FromSeconds(5), async (tokenSource) =>
|
||||
{
|
||||
var itemTaskStatus = await _farmmapsApiService.GetTaskStatusAsync(cropfieldItem.Code, itemTaskCode);
|
||||
_logger.LogInformation($"Waiting on satellite data; status: {itemTaskStatus.State}");
|
||||
if (itemTaskStatus.IsFinished)
|
||||
tokenSource.Cancel();
|
||||
|
||||
});
|
||||
|
||||
var itemTask = await _farmmapsApiService.GetTaskStatusAsync(cropfieldItem.Code, itemTaskCode);
|
||||
|
||||
if (itemTask.State == ItemTaskState.Error)
|
||||
{
|
||||
_logger.LogError($"Something went wrong when trying to process satellite data; {itemTask.Message}");
|
||||
|
||||
}
|
||||
|
||||
return itemTask.Code;
|
||||
}
|
||||
|
||||
|
||||
public async Task<Item> FindSatelliteItem(Item cropfieldItem, string satelliteTaskCode)
|
||||
{
|
||||
|
||||
var taskStatus = await _farmmapsApiService.GetTaskStatusAsync(cropfieldItem.Code, satelliteTaskCode);
|
||||
|
||||
|
||||
// find ndvi or wdvi satellite data geotiffs
|
||||
var temporalItem = await FindChildItemAsync(cropfieldItem.Code, TEMPORAL_ITEMTYPE,
|
||||
"Cropfield Satellite items", item => item.SourceTask == SATELLITE_TASK &&
|
||||
taskStatus.Finished >= item.Created &&
|
||||
taskStatus.Finished <= item.Created.Value.AddHours(1));
|
||||
|
||||
|
||||
if (temporalItem == null)
|
||||
{
|
||||
_logger.LogError("Temporal item not found");
|
||||
|
||||
}
|
||||
|
||||
var satelliteTiffs = await _farmmapsApiService.GetItemChildrenAsync(temporalItem.Code);
|
||||
|
||||
_logger.LogInformation("Available satellite images:");
|
||||
var count = 0;
|
||||
TimeSpan.FromSeconds(0.5);
|
||||
foreach (var item in satelliteTiffs)
|
||||
{
|
||||
|
||||
Console.WriteLine($"Satellite image #{count}: {item.DataDate}");
|
||||
count++;
|
||||
}
|
||||
_logger.LogInformation("Enter satellite image number for NBS application");
|
||||
int elment = Int32.Parse(Console.ReadLine());
|
||||
|
||||
var selectedSatelliteItem = satelliteTiffs[elment];
|
||||
|
||||
if (selectedSatelliteItem == null)
|
||||
{
|
||||
_logger.LogError("Satellite item not found");
|
||||
|
||||
}
|
||||
|
||||
return selectedSatelliteItem;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user