Skip to Content
This documentation is provided with the HEAT environment and describes this HEAT instance.
DevelopersRunnerscore-utilsentity-state-to-stats-summary

entity-state-to-stats-summary

entity-state-to-stats-summary reduces entity-state records to one value channel of engagement counters. It reports time to first detection, the number of detections, and how many sensor drops each platform type made.

Entity-state records are the JSON records array that hydrate-protobuf-v2 emits with extractionTarget: EntityState. The node reads detection beams through a JMESPath (a query language for JSON) expression and counts rising edges per beam, so a sustained detection counts once. A detection is attributed to a sensor entity through the detecting entity’s linked_entity.parent_entity_id link, or through the detecting entity’s own name when no link exists.

The output is one Channel inside a data service payload. It is fixed to these counters. For an arbitrary numeric field use entity-state-to-flight-stats.

When to use

Use this node when a Next dashboard needs a StatsSummary block for a sensor-drop and detection scenario.

Pipeline position

hydrate-protobuf-v2 (EntityState) -> entity-state-to-stats-summary -> json-merge -> dashboard-v2

The node reads the latest output of one parent.

Configuration

Configuration is required.

KeyTypeRequiredDefaultDescription
entriesPathstringNorecords[*]JMESPath to the array of time-ordered records.
timeFieldstringNosimulation_time_secondsDotted path from each record to its simulation time.
entitiesPathstringNoentity_state.entityJMESPath from each record to its entity object or array of objects.
entityNameFieldstringNonameDotted path from each entity to its name.
detectionBeamsFieldstringYesnoneJMESPath from an entity to its detection beams array.
sonobuoyNamePatternstringYesBUOYName prefix that identifies sensor entities.
uavEntitiesarray of stringYesnoneNames of entities of the first platform type that drops sensors.
frigateEntitiesarray of stringYesnoneNames of entities of the second platform type that drops sensors.
baseCapturedAtstringYesnoneISO 8601 base time stamp for the simulation.
groupIdstringNostatsGroup id for the channel.
groupNamestringNoEngagement SummaryGroup display name.
channelIdstringNostats-summaryChannel id.
falseDetectionConfigobjectNononeCounts detection tracks that ended before the session did. See below.

falseDetectionConfig keys:

KeyTypeRequiredDefaultDescription
entityPatternstringYesnoneName prefix identifying detection tracks.
endToleranceSecondsnumberNo1A track is true when its last-seen time is within this many seconds of the session’s last recorded time.

Output

A data service payload with one value channel.

{ "$heat-dataservice": { "version": "1.0", "groups": [{ "id": "stats", "name": "Engagement Summary" }], "realms": [ { "name": "overview", "channels": [ { "id": "stats-summary", "name": "stats-summary", "groupId": "stats", "shape": "value", "data": { "value": { "timeToDetectSec": 45.2, "totalDetections": 142, "sonobuoysDroppedByUav": 12, "sonobuoysTowedByFrigate": 3 } } } ] } ] }, "dashboard_users": [] }
FieldTypeDescription
timeToDetectSecnumber or nullSeconds from simulation start to the first rising-edge detection. Null when there is none.
totalDetectionsintegerNumber of per-beam rising edges across all frames.
sonobuoysDroppedByUavintegerSensor entities that share at least one frame with an entity in uavEntities.
sonobuoysTowedByFrigateintegerSensor entities that share at least one frame with an entity in frigateEntities and none with uavEntities.
falseDetectionTrackCountintegerPresent only when falseDetectionConfig is set. Number of detection tracks classified false.

Bind the channel to a StatsSummary widget and name these fields in statsItems.columns[].

Limitations

  • One parent, latest output only.
  • Simulation start is the first time value greater than zero.
  • A sensor entity that never shares a frame with either platform type is counted in neither drop counter.
  • The node fails when the records array is empty or baseCapturedAt cannot be parsed.
Opens your browser's print dialog. Choose "Save as PDF" as the destination.