Serialisation

DMPACK supports the following data serialisation formats:

Atom XML

Export of log messages in Atom Syndication Format (RFC 4287), with optional XSLT style sheet.

Block

Export of observation responses as X/Y data points in ASCII block format, consisting of time stamp (ISO 8601) and real value.

CSV

Export and import of beat, log, node, observation, sensor, and target data, with custom field separator and quote character. A CSV header is added optionally.

GeoJSON

Export of node, sensor, and target data as GeoJSON feature points.

HDF5

Export and import of node, observation, sensor, and target data as HDF5 compound data types.

JSON

Export of beat, log, node, observation, sensor, and target data as JSON objects or JSON arrays.

JSON Lines

Export of beat, log, node, observation, sensor, and target data in JSON Lines/Newline Delimited JSON format.

Lua

Converting observations from and to Lua tables: import of observations from Lua file or stack-based data exchange between Fortran and Lua. plain text format

Namelist

Import from and export to Fortran 95 Namelist (NML) format of single beat, log, node, observation, sensor, and target types. The syntax is case-insensitive, line-breaks are optional. Default values are assumed for omitted attributes of data in Namelist format.

Text

Status messages of the HTTP-RPC API are returned as key–value pairs in plain text format.

The JSON Lines format equals the JSON format, except that multiple records are separated by new line. All string attributes of the derived types are 8 bit only and limited to the ASCII character set, UUIDv4 identifiers and date-time strings in ISO 8601 format are always 32 characters long.

API Status

Derived Type

Attribute Type Size Description

version

string

32

DMPACK application version.

dmpack

string

32

DMPACK library version.

host

string

32

Server host name.

server

string

32

Server software (web server).

timestamp

string

32

Server date and time in ISO 8601.

message

string

32

Server status message.

error

integer

4

Error code.

Text

version=1.0.0
dmpack=1.0.0
host=localhost
server=lighttpd/1.4.70
timestamp=1970-01-01T00:00:00.000000+00:00
message=online
error=0

Beat

Derived Type

Attribute Type Size Description

node_id

string

32

Node id (-0-9A-Z_a-z).

address

string

45

IPv4/IPv6 address of client.

client

string

32

Client software name and version.

time_sent

string

32

Date and time heartbeat was sent (ISO 8601).

time_recv

string

32

Date and time heartbeat was received (ISO 8601).

error

integer

4

Last client connection error.

interval

integer

4

Emit interval in seconds.

uptime

integer

4

Client uptime in seconds.

CSV

Column Attribute Description

1

node_id

Node id.

2

address

IP address of client.

3

client

Client software name and version.

4

time_sent

Date and time heartbeat was sent.

5

time_recv

Date and time heartbeat was received.

6

error

Error code.

7

interval

Emit interval in seconds.

8

uptime

Client uptime in seconds.

JSON

{
  "node_id": "dummy-node",
  "address": "127.0.0.1",
  "client": "dmbeat 1.0.0 (DMPACK 1.0.0)",
  "time_sent": "1970-01-01T00:00:00.000000+00:00",
  "time_recv": "1970-01-01T00:00:00.000000+00:00",
  "error": 0,
  "interval": 60,
  "uptime": 3600
}

Namelist


&DMBEAT
BEAT%NODE_ID="dummy-node",
BEAT%ADDRESS="127.0.0.1",
BEAT%CLIENT="dmbeat 1.0.0 (DMPACK 1.0.0)",
BEAT%TIME_SENT="1970-01-01T00:00:00.000000+00:00",
BEAT%TIME_RECV="1970-01-01T00:00:00.000000+00:00",
BEAT%ERROR=0,
BEAT%INTERVAL=60,
BEAT%UPTIME=3600,
/

Data Point

Derived Type

Attribute Type Size Description

x

string

32

X value (ISO 8601).

y

double

8

Y value.

Block

1970-01-01T00:00:00.000000+00:00               0.00000000

CSV

Column Attribute Description

1

x

X value.

2

y

Y value.

JSON

{
  "x": "1970-01-01T00:00:00.000000+00:00",
  "y": 0.0
}

Log

Log level
Level Parameter Parameter String Description

1

LL_DEBUG

