Irrigation (Tasks V3)
Description
Irrigation tasks are those types of work carried out to supply land and crops with water to help growth. Irrigation is typically done in areas where water is unavailable in the right quantities or at the right times to grow desirable crops.
Below is an image of irrigated areas (in green) beside non-irrigated areas (in brown) in Andalusia, Spain.
In LiteFarm, we’ll talk about irrigation tasks using two main categories:
Manual: In manual irrigation tasks, the details of the task are described when the task is created. The individual assigned to the task then uses these human provided details to do the task correctly. For example, a task might ask a farm worker to flood a field using a hand crank and to keep that gate open for 30 minutes. The assignee would do this work and then complete or abandon the task based on the outcomes.
Automated: In automated irrigation tasks, the details of the task are stored in a machine readable file type that is meant to be sent to an irrigation system that knows how to act on them. In this case, the individual assigned to the task is responsible for transmitting the file type to the irrigation system and ensuring the system executes on the task as expected. The assignee would then complete or abandon the task based on the outcomes they observed.
For S50 beginning October 17 2022, we are only focusing on manual irrigation tasks. Automated will come later.
Creation restrictions
Step | Restrictions |
---|---|
Task date | None |
Task location(s) | Only crop-enabled locations; single select |
Involves crops? | None |
Task assignment | None |
Creation attributes
Attribute | Data type | Required? | Example data | Notes |
---|---|---|---|---|
Type of irrigation | Enum: {“Bucket”, “Channel”, “Drip”, “Flood”, “Pivot”*, “Sprinkler”, “Subsurface”, “Other”} | Yes |
|
|
What type of irrigation? | Text | Only if “Other” selected in Pest control method |
| This is user entered. It can still be persisted as the default irrigation type for a location. |
Set as default for this location | Boolean: default is false | Yes |
| This value should be stored for each location. |
How do you measure water use for this irrigation type? | Enum: {“Volume”, “Depth”} |
|
|
|
Set as default measurement for this irrigation type | Boolean: default is false | Yes |
| This value should be stored for each custom irrigation type. |
Estimated water usage | Decimal (w/ unit) | No | 3000 liters | Can be entered by the user or calculated by clicking “Save” on the Water use calculator. |
Notes | Text | No |
|
|
Each irrigation type has the following relationship with measuring type:
Type of irrigation | Default measuring type |
---|---|
Channel | Volume |
Drip | Volume |
Flood | Volume |
Hand watering | Volume |
Pivot | Depth |
Sprinkler | Depth |
Subsurface | Volume |
Other | User defined |
Water use calculator
Comes in two versions:
Flow rate based
Application depth based
First, flow rate based:
Attribute | Data type | Required? | Example data | Notes |
---|---|---|---|---|
Estimated flow rate | Decimal (w/ unit); unit default is X / minute | No | 3000 l | Should be pre-loaded if a flow rate had previously been selected for this location. |
Set as default flow rate for this location | Boolean; default is false | Yes | false | If set to true, the flow rate entered here should be saved to that location and pre-loaded the next time an irrigation task is created for this location. |
Estimated duration | Decimal (w/ unit); unit default is “minute” | No | 2 hours | Defaults to minute |
Total water usage | Read-only | No | 650 liters | “Total water usage” is a derived value based on “Estimated flow rate” x “Estimated duration” |
Next, lets look at application depth based:
Attribute | Data type | Required? | Example data | Notes |
---|---|---|---|---|
Estimated application depth | Decimal (w/ unit); unit default is mm | No | 5 mm | No default value |
Set as default application depth for this location | Boolean; default is false | Yes | false | If set to true, the application depth entered here should be saved to that location and pre-loaded the next time an irrigation task is created for this location. |
% of location to be irrigated | % | No | 10 % |
|
Location size | Read-only | No | 3.41 ha | The area of the selected location |
Irrigated area | Read-only and calculated | No | 3,410 m^2 | “Irrigated area” is a derived value based on “% of location to be irrigated” x “Location size” |
Total water usage | Read-only | No | 650 liters | “Total water usage” is a derived value based on “Irrigated area” x “Estimated application depth” |
Completion attributes
The following attributes are new when marking a task as completed.
Attribute | Data type | Required? | Example data | Notes |
---|---|---|---|---|
Did you have to make any changes to this task? | Enum: {“Yes”, “No”} | Yes; defaulted to no |
| All other fields are read-only unless “Yes” is selected. “Continue” becomes enabled after “Yes” or “No” is selected. |
The following attributes are retained from creation and edit and can be updated when marking an irrigation task as complete.
Attribute | Data type | Required? | Example data | Notes |
---|---|---|---|---|
Type of irrigation | Enum: {“Drip”, “Flood”, “Pivot”*, “Sprinkler”, “Subsurface”, “Other”} | Yes |
|
|
What type of irrigation @Lite Farm | Text | Only if “Other” selected in Pest control method |
| This is user entered. It can still be persisted as the default irrigation type for a location. |
Set as default for this location | Boolean: default is false | Yes |
| This value should be stored for each location. |
Estimated water usage | Decimal (w/ unit) | No | 3000 liters | Can be entered by the user or calculated by clicking “Save” on the Water use calculator. |
Notes | Text | No |
|
|
Migration guidance
“Irrigation” logs with the following type values should be migrated as shown. We’ll also need to introduce https://lite-farm.atlassian.net/browse/LF-294 per the guidance established in that story.
Previous value | New value | Notes |
---|---|---|
Task_id | No change |
|
type | No change |
|
flow_rate_l/min | flow_rate | flow_rate_unit should be converted to be the equivalent of the storied value in the users preferred units. |
hours | duration | duration_unit should be hours |
N/A | CreatedDateTime = Jan-01-2000 |
|
N/A | CreatedByUserId = null |
|
N/A | lastModifiedDateTime = Jan-01-2000 |
|
N/A | lastModifiedUserId = null |
|
N/A | deleted = false |
|
N/A | OwnerUserId = null |
|
N/A | AssigneeUserId = null |
|
Other context
For S50 beginning October 17 2022, we are only focusing on manual irrigation tasks. Automated will come later.