Turn a field message into mapped plots
Plot geolocation does not arrive as clean GeoJSON. It arrives as a message from a field agent, a photographed notebook typed up by a cooperative secretary, or a spreadsheet exported in a French locale. This is the step that decides whether a cooperative can comply at all - and the step almost nobody sells.
The model finds the fields and copies coordinate text out verbatim. Every numeric decision - the comma separator, the degrees-minutes-seconds conversion, the transposed axes, the bags-to-kilograms conversion - is made afterwards by deterministic, unit-tested code. A hallucinated digit can move a farm a hundred kilometres, so the model is never allowed near the arithmetic.
Industry surveys put collecting and cleaning geolocation as the single biggest problem companies face under EUDR. The sample on the left is not exaggerated - it carries six defects at once, and each one is a rejected TRACES submission on its own. Press extract to watch them get repaired.
6,752341Decimal commaStandard across Francophone West Africa and the default in a French-locale spreadsheet. Parsed naively it becomes two integers, or the row is dropped.
5°27'31.0"NDegrees, minutes, secondsWhat a handheld GPS prints. Article 2(28) requires decimal degrees to at least six places, so this needs converting, not reformatting.
-6.611900, 6.741200Axes transposedLongitude written first. Read as given, the plot lands in the Gulf of Guinea - off any land, let alone Côte d’Ivoire.
18 sacsHarvest in bagsCocoa is traded in 65 kg bags. Left unconverted the yield-plausibility check cannot run, and yield against area is how phantom volume is caught.
4.5 acresArea in acresCompared against a hectare threshold this understates the plot by a factor of 2.47 - enough to slip under the 4 ha polygon requirement.
6.735 / -6.604Three decimal placesAbout 110 m of ambiguity. This one cannot be repaired, only reported: the precision the law requires is not in the data, so the cooperative is told to remeasure.