debug

Debug message.

2

LL_INFO

info

Hint or info message.

3

LL_WARNING

warning

Warning message.

4

LL_ERROR

error

Non-critical error message.

5

LL_CRITICAL

critical

Critical error message.

6

LL_USER

user

User-defined log level.

Derived Type

Attribute Type Size Description

id

string

32

Log id (UUIDv4).

level

integer

4

Log level.

error

integer

4

Error code.

timestamp

string

32

Date and time (ISO 8601).

node_id

string

32

Node id (optional).

sensor_id

string

32

Sensor id (optional).

target_id

string

32

Target id (optional).

observ_id

string

32

Observation id (optional).

source

string

32

Log source (optional).

message

string

512

Log message (ASCII).

Atom XML

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<generator version="1.0">DMPACK</generator>
<title>DMPACK Logs</title>
<subtitle>Log Messages Feed</subtitle>
<id>urn:uuid:a6baaf1a-43b7-4e59-a18c-653e6ee61dfa</id>
<updated>1970-01-01T00:00:00.000000+00:00</updated>
<entry>
<title>DEBUG: dummy log message</title>
<id>urn:uuid:26462d27-d7ff-4ef1-b10e-0a2e921e638b</id>
<published>1970-01-01T00:00:00.000000+00:00</published>
<updated>1970-01-01T00:00:00.000000+00:00</updated>
<summary>DEBUG: dummy log message</summary>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<table>
<tbody>
<tr><th>ID</th><td><code>26462d27d7ff4ef1b10e0a2e921e638b</code></td></tr>
<tr><th>Timestamp</th><td>1970-01-01T00:00:00.000000+00:00</td></tr>
<tr><th>Level</th><td>DEBUG (1)</td></tr>
<tr><th>Error</th><td>dummy error (2)</td></tr>
<tr><th>Node ID</th><td>dummy-node</td></tr>
<tr><th>Sensor ID</th><td>dummy-sensor</td></tr>
<tr><th>Target ID</th><td>dummy-target</td></tr>
<tr><th>Observation ID</th><td><code>9bb894c779e544dab1bd7e7a07ae507d</code></td></tr>
<tr><th>Source</th><td>dummy</td></tr>
<tr><th>Message</th><td>dummy log message</td></tr>
</tbody>
</table>
</div>
</content>
<author>
<name>dummy</name>
</author>
</entry>
</feed>

CSV

Column Attribute Description

1

id

Log id.

2

level

Log level.

3

error

Error code.

4

timestamp

Date and time.

5

node_id

Node id.

6

sensor_id

Sensor id.

7

target_id

Target id.

8

observ_id

Observation id.

9

source

Log source.

10

message

Log message.

JSON

{
  "id": "26462d27d7ff4ef1b10e0a2e921e638b",
  "level": 1,
  "error": 2,
  "timestamp": "1970-01-01T00:00:00.000000+00:00",
  "node_id": "dummy-node",
  "sensor_id": "dummy-sensor",
  "target_id": "dummy-target",
  "observ_id": "9bb894c779e544dab1bd7e7a07ae507d",
  "message": "dummy log message"
}

Namelist

&DMLOG
LOG%ID="26462d27d7ff4ef1b10e0a2e921e638b",
LOG%LEVEL=1,
LOG%ERROR=2,
LOG%TIMESTAMP="1970-01-01T00:00:00.000000+00:00",
LOG%NODE_ID="dummy-node",
LOG%SENSOR_ID="dummy-sensor",
LOG%TARGET_ID="dummy-target",
LOG%OBSERV_ID="9bb894c779e544dab1bd7e7a07ae507d",
LOG%SOURCE="dummy",
LOG%MESSAGE="dummy log message",
/

Node

Derived Type

Attribute Type Size Description

id

string

32

Node id (-0-9A-Z_a-z).

name

string

32

Node name.

meta

string

32

Node description (optional).

x

double

8

Node local x (optional).

y

double

8

Node local y (optional).

z

double

8

Node local z (optional).

longitude

double

8

Node longitude (optional).

latitude

double

8

Node latitude (optional).

elevation

double

8

Node elevation (optional).

CSV

Column Attribute Description

1

id

