Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Introduction

Farm maps in LiteFarm allow users to add three types categories of drawings locations to their farm maps: areas, lines, and structures.

  1. Areas are drawn polygons that have area. In general, the utility of the polygon is tied to its size. Examples of areas include fields, natural areas, domicilesresidences, barns, greenhouses, etc.

  2. Lines are drawn, multi-point segments that don’t form a closed polygon. In general, lines don’t have a meaningful area an area (such as with fences) or their area is relatively uniform and doesn’t impact their utilitybased on the direction of the line (such as with creeks or buffer areas). Examples of lines are: fences, creeks, roads, and footpaths

  3. Structures Points on the other hand are points coordinates that are dropped on the map. For all intents and purposes, they don’t have an “area” per se, but rather provide a service based on their location. Examples of structures include pumps water valves and gates

For each of the location types, please refer to Display patterns to understand how they’ll be built, per the description in “Available Views” in the below tables.

Areas

For our Spring 2021 release, the following areas will be supported:

Area type

Attributes

Other notes

Available Views and actions

Farm site boundary

  • Name: String

  • Total area: Decimal

  • Perimeter: Decimal

  • Notes (optional)

Hybrid:

  1. Tasks (List)

  2. Detail**

** including edit, retire (only if no incomplete tasks or crops reference this field), reestablish

Field

  • Name: String

  • Total area: Decimal

  • Perimeter: Decimal

  • Organic status: Enum

    • Transition Date: Date

  • Notes (optional)

Field

Total area and perimeter should be pre-populated by the maps API, but modifiable by the user.

Organic status: {“Non-organic” (default), “Transitional”, “Organic”)

Transition date only shown if transitional chosen.

Hybrid:

  1. Tasks (List)

  2. Crops (Tile)

  3. Detail**

** including edit, retire (only if no incomplete tasks or crops reference this field), reestablish

Garden

  • Name: String

  • Total area: Decimal

  • Perimeter: Decimal

  • Organic status: Enum

    • Transition Date: Date

  • Notes (optional)

Total area and perimeter should be pre-populated by the maps API, but modifiable by the user.

Organic status: {“Non-organic” (default), “Transitional”, “Organic”)

Transition date only shown if transitional

or organic are chosen.

chosen.

Hybrid:

  1. Tasks (List)

  2. Crops (Tile)

  3. Detail**

** including edit, retire (only if no incomplete tasks or crops reference this field), reestablish

Barn

  • Name: String

  • Total area: Decimal

  • Has wash and pack station: Enum (option)

  • Has cold storage: Enum (option)

  • Notes (optional)

Total area should be pre-populated by the maps API, but modifiable by the user.

Lite Farm to document enum with blank, yes, no.

Both enums have the following values: {““, “No”, “Yes”}

Hybrid:

  1. Tasks (List)

  2. Inventory* (List)

  3. Detail**

* Not in current scope - just an FYI

** including edit, retire (only if no incomplete tasks reference this location), reestablish

