The 20|20 ADAPT plugin reads all
.2020 files from the Precision Planting 20|20 Generation 3 monitors.
The plugin is released as a .NET NuGet package for easy integration into other software packages. The latest version can also be downloaded directly from the 20|20 ADAPT download page.
What is ADAPT?
ADAPT is an open-source, industry defined specification and framework for agricultural field operation data sponsored by AgGateway. The ADAPT framework is based on Microsoft's .NET Framework. The ADAPT source code is available on Github.
Prior to ADAPT's widespread adoption, FODM was primarily used. FODM is an earlier approach to standardizing Field Operations data. ADAPT was developed to replace FODM, and it's development has been influenced by a wider group of industry participants. Precision Planting does not offer a FODM or FODD for 20|20 data.
Please note that the 20/20 SeedSense Generation 1 or Generation 2 monitors produce
.dat files that utilize the Climate FieldView file format and are readable only by the Climate FODD. Climate provides information about using the
.dat file format via the FieldView for Developers portal.
In 2018, AgGateway released ADAPT framework version 2.0. The 20|20 ADAPT plugin uses ADAPT framework 2.0.
The ADAPT project contains an open source Visualizer program. The ADAPT Visualizer can be used in conjunction with the 20|20 ADAPT plugin to examine the contents of a .2020 file.
Please visit to the 20|20 ADAPT Visualizer tutorial for more information.
Integrating the plugin to your code
To integrate the 20|20 ADAPT plugin into your software, reference the plugin using the NuGet package, or reference the DLL files directly. Additionally, a reference must be added to the
AgGatewayADAPTFramework package, available from NuGet.org, or from Github.
Within your code, instantiate the
PrecisionPlanting.ADAPT._2020.Plugin class and invoke the import method with the path to the
.2020 files intending to be read.
// Instantiate the 20|20 ADAPT plugin
var myPlugin = new PrecisionPlanting.ADAPT._2020.Plugin();
// Import data from a given path. The plugin will return a single ADM object.
string datapath = @"C:\My_2020_Files";
AgGateway.ADAPT.ApplicationDataModel.ADM.ApplicationDataModel admObject =
if (admObject != null)
// Retrieve data from admObject
The data within the ADAPT
ApplicationDataModel uses the following conventions.
Totals/Summaries recorded by the 20|20 for an operation are included under Documents/Summaries. Per-product summaries are under OperationSummaries, and all products summaries are under SummaryData.
Where a standard ADAPT Representation exists, the 20|20 ADAPT plugin reports values using that Representation. For example, ADAPT defines
vrSeedRateSeedsActual as the instantaeous actual planting population; the 20|20 ADAPT plugin reuses this representation.
Where types specific to the 20|20 are present, the 20|20 ADAPT plugin uses a Representation of
CodeSource = UserDefined. Examples of this are Representations for SmartFirmer. A complete list of Representations are present on the 20|20 ADAPT download page.
There exists a set of
OperationData objects for regions of the operation. If Insecticide or Fertilizer was applied alongside Seed, these data will be separate
OperationData objects with correlated timestamps.
Because the 20|20 ADAPT plugin complies with ADAPT Framework 2.0, it is possible to use the
OperationData.CoincidentOperationDataIds property to identify such correlated data.
In the case of
SpatialRecords that have
WorkingData values, the
<null> represents a case where no value was logged by the sensor. For the purposes of interpreting this data where other
SpatialRecords on corresponding
WorkingData objects contain values, consumers may wish to consider interpolating values from other
SpatailRecords instead of treating these values as zero, depending on the nature of the sensor.
ADAPT provides a detailed model for modeling the implement offsets. The inline offsets as reported by the 20|20 ADAPT plugin have the following meanings:
MachineConfiguration.GPSXOffset: distance the GPS receiver is forward of the rear axle
HitchPoint.ReferencePoint.XOffset (Tractor): distance the hitch is behind of the rear axle
HitchPoint.ReferencePoint.XOffset (Implement): distance the hitch point is forward of the implement reference point
ImplementConfiguration.ControlPoint.XOffset: distance the implement reference point is backward of the hitch. This value is the inverse of
SectionConfiguration.InlineOffset: distance the section reference point is backward of the hitch
Positive values are forward and negative values are backward. The
EquipmentConfiguration objects model the
Connector mappings of the
MachineConfiguration (in most cases, the tractor) to the
Positive values are right of the reference point from the point of view of the driver's seat, and negative values are left.