title |
---|
Array Schema |
The array schema file consists of a single generic tile, with the following data:
Field | Type | Description |
---|---|---|
Array version | uint32_t |
Format version number of the array schema |
Allows dups | bool |
New in version 5 Whether or not the array allows duplicate cells |
Array type | uint8_t |
Dense or sparse |
Tile order | uint8_t |
Row or column major |
Cell order | uint8_t |
Row or column major |
Capacity | uint64_t |
For sparse fragments, the data tile capacity |
Coords filters | Filter Pipeline | The filter pipeline used as default for coordinate tiles |
Offsets filters | Filter Pipeline | The filter pipeline used for cell var-len offset tiles |
Validity filters | Filter Pipeline | New in version 7 The filter pipeline used for cell validity tiles |
Domain | Domain | The array domain |
Num attributes | uint32_t |
Number of attributes in the array |
Attribute 1 | Attribute | First attribute |
… | … | … |
Attribute N | Attribute | Nth attribute |
Num labels | uint32_t |
New in version 18 Number of dimension labels in the array |
Label 1 | Dimension Label | New in version 18 First dimension label |
… | … | … |
Label N | Dimension Label | New in version 18 Nth dimension label |
Num enumerations | uint32_t |
New in version 20 Number of enumerations in the array |
Enumeration name length 1 | uint32_t |
New in version 20 The number of characters in the enumeration 1 name |
Enumeration name 1 | uint8_t[] |
New in version 20 The name of enumeration 1 |
Enumeration filename length 1 | uint32_t |
New in version 20 The number of characters in the enumeration 1 file |
Enumeration filename 1 | uint8_t[] |
New in version 20 The name of the file in the __enumerations subdirectory that contains enumeration 1's data |
Enumeration name length N | uint32_t |
New in version 20 The number of characters in the enumeration N name |
Enumeration name N | uint8_t[] |
New in version 20 The name of enumeration N |
Enumeration filename length N | uint32_t |
New in version 20 The number of characters in the enumeration N file |
Enumeration filename N | uint8_t[] |
New in version 20 The name of the file in the __enumerations subdirectory that contains enumeration N's data |
Current domain | Current Domain | New in version 22 The array's current domain |
The domain has internal format:
Field | Type | Description |
---|---|---|
Domain datatype | uint8_t |
Removed in version 5 Datatype of all dimensions |
Num dimensions | uint32_t |
Dimensionality/rank of the domain |
Dimension 1 | Dimension | First dimension |
… | … | … |
Dimension N | Dimension | Nth dimension |
The dimension has internal format:
Field | Type | Description |
---|---|---|
Dimension name length | uint32_t |
Number of characters in dimension name |
Dimension name | uint8_t[] |
Dimension name character array |
Dimension datatype | uint8_t |
New in version 5 Datatype of the coordinate values |
Cell val num | uint32_t |
New in version 5 Number of coordinate values per cell. For variable-length dimensions, this is std::numeric_limits<uint32_t>::max() |
Filters | Filter Pipeline | New in version 5 The filter pipeline used on coordinate value tiles |
Domain size | uint64_t |
New in version 5 The domain size in bytes |
Domain | uint8_t[] |
Byte array of length equal to domain size above, storing the min, max values of the dimension. |
Null tile extent | uint8_t |
1 if the dimension has a null tile extent, else 0 . |
Tile extent | uint8_t[] |
Byte array of length equal to the dimension datatype size, storing the space tile extent of this dimension. |
Note
Prior to version 5, the size of the Domain field was always equal to twice the size of the dimension's data type (which is stored in the domain in these versions).
The attribute has internal format:
Field | Type | Description |
---|---|---|
Attribute name length | uint32_t |
Number of characters in attribute name |
Attribute name | uint8_t[] |
Attribute name character array |
Attribute datatype | uint8_t |
Datatype of the attribute values |
Cell val num | uint32_t |
Number of attribute values per cell. For variable-length attributes, this is std::numeric_limits<uint32_t>::max() |
Filters | Filter Pipeline | The filter pipeline used on attribute value tiles |
Fill value size | uint64_t |
New in version 6 The size in bytes of the fill value |
Fill value | uint8_t[] |
New in version 6 The fill value |
Nullable | bool |
New in version 7 Whether or not the attribute can be null |
Fill value validity | uint8_t |
New in version 7 The validity fill value |
Order | uint8_t |
New in version 17 Order of the data stored in the attribute. This may be unordered, increasing or decreasing |
The dimension label has internal format:
Field | Type | Description |
---|---|---|
Dimension index | uint32_t |
Index of the dimension the label is for |
Label order | uint8_t |
Order of the label data |
Dimension label name length | uint64_t |
Number of characters in the dimension label name |
Dimension label name | uint8_t [] |
The name of the dimension label |
Relative URI | uint8_t |
If the URI of the array the label data is stored in is relative to this array |
URI length | uint64_t |
The number of characters in the URI |
URI | uint8_t [] |
The URI the label data is stored in |
Label attribute name length | uint32_t |
The length of the attribute name of the label data |
Label attribute name | uint8_t [] |
The name of the attribute the label data is stored in |
Label datatype | uint8_t |
The datatype of the label data |
Label cell_val_num | uint32_t |
The number of values per cell of the label data. For variable-length labels, this is std::numeric_limits<uint32_t>::max() |
Label domain size | uint64_t |
The size of the label domain |
Label domain start size | uint64_t |
The size of the first value of the domain for variable-length datatypes. For fixed-length labels, this is 0 |
Label domain data | uint8_t[] |
Byte array of length equal to domain size above, storing the min, max values of the dimension |
Is external | uint8_t |
If the URI is not stored as part of this array |
If a current domain is empty, only the version number and the empty flag are serialized to storage.
The current domain format is versioned separately from arrays. The current version is 1
.
Field | Type | Description |
---|---|---|
Version number | uint32_t |
Current domain version number |
Empty | uint8_t |
Whether the current domain has a representation (e.g. NDRectangle) set |
Type | uint8_t |
The type of current domain stored in this file |
NDRectangle | MBR | A hyperrectangle defined using 1DRange items for each dimension |