A browser-based tool for generating boustrophedon (back-and-forth) sampling paths across polygon boundaries loaded from ESRI shapefiles or drawn directly on the map. Built for agricultural field surveying and precision sampling workflows.
How to Use
- Click Open Shapefile (.zip) to load boundaries, or use Boundary Tools to draw polygons directly on the map. Click to place vertices, double-click to finish, Escape to cancel.
- Configure path parameters: speed, heading, swath width, sampling duration, and elevation (auto-populated from location).
- Select an operation type and fill in type-specific fields (e.g. crop type, moisture, yield for Harvest; tillage method for Tillage). Grain/legume crops auto-derive dry yield from wet (or vice versa) using standard drying moisture. Set separate + and − offsets for yield and moisture for asymmetric per-point spatial variation.
- Click Generate Path, then click a start point and end point on the map.
- The path renders with a green–yellow–red gradient (in-field, based on yield quality) and black (turning) segments.
Key Features
- Draw boundaries — Draw polygon boundaries and holes directly on the map with vertex editing and delete tools.
- Restrict to polygon — Path turns at every boundary edge including holes.
- Accumulate features — Preserve previous paths; new passes avoid prior swaths within the same operation type.
- Undo — Revert generations one at a time.
- Compass rose — Drag to set heading. Auto-initializes to magnetic north.
- Operation types — Harvest, As-Applied, Planting, Tillage with type-specific parameters and independent path layers. As-Applied supports a dynamic multi-product tank mix (up to 5 products) with product name, type, rate, rate units, and density; carriers auto-fill density from known values; includes auto-calculated application rate (with user-selectable units), target rate, and per-point rate variation using 30 m Simplex noise. Planting supports up to 3 variety cards — each with variety name (dynamic per-crop dropdown with real hybrids/varieties), seed population, row spacing, and planting depth — plus crop type, row count, auto-calculated total seed population, and per-point population variation using 30 m Simplex noise. Tillage includes a tillage method selector and row count. All dropdowns sorted alphabetically.
- Crop moisture derivation — Auto-calculates dry yield from wet (or vice versa) using crop-specific standard drying moisture.
- Yield/moisture/rate variation — Per-point spatial variation using Simplex noise with edge-proximity effects. Separate + and − inputs allow asymmetric variation ranges. Harvest uses 150 m noise for yield and moisture. As-Applied and Planting use 30 m noise for tighter application rate and population variation zones.
- Elevation — Per-point terrain elevation via a grid fetched from the Open-Meteo API. Field average shown in the input; user overrides shift all points while preserving terrain shape. Displays in selected unit system (ft/m).
- Soil quality influence (Experimental) — Optional opt-in feature that fetches soil properties (organic carbon, clay content, pH) from the ISRIC SoilGrids API as a 3×3 grid across the field. Computes a composite soil quality score per grid point and bilinearly interpolates per path point, shifting yield/rate/population up or down based on soil quality. Better soil produces higher values; worse soil produces lower. Falls back to uniform quality (1.0) if the API is unavailable.
- Unit toggle — Switch between US (mph, ft) and metric (km/h, m).
- Map controls — Layer switcher with radio-button operation layers (one visible at a time), zoom, attribution, doubled-width scale bar, and compass share a unified dark translucent theme.
- Data histogram — Canvas-based histogram above the scale bar shows the distribution of the primary varied value (yield, app rate, or population) for the visible operation layer, colored with the same green–yellow–red gradient. Auto-hides when no data is present.
- Git history — View the last 40 commits from the panel header. Commit log is embedded at build time.
- Test results — View detailed per-test vitest results from the panel header. Test output is embedded at build time; JUnit XML reports are generated for AWS CodeBuild.
- Date/time stamping — Each sample point carries an incrementing timestamp.
- Feature tooltip — Hover over path points to inspect all properties.
- Export templates — Predefined export templates for Climate FieldView, John Deere, SMS AgLeader, Farmobile, FarmTrx, and Raven Slingshot. Templates select platform-specific columns and rename them to match each platform's format. Additional DD/DH-compatible templates produce shapefiles that match DataDetective identification rules and DataHarvester extraction formats, with vendor-specific field names, units, and required columns.
- Discrepancy viewer — View field-by-field discrepancies between SFG export templates and DataDetective/DataHarvester expectations via a button in the export dialog.
- Export — Download path points as a Shapefile ZIP with configurable attributes and column names. Type-specific columns included per operation.
- CI/CD — Auto-deployed to shapegen.agos.us via CodeBuild on push to master. CloudFormation stack manages S3, CloudFront, ACM, and Route 53.