/
ADAPT - LoggedData / OperationData / Section / Meter Discussion
ADAPT - LoggedData / OperationData / Section / Meter Discussion
Note: The integer IDs below correspond to the ReferenceID element in CompoundIdentifiers
Note: This list supersedes, as of 20150129, the WorkItemOperation material in a previously circulated Excel.
LoggedData (implements WorkRecord)
- As of 20150129, LoggedData only has the data already contained in its parent class. We will be on the lookout for any attributes that we need to add, especially in the context of Scouting / FieldObservations. If there are none before the release of v1 of the ADAPT data model, we reserve the right to collapse LoggedData back to its parent.
- In the future we will want to consider auxiliary actors in the process of logging data (e.g. a truck and its driver, a grain cart and its driver, etc...)
- We have not yet implemented the concept of mark/note, which would allow for space- and time-specific notes to be logged.
- 20150427: R. Andres Ferreyra (Unlicensed) reviewed the LoggedData object with PAIL team members Dan Berne (Unlicensed) and aberger@agsense.net (Unlicensed). LoggedData is very compatible with PAIL's InboundData and OffsiteData objects, but the general idea of OperationData (which, I believe is central to the SPADE interpretation of LoggedData) does not fit at all. PAIL's suggestion is to create a subclass of LoggedData called Observations, that has OperationData as optional (at best.) This may be a good home for scouting data as well, although it remains to be discussed whether scouting plans (incl. pre-arranged scouting locations) are not analogous to WorkOrders / WorkItems.
Attribute | Type | Multiplicity | Description |
---|---|---|---|
Id | CompoundIdentifier | 1 | |
WorkRecordId | Integer | 1 | |
GrowerId | Integer | 0..1 | |
FarmId | Integer | 0..1 | |
FieldId | Integer | 0..1 | |
CropZoneId | Integer | 0..1 | |
TimeScopes | TimeScope | 0..* | |
PersonRoleIds | Integer | 0..* | |
EquipmentConfigurationGroup | EquipmentConfigurationGroup | 0..1 | |
GuidanceAllocationIds | Integer | 0..* | |
WorkItemIds | Integer | 0..* | |
SummaryId | Integer | 0..1 | |
Notes | Note | 0..* | |
OperationData | OperationData | 1..* | |
ReleaseSpatialData | Action | ||
Description | String | 0..1 | |
OperationData
- We will break this out so we have only one OperationData object instance per load.
Attribute | Type | Multiplicity | Description |
---|---|---|---|
Id | CompoundIdentifier | 1 | Unique identifer R. Andres Ferreyra (Unlicensed): I think this needs to go; I see no reason for OperationData to need to exist independently of the LoggedData. |
LoadId | Integer | 0..1 | A reference to the load. See ADAPT - Load / LoadDestination Discussion |
OperationType | OperationTypeEnum | 1 | The operation performed |
PrescriptionId | Integer | 0..1 | A reference to the Prescription, if any, used during this operation. If multiple products are used they will be included as a single multi-product prescription. |
| |||
ProductIds | Integer | 0..* | |
VarietyLocatorId | Integer | 0..1 | A reference to the VarietyLocator layer used during this operation, if any |
WorkItemOperationId | Integer | 0..1 | A reference to the Work Item Operation that generated this work |
MaxDepth | Integer | 1 | Count of depth |
SpatialRecordCount | Integer | 1 | How many spatial records are there? |
EquipmentConfigurationIds | Integer | 0..* | |
GetSpatialRecords() | IEnumerable<SpatialRecord> | Returns an IEnumerable of SpatialRecord | |
GetDeviceElementUses() | (int, IEnumerable<DeviceElementuse>) | ||
Description | String | 0..1 | |
CoincidentOperationDataIds | Integer | 0..* | |
SpatialRecord
Attribute | Type | Multiplicity | Description |
---|---|---|---|
Geometry | Shape | 1 | The geometry defining the location |
Timestamp | DateTime | 1 | The timestamp of the location. |
GetMeterValue(meter: Meter) | RepresentationValue | ? | |
SetMeterValue(meter: Meter, RepresentationValue: value) | |||
GetAppliedLatency(meter: Meter) |
Section [Not Implemented]
- Depth 0 always represents the full swath and contains DDIs and their values at that level (e.g. Elevation, Weather Information, Fuel Consumption)
- Depths 1+ represent a segmented version of the full swath
Attribute | Type | Multiplicity | Description |
---|---|---|---|
Id | CompoundIdentifier | 1 | UniqueIdentifier |
OperationDataId | Integer | 1 | A reference to the OperationData this section applies to |
Depth | Integer | 1 | Indicates which depth the section was recorded for |
Order | Integer | 1 | An incrementing value indicating the order of the sections from left to right |
SectionWidth | NumericRepresentationValue | 1 | The width of the section |
TotalDistanceTravelled | NumericRepresentationValue | 0..1 | Total distance travelled for the operation when section status was on |
TotalElapsedTime | NumericRepresentationValue | 0..1 | Total elapsed time for the operation when the section status was on |
Meters | Meter | 0..n |
Meter (analogous to a process data variable in ISO) [Not Implemented]
Attribute | Type | Multiplicity | Description |
---|---|---|---|
Id | CompoundIdentifier | 1 | UniqueIdentifier |
SectionId | Integer | 1 | A reference to the Section where this meter was recorded |
Representation | Representation | 1 | The object for what DDI is defined |
Values | Double | 1..n | The values recorded. Aligned by index with the sections
|
AppliedLatency | NumericRepresentationValue | 1 | The latency reported by the controller |
ReportedLatency | NumericRepresentationValue | 1 | The latency reported by the implement |
NumericMeter (Subclass of Meter) [Not Implemented]
Attribute | Type | Multiplicity | Description |
---|---|---|---|
UnitOfMeasure | UnitOfMeasure | 1 | The unit this meter was recorded in |
EnumeratedMeter (Subclass of Meter) [Not Implemented]
Attribute | Type | Multiplicity | Description |
---|---|---|---|
ValueCodes | Integer | 1..* | Integers that correspond to the Code of an enumeration member. The specific enumeration is implicit in the Representation identified in the parent class. |
SectionSummary
Attribute | Type | Multiplicity | Description |
---|---|---|---|
Id | Integer | 1 | UniqueIdentifier |
SectionId | Integer | 1 | A reference to the Section that this summary applies to |
TotalDistanceTravelled | NumericRepresentation | 1 | The total distance traveled with this section on |
TotalElapsedTime | NumericRepresentation | 1 | The total elapsed time with this section on |
CalibrationFactor
- This is typically entered as a result of measurement via scale tickets, etc.
Attribute | Type | Multiplicity | Description |
---|---|---|---|
Id | CompoundIdentifier | 1 | The id of the calibration factor |
MeterId | Integer | 1 | The meter to apply the calibration factor to |
TimeScopeIds | Integer | 0...n | The time the calibration occurred. 20150903: R. Andres Ferreyra (Unlicensed) replaced datetime class with TimeScope, for consistency with other mandates. |
Value | NumericRepresentationValue | 1 | The value of the calibration. 20150903: R. Andres Ferreyra (Unlicensed) replaced Double type with NumericRepresentationValue, for consistency with other mandates. |
DataLogTrigger
Attribute | Type | Multiplicity | Description |
---|---|---|---|
Id | CompoundIdentifier | 1 | |
DataLogMethod | LoggingMethodEnum | 1 | |
DataLogDistanceInterval | NumericRepresentationValue | 0..1 | |
DataLogTimeInterval | NumericRepresentationValue | 0..1 | |
DataLogThresholdMinimum | NumericRepresentationValue | 0..1 | |
DataLogThresholdMaximum | NumericRepresentationValue | 0..1 | |
DataLogThresholdChange | NumericRepresentationValue | 0..1 | |
ContextItems | ContextItem | 0..* | |
LoggingLevel | LoggingLevelEnum | 1 | |
Representation | Representation | 1 | |
DeviceElementId | Integer | 0..1 |
DataLogTrigger
Attribute | Type | Multiplicity | Description |
---|---|---|---|
ValueCodes | Integer | 0..* |
Destination
Attribute | Type | Multiplicity | Description |
---|---|---|---|
Id | CompoundIdentifier | 1 | |
Description | String | 1 | |
Location | Location | 0..1 | |
FacilityId | Integer | 0..1 |
MeteredValue
Attribute | Type | Multiplicity | Description |
---|---|---|---|
Value | RepresentationValue | 1 | |
MeterId | Integer | 0..1 | |
DeviceConfigurationId | Integer | 0..1 |
StampedMeteredValue
Attribute | Type | Multiplicity | Description |
---|---|---|---|
Values | MeteredValues | 1..* | |
Stamp | TimeScope | 0..1 |
NumericWorkingData
Attribute | Type | Multiplicity | Description |
---|---|---|---|
UnitOfMeasure | UnitOfMeasure | 0..1 | |
Values | Double | 0..* | |
Id | CompoundIdentifier | 1 | |
DeviceElementUseId | Integer | 1 | |
Representation | Representation | 1 | |
AppliedLatency | NumericRepresentationValue | 1 | |
ReportedLatency | NumericRepresentationValue | 1 |
WorkingData
Attribute | Type | Multiplicity | Description |
---|---|---|---|
Id | CompoundIdentifier | 1 | |
DeviceElementUseId | Integer | 1 | |
Representation | Representation | 1 | |
AppliedLatency | NumericRepresentationValue | 1 | |
ReportedLatency | NumericRepresentationValue | 1 |
LoggingLevelEnum
Enumeration Literal | Description |
---|---|
MachineType | |
SpecificMachine | |
ImplementType | |
SpecificImplement | |
SpecificSection | |
SpecificMeter | |
Unspecified |
LoggingMethodEnum
Enumeration Literal | Description |
---|---|
TimeInterval | |
DistanceInterval | |
ThresholdLimits | |
OnChange | |
Total |
Note:
foreach (spatialRecord in operationData.GetSpatialRecords()) { var shape = spatialRecord.GetShape(); var time = spatialRecord.GetTimeElapsed(); for(depth=0; depth< operationData.GetMaxDepth();depth++) { foreach(section in operation.GetSections(depth) { var width = section.Width; foreach(meter in section.GetMeters()) { if(meter is NumericMeter) { var value = spatialRecord.GetMeterValue(meter); // Yo, note that there are different representations for meters... var appliedLatency = spatialRecord.GetAppliedLatency(meter); } else if(meter is EnumeratedMeter) { var value = spatialRecord.GetMeterValue(meter); } } } } }
, multiple selections available,
Related content
ADAPT - WorkItem and StatusUpdate Discussion
ADAPT - WorkItem and StatusUpdate Discussion
More like this
ADAPT - Load / LoadDestination Discussion
ADAPT - Load / LoadDestination Discussion
More like this
ADAPT - Plan, Recommendation, & Work Order Discussion
ADAPT - Plan, Recommendation, & Work Order Discussion
More like this
ADAPT Common Object Model Documentation
ADAPT Common Object Model Documentation
Read with this
ADAPT - WorkRecord Discussion
ADAPT - WorkRecord Discussion
More like this
ADAPT - Representation, UOM & DDI Discussion
ADAPT - Representation, UOM & DDI Discussion
Read with this