Node id.

2

name

Node name.

3

meta

Node description.

7

x

Node local x.

8

y

Node local y.

9

z

Node local z.

4

longitude

Node longitude.

5

latitude

Node latitude.

6

elevation

Node elevation.

GeoJSON

{
  "type": "Feature",
  "geometry": {
    "type": "Point",
    "coordinates": [ 0.0, 0.0, 0.0 ]
  },
  "properties": {
    "type": "node",
    "properties": {
      "id": "dummy-node",
      "name": "Dummy Node",
      "meta": "Description",
      "x": 0.0,
      "y": 0.0,
      "z": 0.0,
      "longitude": 0.0,
      "latitude": 0.0,
      "elevation": 0.0
    }
  }
}

HDF5

DATASET "node_type" {
  DATATYPE H5T_COMPOUND {
    H5T_ARRAY { [32] H5T_STRING {
      STRSIZE 1;
      STRPAD  H5T_STR_SPACEPAD;
      CSET    H5T_CSET_ASCII;
      CTYPE   H5T_C_S1;
    } } "id";
    H5T_ARRAY { [32] H5T_STRING {
      STRSIZE 1;
      STRPAD  H5T_STR_SPACEPAD;
      CSET    H5T_CSET_ASCII;
      CTYPE   H5T_C_S1;
    } } "name";
    H5T_ARRAY { [32] H5T_STRING {
      STRSIZE 1;
      STRPAD  H5T_STR_SPACEPAD;
      CSET    H5T_CSET_ASCII;
      CTYPE   H5T_C_S1;
    } } "meta";
    H5T_IEEE_F64LE "x";
    H5T_IEEE_F64LE "y";
    H5T_IEEE_F64LE "z";
    H5T_IEEE_F64LE "longitude";
    H5T_IEEE_F64LE "latitude";
    H5T_IEEE_F64LE "elevation";
  }
  DATASPACE SIMPLE { ( 8 ) / ( 8 ) }
}

JSON

{
  "id": "dummy-node",
  "name": "Dummy Node",
  "meta": "Description",
  "x": 0.0,
  "y": 0.0,
  "z": 0.0,
  "longitude": 0.0,
  "latitude": 0.0,
  "elevation": 0.0
}

Namelist

&DMNODE
NODE%ID="dummy-node",
NODE%NAME="Dummy Node",
NODE%META="Description",
NODE%X=0.0,
NODE%Y=0.0,
NODE%Z=0.0,
NODE%LONGITUDE=0.0,
NODE%LATITUDE=0.0,
NODE%ELEVATION=0.0
/

Observation

Response value types
Value Name Description

0

RESPONSE_TYPE_REAL64

8-byte signed real.

1

RESPONSE_TYPE_REAL32

4-byte signed real.

2

RESPONSE_TYPE_INT64

8-byte signed integer.

3

RESPONSE_TYPE_INT32

4-byte signed integer.

4

RESPONSE_TYPE_LOGICAL

1-byte boolean.

5

RESPONSE_TYPE_BYTE

Byte.

6

RESPONSE_TYPE_STRING

Byte string.

Derived Type

Observation derived type
Attribute Type Size Description

id

string

32

Observation id (UUIDv4).

node_id

string

32

Node id (-0-9A-Z_a-z).

sensor_id

string

32

Sensor id (-0-9A-Z_a-z).

target_id

string

32

Target id (-0-9A-Z_a-z).

name

string

32

Observation name (-0-9A-Z_a-z).

timestamp

string

32

Date and time of observation (ISO 8601).

source

string

32

Observation source or name of origin (-0-9A-Z_a-z).

device

string

32

Device (TTY/PTY path, IP address).

priority

integer

4

Message queue priority (>= 0).

error

integer

4

Observation error code.

next

integer

4

Cursor of receiver list (0 to 16).

nreceiver

integer

4

Number of receivers (0 to 16).

nrequests

integer

4

Number of sensor requests (0 to 8).

receivers

array

16 × 32

Array of receiver names (16).

requests

array

8 × 1764

Array of requests (8).

Request derived type of an observation
Attribute Type Size Description

name

string

32

Request name (-0-9A-Z_a-z).

timestamp

