Precision Agriculture

RecreatePassLines

Note this tool is part of a WhiteboxTools extension toolset. Please contact Whitebox Geospatial Inc. for information about purchasing a license activation key (https://www.whiteboxgeo.com).

This tool can be used to approximate the combine harvester swath pass lines from yield points. It is sometimes the case that either pass-line information is not stored in the point data created during harvesting, or that this information is lost. The YieldFilter and YieldMap tools however require information about the associated swath path for each point in the dataset. This tool can therefore serve as a pre-processing operation before running either of those more advanced mapping tools. It works by examining the geometry of nearby points and associating points with line features that observe a maximum angular change in direction (--max_change_in_heading). The tool creates two output vectors, including a pass line vector (--output) and a points vector (--output_points). The points output contains a PASS_NUM field within its attribute tables that indicate the unique identifier associated with features. The line vector output contains an AVGYIELD attribute field, which provides the pass-line average of the input yield values (--yield_field_name).

See Also: YieldFilter, YieldMap

Parameters:

FlagDescription
-i, --inputName of the input points shapefile
-y, --yield_field_nameName of the attribute containing yield data
-o, --output_linesName of the output pass lines shapefile
--output_pointsName of the output points shapefile
-m, --max_change_in_headingMax change in heading

Python function:

wbt.recreate_pass_lines(
    i, 
    yield_field_name, 
    output_lines, 
    output_points, 
    max_change_in_heading=25.0, 
    callback=default_callback
)

Command-line Interface:

>> ./whitebox_tools -r=RecreatePassLines -i=yield_points.shp ^
--yield_field_name='YIELD' -o=filtered_points.shp ^
--max_change_in_heading=25.0 

Source code is unavailable due to proprietary license.

Author: Whitebox Geospatial Inc. (c)

Created: 24/05/2021

Last Modified: 24/05/2021

YieldFilter

Note this tool is part of a WhiteboxTools extension toolset. Please contact Whitebox Geospatial Inc. for information about purchasing a license activation key (https://www.whiteboxgeo.com).

This tool can be used to filter the crop yield values associated with point data derived from commerical combine harvester yield monitors. Crop yield data often suffer from high levels of noise do to the nature of how these data are collected. Commercial crop yield monitors on combine haresters are prone to erroneous data for several reasons. Where harvested rows overlap, lower than expected crop yields may be associated with the second overlapping swath because the head of the harvesting equipment is only partially filled. The edges of fields are particularly susceptible to being harvested without a full swath of crop, resulting in anomalous crop yields. The starts of new swaths are also prone to errors, because of the misalignment between the time when the monitor begins recording and the time when grain begins flowing. Sudden changes in harvester speed, either speeing up or slowing down, can also result in anomalous yield measurements.

The YieldFilter tool can smooth yield point patterns, particularly accounting for differences among adjacent swath lines. The user must specify the name of the input points shapefile (--input), the name of the yield attribute (--yieldFieldName), the pass number attribute (--passFieldName), the output file (--output), the swatch width (combine head length, --width), the threshold value (--zScoreThreshold), and optionally, minimum and maximum yield values (--minYield and --maxYield). If the input vector does not contain a field indicating a unique identifier associated with each swath pass for points, users may use the RecreatePassLines to estimate swath line structures within the yield points. The threshold value, measured in standardized z-scores is used by the tool to determine when a point is replaced by the mean value of nearby points in adjacent swaths.

The following images show before and after examples of applying YieldFilter:

See Also: RecreatePassLines, YieldMap

Parameters:

FlagDescription
-i, --inputName of the input points shapefile
-y, --yield_field_nameName of the attribute containing yield data
-p, --pass_field_nameName of the attribute containing pass line ID
-o, --outputName of the output points shapefile
-w, --widthPass swath width (m)
-z, --z_score_thresholdZ-score threshold value (default=2.5)
--min_yieldMinimum yield value in output
--max_yieldMaximum yield value in output

Python function:

wbt.yield_filter(
    i, 
    yield_field_name, 
    pass_field_name, 
    output, 
    width=6.096, 
    z_score_threshold=2.5, 
    min_yield=0.0, 
    max_yield=99999.9, 
    callback=default_callback
)

Command-line Interface:

>> ./whitebox_tools -r=YieldFilter -i=yield_points.shp ^
--yieldFieldName='YIELD' --passFieldName='PASS_NUM' ^
-o=filtered_points.shp --width=7.0 --zScoreThreshold=3.0 ^
--maxYield=55.0 

Source code is unavailable due to proprietary license.

Author: Whitebox Geospatial Inc. (c)

Created: 25/05/2021

Last Modified: 25/05/2021

YieldMap

Note this tool is part of a WhiteboxTools extension toolset. Please contact Whitebox Geospatial Inc. for information about purchasing a license activation key (https://www.whiteboxgeo.com).

This tool can be used to create a segmented-vector polygon yield map from a set of harvester points. The user must specify the name of the input points shapefile (--input), the pass number attribute (--passFieldName), the output file (--output), the swatch width (combine head length, --width), and maximum angular change in direction (--maxChangeInHeading). If the input vector does not contain a field indicating a unique identifier associated with each swath pass for points, users may use the RecreatePassLines to estimate swath line structures within the yield points.

See Also: RecreatePassLines, YieldFilter

Parameters:

FlagDescription
-i, --inputName of the input points shapefile
-p, --pass_field_nameName of the attribute containing pass line ID
-o, --outputName of the output polygon shapefile
-w, --widthPass swath width (m)
-m, --max_change_in_headingMax change in heading

Python function:

wbt.yield_map(
    i, 
    pass_field_name, 
    output, 
    width=6.096, 
    max_change_in_heading=25.0, 
    callback=default_callback
)

Command-line Interface:

>> ./whitebox_tools -r=YieldMap -i=points.shp -p='PASS_NUM' ^
-o=yield_map.shp --width=7.0 --max_change_in_heading=25.0 

Source code is unavailable due to proprietary license.

Author: Whitebox Geospatial Inc. (c)

Created: 25/05/2021

Last Modified: 25/05/2021