A00003_-_RFP_70RDND18R00000005_-_DRAFT_HAIBP_Interface_Control_Document.pdf

PDF 1 MB Posted

Attached to
Helium-3 Alternative Implementation Backpack Program Federal contract opportunity
Solicitation number
70RDND18R00000005
Issued by
Department of Homeland Security Office of Procurement Operations

About this file

A00003 - RFP 70RDND18R00000005 - DRAFT HAIBP Interface Control Document

View the file

Other files for this federal contract opportunity

Show all 11

On GovTribe

Work with this file on GovTribe

  • Download the original file
  • Contacts named in this file
  • Similar government files
  • Ask GovTribe AI about this file

Text version

SIGMA Edge API Release 8.0.0-SNAPSHOT

Two Six Labs & Others

March 31, 2018

Table of Contents

1 Introduction 1

1.1 Language Definitions

1.2 Edge Protocols

1.3 Background

1.4 Which API Should I Use?

2 Streaming API 5

2.1 Specifications

2.2 Message Formats

2.3 Device Provisioning

2.4 Device Registration

2.5 Sensor Registration

2.6 Data Reporting

3 Reporting API 13

3.1 Overview

3.2 Specifications

3.3 Device Registration

3.4 Sensor Registration

3.5 N42 XML Support

3.6 Edge REST API

3.7 References

4 Thrift Messages 47

4.1 Overview

4.2 Messages

5 Glossary 53

Index 57 i

CHAPTER 1

Introduction

1.1 Language Definitions

The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be inter-preted as described in RFC 2119 (see “Key words for use in RFCs to Indicate Requirement Levels”).

1.2 Edge Protocols

The Edge Protocol is the mechanism through which distributed sensors report data to SIGMA’s cloud-hosted backend. This protocol is designed to be flexible, reliable, and lightweight enough to operate in a variety of real-world operating conditions. The Edge protocol encapsulates two separate API that can be used depending on an integrators use case, the Streaming API and the Reporting API. To make a deci-sion about which is right for you, please refer to Which API Should I Use?.

Figure 1.1. High Level Diagram of how sensors and devices communicate with the SIGMA Edge

1.3 Background

There are two types of entities associated with the Edge Protocol within the SIGMA system: Devices and Sensors.

The Edge Protocol has two participants:

• A “Client” that pushes data to the network. In practice, this is always a Device.

• The “Server” that receives data from a client, implemented by SIGMA Edge. The Server handles communications from multiple Clients independently.

Devices MAY be associated with one or many Sensors. Sensors MUST always be associated with a single Device.

For instance, the SIGMA system often uses a combination of an Android smartphone and a Kromek D3S to provide an SPRD capability. In this case, the Android Smartphone is the “Device”, and the Kromek D3S is “Sensor”. A smartphone or other Device may be connected to Sensors so long as it is capable of relaying data from all of them; however, a single Sensor cannot be connected to more than one device at once.

1.4 Which API Should I Use?

The Streaming API is the original SIGMA sensor interface, and it implements a reliable mechanism for

SIGMA Edge API, Release 8.0.0-SNAPSHOT

2 Chapter 1. Introduction

Sensor data to be reported to the SIGMA backbone, covering registration, data delivery, reliability, and caching.

The goals of the Streaming API are to:

• Allow sensors to securely deliver sensor status and spectral data payloads to the SIGMA Edge.

• Allow sensors to reliably cache data and reconnect in the event of interrupted connectivity.

• Allow messages to be passed back to Sensors or Devices in the field.

The Reporting API implements a simplified mechanism for devices that do not report continuous spectro-scopic data to communicate with the SIGMA system. The goal of this API is to :

• Allow devices that do not wish continuously report spectra to report health information and alerts to the SIGMA system.

• Provide an easier mechanism for integration into the SIGMA system via an authenticated HTTPS channel

When choosing which API is appropriate for your use, the primary differentiator is whether you wish to report high frequency spectral data. At this point, only the Streaming API reports that functionality. For all other use cases, the Reporting API is recommended.

1.4.1 Data Requirements for the Streaming API

The Streaming API is the main API through which streaming spectral data is submitted to the SIGMA system, for processing by cloud-based detection and identification algorithms. However, radiation spectra comes in many forms and with varying quality; to operate effectively the SIGMA algorithms require a certain baseline with regard to submitted sensor data.

At present the SIGMA algorithms are designed to operate with high resolution spectroscopic detectors (minimum 512 channels over 30-3000KeV), based on crystal scintillator technology. Specific performance may vary from detector to detector and should be evaluated independently.

1.4. Which API Should I Use? 3

4 Chapter 1. Introduction

CHAPTER 2

Streaming API

The Streaming API is message-oriented, meaning that it operates over a stream of (strongly-typed) messages. It is not a remote procedure call mechanism.

This section describes the overall flow of the conversation that occurs between a single Client and the Server in the Streaming API. When operating, a Server MAY maintain multiple separate conversations with multiple Clients (or in some special cases with a single Client), but only one such conversation is described here. Detailed descriptions of each part of the conversation described in this diagram is found in the Specifications section.

Figure 2.1. Overall conversation flow between a Client and a Server, includes an initialization phase, followed by inde-pendent reporting loops for each sensor.

The following describes this conversation (as depicted in Figure 2.1):

• The Client initiates the conversation with the Server by establishing a connection as described in

Transport Layer

• The Client MUST first send a Device Registration (RegisterDevice) request to the server. This request is responsible for authenticating the Device to the server.

• The Client MUST register each Sensor with the Server before sending data for that sensor. The Client

MAY register multiple sensors.

• After Sensor registration, the Client SHOULD send SensorReport messages for each registered sensor at a regular interval.

• If the connection to the Server is lost, the Client MUST tear down their socket and begin the conver-sation again from the beginning, including Device Registration.

2.1 Specifications

2.1.1 Underlying Technologies

The Edge API is built on two standard open-source technologies:

• ZeroMQ

• Provides a message-oriented reliable communication layer built on the ZeroMQ networking library, which provides sockets that carry atomic messages across various transports, with support for N-N communication.

• Apache Thrift

• Provides a language-agnostic mechanism for marshalling message objects into binary represen-tation suitable for transport over the network.

The remainder of this document assumes familiarity with ZeroMQ and Apache Thrift.

2.1.2 Transport Layer

The Edge Server binds a ZeroMQ ROUTER socket listening on TCP port 5569. Connections are estab-lished from the remote Device by creating a REQ socket and connecting to the SIGMA Edge. No authenti-cation or encryption is established at the transport layer.

The production Edge Server is located at edge.dtect.net:5569.

Data sent over the transport layer is packed in Thrift-encoded messages as described in Message Formats.

When the Server receives valid messages, it will respond with Thrift encoded messages. However, if the message received is invalid for any reason, the Server will respond with a simple error code (see below).

2.1.3 Basic Error Codes

Basic error codes are sent as raw 4 byte strings, representing a big-endian signed integer. This integer MUST always be one of the following error codes:

* Errors that happen when messaging fails enum MessageErrorCode {

* General error.

UNKNOWN_ERROR = -1;

* Invalid protocol version

INVALID_PROTOCOL_VERSION = -2;

* Failed to parse the message

MESSAGE_PARSE_FAILURE = -3;

* Failed to parse the message payload

SIGMA Edge API, Release 8.0.0-SNAPSHOT

6 Chapter 2. Streaming API http://zguide.zeromq.org/page:all https://thrift.apache.org/

PAYLOAD_PARSE_FAILURE = -4;

* Failed to decrypt due to key mismatch

KEY_MISMATCH = -5;

* Failed to decrypt due to mac comparison failure

MAC_FAILURE = -6;

* Failed to decrypt due to key mismatch

INVALID_SESSION = -7;

2.1.4 Example

The first thing to do is install ZeroMQ

$ pip install zmq

Then you want to establish a socket connection. The Edge protocol is a binary protocol, so all you can do at this point is verify connection. In this example, we receive a binary -3, which indicates a message parsing failure based on the Basic Error Codes. Since we didn’t send a valid message, this is to be expected because -3 indicates a failure to parse the message.

Implementors are expected to handle error responses appropriately. If the response is UNKNOWN_ERROR a simple retry is appropriate. All other responses indicate that some action must be taken by the implemen-tor.

>>> import zmq >>> ctx = zmq.Context.instance() >>> sock = ctx.socket(zmq.REQ) >>> sock.connect("tcp://edge.dtect.net:5569") >>> sock.send("Hello"?)

>>> result = sock.recv() >>> import struct >>> struct.unpack("!i", result) (-3,)

2.2 Message Formats

This section describes the formatting of messages that are transmitted over the ZeroMQ transport layer.

The Edge API uses the Apache Thrift schema and associated generation tools to provide an efficient plat-form and language agnostic serialization scheme.

Each message sent from a Device to the Edge is sent as a base Base Message. This Base Message contains a unique identifier, a sequence number, authorization information, the “topic” (which is used to decode a payload), and a (binary) payload. The payload is generally another Thrift message encoded using the Thrift Compact Protocol encoding. This allows all message types to be generically delivered to the Edge without replicating the data fields needed to track messages between the Edge and the Device. Upon receipt of a message, each part of the SIGMA system reads the base Base Message to determine its type and whether it needs to be processed further.

When beginning a communication session with the Server the Client MUST initially set the sequence number to 1. Each subsequent message sent to the Server MUST increment this value by one. However, SIGMA Edge API, Release 8.0.0-SNAPSHOT

2.2. Message Formats 7

https://github.com/apache/thrift/blob/master/doc/specs/thrift-compact-protocol.md any messages re-sent due to failure to receive MUST re-use their existing sequence number.

2.2.1 Authentication and Security

Figure 2.2. A depiction of how messages must be encapsulated and authenticated prior to submission.

The payload field of each base Message sent to Edge is encrypted and authenticated using AES256 in CBC mode with a SHA(1) HMAC message authentication code. The 32-bit AES256 ephemeral session key is selected randomly by the Device at the establishment of a Session. The Device sends the session key (encrypted by the asymmetric key obtained earlier via Device Provisioning) to Edge as part of the RegisterDevice message which initially establishes a Session.

The token field of the Base Message is used to store the following cryptographic values:

• When topic == RegisterDevice:

• token is a 284-byte blob formed by the concatenation of:

• The first 8 bytes of the AES256 Initialization Vector used for this payload.

• The (20-byte) Message Authentication Code produced by HMAC-SHA1.

• The (256-byte) RSA-encrypted ephemeral session key.

• When topic has any other value:

• token is a 28-byte blob formed by the concatenation of:

• The first 8 bytes of the AES256 Initialization Vector used for this payload.

• The (20-byte) Message Authentication Code produced by HMAC-SHA1.

To be clear: * Bytes 0:7 of the AES256-CBC Initialization Vector are taken from bytes 0:7 of token. * Bytes 8:15 of the AES256-CBC Initialization Vector are the sequence field of the Base Message.

2.3 Device Provisioning

In order to initiate a Session with Edge, Clients (Devices) must obtain their 2048-bit RSA key by contacting the “Provision Service” via its (https-secured) REST API. This key is expected to be

8 Chapter 2. Streaming API

“long-lived” (e.g. persisted locally on the Device and used to initiate future Sessions indefinitely).

Devices should issue an HTTP GET request to the Provision Service REST API Endpoint with the following URL parameters:

• device = the UUID of the device (encoded in canonical “hex-with-dashes” format as per RFC4122).

• make = the “make” (manufacturer name) of the device

• model = the device’s model number

• name = an identifying device name (need not be unique)

• serial = the serial number of the device as specified in the DTECT Inventory UI.

Note that the meaning or required parameters may vary somewhat between devices.

The production Provision Service endpoint is: https://provision.dtect.net/provision.

The returned document will be the 2048-bit RSA key encoded in PEM format (MIME type:

application/x-pem-file). This key should be persisted on the Device for use in future Sessions and reasonable safeguards should be taken against disclosure of this key. Keys can only be retrieved if the device has been added to the system already.

2.4 Device Registration

Once a Client has established a connection with the Server, the Client must register itself. This registration identifies and authenticates the Client to the Server: information is provided to the Server and an ephemeral symmetric key to use for the remainder of the session is exchanged.

2.4.1 Message Flow

Device registration has the following flow.

Figure 2.3. Edge Sequence

• The Client sends a RegisterDevice message to the Server.

• If the request was parseable, then the Server MUST send a RegisterDeviceResponse message back.

Note that there can still be an error.

• If the request was not parseable, then the Server MUST send a basic error code as the response.

SIGMA Edge API, Release 8.0.0-SNAPSHOT

2.4. Device Registration 9

https://tools.ietf.org/html/rfc4122

• The Client MUST continue to attempt to register by sending RegisterDevice messages until it receives a valid response.

2.4.2 Payload Formats

The RegisterDevice message provides information about the device attempting to register with the edge.

RegisterDevice messages MUST include a populated device property, providing details about the device itself. This property is an instance of the Device struct shown below.

The RegisterDeviceResponse contains a simple response code and information about the version of the protocol being used.

The possible set of response codes are:

enum RegisterResponseCode {

OK,

PROTCOL_VERSION_MISMATCH,

UNKNOWN_DEVICE,

UPDATE_AVAILABLE

A device receiving a RegisterResponseCode other than OK will NOT be able to communicate with the network. UPDATE_AVAILABLE is a deprecated response code.

2.5 Sensor Registration

The sensor registration process is similar to the device registration flow, with two key differences: it does not include the cryptographic handshake, and it is repeated once for each sensor.

To register a Sensor, the Client MUST send a RegisterSensor message to the Server. This message MUST contain a populated Sensor struct, which MUST at a minimum define the make, model, serial number and type of that Sensor.

In response to a valid RegisterSensor message, the Server will respond with a RegisterSensorResponse message. The RegisterSensorResponse can optionally contain sensor settings, characterization infor-mation, or calibration passed back from the server. If any of these fields are present, the Client SHOULD apply them as appropriate.

If the RegisterSensor is invalid for any reason, the Server will respond with one of the Basic Error Codes encoded in the base Message.

2.6 Data Reporting

Once the Client has registered itself and its Sensors with the Server, the Client can begin reporting actual data to the Server. The Client is responsible for maintaining an appropriate data submission rate, and caching recorded data until it has been acknowledged. SensorReport messages SHOULD be submitted to the Server every 1 second.

Once in the data reporting loop, the Client SHOULD only send SensorReport messages to the Server. These messages combine radiation readings, location, and device and sensor status. A SensorReport MUST include AT LEAST ONE of radiation, location, deviceStatus, or sensorStatus, or it will be rejected by the Server.

Each unique message sent to the Server MUST increment the sequence number in the Base Message. The Client MUST cache messages that they send to the Server, until they are acknowledged. The Server MUST

10 Chapter 2. Streaming API indicate successful receipt of each message by responding with a Base Message that has a matching sequence number to the message that is sent. If the message cannot be decoded or is otherwise invalid, the Server MUST indicate that fact by responding with a basic error code.

2.6.1 Message Retry

If the Server does not indicate successful message receipt, the Client MUST resend the exact same message.

2.6.2 Connection Failure

If the Server does not respond to a message within thirty (30) seconds, the Client MUST tear down the ZeroMQ socket and begin the communication flow again (including registration).

2.6.3 References

Apache Thrift https://thrift.apache.org/

ZeroMQ <http://zguide.zeromq.org/page:all>

SIGMA Edge API, Release 8.0.0-SNAPSHOT

2.6. Data Reporting 11

http://zguide.zeromq.org/page:all

12 Chapter 2. Streaming API

CHAPTER 3

Reporting API

3.1 Overview

The Reporting API is a secondary interface through which distributed sensors can report data to SIGMA’s cloud-hosted backend.

This protocol is primarily intended for non-streaming data reporting, such as reports from alert-only systems.

This section describes the overall flow of the conversation that occurs between a single Client and the Server in the Reporting API. When operating, a Server MAY maintain multiple separate conversations with multiple Clients (or in some special cases with a single Client), but only one such conversation is described here.

The Reporting API expects a similar conversation flow to the Streaming protocol, wherein a Client first registers a Device, then registers one or more sensors prior to submitting data from those sensors. The sequence of expected method calls is as follows:

• The Client MUST first register the Device it represents by sending a POST request to the /device/register endpoint.

• The Client MUST submit location and status information at least once every 30 seconds by submit-ting a request to the /device/{deviceId}/location and /device/{deviceId}/status endpoints.

• The Client MUST submit a request to register each connected sensor via the /device/{deviceId}/sensor/register endpoint.

• The Client SHOULD submit a request with status for each registered sensor at least once every 30 seconds to /device/{deviceId}/sensor/{sensorId}/status

• The Client MAY submit a packaged N42 XML file to the /device/{deviceId}/alert/n42 endpoint.

The details for these HTTP endpoints can be found in api-details.

Note Registrations for devices will time out if no data is received for an hour; if this happens, the Client must re-initiate the flow described above.

3.2 Specifications

3.2.1 Underlying Technologies

The Reporting API operates over standard HTTPS protocols. The API endpoints are defined using the Swagger API schema; the schema itself is included in api-details.

The remainder of this document assumes familiarity with HTTPS requests and responses.

3.2.2 Basic Error Codes

Error codes are returned as http errors (non 200 codes).

3.2.3 Authentication and Security

The Reporting API is secured via the use of HTTPS endpoints. In addition, each request must be authenti-cated on a per-device basis, by including the X-Sigma-API-Key header in each request.

To obtain an API key for a device, contact help@dtect.net with information about the device you would like to register. When registering, the device information MUST match what was provided when the device was registered.

3.3 Device Registration

Use endpoint /device/register to register a device. On success will return 200 and a deviceId that is used in all future calls. Bad parameters will result in error code of 400 and a invalid API key will result in a code of 401.

3.4 Sensor Registration

Use endpoint /device/{deviceId}/sensor/register to register each connected sensor. This is a POST endpoint with a Sensor object (see API reference below). Returns 200 and the sensor UUID on success. Returns code 400 on error.

3.5 N42 XML Support

Use the /device/{deviceId}/alert/n42 endpoint, see below, to submit an N42 XML file. As submitted N42 will be converted to a SIGMA investigation in the server for visualization purposes, but the original data is also retained. The N42 xml file will be saved as an annotation as will any images in MultimediaData.

Warning Before submitting an N42 the device MUST be registered and all referenced sensors MUST also be registered.

Warning At present, this API only supports the submission of alerts. That is, measurements where a specific isotope was identified. Future versions of this API may support measurements without identi-fied sources.

SIGMA Edge API, Release 8.0.0-SNAPSHOT

14 Chapter 3. Reporting API mailto:help@dtect.net

See https://www.nist.gov/programs-projects/ansiieee-n4242-standard for the full N42 standard refer-ence.

The following subset is supported by the Reporting API. The part of the document that concerns the reporting api are the contents of the RadInstrumentData tag. Other tags enclosing or in addition to this tag will be ignored.

• RadInstrumentData:

The top element of an instance of a radiation measurement instrument’s N42 XML document.

This element contains all the reported measurement and analysis data, and all the information on the instrument, its radiation detector(s), and the item(s) it measured.

At least one RadDetectorInformation sub tag is required. Other tags not listed below will be ignored.

• RadInstrumentInformation: Required.

Describes the radiation measurement instrument that collected the data contained in the N42 XML document.

• RadInstrumentManufacturerName: Required, must match the ‘make’ if a registered Sensor. Name of the manufacturer of the radiation measurement instrument.

• RadInstrumentModelName: Required, must match the ‘model’ of a regis-tered Sensor. The radiation measurement instrument manufacturer’s model name, number, or other description of the radiation measurement instru-ment.

• RadInstrumentIdentifier: Required, must match the ‘serialNumber’ of a registered Sensor. Identification information for the specific radiation measurement instrument; such as serial number or asset tag number.

• RadDetectorInformation: Contains information describing a radiation detector.

The id attribute is required and there must be at least one of these tags. Other attributes and sub tags are ignored.

• RadMeasurement: Must include Spectrum and/or GrossCounts.

This element records a measurement at a particular StartDateTime, for a Real- TimeDuration, of a particular MeasurementClassCode that consists of readings from any number of one or more of the following:

a radiation detector; an occupancy sensor; a positioning sensor that captures the location of a radiation measurement instrument, radiation detector, or measured item; or the state of a radiation measurement instrument, radiation detector, or measured item.

The following attributes can be provided for these sensor readings

• MeasurementClassCode: Required, must provide ‘Foreground’. Indicates whether the data are a measurement of an item (Foreground), an environ-mental background (Background), a calibration source (Calibration), the intrinsic activity of the radiation measurement instrument (IntrinsicActivity), or not specified (NotSpecified).

• StartDateTime: Required, example 2016-05-26T14:51:24 can have +tzoffset or Z for UTC on end. Time corresponding to the start of the collection of the data contained in a particular measurement.

• Spectrum: Contains a single spectrum measurement with references to

SIGMA Edge API, Release 8.0.0-SNAPSHOT

3.5. N42 XML Support 15

https://www.nist.gov/programs-projects/ansiieee-n4242-standard other pertinent information about the measurement.

Attribute radDetectorInformationReference is required, other attributes will be ignored.

• LiveTimeDuration: Required. The duration during which a detection assembly is sensitive to the input signal. The value of LiveTimeDuration is always less than or equal to the value of RealTimeDuration, because it does not include the time that the radiation detector was unable to respond due to the processing of events.

• ChannelData: Attribute compressionCode is required. A list of values, one for each of a spectrum’s channels. The values represent the number of counts per channel.

• GeographicPoint Geographical coordinates providing lati-tude, longitude, and elevation (at the point of measurement and at the point on the earths surface), and uncertainty of the coordi-nates.

• LatitudeValue The latitude of a point on the surface of the earth expressed as geographic coordi-nates in decimal degrees. Points in the northern hemisphere range from 0.0 to +90.0 degrees. Points in the southern hemisphere range from 0.0 to -90.0.

• LongitudeValue The longitude of a point on the surface of the earth expressed as geographic coordi-nates in decimal degrees. Points east of the prime meridian range from 0.0 to +180.0 degrees. Points west of the prime meridian range from 0.0 to -180.0.

• GrossCounts: Attribute radDetectorInformationReference is required. A data type providing gross count radiation data.

• LiveTimeDuration: Required. The duration during which a detection assembly is sensitive to the input signal. The value of LiveTimeDuration is always less than or equal to the value of RealTimeDuration, because it does not include the time that the radiation detector was unable to respond due to the processing of events.

• CountData: Required. The number of counts accumulated during a measurement period over the entire energy range measured by the radiation detector or within pre-defined energy windows.

• MultimediaData: Multimedia data (only support images) to annotate to investigation.

Providing unlisted attributes or elements will be ignored, an unsupported mime type or data object will be an error. Multimedia data - e.g., images, sound clips, movies, -regarding a measured item or a measurement environment.

• MultimediaCaptureStartDateTime: Required. Date-time at which capture of the multimedia data was started.

• MultimediaDataMimekind: Required and MUST be image/jpeg or

16 Chapter 3. Reporting API image/png. Media types are listed in http://www.iana.org/assignments/media-types/index.html. If the media type is not listed, then describe the media type using free-form text.

• BinaryBase64object: This or BinaryHexObject required, image data in base 64 encoding. Base 64 binary encoding of data.

• BinaryHexObject: This or BinaryBase64Object required, image data in hex encoding. Hex binary encoding of data.

• AnalysisResults The collection of information resulting from the analysis of the radi-ation measurements or derived data.

• AnalysisAlgorithmName: Required, can come from this tag or AnalysisAlgorithmComponentName. A unique name of the analysis algorithm.

• AnalysisAlgorithmVersion: Required. Information describing the version of a particular analysis algorithm component.

• AnalysisAlgorithmComponentName: Required. Name of an algorithm component.

• AnalysisAlgorithmComponentVersion: Required, should be in SEMVER format or the version will default to 0.0.0. Version information for the algorithm component.

• NuclideAnalysisResults: Required, list each ‘Nuclide’ observed. The results of radionuclide analysis.

• Nuclide The analysis results for a single radionuclide.

• NuclideName: Required, must be a valid isotope name. Name of the nuclide.

• NuclideIDConfidenceValue: Required. Indica-tion of confidence ranging from 0.0 to 100.0 percent, in the identification status of a nuclide, where increasing values indicate more certainty that the nuclide is present. The interpretation of this value is dependent on the characteristics of the nuclide identi-fication algorithm.

XML Example (includes some tags/attributes that are not consumed by reporting api):

<RadInstrumentData xmlns="http://physics.nist.gov/N42/2011/N42"> <Remark>Replay Output File</Remark> <RadInstrumentInformation id="Portal-1"> <RadInstrumentManufacturerName>PSI</RadInstrumentManufacturerName> <RadInstrumentIdentifier>SN_0001</RadInstrumentIdentifier> <RadInstrumentModelName>identiFINDER S1500</RadInstrumentModelName> <RadInstrumentClassCode>Spectroscopic Portal Monitor</RadInstrumentClassCode> <RadInstrumentVersion> <RadInstrumentComponentName>Hardware</RadInstrumentComponentName> <RadInstrumentComponentVersion>1.0</RadInstrumentComponentVersion>

SIGMA Edge API, Release 8.0.0-SNAPSHOT

3.5. N42 XML Support 17

http://www.iana.org/assignments/media-types/index.html

</RadInstrumentVersion> <RadInstrumentVersion> <RadInstrumentComponentName>Software</RadInstrumentComponentName> <RadInstrumentComponentVersion>PCS Version 2.1</RadInstrumentComponentVersion> </RadInstrumentVersion> </RadInstrumentInformation> <RadDetectorInformation id="PERM-SN1001"> <Remark>15016288</Remark> <RadDetectorCategoryCode>Gamma</RadDetectorCategoryCode> <RadDetectorKindCode>NaI</RadDetectorKindCode> </RadDetectorInformation> <RadDetectorInformation id="PERM-SN1002"> <Remark>15016284</Remark> <RadDetectorCategoryCode>Gamma</RadDetectorCategoryCode> <RadDetectorKindCode>NaI</RadDetectorKindCode> </RadDetectorInformation> <RadDetectorInformation id="PERM-SN1003"> <Remark>15016283</Remark> <RadDetectorCategoryCode>Gamma</RadDetectorCategoryCode> <RadDetectorKindCode>NaI</RadDetectorKindCode> </RadDetectorInformation> <RadDetectorInformation id="PERM-SN1004"> <Remark>15016286</Remark> <RadDetectorCategoryCode>Gamma</RadDetectorCategoryCode> <RadDetectorKindCode>NaI</RadDetectorKindCode> </RadDetectorInformation> <RadDetectorInformation id="NEUTRUCK-1"> <Remark>NeuTruck 1600</Remark> <RadDetectorCategoryCode>Neutron</RadDetectorCategoryCode> <RadDetectorKindCode>LiZnS</RadDetectorKindCode> </RadDetectorInformation> <RadDetectorInformation id="NEUTRUCK-2"> <Remark>NeuTruck 1600</Remark> <RadDetectorCategoryCode>Neutron</RadDetectorCategoryCode> <RadDetectorKindCode>LiZnS</RadDetectorKindCode> </RadDetectorInformation> <RadItemInformation id="Occupancy-10"/> <RadMeasurement id="Measurement-Background"> <MeasurementClassCode>Background</MeasurementClassCode> <StartDateTime>2016-05-26T14:51:24</StartDateTime> <RealTimeDuration>PT897.97S</RealTimeDuration> <Spectrum id="Measurement-Background-PERM-SN1001" radDetectorInformationReference="PERM-SN1001" energyCalibrationReference="CAL-PERM-SN1001"> <Remark>78692733</Remark> <LiveTimeDuration>PT842.38S</LiveTimeDuration> <ChannelData compressionCode="CountedZeroes">0 19 2 10624 11661 12976 13873 14915 15807 16171 16977 17372 17500 18156 17934 18154 17853 17660 17333 17041 16721 16501 16121 15511 15232 14697 14550 14157 13702 13401 13021 12770 12346 11975 11846 11425 10870 10809 10436 10121 9830 9534 9249 8934 8642 8272 8217 8062 7747 7642 7414 7216 6943 6808 6644 6596 6558 6315 6098 5860 5800 5576 5481 5340 5077 4956 4953 4908 4845 4699 4684 4635 4455 4480 4514 4484 4471 4158 3938 3831 3741 3458 3390 3271 3185 3095 3091 2910 2829 2870 2794 2733 2766 2744 2697 2569 2618 2532 2537 2379 2259 2233 2323 2146 2071 2044 1978 1970 1928 1967 1962 1940 2043 2016 1959 1915 1969 1989 1843 1951 1906 1749 1686 1552 1534 1438 1380 1298 1229 1278 1213 1205 1202 1200 1243 1154 1110 1112 1049 1044 1077 1066 1029 1027 969 965 965 951 939 985 910 939 914 905 885 884 926 872 858 832 850 795 864 836 821 832 862 871 859 857 855 773 853 829 887 822 875 865 739 778 766 746 690 741 730 679 637 631 651 650 584 614

18 Chapter 3. Reporting API

644 633 655 699 705 710 707 733 718 725 774 821 784 814 821 817 827 819 790 790 835 746 770 663 684 659 630 597 522 495 470 447 455 431 435 398 400 361 385 351 358 360 345 351 386 371 354 393 360 354 362 385 346 338 378 338 352 330 365 378 341 346 340 362 342 346 334 345 314 382 355 362 333 334 354 354 325 315 304 355 324 296 357 300 338 300 311 342 286 298 280 289 239 282 281 267 271 275 301 263 229 255 267 266 256 262 284 268 259 294 258 269 260 267 275 273 275 276 287 299 272 280 272 266 289 246 291 296 310 273 293 306 260 295 260 260 281 240 273 268 284 254 275 261 257 258 262 244 261 263 247 249 232 244 205 206 211 233 207 209 170 188 183 182 176 187 174 166 154 190 183 210 193 166 161 177 185 162 162 184 182 206 182 182 169 175 192 226 181 181 199 208 205 239 225 241 243 243 244 238 252 219 236 218 223 206 178 199 203 191 218 212 199 195 164 163 162 167 142 146 174 151 134 150 153 153 143 145 139 157 155 142 158 148 142 165 157 159 125 136 147 135 155 140 152 136 136 150 135 139 140 131 121 132 119 116 106 131 97 121 101 110 120 113 100 90 92 105 91 89 86 75 88 85 101 110 107 97 83 102 119 110 119 107 106 121 96 122 122 130 118 134 120 120 132 131 149 160 165 166 160 193 179 216 191 235 255 268 325 304 325 314 299 320 342 371 357 345 314 348 338 342 307 305 329 278 262 257 267 260 227 189 193 153 157 147 148 137 95 87 100 90 87 83 66 76 68 63 54 76 54 57 56 56 52 56 54 57 62 57 53 51 55 64 61 48 45 60 34 49 45 42 51 50 44 50 49 65 48 44 50 47 43 42 50 48 44 43 43 48 33 51 36 51 53 36 45 55 58 45 56 60 46 71 61 66 55 61 51 74 70 81 83 77 67 79 76 86 83 78 71 91 81 97 64 73 80 85 76 60 70 64 61 68 72 69 69 41 58 60 45 49 41 49 37 40 52 36 45 43 36 40 38 33 35 38 38 32 33 29 31 31 29 42 22 26 37 26 21 24 15 28 23 31 23 18 25 33 21 18 33 22 22 24 26 29 13 18 24 12 22 22 34 18 21 14 18 17 18 19 24 25 15 26 22 17 22 20 24 18 26 22 13 21 27 17 15 19 14 14 32 16 25 17 31 19 20 27 20 18 27 25 26 34 36 33 30 27 29 35 32 38 35 26 28 40 26 27 38 29 30 27 28 38 30 35 42 31 37 27 27 30 35 37 48 35 29 36 35 35 34 43 32 34 22 31 24 31 28 19 33 30 18 30 31 31 23 31 23 26 21 26 18 26 27 21 25 28 26 20 21 15 19 11 25 22 14 21 16 13 11 19 22 16 14 14 25 19 18 19 15 16 20 9 10 12 15 16 15 11 11 13 18 12 22 18 12 13 7 11 18 16 16 18 10 11 12 23 12 12 10 14 13 9 16 14 8 11 11 15 14 16 12 14 10 12 9 17 9 7 7 15 13 10 14 14 9 18 22 18 16 19 13 16 13 12 22 17 18 25 28 28 23 28 32 23 38 43 30 28 45 31 48 49 53 38 48 52 50 56 48 46 45 49 44 48 44 52 40 33 47 32 40 40 34 32 27 32 31 31 19 30 23 26 20 30 22 22 13 21 16 9 8 5 11 10 8 8 5 2 4 5 4 8 9 4 7 2 6 2 6 8 3 4 3 5 3 2 5 6 7 6 4 3 7 4 4 2 2 4 3 3 2 5 4 5 2 5 6 4 2 2 4 3 7 4 4 6 4 4 4 5 7 3 0 1 7 0 1 4 3 1 2 2 4 1 0 1</ChannelData> </Spectrum> <Spectrum id="Measurement-Background-PERM-SN1002" radDetectorInformationReference="PERM-SN1002" energyCalibrationReference="CAL-PERM-SN1002"> <Remark>78692753</Remark> <LiveTimeDuration>PT841.78S</LiveTimeDuration> <ChannelData compressionCode="CountedZeroes">0 20 11813 13074 14218 15616 16566 17385 18285 19022 19363 19938 19968 20099 20113 20068 19305 19122 18679 18586 17949 17495 16983 16386 16040 15570 15224 14817 14264 14193 13533 13201 12898 12388 12301 11819 11279 11039 10857 10514 10166 9728 9630 9273 8866 8843 8538 8215 8068 7830 7425 7313 7155 7085 6888 6695 6604 6429 6230 6062 6061 5807 5571 5544 5384 5314 5143 5090 5054 4891 4821 4887 4785 4639 4626 4513 4395 4187 4037 3924 3733 3706 3464 3355 3342 3208 3089 3058 3056 2916 2983 2957 2941 2816 2723 2751 2763 2544 2567 2518 2438 2357 2208 2213 2137 2103 2066 2066 2064 2100 2069 2121 2050 2052 1985 2027 2000 2010 2007 1836 1814 1702 1655 1579 1539 1456 1422 1467 1330 1328 1262 1301 1212 1315 1206 1259 1176 1190 1202 1144 1128 1072 1079 1107 1025 1052 1097 1040 962 992 998 941 948 947 894 918 957 869 914 916 900 849 853 873 883 855 863 821 971 870 872 854 834 913 852 856 901 818 845 872 797 794 759 711 750 742 699 711 664 673 645 682 690 637 734 734 729 734 724 752 735 741 770 759 775 785 871 851 833 804 825 839 823 796 743 710 694 633 653 593 557 511 519 489 487 469 453 405 459 416 417 406 438 389 360 388 385 359 371 342 384 366 377 371 374 429 363 346 356 378 359 366 404 381 367 366 399 393 408 360 346 346 378 353 345 352 331 351 360 335 371 379 351 370 331 362 362 329 351 333 308 328 338 329 300 294 286 322 294 284 297 317 315 284 268 261 284 246 254 263 276 255 255 250 281 293 293 268 264 279 255 272 308 273 272 282 302 284 261 306 312 289 317 325 321 297 285 291 311 326 281 272 291 302 299 263 279 262 291 288 276 261 249 274 264 239 241 226 243 238 226 187 201 243 218 197 197 207 201

3.5. N42 XML Support 19

194 170 190 167 193 187 186 168 174 182 190 211 149 180 174 169 177 187 197 181 226 180 199 205 210 194 208 204 214 211 234 215 241 240 240 236 246 237 199 210 219 224 211 212 222 196 189 195 182 180 176 164 175 149 168 179 140 139 170 166 160 133 164 139 158 157 152 154 124 141 155 161 143 177 150 163 161 134 139 131 128 124 132 166 148 135 141 127 126 125 124 141 133 111 137 112 122 112 118 107 108 118 107 100 89 94 112 94 89 103 90 102 104 98 107 99 113 99 119 107 101 114 112 102 117 120 128 146 111 124 152 126 110 138 150 153 152 156 162 171 196 211 213 208 235 260 287 264 307 310 275 341 323 350 338 349 371 320 370 339 345 316 321 319 309 278 280 251 236 238 191 187 185 172 134 146 150 128 118 97 107 109 80 89 87 68 60 69 93 57 62 56 63 64 53 58 58 62 72 62 56 51 60 51 53 54 57 64 65 57 62 52 52 50 47 51 58 55 52 42 46 45 42 48 45 60 35 42 54 48 44 39 38 53 55 59 37 58 44 52 48 55 48 43 60 48 61 72 75 64 67 74 64 67 76 81 80 76 88 79 91 78 82 71 82 84 74 76 84 78 76 53 76 76 61 64 67 64 68 59 42 60 49 47 65 44 52 38 47 28 42 40 39 44 27 37 51 42 41 35 28 31 27 45 28 36 31 19 24 25 22 26 31 30 34 26 32 31 26 21 26 25 22 28 30 27 16 19 40 29 22 23 23 28 29 34 11 26 19 16 22 12 19 22 22 24 17 19 30 19 26 24 17 25 18 21 19 24 15 18 22 24 30 19 22 20 23 19 28 23 18 30 25 31 29 26 24 37 27 22 30 29 27 24 32 28 37 28 32 25 41 21 34 33 27 31 31 37 32 27 32 25 35 31 44 40 34 39 36 27 43 29 34 28 25 38 45 38 28 31 25 28 22 25 32 33 32 20 23 34 33 23 27 25 21 23 24 25 26 26 23 22 22 30 25 25 24 25 20 15 12 21 28 14 16 19 21 20 23 15 14 15 14 23 22 12 17 16 10 15 13 17 8 24 15 17 16 13 14 16 20 14 13 15 16 15 8 13 20 22 13 18 21 14 11 10 17 18 13 12 13 14 17 14 7 18 11 11 12 13 17 12 11 14 10 14 15 12 10 10 14 16 11 12 10 9 11 18 14 14 17 10 8 16 10 15 18 23 16 23 17 29 21 21 22 23 23 26 33 35 23 33 28 44 42 46 40 44 55 41 57 55 41 51 43 43 56 66 54 47 53 39 47 48 51 43 48 39 44 41 33 42 34 27 36 21 24 25 23 21 21 24 26 20 11 16 11 10 12 12 12 11 8 11 4 9 6 10 4 6 6 4 4 7 4 5 4 5 7 5 4 4 4 1 2 4 4 2 4 7 3 4 7 5 6 5 3 4 1 6 5 6 2 3 1 3 0 1</ChannelData> </Spectrum> <Spectrum id="Measurement-Background-PERM-SN1003" radDetectorInformationReference="PERM-SN1003" energyCalibrationReference="CAL-PERM-SN1003"> <Remark>78692773</Remark> <LiveTimeDuration>PT843.26S</LiveTimeDuration> <ChannelData compressionCode="CountedZeroes">0 6 12292 5481 3766 3870 4013 4460 5256 5851 6253 6840 7773 8573 9953 11175 12641 13675 14806 15769 16881 17784 18321 18888 19252 19452 19531 19503 19035 18610 18752 18270 17868 17332 16683 16450 16018 15428 14754 14713 14306 13971 13359 13059 12637 12354 11865 11612 11401 10872 10571 10135 9870 9627 9180 9091 8531 8526 8123 8062 7759 7623 7461 7267 6946 6621 6728 6486 6282 6082 5849 5809 5691 5558 5384 5244 5079 5091 5060 5010 4964 4792 4615 4533 4329 4326 4087 3954 3878 3595 3497 3381 3350 3189 3149 3209 3118 2935 2968 2966 2896 2913 2847 2725 2587 2639 2398 2408 2354 2308 2228 2106 2259 2153 2237 2185 2221 2025 2236 2141 2032 2026 1968 1941 1931 1826 1767 1568 1545 1547 1477 1371 1427 1348 1305 1319 1276 1257 1201 1235 1196 1151 1211 1135 1138 1105 1069 1064 1124 1005 1060 1046 1004 997 1028 996 976 912 949 991 922 907 949 952 904 937 897 910 884 918 929 916 937 894 912 862 901 855 841 791 808 831 830 767 731 710 697 713 696 679 674 684 696 731 705 763 722 791 766 809 875 854 844 927 891 916 855 865 852 810 792 784 714 792 703 652 620 555 554 493 505 443 467 476 448 441 404 424 437 397 417 379 428 410 387 376 370 387 409 413 371 393 423 392 385 404 375 363 387 380 395 395 403 347 384 427 399 392 399 364 369 353 338 344 334 365 382 337 354 380 332 342 303 342 322 320 327 318 296 281 302 350 268 317 318 293 319 267 257 274 287 294 280 267 293 308 325 290 287 289 294 304 298 320 332 326 328 319 348 319 312 311 311 306 307 335 294 280 305 271 270 330 291 274 273 300 251 262 282 258 237 238 263 235 223 221 228 216 219 225 192 199 218 200 194 200 180 218 201 200 178 165 176 178 194 201 199 165 220 191 229 194 186 214 216 238 247 218 240 233 242 245 238 239 222 234 257 220 244 231 237 225 226 222 223 244 227 201 216 226 190 163 181 180 168 169 177 174 157 152 189 176 172 178 148 164 144 153 160 161 173 154 162 170 147 152 149 152 136 140 139 147 144 138 140 156 127 107 110 114 105 122 106 124 103 108 91 112 109 89 103 113 92 112 102 97 105 86 103 120 102 113 110 105 102 142 131 118 136 143 122 139 133 156 175 176 161 198 189 191 234 253 257 273 242 307 283 331 314 344 372 376 364 379 334 361 385 359 394 359 367 368 308 289 253 301 259 217 239 196 187 166 150 127 141 118 95 86 78 85 92 84 70 65 88 65 59 66 59 50 56 55 51 70 76 49 68 56 63 53 65 59 38 46 60 56

20 Chapter 3. Reporting API

42 53 53 49 49 54 40 57 44 47 45 46 68 47 50 51 43 68 51 43 45 38 59 51 56 49 55 46 63 61 66 62 63 73 63 74 78 85 83 94 100 100 80 76 95 95 84 80 83 96 98 71 78 97 84 62 70 69 73 67 66 56 55 54 55 40 51 53 34 49 56 41 44 45 38 42 31 37 40 35 29 42 32 26 32 25 37 20 22 26 32 27 25 24 37 22 19 27 20 33 29 30 29 31 29 19 25 19 17 28 22 26 16 22 24 22 20 30 22 25 22 28 17 17 17 23 23 20 24 27 14 21 22 28 17 22 21 29 26 21 31 20 29 23 23 36 31 31 32 38 35 34 27 30 33 24 32 32 42 40 44 36 33 32 38 28 34 40 28 36 53 36 34 41 52 25 30 28 39 42 31 50 37 43 41 34 33 34 29 35 42 26 29 38 37 23 26 44 34 34 28 21 33 28 24 34 21 29 23 22 27 33 22 21 24 24 14 20 23 25 24 19 23 21 17 22 15 15 20 15 21 12 18 25 18 9 12 22 19 18 14 12 14 10 27 15 15 21 17 15 9 18 11 15 13 23 10 19 17 13 15 15 20 12 17 17 13 12 11 11 11 14 14 19 17 14 13 7 10 13 12 8 19 6 17 16 17 14 17 12 22 23 20 17 37 28 24 28 29 21 38 35 45 40 26 40 44 43 48 37 40 50 50 59 44 34 54 47 40 45 46 48 47 46 38 36 54 46 32 44 39 28 28 31 32 23 27 22 16 21 26 8 13 24 18 13 11 13 14 5 11 7 8 9 6 13 4 13 5 1 5 6 5 3 5 5 6 1 5 2 5 6 6 4 6 6 5 4 6 2 4 3 5 2 7 4 6 1 2 6 3 4 10 3 6 4 2 7 5 4 1 7 7 2 5 3 0 1 4 1 4 5 6 5 4 4 3 4 4 3 5 4 4 2 4 6 3 1 2 5 2 4 2 3 2 3 2 4 3 3 4 3 3 4 4 4 9 5 4 1 5 2 6 4 2 2 3 3 1 4 5 5 3 3 1 1 2 5 3 6 7 6 5 3 1 3 4 1 5 6 4 7 1 5 0 1</ChannelData> </Spectrum> <Spectrum id="Measurement-Background-PERM-SN1004" radDetectorInformationReference="PERM-SN1004" energyCalibrationReference="CAL-PERM-SN1004"> <Remark>78692783</Remark> <LiveTimeDuration>PT842.38S</LiveTimeDuration> <ChannelData compressionCode="CountedZeroes">0 20 11795 13078 14231 15253 16113 16873 17595 18132 18667 19260 19511 19577 19647 19253 19024 18915 18486 18116 17934 17407 17071 16795 16159 15733 15207 14940 14648 14222 13969 13602 13056 12809 12272 12247 11705 11423 11105 10509 10560 10077 9856 9567 9238 9004 8649 8577 8390 7978 7837 7724 7495 7265 7132 7062 6784 6643 6355 6254 6073 6174 5865 5808 5557 5417 5514 5293 5161 5176 4981 4869 5003 4874 4946 4630 4509 4455 4433 4050 3934 3878 3577 3549 3386 3448 3287 3248 3187 3101 3030 2937 2970 2928 2820 2850 2754 2762 2583 2618 2534 2517 2357 2279 2312 2262 2135 2193 2163 2063 2196 2123 2133 2158 2133 2098 2085 2057 2082 1957 1849 1860 1775 1751 1641 1554 1476 1496 1453 1438 1406 1345 1353 1322 1285 1287 1274 1234 1205 1155 1132 1198 1191 1178 1069 1164 1102 1058 1038 1035 1042 1014 984 1031 930 1011 929 967 957 1009 1024 991 960 893 896 935 928 935 923 914 879 953 929 971 915 905 889 878 853 894 881 822 793 827 764 757 751 787 725 665 763 722 716 745 727 721 742 723 798 728 793 783 819 820 819 855 845 861 836 852 819 847 839 808 779 775 752 733 664 684 607 556 547 549 550 479 512 513 471 446 415 451 413 419 421 478 459 440 440 410 391 377 403 378 400 392 402 395 378 419 398 364 370 367 391 385 375 382 366 411 369 405 373 382 387 400 355 368 390 373 383 377 385 394 349 360 379 335 387 342 363 348 369 299 323 368 334 310 337 344 292 311 344 292 321 281 287 313 306 287 329 289 313 311 336 263 289 289 290 296 310 288 266 300 296 328 302 311 295 290 297 316 340 294 301 294 298 286 330 315 292 302 292 300 301 304 334 276 284 277 236 263 276 248 283 257 252 231 252 227 275 263 266 263 227 232 207 190 236 187 211 181 216 233 203 187 189 194 220 180 184 186 204 211 192 198 189 204 187 228 204 221 194 200 222 233 221 215 229 229 247 255 228 239 225 217 248 220 233 205 242 224 220 209 238 228 224 209 211 175 202 181 206 188 201 185 173 199 185 190 180 187 162 194 140 186 167 175 156 162 170 153 157 168 140 170 154 170 147 139 139 156 130 147 149 154 160 139 142 135 138 113 117 116 108 131 108 123 121 118 120 129 93 102 131 110 113 124 91 112 138 100 117 127 103 118 102 125 116 124 132 154 134 142 136 137 136 175 156 150 170 143 188 180 172 190 180 202 221 243 209 248 258 257 251 283 266 298 304 277 278 328 323 325 326 318 292 310 285 295 303 285 271 279 297 257 234 241 250 228 232 237 219 185 160 163 164 140 156 123 120 118 110 121 86 93 76 102 87 92 88 86 81 66 59 41 41 56 65 55 57 59 58 51 59 57 47 57 73 45 56 52 58 49 58 51 57 54 52 51 52 39 50 55 54 60 58 65 64 50 43 59 58 49 53 62 58 54 62 60 44 52 71 63 62 66 72 75 59 68 74 59 61 72 70 81 75 78 77 68 65 73 87 83 69 77 63 51 73 86 71 70 68 52 77 60 60 65 56 49 58 53 54 52 52 54 48 64 40 43 39 41 44 39 40 36 33 38 37 25 38 24 26 31 35 31 32 26 27 24 33 28 36 28 19 25 34 34 22 28 30 29 23 25 31 30 31 20 15 26 24 29 18 30 21 23 20 30 34 19 22 34 20 27 20 23 17 26 21 16 26 23 26 19 31 20 27 23 23 28 24 23 24 18 14 21 35 29 34 26 38 35 31 34 35 32 33 35 31 39 32 43 35 26 27 45 42 38 40 36 35 27 35 36 30 54 36 34 41 26 31 41 42 26 49 36 36 45 42 38 37 47

3.5. N42 XML Support 21

33 43 33 30 29 43 39 38 38 28 35 33 35 27 29 20 32 22 21 38 30 33 41 30 24 16 31 19 28 21 23 28 19 26 27 26 25 22 30 24 22 22 26 25 21 21 20 29 22 28 18 21 12 22 19 26 17 18 23 21 18 21 18 11 26 16 15 15 17 17 18 22 15 18 15 17 19 17 11 9 18 16 10 10 24 18 21 19 22 10 19 10 9 20 20 15 20 15 20 20 15 15 22 20 18 25 15 21 23 24 23 19 20 23 25 24 17 27 14 22 22 22 26 38 17 36 31 25 42 42 33 31 38 26 34 37 36 37 35 43 34 45 37 41 52 45 36 38 45 39 35 48 29 32 38 51 37 41 41 32 37 23 21 30 38 34 34 25 24 19 26 23 26 44 26 30 22 27 18 18 19 19 22 12 23 12 11 18 8 11 9 12 7 9 8 8 8 5 11 12 9 8 7 5 5 5 7 12 5 4 5 4 10 2 9 6 4 7 5 9 3 3 4 3 5 4 5 8 3 5 4 7 4 0 1</ChannelData> </Spectrum> <GrossCounts id="Measurement-Background-NEUTRUCK-1" radDetectorInformationReference="NEUTRUCK-1"> <LiveTimeDuration>PT772.50S</LiveTimeDuration> <CountData>2659</CountData> </GrossCounts> <GrossCounts id="Measurement-Background-NEUTRUCK-2" radDetectorInformationReference="NEUTRUCK-2"> <LiveTimeDuration>PT772.50S</LiveTimeDuration> <CountData>2043</CountData> </GrossCounts> <OccupancyIndicator>false</OccupancyIndicator> </RadMeasurement> <RadMeasurement id="Measurement-2516"> <MeasurementClassCode>Foreground</MeasurementClassCode> <StartDateTime>2016-06-08T08:35:13</StartDateTime> <RealTimeDuration>PT0.54S</RealTimeDuration> <Spectrum id="Measurement-2516-PERM-SN1001" radDetectorInformationReference="PERM-SN1001" energyCalibrationReference="CAL-PERM-SN1001"> <Remark>56113932</Remark> <LiveTimeDuration>PT0.54S</LiveTimeDuration> <ChannelData compressionCode="CountedZeroes">0 20 8 10 7 12 13 11 5 11 9 6 12 17 11 12 9 9 10 18 7 13 5 8 5 7 11 6 9 11 11 12 10 11 4 4 10 8 10 10 5 7 8 3 5 9 5 6 6 0 1 4 5 5 3 3 5 3 3 4 11 1 4 7 3 3 2 4 7 4 2 4 0 1 1 1 1 2 0 1 2 1 1 1 1 4 0 1 1 2 2 0 1 2 3 2 0 1 1 1 1 0 2 1 4 2 2 2 0 1 1 2 0 1 2 0 1 1 1 3 0 1 2 0 1 1 1 0 1 1 1 1 1 0 2 1 0 4 2 0 2 1 0 1 2 1 1 1 0 2 1 1 1 1 0 2 2 0 2 1 0 1 1 0 4 3 0 2 1 1 0 2 1 1 0 3 1 0 6 3 0 1 3 1 1 1 0 4 1 0 5 2 1 0 1 1 0 1 1 0 1 1 1 3 1 0 6 1 0 1 1 2 0 2 2 0 1 1 1 0 1 1 1 0 8 1 0 1 2 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 2 0 3 1 0 1 1 0 22 1 0 3 1 1 0 2 1 0 6 1 0 5 1 1 0 5 2 0 5 1 0 2 1 0 2 1 1 0 6 1 0 3 1 0 13 1 1 0 33 1 0 14 1 0 1 1 0 3 1 0 3 1 1 0 8 1 0 12 1 0 4 1 0 22 1 0 3 1 0 10 1 0 16 1 0 17 1 0 7 1 0 11 1 0 2 1 0 21 1 0 17 1 0 12 1 0 12 1 0 19 1 0 9 1 0 11 1 1 0 15 1 0 10 1 0 151 1 0 29 1 0 67 1 0 6 1 0 10 1 0 7 1 0 72</ChannelData> </Spectrum> <Spectrum id="Measurement-2516-PERM-SN1002" radDetectorInformationReference="PERM-SN1002" energyCalibrationReference="CAL-PERM-SN1002"> <Remark>56113950</Remark> <LiveTimeDuration>PT0.54S</LiveTimeDuration> <ChannelData compressionCode="CountedZeroes">0 20 7 7 9 6 11 7 16 12 15 17 8 11 15 9 10 13 12 11 9 11 11 12 9 8 7 9 4 16 5 7 11 5 16 7 10 4 5 9 14 12 9 5 9 3 5 5 7 4 6 7 6 5 7 5 6 9 3 4 5 4 4 6 5 5 5 0 1 2 3 1 6 4 1 6 2 1 2 1 0 1 4 2 4 3 2 6 1 4 0 1 2 0 1 1 1 1 1 0 1 3 4 1 1 1 1 1 1 1 0 2 4 0 1 5 2 2 1 2 2 0 2 3 3 0 1 3 1 3 0 1 3 1 0 1 2 2 2 0 1 2 1 2 1 0 1 3 0 1 1 1 0 2 1 1 1 0 5 1 1 1 0 3 1 2 0 1 1 2 0 2 1 0 1 2 0 1 2 0 4 1 0 1 2 0 4 1 1 1 0 2 3 0 6 1 1 0 1 1 0 3 1 0 1 1 1 1 1 0 1 1 0 1 1 0 5 2 0 1 2 0 5 1 0 1 1 0 5 1 0 3 2 0 1 1 0 1 2 0 1 1 0 2 1 0 8 1 0 1 1 0 5 1 0 11 2 0 4 1 0 1 1 0 3 1 0 3 1 0 3 1 0 1 1 1 0 2 1 0 15 2 1 0 1 1 0 7 1 1 0 7 1 0 2 1 0 2 1 0 1 1 1 0 5 1 0 11 1 0 3 1 0 11 1 0 27 1 1 0 10 1 0 7 1 0 6 1 1 0 12 1 1 0 11 1 0 10 1 0 9 1 1 1 0 19 1 0 11 1 0 15 1 0 1 1 0 7 1 0 29 1 0 4 1 0 18 1 0 42 1 0 10 1 0 115 1 0 12 1 0 29 1 0 29 1 0 47 1 0 73 1 0 48</ChannelData> </Spectrum>

22 Chapter 3. Reporting API

56113968 PT0.54S 0 6 2 2 1 3 0 1 1 5 8 2 2 8 3 8 6 7 6 6 8 13 9 15 13 17 13 7 13 10 13 11 13 5 5 15 11 10 12 10 9 14 13 3 9 9 5 7 5 7 5 6 7 2 2 5 8 7 2 5 5 4 9 4 8 4 7 2 6 7 3 1 3 4 1 1 2 2 3 4 1 3 4 3 3 1 5 5 3 2 0 1 4 1 1 1 3 0 1 2 2 2 2 1 2 0 1 1 2 1 2 1 2 5 0 1 1 2 0 1 1 1 0 1 5 0 2 1 3 1 2 0 2 2 1 2 2 0 1 2 3 1 1 2 0 3 1 0 1 1 1 1 0 4 1 0 3 2 1 0 2 1 0 2 1 1 1 0 3 2 0 3 1 0 1 1 0 2 3 0 1 1 0 2 1 0 2 1 2 0 9 1 0 2 1 1 0 4 1 0 3 1 1 0 1 2 0 2 1 2 1 0 3 1 0 2 2 0 1 1 1 0 26 1 0 7 1 0 3 1 0 1 1 0 14 1 1 1 0 6 1 0 12 1 1 0 3 1 0 18 2 0 21 1 0 6 1 2 0 15 1 0 3 1 0 6 1 0 10 1 0 13 1 0 1 1 0 2 2 0 21 1 0 2 1 0 4 1 0 2 1 0 14 1 0 12 3 0 2 1 0 3 1 1 0 11 1 1 0 2 1 0 9 1 0 54 1 0 12 1 0 25 1 0 12 1 0 5 1 0 17 1 0 114 1 0 5 1 0 52 1 0 22 1 0 183 56113986 PT0.54S 0 20 6 12 9 9 13 15 10 15 12 17 17 8 15 14 8 10 16 10 13 8 10 15 10 11 6 11 10 13 13 8 10 5 8 10 9 11 5 8 4 4 9 5 7 7 10 8 6 7 7 4 6 3 4 2 6 3 4 3 4 6 3 4 4 4 2 5 6 2 0 1 6 3 3 3 3 3 2 2 2 3 3 2 4 2 1 2 2 2 5 2 1 1 2 0 1 3 2 0 1 1 3 1 1 2 1 0 1 3 1 4 2 0 1…

This is the start of the file's text. The full file is on GovTribe.

File details come from the government source that posted it.