string

32

Date and time of request (ISO 8601).

request

string

256

Raw request to sensor. Non-printable characters have to be escaped.

response

string

256

Raw response of sensor. Non-printable characters will be escaped.

delimiter

string

8

Request delimiter. Non-printable characters have to be escaped.

pattern

string

256

Regular expression pattern that describes the raw response using named groups.

delay

integer

4

Delay in mseconds to wait after the request.

error

integer

4

Request error code.

mode

integer

4

Request mode (unused, for future additions).

retries

integer

4

Number of performed retries.

state

integer

4

Request state (unused, for future additions).

timeout

integer

4

Request timeout in mseconds.

nresponses

integer

4

Number of responses (0 to 16).

responses

array

16 × 56

Extracted values from the raw response (16).

Response derived type of a request
Attribute Type Size Description

name

string

32

Response name (-0-9A-Z_a-z).

unit

string

8

Response unit.

type

integer

4

Response value type.

error

integer

4

Response error code.

value

double

8

Response value.

CSV

Column Attribute Description

1

id

Observation id.

2

node_id

Node id.

3

sensor_id

Sensor id.

4

target_id

Target id.

5

name

Observation name.

6

timestamp

Date and time of observation.

7

source

Observation source.

8

device

Device (TTY/PTY path).

9

priority

Message queue priority.

10

error

Error code.

11

next

Cursor of receiver list (0 to 16).

12

nreceivers

Number of receivers (0 to 16).

13

nrequests

Number of sensor requests (0 to 8).

14 – 29

receivers

Array of receiver names (16).

14

receiver

Receiver 1.

15

receiver

Receiver 2.

16

receiver

Receiver 3.

17

receiver

Receiver 4.

18

receiver

Receiver 5.

19

receiver

Receiver 6.

20

receiver

Receiver 7.

21

receiver

Receiver 8.

22

receiver

Receiver 9.

23

receiver

Receiver 10.

24

receiver

Receiver 11.

25

receiver

Receiver 12.

26

receiver

Receiver 13.

27

receiver

Receiver 14.

28

receiver

Receiver 15.

29

receiver

Receiver 16.

30 – 773

requests

Array of requests (8).

30 – 105

request

Request 1.

30

name

Request name.

31

timestamp

Date and time of request.

32

request

Raw request to sensor.

33

response

Raw response of sensor.

34

delimiter

Request delimiter.

35

pattern

Regular expression pattern that describes the raw response.

36

delay

Delay in mseconds to wait after the request.

37

error

Error code.

38

mode

Request mode.

39

retries

Number of retries performed.

40

state

Request state.

41

timeout

Request timeout in mseconds.

42

nresponses

Number of responses (0 to 16).

43 – 122

responses

Array of responses (16).

43 – 47

response

Response 1.

43

name

Response 1 name.

44

unit

Response 1 unit.

45

type

Response 1 value type.

46

error

Response 1 error.

47

value

Response 1 value.

48 – 52

response

Response 2.

53 – 57

response

Response 3.

58 – 62

response

Response 4.

63 – 67

response

Response 5.

68 – 72

response

Response 6.

73 – 77

response

Response 7.

78 – 82

response

Response 8.

83 – 87

response

Response 9.

88 – 92

response

Response 10.

93 – 97

response

Response 11.

98 – 102

response

Response 12.

103 – 107

response

Response 13.

108 – 112

response

Response 14.

113 – 117

response

Response 15.

118 – 122

response

Response 16.

123 – 215

request

Request 2.

216 – 308

request

Request 3.

309 – 401

request

Request 4.

402 – 494

request

Request 5.

495 – 587

request

Request 6.

588 – 680

request

Request 7.

681 – 773

request

Request 8.

HDF5

The HDF5 format description for observations is omitted due to length. You can output the format from command-line. For example, if the file observ.hdf5 contains DMPACK observations:

$ h5dump -H -A 0 observ.hdf5

JSON

