Skip to content

Conversation

@lausdahl
Copy link
Contributor

The standard states that a part field can have more than one boundary but the code was explicitly written to only allow one. This change accept multiple according to version 4

@kelly-nelson
Copy link
Contributor

@lausdahl My understanding of the version 4 change is that it supports multiple disconnected polygons that together comprise one logical boundary. Prior to version 4, it supported only a single Polygon and not a Multi Polygon. The logic at line 39 of PolygonMapper handles this.

Field Boundaries in ADAPT are intended to model multiple overlapping scenarios. E.g.s., the actual cultivated area, the real estate tract, a regulatory boundary. I believe that the ISOXML would be out of spec (or at least intent) if there were overlapping polygons.

I'd recommend changing the SingleOrDefault() at 93 to FirstOrDefault(), or better yet looking at the Field.ActiveBoundaryId to define the specific Boundary to export.

@lausdahl
Copy link
Contributor Author

@knelson-farmbeltnorth I agree with your view on version 4. The proper definition should have said none overlapping boundary polygons. But this is not mentioned anywhere in the standard so technically it allows for that.

I will update the pull request to use ActiveBoundaryId and fallback to FirstOrDefault() not sure if there could be cases where the ActiveBoundaryId is not set.

@lausdahl lausdahl force-pushed the multiple-partfield-boundaries branch from 07b2dae to be30a29 Compare October 29, 2025 22:08
@kelly-nelson
Copy link
Contributor

@strhea tells me he also agrees to the latest changes. Merging the PR.

@kelly-nelson kelly-nelson merged commit 345ba06 into ADAPT:develop Oct 30, 2025
1 check passed
kelly-nelson added a commit that referenced this pull request Nov 6, 2025
* Handle null representation code when examining workingdatas

* Keep valuable operation information from device when possible

* Two fixes for reading CNH Pro1200 Harvest data:
- Stop forcing CategoryEnum.Variety to OperationTypeEnum.SowingAndPlanting (could be Harvesting)
- In GetOperationTypeFromLoggingDevices, prefer a non-Unknown operation type

* Construct DateTime objects with Local DateTimeKind (#259)

* Construct DateTime objects with Local DateTimeKind

* Consolidate "first day of 1980" fields

---------

Co-authored-by: Eric Pohl <eric.pohl@corteva.com>

* Only add boundary with spatial data (#261)

* Adding FieldBoundary description from polygon designator if present

* only add partfield boundary polygon if spartial data is present

* Multiple partfield boundaries (#260)

* Adding FieldBoundary description from polygon designator if present

* Handle multiple boundaries for fields using the active or first boundary

---------

Co-authored-by: Eric Pohl <eric.pohl@corteva.com>
Co-authored-by: Stuart Rhea <stuart.rhea@live.com>
Co-authored-by: Andrew Vardeman <andrew.vardeman.dev@gmail.com>
Co-authored-by: Eric Pohl <31418444+ericpohl@users.noreply.github.com>
Co-authored-by: Kenneth Lausdahl <lausdahl@users.noreply.github.com>
kelly-nelson added a commit that referenced this pull request Jan 8, 2026
* Handle null representation code when examining workingdatas

* Keep valuable operation information from device when possible

* Two fixes for reading CNH Pro1200 Harvest data:
- Stop forcing CategoryEnum.Variety to OperationTypeEnum.SowingAndPlanting (could be Harvesting)
- In GetOperationTypeFromLoggingDevices, prefer a non-Unknown operation type

* Construct DateTime objects with Local DateTimeKind (#259)

* Construct DateTime objects with Local DateTimeKind

* Consolidate "first day of 1980" fields

---------

Co-authored-by: Eric Pohl <eric.pohl@corteva.com>

* Only add boundary with spatial data (#261)

* Adding FieldBoundary description from polygon designator if present

* only add partfield boundary polygon if spartial data is present

* Multiple partfield boundaries (#260)

* Adding FieldBoundary description from polygon designator if present

* Handle multiple boundaries for fields using the active or first boundary

* Fix ProductAllocation timestamp comparison issues (#263)

* Construct DateTime objects with Local DateTimeKind

* Consolidate "first day of 1980" fields

* More messing with timezones

* Cleanup

---------

Co-authored-by: Eric Pohl <eric.pohl@corteva.com>

---------

Co-authored-by: Eric Pohl <eric.pohl@corteva.com>
Co-authored-by: Stuart Rhea <stuart.rhea@live.com>
Co-authored-by: Andrew Vardeman <andrew.vardeman.dev@gmail.com>
Co-authored-by: Eric Pohl <31418444+ericpohl@users.noreply.github.com>
Co-authored-by: Kenneth Lausdahl <lausdahl@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants