ISO 11783-10 ISOXML Tag Extensions February 26, 2013 Table of Contents Index of Tables .......................................................................................................................... 3 Purpose ..................................................................................................................................... 3 Scope ........................................................................................................................................ 4 Authors ...................................................................................................................................... 4 About the SPADE project ........................................................................................................... 4 Data Planning ............................................................................................................................ 5 Create Plan ................................................................................................................................ 6 Create Recommendation ........................................................................................................... 7 Create Work Order ..................................................................................................................... 7 Get Work Record ....................................................................................................................... 8 Historical Data Transfer ............................................................................................................. 9 Appendix A New Tag Proposals ...............................................................................................21 ISO11783_TaskPlanning ..........................................................................................................21 AAU - ApprovalAuthority ...........................................................................................................23 AAR - ApprovalAuthorityReference ...........................................................................................23 LIC - License .............................................................................................................................25 LIR - LicenseReference ............................................................................................................38 MSG - Message ........................................................................................................................38 HTY - History ............................................................................................................................34 DDT - DueDate .........................................................................................................................29 WST - WorkSet .........................................................................................................................42 WOR - Work .............................................................................................................................50 CRU - CropUse .........................................................................................................................28 CUR - CropUseReference ........................................................................................................29 ORQ - ObjectRequest ...............................................................................................................42 DRQ - DataRequest ..................................................................................................................30 HDT - HistoricalData .................................................................................................................34 DTA - HistoricalDataset.............................................................................................................30 LYR - HistoricalLayer ................................................................................................................38 STN - HistoricalSection .............................................................................................................45 ATR - Attribute ..........................................................................................................................26 SUM - Summary .......................................................................................................................49 PPT - Property ..........................................................................................................................44 REF - Reference .......................................................................................................................45 ADR - Address ..........................................................................................................................25 PER - Person ............................................................................................................................44 SSN - Season ...........................................................................................................................45 BTC - Batch ..............................................................................................................................26 LOT - Lot...................................................................................................................................38 CPY - Company ........................................................................................................................27 STS - StatusUpdate ..................................................................................................................48 Appendix B Proposed extensions to existing ISOXML tags ......................................................53 PFD - Partfield ..........................................................................................................................53 CTP - CropType ........................................................................................................................53 TSK - Task ................................................................................................................................54 ASP - AllocationStamp ..............................................................................................................54 TIM - Time .................................................................................. Error! Bookmark not defined. PAN - ProductAllocation............................................................................................................54 CTR - Customer ........................................................................................................................55 DVC - Device ............................................................................................................................55 WKR - Worker ...........................................................................................................................55 PDT - Product ...........................................................................................................................56 CVT - CropVariety.....................................................................................................................56 PGP - ProductGroup ................................................................... Error! Bookmark not defined. DLV - DataLogValue .................................................................................................................56 CLD - ColourLegend .................................................................................................................57 CRG - ColourRange ..................................................................................................................57 PLN - Polygon ...........................................................................................................................57 LSG - Linestring ........................................................................................................................58 PNT - Point ...............................................................................................................................58 Appendix C Examples? .............................................................. Error! Bookmark not defined. Appendix D Guidelines for representation of ISO11783-10 ISOXML in JSON ..........................58 Files ..........................................................................................................................................58 XML Elements...........................................................................................................................59 Data Types ...............................................................................................................................59 Binary Attached Files ................................................................................................................60 TimeLog Binary Files ................................................................................................................60 Grid Binary Files .......................................................................................................................61 ZZZ - TAGTEMPLATE ................................................................ Error! Bookmark not defined. Index of Tables Table 1 – Supported Spatial Types ........................................................................................12 Table 2 - Raster Grid.................................................................................................................16 Table 3 - Raster Grid Z .............................................................................................................16 Table 4 - Raster Grid Cell .........................................................................................................16 Table 5 - Raster Grid Cell Z ......................................................................................................17 Table 6 - Spatial Data Type None ............................................................................................17 Table 7 - Spatial Data Type None Z ..........................................................................................17 Table 8 - Binary File Header .....................................................................................................17 Table 9 – Binary Record Structure ............................................................................................17 Table 10 - Spatial Data Structure ..............................................................................................18 Table 11 - Layer Data Structure ................................................................................................18 Table 12 - Section Data Structure .............................................................................................18 Table 13 - Attribute Data Structure ............................................................................................19 Table 14 - Data Object ..............................................................................................................19 Table 15 - Record Object ..........................................................................................................19 Table 16 - Layer Object.............................................................................................................19 Table 17 - Section Object ..........................................................................................................20 Purpose The purpose of this document is to describe an electronic messaging system used in agriculture to assist in the planning and execution of farming operations between producers, suppliers, and service providers. Scope The scope of this project is limited to the data requirements related to the field operation of planting. While the recommended changes are intended to be generic and usable by any field operation, it is acknowledged that data requirements for non-planting operations may be missing. Authors This document is a collaborative effort by members of AgGateway participating in the SPADE project. The group consists of representatives from a large number of companies participating in or related to precision agriculture. About the SPADE project Project Description and Value Proposition The SPADE Project involves the trading/sharing of agricultural data between farmers and the companies with the goal of promoting efficient operations. This data sharing requires the use of a common language among companies and equipment manufacturers. The SPADE Project Team intends to adopt existing standards and if a gap exists, develop standards for the automatic exchange of ag-related data between customers, businesses, and other stakeholders. These standards will promote a seamless, scalable and sustainable producer operation by lowering the barrier for adoption of precision ag products. Agriculture companies will benefit by removing interoperability issues, thereby lowering development costs. Background The next generation of agricultural managers is asking how the industry can enable seamless data exchange between machines and Farm Management Information Systems (FMIS). The costs for exchanging data are high due to the lack of common implementation guidelines, data transfer protocols, message standards, and standard reference data. Producers report that it is difficult or nearly impossible to move data from one system to another. To do so almost always requires data reentry, manual data transformation, and/or specialists to manage data. The value chain from manufacturing through distribution supports many data-management, analysis, and decision-support functions for the producer. Having systems that utilize eBusiness standards and guidelines will help move the industry toward interoperability. This will improve the efficiency and productivity of the producers and their trusted advisors. In June 2011, the Precision Ag Council’s Field Operations working group in AgGateway identified several industry needs and selected seeding as the example use case to identify applicable standards and analyze gaps within the standards that may be impeding data exchange. Next, the team demonstrated a proof of concept regarding message contents for data exchange between software/hardware systems building on the ISO11783 data standards and distributed databases. The successful results of this proof-of-concept were presented to the Precision Ag Council at AgGateway’s Annual Conference in November 2011. This charter outlines a project to move from conceptual demonstration to production. Near project completion, the project team will outline use cases for progressing with other operations (seeding, spraying, fertilizing, etc) and consider opportunities for promoting more widespread adoption. Data Planning The data planning process occurs through a series of messages between actors. The messages contain information about who is sending the message, what work is being proposed, and who authorizes the work to be done. Work Work is planned in three separate phases. Each phase is agreed upon by all actors before the next phase of planning begins. While every step of each phase is supported through this system, it is understood that some of these steps may be done informally, through other means, and in a variety of orders. Plan The first phase of work is the plan phase. A plan is typically drafted at a high level, which may include intended crop, crop season, seed and other products, and estimated rates for the products needed for planting. It is a discussion support tool between producers and providers that may include the entire farm or may just be a specific field/unit. A plan may or may not be spatially specific. Recommendation A recommendation is the second phase of work. A recommendation is a suggestion for work to be done based on a plan. Recommendations are typically created by a provider for a producer and contain more detailed information than a plan. Work Order A work order is the final phase of work planning. A work order contains specific information about what will be done, where, and with what resources. Work Flow Some notes here describing what the expected work flow between actors is, and probably what actors are involved. Include some example scenarios and show xml (maybe in another appendix?) that solves those. In this we should include the lifecycle diagram from WG1 and all of the diagrams we made for the use cases Create Plan Create Recommendation Create Work Order Get Work Record Historical Data Transfer Purpose Historical Data Transfer is intended to allow the transfer of data between FMIS systems that otherwise has no explicit definition in ISO11783-10 ISOXML. This generally consists of processed task data and data manufactured in the FMIS. It would not include things like boundaries, guidance, and prescriptions as those already have explicit definitions better suited to transferring that data. Design Historical data consists of collections of values related spatially and temporally. This can be as simple as a single operation in a field or a complex multi-operation job in which a wide variety of values are collected. Values are represented as either attributes or properties, depending on the usage of the value. An attribute is a value that changes over time and a property is a value that is constant. Both attributes and properties can represent the same types of data such as planting rate. Each collection of related attributes and properties is grouped into a dataset. A dataset is organized by a collection of layers. A layer is a group of values that relate by operation (planting, fertilizing, etc.) and product. So, for example, if a grower were to go to a field and plant two varieties plus spread fertilizer all simultaneously, there would be at least 3 layers needed to describe that set of operations. Two of the layers would need to be for planting data, one for each of the varieties, and the third layer would be for the fertilizer. Each layer can further be organized by sections and sub-sections (sections within sections), each containing their own collections of values. Layer division is not restricted to only operation and product bounds. Some values, such as fuel usage, are not part of a particular operation or associated with a specific product. Additionally it would be wrong to copy the values to the operational layers because that would lead to a misrepresentation of the data. In these cases it is useful to group these types of values into one or more additional layers. Two different layers may contain values for the same types of data, for example the planting rate in the two planting layers, but a single layer can only contain the value once at the given level. Consider the split planter example with 2 layers, one for each product being planted. Both layers contain a value for the planting rate for the product associated with the layer. The layers can also have sections (and possibly sub-sections) that also have a planting rate that represents the rate for that section (or sub-section). A single layer could not however have two planting rate values at the same level because the meaning for the two values would be ambiguous. A dataset’s contents are expressed as a collection of records. Each record contains a single spatial object (point, line, polygon, etc.) and 0 or more values associated with that object. Values in records are considered attribute values and the possible value types are defined by the layer, section, and sub-section structure that makes up the dataset. For each record, every layer declares that it either is or is not a part of that record. If it is not a part of that record then the spatial object for that record is not associated with the layer and the layer cannot report any attribute values. If the layer is part of the record then it can also define the values for its attributes. The layer does not have to define values for every attribute in each record. If the attribute value did not change from the previous record the layer participated in then the value can be omitted. In this case the value from the previous record is carried through to the current record. The first record that a layer participates in then will always have a value for every attribute to initialize the set of known good values. Tag Definitions Historical data transfer is facilitated through the use of a collection of proposed tags accompanied by a collection of records, either binary or textual, that contains the spatial and attribute information about the data. The tags and their relationships are shown in the diagram below. Historical Data (HDT) Historical Dataset (DTA) Historical Layer (LYR) Historical Section (STN) Record Collection Attribute Property Historica lData (HDT): An HDT is a collection of datasets that belong to a unique combination of Customer (CTR), Farm (FRM), Partfield (PFD). Each of these items is optional so the data is free to be expressed in whatever way it is actually linked to coding data. Historical Dataset (DTA): A DTA is a collection of data that was recorded simultaneously. For example if a grower were to spread fertilizer while planting, the dataset would contain all of the collected values for both the planting and fertilizing operations. Historical Layer (LYR): Each LYR is a collection of related values used in an operation. Each layer is also limited to a single product. For example if there is some split planter data with two varieties, each variety will be a separate LYR. Historical Section (STN): An STN describes section level values for a particular layer. The STN can have its own collection of attributes that describe the values recorded for that section for each record. STNs can also be nested to allow for sub-section and row level value descriptions. Attribute (ATR): An attribute is a value in the data that changes over intervals. Examples of attributes include the actual rate that seed is being planted, the work state (on/off) of a section, etc. Property (PPT): A property is a value in the data that does not change, or is considered constant for the duration of the dataset. Examples of properties include X/Y/Z GPS offsets, equipment dimensions, etc. Properties and Attributes are interchangeable depending on how they need to be used. Working Width for example may be a property for harvest datasets where the operating width is constant, or an attribute for planting datasets when the operating width can change from record to record. Any value that is constant for the every record in the dataset should be recorded as a property, and any value that needs to change from one record to the next should be recorded as an attribute. Record Collection Representation The collection of records that make up the dataset can be expressed as either a binary file or a JSON object. In either case, each record consists of two parts, the spatial information and the attribute values. The attribute values are organized by the layer and section structure defined in the tags. Only values for attributes declared in the corresponding layer and section tags can exist in the record collection. Additionally, if an attribute is declared on a layer or section then that attribute must, at a minimum, record a value in the first record of the record collection. This organization is shown in the diagram below. Record Collection Collection Header Version Flags Record (1 or more) Record Marker Timestamp (optional) Spatial Data Layer (1 or more) Is Valid Attribute Value (0 or more) Section (0 or more) Attribute Value (0 or more) Section (0 or more) Attribute Value (0 or more) Spatial Data Spatial data is represented by a subset of the spatial types defined in ISO 13249-3:2011. In addition to this subset, three new spatial types are defined to support data that is standard to our industry. All spatial coordinates are expressed in WGS84. See table 1 for a summary of supported spatial types. Spatial Type Point LineString Polygon MultiLineString MultiPolygon Point Z LineString Z Polygon Z MultiLineString Z MultiPolygon Z Raster Grid Raster Grid Cell None Raster Grid Z Raster Grid Cell Z None Z Spatial Type Code 1 2 3 5 6 1001 1002 1003 1005 1006 8950 8951 8952 9950 9951 9952 Is Part of WKB Standard? Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No No Comment Z is elevation in meters Z is elevation in meters Z is elevation in meters Z is elevation in meters Z is elevation in meters Z is elevation in meters Z is elevation in meters Z is elevation in meters Table 1 – Supported Spatial Types Raster Grid Data Data that is stored in raster (grid) structures are supported by using the two spatial types Raster Grid and Raster Grid Cell. The first record in the raster dataset will contain a Raster Grid object that specifies how the grid is constructed. Only one Raster Grid object can exist in a dataset. Subsequent records contain Raster Grid Cell objects that reference a specific cell in the grid using an index. A raster grid is a grid of uniformly sized cells that starts at an origin defined as the southwestern most corner and extends north and east. The extent of a raster grid is defined by the number of rows/columns and the height/width of each cell. Each cell in the grid can be identified by a calculated index with the first cell being index 0. Likewise, the first, southern-most, row in the grid is row 0 and the first, western-most, column is column 0. Mathematically the index is as follows: Index = row * NumberOfRows + column 91 92 93 94 95 96 97 98 99 80 81 82 83 84 85 86 87 88 89 70 71 72 73 74 75 76 77 78 79 60 61 62 63 64 65 66 67 68 69 50 51 52 53 54 55 56 57 58 59 40 41 42 43 44 45 46 47 48 49 30 31 32 33 34 35 36 37 38 39 20 21 22 23 24 25 26 27 28 29 10 11 12 13 14 15 16 17 18 19 0 1 2 3 4 Row 50 6 7 8 9 Column 0 90 The extents of a cell can be calculated using the cell index and some values from the grid. The cell width and height have to be converted from meters to lat/lon (unproject below): South = floor(Index / NumberOfColumns) * unproject(CellHeight) + MinimumLatitude North = (floor(Index / NumberOfColumns) + 1) * unproject(CellHeight) + MinimumLatitude West = (Index % NumberOfColumns) * unproject(CellWidth) + MinimumLongitude East = (Index % NumberOfColumns + 1) * unproject(CellHeight) + MinimumLongitude Not all cells in the grid need a corresponding Raster Grid Cell object. In many cases, the data being transferred does not fully expand to every cell. If a cell does not contain any data, it can simply be omitted as a record and the data reader will know not to include that cell in the resulting dataset. The Raster Grid object has a property that indicates the cell index associated with the first record, which can be something other than 0. This is illustrated in the example below. 90 91 92 93 94 95 96 97 98 99 80 81 82 83 84 85 86 87 88 89 70 71 72 73 74 75 76 77 78 79 60 61 62 63 64 65 66 67 68 69 50 51 52 53 54 55 56 57 58 59 40 41 42 43 44 45 46 47 48 49 30 31 32 33 34 35 36 37 38 39 20 21 22 23 24 25 26 27 28 29 10 11 12 13 14 15 16 17 18 19 0 1 2 3 4 5 6 7 8 9 In this example, there is a single polygon in red that needs to be rasterized. The 10x10 grid covers the extents of the polygon but only the cells that intersect the polygon will contain any data. Rasterizing the polygon will result in the image below. 90 91 92 93 94 95 96 97 98 99 80 81 82 83 84 85 86 87 88 89 70 71 72 73 74 75 76 77 78 79 60 61 62 63 64 65 66 67 68 69 50 51 52 53 54 55 56 57 58 59 40 41 42 43 44 45 46 47 48 49 30 31 32 33 34 35 36 37 38 39 20 21 22 23 24 25 26 27 28 29 10 11 12 13 14 15 16 17 18 19 0 1 2 3 4 5 6 7 8 9 When generating records for a dataset containing this polygon, only cells highlighted in red would be records and have cell objects in the dataset. The first record would have the grid definition for 10 rows and 10 columns, and the first cell index would be 2 in this case. Cells not highlighted in red, 99 for instance, would not have associated records at all. Spatial Data Type None The historical data transfer specification allows for the transfer of record data not related to any geo-spatial object. WKT Representation of New Types The following BNF grammar is an extension of the ISO 13249-3:2011 well-known text grammar. <corner point> ::= <x> <y> <cell width> ::= <number> <cell height> ::= <number> <cell size> ::= <cell width> <cell height> <cell index> ::= <exact numeric literal> <number of rows> ::= <exact numeric literal> <number of columns> ::= <exact numeric literal> <cell count> ::= <number of columns> <number of rows> <raster grid text> ::= <left paren> <corner point> <cell size> <cell count> <cell index> [ <z> ] <right paren> <raster grid tagged text> ::= RASTERGRID [Z] <raster grid text> <raster grid cell text> ::= <left paren> <cell index> [ <z> ] <right paren> <raster grid cell tagged text> ::= RASTERGRIDCELL <raster grid cell text> <none text> ::= <left paren> [ <z> ] <right paren> <none tagged text> ::= NONE [Z] <none text> Examples Geometry Type Raster Grid Raster Grid Z Text Literal Representation RASTERGRID ( 10 10 1 1 20 20 0 ) RASTERGRID Z ( 10 10 1 1 20 20 0 1200 ) Raster Grid Cell Raster Grid Cell Z RASTERGRIDCELL ( 3 ) RASTERGRIDCELL Z ( 3 1200 ) None None Z NONE ( ) NONE Z ( 1200 ) Comment A Raster Grid A Raster Grid with Elevation A Raster Grid Cell A Raster Grid Cell with Elevation An empty spatial object An empty spatial object with Elevation Binary Representation All binary data is stored in little endian format. Because the endianness of the file is specified as little endian, the byte order byte of the WKB representation is omitted and the NDR encoding is assumed. It is possible to use a standard WKB decoder with this representation by loading the first byte of an array with the NDR byte order value and copying the remaining type and data bytes into the array starting with the second byte. The binary structures of the new spatial types and record collection structures are described in the tables that follow. Binary Representation of New Spatial Types Table 2 - Raster Grid Value MinimumLatitude MinimumLongitude CellWidth Binary data type double double double Length in bytes 8 8 8 CellHeight NumberOfColumns NumberOfRows FirstCellIndex double Unsigned 32-bit integer Unsigned 32-bit integer Unsigned 32-bit integer 8 4 4 4 Comment min. -180.0 .. max. 180.0 min. -90.0 .. max. 90.0 WGS84 (not mm to avoid projection) Index of cell for the first record. Table 3 - Raster Grid Z Value MinimumLatitude MinimumLongitude CellWidth CellHeight NumberOfColumns NumberOfRows FirstCellIndex Binary data type double double double double Unsigned 32-bit integer Unsigned 32-bit integer Unsigned 32-bit integer Length in bytes 8 8 8 8 4 4 4 double 8 Binary data type Length in bytes Elevation Comment min. -180.0 .. max. 180.0 min. -90.0 .. max. 90.0 Index of cell for the first record. Elevation of cell indexed by the grid. Elevation is in meters. Table 4 - Raster Grid Cell Value Comment Index Unsigned 32-bit integer 4 Table 5 - Raster Grid Cell Z Value Index Elevation Binary data type Unsigned 32-bit integer double Length in bytes 4 8 Comment Elevation is in meters. Table 6 - Spatial Data Type None If the type is None, then the spatial data section of the record will be 0 bytes in length. Table 7 - Spatial Data Type None Z Value Elevation Binary data type double Length in bytes 8 Comment Elevation is in meters. Record Collection Structures Table 8 - Binary File Header Value Version Binary data type unsigned byte Length in bytes 1 Bitfield 4 Unsigned 32-bit integer Binary Record Structure 4 Flags Record Count Record Data n Comment First release will be value 1 Bit flags: 1: Timestamp included in record [1=yes, 0=no] 2-32: Undefined The total number of records in this file variable The list of records for this file Table 9 – Binary Record Structure Value Record Marker Time Binary data type unsigned 16-bit integer Unsigned 32-bit integer Length in bytes 2 4 Comment The value for the record marker is 0x2E07 Milliseconds since midnight Only exists in the file if the flag is set in the header. Date Unsigned 16-bit integer 2 The values are in UTC Days since 1980-01-01 Only exists in the file if the flag is set in the header. Spatial data Number of Layers Spatial Data Structure Unsigned 16-bit variable 2 The values are in UTC A single Spatial Data Structure The number of Layer Data Layer Data n integer Layer Data Structure Structures to follow A list of layers that contain data for this record variable Table 10 - Spatial Data Structure Value Spatial data length Spatial data type Spatial data Binary data type Unsigned 32-bit integer Unsigned 32-bit integer variable Length in bytes 4 4 Comment The size of this structure One of the values from the Spatial Data Type table. The bytes are interpreted based on the value of the data type. These bytes do not include a byte order byte, nor do they include the type again. variable Table 11 - Layer Data Structure Layer ID Value Binary data type 16-bit integer 2 Length in bytes Layer Record Is Valid Number of Attributes byte Unsigned 16-bit integer 1 2 Attribute Data n Attribute Data Structure 6 Number of Sections Unsigned 16-bit integer 2 Section Data n Section Data Structure variable Comment Numeric portion of HistoricalDataLayer element ID The number of attribute data structures for this layer A list of Attribute Data structures that contain the attribute values for this layer The number of section data structures for this layer A list of Section Data Structures that contain the section data for this layer Table 12 - Section Data Structure Section ID Value Binary data type 16-bit integer 2 Length in bytes Number of Attributes Unsigned 16-bit integer 2 Attribute Value n Attribute Data Structure 6 Number of Sections Unsigned 16-bit integer 2 Section Data n Section Data Structure variable Comment Numeric portion of HistoricalDataSection element ID The number of attribute data structures for this section A list of attribute data structures that contain the attribute values for this section The number of section data structures for this section A list of Section Data Structures that contain the section data for this section Table 13 - Attribute Data Structure DDI Value Binary data type Unsigned 32-bit integer 4 Length in bytes Value 32-bit integer 4 Comment Index of the attribute in the array Value according to DDI JSON Representation The file portion of the historical data transfer can be represented using JSON following the guidelines for representing ISOXML as JSON. The data can exist in its own file or as a part of a JSON document. In either case, the data object will be added as a property of the root object with a name equal to the Filename property (D) of the corresponding Historical Data (DTA) element. Table 14 - Data Object Name Version Records Data Type number array [ Record Object ] Comment version of the specification Data Type string string array [ Layer Object ] Comment Example: { “Version”: 1, “Records”: […] } Table 15 - Record Object Name Datetime SpatialObject Layers WKT Representation (ISO 13249-3) Example: { “Datetime”: “2013-01-31T16:55:03Z”, “SpatialObject”: “(POINT Z, (-94.344200 41.186549 1290.706000))”, “Layers”: […] } Table 16 - Layer Object Name Id Attributes Data Type number null or array [ [number, number] ] Sections null or array [ Section Object ] Example: { “Id”: 1, “Attributes”: [[12, 12130]], “Sections”: […] } Comment Same value as the Id null if no attribute values, otherwise a two dimensional array of number pairs with the first number being the DDI and the second being the value Table 17 - Section Object Name Id Attributes Data Type number null or array [ [number, number] ] Sections null or array [ Section Object ] Comment null if no attribute values, otherwise a two dimensional array of number pairs with the first number being the DDI and the second being the value There can be at most two levels of sections. Example: { “Id”: 1, “Attributes”: [[12, 11980]], “Sections”: null } Examples (work in progress) Scenario: Two different seeds are planted using a 12 row split planter with a controller for the first 6 rows and another for the second 6 rows. Each controller reports the rate for its 6 sections, and each section individually is reporting the down force. The work state can be changed at the controller level and at the row level. The working width for the planter is constant, and is known for each half as well as each row. The number in brackets is the DDI as defined in the data dictionary, ISO11783-11. Appendix A New Tag Proposals Insert tag map diagram here... ISO11783_TaskPlanning Description: The XML element ISO11783_TaskPlanning is the root XML element for a TASKPLAN XML file. It contains information about the construct of the XML File, such as version and origin. The author of the XML file should fill in the attribute values with information about the software creating the XML file. Includes XML elements: - ApprovalAuthority - AttachedFile - ColourLegend - CropType - Customer - DataRequest - Device - ExternalFileReference - Farm - HistoricalData - History - License - Message - ObjectRequest - Partfield - Person - Product - ValuePresentation - Worker - WorkSet Attributes: Attribute XML Use Types Length /range Comment List element release number (major), used to specify the version of the SPADE Extensions standard that this task planning file meets: VersionMajor A r xs:NMTOKEN 0 to 1 0 = The draft version of the standard VersionMinor B r xs:NMTOKEN 0 to 99 ManagementSoftwareManufacturer C r xs:string 32 ManagementSoftwareVersion D r xs:string 32 ApprovalAuthority AAU o xs:element AttachedFile AFE o xs:element ColourLegend CLD o xs:element CropType CTP o xs:element Customer CTR o xs:element DataRequest DRQ o xs:element Device DVC o xs:element ExternalFileReference XFR o xs:element Farm FRM o xs:element HistoricalData HDT o xs:element History HTY o xs:element License LIC o xs:element Message MSG o xs:element ObjectRequest ORQ o xs:element 1 = The first published version of the standard List element version number (minor), used to refer to revisions of the XML schema that this task planning file complies to. Name of management software manufacturer Version of management software Includes a list of XML element ApprovalAuthority Includes a list of XML element AttachedFile Includes a list of XML element ColourLegend Includes a list of XML element CropType Includes a list of XML element Customer Includes a list of XML elementDataRequest Includes a list of XML element Device Includes a list of XML element ExternalFileReference Includes a list of XML element Farm Includes a list of XML element HistoricalData Includes a list of XML element History Includes a list of XML element License Includes a list of XML element Message Includes a list of XML element Partfield PFD o xs:element Person PER o xs:element Product PDT o xs:element ValuePresentation VPN o xs:element Worker WKR o xs:element WorkSet WST o xs:element ObjectRequest Includes a list of XML element Partfield Includes a list of XML element Person Includes a list of XML element Product Includes a list of XML element ValuePresentation Includes a list of XML element Worker Includes a list of XML element WorkSet Examples: <ISO11783_TaskPlanning A="0" B=”0” C=”Generic FMIS” D=”1.0.0.1”> … </ISO11783_TaskPlanning> AAR - ApprovalAuthorityReference Description: A reference to an ApprovalAuthority element. Included by XML elements: - WorkSet References XML elements: - ApprovalAuthority Includes XML elements: Attributes: Attribute ApprovalAuthorityIdRef XML A Use r Types xs:IDREF Length/range min. .. max. 14 Comment Reference to XML element ApprovalAuthority. Format: (AAU|AAU-)([0-9])+ Examples: <AAU A="AAU1"> <PER A="PER1" B="My Farm Manager"> <ADR A="123 Main St" C="42071" D="Murray" E="KY" F="USA" G="+1-270-555-4369"/> </PER> </AAU> <AAR A=”AAU1”> </AAR> AAU - ApprovalAuthority Description: The ApprovalAuthority element describes a person/organization that is licensed or has permission to approve a request for work to be done. Examples of an ApprovalAuthority might be a service provider who wants to verify that an execution window for work fits the schedule or a licensed independent entity that validates the legality of the requested work. Included by XML elements: References XML elements: Includes XML elements: - LicenseReference - Address - Person Attributes: Attribute ApprovalAuthorityId XML A Use r Types xs:ID Length/range min. .. max. 14 Comment Unique identifier for approval entity. Format: (AAU|AAU-)([0-9])+ LicenseReference o xs:element Address o xs:element Person o xs:element Records generated on MICS have negative IDs Includes a list of XML element LicenseReference Includes a single XML element Address Includes a list of XML elements Person that represent the contacts for this authority. Examples: <AAU A="AAU1"> <PER A="PER1" B="My Farm Manager"> <ADR A="123 Main St" C="42071" D="Murray" E="KY" F="USA" G="+1-270-555-4369"/> </PER> </AAU> ADR - Address Description: A series of properties that defines an address. Included in XML elements: - ApprovalAuthority - Person References XML elements: Includes XML elements: Attributes: Attribute Street POBox PostalCode City State Country Phone Mobile Fax EMail XML A B C D E F G H I J Use o o o o o o o o o o Types xs:string xs:string xs:string xs:string xs:string xs:string xs:string xs:string xs:string xs:string Length/range Comment Street PO box Postal code City State or county Country Telephone number Mobile phone number Fax number E-mail Examples: <LIC A="LIC2" B="PDA123456789" C="Pennsylvania Department of Agriculture"> <TSP A="2013-01-01T23:59:59-05:00" B="2013-12-31T23:59:59-05:00"/> </LIC> <AAU A="AAU1"> <PER A="PER1" B="Jenny"/> <ADR A="456 1st Street" C="16823" D="Bellefonte" E="PA" F="USA" G="+1-555-867-5309"/> <LIR A="LIC2"></LIR> </AAU> ATR - Attribute Description: An attribute is used to indicate what values are available in a set of data. The attribute can have a set value if the Value property is defined. The Attribute can reference a ValuePresentation and assign a Designator to help process proprietary DDIs. Included in XML elements: - HistoricalLayer - HistoricalSection References XML elements: - ValuePresentation Includes XML elements: Attributes: Attribute XML A Use r Types xs:hexBinary Value Designator B C o o xs:long xs:string ValuePresentationIdRef D o xs:IDREF DDI Length/range 0x0000 .. 0xFFFF Comment The variable as specified in ISO11783-11 The value of the DDI Human readable name of the attribute. Reference to XML element ValuePresentation Format: (VPN|VPN-)([0-9])+ Examples: <ATR A="0054" C=”Yield Volume/Area”/> BTC - Batch Description: The batch number of a product. Included in XML elements: - ProductAllocation References XML elements: Includes XML elements: Attributes: Attribute Designator XML A Use r Types xs:string Length/range Comment The batch number Use r Types xs:ID Length/range min. 4 .. max. 14 Comment Unique identifier for company. Examples: <BTC A="A34B426"> </BTC> CPY - Company Description: A company or organization. Included in XML elements: References XML elements: - Person - Customer - Worker - Product - Variety Includes XML elements: Attributes: Attribute ComapnyID XML A Format: (CPY|CPY-)([0-9])+ Designator WebAddress TaxID Address B C D r o o xs:string xs:string xs:string xs:element Records generated on MICS have negative IDs The name of the company The URL of the company The Tax ID of the company A single XML element Address Examples: <CPY A="CPY1" B=”Some Company” C=”http://www.somecompany.com”> <ADR A="456 1st Street" C="16823" D="Bellefonte" E="PA" F="USA" G="+1-555-867-5309"/> </CPY> CRU - CropUse Description: The CropUse element describes a use of a crop. A crop use is documented as either an intent or an actual. Where the crop use is located defines the meaning for that reference. When the crop use is linked to a partfield, then that crop use is an intended crop use for operation planning. When the crop use is linked to a task, then that crop use is an actual crop use that was used during harvest. The intended and actual crop uses can differ during a farming operation. The CropUseCode value list should be stored in a DDI and initialized with the values from the NRCS. Included in XML elements: - ISO11783_TaskPlanning References XML elements: Includes XML elements: Attributes: Attribute CropUseId XML A Use r Types xs:ID Length/range Comment Unique identifier for CropUse Format: (CRU|CRU-)([0-9])+ Designator B o xs:string Examples: <CRU A="CRU1" B="Silage"/> <CRU A="CRU2" B="Grain"/> When referenced from a Partfield, a CropUse is intended. <CRU A="CRU1" B="Silage"/> <PFD A="PFD1" C="My Corn Field" J="CRU1"> When referenced from a Task, a CropUse is actual. Records generated on MICS have negative IDs Human readable crop use name. <CRU A="CRU1" B="Silage"/> <TSK A="TSK-1" G="1" K="CRU1"> CUR - CropUseReference Description: A reference to a CropUse element. Included in XML elements: - CropType References XML elements: - CropUse Includes XML elements: Attributes: Attribute CropUseIdRef XML A Use r Types xs:IDREF Length/range Comment Reference to XML element CropUse. Format: (CRU|CRU-)([0-9])+ Examples: A CropType can contain multiple CropUse references to indicate the list of possible uses for a given CropType. <CRU A="CRU1" B="Silage"/> <CRU A="CRU2" B="Grain"/> <CTP A="CTP1" B="Corn"> <CUR A="CRU1"/> <CUR A="CRU2"/> </CTP> DDT - DueDate Description: The DueDate element describes a point or span of time in which some action is valid. DueDates can be one of two types; execution or return. An execution DueDate would indicate the period of time for which it is valid to execute the action in question. A return DueDate would indicate the period of time for which a response to an offer or a request is acceptable. Included in XML Elements: - Message - WorkSet References XML Elements: Includes XML Elements: - AllocationStamp Attributes: Attribute DueDateType XML A Use r Types xs:NMTOKEN Notes AllocationStamp B o r xs:string xs:element Length/range 1..2 Comment The type of due date 1 = execution 2 = return Unbounded note field A single AllocationStamp element Examples: A DueDate for a WorkSet. <WST A="WST1" B="3"> <WOR A="WOR1" B="CTR1" C="FRM1" D="PFD1" E="Corn"> <TSK A="TSK1" B="Corn Seeding" C="CTR1" D="FRM1" E="PFD1" G="1"> <DLT A="DFFF" B="31"/> <OTP A="CPC1" B="OTQ1"></OTP> <TZN A="0" B="28000 seeds/ac"> <PDV A="0011" B="6919" C="PDT2"/> </TZN> </TSK> <DDT A="1"> <ASP A="2013-04-15T00:00:00-06:00" B="2013-05-15T23:59:59-06:00" D="1"/> </DDT> </WOR> </WST> DTA - HistoricalDataset Description: A HistoricalDataset object is a collection of attributes, properties, object references, values, and geospatial objects that are related to one another spatially and/or temporally, and that reference a common set of coding data objects used in the production of the data. A HistoricalDataset object can be a complete or partial set of data, and can either contain the actual data or merely indicate that the data is available. Included in XML elements: - HistoricalData References XML elements: Includes XML elements: - WorkerAllocation - HistoricalLayer - AllocationStamp - Property - Device Allocation - Polygon Attributes: Attribute HistoricalDatasetId XML A Use r Types xs:ID Length/range min. 4 .. max. 14 Comment Unique identifier for HistoricalDataset Format: (DTA|DTA-)([0-9])+ DataInclusionPurpose B r xs:NMTOKEN 1 .. 2 FileType C o xs:NMTOKEN 1 .. 2 Filename D o xs:string 8 DatasetId E o xs:string Completeness F o xs:NMTOKEN WorkerAllocation o xs:element HistoricalLayer r xs:element AllocationStamp o xs:element Property o xs:element Records generated on MICS have negative IDs 1 = indication 2 = actual 1 = binary (extension .bin) 2 = json (extension .json) 3 = shape (extension .shp, .shx, .dbf) Unique name of HistoricalDataset file Format: DTA[0-9][0-9] [09][0-9] [0-9] A system specific string used to identify the dataset. Multiple partials that share the same DatasetId should be merged together. 1 = complete 2 = partial A single XML element of type WorkerAllocation A list of XML elements HistoricalLayer A single XML element AllocationStamp that indicates the time this dataset spans A list of XML elements Property Polygon o xs:element DeviceAllocation o xs:element A single XML element Polygon that is the bounding region for this data A single XML element of type DeviceAllocation. Examples: <PFD A="PFD1"/> <CTP A=”CTP1” B=”Wheat”> <CVT A=”CVT1” B=”Wheat Variety A” C=”PDT1”/> <CVT A=”CVT2” B=”Wheat Variety B” C=”PDT2”/> </CTP> <PGP A=”PGP1” B=”Wheat Group” C=”2”/> <PDT A=”PDT1” B=”Wheat Variety A” C=”PGP1”> <PDT A=”PDT2” B=”Wheat Variety B” C=”PGP1”> <HDT A="HDT1" B="2012 Wheat Harvest" D=”PFD1”> <DTA A=”HDT1” B=”2” C=”1” D=”DTA00001” F=”1”> <LYR> <ATR A=”0063” C=”Moisture”/> <ATR A=”0053” C=”Volume per Area Yield”/> <PAN A=”PDT1”/> <SUM> <ASP A=”2012-07-01T00:00:01-06:00” B=”2012-07-06T23:59:5906:00”/> <ATR A=”0059” B=”11276” C=”Yield Total Volume”> <ATR A=”0106” B=”1350” C=”Average Crop Moisture” </SUM> </LYR> <LYR> <ATR A=”0063” C=”Moisture”/> <ATR A=”0053” C=”Volume per Area Yield”/> <PAN A=”PDT2”/> <SUM> <ASP A=”2012-07-01T00:00:01-06:00” B=”2012-07-06T23:59:5906:00”/> <ATR A=”0059” B=”16209” C=”Yield Total Volume”> <ATR A=”0106” B=”1310” C=”Average Crop Moisture” </SUM> </LYR> </DTA> </HDT> DRQ - DataRequest Description: A request for data. The request can be as broad or narrow as needed by using one or more of the coding data reference attributes, by specifying an AllocationStamp for the data, and/or by specifying the attributes being requested. The DataRequestType of inquiry is used to get a list of available data. Actual will give the processed data as it exists in the FMIS. Actual Raw will (if appropriate) give the raw file(s). The raw files will be returned as one or more AttachedFile elements. Included in XML elements: - ISO11783_TaskPlanning References XML elements: Includes XML elements: - AllocationStamp - Attribute Attributes: Attribute DataRequestId XML A Use r Types xs:ID Length/range min. 4 .. max. 14 Comment Unique identifier for DataRequest Format: (DRQ|DRQ-)([0-9])+ DataRequestType B r xs:NMTOKEN 1 .. 3 CustomerIdRef C o xs:IDREF min. 4 .. max. 14 Records generated on MICS have negative IDs 1 = inquiry 2 = actual 3 = actual raw Reference to XML element Customer. Format: (CTR|CTR-)([0-9])+ FarmIdRef D o xs:IDREF min. 4 .. max. 14 Reference to XML element Farm. Format: (FRM|FRM-)([0-9])+ PartfieldIdRef E o xs:IDREF min. 4 .. max. 14 Reference to XML element Partfield. Format: (PFD|PFD-)([0-9])+ ProductIdRef F o xs:IDREF min. 4 .. max. 14 Reference to XML element Product. Format: (PDT|PDT-)([0-9])+ CropTypeIdRef G o xs:IDREF min. 4 .. max. 14 Reference to XML element CropType. Format: (CTP|CTP-)([0-9])+ CropVarietyIdRef H o xs:IDREF min. 4 .. max. 14 Reference to XML element CropVariety. Format: (CVT|CVT-)([0-9])+ AllocationStamp o xs:element Attribute o xs:element A list of XML elements AllocationStamp A list of XML elements Attribute Examples: <PFD A="PFD1"/> <CTP A=”CTP1”> <CVT A=”CVT1”/> </CTP> <DRQ A="DRQ1" B=”1” E=”PFD1” H=”CVT1”> <ASP A=”2014-07-14T00:01:00-06:00” B=”2014-07-14T23:59:59-06:00”/> </DRQ> HDT - HistoricalData Description: The historical data block describes data that has been collected or generated in the past. It is not data that has more specific definitions, such as guidance. Historical data shall not be used to describe planned data. HistoricalData elements shall either contain HistoricalData, raw file data, or both. Included in XML elements: - ISO11783_TaskPlanning References XML elements: Includes XML elements: - HistoricalDataset Attributes: Attribute HistoricalDataId XML A Use r Types xs:ID Length/range min. 4 .. max. 14 Comment Unique identifier for HistoricalData Format: (HDT|HDT-)([0-9])+ Designator B o xs:string 32 CustomerIdRef C o xs:IDREF min. 4 .. max. 14 Records generated on MICS have negative IDs Designator of the historical data. Reference to XML element Customer. Format: (CTR|CTR-)([0-9])+ FarmIDRef D o xs:IDREF min. 4 .. max. 14 Reference to XML element Farm. Format: (FRM|FRM-)([0-9])+ PartfieldIdRef E o xs:IDREF min. 4 .. max. 14 Reference to XML element Partfield. Format: (PFD|PFD-)([0-9])+ HistoricalDataset o xs:element AttachedFiles o xs:element A list of XML elements HistoricalDataset. A list of XML elements AttachedFile. These will indicate the raw data files when that information is requested. Examples: <PFD A="PFD1"/> <CTP A=”CTP1” B=”Wheat”> <CVT A=”CVT1” B=”Wheat Variety A” C=”PDT1”/> <CVT A=”CVT2” B=”Wheat Variety B” C=”PDT2”/> </CTP> <PGP A=”PGP1” B=”Wheat Group” C=”2”/> <PDT A=”PDT1” B=”Wheat Variety A” C=”PGP1”> <PDT A=”PDT2” B=”Wheat Variety B” C=”PGP1”> <HDT A="HDT1" B="2012 Wheat Harvest" D=”PFD1”> <DTA A=”HDT1” B=”2” C=”1” D=”DTA00001” F=”1”> <LYR> <ATR A=”0063” C=”Moisture”/> <ATR A=”0053” C=”Volume per Area Yield”/> <PAN A=”PDT1”/> <SUM> <ASP A=”2012-07-01T00:00:01-06:00” B=”2012-07-06T23:59:5906:00”/> <ATR A=”0059” B=”11276” C=”Yield Total Volume”> <ATR A=”0106” B=”1350” C=”Average Crop Moisture” </SUM> </LYR> <LYR> <ATR A=”0063” C=”Moisture”/> <ATR A=”0053” C=”Volume per Area Yield”/> <PAN A=”PDT2”/> <SUM> <ASP A=”2012-07-01T00:00:01-06:00” B=”2012-07-06T23:59:5906:00”/> <ATR A=”0059” B=”16209” C=”Yield Total Volume”> <ATR A=”0106” B=”1310” C=”Average Crop Moisture” </SUM> </LYR> </DTA> </HDT> HTY - History Description: The History element describes the history of messages during the lifetime of this document. The document may pass between many entities during its lifetime and an audit trail of actions taken is required. When a new action is to be taken, or a new message is to be sent that is built off this document, the message element at the root of the document should be moved into the history element to continue the audit trial. There is only one history element allowed in a given document. Included in XML elements: References XML elements: Includes XML elements: - Message Attributes: Attribute Message XML Use r Types xs:element Length/range Comment List of Message elements that existed over the life of this document Examples: A message history during the process of creating a plan between two FMIS. <HTY> <MSG A="MSG1" B="1" C="1" E="Grower FMIS" F="12.5" O="I need to make crop plans for my 3 fields. I want to plant corn in my corn field and beans in my two beans fields."> <ASP A="2012-12-5T16:53:12-06:00" D="10"/> </MSG> <MSG A="MSG2" B="1" C="2" E="Agronomist FMIS" F="3.20121206"> <ASP A="2012-12-06T10:35:12-05:00" D="10"/> </MSG> </HTY> LIC - License Description: The License element describes a license. The license can be for a variety of purposes. Some examples include a license allowing a grower to apply a specific product, or an entity that is certified to approve some kind of work. Included by XML elements: References XML elements: Includes XML elements: - Address - Reference - AllocationStamp Attributes: Attribute LicenseId XML A Use r Types xs:ID Length/range min. .. max. 14 Comment Unique identifier for approval entity. Format: (LIC|LIC-)([0-9])+ LicenseNumber IssuingOrganization B C r r xs:string xs:string IssuingOrganizationContact o xs:element LicensedObjects o xs:element Expiration o xs:element max. 64 max. 64 Records generated on MICS have negative IDs The license number The organization/agency for which this license is issued from/valid for A single XML element of type Address that is the contact information for the issuing organization A list of XML elements Reference that indicate the objects for which this license is valid. A XML element AllocationStamp that is the expiration of the license. Examples: A license that allows a customer to purchase/plant a variety of beans between March 1, 2013 and November 11, 2013: <CTP A="CTP1" B="Beans"> <CVT A="CVT1" B="My beans variety"> </CTP> <LIC A="LIC1" B="ABC123XYZ" C="Awesome Seed Company"> <REF A="CVT1"/> <TSP A="2013-03-01T10:00:00-06:00" B="2013-11-30T23:00:00-06:00"> </LIC> <CTR A="CTR1" B="Bob"> <LIR A="LIC1"> </CTR> LIR - LicenseReference Description: The License Reference element describes a reference to a License object. Included by XML elements: - ApprovalAuthority References XML elements: - License Attributes: Attribute LicenseIdRef XML A Use r Types xs:IDREF Length/range min.4 .. max. 14 Comment Reference to XML element License. Format: (LIC|LIC-)([0-9])+ Examples: <CTP A="CTP1" B="Beans"> <CVT A="CVT1" B="My beans variety"> </CTP> <LIC A="LIC1" B="ABC123XYZ" C="Awesome Seed Company"> <REF A="CVT1"/> <TSP A="2013-03-01T10:00:00-06:00" B="2013-11-30T23:00:00-06:00"> </LIC> <CTR A="CTR1" B="Bob"> <LIR A="LIC1"> </CTR> LOT - Lot Description: The lot number of a product. Included in XML elements: - ProductAllocation References XML elements: Includes XML elements: Attributes: Attribute Designator XML A Use r Types xs:string Length/range Comment The lot number. Examples: <LOT A="ABC123"> LYR - HistoricalLayer Description: A HistoricalLayer is a collection of data related to either the use of a single product or to no product at all. For example, in a split planter scenario where half of the planter is some product A and the other half is some product B, you would have at least two LYRs in your DTA. A LYR with no product might be used to represent a collection of data for a tillage operation, or for vehicle metrics data such as engine RPMs. Included in XML elements: - HistoricalDataset References XML elements: Includes XML elements: - Time - ProductAllocation - HistoricalSection - Summary - OperTechPractice Attributes: Attribute HistoricalLayerId XML A Use r Types xs:ID Length/range Comment Unique identifier for HistoricalLayer Format: (LYR|LYR-)([0-9])+ LayerGroupId B o xs:long Attribute r xs:element Property o xs:element ProductAllocation o xs:element HistoricalSection o xs:element Summary o xs:element OperTechPractice o xs:element Records generated on MICS have negative IDs An ID that indicates a sibling relationship between one or more HistoricalLayers A list of XML elements Attribute A list of XML elements Property A single XML element ProductAllocation A list of XML elements HistoricalSection A single XML element of type Summary that is the summary of data for this layer. A single XML element of type OperTechPractice Examples: <PFD A="PFD1"/> <CTP A=”CTP1” B=”Wheat”> <CVT A=”CVT1” B=”Wheat Variety A” C=”PDT1”/> <CVT A=”CVT2” B=”Wheat Variety B” C=”PDT2”/> </CTP> <PGP A=”PGP1” B=”Wheat Group” C=”2”/> <PDT A=”PDT1” B=”Wheat Variety A” C=”PGP1”> <PDT A=”PDT2” B=”Wheat Variety B” C=”PGP1”> <HDT A="HDT1" B="2012 Wheat Harvest" D=”PFD1”> <DTA A=”HDT1” B=”2” C=”1” D=”DTA00001” F=”1”> <LYR> <ATR A=”0063” C=”Moisture”/> <ATR A=”0053” C=”Volume per Area Yield”/> <PAN A=”PDT1”/> <SUM> <ASP A=”2012-07-01T00:00:01-06:00” B=”2012-07-06T23:59:5906:00”/> <ATR A=”0059” B=”11276” C=”Yield Total Volume”> <ATR A=”0106” B=”1350” C=”Average Crop Moisture” </SUM> </LYR> <LYR> <ATR A=”0063” C=”Moisture”/> <ATR A=”0053” C=”Volume per Area Yield”/> <PAN A=”PDT2”/> <SUM> <ASP A=”2012-07-01T00:00:01-06:00” B=”2012-07-06T23:59:5906:00”/> <ATR A=”0059” B=”16209” C=”Yield Total Volume”> <ATR A=”0106” B=”1310” C=”Average Crop Moisture” </SUM> </LYR> </DTA> </HDT> MSG - Message Description: The Message element describes specifics about an instance of a message. The specifics include the message type, intent, any related due dates, and approvals for the message. When the message is inside the HTY tag, then the element indicates results in the past. Only one message element is allowed in the root of the document. The root document message element describes the purpose of the current message. Included by XML elements: - MessageHistory References XML elements: - ApprovalAuthority Includes XML elements: - AllocationStamp - DueDate - Person - StatusUpdate Attributes: Attribute MessageId XML A Use r Types xs:ID Length/range min. .. max. 14 Comment Unique identifier for Message Format: (MSG|MSG-)([09])+ Records generated on MICS have negative IDs MessageType B r xs:NMTOKEN 1..n? MessageIntent C r xs:NMTOKEN 1..n? Message type specification: 1 = Plan 2 = Recommendation 3 = WorkOrder Message intent specification: 1 = Request 2 = Send ApprovalAuthorityIdRef D o xs:IDREF min. .. max. 14 3 = Edit 4 = Accept 5 = Approve 6 = Acknowledge 7 = Status Reference to XML element ApprovalAuthority. Format: (AAU|AAU-)([09])+ OriginatingSystemDesignator E r xs:string OriginatingSystemVersion F r xs:string Notes Person G o o xs:string xs:element AllocationStamp r xs:element 1 DueDate o xs:element 0..n StatusUpdate o xs:element Designator of the software/system used to create the message Version string of the software/system used to create the message. Unbounded note field A single XML element of type Person that represents the person responsible for the generation of this message. A single XML element of type AllocationStamp that represents the time this message was constructed/sent. List of due dates for this message A list of XML elements of type StatusUpdate that represent any updates on work status at the time of this message. Examples: A message requesting a plan. <MSG A="MSG1" B="1" C="1" E="My FMIS" F="12.5" O="I need to make crop plans for my 3 fields. I want to plant corn in my corn field and beans in my two beans fields."> <ASP A="2012-12-5T16:53:12-06:00" D="10"/> </MSG> ORQ - ObjectRequest Description: A request for one or more objects of some type. This would be used to ask questions of the target system such as what farms belong to a grower, what workers have been defined, or what devices exist. A parent object can be specified to limit the results to only objects related to some known object in a hierarchy. Only coding data objects can be requested. Included in XML elements: - ISO11783_TaskPlanning References XML elements: - All coding data objects Includes XML elements: Attributes: Attribute ObjectRequestId XML A Use r Types xs:ID Length/range min. 4 .. max. 14 Comment Unique identifier for ObjectRequest Format: (ORQ|ORQ-)([0-9])+ ObjectType B r xs:string 3 ObjectParent C o xs:IDREF min. 4 .. max. 14 Records generated on MICS have negative IDs The 3 letter XML tag name representing the coding data object type being requested. A reference to an XML element of any coding data type where the same type can also be referenced, or is the parent of by hierarchy, the object type being requested. Examples: You can do this: <ORQ A="ORQ1" B="PFD" C="CTR1"> A customer can be referenced from a PFD, so this is valid. <ORQ A="ORQ1" B="CVT" C="CTP1"> A crop variety is a child element of a crop type, so this is valid. You cannot do this: <ORQ A="ORQ1" B="PFD" C="WKR1"> A worker cannot be referenced from a PFD and is not a parent element of a PFD so this is invalid. PER - Person Description: An element that represents a person that is not a customer or a worker. The person is referenced from the approval authority and the message. In the message, a person is the individual who is responsible for generating it. A person in an approval authority would be a contact for that authority. Included in XML elements: References XML elements: Includes XML elements: Attributes: Attribute PersonId XML A Use r Types xs:ID Length/range min. 4 .. max. 14 Comment Unique identifier for person. Format: (PER|PER-)([0-9])+ Designator Company B C r o xs:string xs:IDREF Address o xs:element LicenseReference o xs:element min. 4 .. max. 14 Records generated on MICS have negative IDs The name of the person Reference to XML element Company Format: (CPY:CPY-)[0-9]+ A single XML element representing the address for the person A list of XML elements of type LicenseReference Examples: Person with an Address. <PER A="PER1" B="Jenny"> <ADR A="456 1st Street" C="16823" D="Bellefonte" E="PA" F="USA" G="+1-555-867-5309"/> </PER> PPT - Property Description: A property is a static value that describes some aspect of an object and that does not change within the scope of the document the object exists in. An X offset on a HistoricalSection is an example of a property. Included in XML elements: - HistoricalSection - HistoricalLayer - HistoricalDataset References XML elements: Includes XML elements: Attributes: Attribute XML A Use r Types xs:hexBinary Value Designator B C r o xs:long xs:string ValuePresentationIdRef D o xs:IDREF DDI Length/range 0x0000 .. 0xFFFF Comment The variable as specified in ISO11783-11 The value of the property Human readable name of the property Reference to XML element ValuePresentation Format: (VPN|VPN-)([0-9])+ Examples: <PPT A="0086" B=”1500” C=”X Offset”/> REF - Reference Description: A Reference tag creates a link between the parent tag and any identifiable object. Included in XML elements: References XML elements: Includes XML elements: Attributes: Attribute ObjectReferenceId XML A Use r Types xs:REFID Length/range min. 4 .. max. 14 Examples: A Reference tag that refers to some Product with the ID PDT-1 <REF A="PDT-1"> Comment A reference to any identifiable object. A Reference tag that refers to some Partfield with the ID PFD-2 <REF A="PFD-2"> SSN - Season Description: A season is a named period of time in which a crop is produced. Multiple seasons can exist in a single year, and a season can span multiple years. Included in XML elements: - ISO11783_TaskPlanning References XML elements: Includes XML elements: Attributes: Attribute SeasonId XML A Use r Types xs:ID Length/range Comment Unique identifier for season. Format: (SSN|SSN-)([0-9])+ Designator AllocationStamp B r r xs:string xs:element Records generated on MICS have negative IDs The name of the season A single XML element of type AllocationStamp that represents the span of time for which this season is valid. Examples: A season used in defining a WorkSet. <SSN A="SSN1" B="2013"> <TSP A="2013-01-01T23:59:59-05:00" B="2013-12-31T23:59:59-05:00"/> </SSN> <WST A="WST1" B="1" E=”SSN1”> <WOR A="WOR3" B="CTR1" C="FRM1" D="PFD3" E="Beans 2"> <TSK A="TSK1" B="Corn Seeding" C="CTR1" D="FRM1" E="PFD3"> <OTP A="CPC1" B="OTQ1"></OTP> <TZN A="0" B="16000 seeds/ac"> <PDV A="0011" B="3954" C="PDT2"/> </TZN> </TSK> </WOR> <TSP A="2012-12-06T10:35:12-05:00"/> </WST> STN - HistoricalSection Description: A section of data in a HistoricalLayer. Sections may themselves contain sections to a maximum of 2 levels. For example a planter may have a full swath broken up into 4 sections and each of those 4 sections could themselves have 6 rows which would be represented by sections. Included in XML elements: References XML elements: Includes XML elements: - Attribute - Property - HistoricalSection Attributes: Attribute SectionId XML A Use r Types xs:long Attribute r xs:element Property o xs:element HistoricalSection o xs:element Examples: <STN A=”1”> <ATR A=”0002” C=”Spraying Rate, Section 1”/> <PPT A=”0087” B=”-1500” C=”Y Offset”/> <PPT A=”0043” B=”1500” C=”Width”/> </STN> <STN A=”2”> <ATR A=”0002” C=”Spraying Rate, Section 2”/> <PPT A=”0087” B=”0” C=”Y Offset”/> <PPT A=”0043” B=”1500” C=”Width”/> </STN> Length/range 0 .. 65534 Comment A value 0-65534 that is unique within the collection of sections in the parent element. A list of XML elements Attribute A list of XML elements Property A list of XML elements of type HistoricalSection STS - StatusUpdate Description: The status of any item within a WorkSet. Updates can be provided on the WorkSet, Work, or even Task level through the WorkReferenceID attribute. In the case of an update being provided for an entire WorkSet the status of each Work and Task item is assumed to be defined as being the same at the time as defined in the AllocationStamp. Included in XML elements: - Message References XML elements: Includes XML elements: Attributes: Attribute XML A Use r Types xs:NMTOKEN Length/range 1..7 WorkReferenceID B r xs:IDREF min. 4 .. max. 14 Comment C o xs:string r xs:element Status AllocationStamp Comment 1=Planned 2=Scheduled 3=In Progress 4=Paused 5=Partially Completed 6=Completed 7=Cancelled Reference to XML element Company Format: (STS:STS-)[0-9]+ Additional information related to the status update. A single XML element of type AllocationStamp that is the time stamp for this status update. Examples: StatusUpdate for a Work Order. <MSG A="MSG15" B="3" C="7" D="AAU1" E="Service Provider FMIS" F="3.20130227" O="Status Update"> <ASP A="2013-02-27T15:15:00-05:00" D="10"/> <STS A="1" B="WOR1" C="2013-03-05T23:59:59-05:00" C="Waiting on weather forecasts."> <ASP A="2013-02-27T15:15:00-05:00" D="10"/> </STS> </MSG> SUM - Summary Description: A list of attribute totals to be used as a summary of data. Included in XML elements: - HistoricalLayer References XML elements: Includes XML elements: - AllocationStamp - Attribute Attributes: Attribute AllocationStamp Attribute XML Use r Types xs:element r xs:element Length/range Comment Single AllocationStamp XML element that contains both the start and end date List of attributes and their corresponding values Examples: <PFD A="PFD1"/> <CTP A=”CTP1” B=”Wheat”> <CVT A=”CVT1” B=”Wheat Variety A” C=”PDT1”/> <CVT A=”CVT2” B=”Wheat Variety B” C=”PDT2”/> </CTP> <PGP A=”PGP1” B=”Wheat Group” C=”2”/> <PDT A=”PDT1” B=”Wheat Variety A” C=”PGP1”> <PDT A=”PDT2” B=”Wheat Variety B” C=”PGP1”> <HDT A="HDT1" B="2012 Wheat Harvest" D=”PFD1”> <DTA A=”HDT1” B=”2” C=”1” D=”DTA00001” F=”1”> <LYR> <ATR A=”0063” C=”Moisture”/> <ATR A=”0053” C=”Volume per Area Yield”/> <PAN A=”PDT1”/> <SUM> <ASP A=”2012-07-01T00:00:01-06:00” B=”2012-07-06T23:59:5906:00”/> <ATR A=”0059” B=”11276” C=”Yield Total Volume”> <ATR A=”0106” B=”1350” C=”Average Crop Moisture” </SUM> </LYR> <LYR> <ATR A=”0063” C=”Moisture”/> <ATR A=”0053” C=”Volume per Area Yield”/> <PAN A=”PDT2”/> <SUM> <ASP A=”2012-07-01T00:00:01-06:00” B=”2012-07-06T23:59:5906:00”/> <ATR A=”0059” B=”16209” C=”Yield Total Volume”> <ATR A=”0106” B=”1310” C=”Average Crop Moisture” </SUM> </LYR> </DTA> </HDT> WOR - Work Description: A specific collection of things to do related to either part or all of a work set. Included in XML elements: - WorkSet References XML elements: - Customer - Farm - Partfield Includes XML elements: - Task - DueDate - GuidanceAllocation Attributes: Attribute WorkID XML A Use r Types xs:ID Length/range min. 4 .. max. 14 Comment Unique identifier for WorkOrder Format: (WOR|WOR-)([09])+ Records generated on MICS have negative IDs CustomerRefId B o xs:IDREF min. 4 .. max. 14 FarmRefId C o xs:IDREF min. 4 .. max. 14 Reference to XML element Customer. Format: (CTR|CTR-)([0-9])+ Reference to XML element Farm. PartfieldRefId D o xs:IDREF Notes Task E o o xs:string xs:element o xs:element DueDate min. 4 .. max. 14 Format: (FRM|FRM-)([0-9])+ Reference to XML element Partfield. Format: (PFD|PFD-)([0-9])+ Unbounded note field A list of tasks for prescription transfer. A list of due dates Examples: A Work item for planting corn. <WOR A="WOR3" B="CTR1" C="FRM1" D="PFD3" E="Beans 2"> <TSK A="TSK1" B="Corn Seeding" C="CTR1" D="FRM1" E="PFD3"> <OTP A="CPC1" B="OTQ1"></OTP> <TZN A="0" B="16000 seeds/ac"> <PDV A="0011" B="3954" C="PDT2"/> </TZN> </TSK> </WOR> WST - WorkSet Description: A work set is a collection of work to be done. A work set exists in one of three phases; Plan, Recommendation, or Work Order. A work set may have descended from another work set. In this case, the parent work set can be referenced. Included in XML elements: - ISO11783_TaskPlanning References XML elements: - WorkSet Includes XML elements: - Work - ApprovalAuthorityReference Attributes: Attribute WorkSetId XML A Use r Types xs:ID Length/range Comment Unique identifier for WorkSet Format: (WST|WST-)([0-9])+ Phase B r xs:NMTOKEN 1 .. 3 ParentWorkSetRefId C o xs:IDREF min. 4 .. max. 14 Notes SeasonIdRef D E o o xs:string xs:IDREF Designator F o xs:string Work r xs:element DueDate CreationDate o o xs:element xs:element ModifiedDate o xs:element Season o xs:element ApprovalAuthorityReference o xs:element min. 4 .. max. 14 Records generated on MICS have negative IDs 1 = Plan 2 = Recommendation 3 = WorkOrder Reference to XML element WorkSet. Format: (WST|WST-)([0-9])+ Unbounded note field Reference to XML element Season Format: (SSN|SSN-)([0-9])+ The designator of the WorkSet A list of work to be done for this work set A list of due dates A single XML element of type AllocationStamp that is the time in which this work set was created. A single XML element of type AllocationStamp that is the latest time in which the work set was edited. The crop season for this work set. A list of XML elements of type ApprovalAuthorityReference that indicate the authorities that authorized this set of work. Examples: A Recommendation WorkSet with a single Work item. <SSN A="SSN1" B="2013"> <ASP A="2013-03-01T23:59:59-05:00" B="2013-12-31T23:59:59-05:00" D="4"/> </SSN> <WST A="WST1" B="3" E=”SSN1”> <WOR A="WOR1" B="CTR1" C="FRM1" D="PFD1" E="Corn"> <TSK A="TSK1" B="Corn Seeding" C="CTR1" D="FRM1" E="PFD1" G="1"> <DLT A="DFFF" B="31"/> <OTP A="CPC1" B="OTQ1"></OTP> <TZN A="0" B="28000 seeds/ac"> <PDV A="0011" B="6919" C="PDT2"/> </TZN> </TSK> <DDT A="1"> <ASP A="2013-04-15T00:00:00-06:00" B="2013-05-15T23:59:59-06:00" D="1"/> </DDT> </WOR> <ASP A="2013-01-15T10:35:12-06:00" D="1"/> </WST> Appendix B Proposed extensions to existing ISOXML tags PFD - Partfield Modification: Add an attribute (J) to PFD to indicate the intended crop use for the crop/variety referenced by G and H. Attribute IntendedCropUseIdRef XML J Use o Types xs:IDREF Length/range min. 4 .. max. 14 Comment Reference to XML element CropUse Format: (CRU|CRU-)([0-9)+ CTP - CropType Modification: Add an element list of type CropUseReference that indicates the uses available for this crop type. These could be used in the MICS as a picklist for the user when documenting tasks. Add standard moisture and crop density attributes to crop type. Attribute StandardMoisture CropDensity CropUseReference XML D E Use o o o Types xs:decimal xs:decimal xs:element Length/range 0.0 ... 100.0 > 0.0 Comment The standard moisture in % The density in kg/m3 A list of XML elements of type CropUseReference TSK - Task Modification: Add an attribute (K) to TSK to indicate the actual crop use of the crop/variety referenced by the PFD referenced by the TSK. Attribute ActualCropUseIdRef XML K Use o Types xs:IDREF Length/range min. 4 .. max. 14 Comment Reference to XML element CropUse Format: (CRU|CRU-)([0-9)+ ASP - AllocationStamp Modification: There is a need to indicate time as just an end with no beginning. These would be used in cases of deadlines where some event cannot occur beyond some point in time. For example a work order cannot be approved beyond a specific date. To accomplish this, the start time would need to be optional. There is also a need to track when a work set is created and when it was last edited. To do this, additional types of Created and Modifed need to be added to the type list. Start Attribute XML A Use o Types xs:datetime Length/range Max. 25 Stop B o xs:datetime Max. 25 Type D r xs:NMTOKEN 1, 4, 10, 11 Comment Time of start. Format: yyyymm-ddThh:mm:ss[Z|[+|]hh:mm|null] Time of end. Format: yyyymm-ddThh:mm:ss[Z|[+|]hh:mm|null] Type of the AllocationStamp, posisble values: 1=Planned 4=Effective 10=Created 11=Modified PAN - ProductAllocation Modification: Add a list of batches and lots used with the allocation. Attribute Batch Lot XML Use o Types xs:element o xs:element Length/range Comment A list of XML elements of type Batch A list of XML elements of type Lot CTR - Customer Modification: Add attributes to a customer to track tax information, the company they are associated with, and their position in that company. Also add a license references to track licenses related to this customer. Attribute TaxId Company XML N O Use o o Types xs:string xs:IDREF Position LicenseReference P o o xs:string xs:element Length/range Comment The tax number Reference to XML element Company Format: (CPY:CPY-)[0-9]+ The position in that company A list of XML elements of type LicenseReference DVC - Device Modification: Add an attribute (H) to a device to indicate the Model of the device. Currently there is a designator which some companies (not all) are using as a Model. FMIS systems would like to use the designator as a user defined name (eg. "My Planter") and calling out a specific Model attribute would make it clear for hardware manufacturers where to put the model information. Attribute Model XML H Use o Types xs:string Length/range max. 32 Comment The model of the device WKR - Worker Modification: Add a company name the worker belongs to and a list of license references to indicate any licenses associated with this worker. Attribute Company LicenseReference XML N Use o Types xs:IDREF o xs:element Length/range Comment Reference to XML element Company Format: (CPY:CPY-)[0-9]+ A list of XML elements of type LicenseReference PDT - Product Modification: Add an attribute to product that links to the manufacturer of the product. Attribute Company XML H Use o Types xs:IDREF Length/range Comment Reference to XML element Company Format: (CPY:CPY-)[0-9]+ CVT - CropVariety Modification: Add an attribute to crop variety that links to the manufacturer of the variety. Attribute CompanyIdRef XML D Use o Types xs:IDREF Length/range Comment Reference to XML element Company Format: (CPY:CPY-)[0-9]+ DLV - DataLogValue Modification: Add an attribute to data log value that indicates that this DLV contains values that extend another DET. This is useful to inject additional information regarding a DET into the log stream without requiring changes to an ECU. An example of this would be a TC that wants to record the source of a setpoint value being sent to the ECU. It may also be useful in other situations where a sensor value (for example vegetation index) on some device is being used to influence the values on another device (continuing the example, the spraying rate). Attribute TargetDeviceElementIdRef XML G Use o Types xs:IDREF Length/range Comment A reference to XML element DeviceElement Format: (DET|DET-)([0-9])+ CLD - ColourLegend Modification: Add an optional ARGB 32-bit integer value to allow a larger variety of colors displayable by an FMIS to be used when showing the data. The FMIS will still be required to fill out an appropriate palette color value that most closely matched the ARGB value for compatibility with systems that only support the palette colors. Attribute DefaultARGBColour XML C Use o Types xs:unsignedLong Length/range 32 Comment 4 byte ARGB representation of the color. Least significant byte is B. CRG - ColourRange Modification: Add an optional ARGB 32-bit integer value to allow a larger variety of colors displayable by an FMIS to be used when showing the data. The FMIS will still be required to fill out an appropriate palette color value that most closely matched the ARGB value for compatibility with systems that only support the palette colors. Attribute ARGBColour XML D Use o Types xs:unsignedLong Length/range 32 Comment 4 byte ARGB representation of the color. Least significant byte is B. PLN - Polygon Modification: Add an optional ARGB 32-bit integer value to allow a larger variety of colors displayable by an FMIS to be used when showing the data. The FMIS will still be required to fill out an appropriate palette color value that most closely matched the ARGB value for compatibility with systems that only support the palette colors. Attribute ARGBColour XML F Use o Types xs:unsignedLong Length/range 32 Comment 4 byte ARGB representation of the color. Least significant byte is B. LSG - Linestring Modification: Add an optional ARGB 32-bit integer value to allow a larger variety of colors displayable by an FMIS to be used when showing the data. The FMIS will still be required to fill out an appropriate palette color value that most closely matched the ARGB value for compatibility with systems that only support the palette colors. Attribute ARGBColor XML G Use o Types xs:unsignedLong Length/range 32 Comment 4 byte ARGB representation of the color. Least significant byte is B. PNT - Point Modification: Add an optional ARGB 32-bit integer value to allow a larger variety of colors displayable by an FMIS to be used when showing the data. The FMIS will still be required to fill out an appropriate palette color value that most closely matched the ARGB value for compatibility with systems that only support the palette colors. Attribute ARGBColor XML L Use o Types xs:unsignedLong Length/range 32 Comment 4 byte ARGB representation of the color. Least significant byte is B. Appendix C Guidelines for representation of ISO11783-10 ISOXML in JSON Files The document will contain a single, nameless, root object. On that root object will live any external file as a property of that object with the property name being the same as the expected file name. So a basic TASKDATA.XML file in JSON would look like: {TASKDATA: {...}} where the file name is a property of the root object. If other files are needed, they are appended as properties to the root object in the same way. A TASKDATA.XML file with a single logged TLG will look similar to: {TASKDATA: { ...}, TLG00001:{...}} XML Elements Each XML element will be an object in JSON. The object will have properties named the same as the XML element attributes (A, B, C, etc.). These properties will have the same values and constraints as documented in the specification. Attributes that are optional may be omitted from the JSON, or given the value null. For example, a Partfield object may look like: {"A":"PFD1","C":"My Field", D:5000} If the XML element contains child elements, a properties with the XML element tag names will be added to the JSON object. When the element contains a list of child elements, a JSON array is used. For example, a Partfield with a Polygon: {"A":"PFD1","C":"My Field","D":5000,"PLN":[{...}]} When the element contains at most a single instance of a child element then a single object is used. For example, an AllocationStamp: {"A":"2013-01-31T16:55:03Z","PTN":{...}} Data Types The data types for the XML attribute values map to JSON values in the following ways: XML Attribute Data Type xs:ID xs:IDREF xs:string xs:datetime xs:NMTOKEN xs:decimal xs:unsignedLong xs:unsignedShort JSON Data Type string string string string number number number number Example "CTR1" "CTR1" "My Name" "2013-01-31T16:55:03Z" 1 25.00135 123456789 65536 xs:unsignedByte xs:long xs:hexBinary number number string 256 -123456789 "0A2B" Binary Attached Files If files attached using AttachedFile (AFE) elements require the file to be expressed in binary, then the contents of the file are base64 encoded and inserted as text as a normal file. TimeLog Binary Files TimeLog binary files are an array of record objects. A record object contains up to 3 properties; TIM, PTN, and DLV. The TIM property contains the value of the start time (as a string representation of xs:datetime) of the record and covers the two parts of TIM,A in the binary file record. The PTN property contains an object that has the logged properties for the PTN object as described in the corresponding TimeLog object with the exception of the H and I properties, which are combined into a UTC string property as noted below. The DLV property contains a 2dimensional array of (index, value) pairs that would normally exist in the binary file record. Value XML Reference TimeStart TIM,A PositionNorth PositionEast PositionUp PositionStatus PDOP PTN,A PTN,B PTN,C PTN,D PTN,E HDOP PTN,F NumberOfSatellites GpsUtcTime/Date PTN,G PTN,H, PTN,I DLV - A brief time log file example: {[ { "TIM":"2013-01-31T16:55:03Z", Binary Data Type unsigned 32bit integer followed by an unsigned 16bit integer 32-bit integer 32-bit integer 32-bit integer byte unsigned 16bit integer unsigned 16bit integer byte unsigned 32bit integer followed by unsigned 16bit integer byte followed by 2D array of [byte, 32-bit integer] JSON Property Name "TIM" JSON Data Type Example string "TIM":"2013-0131T16:55:03Z" "A" "B" "C" "D" "E" number number number number number "PTN":{"A":42.7812343} "PTN":{"B":121.5439872} "PTN":{"C":30.04} "PTN":{"D":5} "PTN":{"E":0.5} "F" number "PTN":{"F":0.5} "G" "UTC" number string "PTN":{"G":7} "PTN":{"UTC":"2013-0131T16:55:03Z"} "DLV" 2D array of [number, number] "DLV":[[0, 7213],[1, 90548]] "PTN":{"A":42.7812343, "B":121.5439872, "D":5, "UTC":"2013-01-31T16:55:03Z "}, "DLV":[[0, 7213],[1, 90548]] }, ... ]} Grid Binary Files Grid binary files are expressed as a 2 dimensional array. The layout is the same as the binary version where the contents of the cells are represented as an array, with each cell containing an array of PDV values. {[[1, 2], [1, 2], [1, 2], [1, 2]...]}
© Copyright 2025 Paperzz