{
  "id": "9273ab62f9a349b6a4da6dd274ee83e7",
  "node_id": "dummy-node",
  "sensor_id": "dummy-sensor",
  "target_id": "dummy-target",
  "name": "dummy-observ",
  "timestamp": "1970-01-01T00:00:00.000000+00:00",
  "source": "dmdummy",
  "device": "/dev/null",
  "priority": 0,
  "error": 0,
  "next": 0,
  "nreceivers": 2,
  "nrequests": 1,
  "receivers": [
    "dummy-receiver1",
    "dummy-receiver2"
  ],
  "requests": [
    {
      "name": "dummy",
      "timestamp": "1970-01-01T00:00:00.000000+00:00",
      "request": "?\\n",
      "response": "10.0\\n",
      "delimiter": "\\n",
      "pattern": "(?<sample>[-+0-9\\.]+)",
      "delay": 0,
      "error": 0,
      "mode": 0,
      "retries": 0,
      "state": 0,
      "timeout": 0,
      "nresponses": 1,
      "responses": [
        {
          "name": "sample",
          "unit": "none",
          "type": 0,
          "error": 0,
          "value": 10.0
        }
      ]
    }
  ]
}

Lua

{
  id = "9273ab62f9a349b6a4da6dd274ee83e7",
  node_id = "dummy-node",
  sensor_id = "dummy-sensor",
  target_id = "dummy-target",
  name = "dummy-observ",
  timestamp = "1970-01-01T00:00:00.000000+00:00",
  source = "dmdummy",
  device = "/dev/null",
  error = 0,
  next = 1,
  priority = 0,
  nreceivers = 2,
  nrequests = 1,
  receivers = { "dummy-receiver1", "dummy-receiver2" },
  requests = {
    {
      name = "dummy",
      timestamp = "1970-01-01T00:00:00.000000+00:00",
      request = "?\\n",
      response = "10.0\\n",
      pattern = "(?<sample>[-+0-9\\.]+)",
      delimiter = "\\n",
      delay = 0,
      error = 0,
      mode = 0,
      retries = 0,
      state = 0,
      timeout = 0,
      nresponses = 1,
      responses = {
        {
          name = "sample",
          unit = "none",
          type = 0,
          error = 0,
          value = 10.0
        }
      }
    }
  }
}

Namelist

&DMOBSERV
OBSERV%ID="9273ab62f9a349b6a4da6dd274ee83e7",
OBSERV%NODE_ID="dummy-node",
OBSERV%SENSOR_ID="dummy-sensor",
OBSERV%TARGET_ID="dummy-target",
OBSERV%NAME="dummy-observ",
OBSERV%TIMESTAMP="1970-01-01T00:00:00.000000+00:00",
OBSERV%SOURCE="dmdummy",
OBSERV%PATH="/dev/null",
OBSERV%PRIORITY=0,
OBSERV%ERROR=0,
OBSERV%NEXT=0,
OBSERV%NRECEIVERS=2,
OBSERV%NREQUESTS=1,
OBSERV%RECEIVERS="dummy-receiver1","dummy-receiver2",
OBSERV%REQUESTS(1)%NAME="dummy",
OBSERV%REQUESTS(1)%TIMESTAMP="1970-01-01T00:00:00.000000+00:00",
OBSERV%REQUESTS(1)%REQUEST="?\n",
OBSERV%REQUESTS(1)%RESPONSE="10.0\n",
OBSERV%REQUESTS(1)%DELIMITER="\n",
OBSERV%REQUESTS(1)%PATTERN="(?<sample>[-+0-9\.]+)",
OBSERV%REQUESTS(1)%DELAY=0,
OBSERV%REQUESTS(1)%ERROR=0,
OBSERV%REQUESTS(1)%MODE=0,
OBSERV%REQUESTS(1)%RETRIES=0,
OBSERV%REQUESTS(1)%STATE=0,
OBSERV%REQUESTS(1)%TIMEOUT=0,
OBSERV%REQUESTS(1)%NRESPONSES=1,
OBSERV%REQUESTS(1)%RESPONSES(1)%NAME="sample",
OBSERV%REQUESTS(1)%RESPONSES(1)%UNIT="none",
OBSERV%REQUESTS(1)%RESPONSES(1)%TYPE=0,
OBSERV%REQUESTS(1)%RESPONSES(1)%ERROR=0,
OBSERV%REQUESTS(1)%RESPONSES(1)%VALUE=10.00000000000000,
/

