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,
|
||||
string fieldGeomJson, string data = "{}") {
|
||||
var currentYear = new DateTime(year, 1, 1);
|
||||
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);
|
||||
}
|
||||
var cropfieldItemRequest = new ItemRequest() {
|
||||
ParentCode = parentItemCode,
|
||||
ItemType = CROPFIELD_ITEMTYPE,
|
||||
Name = name,
|
||||
DataDate = currentYear,
|
||||
DataEndDate = currentYear.AddYears(1).AddDays(-1),
|
||||
DataDate = startDate,
|
||||
DataEndDate = endDate,
|
||||
Data = JObject.Parse(data),
|
||||
Geometry = JObject.Parse(fieldGeomJson)
|
||||
};
|
||||
@ -38,10 +44,14 @@ namespace FarmmapsApi.Services
|
||||
}
|
||||
|
||||
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
|
||||
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);
|
||||
}
|
||||
JObject jdata = JObject.Parse(data);
|
||||
string name = string.Format($"CrpRec Operation, {jdata.GetValue("name")}");
|
||||
|
||||
@ -50,8 +60,8 @@ namespace FarmmapsApi.Services
|
||||
ParentCode = cropRecordingItemCode,
|
||||
ItemType = CROPOP_ITEMTYPE,
|
||||
Name = name,
|
||||
DataDate = currentYear,
|
||||
DataEndDate = currentYear.AddYears(1).AddDays(-1),
|
||||
DataDate = startDate,
|
||||
DataEndDate = endDate,
|
||||
Data = jdata,
|
||||
Geometry = JObject.Parse(fieldGeomJson)
|
||||
};
|
||||
@ -59,18 +69,23 @@ namespace FarmmapsApi.Services
|
||||
return await _farmmapsApiService.CreateItemAsync(operationItemRequest);
|
||||
}
|
||||
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
|
||||
string name = "Cropfield characteristic";
|
||||
var currentYear = new DateTime(year, 1, 1);
|
||||
ItemRequest cropfieldCharactericsticItemRequest = new ItemRequest()
|
||||
{
|
||||
ParentCode = cropfieldItemCode,
|
||||
ItemType = CROPCHAR_ITEMTYPE,
|
||||
Name = name,
|
||||
DataDate = currentYear,
|
||||
DataEndDate = currentYear.AddYears(1).AddDays(-1),
|
||||
DataDate = startDate,
|
||||
DataEndDate = endDate,
|
||||
Data = JObject.Parse(data),
|
||||
Geometry = JObject.Parse(fieldGeomJson)
|
||||
};
|
||||
|
@ -42,11 +42,12 @@ namespace FarmmapsKPI
|
||||
KPIInput input;
|
||||
string fnKPIinput;
|
||||
|
||||
//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();
|
||||
//if (string.IsNullOrEmpty(fnKPIinput))
|
||||
|
||||
fnKPIinput = "KPIinput.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();
|
||||
if (string.IsNullOrEmpty(fnKPIinput))
|
||||
{
|
||||
fnKPIinput = "KPIinput.json";
|
||||
}
|
||||
|
||||
var fieldsInputJson = File.ReadAllText(fnKPIinput);
|
||||
|
||||
@ -153,7 +154,7 @@ namespace FarmmapsKPI
|
||||
{
|
||||
_logger.LogInformation($"Creating cropfield with name '{fieldName}'");
|
||||
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;
|
||||
SaveSettings(settingsfile);
|
||||
}
|
||||
|
@ -7,6 +7,7 @@ namespace FarmmapsKPI.Models
|
||||
{
|
||||
public bool UseExistingCropfieldWithChildren { get; set; }
|
||||
public bool DeleteNewlyCreatedAfterCalc { get; set; }
|
||||
public string fieldName { get; set; }
|
||||
public string CropfieldItemCode { get; set; }
|
||||
public JObject DataCropfield { get; set; }
|
||||
public string CropRecordingItemCode { get; set; }
|
||||
@ -17,8 +18,9 @@ namespace FarmmapsKPI.Models
|
||||
public JObject DataCropfieldCharacteristic { get; set; }
|
||||
public string DownloadFolder { get; set; }
|
||||
public int CropYear { get; set; }
|
||||
public DateTime StartDate { get; set; }
|
||||
public DateTime EndDate { get; set; }
|
||||
public JObject GeometryJson { get; set; }
|
||||
public string fieldName { get; set; }
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user