# MeasurementComponent > [!note] Ta strona nie została jeszcze przetłumaczona i jest wyświetlana w języku angielskim. A `MeasurementComponent` is a node in the measurement tree. A measurement is usually a **composite** root component that contains one child component per metric or image; child components can themselves contain further components, so arbitrary hierarchies are possible. ``` Measurement (composite) ├── Gloss 60° (single, data = 87.3) ├── DOI (single, data = 92.1) └── ledShadeImages (array) ├── ledShadeImages_0 (file, data = binary image) ├── ledShadeImages_1 (file, data = binary image) └── ... ``` ### Properties | Property | CBOR key | JSON key | Type | Description | |---|---|---|---|---| | Identifier | `identifier` | `id` | string | Database identifier. May be `null`; importers typically discard it and assign a new one. | | Version | `version` | `ver` | integer | Schema version of the record. Currently `2`. | | SourceIdentifier | `sourceIdentifier` | `srcId` | string | Identifier assigned by the system that produced the measurement. | | Type | `type` | `type` | string (enum) | **Required.** The component type, see below. | | Name | `name` | `name` | string | Name of the component (e.g. the metric name). | | Timestamp | `timestamp` | `time` | string (ISO 8601) | Time the component was stored. | | SourceTimestamp | `sourceTimestamp` | `srcTime` | string (ISO 8601) | Time the component was recorded on the source device. | | Data | `data` | `data` | map | The measurement value or file, see [Measurement Data Types](rhopoint-elements-hub-rae-file-format-measurement-data-types.md). `null` for pure grouping nodes. | | Metadata | `metadata` | `meta` | map | Additional metadata about the value, see below. | | Source | `source` | `src` | map | Information about where the measurement was taken, see below. | | Components | `components` | `comp` | array of maps | Child components (nested `MeasurementComponent` records). | | SourceSignature | `sourceSignature` | `srcSig` | string | Signature created by the source device (data authenticity). | | Signature | `signature` | `sig` | string | Signature of the record. | ### Component types The `type` value is one of the `MeasurementTypes` enum members (written in lowerCamelCase): | Value | Meaning | |---|---| | `single` | A single value; `data` holds the value. | | `composite` | A grouping node; the children live in `components`. | | `continuous` | A continuously recorded series of values. | | `graph` | Graph/curve data. | | `file` | A file embedded in the component; `data` is a `FileBinaryData` record. | | `fileReference` | A reference to a file stored elsewhere; `data` is a `FileReferenceData` record. | | `array` | An ordered collection of components of the same kind (e.g. an image stack). | ### Metadata The optional `metadata` map describes the value in `data`: | Property | CBOR key | JSON key | Type | Description | |---|---|---|---|---| | Unit | `unit` | `unit` | string | Unit of the value (e.g. `"GU"`). | | Accuracy | `accuracy` | `accuracy` | string | Accuracy of the value. | | Environment | `environment` | `env` | map | A nested `MeasurementComponent` describing environmental conditions (e.g. temperature) at the time of measurement. | ### Source The optional `source` map describes where the measurement was taken: | Property | CBOR key | JSON key | Type | Description | |---|---|---|---|---| | DeviceIdentifier | `deviceIdentifier` | `deviceId` | string | Identifier (e.g. serial number) of the measuring device. | | LocationName | `locationName` | `loc` | string | Human-readable location name. | | Latitude | `latitude` | `lat` | string | Geographic latitude. | | Longitude | `longitude` | `lon` | string | Geographic longitude. | ### Declaration ```csharp public record MeasurementComponent : Identifiable { public required MeasurementTypes Type { get; set; } public string? Name { get; set; } public DateTimeOffset? Timestamp { get; set; } public DateTimeOffset? SourceTimestamp { get; set; } public IMeasurementData? Data { get; set; } public IMetadata? Metadata { get; set; } public IMeasurementSource? Source { get; set; } public List? Components { get; set; } public string? SourceSignature { get; set; } public string? Signature { get; set; } } public enum MeasurementTypes { Single, Composite, Continuous, Graph, File, FileReference, Array } ```