Sensor

Sensor types
Value Name Description

0

none

Unknown sensor type.

1

virtual

Virtual sensor.

2

system

Operating system.

3

fs

File system.

4

process

Process or service.

5

network

Network-based sensor (Ethernet, HTTP).

6

multi

Multi-sensor system.

7

meteo

Meteorological sensor.

8

rts

Robotic total station.

9

gnss

GNSS receiver.

10

level

Level sensor.

11

mems

MEMS sensor.

Derived Type

Attribute Type Size Description

id

string

32

Sensor id (-0-9A-Z_a-z).

node_id

string

32

Node id (-0-9A-Z_a-z).

type

integer

4

Sensor type.

name

string

32

Sensor name.

sn

string

32

Sensor serial number (optional).

meta

string

32

Sensor description (optional).

x

double

8

Sensor x or easting (optional).

y

double

8

Sensor y or northing (optional).

z

double

8

Sensor z or elevation (optional).

longitude

double

8

Sensor longitude (optional).

latitude

double

8

Sensor latitude (optional).

elevation

double

8

Sensor elevation (optional).

CSV

Column Attribute Description

1

id

Sensor id.

2

node_id

Node id.

3

type

Sensor type.

4

name

Sensor name.

5

sn

Sensor serial number.

6

meta

Sensor description.

7

x

Sensor x or easting.

8

y

Sensor y or northing.

9

z

Sensor z or elevation.

10

longitude

Sensor longitude.

11

latitude

Sensor latitude.

12

elevation

Sensor elevation.

GeoJSON

{
  "type": "Feature",
  "geometry": {
    "type": "Point",
    "coordinates": [ 0.0, 0.0, 0.0 ]
  },
  "properties": {
    "type": "sensor",
    "properties": {
      "id": "dummy-sensor",
      "node_id": "dummy-node",
      "type": 3,
      "name": "Dummy Sensor",
      "sn": "00000",
      "meta": "Description",
      "x": 0.0,
      "y": 0.0,
      "z": 0.0,
      "longitude": 0.0,
      "latitude": 0.0,
      "elevation": 0.0
    }
  }
}

HDF5

DATASET "sensor_type" {
  DATATYPE H5T_COMPOUND {
    H5T_ARRAY { [32] H5T_STRING {
      STRSIZE 1;
      STRPAD  H5T_STR_SPACEPAD;
      CSET    H5T_CSET_ASCII;
      CTYPE   H5T_C_S1;
    } } "id";
    H5T_ARRAY { [32] H5T_STRING {
      STRSIZE 1;
      STRPAD  H5T_STR_SPACEPAD;
      CSET    H5T_CSET_ASCII;
      CTYPE   H5T_C_S1;
    } } "node_id";
    H5T_STD_I32LE "type";
    H5T_ARRAY { [32] H5T_STRING {
      STRSIZE 1;
      STRPAD  H5T_STR_SPACEPAD;
      CSET    H5T_CSET_ASCII;
      CTYPE   H5T_C_S1;
    } } "name";
    H5T_ARRAY { [32] H5T_STRING {
      STRSIZE 1;
      STRPAD  H5T_STR_SPACEPAD;
      CSET    H5T_CSET_ASCII;
      CTYPE   H5T_C_S1;
    } } "sn";
    H5T_ARRAY { [32] H5T_STRING {
      STRSIZE 1;
      STRPAD  H5T_STR_SPACEPAD;
      CSET    H5T_CSET_ASCII;
      CTYPE   H5T_C_S1;
    } } "meta";
    H5T_IEEE_F64LE "x";
    H5T_IEEE_F64LE "y";
    H5T_IEEE_F64LE "z";
    H5T_IEEE_F64LE "longitude";
    H5T_IEEE_F64LE "latitude";
    H5T_IEEE_F64LE "elevation";
  }
  DATASPACE SIMPLE { ( 8 ) / ( 8 ) }
}

JSON

{
  "id": "dummy-sensor",
  "node_id": "dummy-node",
  "type": 3,
  "name": "Dummy Sensor",
  "sn": "00000",
  "meta": "Description",
  "x": 0.0,
  "y": 0.0,
  "z": 0.0,
  "longitude": 0.0,
  "latitude": 0.0,
  "elevation": 0.0
}

