StartDate & EndDate of cropfield. Is relevant for N fixation by leguminose crops where currently N fixation depends on day between these two dates. If not provided a whole year is assumed which leads to high N fixation
This commit is contained in:
parent
aef8c7c446
commit
0b0ec8f767
@ -22,14 +22,20 @@ namespace FarmmapsApi.Services
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Item> CreateCropfieldItemAsync(string parentItemCode, string name, int year,
|
public async Task<Item> CreateCropfieldItemAsync(string parentItemCode, string name, int year,
|
||||||
string fieldGeomJson, string data = "{}") {
|
string fieldGeomJson, string data = "{}", DateTime startDate = new DateTime(), DateTime endDate = new DateTime() )
|
||||||
var currentYear = new DateTime(year, 1, 1);
|
{
|
||||||
|
//If user provides no startDate or endDate, then set startDate and endDate to full year provided through 'year'
|
||||||
|
if (startDate == new DateTime() || endDate == new DateTime())
|
||||||
|
{
|
||||||
|
startDate = new DateTime(year, 1, 1);
|
||||||
|
endDate = new DateTime(year, 12, 31);
|
||||||
|
}
|
||||||
var cropfieldItemRequest = new ItemRequest() {
|
var cropfieldItemRequest = new ItemRequest() {
|
||||||
ParentCode = parentItemCode,
|
ParentCode = parentItemCode,
|
||||||
ItemType = CROPFIELD_ITEMTYPE,
|
ItemType = CROPFIELD_ITEMTYPE,
|
||||||
Name = name,
|
Name = name,
|
||||||
DataDate = currentYear,
|
DataDate = startDate,
|
||||||
DataEndDate = currentYear.AddYears(1).AddDays(-1),
|
DataEndDate = endDate,
|
||||||
Data = JObject.Parse(data),
|
Data = JObject.Parse(data),
|
||||||
Geometry = JObject.Parse(fieldGeomJson)
|
Geometry = JObject.Parse(fieldGeomJson)
|
||||||
};
|
};
|
||||||
@ -38,10 +44,14 @@ namespace FarmmapsApi.Services
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Item> CreateOperationItemAsync(string cropRecordingItemCode, int year,
|
public async Task<Item> CreateOperationItemAsync(string cropRecordingItemCode, int year,
|
||||||
string fieldGeomJson, string data = "{}")
|
string fieldGeomJson, string data = "{}", DateTime startDate = new DateTime(), DateTime endDate = new DateTime())
|
||||||
{
|
{
|
||||||
// not sure if here we also need to specify DataDate, DataEndDate & Geometry. Do it just in case
|
//If user provides no startDate or endDate, then set startDate and endDate to full year provided through 'year'
|
||||||
var currentYear = new DateTime(year, 1, 1);
|
if (startDate == new DateTime() || endDate == new DateTime())
|
||||||
|
{
|
||||||
|
startDate = new DateTime(year, 1, 1);
|
||||||
|
endDate = new DateTime(year, 12, 31);
|
||||||
|
}
|
||||||
JObject jdata = JObject.Parse(data);
|
JObject jdata = JObject.Parse(data);
|
||||||
string name = string.Format($"CrpRec Operation, {jdata.GetValue("name")}");
|
string name = string.Format($"CrpRec Operation, {jdata.GetValue("name")}");
|
||||||
|
|
||||||
@ -50,8 +60,8 @@ namespace FarmmapsApi.Services
|
|||||||
ParentCode = cropRecordingItemCode,
|
ParentCode = cropRecordingItemCode,
|
||||||
ItemType = CROPOP_ITEMTYPE,
|
ItemType = CROPOP_ITEMTYPE,
|
||||||
Name = name,
|
Name = name,
|
||||||
DataDate = currentYear,
|
DataDate = startDate,
|
||||||
DataEndDate = currentYear.AddYears(1).AddDays(-1),
|
DataEndDate = endDate,
|
||||||
Data = jdata,
|
Data = jdata,
|
||||||
Geometry = JObject.Parse(fieldGeomJson)
|
Geometry = JObject.Parse(fieldGeomJson)
|
||||||
};
|
};
|
||||||
@ -59,18 +69,23 @@ namespace FarmmapsApi.Services
|
|||||||
return await _farmmapsApiService.CreateItemAsync(operationItemRequest);
|
return await _farmmapsApiService.CreateItemAsync(operationItemRequest);
|
||||||
}
|
}
|
||||||
public async Task<Item> CreateCropfieldCharacteristicItemAsync(string cropfieldItemCode, int year,
|
public async Task<Item> CreateCropfieldCharacteristicItemAsync(string cropfieldItemCode, int year,
|
||||||
string fieldGeomJson, string data = "{}")
|
string fieldGeomJson, string data = "{}", DateTime startDate = new DateTime(), DateTime endDate = new DateTime())
|
||||||
{
|
{
|
||||||
|
//If user provides no startDate or endDate, then set startDate and endDate to full year provided through 'year'
|
||||||
|
if (startDate == new DateTime() || endDate == new DateTime())
|
||||||
|
{
|
||||||
|
startDate = new DateTime(year, 1, 1);
|
||||||
|
endDate = new DateTime(year, 12, 31);
|
||||||
|
}
|
||||||
// not sure if here we also need to specify DataDate, DataEndDate & Geometry. Do it just in case
|
// not sure if here we also need to specify DataDate, DataEndDate & Geometry. Do it just in case
|
||||||
string name = "Cropfield characteristic";
|
string name = "Cropfield characteristic";
|
||||||
var currentYear = new DateTime(year, 1, 1);
|
|
||||||
ItemRequest cropfieldCharactericsticItemRequest = new ItemRequest()
|
ItemRequest cropfieldCharactericsticItemRequest = new ItemRequest()
|
||||||
{
|
{
|
||||||
ParentCode = cropfieldItemCode,
|
ParentCode = cropfieldItemCode,
|
||||||
ItemType = CROPCHAR_ITEMTYPE,
|
ItemType = CROPCHAR_ITEMTYPE,
|
||||||
Name = name,
|
Name = name,
|
||||||
DataDate = currentYear,
|
DataDate = startDate,
|
||||||
DataEndDate = currentYear.AddYears(1).AddDays(-1),
|
DataEndDate = endDate,
|
||||||
Data = JObject.Parse(data),
|
Data = JObject.Parse(data),
|
||||||
Geometry = JObject.Parse(fieldGeomJson)
|
Geometry = JObject.Parse(fieldGeomJson)
|
||||||
};
|
};
|
||||||
|
@ -42,11 +42,12 @@ namespace FarmmapsKPI
|
|||||||
KPIInput input;
|
KPIInput input;
|
||||||
string fnKPIinput;
|
string fnKPIinput;
|
||||||
|
|
||||||
//Console.WriteLine("Type name of input json file. Example: KPIinput.json (in same directory as FarmmapsKPI.exe) or C:/temp/KPIinputChemieTmp.json");
|
Console.WriteLine("Type name of input json file. Example: KPIinput.json (in same directory as FarmmapsKPI.exe) or C:/temp/KPIinputChemieTmp.json");
|
||||||
//fnKPIinput = Console.ReadLine();
|
fnKPIinput = Console.ReadLine();
|
||||||
//if (string.IsNullOrEmpty(fnKPIinput))
|
if (string.IsNullOrEmpty(fnKPIinput))
|
||||||
|
{
|
||||||
fnKPIinput = "KPIinput.json";
|
fnKPIinput = "KPIinput.json";
|
||||||
|
}
|
||||||
|
|
||||||
var fieldsInputJson = File.ReadAllText(fnKPIinput);
|
var fieldsInputJson = File.ReadAllText(fnKPIinput);
|
||||||
|
|
||||||
@ -153,7 +154,7 @@ namespace FarmmapsKPI
|
|||||||
{
|
{
|
||||||
_logger.LogInformation($"Creating cropfield with name '{fieldName}'");
|
_logger.LogInformation($"Creating cropfield with name '{fieldName}'");
|
||||||
cropfieldItem = await _generalService.CreateCropfieldItemAsync(myDriveRoot.Code,
|
cropfieldItem = await _generalService.CreateCropfieldItemAsync(myDriveRoot.Code,
|
||||||
$"{fieldName}", cropYear, input.GeometryJson.ToString(Formatting.None), input.DataCropfield.ToString(Formatting.None));
|
$"{fieldName}", cropYear, input.GeometryJson.ToString(Formatting.None), input.DataCropfield.ToString(Formatting.None), input.StartDate, input.EndDate);
|
||||||
_settings.CropfieldItemCode = cropfieldItem.Code;
|
_settings.CropfieldItemCode = cropfieldItem.Code;
|
||||||
SaveSettings(settingsfile);
|
SaveSettings(settingsfile);
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ namespace FarmmapsKPI.Models
|
|||||||
{
|
{
|
||||||
public bool UseExistingCropfieldWithChildren { get; set; }
|
public bool UseExistingCropfieldWithChildren { get; set; }
|
||||||
public bool DeleteNewlyCreatedAfterCalc { get; set; }
|
public bool DeleteNewlyCreatedAfterCalc { get; set; }
|
||||||
|
public string fieldName { get; set; }
|
||||||
public string CropfieldItemCode { get; set; }
|
public string CropfieldItemCode { get; set; }
|
||||||
public JObject DataCropfield { get; set; }
|
public JObject DataCropfield { get; set; }
|
||||||
public string CropRecordingItemCode { get; set; }
|
public string CropRecordingItemCode { get; set; }
|
||||||
@ -17,8 +18,9 @@ namespace FarmmapsKPI.Models
|
|||||||
public JObject DataCropfieldCharacteristic { get; set; }
|
public JObject DataCropfieldCharacteristic { get; set; }
|
||||||
public string DownloadFolder { get; set; }
|
public string DownloadFolder { get; set; }
|
||||||
public int CropYear { get; set; }
|
public int CropYear { get; set; }
|
||||||
|
public DateTime StartDate { get; set; }
|
||||||
|
public DateTime EndDate { get; set; }
|
||||||
public JObject GeometryJson { get; set; }
|
public JObject GeometryJson { get; set; }
|
||||||
public string fieldName { get; set; }
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user