Greenhouse

  • Name: String

  • Total area: Decimal

  • Perimeter: Decimal

    • Organic status: Enum

      • Transition Date: Date

    • Notes (optional)

    Total area

    and perimeter

    should be pre-populated by the maps API, but modifiable by the user.

    Organic status: {“Non-organic” (default), “Transitional”, “Organic”)

    Transition date only shown if transitional or organic are chosen.

    Hybrid:

    1. Tasks (List)

    2. Crops (Tile)

    3. Detail**

    ** including edit, retire (only if no incomplete tasks or crops reference this location), reestablish

    Natural area

    • Name: String

    • Total area: Decimal

    • Perimeter: Decimal

    • Notes (optional)

    Total area and perimeter should be pre-populated by the maps API, but modifiable by the user.

    Water source

    Hybrid:

    1. Tasks (List)

    2. Detail**

    ** including edit, retire (only if no incomplete tasks reference this location), reestablish

    Surface water

    • Name: String

    • Total area: Decimal

    • Perimeter: Decimal

    • Used for irrigation:

    Bool
    • Enum (optional)

    • Notes (optional)

    Total area and perimeter should be pre-populated by the maps API, but modifiable by the user.

    • Used for irrigation

    defaults to false.Domicile
    • : {““, “No”, “Yes”}

    Hybrid:

    1. Tasks (List)

    2. Detail**

    ** including edit, retire (only if no incomplete tasks reference this location), reestablish

    Residence

    • Name: String

    • Total area: Decimal

    • Notes (optional)

    Total area should be pre-populated by the maps API, but modifiable by the user.

    Hybrid:

    1. Tasks (List)

    2. Detail**

    ** including edit, retire (only if no incomplete tasks reference this location), reestablish

    Ceremonial area

    • Name: String

    • Total area: Decimal

    • Perimeter: Decimal

    • Notes (optional)

    Total area and perimeter should be pre-populated by the maps API, but modifiable by the user.

    Ceremonial area

    Hybrid:

    1. Tasks (List)

    2. Detail**

    ** including edit, retire (only if no incomplete tasks reference this location), reestablish

    Proposed Area Types

    Area type

    Attributes

    Other notes

    Available Views and actions

    Custom

    • Name: String

    • Total area: Decimal

    • Perimeter: Decimal

    • Colour: RGB value

    • Notes (optional)

    • Crop enabled: Boolean

    If crop-enabled:

    • Organic status: Enum

      • Transition Date: Date

    Total area

    and perimeter

    should be pre-populated by the maps API, but modifiable by the user.

    Organic status: {“Non-organic” (default), “Transitional”, “Organic”)

    Transition date only shown if transitional or organic are chosen.

    If crop-enabled, Hybrid:

    1. Crops (Tile)

    2. Detail**

    Otherwise, just Detail**

    ** including edit, retire

    Lines

    For our Spring 2021 release, the following lines will be supported:

    Line type

    Attributes

    Other notes

    Available Views

    Fence

    • Name: String

    (optional)
    • Length: Decimal

    • Pressure treated: Enum (Organic required)

    • Notes (optional)

    Length should be pre-populated by the maps API, but modifiable by the user.

    Fences that are pressure treated need to be declared for organic certifications. Only shown for organic certification. Options: {““, “Yes”, “No”}

    Creek

    Hybrid:

    1. Tasks (List)

    2. Detail**

    ** including edit, retire (only if no incomplete tasks reference this location), reestablish

    Watercourse

    • Name: String

    (optional)
    • Length: Decimal

    • Used for irrigation: Enum (optional)

    • Includes riparian buffer: Enum (optional)

      • Buffer width: Decimal (optional)

    • Notes (optional)

    Length should be pre-populated by the maps API, but modifiable by the user.

    Used for irrigation: {““, “Yes”, “No”}

    Includes riparian buffer: {““, “Yes”, “No”}

    Hybrid:

    1. Tasks (List)

    2. Detail**

    ** including edit, retire (only if no incomplete tasks reference this location), reestablish

    Buffer zone

    • Name: String

    (optional)
    • Width: Decimal

    • Notes (optional)

    Total area and perimeter should be pre-populated by the maps API, but modifiable by the user.

    Width is required. Standard is 8 meters for separation of organic and non-organic areas - though there are many reasons it can be less. Must be modifiable.

    Hybrid:

    1. Tasks (List)

    2. Crops (Tile)

    3. Detail**

    ** including edit, retire (only if no incomplete tasks or crops reference this location), reestablish

    Road

    • Name: String

    (optional)
    • Length: Decimal

    • Type: Enum (optional)

    • Notes (optional)

    Length should be pre-populated by the maps API, but modifiable by the user.

    Type: {“Earthen” (default), “Gravel”, “Paved”}

    Hybrid:

    1. Tasks (List)

    2. Detail**

    ** including edit, retire (only if no incomplete tasks reference this location), reestablish

    Footpath

    • Name: String

    (optional)
    • Length: Decimal

    • Type: Enum (optional)

    • Notes (optional)

    Length should be pre-populated by the maps API, but modifiable by the user.

    Type: {“Earthen” (default), “Gravel”, “Paved”}

    Hybrid:

    1. Tasks (List)

    2. Detail**

    ** including edit, retire (only if no incomplete tasks reference this location), reestablish

    Points

    For our Spring 2021 release, the following structures points will be supported:

    Structure

    Point type

    Attributes

    Other notes

    Available Views

    Water valve

    • Name: String

    (optional)
    Source
    • Water source: Enum (optional)

    Flow
    • Maximum flow rate: Decimal (optional)

    • Flow rate unit: Enum (optional)

    • Notes (optional)

    Source

    Water source: {

    “Surface

    “Municipal water” (default), “Surface water”, “Groundwater”,

    “Rainwater”

    “Rain water”}

    Flow rate unit is based on the users measurement preference. For metric: l/min

    (default)

    , l/hour (default)

    For imperial: g/min (default), g/hour

    Hybrid:

    1. Tasks (List)

    2. Detail**

    ** including edit, retire (only if no incomplete tasks reference this location), reestablish

    Gate

    • Name: String

    • Notes (optional)

    Hybrid:

    1. Tasks (List)

    2. Detail**

    ** including edit, retire (only if no incomplete tasks reference this location), reestablish

    Sensor

    • Name: String

    • External_ID: String (optional)

    • Latitude: Decimal

    • Longitude: Decimal

    • Read_types: Enum

    • Depth: Decimal (optional)

    • Brand: String (optional)

    Notes (optional
    • Model: String (optional)

    See Sensors

    Hybrid:

    1. Readings (List)

    2. Tasks (List)

    3. Detail**

    ** including edit, retire (only if no incomplete tasks reference this location), reestablish

    Transitioning from legacy fields to areas, lines, and points

    For Winter 2021 and all previous versions of LiteFarm, fields were an entity that lived just below a farm. Moving forward, we’ll have three categories of of geospatial entities that live below a farm:

    • Areas

    • Lines

    • Points

    For this transition, fields will become an area of type Field. The endpoint that populated fields and displayed them on google maps will need to be augmented to display all categories of geospatial entities.

    Handling overlaps between locations

    In the general case, locations are assumed to be independent from each other. For example, if a user decided to draw a farm site boundary and then chose to draw a field outside this boundary, it is not the system’s responsibility to warn or prevent the user from doing this. Instead, the system assumes the user can make their own choices in this regard as long as the user is provided with the appropriate contextual information, specifically:

    • Users can view existing locations while adding new locations

    • Users can zoom in and out and change the viewed area while adding a new location

    • After placing a new location, users can modify it while viewing existing locations

    One specific example of this general case is overlaps between areas. If a user decided to create a large field and then place a residence partially or entirely within the field, that is their prerogative. The areas of each will be calculated independently. A description of how the system will handle selection of these overlapping locations is described in Interacting with my farm map.

    The reason we’re laissez faire about these interactions are two fold:

    1. For certifications or research where areas are being compared someone will look at the visual map

    2. Users can override areas and perimeters when they create a shape (such that if I knew my field was 10,000 sq ft and my house 2,000 sq ft in the above example, I could overwrite the field area to be 8,000 sq ft to compensate)