Namelist

&DMSENSOR
SENSOR%ID="dummy-sensor",
SENSOR%NODE_ID="dummy-node",
SENSOR%TYPE=3,
SENSOR%NAME="Dummy Sensor",
SENSOR%SN="00000",
SENSOR%META="Description",
SENSOR%X=0.0,
SENSOR%Y=0.0,
SENSOR%Z=0.0,
SENSOR%LONGITUDE=0.0,
SENSOR%LATITUDE=0.0,
SENSOR%ELEVATION=0.0
/

Target

Target states
Value Name Description

0

none

No special target state.

1

removed

Target has been removed.

2

missing

Target is missing.

3

invalid

Target is invalid.

4

ignore

Target should be ignored.

5

obsolete

Target is obsolete.

6

user

User-defined target state.

Derived Type

Attribute Type Size Description

id

string

32

Target id (-0-9A-Z_a-z).

name

string

32

Target name.

meta

string

32

Target description (optional).

state

integer

4

Target state (optional).

x

double

8

Target x or easting (optional).

y

double

8

Target y or northing (optional).

z

double

8

Target z or elevation (optional).

longitude

double

8

Target longitude (optional).

latitude

double

8

Target latitude (optional).

elevation

double

8

Target elevation (optional).

CSV

Column Attribute Description

1

id

Target id.

2

name

Target name.

3

meta

Target description.

4

state

Target state.

5

x

Target x or easting.

6

y

Target y or northing.

7

z

Target z or elevation.

8

longitude

Target longitude.

9

latitude

Target latitude.

10

elevation

Target elevation.

GeoJSON

{
  "type": "Feature",
  "geometry": {
    "type": "Point",
    "coordinates": [ 0.0, 0.0, 0.0 ]
  },
  "properties": {
    "type": "target",
    "properties": {
      "id": "dummy-target",
      "name": "Dummy Target",
      "meta": "Description",
      "state": 0,
      "x": 0.0,
      "y": 0.0,
      "z": 0.0,
      "longitude": 0.0,
      "latitude": 0.0,
      "elevation": 0.0
    }
  }
}

HDF5

DATASET "target_type" {
  DATATYPE H5T_COMPOUND {
    H5T_ARRAY { [32] H5T_STRING {
      STRSIZE 1;
      STRPAD  H5T_STR_SPACEPAD;
      CSET    H5T_CSET_ASCII;
      CTYPE   H5T_C_S1;
    } } "id";
    H5T_ARRAY { [32] H5T_STRING {
      STRSIZE 1;
      STRPAD  H5T_STR_SPACEPAD;
      CSET    H5T_CSET_ASCII;
      CTYPE   H5T_C_S1;
    } } "name";
    H5T_ARRAY { [32] H5T_STRING {
      STRSIZE 1;
      STRPAD  H5T_STR_SPACEPAD;
      CSET    H5T_CSET_ASCII;
      CTYPE   H5T_C_S1;
    } } "meta";
    H5T_STD_I32LE "state";
    H5T_IEEE_F64LE "x";
    H5T_IEEE_F64LE "y";
    H5T_IEEE_F64LE "z";
    H5T_IEEE_F64LE "longitude";
    H5T_IEEE_F64LE "latitude";
    H5T_IEEE_F64LE "elevation";
  }
  DATASPACE SIMPLE { ( 8 ) / ( 8 ) }
}

JSON

{
  "id": "dummy-target",
  "name": "Dummy Target",
  "meta": "Description",
  "state": 0,
  "x": 0.0,
  "y": 0.0,
  "z": 0.0,
  "longitude": 0.0,
  "latitude": 0.0,
  "elevation": 0.0
}

Namelist

&DMTARGET
TARGET%ID="dummy-target",
TARGET%NAME="Dummy Target",
TARGET%META="Description",
TARGET%STATE=0,
TARGET%X=0.0,
TARGET%Y=0.0,
TARGET%Z=0.0,
TARGET%LONGITUDE=0.0,
TARGET%LATITUDE=0.0,
TARGET%ELEVATION=0.0
/